@startuml package Rim { PdmObject <|-- RimViewWindow package plot { RimViewWindow <|-- RimWellLogPlot RimViewWindow <|-- RimSummaryPlot PdmObject <|-- RimWellLogTrack RimViewWindow <|-- RimWellAllocationPlot RimViewWindow <|-- RimWellRftPlot RimViewWindow <|-- RimWellPltPlot RimWellAllocationPlot *--> RimWellLogPlot RimWellRftPlot *--> RimWellLogPlot RimWellPltPlot *--> RimWellLogPlot } package curve { PdmObject <|---- RimPlotCurve RimPlotCurve <|-- RimWellLogCurve RimPlotCurve <|-- RimSummaryCurve RimWellLogCurve <|-- RimWellFlowRateCurve RimWellLogCurve <|-- RimWellLogExtractionCurve RimWellLogCurve <|-- RimWellLogFileCurve RimWellLogCurve <|-- RimWellLogRftCurve RimWellLogCurve *--> RigWellLogCurveData } } class RimWellLogTrack { PdmChildArrayField curves; } class RimPlotCurve { RiuLineSegmentQwtPlotCurve* qwtPlotCurve; } class RimWellLogPlot { PdmChildArrayField m_tracks; QPointer m_viewer; } package Qwt { QWidget <|--- RiuWellLogPlot QWidget <|-- QwtPlot QwtPlot <|--- RiuWellLogTrack QwtPlot <|--- RiuSummaryQwtPlot RiuWellLogPlot *----> "n" RiuWellLogTrack QwtPlot *--> "n" QwtPlotCurve QwtPlotCurve <|-- RiuLineSegmentQwtPlotCurve RiuWellLogTrack --[hidden]> RiuLineSegmentQwtPlotCurve class RiuWellAllocationPlot{ } class RiuWellRftPlot{ } class RiuWellPltPlot{ } } class RiuWellLogPlot { QList m_trackPlots; PdmPointer m_plotDefinition; } class RiuWellLogTrack { PdmPointer m_plotTrackDefinition; } RimWellLogPlot *---> "n" RimWellLogTrack RimWellLogTrack *---> "n" RimWellLogCurve RimSummaryPlot *---> "n" RimSummaryCurve RimWellLogPlot -r-> RiuWellLogPlot RimWellLogTrack -r-> RiuWellLogTrack RimPlotCurve -r-> RiuLineSegmentQwtPlotCurve RimSummaryPlot -r-> RiuSummaryQwtPlot RimWellAllocationPlot *-> RiuWellAllocationPlot RimWellRftPlot *-> RiuWellRftPlot RimWellPltPlot *-> RiuWellPltPlot RiuWellAllocationPlot ....> RiuWellLogPlot RiuWellRftPlot ....> RiuWellLogPlot RiuWellPltPlot ....> RiuWellLogPlot @enduml