OpenSceneGraph 3.6.5
DOFTransform
Go to the documentation of this file.
1/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield
2 *
3 * This library is open source and may be redistributed and/or modified under
4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5 * (at your option) any later version. The full license is in LICENSE file
6 * included with this distribution, and on the openscenegraph.org website.
7 *
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * OpenSceneGraph Public License for more details.
12*/
13
14#ifndef OSGSIM_DOFTRANSFORM
15#define OSGSIM_DOFTRANSFORM 1
16
17//base class:
18#include <osg/Transform>
19
20#include <osgSim/Export>
21
22namespace osgSim {
23
26{
27 public:
30
33
35
36 virtual void traverse(osg::NodeVisitor& nv);
37
38
39 void setMinHPR(const osg::Vec3& hpr) { _minHPR = hpr;}
40 const osg::Vec3& getMinHPR() const { return _minHPR;}
41
42 void setMaxHPR(const osg::Vec3& hpr) {_maxHPR = hpr;}
43 const osg::Vec3& getMaxHPR() const { return _maxHPR;}
44
45 void setIncrementHPR(const osg::Vec3& hpr) {_incrementHPR = hpr;}
46 const osg::Vec3& getIncrementHPR() const { return _incrementHPR;}
47
48 void setCurrentHPR(const osg::Vec3& hpr) {_currentHPR = hpr; dirtyBound(); }
49 const osg::Vec3& getCurrentHPR() const {return _currentHPR;}
50
51 void updateCurrentHPR(const osg::Vec3& hpr);
52
53
54 void setMinTranslate(const osg::Vec3& translate) {_minTranslate = translate; }
55 const osg::Vec3& getMinTranslate() const { return _minTranslate;}
56
57 void setMaxTranslate(const osg::Vec3& translate) {_maxTranslate = translate; }
58 const osg::Vec3& getMaxTranslate() const { return _maxTranslate;}
59
60 void setIncrementTranslate(const osg::Vec3& translate) { _incrementTranslate = translate; }
62
63 void setCurrentTranslate(const osg::Vec3& translate){ _currentTranslate = translate; dirtyBound(); }
64 inline const osg::Vec3& getCurrentTranslate() const { return _currentTranslate;}
65
66 void updateCurrentTranslate(const osg::Vec3& translate);
67
68
69 void setMinScale(const osg::Vec3& scale) { _minScale = scale;}
70 const osg::Vec3& getMinScale() const { return _minScale;}
71
72 void setMaxScale(const osg::Vec3& scale) { _maxScale = scale;}
73 const osg::Vec3& getMaxScale() const { return _maxScale;}
74
75 void setIncrementScale(const osg::Vec3& scale) { _incrementScale = scale;}
77
78 void setCurrentScale(const osg::Vec3& scale) { _currentScale = scale; dirtyBound(); }
79 inline const osg::Vec3& getCurrentScale() const { return _currentScale;}
80
81 void updateCurrentScale(const osg::Vec3& scale);
82
83
84 void setPutMatrix(const osg::Matrix& put) { _Put = put; dirtyBound(); }
85 inline const osg::Matrix& getPutMatrix() const {return _Put;}
86
87 void setInversePutMatrix(const osg::Matrix& inversePut) { _inversePut = inversePut; dirtyBound(); }
88 inline const osg::Matrix& getInversePutMatrix() const {return _inversePut;}
89
90 void setLimitationFlags(unsigned long flags) { _limitationFlags = flags;}
91 inline unsigned long getLimitationFlags() const {return _limitationFlags;}
92
102
103 void setHPRMultOrder(MultOrder order) { _multOrder = order; }
104 inline MultOrder getHPRMultOrder() const { return _multOrder;}
105
106 void setAnimationOn(bool do_animate);
107 inline bool getAnimationOn() const { return _animationOn; }
108
109 void animate(float deltaTime);
110
112
114
115 protected:
116
117 virtual ~DOFTransform() {}
118
121
126
131
136
139
140 unsigned long _limitationFlags;
141 /* bits from left to right
142 0 = x translation limited (2^31)
143 1 = y translation limited (2^30)
144 2 = z translation limited (2^29)
145 3 = pitch limited (2^28)
146 4 = roll limited (2^27)
147 5 = yaw limited (2^26)
148 6 = x scale limited (2^25)
149 7 = y scale limited (2^24)
150 8 = z scale limited (2^23)
151
152 else reserved
153 */
154
168 unsigned short _increasingFlags;
169
171
172 };
173
174}
175#endif
Vec3f Vec3
Definition Vec3:21
Matrixd Matrix
Definition Matrix:27
The osgSim library is a NodeKit that extends the core scene graph to support nodes and drawables that...
Definition BlinkSequence:27
Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
void dirtyBound()
Mark this node's bounding sphere dirty.
Visitor for type safe operations on osg::Nodes.
Definition NodeVisitor:82
A Transform is a group node for which all children are transformed by a 4x4 matrix.
Definition Transform:75
void setPutMatrix(const osg::Matrix &put)
Definition DOFTransform:84
virtual void traverse(osg::NodeVisitor &nv)
Traverse downwards : calls children's accept method with NodeVisitor.
DOFTransform()
constructor
DOFTransform(const DOFTransform &dof, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
copy constructor
osg::Vec3 _maxTranslate
Definition DOFTransform:128
osg::Vec3 _currentHPR
Definition DOFTransform:124
void setLimitationFlags(unsigned long flags)
Definition DOFTransform:90
void setAnimationOn(bool do_animate)
const osg::Vec3 & getIncrementTranslate() const
Definition DOFTransform:61
void setMaxTranslate(const osg::Vec3 &translate)
Definition DOFTransform:57
virtual ~DOFTransform()
Definition DOFTransform:117
osg::Vec3 _minTranslate
Definition DOFTransform:127
void setMinScale(const osg::Vec3 &scale)
Definition DOFTransform:69
unsigned long getLimitationFlags() const
Definition DOFTransform:91
void setIncrementTranslate(const osg::Vec3 &translate)
Definition DOFTransform:60
void setHPRMultOrder(MultOrder order)
Definition DOFTransform:103
void animate(float deltaTime)
osg::Vec3 _currentScale
Definition DOFTransform:134
const osg::Vec3 & getMinTranslate() const
Definition DOFTransform:55
const osg::Vec3 & getCurrentTranslate() const
Definition DOFTransform:64
const osg::Vec3 & getMaxHPR() const
Definition DOFTransform:43
void setInversePutMatrix(const osg::Matrix &inversePut)
Definition DOFTransform:87
void setCurrentScale(const osg::Vec3 &scale)
Definition DOFTransform:78
void setIncrementHPR(const osg::Vec3 &hpr)
Definition DOFTransform:45
void setCurrentTranslate(const osg::Vec3 &translate)
Definition DOFTransform:63
void setMaxScale(const osg::Vec3 &scale)
Definition DOFTransform:72
const osg::Vec3 & getIncrementScale() const
Definition DOFTransform:76
osg::Vec3 _maxScale
Definition DOFTransform:133
const osg::Vec3 & getMaxTranslate() const
Definition DOFTransform:58
bool getAnimationOn() const
Definition DOFTransform:107
MultOrder getHPRMultOrder() const
Definition DOFTransform:104
const osg::Vec3 & getIncrementHPR() const
Definition DOFTransform:46
unsigned int _previousTraversalNumber
Definition DOFTransform:119
osg::Matrix _inversePut
Definition DOFTransform:138
osg::Vec3 _incrementHPR
Definition DOFTransform:125
const osg::Matrix & getPutMatrix() const
Definition DOFTransform:85
const osg::Matrix & getInversePutMatrix() const
Definition DOFTransform:88
MultOrder _multOrder
Definition DOFTransform:170
void setCurrentHPR(const osg::Vec3 &hpr)
Definition DOFTransform:48
void updateCurrentScale(const osg::Vec3 &scale)
const osg::Vec3 & getMaxScale() const
Definition DOFTransform:73
osg::Vec3 _incrementScale
Definition DOFTransform:135
osg::Vec3 _maxHPR
Definition DOFTransform:123
virtual bool computeWorldToLocalMatrix(osg::Matrix &matrix, osg::NodeVisitor *nv) const
void setMinTranslate(const osg::Vec3 &translate)
Definition DOFTransform:54
META_Node(osgSim, DOFTransform)
virtual bool computeLocalToWorldMatrix(osg::Matrix &matrix, osg::NodeVisitor *nv) const
MultOrder
Definition DOFTransform:94
@ HPR
Definition DOFTransform:97
@ RPH
Definition DOFTransform:99
@ HRP
Definition DOFTransform:98
@ RHP
Definition DOFTransform:100
@ PRH
Definition DOFTransform:95
@ PHR
Definition DOFTransform:96
bool _animationOn
Definition DOFTransform:155
const osg::Vec3 & getCurrentScale() const
Definition DOFTransform:79
void setIncrementScale(const osg::Vec3 &scale)
Definition DOFTransform:75
unsigned long _limitationFlags
Definition DOFTransform:140
osg::Vec3 _incrementTranslate
Definition DOFTransform:130
osg::Vec3 _minScale
Definition DOFTransform:132
const osg::Vec3 & getMinHPR() const
Definition DOFTransform:40
const osg::Vec3 & getMinScale() const
Definition DOFTransform:70
void setMinHPR(const osg::Vec3 &hpr)
Definition DOFTransform:39
osg::Vec3 _minHPR
Definition DOFTransform:122
osg::Vec3 _currentTranslate
Definition DOFTransform:129
osg::Matrix _Put
Definition DOFTransform:137
void updateCurrentHPR(const osg::Vec3 &hpr)
unsigned short _increasingFlags
flags indicating whether value is incerasing or decreasing in animation bits form right to left,...
Definition DOFTransform:168
double _previousTime
Definition DOFTransform:120
void updateCurrentTranslate(const osg::Vec3 &translate)
void setMaxHPR(const osg::Vec3 &hpr)
Definition DOFTransform:42
const osg::Vec3 & getCurrentHPR() const
Definition DOFTransform:49
#define OSGSIM_EXPORT
Definition Export:38

osg logo
Generated at Sun Jul 27 2025 00:00:00 for the OpenSceneGraph by doxygen 1.14.0.