[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54592] branches/soc-2008-mxcurioni: Freestyle Python API improvements - part 4.
Tamito Kajiyama
rd6t-kjym at asahi-net.or.jp
Sat Feb 16 15:21:41 CET 2013
Revision: 54592
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54592
Author: kjym3
Date: 2013-02-16 14:21:40 +0000 (Sat, 16 Feb 2013)
Log Message:
-----------
Freestyle Python API improvements - part 4.
Major API updates were made as in part 3 to address code review comments.
This revision focuses on Python wrappers of C++ iterators.
* Most getter/setter methods were reimplemented as attributes using PyGetSetDef.
* 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). The only irregular naming change is the following, to
better indicate the functionality:
- ChainingIterator: getVertex --> next_vertex
* In addition, some code clean-up was done in both C++ and Python. Also duplicated
definitions of predicate classes were removed.
Modified Paths:
--------------
branches/soc-2008-mxcurioni/release/scripts/freestyle/style_modules/ChainingIterators.py
branches/soc-2008-mxcurioni/release/scripts/freestyle/style_modules/Functions0D.py
branches/soc-2008-mxcurioni/release/scripts/freestyle/style_modules/PredicatesU0D.py
branches/soc-2008-mxcurioni/release/scripts/freestyle/style_modules/PredicatesU1D.py
branches/soc-2008-mxcurioni/release/scripts/freestyle/style_modules/parameter_editor.py
branches/soc-2008-mxcurioni/release/scripts/freestyle/style_modules/sequentialsplit_sketchy.py
branches/soc-2008-mxcurioni/release/scripts/freestyle/style_modules/shaders.py
branches/soc-2008-mxcurioni/release/scripts/freestyle/style_modules/uniformpruning_zsort.py
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/BPy_Iterator.cpp
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Iterator/BPy_AdjacencyIterator.cpp
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Iterator/BPy_ChainingIterator.cpp
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Iterator/BPy_CurvePointIterator.cpp
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Iterator/BPy_Interface0DIterator.cpp
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Iterator/BPy_SVertexIterator.cpp
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Iterator/BPy_StrokeVertexIterator.cpp
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Iterator/BPy_ViewEdgeIterator.cpp
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/python/Iterator/BPy_orientedViewEdgeIterator.cpp
Modified: branches/soc-2008-mxcurioni/release/scripts/freestyle/style_modules/ChainingIterators.py
===================================================================
--- branches/soc-2008-mxcurioni/release/scripts/freestyle/style_modules/ChainingIterators.py 2013-02-16 14:01:55 UTC (rev 54591)
+++ branches/soc-2008-mxcurioni/release/scripts/freestyle/style_modules/ChainingIterators.py 2013-02-16 14:21:40 UTC (rev 54592)
@@ -42,11 +42,11 @@
def traverse(self, iter):
winner = None
it = AdjacencyIterator(iter)
- tvertex = self.getVertex()
+ tvertex = self.next_vertex
if type(tvertex) is TVertex:
- mateVE = tvertex.get_mate(self.getCurrentEdge())
- while not it.isEnd():
- ve = it.getObject()
+ mateVE = tvertex.get_mate(self.current_edge)
+ while not it.is_end:
+ ve = it.object
if ve.id == mateVE.id:
winner = ve
break
@@ -55,12 +55,12 @@
## 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().nature
+ currentNature = self.current_edge.nature
if (natures[i] & currentNature) != 0:
count=0
- while not it.isEnd():
+ while not it.is_end:
visitNext = 0
- oNature = it.getObject().nature
+ oNature = it.object.nature
if (oNature & natures[i]) != 0:
if natures[i] != oNature:
for j in range(i):
@@ -70,7 +70,7 @@
if visitNext != 0:
break
count = count+1
- winner = it.getObject()
+ winner = it.object
it.increment()
if count != 1:
winner = None
@@ -94,11 +94,11 @@
def traverse(self, iter):
winner = None
it = AdjacencyIterator(iter)
- tvertex = self.getVertex()
+ tvertex = self.next_vertex
if type(tvertex) is TVertex:
- mateVE = tvertex.get_mate(self.getCurrentEdge())
- while not it.isEnd():
- ve = it.getObject()
+ mateVE = tvertex.get_mate(self.current_edge)
+ while not it.is_end:
+ ve = it.object
if ve.id == mateVE.id:
winner = ve
break
@@ -107,14 +107,14 @@
## 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().nature
+ currentNature = self.current_edge.nature
if (natures[i] & currentNature) != 0:
count=0
- while not it.isEnd():
+ while not it.is_end:
visitNext = 0
- oNature = it.getObject().nature
- ve = it.getObject()
- if ve.id == self.getCurrentEdge().id:
+ oNature = it.object.nature
+ ve = it.object
+ if ve.id == self.current_edge.id:
it.increment()
continue
if (oNature & natures[i]) != 0:
@@ -137,22 +137,19 @@
def __init__(self):
ChainingIterator.__init__(self, 0, 1,None,1)
self._isExternalContour = ExternalContourUP1D()
-
def getExactTypeName(self):
return "pyExternalContourIterator"
-
def init(self):
self._nEdges = 0
self._isInSelection = 1
-
def checkViewEdge(self, ve, orientation):
if orientation != 0:
vertex = ve.second_svertex()
else:
vertex = ve.first_svertex()
it = AdjacencyIterator(vertex,1,1)
- while not it.isEnd():
- ave = it.getObject()
+ while not it.is_end:
+ ave = it.object
if self._isExternalContour(ave):
return 1
it.increment()
@@ -161,8 +158,8 @@
def traverse(self, iter):
winner = None
it = AdjacencyIterator(iter)
- while not it.isEnd():
- ve = it.getObject()
+ while not it.is_end:
+ ve = it.object
if self._isExternalContour(ve):
if ve.time_stamp == GetTimeStampCF():
winner = ve
@@ -172,9 +169,9 @@
if winner is None:
orient = 1
it = AdjacencyIterator(iter)
- while not it.isEnd():
- ve = it.getObject()
- if it.isIncoming() != 0: # FIXME
+ while not it.is_end:
+ ve = it.object
+ if it.is_incoming:
orient = 0
good = self.checkViewEdge(ve,orient)
if good != 0:
@@ -196,11 +193,11 @@
def traverse(self, iter):
winner = None
it = AdjacencyIterator(iter)
- tvertex = self.getVertex()
+ tvertex = self.next_vertex
if type(tvertex) is TVertex:
- mateVE = tvertex.get_mate(self.getCurrentEdge())
- while not it.isEnd():
- ve = it.getObject()
+ mateVE = tvertex.get_mate(self.current_edge)
+ while not it.is_end:
+ ve = it.object
if ve.id == mateVE.id:
winner = ve
break
@@ -209,14 +206,14 @@
## 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().nature
+ currentNature = self.current_edge.nature
if (natures[i] & currentNature) != 0:
count=0
- while not it.isEnd():
+ while not it.is_end:
visitNext = 0
- oNature = it.getObject().nature
- ve = it.getObject()
- if ve.id == self.getCurrentEdge().id:
+ oNature = it.object.nature
+ ve = it.object
+ if ve.id == self.current_edge.id:
it.increment()
continue
if (oNature & natures[i]) != 0:
@@ -234,7 +231,7 @@
winner = None
break
if winner is None:
- winner = self.getCurrentEdge()
+ winner = self.current_edge
if winner.chaining_time_stamp == self._timeStamp:
winner = None
return winner
@@ -250,22 +247,20 @@
self._nRounds = nRounds
def getExactTypeName(self):
return "pySketchyChainingIterator"
-
def init(self):
self._timeStamp = GetTimeStampCF()+self._nRounds
-
def traverse(self, iter):
winner = None
it = AdjacencyIterator(iter)
- while not it.isEnd():
- ve = it.getObject()
- if ve.id == self.getCurrentEdge().id:
+ while not it.is_end:
+ ve = it.object
+ if ve.id == self.current_edge.id:
it.increment()
continue
winner = ve
it.increment()
if winner is None:
- winner = self.getCurrentEdge()
+ winner = self.current_edge
if winner.chaining_time_stamp == self._timeStamp:
return None
return winner
@@ -290,16 +285,16 @@
def traverse(self, iter):
winner = None
winnerOrientation = 0
- print(self.getCurrentEdge().id.first, self.getCurrentEdge().id.second)
+ print(self.current_edge.id.first, self.current_edge.id.second)
it = AdjacencyIterator(iter)
- tvertex = self.getVertex()
+ tvertex = self.next_vertex
if type(tvertex) is TVertex:
- mateVE = tvertex.get_mate(self.getCurrentEdge())
- while not it.isEnd():
- ve = it.getObject()
+ mateVE = tvertex.get_mate(self.current_edge)
+ while not it.is_end:
+ ve = it.object
if ve.id == mateVE.id:
winner = ve
- if it.isIncoming() == 0: # FIXME
+ if not it.is_incoming:
winnerOrientation = 1
else:
winnerOrientation = 0
@@ -309,14 +304,14 @@
## case of NonTVertex
natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE]
for nat in natures:
- if (self.getCurrentEdge().nature & nat) != 0:
+ if (self.current_edge.nature & nat) != 0:
count=0
- while not it.isEnd():
- ve = it.getObject()
+ while not it.is_end:
+ ve = it.object
if (ve.nature & nat) != 0:
count = count+1
winner = ve
- if it.isIncoming() == 0: # FIXME
+ if not it.is_incoming:
winnerOrientation = 1
else:
winnerOrientation = 0
@@ -335,24 +330,24 @@
if self._length == 0:
#if not, let's do it
_it = pyChainSilhouetteGenericIterator(0,0)
- _it.setBegin(winner)
- _it.setCurrentEdge(winner)
- _it.setOrientation(winnerOrientation)
+ _it.begin = winner
+ _it.current_edge = winner
+ _it.orientation = winnerOrientation
_it.init()
- while not _it.isEnd():
- ve = _it.getObject()
+ while not _it.is_end:
+ ve = _it.object
#print("--------", ve.id.first, ve.id.second)
self._length = self._length + ve.length_2d
_it.increment()
- if _it.isBegin():
+ if _it.is_begin:
break;
- _it.setBegin(winner)
- _it.setCurrentEdge(winner)
- _it.setOrientation(winnerOrientation)
- if not _it.isBegin():
+ _it.begin = winner
+ _it.current_edge = winner
+ _it.orientation = winnerOrientation
+ if not _it.is_begin:
_it.decrement()
- while (not _it.isEnd()) and (not _it.isBegin()):
- ve = _it.getObject()
+ while (not _it.is_end) and (not _it.is_begin):
+ ve = _it.object
#print("--------", ve.id.first, ve.id.second)
self._length = self._length + ve.length_2d
_it.decrement()
@@ -361,12 +356,12 @@
# nw let's compute the length of this connex non selected part:
connexl = 0
_cit = pyChainSilhouetteGenericIterator(0,0)
- _cit.setBegin(winner)
- _cit.setCurrentEdge(winner)
- _cit.setOrientation(winnerOrientation)
+ _cit.begin = winner
+ _cit.current_edge = winner
+ _cit.orientation = winnerOrientation
_cit.init()
- while _cit.isEnd() == 0 and _cit.getObject().time_stamp != GetTimeStampCF():
- ve = _cit.getObject()
+ while _cit.is_end == 0 and _cit.object.time_stamp != GetTimeStampCF():
+ ve = _cit.object
#print("-------- --------", ve.id.first, ve.id.second)
connexl = connexl + ve.length_2d
_cit.increment()
@@ -389,16 +384,16 @@
def traverse(self, iter):
winner = None
winnerOrientation = 0
- #print(self.getCurrentEdge().id.first, self.getCurrentEdge().id.second)
+ #print(self.current_edge.id.first, self.current_edge.id.second)
it = AdjacencyIterator(iter)
- tvertex = self.getVertex()
+ tvertex = self.next_vertex
if type(tvertex) is TVertex:
- mateVE = tvertex.get_mate(self.getCurrentEdge())
- while not it.isEnd():
- ve = it.getObject()
+ mateVE = tvertex.get_mate(self.current_edge)
+ while not it.is_end:
+ ve = it.object
if ve.id == mateVE.id:
winner = ve
- if it.isIncoming() == 0: # FIXME
+ if not it.is_incoming:
winnerOrientation = 1
else:
winnerOrientation = 0
@@ -408,14 +403,14 @@
## case of NonTVertex
natures = [Nature.SILHOUETTE,Nature.BORDER,Nature.CREASE,Nature.SUGGESTIVE_CONTOUR,Nature.VALLEY,Nature.RIDGE]
for nat in natures:
- if (self.getCurrentEdge().nature & nat) != 0:
+ if (self.current_edge.nature & nat) != 0:
count=0
- while not it.isEnd():
- ve = it.getObject()
+ while not it.is_end:
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list