Toggle navigation
ivorium
iv_components
Example project
GitHub
Main Page
Modules
Classes
Files
File List
File Members
ivorium_graphics
Elements
Transform.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
Elem.hpp
"
4
#include "
Slot.hpp
"
5
#include "
OneChildElem.hpp
"
6
7
namespace
iv
8
{
9
19
class
Transform
:
public
OneChildElem
< SlotChild >,
public
SlotChild
20
{
21
public
:
22
ClientMarker
cm
;
23
using
Elem::instance
;
24
25
Transform
(
Instance
* inst );
26
27
void
status
(
iv::TableDebugView
* view );
28
29
// initialization parameters
30
DirtyAttr< float3 >
attr_position
;
31
DirtyAttr< floatQuat >
attr_rotation
;
32
DirtyAttr< float3 >
attr_scale
;
33
DirtyAttr< float4x4 >
attr_deformation
;
34
35
DirtyAttr< float3 >
attr_outerAnchor
;
36
DirtyAttr< float3 >
attr_innerAnchor
;
37
43
DirtyAttr< bool >
attr_propagateSize
;
44
45
//
46
Transform
*
position
(
float3
);
47
Transform
*
rotation
(
floatQuat
);
48
Transform
*
scale
(
float3
);
49
Transform
*
deformation
(
float4x4
);
50
51
Transform
*
outerAnchor
(
float3
);
52
Transform
*
innerAnchor
(
float3
);
53
54
Transform
*
propagateSize
(
bool
);
55
56
protected
:
57
// Elem
58
virtual
void
first_pass_impl
(
ElementRenderer
* er )
override
;
59
virtual
void
second_pass_impl
(
ElementRenderer
* er )
override
;
60
61
private
:
62
bool
outer_transform_refresh;
63
bool
inner_transform_refresh;
64
float4x4
outer_transform;
65
float4x4
inner_transform;
66
};
67
68
}