openscenegraph
include
osg
MatrixTransform
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 OSG_MATRIXTRANSFORM
15
#define OSG_MATRIXTRANSFORM 1
16
17
#include <
osg/Transform
>
18
19
namespace
osg
{
20
25
class
OSG_EXPORT
MatrixTransform
:
public
Transform
26
{
27
public :
28
29
30
MatrixTransform
();
31
33
MatrixTransform
(
const
MatrixTransform
&,
const
CopyOp
& copyop=
CopyOp::SHALLOW_COPY
);
34
35
MatrixTransform
(
const
Matrix
& matix);
36
37
META_Node
(
osg
,
MatrixTransform
);
38
39
virtual
MatrixTransform
*
asMatrixTransform
() {
return
this
; }
40
virtual
const
MatrixTransform
*
asMatrixTransform
()
const
{
return
this
; }
41
42
44
void
setMatrix
(
const
Matrix
& mat) {
_matrix
= mat;
_inverseDirty
=
true
;
dirtyBound
(); }
45
47
inline
const
Matrix
&
getMatrix
()
const
{
return
_matrix
; }
48
50
void
preMult
(
const
Matrix
& mat) {
_matrix
.preMult(mat);
_inverseDirty
=
true
;
dirtyBound
(); }
51
53
void
postMult
(
const
Matrix
& mat) {
_matrix
.postMult(mat);
_inverseDirty
=
true
;
dirtyBound
(); }
54
56
inline
const
Matrix
&
getInverseMatrix
()
const
57
{
58
if
(
_inverseDirty
)
59
{
60
_inverse
.invert(
_matrix
);
61
_inverseDirty
=
false
;
62
}
63
return
_inverse
;
64
}
65
66
virtual
bool
computeLocalToWorldMatrix
(
Matrix
& matrix,
NodeVisitor
*)
const
;
67
68
virtual
bool
computeWorldToLocalMatrix
(
Matrix
& matrix,
NodeVisitor
*)
const
;
69
70
71
protected :
72
73
virtual
~MatrixTransform
();
74
75
Matrix
_matrix
;
76
mutable
Matrix
_inverse
;
77
mutable
bool
_inverseDirty
;
78
79
80
};
81
82
}
83
84
#endif
Transform
osg::CopyOp
Definition
CopyOp:41
osg::CopyOp::SHALLOW_COPY
@ SHALLOW_COPY
Definition
CopyOp:47
osg::MatrixTransform::MatrixTransform
MatrixTransform(const Matrix &matix)
osg::MatrixTransform::META_Node
META_Node(osg, MatrixTransform)
osg::MatrixTransform::getInverseMatrix
const Matrix & getInverseMatrix() const
Definition
MatrixTransform:56
osg::MatrixTransform::_matrix
Matrix _matrix
Definition
MatrixTransform:75
osg::MatrixTransform::computeLocalToWorldMatrix
virtual bool computeLocalToWorldMatrix(Matrix &matrix, NodeVisitor *) const
osg::MatrixTransform::setMatrix
void setMatrix(const Matrix &mat)
Definition
MatrixTransform:44
osg::MatrixTransform::_inverseDirty
bool _inverseDirty
Definition
MatrixTransform:77
osg::MatrixTransform::asMatrixTransform
virtual const MatrixTransform * asMatrixTransform() const
Definition
MatrixTransform:40
osg::MatrixTransform::asMatrixTransform
virtual MatrixTransform * asMatrixTransform()
Definition
MatrixTransform:39
osg::MatrixTransform::_inverse
Matrix _inverse
Definition
MatrixTransform:76
osg::MatrixTransform::MatrixTransform
MatrixTransform()
osg::MatrixTransform::computeWorldToLocalMatrix
virtual bool computeWorldToLocalMatrix(Matrix &matrix, NodeVisitor *) const
osg::MatrixTransform::MatrixTransform
MatrixTransform(const MatrixTransform &, const CopyOp ©op=CopyOp::SHALLOW_COPY)
osg::MatrixTransform::getMatrix
const Matrix & getMatrix() const
Definition
MatrixTransform:47
osg::MatrixTransform::postMult
void postMult(const Matrix &mat)
Definition
MatrixTransform:53
osg::MatrixTransform::preMult
void preMult(const Matrix &mat)
Definition
MatrixTransform:50
osg::MatrixTransform::~MatrixTransform
virtual ~MatrixTransform()
osg::NodeVisitor
Definition
NodeVisitor:82
osg::Node::dirtyBound
void dirtyBound()
osg::Transform::Transform
Transform()
osg
Definition
AlphaFunc:19
osg::Matrix
Matrixd Matrix
Definition
Matrix:27
OSG_EXPORT
#define OSG_EXPORT
Definition
osg/Export:39
Generated by
1.15.0