| | from enum import IntEnum |
| |
|
| |
|
| | class StateSE2Index(IntEnum): |
| | """Intenum for SE(2) arrays.""" |
| |
|
| | _X = 0 |
| | _Y = 1 |
| | _HEADING = 2 |
| |
|
| | @classmethod |
| | def size(cls): |
| | valid_attributes = [ |
| | attribute |
| | for attribute in dir(cls) |
| | if attribute.startswith("_") and not attribute.startswith("__") and not callable(getattr(cls, attribute)) |
| | ] |
| | return len(valid_attributes) |
| |
|
| | @classmethod |
| | @property |
| | def X(cls): |
| | return cls._X |
| |
|
| | @classmethod |
| | @property |
| | def Y(cls): |
| | return cls._Y |
| |
|
| | @classmethod |
| | @property |
| | def HEADING(cls): |
| | return cls._HEADING |
| |
|
| | @classmethod |
| | @property |
| | def POINT(cls): |
| | |
| | return slice(cls._X, cls._Y + 1) |
| |
|
| | @classmethod |
| | @property |
| | def STATE_SE2(cls): |
| | |
| | return slice(cls._X, cls._HEADING + 1) |
| |
|
| |
|
| | class BoundingBoxIndex(IntEnum): |
| | """Intenum of bounding boxes in logs.""" |
| |
|
| | _X = 0 |
| | _Y = 1 |
| | _Z = 2 |
| | _LENGTH = 3 |
| | _WIDTH = 4 |
| | _HEIGHT = 5 |
| | _HEADING = 6 |
| |
|
| | @classmethod |
| | def size(cls): |
| | valid_attributes = [ |
| | attribute |
| | for attribute in dir(cls) |
| | if attribute.startswith("_") and not attribute.startswith("__") and not callable(getattr(cls, attribute)) |
| | ] |
| | return len(valid_attributes) |
| |
|
| | @classmethod |
| | @property |
| | def X(cls): |
| | return cls._X |
| |
|
| | @classmethod |
| | @property |
| | def Y(cls): |
| | return cls._Y |
| |
|
| | @classmethod |
| | @property |
| | def Z(cls): |
| | return cls._Z |
| |
|
| | @classmethod |
| | @property |
| | def LENGTH(cls): |
| | return cls._LENGTH |
| |
|
| | @classmethod |
| | @property |
| | def WIDTH(cls): |
| | return cls._WIDTH |
| |
|
| | @classmethod |
| | @property |
| | def HEIGHT(cls): |
| | return cls._HEIGHT |
| |
|
| | @classmethod |
| | @property |
| | def HEADING(cls): |
| | return cls._HEADING |
| |
|
| | @classmethod |
| | @property |
| | def POINT2D(cls): |
| | |
| | return slice(cls._X, cls._Y + 1) |
| |
|
| | @classmethod |
| | @property |
| | def POSITION(cls): |
| | |
| | return slice(cls._X, cls._Z + 1) |
| |
|
| | @classmethod |
| | @property |
| | def DIMENSION(cls): |
| | |
| | return slice(cls._LENGTH, cls._HEIGHT + 1) |
| |
|
| |
|
| | class LidarIndex(IntEnum): |
| | """Intenum for lidar point cloud arrays.""" |
| |
|
| | _X = 0 |
| | _Y = 1 |
| | _Z = 2 |
| | _INTENSITY = 3 |
| | _RING = 4 |
| | _ID = 5 |
| |
|
| | @classmethod |
| | def size(cls): |
| | valid_attributes = [ |
| | attribute |
| | for attribute in dir(cls) |
| | if attribute.startswith("_") and not attribute.startswith("__") and not callable(getattr(cls, attribute)) |
| | ] |
| | return len(valid_attributes) |
| |
|
| | @classmethod |
| | @property |
| | def X(cls): |
| | return cls._X |
| |
|
| | @classmethod |
| | @property |
| | def Y(cls): |
| | return cls._Y |
| |
|
| | @classmethod |
| | @property |
| | def Z(cls): |
| | return cls._Z |
| |
|
| | @classmethod |
| | @property |
| | def INTENSITY(cls): |
| | return cls._INTENSITY |
| |
|
| | @classmethod |
| | @property |
| | def RING(cls): |
| | return cls._RING |
| |
|
| | @classmethod |
| | @property |
| | def ID(cls): |
| | return cls._ID |
| |
|
| | @classmethod |
| | @property |
| | def POINT2D(cls): |
| | |
| | return slice(cls._X, cls._Y + 1) |
| |
|
| | @classmethod |
| | @property |
| | def POSITION(cls): |
| | |
| | return slice(cls._X, cls._Z + 1) |
| |
|