跳到主要内容
版本:v10.0

M3D / M3D / Shapes / Model

Class: Model

M3D.Shapes.Model

Memberof

M3D.Shapes

Description

Model类,对应可渲染数据中的模型实例

Author

SS

Date

2022-1-17

Version

1.0

Copyright

All Rights Reserved. Copyright (C) 2022 HOTEAMSOFT, Ltd

Hierarchy

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

new Model(): Model

Returns

Model

Description

构造函数

Overrides

Shape.constructor

Properties

id

id: number

Inherited from

Shape.id


LODMAX

Static LODMAX: number


LODMIN

Static LODMIN: number


bomItem

Static bomItem: string


boundingBox

Static boundingBox: string


count

Static count: number

Inherited from

Shape.count


isProto

Static isProto: string

Inherited from

Shape.isProto


lockLevel

Static lockLevel: string


lodDatas

Static lodDatas: string


pVertexHeader

Static pVertexHeader: string

Inherited from

Shape.pVertexHeader


protoId

Static protoId: string


worldBoundingBox

Static worldBoundingBox: string

Accessors

boundingBox

get boundingBox(): BoundingBox

Returns

BoundingBox

Description

获取包围盒

set boundingBox(v): void

Parameters

NameType
vBoundingBox

Returns

void

Description

设置包围盒


isProto

get isProto(): boolean

Returns

boolean

Description

获取是否为原型对象

Inherited from

Shape.isProto

set isProto(v): void

Parameters

NameType
vboolean

Returns

void

Description

设置是否为原型对象

Inherited from

Shape.isProto


protoId

get protoId(): number

Returns

number

Description

获取原型ID

set protoId(v): void

Parameters

NameTypeDescription
vnumber原型IDget

Returns

void

Description

设置原型ID

Methods

addBody

addBody(level, body): void

Parameters

NameType
levelnumber
bodyBody

Returns

void

Description

追加指定等级的Body数据


addChild

addChild(subModel): void

Parameters

NameType
subModelModel

Returns

void

Description

添加子模型


addEffect

addEffect(effectType): void

Parameters

NameType
effectTypenumber

Returns

void

Description

添加特效效果

Inherited from

Shape.addEffect


addGeometry

addGeometry(geometry): void

Parameters

NameType
geometryGeometry

Returns

void

Description

添加几何属性


addLodData

addLodData(iLevel, pLodData): void

Parameters

NameType
iLevelnumber
pLodDataLODData

Returns

void

Description

添加LODData数据


addModelView

addModelView(view): void

Parameters

NameTypeDescription
viewModelView视图

Returns

void

Description

添加单个视图


addModelViewMap

addModelViewMap(viewMap): void

Parameters

NameTypeDescription
viewMapMap<number, ModelView>视图列表的map

Returns

void

Description

添加多个个视图


clearModelViews

clearModelViews(isSub): void

Parameters

NameType
isSubboolean

Returns

void

Description

清空视图


computeBoundingBox

computeBoundingBox(): void

Returns

void

Description

计算包围盒大小


getActiveLOD

getActiveLOD(): number

Returns

number

Description

获取当前LOD等级


getActiveLevel

getActiveLevel(): number

Returns

number

Description

获取当前活动的LOD级别


getActiveLodData

getActiveLodData(): LODData

Returns

LODData

Description

获取当前LOD数据


getAllModelViewList

getAllModelViewList(): ModelView[]

Returns

ModelView[]

Description

获取全部模型的视图列表


getAllSubModels

getAllSubModels(arr): void

Parameters

NameType
arrany[]

Returns

void

Description

获取所有子模型


getAllSubModelsNoSame

getAllSubModelsNoSame(arr): void

Parameters

NameType
arrany[]

Returns

void

Description

获取所有子模型(去重)


getAlpha

getAlpha(): number

Returns

number

不透明度 ,0-1,0为完全透明,1为不透明

Description

获取实例不透明度

Overrides

Shape.getAlpha


getBodyMap

getBodyMap(): Map<number, Body[]>

Returns

