CrystalSpace

Public API Reference

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

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 = 0) 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 = 0) = 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, 3, 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 
00208   virtual void AddOperationSetVariable (csTicks time,
00209                 iSharedVariable* var, float value, float dvalue = 0) = 0;
00210 
00218   virtual void AddOperationSetVariable (csTicks time,
00219                 iSharedVariable* var, iSharedVariable* value,
00220                 iSharedVariable* dvalue = 0) = 0;
00221 
00225   virtual void AddOperationSetVariable (csTicks time,
00226                 iSharedVariable* var, const csVector3& v) = 0;
00227 
00231   virtual void AddOperationSetVariable (csTicks time,
00232                 iSharedVariable* var, const csColor& c) = 0;
00233 
00237   virtual void AddOperationSetMaterial (csTicks time, iParameterESM* mesh,
00238                   iParameterESM* mat) = 0;
00239 
00243   virtual void AddOperationSetPolygonMaterial (csTicks time,
00244                   iParameterESM* polygon, iParameterESM* mat) = 0;
00245 
00249   virtual void AddOperationSetLight (csTicks time, iParameterESM* light,
00250                   const csColor& color) = 0;
00251 
00255   virtual void AddOperationFadeLight (csTicks time, iParameterESM* light,
00256                   const csColor& color, csTicks duration) = 0;
00257 
00261   virtual void AddOperationSetAmbient (csTicks time, iParameterESM* light,
00262                   const csColor& color, iSharedVariable *colorvar) = 0;
00263 
00267   virtual void AddOperationFadeAmbient (csTicks time, iParameterESM* light,
00268                   const csColor& color, csTicks duration) = 0;
00269 
00274   virtual void AddOperationRandomDelay(csTicks time,int min, int max) = 0;
00275 
00279   virtual void AddOperationSetMeshColor (csTicks time, iParameterESM* mesh,
00280                   const csColor& color) = 0;
00281 
00285   virtual void AddOperationFadeMeshColor (csTicks time, iParameterESM* mesh,
00286                   const csColor& color, csTicks duration) = 0;
00287 
00291   virtual void AddOperationSetFog (csTicks time, iParameterESM* sector,
00292                   const csColor& color, float density) = 0;
00293 
00297   virtual void AddOperationFadeFog (csTicks time, iParameterESM* sector,
00298                   const csColor& color, float density, csTicks duration) = 0;
00299 
00305   virtual void AddOperationRotateDuration (csTicks time, iParameterESM* mesh,
00306                 int axis1, float tot_angle1,
00307                 int axis2, float tot_angle2,
00308                 int axis3, float tot_angle3,
00309                 const csVector3& offset,
00310                 csTicks duration) = 0;
00311 
00316   virtual void AddOperationMoveDuration (csTicks time, iParameterESM* mesh,
00317                 const csVector3& offset, csTicks duration) = 0;
00318 
00322   virtual void AddOperationTriggerState (csTicks time,
00323                   iParameterESM* trigger, bool en) = 0;
00324 
00330   virtual void AddOperationCheckTrigger (csTicks time,
00331                   iParameterESM* trigger, csTicks delay) = 0;
00332 
00339   virtual void AddOperationTestTrigger (csTicks time,
00340                   iParameterESM* trigger,
00341                   iSequence* trueSequence,
00342                   iSequence* falseSequence) = 0;
00343 };
00344 
00345 SCF_VERSION (iSequenceTrigger, 0, 0, 3);
00346 
00352 struct iSequenceTrigger : public iBase
00353 {
00357   virtual iObject* QueryObject () = 0;
00358 
00362   virtual void AddConditionInSector (iSector* sector) = 0;
00363 
00367   virtual void AddConditionInSector (iSector* sector,
00368         const csBox3& box) = 0;
00369 
00373   virtual void AddConditionInSector (iSector* sector,
00374         const csSphere& sphere) = 0;
00375 
00379   virtual void AddConditionSectorVisible (iSector* sector) = 0;
00380 
00384   virtual void AddConditionMeshClick (iMeshWrapper* mesh) = 0;
00385 
00392   virtual void AddConditionLightChange (iLight *whichlight, 
00393                                         int oper, const csColor& col) = 0;
00394 
00400   virtual void AddConditionManual () = 0;
00401 
00406   virtual void SetEnabled (bool en) = 0;
00407 
00411   virtual bool IsEnabled () const = 0;
00412 
00416   virtual void ClearConditions () = 0;
00417 
00421   virtual void Trigger () = 0;
00422 
00426   virtual void SetParameters (iEngineSequenceParameters* params) = 0;
00427 
00431   virtual iEngineSequenceParameters* GetParameters () const = 0;
00432 
00439   virtual void FireSequence (csTicks delay, iSequenceWrapper* seq) = 0;
00440 
00444   virtual iSequenceWrapper* GetFiredSequence () = 0;
00445 
00451   virtual void TestConditions (csTicks delay) = 0;
00452 
00460   virtual bool CheckState () = 0;
00461 
00477   virtual void ForceFire (bool now = false) = 0;
00478 };
00479 
00480 SCF_VERSION (iSequenceTimedOperation, 0, 0, 1);
00481 
00491 struct iSequenceTimedOperation : public iBase
00492 {
00496   virtual void Do (float time, iBase* params) = 0;
00497 };
00498 
00499 SCF_VERSION (iEngineSequenceManager, 0, 0, 3);
00500 
00505 struct iEngineSequenceManager : public iBase
00506 {
00511   virtual iSequenceManager* GetSequenceManager () = 0;
00512 
00518   virtual void SetCamera (iCamera* camera) = 0;
00519 
00523   virtual iCamera* GetCamera () = 0;
00524   
00528   virtual csPtr<iParameterESM> CreateParameterESM (iBase* value) = 0;
00529 
00530   //-----------------------------------------------------------------------
00531 
00535   virtual csPtr<iSequenceTrigger> CreateTrigger (const char* name) = 0;
00536 
00540   virtual void RemoveTrigger (iSequenceTrigger* trigger) = 0;
00541 
00545   virtual void RemoveTriggers () = 0;
00546 
00550   virtual int GetTriggerCount () const = 0;
00551 
00555   virtual iSequenceTrigger* GetTrigger (int idx) const = 0;
00556 
00560   virtual iSequenceTrigger* FindTriggerByName (const char* name) const = 0;
00561 
00568   virtual bool FireTriggerByName (const char *name, bool now = false) const = 0;
00569 
00570   //-----------------------------------------------------------------------
00571 
00575   virtual csPtr<iSequenceWrapper> CreateSequence (const char* name) = 0;
00576 
00580   virtual void RemoveSequence (iSequenceWrapper* seq) = 0;
00581 
00585   virtual void RemoveSequences () = 0;
00586 
00590   virtual int GetSequenceCount () const = 0;
00591 
00595   virtual iSequenceWrapper* GetSequence (int idx) const = 0;
00596 
00600   virtual iSequenceWrapper* FindSequenceByName (const char* name) const = 0;
00601 
00605   virtual bool RunSequenceByName (const char *name,int delay) const = 0;
00606 
00607   //-----------------------------------------------------------------------
00608 
00616   virtual void FireTimedOperation (csTicks delta, csTicks duration,
00617         iSequenceTimedOperation* op, iBase* params = 0) = 0;
00618 
00619   //-----------------------------------------------------------------------
00620 };
00621 
00622 #endif // __CS_IVARIA_ENGSEQ_H__
00623 

Generated for Crystal Space by doxygen 1.2.14