This is a simplified diagram showing the basic associations between class types in Plasma.
A lot of behaviour is handled by attaching various plModifier
subclasses to plSceneObject
instances (i.e., plPythonFileMod
, plResponderModifier
, plLogicModifier
, etc.)
classDiagram
plSceneNode --> plSceneObject : scene objects
plSceneObject --> plAudioInterface : audio
plSceneObject --> plDrawInterface : mesh
plSceneObject --> plCoordinateInterface : position
plSceneObject --> plSimulationInterface : physics
plSceneObject --> plModifier : modifiers
plSceneObject --> plObjInterface : interfaces
plSimulationInterface --> plPhysical : collision data
plDrawInterface --> plDrawableSpans : mesh data
plAudioInterface --> plWin32Sound : sound properties
plWin32Sound --> plSoundBuffer : audio file reference
plDrawableSpans ..> hsGMaterial : materials
hsGMaterial --> plLayer : texture layers
plLayer --> plMipmap : texture data