Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
SoDirectionalLightDragger(3IV)()	      SoDirectionalLightDragger(3IV)()

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

       SoBase >	SoFieldContainer > SoNode > SoBaseKit >	SoInteractionKit > So-
       Dragger > SoDirectionalLightDragger

       #include	<Inventor/draggers/SoDirectionalLightDragger.h>

	  Fields from class SoDirectionalLightDragger:

     SoSFRotation	 rotation
     SoSFVec3f		 translation

	  Fields from class SoDragger:

     SoSFBool		 isActive

	  Fields from class SoInteractionKit:

     SoSFEnum		 renderCaching
     SoSFEnum		 boundingBoxCaching
     SoSFEnum		 renderCulling
     SoSFEnum		 pickCulling

	  Parts	from class SoBaseKit:

     (SoNodeKitListPart)  callbackList

	  Methods from class SoDirectionalLightDragger:

     static const SoNodekitCatalog *
			 getClassNodekitCatalog() const
     static SoType	 getClassTypeId()

	  Methods from class SoDragger:

     void		 addStartCallback(SoDraggerCB  *f,  void  *userData  =
     void		 removeStartCallback(SoDraggerCB *f, void *userData  =
     void		 addMotionCallback(SoDraggerCB	*f,  void  *userData =
     void		 removeMotionCallback(SoDraggerCB *f, void *userData =
     void		 addFinishCallback(SoDraggerCB	*f,  void  *userData =
     void		 removeFinishCallback(SoDraggerCB *f, void *userData =
     void		 addValueChangedCallback(SoDraggerCB  *f,  void	*user-
			      Data = NULL)
     void		 removeValueChangedCallback(SoDraggerCB	   *f,	  void
			      *userData	= NULL)
     SbBool		 enableValueChangedCallbacks()
     void		 setMinGesture(int pixels)
     int		 getMinGesture() const
     static void	 setMinScale(float newMinScale)
     static float	 getMinScale()

	  Methods from class SoInteractionKit:

     virtual  SbBool	  setPartAsPath(const SbName &partName,	SoPath *surro-
			      gatePath )

	  Methods from class SoBaseKit:

     virtual const SoNodekitCatalog *
			      getNodekitCatalog() const
     virtual   SoNode	*	  getPart(const	  SbName   &partName,	SbBool
     SbString		      getPartString(const SoBase *part)
     virtual  SoNodeKitPath *  createPathToPart(const SbName &partName,	SbBool
				   makeIfNeeded, const SoPath *pathToExtend  =
     virtual SbBool	      setPart(const SbName &partName, SoNode *newPart)
     SbBool		      set(char *partName, char *parameters)
     SbBool		      set(char *nameValuePairs)
     static SbBool	      isSearchingChildren()
     static void	      setSearchingChildren(SbBool newVal)

	  Methods from class SoNode:

     void		 setOverride(SbBool state)
     SbBool		 isOverride() const
     SoNode *		 copy(SbBool copyConnections = FALSE) const
     virtual SbBool	 affectsState()	const
     static SoNode *	 getByName(const SbName	&name)
     static int		 getByName(const SbName	&name, SoNodeList &list)

	  Methods from class SoFieldContainer:

     void		 setToDefaults()
     SbBool		 hasDefaultValues() const
     SbBool		 fieldsAreEqual(const SoFieldContainer *fc) const
     void		 copyFieldValues(const	SoFieldContainer  *fc,	SbBool
			      copyConnections =	FALSE)
     void		 get(SbString &fieldDataString)
     virtual int	 getFields(SoFieldList &resultList) const
     virtual SoField *	 getField(const	SbName &fieldName) const
     SbBool		 getFieldName(const SoField *field, SbName &fieldName)
     SbBool		 isNotifyEnabled() const
     SbBool		 enableNotify(SbBool flag)

	  Methods from class SoBase:

     void		 ref()
     void		 unref() const
     void		 unrefNoDelete() const
     void		 touch()
     virtual SoType	 getTypeId() const
     SbBool		 isOfType(SoType type) const
     virtual void	 setName(const SbName &name)
     virtual SbName	 getName() const

	  Macros from class SoBaseKit:

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

       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 rota-
       tion 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 SoDirectionalLightMa-
       nip  man	 page).	 The  manipulator also edits the material part of this
       dragger to match	the color of light the manipulator is producing.  How-
       ever,  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  SoDirec-
       tionalLight  as the next	child. Use a field-to-field connection between
       the rotation fields of this dragger and the transform node to  synchro-
       nize 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 ap-
       ply that	matrix to (0,0,-1), the	default	light direction.

       You can change the parts	in any instance	of  this  dragger  using  set-
       Part().	The  default part geometries are defined as resources for this
       SoDirectionalLightDragger class.	They are detailed in the  Dragger  Re-
       sources	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/directionalLightDrag-
       ger.iv into your	own directory, editing the file, and then setting  the
       environment variable SO_DRAGGER_DIR to be a path	to that	directory.

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

     SoSFVec3f		 translation
	  Position of the origin of the	directional light dragger.


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

     static SoType	 getClassTypeId()
	  Returns type identifier for this class.

       |			    All	parts				   |
       |							   NULL	by |
       |Part Name	   Part	Type		    Default Type   Default |
       |								   |
       |callbackList	   NodeKitListPart	    --		     yes   |
       |material	   Material		    --		     yes   |
       |translatorRotInv   Rotation		    --		     yes   |
       |translator	   DragPointDragger	    --		     yes   |
       |rotator		   RotateSphericalDragger   --		     yes   |
       |								   |
       |      Extra information	for list parts from above table	       |
       |							       |
       |Part Name      Container Type	Permissible Types	       |
       |							       |
       |callbackList   Separator	Callback, EventCallback	       |
       |							       |
       .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

			 .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
     Appearance:       empty Separator
     Description:      this disables display of	the axes that a	 rotateSpheri-
			 cal 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 rotateSpheri-
			 cal 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.  Re-
			 source	 for  the moving sun, directionalLightTransla-
			 torPlaneTranslatorActive, contains a yellow  material
			 for highlighting.

			 .in 0n+.5i
     Resource:	       directionalLightTranslatorPlaneTranslator
			 .in 0n+.5i
     Parts:	       translator.yzTranslator.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
     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
     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
     Appearance:       yellow cylinder
     Description:      shown during linear dragging in the x, y, and z	direc-
			 tions respectively.

       DirectionalLightDragger {
	  renderCaching				    AUTO
	  boundingBoxCaching			    AUTO
	  renderCulling				    AUTO
	  pickCulling				    AUTO
	  isActive				    FALSE
	  translation				    0 0	0
	  rotation				    0 0	1  0
	  callbackList				    NULL
	  material				    <directionalLightOverallMaterial resource>
	  translatorRotInv			    NULL
	  translator				    DragPointDragger {

	  rotator				    RotateSphericalDragger {

	  rotator.rotator			    <directionalLightRotatorRotator resource>
	  rotator.rotatorActive			    <directionalLightRotatorRotatorActive resource>			    <directionalLightRotatorFeedback resource>
	  rotator.feedbackActive		    <directionalLightRotatorFeedbackActive resource>
	  translator.yzTranslator.translator	    <directionalLightTranslatorPlaneTranslator resource>
	  translator.xzTranslator.translator	    <directionalLightTranslatorPlaneTranslator resource>
	  translator.xyTranslator.translator	    <directionalLightTranslatorPlaneTranslator resource>
	  translator.yzTranslator.translatorActive  <directionalLightTranslatorPlaneTranslatorActive resource>
	  translator.xzTranslator.translatorActive  <directionalLightTranslatorPlaneTranslatorActive resource>
	  translator.xyTranslator.translatorActive  <directionalLightTranslatorPlaneTranslatorActive resource>
	  translator.xTranslator.translator	    <directionalLightTranslatorLineTranslator resource>
	  translator.yTranslator.translator	    <directionalLightTranslatorLineTranslator resource>
	  translator.zTranslator.translator	    <directionalLightTranslatorLineTranslator resource>
	  translator.xTranslator.translatorActive   <directionalLightTranslatorLineTranslatorActive resource>
	  translator.yTranslator.translatorActive   <directionalLightTranslatorLineTranslatorActive resource>
	  translator.zTranslator.translatorActive   <directionalLightTranslatorLineTranslatorActive resource>

       SoInteractionKit,  SoDragger,  SoCenterballDragger, SoDragPointDragger,
       SoHandleBoxDragger, SoJackDragger, SoPointLightDragger,	SoRotateCylin-
       dricalDragger,	   SoRotateDiscDragger,	     SoRotateSphericalDragger,
       SoScale1Dragger,	SoScale2Dragger,  SoScale2UniformDragger,  SoScaleUni-
       formDragger,  SoSpotLightDragger,  SoTabBoxDragger,  SoTabPlaneDragger,
       SoTrackballDragger,  SoTransformBoxDragger,  SoTransformerDragger,  So-
       Translate1Dragger, SoTranslate2Dragger



Want to link to this manual page? Use this URL:

home | help