New images, raw version of inheritance.md, hierarchy.md, and Vision.puml #60

Merged
kiruma524 merged 14 commits from dev into dev 2021-08-17 09:30:09 +03:00
3 changed files with 106 additions and 46 deletions
Showing only changes of commit 25e46a6c47 - Show all commits

View File

@ -14,19 +14,3 @@ It gets properties of element with `name` identification.
* function `setProperty(name: Name, item: MetaItem?, notify: Boolean = true)` * function `setProperty(name: Name, item: MetaItem?, notify: Boolean = true)`
Sets the `item` property to the element with the `name` identification. `notify` is a value which toggles the necessity of the change notification. Default is true. Sets the `item` property to the element with the `name` identification. `notify` is a value which toggles the necessity of the change notification. Default is true.
### About properties
**Properties have to be set in particular order:**
* styles
* prototypes
* parent
* parent's styles
* defaults
## Inheritance
Inheritance is a very useful ability of `children` elements to get the same property in default as his parent does have (to 'inherit' it).

16
docs/inheritance Normal file
View File

@ -0,0 +1,16 @@
## Inheritance
Inheritance is a very useful ability of `children` elements to get the same property in default as his parent does have (to 'inherit' it).
### Main properties' inheritance:
* styles
* parents
* parent's styles
* defaults
### Reference properties' inheritance:
* styles
* prototypes
* parents
* parent's styles
* defaults

View File

@ -1,46 +1,106 @@
@startuml @startuml
'https://plantuml.com/class-diagram 'https://plantuml.com/class-diagram
interface Vision
interface Vision{ interface Solid
val parent: Vision? Vision <-- Solid
fun getProperty(name): MetaItem?
fun setProperty(name, value)
} class VisionGroup
Vision <-- VisionGroup
class VisionBase{ class VisionBase
basic vision Vision <-- VisionBase
implementation
}
Vision <|-- VisionBase
interface VisionGroup{
A group of Visions
}
Vision <|-- VisionGroup
interface Solid{ class SolidLabel
The base for 3D geometry Solid <--- SolidLabel
} SolidBase <-- SolidLabel
Vision <|-- Solid
class SolidGroup class SolidGroup
Solid <--- SolidGroup
VisionGroupBase <-- SolidGroup
Solid <|-- SolidGroup class SolidBase
VisionGroup <|-- SolidGroup Solid <--- SolidBase
VisionBase <-- SolidBase
class Composite
Solid <|-- Composite
VisionGroup <|-- Composite
class Box class SphereLayer
Solid <|-- Box SolidBase <-- SphereLayer
GeometrySolid <-- SphereLayer
class Tube
Solid <|-- Tube
class Sphere class Sphere
Solid <|-- 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 @enduml