[Bf-extensions-cvs] [888c368f] master: move stored views to release: T51228 T50357
meta-androcto
noreply at git.blender.org
Mon Apr 17 04:13:12 CEST 2017
Commit: 888c368fc4bbd9051a8c25cc951b93869541bf20
Author: meta-androcto
Date: Mon Apr 17 12:12:53 2017 +1000
Branches: master
https://developer.blender.org/rBAC888c368fc4bbd9051a8c25cc951b93869541bf20
move stored views to release: T51228 T50357
===================================================================
D stored_views/__init__.py
D stored_views/core.py
D stored_views/io.py
D stored_views/operators.py
D stored_views/properties.py
D stored_views/ui.py
===================================================================
diff --git a/stored_views/__init__.py b/stored_views/__init__.py
deleted file mode 100644
index 67798bbe..00000000
--- a/stored_views/__init__.py
+++ /dev/null
@@ -1,96 +0,0 @@
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-bl_info = {
- "name": "Stored Views",
- "description": "Save and restore User defined views, pov, layers and display configs.",
- "author": "nfloyd, Francesco Siddi",
- "version": (0, 3, 3,),
- "blender": (2, 71, 0),
- "location": "View3D > Properties > Stored Views",
- "warning": 'beta release, single view only',
- "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.5/Py/Scripts/3D_interaction/stored_views",
- "tracker_url": "https://developer.blender.org/maniphest/task/edit/form/2/",
- "category": "3D View"}
-
-# ACKNOWLEDGMENT
-# ==============
-# import/export functionality is mostly based
-# on Bart Crouch's Theme Manager Addon
-
-# TODO: check against 2.63
-# TODO: quadview complete support : investigate. Where's the data?
-# TODO: lock_camera_and_layers. investigate usage
-# TODO: list reordering
-
-# logging setup
-'''
-import logging
-
-logger = logging.getLogger(__name__)
-logger.setLevel(logging.DEBUG)
-hdlr = logging.StreamHandler()
-fmtr = logging.Formatter('%(asctime)s %(levelname)s %(name)s : %(funcName)s - %(message)s')
-hdlr.setFormatter(fmtr)
-logger.addHandler(hdlr)
-'''
-
-if "bpy" in locals():
- import imp
- imp.reload(ui)
- imp.reload(properties)
- imp.reload(core)
- imp.reload(operators)
- imp.reload(io)
-else:
- #from . import properties, core
- from . import ui, properties, core, operators, io
-
-import bpy
-from bpy.props import PointerProperty
-
-
-class VIEW3D_stored_views_initialize(bpy.types.Operator):
- bl_idname = "view3d.stored_views_initialize"
- bl_label = "Initilize"
-
- @classmethod
- def poll(cls, context):
- return not hasattr(bpy.types.Scene, 'stored_views')
-
- def execute(self, context):
- bpy.types.Scene.stored_views = PointerProperty(type=properties.StoredViewsData)
- scenes = bpy.data.scenes
- for scene in scenes:
- core.DataStore.sanitize_data(scene)
- return {'FINISHED'}
-
-
-def register():
- bpy.utils.register_module(__name__)
- # Context restricted, need to initialize different (button to be clicked by user)
- #initialize()
-
-def unregister():
- ui.VIEW3D_stored_views_draw.handle_remove(bpy.context)
- bpy.utils.unregister_module(__name__)
- if hasattr(bpy.types.Scene, "stored_views"):
- del bpy.types.Scene.stored_views
-
-if __name__ == "__main__":
- register()
diff --git a/stored_views/core.py b/stored_views/core.py
deleted file mode 100644
index 21e49b31..00000000
--- a/stored_views/core.py
+++ /dev/null
@@ -1,382 +0,0 @@
-'''
-import logging
-module_logger = logging.getLogger(__name__)
-'''
-import hashlib
-
-import bpy
-
-
-class StoredView():
- def __init__(self, mode, index=None):
-# self.logger = logging.getLogger('%s.StoredView' % __name__)
- self.scene = bpy.context.scene
- self.view3d = bpy.context.space_data
- self.index = index
- self.data_store = DataStore(mode=mode)
-
- def save(self):
- if self.index == -1:
- stored_view, self.index = self.data_store.create()
- else:
- stored_view = self.data_store.get(self.index)
- self.from_v3d(stored_view)
-# self.logger.debug('index: %s name: %s' % (self.data_store.current_index, stored_view.name))
-
- def set(self):
- stored_view = self.data_store.get(self.index)
- self.update_v3d(stored_view)
-# self.logger.debug('index: %s name: %s' % (self.data_store.current_index, stored_view.name))
-
- def from_v3d(self, stored_view):
- raise NotImplementedError("Subclass must implement abstract method")
-
- def update_v3d(self, stored_view):
- raise NotImplementedError("Subclass must implement abstract method")
-
- @staticmethod
- def is_modified(context, stored_view):
- raise NotImplementedError("Subclass must implement abstract method")
-
-
-class POV(StoredView):
- def __init__(self, index=None):
- super().__init__(mode='POV', index=index)
-# self.logger = logging.getLogger('%s.POV' % __name__)
-
- def from_v3d(self, stored_view):
- view3d = self.view3d
- region3d = view3d.region_3d
-
- stored_view.distance = region3d.view_distance
- stored_view.location = region3d.view_location
- stored_view.rotation = region3d.view_rotation
- stored_view.perspective_matrix_md5 = POV._get_perspective_matrix_md5(region3d)
- stored_view.perspective = region3d.view_perspective
- stored_view.lens = view3d.lens
- stored_view.clip_start = view3d.clip_start
- stored_view.clip_end = view3d.clip_end
-
- if region3d.view_perspective == 'CAMERA':
- stored_view.camera_type = view3d.camera.type # type : 'CAMERA' or 'MESH'
- stored_view.camera_name = view3d.camera.name # store string instead of object
- stored_view.camera_pointer = view3d.camera.as_pointer()
- if view3d.lock_object != None:
- stored_view.lock_object_name = view3d.lock_object.name # idem
- stored_view.lock_object_pointer = view3d.lock_object.as_pointer() # idem
-
- stored_view.lock_cursor = view3d.lock_cursor
- stored_view.cursor_location = view3d.cursor_location
-
- def update_v3d(self, stored_view):
- view3d = self.view3d
- region3d = view3d.region_3d
- region3d.view_distance = stored_view.distance
- region3d.view_location = stored_view.location
- region3d.view_rotation = stored_view.rotation
- region3d.view_perspective = stored_view.perspective
- view3d.lens = stored_view.lens
- view3d.clip_start = stored_view.clip_start
- view3d.clip_end = stored_view.clip_end
- view3d.lock_cursor = stored_view.lock_cursor
- if stored_view.lock_cursor == True:
- # update cursor only if view is locked to cursor
- view3d.cursor_location = stored_view.cursor_location
-
- if stored_view.perspective == "CAMERA":
- cam = self._get_object(stored_view.camera_name, stored_view.camera_pointer)
- if cam:
- # in case the camera is found by pointer, update name
- stored_view.camera_name = cam.name
- view3d.camera = cam
- else:
- # TODO: camera object not found
- pass
-
- if stored_view.lock_object_name != "":
- lock_obj = self._get_object(stored_view.lock_object_name, stored_view.lock_object_pointer)
- if lock_obj:
- # in case the lock object is found by pointer, update name
- stored_view.lock_object_name = lock_obj.name
- view3d.lock_object = lock_obj
- else:
- # TODO: handle lock object not found
- pass
-
- @staticmethod
- def _get_object(name, pointer=None):
- obj = None
- try:
- obj = bpy.data.objects[name]
- except:
- if pointer:
- scene_objects = bpy.data.objects
- for o in scene_objects:
- p = o.as_pointer()
- if p == pointer:
- obj = o
- break
- return obj
-
- @staticmethod
- def is_modified(context, stored_view):
- # TODO: check for others param, currently only perspectiveand perspective_matrix are checked
-# logger = logging.getLogger('%s.POV' % __name__)
- view3d = context.space_data
- region3d = view3d.region_3d
- if region3d.view_perspective != stored_view.perspective:
-# logger.debug('view_perspective')
- return True
-
- md5 = POV._get_perspective_matrix_md5(region3d)
- if (md5 != stored_view.perspective_matrix_md5 and
- region3d.view_perspective != "CAMERA"):
-# logger.debug('perspective_matrix')
- return True
-
- return False
-
- @staticmethod
- def _get_perspective_matrix_md5(region3d):
- md5 = hashlib.md5(str(region3d.perspective_matrix).encode('utf-8')).hexdigest()
- return md5
-
-
-class Layers(StoredView):
- def __init__(self, index=None):
- super().__init__(mode='LAYERS', index=index)
-# self.logger = logging.getLogger('%s.Layers' % __name__)
-
- def from_v3d(self, stored_view):
- view3d = self.view3d
- stored_view.view_layers = view3d.layers
- stored_view.scene_layers = self.scene.layers
- stored_view.lock_camera_and_layers = view3d.lock_camera_and_layers
-
- def update_v3d(self, stored_view):
- view3d = self.view3d
- view3d.lock_camera_and_layers = stored_view.lock_camera_and_layers
- if stored_view.lock_camera_and_layers == True:
- self.scene.layers = stored_view.scene_layers
- else:
- view3d.layers = stored_view.view_layers
-
- @staticmethod
- def is_modified(context, stored_view):
-# logger = logging.getLogger('%s.Layers' % __name__)
- if stored_view.lock_camera_and_layers != context.space_data.lock_camera_and_layers:
-# logger.debug('lock_camera_and_layers')
- return True
- if stored_view.lock_cam
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list