|
Itasca C++ Interface
|
Interface for a faceted wall. More...
#include <ifwall.h>
Public Member Functions | |
| virtual IThing * | getIThing ()=0 |
| Return an IThing interface for this object. | |
| virtual const IThing * | getIThing () const =0 |
| Return a const IThing interface for this object. | |
| virtual IBody * | getIBody ()=0 |
| Return an IBody pointer. | |
| virtual const IBody * | getIBody () const =0 |
| Return a const IBody pointer. | |
| virtual IString | getName () const =0 |
| Return the QString name. | |
| virtual IFWall * | getNextIFWall ()=0 |
| Return the next IFWall object in the global list, or 0 if it is the last set. | |
| virtual const IFWall * | getNextIFWall () const =0 |
| Return the next IFWall object in the global list, or 0 if it is the last set. | |
| virtual IHalfFacet * | getFirstIHalfFacet ()=0 |
| Return the first IHalfFacet associated with this FWall. | |
| virtual const IHalfFacet * | getFirstIHalfFacet () const =0 |
| Return the const first IHalfFacet associated with this FWall. | |
| virtual DExtent3 | getExtent () const =0 |
| Return the DExtent3 extent of the faceted wall. | |
| virtual double | getCutoffAng () const =0 |
| Get the user defined cutoff angle for contact resolution - in radians. | |
| virtual void | setCutoffAng (const double &d)=0 |
| Set the user defined cutoff angle for contact resolution - provided in radians. | |
| virtual IContainer * | getFWallAsFacetContainer ()=0 |
| Return the IContainer of facets associated with a wall. | |
| virtual const IContainer * | getFWallAsFacetContainer () const =0 |
| Return the IContainer of facets associated with a wall. | |
| virtual IContainer * | getFWallAsVertexContainer ()=0 |
| Return the IContainer of vertices associated with a wall. | |
| virtual const IContainer * | getFWallAsVertexContainer () const =0 |
| Return the IContainer of vertices associated with a wall. | |
| virtual int | getNumberFacets () const =0 |
| Return the number of IHalfFacets. | |
| virtual void | getFacetList (FArray< IHalfFacet * > *ret)=0 |
| Return a list of IHalfFacets. | |
| virtual void | getFacetList (FArray< const IHalfFacet * > *ret) const =0 |
| Return a list of const IHalfFacets. | |
| virtual const IHalfFacet * | findFacetWithID (uint64 id) const =0 |
| Find the const IHalfFacet with ID id;. | |
| virtual IHalfFacet * | findFacetWithID (uint64 id)=0 |
| Find the IHalfFacet with ID id. | |
| virtual const IHalfFacet * | findClosestFacet (const DVect &pos, const double &radius=limits< double >::max()) const =0 |
| Find the IHalfFacet closest to pos. | |
| virtual IHalfFacet * | findClosestFacet (const DVect &pos, const double &radius=limits< double >::max())=0 |
| Find the const IHalfFacet closest to pos. | |
| virtual void | removeIHalfFacet (IHalfFacet *fac)=0 |
| Remove the IHalfFacet from the FWall. | |
| virtual IHalfFacet * | addFacetFromVertices (DVect verts[dim], QString &error, uint64 id=0, bool ignoreEnd=false, bool allowStar=false)=0 |
| Add a facet from vertices. | |
| virtual void | doValidate ()=0 |
| Cause a validate, updating convexity. | |
| virtual void | getVertexList (FArray< IHalfVertex * > *ret)=0 |
| Return a list of IHalfVertex objects. | |
| virtual void | getVertexList (FArray< const IHalfVertex * > *ret) const =0 |
| Return a list of const IHalfVertex object. | |
| virtual const IHalfVertex * | findVertexWithID (uint64 id) const =0 |
| Find the const IHalfVertex with ID id;. | |
| virtual IHalfVertex * | findVertexWithID (uint64 id)=0 |
| Find the IHalfVertex with ID id. | |
| virtual const IHalfVertex * | findClosestVertex (const DVect &pos, const double &radius=limits< double >::max()) const =0 |
| Find the IHalfVertex closest to pos. | |
| virtual IHalfVertex * | findClosestVertex (const DVect &pos, const double &radius=limits< double >::max())=0 |
| Find the const IHalfFacet closest to pos. | |
| virtual DVect | getPosition () const =0 |
| Return the wall position. This is implementation dependent. | |
| virtual DVect | getCentRot () const =0 |
| Return the center of rotation - the point about which the wall can rotate. | |
| virtual DVect | getVelocity () const =0 |
| Return the translational velocity of the wall. | |
| virtual DAVect | getAngVelocity () const =0 |
| Return the angular velocity of the wall. | |
| virtual DVect | getDisplacement () const =0 |
| Return the accumulated displacement of the point corresponding to position. | |
| virtual DVect | getForce () const =0 |
| Return the sum of all contact forces to which the wall does not react. | |
| virtual DVect | getContactForce () const =0 |
| virtual DAVect | getMoment () const =0 |
| Return the moment of all contacts with with wall. | |
| virtual DAVect | getContactMoment () const =0 |
| virtual Quat | getOrient () const =0 |
| Return the current orientation. | |
| virtual bool | getIsClosed () const =0 |
| Return a boolean indicating whether or not this is a closed wall. | |
| virtual bool | getIsIn (const DVect &d) const =0 |
| Return a bool indicating whether or not a point is inside a wall. If not closed then returns false. | |
| virtual bool | getIsConvex () const =0 |
| Retuen boolean indicating convex. Returns false if not closed. | |
| virtual void | setPosition (const DVect &p)=0 |
| Set the wall position to p. | |
| virtual void | setCentRot (const DVect &p)=0 |
| Set the wall center of rotation to p. | |
| virtual void | setVelocity (const DVect &p)=0 |
| Set the wall translational velocity to p. | |
| virtual void | setAngVelocity (const DAVect &p)=0 |
| Set the wall angular velocity to p. | |
| virtual void | setDisplacement (const DVect &v)=0 |
| Set the wall accumulated displacement to v. | |
| virtual void | setContactForce (const DVect &v)=0 |
| Set the contact force. | |
| virtual void | setContactMoment (const DAVect &v)=0 |
| Set the contact moment. | |
| virtual void | setOrient (const Quat &q)=0 |
| Set the orientation. | |
| virtual bool | setProperty (const QString &name, const QVariant &v)=0 |
| Set the properties in prop to v for all PieceMechanicals that are in this wall. | |
| virtual void | rotate (const DVect &rotp, const DVect &axis, const double &w, bool update=true, bool noThrow=false)=0 |
| virtual bool | getVertsHaveVel () const =0 |
| Get the boolean indicating whether or not the vertices have velocities. | |
| virtual void | updateFWallPosition (IHalfVertex *v=0, DVect *prevPos=0)=0 |
| Update the position of the wall centroid. | |
| virtual int | getFragmentIndex () const =0 |
| Return the wall fragment index. | |
| virtual void | setFragmentIndex (int ind)=0 |
| Set the wall fragment index. | |
| virtual void | getContactList (FArray< IContact * > *ret, const TType &type=0, const IPiece *p2=0)=0 |
| Return a list of IContacts. | |
| virtual void | getContactList (FArray< const IContact * > *ret, const TType &type=0, const IPiece *p2=0) const =0 |
| Return a list of const IContacts. | |
| virtual double | getServoGainFactor () const =0 |
| Get wall servo gain relaxation factor. | |
| virtual double | getServoGain () const =0 |
| Get wall servo gain. | |
| virtual double | getServoVmax () const =0 |
| Get wall servo cap velocity. | |
| virtual DVect | getServoForce () const =0 |
| Get wall servo force. | |
| virtual bool | getServoActive () const =0 |
| Get wall servo activity status. | |
| virtual int | getServoGainUpdate () const =0 |
| Get wall servo gain update interval. | |
| virtual void | setServoGainFactor (const double &d)=0 |
| Set servo gain relaxation factor. | |
| virtual void | setServoGain (const double &d)=0 |
| Set servo gain. | |
| virtual void | setServoVmax (const double &d)=0 |
| Set servo cap velocity. | |
| virtual void | setServoForce (const DVect &f)=0 |
| Set servo force. | |
| virtual void | setServoActive (bool b)=0 |
| Set servo active status. | |
| virtual void | setServoGainUpdate (int i)=0 |
| Set servo gain update interval. | |
Static Public Attributes | |
| static const TType | type_ = 0x4c90658e |
| TType for type casting. | |
Interface for a faceted wall.
This is the interface for a faceted wall. A faceted wall is a wall that is composed of triangular facets. Each facet is composed of three edges and three vertices. A half-edge data structure is used to efficiently store and retrieve adjacency information (e.g., facets adjacent to another facet, facets that share a vertex, etc.). This implementation requires that a FWall is a manifold, orientable triangular mesh throughout. The position of a FWall is the average location of all vertices. As implemented, FWalls must exist within the model domain. When an FWall intersects a domain boundary with reflect boundary conditions an exception occurs. When an FWall intersects a domain boundary with any other boundary condition the FWall translational and angular velocities are set to 0. The vertices of an FWall can be moved and assigned a translational velocity. The user is responsible for maintaining the manifold/orientable nature of the triangular mesh in these cases. When a vertex has a translational velocity then the FWall translational/angular velocities are set to 0.
|
pure virtual |
Rotate the wall about the axis axis through the rotation point rotp by the angle w (in radians). If orientation tracking is enabled then it is updated when the update boolean is set to true