com.supermap.data

类 ModelEntityManager

  • java.lang.Object
    • com.supermap.data.InternalHandle
      • com.supermap.data.InternalHandleDisposable
        • com.supermap.data.ModelEntityManager
  • 所有已实现的接口:
    IDisposable


    public class ModelEntityManager
    extends com.supermap.data.InternalHandleDisposable
    模型实体管理器类。该类提供了对骨架、材质、纹理等模型实体的管理方法,可创建、添加、删除各类模型实体。
    作者:
    wangyanyan
    • 构造器详细资料

      • ModelEntityManager

        public ModelEntityManager()
        默认构造函数,构造一个新的ModelEntityManager对象。
      • ModelEntityManager

        public ModelEntityManager(DatasetVector dataset)
        根据指定参数构造一个新的ModelEntityManager对象。
        参数:
        dataset - 指定的矢量数据集。
    • 方法详细资料

      • isExisted

        public boolean isExisted(String name)
        指定名字的实体是否存在 。
        参数:
        name - 指定名字。
        返回:
        实体是否存在。true表示存在,false表示不存在。
      • getMaterialNames

        public ArrayList<String> getMaterialNames()
        获取所有的材质的名称列表 。
        返回:
        材质名称列表。
      • getSkeletonNames

        public ArrayList<String> getSkeletonNames()
        获取所有骨架的名称列表。
        返回:
        骨架名称列表。
      • getTextureNames

        public ArrayList<String> getTextureNames()
        获取所有纹理的名称列表。
        返回:
        纹理名称列表。
      • getAvailableName

        public String getAvailableName(String name)
        获取可用的实体名称 。
        参数:
        name - 指定的实体名称。
        返回:
        可用的实体名称 。
      • getSkeleton

        public Skeleton getSkeleton(String name)
        按名称获取指定的骨架对象。
        参数:
        name - 指定的骨架名称。
        返回:
        骨架对象。
      • getMaterial

        public Material3D getMaterial(String name)
        按名称获取指定的材质对象。
        参数:
        name - 指定的材质名称。
        返回:
        材质对象。
      • getTextureData

        public TextureData getTextureData(String name)
        按名称获取指定的纹理数据。
        参数:
        name - 指定的纹理名称。
        返回:
        纹理数据。
      • append

        public Skeleton append(Skeleton skeleton)
        追加骨架中的所有实体。如果实体名字已存在则按实例化处理。
        参数:
        skeleton - 指定的骨架。
        返回:
        新的骨架。各实体名字可能与原名不一致。
      • append

        public Model append(Model model)
        追加模型对象中的所有实体。如果实体名字已存在则按实例化处理。
        参数:
        model - 指定的模型对象。
        返回:
        新的模型对象。各实体名字可能与原名不一致。
      • update

        public Skeleton update(Skeleton skeleton)
        更新骨架中的所有实体:包括骨架、材质和纹理。 如果实体名字不存在,则自动创建。
        参数:
        skeleton - 指定的骨架。
        返回:
        新的骨架。新创建实体名字可能与原名不一致。
      • update

        public Model update(Model model)
        更新模型对象中的所有实体:包括骨架、材质和纹理。 如果实体名字不存在,则自动创建。
        参数:
        model - 指定的模型对象。
        返回:
        新的模型对象。新创建实体名字可能与原名不一致。
      • update

        public boolean update(Material3D material3D)
        更新材质(不更新纹理),如果材质名称不存在,则不更新。
        参数:
        material3D - 待更新的材质
        返回:
        一个bool值,true表示更新材质成功。
      • update

        public boolean update(TextureData textureData)
        更新纹理,如果纹理名称不存在,则不更新。
        参数:
        textureData - 待更新的纹理
        返回:
        一个bool值,true表示更新纹理成功。
      • deleteSkeleton

        public boolean deleteSkeleton(String name)
        删除骨架对象。
        参数:
        name - 待删除的骨架名称。
        返回:
        是否删除成功。true表示成功,false表示失败。
      • deleteMaterial

        public boolean deleteMaterial(String name)
        删除材质对象。
        参数:
        name - 待删除的材质名称。
        返回:
        是否删除成功。true表示成功,false表示失败。
      • deleteTextureData

        public boolean deleteTextureData(String name)
        删除纹理数据对象。
        参数:
        name - 待删除的纹理数据名称。
        返回:
        是否删除成功。true表示成功,false表示失败。
      • updateDataset

        public void updateDataset()
        更新数据集中的所有模型对象。
      • updateMaterialNames

        public boolean updateMaterialNames(HashMap<String,String> dic)
        批量更新材质名称。
        参数:
        dic - 更新的材质名称 <旧材质名称,新材质名称>。
        返回:
        一个bool值,true表示批量更新材质名称成功。
      • save

        public void save()
        保存新追加的骨架或模型对象 。
      • reset

        public void reset()
        重置实体管理器。
      • dispose

        public void dispose()
        释放ModelEntityManager对象占用的资源 。
      • buildLOD

        public static boolean buildLOD(DatasetVector modelDataset,
                                       double[] ratios)
        模型数据集生成LOD

        对模型建立多细节层级LOD(Levels Of Detail)将有助于提升模型的浏览性能。

        参数:
        modelDataset - 模型数据集
        ratios - LOD层级简化率,值域为[0,1],一般LOD 0层设置为 0.75,LOD 1层设置为0.5,LOD 2层设置为0.25。
        返回:
        一个bool值,true表示数据集创建LOD成功,false表示创建LOD失败。
      • removeLOD

        public static boolean removeLOD(DatasetVector modelDataset)
        模型数据集删除已有LOD
        参数:
        modelDataset - 模型数据集
        返回:
        一个bool值,true表示数据集删除LOD成功,false表示删除LOD失败。
      • hasLOD

        public static boolean hasLOD(DatasetVector modelDataset)
        模型数据集判断是否已存在LOD
        参数:
        modelDataset - 模型数据集
        返回:
        一个bool值,true表示数据集已存在LOD,false表示数据集不存在LOD。

Copyright © 2021–2024 SuperMap. All rights reserved.