00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SOCYLINDER_H
00021
#define COIN_SOCYLINDER_H
00022
00023
#include <Inventor/nodes/SoSubNode.h>
00024
#include <Inventor/nodes/SoShape.h>
00025
#include <Inventor/fields/SoSFFloat.h>
00026
#include <Inventor/fields/SoSFBitMask.h>
00027
00028
00029 class COIN_DLL_API SoCylinder :
public SoShape {
00030
typedef SoShape inherited;
00031
00032 SO_NODE_HEADER(SoCylinder);
00033
00034
public:
00035
static void initClass(
void);
00036 SoCylinder(
void);
00037
00038 enum Part {
00039 SIDES = 0x1,
00040 TOP = 0x2,
00041 BOTTOM = 0x4,
00042 ALL = SIDES|TOP|BOTTOM
00043 };
00044
00045
SoSFFloat radius;
00046
SoSFFloat height;
00047
SoSFBitMask parts;
00048
00049
void addPart(SoCylinder::Part part);
00050
void removePart(SoCylinder::Part part);
00051 SbBool hasPart(SoCylinder::Part part)
const;
00052
00053
virtual void rayPick(
SoRayPickAction * action);
00054
virtual void getPrimitiveCount(
SoGetPrimitiveCountAction * action);
00055
virtual void GLRender(
SoGLRenderAction * action);
00056
00057
protected:
00058
virtual ~SoCylinder();
00059
00060
virtual void generatePrimitives(
SoAction * action);
00061
virtual void computeBBox(
SoAction * action,
SbBox3f & box,
SbVec3f & center);
00062 };
00063
00064
#endif // !COIN_SOCYLINDER_H