com.supermap.data
类 Model

java.lang.Object
  继承者 com.supermap.data.Model

public class Model
extends java.lang.Object

模型数据集。该类为用于存储三维几何模型对象(GeoModel3D)的数据集。


构造方法摘要
Model()
          构造一个新的Model对象。
Model(Model model)
          根据给定的Model对象构造一个与之完全一样的新Model对象。
 
方法摘要
 void add(Skeleton skeleton)
          以非实例化方式向精细层添加骨架对象。
 void add(Skeleton skeleton, double[] matrix)
          以非实例化方式向精细层添加骨架对象,并指定外部矩阵。
 boolean addSkeleton(ModelEntityManager em, java.lang.String name)
          向精细层添加骨架。
 boolean addSkeleton(ModelEntityManager em, java.lang.String name, double[] matrix)
          向精细层添加骨架。
 boolean buildLOD()
          创建LOD。
 java.util.ArrayList<Model> decompose()
          将模型对象打散。
 void dispose()
          释放Model对象占用的资源。
 java.lang.String getAvailableName(java.lang.String name)
          获取模型对象中未被占用的名字 。
 BoundingBox getBoundingBox()
          获取指定骨架的包围盒,同时考虑矩阵。
 BoundingBox getBoundingBox(SkeletonID id)
          获取指定骨架的包围盒,同时考虑矩阵。
 double getBoundingSphere(SkeletonID id, Point3D centerPoint)
          获取指定骨架的包围球,同时考虑矩阵。
 int[] getInfo(int lod)
          获取模型数据集信息。
 int getLODCount()
          获取LOD层级数量。
 Material3D getMaterial(java.lang.String name)
          按名称获取材质对象。
 Skeleton getSkeleton(SkeletonID id)
          获取指定的骨架。
 Skeleton getSkeleton(SkeletonID id, double[] matrix)
          获取模型中指定的骨架及所在数据包的矩阵。
 Skeleton getSkeleton(java.lang.String name)
          按名称获取骨架对象。
 int getSkeletonCount(int nLodIndex)
          获取骨架数量。
 int[] getSkeletonInfo(SkeletonID id)
          获取骨架信息。
 TextureData getTexture(java.lang.String name)
          按名称获取纹理数据对象。
 int getTriangleCount(SkeletonID skeletonId)
          获取指定子骨架的三角形数量。
 int getVertexCount(SkeletonID skeletonId)
          获取指定子骨架的顶点数量。
 boolean isClosed()
          判断模型数据集是否闭合。
 boolean isEmpty()
          获取包围盒对象是否为空。
 boolean isHasLOD()
           
 boolean removeLOD()
          移除LOD层级。
 boolean removeSkeleton(SkeletonID id)
          移除指定编号的骨架对象。
 boolean removeSkeleton(java.lang.String name)
          移除指定名字的骨架:可能删除多个,名字为name的骨架全部删除。
 boolean setLODs(java.util.ArrayList<Model> listModel)
          设置传入的模型数据作为LOD层 。
 void setMatrix(double[] matrix)
          设置外部矩阵。
 void update(Skeleton skeleton)
          更新模型的骨架对象 。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

Model

public Model()
构造一个新的Model对象。


Model

public Model(Model model)
根据给定的Model对象构造一个与之完全一样的新Model对象。

参数:
model - 给定的Model对象。
方法详细信息

dispose

public void dispose()
释放Model对象占用的资源。


getLODCount

public int getLODCount()
获取LOD层级数量。

返回:
LOD层级数量。

isClosed

public boolean isClosed()
判断模型数据集是否闭合。当精细层所有骨架闭合时返回true。

返回:

isEmpty

public boolean isEmpty()
获取包围盒对象是否为空。

返回:

isHasLOD

public boolean isHasLOD()
返回:

getSkeletonCount

public int getSkeletonCount(int nLodIndex)
获取骨架数量。

参数:
nLodIndex - 指定的LOD层级。
返回:
骨架数量。

getVertexCount

public int getVertexCount(SkeletonID skeletonId)
获取指定子骨架的顶点数量。

参数:
skeletonId - 子骨架ID。
返回:
顶点数量。

getTriangleCount

public int getTriangleCount(SkeletonID skeletonId)
获取指定子骨架的三角形数量。

参数:
skeletonId - 子骨架ID。
返回:
三角形数量。

