Freestyle: minor revisions of Python API docstrings and comments.

This commit is contained in:
Tamito Kajiyama 2014-07-24 11:44:31 +09:00
parent 1819fa2b5a
commit d5d540615b
7 changed files with 70 additions and 71 deletions

@ -77,7 +77,7 @@ NATURES = (
def nature_in_preceding(nature, index):
""" Returns True if given nature appears before index, else False """
"""Returns True if given nature appears before index, else False."""
return any(nature & nat for nat in NATURES[:index])

@ -19,7 +19,7 @@
"""
Functions operating on vertices (0D elements) and polylines (1D
elements). Also intended to be a collection of examples for predicate
definition in Python
definition in Python.
"""
# module members
@ -97,7 +97,7 @@ from mathutils import Vector
class CurveMaterialF0D(UnaryFunction0DMaterial):
"""
A replacement of the built-in MaterialF0D for stroke creation.
MaterialF0D does not work with Curves and Strokes. Line color
MaterialF0D does not work with Curves and Strokes. Line color
priority is used to pick one of the two materials at material
boundaries.
@ -128,7 +128,7 @@ class pyCurvilinearLengthF0D(UnaryFunction0DDouble):
class pyDensityAnisotropyF0D(UnaryFunction0DDouble):
"""Estimates the anisotropy of density"""
"""Estimates the anisotropy of density."""
def __init__(self, level):
UnaryFunction0DDouble.__init__(self)
self.IsoDensity = ReadCompleteViewMapPixelF0D(level)
@ -149,7 +149,7 @@ class pyDensityAnisotropyF0D(UnaryFunction0DDouble):
class pyViewMapGradientVectorF0D(UnaryFunction0DVec2f):
"""Returns the gradient vector for a pixel
"""Returns the gradient vector for a pixel.
:arg level: the level at which to compute the gradient
:type level: int

@ -112,9 +112,8 @@ class pyVertexNatureUP0D(UnaryPredicate0D):
class pyBackTVertexUP0D(UnaryPredicate0D):
"""
Check whether an Interface0DIterator
references a TVertex and is the one that is
hidden (inferred from the context)
Check whether an Interface0DIterator references a TVertex and is
the one that is hidden (inferred from the context).
"""
def __init__(self):
UnaryPredicate0D.__init__(self)

@ -23,7 +23,7 @@
"""
Stroke shaders used for creation of stylized strokes. Also intended
to be a collection of examples for shader definition in Python
to be a collection of examples for shader definition in Python.
"""
# module members
@ -100,7 +100,7 @@ from random import randint
class pyDepthDiscontinuityThicknessShader(StrokeShader):
"""
Assigns a thickness to the stroke based on the stroke's distance
to the camera (Z-value)
to the camera (Z-value).
"""
def __init__(self, min, max):
StrokeShader.__init__(self)
@ -118,7 +118,7 @@ class pyDepthDiscontinuityThicknessShader(StrokeShader):
class pyConstantThicknessShader(StrokeShader):
"""
Assigns a constant thickness along the stroke
Assigns a constant thickness along the stroke.
"""
def __init__(self, thickness):
StrokeShader.__init__(self)
@ -131,7 +131,7 @@ class pyConstantThicknessShader(StrokeShader):
class pyFXSVaryingThicknessWithDensityShader(StrokeShader):
"""
Assings thickness to a stroke based on the density of the diffuse map
Assings thickness to a stroke based on the density of the diffuse map.
"""
def __init__(self, wsize, threshold_min, threshold_max, thicknessMin, thicknessMax):
StrokeShader.__init__(self)
@ -155,7 +155,7 @@ class pyFXSVaryingThicknessWithDensityShader(StrokeShader):
class pyIncreasingThicknessShader(StrokeShader):
"""
Increasingly thickens the stroke
Increasingly thickens the stroke.
"""
def __init__(self, thicknessMin, thicknessMax):
StrokeShader.__init__(self)
@ -176,7 +176,7 @@ class pyIncreasingThicknessShader(StrokeShader):
class pyConstrainedIncreasingThicknessShader(StrokeShader):
"""
Increasingly thickens the stroke, constrained by a ratio of the
stroke's length
stroke's length.
"""
def __init__(self, thicknessMin, thicknessMax, ratio):
StrokeShader.__init__(self)
@ -203,7 +203,7 @@ class pyConstrainedIncreasingThicknessShader(StrokeShader):
class pyDecreasingThicknessShader(StrokeShader):
"""
Inverse of pyIncreasingThicknessShader, decreasingly thickens the stroke
Inverse of pyIncreasingThicknessShader, decreasingly thickens the stroke.
"""
def __init__(self, thicknessMin, thicknessMax):
StrokeShader.__init__(self)
@ -224,7 +224,7 @@ class pyDecreasingThicknessShader(StrokeShader):
class pyNonLinearVaryingThicknessShader(StrokeShader):
"""
Assigns thickness to a stroke based on an exponential function
Assigns thickness to a stroke based on an exponential function.
"""
def __init__(self, thicknessExtremity, thicknessMiddle, exponent):
self._thicknessMin = thicknessMiddle
@ -243,7 +243,7 @@ class pyNonLinearVaryingThicknessShader(StrokeShader):
class pySLERPThicknessShader(StrokeShader):
"""
Assigns thickness to a stroke based on spherical linear interpolation
Assigns thickness to a stroke based on spherical linear interpolation.
"""
def __init__(self, thicknessMin, thicknessMax, omega=1.2):
StrokeShader.__init__(self)
@ -267,7 +267,7 @@ class pySLERPThicknessShader(StrokeShader):
class pyTVertexThickenerShader(StrokeShader):
"""
Thickens TVertices (visual intersections between two edges)
Thickens TVertices (visual intersections between two edges).
"""
def __init__(self, a=1.5, n=3):
StrokeShader.__init__(self)
@ -297,7 +297,7 @@ class pyImportance2DThicknessShader(StrokeShader):
"""
Assigns thickness based on distance to a given point in 2D space.
the thickness is inverted, so the vertices closest to the
specified point have the lowest thickness
specified point have the lowest thickness.
"""
def __init__(self, x, y, w, kmin, kmax):
StrokeShader.__init__(self)
@ -317,7 +317,7 @@ class pyImportance2DThicknessShader(StrokeShader):
class pyImportance3DThicknessShader(StrokeShader):
"""
Assigns thickness based on distance to a given point in 3D space
Assigns thickness based on distance to a given point in 3D space.
"""
def __init__(self, x, y, z, w, kmin, kmax):
StrokeShader.__init__(self)
@ -338,7 +338,7 @@ class pyImportance3DThicknessShader(StrokeShader):
class pyZDependingThicknessShader(StrokeShader):
"""
Assigns thickness based on an object's local Z depth (point
closest to camera is 1, point furthest from camera is zero)
closest to camera is 1, point furthest from camera is zero).
"""
def __init__(self, min, max):
StrokeShader.__init__(self)
@ -363,7 +363,7 @@ class pyZDependingThicknessShader(StrokeShader):
class pyConstantColorShader(StrokeShader):
"""
Assigns a constant color to the stroke
Assigns a constant color to the stroke.
"""
def __init__(self,r,g,b, a = 1):
StrokeShader.__init__(self)
@ -377,7 +377,7 @@ class pyConstantColorShader(StrokeShader):
class pyIncreasingColorShader(StrokeShader):
"""
Fades from one color to another along the stroke
Fades from one color to another along the stroke.
"""
def __init__(self,r1,g1,b1,a1, r2,g2,b2,a2):
StrokeShader.__init__(self)
@ -397,7 +397,7 @@ class pyIncreasingColorShader(StrokeShader):
class pyInterpolateColorShader(StrokeShader):
"""
Fades from one color to another and back
Fades from one color to another and back.
"""
def __init__(self,r1,g1,b1,a1, r2,g2,b2,a2):
StrokeShader.__init__(self)
@ -431,7 +431,7 @@ class pyModulateAlphaShader(StrokeShader):
class pyMaterialColorShader(StrokeShader):
"""
Assigns the color of the underlying material to the stroke
Assigns the color of the underlying material to the stroke.
"""
def __init__(self, threshold=50):
StrokeShader.__init__(self)
@ -493,7 +493,7 @@ class pyMaterialColorShader(StrokeShader):
class pyRandomColorShader(StrokeShader):
"""
Assigns a color to the stroke based on given seed
Assigns a color to the stroke based on given seed.
"""
def __init__(self, s=1):
StrokeShader.__init__(self)
@ -510,7 +510,7 @@ class pyRandomColorShader(StrokeShader):
class py2DCurvatureColorShader(StrokeShader):
"""
Assigns a color (greyscale) to the stroke based on the curvature.
A higher curvature will yield a brighter color
A higher curvature will yield a brighter color.
"""
def shade(self, stroke):
func = Curvature2DAngleF0D()
@ -526,7 +526,7 @@ class py2DCurvatureColorShader(StrokeShader):
class pyTimeColorShader(StrokeShader):
"""
Assigns a greyscale value that increases for every vertex.
The brightness will increase along the stroke
The brightness will increase along the stroke.
"""
def __init__(self, step=0.01):
StrokeShader.__init__(self)
@ -543,7 +543,7 @@ class pyTimeColorShader(StrokeShader):
class pySamplingShader(StrokeShader):
"""
Resamples the stroke, which gives the stroke the ammount of
vertices specified
vertices specified.
"""
def __init__(self, sampling):
StrokeShader.__init__(self)
@ -556,7 +556,7 @@ class pySamplingShader(StrokeShader):
class pyBackboneStretcherShader(StrokeShader):
"""
Stretches the stroke's backbone by a given length (in pixels)
Stretches the stroke's backbone by a given length (in pixels).
"""
def __init__(self, l):
StrokeShader.__init__(self)
@ -617,7 +617,7 @@ class pyGuidingLineShader(StrokeShader):
class pyBackboneStretcherNoCuspShader(StrokeShader):
"""
Stretches the stroke's backbone, excluding cusp vertices (end junctions)
Stretches the stroke's backbone, excluding cusp vertices (end junctions).
"""
def __init__(self, l):
StrokeShader.__init__(self)
@ -663,7 +663,7 @@ class pyDiffusion2Shader(StrokeShader):
class pyTipRemoverShader(StrokeShader):
"""
Removes the tips of the stroke
Removes the tips of the stroke.
"""
def __init__(self, l):
StrokeShader.__init__(self)
@ -704,7 +704,7 @@ class pyTipRemoverShader(StrokeShader):
class pyTVertexRemoverShader(StrokeShader):
"""
Removes t-vertices from the stroke
Removes t-vertices from the stroke.
"""
def shade(self, stroke):
if len(stroke) < 4:
@ -721,7 +721,7 @@ class pyTVertexRemoverShader(StrokeShader):
class pyHLRShader(StrokeShader):
"""
Controlls visibility based upon the quantative invisibility (QI)
based on hidden line removal (HLR)
based on hidden line removal (HLR).
"""
def shade(self, stroke):
if len(stroke) < 4:
@ -736,7 +736,7 @@ class pyHLRShader(StrokeShader):
class pySinusDisplacementShader(StrokeShader):
"""
Displaces the stroke in the shape of a sine wave
Displaces the stroke in the shape of a sine wave.
"""
def __init__(self, f, a):
StrokeShader.__init__(self)
@ -758,7 +758,7 @@ class pyPerlinNoise1DShader(StrokeShader):
"""
Displaces the stroke using the curvilinear abscissa. This means
that lines with the same length and sampling interval will be
identically distorded
identically distorded.
"""
def __init__(self, freq=10, amp=10, oct=4, seed=-1):
StrokeShader.__init__(self)
@ -778,9 +778,9 @@ class pyPerlinNoise1DShader(StrokeShader):
class pyPerlinNoise2DShader(StrokeShader):
"""
Displaces the stroke using the strokes coordinates. This means
that in a scene no strokes will be distorded identically
that in a scene no strokes will be distorded identically.
More information on the noise shaders can be found at
More information on the noise shaders can be found at:
freestyleintegration.wordpress.com/2011/09/25/development-updates-on-september-25/
"""
def __init__(self, freq=10, amp=10, oct=4, seed=-1):
@ -799,7 +799,7 @@ class pyPerlinNoise2DShader(StrokeShader):
class pyBluePrintCirclesShader(StrokeShader):
"""
Draws the silhouette of the object as a circle
Draws the silhouette of the object as a circle.
"""
def __init__(self, turns=1, random_radius=3, random_center=5):
StrokeShader.__init__(self)
@ -983,7 +983,7 @@ class pyBluePrintSquaresShader(StrokeShader):
class pyBluePrintDirectedSquaresShader(StrokeShader):
"""
Replaces the stroke with a directed square
Replaces the stroke with a directed square.
"""
def __init__(self, turns=1, bb_len=10, mult=1):
StrokeShader.__init__(self)

@ -17,7 +17,7 @@
# ##### END GPL LICENSE BLOCK #####
"""
Submodule containing all Freestyle types
Submodule containing all Freestyle types.
"""
# module members

@ -17,7 +17,7 @@
# ##### END GPL LICENSE BLOCK #####
"""
Helper functions used for Freestyle style module writing
Helper functions used for Freestyle style module writing.
"""
# module members
@ -43,12 +43,12 @@ from itertools import tee
# -- real utility functions -- #
def rgb_to_bw(r, g, b):
""" Method to convert rgb to a bw intensity value. """
"""Method to convert rgb to a bw intensity value."""
return 0.35 * r + 0.45 * g + 0.2 * b
def bound(lower, x, higher):
""" Returns x bounded by a maximum and minimum value. equivalent to:
"""Returns x bounded by a maximum and minimum value. Equivalent to:
return min(max(x, lower), higher)
"""
# this is about 50% quicker than min(max(x, lower), higher)
@ -78,14 +78,14 @@ def phase_to_direction(length):
results.append((phase, Vector((cos(2 * pi * phase), sin(2 * pi * phase)))))
return results
# A named tuple primitive used for storing data that
# has an upper and lower bound (eg. thickness, range and certain values)
# A named tuple primitive used for storing data that has an upper and
# lower bound (e.g., thickness, range and certain values)
BoundedProperty = namedtuple("BoundedProperty", ["min", "max", "delta"])
# -- helper functions for chaining -- #
def get_chain_length(ve, orientation):
"""Returns the 2d length of a given ViewEdge """
"""Returns the 2d length of a given ViewEdge."""
from freestyle.chainingiterators import pyChainSilhouetteGenericIterator
length = 0.0
# setup iterator
@ -120,7 +120,7 @@ def get_chain_length(ve, orientation):
def find_matching_vertex(id, it):
"""Finds the matching vertex, or returns None """
"""Finds the matching vertex, or returns None."""
return next((ve for ve in it if ve.id == id), None)
# -- helper functions for iterating -- #
@ -146,7 +146,7 @@ def tripplewise(iterable):
def iter_t2d_along_stroke(stroke):
""" Yields the progress along the stroke """
"""Yields the progress along the stroke."""
total = stroke.length_2d
distance = 0.0
# yield for the comparison from the first vertex to itself
@ -186,7 +186,7 @@ def iter_distance_from_object(stroke, location, range_min, range_max, normfac):
def iter_material_value(stroke, func, attribute):
"Yields a specific material attribute from the vertex' underlying material. "
"Yields a specific material attribute from the vertex' underlying material."
it = Interface0DIterator(stroke)
for svert in it:
material = func(it)

