forked from bartvdbraak/blender
lazy load modules for more scripts.
This commit is contained in:
parent
87acf919a5
commit
52f92b4cb1
@ -38,22 +38,26 @@ import addon_utils
|
||||
|
||||
|
||||
def _test_import(module_name, loaded_modules):
|
||||
import traceback
|
||||
import time
|
||||
use_time = _bpy.app.debug
|
||||
|
||||
if module_name in loaded_modules:
|
||||
return None
|
||||
if "." in module_name:
|
||||
print("Ignoring '%s', can't import files containing multiple periods." % module_name)
|
||||
return None
|
||||
|
||||
t = time.time()
|
||||
if use_time:
|
||||
import time
|
||||
t = time.time()
|
||||
|
||||
try:
|
||||
mod = __import__(module_name)
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
return None
|
||||
|
||||
if _bpy.app.debug:
|
||||
if use_time:
|
||||
print("time %s %.4f" % (module_name, time.time() - t))
|
||||
|
||||
loaded_modules.add(mod.__name__) # should match mod.__name__ too
|
||||
@ -99,7 +103,6 @@ def load_scripts(reload_scripts=False, refresh_scripts=False):
|
||||
:arg refresh_scripts: only load scripts which are not already loaded as modules.
|
||||
:type refresh_scripts: bool
|
||||
"""
|
||||
import traceback
|
||||
import time
|
||||
|
||||
t_main = time.time()
|
||||
@ -124,6 +127,7 @@ def load_scripts(reload_scripts=False, refresh_scripts=False):
|
||||
try:
|
||||
register()
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
else:
|
||||
print("\nWarning! '%s' has no register function, this is now a requirement for registerable scripts." % mod.__file__)
|
||||
@ -134,6 +138,7 @@ def load_scripts(reload_scripts=False, refresh_scripts=False):
|
||||
try:
|
||||
unregister()
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
def test_reload(mod):
|
||||
@ -147,6 +152,7 @@ def load_scripts(reload_scripts=False, refresh_scripts=False):
|
||||
try:
|
||||
return imp.reload(mod)
|
||||
except:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
def test_register(mod):
|
||||
@ -424,7 +430,6 @@ def _bpy_module_classes(module, is_registered=False):
|
||||
|
||||
|
||||
def register_module(module, verbose=False):
|
||||
import traceback
|
||||
if verbose:
|
||||
print("bpy.utils.register_module(%r): ..." % module)
|
||||
for cls, path, line in _bpy_module_classes(module, is_registered=False):
|
||||
@ -435,6 +440,7 @@ def register_module(module, verbose=False):
|
||||
except:
|
||||
print("bpy.utils.register_module(): failed to registering class '%s.%s'" % (cls.__module__, cls.__name__))
|
||||
print("\t", path, "line", line)
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
if verbose:
|
||||
print("done.\n")
|
||||
@ -443,7 +449,6 @@ def register_module(module, verbose=False):
|
||||
|
||||
|
||||
def unregister_module(module, verbose=False):
|
||||
import traceback
|
||||
if verbose:
|
||||
print("bpy.utils.unregister_module(%r): ..." % module)
|
||||
for cls, path, line in _bpy_module_classes(module, is_registered=True):
|
||||
@ -454,6 +459,7 @@ def unregister_module(module, verbose=False):
|
||||
except:
|
||||
print("bpy.utils.unregister_module(): failed to unregistering class '%s.%s'" % (cls.__module__, cls.__name__))
|
||||
print("\t", path, "line", line)
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
if verbose:
|
||||
print("done.\n")
|
||||
|
@ -19,10 +19,11 @@
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
import mathutils
|
||||
from math import cos, sin, pi
|
||||
|
||||
|
||||
def add_torus(major_rad, minor_rad, major_seg, minor_seg):
|
||||
from math import cos, sin, pi
|
||||
|
||||
Vector = mathutils.Vector
|
||||
Quaternion = mathutils.Quaternion
|
||||
|
||||
|
@ -18,18 +18,17 @@
|
||||
|
||||
# <pep8 compliant>
|
||||
|
||||
from math import *
|
||||
import bpy
|
||||
from mathutils import *
|
||||
|
||||
|
||||
def main(context):
|
||||
from math import pi
|
||||
|
||||
def cleanupEulCurve(fcv):
|
||||
keys = []
|
||||
|
||||
for k in fcv.keyframe_points:
|
||||
keys.append([k.handle_left.copy(), k.co.copy(), k.handle_right.copy()])
|
||||
print(keys)
|
||||
|
||||
for i in range(len(keys)):
|
||||
cur = keys[i]
|
||||
|
@ -23,9 +23,7 @@
|
||||
# <pep8 compliant>
|
||||
|
||||
from mathutils import Matrix, Vector, geometry
|
||||
import time
|
||||
import bpy
|
||||
from math import cos, radians
|
||||
|
||||
DEG_TO_RAD = 0.017453292519943295 # pi/180.0
|
||||
SMALL_NUM = 0.000000001
|
||||
@ -36,14 +34,10 @@ global USER_FILL_HOLES_QUALITY
|
||||
USER_FILL_HOLES = None
|
||||
USER_FILL_HOLES_QUALITY = None
|
||||
|
||||
dict_matrix = {}
|
||||
|
||||
def pointInTri2D(v, v1, v2, v3):
|
||||
global dict_matrix
|
||||
|
||||
key = v1.x, v1.y, v2.x, v2.y, v3.x, v3.y
|
||||
|
||||
# Commented because its slower to do teh bounds check, we should realy cache the bounds info for each face.
|
||||
# Commented because its slower to do the bounds check, we should realy cache the bounds info for each face.
|
||||
'''
|
||||
# BOUNDS CHECK
|
||||
xmin= 1000000
|
||||
@ -268,21 +262,6 @@ def testNewVecLs2DRotIsBetter(vecs, mat=-1, bestAreaSoFar = -1):
|
||||
h = maxy-miny
|
||||
return (w*h, w,h), vecs # Area, vecs
|
||||
|
||||
# Takes a list of faces that make up a UV island and rotate
|
||||
# until they optimally fit inside a square.
|
||||
ROTMAT_2D_POS_90D = Matrix.Rotation( radians(90.0), 2)
|
||||
ROTMAT_2D_POS_45D = Matrix.Rotation( radians(45.0), 2)
|
||||
|
||||
RotMatStepRotation = []
|
||||
rot_angle = 22.5 #45.0/2
|
||||
while rot_angle > 0.1:
|
||||
RotMatStepRotation.append([\
|
||||
Matrix.Rotation( radians(rot_angle), 2),\
|
||||
Matrix.Rotation( radians(-rot_angle), 2)])
|
||||
|
||||
rot_angle = rot_angle/2.0
|
||||
|
||||
|
||||
def optiRotateUvIsland(faces):
|
||||
global currentArea
|
||||
|
||||
@ -464,7 +443,7 @@ def mergeUvIslands(islandList):
|
||||
|
||||
|
||||
# if targetIsland[3] > (sourceIsland[2]) and\ #
|
||||
# print USER_FREE_SPACE_TO_TEST_QUALITY, 'ass'
|
||||
# print USER_FREE_SPACE_TO_TEST_QUALITY
|
||||
if targetIsland[2] > (sourceIsland[1] * USER_FREE_SPACE_TO_TEST_QUALITY) and\
|
||||
targetIsland[4] > sourceIsland[4] and\
|
||||
targetIsland[5] > sourceIsland[5]:
|
||||
@ -734,7 +713,7 @@ def packIslands(islandList):
|
||||
#print '\tPacking UV Islands...'
|
||||
#XXX Window.DrawProgressBar(0.7, 'Packing %i UV Islands...' % len(packBoxes) )
|
||||
|
||||
time1 = time.time()
|
||||
# time1 = time.time()
|
||||
packWidth, packHeight = geometry.box_pack_2d(packBoxes)
|
||||
|
||||
# print 'Box Packing Time:', time.time() - time1
|
||||
@ -793,6 +772,27 @@ class thickface(object):
|
||||
self.area = face.area
|
||||
self.edge_keys = face.edge_keys
|
||||
|
||||
|
||||
def main_consts():
|
||||
from math import radians
|
||||
|
||||
global ROTMAT_2D_POS_90D
|
||||
global ROTMAT_2D_POS_45D
|
||||
global RotMatStepRotation
|
||||
|
||||
ROTMAT_2D_POS_90D = Matrix.Rotation( radians(90.0), 2)
|
||||
ROTMAT_2D_POS_45D = Matrix.Rotation( radians(45.0), 2)
|
||||
|
||||
RotMatStepRotation = []
|
||||
rot_angle = 22.5 #45.0/2
|
||||
while rot_angle > 0.1:
|
||||
RotMatStepRotation.append([\
|
||||
Matrix.Rotation( radians(rot_angle), 2),\
|
||||
Matrix.Rotation( radians(-rot_angle), 2)])
|
||||
|
||||
rot_angle = rot_angle/2.0
|
||||
|
||||
|
||||
global ob
|
||||
ob = None
|
||||
def main(context, island_margin, projection_limit):
|
||||
@ -801,6 +801,21 @@ def main(context, island_margin, projection_limit):
|
||||
global USER_STRETCH_ASPECT
|
||||
global USER_ISLAND_MARGIN
|
||||
|
||||
from math import cos
|
||||
import time
|
||||
|
||||
global dict_matrix
|
||||
dict_matrix = {}
|
||||
|
||||
|
||||
# Constants:
|
||||
# Takes a list of faces that make up a UV island and rotate
|
||||
# until they optimally fit inside a square.
|
||||
global ROTMAT_2D_POS_90D
|
||||
global ROTMAT_2D_POS_45D
|
||||
global RotMatStepRotation
|
||||
main_consts()
|
||||
|
||||
#XXX objects= bpy.data.scenes.active.objects
|
||||
objects = context.selected_editable_objects
|
||||
|
||||
@ -868,7 +883,7 @@ def main(context, island_margin, projection_limit):
|
||||
|
||||
time1 = time.time()
|
||||
|
||||
# Tag as False se we dont operate on teh same mesh twice.
|
||||
# Tag as False se we dont operate on the same mesh twice.
|
||||
#XXX bpy.data.meshes.tag = False
|
||||
for me in bpy.data.meshes:
|
||||
me.tag = False
|
||||
@ -1074,6 +1089,8 @@ def main(context, island_margin, projection_limit):
|
||||
if is_editmode:
|
||||
bpy.ops.object.mode_set(mode='EDIT')
|
||||
|
||||
dict_matrix.clear()
|
||||
|
||||
#XXX Window.DrawProgressBar(1.0, "")
|
||||
#XXX Window.WaitCursor(0)
|
||||
#XXX Window.RedrawAll()
|
||||
|
@ -30,16 +30,9 @@
|
||||
# but results are far more accurate
|
||||
#
|
||||
|
||||
import bpy
|
||||
import math
|
||||
import time
|
||||
|
||||
from mathutils import Vector
|
||||
from bpy.props import *
|
||||
|
||||
|
||||
def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean, dirt_only):
|
||||
## Window.WaitCursor(1)
|
||||
from mathutils import Vector
|
||||
from math import acos
|
||||
|
||||
#BPyMesh.meshCalcNormals(me)
|
||||
|
||||
@ -76,7 +69,7 @@ def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean,
|
||||
vec /= tot_con
|
||||
|
||||
# angle is the acos of the dot product between vert and connected verts normals
|
||||
ang = math.acos(no.dot(vec))
|
||||
ang = acos(no.dot(vec))
|
||||
|
||||
# enforce min/max
|
||||
ang = max(clamp_dirt, ang)
|
||||
@ -146,7 +139,9 @@ def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean,
|
||||
col[1] = tone * col[1]
|
||||
col[2] = tone * col[2]
|
||||
|
||||
## Window.WaitCursor(0)
|
||||
|
||||
import bpy
|
||||
from bpy.props import FloatProperty, IntProperty, BoolProperty
|
||||
|
||||
|
||||
class VertexPaintDirt(bpy.types.Operator):
|
||||
@ -162,6 +157,8 @@ class VertexPaintDirt(bpy.types.Operator):
|
||||
dirt_only = BoolProperty(name="Dirt Only", description="Dont calculate cleans for convex areas", default=False)
|
||||
|
||||
def execute(self, context):
|
||||
import time
|
||||
from math import radians
|
||||
obj = context.object
|
||||
|
||||
if not obj or obj.type != 'MESH':
|
||||
@ -172,7 +169,7 @@ class VertexPaintDirt(bpy.types.Operator):
|
||||
|
||||
t = time.time()
|
||||
|
||||
applyVertexDirt(mesh, self.blur_iterations, self.blur_strength, math.radians(self.dirt_angle), math.radians(self.clean_angle), self.dirt_only)
|
||||
applyVertexDirt(mesh, self.blur_iterations, self.blur_strength, radians(self.dirt_angle), radians(self.clean_angle), self.dirt_only)
|
||||
|
||||
print('Dirt calculated in %.6f' % (time.time() - t))
|
||||
|
||||
|
@ -19,7 +19,6 @@
|
||||
# <pep8 compliant>
|
||||
import bpy
|
||||
import os
|
||||
import shutil
|
||||
import addon_utils
|
||||
|
||||
from bpy.props import StringProperty, BoolProperty, EnumProperty
|
||||
@ -1073,6 +1072,8 @@ class WM_OT_addon_install(bpy.types.Operator):
|
||||
def execute(self, context):
|
||||
import traceback
|
||||
import zipfile
|
||||
import shutil
|
||||
|
||||
pyfile = self.filepath
|
||||
|
||||
# dont use bpy.utils.script_paths("addons") because we may not be able to write to it.
|
||||
|
Loading…
Reference in New Issue
Block a user