///////////////////////////////////////////////////////////////////////////////// // // Copyright (C) 2020- Equinor ASA // // ResInsight is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. // // See the GNU General Public License at // for more details. // ///////////////////////////////////////////////////////////////////////////////// #pragma once #include "RigFemPartResultCalculator.h" #include "RimMudWeightWindowParameters.h" #include "cvfVector3.h" #include class RigFemPartResultsCollection; class RigFemScalarResultFrames; class RigFemResultAddress; //================================================================================================== /// //================================================================================================== class RigFemPartResultCalculatorMudWeightWindow : public RigFemPartResultCalculator { public: explicit RigFemPartResultCalculatorMudWeightWindow( RigFemPartResultsCollection& collection ); ~RigFemPartResultCalculatorMudWeightWindow() override; bool isMatching( const RigFemResultAddress& resVarAddr ) const override; RigFemScalarResultFrames* calculate( int partIndex, const RigFemResultAddress& resVarAddr ) override; cvf::Vec3d calculateWellPathTangent( double azimuth, double inclination ); private: void loadParameterFramesOrValue( RimMudWeightWindowParameters::ParameterType parameterType, int partIndex, std::map& parameterFrames, std::map& parameterValues ); static std::vector loadDataForFrame( RimMudWeightWindowParameters::ParameterType parameterType, std::map& parameterFrames, int frameIndex ); static float getValueForElement( RimMudWeightWindowParameters::ParameterType parameterType, const std::map>& parameterFrameData, const std::map parameterValues, int elmIdx ); };