Click or drag to resize
SoSpotLightManip Class

Spotlight node with 3D interface for editing location, direction, and beam width.

Inheritance Hierarchy

Namespace: OIV.Inventor.Manips
Assembly: OIV.Inventor (in OIV.Inventor.dll) Version: 10.12.3.0 (10.12.3.0)
Syntax
public class SoSpotLightManip : SoSpotLight

The SoSpotLightManip type exposes the following members.

Constructors
  NameDescription
Public methodSoSpotLightManip

Constructor.

Top
Methods
  NameDescription
Public methodAffectsState

Returns true if a node has an effect on the state during traversal.

(Inherited from SoNode.)
Public methodCallback
Public methodCopy
Calls Copy(false).
(Inherited from SoNode.)
Public methodCopy(Boolean)

Creates and returns an exact copy of the node.

(Inherited from SoNode.)
Public methodCopyFieldValues(SoFieldContainer)
Calls CopyFieldValues(fc, false).
(Inherited from SoFieldContainer.)
Public methodCopyFieldValues(SoFieldContainer, Boolean)

Copies the contents of fc's fields into this object's fields.

(Inherited from SoFieldContainer.)
Public methodDispose
Releases all resources used by SoDisposable.
(Inherited from SoDisposable.)
Public methodDistribute
(Inherited from SoNode.)
Public methodDoAction
Public methodEnableNotify

Notification at this Field Container is enabled (if flag == true) or disabled (if flag == false).

(Inherited from SoFieldContainer.)
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Public methodFieldsAreEqual

Returns true if this object's fields are exactly equal to fc's fields.

(Inherited from SoFieldContainer.)
Public methodGet

Returns the values of the fields of this object in the Open Inventor ASCII file format in the given string.

(Inherited from SoFieldContainer.)
Public methodGetAllFields

Returns a list of fields, including the eventIn's and eventOut's.

(Inherited from SoFieldContainer.)
Public methodGetAlternateRep

This method is called by actions to allow the node to provide an "alternate representation" when appropriate (typically depending on the action type).

(Inherited from SoNode.)
Public methodGetBoundingBox
Public methodGetDragger

Returns the dragger being used by this manipulator.

Public methodGetEventIn

Returns a the eventIn with the given name.

(Inherited from SoFieldContainer.)
Public methodGetEventOut

Returns the eventOut with the given name.

(Inherited from SoFieldContainer.)
Public methodGetField

Returns a the field of this object whose name is fieldName.

(Inherited from SoFieldContainer.)
Public methodGetFieldName

Returns the name of the given field in the fieldName argument.

(Inherited from SoFieldContainer.)
Public methodGetFields

Appends references to all of this object's fields to resultList, and returns the number of fields appended.

(Inherited from SoFieldContainer.)
Public methodGetHashCode
Overrides GetHashCode().
(Inherited from SoNetBase.)
Public methodGetMatrix
Public methodGetName

Returns the name of an instance.

(Inherited from SoBase.)
Public methodGetPrimitiveCount
(Inherited from SoNode.)
Public methodGetRenderEngineMode

Returns the supported Render engine mode.

