///////////////////////////////////////////////////////////////////////////////// // // Copyright (C) 2018 Equinor ASA // // ResInsight is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. // // See the GNU General Public License at // for more details. // ///////////////////////////////////////////////////////////////////////////////// #pragma once #include "RicMswCompletions.h" #include #include //================================================================================================== /// //================================================================================================== class RicMswSegment { public: RicMswSegment( const QString& label, double startMD, double endMD, double startTVD, double endTVD, size_t subIndex = cvf::UNDEFINED_SIZE_T, int segmentNumber = -1 ); QString label() const; double startMD() const; double endMD() const; double deltaMD() const; double startTVD() const; double endTVD() const; double deltaTVD() const; double effectiveDiameter() const; double holeDiameter() const; double openHoleRoughnessFactor() const; double skinFactor() const; size_t subIndex() const; int segmentNumber() const; const std::vector>& completions() const; std::vector>& completions(); void setLabel( const QString& label ); void setEffectiveDiameter( double effectiveDiameter ); void setHoleDiameter( double holeDiameter ); void setOpenHoleRoughnessFactor( double roughnessFactor ); void setSkinFactor( double skinFactor ); void setSegmentNumber( int segmentNumber ); void addCompletion( std::shared_ptr completion ); void removeCompletion( std::shared_ptr completion ); void setSourcePdmObject( const caf::PdmObject* object ); const caf::PdmObject* sourcePdmObject() const; bool operator<( const RicMswSegment& rhs ) const; private: QString m_label; double m_startMD; double m_endMD; double m_startTVD; double m_endTVD; double m_effectiveDiameter; double m_holeDiameter; double m_openHoleRoughnessFactor; double m_skinFactor; size_t m_subIndex; int m_segmentNumber; std::vector> m_completions; caf::PdmPointer m_sourcePdmObject; };