logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SoDirectionalLightDragger — directional icon you rotate and translate by dragging with the mouse

Catalog Parts

       ┌────────────────────────────────────────────────────────────────────┐
       │                             Allparts                              │
       │                                                            NULLby │
       │ PartNamePartTypeDefaultTypeDefault │
       │                                                                    │
       │ callbackList       NodeKitListPart          --               yes   │
       │ material           Material                 --               yes   │
       │ translatorRotInv   Rotation                 --               yes   │
       │ translator         DragPointDragger         --               yes   │
       │ rotator            RotateSphericalDragger   --               yes   │
       │                                                                    │
       └────────────────────────────────────────────────────────────────────┘
       ┌────────────────────────────────────────────────────────────────┐
       │       Extrainformationforlistpartsfromabovetable        │
       │                                                                │
       │ PartNameContainerTypePermissibleTypes              │
       │                                                                │
       │ callbackList   Separator        Callback, EventCallback        │
       │                                                                │
       └────────────────────────────────────────────────────────────────┘

Description

SoDirectionalLightDragger is a composite dragger. It looks like a sun with a large arrow  coming  out  of
       it.  The  arrow  can be rotated about the sun by dragging with the mouse; its orientation is given by the
       rotation field. You can also drag the sun (and the arrow with it) through 3-space. The location is stored
       in the translation field.

       The dragger uses an SoRotateSphericalDragger for changing the rotation.  Instead  of  using  the  default
       spherical geometry, this dragger uses an arrow shape.

       The  sun is an SoDragPointDragger. Dragging it edits the translation field; conversely, if you change the
       translation field the sun will move to that new location, bringing the arrow with it. The sun  looks  and
       behaves   just   like   the   sun  in  an  SoPointLightDragger,  as  does  the  material  part.  See  the
       SoPointLightDragger man page for details.

       Remember: This is not a light source! It just looks like one. If you want  to  move  a  light  with  this
       dragger, you can either:

       [a]   Use   an   SoDirectionalLightManip,   which   is   subclassed   from   SoLight.   It   creates   an
       SoDirectionalLightDragger and uses it as the interface to change the direction of its light  source  (see
       the  SoDirectionalLightManip  man  page). The manipulator also edits the material part of this dragger to
       match the color of light the manipulator is producing. However, the directional  light  manipulator  will
       ignore  the  translation  field,  because a directional light has no location or translation field. So in
       this case the translation dragger merely allows you to move the physical arrow to wherever you'd like  it
       to be.

       [b] Put an SoTransform under an SoTransformSeparator. Add the SoDirectionalLight as the next child. Use a
       field-to-field  connection  between  the  rotation  fields  of  this  dragger  and  the transform node to
       synchronize the light with this dragger.

       [c] Use  engines  to  connect  the  rotation  field  of  this  dragger  to  the  direction  field  of  an
       SoDirectionalLight. Use the rotation as input to an SoComposeMatrix engine. Then, use an SoTransformVec3f
       engine to apply that matrix to (0,0,-1), the default light direction.

       You can change the parts in any instance of this dragger using setPart(). The default part geometries are
       defined as resources for this SoDirectionalLightDragger class. They are detailed in the Dragger Resources
       section  of  the  online  reference  page for this class. You can make your program use different default
       resources for the parts by copying  the  file  /usr/share/data/draggerDefaults/directionalLightDragger.iv
       into your own directory, editing the file, and then setting the environment variable SO_DRAGGER_DIR to be
       a path to that directory.

