Conversation
Moves region annotation logic into a dedicated RimWellLogTrackRegionAnnotations class for better organization and maintainability. It also introduces RimWellLogTrackTools for static utility functions. This change improves code readability and allows for easier extension of region annotation features.
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
|||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
|||||||||||||||||||||||||
Refactored RimWellLogTrack by removing numerous public accessor methods for private members related to formation source, property axis, region annotation, and well path components. Helper classes now access these members directly via friend declarations. Updated all usage in helper classes to reference member variables directly, simplifying the class interface and reducing the public API surface for improved encapsulation. Moved isEmptyVisiblePropertyRange() to private scope and implemented it inline. Ensured consistent behavior across all affected logic.
950352f to
a61c704
Compare
PR Type
Enhancement
Description
Refactored
RimWellLogTrackinto modular helper classes to improve code organization and maintainabilityExtracted property axis management into
RimWellLogTrackPropertyAxis(371 lines) with zoom range calculation, tick interval management, and logarithmic scale handlingCreated
RimWellLogTrackStackedCurveshelper class for managing stacked curve data, visibility, phase-based coloring, and z-order positioningImplemented
RimWellLogTrackWellPathComponents(222 lines) for well path attributes, completions visualization, and depth range calculationsAdded
RimWellLogTrackRegionAnnotationsfor formation names, result properties, water/rock region visualization, and well bore stability plot annotationsIntroduced
RimWellLogTrackToolsnamespace with static utility functions for curve sampling, formation vector retrieval, region name finding, and ASCII export formattingReplaced inline implementations in main class with delegating calls to helper classes
Updated CMake configuration to include five new header and source files
Diagram Walkthrough
File Walkthrough
2 files
RimWellLogTrack.cpp
Extract well log track functionality into helper classesApplicationLibCode/ProjectDataModel/WellLog/RimWellLogTrack.cpp
(
RimWellLogTrackPropertyAxis,RimWellLogTrackStackedCurves,RimWellLogTrackWellPathComponents,RimWellLogTrackRegionAnnotations)RimWellLogTrackToolsnamespace forbetter code organization
components, and region annotations
classes and tools
classes
RimWellLogTrack.h
Refactored well log track with helper classesApplicationLibCode/ProjectDataModel/WellLog/RimWellLogTrack.h
curves, region annotations, and well path components
classes
property axis configuration
10 files
RimWellLogTrackRegionAnnotations.cpp
New region annotations helper class implementationApplicationLibCode/ProjectDataModel/WellLog/RimWellLogTrackRegionAnnotations.cpp
annotations
conversion
sources
RimWellLogTrackTools.cpp
New static utility tools for well log track operationsApplicationLibCode/ProjectDataModel/WellLog/RimWellLogTrackTools.cpp
extractors
overburden/underburden handling
utilities
RimWellLogTrackStackedCurves.cpp
New stacked curves management helper classApplicationLibCode/ProjectDataModel/WellLog/RimWellLogTrackStackedCurves.cpp
curves
RimWellLogTrackPropertyAxis.h
New property axis helper class headerApplicationLibCode/ProjectDataModel/WellLog/RimWellLogTrackPropertyAxis.h
tracks
managing tick intervals
engine configuration
RimWellLogTrackPropertyAxis.cpp
Property axis management implementationApplicationLibCode/ProjectDataModel/WellLog/RimWellLogTrackPropertyAxis.cpp
special handling
configuration (linear/logarithmic)
display
RimWellLogTrackStackedCurves.h
New stacked curves helper class headerApplicationLibCode/ProjectDataModel/WellLog/RimWellLogTrackStackedCurves.h
visible curves
RimWellLogTrackWellPathComponents.h
New well path components helper class headerApplicationLibCode/ProjectDataModel/WellLog/RimWellLogTrackWellPathComponents.h
plot
depth range queries
RimWellLogTrackWellPathComponents.cpp
Well path components management implementationApplicationLibCode/ProjectDataModel/WellLog/RimWellLogTrackWellPathComponents.cpp
functionality
representation
items
RimWellLogTrackRegionAnnotations.h
New region annotations helper class headerApplicationLibCode/ProjectDataModel/WellLog/RimWellLogTrackRegionAnnotations.h
tracks
geomechanical extractors
RimWellLogTrackTools.h
New well log track utility functions headerApplicationLibCode/ProjectDataModel/WellLog/RimWellLogTrackTools.h
track operations
plotting utilities
functionality
1 files
CMakeLists_files.cmake
Updated CMake build configuration for new filesApplicationLibCode/ProjectDataModel/WellLog/CMakeLists_files.cmake