aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/iviews.as.pamphlet
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-09-15 18:48:07 +0000
committerdos-reis <gdr@axiomatics.org>2011-09-15 18:48:07 +0000
commit12c856f9901ef3d6d82fb99855ecdf3e0b91484b (patch)
tree96fc5a4bf51d9777f8d46ac1e4023c0d8e545f8a /src/algebra/iviews.as.pamphlet
parent9025c74466dcd1c38dde5e4c63934ff0b2e4f18d (diff)
downloadopen-axiom-12c856f9901ef3d6d82fb99855ecdf3e0b91484b.tar.gz
* algebra/axtimer.as.pamphlet: Remove.
* algebra/ffrac.as.pamphlet: Likewise. * algebra/herm.as.pamphlet: Likewise. * algebra/interval.as.pamphlet: Likewise. * algebra/invnode.as.pamphlet: Likewise. * algebra/invrender.as.pamphlet: Likewise. * algebra/invtypes.as.pamphlet: Likewise. * algebra/invutils.as.pamphlet: Likewise. * algebra/iviews.as.pamphlet: Likewise. * algebra/ndftip.as.pamphlet: Likewise. * algebra/nepip.as.pamphlet: Likewise. * algebra/noptip.as.pamphlet: Likewise. * algebra/nqip.as.pamphlet: Likewise. * algebra/nrc.as.pamphlet: Likewise. * algebra/nsfip.as.pamphlet: Likewise.
Diffstat (limited to 'src/algebra/iviews.as.pamphlet')
-rw-r--r--src/algebra/iviews.as.pamphlet330
1 files changed, 0 insertions, 330 deletions
diff --git a/src/algebra/iviews.as.pamphlet b/src/algebra/iviews.as.pamphlet
deleted file mode 100644
index 2937713e..00000000
--- a/src/algebra/iviews.as.pamphlet
+++ /dev/null
@@ -1,330 +0,0 @@
-\documentclass{article}
-\usepackage{open-axiom}
-\begin{document}
-\title{\$SPAD/src/algebra iviews.as}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{InventorDataSink}
-<<InventorDataSink>>=
-#include "axiom"
-#assert Real
-
-NNI ==> NonNegativeInteger;
-SI ==> SingleInteger;
-DF ==> DoubleFloat;
-POINT ==> Point DF;
-SPACE3 ==> ThreeSpace DoubleFloat;
-
-DefaultSize ==> 65530;
-
-Value ==> Symbol;
-
-InventorDataSink: with {
- CoercibleTo OutputForm;
- new: () -> %;
- dispose!: % -> ();
-
- put!: (%, SI) -> ();
- put!: (%, DF) -> ();
- put!: (%, String) -> ();
-
- vstart!: (%, 'int,float', SI) -> ();
- vput!: (%, SI) -> ();
- vput!: (%, DF) -> ();
-
- lstart!: % -> ();
- lend!: % -> ();
- export from 'int,float'
-} == add {
-#if Real
- -- No rep (we cheat!)
- import from SI;
- valOf(x) ==> x pretend Value;
- default sink: %;
- import {
- LISP_:_:GR_-GET_-MEM_-AREA: SI -> %;
- LISP_:_:GR_-KILL_-MEM_-AREA: % -> ();
- LISP_:_:GR_-PUT_-ITEM: (%, Value) -> ();
- LISP_:_:GR_-PUT_-LSTART: % -> ();
- LISP_:_:GR_-PUT_-LEND: % -> ();
- LISP_:_:GR_-INIT_-VECTOR: (%, Value, Value) -> %;
- LISP_:_:GR_-ADD_-TO_-VECTOR: (%, Value) -> %;
- } from Foreign Lisp;
-
- new(): % == LISP_:_:GR_-GET_-MEM_-AREA(DefaultSize);
- dispose!(sink): () == LISP_:_:GR_-KILL_-MEM_-AREA(sink);
-
- put!(sink, si: SI): () == LISP_:_:GR_-PUT_-ITEM(sink, valOf(si));
- put!(sink, st: String): () == LISP_:_:GR_-PUT_-ITEM(sink, valOf(st));
- put!(sink, fl: DF): () == LISP_:_:GR_-PUT_-ITEM(sink, valOf(fl));
-
- vstart!(sink, type: 'int,float', sz: SI): () == {
- local sym: Symbol;
- if type = int then
- sym := coerce("integer");
- else
- sym := coerce("float");
- LISP_:_:GR_-INIT_-VECTOR(sink, valOf(sym), valOf(sz));
- }
-
- vput!(sink, si: SI): () ==
- LISP_:_:GR_-ADD_-TO_-VECTOR(sink, valOf(si));
- vput!(sink, df: DF): () ==
- LISP_:_:GR_-ADD_-TO_-VECTOR(sink, valOf(df));
-
- lstart!(sink): () == LISP_:_:GR_-PUT_-LSTART sink;
- lend!(sink): () == LISP_:_:GR_-PUT_-LEND sink;
-
- coerce(sink): OutputForm == {
- [outputForm "aSink"]
- }
-#else
- Rep ==> Record(count: NonNegativeInteger);
- import from Rep, NNI;
- default sink: %;
- coerce(sink): OutputForm == {
- import from List OutputForm;
- bracket [outputForm "Sink: ",
- outputForm coerce rep(sink).count];
- }
-
- local addn!(sink, n: NNI): () ==
- rep(sink).count := rep(sink).count + n;
- new(): % == per [0];
- dispose!(sink): () == dispose! rep sink;
-
- put!(sink, n: SI): () == addn!(sink, 1 + 4);
- put!(sink, f: DF): () == addn!(sink, 1 + 4);
- put!(sink, s: String): () == {
- addn!(sink, #s + 1 + 1);
- }
-
- vstart!(sink, type: 'int, float', n: SI): () == {
- addn!(sink, 1 + n::NNI*4);
- }
-
- vput!(sink, n: SI): () == {};
- vput!(sink, n: DF): () == {};
-
- lstart!(sink): () == addn!(sink, 1);
- lend!(sink): () == addn!(sink, 1);
-
-#endif
-}
-
-@
-\section{InventorViewPort}
-<<InventorViewPort>>=
-InventorViewPort: with {
- new: () -> %;
- new: ThreeSpace DoubleFloat -> %;
- addData!: (%, InventorDataSink) -> %;
- addData!: (%, ThreeSpace DoubleFloat) -> %;
-} == add {
-#if Real
- import {
- LISP_:_:GR_-MAKE_-VIEW: (SI) -> %;
- LISP_:_:GR_-SET_-DATA: (%, InventorDataSink) -> ();
- } from Foreign Lisp;
- import from SingleInteger;
-
- new(): % == LISP_:_:GR_-MAKE_-VIEW(0);
-
- new(space: ThreeSpace DoubleFloat): % == {
- import from InventorDataSink;
- import from InventorRenderPackage;
- view: % := new();
- addData!(view, space);
- view
- }
-
- addData!(view: %, data: InventorDataSink): % == {
- LISP_:_:GR_-SET_-DATA(view, data);
- view;
- }
-
- addData!(view: %, space: ThreeSpace DoubleFloat): % == {
- import from InventorRenderPackage;
- sink: InventorDataSink := new();
- render(sink, space, cartesian$CoordinateSystems(DoubleFloat));
- addData!(view, sink);
- view
- }
-
-#else
- Rep ==> SingleInteger;
- import from Rep;
- new(): % == per 1;
- new(x: ThreeSpace DoubleFloat): % == per 2;
- addData!(view: %, data: InventorDataSink): % == view;
-#endif
-
-}
-
-@
-\section{InventorRenderPackage}
-<<InventorRenderPackage>>=
-InventorRenderPackage: with {
- render: (InventorDataSink, ThreeSpace DoubleFloat, POINT->POINT) -> ();
-} == add {
- default sink: InventorDataSink;
- default space: ThreeSpace DoubleFloat;
- default transform: POINT->POINT;
- import from SI;
-
- local put!(sink, dims: UniversalSegment SI,
- lp: List Point DoubleFloat,
- f: Point DoubleFloat -> Point DoubleFloat): () == {
- import from NNI, Integer;
- i : SI := 0;
- for x in dims repeat i:= i+1;
- vstart!(sink, float, i*(coerce #lp));
- for p in lp repeat {
- p1 := f(p);
- for idx in dims repeat
- vput!(sink, p1.(idx::Integer));
- }
- }
-
- local put!(sink, lp: List SI): () == {
- import from NNI;
- vstart!(sink, int, coerce #lp);
- for p in lp repeat {
- vput!(sink, p);
- }
- }
-
- local putPoints!(sink, transform,
- lpts: List POINT, indexList: List NNI): () == {
- import from Integer;
- if not sorted? indexList
- then {
- -- not nice!
- lst: List POINT := [];
- for idx in indexList repeat
- lst := cons(lpts.(coerce idx), lst);
- lpts := reverse! lst;
- }
- put!(sink, 1..3, lpts, transform);
- if (# first lpts) = 4
- then {
- put!(sink, "Colours");
- put!(sink, 4..4, lpts, transform);
- }
- }
- render(sink, space, transform): () == {
- default ss: SPACE3;
- default i: NNI;
- import from List POINT;
- import from List List List NNI;
- import from List List NNI;
- import from List SPACE3;
- import from SingleInteger;
- put!(sink, "ThreeDScene");
- -- Get the point data
- check(space);
- indices := lllip(space);
- lpts := lp(space);
- indexList := concat concat indices;
- put!(sink, "Points");
- putPoints!(sink, transform, lpts, indexList);
- offset : SI := 0;
- lstart!(sink);
- for ss in components(space) for index in indices repeat {
- closedCurve? ss => {
- put!(sink, "closedCurve");
- n: SI := coerce #(first index);
- put!(sink, offset);
- put!(sink, n);
- offset := offset + n;
- }
- curve? ss=> {
- put!(sink, "curve");
- n: SI := coerce #(first index);
- put!(sink, offset);
- put!(sink, n);
- offset := offset + n;
- }
- polygon? ss => {
- local vertices: SI;
- put!(sink, "polygon");
- vertices := coerce(#(first index)
- + #(first rest index));
- put!(sink, offset);
- put!(sink, vertices);
- offset := offset+vertices;
- }
- mesh? ss=> {
- local xStep, yStep: SI;
- put!(sink, "mesh");
- xStep := coerce #index;
- yStep := coerce #(first index);
- put!(sink, offset);
- put!(sink, xStep);
- put!(sink, yStep);
- offset := offset+xStep*yStep;
- }
- point? ss => {
- put!(sink, "points");
- put!(sink, offset);
- put!(sink, 1);
- offset := offset+1;
- }
- error "Unrecognised SubSpace component";
- }
- lend!(sink);
- }
-
-}
-
-@
-\section{License}
-<<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.
-@
-<<*>>=
-<<license>>
-
-<<InventorDataSink>>
-<<InventorViewPort>>
-<<InventorRenderPackage>>
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}