SoV2Text3::SoV2Text3() // //////////////////////////////////////////////////////////////////////// { SO_NODE_CONSTRUCTOR(SoV2Text3); SO_NODE_ADD_FIELD(string, ("")); SO_NODE_ADD_FIELD(spacing, (1.0)); SO_NODE_ADD_FIELD(justification, (LEFT)); SO_NODE_ADD_FIELD(parts, (FRONT)); // Set up static info for enumerated type field SO_NODE_DEFINE_ENUM_VALUE(Justification, LEFT); SO_NODE_DEFINE_ENUM_VALUE(Justification, RIGHT); SO_NODE_DEFINE_ENUM_VALUE(Justification, CENTER); // Set up static info for enumerated type field SO_NODE_DEFINE_ENUM_VALUE(Part, SIDES); SO_NODE_DEFINE_ENUM_VALUE(Part, FRONT); SO_NODE_DEFINE_ENUM_VALUE(Part, BACK); SO_NODE_DEFINE_ENUM_VALUE(Part, ALL); // Set up info in enumerated type field SO_NODE_SET_SF_ENUM_TYPE(justification, Justification); SO_NODE_SET_SF_ENUM_TYPE(parts, Part); isBuiltIn = TRUE; }
/*! Constructor. */ SoSceneTextureCubeMap::SoSceneTextureCubeMap(void) { PRIVATE(this) = new SoSceneTextureCubeMapP(this); SO_NODE_CONSTRUCTOR(SoSceneTextureCubeMap); SO_NODE_ADD_FIELD(size, (256, 256)); SO_NODE_ADD_FIELD(scene, (NULL)); SO_NODE_ADD_FIELD(backgroundColor, (0.0f, 0.0f, 0.0f)); SO_NODE_ADD_FIELD(transparencyFunction, (NONE)); SO_NODE_ADD_FIELD(wrapS, (REPEAT)); SO_NODE_ADD_FIELD(wrapT, (REPEAT)); SO_NODE_ADD_FIELD(wrapR, (REPEAT)); SO_NODE_ADD_FIELD(model, (MODULATE)); SO_NODE_ADD_FIELD(blendColor, (0.0f, 0.0f, 0.0f)); SO_NODE_DEFINE_ENUM_VALUE(Wrap, REPEAT); SO_NODE_DEFINE_ENUM_VALUE(Wrap, CLAMP); SO_NODE_SET_SF_ENUM_TYPE(wrapS, Wrap); SO_NODE_SET_SF_ENUM_TYPE(wrapT, Wrap); SO_NODE_SET_SF_ENUM_TYPE(wrapR, Wrap); SO_NODE_DEFINE_ENUM_VALUE(Model, MODULATE); SO_NODE_DEFINE_ENUM_VALUE(Model, DECAL); SO_NODE_DEFINE_ENUM_VALUE(Model, BLEND); SO_NODE_DEFINE_ENUM_VALUE(Model, REPLACE); SO_NODE_SET_SF_ENUM_TYPE(model, Model); SO_NODE_DEFINE_ENUM_VALUE(TransparencyFunction, NONE); SO_NODE_DEFINE_ENUM_VALUE(TransparencyFunction, ALPHA_BLEND); SO_NODE_DEFINE_ENUM_VALUE(TransparencyFunction, ALPHA_TEST); SO_NODE_SET_SF_ENUM_TYPE(transparencyFunction, TransparencyFunction); }
SoXipBlendFunc::SoXipBlendFunc() { SO_NODE_CONSTRUCTOR(SoXipBlendFunc); SO_NODE_ADD_FIELD(enableBlending, (true)); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, ZERO); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, ONE); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, SRC_COLOR); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, DST_COLOR); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, SRC_ALPHA); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, DST_ALPHA); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, ONE_MINUS_SRC_COLOR); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, ONE_MINUS_DST_COLOR); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, ONE_MINUS_SRC_ALPHA); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, ONE_MINUS_DST_ALPHA); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, CONSTANT_COLOR); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, CONSTANT_ALPHA); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, ONE_MINUS_CONSTANT_COLOR); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, ONE_MINUS_CONSTANT_ALPHA); SO_NODE_DEFINE_ENUM_VALUE(BlendFactor, SRC_ALPHA_SATURATE); SO_NODE_SET_SF_ENUM_TYPE(srcFunc, BlendFactor); SO_NODE_SET_SF_ENUM_TYPE(dstFunc, BlendFactor); SO_NODE_ADD_FIELD(srcFunc, (SRC_ALPHA)); SO_NODE_ADD_FIELD(dstFunc, (ONE_MINUS_SRC_ALPHA)); }
/*! Constructor. */ SmTextureText2::SmTextureText2() { SO_NODE_CONSTRUCTOR(SmTextureText2); SO_NODE_ADD_FIELD(string, ("")); SO_NODE_ADD_FIELD(justification, (LEFT)); SO_NODE_ADD_FIELD(verticalJustification, (BOTTOM)); SO_NODE_ADD_FIELD(maxRange, (-1.0f)); SO_NODE_ADD_FIELD(position, (0.0f, 0.0f, 0.0f)); SO_NODE_ADD_FIELD(offset, (0.0f, 0.0f, 0.0f)); SO_NODE_ADD_FIELD(rotation, (0.0f)); // TODO also make it work for SmTextureText2Collector SO_NODE_ADD_FIELD(pickOnPixel, (FALSE)); SO_NODE_ADD_EMPTY_MFIELD(stringIndex); SO_NODE_DEFINE_ENUM_VALUE(Justification, CENTER); SO_NODE_DEFINE_ENUM_VALUE(Justification, LEFT); SO_NODE_DEFINE_ENUM_VALUE(Justification, RIGHT); SO_NODE_DEFINE_ENUM_VALUE(VerticalJustification, TOP); SO_NODE_DEFINE_ENUM_VALUE(VerticalJustification, BOTTOM); SO_NODE_DEFINE_ENUM_VALUE(VerticalJustification, VCENTER); SO_NODE_SET_SF_ENUM_TYPE(justification, Justification); SO_NODE_SET_SF_ENUM_TYPE(verticalJustification, VerticalJustification); }
SoVRMLShape::SoVRMLShape(void) { PRIVATE(this) = new SoVRMLShapeP; SO_VRMLNODE_INTERNAL_CONSTRUCTOR(SoVRMLShape); SO_VRMLNODE_ADD_EXPOSED_FIELD(appearance, (NULL)); SO_VRMLNODE_ADD_EXPOSED_FIELD(geometry, (NULL)); SO_NODE_ADD_FIELD(renderCaching, (AUTO)); SO_NODE_ADD_FIELD(boundingBoxCaching, (AUTO)); SO_NODE_DEFINE_ENUM_VALUE(CacheEnabled, ON); SO_NODE_DEFINE_ENUM_VALUE(CacheEnabled, OFF); SO_NODE_DEFINE_ENUM_VALUE(CacheEnabled, AUTO); SO_NODE_SET_SF_ENUM_TYPE(renderCaching, CacheEnabled); SO_NODE_SET_SF_ENUM_TYPE(boundingBoxCaching, CacheEnabled); // supply a NULL-pointer as parent, since notifications will be // handled by the fields that actually contain the node(s) PRIVATE(this)->childlist = new SoChildList(NULL); PRIVATE(this)->childlistvalid = FALSE; PRIVATE(this)->cachelist = NULL; }
SoOrthoSlice::SoOrthoSlice(void) { SO_NODE_CONSTRUCTOR(SoOrthoSlice); PRIVATE(this) = new SoOrthoSliceP(this); SO_NODE_DEFINE_ENUM_VALUE(Axis, X); SO_NODE_DEFINE_ENUM_VALUE(Axis, Y); SO_NODE_DEFINE_ENUM_VALUE(Axis, Z); SO_NODE_SET_SF_ENUM_TYPE(axis, Axis); SO_NODE_DEFINE_ENUM_VALUE(Interpolation, NEAREST); SO_NODE_DEFINE_ENUM_VALUE(Interpolation, LINEAR); SO_NODE_SET_SF_ENUM_TYPE(interpolation, Interpolation); SO_NODE_DEFINE_ENUM_VALUE(AlphaUse, ALPHA_AS_IS); SO_NODE_DEFINE_ENUM_VALUE(AlphaUse, ALPHA_OPAQUE); SO_NODE_DEFINE_ENUM_VALUE(AlphaUse, ALPHA_BINARY); SO_NODE_SET_SF_ENUM_TYPE(alphaUse, AlphaUse); SO_NODE_DEFINE_ENUM_VALUE(ClippingSide, FRONT); SO_NODE_DEFINE_ENUM_VALUE(ClippingSide, BACK); SO_NODE_SET_SF_ENUM_TYPE(clippingSide, ClippingSide); SO_NODE_ADD_FIELD(sliceNumber, (0)); SO_NODE_ADD_FIELD(axis, (Z)); SO_NODE_ADD_FIELD(interpolation, (LINEAR)); SO_NODE_ADD_FIELD(alphaUse, (ALPHA_BINARY)); SO_NODE_ADD_FIELD(clippingSide, (BACK)); SO_NODE_ADD_FIELD(clipping, (FALSE)); // FIXME: implement proper support for alternateRep field. 20041008 mortene. SO_NODE_ADD_FIELD(alternateRep, (NULL)); }
SoV1Environment::SoV1Environment() // //////////////////////////////////////////////////////////////////////// { SO_NODE_CONSTRUCTOR(SoV1Environment); SO_NODE_ADD_FIELD(ambientIntensity, (0.2)); SO_NODE_ADD_FIELD(ambientColor, (1.0, 1.0, 1.0)); SO_NODE_ADD_FIELD(attenuation, (0.0, 0.0, 1.0)); SO_NODE_ADD_FIELD(fogType, (NONE)); SO_NODE_ADD_FIELD(fogComputed, (PER_VERTEX)); SO_NODE_ADD_FIELD(fogColor, (1.0, 1.0, 1.0)); SO_NODE_ADD_FIELD(fogDensity, (0.0)); SO_NODE_ADD_FIELD(fogNearDistance, (1.0)); SO_NODE_ADD_FIELD(fogFarDistance, (10.0)); // Set up static info for enumerated type fields SO_NODE_DEFINE_ENUM_VALUE(Type, NONE); SO_NODE_DEFINE_ENUM_VALUE(Type, LINEAR); SO_NODE_DEFINE_ENUM_VALUE(Type, EXPONENTIAL); SO_NODE_DEFINE_ENUM_VALUE(Type, EXPONENTIAL_SQUARED); SO_NODE_DEFINE_ENUM_VALUE(Computed, PER_VERTEX); SO_NODE_DEFINE_ENUM_VALUE(Computed, PER_PIXEL); // Set up info in enumerated type fields SO_NODE_SET_SF_ENUM_TYPE(fogType, Type); SO_NODE_SET_SF_ENUM_TYPE(fogComputed, Computed); }
/** * Constructor. */ SoXipBindTextures::SoXipBindTextures() { SO_NODE_CONSTRUCTOR(SoXipBindTextures); SO_NODE_DEFINE_ENUM_VALUE(TextureDimension, TEXTURE_1D); SO_NODE_DEFINE_ENUM_VALUE(TextureDimension, TEXTURE_2D); SO_NODE_DEFINE_ENUM_VALUE(TextureDimension, TEXTURE_3D); SO_NODE_SET_SF_ENUM_TYPE(textureDimension, TextureDimension); // add input fields SO_NODE_ADD_FIELD(textureDimension, (TEXTURE_2D)); SO_NODE_ADD_FIELD(attachmentHandles, (0)); // add output fields SO_NODE_ADD_FIELD(texture0Output, (-1)); SO_NODE_ADD_FIELD(texture1Output, (-1)); SO_NODE_ADD_FIELD(texture2Output, (-1)); SO_NODE_ADD_FIELD(texture3Output, (-1)); SO_NODE_ADD_FIELD(texture4Output, (-1)); SO_NODE_ADD_FIELD(texture5Output, (-1)); SO_NODE_ADD_FIELD(texture6Output, (-1)); SO_NODE_ADD_FIELD(texture7Output, (-1)); //attachmentHandles.deleteValues(0); mNumTextures = attachmentHandles.getNum(); for (int i = 0; i < 16; i++) { mTexHandles[i] = 0; mTexUnits[i] = 0; } mNodeId = 0; mNeedsSync = true; }
SoXipMarkerSet::SoXipMarkerSet() { SO_NODE_CONSTRUCTOR( SoXipMarkerSet ); SO_NODE_DEFINE_ENUM_MARKER_VALUES( markerType ); SO_NODE_SET_SF_ENUM_TYPE( marker, markerType ); SO_NODE_ADD_FIELD( marker, (0) ); mCoord = new SoCoordinate3; if( mCoord ) mCoord->ref(); mFaceSet = new SoFaceSet; if( mFaceSet ) mFaceSet->ref(); mTranslation = new SoTranslation; if( mTranslation ) mTranslation->ref(); mScale = new SoScale; if( mScale ) mScale->ref(); mRotation = new SoRotation; if( mRotation ) mRotation->ref(); }
SoXipMenuItemBase::SoXipMenuItemBase() { SO_NODE_CONSTRUCTOR( SoXipMenuItemBase ); SO_XIP_KIT_ADD_TYPE_ENTRY( mSeparator, SoSeparator, this ); SO_XIP_KIT_ADD_TYPE_ENTRY( mSubMenuSwitch, SoSwitch, mSeparator ); SO_NODE_DEFINE_ENUM_VALUE( IconType, IC_NONE ); SO_NODE_DEFINE_ENUM_VALUE( IconType, IC_COPY ); SO_NODE_DEFINE_ENUM_VALUE( IconType, IC_CUT ); SO_NODE_DEFINE_ENUM_VALUE( IconType, IC_PASTE ); SO_NODE_SET_SF_ENUM_TYPE( icon, IconType ); SO_NODE_ADD_FIELD( focused, (FALSE) ); SO_NODE_ADD_FIELD( enabled, (TRUE) ); SO_NODE_ADD_FIELD( caption, ("") ); SO_NODE_ADD_FIELD( icon, (IC_NONE) ); SoField* fields[] = { &focused, &enabled, &caption, &icon }; int numFieldSensors = 4; for( int i = 0; i < numFieldSensors; ++ i ) { mFieldSensors[i] = new SoFieldSensor( fieldSensorCB, this ); mFieldSensors[i]->attach( fields[i] ); } }
SoXipIcon::SoXipIcon() { SO_NODE_CONSTRUCTOR( SoXipIcon ); SO_NODE_DEFINE_ENUM_VALUE( IconType, IC_NONE ); SO_NODE_DEFINE_ENUM_VALUE( IconType, IC_COPY ); SO_NODE_DEFINE_ENUM_VALUE( IconType, IC_CUT ); SO_NODE_DEFINE_ENUM_VALUE( IconType, IC_PASTE ); SO_NODE_SET_SF_ENUM_TYPE( icon, IconType ); SO_NODE_ADD_FIELD( icon, (IC_NONE) ); SO_NODE_ADD_FIELD( isTransparent, (FALSE) ); SO_NODE_ADD_FIELD( transparentColor, (0, 0, 0) ); mTexture = new SoTexture2; mTexture->ref(); mFieldSensors[0] = new SoFieldSensor( fieldSensorsCB, this ); mFieldSensors[0]->attach( &icon ); mFieldSensors[1] = new SoFieldSensor( fieldSensorsCB, this ); mFieldSensors[1]->attach( &isTransparent ); mFieldSensors[2] = new SoFieldSensor( fieldSensorsCB, this ); mFieldSensors[2]->attach( &transparentColor ); }
void SoVRMLGroup::commonConstructor(void) { PRIVATE(this) = new SoVRMLGroupP; PRIVATE(this)->bboxcache = NULL; PRIVATE(this)->bboxcache_usecount = 0; PRIVATE(this)->bboxcache_destroycount = 0; SO_VRMLNODE_INTERNAL_CONSTRUCTOR(SoVRMLGroup); SO_VRMLNODE_ADD_FIELD(bboxCenter, (0.0f, 0.0f, 0.0f)); SO_VRMLNODE_ADD_FIELD(bboxSize, (-1.0f, -1.0f, -1.0f)); SO_VRMLNODE_ADD_FIELD(renderCaching, (AUTO)); SO_VRMLNODE_ADD_FIELD(boundingBoxCaching, (AUTO)); SO_VRMLNODE_ADD_FIELD(renderCulling, (AUTO)); SO_VRMLNODE_ADD_FIELD(pickCulling, (AUTO)); SO_NODE_DEFINE_ENUM_VALUE(CacheEnabled, ON); SO_NODE_DEFINE_ENUM_VALUE(CacheEnabled, OFF); SO_NODE_DEFINE_ENUM_VALUE(CacheEnabled, AUTO); SO_NODE_SET_SF_ENUM_TYPE(renderCaching, CacheEnabled); SO_NODE_SET_SF_ENUM_TYPE(boundingBoxCaching, CacheEnabled); SO_NODE_SET_SF_ENUM_TYPE(renderCulling, CacheEnabled); SO_NODE_SET_SF_ENUM_TYPE(pickCulling, CacheEnabled); PRIVATE(this)->hassoundchild = SoVRMLGroupP::MAYBE; static long int maxcaches = -1; if (maxcaches == -1) { maxcaches = -2; // so we don't request the envvar later if it is not set const char * maxcachesstr = coin_getenv("IV_SEPARATOR_MAX_CACHES"); if (maxcachesstr) { maxcaches = strtol(maxcachesstr, NULL, 10); if ((maxcaches == LONG_MIN) || (maxcaches == LONG_MAX) || (maxcaches < 0)) { SoDebugError::post("SoVRMLGroup::commonConstructor", "Environment variable IV_SEPARATOR_MAX_CACHES " "has invalid setting \"%s\"", maxcachesstr); } else { SoVRMLGroup::setNumRenderCaches(maxcaches); } } } }
/*! Constructor. */ SoFontStyle::SoFontStyle(void) { SO_NODE_INTERNAL_CONSTRUCTOR(SoFontStyle); SO_NODE_ADD_FIELD(family, (SoFontStyle::SERIF)); SO_NODE_ADD_FIELD(style, (SoFontStyle::NONE)); SO_NODE_DEFINE_ENUM_VALUE(Family, SERIF); SO_NODE_DEFINE_ENUM_VALUE(Family, SANS); SO_NODE_DEFINE_ENUM_VALUE(Family, TYPEWRITER); SO_NODE_SET_SF_ENUM_TYPE(family, Family); SO_NODE_DEFINE_ENUM_VALUE(Style, NONE); SO_NODE_DEFINE_ENUM_VALUE(Style, BOLD); SO_NODE_DEFINE_ENUM_VALUE(Style, ITALIC); SO_NODE_SET_SF_ENUM_TYPE(style, Style); }
MaterialBasicRefractive::MaterialBasicRefractive() { SO_NODE_CONSTRUCTOR( MaterialBasicRefractive ); SO_NODE_ADD_FIELD( reflectivityFront, (0.0) ); SO_NODE_ADD_FIELD( reflectivityBack, (0.0) ); SO_NODE_ADD_FIELD( transmissivityFront, (0.0) ); SO_NODE_ADD_FIELD( transmissivityBack, (0.0) ); SO_NODE_ADD_FIELD( nFront, (0.0) ); SO_NODE_ADD_FIELD( nBack, (0.0) ); SO_NODE_ADD_FIELD( sigmaSlope, (2.0) ); //SO_NODE_ADD_FIELD( m_sigmaSpecularity, (0.5) ); SO_NODE_DEFINE_ENUM_VALUE(Distribution, PILLBOX); SO_NODE_DEFINE_ENUM_VALUE(Distribution, NORMAL); SO_NODE_SET_SF_ENUM_TYPE( distribution, Distribution); SO_NODE_ADD_FIELD( distribution, (PILLBOX) ); SO_NODE_ADD_FIELD( m_ambientColor, (0.2f, 0.2f, 0.2f) ); SO_NODE_ADD_FIELD( m_diffuseColor, (0.8f, 0.8f, 0.8f) ); SO_NODE_ADD_FIELD( m_specularColor, (0.0f, 0.0f, 0.0f) ); SO_NODE_ADD_FIELD( m_emissiveColor, (0.0f, 0.0f, 0.0f) ); SO_NODE_ADD_FIELD( m_shininess, (0.2f) ); SO_NODE_ADD_FIELD( m_transparency, (0.0) ); SoFieldSensor* reflectivityFrontSensor = new SoFieldSensor( updateReflectivityFront, this ); reflectivityFrontSensor->setPriority( 1 ); reflectivityFrontSensor->attach( &reflectivityFront ); SoFieldSensor* transmissivityFrontSensor = new SoFieldSensor( updateTransmissivityFront, this ); transmissivityFrontSensor->setPriority( 1 ); transmissivityFrontSensor->attach( &transmissivityFront ); SoFieldSensor* reflectivityBackSensor = new SoFieldSensor( updateReflectivityBack, this ); reflectivityBackSensor->setPriority( 1 ); reflectivityBackSensor->attach( &reflectivityBack ); SoFieldSensor* transmissivityBackSensor = new SoFieldSensor( updateTransmissivityBack, this ); transmissivityBackSensor->setPriority( 1 ); transmissivityBackSensor->attach( &transmissivityBack ); SoFieldSensor* m_ambientColorSensor = new SoFieldSensor( updateAmbientColor, this ); m_ambientColorSensor->setPriority( 1 ); m_ambientColorSensor->attach( &m_ambientColor ); SoFieldSensor* m_diffuseColorSensor = new SoFieldSensor( updateDiffuseColor, this ); m_diffuseColorSensor->setPriority( 1 ); m_diffuseColorSensor->attach( &m_diffuseColor ); SoFieldSensor* m_specularColorSensor = new SoFieldSensor( updateSpecularColor, this ); m_specularColorSensor->setPriority( 1 ); m_specularColorSensor->attach( &m_specularColor ); SoFieldSensor* m_emissiveColorSensor = new SoFieldSensor( updateEmissiveColor, this ); m_emissiveColorSensor->setPriority( 1 ); m_emissiveColorSensor->attach( &m_emissiveColor ); SoFieldSensor* m_shininessSensor = new SoFieldSensor( updateShininess, this ); m_shininessSensor->setPriority( 1 ); m_shininessSensor->attach( &m_shininess ); SoFieldSensor* m_transparencySensor = new SoFieldSensor( updateTransparency, this ); m_transparencySensor->setPriority( 1 ); m_transparencySensor->attach( &m_transparency ); }
SoTexture2::SoTexture2() // //////////////////////////////////////////////////////////////////////// { SO_NODE_CONSTRUCTOR(SoTexture2); SO_NODE_ADD_FIELD(filename, ("")); SO_NODE_ADD_FIELD(image, (SbVec2s(0, 0), 0, 0)); SO_NODE_ADD_FIELD(wrapS, (REPEAT)); SO_NODE_ADD_FIELD(wrapT, (REPEAT)); SO_NODE_ADD_FIELD(model, (MODULATE)); SO_NODE_ADD_FIELD(blendColor, (SbColor(0,0,0))); // Set up enumerations for texture model SO_NODE_DEFINE_ENUM_VALUE(Model, MODULATE); SO_NODE_DEFINE_ENUM_VALUE(Model, DECAL); SO_NODE_DEFINE_ENUM_VALUE(Model, BLEND); SO_NODE_DEFINE_ENUM_VALUE(Wrap, REPEAT); SO_NODE_DEFINE_ENUM_VALUE(Wrap, CLAMP); // Set up info in enumerated type field SO_NODE_SET_SF_ENUM_TYPE(model, Model); SO_NODE_SET_SF_ENUM_TYPE(wrapS, Wrap); SO_NODE_SET_SF_ENUM_TYPE(wrapT, Wrap); // Set up sensors to keep the image/filename fields agreeing. // Sensors are used instead of field to field connections or raw // notification so that the fields can still be attached to/from // other fields. imageSensor = new SoFieldSensor(imageChangedCB, this); imageSensor->setPriority(0); imageSensor->attach(&image); filenameSensor = new SoFieldSensor(filenameChangedCB, this); filenameSensor->setPriority(0); filenameSensor->attach(&filename); renderList = NULL; // Display list used for rendering isBuiltIn = TRUE; }
/*! Constructor. */ SoTextureUnit::SoTextureUnit(void) { SO_NODE_INTERNAL_CONSTRUCTOR(SoTextureUnit); SO_NODE_ADD_FIELD(unit, (0)); SO_NODE_ADD_FIELD(mappingMethod, (IMAGE_MAPPING)); SO_NODE_DEFINE_ENUM_VALUE(MappingMethod, IMAGE_MAPPING); SO_NODE_DEFINE_ENUM_VALUE(MappingMethod, BUMP_MAPPING); SO_NODE_SET_SF_ENUM_TYPE(mappingMethod, MappingMethod); }
SoShaderStateMatrixParameter::SoShaderStateMatrixParameter(void) { SO_NODE_INTERNAL_CONSTRUCTOR(SoShaderStateMatrixParameter); SO_NODE_DEFINE_ENUM_VALUE(MatrixType, MODELVIEW); SO_NODE_DEFINE_ENUM_VALUE(MatrixType, PROJECTION); SO_NODE_DEFINE_ENUM_VALUE(MatrixType, TEXTURE); SO_NODE_DEFINE_ENUM_VALUE(MatrixType, MODELVIEW_PROJECTION); SO_NODE_ADD_FIELD(matrixType, (MODELVIEW)); SO_NODE_SET_SF_ENUM_TYPE(matrixType, MatrixType); SO_NODE_DEFINE_ENUM_VALUE(MatrixTransform, IDENTITY); SO_NODE_DEFINE_ENUM_VALUE(MatrixTransform, TRANSPOSE); SO_NODE_DEFINE_ENUM_VALUE(MatrixTransform, INVERSE); SO_NODE_DEFINE_ENUM_VALUE(MatrixTransform, INVERSE_TRANSPOSE); SO_NODE_ADD_FIELD(matrixTransform, (IDENTITY)); SO_NODE_SET_SF_ENUM_TYPE(matrixTransform, MatrixTransform); }
ShapeParabolicRectangle::ShapeParabolicRectangle() { SO_NODE_CONSTRUCTOR(ShapeParabolicRectangle); SO_NODE_ADD_FIELD( focusLength, (0.125) ); SO_NODE_ADD_FIELD( widthX, (1.0) ); SO_NODE_ADD_FIELD( widthZ, (1.0) ); SO_NODE_DEFINE_ENUM_VALUE( Side, INSIDE ); SO_NODE_DEFINE_ENUM_VALUE( Side, OUTSIDE ); SO_NODE_SET_SF_ENUM_TYPE( activeSide, Side ); SO_NODE_ADD_FIELD( activeSide, (OUTSIDE) ); }
SoXipSetTransform::SoXipSetTransform() { SO_NODE_CONSTRUCTOR(SoXipSetTransform); SO_NODE_DEFINE_ENUM_VALUE(MatrixType, PROJECTION); SO_NODE_DEFINE_ENUM_VALUE(MatrixType, MODEL); SO_NODE_DEFINE_ENUM_VALUE(MatrixType, VIEW); SO_NODE_DEFINE_ENUM_VALUE(MatrixType, TEXTURE); SO_NODE_SET_SF_ENUM_TYPE(matrixType, MatrixType); SO_NODE_ADD_FIELD(matrixType, (MODEL)); SO_NODE_ADD_FIELD(matrix, (SbMatrix::identity())); SO_NODE_ADD_FIELD(multiply, (false)); }
SoXipDrawQuad::SoXipDrawQuad() { SO_NODE_CONSTRUCTOR(SoXipDrawQuad); SO_NODE_ADD_FIELD(enableTexture, (true)); SO_NODE_ADD_FIELD(filter, (SAME)); SO_NODE_ADD_FIELD(blend, (false)); SO_NODE_ADD_FIELD(colors, (SbVec3f(1, 1, 1))); SO_NODE_DEFINE_ENUM_VALUE(Filter, SAME); SO_NODE_DEFINE_ENUM_VALUE(Filter, NEAREST); SO_NODE_DEFINE_ENUM_VALUE(Filter, LINEAR); SO_NODE_SET_SF_ENUM_TYPE(filter, Filter); }
TrackerLinearFresnel::TrackerLinearFresnel() :m_previousAimingPointType( 0 ), m_infoDisplayed( 0 ) { SO_NODEENGINE_CONSTRUCTOR( TrackerLinearFresnel ); // Define input fields and their default values //SO_NODE_ADD_FIELD( m_azimuth, ( 0.0 ) ); //SO_NODE_ADD_FIELD( m_zenith, ( 90.0 ) ); // Define input fields and their default values SO_NODE_DEFINE_ENUM_VALUE( AimingPointType, Absolute ); SO_NODE_DEFINE_ENUM_VALUE( AimingPointType, Relative ); SO_NODE_SET_SF_ENUM_TYPE( typeOfAimingPoint, AimingPointType ); SO_NODE_ADD_FIELD( typeOfAimingPoint, (Absolute) ); m_infoDisplayed = new SoFieldSensor( TTrackerForAiming::updateTypeOfAimingPoint, this ); m_infoDisplayed->setPriority( 1 ); m_infoDisplayed->attach( &typeOfAimingPoint ); SO_NODE_DEFINE_ENUM_VALUE( Axis, X ); SO_NODE_DEFINE_ENUM_VALUE( Axis, Y ); SO_NODE_DEFINE_ENUM_VALUE( Axis, Z ); SO_NODE_SET_SF_ENUM_TYPE( activeAxis, Axis ); SO_NODE_ADD_FIELD( activeAxis, (Z) ); SO_NODE_ADD_FIELD( axisOrigin, ( 0.0, 0.0 ) ); //ConstructEngineOutput(); SO_NODEENGINE_ADD_OUTPUT( outputTranslation, SoSFVec3f); SO_NODEENGINE_ADD_OUTPUT( outputRotation, SoSFRotation); SO_NODEENGINE_ADD_OUTPUT( outputScaleFactor, SoSFVec3f); SO_NODEENGINE_ADD_OUTPUT( outputScaleOrientation, SoSFRotation); SO_NODEENGINE_ADD_OUTPUT( outputCenter, SoSFVec3f); }
/*! Constructor. */ SoCylinder::SoCylinder(void) { SO_NODE_INTERNAL_CONSTRUCTOR(SoCylinder); SO_NODE_ADD_FIELD(radius, (1.0f)); SO_NODE_ADD_FIELD(height, (2.0f)); SO_NODE_ADD_FIELD(parts, (SoCylinder::ALL)); SO_NODE_DEFINE_ENUM_VALUE(Part, SIDES); SO_NODE_DEFINE_ENUM_VALUE(Part, TOP); SO_NODE_DEFINE_ENUM_VALUE(Part, BOTTOM); SO_NODE_DEFINE_ENUM_VALUE(Part, ALL); SO_NODE_SET_SF_ENUM_TYPE(parts, Part); }
SoXipOverlaySettings::SoXipOverlaySettings() { SO_NODE_CONSTRUCTOR( SoXipOverlaySettings ); SO_NODE_DEFINE_ENUM_VALUE( LocationType, PICKING ); SO_NODE_DEFINE_ENUM_VALUE( LocationType, FOCAL_PLANE ); SO_NODE_DEFINE_ENUM_VALUE( LocationType, NEAR_PLANE ); SO_NODE_SET_SF_ENUM_TYPE( location, LocationType ); SO_NODE_ADD_FIELD( location, (FOCAL_PLANE) ); SO_NODE_ADD_FIELD( showAnnotation, (TRUE) ); SO_NODE_ADD_FIELD( showEnumeration, (TRUE) ); }
// -------------------------------------------------------------------------- //! Constructor, creates fields // -------------------------------------------------------------------------- SoTextureMaskedArea::SoTextureMaskedArea() { // Execute inventor internal stuff for node construction. SO_NODE_CONSTRUCTOR(SoTextureMaskedArea); SO_NODE_ADD_FIELD(inTexture, ()); SO_NODE_ADD_FIELD(inMask, ()); SO_NODE_ADD_FIELD(overlayColour, (1,1,1)); SO_NODE_ADD_FIELD(currentSlice, (0)); SO_NODE_ADD_FIELD(overlayAlpha, (0.2)); SO_NODE_ADD_FIELD(showTextureOnly, (false)); SO_NODE_ADD_FIELD(chooseTexture, (0)); SO_NODE_ADD_FIELD(chooseTextureEnum,(fromFile)); SO_NODE_DEFINE_ENUM_VALUE(textureModes, fromFile); SO_NODE_DEFINE_ENUM_VALUE(textureModes, Checkerboard); SO_NODE_DEFINE_ENUM_VALUE(textureModes, Diagonal1); SO_NODE_DEFINE_ENUM_VALUE(textureModes, Diagonal2); SO_NODE_DEFINE_ENUM_VALUE(textureModes, Horizontal); SO_NODE_DEFINE_ENUM_VALUE(textureModes, Vertical); SO_NODE_SET_SF_ENUM_TYPE(chooseTextureEnum, textureModes); //! Set inherited fields to a default state using the default string setting //! mechanism available in OpenInventor. E.g. in this case the extension //! shall be activated by button 1 and it must be over a valid voxel position //! to be activated. set("button1 IGNORED button2 IGNORED button3 IGNORED needsValidVoxel TRUE"); // Create a sensor calling _nodeChangedCB if any field changes. Use a priority 0 // sensor to be sure that changes are not delayed or collected. _nodeSensor = new SoNodeSensor(SoTextureMaskedArea::nodeChangedCB, this); _nodeSensor->setPriority(0); _nodeSensor->attach(this); //new field sensor for crosshair selection _chooseTextureSens = new SoFieldSensor(SoTextureMaskedArea::textureChangedCB, this); _chooseTextureSens->attach(&chooseTextureEnum); tx=0; ty=0; tz=0; mx=0; my=0; mz=0; ox=0; oy=0; oz=0; drawCounter = 0; textureOK = false; oOk = false; _lutData = new ml::LUTData<MLuint8>; }
/*! Constructor. */ SoShapeHints::SoShapeHints(void) { SO_NODE_INTERNAL_CONSTRUCTOR(SoShapeHints); SO_NODE_ADD_FIELD(vertexOrdering, (UNKNOWN_ORDERING)); SO_NODE_ADD_FIELD(shapeType, (UNKNOWN_SHAPE_TYPE)); SO_NODE_ADD_FIELD(faceType, (CONVEX)); SO_NODE_ADD_FIELD(creaseAngle, (0.0f)); SO_NODE_DEFINE_ENUM_VALUE(VertexOrdering, UNKNOWN_ORDERING); SO_NODE_DEFINE_ENUM_VALUE(VertexOrdering, CLOCKWISE); SO_NODE_DEFINE_ENUM_VALUE(VertexOrdering, COUNTERCLOCKWISE); SO_NODE_DEFINE_ENUM_VALUE(ShapeType, UNKNOWN_SHAPE_TYPE); SO_NODE_DEFINE_ENUM_VALUE(ShapeType, SOLID); SO_NODE_DEFINE_ENUM_VALUE(FaceType, UNKNOWN_FACE_TYPE); SO_NODE_DEFINE_ENUM_VALUE(FaceType, CONVEX); SO_NODE_SET_SF_ENUM_TYPE(vertexOrdering, VertexOrdering); SO_NODE_SET_SF_ENUM_TYPE(shapeType, ShapeType); SO_NODE_SET_SF_ENUM_TYPE(faceType, FaceType); }
SoResetTransform::SoResetTransform() // //////////////////////////////////////////////////////////////////////// { SO_NODE_CONSTRUCTOR(SoResetTransform); SO_NODE_ADD_FIELD(whatToReset, (TRANSFORM)); // Set up static info for enumerated type field SO_NODE_DEFINE_ENUM_VALUE(ResetType, TRANSFORM); SO_NODE_DEFINE_ENUM_VALUE(ResetType, BBOX); // Set up info in enumerated type field SO_NODE_SET_SF_ENUM_TYPE(whatToReset, ResetType); isBuiltIn = TRUE; }
SoXipDepthTest::SoXipDepthTest() { SO_NODE_CONSTRUCTOR(SoXipDepthTest); SO_NODE_ADD_FIELD(enableDepthTest, (true)); SO_NODE_DEFINE_ENUM_VALUE(DepthFunc, NEVER); SO_NODE_DEFINE_ENUM_VALUE(DepthFunc, ALWAYS); SO_NODE_DEFINE_ENUM_VALUE(DepthFunc, LESS); SO_NODE_DEFINE_ENUM_VALUE(DepthFunc, LEQUAL); SO_NODE_DEFINE_ENUM_VALUE(DepthFunc, EQUAL); SO_NODE_DEFINE_ENUM_VALUE(DepthFunc, GEQUAL); SO_NODE_DEFINE_ENUM_VALUE(DepthFunc, GREATER); SO_NODE_DEFINE_ENUM_VALUE(DepthFunc, NOTEQUAL); SO_NODE_SET_SF_ENUM_TYPE(depthFunc, DepthFunc); SO_NODE_ADD_FIELD(depthFunc, (LESS)); }
SoPolygonOffset::SoPolygonOffset() { SO_NODE_CONSTRUCTOR(SoPolygonOffset); SO_NODE_ADD_FIELD(factor, (1.f)); SO_NODE_ADD_FIELD(units, (1.f)); SO_NODE_ADD_FIELD(styles, (FILLED)); SO_NODE_ADD_FIELD(on, (TRUE)); SO_NODE_DEFINE_ENUM_VALUE(Style, FILLED); SO_NODE_DEFINE_ENUM_VALUE(Style, LINES); SO_NODE_DEFINE_ENUM_VALUE(Style, POINTS); SO_NODE_SET_SF_ENUM_TYPE(styles, Style); isBuiltIn = TRUE; }
SoV1LightModel::SoV1LightModel() // //////////////////////////////////////////////////////////////////////// { SO_NODE_CONSTRUCTOR(SoV1LightModel); SO_NODE_ADD_FIELD(model, (PHONG)); SO_NODE_ADD_FIELD(nearColor, (1.0, 1.0, 1.0)); SO_NODE_ADD_FIELD(farColor, (0.0, 0.0, 0.0)); // Set up static info for enumerated type field SO_NODE_DEFINE_ENUM_VALUE(Model, PHONG); SO_NODE_DEFINE_ENUM_VALUE(Model, BASE_COLOR); SO_NODE_DEFINE_ENUM_VALUE(Model, DEPTH); // Set up info in enumerated type field SO_NODE_SET_SF_ENUM_TYPE(model, Model); }
SoXipOverlayTransformBoxManip::SoXipOverlayTransformBoxManip() { SO_NODE_CONSTRUCTOR( SoXipOverlayTransformBoxManip ); SO_NODE_DEFINE_ENUM_VALUE( ModeType, NONE ); SO_NODE_DEFINE_ENUM_VALUE( ModeType, ROTATION ); SO_NODE_DEFINE_ENUM_VALUE( ModeType, SCALE ); SO_NODE_SET_SF_ENUM_TYPE( mode, ModeType ); SO_NODE_ADD_FIELD( mode, (NONE) ); mControlPointsSwitch = 0; create(); mControlPointId = -1; }