MODULE ObLib3DBundle;
Generated by m3bundle; see its manpage.
IMPORT Bundle, BundleRep, Text;
IMPORT Thread, Wr, TextWr;
TYPE T = Bundle.T OBJECT OVERRIDES
get := LookUp;
getNames := GetNames;
END;
TYPE Texts = REF ARRAY OF TEXT;
VAR
bundle: T := NIL;
names : Texts := NIL;
PROCEDURE Get(): Bundle.T =
BEGIN
IF (bundle = NIL) THEN bundle := NEW (T) END;
RETURN bundle;
END Get;
PROCEDURE GetNames (<*UNUSED*> self: T): Texts =
BEGIN
IF names = NIL THEN
names := NEW (Texts, NUMBER (Names));
names^ := Names;
END;
RETURN names;
END GetNames;
PROCEDURE LookUp (<*UNUSED*> self: T; element: TEXT): TEXT =
BEGIN
FOR i := 0 TO LAST (Names)-1 DO
IF Text.Equal (Names[i], element) THEN
IF Elements[i] = NIL THEN Elements[i] := GetElt (i) END;
RETURN Elements[i];
END;
END;
RETURN NIL;
END LookUp;
CONST Names = ARRAY [0..86] OF TEXT {
"ConeGO.obl",
"SpotLightGO.obl",
"ShadingProp.obl",
"QuadMeshGO.hlp",
"CameraGO.obl",
"RealProp.obl",
"PolygonGO.hlp",
"Win_OpenGL_Base.hlp",
"AmbientLightGO.hlp",
"LineTypeProp.hlp",
"GO.hlp",
"AnimHandle.hlp",
"SphereGO.obl",
"Matrix4.hlp",
"PointLightGO.obl",
"RasterModeProp.obl",
"TorusGO.hlp",
"RootGO.obl",
"SurfaceGO.hlp",
"BooleanProp.obl",
"X_OpenGL_Base.hlp",
"LightGO.hlp",
"TransformProp.hlp",
"KeyCB.hlp",
"ProxiedObj.hlp",
"BoxGO.obl",
"VectorLightGO.obl",
"CylinderGO.hlp",
"MarkerTypeProp.obl",
"GroupGO.obl",
"Prop.obl",
"LineGO.hlp",
"X_PEX_Base.hlp",
"OrthoCameraGO.hlp",
"ColorProp.hlp",
"PositionCB.hlp",
"Anim3D.hlp",
"QuadMeshGO.obl",
"PolygonGO.obl",
"Win_OpenGL_Base.obl",
"AmbientLightGO.obl",
"LineTypeProp.obl",
"DiskGO.hlp",
"GO.obl",
"AnimHandle.obl",
"MarkerGO.hlp",
"GraphicsBase.hlp",
"PerspCameraGO.hlp",
"PointProp.hlp",
"MouseCB.hlp",
"TorusGO.obl",
"SurfaceGO.obl",
"X_OpenGL_Base.obl",
"LightGO.obl",
"TransformProp.obl",
"ConeGO.hlp",
"KeyCB.obl",
"SpotLightGO.hlp",
"ProxiedObj.obl",
"ShadingProp.hlp",
"CameraGO.hlp",
"RealProp.hlp",
"Time.hlp",
"CylinderGO.obl",
"LineGO.obl",
"X_PEX_Base.obl",
"OrthoCameraGO.obl",
"SphereGO.hlp",
"ColorProp.obl",
"PositionCB.obl",
"PointLightGO.hlp",
"RasterModeProp.hlp",
"RootGO.hlp",
"BooleanProp.hlp",
"DiskGO.obl",
"MarkerGO.obl",
"GraphicsBase.obl",
"PerspCameraGO.obl",
"PointProp.obl",
"BoxGO.hlp",
"MouseCB.obl",
"Point3.hlp",
"VectorLightGO.hlp",
"MarkerTypeProp.hlp",
"GroupGO.hlp",
"Prop.hlp",
NIL
};
VAR Elements := ARRAY [0..86] OF TEXT {
E0,
E1,
E2,
E3,
E4,
E5,
E6,
E7,
E8,
E9,
E10,
E11,
E12,
E13,
E14,
E15,
E16,
E17,
E18,
E19,
E20,
E21,
NIL (* E22 .. E22_0 *),
E23,
E24,
E25,
E26,
E27,
E28,
E29,
E30,
E31,
E32,
E33,
E34,
E35,
E36,
E37,
E38,
E39,
E40,
E41,
E42,
E43,
E44,
E45,
E46,
E47,
E48,
E49,
E50,
E51,
E52,
E53,
NIL (* E54 .. E54_0 *),
E55,
E56,
E57,
E58,
E59,
E60,
E61,
E62,
E63,
E64,
E65,
E66,
E67,
E68,
E69,
E70,
E71,
E72,
E73,
E74,
E75,
E76,
E77,
E78,
E79,
E80,
E81,
E82,
NIL (* E83 .. E83_0 *),
E84,
E85,
NIL
};
PROCEDURE GetElt (n: INTEGER): TEXT =
<*FATAL Thread.Alerted, Wr.Failure *>
VAR wr := TextWr.New ();
BEGIN
CASE n OF
| 22 =>
Wr.PutText (wr, E22);
Wr.PutText (wr, E22_0);
| 54 =>
Wr.PutText (wr, E54);
Wr.PutText (wr, E54_0);
| 83 =>
Wr.PutText (wr, E83);
Wr.PutText (wr, E83_0);
ELSE (*skip*)
END;
RETURN TextWr.ToText (wr);
END GetElt;
CONST E0 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:46:50 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 17:28:16 PDT 1994 by najork *)\n\n\nmodule "
& "ConeGOWrap for ConeGO;\n\nlet TProto = clone (SurfaceGO_TProto, {});\n\n"
& "end module;\n";
CONST E1 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:45:48 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 09:44:50 PDT 1994 by najork *)\n\n\nmodule "
& "SpotLightGOWrap for SpotLightGO;\n\nlet TProto = clone (LightGO_TProto,"
& " {});\n\nend module;\n";
CONST E2 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Fri Sep 23 "
& "15:45:29 PDT 1994 by najork *)\n(* Created on F"
& "ri May 27 20:32:05 PDT 1994 by najork *)\n\n\nmodule "
& "ShadingPropWrap for ShadingProp;\n\n\nlet NameProto = clone (Prop_NameP"
& "roto, {\n bind => meth (self, pv) ShadingProp_NameBind (self, pv) end\n"
& "});\n\n\nlet ValProto = clone (Prop_ValProto, {\n getBeh => meth (self"
& ") ShadingProp_ValGetBeh (self) end,\n setBeh => meth (self, beh) Shadi"
& "ngProp_ValSetBeh (self, beh) end,\n get => meth (self) ShadingProp_"
& "ValGet (self) end,\n value => meth (self, time) ShadingProp_ValValue "
& "(self, time) end\n});\n\n\nlet BehProto = clone (Prop_BehProto, {});\n "
& " \n\nlet ConstBehProto = clone (BehProto, {\n set => meth (self, k) Sh"
& "adingProp_ConstBehSet (self, k) end\n});\n\n\nlet SyncBehProto = clone "
& "(BehProto, {\n addRequest => \n meth (self, req) \n ShadingPro"
& "p_SyncBehAddRequest (self, req) \n end,\n change =>\n meth (self"
& ", k, start) \n ShadingProp_SyncBehChange (self, k, start) \n en"
& "d\n});\n\n\nlet AsyncBehProto = clone (BehProto, {\n compute => ok,\n}"
& ");\n\n\nlet DepBehProto = clone (BehProto, {\n compute => ok,\n});\n\n"
& "\nlet RequestProto = clone (Prop_RequestProto, {\n value => ok,\n});\n"
& "\n\nend module;\n";
CONST E3 =
" QuadMeshGO_BadSize: Exception "
& " \n QuadMeshGO_ColorsUndefined: Exception "
& " \n QuadMeshGO_New(pts: [[Point3]]): QuadMeshGO "
& " \n QuadMeshGO_NewWithShapeHint(pts: [[Point3]], s: Shape): QuadM"
& "eshGO \nWHERE "
& " \n QuadMeshGO <: SurfaceGO & "
& " \n { addFacetColors: ([[Col]]) => Ok ! QuadMeshGO_Ba"
& "dSize,\n setColorOfFacet: (i j: Int, c: Col) => Ok ! QuadMeshGO_C"
& "olorsUndefined }\n Shape = Text (one of \"Unknown\", \"Convex\", \"No"
& "nConvex\", \"Complex\") \n Col = Color + Text\n";
CONST E4 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:44:39 PDT 1994 by najork *)\n(* Created on T"
& "ue May 31 09:40:28 PDT 1994 by najork *)\n\n\nmodule "
& "CameraGOWrap for CameraGO;\n\nlet TProto = clone (GO_TProto, {});\n\nen"
& "d module;\n";
CONST E5 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Thu Jul 21 "
& "13:44:26 PDT 1994 by najork *)\n(* Created on F"
& "ri May 27 20:32:05 PDT 1994 by najork *)\n\n\nmodule "
& "RealPropWrap for RealProp;\n\n\nlet NameProto = clone (Prop_NameProto, "
& "{\n bind => meth (self, pv) RealProp_NameBind (self, pv) end\n});\n\n\n"
& "let ValProto = clone (Prop_ValProto, {\n getBeh => meth (self) RealPro"
& "p_ValGetBeh (self) end,\n setBeh => meth (self, beh) RealProp_ValSetBe"
& "h (self, beh) end,\n get => meth (self) RealProp_ValGet (self) end,"
& "\n value => meth (self, time) RealProp_ValValue (self, time) end\n});"
& "\n\n\nlet BehProto = clone (Prop_BehProto, {});\n \n\nlet ConstBehProt"
& "o = clone (BehProto, {\n set => meth (self, r) RealProp_ConstBehSet (s"
& "elf, r) end\n});\n\n\nlet SyncBehProto = clone (BehProto, {\n addReque"
& "st => \n meth (self, req) \n RealProp_SyncBehAddRequest (self, "
& "req) \n end,\n linChangeTo =>\n meth (self, r, start, dur) \n "
& " RealProp_SyncBehLinChangeTo (self, r, start, dur) \n end,\n linC"
& "hangeBy =>\n meth (self, r, start, dur)\n RealProp_SyncBehLinCh"
& "angeBy (self, r, start, dur) \n end\n});\n\n\nlet AsyncBehProto = cl"
& "one (BehProto, {\n compute => ok,\n});\n\n\nlet DepBehProto = clone (B"
& "ehProto, {\n compute => ok,\n});\n\n\nlet RequestProto = clone (Prop_R"
& "equestProto, {\n value => ok,\n});\n\n\nend module;\n";
CONST E6 =
" PolygonGO_New(pts: [PointVal]): PolygonGO \n"
& " PolygonGO_NewWithShapeHint(pts: [PointVal], s: Shape): PolygonGO \n"
& "WHERE \n"
& " PolygonGO <: SurfaceGO "
& "\n PointVal = PointPropVal + Point3 "
& " \n Shape = Text (one of \"Unknown\", \"Convex\", \"NonConvex\", \"Co"
& "mplex\") \n";
CONST E7 =
" Win`OpenGL`Base_New(title: Text, x y w h: Int): Win`OpenGL`Base ! Gra"
& "phicsBase_Failure\n Win`OpenGL`Base_NewStd(): Win`OpenGL`Base ! Graphi"
& "csBase_Failure \nWHERE "
& " \n Win`OpenGL`Base <: GraphicsBase & { chan"
& "geTitle: (Text) => Ok, \n "
& " awaitDelete: () => Ok, \n destro"
& "y: () => Ok }\n";
CONST E8 =
" AmbientLightGO_New(c: ColorVal): AmbientLightGO \nWHERE "
& " \n AmbientLightGO <: LightGO "
& " \n ColorVal = ColorPropVal + Color + Text "
& " \n";
CONST E9 =
" LineTypeProp_NewConst(lt: LineType): LineTypePropVal "
& " \n LineTypeProp_NewSync(ah: AnimHandle, lt: LineType): LineTypePropVa"
& "l \n LineTypeProp_NewAsync(beh: LineTypePropAsyncBeh): LineTypePropV"
& "al \n LineTypeProp_NewDep(beh: LineTypePropDepBeh): LineTypePropVa"
& "l \n LineTypeProp_NewConstBeh(lt: LineType): LineTypePropConst"
& "Beh \n LineTypeProp_NewSyncBeh(ah: AnimHandle, lt: LineType):"
& " LineTypePropSyncBeh\n LineTypeProp_NewAsyncBeh(compute: M1):LineTypeP"
& "ropAsyncBeh \n LineTypeProp_NewDepBeh(compute: M2):LineType"
& "PropDepBeh \n LineTypeProp_NewRequest(start dur: Num, v"
& "alue: M3): LineTypePropRequest\nWHERE "
& " \n LineTypePropName <: PropName & { b"
& "ind: (v: LineTypePropVal) => Prop } \n LineTypePropVal <: PropVal &"
& " { getBeh: () => LineTypePropBeh, \n "
& " setBeh: (LineTypePropBeh) => Ok, \n "
& " get: () => LineType, \n "
& " value: (Num) => LineType } \n LineTypePropB"
& "eh <: PropBeh \n LineTypeP"
& "ropConstBeh <: LineTypePropBeh & { set: (LineType) => Ok } \n LineT"
& "ypePropSyncBeh <: LineTypePropBeh & \n "
& " { addRequest: (LineTypePropRequest) => Ok ! Prop_BadInterval, \n"
& " change: (LineType,Num) => Ok ! Prop_BadInterval } "
& "\n LineTypePropAsyncBeh <: LineTypePropBeh & { compute: M1 } "
& " \n LineTypePropDepBeh <: LineTypePropBeh & { compute: M2 } "
& " \n LineTypePropRequest <: PropRequest & { value: M3 } "
& " \n M1 = Self (X <: LineTypePropAsyncBeh) (Real) => LineTyp"
& "e \n M2 = Self (X <: LineTypePropDepBeh) (Real) => LineTy"
& "pe \n M3 = Self (X <: LineTypePropRequest) (LineType,Re"
& "al) => LineType \n LineType = Text (one of \"Solid\", \"Dashed\""
& ", \"Dotted\", \"DashDot\")\n Num = Real + Int\n";
CONST E10 =
" GO_PropUndefined: Exception \n GO_Sta"
& "ckError: Exception \n GO_Transform: "
& "TransformPropName \n GO_SetTransform(go: GO"
& ", xf: TransformVal): Ok \n GO_GetTransform(go: GO): Transf"
& "ormPropVal ! GO_PropUndefined \nWHERE "
& " \n GO <: ProxiedObj & "
& " \n { setProp: (PropName,PropVal) => Ok "
& " \n unsetProp: (PropName) => Ok ! GO_PropUndefined, "
& " \n getProp: (PropName) => PropVal ! GO_PropUndefined, \n "
& " setName: (Text) => Ok, \n get"
& "Name: () => Text, \n findName: ("
& "Text) => GO, \n pushMouseCB: (cb: M"
& "ouseCB) => Ok, \n popMouseCB: () => Ok ! GO_S"
& "tackError, \n removeMouseCB: (cb: MouseCB) => "
& "Ok ! GO_StackError, \n invokeMouseCB: (mr: MouseRec) => Ok, "
& " \n pushPositionCB: (cb: PositionCB) => Ok, "
& " \n popPositionCB: () => Ok ! GO_StackError, "
& " \n removePositionCB: (cb: PositionCB) => Ok ! GO_StackError,"
& " \n invokePositionCB: (mr: PositionRec) => Ok, \n "
& " pushKeyCB: (cb: KeyCB) => Ok, \n popKey"
& "CB: () => Ok ! GO_StackError, \n removeKeyCB"
& ": (cb: KeyCB) => Ok ! GO_StackError, \n invokeKeyCB: (mr"
& ": KeyRec) => Ok } \n TransformVal = TransformPro"
& "pVal + Matrix4 \n";
CONST E11 =
" AnimHandle_New(): AnimHandle \nWHERE "
& " \n AnimHandle <: "
& "ProxiedObj & { animate: () => Ok } \n";
CONST E12 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:46:43 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 16:37:05 PDT 1994 by najork *)\n\n\nmodule "
& "SphereGOWrap for SphereGO;\n\nlet TProto = clone (SurfaceGO_TProto, {})"
& ";\n\nend module;\n";
CONST E13 =
" Matrix4_Id: Matrix4 \n Matrix4_Mul"
& "tiply(m1 m2: Matrix4): Matrix4 \n Matrix4_Translate(m: Matr"
& "ix4, x y z: Num): Matrix4 \n Matrix4_Scale(m: Matrix4, x y z: Num): "
& "Matrix4 \n Matrix4_RotateX(m: Matrix4, a: Num): Matrix4 "
& "\n Matrix4_RotateY(m: Matrix4, a: Num): Matrix4 \n Matrix4_Ro"
& "tateZ(m: Matrix4, a: Num): Matrix4 \nWHERE "
& " \n Matrix4 is opaque "
& " \n Num = Real + Int "
& " \n";
CONST E14 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:45:41 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 09:44:39 PDT 1994 by najork *)\n\n\nmodule "
& "PointLightGOWrap for PointLightGO;\n\nlet TProto = clone (LightGO_TProt"
& "o, {});\n\nend module;\n";
CONST E15 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Thu Nov 10 "
& "13:23:15 PST 1994 by najork *)\n(* Created on F"
& "ri May 27 20:32:05 PDT 1994 by najork *)\n\n\nmodule "
& "RasterModePropWrap for RasterModeProp;\n\n\nlet NameProto = clone (Prop"
& "_NameProto, {\n bind => meth (self, pv) RasterModeProp_NameBind (self,"
& " pv) end\n});\n\n\nlet ValProto = clone (Prop_ValProto, {\n getBeh => "
& "meth (self) RasterModeProp_ValGetBeh (self) end,\n setBeh => meth (sel"
& "f, beh) RasterModeProp_ValSetBeh (self, beh) end,\n get => meth (se"
& "lf) RasterModeProp_ValGet (self) end,\n value => meth (self, time) Ra"
& "sterModeProp_ValValue (self, time) end\n});\n\n\nlet BehProto = clone ("
& "Prop_BehProto, {});\n \n\nlet ConstBehProto = clone (BehProto, {\n se"
& "t => meth (self, k) RasterModeProp_ConstBehSet (self, k) end\n});\n\n\n"
& "let SyncBehProto = clone (BehProto, {\n addRequest => \n meth (self"
& ", req) \n RasterModeProp_SyncBehAddRequest (self, req) \n end,\n"
& " change =>\n meth (self, k, start) \n RasterModeProp_SyncBehCh"
& "ange (self, k, start) \n end\n});\n\n\nlet AsyncBehProto = clone (Be"
& "hProto, {\n compute => ok,\n});\n\n\nlet DepBehProto = clone (BehProto"
& ", {\n compute => ok,\n});\n\n\nlet RequestProto = clone (Prop_RequestP"
& "roto, {\n value => ok,\n});\n\n\nend module;\n";
CONST E16 =
" TorusGO_New(center normal: PointVal, rad1 rad2: RealVal): TorusGO "
& "\n TorusGO_NewWithPrec(c n: PointVal, r1 r2: RealVal, prec: Int): Toru"
& "sGO\n TorusGO_Center: PointPropName "
& " \n TorusGO_Normal: PointPropName "
& " \n TorusGO_Radius1: RealPropName "
& " \n TorusGO_Radius2: RealPropName "
& " \nWHERE "
& " \n TorusGO <: SurfaceGO "
& " \n PointVal = PointPropVal + Point3 "
& " \n RealVal = RealPropVal + Real + Int\n";
CONST E17 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Tue Aug 22 "
& "12:04:52 PDT 1995 by najork *)\n(* Created on T"
& "ue May 31 09:40:28 PDT 1994 by najork *)\n\n\nmodule "
& "RootGOWrap for RootGO;\n\nlet TProto = clone (GroupGO_TProto, {\n chan"
& "geCamera => meth (self, cam) RootGO_ChangeCamera (self, cam) end,\n sc"
& "reenToWorld => meth (self, pos, z) RootGO_ScreenToWorld (self, pos, z) "
& "end\n});\n\nend module;\n";
CONST E18 =
" SurfaceGO_Color: ColorPropName\n SurfaceGO_SetColor(o: GO, color: Co"
& "lorVal): Ok\n SurfaceGO_RasterMode: RasterModePropName\n SurfaceGO_Se"
& "tRasterMode(o: GO, t: RasterModeVal): Ok\n SurfaceGO_AmbientReflection"
& "Coeff: RealPropName\n SurfaceGO_SetAmbientReflectionCoeff(o: GO, r: Re"
& "alVal): Ok\n SurfaceGO_DiffuseReflectionCoeff: RealPropName\n Surface"
& "GO_SetDiffuseReflectionCoeff(o: GO, r: RealVal): Ok\n SurfaceGO_Specul"
& "arReflectionCoeff: RealPropName\n SurfaceGO_SetSpecularReflectionCoeff"
& "(o: GO, r: RealVal): Ok\n SurfaceGO_SpecularReflectionConc: RealPropNa"
& "me\n SurfaceGO_SetSpecularReflectionConc(o: GO, r: RealVal): Ok\n Sur"
& "faceGO_TransmissionCoeff: RealPropName\n SurfaceGO_SetTransmissionCoef"
& "f(o: GO, r: RealVal): Ok\n SurfaceGO_SpecularReflectionColor: ColorPro"
& "pName\n SurfaceGO_SetSpecularReflectionColor(o: GO, color: ColorVal): "
& "Ok\n SurfaceGO_Lighting: BooleanPropName\n SurfaceGO_SetLighting(o: G"
& "O, t: BooleanVal): Ok\n SurfaceGO_Shading: ShadingPropName\n SurfaceG"
& "O_SetShading(o: GO, sh: ShadingVal): Ok\n SurfaceGO_EdgeVisibility: Bo"
& "oleanPropName\n SurfaceGO_SetEdgeVisibility(o: GO, b: BoolVal): Ok\n "
& "SurfaceGO_EdgeColor: ColorPropName\n SurfaceGO_SetEdgeColor(o: GO, col"
& "or: ColorVal): Ok\n SurfaceGO_EdgeType: LineTypePropName\n SurfaceGO_"
& "SetEdgeType(o: GO, lt: LineTypeVal): Ok\n SurfaceGO_EdgeWidth: RealPro"
& "pName\n SurfaceGO_SetEdgeWidth(o: GO, r: RealVal): Ok\nTYPE\n Surface"
& "GO <: GO\n ColorVal = ColorPropVal + Color + Text\n BooleanVal = Bool"
& "eanPropVal + Bool\n RealVal = RealPropVal + Real + Int\n LineTypeVal "
& "= LineTypePropVal + LineType\n RasterModeVal = RasterModePropVal + Ras"
& "terMode\n ShadingVal = ShadingPropVal + Shading\n";
CONST E19 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Thu Jul 21 "
& "12:57:43 PDT 1994 by najork *)\n(* Created on F"
& "ri May 27 20:32:05 PDT 1994 by najork *)\n\n\nmodule "
& "BooleanPropWrap for BooleanProp;\n\nlet NameProto = clone (Prop_NamePro"
& "to, {\n bind => meth (self, pv) BooleanProp_NameBind (self, pv) end\n}"
& ");\n\n\nlet ValProto = clone (Prop_ValProto, {\n getBeh => meth (self)"
& " BooleanProp_ValGetBeh (self) end,\n setBeh => meth (self, beh) Boolea"
& "nProp_ValSetBeh (self, beh) end,\n get => meth (self) BooleanProp_V"
& "alGet (self) end,\n value => meth (self, time) BooleanProp_ValValue ("
& "self, time) end\n});\n\n\nlet BehProto = clone (Prop_BehProto, {});\n "
& "\n\nlet ConstBehProto = clone (BehProto, {\n set => meth (self, b) Boo"
& "leanProp_ConstBehSet (self, b) end\n});\n\n\nlet SyncBehProto = clone ("
& "BehProto, {\n addRequest => \n meth (self, req) \n BooleanProp"
& "_SyncBehAddRequest (self, req) \n end,\n change =>\n meth (self,"
& " b, start) \n BooleanProp_SyncBehChange (self, b, start) \n end"
& "\n});\n\n\nlet AsyncBehProto = clone (BehProto, {\n compute => ok,\n})"
& ";\n\n\nlet DepBehProto = clone (BehProto, {\n compute => ok,\n});\n\n\n"
& "let RequestProto = clone (Prop_RequestProto, {\n value => ok,\n});\n\n"
& "\nend module;\n";
CONST E20 =
" X`OpenGL`Base_New(title: Text, x y w h: Int): X`OpenGL`Base ! Graphic"
& "sBase_Failure\n X`OpenGL`Base_NewStd(): X`OpenGL`Base ! GraphicsBase_F"
& "ailure \nWHERE "
& " \n X`OpenGL`Base <: GraphicsBase & { changeTitle: "
& "(Text) => Ok, \n awaitDele"
& "te: () => Ok, \n destroy: () => Ok }"
& "\n";
CONST E21 =
" LightGO_Color: ColorPropName \n"
& " LightGO_Switch: BooleanPropName \n"
& " LightGO_SetColor(go: GO, c: ColorVal): Ok \n "
& " LightGO_SetSwitch(go: GO, b: Bool): Ok \nWH"
& "ERE \n "
& "LightGO <: GO \n "
& " ColorVal = ColorPropVal + Color + Text \n "
& " BooleanVal = BooleanPropVal + Bool \n";
CONST E22 =
" TransformProp_NewConst(m: Matrix4): TransformPropVal "
& " \n TransformProp_NewSync(ah: AnimHandle, m: Matrix4): TransformPropVa"
& "l \n TransformProp_NewAsync(beh: TransformPropAsyncBeh): TransformPr"
& "opVal \n TransformProp_NewDep(beh: TransformPropDepBeh): TransformPro"
& "pVal \n TransformProp_NewConstBeh(m: Matrix4): TransformPropConst"
& "Beh \n TransformProp_NewSyncBeh(ah: AnimHandle, m: Matrix4): "
& "TransformPropSyncBeh\n TransformProp_NewAsyncBeh(compute: M1):Transfor"
& "mPropAsyncBeh \n TransformProp_NewDepBeh(compute: M2):Transfo"
& "rmPropDepBeh \n TransformProp_NewRequest(start dur: Num, "
& "value: M3): TransformPropRequest\nWHERE "
& " \n TransformPropName <: PropName & "
& "{ bind: (v: TransformPropVal) => Prop } \n TransformPropVal <: PropVa"
& "l & { getBeh: () => TransformPropBeh, \n "
& " setBeh: (TransformPropBeh) => Ok, \n "
& " get: () => Matrix4, \n "
& " value: (Num) => Matrix4 } \n TransformPr"
& "opBeh <: PropBeh \n Transfo"
& "rmPropConstBeh <: TransformPropBeh & \n "
& " { set: (Matrix4) => Ok, \n "
& " compose: (Matrix4) => Ok, \n"
& " reset: () => Ok, "
& " \n translate: (Num,Num,Num) => Ok, "
& " \n scale: (Num,Num,Num) => Ok, "
& " \n rotateX: (Num) => Ok, "
& " \n rotateY: (Num) => Ok, "
& " \n rotateZ: (Num) => Ok } "
& " \n TransformPropSyncBeh <: TransformPropBeh & "
& " \n { addRequest: (TransformPropRequest) => Ok ! Prop_B"
& "adInterval,\n reset: (Num) => ";
CONST E22_0 =
"Ok ! Prop_BadInterval, \n changeTo: (Mat"
& "rix4,Num,Num) => Ok ! Prop_BadInterval, \n translate: (N"
& "um,Num,Num,Num,Num) => Ok ! Prop_BadInterval,\n scale: (Num,Num"
& ",Num,Num,Num) => Ok ! Prop_BadInterval, \n rotateX: (Num,Num"
& ",Num) => Ok ! Prop_BadInterval, \n rotateY: (Num,Num"
& ",Num) => Ok ! Prop_BadInterval, \n rotateZ: (Num,Num"
& ",Num) => Ok ! Prop_BadInterval } \n TransformPropAsyncBeh <:"
& " TransformPropBeh & { compute: M1 } \n TransformPropDepBeh "
& "<: TransformPropBeh & { compute: M2 } \n TransformPropReq"
& "uest <: PropRequest & { value: M3 } \n M1 = Self (X"
& " <: TransformPropAsyncBeh) (Real) => Matrix4 \n M2 "
& "= Self (X <: TransformPropDepBeh) (Real) => Matrix4 "
& " \n M3 = Self (X <: TransformPropRequest) (Matrix4,Real) => Matrix4\n"
& " Num = Real = Int\n";
CONST E23 =
" KeyCB_New(invoke: M): KeyCB\nWHERE\n KeyCB <: ProxiedObj & { invoke:"
& " M }\n M = Self (X <: KeyCB) (KeyRec) => Ok\n KeyRec = { change: Text"
& ", wentDown: Bool, modifiers: [Modifier] }\n Modifier = Text (one of \""
& "Left\", \"Middle\", \"Right\",\n \"Shift\", \"Lock\","
& " \"Control\", \"Option\")\n";
CONST E24 =
"TYPE ProxiedObj <: { extend: Self(X) All(Y<:{}) (Y) => X & Y }\n "
& "Objects of this type also contain a field \"raw\", \n which is fo"
& "r internal use only.\n";
CONST E25 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:46:36 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 17:28:05 PDT 1994 by najork *)\n\n\nmodule "
& "BoxGOWrap for BoxGO;\n\nlet TProto = clone (SurfaceGO_TProto, {});\n\ne"
& "nd module;\n";
CONST E26 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:45:33 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 09:44:28 PDT 1994 by najork *)\n\n\nmodule "
& "VectorLightGOWrap for VectorLightGO;\n\nlet TProto = clone (LightGO_TPr"
& "oto, {});\n\nend module;\n";
CONST E27 =
" CylinderGO_New(p1 p2: PointVal, rad: RealVal): CylinderGO \n"
& " CylinderGO_NewWithPrec(p1 p2: PointVal, rad: RealVal, prec: Int): Cyl"
& "inderGO\n CylinderGO_Point1: PointPropName "
& " \n CylinderGO_Point2: PointPropName "
& " \n CylinderGO_Radius: RealPropName "
& " \n CylinderGO_SetPoint1(o: GO, p: PointVal): Ok "
& " \n CylinderGO_SetPoint2(o: GO, p: PointVal): Ok "
& " \n CylinderGO_SetRadius(o: GO, r: RealVal): Ok "
& " \nWHERE "
& " \n CylinderGO <: SurfaceGO "
& " \n PointVal = PointPropVal + Point3 "
& " \n RealVal = RealPropVal + Real + Int\n";
CONST E28 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Thu Jul 21 "
& "13:49:22 PDT 1994 by najork *)\n(* Created on F"
& "ri May 27 20:32:05 PDT 1994 by najork *)\n\n\nmodule "
& "MarkerTypePropWrap for MarkerTypeProp;\n\n\nlet NameProto = clone (Prop"
& "_NameProto, {\n bind => meth (self, pv) MarkerTypeProp_NameBind (self,"
& " pv) end\n});\n\n\nlet ValProto = clone (Prop_ValProto, {\n getBeh => "
& "meth (self) MarkerTypeProp_ValGetBeh (self) end,\n setBeh => meth (sel"
& "f, beh) MarkerTypeProp_ValSetBeh (self, beh) end,\n get => meth (se"
& "lf) MarkerTypeProp_ValGet (self) end,\n value => meth (self, time) Ma"
& "rkerTypeProp_ValValue (self, time) end\n});\n\n\nlet BehProto = clone ("
& "Prop_BehProto, {});\n \n\nlet ConstBehProto = clone (BehProto, {\n se"
& "t => meth (self, k) MarkerTypeProp_ConstBehSet (self, k) end\n});\n\n\n"
& "let SyncBehProto = clone (BehProto, {\n addRequest => \n meth (self"
& ", req) \n MarkerTypeProp_SyncBehAddRequest (self, req) \n end,\n"
& " change =>\n meth (self, k, start) \n MarkerTypeProp_SyncBehCh"
& "ange (self, k, start) \n end\n});\n\n\nlet AsyncBehProto = clone (Be"
& "hProto, {\n compute => ok,\n});\n\n\nlet DepBehProto = clone (BehProto"
& ", {\n compute => ok,\n});\n\n\nlet RequestProto = clone (Prop_RequestP"
& "roto, {\n value => ok,\n});\n\n\nend module;\n";
CONST E29 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Tue Sep 27 "
& "14:14:47 PDT 1994 by najork *)\n(* Created on T"
& "ue May 31 08:55:26 PDT 1994 by najork *)\n\n\nmodule "
& "GroupGOWrap for GroupGO;\n\nlet TProto = clone (GO_TProto, {\n add "
& " => meth (self, go) GroupGO_Add (self, go) end,\n remove => meth ("
& "self, go) GroupGO_Remove (self, go) end,\n flush => meth (self) "
& "GroupGO_Flush (self) end,\n content => meth (self) GroupGO_Co"
& "ntent (self) end\n});\n\nend module;\n";
CONST E30 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Thu Jul 21 "
& "10:10:23 PDT 1994 by najork *)\n(* Created on F"
& "ri May 27 20:29:34 PDT 1994 by najork *)\n\n\nmodule "
& "PropWrap for Prop;\n\nlet TProto = clone (ProxiedObj_TProto, {});\nl"
& "et NameProto = clone (ProxiedObj_TProto, {});\nlet ValProto = clone (P"
& "roxiedObj_TProto, {});\nlet BehProto = clone (ProxiedObj_TProto, {});\n"
& "\nlet RequestProto = clone (ProxiedObj_TProto, {\n start => meth (self"
& ") Prop_RequestStart (self) end,\n dur => meth (self) Prop_RequestDur"
& " (self) end\n});\n\nend module;\n";
CONST E31 =
" LineGO_New(p1 p2: PointVal): LineGO \n LineGO_Color: ColorProp"
& "Name \n LineGO_Width: RealPropName \n Li"
& "neGO_Type: LineTypePropName \n LineGO_Point1: PointPropNam"
& "e \n LineGO_Point2: PointPropName \n LineGO"
& "_SetColor(o: GO, c: ColorVal): Ok \n LineGO_SetWidth(o: GO, r: RealV"
& "al): Ok \n LineGO_SetType(o: GO, t: LineType): Ok \n LineGO_Set"
& "Point1(o: GO, p: PointVal): Ok \n LineGO_SetPoint2(o: GO, p: PointVal"
& "): Ok \nWHERE \n LineGO <: GO "
& " \n PointVal = PointPropVal + Point3 "
& " \n RealVal = RealPropVal + Real + Int \n ColorVal = ColorP"
& "ropVal + Color + Text \n LineTypeVal = LineTypePropVal + LineType \n"
;
CONST E32 =
" X`PEX`Base_New(title: Text, x y w h: Int): X`PEX`Base ! GraphicsBase_"
& "Failure\n X`PEX`Base_NewStd(): X`PEX`Base ! GraphicsBase_Failure "
& " \nWHERE "
& " \n X`PEX`Base <: GraphicsBase & { changeTitle: (Text) => Ok, "
& " \n awaitDelete: () => Ok, \n "
& " destroy: () => Ok }\n";
CONST E33 =
" OrthoCameraGO_New(from to up: PointVal, height: RealVal): OrthoCamera"
& "GO \n OrthoCameraGO_Height: RealPropName\n OrthoCameraGO_SetHeight(go"
& ": GO, height: RealVal): Ok \nWHERE "
& " \n OrthoCameraGO <: Camera"
& "GO \n PointVal = PointProp"
& "Val + Point3 \n RealVal = RealProp"
& "Val + Real + Int \n";
CONST E34 =
" ColorProp_NewConst(r: Col): ColorPropVal \n Co"
& "lorProp_NewSync(ah: AnimHandle, r: Col): ColorPropVal \n ColorP"
& "rop_NewAsync(beh: ColorPropAsyncBeh): ColorPropVal \n Col"
& "orProp_NewDep(beh: ColorPropDepBeh): ColorPropVal \n "
& "ColorProp_NewConstBeh(r: Col): ColorPropConstBeh \n Colo"
& "rProp_NewSyncBeh(ah: AnimHandle, r: Col): ColorPropSyncBeh \n ColorPro"
& "p_NewAsyncBeh(compute: M1):ColorPropAsyncBeh \n Color"
& "Prop_NewDepBeh(compute: M2):ColorPropDepBeh \n Co"
& "lorProp_NewRequest(start dur: Num, value: M3): ColorPropRequest \nWH"
& "ERE \n"
& " ColorPropName <: PropName & { bind: (v: ColorPropVal) => Prop } "
& " \n ColorPropVal <: PropVal & { getBeh: () => ColorPropBeh, "
& " \n setBeh: (ColorPropBeh) => Ok, "
& " \n get: () => Color, "
& " \n value: (Num) => Color } "
& " \n ColorPropBeh <: PropBeh "
& " \n ColorPropConstBeh <: ColorPropBeh & { set: (Co"
& "l) => Ok } \n ColorPropSyncBeh <: ColorPropBeh & "
& " \n { addRequest: (ColorPropRequest) => Ok ! P"
& "rop_BadInterval, \n rgbLinChangeTo: (Col,Num,Num) => Ok !"
& " Prop_BadInterval }\n ColorPropAsyncBeh <: ColorPropBeh & { compute: M"
& "1 } \n ColorPropDepBeh <: ColorPropBeh & { compute:"
& " M2 } \n ColorPropRequest <: PropRequest & { valu"
& "e: M3 } \n M1 = Self (X <: ColorPropAsyncBeh) ("
& "Real) => Color \n M2 = Self (X <: ColorPropDepBeh) "
& "(Real) => Color \n M3 = Self (X <: ColorPropReque"
& "st) (Color,Real) => Color \n Col = Color + Text "
& " \n Num = Real + Int\n";
CONST E35 =
" PositionCB_New(invoke: M): PositionCB\nWHERE\n PositionCB <: Proxied"
& "Obj & { invoke: M }\n M = Self (X <: PositionCB) (PositionRec) => Ok\n"
& " PositionRec = { pos: Point2, modifiers: [Modifier] }\n Point2 = [2*I"
& "nt]\n Modifier = Text (one of \"Left\", \"Middle\", \"Right\",\n "
& " \"Shift\", \"Lock\", \"Control\", \"Option\")\n\n\n";
CONST E36 =
" Anim3D_lock: Mutex \n Anim3D_changeClock(c: Clock): Ok\nWHERE\n Clo"
& "ck = () -> Real\n";
CONST E37 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:47:37 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 21:54:30 PDT 1994 by najork *)\n\n\nmodule "
& "QuadMeshGOWrap for QuadMeshGO;\n\nlet TProto = clone (SurfaceGO_TProto,"
& " {\n addFacetColors =>\n meth (self, cols) QuadMeshGO_AddFacetColor"
& "s (self, cols) end,\n setColorOfFacet =>\n meth (self, i, j, col) Q"
& "uadMeshGO_SetColorOfFacet (self, i, j, col) end\n});\n\nend module;\n";
CONST E38 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:46:24 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 17:29:25 PDT 1994 by najork *)\n\n\nmodule "
& "PolygonGOWrap for PolygonGO;\n\nlet TProto = clone (SurfaceGO_TProto, {"
& "});\n\nend module;\n";
CONST E39 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Mon Oct 9 "
& "13:29:28 PDT 1995 by najork *)\n(* Created on T"
& "ue May 31 11:43:38 PDT 1994 by najork *)\n\n\nmodule "
& "Win`OpenGL`BaseWrap for Win`OpenGL`Base;\n\nlet TProto = clone (Graphic"
& "sBase_TProto, {\n changeTitle => \n meth (self, title) Win`OpenGL`B"
& "ase_ChangeTitle (self, title) end,\n awaitDelete => meth (self) Win`Op"
& "enGL`Base_AwaitDelete (self) end,\n destroy => meth (self) Win`Ope"
& "nGL`Base_Destroy (self) end\n});\n\nend module;\n";
CONST E40 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:45:24 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 09:44:12 PDT 1994 by najork *)\n\n\nmodule "
& "AmbientLightGOWrap for AmbientLightGO;\n\nlet TProto = clone (LightGO_T"
& "Proto, {});\n\nend module;\n";
CONST E41 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Thu Jul 21 "
& "13:48:41 PDT 1994 by najork *)\n(* Created on F"
& "ri May 27 20:32:05 PDT 1994 by najork *)\n\n\nmodule "
& "LineTypePropWrap for LineTypeProp;\n\n\nlet NameProto = clone (Prop_Nam"
& "eProto, {\n bind => meth (self, pv) LineTypeProp_NameBind (self, pv) e"
& "nd\n});\n\n\nlet ValProto = clone (Prop_ValProto, {\n getBeh => meth ("
& "self) LineTypeProp_ValGetBeh (self) end,\n setBeh => meth (self, beh) "
& "LineTypeProp_ValSetBeh (self, beh) end,\n get => meth (self) LineTy"
& "peProp_ValGet (self) end,\n value => meth (self, time) LineTypeProp_V"
& "alValue (self, time) end\n});\n\n\nlet BehProto = clone (Prop_BehProto,"
& " {});\n \n\nlet ConstBehProto = clone (BehProto, {\n set => meth (sel"
& "f, k) LineTypeProp_ConstBehSet (self, k) end\n});\n\n\nlet SyncBehProto"
& " = clone (BehProto, {\n addRequest => \n meth (self, req) \n L"
& "ineTypeProp_SyncBehAddRequest (self, req) \n end,\n change =>\n "
& "meth (self, k, start) \n LineTypeProp_SyncBehChange (self, k, star"
& "t) \n end\n});\n\n\nlet AsyncBehProto = clone (BehProto, {\n comput"
& "e => ok,\n});\n\n\nlet DepBehProto = clone (BehProto, {\n compute => o"
& "k,\n});\n\n\nlet RequestProto = clone (Prop_RequestProto, {\n value =>"
& " ok,\n});\n\n\nend module;\n";
CONST E42 =
" DiskGO_New(center normal: PointVal, rad: RealVal): DiskGO \n"
& " DiskGO_NewWithPrec(center normal: PointVal, rad: RealVal, prec: Int):"
& " DiskGO\n DiskGO_Center: PointPropName "
& " \n DiskGO_Normal: PointPropName "
& " \n DiskGO_Radius: RealPropName "
& " \n DiskGO_SetCenter(o: GO, p: PointVal): Ok "
& " \n DiskGO_SetNormal(o: GO, p: PointVal3): Ok "
& " \n DiskGO_SetRadius(o: GO, r: RealVal): Ok "
& " \nWHERE "
& " \n DiskGO <: SurfaceGO "
& " \n PointVal = PointPropVal + Point3 "
& " \n RealVal = RealPropVal + Real + Int\n";
CONST E43 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Fri Jul 22 "
& "18:04:12 PDT 1994 by najork *)\n(* Created on M"
& "on May 30 20:03:50 PDT 1994 by najork *)\n\n\nmodule "
& "GOWrap for GO;\n\nlet TProto = clone (ProxiedObj_TProto, {\n setProp "
& " => meth (self, pn, pv) GO_SetProp (self, pn.bind (pv)) end,\n unsetPr"
& "op => meth (self, pn) GO_UnsetProp (self, pn) end,\n getPr"
& "op => meth (self, pn) GO_GetProp (self, pn) end,\n\n s"
& "etName => meth (self, name) GO_SetName (self, name) end,\n getName "
& "=> meth (self) GO_GetName (self) end,\n findName => meth "
& "(self, name) GO_FindName (self, name) end,\n\n pushMouseCB => meth ("
& "self, cb) GO_PushMouseCB (self, cb) end,\n popMouseCB => meth (se"
& "lf) GO_PopMouseCB (self) end,\n removeMouseCB => meth (self"
& ", cb) GO_RemoveMouseCB (self, cb) end,\n invokeMouseCB => meth (self, "
& "mr) GO_InvokeMouseCB (self, mr) end,\n\n pushPositionCB => meth (sel"
& "f, cb) GO_PushPositionCB (self, cb) end,\n popPositionCB => meth "
& "(self) GO_PopPositionCB (self) end,\n removePositionCB => m"
& "eth (self, cb) GO_RemovePositionCB (self, cb) end,\n invokePositionCB "
& "=> meth (self, pr) GO_InvokePositionCB (self, pr) end,\n\n pushKeyCB "
& " => meth (self, cb) GO_PushKeyCB (self, cb) end,\n popKeyCB => me"
& "th (self) GO_PopKeyCB (self) end,\n removeKeyCB => meth (se"
& "lf, cb) GO_RemoveKeyCB (self, cb) end,\n invokeKeyCB => meth (self, kr"
& ") GO_InvokeKeyCB (self, kr) end,\n});\n\nend module;\n";
CONST E44 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:43:30 PDT 1994 by najork *)\n(* Created on F"
& "ri May 27 20:32:05 PDT 1994 by najork *)\n\n\nmodule "
& "AnimHandleWrap for AnimHandle;\n\nlet TProto = clone (ProxiedObj_TProto"
& ", {\n animate => meth (self) AnimHandle_Animate (self) end\n});\n\nend"
& " module;\n";
CONST E45 =
" MarkerGO_New(point: PointVal): MarkerGO \n MarkerGO_Center: P"
& "ointPropName \n MarkerGO_Color: ColorPropName "
& " \n MarkerGO_Scale: RealPropName \n Mark"
& "erGO_Type: MarkerTypePropName \n MarkerGO_SetCenter(o: G"
& "O, p: PointVal): Ok \n MarkerGO_SetColor(o: GO, c: ColorVal): Ok "
& " \n MarkerGO_SetScale(o: GO, r: RealVal): Ok \n MarkerGO_Set"
& "Type(o: GO, t: MarkerTypeVal): Ok \nWHERE "
& " \n MarkerGO <: GO \n"
& " PointVal = PointPropVal + Point3 \n RealVal = RealPro"
& "pVal + Real + Int\n ColorVal = ColorPropVal + Color + Text \n"
& " MarkerTypeVal = MarkerTypePropVal + MarkerType \n";
CONST E46 =
"GraphicsBase_Failure: Exception\nTYPE GraphicsBase <: ProxiedObj \n";
CONST E47 =
" PerspCameraGO_New(from to up: PointVal, fovy: RealVal): PerspCameraGO"
& "\n PerspCameraGO_Fovy: RealPropName\n PerspCameraGO_SetFovy(go: GO, f"
& "ovy: RealVal): Ok \nWHERE "
& " \n PerspCameraGO <: CameraGO "
& " \n PointVal = PointPropVal +"
& " Point3 \n RealVal = RealPropVal +"
& " Real + Int \n";
CONST E48 =
" PointProp_NewConst(r: Point3): PointPropVal \n"
& " PointProp_NewSync(ah: AnimHandle, r: Point3): PointPropVal \n"
& " PointProp_NewAsync(beh: PointPropAsyncBeh): PointPropVal \n"
& " PointProp_NewDep(beh: PointPropDepBeh): PointPropVal \n"
& " PointProp_NewConstBeh(r: Point3): PointPropConstBeh \n"
& " PointProp_NewSyncBeh(ah: AnimHandle, r: Point3): PointPropSyncBeh \n"
& " PointProp_NewAsyncBeh(compute: M1):PointPropAsyncBeh \n"
& " PointProp_NewDepBeh(compute: M2):PointPropDepBeh \n"
& " PointProp_NewRequest(start dur: Num, value: M3): PointPropRequest \n"
& "WHERE \n"
& " PointPropName <: PropName & { bind: (v: PointPropVal) => Prop } "
& " \n PointPropVal <: PropVal & { getBeh: () => PointPropBeh, "
& " \n setBeh: (PointPropBeh) => Ok, "
& " \n get: () => Point3, "
& " \n value: (Num) => Point3 } "
& " \n PointPropBeh <: PropBeh "
& " \n PointPropConstBeh <: PointPropBeh & { set: (Point3) => Ok "
& "} \n PointPropSyncBeh <: PointPropBeh & "
& " \n { addRequest: (PointPropRequest) => Ok ! Prop"
& "_BadInterval, \n linMoveTo: (Point3,Num,Num) => Ok ! Prop_B"
& "adInterval, \n linMoveBy: (Point3,Num,Num) => Ok ! Prop_Ba"
& "dInterval } \n PointPropAsyncBeh <: PointPropBeh & { compute: M1 } "
& " \n PointPropDepBeh <: PointPropBeh & { compute: M2 } "
& " \n PointPropRequest <: PropRequest & { value: M3 } "
& " \n M1 = Self (X <: PointPropAsyncBeh) (Real) => Poin"
& "t3 \n M2 = Self (X <: PointPropDepBeh) (Real) => Point"
& "3 \n M3 = Self (X <: PointPropRequest) (Point3,Real)"
& " => Point3 \n Num = Real + Int\n";
CONST E49 =
" MouseCB_New(invoke: M): MouseCB \nWHE"
& "RE \n Mou"
& "seCB <: ProxiedObj & { invoke: M } \n M = "
& "Self (X <: MouseCB) (MouseRec) => Ok \n MouseR"
& "ec = { pos: Point2, change: Button, \n "
& " modifiers: [Modifier], clickType: ClickType } \n Point2 = ["
& "2*Int] \n Button = Tex"
& "t (one of \"Left\", \"Middle\", \"Right\") \n Modifier = Tex"
& "t (a Button or one of \"Shift\", \"Lock\", \"Control\", \"Option\")\n"
& " ClickType = Text (one of \"FirstDown\", \"OtherDown\", \"OtherUp\", "
& "\"LastUp\") \n";
CONST E50 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:47:25 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 17:29:11 PDT 1994 by najork *)\n\n\nmodule "
& "TorusGOWrap for TorusGO;\n\nlet TProto = clone (SurfaceGO_TProto, {});\n"
& "\nend module;\n";
CONST E51 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:46:16 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 16:36:36 PDT 1994 by najork *)\n\n\nmodule "
& "SurfaceGOWrap for SurfaceGO;\n\nlet TProto = clone (GO_TProto, {});\n\n"
& "end module;\n";
CONST E52 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Aug 2 "
& "16:31:54 PDT 1995 by najork *)\n(* Created on T"
& "ue May 31 11:43:38 PDT 1994 by najork *)\n\n\nmodule "
& "X`OpenGL`BaseWrap for X`OpenGL`Base;\n\nlet TProto = clone (GraphicsBas"
& "e_TProto, {\n changeTitle => \n meth (self, title) X`OpenGL`Base_Ch"
& "angeTitle (self, title) end,\n awaitDelete => meth (self) X`OpenGL`Bas"
& "e_AwaitDelete (self) end,\n destroy => meth (self) X`OpenGL`Base_D"
& "estroy (self) end\n});\n\nend module;\n";
CONST E53 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:45:09 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 09:44:02 PDT 1994 by najork *)\n\n\nmodule "
& "LightGOWrap for LightGO;\n\nlet TProto = clone (GO_TProto, {});\n\nend "
& "module;\n";
CONST E54 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Thu Jul 21 "
& "13:47:49 PDT 1994 by najork *)\n(* Created on F"
& "ri May 27 20:32:05 PDT 1994 by najork *)\n\n\nmodule "
& "TransformPropWrap for TransformProp;\n\n\nlet NameProto = clone (Prop_N"
& "ameProto, {\n bind => meth (self, pv) TransformProp_NameBind (self, pv"
& ") end\n});\n\n\nlet ValProto = clone (Prop_ValProto, {\n getBeh => met"
& "h (self) TransformProp_ValGetBeh (self) end,\n setBeh => meth (self, b"
& "eh) TransformProp_ValSetBeh (self, beh) end,\n get => meth (self) T"
& "ransformProp_ValGet (self) end,\n value => meth (self, time) Transfor"
& "mProp_ValValue (self, time) end\n});\n\n\nlet BehProto = clone (Prop_Be"
& "hProto, {});\n \n\nlet ConstBehProto = clone (BehProto, {\n set => \n"
& " meth (self, m) TransformProp_ConstBehSet (self, m) end,\n compose "
& "=> \n meth (self, m) TransformProp_ConstBehCompose (self, m) end,\n "
& " reset => \n meth (self) TransformProp_ConstBehReset (self) end,\n "
& "translate => \n meth (self, x, y, z) TransformProp_ConstBehTranslate"
& " (self, x, y, z) end,\n scale => \n meth (self, x, y, z) TransformP"
& "rop_ConstBehScale (self, x, y, z) end,\n rotateX => \n meth (self, "
& "a) TransformProp_ConstBehRotateX (self, a) end,\n rotateY => \n met"
& "h (self, a) TransformProp_ConstBehRotateY (self, a) end,\n rotateZ => "
& "\n meth (self, a) TransformProp_ConstBehRotateZ (self, a) end\n});\n"
& "\n\nlet SyncBehProto = clone (BehProto, {\n addRequest => \n meth ("
& "self, req) \n TransformProp_SyncBehAddRequest (self, req) \n en"
& "d,\n reset =>\n meth (self, start) \n TransformProp_SyncBehRes"
& "et (self, start) \n end,\n changeTo =>\n meth (self, m, start, d"
& "ur) \n TransformProp_SyncBehChangeTo (self, m, start, dur)\n en";
CONST E54_0 =
"d,\n translate =>\n meth (self, x, y, z, start, dur) \n Transf"
& "ormProp_SyncBehTranslate (self, x, y, z, start, dur) \n end,\n scal"
& "e =>\n meth (self, x, y, z, start, dur) \n TransformProp_SyncBe"
& "hScale (self, x, y, z, start, dur) \n end,\n rotateX =>\n meth ("
& "self, a, start, dur) \n TransformProp_SyncBehRotateX (self, a, sta"
& "rt, dur) \n end,\n rotateY =>\n meth (self, a, start, dur) \n "
& " TransformProp_SyncBehRotateY (self, a, start, dur) \n end,\n rot"
& "ateZ =>\n meth (self, a, start, dur) \n TransformProp_SyncBehRo"
& "tateZ (self, a, start, dur) \n end\n});\n\n\nlet AsyncBehProto = clo"
& "ne (BehProto, {\n compute => ok,\n});\n\n\nlet DepBehProto = clone (Be"
& "hProto, {\n compute => ok,\n});\n\n\nlet RequestProto = clone (Prop_Re"
& "questProto, {\n value => ok,\n});\n\n\nend module;\n";
CONST E55 =
" ConeGO_New(base tip: PointVal, rad: RealVal): ConeGO \n"
& " ConeGO_NewWithPrec(base tip: PointVal, rad: RealVal, prec: Int): Cone"
& "GO\n ConeGO_Base: PointPropName "
& " \n ConeGO_Tip: PointPropName "
& " \n ConeGO_Radius: RealPropName "
& " \n ConeGO_SetBase(o: GO, p: PointVal): Ok "
& " \n ConeGO_SetTip(o: GO, p: PointVal): Ok "
& " \n ConeGO_SetRadius(o: GO, r: RealVal): Ok "
& " \nWHERE "
& " \n ConeGO <: SurfaceGO "
& " \n PointVal = PointPropVal + Point3 "
& " \n RealVal = RealPropVal + Real + Int\n";
CONST E56 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Fri Jul 22 "
& "18:06:21 PDT 1994 by najork *)\n(* Created on F"
& "ri Jul 22 18:05:05 PDT 1994 by najork *)\n\n\nmodule "
& "KeyCBWrap for KeyCB;\n\nlet TProto = clone (ProxiedObj_TProto, {\n inv"
& "oke => meth (self, kr) KeyCB_Invoke (self, kr) end\n});\n\nend module;\n"
;
CONST E57 =
" SpotLightGO_New(c: ColorVal, orig dir: PointVal, \n "
& "conc spread att0 att1: Real): SpotLightGO \n SpotLightGO_Origin: Point"
& "PropName \n SpotLightGO_SetOrigin(g"
& "o: GO, orig: PointVal): Ok \n SpotLightGO_Direction"
& ": PointPropName \n SpotLightGO_SetDire"
& "ction(go: GO, dir: PointVal): Ok \n SpotLightGO_Conce"
& "ntration: RealPropName \n SpotLightGO_Set"
& "Concentration(go: GO, conc: RealVal): Ok \n SpotLightGO_S"
& "preadAngle: RealPropName \n SpotLightGO"
& "_SetSpreadAngle(go: GO, spread: RealVal): Ok \n SpotLight"
& "GO_Attenuation0: RealPropName \n SpotLig"
& "htGO_SetAttenuation0(go: GO, att: RealVal): Ok \n SpotL"
& "ightGO_Attenuation1: RealPropName \n Spo"
& "tLightGO_SetAttenuation1(go: GO, att: RealVal): Ok \nWHE"
& "RE \n "
& " SpotLightGO <: LightGO "
& "\n PointVal = PointPropVal + Point3 "
& " \n RealVal = RealPropVal + Real + Int "
& " \n ColorVal = ColorPropVal + Color + Text "
& " \n";
CONST E58 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:43:23 PDT 1994 by najork *)\n(* Created on W"
& "ed Jul 20 09:39:54 PDT 1994 by najork *)\n\n\nmodule "
& "ProxiedObjWrap for ProxiedObj;\n\nlet TProto = {\n raw => ok,\n ex"
& "tend => meth (self, o) ProxiedObj_Extend (self, o) end\n};\n\nend modul"
& "e;\n";
CONST E59 =
" ShadingProp_NewConst(lt: Shading): ShadingPropVal "
& " \n ShadingProp_NewSync(ah: AnimHandle, lt: Shading): ShadingPropVal "
& " \n ShadingProp_NewAsync(beh: ShadingPropAsyncBeh): ShadingPropVal "
& " \n ShadingProp_NewDep(beh: ShadingPropDepBeh): ShadingPropVal "
& " \n ShadingProp_NewConstBeh(lt: Shading): ShadingPropConstBeh"
& " \n ShadingProp_NewSyncBeh(ah: AnimHandle, lt: Shading): S"
& "hadingPropSyncBeh\n ShadingProp_NewAsyncBeh(compute: M1):ShadingPropAs"
& "yncBeh \n ShadingProp_NewDepBeh(compute: M2):ShadingPropD"
& "epBeh \n ShadingProp_NewRequest(start dur: Num, value"
& ": M3): ShadingPropRequest\nWHERE "
& " \n ShadingPropName <: PropName & { bind: ("
& "v: ShadingPropVal) => Prop }\n ShadingPropVal <: PropVal & { getBeh: ("
& ") => ShadingPropBeh, \n setBe"
& "h: (ShadingPropBeh) => Ok, \n g"
& "et: () => Shading, \n "
& " value: (Num) => Shading } \n ShadingPropBeh <: PropBeh"
& " \n ShadingPropConstBeh <"
& ": ShadingPropBeh & { set: (Shading) => Ok }\n ShadingPropSyncBeh <: Sh"
& "adingPropBeh & \n { addRequest: (S"
& "hadingPropRequest) => Ok ! Prop_BadInterval, \n change: (Sh"
& "ading,Num) => Ok ! Prop_BadInterval } \n ShadingPropAsyn"
& "cBeh <: ShadingPropBeh & { compute : M1 } \n ShadingProp"
& "DepBeh <: ShadingPropBeh & { compute: M2 } \n Shading"
& "PropRequest <: PropRequest & { value: M3 } \n M1 "
& "= Self (X <: ShadingPropAsyncBeh) (Real) => Shading \n "
& "M2 = Self (X <: ShadingPropDepBeh) (Real) => Shading \n"
& " M3 = Self (X <: ShadingPropRequest) (Shading,Real) => Shading "
& " \n Shading = Text (\"Flat\" or \"Gouraud\") "
& " \n Num = Real + Int\n";
CONST E60 =
" CameraGO_From: PointPropName\n CameraGO_To: PointPropName\n CameraG"
& "O_Up: PointPropName\n CameraGO_Aspect: PointPropName\n CameraGO_SetFr"
& "om(go: GO, PointVal): Ok\n CameraGO_SetTo(go: GO, PointVal): Ok\n Cam"
& "eraGO_SetUp(go: GO, PointVal): Ok\n CameraGO_SetAspect(go: GO, RealVal"
& "): Ok\nTYPE \n CameraGO <: GO "
& " \n PointVal = PointPropVal + Point3\n RealVal = Real"
& "PropVal + Real + Int\n";
CONST E61 =
" RealProp_NewConst(r: Num): RealPropVal \n "
& " RealProp_NewSync(ah: AnimHandle, r: Num): RealPropVal \n "
& "RealProp_NewAsync(beh: RealPropAsyncBeh): RealPropVal \n "
& "RealProp_NewDep(beh: RealPropDepBeh): RealPropVal \n "
& "RealProp_NewConstBeh(r: Num): RealPropConstBeh \n R"
& "ealProp_NewSyncBeh(ah: AnimHandle, r: Num): RealPropSyncBeh \n Re"
& "alProp_NewAsyncBeh(compute: M1):RealPropAsyncBeh \n Re"
& "alProp_NewDepBeh(compute: M2):RealPropDepBeh \n Re"
& "alProp_NewRequest(start dur: Num, value: M3): RealPropRequest \nWHERE"
& " \n Rea"
& "lPropName <: PropName & { bind: (v: RealPropVal) => Prop } \n "
& "RealPropVal <: PropVal & { getBeh: () => RealPropBeh, \n "
& " setBeh: (RealPropBeh) => Ok, \n "
& " get: () => Real, \n "
& " value: (Num) => Real } \n "
& " RealPropBeh <: PropBeh \n"
& " RealPropConstBeh <: RealPropBeh & { set: (Num) => Ok } \n"
& " RealPropSyncBeh <: RealPropBeh & \n"
& " { addRequest: (RealPropRequest) => Ok ! Prop_BadInterval, \n"
& " linChangeTo: (Num,Num,Num) => Ok ! Prop_BadInterval, \n "
& " linChangeBy: (Num,Num,Num) => Ok ! Prop_BadInterval }\n Real"
& "PropAsyncBeh <: RealPropBeh & { compute: M1 } \n Rea"
& "lPropDepBeh <: RealPropBeh & { compute: M2 } \n Re"
& "alPropRequest <: PropRequest & { value: M3 } \n M"
& "1 = Self (X <: RealPropAsyncBeh) (Real) => Real \n M"
& "2 = Self (X <: RealPropDepBeh) (Real) => Real \n M"
& "3 = Self (X <: RealPropRequest) (Real,Real) => Real \n N"
& "um = Real + Int\n";
CONST E62 =
" time_now(): Real\n";
CONST E63 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:47:09 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 17:29:00 PDT 1994 by najork *)\n\n\nmodule "
& "CylinderGOWrap for CylinderGO;\n\nlet TProto = clone (SurfaceGO_TProto,"
& " {});\n\nend module;\n";
CONST E64 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:46:04 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 09:45:01 PDT 1994 by najork *)\n\n\nmodule "
& "LineGOWrap for LineGO;\n\nlet TProto = clone (GO_TProto, {});\n\nend mo"
& "dule;\n";
CONST E65 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:43:54 PDT 1994 by najork *)\n(* Created on T"
& "ue May 31 11:43:38 PDT 1994 by najork *)\n\n\nmodule "
& "X`PEX`BaseWrap for X`PEX`Base;\n\nlet TProto = clone (GraphicsBase_TPro"
& "to, {\n changeTitle => meth (self, title) X`PEX`Base_ChangeTitle (self"
& ", title) end,\n awaitDelete => meth (self) X`PEX`Base_AwaitDele"
& "te (self) end,\n destroy => meth (self) X`PEX`Base_D"
& "estroy (self) end\n});\n\nend module;\n";
CONST E66 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:44:49 PDT 1994 by najork *)\n(* Created on T"
& "ue May 31 11:39:08 PDT 1994 by najork *)\n\n\nmodule "
& "OrthoCameraGOWrap for OrthoCameraGO;\n\nlet TProto = clone (CameraGO_TP"
& "roto, {});\n\nend module;\n";
CONST E67 =
" SphereGO_New(p: PointVal, rad: RealVal): SphereGO "
& "\n SphereGO_NewWithPrec(p: PointVal, rad: RealVal, prec: Int): SphereG"
& "O \n SphereGO_Center: PointPropName "
& " \n SphereGO_Radius: RealPropName "
& " \n SphereGO_SetCenter(go: GO, center: PointVal): Ok "
& " \n SphereGO_SetRadius(go: GO, radius: RealVal): Ok "
& " \nWHERE "
& " \n SphereGO <: SurfaceGO "
& " \n PointVal = PointPropVal + Point3 "
& " \n RealVal = RealPropVal + Real + Int\n";
CONST E68 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Thu Jul 21 "
& "13:47:01 PDT 1994 by najork *)\n(* Created on F"
& "ri May 27 20:32:05 PDT 1994 by najork *)\n\n\nmodule "
& "ColorPropWrap for ColorProp;\n\n\nlet NameProto = clone (Prop_NameProto"
& ", {\n bind => meth (self, pv) ColorProp_NameBind (self, pv) end\n});\n"
& "\n\nlet ValProto = clone (Prop_ValProto, {\n getBeh => meth (self) Col"
& "orProp_ValGetBeh (self) end,\n setBeh => meth (self, beh) ColorProp_Va"
& "lSetBeh (self, beh) end,\n get => meth (self) ColorProp_ValGet (sel"
& "f) end,\n value => meth (self, time) ColorProp_ValValue (self, time) "
& "end\n});\n\n\nlet BehProto = clone (Prop_BehProto, {});\n \n\nlet Cons"
& "tBehProto = clone (BehProto, {\n set => meth (self, c) ColorProp_Const"
& "BehSet (self, c) end\n});\n\n\nlet SyncBehProto = clone (BehProto, {\n "
& " addRequest => \n meth (self, req) \n ColorProp_SyncBehAddReque"
& "st (self, req) \n end,\n rgbLinChangeTo =>\n meth (self, c, star"
& "t, dur) \n ColorProp_SyncBehRgbLinChangeTo (self, c, start, dur) \n"
& " end\n});\n\n\nlet AsyncBehProto = clone (BehProto, {\n compute => "
& "ok,\n});\n\n\nlet DepBehProto = clone (BehProto, {\n compute => ok,\n}"
& ");\n\n\nlet RequestProto = clone (Prop_RequestProto, {\n value => ok,\n"
& "});\n\n\nend module;\n";
CONST E69 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Fri Jul 22 "
& "18:06:55 PDT 1994 by najork *)\n(* Created on F"
& "ri Jul 22 18:05:05 PDT 1994 by najork *)\n\n\nmodule "
& "PositionCBWrap for PositionCB;\n\nlet TProto = clone (ProxiedObj_TProto"
& ", {\n invoke => meth (self, pr) PositionCB_Invoke (self, pr) end\n});\n"
& "\nend module;\n";
CONST E70 =
" PointLightGO_New(c: ColorVal, orig: PointVal, \n at"
& "t0 att1: RealVal): PointLightGO\n PointLightGO_Origin: PointPropName "
& " \n PointLightGO_SetOrigin(go: GO, ori"
& "g: PointVal): Ok \n PointLightGO_Attenuation0: RealP"
& "ropName \n PointLightGO_SetAttenuation0(g"
& "o: GO, att: RealVal): Ok \n PointLightGO_Attenuation1: R"
& "ealPropName \n PointLightGO_SetAttenuatio"
& "n1(go: GO, att: RealVal): Ok \nWHERE "
& " \n PointLightGO <: LightG"
& "O \n PointVal = PointPro"
& "pVal + Point3 \n RealVal = RealPro"
& "pVal + Real + Int \n ColorVal = Colo"
& "rPropVal + Color + Text \n";
CONST E71 =
" RasterModeProp_NewConst(lt: RasterMode): RasterModePropVal \n Rast"
& "erModeProp_NewSync(ah: AnimHandle, lt: RasterMode): RasterModePropVal\n"
& " RasterModeProp_NewAsync(beh: RasterModePropAsyncBeh): RasterModePropV"
& "al\n RasterModeProp_NewDep(beh: RasterModePropDepBeh): RasterModePropV"
& "al\n RasterModeProp_NewConstBeh(lt: RasterMode): RasterModePropConstBe"
& "h\n RasterModeProp_NewSyncBeh(ah: AnimHandle, \n "
& " lt: RasterMode): RasterModePropSyncBeh\n RasterModeProp_NewAsync"
& "Beh(compute: M1):RasterModePropAsyncBeh \n RasterModeProp_NewDepBeh(c"
& "ompute: M2):RasterModePropDepBeh \n RasterModeProp_NewRequest(sta"
& "rt dur: Num, value: M3): RasterModePropRequest\nWHERE "
& " \n RasterModePropName"
& " <: PropName & \n { bind: (v: RasterModePropVal) => Prop } "
& " \n RasterModePropVal <: PropVal & { getBeh: () => RasterModePropBeh"
& ",\n setBeh: (RasterModePropBeh) => Ok"
& ",\n get: () => RasterMode, \n"
& " value: (Num) => RasterMode } \n R"
& "asterModePropBeh <: PropBeh \n "
& "RasterModePropConstBeh <: RasterModePropBeh & \n { set: (RasterMod"
& "e) => Ok } \n RasterModePropSyncBeh <: RasterModePropBeh & "
& " \n { addRequest: (RasterModePropRequest) => Ok !"
& " Prop_BadInterval,\n change: (RasterMode,Num) => Ok ! Prop_BadIn"
& "terval } \n RasterModePropAsyncBeh <: RasterModePropBeh & { co"
& "mpute: M1 } \n RasterModePropDepBeh <: RasterModePropBeh & { comput"
& "e: M2 } \n RasterModePropRequest <: PropRequest & { value: M3 } "
& " \n M1 = Self (X <: RasterModePropAsyncBeh) (Real) => Ras"
& "terMode \n M2 = Self (X <: RasterModePropDepBeh) (Real) => RasterMo"
& "de \n M3 = Self (X <: RasterModePropRequest) (RasterMode,Real) =>"
& " RasterMode\n RasterMode = Text (one of \"Hollow\", \"Solid\", \"Empt"
& "y\") \n Num = Real + Int\n";
CONST E72 =
" RootGO_New(cam: CameraGO, base: GraphicsBase): RootGO \n "
& " RootGO_NewStd(): RootGO | GraphicsBase_Failure\n RootGO_NewStdWithBas"
& "e(base: GraphicsBase): RootGO \n RootGO_Background: Co"
& "lorPropName \n RootGO_DepthcueSwitch"
& ": BooleanPropName \n RootGO_DepthcueColor:"
& " ColorPropName \n RootGO_DepthcueFrontP"
& "lane: RealPropName \n RootGO_DepthcueBackPl"
& "ane: RealPropName \n RootGO_DepthcueFrontS"
& "cale: RealPropName \n RootGO_DepthcueBackSc"
& "ale: RealPropName \n RootGO_SetBackground("
& "go: GO, c: ColorVal): Ok \n RootGO_SetDepthcueSwit"
& "ch(go: GO, b: BooleanVal): Ok \n RootGO_SetDepthcueCo"
& "lor(go: GO, c: ColorVal): Ok \n RootGO_SetDepthcue"
& "FrontPlane(go: GO, r: RealVal): Ok \n RootGO_SetDepthc"
& "ueBackPlane(go: GO, r: RealVal): Ok \n RootGO_SetDept"
& "hcueFrontScale(go: GO, r: RealVal): Ok \n RootGO_SetDe"
& "pthcueBackScale(go: GO, r: RealVal): Ok \nWHERE "
& " \n RootGO <: "
& "GroupGO & { changeCamera: (CameraGO) => Ok, \n s"
& "creenToWorld: (Point2, Real) => Point3 }\n Point2 = [2*Int]\n Boolean"
& "Val = BooleanPropVal + Bool \n RealVal"
& " = RealPropVal + Real + Int \n ColorVa"
& "l = ColorPropVal + Color + Text \n";
CONST E73 =
" BooleanProp_NewConst(b: Bool): BooleanPropVal\n BooleanProp_NewSync("
& "ah: AnimHandle, b: Bool): BooleanPropVal\n BooleanProp_NewAsync(beh: B"
& "ooleanPropAsyncBeh): BooleanPropVal\n BooleanProp_NewDep(beh: BooleanP"
& "ropDepBeh): BooleanPropVal\n BooleanProp_NewConstBeh(b: Bool): Boolean"
& "PropConstBeh\n BooleanProp_NewSyncBeh(ah: AnimHandle, b: Bool): Boolea"
& "nPropSyncBeh\n BooleanProp_NewAsyncBeh(compute: M1):BooleanPropAsyncBe"
& "h\n BooleanProp_NewDepBeh(compute: M2):BooleanPropDepBeh\n BooleanPro"
& "p_NewRequest(start dur: Num, value: M3): BooleanPropRequest\nWHERE\n B"
& "ooleanPropName <: PropName & { bind: (v: BooleanPropVal) => Prop }\n B"
& "ooleanPropVal <: PropVal & { getBeh: () => BooleanPropBeh,\n "
& " setBeh: (BooleanPropBeh) => Ok,\n "
& " get: () => Bool,\n value:"
& " (Num) => Bool }\n BooleanPropBeh <: PropBeh\n BooleanPropConstBeh <:"
& " BooleanPropBeh & { set: (Bool) => Ok }\n BooleanPropSyncBeh <: Boolea"
& "nPropBeh &\n { addRequest: (BooleanPropRequest) => Ok ! Prop_"
& "BadInterval,\n change: (Bool,Num) => Ok ! Prop_BadInterval "
& "}\n BooleanPropAsyncBeh <: BooleanPropBeh & { compute: M1 }\n Boolean"
& "PropDepBeh <: BooleanPropBeh & { compute: M2 }\n BooleanPropRequest <:"
& " PropRequest & { value: M3 }\n M1 = Self (X <: BooleanPropAsyncBeh) (R"
& "eal) => Bool\n M2 = Self (X <: BooleanPropDepBeh) (Real) => Bool\n M3"
& " = Self (X <: BooleanPropRequest) (Bool,Real) => Bool\n Num = Real + I"
& "nt\n";
CONST E74 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:47:00 PDT 1994 by najork *)\n(* Created on W"
& "ed Jun 1 17:28:37 PDT 1994 by najork *)\n\n\nmodule "
& "DiskGOWrap for DiskGO;\n\nlet TProto = clone (SurfaceGO_TProto, {});\n\n"
& "end module;\n";
CONST E75 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:45:56 PDT 1994 by najork *)\n(* Created on T"
& "ue May 31 17:30:50 PDT 1994 by najork *)\n\n\nmodule "
& "MarkerGOWrap for MarkerGO;\n\nlet TProto = clone (GO_TProto, {});\n\nen"
& "d module;\n";
CONST E76 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:43:38 PDT 1994 by najork *)\n(* Created on T"
& "ue May 31 11:42:47 PDT 1994 by najork *)\n\n\nmodule "
& "GraphicsBaseWrap for GraphicsBase;\n\nlet TProto = clone (ProxiedObj_TP"
& "roto, {});\n\nend module;\n";
CONST E77 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Wed Jul 20 "
& "17:45:01 PDT 1994 by najork *)\n(* Created on T"
& "ue May 31 11:37:20 PDT 1994 by najork *)\n\n\nmodule "
& "PerspCameraGOWrap for PerspCameraGO;\n\nlet TProto = clone (CameraGO_TP"
& "roto, {});\n\nend module;\n";
CONST E78 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Thu Jul 21 "
& "13:46:12 PDT 1994 by najork *)\n(* Created on F"
& "ri May 27 20:32:05 PDT 1994 by najork *)\n\n\nmodule "
& "PointPropWrap for PointProp;\n\n\nlet NameProto = clone (Prop_NameProto"
& ", {\n bind => meth (self, pv) PointProp_NameBind (self, pv) end\n});\n"
& "\n\nlet ValProto = clone (Prop_ValProto, {\n getBeh => meth (self) Poi"
& "ntProp_ValGetBeh (self) end,\n setBeh => meth (self, beh) PointProp_Va"
& "lSetBeh (self, beh) end,\n get => meth (self) PointProp_ValGet (sel"
& "f) end,\n value => meth (self, time) PointProp_ValValue (self, time) "
& "end\n});\n\n\nlet BehProto = clone (Prop_BehProto, {});\n\n\nlet ConstB"
& "ehProto = clone (BehProto, {\n set => meth (self, p) PointProp_ConstBe"
& "hSet (self, p) end\n});\n\n\nlet SyncBehProto = clone (BehProto, {\n a"
& "ddRequest => \n meth (self, req) \n PointProp_SyncBehAddRequest"
& " (self, req) \n end,\n linMoveTo =>\n meth (self, p, start, dur)"
& " \n PointProp_SyncBehLinMoveTo (self, p, start, dur) \n end,\n "
& " linMoveBy =>\n meth (self, p, start, dur)\n PointProp_SyncBehL"
& "inMoveBy (self, p, start, dur) \n end\n});\n\n\nlet AsyncBehProto = "
& "clone (BehProto, {\n compute => ok,\n});\n\n\nlet DepBehProto = clone "
& "(BehProto, {\n compute => ok,\n});\n\n\nlet RequestProto = clone (Prop"
& "_RequestProto, {\n value => ok,\n});\n\n\nend module;\n";
CONST E79 =
" BoxGO_New(p1 p2: PointVal): BoxGO \n BoxGO_Corner1: PointProp"
& "Name \n BoxGO_Corner2: PointPropName \n Box"
& "GO_SetCorner1(o: GO, p: PointVal): Ok \n BoxGO_SetCorner2(o: GO, p: Po"
& "intVal): Ok \nWHERE \n BoxGO <: "
& "SurfaceGO \n PointVal = PointPropVal + Point3 "
& " \n";
CONST E80 =
"(* Copyright (C) 1994, Digital Equipment Corporation "
& " *)\n(* Digital Internal Use Only "
& " *)\n(* All rights reserved. "
& " *)\n(* "
& " *)\n(* Last modified on Fri Jul 22 "
& "19:07:22 PDT 1994 by najork *)\n(* Created on F"
& "ri Jul 22 18:05:05 PDT 1994 by najork *)\n\n\nmodule "
& "MouseCBWrap for MouseCB;\n\nlet TProto = clone (ProxiedObj_TProto, {\n "
& " invoke => meth (self, mr) MouseCB_Invoke (self, mr) end\n});\n\nend mo"
& "dule;\n";
CONST E81 =
" Point3_Plus(a b: Point3): Point3 \n Point3_Minus(a b: P"
& "oint3): Point3 \n Point3_ScaleToLen(a: Point3, s: Num): Po"
& "int3 \n Point3_TimesScalar(a: Point3, s: Num): Point3 \n Point3_Leng"
& "th(a: Point3): Real \n Point3_Distance(a b: Point3): Re"
& "al \n Point3_MidPoint(a b: Point3): Point3 \nWHERE"
& " \n Point3 = [3*Num] "
& " \n Num = Real + Int\n";
CONST E82 =
" VectorLightGO_New(c: ColorVal, dir: PointVal): VectorLightGO \n V"
& "ectorLightGO_Direction: PointPropName \n Vec"
& "torLightGO_SetDirection(l: VectorLightGO, dir: PointVal): Ok \nWHERE "
& " \n VectorLi"
& "ghtGO <: LightGO \n PointVal "
& "= PointPropVal + Point3 \n ColorVal = "
& "ColorPropVal + Color + Text \n";
CONST E83 =
" MarkerTypeProp_NewConst(lt: MarkerType): MarkerTypePropVal "
& " \n MarkerTypeProp_NewSync(ah: AnimHandle, lt: MarkerType): MarkerType"
& "PropVal\n MarkerTypeProp_NewAsync(beh: MarkerTypePropAsyncBeh): Marker"
& "TypePropVal\n MarkerTypeProp_NewDep(beh: MarkerTypePropDepBeh): Marker"
& "TypePropVal \n MarkerTypeProp_NewConstBeh(lt: MarkerType): MarkerTyp"
& "ePropConstBeh \n MarkerTypeProp_NewSyncBeh(ah: AnimHandle, \n "
& " t: MarkerType): MarkerTypePropSyncBeh\n MarkerTy"
& "peProp_NewAsyncBeh(compute: M1):MarkerTypePropAsyncBeh \n Marke"
& "rTypeProp_NewDepBeh(compute: M2):MarkerTypePropDepBeh \n Ma"
& "rkerTypeProp_NewRequest(start dur: Num, value: M3): MarkerTypePropReque"
& "st \nWHERE "
& " \n MarkerTypePropName <: PropName & { bind: (v: MarkerTypePropVa"
& "l) => Prop }\n MarkerTypePropVal <: PropVal & { getBeh: () => MarkerTy"
& "pePropBeh, \n setBeh: (MarkerTyp"
& "ePropBeh) => Ok, \n get: () => Mar"
& "kerType, \n value: (Nu"
& "m) => MarkerType } \n MarkerTypePropBeh <: PropBeh "
& " \n MarkerTypePropConstBeh <: MarkerType"
& "PropBeh & { set: (MarkerType) => Ok }\n MarkerTypePropSyncBeh <: Marke"
& "rTypePropBeh & \n { addRequest: (Mark"
& "erTypePropRequest) => Ok ! Prop_BadInterval,\n change: (Marke"
& "rType,Num) => Ok ! Prop_BadInterval } \n MarkerTypePropAsyncBe"
& "h <: MarkerTypePropBeh & { compute: M1 } \n MarkerTypePropDep"
& "Beh <: MarkerTypePropBeh & { compute: M2 } \n MarkerTypePro"
& "pRequest <: PropRequest & { value: M3 } \n M1 = Self"
& " (X <: MarkerTypePropAsyncBeh) (Real) => MarkerType \n M2 = S"
& "elf (X <: MarkerTypePropDepBeh) (Real) => MarkerType \n M3 "
& "= Self (X <: MarkerTypePropRequest) (MarkerType,Real) => MarkerType\n "
& "MarkerType = Text (one of \"Dot\", \"Circ";
CONST E83_0 =
"le\", \"Cross\", \"Asterisk\", \"X\") \n Num = Real + Int\n";
CONST E84 =
" GroupGO_BadElement: Exception\n GroupGO_New(): GroupGO\n GroupGO_Ne"
& "wWithSizeHint(size: Int): GroupGO\nWHERE\n GroupGO <: GO & { add: (GO)"
& " => Ok,\n remove: (GO) => Ok ! GroupGO_BadElement,\n"
& " flush: () => Ok,\n content: () ="
& "> [GO] }\n";
CONST E85 =
" Prop_BadMethod: Exception \n Prop_BadInterval: Exception "
& " \nTYPES \n Prop <: ProxiedObj "
& " \n PropName <: ProxiedObj \n PropVal <: Pr"
& "oxiedObj \n PropBeh <: ProxiedObj \n PropR"
& "equest <: ProxiedObj & { start: () => Real, dur: () => Real } \n";
BEGIN
END ObLib3DBundle.