final case class PenImage(src: D = 1.0, alpha: D = 1.0, dst: D = 0.0, width: I, height: I, x: D = 0, y: D = 0, next: B = false, rule: I = PenImage.SrcOver, op: I = BinaryOp.Plus.id, wrap: I = 0, rollOff: D = 0.86, kaiserBeta: D = 7.5, zeroCrossings: I = 0) extends SingleOut[Double] with Product with Serializable
A UGen that writes the pixels of an image using an x
and y
input signal.
It uses either a sinc-based band-limited resampling algorithm, or
bicubic interpolation, depending on the zeroCrossings
parameter.
All window defining parameters (width
, height
)
are polled once per matrix. All writing and filter parameters are polled one per
output pixel.
- src
the source signal's amplitude or "pen color"
- alpha
the alpha component of the source signal (0.0 transparent to 1.0 opaque).
- dst
the "background" image to draw on. A
DC(0.0)
can be used, for example, to have a "black" background.- width
the width (number of columns) of the input and output matrix
- height
the height (number of rows) of the input and output matrix
- x
horizontal position of the dynamic pen signal
- y
vertical position of the dynamic pen signal
- next
a trigger that causes the UGen to emit the current image and begin a new one. An image of size
width * height
will be output, and new background data will be read fromin
.- rule
quasi-Porter-Duff rule id for composition between background (
in
) and pen foreground. It is assumed thatAr = Ad = 1
, and instead of addition we use a custom binary operationop
. Where the constrain leads to otherwise identical rules, we flip the operand order (e.g.SrcOver
versusSrcAtop
).- op
BinaryOp.Op
identifier for the operand in the application of the Porter-Duff composition (+
in the standard definition).- wrap
if non-zero, wraps coordinates around the input images boundaries. TODO: currently
wrap = 0
is broken if using sinc interpolation!- rollOff
the FIR anti-aliasing roll-off width. Between zero and one.
- kaiserBeta
the FIR windowing function's parameter
- zeroCrossings
the number of zero-crossings in the truncated and windowed sinc FIR. If zero (default), algorithm uses bicubic interpolation instead.
- See also
- Alphabetic
- By Inheritance
- PenImage
- Serializable
- SingleOut
- SomeOut
- Lazy
- GE
- UGenSource
- Expander
- Lazy
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new PenImage(src: D = 1.0, alpha: D = 1.0, dst: D = 0.0, width: I, height: I, x: D = 0, y: D = 0, next: B = false, rule: I = PenImage.SrcOver, op: I = BinaryOp.Plus.id, wrap: I = 0, rollOff: D = 0.86, kaiserBeta: D = 7.5, zeroCrossings: I = 0)
- src
the source signal's amplitude or "pen color"
- alpha
the alpha component of the source signal (0.0 transparent to 1.0 opaque).
- dst
the "background" image to draw on. A
DC(0.0)
can be used, for example, to have a "black" background.- width
the width (number of columns) of the input and output matrix
- height
the height (number of rows) of the input and output matrix
- x
horizontal position of the dynamic pen signal
- y
vertical position of the dynamic pen signal
- next
a trigger that causes the UGen to emit the current image and begin a new one. An image of size
width * height
will be output, and new background data will be read fromin
.- rule
quasi-Porter-Duff rule id for composition between background (
in
) and pen foreground. It is assumed thatAr = Ad = 1
, and instead of addition we use a custom binary operationop
. Where the constrain leads to otherwise identical rules, we flip the operand order (e.g.SrcOver
versusSrcAtop
).- op
BinaryOp.Op
identifier for the operand in the application of the Porter-Duff composition (+
in the standard definition).- wrap
if non-zero, wraps coordinates around the input images boundaries. TODO: currently
wrap = 0
is broken if using sinc interpolation!- rollOff
the FIR anti-aliasing roll-off width. Between zero and one.
- kaiserBeta
the FIR windowing function's parameter
- zeroCrossings
the number of zero-crossings in the truncated and windowed sinc FIR. If zero (default), algorithm uses bicubic interpolation instead.
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val alpha: D
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- val dst: D
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- val height: I
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val kaiserBeta: D
- def makeUGen(args: IndexedSeq[UGenIn[_]])(implicit b: Builder): UGenInLike[Double]
- Attributes
- protected
- Definition Classes
- PenImage → UGenSource
- def makeUGens(implicit b: Builder): UGenInLike[Double]
Abstract method which must be implemented by creating the actual
UGen
s during expansion. - final def name: String
- Definition Classes
- UGenSource
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- val next: B
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- val op: I
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- val rollOff: D
- val rule: I
- val src: D
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- val width: I
- val wrap: I
- val x: D
- val y: D
- val zeroCrossings: I
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated