CrystalSpace

Public API Reference

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

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 iPolygon3D;
00032 struct iObject;
00033 struct iLight;
00034 struct iCamera;
00035 class csColor;
00036 class csReversibleTransform;
00037 class csVector3;
00038 class csBox3;
00039 class csSphere;
00040 struct iSharedVariable;
00041 
00042 SCF_VERSION (iParameterESM, 0, 0, 1);
00043 
00060 struct iParameterESM : public iBase
00061 {
00067   virtual iBase* GetValue (iBase* params = NULL) const = 0;
00068 
00076   virtual bool IsConstant () const = 0;
00077 };
00078 
00079 SCF_VERSION (iEngineSequenceParameters, 0, 0, 2);
00080 
00093 struct iEngineSequenceParameters : public iBase
00094 {
00098   virtual int GetParameterCount () const = 0;
00099 
00103   virtual iBase* GetParameter (int idx) const = 0;
00104 
00108   virtual iBase* GetParameter (const char* name) const = 0;
00109 
00113   virtual int GetParameterIdx (const char* name) const = 0;
00114 
00118   virtual const char* GetParameterName (int idx) const = 0;
00119 
00125   virtual void AddParameter (const char* name, iBase* def_value = NULL) = 0;
00126 
00130   virtual void SetParameter (int idx, iBase* value) = 0;
00131 
00135   virtual void SetParameter (const char* name, iBase* value) = 0;
00136 
00143   virtual csPtr<iParameterESM> CreateParameterESM (const char* name) = 0;
00144 };
00145 
00146 SCF_VERSION (iSequenceWrapper, 0, 2, 0);
00147 
00159 struct iSequenceWrapper : public iBase
00160 {
00164   virtual iObject* QueryObject () = 0;
00165 
00173   virtual iSequence* GetSequence () = 0;
00174 
00182   virtual iEngineSequenceParameters* CreateBaseParameterBlock () = 0;
00183 
00188   virtual iEngineSequenceParameters* GetBaseParameterBlock () = 0;
00189 
00201   virtual csPtr<iEngineSequenceParameters> CreateParameterBlock () = 0; 
00202 
00206   virtual void AddOperationSetMaterial (csTicks time, iParameterESM* mesh,
00207                   iParameterESM* mat) = 0;
00208 
00212   virtual void AddOperationSetPolygonMaterial (csTicks time,
00213                   iParameterESM* polygon, iParameterESM* mat) = 0;
00214 
00218   virtual void AddOperationSetLight (csTicks time, iParameterESM* light,
00219                   const csColor& color) = 0;
00220 
00224   virtual void AddOperationFadeLight (csTicks time, iParameterESM* light,
00225                   const csColor& color, csTicks duration) = 0;
00226 
00230   virtual void AddOperationSetAmbient (csTicks time, iParameterESM* light,
00231                   const csColor& color,iSharedVariable *colorvar) = 0;
00232 
00236   virtual void AddOperationFadeAmbient (csTicks time, iParameterESM* light,
00237                   const csColor& color, csTicks duration) = 0;
00238 
00243   virtual void AddOperationRandomDelay(csTicks time,int min, int max) = 0;
00244 
00248   virtual void AddOperationSetMeshColor (csTicks time, iParameterESM* mesh,
00249                   const csColor& color) = 0;
00250 
00254   virtual void AddOperationFadeMeshColor (csTicks time, iParameterESM* mesh,
00255                   const csColor& color, csTicks duration) = 0;
00256 
00260   virtual void AddOperationSetFog (csTicks time, iParameterESM* sector,
00261                   const csColor& color, float density) = 0;
00262 
00266   virtual void AddOperationFadeFog (csTicks time, iParameterESM* sector,
00267                   const csColor& color, float density, csTicks duration) = 0;
00268 
00274   virtual void AddOperationRotateDuration (csTicks time, iParameterESM* mesh,
00275                 int axis1, float tot_angle1,
00276                 int axis2, float tot_angle2,
00277                 int axis3, float tot_angle3,
00278                 const csVector3& offset,
00279                 csTicks duration) = 0;
00280 
00285   virtual void AddOperationMoveDuration (csTicks time, iParameterESM* mesh,
00286                 const csVector3& offset, csTicks duration) = 0;
00287 
00291   virtual void AddOperationTriggerState (csTicks time,
00292                   iParameterESM* trigger, bool en) = 0;
00293 
00299   virtual void AddOperationCheckTrigger (csTicks time,
00300                   iParameterESM* trigger, csTicks delay) = 0;
00301 
00308   virtual void AddOperationTestTrigger (csTicks time,
00309                   iParameterESM* trigger,
00310                   iSequence* trueSequence,
00311                   iSequence* falseSequence) = 0;
00312 };
00313 
00314 SCF_VERSION (iSequenceTrigger, 0, 0, 3);
00315 
00321 struct iSequenceTrigger : public iBase
00322 {
00326   virtual iObject* QueryObject () = 0;
00327 
00331   virtual void AddConditionInSector (iSector* sector) = 0;
00332 
00336   virtual void AddConditionInSector (iSector* sector,
00337         const csBox3& box) = 0;
00338 
00342   virtual void AddConditionInSector (iSector* sector,
00343         const csSphere& sphere) = 0;
00344 
00348   virtual void AddConditionSectorVisible (iSector* sector) = 0;
00349 
00353   virtual void AddConditionMeshClick (iMeshWrapper* mesh) = 0;
00354 
00361   virtual void AddConditionLightChange (iLight *whichlight, 
00362                                         int oper, const csColor& col) = 0;
00363 
00369   virtual void AddConditionManual () = 0;
00370 
00375   virtual void SetEnabled (bool en) = 0;
00376 
00380   virtual bool IsEnabled () const = 0;
00381 
00385   virtual void ClearConditions () = 0;
00386 
00390   virtual void Trigger () = 0;
00391 
00395   virtual void SetParameters (iEngineSequenceParameters* params) = 0;
00396 
00400   virtual iEngineSequenceParameters* GetParameters () const = 0;
00401 
00406   virtual void FireSequence (csTicks delay, iSequenceWrapper* seq) = 0;
00407 
00411   virtual iSequenceWrapper* GetFiredSequence () = 0;
00412 
00418   virtual void TestConditions (csTicks delay) = 0;
00419 
00427   virtual bool CheckState () = 0;
00428 
00444   virtual void ForceFire (bool now = false) = 0;
00445 };
00446 
00447 SCF_VERSION (iSequenceTimedOperation, 0, 0, 1);
00448 
00458 struct iSequenceTimedOperation : public iBase
00459 {
00463   virtual void Do (float time, iBase* params) = 0;
00464 };
00465 
00466 SCF_VERSION (iEngineSequenceManager, 0, 0, 3);
00467 
00472 struct iEngineSequenceManager : public iBase
00473 {
00478   virtual iSequenceManager* GetSequenceManager () = 0;
00479 
00485   virtual void SetCamera (iCamera* camera) = 0;
00486 
00490   virtual iCamera* GetCamera () = 0;
00491   
00495   virtual csPtr<iParameterESM> CreateParameterESM (iBase* value) = 0;
00496 
00497   //-----------------------------------------------------------------------
00498 
00502   virtual csPtr<iSequenceTrigger> CreateTrigger (const char* name) = 0;
00503 
00507   virtual void RemoveTrigger (iSequenceTrigger* trigger) = 0;
00508 
00512   virtual void RemoveTriggers () = 0;
00513 
00517   virtual int GetTriggerCount () const = 0;
00518 
00522   virtual iSequenceTrigger* GetTrigger (int idx) const = 0;
00523 
00527   virtual iSequenceTrigger* FindTriggerByName (const char* name) const = 0;
00528 
00535   virtual bool FireTriggerByName (const char *name, bool now = false) const = 0;
00536 
00537   //-----------------------------------------------------------------------
00538 
00542   virtual csPtr<iSequenceWrapper> CreateSequence (const char* name) = 0;
00543 
00547   virtual void RemoveSequence (iSequenceWrapper* seq) = 0;
00548 
00552   virtual void RemoveSequences () = 0;
00553 
00557   virtual int GetSequenceCount () const = 0;
00558 
00562   virtual iSequenceWrapper* GetSequence (int idx) const = 0;
00563 
00567   virtual iSequenceWrapper* FindSequenceByName (const char* name) const = 0;
00568 
00572   virtual bool RunSequenceByName (const char *name,int delay) const = 0;
00573 
00574   //-----------------------------------------------------------------------
00575 
00583   virtual void FireTimedOperation (csTicks delta, csTicks duration,
00584         iSequenceTimedOperation* op, iBase* params = NULL) = 0;
00585 
00586   //-----------------------------------------------------------------------
00587 };
00588 
00589 #endif // __CS_IVARIA_ENGSEQ_H__
00590 

Generated for Crystal Space by doxygen 1.2.14