getBoundingBox

public BoundingBox getBoundingBox()
获取指定骨架的包围盒,同时考虑矩阵。

返回:

getSkeleton

public Skeleton getSkeleton(SkeletonID id)
获取指定的骨架。

参数:
id - 骨架编号。
返回:

getSkeleton

public Skeleton getSkeleton(java.lang.String name)
按名称获取骨架对象。

参数:
name - 指定的骨架名称。
返回:

getSkeleton

public Skeleton getSkeleton(SkeletonID id,
                            double[] matrix)
获取模型中指定的骨架及所在数据包的矩阵。

参数:
id - 骨架编号。
matrix - 数据包的矩阵。
返回:

getMaterial

public Material3D getMaterial(java.lang.String name)
按名称获取材质对象。

参数:
name - 指定的材质名称。
返回:

getTexture

public TextureData getTexture(java.lang.String name)
按名称获取纹理数据对象。

参数:
name - 指定的纹理名称。
返回:

getSkeletonInfo

public int[] getSkeletonInfo(SkeletonID id)
获取骨架信息。

参数:
id - 指定的骨架编号。
返回:
指定结果数组,第一个为顶点数量,第二个为三角形数量。

getInfo

public int[] getInfo(int lod)
获取模型数据集信息。

参数:
lod - 指定的LOD层级。
返回:
指定结果数组,第一个为顶点数量,第二个为三角形数量。

add

public void add(Skeleton skeleton)
以非实例化方式向精细层添加骨架对象。

参数:
skeleton - 待添加的骨架对象。

add

public void add(Skeleton skeleton,
                double[] matrix)
以非实例化方式向精细层添加骨架对象,并指定外部矩阵。

参数:
skeleton - 待添加的骨架对象。
matrix - 指定的外部矩阵。

buildLOD

public boolean buildLOD()
创建LOD。

返回:
是否创建成功,true成功,false失败。

decompose

public java.util.ArrayList<Model> decompose()
将模型对象打散。

返回:
打散后的模型数据集列表。

getAvailableName

public java.lang.String getAvailableName(java.lang.String name)
获取模型对象中未被占用的名字 。

参数:
name - 骨架对象名字。
返回:
未被占用的名字。

getBoundingBox

public BoundingBox getBoundingBox(SkeletonID id)
获取指定骨架的包围盒,同时考虑矩阵。

参数:
id - 骨架编号。
返回:
指定骨架的包围盒。

getBoundingSphere

public double getBoundingSphere(SkeletonID id,
                                Point3D centerPoint)
获取指定骨架的包围球,同时考虑矩阵。

参数:
id - 骨架编号。
centerPoint - 包围球中心点。
返回:
球半径,-1失败,大于等于0成功。

removeLOD

public boolean removeLOD()
移除LOD层级。

返回:
是否移除成功,true成功,false失败。

removeSkeleton

public boolean removeSkeleton(SkeletonID id)
移除指定编号的骨架对象。

参数:
id - 待移除的骨架编号。
返回:
是否移除成功,true成功,false失败。

removeSkeleton

public boolean removeSkeleton(java.lang.String name)
移除指定名字的骨架:可能删除多个,名字为name的骨架全部删除。

参数:
name - 指定的骨架名字。
返回:
是否移除成功,true成功,false失败。

setLODs

public boolean setLODs(java.util.ArrayList<Model> listModel)
设置传入的模型数据作为LOD层 。

参数:
listModel -
返回:

setMatrix

public void setMatrix(double[] matrix)
设置外部矩阵。

参数:
matrix - 指定的矩阵。

update

public void update(Skeleton skeleton)
更新模型的骨架对象 。

参数:
skeleton - 指定骨架。

addSkeleton

public boolean addSkeleton(ModelEntityManager em,
                           java.lang.String name)
向精细层添加骨架。

参数:
em - 指定模型管理实体对象。
name - 骨架名称。
返回:
是否添加成功。true表示成功,false表示失败。

addSkeleton

public boolean addSkeleton(ModelEntityManager em,
                           java.lang.String name,
                           double[] matrix)
向精细层添加骨架。

参数:
em - 指定模型管理实体对象。
name - 骨架名称。
matrix - 指定的外部矩阵。
返回:
是否添加成功。true表示成功,false表示失败。