@startuml package Rim { PdmObject <|-- RimViewWindow package plot { RimViewWindow <|-- RimWellLogPlot RimViewWindow <|-- RimSummaryPlot PdmObject <|-- RimWellLogTrack } package curve { PdmObject <|---- RimPlotCurve RimPlotCurve <|-- RimWellLogCurve RimPlotCurve <|-- RimSummaryCurve } } 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 <|--- RiuQwtResultPlot RiuWellLogPlot *---- "n" RiuWellLogTrack QwtPlot *-- "n" QwtPlotCurve QwtPlotCurve <|-- RiuLineSegmentQwtPlotCurve RiuWellLogTrack --[hidden]> RiuLineSegmentQwtPlotCurve } 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-> RiuQwtResultPlot @enduml