Class:            FunctionView

Environment:      Siren
Superclass:         Siren.DisplayListView
Category:         MusicUI-Functions
Instance variables:   models aScale vRange hRange colors normalize lineWidth
Class variables:      LineWidth

Instances of class FunctionView are views on breakpoint or sampled data functions.
They can display up to 4 model functions on a fixed-size non-scrolling field.

Instance variables:
   models    the function array
   aScale the y-scale of the view
   vRange the vertical range, normally = aScale
   hRange the horizontal range
   colors the colors for the 4 functions
   normalize < whether to normalize (to +- 1) the fnuctions

accessing

aScale
   Answer the receiver's 'aScale'.

aScale: anObject
   Set the receiver's instance variable 'aScale' to be anObject.

colors
   Answer the receiver's color array.

colors: anArrayOfSize4
   Set the receiver's color array to the argument.

displayExtent
   Answer the receiver's visual extent.

dontNormalize: aNumber
   

hRange
   Answer the receiver's 'hRange'.

hRange: aNumber
   Set the receiver's horizontal extent to aNumber.

lineWidth: aNumber
   Set the receiver's line width to the argument.

model
   Answer the fisrt element from receiver's array of models.

modelAt: anIndex
   Answer the receiver's model at the given index.

modelAt: anIndex put: aFunction
   Set the receiver's model at the given index to the given function.

models
   Answer the receiver's first model.

models: anArray
   Set the receiver's array of models to the argument.

normalize: aNumber
   

normalizeArray: arrayOfBooleans
   Set the receiver's array of normalization switches.

vRange
   Answer the receiver's 'vRange'.

vRange: aNumber
   Set the receiver's vertical extent to aNumber.

displaying

displayGridsOn: gc
   Display the gridding for the receiver on its cached form.

displayOn: aGraphicsContext
      Transcript show: 'FcnView size: ', hRange printString, ' @ ', vRange printString; cr.

displayOnImage
   Display the receiver on its cached form.

updateBetween: p1 and: p2 with: color on: gc
   Display the receiver on its cached form.

initialize-release

initialize
   Initialize the receiver's instance variables for cacheing the pixmap during display.

initializeCacheing
   Initialize the receiver's instance variables for cacheing the pixmap during display.

initializeCacheingSmall
   Initialize the receiver's instance variables for cacheing the pixmap during display.

initializeCacheSized: x by: y
   Initialize the receiver's instance variables for cacheing the pixmap during display.

setPixmap
   Reset the receiver's pixmap display cache after changing its size.

private

setModel: aModel
   Set the receiver's model to be aModel

source
   

controller access

bounds: aRectangle
   Set the receiver's bounds.

defaultControllerClass
   

MetaClass:         FunctionView class

instance creation

componentOnFunction: function color: color normalize: normal x: x y: y
   

componentOnFunctions: functionArray withColors: colorArray normalize: normArray x: x y: y
   

componentOnFunctions: functionArray withColors: colorArray x: x y: y
   

onFunction: function
   FunctionView example

onFunction: function normalize: norm
   FunctionView example

onFunction: function x: x y: y
   FunctionView onFunction: (LinearFunction from: #((0@0) (0.1@1.0)
                        (0.15@0.75) (0.75@0.5) (1@0)))
      x: 256 y: 128

onFunctions: functionArray
   FunctionView onFunctions: (Array
         with: (LinearFunction from: #((0@0) (0.15@1.0) (0.25@0.75) (0.75@0.5) (1@0)))
         with: (LinearFunction from: #((0@0.1) (0.3@0.7) (0.7@0.45) (1@0)))
         with: (LinearFunction from: #((0@0) (0.05@1) (0.2@0.35) (1@0)))
         with: (LinearFunction from: #((0@0.2) (0.6@0.3) (1@0.3))))

onFunctions: functionArray normalize: normArray
   FunctionView onFunctions: (Array
         with: (LinearFunction from: #((0@0) (0.15@1.0) (0.25@0.75) (0.75@0.5) (1@0)))
         with: (LinearFunction from: #((0@0.1) (0.3@0.7) (0.7@0.45) (1@0)))
         with: (LinearFunction from: #((0@0) (0.05@1) (0.2@0.35) (1@0)))
         with: (LinearFunction from: #((0@0.2) (0.6@0.3) (1@0.3))))

onFunctions: functionArray withColors: colorArray normalize: normArray x: x y: y
   FunctionView onFunctions: (Array
         with: (LinearFunction from: #((0@0) (0.15@1.0) (0.25@0.75) (0.75@0.5) (1@0)))
         with: (LinearFunction from: #((0@0.1) (0.3@0.7) (0.7@0.45) (1@0)))
         with: (LinearFunction from: #((0@0) (0.05@1) (0.2@0.35) (1@0)))
         with: (LinearFunction from: #((0@0.2) (0.6@0.3) (1@0.3))))
      withColors: (Array with: ColorValue blue with: ColorValue red
            with: ColorValue cyan with: ColorValue green)
      normalize: #(false false false false)
      x: 512 y: 256

onFunctions: functionArray withColors: colorArray x: x y: y
   FunctionView onFunctions: (Array
         with: (LinearFunction from: #((0@0) (0.15@1.0) (0.25@0.75) (0.75@0.5) (1@0)))
         with: (LinearFunction from: #((0@0.1) (0.3@0.7) (0.7@0.45) (1@0)))
         with: (LinearFunction from: #((0@0) (0.05@1) (0.2@0.35) (1@0)))
         with: (LinearFunction from: #((0@0.2) (0.6@0.3) (1@0.3))))
      withColors: (Array with: ColorValue blue with: ColorValue red
            with: ColorValue cyan with: ColorValue green)
      x: 512 y: 256

onFunctions: functionArray x: x y: y
   FunctionView onFunctions: (Array
         with: (LinearFunction from: #((0@0) (0.15@1.0) (0.25@0.75) (0.75@0.5) (1@0)))
         with: (LinearFunction from: #((0@0.1) (0.3@0.7) (0.7@0.45) (1@0)))
         with: (LinearFunction from: #((0@0) (0.05@1) (0.2@0.35) (1@0)))
         with: (LinearFunction from: #((0@0.2) (0.6@0.3) (1@0.3))))
      x: 512 y: 256

openOn: function
   

smallOnFunction: function
   FunctionView example

examples

example
   FunctionView example

expSegExample
   Demonstrate an ExpSeg function with different weights.

fileExample
   Read an extracted envelope as floating-point data from a file.

linSegExample
   FunctionView linSegExample

multiFunctionExample
   Open a function editor on 4 different functions.

smallFileExample
   Read an extracted envelope as floating-point data from a file.

smallMultiFunctionExample
   Open a function editor on 4 different functions.

class initialization

initialize
   Set up the defaults

constant access

defaultColors
   Answer the default color array for the 4 functions.

inset
   Answer the default display inset.

lineWidth
   Answer the default line width for fnuction plots.

lineWidth: anInteger
   Set the default line width for fnuction plots.