|
virtual | ~SeisPSIOProvider () |
|
virtual bool | canHandle (bool forread, bool for2d) const |
|
virtual bool | fetchGeomIDs (const IOObj &, TypeSet< Pos::GeomID > &) const |
|
virtual bool | fetchLineNames (const IOObj &, BufferStringSet &) const |
|
virtual SeisPS2DReader * | get2DReader (const IOObj &, const char *) const |
|
virtual SeisPS2DReader * | get2DReader (const IOObj &, Pos::GeomID) const |
|
virtual SeisPSWriter * | get2DWriter (const IOObj &, const char *) const |
|
virtual SeisPSWriter * | get2DWriter (const IOObj &, Pos::GeomID) const |
|
virtual SeisPS3DReader * | get3DReader (const IOObj &, int i=mUdf(int)) const |
|
virtual SeisPSWriter * | get3DWriter (const IOObj &) const |
|
virtual bool | getGeomIDs (const char *, TypeSet< Pos::GeomID > &) const |
|
virtual bool | getLineNames (const char *, BufferStringSet &) const |
|
virtual SeisPS2DReader * | make2DReader (const char *, const char *lnm) const |
|
virtual SeisPS2DReader * | make2DReader (const char *, Pos::GeomID) const |
|
virtual SeisPSWriter * | make2DWriter (const char *, const char *lnm) const |
|
virtual SeisPSWriter * | make2DWriter (const char *, Pos::GeomID) const |
|
virtual SeisPS3DReader * | make3DReader (const char *, int i=mUdf(int)) const |
|
virtual SeisPSWriter * | make3DWriter (const char *) const |
|
StringView | type () const |
|
Prestack Seismics objects provider.
It is not mandatory to provide both reader and writer. Null returns must be expected.
The class has 2 sets of interface functions, both can be implemented. The OpendTect application will always use the first interface, which is the IOObj-based interface with the getXXX and fetchXXX functions. The second is if you do not want to make an IOObj but do know the IOObj.fullUserExpr. That can be used as the key for the makeXXX and (2nd bunch of ) getXXX functions.
The idea is to override the public virtual functions. Alternatively, if you know ioobj.fullUserExpr(), then you can override the makeReader and makeWriter functions. This was the only thing available in od5.0 and earlier. That key can be a file or directory, but also some kind of data store access code. The IOObj's tranlator() is used for the type. OpendTect's simple CBVS PS data store has type 'CBVS' (who'd have thought that!), and the data store key is a directory name.
If you pass an inline number to the getReader, you will get a Reader that should be able to read that inline, but be aware that this reader may not be able to provide the full geometry of the entire data store. If the inline is present in the data store, at least the segments for that inline should be filled (i.e. the geometry for that inline will be filled correctly). Construction time can be much faster when you pass an inline number. Pass: negative number for no scanning positive number for single inline usage mUdf(int) (=default) for scanning the entire datastore
For 2D prestack data stores, you have to pass a line name or GeomID to get the relevant reader. This can return null if the line id or name is not found.
<>