Files
ResInsight/ApplicationCode/GeoMech/GeoMechVisualization/RivFemPartGeometryGenerator.h
Jacob Støren 20a8527607 Noderesults are now read and displayed
The legend is not updated etc, but this is a start
2015-05-04 18:16:57 +02:00

66 lines
1.7 KiB
C++

#pragma once
#include "cvfObject.h"
#include "cvfArray.h"
#include "RigFemPart.h"
namespace cvf
{
class DrawableGeo;
class ScalarMapper;
}
class RigFemPartScalarDataAccess;
//==================================================================================================
//
//
//
//==================================================================================================
class RivFemPartGeometryGenerator : public cvf::Object
{
public:
RivFemPartGeometryGenerator(const RigFemPart* part);
~RivFemPartGeometryGenerator();
// Setup methods
void setElementVisibility(const cvf::UByteArray* cellVisibility);
// Access, valid after generation is done
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;}
private:
static cvf::ref<cvf::UIntArray>
lineIndicesFromQuadVertexArray(const cvf::Vec3fArray* vertexArray);
void computeArrays();
private:
// Input
cvf::cref<RigFemPart> m_part; // The part being processed
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;
};