FCDocument/FCDController.h

Go to the documentation of this file.
00001 /*
00002     Copyright (C) 2005-2007 Feeling Software Inc.
00003     Portions of the code are:
00004     Copyright (C) 2005-2007 Sony Computer Entertainment America
00005     
00006     MIT License: http://www.opensource.org/licenses/mit-license.php
00007 */
00008 /*
00009     Based on the FS Import classes:
00010     Copyright (C) 2005-2006 Feeling Software Inc
00011     Copyright (C) 2005-2006 Autodesk Media Entertainment
00012     MIT License: http://www.opensource.org/licenses/mit-license.php
00013 */
00014 
00020 #ifndef _FCD_CONTROLLER_H_
00021 #define _FCD_CONTROLLER_H_
00022 
00023 #ifndef _FCD_ENTITY_H_
00024 #include "FCDocument/FCDEntity.h"
00025 #endif // _FCD_ENTITY_H_
00026 
00027 class FCDocument;
00028 class FCDGeometry;
00029 class FCDSkinController;
00030 class FCDMorphController;
00031 
00040 class FCOLLADA_EXPORT FCDController : public FCDEntity
00041 {
00042 private:
00043     DeclareObjectType(FCDEntity);
00044 
00045     DeclareParameterRef(FCDSkinController, skinController, FC("Skin"));
00046     DeclareParameterRef(FCDMorphController, morphController, FC("Morpher"));
00047 
00048 public:
00052     FCDController(FCDocument* document);
00053 
00055     virtual ~FCDController();
00056 
00060     virtual Type GetType() const { return CONTROLLER; };
00061 
00064     bool IsSkin() const { return skinController != NULL; }
00065 
00068     bool IsMorph() const { return morphController != NULL; }
00069 
00073     FCDSkinController* CreateSkinController();
00074 
00078     FCDMorphController* CreateMorphController();
00079 
00085     inline FCDSkinController* GetSkinController() { return skinController; }
00086     inline const FCDSkinController* GetSkinController() const { return skinController; } 
00093     inline FCDMorphController* GetMorphController() { return morphController; }
00094     inline const FCDMorphController* GetMorphController() const { return morphController; } 
00102     FCDEntity* GetBaseTarget();
00103     const FCDEntity* GetBaseTarget() const; 
00111     inline FCDGeometry* GetBaseGeometry() { return const_cast<FCDGeometry*>(const_cast<const FCDController*>(this)->GetBaseGeometry()); }
00112     const FCDGeometry* GetBaseGeometry() const; 
00120     inline FCDController* GetBaseGeometryController()   { return const_cast<FCDController*>(const_cast<const FCDController*>(this)->GetBaseGeometryController()); }
00121     const FCDController* GetBaseGeometryController() const; 
00122 };
00123 
00124 #endif // _FCD_CONTROLLER_H_
00125 

Generated on Thu Feb 14 16:58:33 2008 for FCollada by  doxygen 1.4.6-NO