Node OSG plugin extension

From COLLADA Public Wiki
Revision as of 10:04, 27 November 2008 by Rsmeenk (talk | contribs) (Short overview of extensions and examples)
Jump to: navigation, search

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>