A visual representation of a set of points. More...
#include <point_cloud.h>
Classes | |
struct | Point |
Representation of a point, with x/y/z position and r/g/b color. More... | |
Public Types | |
enum | RenderMode { RM_POINTS, RM_SQUARES, RM_FLAT_SQUARES, RM_SPHERES, RM_TILES, RM_BOXES } |
Public Member Functions | |
virtual void | _notifyAttached (Ogre::Node *parent, bool isTagPoint=false) |
virtual void | _notifyCurrentCamera (Ogre::Camera *camera) |
virtual void | _updateRenderQueue (Ogre::RenderQueue *queue) |
void | addPoints (Point *points, uint32_t num_points) |
Add points to this point cloud. | |
void | clear () |
Clear all the points. | |
virtual const Ogre::AxisAlignedBox & | getBoundingBox () const |
virtual float | getBoundingRadius () const |
virtual const Ogre::String & | getMovableType () const |
virtual unsigned short | getNumWorldTransforms () const |
virtual void | getWorldTransforms (Ogre::Matrix4 *xform) const |
PointCloud () | |
void | popPoints (uint32_t num_points) |
Remove a number of points from this point cloud. | |
void | setAlpha (float alpha, bool per_point_alpha=false) |
void | setAutoSize (bool auto_size) |
void | setColorByIndex (bool set) |
void | setCommonDirection (const Ogre::Vector3 &vec) |
See Ogre::BillboardSet::setCommonDirection. | |
void | setCommonUpVector (const Ogre::Vector3 &vec) |
See Ogre::BillboardSet::setCommonUpVector. | |
void | setDimensions (float width, float height, float depth) |
Set the dimensions of the billboards used to render each point. | |
void | setHighlightColor (float r, float g, float b) |
virtual void | setName (const std::string &name) |
void | setPickColor (const Ogre::ColourValue &color) |
void | setRenderMode (RenderMode mode) |
Set what type of rendering primitives should be used, currently points, billboards and boxes are supported. | |
~PointCloud () | |
Private Types | |
typedef std::vector< Point > | V_Point |
Private Member Functions | |
PointCloudRenderablePtr | createRenderable (int num_points) |
uint32_t | getVerticesPerPoint () |
void | regenerateAll () |
void | shrinkRenderables () |
Private Attributes | |
float | alpha_ |
Ogre::AxisAlignedBox | bounding_box_ |
The bounding box of this point cloud. | |
float | bounding_radius_ |
The bounding radius of this point cloud. | |
Ogre::ResourcePtr | box_material_ |
bool | color_by_index_ |
Ogre::Vector3 | common_direction_ |
See Ogre::BillboardSet::setCommonDirection. | |
Ogre::Vector3 | common_up_vector_ |
See Ogre::BillboardSet::setCommonUpVector. | |
Ogre::MaterialPtr | current_material_ |
bool | current_mode_supports_geometry_shader_ |
float | depth_ |
depth | |
Ogre::ResourcePtr | flat_square_material_ |
float | height_ |
height | |
Ogre::ColourValue | pick_color_ |
uint32_t | point_count_ |
The number of points currently in points_. | |
Ogre::ResourcePtr | point_material_ |
V_Point | points_ |
The list of points we're displaying. Allocates to a high-water-mark. | |
RenderMode | render_mode_ |
V_PointCloudRenderable | renderables_ |
Ogre::ResourcePtr | sphere_material_ |
Ogre::ResourcePtr | square_material_ |
Ogre::ResourcePtr | tile_material_ |
float | width_ |
width | |
Static Private Attributes | |
static Ogre::String | sm_Type = "PointCloud" |
The "renderable type" used by Ogre. |
A visual representation of a set of points.
Displays a set of points using any number of Ogre BillboardSets. PointCloud is optimized for sets of points that change rapidly, rather than for large clouds that never change.
Most of the functions in PointCloud are not safe to call from any thread but the render thread. Exceptions are clear() and addPoints(), which are safe as long as we are not in the middle of a render (ie. Ogre::Root::renderOneFrame, or Ogre::RenderWindow::update)
Definition at line 97 of file point_cloud.h.
typedef std::vector<Point> rviz::PointCloud::V_Point [private] |
Definition at line 205 of file point_cloud.h.
Definition at line 100 of file point_cloud.h.
Definition at line 129 of file point_cloud.cpp.
Definition at line 168 of file point_cloud.cpp.
void rviz::PointCloud::_notifyAttached | ( | Ogre::Node * | parent, |
bool | isTagPoint = false |
||
) | [virtual] |
Definition at line 696 of file point_cloud.cpp.
void rviz::PointCloud::_notifyCurrentCamera | ( | Ogre::Camera * | camera | ) | [virtual] |
Definition at line 681 of file point_cloud.cpp.
void rviz::PointCloud::_updateRenderQueue | ( | Ogre::RenderQueue * | queue | ) | [virtual] |
Definition at line 686 of file point_cloud.cpp.
void rviz::PointCloud::addPoints | ( | Point * | points, |
uint32_t | num_points | ||
) |
Add points to this point cloud.
points | An array of Point structures |
num_points | The number of points in the array |
Definition at line 437 of file point_cloud.cpp.
void rviz::PointCloud::clear | ( | ) |
Clear all the points.
Definition at line 202 of file point_cloud.cpp.
PointCloudRenderablePtr rviz::PointCloud::createRenderable | ( | int | num_points | ) | [private] |
Definition at line 755 of file point_cloud.cpp.
const Ogre::AxisAlignedBox & rviz::PointCloud::getBoundingBox | ( | void | ) | const [virtual] |
Definition at line 187 of file point_cloud.cpp.
float rviz::PointCloud::getBoundingRadius | ( | void | ) | const [virtual] |
Definition at line 192 of file point_cloud.cpp.
virtual const Ogre::String& rviz::PointCloud::getMovableType | ( | void | ) | const [inline, virtual] |
Definition at line 181 of file point_cloud.h.
virtual unsigned short rviz::PointCloud::getNumWorldTransforms | ( | ) | const [inline, virtual] |
Definition at line 185 of file point_cloud.h.
uint32_t rviz::PointCloud::getVerticesPerPoint | ( | ) | [private] |
Definition at line 701 of file point_cloud.cpp.
void rviz::PointCloud::getWorldTransforms | ( | Ogre::Matrix4 * | xform | ) | const [virtual] |
Definition at line 197 of file point_cloud.cpp.
void rviz::PointCloud::popPoints | ( | uint32_t | num_points | ) |
Remove a number of points from this point cloud.
num_points | The number of points to pop |
Definition at line 614 of file point_cloud.cpp.
void rviz::PointCloud::regenerateAll | ( | ) | [private] |
Definition at line 222 of file point_cloud.cpp.
void rviz::PointCloud::setAlpha | ( | float | alpha, |
bool | per_point_alpha = false |
||
) |
set alpha blending
alpha | global alpha value |
per_point_alpha | indicates that each point will have an individual alpha value. if true, enables alpha blending regardless of the global alpha. |
Definition at line 405 of file point_cloud.cpp.
void rviz::PointCloud::setAutoSize | ( | bool | auto_size | ) |
Definition at line 353 of file point_cloud.cpp.
void rviz::PointCloud::setColorByIndex | ( | bool | set | ) |
Definition at line 238 of file point_cloud.cpp.
void rviz::PointCloud::setCommonDirection | ( | const Ogre::Vector3 & | vec | ) |
See Ogre::BillboardSet::setCommonDirection.
Definition at line 363 of file point_cloud.cpp.
void rviz::PointCloud::setCommonUpVector | ( | const Ogre::Vector3 & | vec | ) |
See Ogre::BillboardSet::setCommonUpVector.
Definition at line 375 of file point_cloud.cpp.
void rviz::PointCloud::setDimensions | ( | float | width, |
float | height, | ||
float | depth | ||
) |
Set the dimensions of the billboards used to render each point.
width | Width |
height | Height |
Definition at line 337 of file point_cloud.cpp.
void rviz::PointCloud::setHighlightColor | ( | float | r, |
float | g, | ||
float | b | ||
) |
Definition at line 244 of file point_cloud.cpp.
virtual void rviz::PointCloud::setName | ( | const std::string & | name | ) | [inline, virtual] |
Definition at line 193 of file point_cloud.h.
void rviz::PointCloud::setPickColor | ( | const Ogre::ColourValue & | color | ) |
Definition at line 741 of file point_cloud.cpp.
void rviz::PointCloud::setRenderMode | ( | RenderMode | mode | ) |
Set what type of rendering primitives should be used, currently points, billboards and boxes are supported.
Definition at line 256 of file point_cloud.cpp.
void rviz::PointCloud::shrinkRenderables | ( | ) | [private] |
Definition at line 664 of file point_cloud.cpp.
float rviz::PointCloud::alpha_ [private] |
Definition at line 223 of file point_cloud.h.
Ogre::AxisAlignedBox rviz::PointCloud::bounding_box_ [private] |
The bounding box of this point cloud.
Definition at line 202 of file point_cloud.h.
float rviz::PointCloud::bounding_radius_ [private] |
The bounding radius of this point cloud.
Definition at line 203 of file point_cloud.h.
Ogre::ResourcePtr rviz::PointCloud::box_material_ [private] |
Definition at line 221 of file point_cloud.h.
bool rviz::PointCloud::color_by_index_ [private] |
Definition at line 225 of file point_cloud.h.
Ogre::Vector3 rviz::PointCloud::common_direction_ [private] |
See Ogre::BillboardSet::setCommonDirection.
Definition at line 213 of file point_cloud.h.
Ogre::Vector3 rviz::PointCloud::common_up_vector_ [private] |
See Ogre::BillboardSet::setCommonUpVector.
Definition at line 214 of file point_cloud.h.
Ogre::MaterialPtr rviz::PointCloud::current_material_ [private] |
Definition at line 222 of file point_cloud.h.
bool rviz::PointCloud::current_mode_supports_geometry_shader_ [private] |
Definition at line 229 of file point_cloud.h.
float rviz::PointCloud::depth_ [private] |
depth
Definition at line 212 of file point_cloud.h.
Ogre::ResourcePtr rviz::PointCloud::flat_square_material_ [private] |
Definition at line 218 of file point_cloud.h.
float rviz::PointCloud::height_ [private] |
height
Definition at line 211 of file point_cloud.h.
Ogre::ColourValue rviz::PointCloud::pick_color_ [private] |
Definition at line 230 of file point_cloud.h.
uint32_t rviz::PointCloud::point_count_ [private] |
The number of points currently in points_.
Definition at line 207 of file point_cloud.h.
Ogre::ResourcePtr rviz::PointCloud::point_material_ [private] |
Definition at line 216 of file point_cloud.h.
V_Point rviz::PointCloud::points_ [private] |
The list of points we're displaying. Allocates to a high-water-mark.
Definition at line 206 of file point_cloud.h.
RenderMode rviz::PointCloud::render_mode_ [private] |
Definition at line 209 of file point_cloud.h.
Definition at line 227 of file point_cloud.h.
Ogre::String rviz::PointCloud::sm_Type = "PointCloud" [static, private] |
The "renderable type" used by Ogre.
Definition at line 232 of file point_cloud.h.
Ogre::ResourcePtr rviz::PointCloud::sphere_material_ [private] |
Definition at line 219 of file point_cloud.h.
Ogre::ResourcePtr rviz::PointCloud::square_material_ [private] |
Definition at line 217 of file point_cloud.h.
Ogre::ResourcePtr rviz::PointCloud::tile_material_ [private] |
Definition at line 220 of file point_cloud.h.
float rviz::PointCloud::width_ [private] |
width
Definition at line 210 of file point_cloud.h.