mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#5865 Fault and NNC performance : Build NNC geometry when needed
This commit is contained in:
parent
943d977298
commit
6d9985d2ef
@ -64,6 +64,11 @@ RivFaultPartMgr::RivFaultPartMgr( const RigGridBase* grid,
|
|||||||
, m_rimFault( rimFault )
|
, m_rimFault( rimFault )
|
||||||
, m_opacityLevel( 1.0f )
|
, m_opacityLevel( 1.0f )
|
||||||
, m_defaultColor( cvf::Color3::WHITE )
|
, m_defaultColor( cvf::Color3::WHITE )
|
||||||
|
, m_isNativeFaultsGenerated( false )
|
||||||
|
, m_isOppositeFaultsGenerated( false )
|
||||||
|
, m_isNativeNncsGenerated( false )
|
||||||
|
, m_isAllNncsGenerated( false )
|
||||||
|
|
||||||
{
|
{
|
||||||
CVF_ASSERT( rimFault->faultGeometry() );
|
CVF_ASSERT( rimFault->faultGeometry() );
|
||||||
cvf::ref<cvf::Array<size_t>> connIdxes = new cvf::Array<size_t>;
|
cvf::ref<cvf::Array<size_t>> connIdxes = new cvf::Array<size_t>;
|
||||||
@ -100,7 +105,7 @@ void RivFaultPartMgr::setCellVisibility( cvf::UByteArray* cellVisibilities )
|
|||||||
m_NNCGenerator->setCellVisibility( cellVisibilities, m_grid.p() );
|
m_NNCGenerator->setCellVisibility( cellVisibilities, m_grid.p() );
|
||||||
m_allenNNCGenerator->setCellVisibility( cellVisibilities, m_grid.p() );
|
m_allenNNCGenerator->setCellVisibility( cellVisibilities, m_grid.p() );
|
||||||
|
|
||||||
generatePartGeometry();
|
clearFlags();
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -379,16 +384,24 @@ void RivFaultPartMgr::generatePartGeometry()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
m_isNativeFaultsGenerated = true;
|
||||||
|
m_isOppositeFaultsGenerated = true;
|
||||||
|
|
||||||
|
createLabelWithAnchorLine( m_nativeFaultFaces.p() );
|
||||||
|
|
||||||
|
updatePartEffect();
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RivFaultPartMgr::generateNativeNncPartGeometry()
|
||||||
|
{
|
||||||
cvf::ref<cvf::DrawableGeo> geo = m_NNCGenerator->generateSurface();
|
cvf::ref<cvf::DrawableGeo> geo = m_NNCGenerator->generateSurface();
|
||||||
if ( geo.notNull() )
|
if ( geo.notNull() )
|
||||||
{
|
{
|
||||||
geo->computeNormals();
|
geo->computeNormals();
|
||||||
|
|
||||||
if ( useBufferObjects )
|
|
||||||
{
|
|
||||||
geo->setRenderMode( cvf::DrawableGeo::BUFFER_OBJECT );
|
geo->setRenderMode( cvf::DrawableGeo::BUFFER_OBJECT );
|
||||||
}
|
|
||||||
|
|
||||||
cvf::ref<cvf::Part> part = new cvf::Part;
|
cvf::ref<cvf::Part> part = new cvf::Part;
|
||||||
part->setName( "NNC in Fault. Grid " + cvf::String( static_cast<int>( m_grid->gridIndex() ) ) );
|
part->setName( "NNC in Fault. Grid " + cvf::String( static_cast<int>( m_grid->gridIndex() ) ) );
|
||||||
@ -407,19 +420,24 @@ void RivFaultPartMgr::generatePartGeometry()
|
|||||||
part->setEffect( eff.p() );
|
part->setEffect( eff.p() );
|
||||||
|
|
||||||
m_NNCFaces = part;
|
m_NNCFaces = part;
|
||||||
}
|
|
||||||
|
updatePartEffect();
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
m_isNativeNncsGenerated = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RivFaultPartMgr::generateAllNncPartGeometry()
|
||||||
|
{
|
||||||
cvf::ref<cvf::DrawableGeo> geo = m_allenNNCGenerator->generateSurface();
|
cvf::ref<cvf::DrawableGeo> geo = m_allenNNCGenerator->generateSurface();
|
||||||
if ( geo.notNull() )
|
if ( geo.notNull() )
|
||||||
{
|
{
|
||||||
geo->computeNormals();
|
geo->computeNormals();
|
||||||
|
|
||||||
if ( useBufferObjects )
|
|
||||||
{
|
|
||||||
geo->setRenderMode( cvf::DrawableGeo::BUFFER_OBJECT );
|
geo->setRenderMode( cvf::DrawableGeo::BUFFER_OBJECT );
|
||||||
}
|
|
||||||
|
|
||||||
cvf::ref<cvf::Part> part = new cvf::Part;
|
cvf::ref<cvf::Part> part = new cvf::Part;
|
||||||
part->setName( "Allen NNC in Fault. Grid " + cvf::String( static_cast<int>( m_grid->gridIndex() ) ) );
|
part->setName( "Allen NNC in Fault. Grid " + cvf::String( static_cast<int>( m_grid->gridIndex() ) ) );
|
||||||
@ -438,12 +456,22 @@ void RivFaultPartMgr::generatePartGeometry()
|
|||||||
part->setEffect( eff.p() );
|
part->setEffect( eff.p() );
|
||||||
|
|
||||||
m_allenNNCFaces = part;
|
m_allenNNCFaces = part;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
createLabelWithAnchorLine( m_nativeFaultFaces.p() );
|
|
||||||
|
|
||||||
updatePartEffect();
|
updatePartEffect();
|
||||||
|
}
|
||||||
|
|
||||||
|
m_isAllNncsGenerated = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
void RivFaultPartMgr::clearFlags()
|
||||||
|
{
|
||||||
|
m_isNativeFaultsGenerated = false;
|
||||||
|
m_isOppositeFaultsGenerated = false;
|
||||||
|
m_isNativeNncsGenerated = false;
|
||||||
|
m_isAllNncsGenerated = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@ -651,6 +679,11 @@ cvf::Vec3f RivFaultPartMgr::findClosestVertex( const cvf::Vec3f& point, const cv
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RivFaultPartMgr::appendNativeFaultFacesToModel( cvf::ModelBasicList* model )
|
void RivFaultPartMgr::appendNativeFaultFacesToModel( cvf::ModelBasicList* model )
|
||||||
{
|
{
|
||||||
|
if ( !m_isNativeFaultsGenerated )
|
||||||
|
{
|
||||||
|
generatePartGeometry();
|
||||||
|
}
|
||||||
|
|
||||||
if ( m_nativeFaultFaces.notNull() )
|
if ( m_nativeFaultFaces.notNull() )
|
||||||
{
|
{
|
||||||
model->addPart( m_nativeFaultFaces.p() );
|
model->addPart( m_nativeFaultFaces.p() );
|
||||||
@ -662,6 +695,11 @@ void RivFaultPartMgr::appendNativeFaultFacesToModel( cvf::ModelBasicList* model
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RivFaultPartMgr::appendOppositeFaultFacesToModel( cvf::ModelBasicList* model )
|
void RivFaultPartMgr::appendOppositeFaultFacesToModel( cvf::ModelBasicList* model )
|
||||||
{
|
{
|
||||||
|
if ( !m_isOppositeFaultsGenerated )
|
||||||
|
{
|
||||||
|
generatePartGeometry();
|
||||||
|
}
|
||||||
|
|
||||||
if ( m_oppositeFaultFaces.notNull() )
|
if ( m_oppositeFaultFaces.notNull() )
|
||||||
{
|
{
|
||||||
model->addPart( m_oppositeFaultFaces.p() );
|
model->addPart( m_oppositeFaultFaces.p() );
|
||||||
@ -691,6 +729,11 @@ void RivFaultPartMgr::appendMeshLinePartsToModel( cvf::ModelBasicList* model )
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RivFaultPartMgr::appendCompleteNNCFacesToModel( cvf::ModelBasicList* model )
|
void RivFaultPartMgr::appendCompleteNNCFacesToModel( cvf::ModelBasicList* model )
|
||||||
{
|
{
|
||||||
|
if ( !m_isAllNncsGenerated )
|
||||||
|
{
|
||||||
|
generateAllNncPartGeometry();
|
||||||
|
}
|
||||||
|
|
||||||
if ( m_allenNNCFaces.notNull() ) model->addPart( m_allenNNCFaces.p() );
|
if ( m_allenNNCFaces.notNull() ) model->addPart( m_allenNNCFaces.p() );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -699,6 +742,11 @@ void RivFaultPartMgr::appendCompleteNNCFacesToModel( cvf::ModelBasicList* model
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RivFaultPartMgr::appendNativeNNCFacesToModel( cvf::ModelBasicList* model )
|
void RivFaultPartMgr::appendNativeNNCFacesToModel( cvf::ModelBasicList* model )
|
||||||
{
|
{
|
||||||
|
if ( !m_isNativeNncsGenerated )
|
||||||
|
{
|
||||||
|
generateNativeNncPartGeometry();
|
||||||
|
}
|
||||||
|
|
||||||
if ( m_NNCFaces.notNull() ) model->addPart( m_NNCFaces.p() );
|
if ( m_NNCFaces.notNull() ) model->addPart( m_NNCFaces.p() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,6 +71,12 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void generatePartGeometry();
|
void generatePartGeometry();
|
||||||
|
|
||||||
|
void generateNativeNncPartGeometry();
|
||||||
|
void generateAllNncPartGeometry();
|
||||||
|
|
||||||
|
void clearFlags();
|
||||||
|
|
||||||
void updatePartEffect();
|
void updatePartEffect();
|
||||||
|
|
||||||
void updateNNCColors( size_t timeStepIndex, RimEclipseCellColors* cellResultColors );
|
void updateNNCColors( size_t timeStepIndex, RimEclipseCellColors* cellResultColors );
|
||||||
@ -91,20 +97,24 @@ private:
|
|||||||
|
|
||||||
cvf::ref<cvf::UByteArray> m_cellVisibility;
|
cvf::ref<cvf::UByteArray> m_cellVisibility;
|
||||||
|
|
||||||
|
bool m_isNativeFaultsGenerated;
|
||||||
cvf::ref<RivFaultGeometryGenerator> m_nativeFaultGenerator;
|
cvf::ref<RivFaultGeometryGenerator> m_nativeFaultGenerator;
|
||||||
cvf::ref<cvf::Part> m_nativeFaultFaces;
|
cvf::ref<cvf::Part> m_nativeFaultFaces;
|
||||||
cvf::ref<cvf::Part> m_nativeFaultGridLines;
|
cvf::ref<cvf::Part> m_nativeFaultGridLines;
|
||||||
cvf::ref<cvf::Vec2fArray> m_nativeFaultFacesTextureCoords;
|
cvf::ref<cvf::Vec2fArray> m_nativeFaultFacesTextureCoords;
|
||||||
|
|
||||||
|
bool m_isOppositeFaultsGenerated;
|
||||||
cvf::ref<RivFaultGeometryGenerator> m_oppositeFaultGenerator;
|
cvf::ref<RivFaultGeometryGenerator> m_oppositeFaultGenerator;
|
||||||
cvf::ref<cvf::Part> m_oppositeFaultFaces;
|
cvf::ref<cvf::Part> m_oppositeFaultFaces;
|
||||||
cvf::ref<cvf::Part> m_oppositeFaultGridLines;
|
cvf::ref<cvf::Part> m_oppositeFaultGridLines;
|
||||||
cvf::ref<cvf::Vec2fArray> m_oppositeFaultFacesTextureCoords;
|
cvf::ref<cvf::Vec2fArray> m_oppositeFaultFacesTextureCoords;
|
||||||
|
|
||||||
|
bool m_isNativeNncsGenerated;
|
||||||
cvf::ref<RivNNCGeometryGenerator> m_NNCGenerator;
|
cvf::ref<RivNNCGeometryGenerator> m_NNCGenerator;
|
||||||
cvf::ref<cvf::Part> m_NNCFaces;
|
cvf::ref<cvf::Part> m_NNCFaces;
|
||||||
cvf::ref<cvf::Vec2fArray> m_NNCTextureCoords;
|
cvf::ref<cvf::Vec2fArray> m_NNCTextureCoords;
|
||||||
|
|
||||||
|
bool m_isAllNncsGenerated;
|
||||||
cvf::ref<RivNNCGeometryGenerator> m_allenNNCGenerator;
|
cvf::ref<RivNNCGeometryGenerator> m_allenNNCGenerator;
|
||||||
cvf::ref<cvf::Part> m_allenNNCFaces;
|
cvf::ref<cvf::Part> m_allenNNCFaces;
|
||||||
cvf::ref<cvf::Vec2fArray> m_allenNNCTextureCoords;
|
cvf::ref<cvf::Vec2fArray> m_allenNNCTextureCoords;
|
||||||
|
Loading…
Reference in New Issue
Block a user