|
||||||||||
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 namepublic WETriangleMesh(java.lang.String name, int numV, int numF)
name
- mesh namenumV
- initial vertex buffer sizenumF
- initial face list sizeMethod Detail |
---|
public WETriangleMesh addFace(Vec3D a, Vec3D b, Vec3D c)
Mesh3D
addFace
in interface Mesh3D
addFace
in class TriangleMesh
public WETriangleMesh addFace(Vec3D a, Vec3D b, Vec3D c, Vec2D uvA, Vec2D uvB, Vec2D uvC)
Mesh3D
addFace
in interface Mesh3D
addFace
in class TriangleMesh
public WETriangleMesh addFace(Vec3D a, Vec3D b, Vec3D c, Vec3D n)
addFace
in interface Mesh3D
addFace
in class TriangleMesh
public WETriangleMesh addFace(Vec3D a, Vec3D b, Vec3D c, Vec3D n, Vec2D uvA, Vec2D uvB, Vec2D uvC)
addFace
in interface Mesh3D
addFace
in class TriangleMesh
public WETriangleMesh addMesh(Mesh3D m)
addMesh
in interface Mesh3D
addMesh
in class TriangleMesh
m
- source mesh instancepublic AABB center(ReadonlyVec3D origin)
Mesh3D
center
in interface Mesh3D
center
in class TriangleMesh
origin
- new centroid or null (defaults to {0,0,0})public WETriangleMesh clear()
clear
in interface Mesh3D
clear
in class TriangleMesh
public WETriangleMesh copy()
copy
in class TriangleMesh
public WETriangleMesh flipVertexOrder()
flipVertexOrder
in interface Mesh3D
flipVertexOrder
in class TriangleMesh
public WETriangleMesh flipYAxis()
Mesh3D
flipYAxis
in interface Mesh3D
flipYAxis
in class TriangleMesh
public WEVertex getClosestVertexToPoint(ReadonlyVec3D p)
getClosestVertexToPoint
in interface Mesh3D
getClosestVertexToPoint
in class TriangleMesh
public WETriangleMesh getRotatedAroundAxis(Vec3D axis, float theta)
getRotatedAroundAxis
in class TriangleMesh
public WETriangleMesh getRotatedX(float theta)
getRotatedX
in class TriangleMesh
public WETriangleMesh getRotatedY(float theta)
getRotatedY
in class TriangleMesh
public WETriangleMesh getRotatedZ(float theta)
getRotatedZ
in class TriangleMesh
public WETriangleMesh getScaled(float scale)
getScaled
in class TriangleMesh
public WETriangleMesh getScaled(Vec3D scale)
getScaled
in class TriangleMesh
public WETriangleMesh getTranslated(Vec3D trans)
getTranslated
in class TriangleMesh
public WEVertex getVertexAtPoint(Vec3D v)
getVertexAtPoint
in class TriangleMesh
public WEVertex getVertexForID(int id)
getVertexForID
in class TriangleMesh
public WETriangleMesh init(java.lang.String name, int numV, int numF)
init
in interface Mesh3D
init
in class TriangleMesh
public WETriangleMesh pointTowards(ReadonlyVec3D dir)
pointTowards
in class TriangleMesh
dir
- new target direction to point in
public WETriangleMesh pointTowards(ReadonlyVec3D dir, ReadonlyVec3D forward)
pointTowards
in class TriangleMesh
dir
- new target direction to point inforward
- current forward axis
public void rebuildIndex()
public void removeFace(Face f)
removeFace
in class TriangleMesh
public void removeUnusedVertices()
public void removeVertices(java.util.Collection<Vertex> selection)
public WETriangleMesh rotateAroundAxis(Vec3D axis, float theta)
rotateAroundAxis
in class TriangleMesh
public WETriangleMesh rotateX(float theta)
rotateX
in class TriangleMesh
public WETriangleMesh rotateY(float theta)
rotateY
in class TriangleMesh
public WETriangleMesh rotateZ(float theta)
rotateZ
in class TriangleMesh
public WETriangleMesh scale(float scale)
scale
in class TriangleMesh
public 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 TriangleMesh
public WETriangleMesh transform(Matrix4x4 mat)
transform
in class TriangleMesh
mat
-
public WETriangleMesh transform(Matrix4x4 mat, boolean updateNormals)
transform
in class TriangleMesh
mat
- 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 |