//This method gets called for every brush dab for every symmetrical brush. Bool SculptSelectionBrush::MovePointsFunc(BrushDabData* dab) { //Get the PolygonObject that this brush dab is touching. //If its a sculpt object (ie it has a SculptTag) then this object is a high res object and not the base object so we can't change selections on it. if (dab->IsSculptObject()) return false; PolygonObject* pPoly = dab->GetPolygonObject(); //Get the polygon selection for the PolygonObject. BaseSelect* pSelect = pPoly->GetPolygonS(); //Loop over every polygon that the brush dab has touched and add the index for the polygon to the selection. Int32 polyCount = dab->GetPolyCount(); const BrushPolyData* pPolyData = dab->GetPolyData(); for (Int32 a = 0; a < polyCount; a++) { pSelect->Select(pPolyData[a].polyIndex); } pPoly->SetDirty(DIRTYFLAGS_SELECT); return true; }