[X3D-Public] Model Building for Light Simulation

cbullard at hiwaay.net cbullard at hiwaay.net
Wed Aug 14 06:02:20 PDT 2013


A brilliant start.  Many thanks!

len

Quoting Don Brutzman <brutzman at nps.edu>:

> On 8/13/2013 4:05 PM, Len Bullard wrote:
>> Question:
>>
>> What is the best configuration of systems for building a light data-driven
>> waypoint simulation in X3D that uses the Monterey tool kits as the editing
>> suite?
>
> Please see Savage examples archive
> 	Tools
> 	Animation
> 	Waypoint Interpolator Example
>
> 	https://savage.nps.edu/Savage/Tools/Animation/
> 	https://savage.nps.edu/Savage/Tools/Animation/WaypointInterpolatorExample.x3d
>
> Screenshot
>
> 	https://savage.nps.edu/Savage/Tools/Animation/WaypointInterpolatorExample.png
>
> This is also available as a drag-and-drop palette item in X3D-Edit  
> (listed under Savage examples)
>
> 	https://savage.nps.edu/X3D-Edit/
>
> which produces the following code snippet.  looks gnarly until you  
> play with it, have just added lots of switches and options over  
> time. reading appinfo helps.
>
> Good way to produce a data-driven visualization:
> - produce some positional data
> - wrap the excerpt around it
> - view
>
>         <!-- ==================== -->
>         <ExternProtoDeclare appinfo='Reads waypoints and  
> legSpeeds/legDurations/defaultSpeed to provide a customizable  
> position/orientation interpolator.' name='WaypointInterpolator'   
> url='  
> "../../../Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator"
>
> "https://savage.nps.edu/Savage/Tools/Animation/WaypointInterpolatorPrototype.x3d#WaypointInterpolator"
>
> "../../../Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator"
>
> "https://savage.nps.edu/Savage/Tools/Animation/WaypointInterpolatorPrototype.wrl#WaypointInterpolator"'>
>           <!-- Priority of use: legSpeeds (m/sec), legDurations  
> (seconds), defaultSpeed (m/sec) -->
>           <field accessType='initializeOnly' appinfo='Short  
> description of what is animated by this WaypointInterpolator.'  
> name='description' type='SFString'/>
>           <field accessType='initializeOnly' appinfo='Waypoints  
> being traversed with interpolation of intermediate positions and  
> orientations.' name='waypoints' type='MFVec3f'/>
>           <field accessType='inputOnly' appinfo='Add another single  
> waypoint to array of waypoints recalculate interpolator values.'  
> name='add_waypoint' type='SFVec3f'/>
>           <field accessType='inputOnly' appinfo='Replace all  
> waypoints recalculate interpolator values.' name='set_waypoints'  
> type='MFVec3f'/>
>           <field accessType='initializeOnly' appinfo='Whether to  
> pitch child geometry (such as a vehicle) up or down to match  
> vertical slope' name='pitchUpDownForVerticalWaypoints' type='SFBool'/>
>           <field accessType='initializeOnly' appinfo='Units m/sec.  
> If used array lengths for legSpeeds and legDurations must be one  
> less than number of waypoints.' name='legSpeeds' type='MFFloat'/>
>           <field accessType='initializeOnly' appinfo='Units in  
> seconds. If used array lengths for legSpeeds and legDurations must  
> be one less than number of waypoints.' name='legDurations'  
> type='MFTime'/>
>           <field accessType='initializeOnly' appinfo='Units m/sec.'  
> name='defaultSpeed' type='SFFloat'/>
>           <field accessType='initializeOnly' appinfo='turningRate  
> (degrees/second) also determines standoff distance prior to waypoint  
> where turn commences. If 0 turns are instantaneous.'  
> name='turningRate' type='SFFloat'/>
>           <field accessType='outputOnly' appinfo='Output calculation  
> summing all leg durations, useful for setting TimeSensor  
> cycleInterval. Units in seconds.' name='totalDuration' type='SFTime'/>
>           <!-- interpolation fields -->
>           <field accessType='inputOnly' appinfo='exposed  
> PositionInterpolator and OrientationInterpolator setting'  
> name='set_fraction' type='SFFloat'/>
>           <field accessType='outputOnly' appinfo='exposed  
> PositionInterpolator setting' name='position_changed' type='SFVec3f'/>
>           <field accessType='outputOnly' appinfo='exposed  
> OrientationInterpolator setting' name='orientation_changed'  
> type='SFRotation'/>
>           <!-- display-related fields -->
>           <field accessType='inputOutput' appinfo='default color for  
> non-active line segments' name='lineColor' type='SFColor'/>
>           <field accessType='inputOutput'  
> appinfo='highlightSegmentColors must contain two color values for  
> each endpoint of the highlight segment.'  
> name='highlightSegmentColor' type='SFColor'/>
>           <field accessType='inputOutput' appinfo='1.0 is completely  
> transparent, 0.0 is completely opaque.' name='transparency'  
> type='SFFloat'/>
>           <field accessType='initializeOnly' appinfo='allowed  
> values: none; waypoints (produce labels at each waypoint); or  
> interpolation (produce single moving label at interpolator time  
> course speed location)' name='labelDisplayMode' type='SFString'/>
>           <field accessType='initializeOnly' appinfo='allowed  
> values: altitude depth (negate Y value) none' name='heightLabel'  
> type='SFString'/>
>           <field accessType='initializeOnly' appinfo='heightLabel  
> relative location' name='labelOffset' type='SFVec3f'/>
>           <field accessType='initializeOnly' appinfo='heightLabel  
> text size' name='labelFontSize' type='SFFloat'/>
>           <field accessType='initializeOnly' appinfo='heightLabel  
> text color' name='labelColor' type='SFColor'/>
>           <field accessType='initializeOnly' appinfo='enable console  
> output to trace script computations and prototype progress'  
> name='traceEnabled' type='SFBool'/>
>           <field accessType='initializeOnly' appinfo='Output the  
> number of waypoints totalDistance and totalDuration to console upon  
> initialization' name='outputInitializationComputations'  
> type='SFBool'/>
>           <field accessType='inputOutput' appinfo='default color for  
> vertical drop-line segments' name='verticalDropLineColor'  
> type='SFColor'/>
>           <field accessType='inputOutput' appinfo='1.0 is completely  
> transparent 0.0 is completely opaque.'  
> name='verticalDropLineTransparency' type='SFFloat'/>
>      </ExternProtoDeclare>
>     <!-- Only one copy of a given ExternProtoDeclare is needed in a  
> scene. Multiple ProtoInstance nodes can be created like the  
> following -->
>      <ProtoInstance DEF='WaypointInterpolatorExample'  
> name='WaypointInterpolator'>
>           <fieldValue name='description' value='TrackBuilder'/>
>           <!-- Priority of use: legSpeeds (m/sec), legDurations  
> (seconds), defaultSpeed (m/sec) -->
>           <fieldValue name='waypoints' value='-5 0 0 5 2 0 5 5 -10  
> 4.9 2 -10 -5 0 -10 -5 0 0 -5.5 0 1.5 -7 0.5 2 -8 0 0 -5 0 0'/>
>           <fieldValue name='pitchUpDownForVerticalWaypoints' value='false'/>
>           <fieldValue name='legDurations' value='1 2 3 1 2 3 1 2 3'/>
>           <fieldValue name='legSpeeds' value='2 4 2 2 4 1 1 1 1'/>
>           <fieldValue name='defaultSpeed' value='5'/>
>           <fieldValue name='turningRate' value='90'/>
>           <fieldValue name='lineColor' value='1 0 0'/>
>           <fieldValue name='highlightSegmentColor' value='0.2 0.2 1'/>
>           <fieldValue name='transparency' value='0'/>
>           <fieldValue name='labelDisplayMode' value='interpolation'/>
>           <fieldValue name='heightLabel' value='altitude'/>
>           <fieldValue name='labelOffset' value='0 1.2 0'/>
>           <fieldValue name='labelFontSize' value='0.5'/>
>           <fieldValue name='labelColor' value='0.3 0.9 0.3'/>
>           <fieldValue name='traceEnabled' value='false'/>
>           <fieldValue name='outputInitializationComputations' value='true'/>
>      </ProtoInstance>
>      <!-- Example use:  
> https://savage.nps.edu/Savage/Tools/Animation/WaypointInterpolatorExample.x3d  
> -->
>      <!-- ==================== -->
>
>
> all the best, Don
> -- 
> Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
> X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman
>





More information about the X3D-Public mailing list