Dandelion 1.1.2
A light-weight 3D builder for educational usage
载入中...
搜索中...
未找到
Group类 参考

表示物体组的类。 更多...

#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() [1/3]

Group::Group ( const std::string & group_name)

创建一个组只需要指定组名,加载模型数据要显式调用 load 方法。

参数
group_name要创建组的组名

◆ Group() [2/3]

Group::Group ( Group & other)
delete

禁止复制组。

◆ Group() [3/3]

Group::Group ( const Group & other)
delete

禁止复制组。

成员函数说明

◆ dump_metadata()

json Group::dump_metadata ( )

将模型以外的额外信息序列化为 JSON 对象,用 load_metadata 可以读取

返回
表示该组中所有物体信息的 JSON 对象

◆ load_metadata()

void Group::load_metadata ( const nlohmann::json & metadata)

加载以 JSON 格式保存的除 mesh 和材质以外的数据,如变换、物理属性

参数
metadata包含所有额外信息的 JSON 对象

◆ load_models()

bool Group::load_models ( const std::string & file_path)

Scene::load 调用,真正加载模型数据的函数。 这个函数只加载模型 mesh 数据,不包括变换、物理属性等 Object 层面的信息

参数
file_path要加载模型的文件路径
返回
是否加载成功

◆ save_models()

bool Group::save_models ( const std::string & file_path)

Group 保存为单个 obj 文件,包括 mesh、材质等信息

参数
file_path保存的文件路径
返回
是否保存成功

类成员变量说明

◆ id

std::size_t Group::id

组的唯一 ID。

◆ name

std::string Group::name

组名,来自加载时的文件名。

◆ next_available_id

size_t Group::next_available_id = 0
staticprivate

下一个可用的组 ID。

◆ objects

std::vector<std::unique_ptr<Object> > Group::objects

组中所有的物体。


该类的文档由以下文件生成: