00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SOTRANSFORM_H
00021
#define COIN_SOTRANSFORM_H
00022
00023
#include <Inventor/nodes/SoSubNode.h>
00024
#include <Inventor/fields/SoSFRotation.h>
00025
#include <Inventor/fields/SoSFVec3f.h>
00026
#include <Inventor/nodes/SoTransformation.h>
00027
#include <Inventor/SbMatrix.h>
00028
#include <Inventor/SbVec3f.h>
00029
00030
00031 class COIN_DLL_API SoTransform :
public SoTransformation {
00032
typedef SoTransformation inherited;
00033
00034 SO_NODE_HEADER(SoTransform);
00035
00036
public:
00037
static void initClass(
void);
00038 SoTransform(
void);
00039
00040
SoSFVec3f translation;
00041
SoSFRotation rotation;
00042
SoSFVec3f scaleFactor;
00043
SoSFRotation scaleOrientation;
00044
SoSFVec3f center;
00045
00046
void pointAt(
const SbVec3f & frompoint,
const SbVec3f & topoint);
00047
void getScaleSpaceMatrix(
SbMatrix & mat,
SbMatrix & inv)
const;
00048
void getRotationSpaceMatrix(
SbMatrix & mat,
SbMatrix & inv)
const;
00049
void getTranslationSpaceMatrix(
SbMatrix & mat,
SbMatrix & inv)
const;
00050
void multLeft(
const SbMatrix & mat);
00051
void multRight(
const SbMatrix & mat);
00052
void combineLeft(
SoTransformation * nodeonright);
00053
void combineRight(
SoTransformation * nodeonleft);
00054
void setMatrix(
const SbMatrix & mat);
00055
void recenter(
const SbVec3f & newcenter);
00056
00057
virtual void doAction(
SoAction * action);
00058
virtual void GLRender(
SoGLRenderAction * action);
00059
virtual void callback(
SoCallbackAction * action);
00060
virtual void getBoundingBox(
SoGetBoundingBoxAction * action);
00061
virtual void getMatrix(
SoGetMatrixAction * action);
00062
virtual void pick(
SoPickAction * action);
00063
virtual void getPrimitiveCount(
SoGetPrimitiveCountAction * action);
00064
00065
protected:
00066
virtual ~SoTransform();
00067 };
00068
00069
#endif // !COIN_SOTRANSFORM_H