00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SOSURROUNDSCALE_H
00021
#define COIN_SOSURROUNDSCALE_H
00022
00023
#include <Inventor/nodes/SoSubNode.h>
00024
#include <Inventor/nodes/SoTransformation.h>
00025
#include <Inventor/fields/SoSFInt32.h>
00026
#include <Inventor/SbVec3f.h>
00027
00028
class SbMatrix;
00029
00030
00031 class COIN_DLL_API SoSurroundScale :
public SoTransformation {
00032
typedef SoTransformation inherited;
00033
00034 SO_NODE_HEADER(SoSurroundScale);
00035
00036
public:
00037
static void initClass(
void);
00038 SoSurroundScale(
void);
00039
00040
SoSFInt32 numNodesUpToContainer;
00041
SoSFInt32 numNodesUpToReset;
00042
00043
void invalidate(
void);
00044
virtual void doAction(
SoAction * action);
00045
void setDoingTranslations(
const SbBool val);
00046 SbBool isDoingTranslations(
void);
00047
00048
protected:
00049
virtual ~SoSurroundScale();
00050
00051
virtual void callback(
SoCallbackAction * action);
00052
virtual void GLRender(
SoGLRenderAction * action);
00053
virtual void getBoundingBox(
SoGetBoundingBoxAction * action);
00054
virtual void getMatrix(
SoGetMatrixAction * action);
00055
virtual void pick(
SoPickAction * action);
00056
void updateMySurroundParams(
SoAction * action,
const SbMatrix & inv);
00057
void setIgnoreInBbox(
const SbBool val);
00058 SbBool isIgnoreInBbox(
void);
00059
00060
protected:
00061
SbVec3f cachedScale;
00062
SbVec3f cachedInvScale;
00063
SbVec3f cachedTranslation;
00064 SbBool cacheOK;
00065 SbBool doTranslations;
00066
00067
private:
00068 SbBool ignoreinbbox;
00069 };
00070
00071
#endif // !COIN_SOSURROUNDSCALE_H