create_scene_3dT_create_scene_3dCreateScene3dCreateScene3dcreate_scene_3d创建场景三维(算子)
名称
create_scene_3dT_create_scene_3dCreateScene3dCreateScene3dcreate_scene_3d — 创建可视化三维对象集合所需的数据结构。
签名
Herror T_create_scene_3d(Htuple* Scene3D)
def create_scene_3d() -> HHandle
描述
create_scene_3dcreate_scene_3dCreateScene3dCreateScene3dCreateScene3dcreate_scene_3d 用于创建一个新的 3D 场景,并将结果返回给
Scene3DScene3DScene3DScene3Dscene3Dscene_3d。
三维场景是由三维对象模型、相机和光源实例组成的集合。使用 add_scene_3d_instanceadd_scene_3d_instanceAddScene3dInstanceAddScene3dInstanceAddScene3dInstanceadd_scene_3d_instance、add_scene_3d_cameraadd_scene_3d_cameraAddScene3dCameraAddScene3dCameraAddScene3dCameraadd_scene_3d_camera 和 add_scene_3d_lightadd_scene_3d_lightAddScene3dLightAddScene3dLightAddScene3dLightadd_scene_3d_light 算子将这些对象添加到 Scene3DScene3DScene3DScene3Dscene3Dscene_3d 中。使用 display_scene_3ddisplay_scene_3dDisplayScene3dDisplayScene3dDisplayScene3ddisplay_scene_3d 可在窗口中显示三维场景。
场景中的每个实例都关联有一个姿态(通过 add_scene_3d_instanceadd_scene_3d_instanceAddScene3dInstanceAddScene3dInstanceAddScene3dInstanceadd_scene_3d_instance 或 set_scene_3d_instance_poseset_scene_3d_instance_poseSetScene3dInstancePoseSetScene3dInstancePoseSetScene3dInstancePoseset_scene_3d_instance_pose 设置),该姿态表示该实例在场景坐标系 SCS 中的位置。可通过
set_scene_3d_to_world_poseset_scene_3d_to_world_poseSetScene3dToWorldPoseSetScene3dToWorldPoseSetScene3dToWorldPoseset_scene_3d_to_world_pose 设置场景在世界坐标系 WCS 中的姿态。可通过 set_scene_3d_camera_poseset_scene_3d_camera_poseSetScene3dCameraPoseSetScene3dCameraPoseSetScene3dCameraPoseset_scene_3d_camera_pose 设置相机在世界坐标系中的姿态,并定义相机坐标系 CCS。
可以通过 set_scene_3d_paramset_scene_3d_paramSetScene3dParamSetScene3dParamSetScene3dParamset_scene_3d_param 设置影响整个场景的参数,例如渲染质量。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
此算子返回一个句柄。请注意,即使该句柄被用作特定算子的输入参数,这些算子仍可能改变此句柄类型的实例状态。
参数
Scene3DScene3DScene3DScene3Dscene3Dscene_3d (输出控制) scene_3d → HScene3D, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
3D 场景的句柄。
示例(HDevelop)
* Create a new scene
create_scene_3d (Scene)
* A scene needs at least one camera. The default pose
* of a camera is located at the origin. The pose can be
* changed with set_scene_3d_camera_pose.
add_scene_3d_camera (Scene, CameraParam, CameraIndex)
* Further a scene needs at least one light.
add_scene_3d_light (Scene, [42.0, 42.0, 42.0], 'point_light', LightIndex)
*
* To add an object, add_scene_3d_instance is called with a
* 3d object model and a pose. add_scene_3d returns an InstanceIndex
* which must be used to reference this instance in subsequent calls.
add_scene_3d_instance (Scene, ObjectModel3D, Pose, InstanceIndex)
* Set its color.
set_scene_3d_instance_param (Scene, InstanceIndex, 'color', 'green')
* Display the scene.
display_scene_3d (WindowHandle, Scene, CameraIndex)
clear_scene_3d (Scene)
结果
create_scene_3dcreate_scene_3dCreateScene3dCreateScene3dCreateScene3dcreate_scene_3d 返回 2 (H_MSG_TRUE),当场景创建成功。如有必要,则抛出异常。
可能的后继
add_scene_3d_instanceadd_scene_3d_instanceAddScene3dInstanceAddScene3dInstanceAddScene3dInstanceadd_scene_3d_instance,
add_scene_3d_lightadd_scene_3d_lightAddScene3dLightAddScene3dLightAddScene3dLightadd_scene_3d_light,
add_scene_3d_cameraadd_scene_3d_cameraAddScene3dCameraAddScene3dCameraAddScene3dCameraadd_scene_3d_camera,
set_scene_3d_paramset_scene_3d_paramSetScene3dParamSetScene3dParamSetScene3dParamset_scene_3d_param
另见
clear_scene_3dclear_scene_3dClearScene3dClearScene3dClearScene3dclear_scene_3d
模块
三维计量