SelectionBase
射线选择类的基础,用于拾取模型。
Constructor
new SelectionBase(sceneManager)
Parameters
sceneManager
一个场景管理类实例
Properties
model
被检测的模型类
isMobile
bool
是否为移动(只读)
selectionMeshMaterial
拾取3D图元的材质
selectionLineMaterial
拾取2D图元(线)的材质
mouse
Object
鼠标的按键类型(只读)
currentMouse
number
当前鼠标的按键码
rayVisible
bool
不可见的图元是否能被检测
enabled
bool
是否开启选择
isPointerMoved
bool
检测是否鼠标或者手指移动了
Methods
setFilter(func)
设置过滤函数。
Parameters
func
过滤函数
removeFilter()
移除过滤函数。
setModel(model)
设置拾取模型。
Parameters
model
待拾取的模型
pickObject(pointerEvent)
指针拾取。
Parameters
pointerEvent
PointerEvent
指针事件
Returns
screenToStandard(pointerEvent)
屏幕坐标到标准坐标系变换。
Parameters
pointerEvent
PointerEvent
指针事件
Returns
pointerDownEvent(pointerEvent)
指针按下事件,如若重构需要继承。
Parameters
pointerEvent
PointerEvent
指针事件
Returns
pointerMoveEvent(pointerEvent)
指针移动事件,抽象函数,可以根据需要进行重构。
Parameters
pointerEvent
PointerEvent
指针事件
pointerUpEvent(pointerEvent)
指针抬起事件,如若重构需要继承。
Parameters
pointerEvent
PointerEvent
指针事件
Returns
filter(array)
过滤器,用于对射线选择结果进行筛选。
Parameters
array
选中结果的数组
Returns
updateRay(pointerEvent)
更新射线。
Parameters
pointerEvent
PointerEvent
指针事件
getInstanceByIntersectionResult(intersectionResult, hasEdgeLine =true)
得到射线检测结果的实例。
Parameters
intersectionResult
射线检测的结果
hasEdgeLine
bool
是否需要边缘线
Returns
Object3D 或者 null
getInstanceHierarchyByIntersectionResult(intersectionResult, hasEdgeLine=true)
得到射线检测结果的实例,并且包含该实例的层级结构。
Parameters
intersectionResult
射线检测的结果
hasEdgeLine
bool
是否需要边缘线
Returns
Object 或 null。
getUniqueIdByIntersectionResult(intersectionResult)
得到射线检测结果的UniqueId。
Parameters
intersectionResult
射线检测的结果
Returns
UniqueId,类型string。
getNodeIndexByIntersectionResult(intersectionResult)
得到射线检测结果的节点索引。
Parameters
intersectionResult
射线检测的结果
Returns
Object
最后更新于
这有帮助吗?