[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59375] trunk/blender/release/scripts/ freestyle/style_modules/parameter_editor.py: style cleanup: pep8, also use float literals when comparing floats and pass tuples to mathutils .Vector() rather then list.
Campbell Barton
ideasman42 at gmail.com
Thu Aug 22 01:19:01 CEST 2013
Revision: 59375
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59375
Author: campbellbarton
Date: 2013-08-21 23:19:01 +0000 (Wed, 21 Aug 2013)
Log Message:
-----------
style cleanup: pep8, also use float literals when comparing floats and pass tuples to mathutils.Vector() rather then list.
Modified Paths:
--------------
trunk/blender/release/scripts/freestyle/style_modules/parameter_editor.py
Modified: trunk/blender/release/scripts/freestyle/style_modules/parameter_editor.py
===================================================================
--- trunk/blender/release/scripts/freestyle/style_modules/parameter_editor.py 2013-08-21 21:35:45 UTC (rev 59374)
+++ trunk/blender/release/scripts/freestyle/style_modules/parameter_editor.py 2013-08-21 23:19:01 UTC (rev 59375)
@@ -38,24 +38,29 @@
from logical_operators import AndUP1D, NotUP1D, OrUP1D
from shaders import pyBluePrintCirclesShader, pyBluePrintEllipsesShader, pyBluePrintSquaresShader
+
class ColorRampModifier(StrokeShader):
def __init__(self, blend, influence, ramp):
StrokeShader.__init__(self)
self.__blend = blend
self.__influence = influence
self.__ramp = ramp
+
def evaluate(self, t):
col = freestyle.evaluateColorRamp(self.__ramp, t)
- col = col.xyz # omit alpha
+ col = col.xyz # omit alpha
return col
+
def blend_ramp(self, a, b):
return freestyle.blendRamp(self.__blend, a, self.__influence, b)
+
class ScalarBlendModifier(StrokeShader):
def __init__(self, blend, influence):
StrokeShader.__init__(self)
self.__blend = blend
self.__influence = influence
+
def blend(self, v1, v2):
fac = self.__influence
facm = 1.0 - fac
@@ -64,7 +69,7 @@
elif self.__blend == 'ADD':
v1 += fac * v2
elif self.__blend == 'MULTIPLY':
- v1 *= facm + fac * v2;
+ v1 *= facm + fac * v2
elif self.__blend == 'SUBTRACT':
v1 -= fac * v2
elif self.__blend == 'DIVIDE':
@@ -84,6 +89,7 @@
raise ValueError("unknown curve blend type: " + self.__blend)
return v1
+
class CurveMappingModifier(ScalarBlendModifier):
def __init__(self, blend, influence, mapping, invert, curve):
ScalarBlendModifier.__init__(self, blend, influence)
@@ -91,19 +97,24 @@
self.__mapping = getattr(self, mapping)
self.__invert = invert
self.__curve = curve
+
def LINEAR(self, t):
if self.__invert:
return 1.0 - t
return t
+
def CURVE(self, t):
return freestyle.evaluateCurveMappingF(self.__curve, 0, t)
+
def evaluate(self, t):
return self.__mapping(t)
+
class ThicknessModifierMixIn:
def __init__(self):
scene = freestyle.getCurrentScene()
self.__persp_camera = (scene.camera.data.type == 'PERSP')
+
def set_thickness(self, sv, outer, inner):
fe = sv.first_svertex.get_fedge(sv.second_svertex)
nature = fe.nature
@@ -114,20 +125,22 @@
dir = point.dot(fe.normal_left)
else:
dir = fe.normal_left.z
- if dir < 0.0: # the back side is visible
+ if dir < 0.0: # the back side is visible
outer, inner = inner, outer
elif (nature & Nature.SILHOUETTE):
- if fe.is_smooth: # TODO more tests needed
+ if fe.is_smooth: # TODO more tests needed
outer, inner = inner, outer
else:
outer = inner = (outer + inner) / 2
sv.attribute.thickness = (outer, inner)
+
class ThicknessBlenderMixIn(ThicknessModifierMixIn):
def __init__(self, position, ratio):
ThicknessModifierMixIn.__init__(self)
self.__position = position
self.__ratio = ratio
+
def blend_thickness(self, outer, inner, v):
if self.__position == 'CENTER':
outer = self.blend(outer, v / 2)
@@ -145,9 +158,11 @@
raise ValueError("unknown thickness position: " + self.__position)
return outer, inner
+
class BaseColorShader(ConstantColorShader):
pass
+
class BaseThicknessShader(StrokeShader, ThicknessModifierMixIn):
def __init__(self, thickness, position, ratio):
StrokeShader.__init__(self)
@@ -166,6 +181,7 @@
self.__inner = thickness * (1 - ratio)
else:
raise ValueError("unknown thickness position: " + self.position)
+
def shade(self, stroke):
it = stroke.stroke_vertices_begin()
while not it.is_end:
@@ -173,6 +189,7 @@
self.set_thickness(sv, self.__outer, self.__inner)
it.increment()
+
# Along Stroke modifiers
def iter_t2d_along_stroke(stroke):
@@ -183,11 +200,12 @@
while not it.is_end:
p = it.object.point
distance += (prev - p).length
- prev = p.copy() # need a copy because the point can be altered
+ prev = p.copy() # need a copy because the point can be altered
t = min(distance / total, 1.0) if total > 0.0 else 0.0
yield it, t
it.increment()
+
class ColorAlongStrokeShader(ColorRampModifier):
def shade(self, stroke):
for it, t in iter_t2d_along_stroke(stroke):
@@ -196,6 +214,7 @@
b = self.evaluate(t)
sv.attribute.color = self.blend_ramp(a, b)
+
class AlphaAlongStrokeShader(CurveMappingModifier):
def shade(self, stroke):
for it, t in iter_t2d_along_stroke(stroke):
@@ -204,6 +223,7 @@
b = self.evaluate(t)
sv.attribute.alpha = self.blend(a, b)
+
class ThicknessAlongStrokeShader(ThicknessBlenderMixIn, CurveMappingModifier):
def __init__(self, thickness_position, thickness_ratio,
blend, influence, mapping, invert, curve, value_min, value_max):
@@ -211,6 +231,7 @@
CurveMappingModifier.__init__(self, blend, influence, mapping, invert, curve)
self.__value_min = value_min
self.__value_max = value_max
+
def shade(self, stroke):
for it, t in iter_t2d_along_stroke(stroke):
sv = it.object
@@ -219,13 +240,14 @@
c = self.blend_thickness(a[0], a[1], b)
self.set_thickness(sv, c[0], c[1])
+
# Distance from Camera modifiers
def iter_distance_from_camera(stroke, range_min, range_max):
- normfac = range_max - range_min # normalization factor
+ normfac = range_max - range_min # normalization factor
it = stroke.stroke_vertices_begin()
while not it.is_end:
- p = it.object.point_3d # in the camera coordinate
+ p = it.object.point_3d # in the camera coordinate
distance = p.length
if distance < range_min:
t = 0.0
@@ -236,11 +258,13 @@
yield it, t
it.increment()
+
class ColorDistanceFromCameraShader(ColorRampModifier):
def __init__(self, blend, influence, ramp, range_min, range_max):
ColorRampModifier.__init__(self, blend, influence, ramp)
self.__range_min = range_min
self.__range_max = range_max
+
def shade(self, stroke):
for it, t in iter_distance_from_camera(stroke, self.__range_min, self.__range_max):
sv = it.object
@@ -248,11 +272,13 @@
b = self.evaluate(t)
sv.attribute.color = self.blend_ramp(a, b)
+
class AlphaDistanceFromCameraShader(CurveMappingModifier):
def __init__(self, blend, influence, mapping, invert, curve, range_min, range_max):
CurveMappingModifier.__init__(self, blend, influence, mapping, invert, curve)
self.__range_min = range_min
self.__range_max = range_max
+
def shade(self, stroke):
for it, t in iter_distance_from_camera(stroke, self.__range_min, self.__range_max):
sv = it.object
@@ -260,6 +286,7 @@
b = self.evaluate(t)
sv.attribute.alpha = self.blend(a, b)
+
class ThicknessDistanceFromCameraShader(ThicknessBlenderMixIn, CurveMappingModifier):
def __init__(self, thickness_position, thickness_ratio,
blend, influence, mapping, invert, curve, range_min, range_max, value_min, value_max):
@@ -269,6 +296,7 @@
self.__range_max = range_max
self.__value_min = value_min
self.__value_max = value_max
+
def shade(self, stroke):
for it, t in iter_distance_from_camera(stroke, self.__range_min, self.__range_max):
sv = it.object
@@ -277,17 +305,18 @@
c = self.blend_thickness(a[0], a[1], b)
self.set_thickness(sv, c[0], c[1])
+
# Distance from Object modifiers
def iter_distance_from_object(stroke, object, range_min, range_max):
scene = freestyle.getCurrentScene()
- mv = scene.camera.matrix_world.copy() # model-view matrix
+ mv = scene.camera.matrix_world.copy() # model-view matrix
mv.invert()
- loc = mv * object.location # loc in the camera coordinate
- normfac = range_max - range_min # normalization factor
+ loc = mv * object.location # loc in the camera coordinate
+ normfac = range_max - range_min # normalization factor
it = stroke.stroke_vertices_begin()
while not it.is_end:
- p = it.object.point_3d # in the camera coordinate
+ p = it.object.point_3d # in the camera coordinate
distance = (p - loc).length
if distance < range_min:
t = 0.0
@@ -298,12 +327,14 @@
yield it, t
it.increment()
+
class ColorDistanceFromObjectShader(ColorRampModifier):
def __init__(self, blend, influence, ramp, target, range_min, range_max):
ColorRampModifier.__init__(self, blend, influence, ramp)
self.__target = target
self.__range_min = range_min
self.__range_max = range_max
+
def shade(self, stroke):
if self.__target is None:
return
@@ -313,12 +344,14 @@
b = self.evaluate(t)
sv.attribute.color = self.blend_ramp(a, b)
+
class AlphaDistanceFromObjectShader(CurveMappingModifier):
def __init__(self, blend, influence, mapping, invert, curve, target, range_min, range_max):
CurveMappingModifier.__init__(self, blend, influence, mapping, invert, curve)
self.__target = target
self.__range_min = range_min
self.__range_max = range_max
+
def shade(self, stroke):
if self.__target is None:
return
@@ -328,6 +361,7 @@
b = self.evaluate(t)
sv.attribute.alpha = self.blend(a, b)
+
class ThicknessDistanceFromObjectShader(ThicknessBlenderMixIn, CurveMappingModifier):
def __init__(self, thickness_position, thickness_ratio,
blend, influence, mapping, invert, curve, target, range_min, range_max, value_min, value_max):
@@ -338,6 +372,7 @@
self.__range_max = range_max
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list