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

class FileFormat in Tinman.Terrain.Util

Abstract base class for IFileFormat implementations that represent a concrete file format.

abstract class FileFormat implements IFileFormat
  base of ImageFormat
  ModelFormat
  ShapeFormat

Protected / Attributes

IsRegistered

Has this file format been registered?

protected property IsRegistered { get }
type bool
value true if this file format has been registered, false if not.

See also:

Register

Protected / Constructors

FileFormat

Creates a new instance of FileFormat.

protected constructor FileFormat (string name, string description, string type, string mime, bool isAny = false)
params name [not-empty] Value for Name
  description [not-empty] Value for Description
  type [not-empty] Value for Type
  mime Value for Mime
  isAny Is this an automatic file format?

Protected / Methods

DoCanRead

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.

Remarks:

When overriding this method, Prefix must be overridden as well.

NameFind

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.

NotSupported

protected static method NotSupported (string source, Path path, string name, bool directory, string suffix)
type IOException
params source
  path
  name
  directory
  suffix

Register

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.

Public / Attributes

Description

Long description of this file format.

public virtual property Description { get }
type string
value [not-null] The description string.
implements IFileFormat.Description

Mime

The machine-readable type of this file format.

public property Mime { get }
type string
value The machine-readable media type or null if none.
implements IFileFormat.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

Name

The file format name.

public property Name { get }
type string
value [not-null] The file format name.
implements IFileFormat.Name

Next

Returns the next file format.

[ThreadSafe]
public property Next { get }
type IFileFormat
value The next file format or null.
implements IFileFormat.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.

Prefix

Lengths of the binary file data prefix that identifies this file format.

public virtual property Prefix { get }
type int32
value [>=0] The file data prefix length, in bytes. If 0, there is no identifying prefix.
implements IFileFormat.Prefix

Type

The human-readable type of this file format (e.g. images, shapes, 3D models).

public property Type { get }
type string
value [not-null] The human-readable type name.
implements IFileFormat.Type

Public / Constructors

ForMime

Returns a registered file format by its Mime.

public static method ForMime (string mime)
type IFileFormat
params mime [not-null] The file image media type.
returns The file format or null if not found.

Public / Methods

CanRead

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.
implements IFileFormat.CanRead

See also:

IFileFormat.Prefix

Can 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.
implements IFileFormat.CanRead

CanReadFind

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.
implements IFileFormat.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.
implements IFileFormat.CanReadFind

CanWrite

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.
implements IFileFormat.CanWrite

CanWriteFind

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.
implements IFileFormat.CanWriteFind

Normalize

Normalizes the given MIME type.

[Pure]
public static method Normalize (string mime)
type string
params mime The MIME type.
returns The normalized MIME type of null iff mime is empty or whitespace.

Remarks:

The given mime is converted to lower-case and all leading and trailing whitespaces are trimmed. Then, the following substitutions are performed:

PleaseIncludeInBinaryThanks

This is a method that forces the compiler / linker to include this type in the resulting binary.

public virtual method PleaseIncludeInBinaryThanks ()
implements IPleaseIncludeInBinaryThanks.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:

ToString

[Pure]
public override sealed method ToString ()
type string