class for contact kinematics between convex frustum and an plate More...
#include <plate_polynomialfrustum.h>
Public Member Functions | |
void | assignContours (const std::vector< Contour * > &contour) |
treats ordering of contours More... | |
virtual void | updateg (double &g, std::vector< ContourFrame * > &cFrame, int index=0) |
compute normal distance, possible contact point positions and orientation (cf. contact.cc) More... | |
virtual void | updatewb (fmatvec::Vec &wb, double g, std::vector< ContourFrame * > &cFrame) |
compute acceleration in terms of contour parameters for event driven integration More... | |
void | setGridSizeY (int gridSizeY_) |
void | setGridSizeZ (int gridSizeZ_) |
![]() | |
ContactKinematics () | |
constructor | |
virtual | ~ContactKinematics () |
destructor | |
void | assignContours (Contour *contour1, Contour *contour2) |
treats ordering of contours More... | |
int | getNumberOfPotentialContactPoints () const |
virtual ContactKinematics * | getContactKinematics (int i=0) const |
virtual void | setSearchAllContactPoints (bool searchAllCP_=true) |
virtual void | setInitialGuess (const fmatvec::VecV &zeta0_) |
![]() | |
Atom & | operator= (const Atom &) |
void | setMessageStreamActive (MsgType type, bool active) |
void | getMessageStream (MsgType type, std::shared_ptr< bool > &a, std::shared_ptr< std::ostream > &s) |
void | adoptMessageStreams (const Atom *src=NULL) |
std::ostream & | msg (MsgType type) |
bool | msgAct (MsgType type) |
Protected Member Functions | |
void | setFrustumOrienationKinematics (const double &x, const double &phi, std::vector< ContourFrame * > &cFrame) |
set the values for the contact kinematics for the frustum due to the given x and phi | |
bool | cpLocationInPlate (double &g, std::vector< ContourFrame * > &cFrame) |
check if there is a contact point within the plate between the frustum and the plate More... | |
bool | gridContact (double &g, std::vector< ContourFrame * > &cFrame) |
if the unique contact point cannot be found a grid is walked through and a weighted sum results in the contact point More... | |
bool | cornerContact (double &g, std::vector< ContourFrame * > &cFrame) |
checks if there is a contact point at one of the corner points More... | |
bool | edgeContact (double &g, std::vector< ContourFrame * > &cFrame) |
checks if there is a contact on one edge of the plate More... | |
fmatvec::Vec3 | computeContourPointFrustum (const double &x, const fmatvec::Vec3 &n) |
computes the point on the contour of the frustum due to the height-coordinate x and the normal in world coordinates More... | |
fmatvec::Vec3 | computeContourPoint (const double &x, const fmatvec::Vec3 &n) |
computes the point on the contour of the frustum due to the height-coordinate x and the normal in world coordinates More... | |
int | checkPossibleContactPoint (const double &x, const fmatvec::Vec3 &n) |
check if frustum point identified by coordinate x is possible contact point More... | |
double | distance2Plate (const fmatvec::Vec3 &point) |
compute distance between given point and plate More... | |
void | updateGrid () |
updates the grid for the discrete contact point approximation | |
![]() | |
Atom (const Atom &src) | |
Protected Attributes | |
int | iplate |
contour index of plate (in cpData) | |
int | ifrustum |
contour index of frustum (in cpData) | |
Plate * | plate |
pointer to the contour class for the plate | |
PolynomialFrustum * | frustum |
pointer to the contour class for the polynomial frustum | |
double | signh |
sign of height-direction | |
int | gridSizeY |
grid size in y-direction for the search with grid points | |
int | gridSizeZ |
grid size in z-direction for the search with grid points | |
double | x1 |
save last value to use it again as starting value for equation 1 | |
double | x2 |
save last value to use it again as starting value for equation 2 | |
fmatvec::Vec3 | cornerPoints [4] |
array of the four corner points of the plate in the frame of the frustum | |
std::vector< std::vector < fmatvec::Vec3 > > | gridPoints |
saves the points for the contact point computation | |
MBSim::projectPointAlongNormal * | funcProjectAlongNormal |
function for intersection point | |
MBSim::MultiDimensionalNewtonMethod | newtonProjectAlongNormal |
newton method for solving the edge contact | |
MBSim::projectPointAlongNormalJacobian * | jacobianProjectAlongNormal |
Jacobian for newton method. | |
GlobalResidualCriteriaFunction | criteriaProjectAlongNormal |
criteria for newton method | |
MBSim::StandardDampingFunction | dampingProjectAlongNormal |
damping function for newton method | |
edgePolyFrustum * | funcEdge |
function for intersection point | |
MBSim::MultiDimensionalNewtonMethod | newtonEdge |
newton method for solving the edge contact | |
MBSim::NumericalNewtonJacobianFunction | jacobianEdge |
Jacobian for newton method. | |
edgePolyFrustumCriteria | criteriaEdge |
criteria for newton method | |
MBSim::StandardDampingFunction | dampingEdge |
damping function for newton method | |
int | ilast |
index of last edge contact | |
fmatvec::Vec | xi |
last position of edge contact | |
fmatvec::Vec2 | zeta |
![]() | |
int | numberOfPotentialContactPoints |
number of potential contact points | |
Additional Inherited Members | |
![]() | |
enum | MsgType |
![]() | |
static void | setCurrentMessageStream (MsgType type, const std::shared_ptr< bool > &a=std::make_shared< bool >(true), const std::shared_ptr< std::ostream > &s=std::make_shared< std::ostream >(std::cout.rdbuf())) |
static std::ostream & | msgStatic (MsgType type) |
static bool | msgActStatic (MsgType type) |
class for contact kinematics between convex frustum and an plate
|
virtual |
|
protected |
check if frustum point identified by coordinate x is possible contact point
x | height-coordinate of possible contact point |
n | normal vector of the plate |
|
protected |
computes the point on the contour of the frustum due to the height-coordinate x and the normal in world coordinates
x | height coordinate |
n | normal of the frustum |
|
protected |
computes the point on the contour of the frustum due to the height-coordinate x and the normal in world coordinates
x | height coordinate |
n | normal of the frustum |
|
protected |
checks if there is a contact point at one of the corner points
|
protected |
check if there is a contact point within the plate between the frustum and the plate
If there is contact the position and the cpData information is setted right away
|
protected |
compute distance between given point and plate
point | Given point in world coordinates |
|
protected |
checks if there is a contact on one edge of the plate
|
protected |
if the unique contact point cannot be found a grid is walked through and a weighted sum results in the contact point
|
virtual |
compute normal distance, possible contact point positions and orientation (cf. contact.cc)
t | time |
g | normal distance |
cFrame | contour point Frame |
index | index of the contact point that should be updated |
Implements MBSim::ContactKinematics.
|
inlinevirtual |
compute acceleration in terms of contour parameters for event driven integration
t | time |
wb | acceleration in terms of contour parameters |
g | normal distance |
cFrame | contact point parametrisation |
Implements MBSim::ContactKinematics.