#include <ray_sensor.H>
Public Member Functions | |
ray_sensor_t (dSpaceID s1, dGeomID ground, sim_world_object_t *object, timer_t *timer, int id, double length, double pos[3], double orientation[3]) | |
virtual | ~ray_sensor_t () |
void | test_ray_sensor_collision (double *px, double *py, double *pz) |
void | get_orientation_matrix (double orientation_matrix[3][4]) |
void | get_ray_beam_position (double start_position[3], double end_position[3]) |
void | update_position () |
void | update_position (dBodyID carb) |
void | simulate_component () |
void | command (int cmd, double value) |
Private Attributes | |
dGeomID | m_raySensor_ray |
double | m_end_pos [3] |
double | m_raySensorRange |
double | m_raySensorDepth |
dGeomID | m_thisGround |
dSpaceID | m_thisSpace |
sim_world_object_t * | m_robot |
ray_sensor_observer_t * | m_ray_sensor_observer |
int | m_ray_sensor_id |
Friends | |
class | ray_sensor_observer_t |
ray_sensor_t::ray_sensor_t | ( | dSpaceID | s1, | |
dGeomID | ground, | |||
sim_world_object_t * | object, | |||
timer_t * | timer, | |||
int | id, | |||
double | length, | |||
double | pos[3], | |||
double | orientation[3] | |||
) |
References ANGLEX, ANGLEY, ANGLEZ, DELAY_RAY_SENSOR, cajun::components_t::m_observer_index, cajun::components_t::m_orientation_on_robot, cajun::components_t::m_position_on_robot, m_ray_sensor_id, m_ray_sensor_observer, m_raySensor_ray, m_raySensorRange, m_robot, m_thisGround, m_thisSpace, POSX, POSY, POSZ, ray_sensor_observer_t, cajun::timer_t::register_observer(), simulate_component(), and update_position().
ray_sensor_t::~ray_sensor_t | ( | ) | [virtual] |
void ray_sensor_t::command | ( | int | cmd, | |
double | value | |||
) |
void ray_sensor_t::get_orientation_matrix | ( | double | orientation_matrix[3][4] | ) |
void ray_sensor_t::get_ray_beam_position | ( | double | start_position[3], | |
double | end_position[3] | |||
) |
References m_end_pos, cajun::components_t::m_global_position, POSX, POSY, and POSZ.
void ray_sensor_t::simulate_component | ( | ) |
References cajun::calculate_distance(), get_orientation_matrix(), cajun::HomogTformPt(), m_end_pos, cajun::components_t::m_global_position, m_raySensor_ray, m_raySensorDepth, POSX, POSY, and POSZ.
Referenced by ray_sensor_t(), and cajun::ray_sensor_observer_t::timeout().
void ray_sensor_t::test_ray_sensor_collision | ( | double * | px, | |
double * | py, | |||
double * | pz | |||
) |
References cajun::calculate_distance(), cajun::components_t::m_global_position, m_raySensor_ray, m_raySensorRange, m_thisGround, POSX, POSY, and POSZ.
void ray_sensor_t::update_position | ( | dBodyID | carb | ) | [virtual] |
Reimplemented from cajun::components_t.
References update_position().
void ray_sensor_t::update_position | ( | ) |
References cajun::sim_world_object_t::get_robot_position(), cajun::components_t::m_global_position, cajun::components_t::m_position_on_robot, m_robot, POSX, POSY, and POSZ.
Referenced by ray_sensor_t(), and update_position().
friend class ray_sensor_observer_t [friend] |
Referenced by ray_sensor_t().
double cajun::ray_sensor_t::m_end_pos[3] [private] |
Referenced by get_ray_beam_position(), and simulate_component().
int cajun::ray_sensor_t::m_ray_sensor_id [private] |
Referenced by ray_sensor_t().
Referenced by ray_sensor_t(), and ~ray_sensor_t().
dGeomID cajun::ray_sensor_t::m_raySensor_ray [private] |
Referenced by ray_sensor_t(), simulate_component(), and test_ray_sensor_collision().
double cajun::ray_sensor_t::m_raySensorDepth [private] |
Referenced by simulate_component(), and cajun::ray_sensor_observer_t::timeout().
double cajun::ray_sensor_t::m_raySensorRange [private] |
Referenced by get_orientation_matrix(), ray_sensor_t(), and test_ray_sensor_collision().
sim_world_object_t* cajun::ray_sensor_t::m_robot [private] |
Referenced by get_orientation_matrix(), ray_sensor_t(), and update_position().
dGeomID cajun::ray_sensor_t::m_thisGround [private] |
Referenced by ray_sensor_t(), and test_ray_sensor_collision().
dSpaceID cajun::ray_sensor_t::m_thisSpace [private] |
Referenced by ray_sensor_t().