Difference between revisions of "Node OSG plugin extension"

From COLLADA Public Wiki
Jump to: navigation, search
(Short overview of extensions and examples)
Line 1: Line 1:
TODO
+
= 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>. <BR> 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 ==
 +
=== Example ===
 +
<pre>
 +
<extra type="Node">
 +
<technique profile="OpenSceneGraph">
 +
<Descriptions>
 +
<Description>Some info</Description>
 +
</Descriptions>
 +
</technique>
 +
</extra>
 +
</pre>
 +
 
 +
== LOD ==
 +
=== Example ===
 +
<pre>
 +
<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>
 +
</pre>
 +
 
 +
== Switch ==
 +
=== Example ===
 +
<pre>
 +
<extra type="Switch">
 +
<technique profile="OpenSceneGraph">
 +
<ValueList>1 0</ValueList>
 +
</technique>
 +
</extra>
 +
</pre>
 +
 
 +
== MultiSwitch ==
 +
=== Example ===
 +
<pre>
 +
<extra type="MultiSwitch">
 +
<technique profile="OpenSceneGraph">
 +
<ActiveSwitchSet>0</ActiveSwitchSet>
 +
<ValueLists>
 +
<ValueList>1 0</ValueList>
 +
<ValueList>0 1</ValueList>
 +
</ValueLists>
 +
</technique>
 +
</extra>
 +
</pre>
 +
 
 +
== Sequence ==
 +
=== Example ===
 +
<pre>
 +
<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>
 +
</pre>
 +
 
 +
== DOFTransform ==
 +
=== Example ===
 +
<pre>
 +
<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>
 +
</pre>

Revision as of 10:04, 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

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>