Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2013-02-15 03:48:34 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2013-02-15 03:48:34 +0400
commit731d08d4974ce695e7d1446b934d0656a4d82942 (patch)
tree6568f2d1befa6c4cac0005bc4dcf3e239363757f /release/scripts/freestyle/style_modules
parent9e3bf44011285917db1e1061a2f459722674b1b9 (diff)
Freestyle Python API improvements - part 3.
Major API updates were made to address code review comments. This revision mostly focuses on Python wrappers of C++ 0D and 1D elements (i.e., Interface0D and Interface1D, as well as their subclasses). * Most getter/setter methods were reimplemented as attributes using PyGetSetDef. Vector attributes are now implemented based on mathutils callbacks. Boolean attributes now only accept boolean values. * The __getitem__ method was removed and the Sequence protocol was used instead. * The naming of methods and attributes was fixed to follow the naming conventions of the Blender Python API (i.e., lower case + underscores for methods and attributes, and CamelCase for classes). Some naming inconsistency within the Freestyle Python API was also addressed. * The Freestyle API had a number of method names including prefix/suffix "A" and "B", and their meanings were inconsistent (i.e., referring to different things depending on the classes). The names with these two letters were replaced with more straightforward names. Also some attribute names were changed so as to indicate the type of the value (e.g., FEdge.next_fedge instead of FEdge.next_edge) in line with other names explicitly indicating what the value is (e.g., SVertex.viewvertex). * In addition, some code clean-up was done in both C++ and Python. Notes: In summary, the following irregular naming changes were made through this revision (those resulting from regular changes of naming conventions are not listed): - CurvePoint: {A,B} --> {first,second}_svertex - FEdge: vertex{A,B} --> {first,second}_svertex - FEdge: {next,previous}Edge --> {next,previous}_fedge - FEdgeSharp: normal{A,B} --> normal_{right,left} - FEdgeSharp: {a,b}FaceMark --> face_mark_{right,left} - FEdgeSharp: {a,b}Material --> material_{right,left} - FEdgeSharp: {a,b}MaterialIndex --> material_index_{right,left} - FrsCurve: empty --> is_empty - FrsCurve: nSegments --> segments_size - TVertex: mate() --> get_mate() - ViewEdge: fedge{A,B} --> {first,last}_fedge - ViewEdge: setaShape, aShape --> occlude - ViewEdge: {A,B} --> {first,last}_viewvertex - ViewMap: getScene3dBBox --> scene_bbox
Diffstat (limited to 'release/scripts/freestyle/style_modules')
-rw-r--r--release/scripts/freestyle/style_modules/ChainingIterators.py364
-rw-r--r--release/scripts/freestyle/style_modules/Functions0D.py34
-rw-r--r--release/scripts/freestyle/style_modules/PredicatesB1D.py17
-rw-r--r--release/scripts/freestyle/style_modules/PredicatesU0D.py33
-rw-r--r--release/scripts/freestyle/style_modules/PredicatesU1D.py113
-rw-r--r--release/scripts/freestyle/style_modules/parameter_editor.py122
-rw-r--r--release/scripts/freestyle/style_modules/shaders.py574
7 files changed, 584 insertions, 673 deletions
diff --git a/release/scripts/freestyle/style_modules/ChainingIterators.py b/release/scripts/freestyle/style_modules/ChainingIterators.py
index f2d953ddc14..20b92d62613 100644
--- a/release/scripts/freestyle/style_modules/ChainingIterators.py
+++ b/release/scripts/freestyle/style_modules/ChainingIterators.py
@@ -44,10 +44,10 @@ class pyChainSilhouetteIterator(ChainingIterator):
it = AdjacencyIterator(iter)
tvertex = self.getVertex()
if type(tvertex) is TVertex:
- mateVE = tvertex.mate(self.getCurrentEdge())
- while(it.isEnd() == 0):
+ mateVE = tvertex.get_mate(self.getCurrentEdge())
+ while not it.isEnd():
ve = it.getObject()
- if(ve.getId() == mateVE.getId() ):
+ if ve.id == mateVE.id:
winner = ve
break
it.increment()
@@ -55,24 +55,24 @@ class pyChainSilhouetteIterator(ChainingIterator):
## case of NonTVertex
natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE]
for i in range(len(natures)):
- currentNature = self.getCurrentEdge().getNature()
- if(natures[i] & currentNature):
+ currentNature = self.getCurrentEdge().nature
+ if (natures[i] & currentNature) != 0:
count=0
- while(it.isEnd() == 0):
+ while not it.isEnd():
visitNext = 0
- oNature = it.getObject().getNature()
- if(oNature & natures[i] != 0):
- if(natures[i] != oNature):
+ oNature = it.getObject().nature
+ if (oNature & natures[i]) != 0:
+ if natures[i] != oNature:
for j in range(i):
- if(natures[j] & oNature != 0):
+ if (natures[j] & oNature) != 0:
visitNext = 1
break
- if(visitNext != 0):
+ if visitNext != 0:
break
count = count+1
winner = it.getObject()
it.increment()
- if(count != 1):
+ if count != 1:
winner = None
break
return winner
@@ -96,10 +96,10 @@ class pyChainSilhouetteGenericIterator(ChainingIterator):
it = AdjacencyIterator(iter)
tvertex = self.getVertex()
if type(tvertex) is TVertex:
- mateVE = tvertex.mate(self.getCurrentEdge())
- while(it.isEnd() == 0):
+ mateVE = tvertex.get_mate(self.getCurrentEdge())
+ while not it.isEnd():
ve = it.getObject()
- if(ve.getId() == mateVE.getId() ):
+ if ve.id == mateVE.id:
winner = ve
break
it.increment()
@@ -107,28 +107,28 @@ class pyChainSilhouetteGenericIterator(ChainingIterator):
## case of NonTVertex
natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE]
for i in range(len(natures)):
- currentNature = self.getCurrentEdge().getNature()
- if(natures[i] & currentNature):
+ currentNature = self.getCurrentEdge().nature
+ if (natures[i] & currentNature) != 0:
count=0
- while(it.isEnd() == 0):
+ while not it.isEnd():
visitNext = 0
- oNature = it.getObject().getNature()
+ oNature = it.getObject().nature
ve = it.getObject()
- if(ve.getId() == self.getCurrentEdge().getId()):
+ if ve.id == self.getCurrentEdge().id:
it.increment()
continue
- if(oNature & natures[i] != 0):
- if(natures[i] != oNature):
+ if (oNature & natures[i]) != 0:
+ if natures[i] != oNature:
for j in range(i):
- if(natures[j] & oNature != 0):
+ if (natures[j] & oNature) != 0:
visitNext = 1
break
- if(visitNext != 0):
+ if visitNext != 0:
break
count = count+1
winner = ve
it.increment()
- if(count != 1):
+ if count != 1:
winner = None
break
return winner
@@ -146,14 +146,14 @@ class pyExternalContourChainingIterator(ChainingIterator):
self._isInSelection = 1
def checkViewEdge(self, ve, orientation):
- if(orientation != 0):
- vertex = ve.B()
+ if orientation != 0:
+ vertex = ve.second_svertex()
else:
- vertex = ve.A()
+ vertex = ve.first_svertex()
it = AdjacencyIterator(vertex,1,1)
- while(it.isEnd() == 0):
+ while not it.isEnd():
ave = it.getObject()
- if(self._isExternalContour(ave)):
+ if self._isExternalContour(ave):
return 1
it.increment()
print("pyExternlContourChainingIterator : didn't find next edge")
@@ -161,23 +161,23 @@ class pyExternalContourChainingIterator(ChainingIterator):
def traverse(self, iter):
winner = None
it = AdjacencyIterator(iter)
- while(it.isEnd() == 0):
+ while not it.isEnd():
ve = it.getObject()
- if(self._isExternalContour(ve)):
- if (ve.getTimeStamp() == GetTimeStampCF()):
+ if self._isExternalContour(ve):
+ if ve.time_stamp == GetTimeStampCF():
winner = ve
it.increment()
self._nEdges = self._nEdges+1
- if(winner == None):
+ if winner is None:
orient = 1
it = AdjacencyIterator(iter)
- while(it.isEnd() == 0):
+ while not it.isEnd():
ve = it.getObject()
- if(it.isIncoming() != 0):
+ if it.isIncoming() != 0: # FIXME
orient = 0
good = self.checkViewEdge(ve,orient)
- if(good != 0):
+ if good != 0:
winner = ve
it.increment()
return winner
@@ -198,10 +198,10 @@ class pySketchyChainSilhouetteIterator(ChainingIterator):
it = AdjacencyIterator(iter)
tvertex = self.getVertex()
if type(tvertex) is TVertex:
- mateVE = tvertex.mate(self.getCurrentEdge())
- while(it.isEnd() == 0):
+ mateVE = tvertex.get_mate(self.getCurrentEdge())
+ while not it.isEnd():
ve = it.getObject()
- if(ve.getId() == mateVE.getId() ):
+ if ve.id == mateVE.id:
winner = ve
break
it.increment()
@@ -209,33 +209,33 @@ class pySketchyChainSilhouetteIterator(ChainingIterator):
## case of NonTVertex
natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE]
for i in range(len(natures)):
- currentNature = self.getCurrentEdge().getNature()
- if(natures[i] & currentNature):
+ currentNature = self.getCurrentEdge().nature
+ if (natures[i] & currentNature) != 0:
count=0
- while(it.isEnd() == 0):
+ while not it.isEnd():
visitNext = 0
- oNature = it.getObject().getNature()
+ oNature = it.getObject().nature
ve = it.getObject()
- if(ve.getId() == self.getCurrentEdge().getId()):
+ if ve.id == self.getCurrentEdge().id:
it.increment()
continue
- if(oNature & natures[i] != 0):
- if(natures[i] != oNature):
+ if (oNature & natures[i]) != 0:
+ if (natures[i] != oNature) != 0:
for j in range(i):
- if(natures[j] & oNature != 0):
+ if (natures[j] & oNature) != 0:
visitNext = 1
break
- if(visitNext != 0):
+ if visitNext != 0:
break
count = count+1
winner = ve
it.increment()
- if(count != 1):
+ if count != 1:
winner = None
break
- if(winner == None):
+ if winner is None:
winner = self.getCurrentEdge()
- if(winner.getChainingTimeStamp() == self._timeStamp):
+ if winner.chaining_time_stamp == self._timeStamp:
winner = None
return winner
@@ -257,16 +257,16 @@ class pySketchyChainingIterator(ChainingIterator):
def traverse(self, iter):
winner = None
it = AdjacencyIterator(iter)
- while(it.isEnd() == 0):
+ while not it.isEnd():
ve = it.getObject()
- if(ve.getId() == self.getCurrentEdge().getId()):
+ if ve.id == self.getCurrentEdge().id:
it.increment()
continue
winner = ve
it.increment()
- if(winner == None):
+ if winner is None:
winner = self.getCurrentEdge()
- if(winner.getChainingTimeStamp() == self._timeStamp):
+ if winner.chaining_time_stamp == self._timeStamp:
return None
return winner
@@ -290,16 +290,16 @@ class pyFillOcclusionsRelativeChainingIterator(ChainingIterator):
def traverse(self, iter):
winner = None
winnerOrientation = 0
- print(self.getCurrentEdge().getId().getFirst(), self.getCurrentEdge().getId().getSecond())
+ print(self.getCurrentEdge().id.first, self.getCurrentEdge().id.second)
it = AdjacencyIterator(iter)
tvertex = self.getVertex()
if type(tvertex) is TVertex:
- mateVE = tvertex.mate(self.getCurrentEdge())
- while(it.isEnd() == 0):
+ mateVE = tvertex.get_mate(self.getCurrentEdge())
+ while not it.isEnd():
ve = it.getObject()
- if(ve.getId() == mateVE.getId() ):
+ if ve.id == mateVE.id:
winner = ve
- if(it.isIncoming() == 0):
+ if it.isIncoming() == 0: # FIXME
winnerOrientation = 1
else:
winnerOrientation = 0
@@ -309,52 +309,52 @@ class pyFillOcclusionsRelativeChainingIterator(ChainingIterator):
## case of NonTVertex
natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE]
for nat in natures:
- if(self.getCurrentEdge().getNature() & nat != 0):
+ if (self.getCurrentEdge().nature & nat) != 0:
count=0
- while(it.isEnd() == 0):
+ while not it.isEnd():
ve = it.getObject()
- if(ve.getNature() & nat != 0):
+ if (ve.nature & nat) != 0:
count = count+1
winner = ve
- if(it.isIncoming() == 0):
+ if it.isIncoming() == 0: # FIXME
winnerOrientation = 1
else:
winnerOrientation = 0
it.increment()
- if(count != 1):
+ if count != 1:
winner = None
break
- if(winner != None):
+ if winner is not None:
# check whether this edge was part of the selection
- if(winner.getTimeStamp() != GetTimeStampCF()):
- #print("---", winner.getId().getFirst(), winner.getId().getSecond())
+ if winner.time_stamp != GetTimeStampCF():
+ #print("---", winner.id.first, winner.id.second)
# if not, let's check whether it's short enough with
# respect to the chain made without staying in the selection
#------------------------------------------------------------
# Did we compute the prospective chain length already ?
- if(self._length == 0):
+ if self._length == 0:
#if not, let's do it
_it = pyChainSilhouetteGenericIterator(0,0)
_it.setBegin(winner)
_it.setCurrentEdge(winner)
_it.setOrientation(winnerOrientation)
_it.init()
- while(_it.isEnd() == 0):
+ while not _it.isEnd():
ve = _it.getObject()
- #print("--------", ve.getId().getFirst(), ve.getId().getSecond())
- self._length = self._length + ve.getLength2D()
+ #print("--------", ve.id.first, ve.id.second)
+ self._length = self._length + ve.length_2d
_it.increment()
- if(_it.isBegin() != 0):
+ if _it.isBegin():
break;
_it.setBegin(winner)
_it.setCurrentEdge(winner)
_it.setOrientation(winnerOrientation)
- if(_it.isBegin() == 0):
+ if not _it.isBegin():
_it.decrement()
- while ((_it.isEnd() == 0) and (_it.isBegin() == 0)):
+ while (not _it.isEnd()) and (not _it.isBegin()):
ve = _it.getObject()
- #print("--------", ve.getId().getFirst(), ve.getId().getSecond())
- self._length = self._length + ve.getLength2D()
+ #print("--------", ve.id.first, ve.id.second)
+ self._length = self._length + ve.length_2d
_it.decrement()
# let's do the comparison:
@@ -365,12 +365,12 @@ class pyFillOcclusionsRelativeChainingIterator(ChainingIterator):
_cit.setCurrentEdge(winner)
_cit.setOrientation(winnerOrientation)
_cit.init()
- while((_cit.isEnd() == 0) and (_cit.getObject().getTimeStamp() != GetTimeStampCF())):
+ while _cit.isEnd() == 0 and _cit.getObject().time_stamp != GetTimeStampCF():
ve = _cit.getObject()
- #print("-------- --------", ve.getId().getFirst(), ve.getId().getSecond())
- connexl = connexl + ve.getLength2D()
+ #print("-------- --------", ve.id.first, ve.id.second)
+ connexl = connexl + ve.length_2d
_cit.increment()
- if(connexl > self._percent * self._length):
+ if connexl > self._percent * self._length:
winner = None
return winner
@@ -389,16 +389,16 @@ class pyFillOcclusionsAbsoluteChainingIterator(ChainingIterator):
def traverse(self, iter):
winner = None
winnerOrientation = 0
- #print(self.getCurrentEdge().getId().getFirst(), self.getCurrentEdge().getId().getSecond())
+ #print(self.getCurrentEdge().id.first, self.getCurrentEdge().id.second)
it = AdjacencyIterator(iter)
tvertex = self.getVertex()
if type(tvertex) is TVertex:
- mateVE = tvertex.mate(self.getCurrentEdge())
- while(it.isEnd() == 0):
+ mateVE = tvertex.get_mate(self.getCurrentEdge())
+ while not it.isEnd():
ve = it.getObject()
- if(ve.getId() == mateVE.getId() ):
+ if ve.id == mateVE.id:
winner = ve
- if(it.isIncoming() == 0):
+ if it.isIncoming() == 0: # FIXME
winnerOrientation = 1
else:
winnerOrientation = 0
@@ -408,25 +408,25 @@ class pyFillOcclusionsAbsoluteChainingIterator(ChainingIterator):
## case of NonTVertex
natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE]
for nat in natures:
- if(self.getCurrentEdge().getNature() & nat != 0):
+ if (self.getCurrentEdge().nature & nat) != 0:
count=0
- while(it.isEnd() == 0):
+ while not it.isEnd():
ve = it.getObject()
- if(ve.getNature() & nat != 0):
+ if (ve.nature & nat) != 0:
count = count+1
winner = ve
- if(it.isIncoming() == 0):
+ if it.isIncoming() == 0: # FIXME
winnerOrientation = 1
else:
winnerOrientation = 0
it.increment()
- if(count != 1):
+ if count != 1:
winner = None
break
- if(winner != None):
+ if winner is not None:
# check whether this edge was part of the selection
- if(winner.getTimeStamp() != GetTimeStampCF()):
- #print("---", winner.getId().getFirst(), winner.getId().getSecond())
+ if winner.time_stamp != GetTimeStampCF():
+ #print("---", winner.id.first, winner.id.second)
# nw let's compute the length of this connex non selected part:
connexl = 0
_cit = pyChainSilhouetteGenericIterator(0,0)
@@ -434,12 +434,12 @@ class pyFillOcclusionsAbsoluteChainingIterator(ChainingIterator):
_cit.setCurrentEdge(winner)
_cit.setOrientation(winnerOrientation)
_cit.init()
- while((_cit.isEnd() == 0) and (_cit.getObject().getTimeStamp() != GetTimeStampCF())):
+ while _cit.isEnd() == 0 and _cit.getObject().time_stamp != GetTimeStampCF():
ve = _cit.getObject()
- #print("-------- --------", ve.getId().getFirst(), ve.getId().getSecond())
- connexl = connexl + ve.getLength2D()
+ #print("-------- --------", ve.id.first, ve.id.second)
+ connexl = connexl + ve.length_2d
_cit.increment()
- if(connexl > self._length):
+ if connexl > self._length:
winner = None
return winner
@@ -464,16 +464,16 @@ class pyFillOcclusionsAbsoluteAndRelativeChainingIterator(ChainingIterator):
def traverse(self, iter):
winner = None
winnerOrientation = 0
- print(self.getCurrentEdge().getId().getFirst(), self.getCurrentEdge().getId().getSecond())
+ print(self.getCurrentEdge().id.first, self.getCurrentEdge().id.second)
it = AdjacencyIterator(iter)
tvertex = self.getVertex()
if type(tvertex) is TVertex:
- mateVE = tvertex.mate(self.getCurrentEdge())
- while(it.isEnd() == 0):
+ mateVE = tvertex.get_mate(self.getCurrentEdge())
+ while not it.isEnd():
ve = it.getObject()
- if(ve.getId() == mateVE.getId() ):
+ if ve.id == mateVE.id:
winner = ve
- if(it.isIncoming() == 0):
+ if it.isIncoming() == 0: # FIXME
winnerOrientation = 1
else:
winnerOrientation = 0
@@ -483,52 +483,52 @@ class pyFillOcclusionsAbsoluteAndRelativeChainingIterator(ChainingIterator):
## case of NonTVertex
natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE]
for nat in natures:
- if(self.getCurrentEdge().getNature() & nat != 0):
+ if (self.getCurrentEdge().nature & nat) != 0:
count=0
- while(it.isEnd() == 0):
+ while not it.isEnd():
ve = it.getObject()
- if(ve.getNature() & nat != 0):
+ if (ve.nature & nat) != 0:
count = count+1
winner = ve
- if(it.isIncoming() == 0):
+ if it.isIncoming() == 0: # FIXME
winnerOrientation = 1
else:
winnerOrientation = 0
it.increment()
- if(count != 1):
+ if count != 1:
winner = None
break
- if(winner != None):
+ if winner is not None:
# check whether this edge was part of the selection
- if(winner.getTimeStamp() != GetTimeStampCF()):
- #print("---", winner.getId().getFirst(), winner.getId().getSecond())
+ if winner.time_stamp != GetTimeStampCF():
+ #print("---", winner.id.first, winner.id.second)
# if not, let's check whether it's short enough with
# respect to the chain made without staying in the selection
#------------------------------------------------------------
# Did we compute the prospective chain length already ?
- if(self._length == 0):
+ if self._length == 0:
#if not, let's do it
_it = pyChainSilhouetteGenericIterator(0,0)
_it.setBegin(winner)
_it.setCurrentEdge(winner)
_it.setOrientation(winnerOrientation)
_it.init()
- while(_it.isEnd() == 0):
+ while not _it.isEnd():
ve = _it.getObject()
- #print("--------", ve.getId().getFirst(), ve.getId().getSecond())
- self._length = self._length + ve.getLength2D()
+ #print("--------", ve.id.first, ve.id.second)
+ self._length = self._length + ve.length_2d
_it.increment()
- if(_it.isBegin() != 0):
+ if _it.isBegin():
break;
_it.setBegin(winner)
_it.setCurrentEdge(winner)
_it.setOrientation(winnerOrientation)
- if(_it.isBegin() == 0):
+ if not _it.isBegin():
_it.decrement()
- while ((_it.isEnd() == 0) and (_it.isBegin() == 0)):
+ while (not _it.isEnd()) and (not _it.isBegin()):
ve = _it.getObject()
- #print("--------", ve.getId().getFirst(), ve.getId().getSecond())
- self._length = self._length + ve.getLength2D()
+ #print("--------", ve.id.first, ve.id.second)
+ self._length = self._length + ve.length_2d
_it.decrement()
# let's do the comparison:
@@ -539,12 +539,12 @@ class pyFillOcclusionsAbsoluteAndRelativeChainingIterator(ChainingIterator):
_cit.setCurrentEdge(winner)
_cit.setOrientation(winnerOrientation)
_cit.init()
- while((_cit.isEnd() == 0) and (_cit.getObject().getTimeStamp() != GetTimeStampCF())):
+ while _cit.isEnd() == 0 and _cit.getObject().time_stamp != GetTimeStampCF():
ve = _cit.getObject()
- #print("-------- --------", ve.getId().getFirst(), ve.getId().getSecond())
- connexl = connexl + ve.getLength2D()
+ #print("-------- --------", ve.id.first, ve.id.second)
+ connexl = connexl + ve.length_2d
_cit.increment()
- if((connexl > self._percent * self._length) or (connexl > self._absLength)):
+ if (connexl > self._percent * self._length) or (connexl > self._absLength):
winner = None
return winner
@@ -569,16 +569,16 @@ class pyFillQi0AbsoluteAndRelativeChainingIterator(ChainingIterator):
def traverse(self, iter):
winner = None
winnerOrientation = 0
- print(self.getCurrentEdge().getId().getFirst(), self.getCurrentEdge().getId().getSecond())
+ print(self.getCurrentEdge().id.first, self.getCurrentEdge().id.second)
it = AdjacencyIterator(iter)
tvertex = self.getVertex()
if type(tvertex) is TVertex:
- mateVE = tvertex.mate(self.getCurrentEdge())
- while(it.isEnd() == 0):
+ mateVE = tvertex.get_mate(self.getCurrentEdge())
+ while not it.isEnd():
ve = it.getObject()
- if(ve.getId() == mateVE.getId() ):
+ if ve.id == mateVE.id:
winner = ve
- if(it.isIncoming() == 0):
+ if it.isIncoming() == 0: # FIXME
winnerOrientation = 1
else:
winnerOrientation = 0
@@ -588,52 +588,52 @@ class pyFillQi0AbsoluteAndRelativeChainingIterator(ChainingIterator):
## case of NonTVertex
natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE]
for nat in natures:
- if(self.getCurrentEdge().getNature() & nat != 0):
+ if (self.getCurrentEdge().nature & nat) != 0:
count=0
- while(it.isEnd() == 0):
+ while not it.isEnd():
ve = it.getObject()
- if(ve.getNature() & nat != 0):
+ if (ve.nature & nat) != 0:
count = count+1
winner = ve
- if(it.isIncoming() == 0):
+ if it.isIncoming() == 0: # FIXME
winnerOrientation = 1
else:
winnerOrientation = 0
it.increment()
- if(count != 1):
+ if count != 1:
winner = None
break
- if(winner != None):
+ if winner is not None:
# check whether this edge was part of the selection
- if(winner.qi() != 0):
- #print("---", winner.getId().getFirst(), winner.getId().getSecond())
+ if winner.qi != 0:
+ #print("---", winner.id.first, winner.id.second)
# if not, let's check whether it's short enough with
# respect to the chain made without staying in the selection
#------------------------------------------------------------
# Did we compute the prospective chain length already ?
- if(self._length == 0):
+ if self._length == 0:
#if not, let's do it
_it = pyChainSilhouetteGenericIterator(0,0)
_it.setBegin(winner)
_it.setCurrentEdge(winner)
_it.setOrientation(winnerOrientation)
_it.init()
- while(_it.isEnd() == 0):
+ while not _it.isEnd():
ve = _it.getObject()
- #print("--------", ve.getId().getFirst(), ve.getId().getSecond())
- self._length = self._length + ve.getLength2D()
+ #print("--------", ve.id.first, ve.id.second)
+ self._length = self._length + ve.length_2d
_it.increment()
- if(_it.isBegin() != 0):
+ if _it.isBegin():
break;
_it.setBegin(winner)
_it.setCurrentEdge(winner)
_it.setOrientation(winnerOrientation)
- if(_it.isBegin() == 0):
+ if not _it.isBegin():
_it.decrement()
- while ((_it.isEnd() == 0) and (_it.isBegin() == 0)):
+ while (not _it.isEnd()) and (not _it.isBegin()):
ve = _it.getObject()
- #print("--------", ve.getId().getFirst(), ve.getId().getSecond())
- self._length = self._length + ve.getLength2D()
+ #print("--------", ve.id.first, ve.id.second)
+ self._length = self._length + ve.length_2d
_it.decrement()
# let's do the comparison:
@@ -644,12 +644,12 @@ class pyFillQi0AbsoluteAndRelativeChainingIterator(ChainingIterator):
_cit.setCurrentEdge(winner)
_cit.setOrientation(winnerOrientation)
_cit.init()
- while((_cit.isEnd() == 0) and (_cit.getObject().qi() != 0)):
+ while not _cit.isEnd() and _cit.getObject().qi != 0:
ve = _cit.getObject()
- #print("-------- --------", ve.getId().getFirst(), ve.getId().getSecond())
- connexl = connexl + ve.getLength2D()
+ #print("-------- --------", ve.id.first, ve.id.second)
+ connexl = connexl + ve.length_2d
_cit.increment()
- if((connexl > self._percent * self._length) or (connexl > self._absLength)):
+ if (connexl > self._percent * self._length) or (connexl > self._absLength):
winner = None
return winner
@@ -671,35 +671,35 @@ class pyNoIdChainSilhouetteIterator(ChainingIterator):
it = AdjacencyIterator(iter)
tvertex = self.getVertex()
if type(tvertex) is TVertex:
- mateVE = tvertex.mate(self.getCurrentEdge())
- while(it.isEnd() == 0):
+ mateVE = tvertex.get_mate(self.getCurrentEdge())
+ while not it.isEnd():
ve = it.getObject()
- feB = self.getCurrentEdge().fedgeB()
- feA = ve.fedgeA()
- vB = feB.vertexB()
- vA = feA.vertexA()
- if vA.getId().getFirst() == vB.getId().getFirst():
+ feB = self.getCurrentEdge().last_fedge
+ feA = ve.first_fedge
+ vB = feB.second_svertex
+ vA = feA.first_svertex
+ if vA.id.first == vB.id.first:
winner = ve
break
- feA = self.getCurrentEdge().fedgeA()
- feB = ve.fedgeB()
- vB = feB.vertexB()
- vA = feA.vertexA()
- if vA.getId().getFirst() == vB.getId().getFirst():
+ feA = self.getCurrentEdge().first_fedge
+ feB = ve.last_fedge
+ vB = feB.second_svertex
+ vA = feA.first_svertex
+ if vA.id.first == vB.id.first:
winner = ve
break
- feA = self.getCurrentEdge().fedgeB()
- feB = ve.fedgeB()
- vB = feB.vertexB()
- vA = feA.vertexB()
- if vA.getId().getFirst() == vB.getId().getFirst():
+ feA = self.getCurrentEdge().last_fedge
+ feB = ve.last_fedge
+ vB = feB.second_svertex
+ vA = feA.second_svertex
+ if vA.id.first == vB.id.first:
winner = ve
break
- feA = self.getCurrentEdge().fedgeA()
- feB = ve.fedgeA()
- vB = feB.vertexA()
- vA = feA.vertexA()
- if vA.getId().getFirst() == vB.getId().getFirst():
+ feA = self.getCurrentEdge().first_fedge
+ feB = ve.first_fedge
+ vB = feB.first_svertex
+ vA = feA.first_svertex
+ if vA.id.first == vB.id.first:
winner = ve
break
it.increment()
@@ -707,24 +707,24 @@ class pyNoIdChainSilhouetteIterator(ChainingIterator):
## case of NonTVertex
natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE]
for i in range(len(natures)):
- currentNature = self.getCurrentEdge().getNature()
- if(natures[i] & currentNature):
+ currentNature = self.getCurrentEdge().nature
+ if (natures[i] & currentNature) != 0:
count=0
- while(it.isEnd() == 0):
+ while not it.isEnd():
visitNext = 0
- oNature = it.getObject().getNature()
- if(oNature & natures[i] != 0):
- if(natures[i] != oNature):
+ oNature = it.getObject().nature
+ if (oNature & natures[i]) != 0:
+ if natures[i] != oNature:
for j in range(i):
- if(natures[j] & oNature != 0):
+ if (natures[j] & oNature) != 0:
visitNext = 1
break
- if(visitNext != 0):
+ if visitNext != 0:
break
count = count+1
winner = it.getObject()
it.increment()
- if(count != 1):
+ if count != 1:
winner = None
break
return winner
diff --git a/release/scripts/freestyle/style_modules/Functions0D.py b/release/scripts/freestyle/style_modules/Functions0D.py
index 38dd4b770a6..90e7765d505 100644
--- a/release/scripts/freestyle/style_modules/Functions0D.py
+++ b/release/scripts/freestyle/style_modules/Functions0D.py
@@ -8,9 +8,9 @@ class CurveMaterialF0D(UnaryFunction0DMaterial):
def __call__(self, inter):
cp = inter.getObject()
assert(isinstance(cp, CurvePoint))
- fe = cp.A().getFEdge(cp.B())
+ fe = cp.first_svertex.get_fedge(cp.second_svertex)
assert(fe is not None)
- return fe.material() if fe.isSmooth() else fe.bMaterial()
+ return fe.material if fe.is_smooth else fe.material_left
class pyInverseCurvature2DAngleF0D(UnaryFunction0DDouble):
def getName(self):
@@ -26,13 +26,9 @@ class pyCurvilinearLengthF0D(UnaryFunction0DDouble):
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)
- return -1
- cp = castToCurvePoint(i0d)
- return cp.t2d()
+ cp = inter.getObject()
+ assert(isinstance(cp, CurvePoint))
+ return cp.t2d
## estimate anisotropy of density
class pyDensityAnisotropyF0D(UnaryFunction0DDouble):
@@ -51,13 +47,13 @@ class pyDensityAnisotropyF0D(UnaryFunction0DDouble):
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 ):
+ 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)
+ return v
## Returns the gradient vector for a pixel
## l
@@ -70,9 +66,9 @@ class pyViewMapGradientVectorF0D(UnaryFunction0DVec2f):
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()))
+ p = iter.getObject().point_2d
+ 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):
@@ -83,9 +79,9 @@ class pyViewMapGradientNormF0D(UnaryFunction0DDouble):
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()))
+ p = iter.getObject().point_2d
+ 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
diff --git a/release/scripts/freestyle/style_modules/PredicatesB1D.py b/release/scripts/freestyle/style_modules/PredicatesB1D.py
index 3b7d21039df..6b787270233 100644
--- a/release/scripts/freestyle/style_modules/PredicatesB1D.py
+++ b/release/scripts/freestyle/style_modules/PredicatesB1D.py
@@ -5,7 +5,6 @@ from random import *
class pyZBP1D(BinaryPredicate1D):
def getName(self):
return "pyZBP1D"
-
def __call__(self, i1, i2):
func = GetZF1D()
return (func(i1) > func(i2))
@@ -14,38 +13,33 @@ class pyZDiscontinuityBP1D(BinaryPredicate1D):
def __init__(self, iType = IntegrationType.MEAN):
BinaryPredicate1D.__init__(self)
self._GetZDiscontinuity = ZDiscontinuityF1D(iType)
-
def getName(self):
return "pyZDiscontinuityBP1D"
-
def __call__(self, i1, i2):
return (self._GetZDiscontinuity(i1) > self._GetZDiscontinuity(i2))
class pyLengthBP1D(BinaryPredicate1D):
def getName(self):
return "LengthBP1D"
-
def __call__(self, i1, i2):
- return (i1.getLength2D() > i2.getLength2D())
+ return (i1.length_2d > i2.length_2d)
class pySilhouetteFirstBP1D(BinaryPredicate1D):
def getName(self):
return "SilhouetteFirstBP1D"
-
def __call__(self, inter1, inter2):
bpred = SameShapeIdBP1D()
if (bpred(inter1, inter2) != 1):
return 0
- if (inter1.getNature() & Nature.SILHOUETTE):
- return (inter2.getNature() & Nature.SILHOUETTE)
- return (inter1.getNature() == inter2.getNature())
+ if (inter1.nature & Nature.SILHOUETTE):
+ return (inter2.nature & Nature.SILHOUETTE) != 0
+ return (inter1.nature == inter2.nature)
class pyNatureBP1D(BinaryPredicate1D):
def getName(self):
return "NatureBP1D"
-
def __call__(self, inter1, inter2):
- return (inter1.getNature() & inter2.getNature())
+ return (inter1.nature & inter2.nature)
class pyViewMapGradientNormBP1D(BinaryPredicate1D):
def __init__(self,l, sampling=2.0):
@@ -63,7 +57,6 @@ class pyShuffleBP1D(BinaryPredicate1D):
seed(1)
def getName(self):
return "pyNearAndContourFirstBP1D"
-
def __call__(self, inter1, inter2):
r1 = uniform(0,1)
r2 = uniform(0,1)
diff --git a/release/scripts/freestyle/style_modules/PredicatesU0D.py b/release/scripts/freestyle/style_modules/PredicatesU0D.py
index 162254f17ed..0f7f1925624 100644
--- a/release/scripts/freestyle/style_modules/PredicatesU0D.py
+++ b/release/scripts/freestyle/style_modules/PredicatesU0D.py
@@ -5,43 +5,34 @@ class pyHigherCurvature2DAngleUP0D(UnaryPredicate0D):
def __init__(self,a):
UnaryPredicate0D.__init__(self)
self._a = a
-
def getName(self):
return "HigherCurvature2DAngleUP0D"
-
def __call__(self, inter):
func = Curvature2DAngleF0D()
a = func(inter)
- return ( a > self._a)
+ return (a > self._a)
class pyUEqualsUP0D(UnaryPredicate0D):
def __init__(self,u, w):
UnaryPredicate0D.__init__(self)
self._u = u
self._w = w
-
def getName(self):
return "UEqualsUP0D"
-
def __call__(self, inter):
func = pyCurvilinearLengthF0D()
u = func(inter)
- return ( ( u > (self._u-self._w) ) and ( u < (self._u+self._w) ) )
+ return (u > (self._u-self._w)) and (u < (self._u+self._w))
class pyVertexNatureUP0D(UnaryPredicate0D):
def __init__(self,nature):
UnaryPredicate0D.__init__(self)
self._nature = nature
-
def getName(self):
return "pyVertexNatureUP0D"
-
def __call__(self, inter):
v = inter.getObject()
- nat = v.getNature()
- if(nat & self._nature):
- return 1;
- return 0
+ return (v.nature & self._nature) != 0
## check whether an Interface0DIterator
## is a TVertex and is the one that is
@@ -54,13 +45,13 @@ class pyBackTVertexUP0D(UnaryPredicate0D):
return "pyBackTVertexUP0D"
def __call__(self, iter):
v = iter.getObject()
- nat = v.getNature()
- if(nat & Nature.T_VERTEX == 0):
+ nat = v.nature
+ if (nat & Nature.T_VERTEX) == 0:
return 0
next = iter
- if(next.isEnd()):
+ if next.isEnd():
return 0
- if(self._getQI(next) != 0):
+ if self._getQI(next) != 0:
return 1
return 0
@@ -70,13 +61,11 @@ class pyParameterUP0DGoodOne(UnaryPredicate0D):
self._m = pmin
self._M = pmax
#self.getCurvilinearAbscissa = GetCurvilinearAbscissaF0D()
-
def getName(self):
return "pyCurvilinearAbscissaHigherThanUP0D"
-
def __call__(self, inter):
#s = self.getCurvilinearAbscissa(inter)
- u = inter.u()
+ u = inter.u() # FIXME
#print(u)
return ((u>=self._m) and (u<=self._M))
@@ -86,18 +75,14 @@ class pyParameterUP0D(UnaryPredicate0D):
self._m = pmin
self._M = pmax
#self.getCurvilinearAbscissa = GetCurvilinearAbscissaF0D()
-
def getName(self):
return "pyCurvilinearAbscissaHigherThanUP0D"
-
def __call__(self, inter):
func = Curvature2DAngleF0D()
c = func(inter)
b1 = (c>0.1)
#s = self.getCurvilinearAbscissa(inter)
- u = inter.u()
+ u = inter.u() # FIXME
#print(u)
b = ((u>=self._m) and (u<=self._M))
return b and b1
-
-
diff --git a/release/scripts/freestyle/style_modules/PredicatesU1D.py b/release/scripts/freestyle/style_modules/PredicatesU1D.py
index 3529ca8b4e3..73c35d542b3 100644
--- a/release/scripts/freestyle/style_modules/PredicatesU1D.py
+++ b/release/scripts/freestyle/style_modules/PredicatesU1D.py
@@ -17,22 +17,18 @@ class pyHigherLengthUP1D(UnaryPredicate1D):
def __init__(self,l):
UnaryPredicate1D.__init__(self)
self._l = l
-
def getName(self):
return "HigherLengthUP1D"
-
def __call__(self, inter):
- return (inter.getLength2D() > self._l)
+ return (inter.length_2d > self._l)
class pyNatureUP1D(UnaryPredicate1D):
def __init__(self,nature):
UnaryPredicate1D.__init__(self)
self._nature = nature
self._getNature = CurveNatureF1D()
-
def getName(self):
return "pyNatureUP1D"
-
def __call__(self, inter):
if(self._getNature(inter) & self._nature):
return 1
@@ -43,18 +39,16 @@ class pyHigherNumberOfTurnsUP1D(UnaryPredicate1D):
UnaryPredicate1D.__init__(self)
self._n = n
self._a = a
-
def getName(self):
return "HigherNumberOfTurnsUP1D"
-
def __call__(self, inter):
count = 0
func = Curvature2DAngleF0D()
- it = inter.verticesBegin()
- while(it.isEnd() == 0):
- if(func(it) > self._a):
+ it = inter.vertices_begin()
+ while not it.isEnd():
+ if func(it) > self._a:
count = count+1
- if(count > self._n):
+ if count > self._n:
return 1
it.increment()
return 0
@@ -66,12 +60,10 @@ class pyDensityUP1D(UnaryPredicate1D):
self._threshold = threshold
self._integration = integration
self._func = DensityF1D(self._wsize, self._integration, sampling)
-
def getName(self):
return "pyDensityUP1D"
-
def __call__(self, inter):
- if(self._func(inter) < self._threshold):
+ if self._func(inter) < self._threshold:
return 1
return 0
@@ -81,15 +73,13 @@ class pyLowSteerableViewMapDensityUP1D(UnaryPredicate1D):
self._threshold = threshold
self._level = level
self._integration = integration
-
def getName(self):
return "pyLowSteerableViewMapDensityUP1D"
-
def __call__(self, inter):
func = GetSteerableViewMapDensityF1D(self._level, self._integration)
v = func(inter)
print(v)
- if(v < self._threshold):
+ if v < self._threshold:
return 1
return 0
@@ -100,15 +90,13 @@ class pyLowDirectionalViewMapDensityUP1D(UnaryPredicate1D):
self._orientation = orientation
self._level = level
self._integration = integration
-
def getName(self):
return "pyLowDirectionalViewMapDensityUP1D"
-
def __call__(self, inter):
func = GetDirectionalViewMapDensityF1D(self._orientation, self._level, self._integration)
v = func(inter)
#print(v)
- if(v < self._threshold):
+ if v < self._threshold:
return 1
return 0
@@ -121,11 +109,9 @@ class pyHighSteerableViewMapDensityUP1D(UnaryPredicate1D):
self._func = GetSteerableViewMapDensityF1D(self._level, self._integration)
def getName(self):
return "pyHighSteerableViewMapDensityUP1D"
-
def __call__(self, inter):
-
v = self._func(inter)
- if(v > self._threshold):
+ if v > self._threshold:
return 1
return 0
@@ -139,11 +125,10 @@ class pyHighDirectionalViewMapDensityUP1D(UnaryPredicate1D):
self._sampling = sampling
def getName(self):
return "pyLowDirectionalViewMapDensityUP1D"
-
def __call__(self, inter):
func = GetDirectionalViewMapDensityF1D(self._orientation, self._level, self._integration, self._sampling)
v = func(inter)
- if(v > self._threshold):
+ if v > self._threshold:
return 1
return 0
@@ -155,16 +140,14 @@ class pyHighViewMapDensityUP1D(UnaryPredicate1D):
self._integration = integration
self._sampling = sampling
self._func = GetCompleteViewMapDensityF1D(self._level, self._integration, self._sampling) # 2.0 is the smpling
-
def getName(self):
return "pyHighViewMapDensityUP1D"
-
def __call__(self, inter):
#print("toto")
#print(func.getName())
#print(inter.getExactTypeName())
v= self._func(inter)
- if(v > self._threshold):
+ if v > self._threshold:
return 1
return 0
@@ -177,15 +160,13 @@ class pyDensityFunctorUP1D(UnaryPredicate1D):
self._funcmin = float(funcmin)
self._funcmax = float(funcmax)
self._integration = integration
-
def getName(self):
return "pyDensityFunctorUP1D"
-
def __call__(self, inter):
func = DensityF1D(self._wsize, self._integration)
res = self._functor(inter)
k = (res-self._funcmin)/(self._funcmax-self._funcmin)
- if(func(inter) < self._threshold*k):
+ if func(inter) < self._threshold*k:
return 1
return 0
@@ -196,10 +177,9 @@ class pyZSmallerUP1D(UnaryPredicate1D):
self._integration = integration
def getName(self):
return "pyZSmallerUP1D"
-
def __call__(self, inter):
func = GetProjectedZF1D(self._integration)
- if(func(inter) < self._z):
+ if func(inter) < self._z:
return 1
return 0
@@ -213,32 +193,32 @@ class pyIsOccludedByUP1D(UnaryPredicate1D):
func = GetShapeF1D()
shapes = func(inter)
for s in shapes:
- if(s.getId() == self._id):
+ if(s.id == self._id):
return 0
- it = inter.verticesBegin()
- itlast = inter.verticesEnd()
+ it = inter.vertices_begin()
+ itlast = inter.vertices_end()
itlast.decrement()
v = it.getObject()
vlast = itlast.getObject()
- tvertex = v.viewvertex()
+ tvertex = v.viewvertex
if type(tvertex) is TVertex:
- print("TVertex: [ ", tvertex.getId().getFirst(), ",", tvertex.getId().getSecond()," ]")
- eit = tvertex.edgesBegin()
- while(eit.isEnd() == 0):
+ print("TVertex: [ ", tvertex.id.first, ",", tvertex.id.second," ]")
+ eit = tvertex.edges_begin()
+ while not eit.isEnd():
ve, incoming = eit.getObject()
- if(ve.getId() == self._id):
+ if ve.id == self._id:
return 1
- print("-------", ve.getId().getFirst(), "-", ve.getId().getSecond())
+ print("-------", ve.id.first, "-", ve.id.second)
eit.increment()
- tvertex = vlast.viewvertex()
+ tvertex = vlast.viewvertex
if type(tvertex) is TVertex:
- print("TVertex: [ ", tvertex.getId().getFirst(), ",", tvertex.getId().getSecond()," ]")
- eit = tvertex.edgesBegin()
- while(eit.isEnd() == 0):
+ print("TVertex: [ ", tvertex.id.first, ",", tvertex.id.second," ]")
+ eit = tvertex.edges_begin()
+ while not eit.isEnd():
ve, incoming = eit.getObject()
- if(ve.getId() == self._id):
+ if ve.id == self._id:
return 1
- print("-------", ve.getId().getFirst(), "-", ve.getId().getSecond())
+ print("-------", ve.id.first, "-", ve.id.second)
eit.increment()
return 0
@@ -252,7 +232,7 @@ class pyIsInOccludersListUP1D(UnaryPredicate1D):
func = GetOccludersF1D()
occluders = func(inter)
for a in occluders:
- if(a.getId() == self._id):
+ if a.id == self._id:
return 1
return 0
@@ -268,7 +248,7 @@ class pyIsOccludedByItselfUP1D(UnaryPredicate1D):
lst2 = self.__func2(inter)
for vs1 in lst1:
for vs2 in lst2:
- if vs1.getId() == vs2.getId():
+ if vs1.id == vs2.id:
return 1
return 0
@@ -282,8 +262,8 @@ class pyIsOccludedByIdListUP1D(UnaryPredicate1D):
def __call__(self, inter):
lst1 = self.__func1(inter)
for vs1 in lst1:
- for id in self._idlist:
- if vs1.getId() == id:
+ for _id in self._idlist:
+ if vs1.id == _id:
return 1
return 0
@@ -292,29 +272,28 @@ class pyShapeIdListUP1D(UnaryPredicate1D):
UnaryPredicate1D.__init__(self)
self._idlist = idlist
self._funcs = []
- for id in idlist :
- self._funcs.append(ShapeUP1D(id.getFirst(), id.getSecond()))
-
+ for _id in idlist :
+ self._funcs.append(ShapeUP1D(_id.first, _id.second))
def getName(self):
return "pyShapeIdUP1D"
def __call__(self, inter):
for func in self._funcs :
- if(func(inter) == 1) :
+ if func(inter) == 1:
return 1
return 0
## deprecated
class pyShapeIdUP1D(UnaryPredicate1D):
- def __init__(self,id):
+ def __init__(self, _id):
UnaryPredicate1D.__init__(self)
- self._id = id
+ self._id = _id
def getName(self):
return "pyShapeIdUP1D"
def __call__(self, inter):
func = GetShapeF1D()
shapes = func(inter)
for a in shapes:
- if(a.getId() == self._id):
+ if a.id == self._id:
return 1
return 0
@@ -352,30 +331,28 @@ class pyDensityVariableSigmaUP1D(UnaryPredicate1D):
self._tmax = tmax
self._integration = integration
self._sampling = sampling
-
def getName(self):
return "pyDensityUP1D"
-
def __call__(self, inter):
sigma = (self._sigmaMax-self._sigmaMin)/(self._lmax-self._lmin)*(self._functor(inter)-self._lmin) + self._sigmaMin
t = (self._tmax-self._tmin)/(self._lmax-self._lmin)*(self._functor(inter)-self._lmin) + self._tmin
- if(sigma<self._sigmaMin):
+ if sigma < self._sigmaMin:
sigma = self._sigmaMin
self._func = DensityF1D(sigma, self._integration, self._sampling)
d = self._func(inter)
- if(d<t):
+ if d < t:
return 1
return 0
class pyClosedCurveUP1D(UnaryPredicate1D):
def __call__(self, inter):
- it = inter.verticesBegin()
- itlast = inter.verticesEnd()
+ it = inter.vertices_begin()
+ itlast = inter.vertices_end()
itlast.decrement()
vlast = itlast.getObject()
v = it.getObject()
- print(v.getId().getFirst(), v.getId().getSecond())
- print(vlast.getId().getFirst(), vlast.getId().getSecond())
- if(v.getId() == vlast.getId()):
+ print(v.id.first, v.id.second)
+ print(vlast.id.first, vlast.id.second)
+ if v.id == vlast.id:
return 1
return 0
diff --git a/release/scripts/freestyle/style_modules/parameter_editor.py b/release/scripts/freestyle/style_modules/parameter_editor.py
index 51664fe4ac6..e297a913e53 100644
--- a/release/scripts/freestyle/style_modules/parameter_editor.py
+++ b/release/scripts/freestyle/style_modules/parameter_editor.py
@@ -93,19 +93,19 @@ class ThicknessModifierMixIn:
scene = Freestyle.getCurrentScene()
self.__persp_camera = (scene.camera.data.type == "PERSP")
def set_thickness(self, sv, outer, inner):
- fe = sv.A().getFEdge(sv.B())
- nature = fe.getNature()
+ fe = sv.first_svertex.get_fedge(sv.second_svertex)
+ nature = fe.nature
if (nature & Nature.BORDER):
if self.__persp_camera:
- point = -sv.getPoint3D()
+ point = -sv.point_3d.copy()
point.normalize()
- dir = point.dot(fe.normalB())
+ dir = point.dot(fe.normal_left)
else:
- dir = fe.normalB().z
+ dir = fe.normal_left.z
if dir < 0.0: # the back side is visible
outer, inner = inner, outer
elif (nature & Nature.SILHOUETTE):
- if fe.isSmooth(): # TODO more tests needed
+ if fe.is_smooth: # TODO more tests needed
outer, inner = inner, outer
else:
outer = inner = (outer + inner) / 2
@@ -158,7 +158,7 @@ class BaseThicknessShader(StrokeShader, ThicknessModifierMixIn):
def getName(self):
return "BaseThicknessShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
while it.isEnd() == 0:
sv = it.getObject()
self.set_thickness(sv, self.__outer, self.__inner)
@@ -167,9 +167,9 @@ class BaseThicknessShader(StrokeShader, ThicknessModifierMixIn):
# Along Stroke modifiers
def iter_t2d_along_stroke(stroke):
- total = stroke.getLength2D()
+ total = stroke.length_2d
distance = 0.0
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
while not it.isEnd():
p = it.getObject().point
if not it.isBegin():
@@ -220,9 +220,9 @@ class ThicknessAlongStrokeShader(ThicknessBlenderMixIn, CurveMappingModifier):
def iter_distance_from_camera(stroke, range_min, range_max):
normfac = range_max - range_min # normalization factor
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
while not it.isEnd():
- p = it.getObject().getPoint3D() # in the camera coordinate
+ p = it.getObject().point_3d # in the camera coordinate
distance = p.length
if distance < range_min:
t = 0.0
@@ -288,9 +288,9 @@ def iter_distance_from_object(stroke, object, range_min, range_max):
mv.invert()
loc = mv * object.location # loc in the camera coordinate
normfac = range_max - range_min # normalization factor
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
while not it.isEnd():
- p = it.getObject().getPoint3D() # in the camera coordinate
+ p = it.getObject().point_3d # in the camera coordinate
distance = (p - loc).length
if distance < range_min:
t = 0.0
@@ -361,7 +361,7 @@ class ThicknessDistanceFromObjectShader(ThicknessBlenderMixIn, CurveMappingModif
def iter_material_color(stroke, material_attr):
func = CurveMaterialF0D()
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
while not it.isEnd():
material = func(it.castToInterface0DIterator())
if material_attr == "DIFF":
@@ -379,7 +379,7 @@ def iter_material_color(stroke, material_attr):
def iter_material_value(stroke, material_attr):
func = CurveMaterialF0D()
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
while not it.isEnd():
material = func(it.castToInterface0DIterator())
if material_attr == "DIFF":
@@ -405,7 +405,7 @@ def iter_material_value(stroke, material_attr):
elif material_attr == "SPEC_B":
t = material.specular[2]
elif material_attr == "SPEC_HARDNESS":
- t = material.shininess()
+ t = material.shininess
elif material_attr == "ALPHA":
t = material.diffuse[3]
else:
@@ -476,7 +476,7 @@ class CalligraphicThicknessShader(ThicknessBlenderMixIn, ScalarBlendModifier):
self.__max_thickness = max_thickness
def shade(self, stroke):
func = VertexOrientation2DF0D()
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
while not it.isEnd():
dir = func(it.castToInterface0DIterator())
orthDir = mathutils.Vector((-dir.y, dir.x))
@@ -494,7 +494,7 @@ class CalligraphicThicknessShader(ThicknessBlenderMixIn, ScalarBlendModifier):
def iter_distance_along_stroke(stroke):
distance = 0.0
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
while not it.isEnd():
p = it.getObject().point
if not it.isBegin():
@@ -518,7 +518,7 @@ class SinusDisplacementShader(StrokeShader):
n = self._getNormal(it.castToInterface0DIterator())
n = n * self._amplitude * math.cos(distance / self._wavelength * 2 * math.pi + self._phase)
v.point = v.point + n
- stroke.UpdateLength()
+ stroke.update_length()
class PerlinNoise1DShader(StrokeShader):
def __init__(self, freq = 10, amp = 10, oct = 4, angle = math.radians(45), seed = -1):
@@ -531,14 +531,14 @@ class PerlinNoise1DShader(StrokeShader):
def getName(self):
return "PerlinNoise1DShader"
def shade(self, stroke):
- length = stroke.getLength2D()
- it = stroke.strokeVerticesBegin()
+ length = stroke.length_2d
+ it = stroke.stroke_vertices_begin()
while not it.isEnd():
v = it.getObject()
nres = self.__noise.turbulence1(length * v.u, self.__freq, self.__amp, self.__oct)
v.point = v.point + nres * self.__dir
it.increment()
- stroke.UpdateLength()
+ stroke.update_length()
class PerlinNoise2DShader(StrokeShader):
def __init__(self, freq = 10, amp = 10, oct = 4, angle = math.radians(45), seed = -1):
@@ -551,14 +551,14 @@ class PerlinNoise2DShader(StrokeShader):
def getName(self):
return "PerlinNoise2DShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
while not it.isEnd():
v = it.getObject()
- vec = Vector([v.getProjectedX(), v.getProjectedY()]) # FIXME
+ vec = Vector([v.projected_x, v.projected_y])
nres = self.__noise.turbulence2(vec, self.__freq, self.__amp, self.__oct)
v.point = v.point + nres * self.__dir
it.increment()
- stroke.UpdateLength()
+ stroke.update_length()
class Offset2DShader(StrokeShader):
def __init__(self, start, end, x, y):
@@ -570,7 +570,7 @@ class Offset2DShader(StrokeShader):
def getName(self):
return "Offset2DShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
while not it.isEnd():
v = it.getObject()
u = v.u
@@ -579,7 +579,7 @@ class Offset2DShader(StrokeShader):
n = n * a
v.point = v.point + n + self.__xy
it.increment()
- stroke.UpdateLength()
+ stroke.update_length()
class Transform2DShader(StrokeShader):
def __init__(self, pivot, scale_x, scale_y, angle, pivot_u, pivot_x, pivot_y):
@@ -596,15 +596,15 @@ class Transform2DShader(StrokeShader):
def shade(self, stroke):
# determine the pivot of scaling and rotation operations
if self.__pivot == "START":
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
pivot = it.getObject().point
elif self.__pivot == "END":
- it = stroke.strokeVerticesEnd()
+ it = stroke.stroke_vertices_end()
it.decrement()
pivot = it.getObject().point
elif self.__pivot == "PARAM":
p = None
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
while not it.isEnd():
prev = p
v = it.getObject()
@@ -621,7 +621,7 @@ class Transform2DShader(StrokeShader):
elif self.__pivot == "CENTER":
pivot = Vector([0.0, 0.0])
n = 0
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
while not it.isEnd():
p = it.getObject().point
pivot = pivot + p
@@ -634,7 +634,7 @@ class Transform2DShader(StrokeShader):
# apply scaling and rotation operations
cos_theta = math.cos(self.__angle)
sin_theta = math.sin(self.__angle)
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
while not it.isEnd():
v = it.getObject()
p = v.point
@@ -645,7 +645,7 @@ class Transform2DShader(StrokeShader):
p.y = x * sin_theta + y * cos_theta
v.point = p + pivot
it.increment()
- stroke.UpdateLength()
+ stroke.update_length()
# Predicates and helper functions
@@ -677,7 +677,7 @@ class ObjectNamesUP1D(UnaryPredicate1D):
def getName(self):
return "ObjectNamesUP1D"
def __call__(self, viewEdge):
- found = viewEdge.viewShape().getName() in self._names
+ found = viewEdge.viewshape.name in self._names
if self._negative:
return not found
return found
@@ -685,7 +685,7 @@ class ObjectNamesUP1D(UnaryPredicate1D):
# Stroke caps
def iter_stroke_vertices(stroke):
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
prev_p = None
while not it.isEnd():
sv = it.getObject()
@@ -715,7 +715,7 @@ class RoundCapShader(StrokeShader):
caplen_end = (R + L) / 2.0
nverts_end = max(5, int(R + L))
# adjust the total number of stroke vertices
- stroke.Resample(nverts + nverts_beg + nverts_end)
+ stroke.resample(nverts + nverts_beg + nverts_end)
# restore the location and attribute of the original vertices
for i in range(nverts):
p, attr = buffer[i]
@@ -748,7 +748,7 @@ class RoundCapShader(StrokeShader):
stroke[-i-1].attribute = attr
stroke[-i-1].attribute.thickness = (R * r, L * r)
# update the curvilinear 2D length of each vertex
- stroke.UpdateLength()
+ stroke.update_length()
class SquareCapShader(StrokeShader):
def shade(self, stroke):
@@ -767,7 +767,7 @@ class SquareCapShader(StrokeShader):
caplen_end = (R + L) / 2.0
nverts_end = 1
# adjust the total number of stroke vertices
- stroke.Resample(nverts + nverts_beg + nverts_end)
+ stroke.resample(nverts + nverts_beg + nverts_end)
# restore the location and attribute of the original vertices
for i in range(nverts):
p, attr = buffer[i]
@@ -786,7 +786,7 @@ class SquareCapShader(StrokeShader):
stroke[-1].point = p + d / d.length * caplen_beg
stroke[-1].attribute = attr
# update the curvilinear 2D length of each vertex
- stroke.UpdateLength()
+ stroke.update_length()
# Split by dashed line pattern
@@ -847,7 +847,7 @@ class DashedLineShader(StrokeShader):
start = 0.0 # 2D curvilinear length
visible = True
sampling = 1.0
- it = stroke.strokeVerticesBegin(sampling)
+ it = stroke.stroke_vertices_begin(sampling)
while not it.isEnd():
pos = it.t()
# The extra 'sampling' term is added below, because the
@@ -872,14 +872,10 @@ class AngleLargerThanBP1D(BinaryPredicate1D):
def getName(self):
return "AngleLargerThanBP1D"
def __call__(self, i1, i2):
- fe1a = i1.fedgeA()
- fe1b = i1.fedgeB()
- fe2a = i2.fedgeA()
- fe2b = i2.fedgeB()
- sv1a = fe1a.vertexA().getPoint2D()
- sv1b = fe1b.vertexB().getPoint2D()
- sv2a = fe2a.vertexA().getPoint2D()
- sv2b = fe2b.vertexB().getPoint2D()
+ sv1a = i1.first_fedge.first_svertex.point_2d
+ sv1b = i1.last_fedge.second_svertex.point_2d
+ sv2a = i2.first_fedge.first_svertex.point_2d
+ sv2b = i2.last_fedge.second_svertex.point_2d
if (sv1a - sv2a).length < 1e-6:
dir1 = sv1a - sv1b
dir2 = sv2b - sv2a
@@ -920,7 +916,7 @@ class LengthThresholdUP1D(UnaryPredicate1D):
def getName(self):
return "LengthThresholdUP1D"
def __call__(self, inter):
- length = inter.getLength2D()
+ length = inter.length_2d
if self._min_length is not None and length < self._min_length:
return False
if self._max_length is not None and length > self._max_length:
@@ -929,28 +925,28 @@ class LengthThresholdUP1D(UnaryPredicate1D):
class FaceMarkBothUP1D(UnaryPredicate1D):
def __call__(self, inter): # ViewEdge
- fe = inter.fedgeA()
+ fe = inter.first_fedge
while fe is not None:
- if fe.isSmooth():
- if fe.faceMark():
+ if fe.is_smooth:
+ if fe.face_mark:
return True
else:
- if fe.aFaceMark() and fe.bFaceMark():
+ if fe.face_mark_right and fe.face_mark_left:
return True
- fe = fe.nextEdge()
+ fe = fe.next_fedge
return False
class FaceMarkOneUP1D(UnaryPredicate1D):
def __call__(self, inter): # ViewEdge
- fe = inter.fedgeA()
+ fe = inter.first_fedge
while fe is not None:
- if fe.isSmooth():
- if fe.faceMark():
+ if fe.is_smooth:
+ if fe.face_mark:
return True
else:
- if fe.aFaceMark() or fe.bFaceMark():
+ if fe.face_mark_right or fe.face_mark_left:
return True
- fe = fe.nextEdge()
+ fe = fe.next_fedge
return False
# predicates for splitting
@@ -967,10 +963,10 @@ class MaterialBoundaryUP0D(UnaryPredicate0D):
it.increment()
if it.isEnd():
return False
- fe = v.getFEdge(it_prev.getObject())
- idx1 = fe.materialIndex() if fe.isSmooth() else fe.bMaterialIndex()
- fe = v.getFEdge(it.getObject())
- idx2 = fe.materialIndex() if fe.isSmooth() else fe.bMaterialIndex()
+ fe = v.get_fedge(it_prev.getObject())
+ idx1 = fe.material_index if fe.is_smooth else fe.material_index_left
+ fe = v.get_fedge(it.getObject())
+ idx2 = fe.material_index if fe.is_smooth else fe.material_index_left
return idx1 != idx2
class Curvature2DAngleThresholdUP0D(UnaryPredicate0D):
diff --git a/release/scripts/freestyle/style_modules/shaders.py b/release/scripts/freestyle/style_modules/shaders.py
index 25a12b447fd..bd682336462 100644
--- a/release/scripts/freestyle/style_modules/shaders.py
+++ b/release/scripts/freestyle/style_modules/shaders.py
@@ -19,13 +19,12 @@ class pyDepthDiscontinuityThicknessShader(StrokeShader):
def getName(self):
return "pyDepthDiscontinuityThicknessShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
z_min=0.0
z_max=1.0
a = (self.__max - self.__min)/(z_max-z_min)
b = (self.__min*z_max-self.__max*z_min)/(z_max-z_min)
- it = stroke.strokeVerticesBegin()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
z = self.__func(it.castToInterface0DIterator())
thickness = a*z+b
it.getObject().attribute.thickness = (thickness, thickness)
@@ -35,13 +34,11 @@ class pyConstantThicknessShader(StrokeShader):
def __init__(self, thickness):
StrokeShader.__init__(self)
self._thickness = thickness
-
def getName(self):
return "pyConstantThicknessShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
- it_end = stroke.strokeVerticesEnd()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
t = self._thickness/2.0
it.getObject().attribute.thickness = (t, t)
it.increment()
@@ -50,13 +47,11 @@ class pyFXSThicknessShader(StrokeShader):
def __init__(self, thickness):
StrokeShader.__init__(self)
self._thickness = thickness
-
def getName(self):
return "pyFXSThicknessShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
- it_end = stroke.strokeVerticesEnd()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
t = self._thickness/2.0
it.getObject().attribute.thickness = (t, t)
it.increment()
@@ -69,21 +64,19 @@ class pyFXSVaryingThicknessWithDensityShader(StrokeShader):
self.threshold_max= threshold_max
self._thicknessMin = thicknessMin
self._thicknessMax = thicknessMax
-
def getName(self):
return "pyVaryingThicknessWithDensityShader"
def shade(self, stroke):
- n = stroke.strokeVerticesSize()
+ n = stroke.stroke_vertices_size()
i = 0
- it = stroke.strokeVerticesBegin()
- it_end = stroke.strokeVerticesEnd()
+ it = stroke.stroke_vertices_begin()
func = DensityF0D(self.wsize)
- while it.isEnd() == 0:
+ while not it.isEnd():
toto = it.castToInterface0DIterator()
c= func(toto)
- if (c < self.threshold_min ):
+ if c < self.threshold_min:
c = self.threshold_min
- if (c > self.threshold_max ):
+ if c > self.threshold_max:
c = self.threshold_max
## t = (c - self.threshold_min)/(self.threshold_max - self.threshold_min)*(self._thicknessMax-self._thicknessMin) + self._thicknessMin
t = (self.threshold_max - c )/(self.threshold_max - self.threshold_min)*(self._thicknessMax-self._thicknessMin) + self._thicknessMin
@@ -96,17 +89,15 @@ class pyIncreasingThicknessShader(StrokeShader):
StrokeShader.__init__(self)
self._thicknessMin = thicknessMin
self._thicknessMax = thicknessMax
-
def getName(self):
return "pyIncreasingThicknessShader"
def shade(self, stroke):
- n = stroke.strokeVerticesSize()
+ n = stroke.stroke_vertices_size()
i = 0
- it = stroke.strokeVerticesBegin()
- it_end = stroke.strokeVerticesEnd()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
c = float(i)/float(n)
- if(i < float(n)/2.0):
+ if i < float(n)/2.0:
t = (1.0 - c)*self._thicknessMin + c * self._thicknessMax
else:
t = (1.0 - c)*self._thicknessMax + c * self._thicknessMin
@@ -120,30 +111,28 @@ class pyConstrainedIncreasingThicknessShader(StrokeShader):
self._thicknessMin = thicknessMin
self._thicknessMax = thicknessMax
self._ratio = ratio
-
def getName(self):
return "pyConstrainedIncreasingThicknessShader"
def shade(self, stroke):
- slength = stroke.getLength2D()
+ slength = stroke.length_2d
tmp = self._ratio*slength
maxT = 0.0
- if(tmp < self._thicknessMax):
+ if tmp < self._thicknessMax:
maxT = tmp
else:
maxT = self._thicknessMax
- n = stroke.strokeVerticesSize()
+ n = stroke.stroke_vertices_size()
i = 0
- it = stroke.strokeVerticesBegin()
- it_end = stroke.strokeVerticesEnd()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
att = it.getObject().attribute
c = float(i)/float(n)
- if(i < float(n)/2.0):
+ if i < float(n)/2.0:
t = (1.0 - c)*self._thicknessMin + c * maxT
else:
t = (1.0 - c)*maxT + c * self._thicknessMin
att.thickness = (t/2.0, t/2.0)
- if(i == n-1):
+ if i == n-1:
att.thickness = (self._thicknessMin/2.0, self._thicknessMin/2.0)
i = i+1
it.increment()
@@ -153,29 +142,27 @@ class pyDecreasingThicknessShader(StrokeShader):
StrokeShader.__init__(self)
self._thicknessMin = thicknessMin
self._thicknessMax = thicknessMax
-
def getName(self):
return "pyDecreasingThicknessShader"
def shade(self, stroke):
- l = stroke.getLength2D()
+ l = stroke.length_2d
tMax = self._thicknessMax
- if(self._thicknessMax > 0.33*l):
+ if self._thicknessMax > 0.33*l:
tMax = 0.33*l
tMin = self._thicknessMin
- if(self._thicknessMin > 0.1*l):
+ if self._thicknessMin > 0.1*l:
tMin = 0.1*l
- n = stroke.strokeVerticesSize()
+ n = stroke.stroke_vertices_size()
i = 0
- it = stroke.strokeVerticesBegin()
- it_end = stroke.strokeVerticesEnd()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
c = float(i)/float(n)
t = (1.0 - c)*tMax +c*tMin
it.getObject().attribute.thickness = (t/2.0, t/2.0)
i = i+1
it.increment()
-def smoothC( a, exp ):
+def smoothC(a, exp):
c = pow(float(a),exp)*pow(2.0,exp)
return c
@@ -185,16 +172,14 @@ class pyNonLinearVaryingThicknessShader(StrokeShader):
self._thicknessMin = thicknessMiddle
self._thicknessMax = thicknessExtremity
self._exponent = exponent
-
def getName(self):
return "pyNonLinearVaryingThicknessShader"
def shade(self, stroke):
- n = stroke.strokeVerticesSize()
+ n = stroke.stroke_vertices_size()
i = 0
- it = stroke.strokeVerticesBegin()
- it_end = stroke.strokeVerticesEnd()
- while it.isEnd() == 0:
- if(i < float(n)/2.0):
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
+ if i < float(n)/2.0:
c = float(i)/float(n)
else:
c = float(n-i)/float(n)
@@ -211,23 +196,20 @@ class pySLERPThicknessShader(StrokeShader):
self._thicknessMin = thicknessMin
self._thicknessMax = thicknessMax
self._omega = omega
-
def getName(self):
return "pySLERPThicknessShader"
def shade(self, stroke):
- slength = stroke.getLength2D()
+ slength = stroke.length_2d
tmp = 0.33*slength
maxT = self._thicknessMax
- if(tmp < self._thicknessMax):
+ if tmp < self._thicknessMax:
maxT = tmp
-
- n = stroke.strokeVerticesSize()
+ n = stroke.stroke_vertices_size()
i = 0
- it = stroke.strokeVerticesBegin()
- it_end = stroke.strokeVerticesEnd()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
c = float(i)/float(n)
- if(i < float(n)/2.0):
+ if i < float(n)/2.0:
t = sin((1-c)*self._omega)/sinh(self._omega)*self._thicknessMin + sin(c*self._omega)/sinh(self._omega) * maxT
else:
t = sin((1-c)*self._omega)/sinh(self._omega)*maxT + sin(c*self._omega)/sinh(self._omega) * self._thicknessMin
@@ -240,26 +222,24 @@ class pyTVertexThickenerShader(StrokeShader): ## FIXME
StrokeShader.__init__(self)
self._a = a
self._n = n
-
def getName(self):
return "pyTVertexThickenerShader"
-
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
predTVertex = pyVertexNatureUP0D(Nature.T_VERTEX)
- while it.isEnd() == 0:
- if(predTVertex(it) == 1):
+ while not it.isEnd():
+ if predTVertex(it) == 1:
it2 = StrokeVertexIterator(it)
it2.increment()
- if not(it.isBegin() or it2.isEnd()):
+ if not (it.isBegin() or it2.isEnd()):
it.increment()
continue
n = self._n
a = self._a
- if(it.isBegin()):
+ if it.isBegin():
it3 = StrokeVertexIterator(it)
count = 0
- while (it3.isEnd() == 0 and count < n):
+ while (not it3.isEnd()) and count < n:
att = it3.getObject().attribute
(tr, tl) = att.thickness
r = (a-1.0)/float(n-1)*(float(n)/float(count+1) - 1) + 1
@@ -267,10 +247,10 @@ class pyTVertexThickenerShader(StrokeShader): ## FIXME
att.thickness = (r*tr, r*tl)
it3.increment()
count = count + 1
- if(it2.isEnd()):
+ if it2.isEnd():
it4 = StrokeVertexIterator(it)
count = 0
- while (it4.isBegin() == 0 and count < n):
+ while (not it4.isBegin()) and count < n:
att = it4.getObject().attribute
(tr, tl) = att.thickness
r = (a-1.0)/float(n-1)*(float(n)/float(count+1) - 1) + 1
@@ -278,7 +258,7 @@ class pyTVertexThickenerShader(StrokeShader): ## FIXME
att.thickness = (r*tr, r*tl)
it4.decrement()
count = count + 1
- if ((it4.isBegin() == 1)):
+ if it4.isBegin():
att = it4.getObject().attribute
(tr, tl) = att.thickness
r = (a-1.0)/float(n-1)*(float(n)/float(count+1) - 1) + 1
@@ -294,17 +274,16 @@ class pyImportance2DThicknessShader(StrokeShader):
self._w = float(w)
self._kmin = float(kmin)
self._kmax = float(kmax)
-
def getName(self):
return "pyImportanceThicknessShader"
def shade(self, stroke):
origin = Vector([self._x, self._y])
- it = stroke.strokeVerticesBegin()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
v = it.getObject()
- p = Vector([v.getProjectedX(), v.getProjectedY()])
+ p = Vector([v.projected_x, v.projected_y])
d = (p-origin).length
- if(d>self._w):
+ if d > self._w:
k = self._kmin
else:
k = (self._kmax*(self._w-d) + self._kmin*d)/self._w
@@ -322,17 +301,16 @@ class pyImportance3DThicknessShader(StrokeShader):
self._w = float(w)
self._kmin = float(kmin)
self._kmax = float(kmax)
-
def getName(self):
return "pyImportance3DThicknessShader"
def shade(self, stroke):
origin = Vector([self._x, self._y, self._z])
- it = stroke.strokeVerticesBegin()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
v = it.getObject()
- p = Vector([v.getX(), v.getY(), v.getZ()])
+ p = v.point_3d
d = (p-origin).length
- if(d>self._w):
+ if d > self._w:
k = self._kmin
else:
k = (self._kmax*(self._w-d) + self._kmin*d)/self._w
@@ -350,10 +328,10 @@ class pyZDependingThicknessShader(StrokeShader):
def getName(self):
return "pyZDependingThicknessShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
z_min = 1
z_max = 0
- while it.isEnd() == 0:
+ while not it.isEnd():
z = self.__func(it.castToInterface0DIterator())
if z < z_min:
z_min = z
@@ -361,8 +339,8 @@ class pyZDependingThicknessShader(StrokeShader):
z_max = z
it.increment()
z_diff = 1 / (z_max - z_min)
- it = stroke.strokeVerticesBegin()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
z = (self.__func(it.castToInterface0DIterator()) - z_min) * z_diff
thickness = (1 - z) * self.__max + z * self.__min
it.getObject().attribute.thickness = (thickness, thickness)
@@ -382,9 +360,8 @@ class pyConstantColorShader(StrokeShader):
def getName(self):
return "pyConstantColorShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
- it_end = stroke.strokeVerticesEnd()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
att = it.getObject().attribute
att.color = (self._r, self._g, self._b)
att.alpha = self._a
@@ -399,11 +376,10 @@ class pyIncreasingColorShader(StrokeShader):
def getName(self):
return "pyIncreasingColorShader"
def shade(self, stroke):
- n = stroke.strokeVerticesSize() - 1
+ n = stroke.stroke_vertices_size() - 1
inc = 0
- it = stroke.strokeVerticesBegin()
- it_end = stroke.strokeVerticesEnd()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
att = it.getObject().attribute
c = float(inc)/float(n)
@@ -423,11 +399,10 @@ class pyInterpolateColorShader(StrokeShader):
def getName(self):
return "pyInterpolateColorShader"
def shade(self, stroke):
- n = stroke.strokeVerticesSize() - 1
+ n = stroke.stroke_vertices_size() - 1
inc = 0
- it = stroke.strokeVerticesBegin()
- it_end = stroke.strokeVerticesEnd()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
att = it.getObject().attribute
u = float(inc)/float(n)
c = 1-2*(fabs(u-0.5))
@@ -442,20 +417,17 @@ class pyMaterialColorShader(StrokeShader):
def __init__(self, threshold=50):
StrokeShader.__init__(self)
self._threshold = threshold
-
def getName(self):
return "pyMaterialColorShader"
-
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
- it_end = stroke.strokeVerticesEnd()
+ it = stroke.stroke_vertices_begin()
func = MaterialF0D()
xn = 0.312713
yn = 0.329016
Yn = 1.0
un = 4.* xn/ ( -2.*xn + 12.*yn + 3. )
vn= 9.* yn/ ( -2.*xn + 12.*yn +3. )
- while it.isEnd() == 0:
+ while not it.isEnd():
toto = it.castToInterface0DIterator()
mat = func(toto)
@@ -467,7 +439,7 @@ class pyMaterialColorShader(StrokeShader):
Y = 0.212671*r + 0.71516 *g + 0.072169*b
Z = 0.019334*r + 0.119193*g + 0.950227*b
- if((X == 0) and (Y == 0) and (Z == 0)):
+ if X == 0 and Y == 0 and Z == 0:
X = 0.01
Y = 0.01
Z = 0.01
@@ -478,7 +450,7 @@ class pyMaterialColorShader(StrokeShader):
U = 13. * L * (u - un)
V = 13. * L * (v - vn)
- if (L > self._threshold):
+ if L > self._threshold:
L = L/1.3
U = U+10
else:
@@ -504,30 +476,29 @@ class pyMaterialColorShader(StrokeShader):
it.increment()
class pyRandomColorShader(StrokeShader):
- def getName(self):
- return "pyRandomColorShader"
def __init__(self, s=1):
StrokeShader.__init__(self)
seed(s)
+ def getName(self):
+ return "pyRandomColorShader"
def shade(self, stroke):
## pick a random color
c0 = float(uniform(15,75))/100.0
c1 = float(uniform(15,75))/100.0
c2 = float(uniform(15,75))/100.0
print(c0, c1, c2)
- it = stroke.strokeVerticesBegin()
- while(it.isEnd() == 0):
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
it.getObject().attribute.color = (c0,c1,c2)
it.increment()
class py2DCurvatureColorShader(StrokeShader):
def getName(self):
return "py2DCurvatureColorShader"
-
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
func = Curvature2DAngleF0D()
- while it.isEnd() == 0:
+ while not it.isEnd():
c = func(it.castToInterface0DIterator())
if c < 0:
print("negative 2D curvature")
@@ -542,9 +513,8 @@ class pyTimeColorShader(StrokeShader):
self._step = step
def shade(self, stroke):
c = self._t*1.0
- it = stroke.strokeVerticesBegin()
- it_end = stroke.strokeVerticesEnd()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
it.getObject().attribute.color = (c,c,c)
it.increment()
self._t = self._t+self._step
@@ -558,8 +528,8 @@ class pySamplingShader(StrokeShader):
def getName(self):
return "pySamplingShader"
def shade(self, stroke):
- stroke.Resample(float(self._sampling))
- stroke.UpdateLength()
+ stroke.resample(float(self._sampling))
+ stroke.update_length()
class pyBackboneStretcherShader(StrokeShader):
def __init__(self, l):
@@ -568,10 +538,10 @@ class pyBackboneStretcherShader(StrokeShader):
def getName(self):
return "pyBackboneStretcherShader"
def shade(self, stroke):
- it0 = stroke.strokeVerticesBegin()
+ it0 = stroke.stroke_vertices_begin()
it1 = StrokeVertexIterator(it0)
it1.increment()
- itn = stroke.strokeVerticesEnd()
+ itn = stroke.stroke_vertices_end()
itn.decrement()
itn_1 = StrokeVertexIterator(itn)
itn_1.decrement()
@@ -579,10 +549,10 @@ class pyBackboneStretcherShader(StrokeShader):
v1 = it1.getObject()
vn_1 = itn_1.getObject()
vn = itn.getObject()
- p0 = Vector([v0.getProjectedX(), v0.getProjectedY()])
- pn = Vector([vn.getProjectedX(), vn.getProjectedY()])
- p1 = Vector([v1.getProjectedX(), v1.getProjectedY()])
- pn_1 = Vector([vn_1.getProjectedX(), vn_1.getProjectedY()])
+ p0 = Vector([v0.projected_x, v0.projected_y])
+ pn = Vector([vn.projected_x, vn.projected_y])
+ p1 = Vector([v1.projected_x, v1.projected_y])
+ pn_1 = Vector([vn_1.projected_x, vn_1.projected_y])
d1 = p0-p1
d1.normalize()
dn = pn-pn_1
@@ -591,7 +561,7 @@ class pyBackboneStretcherShader(StrokeShader):
newLast = pn+dn*float(self._l)
v0.point = newFirst
vn.point = newLast
- stroke.UpdateLength()
+ stroke.update_length()
class pyLengthDependingBackboneStretcherShader(StrokeShader):
def __init__(self, l):
@@ -600,12 +570,12 @@ class pyLengthDependingBackboneStretcherShader(StrokeShader):
def getName(self):
return "pyBackboneStretcherShader"
def shade(self, stroke):
- l = stroke.getLength2D()
+ l = stroke.length_2d
stretch = self._l*l
- it0 = stroke.strokeVerticesBegin()
+ it0 = stroke.stroke_vertices_begin()
it1 = StrokeVertexIterator(it0)
it1.increment()
- itn = stroke.strokeVerticesEnd()
+ itn = stroke.stroke_vertices_end()
itn.decrement()
itn_1 = StrokeVertexIterator(itn)
itn_1.decrement()
@@ -613,10 +583,10 @@ class pyLengthDependingBackboneStretcherShader(StrokeShader):
v1 = it1.getObject()
vn_1 = itn_1.getObject()
vn = itn.getObject()
- p0 = Vector([v0.getProjectedX(), v0.getProjectedY()])
- pn = Vector([vn.getProjectedX(), vn.getProjectedY()])
- p1 = Vector([v1.getProjectedX(), v1.getProjectedY()])
- pn_1 = Vector([vn_1.getProjectedX(), vn_1.getProjectedY()])
+ p0 = Vector([v0.projected_x, v0.projected_y])
+ pn = Vector([vn.projected_x, vn.projected_y])
+ p1 = Vector([v1.projected_x, v1.projected_y])
+ pn_1 = Vector([vn_1.projected_x, vn_1.projected_y])
d1 = p0-p1
d1.normalize()
dn = pn-pn_1
@@ -625,7 +595,7 @@ class pyLengthDependingBackboneStretcherShader(StrokeShader):
newLast = pn+dn*float(stretch)
v0.point = newFirst
vn.point = newLast
- stroke.UpdateLength()
+ stroke.update_length()
## Shader to replace a stroke by its corresponding tangent
@@ -634,27 +604,27 @@ class pyGuidingLineShader(StrokeShader):
return "pyGuidingLineShader"
## shading method
def shade(self, stroke):
- it = stroke.strokeVerticesBegin() ## get the first vertex
- itlast = stroke.strokeVerticesEnd() ##
+ it = stroke.stroke_vertices_begin() ## get the first vertex
+ itlast = stroke.stroke_vertices_end() ##
itlast.decrement() ## get the last one
t = itlast.getObject().point - it.getObject().point ## tangent direction
itmiddle = StrokeVertexIterator(it) ##
- while(itmiddle.getObject().u<0.5): ## look for the stroke middle vertex
+ while itmiddle.getObject().u < 0.5: ## look for the stroke middle vertex
itmiddle.increment() ##
it = StrokeVertexIterator(itmiddle)
it.increment()
- while(it.isEnd() == 0): ## position all the vertices along the tangent for the right part
+ while not it.isEnd(): ## position all the vertices along the tangent for the right part
it.getObject().point = itmiddle.getObject().point \
+t*(it.getObject().u-itmiddle.getObject().u)
it.increment()
it = StrokeVertexIterator(itmiddle)
it.decrement()
- while(it.isBegin() == 0): ## position all the vertices along the tangent for the left part
+ while not it.isBegin(): ## position all the vertices along the tangent for the left part
it.getObject().point = itmiddle.getObject().point \
-t*(itmiddle.getObject().u-it.getObject().u)
it.decrement()
it.getObject().point = itmiddle.getObject().point-t*itmiddle.getObject().u ## first vertex
- stroke.UpdateLength()
+ stroke.update_length()
class pyBackboneStretcherNoCuspShader(StrokeShader):
@@ -664,16 +634,16 @@ class pyBackboneStretcherNoCuspShader(StrokeShader):
def getName(self):
return "pyBackboneStretcherNoCuspShader"
def shade(self, stroke):
- it0 = stroke.strokeVerticesBegin()
+ it0 = stroke.stroke_vertices_begin()
it1 = StrokeVertexIterator(it0)
it1.increment()
- itn = stroke.strokeVerticesEnd()
+ itn = stroke.stroke_vertices_end()
itn.decrement()
itn_1 = StrokeVertexIterator(itn)
itn_1.decrement()
v0 = it0.getObject()
v1 = it1.getObject()
- if((v0.getNature() & Nature.CUSP == 0) and (v1.getNature() & Nature.CUSP == 0)):
+ if (v0.nature & Nature.CUSP) == 0 and (v1.nature & Nature.CUSP) == 0:
p0 = v0.point
p1 = v1.point
d1 = p0-p1
@@ -682,14 +652,14 @@ class pyBackboneStretcherNoCuspShader(StrokeShader):
v0.point = newFirst
vn_1 = itn_1.getObject()
vn = itn.getObject()
- if((vn.getNature() & Nature.CUSP == 0) and (vn_1.getNature() & Nature.CUSP == 0)):
+ if (vn.nature & Nature.CUSP) == 0 and (vn_1.nature & Nature.CUSP) == 0:
pn = vn.point
pn_1 = vn_1.point
dn = pn-pn_1
dn.normalize()
newLast = pn+dn*float(self._l)
vn.point = newLast
- stroke.UpdateLength()
+ stroke.update_length()
class pyDiffusion2Shader(StrokeShader):
"""This shader iteratively adds an offset to the position of each
@@ -706,14 +676,14 @@ class pyDiffusion2Shader(StrokeShader):
return "pyDiffusionShader"
def shade(self, stroke):
for i in range (1, self._nbIter):
- it = stroke.strokeVerticesBegin()
- while it.isEnd() == 0:
- v=it.getObject()
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
+ v = it.getObject()
p1 = v.point
p2 = self._normalInfo(it.castToInterface0DIterator())*self._lambda*self._curvatureInfo(it.castToInterface0DIterator())
v.point = p1+p2
it.increment()
- stroke.UpdateLength()
+ stroke.update_length()
class pyTipRemoverShader(StrokeShader):
def __init__(self, l):
@@ -722,49 +692,49 @@ class pyTipRemoverShader(StrokeShader):
def getName(self):
return "pyTipRemoverShader"
def shade(self, stroke):
- originalSize = stroke.strokeVerticesSize()
- if(originalSize<4):
+ originalSize = stroke.stroke_vertices_size()
+ if originalSize < 4:
return
verticesToRemove = []
oldAttributes = []
- it = stroke.strokeVerticesBegin()
- while(it.isEnd() == 0):
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
v = it.getObject()
- if((v.curvilinear_abscissa < self._l) or (v.stroke_length-v.curvilinear_abscissa < self._l)):
+ if v.curvilinear_abscissa < self._l or v.stroke_length-v.curvilinear_abscissa < self._l:
verticesToRemove.append(v)
oldAttributes.append(StrokeAttribute(v.attribute))
it.increment()
- if(originalSize-len(verticesToRemove) < 2):
+ if originalSize-len(verticesToRemove) < 2:
return
for sv in verticesToRemove:
- stroke.RemoveVertex(sv)
- stroke.UpdateLength()
- stroke.Resample(originalSize)
- if(stroke.strokeVerticesSize() != originalSize):
+ stroke.remove_vertex(sv)
+ stroke.update_length()
+ stroke.resample(originalSize)
+ if stroke.stroke_vertices_size() != originalSize:
print("pyTipRemover: Warning: resampling problem")
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
for a in oldAttributes:
- if(it.isEnd() == 1):
+ if it.isEnd():
break
it.getObject().attribute = a
it.increment()
- stroke.UpdateLength()
+ stroke.update_length()
class pyTVertexRemoverShader(StrokeShader):
def getName(self):
return "pyTVertexRemoverShader"
def shade(self, stroke):
- if(stroke.strokeVerticesSize() <= 3 ):
+ if stroke.stroke_vertices_size() <= 3:
return
predTVertex = pyVertexNatureUP0D(Nature.T_VERTEX)
- it = stroke.strokeVerticesBegin()
- itlast = stroke.strokeVerticesEnd()
+ it = stroke.stroke_vertices_begin()
+ itlast = stroke.stroke_vertices_end()
itlast.decrement()
- if(predTVertex(it) == 1):
- stroke.RemoveVertex(it.getObject())
- if(predTVertex(itlast) == 1):
- stroke.RemoveVertex(itlast.getObject())
- stroke.UpdateLength()
+ if predTVertex(it):
+ stroke.remove_vertex(it.getObject())
+ if predTVertex(itlast):
+ stroke.remove_vertex(itlast.getObject())
+ stroke.update_length()
class pyExtremitiesOrientationShader(StrokeShader):
def __init__(self, x1,y1,x2=0,y2=0):
@@ -774,39 +744,39 @@ class pyExtremitiesOrientationShader(StrokeShader):
def getName(self):
return "pyExtremitiesOrientationShader"
def shade(self, stroke):
- print(self._v1.x,self._v1.y)
+ #print(self._v1.x,self._v1.y)
stroke.setBeginningOrientation(self._v1.x,self._v1.y)
stroke.setEndingOrientation(self._v2.x,self._v2.y)
-def getFEdge(it1, it2):
- return it1.getFEdge(it2)
+def get_fedge(it1, it2):
+ return it1.get_fedge(it2)
class pyHLRShader(StrokeShader):
def getName(self):
return "pyHLRShader"
def shade(self, stroke):
- originalSize = stroke.strokeVerticesSize()
- if(originalSize<4):
+ originalSize = stroke.stroke_vertices_size()
+ if originalSize < 4:
return
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
invisible = 0
it2 = StrokeVertexIterator(it)
it2.increment()
- fe = getFEdge(it.getObject(), it2.getObject())
- if(fe.viewedge().qi() != 0):
+ fe = get_fedge(it.getObject(), it2.getObject())
+ if fe.viewedge.qi != 0:
invisible = 1
- while(it2.isEnd() == 0):
+ while not it2.isEnd():
v = it.getObject()
vnext = it2.getObject()
- if(v.getNature() & Nature.VIEW_VERTEX):
- #if(v.getNature() & Nature.T_VERTEX):
- fe = getFEdge(v,vnext)
- qi = fe.viewedge().qi()
- if(qi != 0):
+ if (v.nature & Nature.VIEW_VERTEX) != 0:
+ #if (v.nature & Nature.T_VERTEX) != 0:
+ fe = get_fedge(v, vnext)
+ qi = fe.viewedge.qi
+ if qi != 0:
invisible = 1
else:
invisible = 0
- if(invisible == 1):
+ if invisible:
v.attribute.visible = False
it.increment()
it2.increment()
@@ -820,53 +790,53 @@ class pyTVertexOrientationShader(StrokeShader):
## finds the TVertex orientation from the TVertex and
## the previous or next edge
def findOrientation(self, tv, ve):
- mateVE = tv.mate(ve)
- if ve.qi() != 0 or mateVE.qi() != 0:
+ mateVE = tv.get_mate(ve)
+ if ve.qi != 0 or mateVE.qi != 0:
ait = AdjacencyIterator(tv,1,0)
winner = None
incoming = True
while not ait.isEnd():
ave = ait.getObject()
- if ave.getId() != ve.getId() and ave.getId() != mateVE.getId():
+ if ave.id != ve.id and ave.id != mateVE.id:
winner = ait.getObject()
- if not ait.isIncoming():
+ if not ait.isIncoming(): # FIXME
incoming = False
break
ait.increment()
if winner is not None:
if not incoming:
- direction = self._Get2dDirection(winner.fedgeB())
+ direction = self._Get2dDirection(winner.last_fedge)
else:
- direction = self._Get2dDirection(winner.fedgeA())
+ direction = self._Get2dDirection(winner.first_fedge)
return direction
return None
def castToTVertex(self, cp):
if cp.t2d() == 0.0:
- return cp.A().viewvertex()
+ return cp.first_svertex.viewvertex
elif cp.t2d() == 1.0:
- return cp.B().viewvertex()
+ return cp.second_svertex.viewvertex
return None
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
it2 = StrokeVertexIterator(it)
it2.increment()
## case where the first vertex is a TVertex
v = it.getObject()
- if(v.getNature() & Nature.T_VERTEX):
+ if (v.nature & Nature.T_VERTEX) != 0:
tv = self.castToTVertex(v)
if tv is not None:
- ve = getFEdge(v, it2.getObject()).viewedge()
+ ve = get_fedge(v, it2.getObject()).viewedge
dir = self.findOrientation(tv, ve)
if dir is not None:
#print(dir.x, dir.y)
v.attribute.set_attribute_vec2("orientation", dir)
- while(it2.isEnd() == 0):
+ while not it2.isEnd():
vprevious = it.getObject()
v = it2.getObject()
- if(v.getNature() & Nature.T_VERTEX):
+ if (v.nature & Nature.T_VERTEX) != 0:
tv = self.castToTVertex(v)
if tv is not None:
- ve = getFEdge(vprevious, v).viewedge()
+ ve = get_fedge(vprevious, v).viewedge
dir = self.findOrientation(tv, ve)
if dir is not None:
#print(dir.x, dir.y)
@@ -875,12 +845,12 @@ class pyTVertexOrientationShader(StrokeShader):
it2.increment()
## case where the last vertex is a TVertex
v = it.getObject()
- if(v.getNature() & Nature.T_VERTEX):
+ if (v.nature & Nature.T_VERTEX) != 0:
itPrevious = StrokeVertexIterator(it)
itPrevious.decrement()
tv = self.castToTVertex(v)
if tv is not None:
- ve = getFEdge(itPrevious.getObject(), v).viewedge()
+ ve = get_fedge(itPrevious.getObject(), v).viewedge
dir = self.findOrientation(tv, ve)
if dir is not None:
#print(dir.x, dir.y)
@@ -892,12 +862,11 @@ class pySinusDisplacementShader(StrokeShader):
self._f = f
self._a = a
self._getNormal = Normal2DF0D()
-
def getName(self):
return "pySinusDisplacementShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
v = it.getObject()
#print(self._getNormal.getName())
n = self._getNormal(it.castToInterface0DIterator())
@@ -909,7 +878,7 @@ class pySinusDisplacementShader(StrokeShader):
v.point = p+n
#v.point = v.point+n*a*cos(f*v.u)
it.increment()
- stroke.UpdateLength()
+ stroke.update_length()
class pyPerlinNoise1DShader(StrokeShader):
def __init__(self, freq = 10, amp = 10, oct = 4, seed = -1):
@@ -921,14 +890,14 @@ class pyPerlinNoise1DShader(StrokeShader):
def getName(self):
return "pyPerlinNoise1DShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
v = it.getObject()
- i = v.getProjectedX() + v.getProjectedY()
+ i = v.projected_x + v.projected_y
nres = self.__noise.turbulence1(i, self.__freq, self.__amp, self.__oct)
- v.point = (v.getProjectedX() + nres, v.getProjectedY() + nres)
+ v.point = (v.projected_x + nres, v.projected_y + nres)
it.increment()
- stroke.UpdateLength()
+ stroke.update_length()
class pyPerlinNoise2DShader(StrokeShader):
def __init__(self, freq = 10, amp = 10, oct = 4, seed = -1):
@@ -940,14 +909,14 @@ class pyPerlinNoise2DShader(StrokeShader):
def getName(self):
return "pyPerlinNoise2DShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
v = it.getObject()
- vec = Vector([v.getProjectedX(), v.getProjectedY()])
+ vec = Vector([v.projected_x, v.projected_y])
nres = self.__noise.turbulence2(vec, self.__freq, self.__amp, self.__oct)
- v.point = (v.getProjectedX() + nres, v.getProjectedY() + nres)
+ v.point = (v.projected_x + nres, v.projected_y + nres)
it.increment()
- stroke.UpdateLength()
+ stroke.update_length()
class pyBluePrintCirclesShader(StrokeShader):
def __init__(self, turns = 1, random_radius = 3, random_center = 5):
@@ -958,24 +927,24 @@ class pyBluePrintCirclesShader(StrokeShader):
def getName(self):
return "pyBluePrintCirclesShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
if it.isEnd():
return
- p_min = Vector(it.getObject().point)
- p_max = Vector(it.getObject().point)
- while it.isEnd() == 0:
+ p_min = it.getObject().point.copy()
+ p_max = it.getObject().point.copy()
+ while not it.isEnd():
p = it.getObject().point
- if (p.x < p_min.x):
+ if p.x < p_min.x:
p_min.x = p.x
- if (p.x > p_max.x):
+ if p.x > p_max.x:
p_max.x = p.x
- if (p.y < p_min.y):
+ if p.y < p_min.y:
p_min.y = p.y
- if (p.y > p_max.y):
+ if p.y > p_max.y:
p_max.y = p.y
it.increment()
- stroke.Resample(32 * self.__turns)
- sv_nb = stroke.strokeVerticesSize()
+ stroke.resample(32 * self.__turns)
+ sv_nb = stroke.stroke_vertices_size()
# print("min :", p_min.x, p_min.y) # DEBUG
# print("mean :", p_sum.x, p_sum.y) # DEBUG
# print("max :", p_max.x, p_max.y) # DEBUG
@@ -989,13 +958,13 @@ class pyBluePrintCirclesShader(StrokeShader):
R = self.__random_radius
C = self.__random_center
i = 0
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
for j in range(self.__turns):
prev_radius = radius
prev_center = center
radius = radius + randint(-R, R)
center = center + Vector([randint(-C, C), randint(-C, C)])
- while i < sv_nb and it.isEnd() == 0:
+ while i < sv_nb and not it.isEnd():
t = float(i) / float(sv_nb - 1)
r = prev_radius + (radius - prev_radius) * t
c = prev_center + (center - prev_center) * t
@@ -1006,12 +975,12 @@ class pyBluePrintCirclesShader(StrokeShader):
it.increment()
i = 1
verticesToRemove = []
- while it.isEnd() == 0:
+ while not it.isEnd():
verticesToRemove.append(it.getObject())
it.increment()
for sv in verticesToRemove:
- stroke.RemoveVertex(sv)
- stroke.UpdateLength()
+ stroke.remove_vertex(sv)
+ stroke.update_length()
class pyBluePrintEllipsesShader(StrokeShader):
def __init__(self, turns = 1, random_radius = 3, random_center = 5):
@@ -1022,24 +991,24 @@ class pyBluePrintEllipsesShader(StrokeShader):
def getName(self):
return "pyBluePrintEllipsesShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
if it.isEnd():
return
- p_min = Vector(it.getObject().point)
- p_max = Vector(it.getObject().point)
- while it.isEnd() == 0:
+ p_min = it.getObject().point.copy()
+ p_max = it.getObject().point.copy()
+ while not it.isEnd():
p = it.getObject().point
- if (p.x < p_min.x):
+ if p.x < p_min.x:
p_min.x = p.x
- if (p.x > p_max.x):
+ if p.x > p_max.x:
p_max.x = p.x
- if (p.y < p_min.y):
+ if p.y < p_min.y:
p_min.y = p.y
- if (p.y > p_max.y):
+ if p.y > p_max.y:
p_max.y = p.y
it.increment()
- stroke.Resample(32 * self.__turns)
- sv_nb = stroke.strokeVerticesSize()
+ stroke.resample(32 * self.__turns)
+ sv_nb = stroke.stroke_vertices_size()
sv_nb = sv_nb // self.__turns
center = (p_min + p_max) / 2
radius = center - p_min
@@ -1048,13 +1017,13 @@ class pyBluePrintEllipsesShader(StrokeShader):
R = self.__random_radius
C = self.__random_center
i = 0
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
for j in range(self.__turns):
prev_radius = radius
prev_center = center
radius = radius + Vector([randint(-R, R), randint(-R, R)])
center = center + Vector([randint(-C, C), randint(-C, C)])
- while i < sv_nb and it.isEnd() == 0:
+ while i < sv_nb and not it.isEnd():
t = float(i) / float(sv_nb - 1)
r = prev_radius + (radius - prev_radius) * t
c = prev_center + (center - prev_center) * t
@@ -1065,12 +1034,12 @@ class pyBluePrintEllipsesShader(StrokeShader):
it.increment()
i = 1
verticesToRemove = []
- while it.isEnd() == 0:
+ while not it.isEnd():
verticesToRemove.append(it.getObject())
it.increment()
for sv in verticesToRemove:
- stroke.RemoveVertex(sv)
- stroke.UpdateLength()
+ stroke.remove_vertex(sv)
+ stroke.update_length()
class pyBluePrintSquaresShader(StrokeShader):
@@ -1079,29 +1048,27 @@ class pyBluePrintSquaresShader(StrokeShader):
self.__turns = turns
self.__bb_len = bb_len
self.__bb_rand = bb_rand
-
def getName(self):
return "pyBluePrintSquaresShader"
-
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
+ it = stroke.stroke_vertices_begin()
if it.isEnd():
return
- p_min = Vector(it.getObject().point)
- p_max = Vector(it.getObject().point)
- while it.isEnd() == 0:
+ p_min = it.getObject().point.copy()
+ p_max = it.getObject().point.copy()
+ while not it.isEnd():
p = it.getObject().point
- if (p.x < p_min.x):
+ if p.x < p_min.x:
p_min.x = p.x
- if (p.x > p_max.x):
+ if p.x > p_max.x:
p_max.x = p.x
- if (p.y < p_min.y):
+ if p.y < p_min.y:
p_min.y = p.y
- if (p.y > p_max.y):
+ if p.y > p_max.y:
p_max.y = p.y
it.increment()
- stroke.Resample(32 * self.__turns)
- sv_nb = stroke.strokeVerticesSize()
+ stroke.resample(32 * self.__turns)
+ sv_nb = stroke.stroke_vertices_size()
#######################################################
sv_nb = sv_nb // self.__turns
first = sv_nb // 4
@@ -1119,8 +1086,8 @@ class pyBluePrintSquaresShader(StrokeShader):
#######################################################
R = self.__bb_rand
r = self.__bb_rand // 2
- it = stroke.strokeVerticesBegin()
- visible = 1
+ it = stroke.stroke_vertices_begin()
+ visible = True
for j in range(self.__turns):
p_first = p_first + Vector([randint(-R, R), randint(-r, r)])
p_first_end = p_first_end + Vector([randint(-R, R), randint(-r, r)])
@@ -1135,42 +1102,42 @@ class pyBluePrintSquaresShader(StrokeShader):
vec_third = p_third_end - p_third
vec_fourth = p_fourth_end - p_fourth
i = 0
- while i < sv_nb and it.isEnd() == 0:
+ while i < sv_nb and not it.isEnd():
if i < first:
p_new = p_first + vec_first * float(i)/float(first - 1)
if i == first - 1:
- visible = 0
+ visible = False
elif i < second:
p_new = p_second + vec_second * float(i - first)/float(second - first - 1)
if i == second - 1:
- visible = 0
+ visible = False
elif i < third:
p_new = p_third + vec_third * float(i - second)/float(third - second - 1)
if i == third - 1:
- visible = 0
+ visible = False
else:
p_new = p_fourth + vec_fourth * float(i - third)/float(fourth - third - 1)
if i == fourth - 1:
- visible = 0
+ visible = False
if it.getObject() == None:
i = i + 1
it.increment()
- if visible == 0:
- visible = 1
+ if not visible:
+ visible = True
continue
it.getObject().point = p_new
it.getObject().attribute.visible = visible
- if visible == 0:
- visible = 1
+ if not visible:
+ visible = True
i = i + 1
it.increment()
verticesToRemove = []
- while it.isEnd() == 0:
+ while not it.isEnd():
verticesToRemove.append(it.getObject())
it.increment()
for sv in verticesToRemove:
- stroke.RemoveVertex(sv)
- stroke.UpdateLength()
+ stroke.remove_vertex(sv)
+ stroke.update_length()
class pyBluePrintDirectedSquaresShader(StrokeShader):
@@ -1182,20 +1149,20 @@ class pyBluePrintDirectedSquaresShader(StrokeShader):
def getName(self):
return "pyBluePrintDirectedSquaresShader"
def shade(self, stroke):
- stroke.Resample(32 * self.__turns)
+ stroke.resample(32 * self.__turns)
p_mean = Vector([0, 0])
- it = stroke.strokeVerticesBegin()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
p = it.getObject().point
p_mean = p_mean + p
it.increment()
- sv_nb = stroke.strokeVerticesSize()
+ sv_nb = stroke.stroke_vertices_size()
p_mean = p_mean / sv_nb
p_var_xx = 0
p_var_yy = 0
p_var_xy = 0
- it = stroke.strokeVerticesBegin()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
p = it.getObject().point
p_var_xx = p_var_xx + pow(p.x - p_mean.x, 2)
p_var_yy = p_var_yy + pow(p.y - p_mean.y, 2)
@@ -1236,40 +1203,40 @@ class pyBluePrintDirectedSquaresShader(StrokeShader):
vec_third = vec_first * -1
vec_fourth = vec_second * -1
#######################################################
- it = stroke.strokeVerticesBegin()
- visible = 1
+ it = stroke.stroke_vertices_begin()
+ visible = True
for j in range(self.__turns):
i = 0
while i < sv_nb:
if i < first:
p_new = p_first + vec_first * float(i)/float(first - 1)
if i == first - 1:
- visible = 0
+ visible = False
elif i < second:
p_new = p_second + vec_second * float(i - first)/float(second - first - 1)
if i == second - 1:
- visible = 0
+ visible = False
elif i < third:
p_new = p_third + vec_third * float(i - second)/float(third - second - 1)
if i == third - 1:
- visible = 0
+ visible = False
else:
p_new = p_fourth + vec_fourth * float(i - third)/float(fourth - third - 1)
if i == fourth - 1:
- visible = 0
+ visible = False
it.getObject().point = p_new
it.getObject().attribute.visible = visible
- if visible == 0:
- visible = 1
+ if not visible:
+ visible = True
i = i + 1
it.increment()
verticesToRemove = []
- while it.isEnd() == 0:
+ while not it.isEnd():
verticesToRemove.append(it.getObject())
it.increment()
for sv in verticesToRemove:
- stroke.RemoveVertex(sv)
- stroke.UpdateLength()
+ stroke.remove_vertex(sv)
+ stroke.update_length()
class pyModulateAlphaShader(StrokeShader):
def __init__(self, min = 0, max = 1):
@@ -1279,8 +1246,8 @@ class pyModulateAlphaShader(StrokeShader):
def getName(self):
return "pyModulateAlphaShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
alpha = it.getObject().attribute.alpha
p = it.getObject().point
alpha = alpha * p.y / 400
@@ -1291,15 +1258,13 @@ class pyModulateAlphaShader(StrokeShader):
it.getObject().attribute.alpha = alpha
it.increment()
-
## various
class pyDummyShader(StrokeShader):
def getName(self):
return "pyDummyShader"
def shade(self, stroke):
- it = stroke.strokeVerticesBegin()
- it_end = stroke.strokeVerticesEnd()
- while it.isEnd() == 0:
+ it = stroke.stroke_vertices_begin()
+ while not it.isEnd():
toto = it.castToInterface0DIterator()
att = it.getObject().attribute
att.color = (0.3, 0.4, 0.4)
@@ -1309,26 +1274,25 @@ class pyDummyShader(StrokeShader):
class pyDebugShader(StrokeShader):
def getName(self):
return "pyDebugShader"
-
def shade(self, stroke):
fe = GetSelectedFEdgeCF()
- id1=fe.vertexA().getId()
- id2=fe.vertexB().getId()
- #print(id1.getFirst(), id1.getSecond())
- #print(id2.getFirst(), id2.getSecond())
- it = stroke.strokeVerticesBegin()
- found = 0
- foundfirst = 0
- foundsecond = 0
- while it.isEnd() == 0:
+ id1 = fe.first_svertex.id
+ id2 = fe.second_svertex.id
+ #print(id1.first, id1.second)
+ #print(id2.first, id2.second)
+ it = stroke.stroke_vertices_begin()
+ found = True
+ foundfirst = True
+ foundsecond = False
+ while not it.isEnd():
cp = it.getObject()
- if((cp.A().getId() == id1) or (cp.B().getId() == id1)):
- foundfirst = 1
- if((cp.A().getId() == id2) or (cp.B().getId() == id2)):
- foundsecond = 1
- if((foundfirst != 0) and (foundsecond != 0)):
- found = 1
+ if cp.first_svertex.id == id1 or cp.second_svertex.id == id1:
+ foundfirst = True
+ if cp.first_svertex.id == id2 or cp.second_svertex.id == id2:
+ foundsecond = True
+ if foundfirst and foundsecond:
+ found = True
break
it.increment()
- if(found != 0):
- print("The selected Stroke id is: ", stroke.getId().getFirst(), stroke.getId().getSecond())
+ if found:
+ print("The selected Stroke id is: ", stroke.id.first, stroke.id.second)