A class for rectangle swept sphere bounding volume. More...
#include <RSS.h>
Public Types | |
using | S = S_ |
Public Member Functions | |
const Vector3< S > | center () const |
The RSS center C, measured and expressed in frame F: p_FoC_F. More... | |
bool | contain (const Vector3< S > &p) const |
Check whether the RSS contains a point. More... | |
S | depth () const |
Depth of the RSS. More... | |
S | distance (const RSS< S > &other, Vector3< S > *P=nullptr, Vector3< S > *Q=nullptr) const |
the distance between two RSS; P and Q, if not nullptr, return the nearest points More... | |
S | height () const |
Height of the RSS. More... | |
RSS< S > | operator+ (const RSS< S > &other) const |
Return the merged RSS of current RSS and the other one. More... | |
RSS< S > & | operator+= (const RSS< S > &other) |
Merge the RSS and another RSS. More... | |
RSS< S > & | operator+= (const Vector3< S > &p) |
A simple way to merge the RSS and a point, not compact. More... | |
bool | overlap (const RSS< S > &other) const |
Check collision between two RSS. More... | |
bool | overlap (const RSS< S > &other, RSS< S > &overlap_part) const |
Check collision between two RSS and return the overlap part. For RSS, we return nothing, as the overlap part of two RSSs usually is not a RSS. More... | |
RSS () | |
Constructor. More... | |
void | setToFromCenter (const Vector3< S > &p_FoCenter_F) |
Set To of the RSS from the center coordinates in frame F. More... | |
S | size () const |
Size of the RSS (used in BV_Splitter to order two RSSs) More... | |
S | volume () const |
Volume of the RSS. More... | |
S | width () const |
Width of the RSS. More... | |
Public Attributes | |
Matrix3< S > | axis |
Frame T's orientation in frame F. More... | |
S | l [2] |
Side lengths of rectangle in frame T. More... | |
S | r |
Radius of sphere summed with rectangle to form RSS. More... | |
Vector3< S > | To |
Origin of frame T in frame F. More... | |
Private Member Functions | |
Vector3< S > & | p_FoTo_F () |
const Vector3< S > & | p_FoTo_F () const |
Matrix3< S > & | R_FT () |
const Matrix3< S > & | R_FT () const |
A class for rectangle swept sphere bounding volume.
RSS defines a rectangle swept sphere. The rectangle is defined in the frame T. It has one corner positioned at the origin of frame T. It lies on T's z = 0 plane. Its longest dimension extends in the +x direction, and its shorter dimension in the +y direction.
The RSS is then posed in another frame F. R_FT (the axis field) is the relative orientation between frame T and F and p_FoTo_F (the To field) is the position of T's origin in frame F.
Frame T's orientation in frame F.
The axes of the rotation matrix are the principle directions of the rectangle. The first column corresponds to a unit vector along the longest edge and the second column the shortest edge. The third column is the rectangle's unit normal vector.