Itasca C++ Interface
ihalffacet.h
1 #pragma once
9 namespace itasca {
10  class IThing;
11 }
12 
13 //namespace pfc {
14 // class IFWall;
15 //}
16 
17 namespace itascaxd {
18  using namespace itasca;
19  //using namespace pfc;
20 
21  class IPiece;
22  class IPieceMechanical;
23  class IPieceMechanicalData;
24  class IHalfVertex;
25  class IHalfEdge;
26  //class ITriPoly;
27 
37  class IHalfFacet {
38  public:
40  inline static const TType type_ = 0x4c90674d;
41 
43  virtual IThing * getIThing()=0;
45  virtual const IThing * getIThing() const=0;
47  virtual IPiece * getIPiece()=0;
49  virtual const IPiece * getIPiece() const=0;
53  virtual const IPieceMechanical *getIPieceMechanical() const=0;
58 
62  virtual const IHalfFacet * getNextIHalfFacet() const=0;
63 
65  virtual IHalfVertex * getIHalfVertex(int i)=0;
67  virtual const IHalfVertex * getIHalfVertex(int i) const=0;
68 
70  virtual IHalfEdge * getIHalfEdge(int i)=0;
72  virtual const IHalfEdge * getIHalfEdge(int i) const=0;
73 
75  virtual DVect getCentroid() const=0;
76 
78  virtual DExtent3 getExtent() const=0;
80  virtual DExtent getCellExtent() const=0;
82  virtual DExtent getToleranceExtent() const=0;
83 
85  virtual DVect3 getNormal() const=0;
86 
88  //virtual const IFWall * getParentFWall() const=0;
89  //virtual IFWall * getParentFWall()=0;
90 
92  //virtual const ITriPoly * getParentTriPoly() const=0;
93 
95  virtual DVect calcClosestPoint(const DVect &) const=0;
96 
98  virtual DVect getPosition() const = 0;
100  virtual DVect getVelocity() const = 0;
102  virtual DVect getConveyorVelocity() const = 0;
104  virtual void setConveyorVelocity(const DVect &) = 0;
106  virtual QString getActiveSideLabel() const = 0;
108  virtual int getActiveSide() const = 0;
110  virtual void setActiveSide(int t) = 0;
111 
112  };
113 }// namespace itascaxd
114 // EoF
115 
Base class for items that will be stored in containers.
Definition: ithing.h:30
Interface for an edge used in the faceted wall logic. This is the interface for an edge used in the f...
Definition: ihalfedge.h:23
Interface for a facet used in the faceted wall logic. This is the interface for a triangular facet as...
Definition: ihalffacet.h:37
virtual DExtent getCellExtent() const =0
Return the DExtent cell extent used for contact detection and remapping.
virtual const IThing * getIThing() const =0
Return a const IThing interface for this object.
virtual IHalfFacet * getNextIHalfFacet()=0
Return the next IHalfFacet in the local list of facets.
virtual void setActiveSide(int t)=0
Set the integer of the side activity.
virtual DVect getCentroid() const =0
Return the DVect centroid of the facet or the average position of all vertices.
virtual const IHalfEdge * getIHalfEdge(int i) const =0
Return the const IHalfEdge with index i. The origin of IHalfEdge i is IHalfVertex i.
virtual QString getActiveSideLabel() const =0
Return the string of the facet activity.
virtual IPieceMechanicalData * getIPieceMechanicalData()=0
Return an IPieceMechanicalData pointer.
virtual DVect getConveyorVelocity() const =0
Return the conveyor velocity.
virtual const IHalfFacet * getNextIHalfFacet() const =0
Return the next const IHalfFacet in the local list of facets.
virtual IPieceMechanical * getIPieceMechanical()=0
Return an IPieceMechanical pointer.
virtual DExtent getToleranceExtent() const =0
Return the DExtent cell extent used for contact detection and remapping.
virtual IPiece * getIPiece()=0
Return an IPiece pointer.
virtual const IPieceMechanical * getIPieceMechanical() const =0
Return a const IPieceMechanical pointer.
virtual DVect getPosition() const =0
Return the centroid position.
virtual DVect calcClosestPoint(const DVect &) const =0
Return a pointer the the parent faceted wall.
virtual IHalfVertex * getIHalfVertex(int i)=0
Return the IHalfVertex with index i that corresponds to the dimension.
virtual IHalfEdge * getIHalfEdge(int i)=0
Return the IHalfEdge with index i. The origin of IHalfEdge i is IHalfVertex i.
virtual const IPieceMechanicalData * getIPieceMechanicalData() const =0
Return a const IPieceMechanicalData pointer.
virtual int getActiveSide() const =0
Return the integer of the side activity.
virtual DExtent3 getExtent() const =0
Return the extent in DExtent3 format.
virtual void setConveyorVelocity(const DVect &)=0
Set the conveyor velocity.
virtual const IHalfVertex * getIHalfVertex(int i) const =0
Return the const IHalfVertex with index i that corresponds to the dimension.
virtual IThing * getIThing()=0
Return an IThing interface for this object.
virtual DVect3 getNormal() const =0
Return the DVect normal of the facets.
virtual DVect getVelocity() const =0
Return the velocity at the centroid.
virtual const IPiece * getIPiece() const =0
Return a const IPiece pointer.
Interface for a vertex used in the faceted wall logic. This is the interface for a vertex used in the...
Definition: ihalfvertex.h:27
Definition: ipiece.h:15
Definition: ipiecemechanicaldata.h:13
Definition: ipiecemechanical.h:11
uint32 TType
class type indicator
Definition: basedef.h:46
DExtent3 DExtent
A DExtent2 in 2D, a DExtent3 in 3D.
Definition: dim.h:156
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
namespace Itasca
Definition: basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4