Bratmobile
Protected Member Functions | List of all members
WorldPointBuilder Class Reference

Each point is an object but each time the world is built, only the points in the way of the task are constructed. More...

#include <worldbuilder.h>

Inheritance diagram for WorldPointBuilder:
Inheritance graph
[legend]
Collaboration diagram for WorldPointBuilder:
Collaboration graph
[legend]

Protected Member Functions

virtual std::vector< BodyFeaturesgetFeatures (const CoordinateContainer &current, b2Transform start, CLUSTERING clustering) override
 clusters point clouds into objects and returns a vector of body features More...
 

Additional Inherited Members

- Public Types inherited from WorldBuilder
enum  CLUSTERING { BOX =0 , KMEANS =1 , PARTITION =2 }
 
- Public Member Functions inherited from WorldBuilder
std::pair< CoordinateContainer, bool > salientPoints (b2Transform, const CoordinateContainer &, std::pair< Pointf, Pointf >)
 
b2Body * makeBody (b2World &w, const BodyFeatures &features)
 Creates a body in the box2d world, and if the features represent a disturbance to which the attention window needs to be assigned, a flag is assigned to the body user data. More...
 
std::vector< BodyFeaturesprocessData (const CoordinateContainer &, const b2Transform &)
 returns a bounding box encompassing all points provided More...
 
std::vector< BodyFeaturescluster_data (const CoordinateContainer &pts, const b2Transform &start, CLUSTERING clustering=PARTITION)
 Cluster point cloud data using a custom algorithm. More...
 
bool checkDisturbance (Pointf, bool &, Task *curr=NULL, float range=0.025)
 
virtual void buildWorld (b2World &, b2Transform, Direction, Disturbance disturbance=Disturbance(), float halfWindowWidth=0.15, CLUSTERING clustering=CLUSTERING::PARTITION, Task *task=NULL)
 Creates bodies (objects) in the box2d world. More...
 
std::pair< Pointf, Pointfbounds (Direction, b2Transform t, float boxLength, float halfWindowWidth, std::vector< Pointf > *_bounds=NULL)
 
b2PolygonShape object_filtering_box (float halfWindowWidth, float boxLength, b2Transform start, Direction d)
 Makes a box. More...
 
std::pair< bool, BodyFeaturesbounding_approx_poly (std::vector< cv::Point2f >nb)
 
std::vector< std::vector< cv::Point2f > > kmeans_clusters (std::vector< cv::Point2f >, std::vector< cv::Point2f > &)
 Clusters points using k-means algorithm. More...
 
std::vector< std::vector< cv::Point2f > > partition_clusters (std::vector< cv::Point2f >)
 Clusters points using the partition algorithm. More...
 
b2Vec2 averagePoint (const CoordinateContainer &, Disturbance &, float rad=0.025)
 
int getBodies ()
 
void add_body_count ()
 
void resetBodies ()
 
void add_iteration (int i=1)
 
b2Body * get_robot (b2World *)
 
b2Fixture * get_chassis (b2Body *)
 
b2AABB makeRobotSensor (b2Body *const robotBody, const Disturbance &focus) const
 Makes the robot attention window, i.e. a distal sensor which is comprised between the extremes of the robot body and the disturbance. More...
 
std::vector< BodyFeatures > & get_world_objects ()
 
void set_world_objects (const std::vector< BodyFeatures > &wo)
 
void setSimulationStep (float f)
 
- Protected Attributes inherited from WorldBuilder
int iteration =0
 
char bodyFile [100]
 
float simulationStep =BOX2DRANGE
 
int bodies =0
 
std::vector< BodyFeaturesworld_objects
 

Detailed Description

Each point is an object but each time the world is built, only the points in the way of the task are constructed.

ALTERNATIVE WORLDBUILDERS

Member Function Documentation

◆ getFeatures()

std::vector< BodyFeatures > WorldPointBuilder::getFeatures ( const CoordinateContainer current,
b2Transform  start,
CLUSTERING  clustering 
)
overrideprotectedvirtual

clusters point clouds into objects and returns a vector of body features

Parameters
currentpoint cloud
startrobot position
partitionalgorithm used for partition

Reimplemented from WorldBuilder.

Reimplemented in EveryOtherPointBuilder, and EveryOtherFeatureBuilder.


The documentation for this class was generated from the following files: