mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
NNC: Added NNC parts to the FaultPartMgr
This commit is contained in:
parent
e75bd8adfb
commit
925d5b5dd6
@ -60,8 +60,14 @@ RivFaultPartMgr::RivFaultPartMgr(const RigGridBase* grid, const RimFault* rimFau
|
||||
m_nativeFaultGenerator(grid, rimFault->faultGeometry(), true),
|
||||
m_oppositeFaultGenerator(grid, rimFault->faultGeometry(), false)
|
||||
{
|
||||
cvf::ref< cvf::Array<size_t> > connIdxes = new cvf::Array<size_t>;
|
||||
connIdxes->assign(rimFault->faultGeometry()->connectionIndices());
|
||||
|
||||
m_NNCGenerator = new RivNNCGeometryGenerator(grid->mainGrid()->nncData(), grid->mainGrid()->displayModelOffset(), connIdxes.p());
|
||||
|
||||
m_nativeFaultFacesTextureCoords = new cvf::Vec2fArray;
|
||||
m_oppositeFaultFacesTextureCoords = new cvf::Vec2fArray;
|
||||
m_NNCTextureCoords = new cvf::Vec2fArray;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -316,6 +322,32 @@ void RivFaultPartMgr::generatePartGeometry()
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
cvf::ref<cvf::DrawableGeo> geo = m_NNCGenerator->generateSurface();
|
||||
if (geo.notNull())
|
||||
{
|
||||
geo->computeNormals();
|
||||
|
||||
if (useBufferObjects)
|
||||
{
|
||||
geo->setRenderMode(cvf::DrawableGeo::BUFFER_OBJECT);
|
||||
}
|
||||
|
||||
cvf::ref<cvf::Part> part = new cvf::Part;
|
||||
part->setName("NNC in Fault. Grid " + cvf::String(static_cast<int>(m_grid->gridIndex())));
|
||||
part->setId(m_grid->gridIndex()); // !! For now, use grid index as part ID (needed for pick info)
|
||||
part->setDrawable(geo.p());
|
||||
|
||||
// Set mapping from triangle face index to cell index
|
||||
part->setSourceInfo(m_NNCGenerator->triangleToNNCIndex().p());
|
||||
|
||||
part->updateBoundingBox();
|
||||
part->setEnableMask(faultBit);
|
||||
|
||||
m_NNCFaces = part;
|
||||
}
|
||||
}
|
||||
|
||||
m_faultLabelPart = NULL;
|
||||
|
||||
{
|
||||
@ -360,6 +392,20 @@ void RivFaultPartMgr::updatePartEffect()
|
||||
m_oppositeFaultFaces->setEffect(geometryOnlyEffect.p());
|
||||
}
|
||||
|
||||
// NNC faces a bit lighter than the fault for now
|
||||
|
||||
cvf::Color3f nncColor = partColor;
|
||||
nncColor.r() += (1.0 - nncColor.r()) * 0.2;
|
||||
nncColor.g() += (1.0 - nncColor.g()) * 0.2;
|
||||
nncColor.g() += (1.0 - nncColor.b()) * 0.2;
|
||||
|
||||
caf::SurfaceEffectGenerator nncEffgen(nncColor, true);
|
||||
cvf::ref<cvf::Effect> nncEffect = nncEffgen.generateEffect();
|
||||
|
||||
if (m_NNCFaces.notNull())
|
||||
{
|
||||
m_NNCFaces->setEffect(nncEffect.p());
|
||||
}
|
||||
|
||||
// Update mesh colors as well, in case of change
|
||||
RiaPreferences* prefs = RiaApplication::instance()->preferences();
|
||||
@ -548,3 +594,11 @@ void RivFaultPartMgr::appendMeshLinePartsToModel(cvf::ModelBasicList* model)
|
||||
if (m_oppositeFaultGridLines.notNull()) model->addPart(m_oppositeFaultGridLines.p());
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RivFaultPartMgr::appendNNCFacesToModel(cvf::ModelBasicList* model)
|
||||
{
|
||||
if (m_NNCFaces.notNull()) model->addPart(m_NNCFaces.p());
|
||||
}
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "RimFault.h"
|
||||
#include "RivFaultGeometryGenerator.h"
|
||||
#include "cvfColor4.h"
|
||||
#include "RivNNCGeometryGenerator.h"
|
||||
|
||||
namespace cvf
|
||||
{
|
||||
@ -55,6 +56,7 @@ public:
|
||||
|
||||
void appendNativeFaultFacesToModel(cvf::ModelBasicList* model);
|
||||
void appendOppositeFaultFacesToModel(cvf::ModelBasicList* model);
|
||||
void appendNNCFacesToModel(cvf::ModelBasicList* model);
|
||||
void appendLabelPartsToModel(cvf::ModelBasicList* model);
|
||||
void appendMeshLinePartsToModel(cvf::ModelBasicList* model);
|
||||
|
||||
@ -89,6 +91,10 @@ private:
|
||||
cvf::ref<cvf::Part> m_oppositeFaultGridLines;
|
||||
cvf::ref<cvf::Vec2fArray> m_oppositeFaultFacesTextureCoords;
|
||||
|
||||
cvf::ref<RivNNCGeometryGenerator> m_NNCGenerator;
|
||||
cvf::ref<cvf::Part> m_NNCFaces;
|
||||
cvf::ref<cvf::Vec2fArray> m_NNCTextureCoords;
|
||||
|
||||
cvf::ref<cvf::Part> m_faultLabelPart;
|
||||
cvf::ref<cvf::Part> m_faultLabelLinePart;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user