CrystalSpace

Public API Reference

Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

ivaria/engseq.h

00001 /*
00002     Copyright (C) 2002 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 __CS_IVARIA_ENGSEQ_H__
00020 #define __CS_IVARIA_ENGSEQ_H__
00021 
00022 #include "csutil/scf.h"
00023 
00024 struct iSequence;
00025 struct iSequenceManager;
00026 struct iSequenceTrigger;
00027 struct iSequenceWrapper;
00028 struct iMaterialWrapper;
00029 struct iSector;
00030 struct iMeshWrapper;
00031 struct iObject;
00032 struct iLight;
00033 struct iCamera;
00034 class csColor;
00035 class csReversibleTransform;
00036 class csVector3;
00037 class csBox3;
00038 class csSphere;
00039 struct iSharedVariable;
00040 
00041 SCF_VERSION (iParameterESM, 0, 0, 1);
00042 
00059 struct iParameterESM : public iBase
00060 {
00066   virtual iBase* GetValue (iBase* params = 0) const = 0;
00067 
00075   virtual bool IsConstant () const = 0;
00076 };
00077 
00078 SCF_VERSION (iEngineSequenceParameters, 0, 0, 2);
00079 
00092 struct iEngineSequenceParameters : public iBase
00093 {
00097   virtual int GetParameterCount () const = 0;
00098 
00102   virtual iBase* GetParameter (int idx) const = 0;
00103 
00107   virtual iBase* GetParameter (const char* name) const = 0;
00108 
00112   virtual int GetParameterIdx (const char* name) const = 0;
00113 
00117   virtual const char* GetParameterName (int idx) const = 0;
00118 
00124   virtual void AddParameter (const char* name, iBase* def_value = 0) = 0;
00125 
00129   virtual void SetParameter (int idx, iBase* value) = 0;
00130 
00134   virtual void SetParameter (const char* name, iBase* value) = 0;
00135 
00142   virtual csPtr<iParameterESM> CreateParameterESM (const char* name) = 0;
00143 };
00144 
00145 SCF_VERSION (iSequenceWrapper, 0, 3, 0);
00146 
00158 struct iSequenceWrapper : public iBase
00159 {
00163   virtual iObject* QueryObject () = 0;
00164 
00172   virtual iSequence* GetSequence () = 0;
00173 
00181   virtual iEngineSequenceParameters* CreateBaseParameterBlock () = 0;
00182 
00187   virtual iEngineSequenceParameters* GetBaseParameterBlock () = 0;
00188 
00200   virtual csPtr<iEngineSequenceParameters> CreateParameterBlock () = 0; 
00201 
00207   virtual void AddOperationSetVariable (csTicks time,
00208                 iSharedVariable* var, float value, float dvalue = 0) = 0;
00209 
00217   virtual void AddOperationSetVariable (csTicks time,
00218                 iSharedVariable* var, iSharedVariable* value,
00219                 iSharedVariable* dvalue = 0) = 0;
00220 
00224   virtual void AddOperationSetVariable (csTicks time,
00225                 iSharedVariable* var, const csVector3& v) = 0;
00226 
00230   virtual void AddOperationSetVariable (csTicks time,
00231                 iSharedVariable* var, const csColor& c) = 0;
00232 
00236   virtual void AddOperationSetMaterial (csTicks time, iParameterESM* mesh,
00237                   iParameterESM* mat) = 0;
00238 
00242   virtual void AddOperationSetPolygonMaterial (csTicks time,
00243                   iParameterESM* polygon, iParameterESM* mat) = 0;
00244 
00248   virtual void AddOperationSetLight (csTicks time, iParameterESM* light,
00249                   const csColor& color) = 0;
00250 
00254   virtual void AddOperationFadeLight (csTicks time, iParameterESM* light,
00255                   const csColor& color, csTicks duration) = 0;
00256 
00260   virtual void AddOperationSetAmbient (csTicks time, iParameterESM* light,
00261                   const csColor& color, iSharedVariable *colorvar) = 0;
00262 
00266   virtual void AddOperationFadeAmbient (csTicks time, iParameterESM* light,
00267                   const csColor& color, csTicks duration) = 0;
00268 
00273   virtual void AddOperationRandomDelay(csTicks time,int min, int max) = 0;
00274 
00278   virtual void AddOperationSetMeshColor (csTicks time, iParameterESM* mesh,
00279                   const csColor& color) = 0;
00280 
00284   virtual void AddOperationFadeMeshColor (csTicks time, iParameterESM* mesh,
00285                   const csColor& color, csTicks duration) = 0;
00286 
00290   virtual void AddOperationSetFog (csTicks time, iParameterESM* sector,
00291                   const csColor& color, float density) = 0;
00292 
00296   virtual void AddOperationFadeFog (csTicks time, iParameterESM* sector,
00297                   const csColor& color, float density, csTicks duration) = 0;
00298 
00304   virtual void AddOperationRotateDuration (csTicks time, iParameterESM* mesh,
00305                 int axis1, float tot_angle1,
00306                 int axis2, float tot_angle2,
00307                 int axis3, float tot_angle3,
00308                 const csVector3& offset,
00309                 csTicks duration) = 0;
00310 
00315   virtual void AddOperationMoveDuration (csTicks time, iParameterESM* mesh,
00316                 const csVector3& offset, csTicks duration) = 0;
00317 
00321   virtual void AddOperationTriggerState (csTicks time,
00322                   iParameterESM* trigger, bool en) = 0;
00323 
00329   virtual void AddOperationCheckTrigger (csTicks time,
00330                   iParameterESM* trigger, csTicks delay) = 0;
00331 
00338   virtual void AddOperationTestTrigger (csTicks time,
00339                   iParameterESM* trigger,
00340                   iSequence* trueSequence,
00341                   iSequence* falseSequence) = 0;
00342 };
00343 
00344 SCF_VERSION (iSequenceTrigger, 0, 0, 3);
00345 
00351 struct iSequenceTrigger : public iBase
00352 {
00356   virtual iObject* QueryObject () = 0;
00357 
00361   virtual void AddConditionInSector (iSector* sector) = 0;
00362 
00366   virtual void AddConditionInSector (iSector* sector,
00367         const csBox3& box) = 0;
00368 
00372   virtual void AddConditionInSector (iSector* sector,
00373         const csSphere& sphere) = 0;
00374 
00378   virtual void AddConditionSectorVisible (iSector* sector) = 0;
00379 
00383   virtual void AddConditionMeshClick (iMeshWrapper* mesh) = 0;
00384 
00391   virtual void AddConditionLightChange (iLight *whichlight, 
00392                                         int oper, const csColor& col) = 0;
00393 
00399   virtual void AddConditionManual () = 0;
00400 
00405   virtual void SetEnabled (bool en) = 0;
00406 
00410   virtual bool IsEnabled () const = 0;
00411 
00415   virtual void ClearConditions () = 0;
00416 
00420   virtual void Trigger () = 0;
00421 
00425   virtual void SetParameters (iEngineSequenceParameters* params) = 0;
00426 
00430   virtual iEngineSequenceParameters* GetParameters () const = 0;
00431 
00438   virtual void FireSequence (csTicks delay, iSequenceWrapper* seq) = 0;
00439 
00443   virtual iSequenceWrapper* GetFiredSequence () = 0;
00444 
00450   virtual void TestConditions (csTicks delay) = 0;
00451 
00459   virtual bool CheckState () = 0;
00460 
00476   virtual void ForceFire (bool now = false) = 0;
00477 };
00478 
00479 SCF_VERSION (iSequenceTimedOperation, 0, 0, 1);
00480 
00490 struct iSequenceTimedOperation : public iBase
00491 {
00495   virtual void Do (float time, iBase* params) = 0;
00496 };
00497 
00498 SCF_VERSION (iEngineSequenceManager, 0, 0, 3);
00499 
00504 struct iEngineSequenceManager : public iBase
00505 {
00510   virtual iSequenceManager* GetSequenceManager () = 0;
00511 
00517   virtual void SetCamera (iCamera* camera) = 0;
00518 
00522   virtual iCamera* GetCamera () = 0;
00523   
00527   virtual csPtr<iParameterESM> CreateParameterESM (iBase* value) = 0;
00528 
00529   //-----------------------------------------------------------------------
00530 
00534   virtual csPtr<iSequenceTrigger> CreateTrigger (const char* name) = 0;
00535 
00539   virtual void RemoveTrigger (iSequenceTrigger* trigger) = 0;
00540 
00544   virtual void RemoveTriggers () = 0;
00545 
00549   virtual int GetTriggerCount () const = 0;
00550 
00554   virtual iSequenceTrigger* GetTrigger (int idx) const = 0;
00555 
00559   virtual iSequenceTrigger* FindTriggerByName (const char* name) const = 0;
00560 
00567   virtual bool FireTriggerByName (const char *name, bool now = false) const = 0;
00568 
00569   //-----------------------------------------------------------------------
00570 
00574   virtual csPtr<iSequenceWrapper> CreateSequence (const char* name) = 0;
00575 
00579   virtual void RemoveSequence (iSequenceWrapper* seq) = 0;
00580 
00584   virtual void RemoveSequences () = 0;
00585 
00589   virtual int GetSequenceCount () const = 0;
00590 
00594   virtual iSequenceWrapper* GetSequence (int idx) const = 0;
00595 
00599   virtual iSequenceWrapper* FindSequenceByName (const char* name) const = 0;
00600 
00604   virtual bool RunSequenceByName (const char *name,int delay) const = 0;
00605 
00606   //-----------------------------------------------------------------------
00607 
00615   virtual void FireTimedOperation (csTicks delta, csTicks duration,
00616         iSequenceTimedOperation* op, iBase* params = 0) = 0;
00617 
00618   //-----------------------------------------------------------------------
00619 };
00620 
00621 #endif // __CS_IVARIA_ENGSEQ_H__
00622 

Generated for Crystal Space by doxygen 1.2.18