Skip to content

Instantly share code, notes, and snippets.

@dpogue
Created November 10, 2022 06:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dpogue/ca6281aca9d71bb57b00ad608cd193f4 to your computer and use it in GitHub Desktop.
Save dpogue/ca6281aca9d71bb57b00ad608cd193f4 to your computer and use it in GitHub Desktop.

Plasma Object Relationships

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment