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

class TinmanModule in Tinman.Core

Abstract base class for Tinman module descriptors.

abstract class TinmanModule implements IComparable<TinmanModule>
  IPleaseIncludeInBinaryThanks
  base of TinmanAddOnsAssimpModule
  TinmanAddOnsDirectX11Module
  TinmanAddOnsDirectX12Module
  TinmanAddOnsDirectX9Module
  TinmanAddOnsGDALModule
  TinmanAddOnsModule
  TinmanAddOnsOpenGLModule
  TinmanAddOnsSQLiteModule
  TinmanAddOnsVulkanModule
  TinmanCoreModule
  TinmanDemoModule
  TinmanDemoStandAloneModule
  TinmanEngineModule
  TinmanTerrainModule

Public / Constants

Welcome

The Tinman 3D welcome ASCII art.

public constant Welcome = "\n _____ _______ ____ _____ \n ,-:` \\;',`'-, |__ _(_) |___ \\ | __ \\ \n .'-;_,; ':-;_,'. | | _ _ __ _ __ ___ __ _ _ __ __) || | | |\n /; '/ , _`.-\\ | || || '_ \\ | '_ ` _ \\ / _` || '_ \\ |__ < | | | |\n | '`. (` /` ` \\`| | || || | | || | | | | || (_| || | | | ___) || |__| |\n |:. `\\`-. \\_ / | |_||_||_| |_||_| |_| |_| \\__,_||_| |_| |____/ |_____/\n | ( `, .`\\ ;'| \n \\ | .' `-'/ Real-time terrain processing, rendering and analysis\n `. ;/ .' \n `'-._____.-'` https://www.tinman3d.com - info@tinman3d.com\n"
type string

Public / Attributes

All

Returns all library modules.

public static property All { get }
type IVectorConst<TinmanModule>
value [not-null] The list of all library modules.

Remarks:

Modules without dependencies come first.

ConfigDocumentation

Returns the config documentation for this module.

public property ConfigDocumentation { get }
type ConfigDoc
value The ConfigDoc object or null if no documentation has been loaded yet.

ConfigTypes

Returns all ConfigType s this module owns.

public property ConfigTypes { get }
type ConfigType[]
value [not-null] The list of config types.

Guid

Returns the GUID of this module.

public property Guid { get }
type GUID
value The GUID.

Info

The build information object of this library module.

public abstract property Info { get }
type BuildInformation
value [not-null] The build information object.

Settings

Canonical path to directory where to put user-specific settings.

public property Settings { get }
type Path
value [not-null] The settings directory.

Remarks:

The directory will be created, if necessary.

Exceptions:

Public / Methods

AddConfigDocumentation

Specifies the config documentation for a module.

public static method AddConfigDocumentation (ConfigDoc doc)
params doc [not-null] The documentation.

CompareTo

Compares this object with the given one.

[Pure]
public method CompareTo (TinmanModule other)
type int32
params other The object to compare to.
returns < 0 : if this object is less than other,
= 0 : if this object is equal to other,
> 0 : if this object is greater than other.
implements IComparable.CompareTo

Dependencies

Computes a dependency graph of all library modules (source depends on target).

[OwnerReturn]
public static method Dependencies ()
type Graph<TinmanModule>
returns [not-null] The dependency graph.

For

Retrieves a module by its GUID.

public static method For (GUID guid)
type TinmanModule
params guid The GUID value.
returns The module or null if not found.

Initialize

Initializes the Tinman 3D library.

public static method Initialize ()

Remarks:

Before calling this method, call PleaseIncludeInBinaryThanks on the top-level module(s) of the enclosing application. Then, based on the collected module dependencies (see Dependencies), this method will call PleaseIncludeInBinaryThanks and DoInitialize on all modules.

This method may be called repeatedly, subsequent invocations have no effect.

PleaseIncludeInBinaryThanks

This is a no-op 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.

Resource

Returns the canonical path to the given embedded resource.

public method Resource (string resourceName)
type Path
params resourceName [not-null] The name of the embedded resource.
returns [not-null] The canonical resource path.

Returns the canonical path to the given embedded resource.

public method Resource (Path resourceName)
type Path
params resourceName [not-null] The name of the embedded resource.
returns [not-null] The canonical resource path.

Shutdown

Shuts down the Tinman 3D library.

[Shutdown]
public static method Shutdown ()

Remarks:

Before calling this method, make sure to relinquish ownership of all IDisposable objects. This method will call DoShutdown on all modules.

This method may be called repeatedly, subsequent invocations have no effect.

SystemInfo

Collects textual information about the runtime environment and code modules.

public static method SystemInfo (int32 columns = 100)
type string
params columns [>0] Maximum number of text column.
returns [not-null] The system information dump.

ToString

[Pure]
public override method ToString ()
type string

public method ToString (bool includeBuildDate)
type string
params includeBuildDate

Protected / Attributes

pleaseIncludeInBinaryThanks

Subclasses may increment this dummy counter from within PleaseIncludeInBinaryThanks in order to prevent overly aggressive code optimizations that may alter the order of initialization.

[ShutdownClear]
protected static field pleaseIncludeInBinaryThanks
type int32

Protected / Constructors

TinmanModule

Creates a new instance of TinmanModule.

protected constructor TinmanModule (string guid)
params guid [not-empty] The GUID of this module.

Protected / Methods

CollectDependencies

Collects those TinmanModule module descriptors this module directly depends on.

protected abstract method CollectDependencies (IBag<TinmanModule> dependencies)
params dependencies [not-null] The set to use for collecting.

CollectSystemInfo

Collects textual system information for debugging purposes.

[EmptyBody]
protected virtual method CollectSystemInfo (SourceCodeWriter writer)
params writer [not-null] The text writer to use.

Exceptions:

DoInitialize

Initializes this Tinman module

[EmptyBody]
protected virtual method DoInitialize ()

DoShutdown

Shuts down this Tinman module.

[EmptyBody]
protected virtual method DoShutdown ()

RegisterResource

Registers an embedded binary resource.

protected method RegisterResource (string resourceName, bool extract = false)
type bool
params resourceName [not-null] The resource name.
  extract false to treat resourceName as a single resource.
true to treat resourceName as a ZIP archive:
the resource will be extracted and each resulting file will be registered as a separate resource, using the following name, which is constructed by appending the these name parts:
  1. The value of resourceName, without the last path element (i.e. the filename of the ZIP archive).
  2. The last path element of resourceName, without the filename suffix (e.g. '.zip').
  3. The ZIP entry name, treating '/' characters as directory separators.
For example, given a resourceName'SomeDir/Data.zip' and a ZIP archive containing entries 'abc/data.dat' and 'info.txt', the following resources would be registered:
SomeDir/Data/abc/data.dat
SomeDir/Data/info.txt
Defaults to false.
returns true if the resource has been registered successfully,
false if not (see error log message for details).

Remarks:

If the resource cannot be found, an error log message is generated and the method returns silently.

See also:

Logger

Exceptions:

Logging

Logger

The logger object of this class.

public static readonly field Logger
type ILogger