TinmanModule

Description

abstract class Tinman.Core.TinmanModule

Abstract base class for Tinman module descriptors.

Public / Constants

Weblink​Codex​Processor


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

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

Weblink​Demo​Application


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

Permanent weblink to online manual of the Demo Application.

Weblink​Features


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

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

Weblink​Geodata​Examples


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

Permanent weblink to the geodata examples.

Weblink​Geodata​Processor


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

Permanent weblink to online manual of the Geodata Processor.

Weblink​Licence​Bakery


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

Permanent weblink to online manual of the Licence Bakery tool.

Weblink​Licencing​And​Pricing


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.

Weblink​Release​Notes


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

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

Weblink​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.

Weblink​Terms​And​Conditions


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

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

Weblink​Workshop


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

Permanent weblink to online manual of the Workshop Application.

Welcome


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

Add​Config​Documentation


public static method AddConfigDocumentation → (1)

doc in : ConfigDoc

[not-null]
The documentation.

Specifies the config documentation for a module.

Config​Documentation​File


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.

Dependencies


[OwnerReturn]
public static method Dependencies → ()

returns → Graph<TinmanModule>

The dependency graph.

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

For


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.

Initialize


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.

Resource

2 overloads


public method Resource1 → (1)

resourceName in : string

[not-null]
The name of the embedded resource.

returns → Path

The canonical resource path.

Returns the canonical path to the given embedded resource.

IOException

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


public method Resource2 → (1)

resourceName in : Path

[not-null]
The name of the embedded resource.

returns → Path

The canonical resource path.

Returns the canonical path to the given embedded resource.

Shutdown


[Shutdown]
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.

System​Info


public static method SystemInfo → (1)

columns opt : int32 = 100

[>0]
Maximum number of text column.

returns → string

The system information dump.

Collects textual information about the runtime environment and code modules.

To​String

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

All


public static attribute All → (get)

value : IVectorConst<TinmanModule>

[not-null]
The list of all library modules.

Returns all library modules.

Modules without dependencies come first.

Config​Documentation


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.

Config​Types


public attribute ConfigTypes → (get)

value : ConfigType [ ]

[not-null]
The list of config types.

Returns all ConfigTypes this module owns.

Guid


public attribute Guid → (get)

value : GUID

The GUID.

Returns the GUID of this module.

Info


public abstract attribute Info → (get)

value : BuildInformation

[not-null]
The build information object.

The build information object of this library module.

Is​Debug


[Constant]
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

LowLevel.IsDebug

Is​Initialized


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.

Settings


public attribute Settings → (get)

value : Path

[not-null]
The settings directory.

Canonical path to directory where to put application-specific settings for the current user.

The directory will be created, if necessary.

IOException

If an I/O error has occurred.

Protected / Constructors

Tinman​Module


protected constructor TinmanModule → (1)

guid in : string

[not-empty]
The GUID of this module.

Creates a new instance of TinmanModule.

Protected / Methods

Assert​Debug


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).

Collect​Dependencies


protected abstract method CollectDependencies → (1)

dependencies in : IBag<TinmanModule>

[not-null]
The set to use for collecting.

Collects those TinmanModule module descriptors this module directly depends on.

Collect​System​Info


[EmptyBody]
protected virtual method CollectSystemInfo → (1)

writer in : SourceCodeWriter

[not-null]
The text writer to use.

Collects textual system information for debugging purposes.

IOException

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

Do​Initialize


[EmptyBody]
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.

Do​Shutdown


[EmptyBody]
protected virtual method DoShutdown → ()

Shuts down this Tinman module.

Register​Resource


protected method RegisterResource → (2)

resourceName in : string

[not-null]
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:

SomeDir/Data/abc/data.dat
SomeDir/Data/info.txt
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

please​Include​In​Binary​Thanks


[ShutdownClear]
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.

Logging

Logger


public static readonly attribute Logger → (ILogger)

The logger object of this class.