Right now when we want to process a transient dataset with the extractor we would do something like this...
extractor->SetGridCellScalars(cellScalars, DynBitset(), LOC_CELLS);
for each time step. This triggers new calculations on data internal to the class that can take significant time when the grid is large.
The first time that we extract data at locations we should store information about those locations that we can use to quickly recalculate extracted values when new scalars and activity are stored.
Internal to the class, an extract location will be associated with a triangle. The 3 points that make up that triangle will have some relation to the original UGrid; the scalar values at those 3 locations will come from particular dataset scalars (usually just the dataset value at the points unless it is a cell dataset). The activity of the triangle will also have some relationship to particular dataset activity (point vs cell data). All of this information should be stored and associated with the extraction locations so that when scalars and activity are updated the computed, extracted values at the extract locations is very fast and we do not have to do any more spatial processing.
If the user sets new extract locations then this store information would be reset.
Right now when we want to process a transient dataset with the extractor we would do something like this... extractor->SetGridCellScalars(cellScalars, DynBitset(), LOC_CELLS); for each time step. This triggers new calculations on data internal to the class that can take significant time when the grid is large.
The first time that we extract data at locations we should store information about those locations that we can use to quickly recalculate extracted values when new scalars and activity are stored.
Internal to the class, an extract location will be associated with a triangle. The 3 points that make up that triangle will have some relation to the original UGrid; the scalar values at those 3 locations will come from particular dataset scalars (usually just the dataset value at the points unless it is a cell dataset). The activity of the triangle will also have some relationship to particular dataset activity (point vs cell data). All of this information should be stored and associated with the extraction locations so that when scalars and activity are updated the computed, extracted values at the extract locations is very fast and we do not have to do any more spatial processing.
If the user sets new extract locations then this store information would be reset.