source file ARTFactory.h

Go to the documentation of this file.

#ifndef ART_FACTORY_H
#define ART_FACTORY_H

//************************************************************************************************************
// Copyright (c) 2005 Redway3D. All rights reserved. Redway3D is a registered trademark. Any reproduction and /
// or utilization of any material from this document without Redway3D?s express authorization are prohibited.
//************************************************************************************************************

#include "ART.h"


//************************************************************************************************************
//*** Planetary framework classes IDs ************************************************************************
//************************************************************************************************************

// @cond ART_DOC_INTERNAL
// CID class values are generated from the result of RED::Object::GetIDFromString, using
// the #define statement string name without the "CID_class_" prefix.

#define CID_class_ARTWorld             351977768U
#define CID_class_ARTIWorld            2044920683U
#define CID_class_ARTIOptions          2127652593U
#define CID_class_ARTIStatistics       3359407129U
#define CID_class_ARTPlanet            2992463781U
#define CID_class_ARTIPlanet           1575310925U
#define CID_class_ARTStar              4026970217U
#define CID_class_ARTIStar             874518652U
#define CID_class_ARTObserver          3453770378U
#define CID_class_ARTIObserver         581399666U
#define CID_class_ARTAssetManager      3063143589U
#define CID_class_ARTIAssetManager     1005377235U
#define CID_class_ARTAtlas             1552352868U
#define CID_class_ARTWangTile          1456472717U
#define CID_class_ARTIEntity           1004435584U
#define CID_class_ARTEntity            3563483496U
#define CID_class_ARTCloudsCover       2961356835U
#define CID_class_ARTOctave            2773088714U
#define CID_class_ARTFractal           2563820964U
#define CID_class_ARTOctaveTex         2229700961U
#define CID_class_ARTPrism             2690410705U
#define CID_class_ARTPrintMap          1563624618U
#define CID_class_ARTGeometry          3286307014U
#define CID_class_ARTIGeometry         748305982U
#define CID_class_ARTLight             1167559836U
#define CID_class_ARTILight            680414943U
#define CID_class_ARTCamera            3780303621U
#define CID_class_ARTICamera           250270445U
#define CID_class_ARTCloud             483509951U
#define CID_class_ARTReflectionProbe   2122352821U
#define CID_class_ARTIReflectionProbe  346626301U
#define CID_class_ARTMaterial          250935654U
#define CID_class_ARTIMaterial         3538223825U
#define CID_class_ARTGroundMap         4098800459U
#define CID_class_ARTGroundArea        1783508069U
#define CID_class_ARTIAtlas            2999414599U

#define CI_ARTAtlas                    0x00010700
#define CI_ARTOctave                   0x00010001
#define CI_ARTWangTile                 0x00010302
#define CI_ARTOctaveTex                0x00010403
#define CI_ARTPrism                    0x00010304
#define CI_ARTFractal                  0x00010205
#define CI_ARTPrintMap                 0x00010006     
#define CI_ARTCamera                   0x00010007     
#define CI_ARTGeometry                 0x00011608
#define CI_ARTLight                    0x00010009
#define CI_ARTReflectionProbe          0x0001000a     
#define CI_ARTMaterial                 0x0001040b
#define CI_ARTGroundMap                0x0001020c
#define CI_ARTGroundArea               0x0001000d


// @endcond


//************************************************************************************************************
//*** Advanced Real Time framework classes *******************************************************************
//************************************************************************************************************

#define CID_ARTWorld     CID_class_ARTWorld


#define CID_ARTPlanet     CID_class_ARTPlanet


#define CID_ARTStar     CID_class_ARTStar


#define CID_ARTObserver     CID_class_ARTObserver


#define CID_ARTCamera     CID_class_ARTCamera


#define CID_ARTAssetManager     CID_class_ARTAssetManager


#define CID_ARTGeometry     CID_class_ARTGeometry


#define CID_ARTLight     CID_class_ARTLight


#define CID_ARTReflectionProbe     CID_class_ARTReflectionProbe


#define CID_ARTMaterial     CID_class_ARTMaterial


//************************************************************************************************************
//*** ART::Factory class *************************************************************************************
//************************************************************************************************************

namespace ART
{
  // ART::Factory class:
  // -------------------
  
  class ARTExp Factory
  {
    public:
      
      // Object creation and destruction:
      // --------------------------------
      
      static RED::Object* CreateInstance( const RED::CID& iCID );
      
      
      static RED_RC DeleteInstance( RED::Object* iObject );
      
      
    protected:
      
      // Internal data:
      // --------------
      
      static RED::Object* _world;
      
      static RED::Object* _observer;
      
      static RED::Object* _assetmgr;
  };
};

#endif