void OkcViewDisplay::refreshBrush() { OkcVisualMapResult* okvVMR = getOkcVisualMapResult(); Operator* brushQ = (Operator*)(okvVMR->getBrushOperator()); PipelineManager* pm = getPipelineManager(); Brush *brush = okvVMR->getBrush(); //If the maximum and minimum values for one dimension has the exact same value, //they should be adjusted to a little different values, //otherwise, some records having the same value as this max/min value //cannot be highlighted. int i; for (i=0; i<brush->getDimSize(); i++) { brush->max[i] += XMDV_DBL_EPSILON; brush->min[i] -= XMDV_DBL_EPSILON; } OkcData* brushStorage = brush->toOkcDataStorage(); std::vector<double> buf; brushStorage->getData(buf, 3); int pID = getPipelineID(); // update the assistant input by the reverse pipeline pm->updateAssisInput(pID, brushStorage, XmdvTool::ASSISDATA_BRUSH); delete brushStorage; pm->assemble(pID, brushQ); getViewManager()->refreshDisplayByPID(pID); }