- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# 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