ISceneData

Description

interface Tinman.Engine.Scenes.Data.ISceneData

Derived from

IDisposable

Extended by

SceneData abstract

Base interface for classes that provide data for populating a scene dynamically at runtime.

A ISceneData object may contain any subset of the following data items:

Geo-references in a hierarchy of ISceneData are specified by these properties:

A scene data object may have children (see ChildCount), which creates a traversable hierarchy of scene data objects. The hierarchy contains nested spatial bounds:

The following properties provide a measure of the feature size of the data items, which may be used to determine visibility for specific 2D/3D views:

A ISceneData object may either be in read-only or read-write mode (see IsReadOnly). In read-write mode, its content may be updated by using the following methods:

Public / Methods

Child​Add


[OwnerReturn]
public method ChildAdd → ()

returns → ISceneDataBuilder

The builder to use for building the new child. If the returned builder is disposed without calling ISceneDataBuilder.Build, the provided data will be discarded and no child will be added.

Builds a new child and adds it to this ISceneObject

An implementation is allowed to insert new children at any index, so when the ISceneDataBuilder.Build method of the returned builder is called, the index values of existing children may change.

IOException

If an I/O error has occurred.

Child​At


public method ChildAt → (1)

index in : int32

[0..ISceneData.ChildCount-1]
The child index.

returns → ISceneData

The child item.

Returns the index in-th child of this scene database item.

IOException

If an I/O error has occurred.

Child​Find


public method ChildFind → (1)

name in : string

The child name.

returns → int32

The index of the child with the given name in or -1 iff not found.

Returns a child of this scene database item by its name.

Indices of existing children may change when ChildAdd is called

IOException

If an I/O error has occurred.

See also

ISceneData.Name

Child​Index


public method ChildIndex → (1)

data in : ISceneData

The scene database item.

returns → int32

The index of the given child with or -1 iff not found.

Returns the index of the given child scene database item.

IOException

If an I/O error has occurred.

Load​Custom​Shape


[ThreadSafe]
public method LoadCustomShape → (1)

progress opt : IProgressMonitor = null

Optional progress monitor to use.

returns → IShape

The loaded data or null iff not present.

Loads the custom shape data.

The returned IShape object may depend on this ISceneData object: if the latter is disposed, trying to access the former one may throw an exception.

Load​Decal


[ThreadSafe]
public method LoadDecal → (1)

progress opt : IProgressMonitor = null

Optional progress monitor to use.

returns → IImage

The loaded data or null iff not present.

Loads the decal data.

The returned IImage object may depend on this ISceneData object: if the latter is disposed, trying to access the former one may throw an exception.

IOException

If an I/O error has occurred.

Load​Model


[ThreadSafe]
public method LoadModel → (1)

progress opt : IProgressMonitor = null

Optional progress monitor to use.

returns → IModel

The loaded data or null iff not present.

Loads the model data.

The returned IModel object may depend on this ISceneData object: if the latter is disposed, trying to access the former one may throw an exception.

IOException

If an I/O error has occurred.

Load​Pyramid


[OwnerReturn] [ThreadSafe]
public method LoadPyramid → (1)

progress opt : IProgressMonitor = null

Optional progress monitor to use.

returns → IPixelPyramid

The loaded data or null iff not present.

Loads the pyramid data.

IOException

If an I/O error has occurred.

Load​Pyramid​Shape


[ThreadSafe]
public method LoadPyramidShape → (1)

progress opt : IProgressMonitor = null

Optional progress monitor to use.

returns → PixelPyramidShape

The loaded data or null iff not present.

Loads the pyramid shape data.

The returned PixelPyramidShape object may depend on this ISceneData object: if the latter is disposed, trying to access the former one may throw an exception.

IOException

If an I/O error has occurred.

Load​Raster


[OwnerReturn] [ThreadSafe]
public method LoadRaster → (1)

progress opt : IProgressMonitor = null

Optional progress monitor to use.

returns → IHeightmap

The loaded data or null iff not present.

Loads the raster data.

IOException

If an I/O error has occurred.

Load​Raster​Shape


[ThreadSafe]
public method LoadRasterShape → (1)

progress opt : IProgressMonitor = null

Optional progress monitor to use.

returns → HeightmapShape

The loaded data or null iff not present.

Loads the raster shape data.

The returned HeightmapShape object may depend on this ISceneData object: if the latter is disposed, trying to access the former one may throw an exception.

IOException

If an I/O error has occurred.

Save​Custom​Shape


[ThreadSafe]
public method SaveCustomShape → (2)

data in : IShape

The data to save or null to clear.

progress opt : IProgressMonitor = null

Optional progress monitor to use.

Saves or clears the custom shape data.

The content of the given data in will be transferred into this ISceneObject as an independent copy.

IOException

If an I/O error has occurred.

Save​Decal


[ThreadSafe]
public method SaveDecal → (2)

data in : IImage

The data to save or null to clear.

progress opt : IProgressMonitor = null

Optional progress monitor to use.

Saves or clears the decal data.

The content of the given data in will be transferred into this ISceneObject as an independent copy.

IOException

If an I/O error has occurred.

Save​Model


[ThreadSafe]
public method SaveModel → (2)

data in : IImage

The data to save or null to clear.

progress opt : IProgressMonitor = null

Optional progress monitor to use.

Saves or clears the model data.

The content of the given data in will be transferred into this ISceneObject as an independent copy.