Map<number, Body[]>

Description

获取所有Body对象集合


getBodys

getBodys(lodLevel?, isUpdateMaterial?): Body[]

Parameters

NameTypeDescription
lodLevel?number
isUpdateMaterial?boolean若为rendertrees重新组织渲染材质节点,卸载状态下也需要获取全部body对象

Returns

Body[]

Description

获取某一LOD等级的Body


getBoundingBox

getBoundingBox(): BoundingBox

Returns

BoundingBox

Description

获取原型包围盒

Overrides

Shape.getBoundingBox


getChildren

getChildren(needSort?): Model[]

Parameters

NameType
needSort?boolean

Returns

Model[]

Description

获取所有子模型


getColor

getColor(): Color

Returns

Color

Color对象

Description

获取颜色: 1.获取实例model实例;2.若不存在则获取对应的面实例颜色;3.若不存在则获取对应面的原型的颜色

Overrides

Shape.getColor


getCompareState

getCompareState(): number

Returns

number

Description

获取Model对比结果标识


getDocId

getDocId(): number

Returns

number

Description

获取DocId


getDrawables

getDrawables(): VertexSet

Returns

VertexSet

Description

获取渲染数据

Overrides

Shape.getDrawables


getEdges

getEdges(lodLevel?): Edge[]

Parameters

NameTypeDescription
lodLevel?numberLOD级别

Returns

Edge[]

Description

获取某一LOD等级的边界线


getEffect

getEffect(): number

Returns

number

Description

获取效果类型

Overrides

Shape.getEffect


getEvents

getEvents(): M3DEvent[]

Returns

M3DEvent[]

Description

获得事件列表

Inherited from

Shape.getEvents


getFaces

getFaces(lodLevel?, isUpdateMaterial?): Face[]

Parameters

NameTypeDescription
lodLevel?numberLOD级别
isUpdateMaterial?boolean若为rendertrees重新组织渲染材质节点,卸载状态下也需要获取全部面对象

Returns

Face[]

Description

获取某一LOD等级的面


getGeometrys

getGeometrys(): Geometry[]

Returns

Geometry[]

Description

获取几何属性


getId

getId(): number

Returns

number

Description

获取id

Inherited from

Shape.getId


getInsatcneMaterialId

getInsatcneMaterialId(): any

Returns

any


getInstacneMaterial

getInstacneMaterial(): any

Returns

any


getInstanceCount

getInstanceCount(): number

Returns

number

Description

获取实例数量


getInstanceId

getInstanceId(): number

Returns

number

Description

获取实例Id


getIsDragger

getIsDragger(): boolean

Returns

boolean

Description

获取模型是否为拖拽器模型


getIsFrontShow

getIsFrontShow(): boolean

Returns

boolean

Description

获取是否前端显示

Inherited from

Shape.getIsFrontShow


getIsLoaded

getIsLoaded(): boolean

Returns

boolean

Description

获取模型是否加载


getIsSelfCollision

getIsSelfCollision(): boolean

Returns

boolean

Description

获取模型是否检查干涉检查自交


getLocalTransform

getLocalTransform(): Matrix4

Returns

Matrix4

Description

获取局部变换矩阵

Overrides

Shape.getLocalTransform


getLodData

getLodData(lodLevel): LODData

Parameters

NameType
lodLevelnumber

Returns

LODData

Description

获取当前活动的LOD级别


getLodDatas

getLodDatas(): LODData[]

Returns

LODData[]

Description

获取LOD数据列表


getMaterial

getMaterial(): BaseMaterial

Returns

BaseMaterial

材质对象

Description

获取实例材质


getMaterialId

getMaterialId(): number

Returns

number

Description

获取实例材质id


getMaterials

getMaterials(): any[]

Returns

any[]

Description

获取所有材质

Author

ss

Date

2023/03/01

Memberof

Model


getModelByInsatnceId

getModelByInsatnceId(instanceId, hasSub?): Model

Parameters

NameTypeDescription
instanceIdnumber实例id
hasSub?boolean是否查找子级模型

Returns

