00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SOTEXT3_H
00021
#define COIN_SOTEXT3_H
00022
00023
#include <Inventor/nodes/SoSubNode.h>
00024
#include <Inventor/nodes/SoShape.h>
00025
#include <Inventor/fields/SoMFString.h>
00026
#include <Inventor/fields/SoSFFloat.h>
00027
#include <Inventor/fields/SoSFEnum.h>
00028
#include <Inventor/fields/SoSFBitMask.h>
00029
#include <Inventor/lists/SbList.h>
00030
00031
class SoSensor;
00032
class SoFieldSensor;
00033
class SoGlyph;
00034
00035 class COIN_DLL_API SoText3 :
public SoShape {
00036
typedef SoShape inherited;
00037
00038 SO_NODE_HEADER(SoText3);
00039
00040
public:
00041
static void initClass(
void);
00042 SoText3(
void);
00043
00044 enum Part {
00045 FRONT = 1,
00046 SIDES = 2,
00047 BACK = 4,
00048 ALL = FRONT|BACK|SIDES
00049 };
00050
00051 enum Justification {
00052 LEFT = 1,
00053 RIGHT,
00054 CENTER
00055 };
00056
00057
SoMFString string;
00058
SoSFFloat spacing;
00059
SoSFEnum justification;
00060
SoSFBitMask parts;
00061
00062
SbBox3f getCharacterBounds(
SoState * state,
int stringindex,
int charindex);
00063
00064
virtual void GLRender(
SoGLRenderAction * action);
00065
virtual void getPrimitiveCount(
SoGetPrimitiveCountAction * action);
00066
00067
protected:
00068
virtual ~SoText3();
00069
00070
virtual void generatePrimitives(
SoAction *);
00071
virtual void computeBBox(
SoAction * action,
SbBox3f & box,
SbVec3f & center);
00072
virtual SoDetail * createTriangleDetail(
SoRayPickAction * action,
00073
const SoPrimitiveVertex * v1,
00074
const SoPrimitiveVertex * v2,
00075
const SoPrimitiveVertex * v3,
00076
SoPickedPoint * pp);
00077
00078
virtual void notify(
SoNotList *list);
00079
00080
private:
00081
class SoText3P * pimpl;
00082
friend class SoText3P;
00083
void render(
SoState * state,
unsigned int part);
00084
void generate(
SoAction * action,
unsigned int part);
00085 };
00086
00087
#endif // !COIN_SOTEXT3_H