\documentclass{article} \usepackage{open-axiom} \begin{document} \title{\$SPAD/src/algebra viewpack.spad} \author{James Wen} \maketitle \begin{abstract} \end{abstract} \eject \tableofcontents \eject \section{package VIEW ViewportPackage} <>= )abbrev package VIEW ViewportPackage ++ Author: Jim Wen ++ Date Created: 30 April 1989 ++ Date Last Updated: 15 June 1990 ++ Basic Operations: graphCurves, drawCurves, coerce ++ Related Constructors: ++ Also See: ++ AMS Classifications: ++ Keywords: ++ References: ++ Description: ViewportPackage provides functions for creating GraphImages ++ and TwoDimensionalViewports from lists of lists of points. ViewportPackage():Exports == Implementation where DROP ==> DrawOption GRIMAGE ==> GraphImage L ==> List P ==> Point DoubleFloat PAL ==> Palette PI ==> PositiveInteger VIEW2D ==> TwoDimensionalViewport Exports ==> with graphCurves : (L L P,PAL,PAL,PI,L DROP) -> GRIMAGE ++ graphCurves([[p0],[p1],...,[pn]],ptColor,lineColor,ptSize,[options]) ++ creates a \spadtype{GraphImage} from the list of lists of points, p0 ++ throught pn, using the options specified in the list \spad{options}. ++ The graph point color is specified by \spad{ptColor}, the graph line ++ color is specified by \spad{lineColor}, and the size of the points is ++ specified by \spad{ptSize}. graphCurves : L L P -> GRIMAGE ++ graphCurves([[p0],[p1],...,[pn]]) creates a \spadtype{GraphImage} from ++ the list of lists of points indicated by p0 through pn. graphCurves : (L L P,L DROP) -> GRIMAGE ++ graphCurves([[p0],[p1],...,[pn]],[options]) creates a ++ \spadtype{GraphImage} from the list of lists of points, p0 throught pn, ++ using the options specified in the list \spad{options}. drawCurves : (L L P,PAL,PAL,PI,L DROP) -> VIEW2D ++ drawCurves([[p0],[p1],...,[pn]],ptColor,lineColor,ptSize,[options]) ++ creates a \spadtype{TwoDimensionalViewport} from the list of lists of ++ points, p0 throught pn, using the options specified in the list ++ \spad{options}. The point color is specified by \spad{ptColor}, the ++ line color is specified by \spad{lineColor}, and the point size is ++ specified by \spad{ptSize}. drawCurves : (L L P,L DROP) -> VIEW2D ++ drawCurves([[p0],[p1],...,[pn]],[options]) creates a ++ \spadtype{TwoDimensionalViewport} from the list of lists of points, ++ p0 throught pn, using the options specified in the list \spad{options}; coerce : GRIMAGE -> VIEW2D ++ coerce(gi) converts the indicated \spadtype{GraphImage}, gi, into the ++ \spadtype{TwoDimensionalViewport} form. Implementation ==> add import ViewDefaultsPackage import DrawOptionFunctions0 --% Functions that return GraphImages graphCurves(listOfListsOfPoints) == graphCurves(listOfListsOfPoints, pointColorDefault(),_ lineColorDefault(), pointSizeDefault(),nil()) graphCurves(listOfListsOfPoints,optionsList) == graphCurves(listOfListsOfPoints, pointColorDefault(),_ lineColorDefault(), pointSizeDefault(),optionsList) graphCurves(listOfListsOfPoints,ptColor,lineColor,ptSize,optionsList) == len := #listOfListsOfPoints listOfPointColors : L PAL := [ptColor for i in 1..len] listOfLineColors : L PAL := [lineColor for i in 1..len] listOfPointSizes : L PI := [ptSize for i in 1..len] makeGraphImage(listOfListsOfPoints,listOfPointColors, _ listOfLineColors,listOfPointSizes,optionsList) --% Functions that return Two Dimensional Viewports drawCurves(listOfListsOfPoints,optionsList) == drawCurves(listOfListsOfPoints,pointColorDefault(),_ lineColorDefault(),pointSizeDefault(),optionsList) drawCurves(ptLists:L L P,ptColor:PAL,lColor:PAL,ptSize:PI,optList:L DROP) == v := viewport2D() options(v,optList) g := graphCurves(ptLists,ptColor,lColor,ptSize,optList) putGraph(v,g,1) makeViewport2D v --% Coercions coerce(graf:GRIMAGE):VIEW2D == if (key graf = 0) then makeGraphImage graf v := viewport2D() title(v,"VIEW2D") -- dimensions(v,viewPosDefault().1,viewPosDefault().2,viewSizeDefault().1,viewSizeDefault().2) putGraph(v,graf,1::PI) makeViewport2D v @ \section{License} <>= --Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd. --All rights reserved. -- --Redistribution and use in source and binary forms, with or without --modification, are permitted provided that the following conditions are --met: -- -- - Redistributions of source code must retain the above copyright -- notice, this list of conditions and the following disclaimer. -- -- - Redistributions in binary form must reproduce the above copyright -- notice, this list of conditions and the following disclaimer in -- the documentation and/or other materials provided with the -- distribution. -- -- - Neither the name of The Numerical ALgorithms Group Ltd. nor the -- names of its contributors may be used to endorse or promote products -- derived from this software without specific prior written permission. -- --THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS --IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED --TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A --PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER --OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, --EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, --PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR --PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF --LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING --NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS --SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. @ <<*>>= <> <> @ \eject \begin{thebibliography}{99} \bibitem{1} nothing \end{thebibliography} \end{document}