Stg::StgModel Class Reference

#include <stage.hh>

Inherits Stg::StgAncestor.

Inherited by Stg::StgModelBlinkenlight, Stg::StgModelBlobfinder, Stg::StgModelCamera, Stg::StgModelFiducial, Stg::StgModelLaser, Stg::StgModelPosition, and Stg::StgModelRanger.

List of all members.


Detailed Description

StgModel class


Public Member Functions

void AddBlinkenlight (stg_blinkenlight_t *b)
void AddBlock (stg_point_t *pts, size_t pt_count, stg_meters_t zmin, stg_meters_t zmax, stg_color_t color, bool inherit_color)
void AddBlockRect (double x, double y, double width, double height)
void AddCallback (void *address, stg_model_callback_t cb, void *user)
void AddFlag (StgFlag *flag)
void AddLoadCallback (stg_model_callback_t cb, void *user)
void AddSaveCallback (stg_model_callback_t cb, void *user)
void AddShutdownCallback (stg_model_callback_t cb, void *user)
void AddStartupCallback (stg_model_callback_t cb, void *user)
void AddToPose (double dx, double dy, double dz, double da)
void AddToPose (stg_pose_t pose)
void AddUpdateCallback (stg_model_callback_t cb, void *user)
void CallCallbacks (void *address)
void ClearBlinkenlights ()
void ClearBlocks ()
bool DataIsFresh ()
void Disable ()
void Enable ()
int FiducialKey ()
int FiducialReturn ()
stg_color_t GetColor ()
int GetFlagCount ()
stg_geom_t GetGeom ()
stg_pose_t GetGlobalPose ()
stg_velocity_t GetGlobalVelocity ()
stg_laser_return_t GetLaserReturn ()
StgModelGetModel (const char *name)
stg_pose_t GetPose ()
void * GetProperty (char *key)
int GetRangerReturn ()
StgModelGetUnsubscribedModelOfType (stg_model_type_t type)
stg_velocity_t GetVelocity ()
StgWorldGetWorld ()
void GlobalToLocal (stg_pose_t *pose)
int GuiMask ()
void Init ()
bool IsAntecedent (StgModel *testmod)
bool IsDescendent (StgModel *testmod)
bool IsRelated (StgModel *mod2)
virtual void Load ()
void Load (Worldfile *wf, int wf_entity)
void LoadControllerModule (char *lib)
stg_point3_t LocalToGlobal (stg_point3_t local)
stg_pose_t LocalToGlobal (stg_pose_t pose)
void NeedRedraw ()
bool ObstacleReturn ()
StgModelParent ()
void PlaceInFreeSpace (stg_meters_t xmin, stg_meters_t xmax, stg_meters_t ymin, stg_meters_t ymax)
StgFlag * PopFlag ()
virtual void Print (char *prefix)
virtual const char * PrintWithPose ()
void PushFlag (StgFlag *flag)
int RemoveCallback (void *member, stg_model_callback_t callback)
void RemoveFlag (StgFlag *flag)
void RemoveLoadCallback (stg_model_callback_t cb)
void RemoveSaveCallback (stg_model_callback_t cb)
void RemoveShutdownCallback (stg_model_callback_t cb)
void RemoveStartupCallback (stg_model_callback_t cb)
void RemoveUpdateCallback (stg_model_callback_t cb)
StgModelRoot ()
 return the root model of the tree containing this model
virtual void Save ()
void Say (const char *str)
void SetBlobReturn (int val)
void SetBoundary (int val)
void SetColor (stg_color_t col)
void SetFiducialKey (int key)
void SetFiducialReturn (int fid)
void SetGeom (stg_geom_t src)
void SetGlobalPose (stg_pose_t gpose)
void SetGlobalVelocity (stg_velocity_t gvel)
void SetGripperReturn (int val)
void SetGuiGrid (int val)
void SetGuiMask (int val)
void SetGuiNose (int val)
void SetGuiOutline (int val)
void SetLaserReturn (stg_laser_return_t val)
void SetMapResolution (stg_meters_t res)
void SetMass (stg_kg_t mass)
void SetObstacleReturn (int val)
int SetParent (StgModel *newparent)
void SetPose (stg_pose_t pose)
int SetProperty (char *key, void *data)
 Set a named property of a Stage model.
