1#ifndef DANDELION_SCENE_OBJECT_H
2#define DANDELION_SCENE_OBJECT_H
11#include <Eigen/Geometry>
12#include <spdlog/spdlog.h>
42 Object(
const std::string& object_name);
46 Object(
const Object& other) =
delete;
50 Eigen::Matrix4f
model();
61 void update(std::vector<Object*>& all_objects);
134 void refresh_BVH_boxes(
BVHNode* node);
static std::size_t next_available_id
定义 object.h:136
static bool BVH_for_collision
定义 object.h:88
KineticState backup
定义 object.h:112
Eigen::Vector3f center
定义 object.h:98
std::shared_ptr< spdlog::logger > logger
定义 object.h:138
std::string name
定义 object.h:92
GL::Mesh mesh
定义 object.h:117
void rebuild_BVH()
重新构建 BVH 。
定义 object.cpp:143
GL::LineSet BVH_boxes
定义 object.h:131
static std::function< KineticState(const KineticState &, const KineticState &)> step
用于更新物体运动状态的函数。
定义 object.h:86
void render(const Shader &shader, WorkingMode mode, bool selected)
根据指定的渲染模式渲染物体。
定义 object.cpp:109
KineticState prev_state
定义 object.h:110
float mass
定义 object.h:108
Eigen::Vector3f velocity
定义 object.h:104
Eigen::Quaternionf rotation
定义 object.h:102
void update(std::vector< Object * > &all_objects)
更新下一个时间步的运动状态。
定义 object.cpp:52
std::size_t id
定义 object.h:90
std::unique_ptr< BVH > bvh
根据这个物体建立的 BVH 。
定义 object.h:129
Eigen::Vector3f force
定义 object.h:106
bool modified
定义 object.h:96
bool visible
定义 object.h:94
Eigen::Vector3f scaling
定义 object.h:100
Object(Object &other)=delete
Eigen::Matrix4f model()
定义 object.cpp:46
对 GLSL Shader 的简单封装。
定义 shader.hpp:24
这个文件定义了一些和渲染(离线渲染或场景预览)相关的常量、枚举等。
WorkingMode
定义 rendering.hpp:46
表示的是BVH建立的树中的节点
定义 bvh.h:22
在预览场景时绘制若干线条。
定义 gl.hpp:270
用于场景预览渲染的 Mesh 类。
定义 gl.hpp:220
表示物体的质点运动学状态。
定义 kinetic_state.h:31