mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
IJK-Slice context menu commands for GeoMech
#306 Added picking source data to the viz model Generalized the picking methods in RiuViewer, but there is more serious refactoring needed.
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
#include "cvfArray.h"
|
||||
|
||||
#include "RigFemPart.h"
|
||||
#include "cvfStructGrid.h"
|
||||
|
||||
namespace cvf
|
||||
{
|
||||
@@ -16,7 +17,22 @@ class ScalarMapper;
|
||||
|
||||
class RigFemPartScalarDataAccess;
|
||||
|
||||
class RivFemPartTriangleToElmMapper : public cvf::Object
|
||||
{
|
||||
public:
|
||||
size_t triangleCount() const { return m_trianglesToElementIndex.size();}
|
||||
|
||||
int elementIndex(size_t triangleIdx) const { return m_trianglesToElementIndex[triangleIdx]; }
|
||||
char elementFace(size_t triangleIdx) const { return m_trianglesToElmFace[triangleIdx]; }
|
||||
|
||||
// Interface for building the mappings
|
||||
std::vector<int>& triangleToElmIndexMap() { return m_trianglesToElementIndex; }
|
||||
std::vector<char>& triangleToElmFaceMap() { return m_trianglesToElmFace; }
|
||||
|
||||
private:
|
||||
std::vector<int> m_trianglesToElementIndex;
|
||||
std::vector<char> m_trianglesToElmFace;
|
||||
};
|
||||
|
||||
//==================================================================================================
|
||||
//
|
||||
@@ -38,13 +54,16 @@ public:
|
||||
const RigFemPart* activePart() { return m_part.p(); }
|
||||
|
||||
// Generated geometry
|
||||
|
||||
cvf::ref<cvf::DrawableGeo> generateSurface();
|
||||
cvf::ref<cvf::DrawableGeo> createMeshDrawable();
|
||||
cvf::ref<cvf::DrawableGeo> createOutlineMeshDrawable(double creaseAngle);
|
||||
|
||||
const std::vector<size_t>& quadVerticesToNodeIdxMapping() const { return m_quadVerticesToNodeIdx;}
|
||||
const std::vector<size_t>& quadVerticesToNodeIdxMapping() const { return m_quadVerticesToNodeIdx;}
|
||||
const std::vector<size_t>& quadVerticesToGlobalElmNodeIdx() const { return m_quadVerticesToGlobalElmNodeIdx;}
|
||||
|
||||
RivFemPartTriangleToElmMapper* triangleToElementMapper() { return m_triangleMapper.p();}
|
||||
|
||||
private:
|
||||
static cvf::ref<cvf::UIntArray>
|
||||
lineIndicesFromQuadVertexArray(const cvf::Vec3fArray* vertexArray);
|
||||
@@ -53,13 +72,16 @@ private:
|
||||
private:
|
||||
// Input
|
||||
cvf::cref<RigFemPart> m_part; // The part being processed
|
||||
cvf::cref<cvf::UByteArray> m_elmVisibility;
|
||||
cvf::cref<cvf::UByteArray> m_elmVisibility;
|
||||
|
||||
// Created arrays
|
||||
cvf::ref<cvf::Vec3fArray> m_quadVertices;
|
||||
//cvf::ref<cvf::Vec3fArray> m_triangleVertices; // If needed, we will do it like this, I think
|
||||
std::vector<size_t> m_quadVerticesToNodeIdx;
|
||||
std::vector<size_t> m_quadVerticesToGlobalElmNodeIdx;
|
||||
//cvf::ref<cvf::Vec3fArray> m_triangleVertices; // If needed, we will do it like this, I think
|
||||
std::vector<size_t> m_quadVerticesToNodeIdx;
|
||||
std::vector<size_t> m_quadVerticesToGlobalElmNodeIdx;
|
||||
|
||||
// Mappings
|
||||
cvf::ref<RivFemPartTriangleToElmMapper> m_triangleMapper;
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user