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 
00042 
00045 #define CS_SEQUENCE_LIGHTCHANGE_NONE 0
00046 #define CS_SEQUENCE_LIGHTCHANGE_LESS 1
00047 #define CS_SEQUENCE_LIGHTCHANGE_GREATER 2
00048 
00049 
00050 SCF_VERSION (iParameterESM, 0, 0, 1);
00051 
00079 struct iParameterESM : public iBase
00080 {
00087   virtual iBase* GetValue (iBase* params = 0) const = 0;
00088 
00096   virtual bool IsConstant () const = 0;
00097 };
00098 
00099 SCF_VERSION (iEngineSequenceParameters, 0, 0, 2);
00100 
00128 struct iEngineSequenceParameters : public iBase
00129 {
00133   virtual int GetParameterCount () const = 0;
00134 
00138   virtual iBase* GetParameter (int idx) const = 0;
00139 
00143   virtual iBase* GetParameter (const char* name) const = 0;
00144 
00148   virtual int GetParameterIdx (const char* name) const = 0;
00149 
00153   virtual const char* GetParameterName (int idx) const = 0;
00154 
00160   virtual void AddParameter (const char* name, iBase* def_value = 0) = 0;
00161 
00165   virtual void SetParameter (int idx, iBase* value) = 0;
00166 
00170   virtual void SetParameter (const char* name, iBase* value) = 0;
00171 
00178   virtual csPtr<iParameterESM> CreateParameterESM (const char* name) = 0;
00179 };
00180 
00181 SCF_VERSION (iSequenceWrapper, 0, 3, 0);
00182 
00208 struct iSequenceWrapper : public iBase
00209 {
00213   virtual iObject* QueryObject () = 0;
00214 
00223   virtual iSequence* GetSequence () = 0;
00224 
00232   virtual iEngineSequenceParameters* CreateBaseParameterBlock () = 0;
00233 
00238   virtual iEngineSequenceParameters* GetBaseParameterBlock () = 0;
00239 
00251   virtual csPtr<iEngineSequenceParameters> CreateParameterBlock () = 0; 
00252 
00264   virtual void AddOperationSetVariable (csTicks time,
00265                 iSharedVariable* var, float value, float dvalue = 0) = 0;
00266 
00279   virtual void AddOperationSetVariable (csTicks time,
00280                 iSharedVariable* var, iSharedVariable* value,
00281                 iSharedVariable* dvalue = 0) = 0;
00282 
00289   virtual void AddOperationSetVariable (csTicks time,
00290                 iSharedVariable* var, const csVector3& v) = 0;
00291 
00298   virtual void AddOperationSetVariable (csTicks time,
00299                 iSharedVariable* var, const csColor& c) = 0;
00300 
00308   virtual void AddOperationSetMaterial (csTicks time, iParameterESM* mesh,
00309                   iParameterESM* mat) = 0;
00310 
00318   virtual void AddOperationSetPolygonMaterial (csTicks time,
00319                   iParameterESM* polygon, iParameterESM* mat) = 0;
00320 
00328   virtual void AddOperationSetLight (csTicks time, iParameterESM* light,
00329                   const csColor& color) = 0;
00330 
00341   virtual void AddOperationFadeLight (csTicks time, iParameterESM* light,
00342                   const csColor& color, csTicks duration) = 0;
00343 
00353   virtual void AddOperationSetAmbient (csTicks time, iParameterESM* sector,
00354                   const csColor& color, iSharedVariable *colorvar) = 0;
00355 
00366   virtual void AddOperationFadeAmbient (csTicks time, iParameterESM* sector,
00367                   const csColor& color, csTicks duration) = 0;
00368 
00376   virtual void AddOperationRandomDelay (csTicks time, int min, int max) = 0;
00377 
00385   virtual void AddOperationSetMeshColor (csTicks time, iParameterESM* mesh,
00386                   const csColor& color) = 0;
00387 
00398   virtual void AddOperationFadeMeshColor (csTicks time, iParameterESM* mesh,
00399                   const csColor& color, csTicks duration) = 0;
00400 
00409   virtual void AddOperationSetFog (csTicks time, iParameterESM* sector,
00410                   const csColor& color, float density) = 0;
00411 
00423   virtual void AddOperationFadeFog (csTicks time, iParameterESM* sector,
00424                   const csColor& color, float density, csTicks duration) = 0;
00425 
00444   virtual void AddOperationRotateDuration (csTicks time, iParameterESM* mesh,
00445                 int axis1, float tot_angle1,
00446                 int axis2, float tot_angle2,
00447                 int axis3, float tot_angle3,
00448                 const csVector3& offset,
00449                 csTicks duration) = 0;
00450 
00461   virtual void AddOperationMoveDuration (csTicks time, iParameterESM* mesh,
00462                 const csVector3& offset, csTicks duration) = 0;
00463 
00471   virtual void AddOperationTriggerState (csTicks time,
00472                   iParameterESM* trigger, bool en) = 0;
00473 
00483   virtual void AddOperationCheckTrigger (csTicks time,
00484                   iParameterESM* trigger, csTicks delay) = 0;
00485 
00499   virtual void AddOperationTestTrigger (csTicks time,
00500                   iParameterESM* trigger,
00501                   iSequence* trueSequence,
00502                   iSequence* falseSequence) = 0;
00503 };
00504 
00505 SCF_VERSION (iSequenceTrigger, 0, 0, 3);
00506 
00526 struct iSequenceTrigger : public iBase
00527 {
00531   virtual iObject* QueryObject () = 0;
00532 
00536   virtual void AddConditionInSector (iSector* sector) = 0;
00537 
00541   virtual void AddConditionInSector (iSector* sector,
00542         const csBox3& box) = 0;
00543 
00547   virtual void AddConditionInSector (iSector* sector,
00548         const csSphere& sphere) = 0;
00549 
00553   virtual void AddConditionSectorVisible (iSector* sector) = 0;
00554 
00558   virtual void AddConditionMeshClick (iMeshWrapper* mesh) = 0;
00559 
00571   virtual void AddConditionLightChange (iLight *whichlight, 
00572                                         int oper, const csColor& color) = 0;
00573 
00579   virtual void AddConditionManual () = 0;
00580 
00585   virtual void SetEnabled (bool en) = 0;
00586 
00590   virtual bool IsEnabled () const = 0;
00591 
00595   virtual void ClearConditions () = 0;
00596 
00600   virtual void Trigger () = 0;
00601 
00605   virtual void SetParameters (iEngineSequenceParameters* params) = 0;
00606 
00610   virtual iEngineSequenceParameters* GetParameters () const = 0;
00611 
00618   virtual void FireSequence (csTicks delay, iSequenceWrapper* seq) = 0;
00619 
00623   virtual iSequenceWrapper* GetFiredSequence () = 0;
00624 
00630   virtual void TestConditions (csTicks delay) = 0;
00631 
00639   virtual bool CheckState () = 0;
00640 
00656   virtual void ForceFire (bool now = false) = 0;
00657 };
00658 
00659 SCF_VERSION (iSequenceTimedOperation, 0, 0, 1);
00660 
00680 struct iSequenceTimedOperation : public iBase
00681 {
00685   virtual void Do (float time, iBase* params) = 0;
00686 };
00687 
00688 SCF_VERSION (iEngineSequenceManager, 0, 0, 3);
00689 
00703 struct iEngineSequenceManager : public iBase
00704 {
00709   virtual iSequenceManager* GetSequenceManager () = 0;
00710 
00716   virtual void SetCamera (iCamera* camera) = 0;
00717 
00721   virtual iCamera* GetCamera () = 0;
00722   
00726   virtual csPtr<iParameterESM> CreateParameterESM (iBase* value) = 0;
00727 
00728   //-----------------------------------------------------------------------
00729 
00733   virtual csPtr<iSequenceTrigger> CreateTrigger (const char* name) = 0;
00734 
00738   virtual void RemoveTrigger (iSequenceTrigger* trigger) = 0;
00739 
00743   virtual void RemoveTriggers () = 0;
00744 
00748   virtual int GetTriggerCount () const = 0;
00749 
00753   virtual iSequenceTrigger* GetTrigger (int idx) const = 0;
00754 
00758   virtual iSequenceTrigger* FindTriggerByName (const char* name) const = 0;
00759 
00766   virtual bool FireTriggerByName (const char *name, bool now = false) const = 0;
00767 
00768   //-----------------------------------------------------------------------
00769 
00773   virtual csPtr<iSequenceWrapper> CreateSequence (const char* name) = 0;
00774 
00778   virtual void RemoveSequence (iSequenceWrapper* seq) = 0;
00779 
00783   virtual void RemoveSequences () = 0;
00784 
00788   virtual int GetSequenceCount () const = 0;
00789 
00793   virtual iSequenceWrapper* GetSequence (int idx) const = 0;
00794 
00798   virtual iSequenceWrapper* FindSequenceByName (const char* name) const = 0;
00799 
00803   virtual bool RunSequenceByName (const char *name,int delay) const = 0;
00804 
00805   //-----------------------------------------------------------------------
00806 
00814   virtual void FireTimedOperation (csTicks delta, csTicks duration,
00815         iSequenceTimedOperation* op, iBase* params = 0) = 0;
00816 
00817   //-----------------------------------------------------------------------
00818 };
00819 
00820 #endif // __CS_IVARIA_ENGSEQ_H__
00821 

Generated for Crystal Space by doxygen 1.2.18