@ -109,7 +109,7 @@ from itertools import cycle, tee
class ColorRampModifier(StrokeShader):
"""Primitive for the color modifiers """
"""Primitive for the color modifiers."""
def __init__(self, blend, influence, ramp):
StrokeShader.__init__(self)
self.blend = blend
@ -125,7 +125,7 @@ class ColorRampModifier(StrokeShader):
class ScalarBlendModifier(StrokeShader):
"""Primitive for alpha and thickness modifiers """
"""Primitive for alpha and thickness modifiers."""
def __init__(self, blend_type, influence):
StrokeShader.__init__(self)
self.blend_type = blend_type
@ -201,7 +201,7 @@ class ThicknessBlenderMixIn(ThicknessModifierMixIn):
self.ratio = ratio
def blend_thickness(self, svert, v):
""" Blends and sets the thickness."""
"""Blends and sets the thickness."""
outer, inner = svert.attribute.thickness
fe = svert.fedge
v = self.blend(outer + inner, v)
@ -262,7 +262,7 @@ class BaseThicknessShader(StrokeShader, ThicknessModifierMixIn):
# Along Stroke modifiers
class ColorAlongStrokeShader(ColorRampModifier):
"""Maps a ramp to the color of the stroke, using the curvilinear abscissa (t) """
"""Maps a ramp to the color of the stroke, using the curvilinear abscissa (t)."""
def shade(self, stroke):
for svert, t in zip(stroke, iter_t2d_along_stroke(stroke)):
a = svert.attribute.color
@ -271,7 +271,7 @@ class ColorAlongStrokeShader(ColorRampModifier):
class AlphaAlongStrokeShader(CurveMappingModifier):
"""Maps a curve to the alpha/transparancy of the stroke, using the curvilinear abscissa (t) """
"""Maps a curve to the alpha/transparancy of the stroke, using the curvilinear abscissa (t)."""
def shade(self, stroke):
for svert, t in zip(stroke, iter_t2d_along_stroke(stroke)):
a = svert.attribute.alpha
@ -280,7 +280,7 @@ class AlphaAlongStrokeShader(CurveMappingModifier):
class ThicknessAlongStrokeShader(ThicknessBlenderMixIn, CurveMappingModifier):
"""Maps a curve to the thickness of the stroke, using the curvilinear abscissa (t) """
"""Maps a curve to the thickness of the stroke, using the curvilinear abscissa (t)."""
def __init__(self, thickness_position, thickness_ratio,
blend, influence, mapping, invert, curve, value_min, value_max):
ThicknessBlenderMixIn.__init__(self, thickness_position, thickness_ratio)
@ -296,7 +296,7 @@ class ThicknessAlongStrokeShader(ThicknessBlenderMixIn, CurveMappingModifier):
# -- Distance from Camera modifiers -- #
class ColorDistanceFromCameraShader(ColorRampModifier):
"""Picks a color value from a ramp based on the vertex' distance from the camera """
"""Picks a color value from a ramp based on the vertex' distance from the camera."""
def __init__(self, blend, influence, ramp, range_min, range_max):
ColorRampModifier.__init__(self, blend, influence, ramp)
self.range = BoundedProperty(range_min, range_max, range_max - range_min)
@ -310,7 +310,7 @@ class ColorDistanceFromCameraShader(ColorRampModifier):
class AlphaDistanceFromCameraShader(CurveMappingModifier):
"""Picks an alpha value from a curve based on the vertex' distance from the camera """
"""Picks an alpha value from a curve based on the vertex' distance from the camera"""
def __init__(self, blend, influence, mapping, invert, curve, range_min, range_max):
CurveMappingModifier.__init__(self, blend, influence, mapping, invert, curve)
self.range = BoundedProperty(range_min, range_max, range_max - range_min)
@ -324,7 +324,7 @@ class AlphaDistanceFromCameraShader(CurveMappingModifier):
class ThicknessDistanceFromCameraShader(ThicknessBlenderMixIn, CurveMappingModifier):
"""Picks a thickness value from a curve based on the vertex' distance from the camera """
"""Picks a thickness value from a curve based on the vertex' distance from the camera."""
def __init__(self, thickness_position, thickness_ratio,
blend, influence, mapping, invert, curve, range_min, range_max, value_min, value_max):
ThicknessBlenderMixIn.__init__(self, thickness_position, thickness_ratio)
@ -341,7 +341,7 @@ class ThicknessDistanceFromCameraShader(ThicknessBlenderMixIn, CurveMappingModif
# Distance from Object modifiers
class ColorDistanceFromObjectShader(ColorRampModifier):
"""Picks a color value from a ramp based on the vertex' distance from a given object """
"""Picks a color value from a ramp based on the vertex' distance from a given object."""
def __init__(self, blend, influence, ramp, target, range_min, range_max):
ColorRampModifier.__init__(self, blend, influence, ramp)
if target is None:
@ -361,7 +361,7 @@ class ColorDistanceFromObjectShader(ColorRampModifier):
class AlphaDistanceFromObjectShader(CurveMappingModifier):
"""Picks an alpha value from a curve based on the vertex' distance from a given object """
"""Picks an alpha value from a curve based on the vertex' distance from a given object."""
def __init__(self, blend, influence, mapping, invert, curve, target, range_min, range_max):
CurveMappingModifier.__init__(self, blend, influence, mapping, invert, curve)
if target is None:
@ -381,7 +381,7 @@ class AlphaDistanceFromObjectShader(CurveMappingModifier):
class ThicknessDistanceFromObjectShader(ThicknessBlenderMixIn, CurveMappingModifier):
"""Picks a thickness value from a curve based on the vertex' distance from a given object """
"""Picks a thickness value from a curve based on the vertex' distance from a given object."""
def __init__(self, thickness_position, thickness_ratio,
blend, influence, mapping, invert, curve, target, range_min, range_max, value_min, value_max):
ThicknessBlenderMixIn.__init__(self, thickness_position, thickness_ratio)
@ -403,7 +403,7 @@ class ThicknessDistanceFromObjectShader(ThicknessBlenderMixIn, CurveMappingModif
# Material modifiers
class ColorMaterialShader(ColorRampModifier):
""" Assigns a color to the vertices based on their underlying material """
"""Assigns a color to the vertices based on their underlying material."""
def __init__(self, blend, influence, ramp, material_attribute, use_ramp):
ColorRampModifier.__init__(self, blend, influence, ramp)
self.attribute = material_attribute
@ -430,7 +430,7 @@ class ColorMaterialShader(ColorRampModifier):
svert.attribute.color = self.blend_ramp(a, b)
class AlphaMaterialShader(CurveMappingModifier):
""" Assigns an alpha value to the vertices based on their underlying material """
"""Assigns an alpha value to the vertices based on their underlying material."""
def __init__(self, blend, influence, mapping, invert, curve, material_attribute):
CurveMappingModifier.__init__(self, blend, influence, mapping, invert, curve)
self.attribute = material_attribute
@ -444,7 +444,7 @@ class AlphaMaterialShader(CurveMappingModifier):
class ThicknessMaterialShader(ThicknessBlenderMixIn, CurveMappingModifier):
""" Assigns a thickness value to the vertices based on their underlying material """
"""Assigns a thickness value to the vertices based on their underlying material."""
def __init__(self, thickness_position, thickness_ratio,
blend, influence, mapping, invert, curve, material_attribute, value_min, value_max):
ThicknessBlenderMixIn.__init__(self, thickness_position, thickness_ratio)
@ -463,7 +463,7 @@ class ThicknessMaterialShader(ThicknessBlenderMixIn, CurveMappingModifier):
class CalligraphicThicknessShader(ThicknessBlenderMixIn, ScalarBlendModifier):
"""Thickness modifier for achieving a calligraphy-like effect """
"""Thickness modifier for achieving a calligraphy-like effect."""
def __init__(self, thickness_position, thickness_ratio,
blend_type, influence, orientation, thickness_min, thickness_max):
ThicknessBlenderMixIn.__init__(self, thickness_position, thickness_ratio)
@ -488,7 +488,7 @@ class CalligraphicThicknessShader(ThicknessBlenderMixIn, ScalarBlendModifier):
# Geometry modifiers
class SinusDisplacementShader(StrokeShader):
"""Displaces the stroke in a sinewave-like shape """
"""Displaces the stroke in a sinewave-like shape."""
def __init__(self, wavelength, amplitude, phase):
StrokeShader.__init__(self)
self.wavelength = wavelength
@ -510,7 +510,7 @@ class PerlinNoise1DShader(StrokeShader):
"""
Displaces the stroke using the curvilinear abscissa. This means
that lines with the same length and sampling interval will be
identically distorded
identically distorded.
"""
def __init__(self, freq=10, amp=10, oct=4, angle=radians(45), seed=-1):
StrokeShader.__init__(self)
@ -531,9 +531,9 @@ class PerlinNoise1DShader(StrokeShader):
class PerlinNoise2DShader(StrokeShader):
"""
Displaces the stroke using the strokes coordinates. This means
that in a scene no strokes will be distorded identically
that in a scene no strokes will be distorded identically.
More information on the noise shaders can be found at
More information on the noise shaders can be found at:
freestyleintegration.wordpress.com/2011/09/25/development-updates-on-september-25/
"""
def __init__(self, freq=10, amp=10, oct=4, angle=radians(45), seed=-1):
@ -553,7 +553,7 @@ class PerlinNoise2DShader(StrokeShader):
class Offset2DShader(StrokeShader):
"""Offsets the stroke by a given amount """
"""Offsets the stroke by a given amount."""
def __init__(self, start, end, x, y):
StrokeShader.__init__(self)
self.start = start