25#ifndef _GEMA_DISCONTINUITY_ACCESSOR_H_
26#define _GEMA_DISCONTINUITY_ACCESSOR_H_
32#include "gmSurfaceCellIntersection.h"
56 return _ac->value(queryIndex(d));
61 return _ac->scalarValue(queryIndex(d));
66 _ac->matrixValue(queryIndex(d), mat);
71 _ac->vectorValue(queryIndex(d), vec);
74 bool setValue (
const GmDiscontinuity* d,
const double* value) {
return _ac->setValue(queryIndex(d), value); }
75 bool setScalarValue (
const GmDiscontinuity* d,
double value) {
return _ac->setScalarValue(queryIndex(d), value); }
76 bool setScalarValueAtDim(
const GmDiscontinuity* d,
int dim,
double value) {
return _ac->setScalarValueAtDim(queryIndex(d), dim, value); }
77 bool setValueAsDef (
const GmDiscontinuity* d) {
return _ac->setValueAsDef(queryIndex(d)); }
78 bool setFunctionValue (
const GmDiscontinuity* d,
GmUserFunction* functionDef) { Q_UNUSED(d); Q_UNUSED(functionDef);
return logUserFunctionError(); }
82 int fieldWidth = 0,
char format =
'g',
int precision = -1)
const
84 return _ac->valueStr(queryIndex(d), evalFunctions, printDefAsNil, fieldWidth, format, precision, NULL);
89 Q_UNUSED(d); Q_UNUSED(userFunctionId);
90 err =
QObject::tr(
"Discontinuity accessor does not accept function values.");
96 return _ac->setValueFromVariant(queryIndex(d), v, acceptMissingDimension, err);
99 bool isDefValue(
const GmDiscontinuity* d)
const {
return _ac->isDefValue(queryIndex(d)); }
100 bool isFunction(
const GmDiscontinuity* d)
const {
return _ac->isFunction(queryIndex(d)); }
110 gmWarnMsg(bac->
_logger,
QObject::tr(
"Discontinuity accessor does not accept function values."));
155 : _dim(dim), _unit(desiredUnit), _conv(conv), _convData(NULL)
194 return _conv ? _conv->convertArray(p, _dim, _convData->localBuffer()) : p;
202 vec.
setMemory(value(ci, i), valueSize());
222 : _ds(ds), _size(size), _unit(desiredUnit), _conv(conv), _convData(NULL)
261 const double* p = _ds->consolidated3DPoints()[ci->
pointId[i]].memptr();
262 return _conv ? _conv->convertArray(p, _size, _convData->localBuffer()) : p;
270 vec.
setMemory(value(ci, i), valueSize());
Helper class with common code for several classes that wrap a value accessor, provinding a slitly dif...
Definition gmAccessorProxy.h:39
Extends GmDiscontinuityAccessor to handle attribute accessors.
Definition gmDiscontinuityAccessor.h:120
GmAttributeDiscontinuityAccessor(GmValueAccessor *ac)
Constructor. Takes ownership of the accessor.
Definition gmDiscontinuityAccessor.h:123
virtual int queryIndex(const GmDiscontinuity *d) const
A virtual function that given a cell returns the index that should be accessed.
Definition gmDiscontinuityAccessor.h:127
An auxiliary matrix WRAPPER that binds the matrix to a CONST memory area with data already inicialize...
Definition gmMatrix.h:102
An auxiliary vector WRAPPER that binds the vector to a CONST memory area with data already initialize...
Definition gmVector.h:72
void setMemory(const double *data, int nlin)
Exchanges the memory area used by the vector. Same caveats explained in the class documentation apply...
Definition gmVector.h:102
A simple accessor used to access 3d surface cell intersection data with possible unit conversion from...
Definition gmDiscontinuityAccessor.h:219
~GmCell3DIntersectionCoordAccessor()
Destructor.
Definition gmDiscontinuityAccessor.h:231
GmTLBuffer< double, true > * _convData
Per thread local buffer used to store converted data. Null if _conv == NULL.
Definition gmDiscontinuityAccessor.h:278
QString _unit
The unit in which data is being returned.
Definition gmDiscontinuityAccessor.h:276
bool hasUnitConversion() const
Returns true if this accessor perfroms unit conversions, false if not.
Definition gmDiscontinuityAccessor.h:245
int _size
The coordinate size.
Definition gmDiscontinuityAccessor.h:275
int valueSize() const
Returns the size of the array returned by value()
Definition gmDiscontinuityAccessor.h:248
const GmDiscontinuitySet * _ds
The discontinuity set.
Definition gmDiscontinuityAccessor.h:274
Unit unit() const
Returns the unit in which data returned by the accessor is expressed.
Definition gmDiscontinuityAccessor.h:242
const double * value(const Gm3DSurfaceCellIntersection *ci, int i) const
Returns the coordinate value associated with the givenc segment cell intersection object 'ci'....
Definition gmDiscontinuityAccessor.h:259
void vectorValue(const Gm3DSurfaceCellIntersection *ci, int i, GmCRVector &vec) const
Similar to value(), but returning the result as a CONST vector. Bear in mind that the resulting vecto...
Definition gmDiscontinuityAccessor.h:268
UnitConverter * _conv
Unit converter.
Definition gmDiscontinuityAccessor.h:277
A (much more) compact version of GmSegmentCellIntersection for 2d intersections only....
Definition gmSegmentCellIntersection.h:109
const double * rawCartCoord(int i) const
Same as cartCoord(i) but returning a pointer to the internal buffer. No cdata copy to construct a GmV...
Definition gmSegmentCellIntersection.h:168
The GmDiscontinuityAccessor class is a proxy object to a value accesor implementing a more convenient...
Definition gmDiscontinuityAccessor.h:48
virtual int queryIndex(const GmDiscontinuity *d) const =0
A virtual function that given a discontinuity returns the index that should be accessed.
bool logUserFunctionError()
Logs an error since discontinuity accessors can not work with functions.
Definition gmDiscontinuityAccessor.h:105
GmDiscontinuityAccessor(GmValueAccessor *ac)
Constructor. Takes ownership of the accessor.
Definition gmDiscontinuityAccessor.h:51
The geometric representation for a single discontinuity from the Discontinuity set....
Definition gmDiscontinuity.h:38
int index() const
Returns this discontinuity index in the father set.
Definition gmDiscontinuity.h:44
virtual int propertyIndex(int propertySet) const
Given a property set number, returns the line of the property set that contains property values for t...
Definition gmDiscontinuity.h:65
Base interface for providing discontinuity geometry information for spatial indices.
Definition gmDiscontinuitySet.h:59
Extends GmDiscontinuityAccessor to handle property accessors.
Definition gmDiscontinuityAccessor.h:132
virtual int queryIndex(const GmDiscontinuity *d) const
A virtual function that given a cell returns the index that should be accessed.
Definition gmDiscontinuityAccessor.h:139
GmPropertyDiscontinuityAccessor(GmValueAccessor *ac, int psetIndex)
Constructor. Takes ownership of the accessor.
Definition gmDiscontinuityAccessor.h:135
A simple accessor used to access 2d segment cell intersection data with possible unit conversion from...
Definition gmDiscontinuityAccessor.h:152
const double * value(const GmCompact2DSegmentCellIntersection *ci, int i) const
Returns the coordinate value associated with the givenc segment cell intersection object 'ci'....
Definition gmDiscontinuityAccessor.h:191
GmTLBuffer< double, true > * _convData
Per thread local buffer used to store converted data. Null if _conv == NULL.
Definition gmDiscontinuityAccessor.h:209
QString _unit
The unit in which data is being returned.
Definition gmDiscontinuityAccessor.h:207
Unit unit() const
Returns the unit in which data returned by the accessor is expressed.
Definition gmDiscontinuityAccessor.h:173
int valueSize() const
Returns the size of the array returned by value()
Definition gmDiscontinuityAccessor.h:179
~GmSegmentCell2DIntersectionCoordAccessor()
Destructor.
Definition gmDiscontinuityAccessor.h:162
bool hasUnitConversion() const
Returns true if this accessor perfroms unit conversions, false if not.
Definition gmDiscontinuityAccessor.h:176
int _dim
The coordinate dimension.
Definition gmDiscontinuityAccessor.h:206
void vectorValue(const GmCompact2DSegmentCellIntersection *ci, int i, GmCRVector &vec) const
Similar to value(), but returning the result as a CONST vector. Bear in mind that the resulting vecto...
Definition gmDiscontinuityAccessor.h:200
UnitConverter * _conv
Unit converter.
Definition gmDiscontinuityAccessor.h:208
A class similar to GmTLS that creates a buffer for each possible thread in the GmThreadManager,...
Definition gmThreadLocalBuffer.h:106
Class responsible for evaluating a UserFunction over a node / cell.
Definition gmUserFunction.h:160
Class used to store the definition of a user function and its parameters.
Definition gmUserFunction.h:82
An implementation of basic attributes and functions that should be common for most value accessor imp...
Definition gmValueAccessor.h:367
const GmLogCategory & _logger
The logger object used to report errors while accessing or setting data.
Definition gmValueAccessor.h:409
Interface class for accessing and setting values from an "indexable" collection of values.
Definition gmValueAccessor.h:60
Implementation of the GmAccessorProxy class Moved from gmCellAccessor.h.
#define GMC_API_EXPORT
Macro for controlling if the class is being exported (GEMA_CORE_LIB defined) or imported (GEMA_CORE_L...
Definition gmCoreConfig.h:35
Declaration of the GmDiscontinuity class.
Implementation of the GmDiscontinuitySet class.
Declaration of the GmSegmentCellIntersection class & friends.
QString tr(const char *sourceText, const char *disambiguation, int n)
Definition gmSurfaceCellIntersection.h:27
QVector< int > pointId
List of points ids in the global point list.
Definition gmSurfaceCellIntersection.h:31