111 lines
1.7 KiB
Text
111 lines
1.7 KiB
Text
@startuml
|
|
class Level {
|
|
name: str
|
|
altitude: Decimal
|
|
}
|
|
|
|
class Source {
|
|
name: str
|
|
bottom: Decimal
|
|
left: Decimal
|
|
top: Decimal
|
|
right: Decimal
|
|
}
|
|
|
|
abstract class GeometryMixin {
|
|
geometry:
|
|
}
|
|
|
|
abstract class LevelGeometryMixin {
|
|
}
|
|
GeometryMixin <|-- LevelGeometryMixin
|
|
Level "1" *-- "*" LevelGeometryMixin: section
|
|
|
|
class Building {
|
|
geometry: polygon
|
|
}
|
|
LevelGeometryMixin <|-- Building
|
|
|
|
class Space {
|
|
geometry: polygon
|
|
public: bool
|
|
}
|
|
LevelGeometryMixin <|-- Space
|
|
|
|
class Door {
|
|
geometry: polygon
|
|
}
|
|
LevelGeometryMixin <|-- Door
|
|
|
|
abstract class SpaceGeometryMixin {
|
|
}
|
|
GeometryMixin <|-- SpaceGeometryMixin
|
|
Space "1" *-- "*" SpaceGeometryMixin: space
|
|
|
|
class Hole {
|
|
geometry: polygon
|
|
}
|
|
SpaceGeometryMixin <|-- Hole
|
|
|
|
class Area {
|
|
geometry: polygon
|
|
}
|
|
SpaceGeometryMixin <|-- Area
|
|
|
|
class POI {
|
|
geometry: point
|
|
}
|
|
SpaceGeometryMixin <|-- POI
|
|
|
|
class Stair {
|
|
geometry: linestring
|
|
}
|
|
SpaceGeometryMixin <|-- Stair
|
|
|
|
class Obstacle {
|
|
geometry: polygon
|
|
}
|
|
SpaceGeometryMixin <|-- Obstacle
|
|
|
|
class LineObstacle {
|
|
geometry: linestring
|
|
}
|
|
SpaceGeometryMixin <|-- LineObstacle
|
|
|
|
abstract class Location {
|
|
titles: dict
|
|
public: bool
|
|
can_search: bool
|
|
can_describe: bool
|
|
}
|
|
|
|
abstract class SpecificLocation {
|
|
|
|
}
|
|
SpecificLocation --|> Location
|
|
Level --|> SpecificLocation
|
|
Space --|> SpecificLocation
|
|
Area --|> SpecificLocation
|
|
POI --|> SpecificLocation
|
|
|
|
class LocationGroupCategory {
|
|
name: str
|
|
titles: dict
|
|
}
|
|
|
|
class LocationGroup {
|
|
color: str
|
|
}
|
|
LocationGroup --|> Location
|
|
SpecificLocation "*" --o "*" LocationGroup: groups
|
|
LocationGroup "*" --o "1" LocationGroupCategory: category
|
|
|
|
class LocationSlug {
|
|
slug: str
|
|
}
|
|
|
|
Location "1" -- "1" LocationSlug
|
|
|
|
hide methods
|
|
|
|
@enduml
|