gldemo
Trail.h
1 #pragma once
2 #include "Component.h"
3 #include "LineRenderer.h"
4 #include <vector>
5 #include <glm/glm.hpp>
6 #include <glm/gtc/matrix_transform.hpp>
7 #include <glm/gtc/type_ptr.hpp>
8 #include <glm/gtx/quaternion.hpp>
9 #include <glm/gtx/matrix_decompose.hpp>
10 
11 class Trail :
12  public Component
13 {
14 
15 public:
16  QString name() const override { return "Trail"; };
17  std::vector<glm::mat4> keypoints;
18  LineRenderer* renderer = NULL;
19 
20  void onUpdate() override;
21 
22  // 检查子物体有没有更新
23  bool compareDiff();
24 
25  // 更新对应的轨迹渲染器
26  void updateRenderer();
27 
28  // 插值(得到的是local2world)
29  glm::mat4 interpolate(float t);
30 
31  // 姿态矩阵平滑插值
32  glm::mat4 slerp(glm::mat4 m1, glm::mat4 m2, float t);
33 
34 };
35 
QString name() const override
该类型的名称,应由子类重写
Definition: Trail.h:16
组件的基类。里面的事件会由widget调用
Definition: Component.h:15
渲染一系列线段
Definition: LineRenderer.h:10
Definition: Trail.h:11
void onUpdate() override
每帧被调用一次
Definition: Trail.cpp:4