Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes

DataPointSet Class Reference

Set of data points with group selection. More...

Inheritance diagram for DataPointSet:
PointDataPack DataPack NamedObject CallBacker

List of all members.

Classes

class  DataRow
 Data point with group. Group 0 means 'inactive', it can never be selected. More...
class  Pos
 Real Coord3D-position storable in BinIDValueSet + trc nr. More...

Public Types

typedef int RowID
typedef int ColID

Public Member Functions

 DataPointSet (const TypeSet< DataRow > &, const ObjectSet< DataColDef > &, bool is2d, bool minimal=false)
 DataPointSet (const TypeSet< DataRow > &, const BufferStringSet &valnms, bool is2d, bool minimal=false)
 DataPointSet (::Pos::Provider &, const ObjectSet< DataColDef > &, const ::Pos::Filter *f=0, bool minimal=false)
 DataPointSet (const PosVecDataSet &, bool is2d, bool minimal=false)
 DataPointSet (const DataPointSet &, const ::Pos::Filter &)
 DataPointSet (const DataPointSet &)
virtual ~DataPointSet ()
DataPointSetoperator= (const DataPointSet &)
bool is2D () const
bool isMinimal () const
bool isEmpty () const
void setEmpty ()
int nrCols () const
int nrFixedCols () const
const char * colName (ColID) const
const UnitOfMeasureunit (ColID) const
const DataColDefcolDef (ColID i) const
ColID indexOf (const char *) const
int size () const
BinID binID (RowID) const
Coord coord (RowID) const
float z (RowID) const
int trcNr (RowID) const
Pos pos (RowID) const
DataRow dataRow (RowID) const
float value (ColID, RowID) const
float * getValues (RowID)
const float * getValues (RowID) const
unsigned short group (RowID) const
bool isSelected (RowID) const
int selGroup (RowID) const
bool isInactive (RowID rid) const
void setGroup (RowID, unsigned short)
void setSelected (RowID, int selgrp)
void setInactive (RowID, bool)
int nrActive () const
void purgeInactive ()
void purgeSelected (bool selected_rows=true)
RowID find (const Pos &) const
RowID findFirst (const Coord &) const
RowID findFirst (const BinID &) const
const PosVecDataSetdataSet () const
const BinIDValueSetbivSet () const
BinIDValueSetbivSet ()
PosVecDataSetdataSet ()
void randomSubselect (int maxsz)
int bivSetIdx (ColID idx) const
void dataChanged ()
void addRow (const DataRow &)
 When finished, you have to call dataChanged().
bool setRow (const DataRow &)
RowID getRowID (BinIDValueSet::Pos) const
DataColDefcolDef (ColID i)
BinIDValueSet::Pos bvsPos (RowID rid) const
 DataPointSet (bool is2d, bool minimal=false)
 use dataSet() to add columns
bool simpleCoords () const
 If true, coords are always SI().tranform(b).
float nrKBytes () const
void dumpInfo (IOPar &) const

Protected Member Functions

void initPVDS ()
void init (const TypeSet< DataRow > &, const ObjectSet< DataColDef > &)
void calcIdxs ()
DataColDefgtColDef (ColID) const

Protected Attributes

PosVecDataSetdata_
TypeSet< BinIDValueSet::Posbvsidxs_
bool is2d_
bool minimal_
const int nrfixedcols_

Static Protected Attributes

static const int groupcol_

Detailed Description

Set of data points with group selection.

The idea is to generate a set of data points, which are then put in different groups. The data is transferred into a BinIDValueSet for performance, but a fixed int addressing becomes available.

The design is based on the model that you extract data in some way which should then be quickly accessible. The data set is not meant to be manipulated other than via setSelected() and setGroup().

For data associated with 2D seismics, you can specify that the DataPointSet needs to be 2D; then also 'trcNr() can be used.

For large sets, you may not be interested in precise X and Y, and grouping/selection. Then specify the 'minimal' flag on construction.


Member Typedef Documentation

typedef int DataPointSet::ColID
typedef int DataPointSet::RowID

Constructor & Destructor Documentation

DataPointSet::DataPointSet ( const TypeSet< DataRow > &  ,
const ObjectSet< DataColDef > &  ,
bool  is2d,
bool  minimal = false 
)
DataPointSet::DataPointSet ( const TypeSet< DataRow > &  ,
const BufferStringSet valnms,
bool  is2d,
bool  minimal = false 
)
DataPointSet::DataPointSet ( ::Pos::Provider ,
const ObjectSet< DataColDef > &  ,
const ::Pos::Filter f = 0,
bool  minimal = false 
)
DataPointSet::DataPointSet ( const PosVecDataSet ,
bool  is2d,
bool  minimal = false 
)
DataPointSet::DataPointSet ( const DataPointSet ,
const ::Pos::Filter  
)
DataPointSet::DataPointSet ( const DataPointSet  ) 
virtual DataPointSet::~DataPointSet (  )  [virtual]
DataPointSet::DataPointSet ( bool  is2d,
bool  minimal = false 
)

