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.