@startuml !include theme.ipuml skinparam Linetype ortho package crepe { package api { class Resource <> } class Sound { +Sound(resource) -- +pause() +play() +rewind() -volume : float <<+set>> <<+get>> -looping : bool <<+set>> <<+get>> -- -sample : SoLoud::Wav -handle : SoLoud::handle -- -load(resource) } class SoundContext <> { -instance() : SoundContext& <> -- -SoundContext() -~SoundContext() -- -engine : SoLoud::Soloud } } package SoLoud { class Soloud <> class Wav <> } ' layout crepe -[hidden]down- SoLoud crepe.Sound --> SoLoud.Wav crepe.SoundContext --> SoLoud.Soloud crepe.Sound .> crepe.SoundContext crepe.SoundContext .> crepe.Sound crepe.Sound .> crepe.api.Resource @enduml