17#include <Inventor/C/errors/debugerror.h>
18#include <Inventor/nodes/SoMaterial.h>
19#include <Inventor/nodes/SoSeparator.h>
20#include <Inventor/nodes/SoCylinder.h>
21#include <Inventor/nodes/SoCone.h>
22#include <Inventor/nodes/SoTranslation.h>
23#include <Inventor/nodes/SoRotationXYZ.h>
24#include <Inventor/nodes/SoSphere.h>
33 SoSeparator * attachsep);
60 SoSeparator * attachsep,
72 if (
m_d->singleaxis_sep)
73 m_d->singleaxis_sep->unref();
74 m_d->materialXAxis->unref();
75 m_d->materialYAxis->unref();
76 m_d->materialZAxis->unref();
77 m_d->attachSep->unref();
99 theclass->messageVerbose(
"Building 3D objects");
100 sep =
new SoSeparator;
sep->ref();
112 #if defined BUILDVP1LIGHT
118 if (alternativeRep) {
129 SoRotationXYZ * rotx =
new SoRotationXYZ;
130 rotx->axis.setValue(SoRotationXYZ::Z);
131 rotx->angle.setValue(-0.5*
M_PI);
138 SoRotationXYZ * rotz =
new SoRotationXYZ;
139 rotz->axis.setValue(SoRotationXYZ::X);
140 rotz->angle.setValue(0.5*
M_PI);
146 singleaxis_cyl->parts.setValue(SoCylinder::SIDES|SoCylinder::BOTTOM);
153 theclass->messageVerbose(
"Updating fields");
155 const bool save =
sep->enableNotify(
false);
158 const double coneradius = 1.5*cylradius;
159 const double coneheight = 2.0*coneradius;
174 sep->enableNotify(
true);
188 if (
m_d->attachSep->findChild(
m_d->sep)<0)
189 m_d->attachSep->addChild(
m_d->sep);
191 if (
m_d->sep&&
m_d->attachSep->findChild(
m_d->sep)>=0)
192 m_d->attachSep->removeChild(
m_d->sep);
212 if (
m_d->axislength==l)
223 if (
m_d->relaxisthick==t)
void ensureInit3DObjects()
SoTranslation * singleaxis_cyltranslation
SoTranslation * singleaxis_conetranslation
SoMaterial * materialYAxis
SoSphere * alternative_Sphere
SoMaterial * materialXAxis
SoTranslation * overall_translation
Imp(VP1CoordinateAxes *, SoMaterial *xmat, SoMaterial *ymat, SoMaterial *zmat, SoSeparator *attachsep)
SoMaterial * materialZAxis
VP1CoordinateAxes * theclass
SoCylinder * singleaxis_cyl
SoSeparator * singleaxis_sep
virtual ~VP1CoordinateAxes()
void setLength(const double &)
void setRelativeAxisThickness(const double &)
void setPosition(const SbVec3f &)
VP1CoordinateAxes(SoMaterial *xmat, SoMaterial *ymat, SoMaterial *zmat, SoSeparator *attachsep, IVP1System *sys, QObject *parent=0)
VP1HelperClassBase(IVP1System *sys=0, QString helpername="")
void messageVerbose(const QString &) const
static bool environmentVariableIsOn(const QString &name)
static bool expertSettingIsOn(const QString &type, const QString &name)