|
AnyCAD Rapid API 2026
Help you to create a better world!
|
射线拾取器类 更多...
Public 成员函数 | |
| Raycaster (global::System.IntPtr cPtr, bool cMemoryOwn) | |
| 仅供内部使用 | |
| Raycaster () | |
| 默认构造函数 | |
| Raycaster (Camera camera, EnumShapeFilter pickFilter, int x, int y) | |
| 构造函数(屏幕坐标版本) | |
| Raycaster (Camera camera, EnumShapeFilter pickFilter, Ray ray, int x, int y) | |
| 构造函数(指定射线版本) | |
| Ray | GetRay () |
| void | SetRay (Ray val) |
| AABox | GetRayBox () |
| void | SetRayBox (AABox val) |
| Vector2 | GetXY () |
| void | SetXY (Vector2 val) |
| uint | GetTabOrder () |
| void | SetTabOrder (uint val) |
| override bool | FilterByClipPlane (Plane plane) |
| 根据裁剪平面过滤(重写基类方法) | |
| void | Initialize (Camera camera, EnumShapeFilter pickFilter, int x, int y) |
| 初始化射线拾取器 | |
| uint | Sort () |
| 对相交结果按距离排序 | |
| PickedItem | GetTopItem () |
| 获取最近的相交项 | |
| bool | TestThreshold (Vector3 pt) |
| 测试点是否在阈值范围内 | |
| uint | HitTest (Scene scene) |
| 对场景进行命中测试 | |
| uint | HitTest (SceneManager sceneManager) |
| 对场景管理器进行命中测试 | |
| uint | HitTest (SceneNode node) |
| 对单个场景节点进行命中测试 | |
| uint | HitTest (SceneManager sceneManager, bool respectPickable) |
| 对场景管理器进行命中测试(带选项) | |
Public 成员函数 继承自 AnyCAD.Foundation.PickCaster | |
| PickCaster (global::System.IntPtr cPtr, bool cMemoryOwn) | |
| 仅供内部使用 | |
| void | Dispose () |
| PickCaster () | |
| 默认构造函数 | |
| PickCaster (Camera camera, EnumShapeFilter pickFilter) | |
| 构造函数 | |
| PickedId | GetId () |
| void | SetId (PickedId val) |
| bool | GetPickOcclusion () |
| void | SetPickOcclusion (bool val) |
| Matrix4d | GetTransform () |
| void | SetTransform (Matrix4d val) |
| virtual void | Initialize (Camera camera, EnumShapeFilter pickFilter) |
| 初始化拾取器 | |
| void | Clear () |
| 清空所有相交结果 | |
| uint | GetCount () |
| 获取相交结果数量 | |
射线拾取器类
实现基于射线的拾取功能,从屏幕点或指定射线出发,检测与场景对象的相交。 支持距离排序、阈值测试等功能,是最常用的拾取方式。 继承自 PickCaster。
| AnyCAD.Foundation.Raycaster.Raycaster | ( | Camera | camera, |
| EnumShapeFilter | pickFilter, | ||
| int | x, | ||
| int | y ) |
构造函数(屏幕坐标版本)
| camera | 相机对象 |
| pickFilter | 拾取过滤器 |
| x | 屏幕X坐标(像素) |
| y | 屏幕Y坐标(像素) |
根据屏幕坐标创建从相机出发的射线
| AnyCAD.Foundation.Raycaster.Raycaster | ( | Camera | camera, |
| EnumShapeFilter | pickFilter, | ||
| Ray | ray, | ||
| int | x, | ||
| int | y ) |
构造函数(指定射线版本)
| camera | 相机对象 |
| pickFilter | 拾取过滤器 |
| ray | 拾取射线对象 |
| x | 屏幕X坐标 |
| y | 屏幕Y坐标 |
使用指定的射线进行拾取
|
virtual |
| PickedItem AnyCAD.Foundation.Raycaster.GetTopItem | ( | ) |
获取最近的相交项
返回排序后的第一个相交项(如果已排序)
| uint AnyCAD.Foundation.Raycaster.HitTest | ( | Scene | scene | ) |
对场景进行命中测试
| scene | 场景对象智能指针 |
遍历场景中所有可见节点,检测与射线的相交
| uint AnyCAD.Foundation.Raycaster.HitTest | ( | SceneManager | sceneManager | ) |
对场景管理器进行命中测试
| sceneManager | 场景管理器指针 |
遍历所有场景中的节点,检测与射线的相交
| uint AnyCAD.Foundation.Raycaster.HitTest | ( | SceneManager | sceneManager, |
| bool | respectPickable ) |
对场景管理器进行命中测试(带选项)
| sceneManager | 场景管理器指针 |
| respectPickable | 是否遵循节点上的Pickable属性 |
如果respectPickable为true,则跳过不可拾取的节点
| uint AnyCAD.Foundation.Raycaster.HitTest | ( | SceneNode | node | ) |
对单个场景节点进行命中测试
| node | 场景节点指针 |
递归遍历节点及其子节点,检测相交
| void AnyCAD.Foundation.Raycaster.Initialize | ( | Camera | camera, |
| EnumShapeFilter | pickFilter, | ||
| int | x, | ||
| int | y ) |
初始化射线拾取器
| camera | 相机对象 |
| pickFilter | 拾取过滤器 |
| x | 屏幕X坐标 |
| y | 屏幕Y坐标 |
根据屏幕坐标创建射线并设置相关参数
| uint AnyCAD.Foundation.Raycaster.Sort | ( | ) |
对相交结果按距离排序
将所有相交项按距离相机的远近排序,最近的在前
| bool AnyCAD.Foundation.Raycaster.TestThreshold | ( | Vector3 | pt | ) |
测试点是否在阈值范围内
| pt | 测试点坐标 |
检查点到射线的距离是否小于ScreenThreshold