Model

Description

通过实例id查找模型


getModelProperties

getModelProperties(): Promise<string>

Returns

Promise<string>

Description

获取模型属性:结构: "key::value;;....key::value;;key::value"


getModelView

getModelView(viewId): ModelView

Parameters

NameType
viewIdnumber

Returns

ModelView

Description

获取特定视图


getModelViewList

getModelViewList(): ModelView[]

Returns

ModelView[]

Description

获取当前模型视图列表


getModleViews

getModleViews(idArray, nameArray): void

Parameters

NameType
idArraynumber[]
nameArraystring[]

Returns

void

Description

获取视图


getName

getName(): string

Returns

string

Description

获取模型名称

Overrides

Shape.getName


getNeedClip

getNeedClip(): boolean

Returns

boolean

Description

获取是否需要剖切

Inherited from

Shape.getNeedClip


getObjectId

getObjectId(): number

Returns

number

Description

获取ObjectId

Inherited from

Shape.getObjectId


getOctreeUpdated

getOctreeUpdated(): boolean

Returns

boolean

Description

获取是否更新octree


getOriginalColor

getOriginalColor(): Color

Returns

Color

Description

获取原始数据颜色


getOriginalMaterial

getOriginalMaterial(): BaseMaterial

Returns

BaseMaterial

Description

获取原始材质


getOriginalMatrix

getOriginalMatrix(): Matrix4

Returns

Matrix4

Description

获取原始矩阵


getParentModel

getParentModel(): Model

Returns

Model

Description

获取父级模型


getParentModelId

getParentModelId(): number

Returns

number

Description

获取父模型


getPlaceID

getPlaceID(): number

Returns

number

Description

获取相对于父节点的装配路径


getPlaceMatrix

getPlaceMatrix(): Matrix4

Returns

Matrix4

Description

得到装配矩阵


getPlcPath

getPlcPath(): string

Returns

string

Description

获取装配路径


getPosition

getPosition(): Vector3

Returns

Vector3

Description

获取位置

Inherited from

Shape.getPosition


getProperties

getProperties(): PropertySet

Returns

PropertySet

Description

获取属性管理器

Inherited from

Shape.getProperties


getPropertyStr

getPropertyStr(proJson): string

Parameters

NameType
proJsonany

Returns

string

Description

根据json获取规定格式的字符串


getProto

getProto(): Model

Returns

Model

Description

获取原型数据

Overrides

Shape.getProto


getProtoId

getProtoId(): number

Returns

number

Description

获取原型id


getRenderShapes

getRenderShapes(): RenderableShape[]

Returns

RenderableShape[]

Description

获取可渲染图形对象

Overrides

Shape.getRenderShapes


getRotation

getRotation(): Quaternion

Returns

Quaternion

Description

获取空间旋转信息

Inherited from

Shape.getRotation


getScene

getScene(): Scene

Returns

Scene

场景对象

Description

获取场景对象

Inherited from

Shape.getScene


getShapeType

getShapeType(): ShapeType

Returns

ShapeType

Description

获取Shape类型

Inherited from

Shape.getShapeType


getTotalBoundingBox

getTotalBoundingBox(): BoundingBox

Returns

BoundingBox

Description

获取Model及所有子件的totalBoundingBox


getTotalWorldBoundingBox

getTotalWorldBoundingBox(): BoundingBox

Returns

BoundingBox

Description

获取Model及所有子件的WorldTotalBoundingBox


getTransform

getTransform(): Matrix4

Returns

Matrix4

Description

获取变换矩阵


getVisible

getVisible(): boolean

Returns

boolean

Description

获取显隐状态


getWorldBoundingBox

getWorldBoundingBox(): BoundingBox

Returns

BoundingBox

Description

获取世界包围盒

Overrides

Shape.getWorldBoundingBox


getWorldPosition

getWorldPosition(): Vector3

Returns

Vector3

Description

获取世界位置


getWorldRotation

getWorldRotation(): Quaternion

Returns

Quaternion

Description

获取世界旋转


getWorldTransform

