|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objecttoxi.geom.mesh.TriangleMesh
toxi.geom.mesh.WETriangleMesh
public class WETriangleMesh

A class to dynamically build, manipulate & export triangle meshes. Meshes are build face by face. The class automatically re-uses existing vertices and can create smooth vertex normals. Vertices and faces are directly accessible for speed & convenience.
| Field Summary | |
|---|---|
java.util.LinkedHashMap<Line3D,WingedEdge> |
edges
WEVertex buffer & lookup index when adding new faces |
| Fields inherited from class toxi.geom.mesh.TriangleMesh |
|---|
DEFAULT_NUM_FACES, DEFAULT_NUM_VERTICES, DEFAULT_STRIDE, faces, name, vertices |
| Constructor Summary | |
|---|---|
WETriangleMesh()
|
|
WETriangleMesh(java.lang.String name)
Creates a new mesh instance with initial default buffer sizes. |
|
WETriangleMesh(java.lang.String name,
int numV,
int numF)
Creates a new mesh instance with the given initial buffer sizes. |
|
| Method Summary | |
|---|---|
WETriangleMesh |
addFace(Vec3D a,
Vec3D b,
Vec3D c)
Adds the given 3 points as triangle face to the mesh. |
WETriangleMesh |
addFace(Vec3D a,
Vec3D b,
Vec3D c,
Vec2D uvA,
Vec2D uvB,
Vec2D uvC)
Adds the given 3 points as triangle face to the mesh and assigns the given texture coordinates to each vertex. |
WETriangleMesh |
addFace(Vec3D a,
Vec3D b,
Vec3D c,
Vec3D n)
|
WETriangleMesh |
addFace(Vec3D a,
Vec3D b,
Vec3D c,
Vec3D n,
Vec2D uvA,
Vec2D uvB,
Vec2D uvC)
|
WETriangleMesh |
addMesh(Mesh3D m)
Adds all faces from the given mesh to this one. |
AABB |
center(ReadonlyVec3D origin)
Centers the mesh around the given pivot point (the centroid of its AABB). |
WETriangleMesh |
clear()
Clears all counters, and vertex & face buffers. |
WETriangleMesh |
copy()
Creates a deep clone of the mesh. |
WETriangleMesh |
flipVertexOrder()
Flips the vertex ordering between clockwise and anti-clockwise. |
WETriangleMesh |
flipYAxis()
Flips all vertices along the Y axis and reverses the vertex ordering of all faces to compensate and keep the direction of normals intact. |
WEVertex |
getClosestVertexToPoint(ReadonlyVec3D p)
|
WETriangleMesh |
getRotatedAroundAxis(Vec3D axis,
float theta)
|
WETriangleMesh |
getRotatedX(float theta)
|
WETriangleMesh |
getRotatedY(float theta)
|
WETriangleMesh |
getRotatedZ(float theta)
|
WETriangleMesh |
getScaled(float scale)
|
WETriangleMesh |
getScaled(Vec3D scale)
|
WETriangleMesh |
getTranslated(Vec3D trans)
|
WEVertex |
getVertexAtPoint(Vec3D v)
|
WEVertex |
getVertexForID(int id)
|
WETriangleMesh |
init(java.lang.String name,
int numV,
int numF)
|
WETriangleMesh |
pointTowards(ReadonlyVec3D dir)
Rotates the mesh in such a way so that its "forward" axis is aligned with the given direction. |
WETriangleMesh |
pointTowards(ReadonlyVec3D dir,
ReadonlyVec3D forward)
Rotates the mesh in such a way so that its "forward" axis is aligned with the given direction. |
void |
rebuildIndex()
|
void |
removeFace(Face f)
|
void |
removeUnusedVertices()
|
void |
removeVertices(java.util.Collection<Vertex> selection)
|
WETriangleMesh |
rotateAroundAxis(Vec3D axis,
float theta)
|
WETriangleMesh |
rotateX(float theta)
|
WETriangleMesh |
rotateY(float theta)
|
WETriangleMesh |
rotateZ(float theta)
|
WETriangleMesh |
scale(float scale)
|
WETriangleMesh |
scale(Vec3D scale)
|
void |
splitEdge(ReadonlyVec3D a,
ReadonlyVec3D b,
SubdivisionStrategy subDiv)
|
void |
splitEdge(WingedEdge e,
SubdivisionStrategy subDiv)
|
void |
subdivide()
|
void |
subdivide(float minLength)
|
void |
subdivide(SubdivisionStrategy subDiv)
|
void |
subdivide(SubdivisionStrategy subDiv,
float minLength)
|
void |
subdivideFaceEdges(java.util.List<WEFace> faces,
SubdivisionStrategy subDiv,
float minLength)
|
java.lang.String |
toString()
|
WETriangleMesh |
transform(Matrix4x4 mat)
Applies the given matrix transform to all mesh vertices and updates all face normals. |
WETriangleMesh |
transform(Matrix4x4 mat,
boolean updateNormals)
Applies the given matrix transform to all mesh vertices. |
WETriangleMesh |
translate(Vec3D trans)
|
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public java.util.LinkedHashMap<Line3D,WingedEdge> edges
| Constructor Detail |
|---|
public WETriangleMesh()
public WETriangleMesh(java.lang.String name)
name - mesh name
public WETriangleMesh(java.lang.String name,
int numV,
int numF)
name - mesh namenumV - initial vertex buffer sizenumF - initial face list size| Method Detail |
|---|
public WETriangleMesh addFace(Vec3D a,
Vec3D b,
Vec3D c)
Mesh3D
addFace in interface Mesh3DaddFace in class TriangleMesh
public WETriangleMesh addFace(Vec3D a,
Vec3D b,
Vec3D c,
Vec2D uvA,
Vec2D uvB,
Vec2D uvC)
Mesh3D
addFace in interface Mesh3DaddFace in class TriangleMesh
public WETriangleMesh addFace(Vec3D a,
Vec3D b,
Vec3D c,
Vec3D n)
addFace in interface Mesh3DaddFace in class TriangleMesh
public WETriangleMesh addFace(Vec3D a,
Vec3D b,
Vec3D c,
Vec3D n,
Vec2D uvA,
Vec2D uvB,
Vec2D uvC)
addFace in interface Mesh3DaddFace in class TriangleMeshpublic WETriangleMesh addMesh(Mesh3D m)
addMesh in interface Mesh3DaddMesh in class TriangleMeshm - source mesh instancepublic AABB center(ReadonlyVec3D origin)
Mesh3D
center in interface Mesh3Dcenter in class TriangleMeshorigin - new centroid or null (defaults to {0,0,0})public WETriangleMesh clear()
clear in interface Mesh3Dclear in class TriangleMeshpublic WETriangleMesh copy()
copy in class TriangleMeshpublic WETriangleMesh flipVertexOrder()
flipVertexOrder in interface Mesh3DflipVertexOrder in class TriangleMeshpublic WETriangleMesh flipYAxis()
Mesh3D
flipYAxis in interface Mesh3DflipYAxis in class TriangleMeshpublic WEVertex getClosestVertexToPoint(ReadonlyVec3D p)
getClosestVertexToPoint in interface Mesh3DgetClosestVertexToPoint in class TriangleMesh
public WETriangleMesh getRotatedAroundAxis(Vec3D axis,
float theta)
getRotatedAroundAxis in class TriangleMeshpublic WETriangleMesh getRotatedX(float theta)
getRotatedX in class TriangleMeshpublic WETriangleMesh getRotatedY(float theta)
getRotatedY in class TriangleMeshpublic WETriangleMesh getRotatedZ(float theta)
getRotatedZ in class TriangleMeshpublic WETriangleMesh getScaled(float scale)
getScaled in class TriangleMeshpublic WETriangleMesh getScaled(Vec3D scale)
getScaled in class TriangleMeshpublic WETriangleMesh getTranslated(Vec3D trans)
getTranslated in class TriangleMeshpublic WEVertex getVertexAtPoint(Vec3D v)
getVertexAtPoint in class TriangleMeshpublic WEVertex getVertexForID(int id)
getVertexForID in class TriangleMesh
public WETriangleMesh init(java.lang.String name,
int numV,
int numF)
init in interface Mesh3Dinit in class TriangleMeshpublic WETriangleMesh pointTowards(ReadonlyVec3D dir)
pointTowards in class TriangleMeshdir - new target direction to point in
public WETriangleMesh pointTowards(ReadonlyVec3D dir,
ReadonlyVec3D forward)
pointTowards in class TriangleMeshdir - new target direction to point inforward - current forward axis
public void rebuildIndex()
public void removeFace(Face f)
removeFace in class TriangleMeshpublic void removeUnusedVertices()
public void removeVertices(java.util.Collection<Vertex> selection)
public WETriangleMesh rotateAroundAxis(Vec3D axis,
float theta)
rotateAroundAxis in class TriangleMeshpublic WETriangleMesh rotateX(float theta)
rotateX in class TriangleMeshpublic WETriangleMesh rotateY(float theta)
rotateY in class TriangleMeshpublic WETriangleMesh rotateZ(float theta)
rotateZ in class TriangleMeshpublic WETriangleMesh scale(float scale)
scale in class TriangleMeshpublic WETriangleMesh scale(Vec3D scale)
scale in class TriangleMesh
public void splitEdge(ReadonlyVec3D a,
ReadonlyVec3D b,
SubdivisionStrategy subDiv)
public void splitEdge(WingedEdge e,
SubdivisionStrategy subDiv)
public void subdivide()
public void subdivide(float minLength)
public void subdivide(SubdivisionStrategy subDiv)
public void subdivide(SubdivisionStrategy subDiv,
float minLength)
public void subdivideFaceEdges(java.util.List<WEFace> faces,
SubdivisionStrategy subDiv,
float minLength)
public java.lang.String toString()
toString in class TriangleMeshpublic WETriangleMesh transform(Matrix4x4 mat)
transform in class TriangleMeshmat -
public WETriangleMesh transform(Matrix4x4 mat,
boolean updateNormals)
transform in class TriangleMeshmat - updateNormals -
public WETriangleMesh translate(Vec3D trans)
translate in class TriangleMesh
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||