-
Notifications
You must be signed in to change notification settings - Fork 0
/
SJoint.h
90 lines (63 loc) · 2.15 KB
/
SJoint.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#pragma once
#include "stdafx.h"
using namespace irr;
using namespace System;
using namespace IrrlichtLime::Core;
namespace IrrlichtLime {
namespace Scene {
public ref class SJoint
{
public:
void AddChildren(SJoint^ children);
property Matrix^ LocalMatrix { Matrix^ get(); void set(Matrix^); }
property Matrix^ GlobalMatrix { Matrix^ get(); void set(Matrix^); }
property Vector3Df^ Animatedposition { Vector3Df^ get(); void set(Vector3Df^); }
property Quaternion^ Animatedrotation { Quaternion^ get(); void set(Quaternion^); }
property Vector3Df^ Animatedscale { Vector3Df^ get(); void set(Vector3Df^); }
property List<SJoint^>^ Children { List<SJoint^>^ get(); };
property String^ Name { String^ get(); void set(String^); }
private:
List<SJoint^>^ _Children = gcnew List<SJoint^>();
internal:
static SJoint^ Wrap(scene::ISkinnedMesh::SJoint* ref);
SJoint(scene::ISkinnedMesh::SJoint* ref);
scene::ISkinnedMesh::SJoint* m_Joint;
/*SJoint() : UseAnimationFrom(0), GlobalSkinningSpace(false),
positionHint(-1), scaleHint(-1), rotationHint(-1)
{
}
//! The name of this joint
core::stringc Name;
//! Local matrix of this joint
core::matrix4 LocalMatrix;
//! List of child joints
core::array<SJoint*> Children;
//! List of attached meshes
core::array<u32> AttachedMeshes;
//! Animation keys causing translation change
core::array<SPositionKey> PositionKeys;
//! Animation keys causing scale change
core::array<SScaleKey> ScaleKeys;
//! Animation keys causing rotation change
core::array<SRotationKey> RotationKeys;
//! Skin weights
core::array<SWeight> Weights;
//! Unnecessary for loaders, will be overwritten on finalize
core::matrix4 GlobalMatrix;
core::matrix4 GlobalAnimatedMatrix;
core::matrix4 LocalAnimatedMatrix;
core::vector3df Animatedposition;
core::vector3df Animatedscale;
core::quaternion Animatedrotation;
core::matrix4 GlobalInversedMatrix; //the x format pre-calculates this
private:
//! Internal members used by CSkinnedMesh
friend class CSkinnedMesh;
SJoint *UseAnimationFrom;
bool GlobalSkinningSpace;
s32 positionHint;
s32 scaleHint;
s32 rotationHint;*/
};
} // end namespace Scene
} // end namespace IrrlichtLime