/* Copyright (C) 1994, Digital Equipment Corporation                         */
/* Digital Internal Use Only                                                 */
/* All rights reserved.                                                      */
/*                                                                           */
/* Last modified on Thu Oct 12 13:16:26 PDT 1995 by najork                   */
/*       Created on Thu Mar  3 19:12:25 PST 1994 by najork                   */

import ("parseparams")
import ("vbtkit")

Interface ("X_PEX_Base")
Interface ("X_PEX_BaseProxy")
if SYSTEM_LIBS contains "X11" and SYSTEM_LIBS contains "DECPEX"
  include_dir ("x-pex")
else
  include_dir ("no-x-pex")
end

Interface ("X_OpenGL_Base")
Interface ("X_OpenGL_BaseProxy")
if SYSTEM_LIBS contains "X11" and SYSTEM_LIBS contains "OPENGL"
  include_dir ("x-opengl")
else
  include_dir ("no-x-opengl")
end

Interface ("Win_OpenGL_Base")
Interface ("Win_OpenGL_BaseProxy")
if equal (OS_TYPE, "WIN32") and SYSTEM_LIBS contains "OPENGL"
  include_dir ("win-opengl")
else
  include_dir ("no-win-opengl")
end

Module    ("Mth")
Module    ("AuxG")
Interface ("BSphere")
Module    ("Clock")
Module    ("Anim3D")
Module    ("AnimRequestQueue")
Interface ("AnimRequestQueuePrivate")
Module    ("AnimServer")
Interface ("ProxiedObj")

/* Points, Matrices, Quaternions */

Module    ("Point3")
Module    ("Matrix4")
Module    ("Quaternion")

/* Callback Objects */

Interface ("CB")

Module    ("MouseCB")
Interface ("MouseCBProxy")

Module    ("PositionCB")
Interface ("PositionCBProxy")

Module    ("KeyCB")
Interface ("KeyCBProxy")

/* Callback Stacks */

generic_module ("CBStack")

readonly proc CBStack (elt) is
  build_generic_intf (elt & "Stack", "CBStack", [elt], HIDDEN)
  build_generic_impl (elt & "Stack", "CBStack", [elt])
end

CBStack ("MouseCB")
CBStack ("PositionCB")
CBStack ("KeyCB")

/*** Graphics bases ***/

Module ("GraphicsBase")
interface ("GraphicsBasePrivate")

% Module    ("MK_Base")
% Interface ("MK_BaseProxy")

/*** Property Related Stuff ***/

Module    ("PropList")

/*** Animation Handle ***/

Module    ("AnimHandle")
Interface ("AnimHandlePrivate")
Interface ("AnimHandleProxy")

/*** Property Names and Property Values ***/

Module    ("Prop")
Interface ("PropPrivate")
Interface ("PropProxy")

Module    ("BooleanProp")
Interface ("BooleanPropPrivate")
Interface ("BooleanPropProxy")

Module    ("RealProp")
Interface ("RealPropPrivate")
Interface ("RealPropProxy")

Module    ("PointProp")
Interface ("PointPropPrivate")
Interface ("PointPropProxy")

Module    ("ColorProp")
Interface ("ColorPropPrivate")
Interface ("ColorPropProxy")

Module    ("RasterModeProp")
Interface ("RasterModePropPrivate")
Interface ("RasterModePropProxy")

Module    ("ShadingProp")
Interface ("ShadingPropPrivate")
Interface ("ShadingPropProxy")

Module    ("LineTypeProp")
Interface ("LineTypePropPrivate")
Interface ("LineTypePropProxy")

Module    ("MarkerTypeProp")
Interface ("MarkerTypePropPrivate")
Interface ("MarkerTypePropProxy")

Module    ("TransformProp")
Interface ("TransformPropPrivate")
Interface ("TransformPropProxy")

/*** Geometric Objects ***/

Module    ("GO")
Interface ("GOPrivate")

Module    ("GroupGO")
Interface ("GroupGOPrivate")
Interface ("GroupGOProxy")

Module    ("RootGO")
Interface ("RootGOPrivate")
Interface ("RootGOProxy")

Module    ("LineGO")
Interface ("LineGOProxy")

Module    ("MarkerGO")
Interface ("MarkerGOProxy")

Module    ("SurfaceGO")

Module    ("PolygonGO")
Interface ("PolygonGOProxy")

Module    ("QuadMeshGO")
Interface ("QuadMeshGOProxy")

Module    ("BoxGO")
Interface ("BoxGOProxy")

Module    ("SphereGO")
Interface ("SphereGOProxy")

Module    ("DiskGO")
Interface ("DiskGOProxy")

Module    ("CylinderGO")
Interface ("CylinderGOProxy")

Module    ("ConeGO")
Interface ("ConeGOProxy")

Module    ("TorusGO")
Interface ("TorusGOProxy")

Module    ("LightGO")

Module    ("AmbientLightGO")
Interface ("AmbientLightGOProxy")

Module    ("VectorLightGO")
Interface ("VectorLightGOProxy")

Module    ("PointLightGO")
Interface ("PointLightGOProxy")

Module    ("SpotLightGO")
Interface ("SpotLightGOProxy")

Module    ("CameraGO")
Interface ("CameraGOPrivate")	

Module    ("OrthoCameraGO")
Interface ("OrthoCameraGOProxy")

Module    ("PerspCameraGO")
Interface ("PerspCameraGOProxy")

/*** wrapping things up ***/

Library ("anim3D")
