Open Inventor Release 2024.2.1
 
Loading...
Searching...
No Matches
SoElapsedTime.h
1/*=======================================================================
2 * Copyright 1991-1996, Silicon Graphics, Inc.
3 * ALL RIGHTS RESERVED
4 *
5 * UNPUBLISHED -- Rights reserved under the copyright laws of the United
6 * States. Use of a copyright notice is precautionary only and does not
7 * imply publication or disclosure.
8 *
9 * U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
10 * Use, duplication or disclosure by the Government is subject to restrictions
11 * as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
12 * in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
13 * in similar or successor clauses in the FAR, or the DOD or NASA FAR
14 * Supplement. Contractor/manufacturer is Silicon Graphics, Inc.,
15 * 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
16 *
17 * THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
18 * INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
19 * DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
20 * PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
21 * GRAPHICS, INC.
22**=======================================================================*/
23/*=======================================================================
24** Author : Gavin Bell (MMM yyyy)
25**=======================================================================*/
26/*=======================================================================
27 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
28 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
29 *** ***
30 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
31 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
32 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
33 *** ***
34 *** RESTRICTED RIGHTS LEGEND ***
35 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
36 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
37 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
38 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
39 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
40 *** ***
41 *** COPYRIGHT (C) 1996-2014 BY FEI S.A.S, ***
42 *** BORDEAUX, FRANCE ***
43 *** ALL RIGHTS RESERVED ***
44**=======================================================================*/
45/*=======================================================================
46** Modified by : VSG (MMM YYYY)
47**=======================================================================*/
48
49
50#ifndef _SO_ELAPSED_TIME_
51#define _SO_ELAPSED_TIME_
52
53#include <Inventor/engines/SoSubEngine.h>
54#include <Inventor/fields/SoSFBool.h>
55#include <Inventor/fields/SoSFFloat.h>
56#include <Inventor/fields/SoSFTime.h>
57#include <Inventor/fields/SoSFTrigger.h>
58
99class SoElapsedTime : public SoEngine {
100
101 SO_ENGINE_HEADER(SoElapsedTime);
102
103 public:
124
129
134
135 private:
136
137 static void initClass();
138 static void exitClass();
139
140 // Writes instance to SoOutput. Takes care of not writing out
141 // connection to realTime that is created in constructor.
142 virtual void writeInstance(SoOutput *out);
143
144 private:
145
146 // Detects when the running time input changed
147 virtual void inputChanged(SoField *whichInput);
148
149 // Evaluation method
150 virtual void evaluate();
151
152 // Reads stuff into instance. Works around a problem with old
153 // files that contain explicit references to the default
154 // connection to realTime.
155 virtual SbBool readInstance(SoInput *in, unsigned short flags);
156
157 // Destructor
159 private:
160 enum Todo {
161 CHECK_ON = (1<<0),
162 CHECK_PAUSE = (1<<1),
163 RESET = (1<<2)
164 };
165 enum State {
166 STOPPED, // Clock is not running
167 RUNNING, // Clock is running
168 PAUSED // Clock is running, but output is frozen
169 };
170
171 enum State state;
172 unsigned int todo;
173 SbTime prevTimeOfDay; // Time of day when last
174 // evaluate was called.
175 SbTime prevTimeOut; // Last 'clock' time that
176 // was output.
177 float prevClockTime; // 'Clock' time when last
178 // evaluate was called.
179
180};
181
182#endif /* _SO_ELAPSED_TIME_ */
183
Class for representation of a time.
Definition SbTime.h:91
Basic controllable time source.
SoSFTrigger reset
Reset the base time.
SoSFFloat speed
Scale factor for time.
SoEngineOutput timeOut
( SoSFTime ) Time elapsed, modified by the speed factor.
SoSFTime timeIn
Running time.
SoElapsedTime()
Constructor.
SoSFBool on
TRUE to start running, FALSE to stop.
SoSFBool pause
TRUE to freeze, FALSE to continue running.
Base class for all engines.
Definition SoEngine.h:133
Class for all engine outputs.
Definition SoEngine.h:279
Base class for all fields.
Definition SoField.h:234
Used to read Open Inventor data files.
Definition SoInput.h:363
Used to write Open Inventor data files.
Definition SoOutput.h:186
Field containing a single Boolean value.
Definition SoSFBool.h:79
Field containing a floating-point value.
Definition SoSFFloat.h:78
Field containing an SbTime.
Definition SoSFTime.h:82
Field used to trigger engines or connection networks.
Definition SoSFTrigger.h:85
int SbBool
Boolean type.
Definition SbBase.h:87