INTViewer APIs for 3D Objects

3D objects are layers that are used to display a particular data object in a IWindow3D. All layers implement the com.interactive.intviewerapi.IObject3D interface. Some of the most important types of 3D objects are listed below:

  • ISeismicVolumeObject3D - to display seismic data in a 3D volume, including slices and probes
  • ISeismicPreStackObject3D - to display seismic data as gathers.
  • ISeismicLineObject3D - to display seismic data as planes.
  • IHorizonObject3D - to display a horizon in a 3D window.
  • IGridSurfaceObject3D - to display a grid surface in a 3D window.
  • IPointSetObject3D - to display pointset data in a 3D window.
  • ITriangleMeshObject3D - to display Gocad data in a 3D window.
  • IWellObject3D - to display well data in a 3D window

Many of the mechanisms and patterns used in 2D are reused in 3D. Here is a summary of commonly used classes, and their equivalent in the 2D world:

2D class/interface

ILayeredWindow

ILayeredWindowFactory

ILayer2D

ISeismicLayer or IMapSeismicLayer

IHorizonLayer or IMapHorizonLayer

IPointSetLayer or IMapPointSetLayer

ITriangleMeshLayer or IMapTriangleMeshLayer

IGridSurfaceLayer or IMapGridSurfaceLayer

IWellLayer or IMapWellLayer

ILayerFactory

ViewerWindowEvent

GlobalSelection

NamedProps

ILayerEventHandler

IObjectAction

IDataImporter

3D class/interface

IWindow3D

IWindow3DFactory

IObject3D

ISeismicVolumeObject3D,

ISeismicPreStackObject3D

or ISeismicLineObject3D

IHorizonObject3D

IPointSetObject3D

ITriangleMeshObject3D

IGridSurfaceObject3D

IWellObject3D

IObject3DFactory

<No Change>

<No Change>

<No Change>

<None>

<No Change>

<No Change>

Remarks

There are several types of 2D windows (XSection window, Map window, etc.).

There is only one window type in 3D. Methods to add and remove 3D objects are identical to their equivalent in 2D

From a user perspective, 3D objects are treated as layers.

The API makes use of the word "object" instead of "layer" to avoid the confusion with the 2D layers API.

All three 3D interfaces share the same data type (IDataChooser.SEISMIC). The class of 3D objects depends on the number of dimensions of the data. See Working with seismic 3D objects for use samples.

See Working with Horizon 3D Objects for use samples.

See Working with PointSet 3D Objects for use samples.

See Working with Triangle Mesh 3D objects for use samples.

See Working with Grid Surface 3D objects for use samples.

See Working with Well 3D objects for use samples.

When creating a new 3D object, the same data object passed as a parameter

to a 2D layer factory can be passed as a parameter to a 3D object factory.

The IData and IDataQuery interfaces are common to both 2D and 3D worlds.

The same global selection object can be used in 2D and 3D. Use GlobalSelection<ILayeredWindow> and GlobalSelection<ILayer2D> for 2D windows and layers. Use GlobalSelection<IWindow3D> and GlobalSelection<IObject3D> for 3D windows and objects.

The same named properties mechanism is used in 2D and 3D to modify windows and their content.

Most of the user interaction options in 3D windows are already used for rotation, zooming and object translation. As a result, there are no 3D object event handler customization options in 3D.

Drag and drop mechanisms are identical in 2D and 3D.

Working with seismic 3D objects - creating and setting attributes of a 3D seismic object in a 3D window.

Working with horizon 3D objects - creating and setting attributes of a 3D horizon object in a 3D window.

Working with pointset 3D objects - creating and setting attributes of a 3D pointset object in a 3D window.

Working with triangle mesh 3D objects - creating and setting attributes of a 3D triangle mesh object in a 3D window.

Working with grid surface 3D objects - creating and setting attributes of a 3D grid surface object in a 3D window.

Working with well 3D objects - creating and setting attributes of a 3D well object in a 3D window.

An API is also provided to create your own 3D Objects.