Difference between revisions of "Node OSG plugin extension"

From COLLADA Public Wiki
Jump to: navigation, search
(Short overview of extensions and examples)
(Added detailed node info)
Line 13: Line 13:
 
= Detailed description =
 
= Detailed description =
 
== Node ==
 
== Node ==
 +
Each node in OSG can have a list of strings attached.
 +
 +
{| style="text-align:left;  width:100%; border:1px solid #666666;" cellspacing="0" cellpadding="2"
 +
|- style="background-color:#eeeeee;"
 +
! Element || Type  || Comments
 +
|-
 +
! <Descriptions>|| contains a list of <Description> elements ||
 +
|-
 +
! <Description> || string || Line of free text
 +
|-
 +
|}
 +
 
=== Example ===
 
=== Example ===
 
<pre>
 
<pre>

Revision as of 15:42, 27 November 2008

Overview

The OpenSceneGraph plugin uses extensions to store specific node information used by OpenSceneGraph graphics library. It supports both reading and writing of the extension information. Currently no tools other than OpenSceneGraph based tools exist that are able to generate or reuse the information stored in the OpenSceneGraph node extension.

First of all it is important to note that the OpenSceneGraph profile uses the type attribute in the <extra> element to specify which node information will be available in the <extra>.
A <node> with an extra of profile="OpenSceneGraph" may be extended by a

  • <extra type="Node">

and/or one of

  • <extra type="LOD">
  • <extra type="Switch">
  • <extra type="MultiSwitch">
  • <extra type="Sequence">
  • <extra type="DOFTransform">

Detailed description

Node

Each node in OSG can have a list of strings attached.

Element Type Comments
<Descriptions> contains a list of <Description> elements
<Description> string Line of free text

Example

<extra type="Node">
	<technique profile="OpenSceneGraph">
		<Descriptions>
			<Description>Some info</Description>
		</Descriptions>
	</technique>
</extra>

LOD

Example

<extra type="LOD">
	<technique profile="OpenSceneGraph">
		<Center>1 2 3</Center> (optional )
		<Radius>-1</Radius> (required if Center is available)
		<RangeMode>0</RangeMode>
		<RangeList>
			<MinMax>0 300</MinMax>
			<MinMax>300 600</MinMax>
		</RangeList>
	</technique>
</extra>

Switch

Example

<extra type="Switch">
	<technique profile="OpenSceneGraph">
		<ValueList>1 0</ValueList>
	</technique>
</extra>

MultiSwitch

Example

<extra type="MultiSwitch">
	<technique profile="OpenSceneGraph">
		<ActiveSwitchSet>0</ActiveSwitchSet>
		<ValueLists>
			<ValueList>1 0</ValueList>
			<ValueList>0 1</ValueList>
		</ValueLists>
	</technique>
</extra>

Sequence

Example

<extra type="Sequence">
	<technique profile="OpenSceneGraph">
		<FrameTime>0 0</FrameTime>
		<LastFrameTime>0</LastFrameTime>
		<LoopMode>0</LoopMode>
		<IntervalBegin>0</IntervalBegin>
		<IntervalEnd>-1</IntervalEnd>
		<DurationSpeed>1</DurationSpeed>
		<DurationNReps>-1</DurationNReps>
		<SequenceMode>0</SequenceMode>
	</technique>
</extra>

DOFTransform

Example

<extra type="DOFTransform">
	<technique profile="OpenSceneGraph">
		<MinHPR>0 -0.174533 0</MinHPR>
		<MaxHPR>0 0.872665 0</MaxHPR>
		<IncrementHPR>0 0.0174533 0</IncrementHPR>
		<CurrentHPR>0 0 0</CurrentHPR>
		<MinTranslate>0 0 0</MinTranslate>
		<MaxTranslate>0 0 0</MaxTranslate>
		<IncrementTranslate>0 0 0</IncrementTranslate>
		<CurrentTranslate>0 0 0</CurrentTranslate>
		<MinScale>0 0 0</MinScale>
		<MaxScale>1 1 1</MaxScale>
		<IncrementScale>0 0 0</IncrementScale>
		<CurrentScale>1 1 1</CurrentScale>
		<MultOrder>0</MultOrder>
		<LimitationFlags>269964960</LimitationFlags>
		<AnimationOn>0</AnimationOn>
		<PutMatrix>
			1 0 0 0
			0 1 0 0
			0 0 1 0
			0 0 0 1
		</PutMatrix>
	</technique>
</extra>