@startuml 'https://plantuml.com/class-diagram interface Vision interface Solid Vision <- Solid class VisionGroup Vision <-- VisionGroup class VisionBase Vision <- VisionBase class SolidLabel Solid <--- SolidLabel SolidBase <-- SolidLabel class SolidGroup Solid <--- SolidGroup VisionGroupBase <-- SolidGroup class SolidBase Solid <--- SolidBase VisionBase <-- SolidBase class SphereLayer SolidBase <-- SphereLayer GeometrySolid <-- SphereLayer class Sphere SolidBase <-- Sphere GeometrySolid <-- Sphere class Box SolidBase <-- Box Hexagon <-- Box class GenericHexagon SolidBase <-- GenericHexagon Hexagon <-- GenericHexagon class Extruded SolidBase <-- Extruded GeometrySolid <-- Extruded class PolyLine Solid <--- PolyLine SolidBase <-- PolyLine interface GeometrySolid Solid <--- GeometrySolid interface Hexagon GeometrySolid <-- Hexagon class ConeSegment GeometrySolid <-- ConeSegment class ConeSurface GeometrySolid <-- ConeSurface class Convex Solid <--- Convex SolidBase <-- Convex class Composite Solid <--- Composite SolidBase <-- Composite interface SolidReference VisionGroup <---- SolidReference interface MutableVisionGroup VisionGroup <---- MutableVisionGroup class SolidReferenceGroup VisionGroup <-- SolidReferenceGroup Solid <-- SolidReferenceGroup VisionBase <-- SolidReferenceGroup SolidReference <-- SolidReferenceGroup class ReferenceChild VisionGroup <-- ReferenceChild Solid <-- ReferenceChild SolidReference <-- ReferenceChild class VisionGroupBase VisionBase <-- VisionGroupBase MutableVisionGroup <-- VisionGroupBase class RootVisionGroup VisionGroupBase <-- RootVisionGroup class VisionOfPlotly VisionBase <-- VisionOfPlotly @enduml