TINMAN 3D / REALTIME TERRAIN
Software Development Kit - User Manual

interface IModelGeometry in Tinman.Engine.Models

Base interface for classes that represent geometry (vertices and indices) for 3D models.

interface IModelGeometry extends IMemoryConsumption
  IResourceHandle
  base of IModelGeometryDynamic
  IModelGeometrySimple
  ModelGeometry

Remarks

IModelGeometry objects act as resource handles and produce ModelGeometryBuffer resource objects.

Attributes

IndexCount

The vertex index count.

property IndexCount { get }
type int32
value [>=0] The vertex index count. Will be 0 iff ReadIndices returns null.

InstanceBuffer

The resource handle that returns an IGeometryBuffer object that holds instance data to use for this model geometry object.

property InstanceBuffer { get }
type IResourceHandle
value The instance buffer to use for geometry instancing or null if geometry instancing is disabled for this model geometry object.

MemoryConsumption

Returns the estimated memory consumption of this object.

property MemoryConsumption { get }
type int64
value [>=0] The estimated memory consumption, in bytes.
inherited IMemoryConsumption.MemoryConsumption

VertexCount

The vertex count.

property VertexCount { get }
type int32
value [>0] The vertex count.

VertexFormat

The vertex format flags.

property VertexFormat { get }
type ModelVertexFormat
value The format flags.

Methods

CreateResource

Creates a new resource object, using the given graphics context.

[OwnerReturn]
method CreateResource (Graphics graphics)
type IResource
params graphics [not-null] The graphics context to use.
returns [not-null] The resource object.
inherited IResourceHandle.CreateResource

Remarks:

Resource objects may implement the IMemoryConsumption interface. In this case, the reported memory consumption will be interpreted as an estimate on how much GPU memory is consumed by the resource. This estimate can then be used for resource caching (e.g. CacheMemory).

Exceptions:

Dynamic

Makes this model geometry dynamic.

method Dynamic ()
type IModelGeometryDynamic
returns [not-null] The dynamic model geometry.

Remarks:

If necessary, a new model geometry is created by copying index and vertex data from this model geometry.

Exceptions:

Equals

Compares this object with the given one.

[Pure]
method Equals (T other)
type bool
params other The object to compare to.
returns true if this object is equal to other, false if not.
inherited IEquatable.Equals

Instanced

Configures geometry instancing for this model geometry.

method Instanced (IResourceHandle instanceBuffer)
type IModelGeometry
params instanceBuffer The resource handle that returns an IVertexBuffer object that holds instance data to use for this model geometry object or null to disable geometry instancing. The instanceBuffer value will be returned by the IModelGeometry property of the returned model geometry object.
returns [not-null] The resulting model geometry.

See also:

IModelGeometry

Optimized

Optimizes this model geometry by reordering those vertices that are actually referenced by the index data.

method Optimized ()
type IModelGeometry
returns [not-null] The optimized geometry, without instancing. Will be this if ReadIndices return null.

ReadIndices

Read vertex index data.

method ReadIndices ()
type int32[]
returns The vertex index data or null iff IndexCount returns 0 (i.e. the geometry is not indexed).

Exceptions:

ReadVertices

Reads vertex data.

method ReadVertices ()
type VertexArrays
returns [not-null] The vertex data array.

Exceptions:

Reduced

Reduce the floating-point precision for this model geometry?

method Reduced (bool reduced)
type IModelGeometry
params reduced Use 32-bit floating-point precision (true) or 64-bit floating-point precision ( false)?
returns [not-null] The reduced geometry.

Remarks:

Using reduced precision will consume less memory resp. storage space, but might introduce jitter artifacts during rendering.

Transform

Transforms the model geometry using the given matrix.

method Transform (Mat4D matrix)
type IModelGeometry
params matrix The transformation matrix.
returns [not-null] The transformed geometry.