Dragger Resources

       .in 0n+.5i
     Resource:         directionalLightRotatorRotator
       .in 0n+.5i
     Part:             rotator.rotator
     Appearance:       white arrow that goes through the sun
     Description:      picking this begins rotation of the arrow about the sun-shape

                         .in 0n+.5i
     Resource:         directionalLightRotatorRotatorActive
                         .in 0n+.5i
     Part:             rotator.rotatorActive
     Appearance:       yellow arrow that goes through the sun
     Description:      displayed while the arrow is being rotated

                         .in 0n+.5i
     Resource:         directionalLightRotatorFeedback
                         .in 0n+.5i
     Part:             rotator.feedback
     Appearance:       empty Separator
     Description:      this disables display of the axes that a rotateSpherical dragger uses by default

                         .in 0n+.5i
     Resource:         directionalLightRotatorFeedbackActive
                         .in 0n+.5i
     Part:             rotator.feedbackActive
     Appearance:       empty Separator
     Description:      this disables display of the axes that a rotateSpherical dragger uses by default

                         .in 0n+.5i
     Resource:         directionalLightOverallMaterial
                         .in 0n+.5i
     Part:             material
     Appearance:       white. half strength emissive, half strength diffuse
     Description:      sets  material  for  the  sun  shape  when  stationary.  Resource  for  the  moving  sun,
                         directionalLightTranslatorPlaneTranslatorActive,  contains  a   yellow   material   for
                         highlighting.

                         .in 0n+.5i
     Resource:         directionalLightTranslatorPlaneTranslator
                         .in 0n+.5i
     Parts:            translator.yzTranslator.translator
                                           translator.xzTranslator.translator
                                           translator.xyTranslator.translator
     Appearance:       sun shape with no material
     Description:      picking   these  parts  initiates  dragging  by  the  yz,  xz,  and  xy  planar  draggers
                         respectively.

                         .in 0n+.5i
     Resource:         directionalLightTranslatorPlaneTranslatorActive
                         .in 0n+.5i
     Parts:            translator.yzTranslator.translatorActive
                                           translator.xzTranslator.translatorActive
                                           translator.xyTranslator.translatorActive
     Appearance:       yellow sun shape
     Description:      shown during planar dragging in the yz, xz, and xy planes respectively.

                         .in 0n+.5i
     Resource:         directionalLightTranslatorLineTranslator
                         .in 0n+.5i
     Parts:            translator.xTranslator.translator
                                           translator.yTranslator.translator
                                           translator.zTranslator.translator
     Appearance:       white cylinder
     Description:      picking these parts initiates dragging in the x, y, and z linear draggers respectively.

                         .in 0n+.5i
     Resource:         directionalLightTranslatorLineTranslatorActive
                         .in 0n+.5i
     Parts:            translator.xTranslator.translatorActive
                                           translator.yTranslator.translatorActive
                                           translator.zTranslator.translatorActive
     Appearance:       yellow cylinder
     Description:      shown during linear dragging in the x, y, and z directions respectively.

Fields

SoSFRotationrotation
          Orientation of the rotating part (an arrow by default).

     SoSFVec3ftranslation
          Position of the origin of the directional light dragger.

File Format/Defaults

DirectionalLightDragger{renderCachingAUTOboundingBoxCachingAUTOrenderCullingAUTOpickCullingAUTOisActiveFALSEtranslation000rotation0010callbackListNULLmaterial<directionalLightOverallMaterialresource>translatorRotInvNULLtranslatorDragPointDragger{}rotatorRotateSphericalDragger{}rotator.rotator<directionalLightRotatorRotatorresource>rotator.rotatorActive<directionalLightRotatorRotatorActiveresource>rotator.feedback<directionalLightRotatorFeedbackresource>rotator.feedbackActive<directionalLightRotatorFeedbackActiveresource>translator.yzTranslator.translator<directionalLightTranslatorPlaneTranslatorresource>translator.xzTranslator.translator<directionalLightTranslatorPlaneTranslatorresource>translator.xyTranslator.translator<directionalLightTranslatorPlaneTranslatorresource>translator.yzTranslator.translatorActive<directionalLightTranslatorPlaneTranslatorActiveresource>translator.xzTranslator.translatorActive<directionalLightTranslatorPlaneTranslatorActiveresource>translator.xyTranslator.translatorActive<directionalLightTranslatorPlaneTranslatorActiveresource>translator.xTranslator.translator<directionalLightTranslatorLineTranslatorresource>translator.yTranslator.translator<directionalLightTranslatorLineTranslatorresource>translator.zTranslator.translator<directionalLightTranslatorLineTranslatorresource>translator.xTranslator.translatorActive<directionalLightTranslatorLineTranslatorActiveresource>translator.yTranslator.translatorActive<directionalLightTranslatorLineTranslatorActiveresource>translator.zTranslator.translatorActive<directionalLightTranslatorLineTranslatorActiveresource>}

Inherits From

       SoBase > SoFieldContainer > SoNode > SoBaseKit > SoInteractionKit > SoDragger > SoDirectionalLightDragger

Methods

SoDirectionalLightDragger()
          Constructor.

     staticconstSoNodekitCatalog*getClassNodekitCatalog()const
          Returns an SoNodekitCatalog for this class

     staticSoTypegetClassTypeId()
          Returns type identifier for this class.

