iTrackSet.h

Go to the documentation of this file.
00001 /**********************************************************************
00002 FILE: ITrackSet.h
00003 
00004 DESCRIPTION:    
00005     Interfaces for track sets
00006 
00007 HISTORY:
00008     leonarni|Feb.23.2005 - creation
00009 
00010     Copyright (c) 2005, All Rights Reserved.
00011 **********************************************************************/
00012 
00013 #pragma once
00014 
00015 #include "iFnPub.h"
00016 // forward declarations
00017 class Animatable;
00018 class INode;
00019 
00021 #define IID_ANIM_TRACK Interface_ID(0x481f0fff, 0x520478f5)
00022 
00024 
00033 class IAnimTrack: public FPMixinInterface
00034 {
00035 public:
00036     // Function Publishing System
00037     enum {
00038         get_node,
00039         sub_anim_count,
00040         get_sub_anim,
00041         get_sub_anim_index,
00042         get_path_name,
00043         set
00044     };
00045 
00046 public:
00049     virtual INode* GetNode() const = 0;
00053     virtual int SubAnimCount() const = 0;
00058     virtual Animatable* GetSubAnim(int index) const = 0;
00063     virtual int GetSubAnimIndex(int index) const = 0;
00066     virtual const MSTR& GetPathName() const = 0;
00071     virtual void Set(MCHAR* pathname) = 0;
00072 
00075     virtual Control* GetLeafController() const = 0;
00076 
00077     using FPMixinInterface::GetInterface;
00082     static IAnimTrack* GetInterface(InterfaceServer& is) {
00083         return static_cast<IAnimTrack*>(is.GetInterface(IID_ANIM_TRACK));
00084     };
00085 
00086     // From FPMixinInterface
00087     FPInterfaceDesc* GetDesc();     // Must implement
00088 };
00089