getWorldTransform(): Matrix4

Returns

Matrix4

Description

获取变换矩阵

Overrides

Shape.getWorldTransform


hasDrawData

hasDrawData(): boolean

Returns

boolean

Description

判断模型是否有绘制数据


hasInstanceMaterial

hasInstanceMaterial(): boolean

Returns

boolean

Description

获取是否存在实例材质


hasRenderData

hasRenderData(): boolean

Returns

boolean

Description

判断模型是否有渲染数据


isDirty

isDirty(): boolean

Returns

boolean

Description

判断是否需要更新数据


isOriginalVisible

isOriginalVisible(): boolean

Returns

boolean

Description

查找原始状态中的显隐


isPreSelected

isPreSelected(): boolean

Returns

boolean

Description

是否预选中

Inherited from

Shape.isPreSelected


isPrepared

isPrepared(): boolean

Returns

boolean

Description

检查模型数据是否准备好


isRegenDrawData

isRegenDrawData(): boolean

Returns

boolean

Description

获取Model是否重新生成DrawableData 标识


isSelected

isSelected(): boolean

Returns

boolean

Description

是否被选中

Inherited from

Shape.isSelected


isVisible

isVisible(orginVisible?): boolean

Parameters

NameTypeDescription
orginVisible?boolean是否获取原始可见性

Returns

boolean

Description

获取可见性

Inherited from

Shape.isVisible


load

load(): void

Returns

void

Description

加载


markDirty

markDirty(value?): void

Parameters

NameType
value?boolean

Returns

void

Description

脏标记,标记需要更新模型数据


post

post(msg): void

Parameters

NameType
msgM3DMessage

Returns

void

Description

发送消息

Overrides

Shape.post


postMaterialMessage

postMaterialMessage(): void

Returns

void

Description

发送材质消息


registerEvent

registerEvent(event): void

Parameters

NameTypeDescription
eventM3DEventM3D事件

Returns

void

Description

注册事件

Inherited from

Shape.registerEvent


removeChild

removeChild(model): void

Parameters

NameType
modelModel

Returns

void

Description

移除子模型


removeEffect

removeEffect(effectType): void

Parameters

NameType
effectTypeEffectType

Returns

void

Description

移除效果

Inherited from

Shape.removeEffect


removeEvent

removeEvent(): void

Returns

void

Description

删除事件

Inherited from

Shape.removeEvent


removeLodData

removeLodData(level): boolean

Parameters

NameType
levelnumber

Returns

boolean

Description

删除指定等级的LodData数据


removeModelView

removeModelView(viewId): void

Parameters

NameType
viewIdnumber

Returns

void

Description

移除特定视图


resetActiveLevel

resetActiveLevel(): void

Returns

void

Description

重置当前活动LOD级别


resetAlpha

resetAlpha(): void

Returns

void

Description

重置透明度


resetColor

resetColor(): void

Returns

void

Description

重置颜色


resetMovement

resetMovement(): void

Returns

void

Description

恢复到对象原始位置


restore

restore(isSub?): void

Parameters

NameType
isSub?boolean

Returns

void

Description

恢复到对象原始状态


send

send(msg): void

Parameters

NameType
msgM3DMessage

Returns

void

Description

发送消息

Overrides

Shape.send


sendClipMessage

sendClipMessage(): void

Returns

void

Description

发送剖切更新消息

Inherited from

Shape.sendClipMessage


sendEffectMessage

sendEffectMessage(): void

Returns

void

Description

发送特效更新消息

Inherited from

Shape.sendEffectMessage


setActiveLOD

setActiveLOD(level): void

Parameters

NameType
levelnumber

Returns

void

Description

设置当前LOD等级


setActiveLevel

setActiveLevel(level, viewport?): void

Parameters

NameType
levelnumber
viewport?Viewport

Returns

void

Description

设置当前活动的LOD级别


setAlpha

setAlpha(alpha): any

Parameters

NameTypeDescription
alphanumber不透明度,0-1,0为完全透明,1为不透明

Returns

any

Description

设置实例不透明度