(Inherited from SoNode.)
Public methodGetRenderUnitID
(Inherited from SoNode.)
Public methodGetStringName (Inherited from SoBase.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGLRender
Public methodGLRenderBelowPath
(Inherited from SoNode.)
Public methodGLRenderInPath
(Inherited from SoNode.)
Public methodGLRenderOffPath
(Inherited from SoNode.)
Public methodGrabEventsCleanup
(Inherited from SoNode.)
Public methodGrabEventsSetup
(Inherited from SoNode.)
Public methodHandleEvent
Public methodHasDefaultValues

Returns true if all of the object's fields have their default values.

(Inherited from SoFieldContainer.)
Public methodIsBoundingBoxIgnoring

This method is used by getBoundingBox action traversal to know if the current node must be traversed or not, ie the bounding should be ignored.

(Inherited from SoNode.)
Public methodIsNotifyEnabled

Notification is the process of telling interested objects that this object has changed.

(Inherited from SoFieldContainer.)
Public methodIsOverride

Returns the state of the override flag.

(Inherited from SoNode.)
Public methodIsSynchronizable

Gets the ScaleViz synchronizable state of this object.

(Inherited from SoBase.)
Public methodPick
Public methodRayPick
(Inherited from SoNode.)
Public methodReplaceManip

Replaces the tail of the path, which must be this manipulator, with the given OIV.Inventor.Nodes.SoSpotLight node.

Public methodReplaceNode

Replaces the tail of the path with this manipulator.

Public methodSearch
Public methodSet

Sets one or more fields in this object to the values specified in the given string, which should be a string in the Open Inventor file format.

(Inherited from SoFieldContainer.)
Public methodSetName (Inherited from SoBase.)
Public methodSetOverride

Turns the override flag on or off.

(Inherited from SoNode.)
Public methodSetSynchronizable

Sets this to be a ScaleViz synchronizable object.

(Inherited from SoBase.)
Public methodSetToDefaults

Sets all fields in this object to their default values.

(Inherited from SoFieldContainer.)
Public methodToString
Converts this SoBase structure to a human readable string.
(Inherited from SoBase.)
Public methodTouch

Marks an instance as modified, simulating a change to it.

(Inherited from SoNode.)
Public methodWrite
Top
Properties
  NameDescription
Public propertycolor

Light source illumination color.

(Inherited from SoLight.)
Public propertycutOffAngle

Angle (in radians) outside of which intensity is zero, measured from the center axis of the cone to an edge.

(Inherited from SoSpotLight.)
Public propertydirection

Principal direction of illumination (center axis of cone).

(Inherited from SoSpotLight.)
Public propertydropOffRate

Rate of intensity drop-off per change in angle from primary direction: 0 = constant intensity, 1 = very sharp drop-off.

(Inherited from SoSpotLight.)
Public propertyintensity

Illumination intensity of light source.

(Inherited from SoLight.)
Public propertyIsDisposable
ISafeDisposable interface implementation.
(Inherited from SoDisposable.)
Public propertylocation

Location of the source.

(Inherited from SoSpotLight.)
Public propertyon

Determines whether the source is active or inactive.

(Inherited from SoLight.)
Public propertyUserData
Gets or sets the user data to be contained by the field container.
(Inherited from SoFieldContainer.)
Top
Remarks

OIV.Inventor.Manips.SoSpotLightManip is the base class for all OIV.Inventor.Nodes.SoSpotLight nodes that have a built-in 3D user interface (this is the only such class provided with the Open Inventor toolkit). Since it is derived from OIV.Inventor.Nodes.SoSpotLight, any changes to its fields result in a change of lighting for nodes that follow it in the scene graph. In this case, the interface edits the location , direction , and cutOffAngle fields. Also, the color of the manipulator's geometry will reflect the color of the light (but you can not edit the color using this manipulator).

Typically, you will want to replace a regular OIV.Inventor.Nodes.SoSpotLight with an OIV.Inventor.Manips.SoSpotLightManip (as when the user selects a light to be edited), or vice versa (as when the user is done moving the light and the interface should go away). Use the OIV.Inventor.Manips.SoSpotLightManip.ReplaceNode(OIV.Inventor.SoPath) method to insert a manipulator into a scene graph, and the OIV.Inventor.Manips.SoSpotLightManip.ReplaceManip(OIV.Inventor.SoPath, OIV.Inventor.Nodes.SoSpotLight) method to remove it when done.

The OIV.Inventor.Manips.SoSpotLightManip utilizes an OIV.Inventor.Draggers.SoSpotLightDragger to provide a 3D interface. However, the manipulator differs from the dragger; it lights other objects in the scene because, as an OIV.Inventor.Nodes.SoSpotLight, it alters the state. The fields values and movement of the dragger, on the other hand, affect only the dragger itself. To find out more about how the interface works and what each part will do, see the reference page for OIV.Inventor.Draggers.SoSpotLightDragger. The interfaces of the dragger and the manipulator are identical.

The OIV.Inventor.Manips.SoSpotLightManip utilizes its dragger by adding it as a hidden child. When an action is applied to the manipulator, such as rendering or handling events, the manipulator first traverses the dragger, and then the manipulator adds its lighting parameters to the state. When you click-drag-release over the manipulator, it passes these events down to the dragger, which moves as a result ("I can't <B> help </B> it, I'm a dragger!").

The manipulator maintains consistency between the fields of the dragger and its own fields. Let's say you use the mouse to widen the cone of the dragger . Callbacks insure that the cutOffAngle field of the manipulator will change by the same amount, thus changing the lighting of nodes which follow in the scene graph. Similarly, if you set the cutOffAngle field of the OIV.Inventor.Manips.SoSpotLightManip, the manipulator will widen the beam of the dragger accordingly.

Because the dragger is a hidden child, you can see the dragger on screen and interact with it, but the dragger does not show up when you write the manipulator to file. Also, any OIV.Inventor.SoPath will end at the manipulator. (See the Actions section of this reference page for a complete description of when the dragger is traversed).

You can get this dragger from the manipulator using the OIV.Inventor.Manips.SoSpotLightManip.GetDragger() method. You will need to do this if you want to change the geometry of a manipulator, since the geometry actually belongs to the dragger.

FILE FORMAT/DEFAULT

SpotLightManip {
on true
intensity 1
color 1 1 1
location 0 0 1
direction 0 0 -1
dropOffRate 0
cutOffAngle 0.785398
}

ACTION BEHAVIOR

OIV.Inventor.Actions.SoGLRenderAction, OIV.Inventor.Actions.SoCallbackAction, OIV.Inventor.Actions.SoGetBoundingBoxAction, OIV.Inventor.Actions.SoGetMatrixAction, OIV.Inventor.Actions.SoHandleEventAction, OIV.Inventor.Actions.SoRayPickAction First, traverses the dragger the way an OIV.Inventor.Nodes.SoGroup would. All draggers place themselves in space, but leave the current transformation unchanged when finished. Then the OIV.Inventor.Manips.SoSpotLightManip adds a spotlight to the state, just like its base class, OIV.Inventor.Nodes.SoSpotLight.

OIV.Inventor.Actions.SoSearchAction Searches just like an OIV.Inventor.Nodes.SoSpotLight. Does not search the dragger, which is a hidden child.

OIV.Inventor.Actions.SoWriteAction Writes out just like an OIV.Inventor.Nodes.SoSpotLight. Does not write the dragger, which is a hidden child. If you really need to write valuable information about the dragger, such as customized geometry, you can retrieve the dragger with the OIV.Inventor.Manips.SoSpotLightManip.GetDragger() method and then write it out separately.

See Also