///////////////////////////////////////////////////////////////////////////////// // // 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 "cafPdmPointer.h" #include "cvfArray.h" #include "cvfObject.h" namespace cvf { class ModelBasicList; class Transform; class Part; class ScalarMapper; class DrawableGeo; } // namespace cvf class RimSurfaceInView; class RigSurface; class RigResultAccessor; class Rim3dView; class RivSurfaceIntersectionGeometryGenerator; class RivIntersectionGeometryGeneratorInterface; class RivSurfacePartMgr : public cvf::Object { public: explicit RivSurfacePartMgr( RimSurfaceInView* surface, bool nativeOnly = false ); void updateNativeSurfaceColors(); void updateCellResultColor( int timeStepIndex ); void appendIntersectionGeometryPartsToModel( cvf::ModelBasicList* model, cvf::Transform* scaleTransform ); void appendNativeGeometryPartsToModel( cvf::ModelBasicList* model, cvf::Transform* scaleTransform ); QString resultInfoText( Rim3dView* view, uint hitPart, cvf::Vec3d hitPoint ); const RivIntersectionGeometryGeneratorInterface* intersectionGeometryGenerator() const; bool isNativePartMgr() const; private: void generatePartGeometry(); void generateNativePartGeometry(); bool m_useNativePartsOnly; cvf::ref m_intersectionGenerator; caf::PdmPointer m_surfaceInView; cvf::ref m_usedSurfaceData; // Store the reference to the old data, to know when new data has arrived. cvf::ref m_nativeTrianglesPart; cvf::ref m_nativeMeshLinesPart; cvf::ref m_intersectionFaces; cvf::ref m_intersectionGridLines; cvf::ref m_intersectionFaultGridLines; cvf::ref m_intersectionFacesTextureCoords; cvf::ref m_nativeTrianglesTextureCoords; };