packages feed

HGamer3D-Graphics3D-0.4.0: HGamer3D/Graphics3D/BaseAPI.hs

-- This source file is part of HGamer3D
-- (A project to enable 3D game development in Haskell)
-- For the latest info, see http://www.hgamer3d.org
--
-- (c) 2011-2014 Peter Althainz
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
--     http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.

-- Graphics.hs

-- | 3D Graphics for HGamer3D, public API.
module HGamer3D.Graphics3D.BaseAPI

(
  -- * Basic Types for the Graphics3D System
  Graphics3DSystem,
  Object3D,
  Camera,

  -- * Initializing the Graphics3D Subsystem
  
  -- |
  -- The initialization, step and free functions are called from the HGamer3D corresponding functions, therefore
  -- they do not need to be called in code, which includes HGamer3D - BaseAPI.
  
  initGraphics3D,
  stepGraphics3D,
  freeGraphics3D,

  -- * Creating, Updating and Removing of 3D Objects
  Graphics3DItem (..),
  
  -- * Creating simple 3D objects
  sphere,
  cube,
  cuboid,
  ikosaeder,
  dodekaeder,

  -- * Light
  Light,
  addLight,
  updateLight,
  removeLight,
  
  HGamer3D.Graphics3D.Internal.Light.setAmbientLight,
  pointLight,
  spotLight,
  spotLightSetDirection,
  directionalLight,

  -- * Material
  Material (..),
  
  -- * Misc Functions

  addCamera,
  removeCamera,
  updateCamera,
  cameraLookAt,
  cameraAdaptAspectRatio,

  addResourceLocationMedia,
  addResourceZipfileMedia,
  addResourceLocationGUI,

)

where

  import HGamer3D.Data
  import HGamer3D.Util
  
  import HGamer3D.Graphics3D.Internal.Base
  import HGamer3D.Graphics3D.Internal.Light
  import HGamer3D.Graphics3D.Internal.Shapes
  import HGamer3D.Graphics3D.Internal.Camera
  
  import HGamer3D.Graphics3D.Schema.Material
  
--  import HGamer3D.Graphics3D.Internal.PlatonShapes