Heilan X3D Browser

Timed Viewpoint Information

Note: This information is probably not correct anymore due to changes in the way Heilan renders the scene. I believe the correct way to automate the camera in X3D is by ROUTE-ing a PositionInterpolator to the currently-bound Viewpoint's position, so I'm deprecating this navigation type.

libheilanextras contains a navigation type - TimedViewpointNavigation - that allows the scene author to create a path through the scene which the camera will follow, ignoring any input from the user. This navigation type makes use of a couple of extra (Heilan-specific) attributes added to the Viewpoint node type, to set the timing information for the camera.

Example Usage

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE X3D>
<X3D profile="Full">
	<Scene>
		<NavigationInfo type="TIMED_VIEWPOINT"/>

		<Viewpoint position="0.0 0.0 0.0 ">
			<MetadataString name="heilan_timeToGetHere" value="2.0 "/>
			<MetadataString name="heilan_pauseTime" value="4.0 "/>
		</Viewpoint>
		<Viewpoint position="0.0 0.0 8.0 ">
			<MetadataString name="heilan_timeToGetHere" value="4.0 "/>
			<MetadataString name="heilan_pauseTime" value="0.0 "/>
		</Viewpoint>
		<Viewpoint position="1.0 0.0 12.0 ">
			<MetadataString name="heilan_timeToGetHere" value="1.0 "/>
			<MetadataString name="heilan_pauseTime" value="2.0 "/>
		</Viewpoint>
		<Viewpoint position="-4.0 0.0 24.0 ">
			<MetadataString name="heilan_timeToGetHere" value="0.0 "/>
			<MetadataString name="heilan_pauseTime" value="4.0 "/>
		</Viewpoint>

		<Transform translation="3.0 0.0 -5.0" rotation="0.0 1.0 0.25 55.0">
			<Shape>
				<Appearance>
					<Material diffuseColor="0.25 0.125 0.0 "/>
				</Appearance>
				<Box size="0.25 0.25 0.25"/>
			</Shape>
		</Transform>
	</Scene>
</X3D>
		

As can be seen from the above example, the author can set two attributes using 'MetadataString' nodes:

  • heilan_timeToGetHere: The time (in seconds) the camera should take to move to this Viewpoint from the previous one.
  • heilan_pauseTime: The time (in seconds) the camera should wait (once it's arrived at this node) before moving onto the next Viewpoint.