diff --git a/objects.inv b/objects.inv index 58f3051..91c518a 100755 Binary files a/objects.inv and b/objects.inv differ diff --git a/python_api/skybolt.html b/python_api/skybolt.html index df05134..19b0740 100755 --- a/python_api/skybolt.html +++ b/python_api/skybolt.html @@ -379,17 +379,6 @@ - - @@ -400,7056 +389,87 @@ - - - -
  • - - - Classes - - - - -
  • - -
  • - - - LatLon - - - - -
  • - -
  • - - - LatLonAlt - - - - - -
  • - -
  • - - - LatLonAltPosition - - - - - -
  • - -
  • - - - LoadTimingPolicy - - - - - -
  • - -
  • - - - LtpNedOrientation - - - - - -
  • - -
  • - - - MainRotorComponent - - - - - -
  • - -
  • - - - OffscreenWindow - - - -
  • - -
  • - - - Orientation - - - -
  • - -
  • - - - Position - - - -
  • - -
  • - - - Quaternion - - - - - -
  • - -
  • - - - RectI - - - -
  • - -
  • - - - Scenario - - - - - -
  • - -
  • - - - ScenarioMetadataComponent - - - - - -
  • - -
  • - - - StandaloneWindow - - - -
  • - -
  • - - - TemplateNameComponent - - - - - -
  • - -
  • - - - Vector3 - - - - - -
  • - -
  • - - - VectorString - - - - - -
  • - -
  • - - - VisRoot - - - - - -
  • - -
  • - - - Window - - - -
  • - -
  • - - - World - - - - - -
  • - - - - - - -
  • - - - Functions - - - - - -
  • - - - - - - - - - - - - - - - - -
  • - - - - - skybolt_util - - - - -
  • - - - - - - - - - - - - - - - - - - - -
    -
    -
    - - - -
    -
    -
    - - - -
    -
    - - - - -

    skybolt

    -

    Python API for accessing Skybolt Engine C++ functionality.

    - - -
    - - - - -
    - - - - - - - - -
    - - - - - -

    Attributes

    - -
    - - - -

    - LoadAcrossMultipleFrames: LoadTimingPolicy - - - module-attribute - - -

    - - -
    -
    - -
    - -
    - - - -

    - LoadBeforeRender: LoadTimingPolicy - - - module-attribute - - -

    - - -
    -
    - -
    -

    Classes

    - -
    - - - -

    - Box3d - - -

    - - -
    - - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - maximum: Vector3 - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - minimum: Vector3 - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    Functions
    - -
    - - -
    - center() - -
    - - -
    - -
    - -
    - -
    - - -
    - merge(arg0) - -
    - - -
    - -
    - -
    - -
    - - -
    - size() - -
    - - -
    - -
    - -
    - - - -
    - -
    - -
    - -
    - - - -

    - CameraComponent - - -

    - - -
    -

    - Bases: Component

    - - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - state: CameraState - - - instance-attribute - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - CameraControllerComponent - - -

    - - -
    -

    - Bases: Component, CameraControllerSelector

    - - - - - - - - - - -
    - - - - - - - - - - - -
    - -
    - -
    - -
    - - - -

    - CameraControllerSelector - - -

    - - -
    - - - - - - - - - - -
    - - - - - - - -
    Functions
    - -
    - - -
    - getSelectedControllerName() - -
    - - -
    - -
    - -
    - -
    - - -
    - selectController(arg0) - -
    - - -
    - -
    - -
    - -
    - - -
    - setTargetId(arg0) - -
    - - -
    - -
    - -
    - - - -
    - -
    - -
    - -
    - - - -

    - CameraState - - -

    - - -
    - - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - farClipDistance: float - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - fovY: float - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - nearClipDistance: float - - - instance-attribute - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - Component - - -

    - - -
    - - -

    Base class for components which can be attached to an Entity

    - - - - - - - - - -
    - - - - - - - -
    Functions
    - -
    - - -
    - setSimTime(arg0) - -
    - - -
    - -
    - -
    - - - -
    - -
    - -
    - -
    - - - -

    - EngineRoot - - -

    - - -
    - - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - entityFactory: EntityFactory - - - property - - -
    - - -
    -
    - -
    - -
    - - - -
    - scenario: Scenario - - - property - - -
    - - -
    -
    - -
    - -
    - - - -
    - world: World - - - property - - -
    - - -
    -
    - -
    - -
    Functions
    - -
    - - -
    - locateFile(arg0) - -
    - - -
    - -
    - -
    - - - -
    - -
    - -
    - -
    - - - -

    - Entity - - -

    - - -
    - - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - dynamicsEnabled: bool - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    Functions
    - -
    - - -
    - addComponent(arg0) - -
    - - -
    - -
    - -
    - -
    - - -
    - getComponents() - -
    - - -
    - -
    - -
    - -
    - - -
    - getComponentsOfType(arg0) - -
    - - -
    - -
    - -
    - -
    - - -
    - getFirstComponentOfType(arg0) - -
    - - -
    - -
    - -
    - -
    - - -
    - getId() - -
    - - -
    - -
    - -
    - -
    - - -
    - getName() - -
    - - -
    - -
    - -
    - -
    - - -
    - getOrientation() - -
    - - -
    - -
    - -
    - -
    - - -
    - getPosition() - -
    - - -
    - -
    - -
    - -
    - - -
    - setOrientation(arg0) - -
    - - -
    - -
    - -
    - -
    - - -
    - setPosition(arg0) - -
    - - -
    - -
    - -
    - - - -
    - -
    - -
    - -
    - - - -

    - EntityFactory - - -

    - - -
    - - -

    Class responsible for creating Entity instances based on a template name

    - - - - - - - - - -
    - - - - - - - -
    Functions
    - -
    - - -
    - createEntity(templateName, name='', position=..., orientation=..., id=...) - -
    - - -
    - -
    - -
    - - - -
    - -
    - -
    - -
    - - - -

    - EntityId - - -

    - - -
    - - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - applicationId: int - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - entityId: int - - - instance-attribute - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - EntityTargeter - - -

    - - -
    - - -

    Interface for a class which references a target Entity by EntityId

    - - - - - - - - - -
    - - - - - - - -
    Functions
    - -
    - - -
    - getTargetId() - -
    - - -
    - -
    - -
    - -
    - - -
    - getTargetName() - -
    - - -
    - -
    - -
    - -
    - - -
    - setTargetId(arg0) - -
    - - -
    - -
    - -
    - -
    - - -
    - setTargetName(arg0) - -
    - - -
    - -
    - -
    - - - -
    - -
    - -
    - -
    - - - -

    - Frustum - - -

    - - -
    - - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - fieldOfViewHorizontal: float - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - fieldOfViewVertical: float - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - orientation: Quaternion - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - origin: Vector3 - - - instance-attribute - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - GeocentricOrientation - - -

    - - -
    -

    - Bases: Orientation

    - - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - orientation: Quaternion - - - instance-attribute - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - GeocentricPosition - - -

    - - -
    -

    - Bases: Position

    - - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - position: Vector3 - - - instance-attribute - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - LatLon - - -

    - - -
    - - -

    Represents a 2D location on a planet location as a latitude and longitude in radians

    - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - lat: float - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - lon: float - - - instance-attribute - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - LatLonAlt - - -

    - - -
    - - -

    Represents a 3D location on a planet location as a latitude and longitude in radians, and altitude in meters

    - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - alt: float - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - lat: float - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - lon: float - - - instance-attribute - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - LatLonAltPosition - - -

    - - -
    -

    - Bases: Position

    - - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - position: LatLonAlt - - - instance-attribute - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - LoadTimingPolicy - - -

    - - -
    - - -

    Enum specifying policy for timing of loading data into the renderer

    -

    Members:

    -

    LoadAcrossMultipleFrames

    -

    LoadBeforeRender

    - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - LoadAcrossMultipleFrames: LoadTimingPolicy - - - class-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - LoadBeforeRender: LoadTimingPolicy - - - class-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - name: str - - - property - - -
    - - -
    -
    - -
    - -
    - - - -
    - value: int - - - property - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - LtpNedOrientation - - -

    - - -
    -

    - Bases: Orientation

    - - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - orientation: Quaternion - - - instance-attribute - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - MainRotorComponent - - -

    - - -
    -

    - Bases: Component

    - - - - - - - - - - -
    - - - - - - - -
    Functions
    - -
    - - -
    - getPitchAngle() - -
    - - -
    - -
    - -
    - -
    - - -
    - getRotationAngle() - -
    - - -
    - -
    - -
    - -
    - - -
    - getTppOrientationRelBody() - -
    - - -
    - -
    - -
    - -
    - - -
    - setNormalizedRpm(arg0) - -
    - - -
    - -
    - -
    - - - -
    - -
    - -
    - -
    - - - -

    - OffscreenWindow - - -

    - - -
    -

    - Bases: Window

    - - - - - - - - - - -
    - - - - - - - - - - - -
    - -
    - -
    - -
    - - - -

    - Orientation - - -

    - - -
    - - - - - - - - - - -
    - - - - - - - - - - - -
    - -
    - -
    - -
    - - - -

    - Position - - -

    - - -
    - - - - - - - - - - -
    - - - - - - - - - - - -
    - -
    - -
    - -
    - - - -

    - Quaternion - - -

    - - -
    - - -

    Represents an orientation as a quarternion of [x, y, z, w] components

    - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - w: float - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - x: float - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - y: float - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - z: float - - - instance-attribute - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - RectI - - -

    - - -
    - - -

    A rectangle defined by [x, y, width, height]

    - - - - - - - - - -
    - - - - - - - - - - - -
    - -
    - -
    - -
    - - - -

    - Scenario - - -

    - - -
    - - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - currentJulianDate: float - - - property - - -
    - - -
    -
    - -
    - -
    - - - -
    - startJulianDate: float - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - time: float - - - instance-attribute - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - ScenarioMetadataComponent - - -

    - - -
    -

    - Bases: Component

    - - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - deletable: bool - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - directory: VectorString - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - serializable: bool - - - instance-attribute - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - StandaloneWindow - - -

    - - -
    -

    - Bases: Window

    - - - - - - - - - - -
    - - - - - - - - - - - -
    - -
    - -
    - -
    - - - -

    - TemplateNameComponent - - -

    - - -
    -

    - Bases: Component

    - - -

    A component storing the name of the template which an Entity instantiates

    - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - name: str - - - property - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - Vector3 - - -

    - - -
    - - -

    A 3D vector of [x, y, z] components

    - - - - - - - - - -
    - - - - - -
    Attributes
    - -
    - - - -
    - x: float - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - y: float - - - instance-attribute - - -
    - - -
    -
    - -
    - -
    - - - -
    - z: float - - - instance-attribute - - -
    - - -
    -
    - -
    - - - - - -
    - -
    - -
    - -
    - - - -

    - VectorString - - -

    - - -
    - - - - - - - - - - -
    - - - - - - - -
    Functions
    - -
    - - -
    - append(x) - -
    - - -
    - -

    Add an item to the end of the list

    - -
    - -
    - -
    - - -
    - clear() - -
    - - -
    - -

    Clear the contents

    - -
    - -
    - -
    - - -
    - count(x) - -
    - - -
    - -

    Return the number of times x appears in the list

    - -
    - -
    - -
    - - -
    - insert(i, x) - -
    - - -
    - -

    Insert an item at a given position.

    - -
    - -
    - -
    - - -
    - remove(x) - -
    - - -
    - -

    Remove the first item from the list whose value is x. It is an error if there is no such item.

    - -
    - -
    - - - -
    - -
    - -
    - -
    - - - -

    - VisRoot - - -

    - - -
    - - - - - - - - - - -
    - - - - - - - -
    Functions
    - -
    - - -
    - addWindow(arg0) - -
    - - -
    - -
    - -
    - -
    - - -
    - removeWindow(arg0) - -
    - - -
    - -
    - -
    - -
    - - -
    - setLoadTimingPolicy(arg0) - -
    - - -
    - -
    - -
    - - - -
    - -
    - -
    - -
    - - - -

    - Window - - -

    - - -
    - - - - - - - - - - -
    - - - - - - - - - - - -
    - -
    - -
    - -
    - - - -

    - World - - -

    - - -
    - - - - - - - - - - -
    - - - - - - - -
    Functions
    - -
    - - -
    - addEntity(arg0) - -
    - - -
    - -
    - -
    - -
    - - -
    - findObjectByName(arg0) - -
    - - -
    - -
    - -
    - -
    - - -
    - getEntities() - -
    - - -
    - -
    - -
    - -
    - - -
    - removeAllEntities() - -
    - - -
    - -
    - -
    - -
    - - -
    - removeEntity(arg0) - -
    - - -
    - -
    - -
    - - - -
    - -
    - -
    -

    Functions

    - -
    - - -

    - attachCameraToWindowWithEngine(arg0, arg1, arg2) - -

    - - -
    - -
    - -
    - -
    - - -

    - calcSmallestAngleFromTo(arg0, arg1) - -

    - - -
    - -
    - -
    - -
    - - -

    - createEngineRootWithDefaults() - -

    - - -
    - -

    Create an EngineRoot with default values

    - -
    - -
    - -
    - - -

    - cross(arg0, arg1) - -

    - - -
    - -
    - -
    - -
    - - -

    - dot(arg0, arg1) - -

    - - -
    - -
    - -
    - -
    - - -

    - getGlobalEngineRoot() - -

    - - -
    - -

    Get global EngineRoot

    - -
    - -
    - -
    - - -

    - moveDistanceAndBearing(arg0, arg1, arg2) - -

    - - -
    - -
    - -
    - -
    - - -

    - normalize(arg0) - -

    - - -
    - -
    - -
    - -
    - - -

    - quaternionFromEuler(arg0) - -

    - - -
    - -
    - -
    - -
    - - -

    - registerComponent(arg0, arg1) - -

    - - -
    - -
    - -
    - -
    - - -

    - render(engineRoot, window) - -

    - - -
    - -
    - -
    - -
    - - -

    - setGlobalEngineRoot(arg0) - -

    - - -
    - -

    Set global EngineRoot

    - -
    - -
    - -
    - - -

    - setWaveHeight(arg0, arg1) - -

    - - -
    - -
    - -
    - -
    - - -

    - stepSim(arg0, arg1) - -

    - - -
    - -
    - -
    - -
    - - -

    - toGeocentricOrientation(arg0, arg1) - -

    - - -
    - -
    - -
    - -
    - - -

    - toGeocentricPosition(arg0) - -

    - - -
    - -
    - -
    - -
    - - -

    - toLatLon(arg0) - -

    - - -
    + +
    +
    +
    + + + +
    +
    + + -
    -
    +

    skybolt

    +

    Python API for accessing Skybolt Engine C++ functionality.

    -
    +
    -

    - transformToScreenSpace(arg0, arg1) -

    -
    +
    -
    -
    -
    diff --git a/search/search_index.json b/search/search_index.json index 04620ba..78efd12 100755 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"index.html","title":"Overview","text":"

    Skybolt is a 3D geospatial application for simulating and visualizing dynamic entities in planetary environments.

    With Skybolt you can:

    • Create scenarios featuring dynamic 3D objects with modular components and properties.
    • Interact with objects via 3D geospatial user interface.
    • Render photoreal environments featuring terrain, ocean, buildings, roads, vegetation, and clouds.
    • Import and visualize data from external sources including CSV files and CIGI host applications.
    • Extend functionality with C++ and Python plugins.
    "},{"location":"index.html#getting-started","title":"Getting Started","text":"

    Continue to the Getting Started guide.

    "},{"location":"index.html#contact","title":"Contact","text":"

    To submit a bug report, please raise an issue on the GitHub repository. For general discussion, please post on our GitHub discussions page. For business enquiries, please use our contact form.

    "},{"location":"index.html#license","title":"License","text":"

    This project is licensed under the Mozilla Public License Version 2.0.

    "},{"location":"architecture.html","title":"Architecture","text":""},{"location":"architecture.html#core","title":"Core","text":"

    The Skybolt engine is based on a flexible entity-component system, which makes it easy to represent both physical and non-physical objects in the world.

    "},{"location":"architecture.html#skyboltsim","title":"SkyboltSim","text":"

    At the heart of the engine, the SkyboltSim library manages the simulation loop and handles dynamics and system state updates.

    The main aspects of the simulation architecture are:

    • Simulation Loop: Continuously updates the state of entities based on dynamics, user input, and external data.
    • Systems: Handle core processes such as dynamics simulation.
    • Entities: Objects in the simulation. Each entity can represent a physical object (e.g. aircraft, ship) or an non-physical object that performs a function.
    • Components: Modular building blocks giving functionality to entities. Components may define an entity's position, behavior, appearance, or other characteristics.
    "},{"location":"architecture.html#skyboltvis","title":"SkyboltVis","text":"

    The SkyboltVis library renders visual represenations of entities. The renderer is built to provide physically plausible imagery from ground level to space. The renderer uses tile-based streaming from geospatial sources, allowing efficient real-time loading of terrain and features such as buildings, roads, rivers and lakes.

    Environments are rendered use multiple physically-based lighting techniques:

    • Hard-surface BRDFs to render hard objects like aircraft, terrain and buildings
    • Planetary atmospheric scattering model
    • Volumetric cloud ray-marcher

    Under the hood, SkyboltVis uses OpenSceneGraph to manage scene graph state, issue draw calls, and handle 2D/3D asset file IO.

    "},{"location":"architecture.html#skyboltengine","title":"SkyboltEngine","text":"

    The SkyboltEngine library ties together SkyboltSim and SkyboltVis, and provides engine-level functionality like user input, scenario management, and plugin support.

    "},{"location":"architecture.html#plugins","title":"Plugins","text":"

    To support a wide variety of use cases, the simulation engine is extensible through C++ and Python plugins.

    • C++ Plugins: Leverages high-performance code for simulation-critical functionality.
    • Python Plugins: For rapid prototyping, scripting, and extending functionality, for example adding new entity component types.
    "},{"location":"architecture.html#graphical-user-interface-gui","title":"Graphical User Interface (GUI)","text":"

    The application features a Qt-based graphical user interface that allows users to interact with entities in the 3D environment. The SkyboltQt library provides funcionality for GUI widgets and bindings between the GUI and the engine.

    "},{"location":"asset_packages.html","title":"Asset Packages","text":"

    At runtime, Skybolt uses assets such as meshes, textures, and shaders. These assets are organized into packages. Each package is a folder containing a hierarchy of asset files on disk.

    Some packages are requied to run Skybolt, while others are optional. The pre-built version of Skybolt ships with the minimum set of required packages. If you compiled Skybolt from source, please ensure Skybolt can find the required packages.

    Skybolt searches for asset packages in these locations:

    1. <CurrentWorkingDirectory>/Assets
    2. Paths in the SKYBOLT_ASSETS_PATH environment variable
    "},{"location":"asset_packages.html#required-packages","title":"Required Packages","text":""},{"location":"asset_packages.html#core","title":"\"Core\"","text":"

    Core assets including fonts, icons, shaders and python modules. Located under the Assets folder in the main repository.

    "},{"location":"asset_packages.html#packages-in-the-skyboltassets-repository","title":"Packages in the SkyboltAssets repository","text":"

    These packages required for running the SkyboltQtApp and example applications. These are located in the SkyboltAssets repository. SkyboltAssets uses DVC for remote storage and retrieval of large files which are not stored in the git repository itself.

    To checkout the SktboltAssets repository:

    1. If you do not already have DVC installed, run pip install dvc[s3] to install with pip
    2. Clone SkyboltAssets and checkout desired git branch/tag
    3. Run dvc pull command in the SkyboltAssets root directory to fetch the remote files
    "},{"location":"asset_packages.html#optional-packages","title":"Optional Packages","text":""},{"location":"asset_packages.html#nlcdlandcover","title":"\"NLCDLandCover\"","text":"

    Land cover tiles for USA. Used by Skybolt to place trees on terrain in forest areas. This package can be downloaded here.

    "},{"location":"asset_packages.html#seattle","title":"\"Seattle\"","text":"

    Map features (buildings, roads, lakes etc) for the city of Seattle. These features were generated from OpenStreetMap data using Skybolt's MapFeaturesConverter tool. This package can be downloaded here.

    "},{"location":"building_from_source.html","title":"Building from Source","text":"

    Skybolt uses the CMake meta-build system and the Conan package manager.

    A list of skybolt dependencies can be found in conanfile.py.

    "},{"location":"building_from_source.html#1-install-conan","title":"1. Install Conan","text":"

    Install with pip: pip3 install conan.

    "},{"location":"building_from_source.html#2-build-skybolt","title":"2. Build Skybolt","text":"

    Use conan to build Skybolt. Under the hood this will execute CMake to generate project files for your IDE and compile the project.

    conan build %SKYBOLT_SOURCE% --output-folder=%SKYBOLT_BUILD% --lockfile-partial\n

    Custom configuration options may be supplied with the -o argument, for example:

    conan build %SKYBOLT_SOURCE% --output-folder=%SKYBOLT_BUILD%  --lockfile-partial -o openscenegraph-mr:shared=True -o enable_python=True -o enable_qt=True -o enable_bullet=True -o enable_cigi=True\n

    Please refer to conanfile.py for a full list of available configuration options.

    "},{"location":"building_from_source.html#3-install-asset-packages","title":"3. Install Asset Packages","text":"

    Skybolt needs a minimum set of required asset packages to run. These packages are shipped with the pre-built Skybolt version, but must be installed manually when building from source. See Asset Packages for details.

    "},{"location":"configuration.html","title":"Configuration","text":""},{"location":"configuration.html#engine-settings","title":"Engine Settings","text":"

    Engine settings are stored in a Settings.json json file, which may be manually edited with a text editor, or edited in the SkyboltQtApp using the Tools->Settings dialog.

    The settings file can be loaded by Skybolt applications with the --settingsFile commandline option. If the option is not specified, a default Settings.json in the Operating System user's home directory will be used. On windows, this is located at C:/Users/%USERNAME%/AppData/Local/Skybolt/Settings.json.

    "},{"location":"configuration.html#environment-variables","title":"Environment Variables","text":"
    • SKYBOLT_PLUGINS_PATH sets plugin search locations. The /plugins folder in the application executable's directory is searched in additional to this path.
    • SKYBOLT_CACHE_DIR sets the directory where cached terrain tiles are read from and written to. If not set, the default directory is C:/Users/%USERNAME%/AppData/Local/Skybolt/Cache
    • SKYBOLT_ASSETS_PATH sets the search locations for asset packages.
    • SKYBOLT_MAX_CORES sets the maximum number of CPU cores the engine may use. If not set, all cores are used.
    "},{"location":"configuration.html#third-party-map-data","title":"Third Party Map Data","text":"

    By default, the PlanetEarth Skybolt entity uses mapbox for albedo and elevation data. To use mapbox, you must acquire an API key from Mapbox. Without an API key, the tiles will not download, the the planet will not render correctly. If desired, PlanetEarth can be edited to use Bing maps for albedo instead. A bing key can be obtained from Microsoft.

    API keys for third party map sources are stored in the engine settings file Settings.json.

    "},{"location":"getting_started.html","title":"Getting Started","text":""},{"location":"getting_started.html#obtaining-skybolt","title":"Obtaining Skybolt","text":"

    Skybolt can be obtained using one of the following methods:

    • Download a pre-built version on supported operating systems
    • Build from source
    "},{"location":"getting_started.html#running-the-gui-application","title":"Running the GUI Application","text":"

    The main Skybolt GUI application can be started by running the SkyboltQtApp executable from the bin folder.

    To explore example scenarios, navigate to the /Scenarios folder, where you will find pre-configured scenarios that demonstrate use cases of the application.

    "},{"location":"getting_started.html#writing-plugins","title":"Writing Plugins","text":"

    Skybolt supports Python and C++ plugins as follows:

    "},{"location":"getting_started.html#python","title":"Python","text":"

    Skybolt allows users to implement new Entity Component types in Python. These components are initialized when the entity is added to the scene, updated each time step, and destroyed when the entity is removed.

    The ReplaySource is an example of a component implemented in Python. This component is responsible for replaying simulation data from a CSV file. See Assets/Core/Scripts/replay_source.py.

    At runtime, Skybolt searches for python plugin modules inside asset packages under <AssetPackage>/Scripts.

    "},{"location":"getting_started.html#c","title":"C++","text":"

    Skybolt allows develpers to add new engine functionality by writing C++ plugins. Please refer to src/Skybolt/SkyboltEnginePlugins/ for examples.

    At runtime, Skybolt searches for plugins under the bin/plugins folder.

    "},{"location":"getting_started.html#using-python-api-without-the-gui","title":"Using Python API without the GUI","text":"

    Skybolt has a python API which allows the engine to be used outside the SkyboltQtApp application. Refer to src/SkyboltExamples/MinimalPython/MinimalPython.py as an example. See also Python API documentation.

    "},{"location":"python_api/index.html","title":"Python API","text":"

    Skybolt comes with the following Python modules:

    • skybolt - provides access to Skybolt Engine C++ functionality.
    • skybolt_util - auxilary utility functionality.
    "},{"location":"python_api/skybolt.html","title":"skybolt","text":"

    Python API for accessing Skybolt Engine C++ functionality.

    "},{"location":"python_api/skybolt.html#skybolt-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.LoadAcrossMultipleFrames","title":"LoadAcrossMultipleFrames: LoadTimingPolicy module-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.LoadBeforeRender","title":"LoadBeforeRender: LoadTimingPolicy module-attribute","text":""},{"location":"python_api/skybolt.html#skybolt-classes","title":"Classes","text":""},{"location":"python_api/skybolt.html#skybolt.Box3d","title":"Box3d","text":""},{"location":"python_api/skybolt.html#skybolt.Box3d-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.Box3d.maximum","title":"maximum: Vector3 instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.Box3d.minimum","title":"minimum: Vector3 instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.Box3d-functions","title":"Functions","text":""},{"location":"python_api/skybolt.html#skybolt.Box3d.center","title":"center()","text":""},{"location":"python_api/skybolt.html#skybolt.Box3d.merge","title":"merge(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.Box3d.size","title":"size()","text":""},{"location":"python_api/skybolt.html#skybolt.CameraComponent","title":"CameraComponent","text":"

    Bases: Component

    "},{"location":"python_api/skybolt.html#skybolt.CameraComponent-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.CameraComponent.state","title":"state: CameraState instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.CameraControllerComponent","title":"CameraControllerComponent","text":"

    Bases: Component, CameraControllerSelector

    "},{"location":"python_api/skybolt.html#skybolt.CameraControllerSelector","title":"CameraControllerSelector","text":""},{"location":"python_api/skybolt.html#skybolt.CameraControllerSelector-functions","title":"Functions","text":""},{"location":"python_api/skybolt.html#skybolt.CameraControllerSelector.getSelectedControllerName","title":"getSelectedControllerName()","text":""},{"location":"python_api/skybolt.html#skybolt.CameraControllerSelector.selectController","title":"selectController(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.CameraControllerSelector.setTargetId","title":"setTargetId(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.CameraState","title":"CameraState","text":""},{"location":"python_api/skybolt.html#skybolt.CameraState-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.CameraState.farClipDistance","title":"farClipDistance: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.CameraState.fovY","title":"fovY: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.CameraState.nearClipDistance","title":"nearClipDistance: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.Component","title":"Component","text":"

    Base class for components which can be attached to an Entity

    "},{"location":"python_api/skybolt.html#skybolt.Component-functions","title":"Functions","text":""},{"location":"python_api/skybolt.html#skybolt.Component.setSimTime","title":"setSimTime(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.EngineRoot","title":"EngineRoot","text":""},{"location":"python_api/skybolt.html#skybolt.EngineRoot-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.EngineRoot.entityFactory","title":"entityFactory: EntityFactory property","text":""},{"location":"python_api/skybolt.html#skybolt.EngineRoot.scenario","title":"scenario: Scenario property","text":""},{"location":"python_api/skybolt.html#skybolt.EngineRoot.world","title":"world: World property","text":""},{"location":"python_api/skybolt.html#skybolt.EngineRoot-functions","title":"Functions","text":""},{"location":"python_api/skybolt.html#skybolt.EngineRoot.locateFile","title":"locateFile(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.Entity","title":"Entity","text":""},{"location":"python_api/skybolt.html#skybolt.Entity-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.Entity.dynamicsEnabled","title":"dynamicsEnabled: bool instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.Entity-functions","title":"Functions","text":""},{"location":"python_api/skybolt.html#skybolt.Entity.addComponent","title":"addComponent(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.Entity.getComponents","title":"getComponents()","text":""},{"location":"python_api/skybolt.html#skybolt.Entity.getComponentsOfType","title":"getComponentsOfType(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.Entity.getFirstComponentOfType","title":"getFirstComponentOfType(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.Entity.getId","title":"getId()","text":""},{"location":"python_api/skybolt.html#skybolt.Entity.getName","title":"getName()","text":""},{"location":"python_api/skybolt.html#skybolt.Entity.getOrientation","title":"getOrientation()","text":""},{"location":"python_api/skybolt.html#skybolt.Entity.getPosition","title":"getPosition()","text":""},{"location":"python_api/skybolt.html#skybolt.Entity.setOrientation","title":"setOrientation(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.Entity.setPosition","title":"setPosition(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.EntityFactory","title":"EntityFactory","text":"

    Class responsible for creating Entity instances based on a template name

    "},{"location":"python_api/skybolt.html#skybolt.EntityFactory-functions","title":"Functions","text":""},{"location":"python_api/skybolt.html#skybolt.EntityFactory.createEntity","title":"createEntity(templateName, name='', position=..., orientation=..., id=...)","text":""},{"location":"python_api/skybolt.html#skybolt.EntityId","title":"EntityId","text":""},{"location":"python_api/skybolt.html#skybolt.EntityId-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.EntityId.applicationId","title":"applicationId: int instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.EntityId.entityId","title":"entityId: int instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.EntityTargeter","title":"EntityTargeter","text":"

    Interface for a class which references a target Entity by EntityId

    "},{"location":"python_api/skybolt.html#skybolt.EntityTargeter-functions","title":"Functions","text":""},{"location":"python_api/skybolt.html#skybolt.EntityTargeter.getTargetId","title":"getTargetId()","text":""},{"location":"python_api/skybolt.html#skybolt.EntityTargeter.getTargetName","title":"getTargetName()","text":""},{"location":"python_api/skybolt.html#skybolt.EntityTargeter.setTargetId","title":"setTargetId(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.EntityTargeter.setTargetName","title":"setTargetName(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.Frustum","title":"Frustum","text":""},{"location":"python_api/skybolt.html#skybolt.Frustum-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.Frustum.fieldOfViewHorizontal","title":"fieldOfViewHorizontal: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.Frustum.fieldOfViewVertical","title":"fieldOfViewVertical: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.Frustum.orientation","title":"orientation: Quaternion instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.Frustum.origin","title":"origin: Vector3 instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.GeocentricOrientation","title":"GeocentricOrientation","text":"

    Bases: Orientation

    "},{"location":"python_api/skybolt.html#skybolt.GeocentricOrientation-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.GeocentricOrientation.orientation","title":"orientation: Quaternion instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.GeocentricPosition","title":"GeocentricPosition","text":"

    Bases: Position

    "},{"location":"python_api/skybolt.html#skybolt.GeocentricPosition-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.GeocentricPosition.position","title":"position: Vector3 instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.LatLon","title":"LatLon","text":"

    Represents a 2D location on a planet location as a latitude and longitude in radians

    "},{"location":"python_api/skybolt.html#skybolt.LatLon-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.LatLon.lat","title":"lat: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.LatLon.lon","title":"lon: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.LatLonAlt","title":"LatLonAlt","text":"

    Represents a 3D location on a planet location as a latitude and longitude in radians, and altitude in meters

    "},{"location":"python_api/skybolt.html#skybolt.LatLonAlt-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.LatLonAlt.alt","title":"alt: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.LatLonAlt.lat","title":"lat: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.LatLonAlt.lon","title":"lon: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.LatLonAltPosition","title":"LatLonAltPosition","text":"

    Bases: Position

    "},{"location":"python_api/skybolt.html#skybolt.LatLonAltPosition-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.LatLonAltPosition.position","title":"position: LatLonAlt instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.LoadTimingPolicy","title":"LoadTimingPolicy","text":"

    Enum specifying policy for timing of loading data into the renderer

    Members:

    LoadAcrossMultipleFrames

    LoadBeforeRender

    "},{"location":"python_api/skybolt.html#skybolt.LoadTimingPolicy-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.LoadTimingPolicy.LoadAcrossMultipleFrames","title":"LoadAcrossMultipleFrames: LoadTimingPolicy class-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.LoadTimingPolicy.LoadBeforeRender","title":"LoadBeforeRender: LoadTimingPolicy class-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.LoadTimingPolicy.name","title":"name: str property","text":""},{"location":"python_api/skybolt.html#skybolt.LoadTimingPolicy.value","title":"value: int property","text":""},{"location":"python_api/skybolt.html#skybolt.LtpNedOrientation","title":"LtpNedOrientation","text":"

    Bases: Orientation

    "},{"location":"python_api/skybolt.html#skybolt.LtpNedOrientation-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.LtpNedOrientation.orientation","title":"orientation: Quaternion instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.MainRotorComponent","title":"MainRotorComponent","text":"

    Bases: Component

    "},{"location":"python_api/skybolt.html#skybolt.MainRotorComponent-functions","title":"Functions","text":""},{"location":"python_api/skybolt.html#skybolt.MainRotorComponent.getPitchAngle","title":"getPitchAngle()","text":""},{"location":"python_api/skybolt.html#skybolt.MainRotorComponent.getRotationAngle","title":"getRotationAngle()","text":""},{"location":"python_api/skybolt.html#skybolt.MainRotorComponent.getTppOrientationRelBody","title":"getTppOrientationRelBody()","text":""},{"location":"python_api/skybolt.html#skybolt.MainRotorComponent.setNormalizedRpm","title":"setNormalizedRpm(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.OffscreenWindow","title":"OffscreenWindow","text":"

    Bases: Window

    "},{"location":"python_api/skybolt.html#skybolt.Orientation","title":"Orientation","text":""},{"location":"python_api/skybolt.html#skybolt.Position","title":"Position","text":""},{"location":"python_api/skybolt.html#skybolt.Quaternion","title":"Quaternion","text":"

    Represents an orientation as a quarternion of [x, y, z, w] components

    "},{"location":"python_api/skybolt.html#skybolt.Quaternion-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.Quaternion.w","title":"w: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.Quaternion.x","title":"x: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.Quaternion.y","title":"y: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.Quaternion.z","title":"z: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.RectI","title":"RectI","text":"

    A rectangle defined by [x, y, width, height]

    "},{"location":"python_api/skybolt.html#skybolt.Scenario","title":"Scenario","text":""},{"location":"python_api/skybolt.html#skybolt.Scenario-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.Scenario.currentJulianDate","title":"currentJulianDate: float property","text":""},{"location":"python_api/skybolt.html#skybolt.Scenario.startJulianDate","title":"startJulianDate: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.Scenario.time","title":"time: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.ScenarioMetadataComponent","title":"ScenarioMetadataComponent","text":"

    Bases: Component

    "},{"location":"python_api/skybolt.html#skybolt.ScenarioMetadataComponent-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.ScenarioMetadataComponent.deletable","title":"deletable: bool instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.ScenarioMetadataComponent.directory","title":"directory: VectorString instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.ScenarioMetadataComponent.serializable","title":"serializable: bool instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.StandaloneWindow","title":"StandaloneWindow","text":"

    Bases: Window

    "},{"location":"python_api/skybolt.html#skybolt.TemplateNameComponent","title":"TemplateNameComponent","text":"

    Bases: Component

    A component storing the name of the template which an Entity instantiates

    "},{"location":"python_api/skybolt.html#skybolt.TemplateNameComponent-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.TemplateNameComponent.name","title":"name: str property","text":""},{"location":"python_api/skybolt.html#skybolt.Vector3","title":"Vector3","text":"

    A 3D vector of [x, y, z] components

    "},{"location":"python_api/skybolt.html#skybolt.Vector3-attributes","title":"Attributes","text":""},{"location":"python_api/skybolt.html#skybolt.Vector3.x","title":"x: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.Vector3.y","title":"y: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.Vector3.z","title":"z: float instance-attribute","text":""},{"location":"python_api/skybolt.html#skybolt.VectorString","title":"VectorString","text":""},{"location":"python_api/skybolt.html#skybolt.VectorString-functions","title":"Functions","text":""},{"location":"python_api/skybolt.html#skybolt.VectorString.append","title":"append(x)","text":"

    Add an item to the end of the list

    "},{"location":"python_api/skybolt.html#skybolt.VectorString.clear","title":"clear()","text":"

    Clear the contents

    "},{"location":"python_api/skybolt.html#skybolt.VectorString.count","title":"count(x)","text":"

    Return the number of times x appears in the list

    "},{"location":"python_api/skybolt.html#skybolt.VectorString.insert","title":"insert(i, x)","text":"

    Insert an item at a given position.

    "},{"location":"python_api/skybolt.html#skybolt.VectorString.remove","title":"remove(x)","text":"

    Remove the first item from the list whose value is x. It is an error if there is no such item.

    "},{"location":"python_api/skybolt.html#skybolt.VisRoot","title":"VisRoot","text":""},{"location":"python_api/skybolt.html#skybolt.VisRoot-functions","title":"Functions","text":""},{"location":"python_api/skybolt.html#skybolt.VisRoot.addWindow","title":"addWindow(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.VisRoot.removeWindow","title":"removeWindow(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.VisRoot.setLoadTimingPolicy","title":"setLoadTimingPolicy(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.Window","title":"Window","text":""},{"location":"python_api/skybolt.html#skybolt.World","title":"World","text":""},{"location":"python_api/skybolt.html#skybolt.World-functions","title":"Functions","text":""},{"location":"python_api/skybolt.html#skybolt.World.addEntity","title":"addEntity(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.World.findObjectByName","title":"findObjectByName(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.World.getEntities","title":"getEntities()","text":""},{"location":"python_api/skybolt.html#skybolt.World.removeAllEntities","title":"removeAllEntities()","text":""},{"location":"python_api/skybolt.html#skybolt.World.removeEntity","title":"removeEntity(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt-functions","title":"Functions","text":""},{"location":"python_api/skybolt.html#skybolt.attachCameraToWindowWithEngine","title":"attachCameraToWindowWithEngine(arg0, arg1, arg2)","text":""},{"location":"python_api/skybolt.html#skybolt.calcSmallestAngleFromTo","title":"calcSmallestAngleFromTo(arg0, arg1)","text":""},{"location":"python_api/skybolt.html#skybolt.createEngineRootWithDefaults","title":"createEngineRootWithDefaults()","text":"

    Create an EngineRoot with default values

    "},{"location":"python_api/skybolt.html#skybolt.cross","title":"cross(arg0, arg1)","text":""},{"location":"python_api/skybolt.html#skybolt.dot","title":"dot(arg0, arg1)","text":""},{"location":"python_api/skybolt.html#skybolt.getGlobalEngineRoot","title":"getGlobalEngineRoot()","text":"

    Get global EngineRoot

    "},{"location":"python_api/skybolt.html#skybolt.moveDistanceAndBearing","title":"moveDistanceAndBearing(arg0, arg1, arg2)","text":""},{"location":"python_api/skybolt.html#skybolt.normalize","title":"normalize(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.quaternionFromEuler","title":"quaternionFromEuler(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.registerComponent","title":"registerComponent(arg0, arg1)","text":""},{"location":"python_api/skybolt.html#skybolt.render","title":"render(engineRoot, window)","text":""},{"location":"python_api/skybolt.html#skybolt.setGlobalEngineRoot","title":"setGlobalEngineRoot(arg0)","text":"

    Set global EngineRoot

    "},{"location":"python_api/skybolt.html#skybolt.setWaveHeight","title":"setWaveHeight(arg0, arg1)","text":""},{"location":"python_api/skybolt.html#skybolt.stepSim","title":"stepSim(arg0, arg1)","text":""},{"location":"python_api/skybolt.html#skybolt.toGeocentricOrientation","title":"toGeocentricOrientation(arg0, arg1)","text":""},{"location":"python_api/skybolt.html#skybolt.toGeocentricPosition","title":"toGeocentricPosition(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.toLatLon","title":"toLatLon(arg0)","text":""},{"location":"python_api/skybolt.html#skybolt.transformToScreenSpace","title":"transformToScreenSpace(arg0, arg1)","text":""},{"location":"python_api/skybolt_util.html","title":"skybolt_util","text":"

    Utility functionality for working with Skybolt in Python.

    "},{"location":"python_api/skybolt_util.html#skybolt_util-functions","title":"Functions","text":""},{"location":"python_api/skybolt_util.html#skybolt_util.geocentric_to_lla","title":"geocentric_to_lla(xyz)","text":"

    Converts a geocentric position Vector3 to a LatLonAlt

    "},{"location":"python_api/skybolt_util.html#skybolt_util.lla_to_geocentric","title":"lla_to_geocentric(lla)","text":"

    Converts a LatLonAlt to a geocentric position Vector3

    "},{"location":"python_api/skybolt_util.html#skybolt_util.rpy_to_geocentric_quat","title":"rpy_to_geocentric_quat(rpy, lat_lon)","text":"

    Converts a roll, pitch, yaw Vector3 to a Quartion at the given LatLonAlt location

    "},{"location":"python_api/skybolt_util.html#skybolt_util.set_entity_lla","title":"set_entity_lla(entity, lla)","text":"

    Sets the position of an entity to a latitude, longitude and altitude

    "},{"location":"python_api/skybolt_util.html#skybolt_util.set_entity_lla_rpy","title":"set_entity_lla_rpy(entity, lla, rpy)","text":"

    Sets the position of an entity to a latitude, longitude and altitude, and sets the orientation to a roll, pitch, yaw vector.

    "}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"index.html","title":"Overview","text":"

    Skybolt is a 3D geospatial application for simulating and visualizing dynamic entities in planetary environments.

    With Skybolt you can:

    • Create scenarios featuring dynamic 3D objects with modular components and properties.
    • Interact with objects via 3D geospatial user interface.
    • Render photoreal environments featuring terrain, ocean, buildings, roads, vegetation, and clouds.
    • Import and visualize data from external sources including CSV files and CIGI host applications.
    • Extend functionality with C++ and Python plugins.
    "},{"location":"index.html#getting-started","title":"Getting Started","text":"

    Continue to the Getting Started guide.

    "},{"location":"index.html#contact","title":"Contact","text":"

    To submit a bug report, please raise an issue on the GitHub repository. For general discussion, please post on our GitHub discussions page. For business enquiries, please use our contact form.

    "},{"location":"index.html#license","title":"License","text":"

    This project is licensed under the Mozilla Public License Version 2.0.

    "},{"location":"architecture.html","title":"Architecture","text":""},{"location":"architecture.html#core","title":"Core","text":"

    The Skybolt engine is based on a flexible entity-component system, which makes it easy to represent both physical and non-physical objects in the world.

    "},{"location":"architecture.html#skyboltsim","title":"SkyboltSim","text":"

    At the heart of the engine, the SkyboltSim library manages the simulation loop and handles dynamics and system state updates.

    The main aspects of the simulation architecture are:

    • Simulation Loop: Continuously updates the state of entities based on dynamics, user input, and external data.
    • Systems: Handle core processes such as dynamics simulation.
    • Entities: Objects in the simulation. Each entity can represent a physical object (e.g. aircraft, ship) or an non-physical object that performs a function.
    • Components: Modular building blocks giving functionality to entities. Components may define an entity's position, behavior, appearance, or other characteristics.
    "},{"location":"architecture.html#skyboltvis","title":"SkyboltVis","text":"

    The SkyboltVis library renders visual represenations of entities. The renderer is built to provide physically plausible imagery from ground level to space. The renderer uses tile-based streaming from geospatial sources, allowing efficient real-time loading of terrain and features such as buildings, roads, rivers and lakes.

    Environments are rendered use multiple physically-based lighting techniques:

    • Hard-surface BRDFs to render hard objects like aircraft, terrain and buildings
    • Planetary atmospheric scattering model
    • Volumetric cloud ray-marcher

    Under the hood, SkyboltVis uses OpenSceneGraph to manage scene graph state, issue draw calls, and handle 2D/3D asset file IO.

    "},{"location":"architecture.html#skyboltengine","title":"SkyboltEngine","text":"

    The SkyboltEngine library ties together SkyboltSim and SkyboltVis, and provides engine-level functionality like user input, scenario management, and plugin support.

    "},{"location":"architecture.html#plugins","title":"Plugins","text":"

    To support a wide variety of use cases, the simulation engine is extensible through C++ and Python plugins.

    • C++ Plugins: Leverages high-performance code for simulation-critical functionality.
    • Python Plugins: For rapid prototyping, scripting, and extending functionality, for example adding new entity component types.
    "},{"location":"architecture.html#graphical-user-interface-gui","title":"Graphical User Interface (GUI)","text":"

    The application features a Qt-based graphical user interface that allows users to interact with entities in the 3D environment. The SkyboltQt library provides funcionality for GUI widgets and bindings between the GUI and the engine.

    "},{"location":"asset_packages.html","title":"Asset Packages","text":"

    At runtime, Skybolt uses assets such as meshes, textures, and shaders. These assets are organized into packages. Each package is a folder containing a hierarchy of asset files on disk.

    Some packages are requied to run Skybolt, while others are optional. The pre-built version of Skybolt ships with the minimum set of required packages. If you compiled Skybolt from source, please ensure Skybolt can find the required packages.

    Skybolt searches for asset packages in these locations:

    1. <CurrentWorkingDirectory>/Assets
    2. Paths in the SKYBOLT_ASSETS_PATH environment variable
    "},{"location":"asset_packages.html#required-packages","title":"Required Packages","text":""},{"location":"asset_packages.html#core","title":"\"Core\"","text":"

    Core assets including fonts, icons, shaders and python modules. Located under the Assets folder in the main repository.

    "},{"location":"asset_packages.html#packages-in-the-skyboltassets-repository","title":"Packages in the SkyboltAssets repository","text":"

    These packages required for running the SkyboltQtApp and example applications. These are located in the SkyboltAssets repository. SkyboltAssets uses DVC for remote storage and retrieval of large files which are not stored in the git repository itself.

    To checkout the SktboltAssets repository:

    1. If you do not already have DVC installed, run pip install dvc[s3] to install with pip
    2. Clone SkyboltAssets and checkout desired git branch/tag
    3. Run dvc pull command in the SkyboltAssets root directory to fetch the remote files
    "},{"location":"asset_packages.html#optional-packages","title":"Optional Packages","text":""},{"location":"asset_packages.html#nlcdlandcover","title":"\"NLCDLandCover\"","text":"

    Land cover tiles for USA. Used by Skybolt to place trees on terrain in forest areas. This package can be downloaded here.

    "},{"location":"asset_packages.html#seattle","title":"\"Seattle\"","text":"

    Map features (buildings, roads, lakes etc) for the city of Seattle. These features were generated from OpenStreetMap data using Skybolt's MapFeaturesConverter tool. This package can be downloaded here.

    "},{"location":"building_from_source.html","title":"Building from Source","text":"

    Skybolt uses the CMake meta-build system and the Conan package manager.

    A list of skybolt dependencies can be found in conanfile.py.

    "},{"location":"building_from_source.html#1-install-conan","title":"1. Install Conan","text":"

    Install with pip: pip3 install conan.

    "},{"location":"building_from_source.html#2-build-skybolt","title":"2. Build Skybolt","text":"

    Use conan to build Skybolt. Under the hood this will execute CMake to generate project files for your IDE and compile the project.

    conan build %SKYBOLT_SOURCE% --output-folder=%SKYBOLT_BUILD% --lockfile-partial\n

    Custom configuration options may be supplied with the -o argument, for example:

    conan build %SKYBOLT_SOURCE% --output-folder=%SKYBOLT_BUILD%  --lockfile-partial -o openscenegraph-mr:shared=True -o enable_python=True -o enable_qt=True -o enable_bullet=True -o enable_cigi=True\n

    Please refer to conanfile.py for a full list of available configuration options.

    "},{"location":"building_from_source.html#3-install-asset-packages","title":"3. Install Asset Packages","text":"

    Skybolt needs a minimum set of required asset packages to run. These packages are shipped with the pre-built Skybolt version, but must be installed manually when building from source. See Asset Packages for details.

    "},{"location":"configuration.html","title":"Configuration","text":""},{"location":"configuration.html#engine-settings","title":"Engine Settings","text":"

    Engine settings are stored in a Settings.json json file, which may be manually edited with a text editor, or edited in the SkyboltQtApp using the Tools->Settings dialog.

    The settings file can be loaded by Skybolt applications with the --settingsFile commandline option. If the option is not specified, a default Settings.json in the Operating System user's home directory will be used. On windows, this is located at C:/Users/%USERNAME%/AppData/Local/Skybolt/Settings.json.

    "},{"location":"configuration.html#environment-variables","title":"Environment Variables","text":"
    • SKYBOLT_PLUGINS_PATH sets plugin search locations. The /plugins folder in the application executable's directory is searched in additional to this path.
    • SKYBOLT_CACHE_DIR sets the directory where cached terrain tiles are read from and written to. If not set, the default directory is C:/Users/%USERNAME%/AppData/Local/Skybolt/Cache
    • SKYBOLT_ASSETS_PATH sets the search locations for asset packages.
    • SKYBOLT_MAX_CORES sets the maximum number of CPU cores the engine may use. If not set, all cores are used.
    "},{"location":"configuration.html#third-party-map-data","title":"Third Party Map Data","text":"

    By default, the PlanetEarth Skybolt entity uses mapbox for albedo and elevation data. To use mapbox, you must acquire an API key from Mapbox. Without an API key, the tiles will not download, the the planet will not render correctly. If desired, PlanetEarth can be edited to use Bing maps for albedo instead. A bing key can be obtained from Microsoft.

    API keys for third party map sources are stored in the engine settings file Settings.json.

    "},{"location":"getting_started.html","title":"Getting Started","text":""},{"location":"getting_started.html#obtaining-skybolt","title":"Obtaining Skybolt","text":"

    Skybolt can be obtained using one of the following methods:

    • Download a pre-built version on supported operating systems
    • Build from source
    "},{"location":"getting_started.html#running-the-gui-application","title":"Running the GUI Application","text":"

    The main Skybolt GUI application can be started by running the SkyboltQtApp executable from the bin folder.

    To explore example scenarios, navigate to the /Scenarios folder, where you will find pre-configured scenarios that demonstrate use cases of the application.

    "},{"location":"getting_started.html#writing-plugins","title":"Writing Plugins","text":"

    Skybolt supports Python and C++ plugins as follows:

    "},{"location":"getting_started.html#python","title":"Python","text":"

    Skybolt allows users to implement new Entity Component types in Python. These components are initialized when the entity is added to the scene, updated each time step, and destroyed when the entity is removed.

    The ReplaySource is an example of a component implemented in Python. This component is responsible for replaying simulation data from a CSV file. See Assets/Core/Scripts/replay_source.py.

    At runtime, Skybolt searches for python plugin modules inside asset packages under <AssetPackage>/Scripts.

    "},{"location":"getting_started.html#c","title":"C++","text":"

    Skybolt allows develpers to add new engine functionality by writing C++ plugins. Please refer to src/Skybolt/SkyboltEnginePlugins/ for examples.

    At runtime, Skybolt searches for plugins under the bin/plugins folder.

    "},{"location":"getting_started.html#using-python-api-without-the-gui","title":"Using Python API without the GUI","text":"

    Skybolt has a python API which allows the engine to be used outside the SkyboltQtApp application. Refer to src/SkyboltExamples/MinimalPython/MinimalPython.py as an example. See also Python API documentation.

    "},{"location":"python_api/index.html","title":"Python API","text":"

    Skybolt comes with the following Python modules:

    • skybolt - provides access to Skybolt Engine C++ functionality.
    • skybolt_util - auxilary utility functionality.
    "},{"location":"python_api/skybolt.html","title":"skybolt","text":"

    Python API for accessing Skybolt Engine C++ functionality.

    "},{"location":"python_api/skybolt_util.html","title":"skybolt_util","text":"

    Utility functionality for working with Skybolt in Python.

    "},{"location":"python_api/skybolt_util.html#skybolt_util-functions","title":"Functions","text":""},{"location":"python_api/skybolt_util.html#skybolt_util.geocentric_to_lla","title":"geocentric_to_lla(xyz)","text":"

    Converts a geocentric position Vector3 to a LatLonAlt

    "},{"location":"python_api/skybolt_util.html#skybolt_util.lla_to_geocentric","title":"lla_to_geocentric(lla)","text":"

    Converts a LatLonAlt to a geocentric position Vector3

    "},{"location":"python_api/skybolt_util.html#skybolt_util.rpy_to_geocentric_quat","title":"rpy_to_geocentric_quat(rpy, lat_lon)","text":"

    Converts a roll, pitch, yaw Vector3 to a Quartion at the given LatLonAlt location

    "},{"location":"python_api/skybolt_util.html#skybolt_util.set_entity_lla","title":"set_entity_lla(entity, lla)","text":"

    Sets the position of an entity to a latitude, longitude and altitude

    "},{"location":"python_api/skybolt_util.html#skybolt_util.set_entity_lla_rpy","title":"set_entity_lla_rpy(entity, lla, rpy)","text":"

    Sets the position of an entity to a latitude, longitude and altitude, and sets the orientation to a roll, pitch, yaw vector.

    "}]} \ No newline at end of file