PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
skinned_morph_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 EntityId weights_source = EntityId::Invalid();
18 bool visible = true;
19};
20
21inline Node& operator<<(Node& node, const SkinnedMorphMeshRenderer& skinned_morph_mesh_renderer)
22{
23 node["mesh"] << skinned_morph_mesh_renderer.mesh;
24 node["material"] << skinned_morph_mesh_renderer.material;
25 node["joints"] << skinned_morph_mesh_renderer.joints;
26 node["weightsSource"] << skinned_morph_mesh_renderer.weights_source;
27 node["visible"] << skinned_morph_mesh_renderer.visible;
28 return node;
29}
30
31inline const Node& operator>>(const Node& node, SkinnedMorphMeshRenderer& skinned_morph_mesh_renderer)
32{
33 node["mesh"] >> skinned_morph_mesh_renderer.mesh;
34 node["material"] >> skinned_morph_mesh_renderer.material;
35 if (node.HasProperty("joints"))
36 {
37 node["joints"] >> skinned_morph_mesh_renderer.joints;
38 }
39 else
40 {
41 skinned_morph_mesh_renderer.joints.clear();
42 }
43 if (node.HasProperty("weightsSource"))
44 {
45 node["weightsSource"] >> skinned_morph_mesh_renderer.weights_source;
46 }
47 else
48 {
49 skinned_morph_mesh_renderer.weights_source = EntityId::Invalid();
50 }
51 node["visible"] >> skinned_morph_mesh_renderer.visible;
52 return node;
53}
54} // namespace pixelbullet
Definition entity_id.h:11
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_morph_mesh_renderer.h:13