Collision Checker
collision::RectangleOBB Class Reference

Oriented rectangle. More...

#include <rectangle_obb.h>

Inheritance diagram for collision::RectangleOBB:
collision::Shape collision::CollisionObjectEx collision::solvers::solverFCL::IFCLCollisionObject collision::CollisionObject

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW void set_up_segments (void)
 
void compute_fastAABB (const Eigen::Vector2d &_v1, const Eigen::Vector2d &_v2, const Eigen::Vector2d &_v3, const Eigen::Vector2d &_v4) const
 
void compute_fastAABB (void) const
 
 RectangleOBB (const detail::OBB &obb)
 
 RectangleOBB (double _r_x, double _r_y, Eigen::Matrix2d _local_axes, const Eigen::Vector2d &_center=Eigen::Vector2d(0, 0))
 
 RectangleOBB (double _r_x, double _r_y, double angle, const Eigen::Vector2d &_center=Eigen::Vector2d(0, 0))
 
 RectangleOBB (const RectangleOBB &copy)
 
double orientation () const
 
AABB getAABB_fast (void) const
 
virtual CollisionObjectType getCollisionObjectType () const
 
bool rayTrace (const Eigen::Vector2d &point1, const Eigen::Vector2d &point2, std::vector< LineSegment > &intersect) const override
 
virtual ~RectangleOBB ()
 
virtual RectangleOBBclone () const
 
void print (std::ostringstream &stream) const
 Print all parameters of the shape. More...
 
fcl::CollisionGeometry< FCL_PRECISION > * createFCLCollisionGeometry (void) const override
 
fcl::CollisionObject< FCL_PRECISION > * createFCLCollisionObject (const std::shared_ptr< fcl::CollisionGeometry< FCL_PRECISION >> &) const override
 
ShapeType type () const
 Get shape type. More...
 
Eigen::Matrix2d local_axes () const
 
Eigen::Vector2d local_x_axis () const
 
Eigen::Vector2d local_y_axis () const
 
Eigen::Vector2d r () const
 
double r (int i) const
 
double r_x () const
 
double r_y () const
 
void set_local_x_axis (const Eigen::Vector2d &x_axis)
 
void set_local_y_axis (const Eigen::Vector2d &y_axis)
 
void set_r_x (double _r_x)
 
void set_r_y (double _r_y)
 
double squareDisToPoint (const Eigen::Vector2d &p) const
 
std::vector< LineSegmentsegments (void) const
 
- Public Member Functions inherited from collision::Shape
EIGEN_MAKE_ALIGNED_OPERATOR_NEW CollisionObjectClass getCollisionObjectClass () const override
 
virtual const ISolverEntity_FCLgetFclInterface () const override
 
 Shape (const Shape &copy)
 
Eigen::Vector2d center () const
 Get geometric center of shape. More...
 
double center_x () const
 
double center_y () const
 
void set_center (const Eigen::Vector2d &_center)
 Set geometric center of shape. More...
 
virtual CollisionObjectConstPtr timeSlice (int time_idx, CollisionObjectConstPtr shared_ptr_this) const
 
double radius () const
 Get radius. More...
 
virtual ~Shape ()
 
- Public Member Functions inherited from collision::CollisionObjectEx
 CollisionObjectEx ()
 
virtual ~CollisionObjectEx ()
 
virtual bool collide (const CollisionObject &c, const collision::CollisionRequest &req=CollisionRequest()) const
 
virtual bool BVCheck (CollisionObjectConstPtr obj2) const
 
virtual std::shared_ptr< const collision::RectangleAABBgetAABB () const
 
virtual int getSolverEntity (solvers::solverFCL::SolverEntity_FCL *&ptr) const
 
virtual int getSolverEntity (solvers::solverBoost::SolverEntity_Boost *&ptr) const
 
virtual const ICollisionContainergetContainerInterface (void) const
 
virtual const solvers::solverBoost::ISolverEntity_BoostgetBoostInterface (void) const
 
- Public Member Functions inherited from collision::CollisionObject
virtual ~CollisionObject ()
 
virtual void toString (std::ostringstream &stream) const
 
virtual void addParentMap (std::unordered_map< const CollisionObject *, std::list< CollisionObjectConstPtr >> &parent_map) const
 
virtual void addParentMap (std::unordered_map< const CollisionObject *, std::list< CollisionObjectConstPtr >> &parent_map, CollisionObjectConstPtr parent) const
 

Additional Inherited Members

- Protected Member Functions inherited from collision::Shape
 Shape (const Eigen::Vector2d &_center)
 
- Protected Member Functions inherited from collision::CollisionObjectEx
void invalidateCollisionEntityCache (void)
 
- Protected Attributes inherited from collision::Shape
Eigen::Vector2d center_
 
double radius_
 

Detailed Description

Oriented rectangle.

Definition at line 19 of file rectangle_obb.h.

Constructor & Destructor Documentation

◆ RectangleOBB() [1/4]

collision::RectangleOBB::RectangleOBB ( const detail::OBB obb)
inline

Definition at line 86 of file rectangle_obb.h.

◆ RectangleOBB() [2/4]

collision::RectangleOBB::RectangleOBB ( double  _r_x,
double  _r_y,
Eigen::Matrix2d  _local_axes,
const Eigen::Vector2d &  _center = Eigen::Vector2d(0, 0) 
)
inline

Definition at line 89 of file rectangle_obb.h.

◆ RectangleOBB() [3/4]

