mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Faults: Face culling handles flipaxis
This commit is contained in:
@@ -372,18 +372,9 @@ void RivFaultPartMgr::updatePartEffect()
|
||||
|
||||
// Set default effect
|
||||
caf::SurfaceEffectGenerator geometryEffgen(partColor, caf::PO_1);
|
||||
bool isShowingGrid = m_rimFaultCollection->isGridVisualizationMode();
|
||||
if (!isShowingGrid )
|
||||
{
|
||||
if (m_rimFaultCollection->faultFaceCulling() == RimFaultCollection::FAULT_BACK_FACE_CULLING)
|
||||
{
|
||||
geometryEffgen.setCullBackfaces(caf::FC_FRONT); // Because the cells are inverted
|
||||
}
|
||||
else if (m_rimFaultCollection->faultFaceCulling() == RimFaultCollection::FAULT_FRONT_FACE_CULLING)
|
||||
{
|
||||
geometryEffgen.setCullBackfaces(caf::FC_BACK); // Because the cells are inverted
|
||||
}
|
||||
}
|
||||
|
||||
geometryEffgen.setCullBackfaces(faceCullingMode());
|
||||
|
||||
cvf::ref<cvf::Effect> geometryOnlyEffect = geometryEffgen.generateEffect();
|
||||
|
||||
if (m_nativeFaultFaces.notNull())
|
||||
@@ -640,19 +631,8 @@ cvf::ref<cvf::Effect> RivFaultPartMgr::cellResultEffect(const cvf::ScalarMapper*
|
||||
|
||||
caf::PolygonOffset polygonOffset = caf::PO_1;
|
||||
caf::ScalarMapperEffectGenerator scalarEffgen(mapper, polygonOffset);
|
||||
|
||||
bool isShowingGrid = m_rimFaultCollection->isGridVisualizationMode();
|
||||
if (!isShowingGrid )
|
||||
{
|
||||
if (m_rimFaultCollection->faultFaceCulling() == RimFaultCollection::FAULT_BACK_FACE_CULLING)
|
||||
{
|
||||
scalarEffgen.setCullBackfaces(caf::FC_FRONT);// Because the cells are inverted
|
||||
}
|
||||
else if (m_rimFaultCollection->faultFaceCulling() == RimFaultCollection::FAULT_FRONT_FACE_CULLING)
|
||||
{
|
||||
scalarEffgen.setCullBackfaces(caf::FC_BACK);// Because the cells are inverted
|
||||
}
|
||||
}
|
||||
|
||||
scalarEffgen.setCullBackfaces(faceCullingMode());
|
||||
|
||||
scalarEffgen.setOpacityLevel(m_opacityLevel);
|
||||
|
||||
@@ -661,3 +641,33 @@ cvf::ref<cvf::Effect> RivFaultPartMgr::cellResultEffect(const cvf::ScalarMapper*
|
||||
return scalarEffect;
|
||||
}
|
||||
|
||||
caf::FaceCulling RivFaultPartMgr::faceCullingMode() const
|
||||
{
|
||||
bool isShowingGrid = m_rimFaultCollection->isGridVisualizationMode();
|
||||
if (!isShowingGrid )
|
||||
{
|
||||
if (m_rimFaultCollection->faultFaceCulling() == RimFaultCollection::FAULT_BACK_FACE_CULLING)
|
||||
{
|
||||
if (m_grid->mainGrid()->faceNormalsIsOutwards())
|
||||
{
|
||||
return caf::FC_BACK;
|
||||
}
|
||||
else
|
||||
{
|
||||
return caf::FC_FRONT;
|
||||
}
|
||||
}
|
||||
else if (m_rimFaultCollection->faultFaceCulling() == RimFaultCollection::FAULT_FRONT_FACE_CULLING)
|
||||
{
|
||||
if (m_grid->mainGrid()->faceNormalsIsOutwards())
|
||||
{
|
||||
return caf::FC_FRONT;
|
||||
}
|
||||
else
|
||||
{
|
||||
return caf::FC_BACK;
|
||||
}
|
||||
}
|
||||
}
|
||||
return caf::FC_NONE;
|
||||
}
|
||||
@@ -26,6 +26,7 @@
|
||||
#include "cvfColor4.h"
|
||||
#include "RivNNCGeometryGenerator.h"
|
||||
#include "cvfEffect.h"
|
||||
#include "cafEffectGenerator.h"
|
||||
|
||||
namespace cvf
|
||||
{
|
||||
@@ -66,11 +67,11 @@ private:
|
||||
void updatePartEffect();
|
||||
|
||||
cvf::ref<cvf::Effect> cellResultEffect(const cvf::ScalarMapper* mapper) const;
|
||||
caf::FaceCulling faceCullingMode() const;
|
||||
|
||||
void createLabelWithAnchorLine(const cvf::Part* part);
|
||||
|
||||
static cvf::Vec3f findClosestVertex(const cvf::Vec3f& point, const cvf::Vec3fArray* vertices);
|
||||
|
||||
private:
|
||||
cvf::cref<RigGridBase> m_grid;
|
||||
const RimFault* m_rimFault;
|
||||
|
||||
Reference in New Issue
Block a user