void SetRangerReturn (int val)
void SetStall (stg_bool_t stall)
void SetVelocity (stg_velocity_t vel)
void SetWatts (stg_watts_t watts)
void SetWorldfile (Worldfile *wf, int wf_entity)
bool Stalled ()
 StgModel (StgWorld *world, StgModel *parent, stg_model_type_t type=MODEL_TYPE_PLAIN)
void Subscribe ()
void UnsetProperty (char *key)
void Unsubscribe ()

Static Public Member Functions

static StgModelLookupId (uint32_t id)

Protected Member Functions

virtual void DataVisualize (StgCamera *cam)
void DataVisualizeTree (StgCamera *cam)
void DrawBlinkenlights ()
virtual void DrawBlocks ()
void DrawBlocksTree ()
void DrawFlagList ()
void DrawGrid ()
void DrawImage (uint32_t texture_id, Stg::StgCamera *cam, float alpha)
 Draw the image stored in texture_id above the model.
void DrawOrigin ()
void DrawOriginTree ()
virtual void DrawPicker ()
virtual void DrawSelected (void)
virtual void DrawStatus (StgCamera *cam)
void DrawStatusTree (StgCamera *cam)
void DrawTrailArrows ()
void DrawTrailBlocks ()
void DrawTrailFootprint ()
void GPoseDirtyTree ()
void Map ()
void MapWithChildren ()
virtual void PopColor ()
void PopCoords ()
void PopPose ()
virtual void PushColor (double r, double g, double b, double a)
virtual void PushColor (stg_color_t col)
void PushLocalCoords ()
void PushMyPose ()
void Raytrace (stg_radians_t bearing, stg_meters_t range, stg_radians_t fov, stg_block_match_func_t func, const void *arg, stg_raytrace_sample_t *samples, uint32_t sample_count, bool ztest=true)
void Raytrace (stg_radians_t bearing, stg_meters_t range, stg_block_match_func_t func, const void *arg, stg_raytrace_sample_t *sample, bool ztest=true)
void Raytrace (stg_pose_t pose, stg_meters_t range, stg_radians_t fov, stg_block_match_func_t func, const void *arg, stg_raytrace_sample_t *samples, uint32_t sample_count, bool ztest=true)
void Raytrace (stg_pose_t pose, stg_meters_t range, stg_block_match_func_t func, const void *arg, stg_raytrace_sample_t *sample, bool ztest=true)
void registerOption (Option *opt)
 Register an Option for pickup by the GUI.
void ShiftPose (stg_pose_t *pose)
void ShiftToTop ()
virtual void Shutdown ()
virtual void Startup ()
StgModelTestCollision (stg_meters_t *hitx, stg_meters_t *hity)
StgModelTestCollision (stg_pose_t pose, stg_meters_t *hitx, stg_meters_t *hity)
int TreeToPtrArray (GPtrArray *array)
void UnMap ()
void UnMapWithChildren ()
virtual void Update ()
void UpdateIfDue ()
virtual void UpdatePose ()

Static Protected Member Functions

static void DrawBlocks (gpointer dummykey, StgModel *mod, void *arg)

Protected Attributes