Overrides

Shape.setAlpha

setAlpha(alpha, relSub): any

Parameters

NameTypeDescription
alphanumber不透明度,0-1,0为完全透明,1为不透明
relSubboolean是否设置子模型

Returns

any

Description

设置实例不透明度

Overrides

Shape.setAlpha


setBoundingBox

setBoundingBox(boundingbox): void

Parameters

NameType
boundingboxBoundingBox

Returns

void

Description

设置原型包围盒


setColor

setColor(color, bRecursion?): void

Parameters

NameTypeDescription
colorColorColor对象
bRecursion?boolean

Returns

void

Description

设置实例颜色

Overrides

Shape.setColor


setCompareState

setCompareState(state): void

Parameters

NameType
statenumber

Returns

void

Description

设置Model对比结果标识


setDocId

setDocId(docId): void

Parameters

NameType
docIdnumber

Returns

void

Description

设置DocId


setEffect

setEffect(effectType): any

Parameters

NameType
effectTypenumber

Returns

any

Description

设置效果类型

Overrides

Shape.setEffect

setEffect(effectType, sub): any

Parameters

NameTypeDescription
effectTypenumber
subboolean是否设置子模型

Returns

any

Description

设置效果类型

Overrides

Shape.setEffect


setFrontShow

setFrontShow(frontShow): void

Parameters

NameType
frontShowboolean

Returns

void

Description

设置是否前端显示

Inherited from

Shape.setFrontShow


setId

setId(v): void

Parameters

NameTypeDescription
vnumberShapeId

Returns

void

Description

设置id

Inherited from

Shape.setId


setInstanceId

setInstanceId(instanceId): void

Parameters

NameTypeDescription
instanceIdnumber实例Id

Returns

void

Description

设置实例Id


setIsDragger

setIsDragger(isDragger, relSub?): void

Parameters

NameType
isDraggerboolean
relSub?boolean

Returns

void

Description

设置模型是否为拖拽器模型


setIsLoaded

setIsLoaded(isLoaded, relSub?): void

Parameters

NameType
isLoadedboolean
relSub?boolean

Returns

void

Description

设置模型是否加载


setIsSelfCollision

setIsSelfCollision(isSelfCollision): void

Parameters

NameType
isSelfCollisionboolean

Returns

void

Description

设置模型是否检查干涉检查自交


setMaterial

setMaterial(material?, recursion?, isInitial?): void

Parameters

NameTypeDescription
material?BaseMaterial材质对象
recursion?boolean材质是否递归到子Model
isInitial?boolean

Returns

void

Description

设置材质(model有设置材质的接口,modelProto没有设置材质的接口)---该方法与M3D之前的版本实现不一样,出现问题,请参照之间的版本进行调整。


setMaterialId

setMaterialId(materialId): void

Parameters

NameTypeDescription
materialIdnumber材质id

Returns

void

Description

设置实例材质id


setModleViewList

setModleViewList(modelViewList): void

Parameters

NameType
modelViewListModelView[]

Returns

void

Description

设置视图列表


setName

setName(name): void

Parameters

NameType
namestring

Returns

void

Description

设置模型名称

Overrides

Shape.setName


setNeedClip

setNeedClip(val, relSub?): void

Parameters

NameType
valboolean
relSub?boolean

Returns

void

Description

设置模型是否剖切(解决Box剖切,拖拽器无法拾取问题)

Overrides

Shape.setNeedClip


setObjectId

setObjectId(id): void

Parameters

NameType
idnumber

Returns

void

Description

设置ObjectId

Inherited from

Shape.setObjectId


setOctreeUpdated

setOctreeUpdated(updated): void

Parameters

NameType
updatedboolean

Returns

void

Description

设置是否更新octree


setOriginVisible

setOriginVisible(visible, relSub?): void

Parameters

NameType
visibleboolean
relSub?boolean

Returns

void

Description

获取模型原始可见性


setOriginalMaterial

setOriginalMaterial(material): void

Parameters

NameType
materialBaseMaterial

Returns

void

Description

设置原始材质


