SelectionBase

射线选择类的基础,用于拾取模型。

Constructor

new SelectionBase(sceneManager)

Parameters

param
type
description

sceneManager

一个场景管理类实例

Properties

name
type
description

model

被检测的模型类

isMobile

bool

是否为移动(只读)

selectionMeshMaterial

拾取3D图元的材质

selectionLineMaterial

拾取2D图元(线)的材质

mouse

Object

鼠标的按键类型(只读)

{
   LEFT: 0,
   MIDDLE: 1,
   RIGHT: 2
}

currentMouse

number

当前鼠标的按键码

rayVisible

bool

不可见的图元是否能被检测

enabled

bool

是否开启选择

isPointerMoved

bool

检测是否鼠标或者手指移动了

Methods

setFilter(func)

设置过滤函数。

Parameters

param
type
description

func

过滤函数

removeFilter()

移除过滤函数。

setModel(model)

设置拾取模型。

Parameters

param
type
description

model

待拾取的模型

pickObject(pointerEvent)

指针拾取。

Parameters

param
type
description

pointerEvent

PointerEvent

指针事件

Returns

IntersectionResult 或者 null

screenToStandard(pointerEvent)

屏幕坐标到标准坐标系变换。

Parameters

param
type
description

pointerEvent

PointerEvent

指针事件

Returns

Vector2

pointerDownEvent(pointerEvent)

指针按下事件,如若重构需要继承。

Parameters

param
type
description

pointerEvent

PointerEvent

指针事件

 pointerDownEvent(pointerEvent){
     super.pointerDownEvent();
     //your code ...
 }

Returns

Vector2

pointerMoveEvent(pointerEvent)

指针移动事件,抽象函数,可以根据需要进行重构。

Parameters

param
type
description

pointerEvent

PointerEvent

指针事件

pointerUpEvent(pointerEvent)

指针抬起事件,如若重构需要继承。

Parameters

param
type
description

pointerEvent

PointerEvent

指针事件

 pointerUpEvent(pointerEvent){
     super.pointerUpEvent();
     //your code ...
 }

Returns

Vector2

filter(array)

过滤器,用于对射线选择结果进行筛选。

Parameters

param
type
description

array

选中结果的数组

Returns

IntersectionResult []

updateRay(pointerEvent)

更新射线。

Parameters

param
type
description

pointerEvent

PointerEvent

指针事件

getInstanceByIntersectionResult(intersectionResult, hasEdgeLine =true)

得到射线检测结果的实例。

Parameters

param
type
description

intersectionResult

射线检测的结果

hasEdgeLine

bool

是否需要边缘线

Returns

Object3D 或者 null

getInstanceHierarchyByIntersectionResult(intersectionResult, hasEdgeLine=true)

得到射线检测结果的实例,并且包含该实例的层级结构。

Parameters

param
type
description

intersectionResult

射线检测的结果

hasEdgeLine

bool

是否需要边缘线

Returns

Object 或 null。

getUniqueIdByIntersectionResult(intersectionResult)

得到射线检测结果的UniqueId。

Parameters

param
type
description

intersectionResult

射线检测的结果

Returns

UniqueId,类型string。

getNodeIndexByIntersectionResult(intersectionResult)

得到射线检测结果的节点索引。

Parameters

param
type
description

intersectionResult

射线检测的结果

Returns

Object

最后更新于

这有帮助吗?