collision::RectangleOBB::RectangleOBB ( double  _r_x,
double  _r_y,
double  angle,
const Eigen::Vector2d &  _center = Eigen::Vector2d(0, 0) 
)
inline

Definition at line 100 of file rectangle_obb.h.

◆ RectangleOBB() [4/4]

collision::RectangleOBB::RectangleOBB ( const RectangleOBB copy)
inline

Definition at line 112 of file rectangle_obb.h.

◆ ~RectangleOBB()

virtual collision::RectangleOBB::~RectangleOBB ( )
inlinevirtual

Definition at line 139 of file rectangle_obb.h.

Member Function Documentation

◆ clone()

RectangleOBB * collision::RectangleOBB::clone ( ) const
virtual

Implements collision::Shape.

Definition at line 40 of file rectangle_obb.cc.

◆ compute_fastAABB() [1/2]

void collision::RectangleOBB::compute_fastAABB ( const Eigen::Vector2d &  _v1,
const Eigen::Vector2d &  _v2,
const Eigen::Vector2d &  _v3,
const Eigen::Vector2d &  _v4 
) const
inline

Definition at line 43 of file rectangle_obb.h.

◆ compute_fastAABB() [2/2]

void collision::RectangleOBB::compute_fastAABB ( void  ) const
inline

Definition at line 66 of file rectangle_obb.h.

◆ createFCLCollisionGeometry()

fcl::CollisionGeometry< FCL_PRECISION > * collision::RectangleOBB::createFCLCollisionGeometry ( void  ) const
overridevirtual

◆ createFCLCollisionObject()

fcl::CollisionObject< FCL_PRECISION > * collision::RectangleOBB::createFCLCollisionObject ( const std::shared_ptr< fcl::CollisionGeometry< FCL_PRECISION >> &  col_geom) const
overridevirtual

◆ getAABB_fast()

AABB collision::RectangleOBB::getAABB_fast ( void  ) const
inline

Definition at line 125 of file rectangle_obb.h.

◆ getCollisionObjectType()

virtual CollisionObjectType collision::RectangleOBB::getCollisionObjectType ( ) const
inlinevirtual

Reimplemented from collision::CollisionObject.

Definition at line 132 of file rectangle_obb.h.

◆ local_axes()

Eigen::Matrix2d collision::RectangleOBB::local_axes ( void  ) const

Definition at line 52 of file rectangle_obb.cc.

◆ local_x_axis()

Eigen::Vector2d collision::RectangleOBB::local_x_axis ( ) const

Definition at line 54 of file rectangle_obb.cc.

◆ local_y_axis()

Eigen::Vector2d collision::RectangleOBB::local_y_axis ( ) const

Definition at line 58 of file rectangle_obb.cc.

◆ orientation()

double collision::RectangleOBB::orientation ( ) const

Definition at line 105 of file rectangle_obb.cc.

◆ print()

void collision::RectangleOBB::print ( std::ostringstream &  stream) const
virtual

Print all parameters of the shape.

Implements collision::Shape.

Definition at line 44 of file rectangle_obb.cc.

◆ r() [1/2]

Eigen::Vector2d collision::RectangleOBB::r ( void  ) const

Definition at line 62 of file rectangle_obb.cc.

◆ r() [2/2]

double collision::RectangleOBB::r ( int  i) const

Definition at line 64 of file rectangle_obb.cc.

◆ r_x()

double collision::RectangleOBB::r_x ( ) const

Definition at line 75 of file rectangle_obb.cc.

◆ r_y()

double collision::RectangleOBB::r_y ( ) const

Definition at line 77 of file rectangle_obb.cc.

◆ rayTrace()

bool collision::RectangleOBB::rayTrace ( const Eigen::Vector2d &  point1,
const Eigen::Vector2d &  point2,
std::vector< LineSegment > &  intersect 
) const
overridevirtual

Reimplemented from collision::CollisionObject.

Definition at line 24 of file rectangle_obb.cc.

◆ segments()

std::vector<LineSegment> collision::RectangleOBB::segments ( void  ) const
inline

Definition at line 178 of file rectangle_obb.h.

◆ set_local_x_axis()

void collision::RectangleOBB::set_local_x_axis ( const Eigen::Vector2d &  x_axis)

Definition at line 79 of file rectangle_obb.cc.

◆ set_local_y_axis()

void collision::RectangleOBB::set_local_y_axis ( const Eigen::Vector2d &  y_axis)

Definition at line 86 of file rectangle_obb.cc.

◆ set_r_x()

void collision::RectangleOBB::set_r_x ( double  _r_x)

Definition at line 93 of file rectangle_obb.cc.

◆ set_r_y()

void collision::RectangleOBB::set_r_y ( double  _r_y)

Definition at line 99 of file rectangle_obb.cc.

◆ set_up_segments()

EIGEN_MAKE_ALIGNED_OPERATOR_NEW void collision::RectangleOBB::set_up_segments ( void  )
inline

Definition at line 23 of file rectangle_obb.h.

◆ squareDisToPoint()

double collision::RectangleOBB::squareDisToPoint ( const Eigen::Vector2d &  p) const

Project translation vector t in OBB's local coordinate system

Definition at line 124 of file rectangle_obb.cc.

◆ type()

ShapeType collision::RectangleOBB::type ( ) const
virtual

Get shape type.

Implements collision::Shape.

Definition at line 42 of file rectangle_obb.cc.


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