Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bad97183153701b09df5fae1052b1c30 > files > 2282

crystalspace-doc-1.2.1-5mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Crystal Space 1.2.1: ivaria/sequence.h Source File (Crystal Space 1.2.1 Public API Reference)</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="head">
 <tr height="59">
  <td class="head" width="202" valign="bottom" style="padding-left:0;"><a href="http://www.crystalspace3d.org/"><img src="csblur.png" width="236" height="59" alt="CrystalSpace" border="0"></a></td>
  <td class="head"><h2>Public API Reference</h2></td>
 </tr>
 <tr height="11">
  <td colspan="2" class="headshadow" valign="top" style="padding-left:0;"><img src="csblurb.png" width="236" height="11" alt="" border="0"></td>
 </tr>
</table>
<div class="content">
<!-- Generated by Doxygen 1.5.3 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="modules.html"><span>Modules</span></a></li>
    <li><a href="namespaces.html"><span>Namespaces</span></a></li>
    <li><a href="classes.html"><span>Classes</span></a></li>
    <li class="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
  </ul>
</div>
<h1>ivaria/sequence.h</h1><a href="sequence_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">    Copyright (C) 2001 by Jorrit Tyberghein</span>
<a name="l00003"></a>00003 <span class="comment"></span>
<a name="l00004"></a>00004 <span class="comment">    This library is free software; you can redistribute it and/or</span>
<a name="l00005"></a>00005 <span class="comment">    modify it under the terms of the GNU Library General Public</span>
<a name="l00006"></a>00006 <span class="comment">    License as published by the Free Software Foundation; either</span>
<a name="l00007"></a>00007 <span class="comment">    version 2 of the License, or (at your option) any later version.</span>
<a name="l00008"></a>00008 <span class="comment"></span>
<a name="l00009"></a>00009 <span class="comment">    This library is distributed in the hope that it will be useful,</span>
<a name="l00010"></a>00010 <span class="comment">    but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="l00011"></a>00011 <span class="comment">    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
<a name="l00012"></a>00012 <span class="comment">    Library General Public License for more details.</span>
<a name="l00013"></a>00013 <span class="comment"></span>
<a name="l00014"></a>00014 <span class="comment">    You should have received a copy of the GNU Library General Public</span>
<a name="l00015"></a>00015 <span class="comment">    License along with this library; if not, write to the Free</span>
<a name="l00016"></a>00016 <span class="comment">    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</span>
<a name="l00017"></a>00017 <span class="comment">*/</span>
<a name="l00018"></a>00018 
<a name="l00019"></a>00019 <span class="preprocessor">#ifndef __CS_IVARIA_SEQUENCE_H__</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">#define __CS_IVARIA_SEQUENCE_H__</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span>
<a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="scf__interface_8h.html" title="Crystal Space Shared Class Facility (SCF) - interface creation support.">csutil/scf_interface.h</a>"</span>
<a name="l00027"></a>00027 
<a name="l00039"></a><a class="code" href="structiSequenceOperation.html">00039</a> <span class="keyword">struct </span><a class="code" href="structiSequenceOperation.html" title="A sequence operation.">iSequenceOperation</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00040"></a>00040 {
<a name="l00041"></a>00041   SCF_INTERFACE (<a class="code" href="structiSequenceOperation.html" title="A sequence operation.">iSequenceOperation</a>, 2, 0, 0);
<a name="l00050"></a>00050   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiSequenceOperation.html#b83cb1989dc0fd8540dee3b15fad1141" title="Do the operation.">Do</a> (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> dt, <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>* params) = 0;
<a name="l00051"></a>00051 
<a name="l00057"></a>00057   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiSequenceOperation.html#7988ce03e8d1cb3c4babce0f576a612c" title="This routine is responsible for forcibly cleaning up all references to sequences...">CleanupSequences</a> () = 0;
<a name="l00058"></a>00058 };
<a name="l00059"></a>00059 
<a name="l00071"></a><a class="code" href="structiSequenceCondition.html">00071</a> <span class="keyword">struct </span><a class="code" href="structiSequenceCondition.html" title="A sequence condition.">iSequenceCondition</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00072"></a>00072 {
<a name="l00073"></a>00073   SCF_INTERFACE (<a class="code" href="structiSequenceCondition.html" title="A sequence condition.">iSequenceCondition</a>, 1, 0, 0);
<a name="l00074"></a>00074 
<a name="l00083"></a>00083   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiSequenceCondition.html#b8b850fab044aa0d87b6bdbc452b2057" title="Do the condition.">Condition</a> (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> dt, <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>* params) = 0;
<a name="l00084"></a>00084 };
<a name="l00085"></a>00085 
<a name="l00086"></a><a class="code" href="structcsSequenceOp.html">00086</a> <span class="keyword">struct </span><a class="code" href="structcsSequenceOp.html">csSequenceOp</a>
<a name="l00087"></a>00087 {
<a name="l00088"></a><a class="code" href="structcsSequenceOp.html#3a38a858f06a756f29437b6e1d259ac2">00088</a>   <a class="code" href="structcsSequenceOp.html">csSequenceOp</a>* <a class="code" href="structcsSequenceOp.html#e995115f8543ee05f3b7be31ebd6803c">next</a>, * <a class="code" href="structcsSequenceOp.html#3a38a858f06a756f29437b6e1d259ac2">prev</a>;
<a name="l00089"></a><a class="code" href="structcsSequenceOp.html#1fab99539aa4a0bb66bf9a8c5ce328b4">00089</a>   <a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> <a class="code" href="structcsSequenceOp.html#1fab99539aa4a0bb66bf9a8c5ce328b4">time</a>;
<a name="l00090"></a><a class="code" href="structcsSequenceOp.html#ac7bdccef9086c83fa9cca47e53c7db6">00090</a>   <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iBase&gt;</a> <a class="code" href="structcsSequenceOp.html#ac7bdccef9086c83fa9cca47e53c7db6">params</a>;
<a name="l00091"></a><a class="code" href="structcsSequenceOp.html#b52a48b6539cdf6a8d1fad33fa42eb9f">00091</a>   <a class="code" href="classcsRef.html" title="A smart pointer.">csRef&lt;iSequenceOperation&gt;</a> <a class="code" href="structcsSequenceOp.html#b52a48b6539cdf6a8d1fad33fa42eb9f">operation</a>;
<a name="l00092"></a>00092   <span class="comment">// Unique id to identify all operations belonging to a running sequence.</span>
<a name="l00093"></a><a class="code" href="structcsSequenceOp.html#2211efc8015cfa5f15736b90247a61a5">00093</a>   <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> <a class="code" href="structcsSequenceOp.html#2211efc8015cfa5f15736b90247a61a5">sequence_id</a>;
<a name="l00094"></a>00094 
<a name="l00095"></a><a class="code" href="structcsSequenceOp.html#6167ce0aadae35155ec0b4ef09a797fc">00095</a>   <a class="code" href="structcsSequenceOp.html#6167ce0aadae35155ec0b4ef09a797fc">csSequenceOp</a> () { }
<a name="l00096"></a><a class="code" href="structcsSequenceOp.html#f537cf4d1779e0d7ed634ec9caa3fe0e">00096</a>   <a class="code" href="structcsSequenceOp.html#f537cf4d1779e0d7ed634ec9caa3fe0e">~csSequenceOp</a> () { }
<a name="l00097"></a>00097 };
<a name="l00098"></a>00098 
<a name="l00099"></a>00099 
<a name="l00113"></a><a class="code" href="structiSequence.html">00113</a> <span class="keyword">struct </span><a class="code" href="structiSequence.html" title="A sequence of operations tagged with relative time information.">iSequence</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00114"></a>00114 {
<a name="l00115"></a>00115   SCF_INTERFACE (<a class="code" href="structiSequence.html" title="A sequence of operations tagged with relative time information.">iSequence</a>, 1, 0, 0);
<a name="l00116"></a>00116 
<a name="l00120"></a>00120   <span class="keyword">virtual</span> <a class="code" href="structcsSequenceOp.html">csSequenceOp</a>* <a class="code" href="structiSequence.html#cb02ed2752044b3957f40d2d661751f6" title="Ugly but necessary for sequence to self-modify.">GetFirstSequence</a> () = 0;
<a name="l00121"></a>00121 
<a name="l00126"></a>00126   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiSequence.html#9815fcc0e9b612a268a16540d279c60b" title="Add an operation to this sequence.">AddOperation</a> (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> time, <a class="code" href="structiSequenceOperation.html" title="A sequence operation.">iSequenceOperation</a>* operation,
<a name="l00127"></a>00127         <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>* params = 0, <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> sequence_id = 0) = 0;
<a name="l00128"></a>00128 
<a name="l00133"></a>00133   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiSequence.html#5b0a17f9d80269100f7c831ca532b5de" title="Add a standard operation to execute another sequence.">AddRunSequence</a> (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> time, <a class="code" href="structiSequence.html" title="A sequence of operations tagged with relative time information.">iSequence</a>* sequence,
<a name="l00134"></a>00134         <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>* params = 0, <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> sequence_id = 0) = 0;
<a name="l00135"></a>00135 
<a name="l00141"></a>00141   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiSequence.html#72b9e0c68e2cf8dc0790dacaa43d7499" title="Add a standard operation to perform a condition and execute the right sequence depending...">AddCondition</a> (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> time, <a class="code" href="structiSequenceCondition.html" title="A sequence condition.">iSequenceCondition</a>* condition,
<a name="l00142"></a>00142         <a class="code" href="structiSequence.html" title="A sequence of operations tagged with relative time information.">iSequence</a>* trueSequence, <a class="code" href="structiSequence.html" title="A sequence of operations tagged with relative time information.">iSequence</a>* falseSequence,
<a name="l00143"></a>00143         <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>* params = 0, <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> sequence_id = 0) = 0;
<a name="l00144"></a>00144 
<a name="l00150"></a>00150   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiSequence.html#6235199c95de0e37a2eecbb7f6023ae4" title="Perform the sequence for as long as the condition is valid.">AddLoop</a> (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> time, <a class="code" href="structiSequenceCondition.html" title="A sequence condition.">iSequenceCondition</a>* condition,
<a name="l00151"></a>00151         <a class="code" href="structiSequence.html" title="A sequence of operations tagged with relative time information.">iSequence</a>* sequence, <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>* params = 0, <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> sequence_id = 0) = 0;
<a name="l00152"></a>00152 
<a name="l00156"></a>00156   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiSequence.html#8c5472743b56446b8d0122306ad393fd" title="Clear all operations in this sequence (call DecRef()).">Clear</a> () = 0;
<a name="l00157"></a>00157 
<a name="l00161"></a>00161   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiSequence.html#a493f3372a7ab9c772c1c45c433f9489" title="Return true if this sequence is empty.">IsEmpty</a> () = 0;
<a name="l00162"></a>00162 };
<a name="l00163"></a>00163 
<a name="l00179"></a><a class="code" href="structiSequenceManager.html">00179</a> <span class="keyword">struct </span><a class="code" href="structiSequenceManager.html" title="The sequence manager.">iSequenceManager</a> : <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>
<a name="l00180"></a>00180 {
<a name="l00181"></a>00181   SCF_INTERFACE (<a class="code" href="structiSequenceManager.html" title="The sequence manager.">iSequenceManager</a>, 1, 0, 0);
<a name="l00182"></a>00182 
<a name="l00187"></a>00187   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiSequenceManager.html#3c4fbb6dfd2c4595855e28f6156f8d3c" title="Clear all sequence operations currently in memory (this will call DecRef() on them)...">Clear</a> () = 0;
<a name="l00188"></a>00188 
<a name="l00193"></a>00193   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiSequenceManager.html#2867b0abc69581f0a486182fcbdc7ca9" title="Return true if the sequence manager has nothing to do (i.e.">IsEmpty</a> () = 0;
<a name="l00194"></a>00194 
<a name="l00203"></a>00203   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiSequenceManager.html#ccb1f6c8940aaa94285b63ced4a61a7e" title="Suspend the sequence manager.">Suspend</a> () = 0;
<a name="l00204"></a>00204 
<a name="l00210"></a>00210   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiSequenceManager.html#19a3f77ed55ce8ee5360441e3d41de66" title="Resume the sequence manager at exactly the point it was previously suspended.">Resume</a> () = 0;
<a name="l00211"></a>00211 
<a name="l00215"></a>00215   <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="structiSequenceManager.html#0a57cb7ab753f79e742fa7dad737ae5f" title="Return true if the sequence manager is suspended.">IsSuspended</a> () = 0;
<a name="l00216"></a>00216 
<a name="l00229"></a>00229   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiSequenceManager.html#b6c715cefedcc2b77aa70a370f6c3586" title="Perform a time warp.">TimeWarp</a> (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> time, <span class="keywordtype">bool</span> skip) = 0;
<a name="l00230"></a>00230 
<a name="l00241"></a>00241   <span class="keyword">virtual</span> <a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> <a class="code" href="structiSequenceManager.html#a8173c065798b268c177c832a923a3dd" title="Get the current time for the sequence manager.">GetMainTime</a> () <span class="keyword">const</span> = 0;
<a name="l00242"></a>00242 
<a name="l00247"></a>00247   <span class="keyword">virtual</span> <a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> <a class="code" href="structiSequenceManager.html#2f965da6c1ef46a2e9af14c3206d8e60" title="Get the delta time to add to the main time to get the real main time.">GetDeltaTime</a> () <span class="keyword">const</span> = 0;
<a name="l00248"></a>00248 
<a name="l00254"></a>00254   <span class="keyword">virtual</span> <a class="code" href="classcsPtr.html" title="A pointer encapsulator.">csPtr&lt;iSequence&gt;</a> <a class="code" href="structiSequenceManager.html#69d23730f8a8de4c409000a13862bc6a" title="Create a new empty sequence.">NewSequence</a> () = 0;
<a name="l00255"></a>00255 
<a name="l00276"></a>00276   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiSequenceManager.html#39d91995c818b87014525ca400ce9e39" title="Execute a sequence at the given time.">RunSequence</a> (<a class="code" href="group__util.html#g28e82998c4c2d1197a1d412bba7da793" title="A time value measured in milliseconds (1/1000 of a second).">csTicks</a> time, <a class="code" href="structiSequence.html" title="A sequence of operations tagged with relative time information.">iSequence</a>* sequence,
<a name="l00277"></a>00277         <a class="code" href="structiBase.html" title="This is the basic interface: all other interfaces should be derived from this one...">iBase</a>* params = 0, <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> sequence_id = 0) = 0;
<a name="l00278"></a>00278 
<a name="l00282"></a>00282   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="structiSequenceManager.html#0b52cc866aff696c92d21146ff7620c7" title="Destroy all operations with a given sequence id.">DestroySequenceOperations</a> (<a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> sequence_id) = 0;
<a name="l00283"></a>00283 
<a name="l00288"></a>00288   <span class="keyword">virtual</span> <a class="code" href="group__util.html#g91ad9478d81a7aaf2593e8d9c3d06a14" title="Shortcut for default unsigned int.">uint</a> <a class="code" href="structiSequenceManager.html#c64c2382abdc2009134659c62eaf4966" title="Return a unique id that you can use for identifying the sequence operations.">GetUniqueID</a> () = 0;
<a name="l00289"></a>00289 };
<a name="l00290"></a>00290 
<a name="l00291"></a>00291 <span class="preprocessor">#endif // __CS_IVARIA_SEQUENCE_H__</span>
<a name="l00292"></a>00292 <span class="preprocessor"></span>
</pre></div><hr size="1"><address><small>Generated for Crystal Space 1.2.1 by 
<a href="http://www.doxygen.org/index.html">doxygen</a> 1.5.3 
</small></address> </div></body> </html>