HOOPS/MVO includes a utility function called HUtilityGeometryCreation::GenerateFEAShell which can be used to calculate more advanced color interpolation. It operates on a shell which already has color map values at the vertices, and recalculates a new shell that has quad based color interpolation calculated for all the 'quads' in the original shell. New points are introduced into the original shells 'quad' faces.
Let's add a new method to the tutorial which obtains the first shell in the selection list, calculates the advanced interpolation variant, and then deletes the original shell. We'd hook this up to a new GUI menu button.
int HAnalysisView::DisplayQuadInterpolate(){if (selection->GetSize() == 0)return EXIT_FAILURE ;if(selection->GetSize() > 0){// DeSelect the item firstselection->DeSelectAll();// open the shell's containing segmentHC_Open_Segment_By_Key(HC_KShow_Owner_By_Key(key));// delete the original shellHC_Delete_By_Key(key);SetColorInterpolation(false);Update();}return EXIT_SUCCESS ;}
Experiment by reading in the sample meshed_car1.hsf dataset, selecting it, applying contours, and then performing the advanced interpolation.