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 | |
void | _notifyAttached (Ogre::Node *parent, bool isTagPoint=false) override |
void | _updateRenderQueue (Ogre::RenderQueue *queue) override |
void | addPoints (Point *points, uint32_t num_points) |
Add points to this point cloud. More... | |
void | clear () |
Clear all the points. More... | |
const Ogre::AxisAlignedBox & | getBoundingBox () const override |
float | getBoundingRadius () const override |
const Ogre::String & | getMovableType () const override |
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. More... | |
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. More... | |
void | setCommonUpVector (const Ogre::Vector3 &vec) |
See Ogre::BillboardSet::setCommonUpVector. More... | |
void | setDimensions (float width, float height, float depth) |
Set the dimensions of the billboards used to render each point. More... | |
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. More... | |
void | visitRenderables (Ogre::Renderable::Visitor *visitor, bool debugRenderables) override |
~PointCloud () override | |
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. More... | |
float | bounding_radius_ |
The bounding radius of this point cloud. More... | |
Ogre::MaterialPtr | box_material_ |
bool | color_by_index_ |
Ogre::Vector3 | common_direction_ |
See Ogre::BillboardSet::setCommonDirection. More... | |
Ogre::Vector3 | common_up_vector_ |
See Ogre::BillboardSet::setCommonUpVector. More... | |
Ogre::MaterialPtr | current_material_ |
bool | current_mode_supports_geometry_shader_ |
float | depth_ |
depth More... | |
Ogre::MaterialPtr | flat_square_material_ |
float | height_ |
height More... | |
Ogre::ColourValue | pick_color_ |
uint32_t | point_count_ |
The number of points currently in points_. More... | |
Ogre::MaterialPtr | point_material_ |
V_Point | points_ |
The list of points we're displaying. Allocates to a high-water-mark. More... | |
RenderMode | render_mode_ |
V_PointCloudRenderable | renderables_ |
Ogre::MaterialPtr | sphere_material_ |
Ogre::MaterialPtr | square_material_ |
Ogre::MaterialPtr | tile_material_ |
float | width_ |
width More... | |
Static Private Attributes | |
static Ogre::String | sm_Type = "PointCloud" |
The "renderable type" used by Ogre. More... | |
A visual representation of a set of points.
Displays a set of points using vertex and geometry shaders. 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 108 of file point_cloud.h.
|
private |
Definition at line 222 of file point_cloud.h.
Enumerator | |
---|---|
RM_POINTS | |
RM_SQUARES | |
RM_FLAT_SQUARES | |
RM_SPHERES | |
RM_TILES | |
RM_BOXES |
Definition at line 111 of file point_cloud.h.
rviz::PointCloud::PointCloud | ( | ) |
Definition at line 92 of file point_cloud.cpp.
|
override |
Definition at line 137 of file point_cloud.cpp.
|
override |
Definition at line 658 of file point_cloud.cpp.
|
override |
Definition at line 648 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 400 of file point_cloud.cpp.
void rviz::PointCloud::clear | ( | ) |
Clear all the points.
Definition at line 164 of file point_cloud.cpp.
|
private |
Definition at line 717 of file point_cloud.cpp.
|
override |
Definition at line 149 of file point_cloud.cpp.
|
override |
Definition at line 154 of file point_cloud.cpp.
|
inlineoverride |
Definition at line 193 of file point_cloud.h.
|
inlinevirtual |
Definition at line 200 of file point_cloud.h.
|
private |
Definition at line 663 of file point_cloud.cpp.
|
virtual |
Definition at line 159 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 581 of file point_cloud.cpp.
|
private |
Definition at line 184 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 368 of file point_cloud.cpp.
void rviz::PointCloud::setAutoSize | ( | bool | auto_size | ) |
Definition at line 316 of file point_cloud.cpp.
void rviz::PointCloud::setColorByIndex | ( | bool | set | ) |
Definition at line 200 of file point_cloud.cpp.
void rviz::PointCloud::setCommonDirection | ( | const Ogre::Vector3 & | vec | ) |
See Ogre::BillboardSet::setCommonDirection.
Definition at line 326 of file point_cloud.cpp.
void rviz::PointCloud::setCommonUpVector | ( | const Ogre::Vector3 & | vec | ) |
See Ogre::BillboardSet::setCommonUpVector.
Definition at line 338 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 300 of file point_cloud.cpp.
void rviz::PointCloud::setHighlightColor | ( | float | r, |
float | g, | ||
float | b | ||
) |
Definition at line 206 of file point_cloud.cpp.
|
inlinevirtual |
Definition at line 208 of file point_cloud.h.
void rviz::PointCloud::setPickColor | ( | const Ogre::ColourValue & | color | ) |
Definition at line 703 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 218 of file point_cloud.cpp.
|
private |
Definition at line 631 of file point_cloud.cpp.
|
override |
Definition at line 741 of file point_cloud.cpp.
|
private |
Definition at line 240 of file point_cloud.h.
|
private |
The bounding box of this point cloud.
Definition at line 219 of file point_cloud.h.
|
private |
The bounding radius of this point cloud.
Definition at line 220 of file point_cloud.h.
|
private |
Definition at line 238 of file point_cloud.h.
|
private |
Definition at line 242 of file point_cloud.h.
|
private |
See Ogre::BillboardSet::setCommonDirection.
Definition at line 230 of file point_cloud.h.
|
private |
See Ogre::BillboardSet::setCommonUpVector.
Definition at line 231 of file point_cloud.h.
|
private |
Definition at line 239 of file point_cloud.h.
|
private |
Definition at line 246 of file point_cloud.h.
|
private |
depth
Definition at line 229 of file point_cloud.h.
|
private |
Definition at line 235 of file point_cloud.h.
|
private |
height
Definition at line 228 of file point_cloud.h.
|
private |
Definition at line 247 of file point_cloud.h.
|
private |
The number of points currently in points_.
Definition at line 224 of file point_cloud.h.
|
private |
Definition at line 233 of file point_cloud.h.
|
private |
The list of points we're displaying. Allocates to a high-water-mark.
Definition at line 223 of file point_cloud.h.
|
private |
Definition at line 226 of file point_cloud.h.
|
private |
Definition at line 244 of file point_cloud.h.
|
staticprivate |
The "renderable type" used by Ogre.
Definition at line 249 of file point_cloud.h.
|
private |
Definition at line 236 of file point_cloud.h.
|
private |
Definition at line 234 of file point_cloud.h.
|
private |
Definition at line 237 of file point_cloud.h.
|
private |
width
Definition at line 227 of file point_cloud.h.