Example_Application

Description

sealed class Tinman.Demo.Examples.Example_Application

Derived from

WidgetApplication

Full source code is included in the Tinman 3D SDK download.

This example shows how to implement and run a stand-alone IApplication.

Tinman 3D can be used as an application engine, to create a new stand-alone application from scratch. The Main method shows the steps that are necessary for doing so:

  • Initialize the Tinman 3D library.

  • Create a graphics context factory.

  • Create an application window.

  • Create the application object.

  • Run the application loop.

The remainder of this class shows how to implement a custom IApplication that sets up a simple interactive 3D scene (similar to Tutorial_24_Moon):

  • Initialize the Scene API (see IScene).

  • Create a terrain for the Moon.

  • Put a geo-referenced image onto the terrain.

  • Put a 3D model onto the terrain.

These library binaries are required by a stand-alone application built with Tinman 3D:

  • CodeX.System

  • Tinman.Core

  • Tinman.Terrain

  • Tinman.Engine

Optionally, the Tinman.AddOns library binaries or source code can also be used.

Public / Constructors

Example_​Application


[ThrowAny]
public constructor Example_Application → (3)

repository in : Path

[not-null]
Path to the SDK folder.

data opt : Path = null

Optional alternative path to the data folder in the SDK. If relative, will be resolved against repository in.

dataBulk opt : Path = null

Optional alternative path to the data.bulk folder in the SDK. If relative, will be resolved against repository in.

Creates a new instance of Example_Application.

Public / Methods

Main


[ThrowAny]
public static method Main → (4)

repository in : Path

[not-null]
Path to the SDK root folder.

data opt : Path = null

Optional alternative path to the data folder in the SDK. If relative, will be resolved against repository in.

dataBulk opt : Path = null

Optional alternative path to the data.bulk folder in the SDK. If relative, will be resolved against repository in.

sleepOnIdle opt : bool = false

Honour ApplicationLoopResult.Idle by sleeping for a short time?

Runs the Example_Application in a top-level window, as a stand-alone application.

The application loop in this method that calls ApplicationLoop.MainLoop is equivalent to the ApplicationLoop.Run helper method, which may be used as an alternative.

To run the Example_Application in a control inside a GUI framework, do not use this method. Instead, pass the IApplication object to the IApplicationControl instance that has been added to the GUI, usually via some GUI editor tool; ready-to-use implementations exist for common GUI frameworks, such as WinForms, WPF and MFC.

Logging

Logger


public static readonly attribute Logger → (ILogger)

The logger object of this class.