#include <Path.h>
Inheritance diagram for Track::Path:
Public Types | |
typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, PathVertex, PathEdge > | Graph |
Graph of track layout. | |
Public Member Functions | |
Path (std::istream &source, const Theme &theme, const Track *track, bool editor=false) | |
initalise from a stream | |
Path (const Theme &theme, const Track *track, bool editor=false) | |
Make an empty path. | |
virtual | ~Path () |
AxisAlignedBoundingBox | get_bounding_box () const |
Get the axis aligned bounding box of the vertices and control points in the path with some padding. | |
PathVertex & | get_node (const std::size_t index) |
find a graph node by ID | |
const PathVertex & | get_node (const std::size_t index) const |
find a graph node by ID | |
Path::Graph::vertex_descriptor | get_node_descriptor (const std::size_t index) |
find a graph node descriptor by ID | |
const Path::Graph::vertex_descriptor | get_node_descriptor (const std::size_t index) const |
find a graph node descriptor by ID | |
PathEdge & | get_edge (const std::size_t index) |
find a graph edge by ID | |
const PathEdge & | get_edge (const std::size_t index) const |
find a graph edge by ID | |
Path::Graph::edge_descriptor | get_edge_descriptor (const std::size_t index) |
find a graph edge descriptor by ID | |
const Path::Graph::edge_descriptor | get_edge_descriptor (const std::size_t index) const |
find a graph edge descriptor by ID | |
void | set_handle_lengths (btScalar handle_length) |
Set the lengths of the rotation handles present in the path's vertices. | |
void | update_connected_edges (Path::Graph::vertex_descriptor vertex_descriptor) |
Update the edges connected to a particular vertex. | |
const EditAssist::SegmentConnectionHandle * | get_nearest_segment_connection_handle (btVector3 position) const |
Find the nearest SegmentConnectionHandle to the given position. | |
const EditAssist::SegmentConnectionHandle * | get_nearest_segment_connection_handle (btVector3 position, btVector3 normal) const |
Find the nearest SegmentConnectionHandle to the given line. | |
void | add_collision_faces (btTriangleMesh &shape) const |
Add the surfaces you can collide with to a shape. | |
void | add_floor_faces (btTriangleMesh &shape) const |
Add the surfaces you should be able to drive on to a shape. | |
void | add_ai_faces (MeshFaces &mesh) const |
Add the surface AI considers to a mesh. | |
unsigned long int | get_starting_edge () const |
return the name of the edge which cars should start the race on. | |
void | set_starting_edge (unsigned long int new_edge_name) |
change the edge cars start on. | |
void | find_start_plane (btVector3 &normal, btScalar &distance) const |
Find the plane where start/finish line is on. | |
btVector3 | find_start_position () const |
Get the centre of the disc used as the start finish line. | |
virtual void | draw () const |
Draw the object. | |
virtual void | conditional_draw (const OcclusionTester &occlusion_tester) const |
Draw the object if it is visible. | |
virtual AxisAlignedBoundingBox | get_bounds () const |
Get the Axis aligned bounding box of the object. | |
Public Attributes | |
Graph | graph |
bool | editor |
True to make paths appear wireframe, false for solid shading. | |
Private Member Functions | |
Path::Graph::vertex_descriptor | get_node_descriptor_internal (const std::size_t index) const |
Path::Graph::edge_descriptor | get_edge_descriptor_internal (const std::size_t index) const |
Private Attributes | |
const unsigned int | file_version |
const Theme & | theme |
unsigned long int | starting_edge |
The name of the edge to start the cars on, or 0 if not set properly. | |
Friends | |
std::ostream & | operator<< (std::ostream &destination, const Path &path) |
Definition at line 43 of file Path.h.
typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, PathVertex, PathEdge> Track::Path::Graph |
void Track::Path::add_ai_faces | ( | MeshFaces & | mesh | ) | const |
void Track::Path::add_collision_faces | ( | btTriangleMesh & | shape | ) | const |
void Track::Path::add_floor_faces | ( | btTriangleMesh & | shape | ) | const |
void Track::Path::conditional_draw | ( | const OcclusionTester & | occlusion_tester | ) | const [virtual] |
Draw the object if it is visible.
occlusion_tester | Reference to object describing planes of the view's frustrum to test against. |
Reimplemented from Track::Drawable.
void Track::Path::draw | ( | ) | const [virtual] |
Draw the object.
Called indirectly by draw(const OcclusionTester &) const when it is on the screen, but can also be called manually if view bounds are not known.
Implements Track::Drawable.
void Track::Path::find_start_plane | ( | btVector3 & | normal, | |
btScalar & | distance | |||
) | const |
btVector3 Track::Path::find_start_position | ( | ) | const |
AxisAlignedBoundingBox Track::Path::get_bounding_box | ( | ) | const |
AxisAlignedBoundingBox Track::Path::get_bounds | ( | ) | const [virtual] |
Get the Axis aligned bounding box of the object.
The object is contained entierly within this region.
Implements Track::AABBBounded.
const PathEdge & Track::Path::get_edge | ( | const std::size_t | index | ) | const |
PathEdge & Track::Path::get_edge | ( | const std::size_t | index | ) |
const Path::Graph::edge_descriptor Track::Path::get_edge_descriptor | ( | const std::size_t | index | ) | const |
Path::Graph::edge_descriptor Track::Path::get_edge_descriptor | ( | const std::size_t | index | ) |
Path::Graph::edge_descriptor Track::Path::get_edge_descriptor_internal | ( | const std::size_t | index | ) | const [private] |
const EditAssist::SegmentConnectionHandle * Track::Path::get_nearest_segment_connection_handle | ( | btVector3 | position, | |
btVector3 | normal | |||
) | const |
const EditAssist::SegmentConnectionHandle * Track::Path::get_nearest_segment_connection_handle | ( | btVector3 | position | ) | const |
const PathVertex & Track::Path::get_node | ( | const std::size_t | index | ) | const |
PathVertex & Track::Path::get_node | ( | const std::size_t | index | ) |
const Path::Graph::vertex_descriptor Track::Path::get_node_descriptor | ( | const std::size_t | index | ) | const |
Path::Graph::vertex_descriptor Track::Path::get_node_descriptor | ( | const std::size_t | index | ) |
Path::Graph::vertex_descriptor Track::Path::get_node_descriptor_internal | ( | const std::size_t | index | ) | const [private] |
unsigned long int Track::Path::get_starting_edge | ( | ) | const |
void Track::Path::set_handle_lengths | ( | btScalar | handle_length | ) |
void Track::Path::set_starting_edge | ( | unsigned long int | new_edge_name | ) |
void Track::Path::update_connected_edges | ( | Path::Graph::vertex_descriptor | vertex_descriptor | ) |
Update the edges connected to a particular vertex.
This recalculates the length, number of segments, and meshes. You should call this after changing a vertex's position, segment, or angle.
vertex_descriptor | The vertex descriptor of the vertex that was changed. |
std::ostream& operator<< | ( | std::ostream & | destination, | |
const Path & | path | |||
) | [friend] |
bool Track::Path::editor |
const unsigned int Track::Path::file_version [private] |
unsigned long int Track::Path::starting_edge [private] |
const Theme& Track::Path::theme [private] |
Generated at Mon Sep 6 00:41:18 2010 by Doxygen version 1.4.7 for Racer version svn335.