CAE Tutorial: Setting Advanced Interpolation

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()
{
    HAnalysisSelectionSet * selection = (HAnalysisSelectionSet*)GetSelection();

    if (selection->GetSize() == 0)
        return EXIT_FAILURE ;

    if(selection->GetSize() > 0)
    {
        HC_KEY key = selection->GetAt(0);

        // DeSelect the item first
        selection->DeSelectAll();

        // open the shell's containing segment
        HC_Open_Segment_By_Key(HC_KShow_Owner_By_Key(key));
          HC_KEY new_key = HUtilityGeometryCreation::GenerateFEAShell(key, false, "bilinear");
        HC_Close_Segment();

        // delete the original shell
        HC_Delete_By_Key(key);


        SetColorIndexInterpolation(true, false);
        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.