http://www.sim.no
http://www.coin3d.org
Main Page
Related Pages
Modules
Classes
Files
File List
include
Inventor
engines
SoEngine.h
1
/**************************************************************************\
2
*
3
* This file is part of the Coin 3D visualization library.
4
* Copyright (C) 1998-2007 by Systems in Motion. All rights reserved.
5
*
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* ("GPL") version 2 as published by the Free Software Foundation.
9
* See the file LICENSE.GPL at the root directory of this source
10
* distribution for additional information about the GNU GPL.
11
*
12
* For using Coin with software that can not be combined with the GNU
13
* GPL, and for taking advantage of the additional benefits of our
14
* support services, please contact Systems in Motion about acquiring
15
* a Coin Professional Edition License.
16
*
17
* See http://www.coin3d.org/ for more information.
18
*
19
* Systems in Motion, Postboks 1283, Pirsenteret, 7462 Trondheim, NORWAY.
20
* http://www.sim.no/ sales@sim.no coin-support@coin3d.org
21
*
22
\**************************************************************************/
23
24
#ifndef COIN_SOENGINE_H
25
#define COIN_SOENGINE_H
26
27
#include <Inventor/fields/SoFieldContainer.h>
28
29
class
SoEngineList
;
30
class
SoEngineOutput
;
31
class
SoEngineOutputList
;
32
class
SoEngineOutputData;
33
34
class
COIN_DLL_API
SoEngine
:
public
SoFieldContainer
{
35
typedef
SoFieldContainer
inherited
;
36
37
public
:
38
static
void
initClass(
void
);
39
static
void
initClasses(
void
);
40
static
SoType
getClassTypeId(
void
);
41
42
void
evaluateWrapper(
void
);
43
44
virtual
int
getOutputs(
SoEngineOutputList
& l)
const
;
45
SoEngineOutput
* getOutput(
const
SbName
& outputname)
const
;
46
SbBool getOutputName(
const
SoEngineOutput
* output,
SbName
& outputname)
const
;
47
virtual
const
SoEngineOutputData * getOutputData(
void
)
const
= 0;
48
static
SoEngine
* getByName(
const
SbName
& name);
49
static
int
getByName(
const
SbName
& name,
SoEngineList
& el);
50
51
SbBool isNotifying(
void
)
const
;
52
virtual
void
notify
(
SoNotList
* nl);
53
54
SoEngine
* copy(
void
)
const
;
55
virtual
SoFieldContainer
*
copyThroughConnection
(
void
)
const
;
56
SbBool shouldCopy(
void
)
const
;
57
58
virtual
void
writeInstance
(
SoOutput
* out);
59
60
61
protected
:
62
SoEngine
(
void
);
63
virtual
~
SoEngine
();
64
virtual
void
evaluate(
void
) = 0;
65
66
virtual
SbBool
readInstance
(
SoInput
* in,
unsigned
short
flags);
67
virtual
void
inputChanged(
SoField
* which);
68
69
static
const
SoFieldData
** getInputDataPtr(
void
);
70
static
const
SoEngineOutputData ** getOutputDataPtr(
void
);
71
72
void
writeOutputTypes(
SoOutput
* out);
73
74
private
:
75
virtual
void
destroy
(
void
);
// overrides SoBase::destroy()
76
77
static
SoType
classTypeId;
78
79
enum
InternalEngineFlags {
80
FLAG_ISNOTIFYING = (1 << 0),
81
FLAG_ISDIRTY = (1 << 1)
82
};
83
84
unsigned
int
flags;
85
86
// needed for handling connections from SoEngineOutput
87
friend
class
SoEngineOutput
;
88
void
setDirty(
void
);
89
};
90
91
#if !defined(COIN_INTERNAL)
92
#include <Inventor/engines/SoEngineOutput.h>
93
#endif // COIN_INTERNAL
94
95
#endif // !COIN_SOENGINE_H
Copyright © 1998-2007 by
Systems in Motion AS
. All rights reserved.
Generated on Fri Aug 2 2013 for Coin by
Doxygen.
1.8.4