Meshmoon SDK 2.5.4
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Properties Friends Groups Pages
Meshmoon SDK 2.5.4 Documentation

Introduction

Welcome to the Tundra developer documentation. This page is a site map that assembles together all the major features offered by Tundra.

Download

Obtain Tundra from

Tundra distribution license.

Getting Started

Follow these first steps.

Community

Contact Tundra developers and users at

Technical Resources

See the following pages for help on working on the Tundra codebase.

The functionality built into Tundra is subdivided into core libraries and optional subsystems. The core libraries are sets of APIs that each expose some functionality of the Tundra system to native C++ code or scripted modules or scene entities. These interfaces are accessible directly through the root Framework object. The individual subsystems are accessible by querying the appropriate modules using the Module API.

The root object for accessing all Tundra features is the Framework object. This object drives the main loop and gives access of all the core APIs to modules and scripts. For more information, see

Core

The Tundra SDK consists of the following set of core APIs that are accessible from client modules, components and scripts.

Module

The Module API gives access to all the modules registered in the system. For working with modules, see the following topics:

  • Accessing modules in your code.
  • Creating a new module using C++.
  • Creating a new module using Python.
  • Setting up cmake files and PCHs for your module.
  • Module definition file and load orders.
  • Supporting localization in your module.

Classes:

Event

The Qt's signals and slots mechanism is used for communication between objects.

Config

Implements a uniform mechanism for modules to store their configuration data. Main documentation page.

More information:

  • Reading and writing configuration data.
  • Using default values.

Classes:

Debug

Contains useful development-time mechanisms like memory tracking and execution time profiling.

Topics:

  • Detecting memory leaks.
  • Using the Tundra execution time profiler.
  • Performing automated network testing.

Classes:

  • Profiler
  • ProfilerBlock

Input

Provides access to Qt input devices in a contextual order.

InputAPI is available as 'input' in Javascript and 'tundra.input' in Python.

Follow these topics to learn more:

  • Reading input through an InputContext.
  • Providing reconfigurable key bindings with keyboard mappings.
  • InputContext priorities and playing nice with Qt.
  • Polling for input.

Classes:

UI

Exposes the Tundra main window and allows clients to create and show their own Qt-based windows.

UiAPI is available as 'ui' in Javascript and 'tundra.ui' in Python.

Classes:

Scene

Gives access to the Tundra 3D scene structure: entities, components and attributes.

SceneAPI is available as 'scene' in Javascript and 'tundra.scene' in Python.

Topics:

  • Scenes, entities and components.
  • Attributes and attribute metadata.
  • Entity actions.
  • Accessing scene contents from C++ code.
  • Working with multiple scenes.
  • Accessing entity attributes using JavaScript.
  • Accessing entity attributes using Python.
  • Creating new component types.
  • Creating new attribute types.
  • Entity attribute replication model.

Classes:

Asset

Implements the Tundra asset system and a pluggable asset provider architecture for streaming in asset data files.

For more information, see

Classes:

Console

Allows modules to register new commands that are invokeable from a command line console. Also provides logging mechanism for dynamic languages.

ConsoleAPI is available as 'console' in Javascript and 'tundra.console' in Python with the support for:

  • Registering new console commands.
  • Programmatically invoking console commands.

Classes:

Connection

Exposes the functionality related to the currently active server connection, if Tundra is connected to a server.

Classes:

Server

If Tundra is acting as a network server, this interface can be accessed to interact with the currently active client connections.

Classes:

Audio

Provides functions for playing back audio on the client. Main documentation page.

Topics:

  • Using the sound system.
  • todo: add here the concepts related to audio.

Classes:

Frame

Exposes signals for frame- and time-related event processing. Topics:

The Frame API is accessed through the class FrameAPI.

Classes:

Tundra Scene Structure

The most visible part of Tundra to end-users and world builders is the Tundra scene structure. The Scene API is used to access this scene in program code. The Tundra Entity Component Reference page contains a reference documentation for all the components that make up a scene.

Subsystems

In addition to providing the core API, Tundra contains the following functional subsystems, implemented as sets of modules.

Renderer

This subsystem consists of the rendering library and the graphics-related Tundra scene features.

See the following topics for more information:

Implemented by modules

Physics

Physics simulation using Bullet.

Implemented by modules

Script

Allows implementing modules using the Python script language as well as embedding new functionality into scene entities by using JavaScript or Python.

Implemented by modules and components

Communication

The subsystem of Tundra that provides video and audio communication features between clients connected to the world.

See the following topics for more information:

Implemented by modules

  • MumbleVoip::MumbleVoipModule
  • VlcPlugin

www.meshmoon.com - doc.meshmoon.com