public class Model
extends com.supermap.data.InternalHandleDisposable
限定符和类型 | 方法和说明 |
---|---|
void |
add(Skeleton skeleton)
以非实例化方式向精细层添加骨架对象。
|
void |
add(Skeleton skeleton,
double[] matrix)
以非实例化方式向精细层添加骨架对象,并指定外部矩阵。
|
boolean |
addSkeleton(ModelEntityManager em,
String name)
向精细层添加骨架。
|
boolean |
addSkeleton(ModelEntityManager em,
String name,
double[] matrix)
向精细层添加骨架。
|
boolean |
buildLOD()
创建LOD。
|
static int |
byte4ToInt(byte[] bytes) |
static void |
byteToFile(String filePath,
byte[] data) |
ArrayList<Model> |
decompose()
将模型对象打散。
|
void |
dispose()
释放Model对象占用的资源。
|
static byte[] |
fileToByteArray(File file) |
void |
finalize() |
boolean |
fromFile(String filePath) |
boolean |
fromStreamFile(byte[] byteFile) |
String |
getAvailableName(String name)
获取模型对象中未被占用的名字 。
|
BoundingBox |
getBoundingBox()
获取指定骨架的包围盒,同时考虑矩阵。
|
BoundingBox |
getBoundingBox(SkeletonID id)
获取指定骨架的包围盒,同时考虑矩阵。
|
double |
getBoundingSphere(SkeletonID id,
Point3D centerPoint)
获取指定骨架的包围球,同时考虑矩阵。
|
int[] |
getInfo(int lod)
获取模型数据集信息。
|
int |
getLODCount()
获取LOD层级数量。
|
Material3D |
getMaterial(String name)
按名称获取材质对象。
|
String |
getMaterialName(SkeletonID id)
返回材质名称。
|
ArrayList<String> |
getMaterialNames()
返回对象所包含的材质名称集合。
|
Skeleton |
getSkeleton(SkeletonID id)
获取指定的骨架。
|
Skeleton |
getSkeleton(SkeletonID id,
double[] matrix)
获取模型中指定的骨架及所在数据包的矩阵。
|
Skeleton |
getSkeleton(String name)
按名称获取骨架对象。
|
int |
getSkeletonCount(int nLodIndex)
获取骨架数量。
|
int[] |
getSkeletonInfo(SkeletonID id)
返回骨架信息。
|
ArrayList<String> |
getSkeletonNames(int nLod)
返回模型指定层级的所有骨架名称。
|
TextureData |
getTexture(String name)
返回纹理。
|
int |
getTriangleCount(SkeletonID skeletonId)
获取指定子骨架的三角形数量。
|
int |
getVertexCount(SkeletonID skeletonId)
获取指定子骨架的顶点数量。
|
static byte[] |
intToByte4(int i) |
boolean |
isClosed()
判断模型数据集是否闭合。
|
boolean |
isEmpty()
获取包围盒对象是否为空。
|
boolean |
isHasLOD() |
static String |
numberToSuffix(int number) |
boolean |
removeLOD()
移除LOD层级。
|
boolean |
removeSkeleton(SkeletonID id)
移除指定编号的骨架对象。
|
boolean |
removeSkeleton(String name) |
boolean |
setLODs(ArrayList<Model> listModel)
设置传入的模型数据作为LOD层 。
|
boolean |
setLODs(ArrayList<Model> listModel,
ArrayList<Double> listLodScales) |
boolean |
setMaterial(ArrayList<SkeletonID> ids,
Material3D material3D)
对指定骨架设置材质。
|
void |
setMatrix(double[] matrix)
设置外部矩阵。
|
void |
setMatrix(Matrix matrix) |
boolean |
toFile(String filePath) |
byte[] |
toStreamFile() |
boolean |
update(Material3D material3D)
根据材质更新模型中的同名材质对象。
|
void |
update(Skeleton skeleton)
更新模型中的同名材质对象。
|
public Model()
public Model(Model model)
model
- 给定的Model对象。public void finalize()
finalize
在类中 com.supermap.data.InternalHandleDisposable
public void dispose()
public int getLODCount()
public boolean isClosed()
public boolean isEmpty()
public boolean isHasLOD()
public int getSkeletonCount(int nLodIndex)
nLodIndex
- 指定的LOD层级。public int getVertexCount(SkeletonID skeletonId)
skeletonId
- 子骨架ID。public int getTriangleCount(SkeletonID skeletonId)
skeletonId
- 子骨架ID。public boolean fromFile(String filePath)
public boolean toFile(String filePath)
public BoundingBox getBoundingBox()
public boolean fromStreamFile(byte[] byteFile)
public byte[] toStreamFile()
public static byte[] intToByte4(int i)
public static int byte4ToInt(byte[] bytes)
public static String numberToSuffix(int number)
public static byte[] fileToByteArray(File file)
public static void byteToFile(String filePath, byte[] data)
public Skeleton getSkeleton(SkeletonID id)
id
- 骨架编号。public Skeleton getSkeleton(SkeletonID id, double[] matrix)
id
- 骨架编号。matrix
- 数据包的矩阵。public ArrayList<String> getSkeletonNames(int nLod)
nLod
- 模型层级,lod为-3时获取所有lod层的骨架名称,为-2时获取所有骨架名称,为-1时获取精细层所有骨架名称,大于等于0时获取对应lod层的骨架名称。IllegalStateException
- 当前对象已被释放。public Material3D getMaterial(String name)
name
- 指定的材质名称。public ArrayList<String> getMaterialNames()
IllegalStateException
- 当前对象已被释放。public String getMaterialName(SkeletonID id)
id
- 骨架ID。IllegalStateException
- 当前对象已被释放。public TextureData getTexture(String name)
name
- 对象的纹理名称。public int[] getSkeletonInfo(SkeletonID id)
id
- 对象的骨架编号public int[] getInfo(int lod)
lod
- 指定的LOD层级。public void add(Skeleton skeleton)
skeleton
- 待添加的骨架对象。public void add(Skeleton skeleton, double[] matrix)
skeleton
- 待添加的骨架对象。matrix
- 指定的外部矩阵。public boolean buildLOD()
public String getAvailableName(String name)
name
- 骨架对象名字。public BoundingBox getBoundingBox(SkeletonID id)
id
- 骨架编号。public double getBoundingSphere(SkeletonID id, Point3D centerPoint)
id
- 骨架编号。centerPoint
- 包围球中心点。public boolean removeLOD()
public boolean removeSkeleton(SkeletonID id)
id
- 待移除的骨架编号。public boolean removeSkeleton(String name)
public void setMatrix(double[] matrix)
matrix
- 指定的矩阵。public void update(Skeleton skeleton)
skeleton
- 同名材质的对象。public boolean update(Material3D material3D)
material3D
- 指定同名的材质对象IllegalStateException
- 当前对象已被释放。public boolean setMaterial(ArrayList<SkeletonID> ids, Material3D material3D)
ids
- 指定的骨架ID集合。material3D
- 替换的材质对象。IllegalStateException
- 当前对象已被释放。public boolean addSkeleton(ModelEntityManager em, String name)
em
- 指定模型管理实体对象。name
- 骨架名称。public boolean addSkeleton(ModelEntityManager em, String name, double[] matrix)
em
- 指定模型管理实体对象。name
- 骨架名称。matrix
- 指定的外部矩阵。public void setMatrix(Matrix matrix)
Copyright © 2021–2024 SuperMap. All rights reserved.