use dataSet() to add columns


Member Function Documentation

void DataPointSet::addRow ( const DataRow  ) 

When finished, you have to call dataChanged().

BinID DataPointSet::binID ( RowID   )  const
BinIDValueSet& DataPointSet::bivSet (  ) 

The idea is to manage vectors with the selection mechanism. But if you really must remove vectors, this may be your access point

const BinIDValueSet& DataPointSet::bivSet (  )  const [inline]
int DataPointSet::bivSetIdx ( ColID  idx  )  const [inline]
BinIDValueSet::Pos DataPointSet::bvsPos ( RowID  rid  )  const [inline]
void DataPointSet::calcIdxs (  )  [protected]
DataColDef& DataPointSet::colDef ( ColID  i  )  [inline]
const DataColDef& DataPointSet::colDef ( ColID  i  )  const [inline]
const char* DataPointSet::colName ( ColID   )  const
Coord DataPointSet::coord ( RowID   )  const
void DataPointSet::dataChanged (  )  [inline]

When data modified, you want to call this. all RowIDs may change In case you want to change the definition of a col

DataRow DataPointSet::dataRow ( RowID   )  const
const PosVecDataSet& DataPointSet::dataSet (  )  const [inline]
PosVecDataSet& DataPointSet::dataSet (  )  [inline]

To add/remove columns. Never remove the position columns!

void DataPointSet::dumpInfo ( IOPar  )  const [virtual]

Reimplemented from DataPack.

RowID DataPointSet::find ( const Pos  )  const
RowID DataPointSet::findFirst ( const Coord  )  const
RowID DataPointSet::findFirst ( const BinID  )  const
RowID DataPointSet::getRowID ( BinIDValueSet::Pos   )  const
float* DataPointSet::getValues ( RowID   ) 
const float* DataPointSet::getValues ( RowID   )  const
unsigned short DataPointSet::group ( RowID   )  const
DataColDef& DataPointSet::gtColDef ( ColID   )  const [protected]
ColID DataPointSet::indexOf ( const char *   )  const
void DataPointSet::init ( const TypeSet< DataRow > &  ,
const ObjectSet< DataColDef > &   
) [protected]
void DataPointSet::initPVDS (  )  [protected]
bool DataPointSet::is2D (  )  const [inline]
bool DataPointSet::isEmpty (  )  const [inline]
bool DataPointSet::isInactive ( RowID  rid  )  const [inline]
bool DataPointSet::isMinimal (  )  const [inline]
bool DataPointSet::isSelected ( RowID   )  const
int DataPointSet::nrActive (  )  const
int DataPointSet::nrCols (  )  const
int DataPointSet::nrFixedCols (  )  const [inline]
float DataPointSet::nrKBytes (  )  const [virtual]

Implements DataPack.

DataPointSet& DataPointSet::operator= ( const DataPointSet  ) 
Pos DataPointSet::pos ( RowID   )  const
void DataPointSet::purgeInactive (  ) 
void DataPointSet::purgeSelected ( bool  selected_rows = true  ) 
void DataPointSet::randomSubselect ( int  maxsz  ) 
int DataPointSet::selGroup ( RowID   )  const
void DataPointSet::setEmpty (  ) 
void DataPointSet::setGroup ( RowID  ,
unsigned  short 
)
void DataPointSet::setInactive ( RowID  ,
bool   
)
bool DataPointSet::setRow ( const DataRow  ) 

Can be add or change Returns whether it's an add (see addRow)

void DataPointSet::setSelected ( RowID  ,
int  selgrp 
)
bool DataPointSet::simpleCoords (  )  const [inline, virtual]

If true, coords are always SI().tranform(b).

Reimplemented from PointDataPack.

int DataPointSet::size (  )  const [inline, virtual]

Implements PointDataPack.

int DataPointSet::trcNr ( RowID   )  const
const UnitOfMeasure* DataPointSet::unit ( ColID   )  const
float DataPointSet::value ( ColID  ,
RowID   
) const
float DataPointSet::z ( RowID   )  const

Member Data Documentation

const int DataPointSet::groupcol_ [static, protected]
bool DataPointSet::is2d_ [protected]
bool DataPointSet::minimal_ [protected]
const int DataPointSet::nrfixedcols_ [protected]