public class ModelBuilder extends Object
Model
s from code. To start building use the begin()
method, when finished building use
the end()
method. The end method returns the model just build. Building cannot be nested, only one model (per
ModelBuilder) can be build at the time. The same ModelBuilder can be used to build multiple models sequential. Use the
node()
method to start a new node. Use one of the #part(...) methods to add a part within a node. The
part(String, int, VertexAttributes, Material)
method will return a MeshPartBuilder
which can be used to build
the node part.Constructor and Description |
---|
ModelBuilder() |
Modifier and Type | Method and Description |
---|---|
void |
begin()
Begin building a new model
|
Model |
createArrow(float x1,
float y1,
float z1,
float x2,
float y2,
float z2,
float capLength,
float stemThickness,
int divisions,
int primitiveType,
Material material,
long attributes)
Convenience method to create a model with an arrow.
|
Model |
createArrow(Vector3 from,
Vector3 to,
Material material,
long attributes)
Convenience method to create a model with an arrow.
|
Model |
createBox(float width,
float height,
float depth,
int primitiveType,
Material material,
long attributes)
Convenience method to create a model with a single node containing a box shape.
|
Model |
createBox(float width,
float height,
float depth,
Material material,
long attributes)
Convenience method to create a model with a single node containing a box shape.
|
Model |
createCapsule(float radius,
float height,
int divisions,
int primitiveType,
Material material,
long attributes)
Convenience method to create a model with a single node containing a capsule shape.
|
Model |
createCapsule(float radius,
float height,
int divisions,
Material material,
long attributes)
Convenience method to create a model with a single node containing a capsule shape.
|
Model |
createCone(float width,
float height,
float depth,
int divisions,
int primitiveType,
Material material,
long attributes)
Convenience method to create a model with a single node containing a cone shape.
|
Model |
createCone(float width,
float height,
float depth,
int divisions,
int primitiveType,
Material material,
long attributes,
float angleFrom,
float angleTo)
Convenience method to create a model with a single node containing a cone shape.
|
Model |
createCone(float width,
float height,
float depth,
int divisions,
Material material,
long attributes)
Convenience method to create a model with a single node containing a cone shape.
|
Model |
createCone(float width,
float height,
float depth,
int divisions,
Material material,
long attributes,
float angleFrom,
float angleTo)
Convenience method to create a model with a single node containing a cone shape.
|
Model |
createCylinder(float width,
float height,
float depth,
int divisions,
int primitiveType,
Material material,
long attributes)
Convenience method to create a model with a single node containing a cylinder shape.
|
Model |
createCylinder(float width,
float height,
float depth,
int divisions,
int primitiveType,
Material material,
long attributes,
float angleFrom,
float angleTo)
Convenience method to create a model with a single node containing a cylinder shape.
|
Model |
createCylinder(float width,
float height,
float depth,
int divisions,
Material material,
long attributes)
Convenience method to create a model with a single node containing a cylinder shape.
|
Model |
createCylinder(float width,
float height,
float depth,
int divisions,
Material material,
long attributes,
float angleFrom,
float angleTo)
Convenience method to create a model with a single node containing a cylinder shape.
|
Model |
createLineGrid(int xDivisions,
int zDivisions,
float xSize,
float zSize,
Material material,
long attributes)
Convenience method to create a model which represents a grid of lines on the XZ plane.
|
Model |
createRect(float x00,
float y00,
float z00,
float x10,
float y10,
float z10,
float x11,
float y11,
float z11,
float x01,
float y01,
float z01,
float normalX,
float normalY,
float normalZ,
int primitiveType,
Material material,
long attributes)
Convenience method to create a model with a single node containing a rectangle shape.
|
Model |
createRect(float x00,
float y00,
float z00,
float x10,
float y10,
float z10,
float x11,
float y11,
float z11,
float x01,
float y01,
float z01,
float normalX,
float normalY,
float normalZ,
Material material,
long attributes)
Convenience method to create a model with a single node containing a rectangle shape.
|
Model |
createSphere(float width,
float height,
float depth,
int divisionsU,
int divisionsV,
int primitiveType,
Material material,
long attributes)
Convenience method to create a model with a single node containing a sphere shape.
|
Model |
createSphere(float width,
float height,
float depth,
int divisionsU,
int divisionsV,
int primitiveType,
Material material,
long attributes,
float angleUFrom,
float angleUTo,
float angleVFrom,
float angleVTo)
Convenience method to create a model with a single node containing a sphere shape.
|
Model |
createSphere(float width,
float height,
float depth,
int divisionsU,
int divisionsV,
Material material,
long attributes)
Convenience method to create a model with a single node containing a sphere shape.
|
Model |
createSphere(float width,
float height,
float depth,
int divisionsU,
int divisionsV,
Material material,
long attributes,
float angleUFrom,
float angleUTo,
float angleVFrom,
float angleVTo)
Convenience method to create a model with a single node containing a sphere shape.
|
Model |
createXYZCoordinates(float axisLength,
float capLength,
float stemThickness,
int divisions,
int primitiveType,
Material material,
long attributes)
Convenience method to create a model with three orthonormal vectors shapes.
|
Model |
createXYZCoordinates(float axisLength,
Material material,
long attributes) |
Model |
end()
End building the model.
|
void |
manage(Disposable disposable)
Add the
Disposable object to the model, causing it to be disposed when the model is disposed. |
Node |
node()
Add a node to the model.
|
Node |
node(String id,
Model model)
Adds the nodes of the specified model to a new node of the model being build.
|
void |
part(MeshPart meshpart,
Material material)
Adds the specified MeshPart to the current Node.
|
MeshPartBuilder |
part(String id,
int primitiveType,
long attributes,
Material material)
Creates a new MeshPart within the current Node and returns a
MeshPartBuilder which can be used to build the shape of
the part. |
MeshPartBuilder |
part(String id,
int primitiveType,
VertexAttributes attributes,
Material material)
Creates a new MeshPart within the current Node and returns a
MeshPartBuilder which can be used to build the shape of
the part. |
MeshPart |
part(String id,
Mesh mesh,
int primitiveType,
int offset,
int size,
Material material)
Adds the specified mesh part to the current node.
|
MeshPart |
part(String id,
Mesh mesh,
int primitiveType,
Material material)
Adds the specified mesh part to the current node.
|
static void |
rebuildReferences(Model model)
|
public void begin()
public Model end()
Model.dispose()
method when no longer used.public Node node()
public Node node(String id, Model model)
Model.dispose()
method on that model.public void manage(Disposable disposable)
Disposable
object to the model, causing it to be disposed when the model is disposed.public void part(MeshPart meshpart, Material material)
manage(Disposable)
to add those to the
model.public MeshPart part(String id, Mesh mesh, int primitiveType, int offset, int size, Material material)
manage(Disposable)
to add those to the
model.public MeshPart part(String id, Mesh mesh, int primitiveType, Material material)
manage(Disposable)
to add those to the
model.public MeshPartBuilder part(String id, int primitiveType, VertexAttributes attributes, Material material)
MeshPartBuilder
which can be used to build the shape of
the part. If possible a previously used MeshPartBuilder
will be reused, to reduce the number of mesh binds.
Therefore you can only build one part at a time. The resources the Material might contain are not managed, use
manage(Disposable)
to add those to the model.MeshPartBuilder
you can use to build the MeshPart.public MeshPartBuilder part(String id, int primitiveType, long attributes, Material material)
MeshPartBuilder
which can be used to build the shape of
the part. If possible a previously used MeshPartBuilder
will be reused, to reduce the number of mesh binds.
Therefore you can only build one part at a time. The resources the Material might contain are not managed, use
manage(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.MeshPartBuilder
you can use to build the MeshPart.public Model createBox(float width, float height, float depth, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createBox(float width, float height, float depth, int primitiveType, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createRect(float x00, float y00, float z00, float x10, float y10, float z10, float x11, float y11, float z11, float x01, float y01, float z01, float normalX, float normalY, float normalZ, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createRect(float x00, float y00, float z00, float x10, float y10, float z10, float x11, float y11, float z11, float x01, float y01, float z01, float normalX, float normalY, float normalZ, int primitiveType, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createCylinder(float width, float height, float depth, int divisions, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createCylinder(float width, float height, float depth, int divisions, int primitiveType, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createCylinder(float width, float height, float depth, int divisions, Material material, long attributes, float angleFrom, float angleTo)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createCylinder(float width, float height, float depth, int divisions, int primitiveType, Material material, long attributes, float angleFrom, float angleTo)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createCone(float width, float height, float depth, int divisions, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createCone(float width, float height, float depth, int divisions, int primitiveType, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createCone(float width, float height, float depth, int divisions, Material material, long attributes, float angleFrom, float angleTo)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createCone(float width, float height, float depth, int divisions, int primitiveType, Material material, long attributes, float angleFrom, float angleTo)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createSphere(float width, float height, float depth, int divisionsU, int divisionsV, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createSphere(float width, float height, float depth, int divisionsU, int divisionsV, int primitiveType, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createSphere(float width, float height, float depth, int divisionsU, int divisionsV, Material material, long attributes, float angleUFrom, float angleUTo, float angleVFrom, float angleVTo)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createSphere(float width, float height, float depth, int divisionsU, int divisionsV, int primitiveType, Material material, long attributes, float angleUFrom, float angleUTo, float angleVFrom, float angleVTo)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createCapsule(float radius, float height, int divisions, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public Model createCapsule(float radius, float height, int divisions, int primitiveType, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.attributes
- bitwise mask of the VertexAttributes.Usage
, only Position, Color, Normal
and TextureCoordinates is supported.public static void rebuildReferences(Model model)
public Model createXYZCoordinates(float axisLength, float capLength, float stemThickness, int divisions, int primitiveType, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.axisLength
- Length of each axis.capLength
- is the height of the cap in percentage, must be in (0,1)stemThickness
- is the percentage of stem diameter compared to cap diameter, must be in (0,1]divisions
- the amount of vertices used to generate the cap and stem ellipsoidal basespublic Model createXYZCoordinates(float axisLength, Material material, long attributes)
public Model createArrow(float x1, float y1, float z1, float x2, float y2, float z2, float capLength, float stemThickness, int divisions, int primitiveType, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.material
- capLength
- is the height of the cap in percentage, must be in (0,1)stemThickness
- is the percentage of stem diameter compared to cap diameter, must be in (0,1]divisions
- the amount of vertices used to generate the cap and stem ellipsoidal basespublic Model createArrow(Vector3 from, Vector3 to, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.public Model createLineGrid(int xDivisions, int zDivisions, float xSize, float zSize, Material material, long attributes)
Model.manageDisposable(Disposable)
to add those to the model.xDivisions
- row count along x axis.zDivisions
- row count along z axis.xSize
- Length of a single row on x.zSize
- Length of a single row on z.Copyright © 2015. All rights reserved.