Name

       SoDirectionalLightDragger — directional icon you rotate and translate by dragging with the mouse

See Also

SoInteractionKit,SoDragger,SoCenterballDragger,SoDragPointDragger,SoHandleBoxDragger,SoJackDragger,SoPointLightDragger,SoRotateCylindricalDragger,SoRotateDiscDragger,SoRotateSphericalDragger,SoScale1Dragger,SoScale2Dragger,SoScale2UniformDragger,SoScaleUniformDragger,SoSpotLightDragger,SoTabBoxDragger,SoTabPlaneDragger,SoTrackballDragger,SoTransformBoxDragger,SoTransformerDragger,SoTranslate1Dragger,SoTranslate2DraggerSoDirectionalLightDragger(3IV)()

Synopsis

#include<Inventor/draggers/SoDirectionalLightDragger.h>

          Fields from class SoDirectionalLightDragger:

     SoSFRotationrotationSoSFVec3ftranslation

          Fields from class SoDragger:

     SoSFBoolisActive

          Fields from class SoInteractionKit:

     SoSFEnumrenderCachingSoSFEnumboundingBoxCachingSoSFEnumrenderCullingSoSFEnumpickCulling

          Parts from class SoBaseKit:

     (SoNodeKitListPart)callbackList

          Methods from class SoDirectionalLightDragger:

                         SoDirectionalLightDragger()staticconstSoNodekitCatalog*getClassNodekitCatalog()conststaticSoTypegetClassTypeId()

          Methods from class SoDragger:

     voidaddStartCallback(SoDraggerCB*f,void*userData=NULL)voidremoveStartCallback(SoDraggerCB*f,void*userData=NULL)voidaddMotionCallback(SoDraggerCB*f,void*userData=NULL)voidremoveMotionCallback(SoDraggerCB*f,void*userData=NULL)voidaddFinishCallback(SoDraggerCB*f,void*userData=NULL)voidremoveFinishCallback(SoDraggerCB*f,void*userData=NULL)voidaddValueChangedCallback(SoDraggerCB*f,void*userData=NULL)voidremoveValueChangedCallback(SoDraggerCB*f,void*userData=NULL)SbBoolenableValueChangedCallbacks()voidsetMinGesture(intpixels)intgetMinGesture()conststaticvoidsetMinScale(floatnewMinScale)staticfloatgetMinScale()

          Methods from class SoInteractionKit:

     virtualSbBoolsetPartAsPath(constSbName&partName,SoPath*surrogatePath)

          Methods from class SoBaseKit:

     virtualconstSoNodekitCatalog*getNodekitCatalog()constvirtualSoNode*getPart(constSbName&partName,SbBoolmakeIfNeeded)SbStringgetPartString(constSoBase*part)virtualSoNodeKitPath*createPathToPart(constSbName&partName,SbBoolmakeIfNeeded,constSoPath*pathToExtend=NULL)virtualSbBoolsetPart(constSbName&partName,SoNode*newPart)SbBoolset(char*partName,char*parameters)SbBoolset(char*nameValuePairs)staticSbBoolisSearchingChildren()staticvoidsetSearchingChildren(SbBoolnewVal)

          Methods from class SoNode:

     voidsetOverride(SbBoolstate)SbBoolisOverride()constSoNode*copy(SbBoolcopyConnections=FALSE)constvirtualSbBoolaffectsState()conststaticSoNode*getByName(constSbName&name)staticintgetByName(constSbName&name,SoNodeList&list)

          Methods from class SoFieldContainer:

     voidsetToDefaults()SbBoolhasDefaultValues()constSbBoolfieldsAreEqual(constSoFieldContainer*fc)constvoidcopyFieldValues(constSoFieldContainer*fc,SbBoolcopyConnections=FALSE)voidget(SbString&fieldDataString)virtualintgetFields(SoFieldList&resultList)constvirtualSoField*getField(constSbName&fieldName)constSbBoolgetFieldName(constSoField*field,SbName&fieldName)constSbBoolisNotifyEnabled()constSbBoolenableNotify(SbBoolflag)

          Methods from class SoBase:

     voidref()voidunref()constvoidunrefNoDelete()constvoidtouch()virtualSoTypegetTypeId()constSbBoolisOfType(SoTypetype)constvirtualvoidsetName(constSbName&name)virtualSbNamegetName()const

          Macros from class SoBaseKit:

     SO_GET_PART(kit,partName,partClass)SO_CHECK_PART(kit,partName,partClass)

See Also