三维模型变换

1、三维模型变换

案例位置examples/Cuda/QtGUI/Qt_SelectNode

功能介绍:该案例主要向用户展示PeriDyno引擎中,三维模型的变换,包括平移变换,缩放变换和旋转变换。

案例说明: 案例中展示了两个三维模型,选择选项卡上的Translate、Scale、Rotate按钮可以通过鼠标直接在视图上对模型进行基本的变换。

  • 平移变换:
  • 缩放变换:
  • 旋转变换:

2、程序实现

接下来介绍案例的实现过程:

  • 创建球体模型:

//Create a sphere
auto sphere0 = scn->addNode(std::make_shared<SphereModel<DataType3f>>());
sphere0->varLocation()->setValue(Vec3f(-0.5f, 0.1f, 0.0f));
sphere0->varRadius()->setValue(0.2f);

//Create a sphere
auto sphere1 = scn->addNode(std::make_shared<SphereModel<DataType3f>>());
sphere1->varLocation()->setValue(Vec3f(0.5f, 0.1f, 0.0f));
sphere1->varRadius()->setValue(0.2f);
	

球体模型继承于ParametricModel类。ParametricModel类封装了这三种操作:

DEF_VAR(Coord, Location, 0, "Node location");
DEF_VAR(Coord, Rotation, 0, "Node rotation");
DEF_VAR(Coord, Scale, Coord(1), "Node scale");