# SPDX-License-Identifier: GPL-2.0-or-later # Filename : external_contour_smooth.py # Author : Stephane Grabli # Date : 04/08/2005 # Purpose : Draws a smooth external contour from freestyle.chainingiterators import ChainPredicateIterator from freestyle.predicates import ( AndUP1D, ExternalContourUP1D, NotUP1D, QuantitativeInvisibilityUP1D, TrueBP1D, TrueUP1D, ) from freestyle.shaders import ( IncreasingColorShader, IncreasingThicknessShader, SamplingShader, SmoothingShader, ) from freestyle.types import Operators upred = AndUP1D(QuantitativeInvisibilityUP1D(0), ExternalContourUP1D()) Operators.select(upred) bpred = TrueBP1D() Operators.bidirectional_chain(ChainPredicateIterator(upred, bpred), NotUP1D(upred)) shaders_list = [ SamplingShader(2), IncreasingThicknessShader(4, 20), IncreasingColorShader(1.0, 0.0, 0.5, 1, 0.5, 1, 0.3, 1), SmoothingShader(100, 0.05, 0, 0.2, 0, 0, 0, 1), ] Operators.create(TrueUP1D(), shaders_list)