Base interface for classes that represent geometry (vertices and indices) for 3D models.
interface
|
IModelGeometry
|
extends
|
IMemoryConsumption
|
||
IResourceHandle
|
|||||
base of
|
IModelGeometryDynamic
|
||||
IModelGeometrySimple
|
|||||
ModelGeometry
|
IModelGeometry objects act as resource handles and produce ModelGeometryBuffer resource objects.
The vertex index count.
property
|
IndexCount
{
get
}
|
||
type
|
int32
|
||
value
|
|
The
vertex
index
count.
Will
be
0
iff
ReadIndices
returns
null .
|
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.
|
Returns the estimated memory consumption of this object.
property
|
MemoryConsumption
{
get
}
|
||
type
|
int64
|
||
value
|
|
The estimated memory consumption, in bytes. | |
inherited
|
IMemoryConsumption.MemoryConsumption
|
The vertex count.
property
|
VertexCount
{
get
}
|
||
type
|
int32
|
||
value
|
|
The vertex count. |
The vertex format flags.
property
|
VertexFormat
{
get
}
|
||
type
|
ModelVertexFormat
|
||
value
|
The format flags. |
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
|
|
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:
Makes this model geometry dynamic.
method
|
Dynamic
()
|
||
type
|
IModelGeometryDynamic
|
||
returns
|
|
The dynamic model geometry. |
Remarks:
If necessary, a new model geometry is created by copying index and vertex data from this model geometry.
Exceptions:
Compares this object with the given one.
[Pure]
|
||||
method
|
Equals
(IResourceHandle 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
|
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
|
|
The resulting model geometry. |
See also:
IModelGeometryOptimizes this model geometry by reordering those vertices that are actually referenced by the index data.
method
|
Optimized
()
|
||
type
|
IModelGeometry
|
||
returns
|
|
The
optimized
geometry,
without
instancing.
Will
be
this
if
ReadIndices
return
null .
|
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:
Reads vertex data.
method
|
ReadVertices
()
|
||
type
|
VertexArrays
|
||
returns
|
|
The vertex data array. |
Exceptions:
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
|
|
The reduced geometry. |
Remarks:
Using reduced precision will consume less memory resp. storage space, but might introduce jitter artifacts during rendering.
Transforms the model geometry using the given matrix.
method
|
Transform
(Mat4D matrix)
|
||
type
|
IModelGeometry
|
||
params
|
matrix
|
The transformation matrix. | |
returns
|
|
The transformed geometry. |