Google

Main Page   Class Hierarchy   Compound List   File List   Compound Members  

sequence.h

00001 /*
00002     Copyright (C) 2001 by Jorrit Tyberghein
00003 
00004     This library is free software; you can redistribute it and/or
00005     modify it under the terms of the GNU Library General Public
00006     License as published by the Free Software Foundation; either
00007     version 2 of the License, or (at your option) any later version.
00008 
00009     This library is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012     Library General Public License for more details.
00013 
00014     You should have received a copy of the GNU Library General Public
00015     License along with this library; if not, write to the Free
00016     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00017 */
00018 
00019 #ifndef __IVARIA_SEQUENCE_H__
00020 #define __IVARIA_SEQUENCE_H__
00021 
00022 #include "csutil/scf.h"
00023 
00024 struct iSequenceManager;
00025 
00026 SCF_VERSION (iSequenceOperation, 0, 0, 1);
00027 
00032 struct iSequenceOperation : public iBase
00033 {
00042   virtual void Do (csTicks dt) = 0;
00043 };
00044 
00045 SCF_VERSION (iSequenceCondition, 0, 0, 1);
00046 
00051 struct iSequenceCondition : public iBase
00052 {
00061   virtual bool Condition (csTicks dt) = 0;
00062 };
00063 
00064 SCF_VERSION (iSequence, 0, 0, 1);
00065 
00072 struct iSequence : public iBase
00073 {
00078   virtual void AddOperation (csTicks time, iSequenceOperation* operation) = 0;
00079 
00084   virtual void AddRunSequence (csTicks time, iSequence* sequence) = 0;
00085 
00091   virtual void AddCondition (csTicks time, iSequenceCondition* condition,
00092         iSequence* trueSequence, iSequence* falseSequence) = 0;
00093 
00098   virtual void AddLoop (csTicks time, iSequenceCondition* condition,
00099         iSequence* sequence) = 0;
00100 
00104   virtual void Clear () = 0;
00105 
00109   virtual bool IsEmpty () = 0;
00110 };
00111 
00112 SCF_VERSION (iSequenceManager, 0, 0, 2);
00113 
00119 struct iSequenceManager : public iBase
00120 {
00125   virtual void Clear () = 0;
00126 
00131   virtual bool IsEmpty () = 0;
00132 
00141   virtual void Suspend () = 0;
00142 
00148   virtual void Resume () = 0;
00149 
00153   virtual bool IsSuspended () = 0;
00154 
00167   virtual void TimeWarp (csTicks time, bool skip) = 0;
00168 
00174   virtual csTicks GetMainTime () = 0;
00175 
00181   virtual iSequence* NewSequence () = 0;
00182 
00190   virtual void RunSequence (csTicks time, iSequence* sequence) = 0;
00191 };
00192 
00193 #endif // __IVARIA_SEQUENCE_H__
00194 

Generated for Crystal Space by doxygen 1.2.5 written by Dimitri van Heesch, ©1997-2000