![]() |
Dandelion 1.1.2
A light-weight 3D builder for educational usage
|
表示物体组的类。 更多...
#include <group.h>
Public 成员函数 | |
| Group (const std::string &group_name) | |
| bool | load_models (const std::string &file_path) |
| bool | save_models (const std::string &file_path) |
| void | load_metadata (const nlohmann::json &metadata) |
| nlohmann::json | dump_metadata () |
| Group (Group &other)=delete | |
| Group (const Group &other)=delete | |
Public 属性 | |
| std::vector< std::unique_ptr< Object > > | objects |
| std::size_t | id |
| std::string | name |
Private 属性 | |
| std::shared_ptr< spdlog::logger > | logger |
静态 Private 属性 | |
| static std::size_t | next_available_id = 0 |
表示物体组的类。
一个模型文件(例如一个 obj 文件)中可以包含多个物体, 因此加载一个模型文件的结果是一个组而不是一个物体。加载完成后,组名即文件名、 各物体名即文件中各 mesh 的名称。在删除组中所有的物体后该组为空但不会被删除, 未来将实现组间转移物体和向组中添加物体的功能。
| Group::Group | ( | const std::string & | group_name | ) |
创建一个组只需要指定组名,加载模型数据要显式调用 load 方法。
| group_name | 要创建组的组名 |
|
delete |
禁止复制组。
|
delete |
禁止复制组。
| json Group::dump_metadata | ( | ) |
将模型以外的额外信息序列化为 JSON 对象,用 load_metadata 可以读取
| void Group::load_metadata | ( | const nlohmann::json & | metadata | ) |
加载以 JSON 格式保存的除 mesh 和材质以外的数据,如变换、物理属性
| metadata | 包含所有额外信息的 JSON 对象 |
| bool Group::load_models | ( | const std::string & | file_path | ) |
被 Scene::load 调用,真正加载模型数据的函数。 这个函数只加载模型 mesh 数据,不包括变换、物理属性等 Object 层面的信息
| file_path | 要加载模型的文件路径 |
| bool Group::save_models | ( | const std::string & | file_path | ) |
| std::size_t Group::id |
组的唯一 ID。
| std::string Group::name |
组名,来自加载时的文件名。
|
staticprivate |
下一个可用的组 ID。
| std::vector<std::unique_ptr<Object> > Group::objects |
组中所有的物体。