Open Inventor Reference
SoTimeCounter.h
Go to the documentation of this file.
1/*
2 *
3 * Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * Further, this software is distributed without any warranty that it is
16 * free of the rightful claim of any third person regarding infringement
17 * or the like. Any license provided herein, whether implied or
18 * otherwise, applies only to this software file. Patent licenses, if
19 * any, provided herein do not apply to combinations of this program with
20 * other software, or any other product whatsoever.
21 *
22 * You should have received a copy of the GNU Lesser General Public
23 * License along with this library; if not, write to the Free Software
24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 *
26 * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
27 * Mountain View, CA 94043, or:
28 *
29 * http://www.sgi.com
30 *
31 * For further information regarding this notice, see:
32 *
33 * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
34 *
35 */
36
37
38/*
39 * Copyright (C) 1990,91,92 Silicon Graphics, Inc.
40 *
41 _______________________________________________________________________
42 ______________ S I L I C O N G R A P H I C S I N C . ____________
43 |
44 | $Revision: 1.1.1.1 $
45 |
46 | Description:
47 | This file contains the implementation of the TimeCounter engine
48 |
49 | Classes:
50 | SoTimeCounter
51 |
52 | Author(s) : Ronen Barzel
53 |
54 ______________ S I L I C O N G R A P H I C S I N C . ____________
55 _______________________________________________________________________
56 */
57
58#ifndef _SO_TIME_COUNTER_
59#define _SO_TIME_COUNTER_
60
69
72
147
149
151
152 public:
154
155
158
161
164
167
170
173
176
179
182
184
186
187
190
193
195
198
199 SoINTERNAL public:
200
201 static void initClass();
202
203 protected:
204 virtual void inputChanged(SoField *whichInput);
205
208 virtual void writeInstance(SoOutput *out);
209
213 virtual bool readInstance(SoInput *in, unsigned short flags);
214
215 private:
216 enum State {
217 ON,
218 PAUSED
219 } state;
220 enum Todo {
221 RECALC = (1<<0),
222 RESET = (1<<1),
223 SYNC = (1<<2),
224 PAUSE = (1<<3),
225 UNPAUSE = (1<<4)
226 };
227 unsigned int todo;
228 SbTime period;
229 int nStages;
230 int curStage;
231 int prevStage;
232 struct Stage {
233 int val;
234 float duty;
235 SbTime offset;
236 } *stages;
237 SbTime baseTime;
238 SbTime pauseOffset;
239
242
244 virtual void evaluate();
245};
246
247#endif /* _SO_TIME_COUNTER_ */
#define SoINTERNAL
Definition SbBasic.h:155
#define INVENTOR_API
Disable some annoying warnings on MSVC 6.
Definition SbSystem.h:77
#define SO_ENGINE_HEADER(className)
Class for representation of a time.
Definition SbTime.h:89
Class for all engine outputs.
Definition SoEngine.h:228
Base class for all engines.
Definition SoEngine.h:102
virtual void evaluate()=0
User-written evaluation engine.
Base class for all fields.
Definition SoField.h:185
Used to read Inventor data files.
Definition SoInput.h:128
Multiple-value field containing any number of floating point values.
Definition SoMFFloat.h:82
Used to write Inventor data files.
Definition SoOutput.h:90
Field containing a single boolean value.
Definition SoSFBool.h:78
Field containing a floating-point value.
Definition SoSFFloat.h:77
Field containing a short integer.
Definition SoSFShort.h:79
Field containing an SbTime.
Definition SoSFTime.h:80
Field used to trigger engines or connection networks.
Definition SoSFTrigger.h:88
Timed integer counter.
SoEngineOutput output
Counts min -to-max , in step increments.
SoSFShort max
Maximum value for the counter.
SoSFTrigger syncIn
Restart at the beginning of the cycle.
SoSFFloat frequency
Number of min -to-max cycles per second.
SoSFShort reset
Reset the counter to the specified value.
SoSFTime timeIn
Running time.
virtual void writeInstance(SoOutput *out)
Writes instance to SoOutput.
SoSFBool on
Counter pauses if this is set to FALSE.
SoTimeCounter()
Constructor.
virtual void inputChanged(SoField *whichInput)
This is called whenever the value of an input is changed.
SoSFShort step
Counter step value.
SoSFShort min
Minimum value for the counter.
static void initClass()
SoMFFloat duty
Duty cycle values.
SoEngineOutput syncOut
Triggers at cycle start.
virtual bool readInstance(SoInput *in, unsigned short flags)
Reads stuff into instance.