# gpl authors: nfloyd, Francesco Siddi from bpy.types import PropertyGroup from bpy.props import ( BoolProperty, BoolVectorProperty, CollectionProperty, FloatProperty, FloatVectorProperty, EnumProperty, IntProperty, IntVectorProperty, PointerProperty, StringProperty, ) class POVData(PropertyGroup): distance = FloatProperty() location = FloatVectorProperty( subtype='TRANSLATION' ) rotation = FloatVectorProperty( subtype='QUATERNION', size=4 ) name = StringProperty() perspective = EnumProperty( items=[('PERSP', '', ''), ('ORTHO', '', ''), ('CAMERA', '', '')] ) lens = FloatProperty() clip_start = FloatProperty() clip_end = FloatProperty() lock_cursor = BoolProperty() cursor_location = FloatVectorProperty() perspective_matrix_md5 = StringProperty() camera_name = StringProperty() camera_type = StringProperty() lock_object_name = StringProperty() class LayersData(PropertyGroup): view_layers = BoolVectorProperty(size=20) scene_layers = BoolVectorProperty(size=20) lock_camera_and_layers = BoolProperty() name = StringProperty() class DisplayData(PropertyGroup): name = StringProperty() viewport_shade = EnumProperty( items=[('BOUNDBOX', 'BOUNDBOX', 'BOUNDBOX'), ('WIREFRAME', 'WIREFRAME', 'WIREFRAME'), ('SOLID', 'SOLID', 'SOLID'), ('TEXTURED', 'TEXTURED', 'TEXTURED'), ('MATERIAL', 'MATERIAL', 'MATERIAL'), ('RENDERED', 'RENDERED', 'RENDERED')] ) show_only_render = BoolProperty() show_outline_selected = BoolProperty() show_all_objects_origin = BoolProperty() show_relationship_lines = BoolProperty() show_floor = BoolProperty() show_axis_x = BoolProperty() show_axis_y = BoolProperty() show_axis_z = BoolProperty() grid_lines = IntProperty() grid_scale = FloatProperty() grid_subdivisions = IntProperty() material_mode = StringProperty() show_textured_solid = BoolProperty() quad_view = BoolProperty() lock_rotation = BoolProperty() show_sync_view = BoolProperty() use_box_clip = BoolProperty() class ViewData(PropertyGroup): pov = PointerProperty( type=POVData ) layers = PointerProperty( type=LayersData ) display = PointerProperty( type=DisplayData ) name = StringProperty() class StoredViewsData(PropertyGroup): pov_list = CollectionProperty( type=POVData ) layers_list = CollectionProperty( type=LayersData ) display_list = CollectionProperty( type=DisplayData ) view_list = CollectionProperty( type=ViewData ) mode = EnumProperty( name="Mode", items=[('VIEW', "View", "3D View settings"), ('POV', "POV", "POV settings"), ('LAYERS', "Layers", "Layers settings"), ('DISPLAY', "Display", "Display settings")], default='VIEW' ) current_indices = IntVectorProperty( size=4, default=[-1, -1, -1, -1] ) view_modified = BoolProperty( default=False )