Merged
https://svn.blender.org/svnroot/bf-blender/branches/soc-2008-mxcurioni (r22789) and https://svn.blender.org/svnroot/bf-blender/trunk/blender (r23338) with the "Ignore ancestry" and "Ignore line endings" options enabled (using TortoiseSVN on Windows). After the merge operation, all changes (i.e., deletion) in source/blender/freestyle/ were reverted in order to keep the primary source tree of the Freestyle renderer.
This commit is contained in:
@@ -1,81 +0,0 @@
|
||||
from freestyle_init import *
|
||||
|
||||
|
||||
class pyInverseCurvature2DAngleF0D(UnaryFunction0DDouble):
|
||||
def getName(self):
|
||||
return "InverseCurvature2DAngleF0D"
|
||||
|
||||
def __call__(self, inter):
|
||||
func = Curvature2DAngleF0D()
|
||||
c = func(inter)
|
||||
return (3.1415 - c)
|
||||
|
||||
class pyCurvilinearLengthF0D(UnaryFunction0DDouble):
|
||||
def getName(self):
|
||||
return "CurvilinearLengthF0D"
|
||||
|
||||
def __call__(self, inter):
|
||||
i0d = inter.getObject()
|
||||
s = i0d.getExactTypeName()
|
||||
if (string.find(s, "CurvePoint") == -1):
|
||||
print "CurvilinearLengthF0D: not implemented yet for %s" % (s)
|
||||
return -1
|
||||
cp = castToCurvePoint(i0d)
|
||||
return cp.t2d()
|
||||
|
||||
## estimate anisotropy of density
|
||||
class pyDensityAnisotropyF0D(UnaryFunction0DDouble):
|
||||
def __init__(self,level):
|
||||
UnaryFunction0DDouble.__init__(self)
|
||||
self.IsoDensity = ReadCompleteViewMapPixelF0D(level)
|
||||
self.d0Density = ReadSteerableViewMapPixelF0D(0, level)
|
||||
self.d1Density = ReadSteerableViewMapPixelF0D(1, level)
|
||||
self.d2Density = ReadSteerableViewMapPixelF0D(2, level)
|
||||
self.d3Density = ReadSteerableViewMapPixelF0D(3, level)
|
||||
def getName(self):
|
||||
return "pyDensityAnisotropyF0D"
|
||||
def __call__(self, inter):
|
||||
c_iso = self.IsoDensity(inter)
|
||||
c_0 = self.d0Density(inter)
|
||||
c_1 = self.d1Density(inter)
|
||||
c_2 = self.d2Density(inter)
|
||||
c_3 = self.d3Density(inter)
|
||||
cMax = max( max(c_0,c_1), max(c_2,c_3))
|
||||
cMin = min( min(c_0,c_1), min(c_2,c_3))
|
||||
if ( c_iso == 0 ):
|
||||
v = 0
|
||||
else:
|
||||
v = (cMax-cMin)/c_iso
|
||||
return (v)
|
||||
|
||||
## Returns the gradient vector for a pixel
|
||||
## l
|
||||
## the level at which one wants to compute the gradient
|
||||
class pyViewMapGradientVectorF0D(UnaryFunction0DVec2f):
|
||||
def __init__(self, l):
|
||||
UnaryFunction0DVec2f.__init__(self)
|
||||
self._l = l
|
||||
self._step = pow(2,self._l)
|
||||
def getName(self):
|
||||
return "pyViewMapGradientVectorF0D"
|
||||
def __call__(self, iter):
|
||||
p = iter.getObject().getPoint2D()
|
||||
gx = ReadCompleteViewMapPixelCF(self._l, int(p.x()+self._step), int(p.y()))- ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y()))
|
||||
gy = ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y()+self._step))- ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y()))
|
||||
return Vector(gx, gy)
|
||||
|
||||
class pyViewMapGradientNormF0D(UnaryFunction0DDouble):
|
||||
def __init__(self, l):
|
||||
UnaryFunction0DDouble.__init__(self)
|
||||
self._l = l
|
||||
self._step = pow(2,self._l)
|
||||
def getName(self):
|
||||
return "pyViewMapGradientNormF0D"
|
||||
def __call__(self, iter):
|
||||
p = iter.getObject().getPoint2D()
|
||||
gx = ReadCompleteViewMapPixelCF(self._l, int(p.x()+self._step), int(p.y()))- ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y()))
|
||||
gy = ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y()+self._step))- ReadCompleteViewMapPixelCF(self._l, int(p.x()), int(p.y()))
|
||||
grad = Vector(gx, gy)
|
||||
return grad.length
|
||||
|
||||
|
Reference in New Issue
Block a user