PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
skinned_mesh_renderer.h
1#pragma once
2
3#include "pixelbullet/filesystem/virtual_path.h"
4#include "pixelbullet/filesystem/virtual_path_serialization.h"
5#include "pixelbullet/scene/entity_id.h"
6#include "pixelbullet/serialization/node.h"
7
8#include <vector>
9
10namespace pixelbullet
11{
13{
14 VirtualPath mesh;
15 VirtualPath material;
16 std::vector<EntityId> joints;
17 bool visible = true;
18};
19
20inline Node& operator<<(Node& node, const SkinnedMeshRenderer& skinned_mesh_renderer)
21{
22 node["mesh"] << skinned_mesh_renderer.mesh;
23 node["material"] << skinned_mesh_renderer.material;
24 node["joints"] << skinned_mesh_renderer.joints;
25 node["visible"] << skinned_mesh_renderer.visible;
26 return node;
27}
28
29inline const Node& operator>>(const Node& node, SkinnedMeshRenderer& skinned_mesh_renderer)
30{
31 node["mesh"] >> skinned_mesh_renderer.mesh;
32 node["material"] >> skinned_mesh_renderer.material;
33 if (node.HasProperty("joints"))
34 {
35 node["joints"] >> skinned_mesh_renderer.joints;
36 }
37 else
38 {
39 skinned_mesh_renderer.joints.clear();
40 }
41 node["visible"] >> skinned_mesh_renderer.visible;
42 return node;
43}
44} // namespace pixelbullet
Represents a hierarchical node capable of storing various data types and supporting YAML serializatio...
Definition node.h:45
Definition virtual_path.h:10
Definition skinned_mesh_renderer.h:13