Apertus
  • Documentation
  • Introduction
    • Definitions
      • Coordinate systems
      • Primitives
    • Features
      • Basic
        • Nodes
        • Light sources
        • Geometries
        • Primitives
        • Texts
      • Environment simulation
        • Water
        • Sky
        • Terrain
      • Browser
      • UI technologies
        • HTML UI
        • Presentation
        • Gallery
      • PointCloud
      • 360
        • 360 Images
        • 360 Videos
      • 3D Model Formats
      • Scene Sharing
        • Multiplayer
      • Video and Voice Chat
      • Hand Tarcking
        • Leap Motion
      • Head Tracking
        • Fob
      • Displays
        • Multi Display
        • Cave System
        • HMDs
      • Industry
        • IoT, and Sensors
        • Robot monitoring
        • Robot calibration
  • Developers
    • Development Cycle
    • Architecture
      • Project folders
      • Configuration ecosystem
    • API
      • C++ API
      • JavaScript API
      • HTTP REST API
    • Getting Started
      • Creating a plugin
      • Creating a sample
  • Contribute
    • Report a Bug
    • Suggest a Feature
  • Tutorial - How to visualize CAD models in VR
    • Introduction
    • Import CAD Models
    • Convert CAD Models
    • Create Low-poly from CAD Models
    • Create Photorealistic CAD Models
  • Plugins - Photorealistic Render
  • Plugins - Physics
  • Tutorial - How to visualize Tensorflow training in VR
  • Tutorial - Virtual Learning Factory Toolkit Gamification
  • Overview
    • Introduction
    • Architecture
    • Use Cases
  • Installation
    • Windows
    • Android
      • How to use
      • Writing an application
    • MacOS
  • Build
    • Windows
      • How to build the source on Windows
    • Android
    • MacOS
  • Plugins on Windows
    • Photorealistic Render
      • How to use
      • How to configure
      • Features
      • Sample
    • Physics
      • How to use
      • How to configure
      • Features
      • Samples
      • Demo video
  • Plugins on Android
    • Java Native Interface
      • How to use
      • Extending the API
    • Filament render
      • How to use
      • How to configure
      • Developers
  • Plugins on MacOS
    • Untitled
  • Samples on Windows
    • Deep learning
      • Untitled
      • Use the Fastai-PythorchVR Sample
      • Use the HTTP API
      • Create HTTP Requests from Python
      • Demo video
    • Virtual Learning Factory Toolkit Gamification
      • Installation
      • Lobby - User Interface
      • Local - User Interface
      • Student - User Interface
      • Teacher - User Interface
      • VLFT Gamification Session
      • VR Mode
  • Virtual Learning Factory Application
    • Installation on Windows
    • Installation on Apple
    • Lobby
    • Single Player
    • Multi Player - Student
    • Multi Player - Teacher
Powered by GitBook
On this page
  • Example
  • Relative configs folder
  • Absolute configs folder
  • Configuration files
  • ApeSystem.json
  • MainWindow object
  • SceneSession object
  • PluginManager object
  1. Developers
  2. Architecture

Configuration ecosystem

ApertusVR can be configured by JSON config fiiles. ApeSystem.json contains settings for ApertusCore and beside that, each ApertusPlugin is configurable by its own JSON config file.

ApertusVR Samples (applications) can also manage multiple, separated configurations. For more details, please check the example below.

Example

Relative configs folder

If you would like to have your configs folder next to your application executable (ApeHelloWorld), just rewrite line 30 in samples/helloWorld/ApeHelloWorld.cpp

configDir << APE_SOURCE_DIR << "/samples/helloWorld/configs/";

to

configDir << "configs/";

In this scenario, you can start ApeHelloWorld application in 2 ways:

Option A

If you run it without any arguments, and it will display a list of configuration options ( folders inside configs folder, i.e. local_monitor ) which you can select in terminal to start.

Option B

If you would like to start the application with a specific configuration, then start ApeHelloWorld as:

> ApeHelloWorld -c [config_folder_name]

Absolute configs folder

If you would like to have your configs folders anywhere else (not relative to your ApeHelloWorld executable), just remove line 30 in samples/helloWorld/ApeHelloWorld.cpp:

configDir << APE_SOURCE_DIR << "/samples/helloWorld/configs/";

If you have your configs folder in ~/path/to/configs, then you can start ApeHelloWorld as:

> ApeHelloWorld -c ~/path/to/configs

Configuration files

ApeSystem.json

{
    "mainWindow": {
        "name": "Ape",
        "creator": "ApeOgreRenderPlugin"
    },
    "sceneSession": {
        "participantType": "Local",
        "uniqueUserNamePrefix": "",
        "sessionGUID": "",
        "sessionResourceLocation": [
            "/plugins/helloWorld/resources"
        ],
        "natPunchThroughServer": {
            "ip": "",
            "port": ""
        },
        "lobbyServer": {
            "useLobby": false,
            "ip": "",
            "port": "",
            "sessionName": "test"
        }
    },
    "pluginManager": {
        "plugins": [
            "ApeOgreRenderPlugin",
            "ApeOisUserInputPlugin",
            "ApeHelloWorldPlugin"
        ]
    }
}

As you can see, there are three objects: mainWindow, sceneSession, and pluginManager.

MainWindow object

"mainWindow": {
    "name": "Ape",
    "creator": "ApeOgreRenderPlugin"
}

The name key is the name of the Window. The creator key is the name of the plugin which is going to make the window.

SceneSession object

Coming soon.

PluginManager object

"pluginManager": {
    "plugins": [
        "ApeOgreRenderPlugin",
        "ApeOisUserInputPlugin",
        "ApeHelloWorldPlugin"
    ]
}

The plugins object defines an array of plugin names. These plugins will be started on the initialization of ApertusVR.

PreviousProject foldersNextAPI

Last updated 6 years ago