IOException

If an I/O error has occurred.

Save​Pyramid


[ThreadSafe]
public method SavePyramid → (2)

data in : IPixelPyramid

The data to save or null to clear.

progress opt : IProgressMonitor = null

Optional progress monitor to use.

Saves or clears the pyramid data.

The content of the given data in will be transferred into this ISceneObject as an independent copy.

IOException

If an I/O error has occurred.

Save​Pyramid​Shape


[ThreadSafe]
public method SavePyramidShape → (2)

data in : PixelPyramidShape

The data to save or null to clear.

progress opt : IProgressMonitor = null

Optional progress monitor to use.

Saves or clears the pyramid shape data.

The content of the given data in will be transferred into this ISceneObject as an independent copy.

IOException

If an I/O error has occurred.

Save​Raster


[ThreadSafe]
public method SaveRaster → (2)

data in : IHeightmap

The data to save or null to clear.

progress opt : IProgressMonitor = null

Optional progress monitor to use.

Saves or clears the raster data.

The content of the given data in will be transferred into this ISceneObject as an independent copy.

IOException

If an I/O error has occurred.

Save​Raster​Shape


[ThreadSafe]
public method SaveRasterShape → (2)

data in : HeightmapShape

The data to save or null to clear.

progress opt : IProgressMonitor = null

Optional progress monitor to use.

Saves or clears the raster shape data.

The content of the given data in will be transferred into this ISceneObject as an independent copy.

IOException

If an I/O error has occurred.

Public / Attributes

Bounds​Geocentric


public attribute BoundsGeocentric → (get)

value : Sphere

The geocentric bounds or Sphere.Undefined iff there is no data.

Returns the spatial bounds of the scene data in the geocentric coordinate system.

The returned bounds are transitive and will thus contain the bounds of all descendants.

Bounds​Geographic


public attribute BoundsGeographic → (get)

value : LatLonRange

The geographic bounds or LatLonRange.Undefined iff there is no data.

Returns the spatial bounds of the scene data in the geographic coordinate system.

The returned bounds are transitive and will thus contain the bounds of all descendants.

Bounds​Projected


public attribute BoundsProjected → (get)

value : Box2D

The projected bounds or Box2D.Inverse iff there is no data.

Returns the spatial bounds of the scene data in the projected coordinate system.

The returned bounds are transitive and will thus contain the bounds of all descendants.

Child​Count


public attribute ChildCount → (get)

value : int32

[>=0]
The number of child items.

Returns the number of child items this scene database item has.

Flags


public attribute Flags → (get)

value : SceneDataFlags

The data flags.

Returns the data flags that indicate which data items are present.

The data flags are not transitive and refer to this ISceneData object only.

Georef​Datum


public attribute GeorefDatum → (get)

value : GeodeticDatum

The geodetic datum or null if none.

Returns the geodetic datum of this ISceneData object.

If GeorefDatum is not null, all descendent ISceneData objects will return a GeodeticDatum object that is equal but not necessarily the same. If null is returned, all ancestors will return null as well.

See also

Geocentric.For1

Georef​Geographic


public attribute GeorefGeographic → (get)

value : CoordinateSystem

The geographic coordinate system or null if none.

Returns the geographic coordinate system of this ISceneData object.

If GeorefDatum is null, this property will always return null, too. Otherwise, CoordinateSystem.Geographic will be equal to GeorefDatum and all descendent ISceneData objects will return a CoordinateSystem object that is equal but not necessarily the same. If null is returned, all ancestors will return null as well.

Georef​Local


public attribute GeorefLocal → (get)

value : ITerrainTransform

[not-null]
The terrain transform that defines the local coordinate system.

Returns the transformation that establishes the local coordinate system of this scene database item.

Georef​Projected


public attribute GeorefProjected → (get)

value : CoordinateSystem

The projected coordinate system or null if none.

Returns the projected coordinate system of this ISceneData object.

If GeorefGeographic is null, this property will always return null, too. Otherwise, CoordinateSystem.ToGeographic will be equal to GeorefGeographic and all descendent ISceneData objects will return a CoordinateSystem object that is equal but not necessarily the same. If null is returned, all ancestors will return null as well.

Is​Read​Only


public attribute IsReadOnly → (get)

value : bool

true if in read-only mode,
false if in read-write mode.

Is this ISceneData object read-only?

In read-only mode, none of the Save* methods is available. Calling any of them will throw an exception.

If a ISceneData object is read-only, all its descendants will also be read-only. If an object is read-write, all its ancestors will also be read-write.

Name


public attribute Name → (get)

value : string

[not-empty]
The item name.

Returns the name of this scene database item.

Node names must be unique among sibling data items of the same parent.

Size​Geocentric


public attribute SizeGeocentric → (get)

value : float64

[>=0]
The feature size, in geocentric units. If 0, the scene data will always be considered as invisible. If Maths.MaxDouble, the scene data will always be considered visible.

Returns the feature size of the scene data in the geocentric coordinate system.

The feature size may be used to determine if the data of this ISceneData would be too small for a specific 3D view.

Size​Projected


public attribute SizeProjected → (get)

value : float64

[>=0]
The feature size, in projected map units. If 0, the scene data will always be considered as invisible. If Maths.MaxDouble, the scene data will always be considered visible.

Returns the feature size of the scene data in the projected coordinate system.

The feature size may be used to determine if the data of this ISceneData would be too small for a specific 2D view.