setParentModel

setParentModel(parentModel): void

Parameters

NameType
parentModelModel

Returns

void

Description

设置父级模型


setParentModelId

setParentModelId(parentModelId): void

Parameters

NameType
parentModelIdnumber

Returns

void

Description

设置父模型


setPlaceID

setPlaceID(placeID): void

Parameters

NameType
placeIDnumber

Returns

void

Description

设置相对于父节点的装配路径


setPlaceMatrix

setPlaceMatrix(plcMatrix, isInitial?, sendMsg?): void

Parameters

NameType
plcMatrixMatrix4
isInitial?boolean
sendMsg?boolean

Returns

void

Description

设置模型相对于父节点的矩阵


setPlcPath

setPlcPath(plcPath): void

Parameters

NameType
plcPathstring

Returns

void

Description

设置装配路径


setPosition

setPosition(delta): void

Parameters

NameType
deltaVector3

Returns

void

Description

设置位置

Overrides

Shape.setPosition


setPrepared

setPrepared(state, relSub?): void

Parameters

NameType
stateboolean
relSub?boolean

Returns

void

Description

设置模型数据是否准备好


setProto

setProto(proto): void

Parameters

NameType
protoModel

Returns

void

Description

设置原型数据


setProtoId

setProtoId(protoId): void

Parameters

NameTypeDescription
protoIdnumber原型id

Returns

void

Description

设置原型id


setRotation

setRotation(delta): void

Parameters

NameType
deltaQuaternion

Returns

void

Description

设置旋转


setScene

setScene(scene): void

Parameters

NameTypeDescription
sceneScene场景对象

Returns

void

Description

设置场景对象

Inherited from

Shape.setScene


setSelected

setSelected(selected): void

Parameters

NameType
selectedboolean

Returns

void

Description

设置是否被选中

Inherited from

Shape.setSelected


setShapeType

setShapeType(v): void

Parameters

NameTypeDescription
vShapeType类型

Returns

void

Description

设置类型

Inherited from

Shape.setShapeType


setTransform

setTransform(position, rotation): any

Parameters

NameType
positionVector3
rotationQuaternion

Returns

any

Description

设置变换

setTransform(transform): any

Parameters

NameType
transformMatrix3x4

Returns

any

Description

设置变换

setTransform(position, rotation, scale): any

Parameters

NameType
positionVector3
rotationQuaternion
scalenumber

Returns

any

Description

设置变换

setTransform(position, rotation, scale): any

Parameters

NameType
positionVector3
rotationQuaternion
scaleVector3

Returns

any

Description

设置变换


setVisible

setVisible(visible): any

Parameters

NameType
visibleboolean

Returns

any

Description

设置可见性

Overrides

Shape.setVisible

setVisible(visible, relSub): any

Parameters

NameType
visibleboolean
relSubboolean

Returns

any

Description

设置模型及其子模型可见性

Overrides

Shape.setVisible


setWorldMatrix

setWorldMatrix(worldMatrix): void

Parameters

NameType
worldMatrixMatrix4

Returns

void

Description

设置世界矩阵


setWorldPosition

setWorldPosition(pos): void

Parameters

NameType
posVector3

Returns

void

Description

设置世界位置


setWorldRotation

setWorldRotation(rotation): void

Parameters

NameType
rotationQuaternion

Returns

void

Description

设置世界旋转


setWorldTransform

setWorldTransform(matrix): void

Parameters

NameType
matrixMatrix4

Returns

void

Description

设置世界矩阵

Inherited from

Shape.setWorldTransform


unLoad

unLoad(): void

Returns

void

Description

卸载


update

update(msg): void

Parameters

NameTypeDescription
msgM3DMessage消息信息

Returns

void

Description

更新消息

Overrides

Shape.update


updateRenderMaterial

updateRenderMaterial(bHasSub): void

Parameters

NameTypeDescription
bHasSubboolean是否更新材质

Returns

void

Description

更新材质


updateWorldTransform

updateWorldTransform(): void

Returns

void

Description

更新世界变换矩阵