Blender version: The Freestyle branch revision 16866 (October 1, 2008)
Select quantitatively visible lines.
Select all invisible lines, i.e. those lines that are not quantitatively visible lines.
Select quantitatively invisible lines.
import freestyle_init
from logical_operators import *
from PredicatesU1D import *
from shaders import *
upred = QuantitativeInvisibilityUP1D(0)
Operators.select(upred)
Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred))
shaders_list = [
ConstantColorShader(0, 0, 0),
ConstantThicknessShader(2),
]
Operators.create(TrueUP1D(), shaders_list)
import freestyle_init
from logical_operators import *
from PredicatesB1D import *
from PredicatesU1D import *
from shaders import *
from dashded_line import pyDashedLineShader
upred = NotUP1D(QuantitativeInvisibilityUP1D(0))
Operators.select(upred)
Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred))
Operators.sequentialSplit(TrueUP0D(), 1.0) # for pyDashedLineShader
shaders_list = [
pyDashedLineShader(fg=(.7, .7, .7)),
ConstantThicknessShader(2),
]
Operators.create(TrueUP1D(), shaders_list)
import freestyle_init
from logical_operators import *
from PredicatesB1D import *
from PredicatesU1D import *
from shaders import *
from dashded_line import pyDashedLineShader
upred = QuantitativeInvisibilityUP1D(1)
Operators.select(upred)
Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred))
Operators.sequentialSplit(TrueUP0D(), 1.0) # for pyDashedLineShader
shaders_list = [
pyDashedLineShader(fg=(.7, .7, .7)),
ConstantThicknessShader(2),
]
Operators.create(TrueUP1D(), shaders_list)
visibleline.py + hiddenline1.py
visibleline.py + hiddenline2.py
import freestyle_init
from logical_operators import *
from PredicatesU1D import *
from shaders import *
def preset_pattern_1(n):
return n % 10 <= 5
def preset_pattern_2(n):
return n % 16 in [0, 1, 2, 3, 4, 5, 10, 11]
class pyDashedLineShader(StrokeShader):
def __init__(self, pattern=preset_pattern_1, fg=(0, 0, 0), bg=(1, 1, 1)):
StrokeShader.__init__(self)
self.pattern = pattern
self.fg = fg
self.bg = bg
def getName(self):
return self.__class__.__name__
def shade(self, stroke):
it = stroke.strokeVerticesBegin()
if self.pattern(stroke.getId().getSecond()):
color = self.fg
else:
color = self.bg
while it.isEnd() == 0:
att = it.getObject().attribute()
att.setColor(*color)
it.increment()
if __name__ == "__main__":
upred = QuantitativeInvisibilityUP1D(0)
Operators.select(upred)
Operators.bidirectionalChain(ChainSilhouetteIterator(), NotUP1D(upred))
Operators.sequentialSplit(TrueUP0D(), 1.0) # for pyDashedLineShader
shaders_list = [
pyDashedLineShader(fg=(1, 0, 0)),
ConstantThicknessShader(2),
]
Operators.create(TrueUP1D(), shaders_list)