GPtrArray * blinkenlights
int blob_return
GList * blocks
int blocks_dl
int boundary
GHashTable * callbacks
stg_color_t color
bool data_fresh
stg_bool_t disabled
int fiducial_key
int fiducial_return
GList * flag_list
stg_geom_t geom
stg_pose_t global_pose
bool gpose_dirty
int gripper_return
int gui_grid
int gui_mask
int gui_nose
int gui_outline
ctrlinit_t * initfunc
stg_usec_t interval
stg_laser_return_t laser_return
stg_usec_t last_update
char load_hook
stg_meters_t map_resolution
stg_kg_t mass
int obstacle_return
bool on_velocity_list
StgModelparent
stg_pose_t pose
GData * props
int ranger_return
bool rebuild_displaylist
char save_hook
char * say_string
char shutdown_hook
stg_bool_t stall
char startup_hook
int subs
GArray * trail
stg_model_type_t type
char update_hook
stg_velocity_t velocity
stg_watts_t watts
Worldfile * wf
int wf_entity
StgWorldworld

Static Protected Attributes

static const char * typestr

Member Function Documentation

void StgModel::AddToPose ( double  dx,
double  dy,
double  dz,
double  da 
)

add values to a model's pose in its parent's coordinate system

void StgModel::AddToPose ( stg_pose_t  pose  ) 

add values to a model's pose in its parent's coordinate system

void StgModel::ClearBlocks (  ) 

remove all blocks from this model, freeing their memory

stg_geom_t Stg::StgModel::GetGeom (  )  [inline]

Get a model's geometry - it's size and local pose (offset from origin in local coords)

stg_pose_t StgModel::GetGlobalPose (  )  [virtual]

get the pose of a model in the global CS

Reimplemented from Stg::StgAncestor.

stg_velocity_t StgModel::GetGlobalVelocity (  ) 

get the velocity of a model in the global CS

stg_pose_t Stg::StgModel::GetPose (  )  [inline]

Get the pose of a model in its parent's coordinate system

void * StgModel::GetProperty ( char *  key  ) 

named-property interface

StgModel * StgModel::GetUnsubscribedModelOfType ( stg_model_type_t  type  ) 

returns the first descendent of this model that is unsubscribed and has the type indicated by the string

stg_velocity_t Stg::StgModel::GetVelocity (  )  [inline]

Get a model's velocity (in its local reference frame)

void StgModel::GlobalToLocal ( stg_pose_t pose  ) 

Convert a pose in the world coordinate system into a model's local coordinate system. Overwrites [pose] with the new coordinate.

void StgModel::GPoseDirtyTree (  )  [protected]

Causes this model and its children to recompute their global position instead of using a cached pose in StgModel::GetGlobalPose()..

void StgModel::Init (  ) 

Should be called after all models are loaded, to do any last-minute setup

void StgModel::Load (  )  [virtual]

configure a model by reading from the current world file

Reimplemented in Stg::StgModelBlobfinder, Stg::StgModelLaser, Stg::StgModelFiducial, Stg::StgModelRanger, Stg::StgModelCamera, and Stg::StgModelPosition.

void Stg::StgModel::Load ( Worldfile *  wf,
int  wf_entity 
) [inline]

stg_point3_t StgModel::LocalToGlobal ( stg_point3_t  local  ) 

Return the 3d point in world coordinates of a 3d point specified in the model's local coordinate system

stg_pose_t StgModel::LocalToGlobal ( stg_pose_t  pose  ) 

Return the global pose (i.e. pose in world coordinates) of a pose specified in the model's local coordinate system

static StgModel* Stg::StgModel::LookupId ( uint32_t  id  )  [inline, static]

Look up a model pointer by a unique model ID

void Stg::StgModel::Raytrace ( stg_pose_t  pose,
stg_meters_t  range,
stg_radians_t  fov,
stg_block_match_func_t  func,
const void *  arg,
stg_raytrace_sample_t samples,
uint32_t  sample_count,
bool  ztest = true 
) [protected]

raytraces multiple rays around the point and heading identified by pose, in local coords

void StgModel::Raytrace ( stg_pose_t  pose,
stg_meters_t  range,
stg_block_match_func_t  func,
const void *  arg,
stg_raytrace_sample_t sample,
bool  ztest = true 
) [protected]

