79 Vec2i getEdge (
int idx)
const {
const Vec2i& e = m_edges[idx ^ (idx >> 31)].verts;
return (idx >= 0) ? e :
Vec2i(e.y, e.x); }
80 int getEdgeStartVertex (
int idx)
const {
return (idx >= 0) ? m_edges[idx].verts.x : m_edges[~idx].verts.y; }
81 int getEdgeEndVertex (
int idx)
const {
return (idx >= 0) ? m_edges[idx].verts.y : m_edges[~idx].verts.x; }
89 int getFaceEdge (
int faceIdx,
int idx) {
FW_ASSERT(idx >= 0 && idx < m_faces[faceIdx].numEdges);
return m_faceEdges[m_faces[faceIdx].firstEdge + idx].edge; }
91 void set (
const ConvexPolyhedron& other) { m_vertices = other.m_vertices; m_edges = other.m_edges; m_faces = other.m_faces; m_faceEdges = other.m_faceEdges; }
92 void setEmpty (
void) { m_vertices.clear(); m_edges.clear(); m_faces.clear(); m_faceEdges.clear(); }
const Vec3f & getVertex(int idx) const
void set(const ConvexPolyhedron &other)
int getEdgeEndVertex(int idx) const
Mesh< VertexPN > * createMesh(void) const
int getEdgeStartVertex(int idx) const
ConvexPolyhedron(const Vec3f &lo, const Vec3f &hi)
int getNumFaces(void) const
bool intersect(const Vec4f &planeEq, int planeID=-1)
int getNumEdges(void) const
ConvexPolyhedron & operator=(const ConvexPolyhedron &other)
ConvexPolyhedron(const ConvexPolyhedron &other)
const Vec3f & getEdgeEndPos(int idx) const
int getFacePlaneID(int idx) const
void setCube(const Vec3f &lo, const Vec3f &hi)
bool intersectCube(const Vec3f &lo, const Vec3f &hi)
union FW::ConvexPolyhedron::Vertex::@0 aux
F32 computeArea(void) const
int getFaceNumEdges(int idx) const
const Vec4f & getFacePlaneEq(int idx) const
int getFaceEdge(int faceIdx, int idx)
Vec3f computeCenterOfMass(void) const
int getNumVertices(void) const
Vec2i getEdge(int idx) const
F32 computeVolume(void) const
const Vec3f & getEdgeStartPos(int idx) const