#! /usr/lib/veetest/veetest -r
(revision "A.00.01")
(date "Wed 01/Jan/1992")
(component 0 "Context"
 (implementation
  (component 0 "Context"
   (name "Comparative Bars")
   (description 28 4
    Generates and displays a comparative bar chart
    using two 1-D arrays of input data.  The number
    of bars is equal to the number of array elements
    (arrays must be same size), and the "length" of
    each bar is set by the corresponding element data,
    which may be a positive or negative real or int32
    number.  Each corresponding input array element
    generates a pair of different-colored adjacent
    bars. 
    
    The display is autoscaled after plotting the bars
    using the maximum and minumum array data values
    and the number of bars.
    
    The display and data labels, bar color, grid type,
    etc. can be set by clicking the Right Button over
    the display area and selecting the "Traces and
    Scales" entry from the resulting menu.  The gap
    between bars can be set using the "Spacing" box
    in the Bar Chart Detail view.
    
    It may prove useful to Secure the BarChart User
    Object after customizing, since this eliminates
    the Panel/Detail buttons and some menu selections
    that are no longer needed.  Be sure to save the
    unsecured object so you can make changes at a
    later date, however. 
    
   )
   (interface
    (sequence in)
    (sequence out)
    (input 1
     (type data)
     (name "First")
     (requires
      (shape "Array 1D")
     )
     (optional yes)
    )
    (input 2
     (type data)
     (name "Second")
     (requires
      (shape "Array 1D")
     )
     (optional yes)
    )
   )
   (implementation
    (trigMode deg)
    (locked no)
    (component 0 "YPlot"
     (name "XY Trace")
     (subType "XY_Trace")
     (interface
      (sequence in)
      (sequence out)
      (input 1
       (type data)
       (name "Trace1")
       (lock constraints)
      )
      (input 2
       (type data)
       (name "Trace2")
       (lock constraints)
       (optional yes)
      )
      (input 3
       (type control)
       (name "Auto Scale")
       (lock name constraints)
       (optional yes)
      )
      (input 4
       (type control)
       (name "Next Curve")
       (lock name constraints)
       (optional yes)
      )
     )
     (implementation
      (component clearAtPrerun 1)
      (component clearAtActivate 0)
      (component tracePin 1)
      (component tracePin 2)
      (component graphMode rectangular)
     )
     (views
      (icon
       (iconImage "display.icon")
      )
      (detail
       (origin 500 384)
       (extent 280 253)
       (displayMode scrollGraph)
       (graphType cartesian)
       (gridType frame)
       (scale 0
        (name "Y name")
        (domainName "X name")
        (pen 9)
        (show 1)
        (range 0 10 4 linear)
       )
       (domain 0 10 4 linear)
       (trace 0 onScale 0
        (name "Trace1")
        (pen 7)
        (lineType 1)
        (pointType 6)
       )
       (trace 1 onScale 0
        (name "Trace2")
        (pen 2)
        (lineType 1)
        (pointType 6)
       )
      )
      (active detail)
     )
    )
    (component 1 "Formula"
     (name "Calculate Bar 2 coords")
     (interface
      (sequence in)
      (sequence out)
      (input 1
       (type data)
       (name "A")
       (optional yes)
      )
      (input 2
       (type data)
       (name "I")
       (optional yes)
      )
      (input 3
       (type data)
       (name "z")
       (optional yes)
      )
      (output 1
       (type data)
       (name "Result")
       (lock name constraints)
      )
     )
     (implementation
      (component isLocked no)
      (component expr 1 "[coord(I+0.5,A[i]) coord(I+1-z/2,A[i])]")
     )
     (views
      (icon
       (origin 206 403)
       (extent 208 34)
      )
      (detail
       (origin 185 443)
       (extent 421 154)
      )
      (terminals on)
      (active icon)
     )
    )
    (component 2 "ForCount"
     (name "For Count")
     (interface
      (sequence in)
      (sequence out)
      (input 1
       (type data)
       (name "Count")
       (tag "Count")
       (requires
        (datatype Int32)
        (shape "Scalar")
       )
       (lock constraints)
       (optional yes)
      )
      (output 1
       (type data)
       (name "Count")
       (lock name constraints)
      )
      (buffers in
       (buffer "Count")
      )
     )
     (implementation
      (component count 10)
     )
     (views
      (icon
       (origin 325 588)
       (extent 110 64)
       (iconImage "loop.icon")
      )
      (detail
       (origin 615 253)
       (extent 170 34)
      )
      (active icon)
     )
    )
    (component 3 "FromArray"
     (interface
      (sequence in)
      (sequence out)
      (input 1
       (type data)
       (name "Ary")
       (tag "Ary")
      )
      (output 1
       (type data)
       (name "SubAry")
       (tag "Result")
       (lock constraints)
      )
      (output 2
       (type data)
       (name "Type")
       (tag "Type")
       (lock constraints)
      )
      (output 3
       (type data)
       (name "NumDims")
       (tag "NumDims")
       (lock constraints)
      )
      (output 4
       (type data)
       (name "DimSizes")
       (tag "DimSizes")
       (lock constraints)
      )
      (output 5
       (type data)
       (name "TotSize")
       (tag "TotSize")
       (lock constraints)
      )
     )
     (implementation
      (component isLocked no)
      (component expr 1 "Ary")
     )
     (views
      (icon
       (origin 165 568)
       (extent 110 64)
       (iconImage "unbuild.icon")
      )
      (detail
       (origin 252 110)
       (extent 147 160)
      )
      (terminals on)
      (active icon)
     )
    )
    (component 4 "Constant"
     (name "Spacing")
     (subType "Real")
     (interface
      (sequence in)
      (sequence out)
      (output 1
       (type data)
       (name "Real")
       (lock name constraints)
      )
     )
     (implementation
      (component value Real
       (name "Spacing")
       (datum 0.45)
      )
      (component autoTrigger off)
      (component initializeAtPrerun off)
      (component initializeAtActivate off)
      (component initValue Real
       (datum 0)
      )
     )
     (views
      (icon
       (origin 241 458)
       (extent 78 25)
      )
      (detail
       (origin 237 484)
       (extent 147 32)
       (showFormat real)
      )
      (active detail)
     )
    )
    (component 5 "Formula"
     (name "Calculate Bar 1 coords")
     (interface
      (sequence in)
      (sequence out)
      (input 1
       (type data)
       (name "A")
       (optional yes)
      )
      (input 2
       (type data)
       (name "I")
       (optional yes)
      )
      (input 3
       (type data)
       (name "z")
       (optional yes)
      )
      (output 1
       (type data)
       (name "Result")
       (lock name constraints)
      )
     )
     (implementation
      (component isLocked no)
      (component expr 1 "[coord(I+z/2,A[i]) coord(I+0.5,A[i])]")
     )
     (views
      (icon
       (origin 206 353)
       (extent 208 34)
      )
      (detail
       (origin 154 393)
       (extent 403 154)
      )
      (terminals on)
      (active icon)
     )
    )
    (configuration
     (connect D5:1 D0:1)
     (connect D1:1 D0:2)
     (connect D2:0 D0:3)
     (connect D0:0 D0:4)
     (connect I2:1 D1:1)
     (connect D2:1 D1:2)
     (connect D4:1 D1:3)
     (connect D3:5 D2:1)
     (connect I1:1 D3:1)
     (connect I1:1 D5:1)
     (connect D2:1 D5:2)
     (connect D4:1 D5:3)
    )
   )
   (views
    (icon
     (extent 154 0)
    )
    (panel
     (origin 251 380)
     (extent 419 280)
     (widget 0 detail
      (title off)
      (origin 255 384)
      (extent 414 274)
      (displayMode annotGraph)
      (graphType cartesian)
      (gridType frame)
      (scale 0
       (name "Y name")
       (domainName "X name")
       (pen 1)
       (show 1)
       (range 0 10 4 linear)
      )
      (domain 0 10 4 linear)
      (trace 0 onScale 0
       (name "Trace1")
       (pen 5)
       (lineType 1)
       (pointType 6)
      )
      (trace 1 onScale 0
       (name "Trace2")
       (pen 2)
       (lineType 1)
       (pointType 6)
      )
     )
    )
    (detail
     (origin 111 345)
     (extent 678 330)
     (configuration
      (connect D5:1 D0:1
       (Point 416 370)
       (Point 440 370)
       (Point 440 420)
       (Point 497 420)
      )
      (connect D1:1 D0:2
       (Point 416 420)
       (Point 430 420)
       (Point 430 480)
       (Point 497 480)
      )
      (connect D2:0 D0:3
       (Point 380 654)
       (Point 380 660)
       (Point 450 660)
       (Point 450 540)
       (Point 497 540)
      )
      (connect D0:0 D0:4
       (Point 640 639)
       (Point 640 660)
       (Point 480 660)
       (Point 480 600)
       (Point 497 600)
      )
      (connect I2:1 D1:1
       (Point 113 610)
       (Point 140 610)
       (Point 140 410)
       (Point 203 410)
      )
      (connect D2:1 D1:2
       (Point 437 620)
       (Point 460 620)
       (Point 460 670)
       (Point 370 670)
       (Point 370 660)
       (Point 150 660)
       (Point 150 420)
       (Point 203 420)
      )
      (connect D4:1 D1:3
       (Point 386 500)
       (Point 410 500)
       (Point 410 540)
       (Point 190 540)
       (Point 190 430)
       (Point 203 430)
      )
      (connect D3:5 D2:1
       (Point 277 620)
       (Point 322 620)
      )
      (connect I1:1 D3:1
       (Point 113 430)
       (Point 130 430)
       (Point 130 600)
       (Point 162 600)
      )
      (connect I1:1 D5:1
       (Point 113 430)
       (Point 130 430)
       (Point 130 360)
       (Point 203 360)
      )
      (connect D2:1 D5:2
       (Point 437 620)
       (Point 460 620)
       (Point 460 670)
       (Point 370 670)
       (Point 370 660)
       (Point 150 660)
       (Point 150 420)
       (Point 170 420)
       (Point 170 370)
       (Point 203 370)
      )
      (connect D4:1 D5:3
       (Point 386 500)
       (Point 410 500)
       (Point 410 540)
       (Point 190 540)
       (Point 190 380)
       (Point 203 380)
      )
     )
    )
    (active panel)
    (active panel)
   )
  )
  (configuration
  )
 )
 (views
  (detail
   (configuration
   )
  )
 )
)
