abstract class Tinman.Core.TinmanModule

Abstract base class for Tinman module descriptors.

Public / Constants


public constant WeblinkCodexProcessor → ("https://manual.tinman3d.com/LATEST/codex-processor.html":string)

Permanent weblink to online manual of the Code-X Processor.


public constant WeblinkDemoApplication → ("https://manual.tinman3d.com/LATEST/Demo_Application.html":string)

Permanent weblink to online manual of the Demo Application.


public constant WeblinkFeatures → ("https://manual.tinman3d.com/LATEST/Features.html":string)

Permanent weblink to the feature overview of the Tinman 3D SDK.


public constant WeblinkGeodataExamples → ("https://manual.tinman3d.com/LATEST/Geodata_Examples.html":string)

Permanent weblink to the geodata examples.


public constant WeblinkGeodataProcessor → ("https://manual.tinman3d.com/LATEST/Geodata_Processor.html":string)

Permanent weblink to online manual of the Geodata Processor.


public constant WeblinkLicenceBakery → ("https://manual.tinman3d.com/LATEST/Licence_baKErY.html":string)

Permanent weblink to online manual of the Licence Bakery tool.


public constant WeblinkLicencingAndPricing → ("https://manual.tinman3d.com/LATEST/Licensing_and_Pricing.html":string)

Permanent weblink to licensing and pricing information of the Tinman 3D SDK.


public constant WeblinkReleaseNotes → ("https://manual.tinman3d.com/LATEST/Release_Notes.html":string)

Permanent weblink to release notes of the Tinman 3D SDK.


public constant WeblinkSdk → ("https://manual.tinman3d.com/LATEST/Tinman_3D_SDK.html":string)

Permanent weblink to the online manual of the latest SDK release.


public constant WeblinkTermsAndConditions → ("https://manual.tinman3d.com/LATEST/Terms_and_Conditions.html":string)

Permanent weblink to terms and conditions of the Tinman 3D SDK.


public constant WeblinkWorkshop → ("https://manual.tinman3d.com/LATEST/Workshop_Application.html":string)

Permanent weblink to online manual of the Workshop Application.


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":string)

The Tinman 3D welcome ASCII art.

Public / Methods


public static method AddConfigDocumentation → (1)

doc in : ConfigDoc

The documentation.

Specifies the config documentation for a module.


public method ConfigDocumentationFile → (1)

binary in : bool

true to return the name of the compiled *.bcd file,
false to return the name of the source *.xml content file.

returns → string

The default file name.

Returns the default name of the config documentation file of this module.


public static method Dependencies → ()

returns → Graph<TinmanModule>

The dependency graph.

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


public static method For → (1)

guid in : GUID

The GUID value.

returns → TinmanModule

The module or null if not found.

Retrieves a module by its GUID.


public static method Initialize → ()

Initializes the Tinman 3D library.

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

This method may be called repeatedly, subsequent invocations have no effect, except that they will initialize those TinmanModule instances that have been created since the most recent call to Initialize, for example after loading a plugin library.


2 overloads

public method Resource1 → (1)

resourceName in : string

The name of the embedded resource.

returns → Path

The canonical resource path.

Returns the canonical path to the given embedded resource.


If the given resourceName in is not a valid path name.

public method Resource2 → (1)

resourceName in : Path

The name of the embedded resource.

returns → Path

The canonical resource path.

Returns the canonical path to the given embedded resource.


public static method Shutdown → ()

Shuts down the Tinman 3D library.

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.


public static method SystemInfo → (1)

columns opt : int32 = 100

Maximum number of text column.

returns → string

The system information dump.

Collects textual information about the runtime environment and code modules.


2 overloads

public method ToString2 → (1)

includeBuildDate in : bool

Include the build date?

returns → string

The string representation.

Returns a string representation of this module.

Public / Attributes


public static attribute All → (get)

value : IVectorConst<TinmanModule>

The list of all library modules.

Returns all library modules.

Modules without dependencies come first.


public attribute ConfigDocumentation → (get)

value : ConfigDoc

The ConfigDoc object or null if no documentation has been loaded yet.

Returns the config documentation for this module.


public attribute ConfigTypes → (get)

value : ConfigType [ ]

The list of config types.

Returns all ConfigTypes this module owns.


public attribute Guid → (get)

value : GUID


Returns the GUID of this module.


public abstract attribute Info → (get)

value : BuildInformation

The build information object.

The build information object of this library module.


public attribute IsDebug → (get)

value : bool

true for DEBUG mode,
false for RELEASE mode.

Has this module been compiled in DEBUG mode?

For DEBUG mode, code optimization is disabled and no runtime checks are performed, see InvalidArgumentException and FailedAssertionException.

See also



public static attribute IsInitialized → (get)

value : bool

true if Initialize has been called and Shutdown has not been called afterwards,
false if Initialize has not been called yet or if Shutdown has already been called.

Checks if the Tinman 3D library has been initialized.

If new TinmanModule instances have become available after initializating, the Initialize method needs to be called again in order to initialize the new modules.


public attribute Settings → (get)

value : Path

The settings directory.

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

The directory will be created, if necessary.


If an I/O error has occurred.

Protected / Constructors


protected constructor TinmanModule → (1)

guid in : string

The GUID of this module.

Creates a new instance of TinmanModule.

Protected / Methods


protected method AssertDebug → (1)

source in : string

The error source tag.

This is a fake assertion method which never throws an exception but instead sets the debug mode flag for this module when called (which by definition of an assertion method, only happens in debug mode).


protected abstract method CollectDependencies → (1)

dependencies in : IBag<TinmanModule>

The set to use for collecting.

Collects those TinmanModule module descriptors this module directly depends on.


protected virtual method CollectSystemInfo → (1)

writer in : SourceCodeWriter

The text writer to use.

Collects textual system information for debugging purposes.


If an I/O error has occurred while writing to writer in.


protected virtual method DoInitialize → ()

Initializes this Tinman module.

Overriding methods may use RegisterResource to add files to the in-memory filesystem for embedded resources (res:/), see Resource1.


protected virtual method DoShutdown → ()

Shuts down this Tinman module.


protected method RegisterResource → (2)

resourceName in : string

The resource name.

extract opt : bool = false

false to treat resourceName in as a single resource.
true to treat resourceName in 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 these name parts:

  1. The value of resourceName in, without the last path element (i.e. the filename of the ZIP archive).

  2. The last path element of resourceName in, without the filename suffix (e.g. '.zip').

  3. The ZIP entry name, treating '/' characters as directory separators.

For example, given a resourceName in of 'SomeDir/Data.zip' and a ZIP archive containing entries 'abc/data.dat' and 'info.txt', the following resources would be registered:

returns → bool

true if the resource has been registered successfully,
false if not (see error log message for details).

Registers an embedded binary resource.

A TinmanModule class may call this method from DoInitialize. If the call is made from another site, the resource cannot be found or the ZIP archive is corrupt, an error log message is generated and the method returns silently.

Protected / Attributes


protected static attribute pleaseIncludeInBinaryThanks → (int32)

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



public static readonly attribute Logger → (ILogger)

The logger object of this class.