27 #include <Inventor/SoType.h>
28 #include <Inventor/misc/SoNotification.h>
43 static void initClass(
void);
44 static void initClasses(
void);
46 void setIgnored(SbBool ignore);
47 SbBool isIgnored(
void)
const;
49 void setDefault(SbBool def);
50 SbBool isDefault(
void)
const;
52 virtual SoType getTypeId(
void)
const = 0;
54 static SoType getClassTypeId(
void);
55 SbBool isOfType(
const SoType type)
const;
57 void enableConnection(SbBool flag);
58 SbBool isConnectionEnabled(
void)
const;
62 SbBool notnotify = FALSE, SbBool append = FALSE);
63 SbBool appendConnection(
SoEngineOutput * master, SbBool notnotify = FALSE);
65 SbBool isConnectedFromEngine(
void)
const;
69 SbBool connectFrom(
SoField * master,
70 SbBool notnotify = FALSE, SbBool append = FALSE);
71 SbBool appendConnection(
SoField * master, SbBool notnotify = FALSE);
72 void disconnect(
SoField * field);
73 SbBool isConnectedFromField(
void)
const;
74 SbBool getConnectedField(
SoField *& master)
const;
75 int getNumConnections(
void)
const;
76 int getForwardConnections(
SoFieldList & slavelist)
const;
79 void disconnect(
void);
80 SbBool isConnected(
void)
const;
85 SbBool
set(
const char * valuestring);
88 SbBool shouldWrite(
void)
const;
90 virtual void touch(
void);
91 virtual void startNotify(
void);
93 SbBool enableNotify(SbBool on);
94 SbBool isNotifyEnabled(
void)
const;
99 int operator ==(
const SoField & f)
const;
100 int operator !=(
const SoField & f)
const;
102 virtual void connectionStatusChanged(
int numconnections);
103 SbBool isReadOnly(
void)
const;
104 virtual SbBool isSame(
const SoField & f)
const = 0;
105 virtual void copyFrom(
const SoField & f) = 0;
107 virtual void fixCopy(SbBool copyconnections);
108 virtual SbBool referencesCopy(
void)
const;
109 void copyConnection(
const SoField * fromfield);
114 virtual void countWriteRefs(
SoOutput * out)
const;
124 void setFieldType(
int type);
125 int getFieldType(
void)
const;
127 SbBool getDirty(
void)
const;
128 void setDirty(SbBool dirty);
131 if ((this->statusbits & (FLAG_EXTSTORAGE|FLAG_NEEDEVALUATION)) ==
132 (FLAG_EXTSTORAGE|FLAG_NEEDEVALUATION)) this->evaluateField();
138 void valueChanged(SbBool resetdefault = TRUE);
139 virtual void evaluateConnection(
void)
const;
140 virtual SbBool readValue(
SoInput * in) = 0;
141 virtual void writeValue(
SoOutput * out)
const = 0;
142 virtual SbBool readConnection(
SoInput * in);
143 virtual void writeConnection(
SoOutput * out)
const;
145 SbBool isDestructing(
void)
const;
150 FLAG_TYPEMASK = 0x0007,
151 FLAG_ISDEFAULT = 0x0008,
152 FLAG_IGNORE = 0x0010,
153 FLAG_EXTSTORAGE = 0x0020,
154 FLAG_ENABLECONNECTS = 0x0040,
155 FLAG_NEEDEVALUATION = 0x0080,
156 FLAG_READONLY = 0x0100,
157 FLAG_DONOTIFY = 0x0200,
158 FLAG_ISDESTRUCTING = 0x0400,
159 FLAG_ISEVALUATING = 0x0800,
160 FLAG_ISNOTIFIED = 0x1000
163 void evaluateField(
void)
const;
164 void extendStorageIfNecessary(
void);
170 static SoType classTypeId;
173 enum FileFormatFlags {
177 ALLFILEFLAGS = IGNORED|CONNECTED|DEFAULT
180 SbBool changeStatusBits(
const unsigned int bits,
const SbBool onoff);
181 void clearStatusBits(
const unsigned int bits);
182 void setStatusBits(
const unsigned int bits);
183 SbBool getStatus(
const unsigned int bits)
const;
184 unsigned int statusbits;
187 class SoConnectStorage * storage;
190 SbBool hasExtendedStorage(
void)
const;
194 #ifndef COIN_INTERNAL
196 #include <Inventor/fields/SoSField.h>
197 #include <Inventor/fields/SoMField.h>
198 #endif // !COIN_INTERNAL
200 #endif // !COIN_SOFIELD_H