raytraces a single ray from the point and heading identified by pose, in local coords

void StgModel::Save (  )  [virtual]

save the state of the model to the current world file

void StgModel::SetFiducialKey ( int  key  ) 

set a model's fiducial key: only fiducial finders with a matching key can detect this model as a fiducial.

void StgModel::SetFiducialReturn ( int  fid  ) 

set a model's geometry (size and center offsets)

void StgModel::SetGeom ( stg_geom_t  src  ) 

set a model's geometry (size and center offsets)

void StgModel::SetGlobalPose ( stg_pose_t  gpose  ) 

set the pose of model in global coordinates

int StgModel::SetParent ( StgModel newparent  ) 

Change a model's parent - experimental

void StgModel::SetPose ( stg_pose_t  pose  ) 

set a model's pose in its parent's coordinate system

int StgModel::SetProperty ( char *  key,
void *  data 
)

Set a named property of a Stage model.

Set a property of a Stage model.

This function can set both predefined and user-defined properties of a model. Predefined properties are intrinsic to every model, such as pose and color. Every supported predefined properties has its identifying string defined as a preprocessor macro in stage.h. Users should use the macro instead of a hard-coded string, so that the compiler can help you to avoid mis-naming properties.

User-defined properties allow the user to attach arbitrary data pointers to a model. User-defined property data is not copied, so the original pointer must remain valid. User-defined property names are simple strings. Names beginning with an underscore ('_') are reserved for internal libstage use: users should not use names beginning with underscore (at risk of causing very weird behaviour).

Any callbacks registered for the named property will be called.

Returns 0 on success, or a positive error code on failure.

CAUTION* The caller is responsible for making sure the pointer points to data of the correct type for the property, so use carefully. Check the docs or the equivalent stg_model_set_<property>() function definition to see the type of data required for each property.

void StgModel::SetVelocity ( stg_velocity_t  vel  ) 

set a model's velocity in its parent's coordinate system

void Stg::StgModel::SetWorldfile ( Worldfile *  wf,
int  wf_entity 
) [inline]

Set the worldfile and worldfile entity ID

bool Stg::StgModel::Stalled (  )  [inline]

Returns the value of the model's stall boolean, which is true iff the model has crashed into another model

void StgModel::Subscribe (  ) 

subscribe to a model's data

StgModel * StgModel::TestCollision ( stg_meters_t hitx,
stg_meters_t hity 
) [protected]

Check to see if the current pose is in a collision with obstacles. Returns a pointer to the first entity we are in collision with, and stores the location of the hit in hitx,hity (if non-null) Returns NULL if no collision.

StgModel * StgModel::TestCollision ( stg_pose_t  pose,
stg_meters_t hitx,
stg_meters_t hity 
) [protected]

Check to see if the given change in pose will yield a collision with obstacles. Returns a pointer to the first entity we are in collision with, and stores the location of the hit in hitx,hity (if non-null) Returns NULL if no collision.

void StgModel::Unsubscribe (  ) 

unsubscribe from a model's data


Member Data Documentation

int Stg::StgModel::blocks_dl [protected]

OpenGL display list identifier

GHashTable* Stg::StgModel::callbacks [protected]

callback functions can be attached to any field in this structure. When the internal function model_change(<mod>,<field>) is called, the callback is triggered

bool Stg::StgModel::data_fresh [protected]

this can be set to indicate that the model has

GData* Stg::StgModel::props [protected]

GData datalist can contain arbitrary named data items. Can be used by derived model types to store properties, and for user code to associate arbitrary items with a model.

char* Stg::StgModel::say_string [protected]

if non-null, this string is displayed in the GUI

Compile the display list for this model

new data that may be of interest to users. This allows polling the model instead of adding a data callback.


The documentation for this class was generated from the following files:
Generated on Wed Jul 30 11:36:06 2008 for Stage by  doxygen 1.4.7