World class More...
#include <stage.hh>

Classes | |
class | Event |
Public Member Functions | |
virtual void | AddModel (Model *mod) |
void | AddModelName (Model *mod, const std::string &name) |
void | AddPowerPack (PowerPack *pp) |
SuperRegion * | AddSuperRegion (const point_int_t &coord) |
void | AddUpdateCallback (world_callback_t cb, void *user) |
void | CancelQuit () |
void | CancelQuitAll () |
void | ClearRays () |
virtual std::string | ClockString (void) const |
void | ConsumeQueue (unsigned int queue_num) |
Model * | CreateModel (Model *parent, const std::string &typestr) |
SuperRegion * | CreateSuperRegion (point_int_t origin) |
void | DestroySuperRegion (SuperRegion *sr) |
void | DisableEnergy (Model *m) |
void | EnableEnergy (Model *m) |
void | Enqueue (unsigned int queue_num, usec_t delay, Model *mod, model_callback_t cb, void *arg) |
void | Extend (point3_t pt) |
const std::set< Model * > | GetAllModels () const |
unsigned int | GetEventQueue (Model *mod) const |
const bounds3d_t & | GetExtent () const |
Model * | GetGround () |
Model * | GetModel (const std::string &name) const |
SuperRegion * | GetSuperRegion (const point_int_t &org) |
SuperRegion * | GetSuperRegionCreate (const point_int_t &org) |
uint64_t | GetUpdateCount () const |
Worldfile * | GetWorldFile () |
virtual bool | IsGUI () const |
virtual void | Load (const std::string &worldfile_path) |
void | LoadBlock (Worldfile *wf, int entity) |
void | LoadBlockGroup (Worldfile *wf, int entity) |
void | LoadModel (Worldfile *wf, int entity) |
void | LoadSensor (Worldfile *wf, int entity) |
void | Log (Model *mod) |
void | MapPoly (const std::vector< point_int_t > &poly, Block *block, unsigned int layer) |
int32_t | MetersToPixels (meters_t x) const |
point_int_t | MetersToPixels (const point_t &pt) const |
void | NeedRedraw () |
bool | PastQuitTime () |
bool | Paused () const |
virtual void | PopColor () |
virtual void | PushColor (Color col) |
virtual void | PushColor (double r, double g, double b, double a) |
void | Quit () |
void | QuitAll () |
RaytraceResult | Raytrace (const Ray &ray) |
RaytraceResult | Raytrace (const Pose &pose, const meters_t range, const ray_test_func_t func, const Model *finder, const void *arg, const bool ztest) |
void | Raytrace (const Pose &pose, const meters_t range, const radians_t fov, const ray_test_func_t func, const Model *finder, const void *arg, RaytraceResult *samples, const uint32_t sample_count, const bool ztest) |
virtual Model * | RecentlySelectedModel () const |
void | RecordRay (double x1, double y1, double x2, double y2) |
virtual void | Redraw (void) |
void | RegisterOption (Option *opt) |
Register an Option for pickup by the GUI. More... | |
virtual void | Reload () |
virtual void | RemoveModel (Model *mod) |
void | RemovePowerPack (PowerPack *pp) |
int | RemoveUpdateCallback (world_callback_t cb, void *user) |
double | Resolution () const |
virtual bool | Save (const char *filename) |
void | ShowClock (bool enable) |
Control printing time to stdout. More... | |
usec_t | SimTimeNow (void) const |
virtual void | Start () |
virtual void | Stop () |
bool | TestQuit () const |
virtual void | TogglePause () |
void | TryCharge (PowerPack *pp, const Pose &pose) |
virtual void | UnLoad () |
virtual bool | Update (void) |
uint64_t | UpdateCount () |
World (const std::string &name="MyWorld", double ppm=DEFAULT_PPM) | |
virtual | ~World () |
![]() | |
virtual void | AddChild (Model *mod) |
Ancestor () | |
void | ForEachDescendant (model_callback_t func, void *arg) |
std::vector< Model * > & | GetChildren () |
virtual Pose | GetGlobalPose () const |
void * | GetProperty (std::string &key) |
virtual void | RemoveChild (Model *mod) |
void | SetProperty (std::string &key, void *value) |
virtual void | SetToken (const std::string &str) |
const char * | Token () const |
const std::string & | TokenStr () const |
virtual | ~Ancestor () |
Static Public Member Functions | |
static void | Run () |
static void * | update_thread_entry (std::pair< World *, int > *info) |
static bool | UpdateAll () |
Public Attributes | |
std::set< Model * > | active_energy |
std::set< ModelPosition * > | active_velocity |
std::vector< std::priority_queue< Event > > | event_queues |
Model * | ground |
bool | paused |
if true, the simulation is stopped More... | |
std::vector< std::queue< Model * > > | pending_update_callbacks |
std::vector< point_int_t > | rt_candidate_cells |
std::vector< point_int_t > | rt_cells |
usec_t | sim_interval |
int | update_cb_count |
Static Public Attributes | |
static std::vector< std::string > | args |
static std::string | ctrlargs |
static const int | DEFAULT_PPM = 50 |
Protected Member Functions | |
void | CallUpdateCallbacks () |
Call all calbacks in cb_list, removing any that return true;. More... | |
![]() | |
Ancestor & | Load (Worldfile *wf, int section) |
void | Save (Worldfile *wf, int section) |
Protected Attributes | |
std::list< std::pair< world_callback_t, void * > > | cb_list |
List of callback functions and arguments. More... | |
bounds3d_t | extent |
Describes the 3D volume of the world. More... | |
bool | graphics |
true iff we have a GUI More... | |
std::set< Option * > | option_table |
GUI options (toggles) registered by models. More... | |
std::list< PowerPack * > | powerpack_list |
List of all the powerpacks attached to models in the world. More... | |
usec_t | quit_time |
std::list< float * > | ray_list |
List of rays traced for debug visualization. More... | |
usec_t | sim_time |
the current sim time in this world in microseconds More... | |
std::map< point_int_t, SuperRegion * > | superregions |
std::vector< std::vector< Model * > > | update_lists |
uint64_t | updates |
the number of simulated time steps executed so far More... | |
Worldfile * | wf |
If set, points to the worldfile used to create this world. More... | |
![]() | |
std::map< std::string, unsigned int > | child_type_counts |
std::vector< Model * > | children |
bool | debug |
std::map< std::string, void * > | props |
std::string | token |
Detailed Description
World class
Constructor & Destructor Documentation
World::World | ( | const std::string & | name = "MyWorld" , |
double | ppm = DEFAULT_PPM |
||
) |
|
virtual |
Member Function Documentation
|
virtual |
void World::AddModelName | ( | Model * | mod, |
const std::string & | name | ||
) |
void World::AddPowerPack | ( | PowerPack * | pp | ) |
SuperRegion * World::AddSuperRegion | ( | const point_int_t & | coord | ) |
void World::AddUpdateCallback | ( | world_callback_t | cb, |
void * | user | ||
) |
Attach a callback function, to be called with the argument at the end of a complete update step
|
protected |
Call all calbacks in cb_list, removing any that return true;.
|
inline |
Cancel a local quit request.
|
inline |
Cancel a global quit request.
void World::ClearRays | ( | ) |
|
virtual |
Get human readable string that describes the current simulation time.
Reimplemented in Stg::WorldGui.
void World::ConsumeQueue | ( | unsigned int | queue_num | ) |
consume events from the queue up to and including the current sim_time
SuperRegion * World::CreateSuperRegion | ( | point_int_t | origin | ) |
void World::DestroySuperRegion | ( | SuperRegion * | sr | ) |
|
inline |
|
inline |
|
inline |
Create a new simulation event to be handled in the future.
- Parameters
-
queue_num Specify which queue the event should be on. The main thread is 0. delay The time from now until the event occurs, in microseconds. mod The model that should have its Update() method called at the specified time.
|
inline |
Enlarge the bounding volume to include this point
|
inline |
Returns a const reference to the set of models in the world.
unsigned int World::GetEventQueue | ( | Model * | mod | ) | const |
returns an event queue index number for a model to use for updates
|
inline |
Return the 3D bounding box of the world, in meters
|
inline |
Return the floor model
Model * World::GetModel | ( | const std::string & | name | ) | const |
Returns a pointer to the model identified by name, or NULL if nonexistent
|
inline |
|
inline |
|
inline |
Return the number of times the world has been updated.
|
inline |
Returns a pointer to the currently-open worlddfile object, or NULL if there is none.
|
inlinevirtual |
Returns true iff this World implements a GUI. The base World class returns false, but subclasses can override this behaviour.
Reimplemented in Stg::WorldGui.
|
virtual |
Open the file at the specified location, create a Worldfile object, read the file and configure the world from the contents, creating models as necessary. The created object persists, and can be retrieved later with World::GetWorldFile().
Reimplemented in Stg::WorldGui.
void World::LoadBlock | ( | Worldfile * | wf, |
int | entity | ||
) |
void Stg::World::LoadBlockGroup | ( | Worldfile * | wf, |
int | entity | ||
) |
void World::LoadModel | ( | Worldfile * | wf, |
int | entity | ||
) |
void World::LoadSensor | ( | Worldfile * | wf, |
int | entity | ||
) |
void World::MapPoly | ( | const std::vector< point_int_t > & | poly, |
Block * | block, | ||
unsigned int | layer | ||
) |
call Cell::AddBlock(block) for each cell on the polygon
|
inline |
convert a distance in meters to a distance in world occupancy grid pixels
|
inline |
|
inline |
hint that the world needs to be redrawn if a GUI is attached
bool World::PastQuitTime | ( | ) |
Returns true iff the current time is greater than the time we should quit
|
inline |
|
inlinevirtual |
Reimplemented in Stg::WorldGui.
|
inlinevirtual |
Reimplemented in Stg::WorldGui.
|
inlinevirtual |
Reimplemented in Stg::WorldGui.
|
inline |
Request the world quits simulation before the next timestep.
|
inline |
Requests all worlds quit simulation before the next timestep.
RaytraceResult World::Raytrace | ( | const Ray & | ray | ) |
trace a ray.
RaytraceResult World::Raytrace | ( | const Pose & | pose, |
const meters_t | range, | ||
const ray_test_func_t | func, | ||
const Model * | finder, | ||
const void * | arg, | ||
const bool | ztest | ||
) |
void World::Raytrace | ( | const Pose & | pose, |
const meters_t | range, | ||
const radians_t | fov, | ||
const ray_test_func_t | func, | ||
const Model * | finder, | ||
const void * | arg, | ||
RaytraceResult * | samples, | ||
const uint32_t | sample_count, | ||
const bool | ztest | ||
) |
|
inlinevirtual |
Reimplemented in Stg::WorldGui.
void World::RecordRay | ( | double | x1, |
double | y1, | ||
double | x2, | ||
double | y2 | ||
) |
store rays traced for debugging purposes
|
inlinevirtual |
Force the GUI to redraw the world, even if paused. This imlementation does nothing, but can be overridden by subclasses.
Reimplemented in Stg::WorldGui.
|
virtual |
|
virtual |
void World::RemovePowerPack | ( | PowerPack * | pp | ) |
int World::RemoveUpdateCallback | ( | world_callback_t | cb, |
void * | user | ||
) |
Remove a callback function. Any argument data passed to AddUpdateCallback is not automatically freed.
|
inline |
Get the resolution in pixels-per-metre of the underlying discrete raytracing model
|
static |
run all worlds. If only non-gui worlds were created, UpdateAll() is repeatedly called. To simulate a gui world only a single gui world may have been created. This world is then simulated.
|
virtual |
Save the current world state into a worldfile with the given filename.
- Parameters
-
Filename to save as.
Reimplemented in Stg::WorldGui.
|
inline |
Control printing time to stdout.
|
inline |
Returns the current simulated time in this world, in microseconds.
|
inlinevirtual |
Reimplemented in Stg::WorldGui.
|
inlinevirtual |
Reimplemented in Stg::WorldGui.
|
inline |
|
inlinevirtual |
|
virtual |
Reimplemented in Stg::WorldGui.
|
virtual |
Run one simulation timestep. Advances the simulation clock, executes all simulation updates due at the current time, then queues up future events.
Reimplemented in Stg::WorldGui.
|
static |
|
static |
returns true when time to quit, false otherwise
|
inline |
Member Data Documentation
std::set<Model*> Stg::World::active_energy |
Set of models that require energy calculations at each World::Update().
std::set<ModelPosition*> Stg::World::active_velocity |
Set of models that require their positions to be recalculated at each World::Update().
|
static |
contains the command line arguments passed to Stg::Init(), so that controllers can read them.
|
protected |
List of callback functions and arguments.
|
static |
|
static |
std::vector<std::priority_queue<Event> > Stg::World::event_queues |
Queue of pending simulation events for the main thread to handle.
|
protected |
Describes the 3D volume of the world.
|
protected |
true iff we have a GUI
Model* Stg::World::ground |
Special model for the floor of the world
|
protected |
GUI options (toggles) registered by models.
bool Stg::World::paused |
if true, the simulation is stopped
std::vector<std::queue<Model*> > Stg::World::pending_update_callbacks |
Queue of pending simulation events for the main thread to handle.
|
protected |
List of all the powerpacks attached to models in the world.
|
protected |
World::quit is set true when this simulation time is reached
|
protected |
List of rays traced for debug visualization.
std::vector<point_int_t> Stg::World::rt_candidate_cells |
std::vector<point_int_t> Stg::World::rt_cells |
|
protected |
the current sim time in this world in microseconds
|
protected |
int Stg::World::update_cb_count |
|
protected |
|
protected |
the number of simulated time steps executed so far
|
protected |
If set, points to the worldfile used to create this world.
The documentation for this class was generated from the following files:
Generated on Sun Apr 3 2016 19:14:46 for Stage by
