65 lines
1.1 KiB
Python
65 lines
1.1 KiB
Python
from argparse import Namespace
|
|
|
|
|
|
class DataClass(Namespace):
|
|
|
|
def __len__(self):
|
|
return len(self.__dict__())
|
|
|
|
def __dict__(self):
|
|
return {key: val for key, val in self.__class__.__dict__.items() if '__' not in key}
|
|
|
|
def items(self):
|
|
return self.__dict__().items()
|
|
|
|
def __repr__(self):
|
|
return f'{self.__class__.__name__}({self.__dict__().__repr__()})'
|
|
|
|
def __getitem__(self, item):
|
|
return self.__dict__()[item]
|
|
|
|
|
|
class Classes(DataClass):
|
|
|
|
# Object Classes for Point Segmentation
|
|
Sphere = 0
|
|
Cylinder = 1
|
|
Box = 2 # All SubTypes of Planes
|
|
Polytope = 3 #
|
|
Plane = 4 #
|
|
|
|
|
|
class Settings(DataClass):
|
|
P2G = 'grid'
|
|
P2P = 'prim'
|
|
PN2 = 'pc'
|
|
|
|
|
|
class ClusterTypes(DataClass):
|
|
prim = 'prim'
|
|
grid = 'grid'
|
|
none = ''
|
|
|
|
class DataSplit(DataClass):
|
|
# DATA SPLIT OPTIONS
|
|
train = 'train'
|
|
devel = 'devel'
|
|
test = 'test'
|
|
predict = 'predict'
|
|
|
|
|
|
class GlobalVar(DataClass):
|
|
# Variables for plotting
|
|
PADDING = 0.25
|
|
DPI = 50
|
|
|
|
data_split = DataSplit()
|
|
|
|
classes = Classes()
|
|
|
|
grid_count = 12
|
|
|
|
prim_count = -1
|
|
|
|
settings = Settings()
|