The supported 3D model file formats.
[ShutdownSurvive]
|
|||||
abstract class
|
ModelFormat
|
extends
|
FileFormat
|
||
base of
|
AssimpModelFormat
|
Has this file format been registered?
protected
property
|
IsRegistered
{
get
}
|
||
type
|
bool
|
||
value
|
true
if
this
file
format
has
been
registered,
false
if
not. |
||
inherited
|
FileFormat.IsRegistered
|
See also:
FileFormat.RegisterCreates a new instance of ModelFormat.
protected
constructor
|
ModelFormat
(string name,
string description,
string mime,
bool isAny = false)
|
||
params
|
name
|
[not-empty]
|
Value for Name |
description
|
[not-empty]
|
Value for Description | |
mime
|
Value for Mime | ||
isAny
|
Is this an automatic file format? |
protected
static
method
|
CannotWrite
(string source,
Path file)
|
||
type
|
IOException
|
||
params
|
source
|
||
file
|
Checks if the given data is equal to the identifying prefix of this file format.
[EmptyBody]
|
||||
protected
virtual
method
|
DoCanRead
(ByteBuffer data)
|
|||
type
|
bool
|
|||
params
|
data
|
The data to check for the presence of the identifying prefix. When this method is called, this buffer position and limit will have been set so that the remaining bytes cover the byte sequence to check, having a length of exactly Prefix bytes. The buffer position may be modified by this method. | ||
returns
|
true
if
data
is
equal
to
the
identifying
prefix,
false
if
data
is
not
equal
to
the
identifying
prefix.
|
|||
inherited
|
FileFormat.DoCanRead
|
Remarks:
When overriding this method, Prefix must be overridden as well.
Reads the given 3D model.
[OwnerReturn]
|
||||
protected
abstract
method
|
DoReadModel
(IFileData data)
|
|||
type
|
IModelReader
|
|||
params
|
data
|
The
model
data
provider:
will
never
be
null
and
Validate
did
not
report
any
errors.
|
||
returns
|
|
The IModelReader for reading the 3D model data. The Validate has not yet been called on it. |
Exceptions:
Writes a 3D model to the given file.
[OwnerReturn]
|
||||
protected
virtual
method
|
DoWriteModel
(Path file,
IModel model)
|
|||
type
|
IOperation
|
|||
params
|
file
|
The output 3D model file. | ||
model
|
The 3D model to write. | |||
returns
|
|
The operation that writes the 3D model file. |
Exceptions:
false
).
Finds the IFileFormat that has the given name.
protected
method
|
NameFind
(string name)
|
||
type
|
IFileFormat
|
||
params
|
name
|
[not-empty]
|
The file format name. |
returns
|
The
found
file
format
or
null . |
||
inherited
|
FileFormat.NameFind
|
Appends this file format to the chain of the given file format.
[ThreadSafe]
|
||||
protected
method
|
Register
(FileFormat any)
|
|||
params
|
any
|
[not-null]
|
The file format chain to append to. | |
inherited
|
FileFormat.Register
|
Long description of this file format.
public
virtual
property
|
Description
{
get
}
|
||
type
|
string
|
||
value
|
|
The description string. | |
inherited
|
FileFormat.Description
|
The machine-readable type of this file format.
public
property
|
Mime
{
get
}
|
||
type
|
string
|
||
value
|
The
machine-readable
media
type
or
null
if
none. |
||
inherited
|
FileFormat.Mime
|
Remarks:
For
details
on
Media
Types
(aka.
MIME-type),
please
refer
to
this
webpage:
https://www.iana.org/assignments/media-types/media-types.xhtml
The file format name.
public
property
|
Name
{
get
}
|
||
type
|
string
|
||
value
|
|
The file format name. | |
inherited
|
FileFormat.Name
|
Returns the next file format.
[ThreadSafe]
|
||||
public
property
|
Next
{
get
}
|
|||
type
|
IFileFormat
|
|||
value
|
The
next
file
format
or
null . |
|||
inherited
|
FileFormat.Next
|
Remarks:
The first file format can be obtained from implementing classes. This property can be used to cycle all available file formats of the same type.
Lengths of the binary file data prefix that identifies this file format.
public
virtual
property
|
Prefix
{
get
}
|
||
type
|
int32
|
||
value
|
|
The
file
data
prefix
length,
in
bytes.
If
0 ,
there
is
no
identifying
prefix.
|
|
inherited
|
FileFormat.Prefix
|
The human-readable type of this file format (e.g. images, shapes, 3D models).
public
property
|
Type
{
get
}
|
||
type
|
string
|
||
value
|
|
The human-readable type name. | |
inherited
|
FileFormat.Type
|
The file format is unknown and will be determined automatically.
public
static
readonly
field
|
Any
|
||
type
|
ModelFormat
|
Remarks:
Use Next to walk through all registered formats.
The ReadModel method of this file format may return a ModelReader object, if additional processing is supported.
The CMH model file format ('Compiled Model Hierarchy', proprietary)
public
static
readonly
field
|
CMH
|
||
type
|
ModelFormat
|
Remarks:
Write
supported:
yes
IANA
media
type:
none
File
extensions:
.cmh
Prefix
sequence:
no
This file format is self-contained, i.e. all resources are embedded in the model file. Lazy loading is applied for all model geometry objects and all model texture resources.
The ReadModel method of this file format never returns a ModelReader object.
This model format supports ComplexGeometry.
The GL Transmission Format Version 2.0 - Binary
public
static
readonly
field
|
GLB
|
||
type
|
ModelFormat
|
Remarks:
Write
supported:
no
IANA
media
type:
model/gltf-binary
File
extensions:
.glb
Prefix
sequence:
no
The
binary
.glb
file
format
is
self-contained,
i.e.
all
resources
are
embedded
in
the
model
file.
Lazy
loading
is
applied
for
all
model
geometry
objects
and
all
model
texture
resources.
The ReadModel method of this file format never returns a ModelReader object.
The GL Transmission Format Version 2.0 - JSON
public
static
readonly
field
|
GLTF
|
||
type
|
ModelFormat
|
Remarks:
Write
supported:
no
IANA
media
type:
model/gltf+json
File
extensions:
.gltf
Prefix
sequence:
no
The
JSON
.gltf
file
format
is
not
necessarily
self-contained,
i.e.
some
resources
may
be
present
as
external
files,
which
are
referenced
by
the
model
file.
Lazy
loading
is
applied
for
all
model
geometry
objects
and
all
model
texture
resources.
The ReadModel method of this file format never returns a ModelReader object.
The LAS model file format.
public
static
readonly
field
|
LAS
|
||
type
|
ModelFormat
|
Remarks:
Write
supported:
no
IANA
media
type:
application/vnd.las
File
extensions:
.las
Prefix
sequence:
no
The ReadModel method of this file format always returns a ModelReader object.
The OBJ model file format.
public
static
readonly
field
|
OBJ
|
||
type
|
ModelFormat
|
Remarks:
Write
supported:
yes
IANA
media
type:
model/obj
File
extensions:
.obj
Prefix
sequence:
no
The ReadModel method of this file format always returns a ModelReader object.
Can this file format object be used to read the given data?
public
method
|
CanRead
(ByteBuffer data)
|
||
type
|
bool
|
||
params
|
data
|
[not-null]
|
The
data
to
check.
Must
have
at
least
Prefix
remaining
bytes,
otherwise
this
method
will
always
return
false .
The
buffer
will
not
be
modified
by
this
method.
|
returns
|
true
if
the
given
data
is
prefixed
with
the
identifying
byte
sequence
of
this
file
format,
false
if
the
prefix
is
not
present.
|
||
inherited
|
FileFormat.CanRead
|
See also:
IFileFormat.PrefixCan this file format object be used to read the given path?
public
virtual
method
|
CanRead
(string suffix,
bool directory = false)
|
||
type
|
bool
|
||
params
|
suffix
|
[not-null]
|
The
lower-case
pathname
suffix
(without
'.' ).
Will
be
empty
if
the
path
does
not
have
a
pathname
suffix.
|
directory
|
Does
the
path
refer
to
a
directory
(true )
or
to
a
file
(false )?
Defaults
to
false .
|
||
returns
|
true
if
this
file
format
can
be
used,
false
if
not. |
||
inherited
|
FileFormat.CanRead
|
Returns the first file format in the chain (see Next) that can read the given data.
public
method
|
CanReadFind
(ByteBuffer data)
|
||
type
|
IFileFormat
|
||
params
|
data
|
[not-null]
|
The
data
to
check.
Must
have
at
least
Prefix
remaining
bytes,
otherwise
this
method
will
always
return
false .
The
buffer
will
not
be
modified
by
this
method.
|
returns
|
The
found
file
format
or
null . |
||
inherited
|
FileFormat.CanReadFind
|
Returns the first file format in the chain (see Next) that can read the given path.
public
virtual
method
|
CanReadFind
(string suffix,
bool directory = false)
|
||
type
|
IFileFormat
|
||
params
|
suffix
|
[not-null]
|
The
lower-case
pathname
suffix
(without
'.' ).
Will
be
empty
if
the
path
does
not
have
a
pathname
suffix.
|
directory
|
Does
the
path
refer
to
a
directory
(true )
or
to
a
file
(false )?
Defaults
to
false .
|
||
returns
|
The
found
file
format
or
null . |
||
inherited
|
FileFormat.CanReadFind
|
Can this file format object be used to write the given path?
public
virtual
method
|
CanWrite
(string suffix)
|
||
type
|
bool
|
||
params
|
suffix
|
[not-null]
|
The
lower-case
pathname
suffix
(without
'.' ).
Will
be
empty
if
the
path
does
not
have
a
pathname
suffix.
|
returns
|
true
if
this
file
format
can
be
used,
false
if
not. |
||
inherited
|
FileFormat.CanWrite
|
Returns the first file format in the chain (see Next) that can write the given path.
public
virtual
method
|
CanWriteFind
(string suffix)
|
||
type
|
IFileFormat
|
||
params
|
suffix
|
[not-null]
|
The
lower-case
pathname
suffix
(without
'.' ).
Will
be
empty
if
the
path
does
not
have
a
pathname
suffix.
|
returns
|
The
found
file
format
or
null . |
||
inherited
|
FileFormat.CanWriteFind
|
Returns a 3D model file format by its Name.
public
static
method
|
ForName
(string name)
|
||
type
|
ModelFormat
|
||
params
|
name
|
[not-empty]
|
The 3D model file format name. |
returns
|
|
The 3D model file format or Any if not found. |
This is a method that forces the compiler / linker to include this type in the resulting binary.
public
virtual
method
|
PleaseIncludeInBinaryThanks
()
|
||
inherited
|
FileFormat.PleaseIncludeInBinaryThanks
|
Remarks:
Calling this stub method makes sure that all lazy constructor calls have been made.
To initialize everything, an application needs to call this method on its root module(s) (see TinmanModule), followed by a call to Initialize.
Exceptions:
Reads the given 3D model.
[OwnerReturn]
|
||||
public
method
|
ReadModel
(IFileData data)
|
|||
type
|
IModelReader
|
|||
params
|
data
|
[not-null]
|
The 3D model data provider. | |
returns
|
|
The 3D model object reader. |
Exceptions:
[Pure]
|
||||
public
override
sealed
method
|
ToString
()
|
|||
type
|
string
|
|||
inherited
|
FileFormat.ToString
|
Writes a 3D model to the given file.
[OwnerReturn]
|
||||
public
method
|
WriteModel
(Path file,
IModel model)
|
|||
type
|
IOperation
|
|||
params
|
file
|
[not-null]
|
The output 3D model file. | |
model
|
[not-null]
|
The 3D model to write. | ||
returns
|
|
The operation that writes the 3D model file. |
See also:
ICanWrite.CanWriteExceptions: