AvoidObstacles

EXTERNPROTO AvoidObstacles [
   eventIn      SFTime     updateRequest
   eventIn      SFVec3f    set_goal
   eventIn      SFString   set_state
   eventIn      MFNode     set_obstacles
   field        SFVec3f    goal 
   field        SFFloat    goalPriority 
   field        SFFloat    speed 
   field        SFString   state 
   field        MFNode     obstacles 
   exposedField SFVec3f    position 
   exposedField MFNode     children 
] "AvoidObstaclesPROTO.wrl"
AvoidObstacles Example AvoidObstacles guides the children closer to the goal, avoiding the obstacles in the obstacle list. All obstacle nodes must have an exposedField SFVec3f position and an exposedField SFFloat repulsion.

updateRequest
SFTime

causes a new position to be calculated for the children.

set_goal
SFVec3f

updates the point in space that the children are heading towards.

set_state
SFString

currently not implemented.

set_obstacles
MFNode

functions as an addChildren eventIn to update the obstacle list.

goal
SFVec3f
0 0 0

the initial point in space that the children are heading towards.

goalPriority
SFFloat
2

modifies the 'attractiveness' of the goal position. Higher values will cause the children to ignore obstacle repulsion in favor of a strighter line to the goal.

speed
SFFloat
1

speed of children, in meters per second.

state
SFString
"CHASING"

currently not implemented.

obstacles
MFNode
[]

the initial list of obstacles to avoid. Each obstacle must have an exposedField SFVec3f position and an exposedField SFFloat repulsion.

position
SFVec3f
0 0 0

initial position of children.

children
MFNode
[]

all nodes inside this field will be maneuvered towards the goal.