28 #ifndef _TwoDMeshTopology_h
29 #define _TwoDMeshTopology_h 1
31 #include <gridfields/type.h>
32 #include <gridfields/gridfield.h>
33 #include <gridfields/grid.h>
34 #include <gridfields/cellarray.h>
42 class MeshDataVariable;
61 BaseType *d_myMeshVar;
83 vector<libdap::Array *> *nodeCoordinateArrays;
84 string nodeDimensionName;
118 libdap::Array *faceNodeConnectivityArray;
119 libdap::Array::Dim_iter fncNodesDim, fncFacesDim;
120 string faceDimensionName;
123 vector<MeshDataVariable *> *rangeDataArrays;
176 vector<string> *faceCoordinateNames;
177 vector<libdap::Array *> *faceCoordinateArrays;
192 GF::Grid *gridTopology;
193 GF::GridField *d_inputGridField;
194 GF::GridField *resultGridField;
196 vector <int *> *sharedIntArrays;
197 vector<float *> *sharedFloatArrays;
199 vector<GF::Array *> gfArrays;
201 GF::Node *fncCellArray;
206 void ingestFaceNodeConnectivityArray(libdap::BaseType *meshTopology, libdap::DDS *dds);
207 void ingestNodeCoordinateArrays(libdap::BaseType *meshTopology, libdap::DDS *dds);
208 void ingestFaceCoordinateArrays(libdap::BaseType *meshTopology, libdap::DDS *dds);
210 GF::Node *getFncArrayAsGFCells(libdap::Array *fncVar);
211 int getStartIndex(libdap::Array *array);
212 GF::CellArray *getFaceNodeConnectivityCells();
214 libdap::Array *getGFAttributeAsDapArray(libdap::Array *sourceArray,
locationType rank, GF::GridField *resultGridField);
215 libdap::Array *getGridFieldCellArrayAsDapArray(GF::GridField *resultGridField, libdap::Array *sourceFcnArray);
216 libdap::Array *getNewFncDapArray(libdap::Array *templateArray,
int N);
226 void init(
string meshVarName, libdap::DDS *dds);
228 string name(){
return getMeshVariable()->name();}
231 void buildBasicGfTopology();
232 void applyRestrictOperator(
locationType loc,
string filterExpression);
239 void convertResultGridFieldStructureToDapObjects(vector<libdap::BaseType *> *results);
246 void getResultIndex(
locationType location,
void *target);
249 void getResultGFAttributeValues(
string attrName, libdap::Type type,
locationType rank,
void *target);
254 #endif // _TwoDMeshTopology_h
libdap::BaseType * getMeshVariable()
static class NCMLUtil overview
CURL * init(char *error_buffer)
Get's a new instance of CURL* and performs basic configuration of that instance.
Identifies the location/rank/dimension that various grid components are associated with...