Coin Logo http://www.sim.no
http://www.coin3d.org

SoFieldContainer.h
1 #ifndef COIN_SOFIELDCONTAINER_H
2 #define COIN_SOFIELDCONTAINER_H
3 
4 /**************************************************************************\
5  *
6  * This file is part of the Coin 3D visualization library.
7  * Copyright (C) 1998-2007 by Systems in Motion. All rights reserved.
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public License
11  * ("GPL") version 2 as published by the Free Software Foundation.
12  * See the file LICENSE.GPL at the root directory of this source
13  * distribution for additional information about the GNU GPL.
14  *
15  * For using Coin with software that can not be combined with the GNU
16  * GPL, and for taking advantage of the additional benefits of our
17  * support services, please contact Systems in Motion about acquiring
18  * a Coin Professional Edition License.
19  *
20  * See http://www.coin3d.org/ for more information.
21  *
22  * Systems in Motion, Postboks 1283, Pirsenteret, 7462 Trondheim, NORWAY.
23  * http://www.sim.no/ sales@sim.no coin-support@coin3d.org
24  *
25 \**************************************************************************/
26 
27 #include <Inventor/misc/SoBase.h>
28 
29 class SbString;
30 class SoFieldData;
31 class SoFieldList;
32 class SoOutput;
33 
34 
35 class COIN_DLL_API SoFieldContainer : public SoBase {
36  typedef SoBase inherited;
37 
38 public:
39  static void initClass(void);
40  static SoType getClassTypeId(void);
41 
42  void setToDefaults(void);
43  SbBool hasDefaultValues(void) const;
44 
45  SbBool fieldsAreEqual(const SoFieldContainer * container) const;
46  void copyFieldValues(const SoFieldContainer * container,
47  SbBool copyconnections = FALSE);
48 
49  SbBool set(const char * const fielddata);
50  void get(SbString & fielddata);
51 
52  virtual int getFields(SoFieldList & l) const;
53  virtual int getAllFields(SoFieldList & l) const;
54  virtual SoField * getField(const SbName & name) const;
55  virtual SoField * getEventIn(const SbName & name) const;
56  virtual SoField * getEventOut(const SbName & name) const;
57  SbBool getFieldName(const SoField * const field, SbName & name) const;
58 
59  SbBool enableNotify(const SbBool flag);
60  SbBool isNotifyEnabled(void) const;
61 
62  SbBool set(const char * fielddata, SoInput * in);
63  void get(SbString & fielddata, SoOutput * out);
64 
65  virtual void notify(SoNotList * l);
66 
67  virtual SbBool validateNewFieldValue(SoField * field, void * newval);
68 
69  virtual void addWriteReference(SoOutput * out, SbBool isfromfield = FALSE);
70  virtual void writeInstance(SoOutput * out);
71 
72  SbBool getIsBuiltIn(void) const;
73  virtual const SoFieldData * getFieldData(void) const;
74 
75  virtual void copyContents(const SoFieldContainer * from,
76  SbBool copyconnections);
77  virtual SoFieldContainer * copyThroughConnection(void) const;
78 
79  static void initCopyDict(void);
80  static void addCopy(const SoFieldContainer * orig,
81  const SoFieldContainer * copy);
82  static SoFieldContainer * checkCopy(const SoFieldContainer * orig);
83  static SoFieldContainer * findCopy(const SoFieldContainer * orig,
84  const SbBool copyconnections);
85  static void copyDone(void);
86 
87  void setUserData(void * userdata) const;
88  void * getUserData(void) const;
89 
90 protected:
91  SoFieldContainer(void);
93 
94  virtual SbBool readInstance(SoInput * in, unsigned short flags);
95  SbBool isBuiltIn;
96 
97 private:
98  static SoType classTypeId;
99  SbBool donotify;
100 };
101 
102 #endif // !COIN_SOFIELDCONTAINER_H
SoType::badType
static SoType badType(void)
Definition: SoType.cpp:664
SoFieldContainer::~SoFieldContainer
~SoFieldContainer()
Definition: SoFieldContainer.cpp:109
SoFieldData::getNumFields
int getNumFields(void) const
Definition: SoFieldData.cpp:288
SoFieldContainer::getField
virtual SoField * getField(const SbName &name) const
Definition: SoFieldContainer.cpp:364
SbName
The SbName class stores strings by reference.
Definition: SbName.h:31
SoFieldContainer::setUserData
void setUserData(void *userdata) const
Definition: SoFieldContainer.cpp:980
SoFieldContainer::SoFieldContainer
SoFieldContainer(void)
Definition: SoFieldContainer.cpp:101
SoNotList::getLastRec
SoNotRec * getLastRec(void) const
Definition: SoNotification.cpp:149
SoOutput::getBuffer
virtual SbBool getBuffer(void *&bufPointer, size_t &nBytes) const
Definition: SoOutput.cpp:590
SoOutput
The SoOutput class is an abstraction of an output stream.
Definition: SoOutput.h:42
SoFieldContainer::hasDefaultValues
SbBool hasDefaultValues(void) const
Definition: SoFieldContainer.cpp:223
SoFieldContainer::copyFieldValues
void copyFieldValues(const SoFieldContainer *container, SbBool copyconnections=0)
Definition: SoFieldContainer.cpp:263
SoFieldContainer::enableNotify
SbBool enableNotify(const SbBool flag)
Definition: SoFieldContainer.cpp:443
SoBase::getName
virtual SbName getName(void) const
Definition: SoBase.cpp:730
SoNotRec::getBase
SoBase * getBase(void) const
Definition: SoNotRec.cpp:71
SbStorage
The SbStorage class manages thread-local memory.
Definition: SbStorage.h:31
SoFieldData::isSame
SbBool isSame(const SoFieldContainer *c1, const SoFieldContainer *c2) const
Definition: SoFieldData.cpp:755
SoBase::getClassTypeId
static SoType getClassTypeId(void)
Definition: SoBase.cpp:720
SoFieldContainer::getUserData
void * getUserData(void) const
Definition: SoFieldContainer.cpp:993
SoInput::setBuffer
virtual void setBuffer(void *bufpointer, size_t bufsize)
Definition: SoInput.cpp:1025
SoFieldContainer::getFieldName
SbBool getFieldName(const SoField *const field, SbName &name) const
Definition: SoFieldContainer.cpp:409
SoBase::readInstance
virtual SbBool readInstance(SoInput *in, unsigned short flags)=0
SoFieldContainer::get
void get(SbString &fielddata)
Definition: SoFieldContainer.cpp:304
SoFieldContainer::checkCopy
static SoFieldContainer * checkCopy(const SoFieldContainer *orig)
Definition: SoFieldContainer.cpp:797
SoNotRec
The SoNotRec class specifies records for notification lists.
Definition: SoNotRec.h:33
SoBase::notify
virtual void notify(SoNotList *l)
Definition: SoBase.cpp:909
SbString
The SbString class is a string class with convenience functions for string operations.
Definition: SbString.h:42
SoOutput::setBuffer
virtual void setBuffer(void *bufPointer, size_t initSize, SoOutputReallocCB *reallocFunc, int32_t offset=0)
Definition: SoOutput.cpp:572
SoFieldContainer::getAllFields
virtual int getAllFields(SoFieldList &l) const
Definition: SoFieldContainer.cpp:349
SoFieldContainer::isNotifyEnabled
SbBool isNotifyEnabled(void) const
Definition: SoFieldContainer.cpp:459
SoBase::unref
void unref(void) const
Definition: SoBase.cpp:627
SoFieldContainer::getFields
virtual int getFields(SoFieldList &l) const
Definition: SoFieldContainer.cpp:318
SoField
The SoField class is the top-level abstract base class for fields.
Definition: SoField.h:38
SoType
The SoType class is the basis for the run-time type system in Coin.
Definition: SoType.h:50
SoFieldContainer::readInstance
virtual SbBool readInstance(SoInput *in, unsigned short flags)
Definition: SoFieldContainer.cpp:953
SbList< SoFieldContainerCopyMap * >
SoDebugError::postInfo
static void postInfo(const char *const source, const char *const format,...)
Definition: SoDebugError.cpp:334
SoFieldContainer::writeInstance
virtual void writeInstance(SoOutput *out)
Definition: SoFieldContainer.cpp:640
SoNotList::append
void append(SoNotRec *const rec)
Definition: SoNotification.cpp:66
SoFieldContainer::initCopyDict
static void initCopyDict(void)
Definition: SoFieldContainer.cpp:744
SoFieldContainer::findCopy
static SoFieldContainer * findCopy(const SoFieldContainer *orig, const SbBool copyconnections)
Definition: SoFieldContainer.cpp:831
SoFieldContainer::getIsBuiltIn
SbBool getIsBuiltIn(void) const
Definition: SoFieldContainer.cpp:652
SoFieldData
The SoFieldData class is a container for a prototype set of fields.
Definition: SoFieldData.h:39
SoBase::addWriteReference
virtual void addWriteReference(SoOutput *out, SbBool isfromfield=0)
Definition: SoBase.cpp:1002
SbStorage::get
void * get(void)
Definition: SbStorage.h:38
SoFieldList
The SoFieldList class is a container for pointers to SoField objects.
Definition: SoFieldList.h:31
SoBase
The SoBase class is the top-level superclass for a number of class-hierarchies.
Definition: SoBase.h:41
SoFieldData::overlay
void overlay(SoFieldContainer *to, const SoFieldContainer *from, SbBool copyconnections) const
Definition: SoFieldData.cpp:250
SoFieldContainer::copyDone
static void copyDone(void)
Definition: SoFieldContainer.cpp:929
SoFieldContainer::getEventOut
virtual SoField * getEventOut(const SbName &name) const
Definition: SoFieldContainer.cpp:394
SoFieldContainer::fieldsAreEqual
SbBool fieldsAreEqual(const SoFieldContainer *container) const
Definition: SoFieldContainer.cpp:242
SoFieldContainer
The SoFieldContainer class is a base class for all classes that contain fields.
Definition: SoFieldContainer.h:35
SoBase::ref
void ref(void) const
Definition: SoBase.cpp:574
SoFieldContainer::addCopy
static void addCopy(const SoFieldContainer *orig, const SoFieldContainer *copy)
Definition: SoFieldContainer.cpp:765
SoFieldList::append
void append(SoField *field)
Definition: SoFieldList.h:37
SoType::createInstance
void * createInstance(void) const
Definition: SoType.cpp:803
SoFieldContainer::setToDefaults
void setToDefaults(void)
Definition: SoFieldContainer.cpp:201
SoFieldContainer::getEventIn
virtual SoField * getEventIn(const SbName &name) const
Definition: SoFieldContainer.cpp:383
SoOutput::setStage
void setStage(Stage stage)
Definition: SoOutput.cpp:728
SoFieldContainer::notify
virtual void notify(SoNotList *l)
Definition: SoFieldContainer.cpp:562
SoFieldContainer::isBuiltIn
SbBool isBuiltIn
Definition: SoFieldContainer.h:95
SoBase::getTypeId
virtual SoType getTypeId(void) const =0
SoType::createType
static const SoType createType(const SoType parent, const SbName name, const instantiationMethod method=(instantiationMethod) NULL, const uint16_t data=0)
Definition: SoType.cpp:256
SoFieldContainer::set
SbBool set(const char *const fielddata)
Definition: SoFieldContainer.cpp:291
SoFieldData::getFieldName
const SbName & getFieldName(int index) const
Definition: SoFieldData.cpp:297
SoField::getFieldType
int getFieldType(void) const
Definition: SoField.cpp:2478
SoInput
The SoInput class is an abstraction of file import functionality.
Definition: SoInput.h:55
SoFieldContainer::getFieldData
virtual const SoFieldData * getFieldData(void) const
Definition: SoFieldContainer.cpp:663
SoFieldData::getIndex
int getIndex(const SoFieldContainer *fc, const SoField *field) const
Definition: SoFieldData.cpp:333
SoBase::isOfType
SbBool isOfType(SoType type) const
Definition: SoBase.cpp:710
SoNode
The SoNode class is the base class for nodes used in scene graphs.
Definition: SoNode.h:47
SoFieldContainer::validateNewFieldValue
virtual SbBool validateNewFieldValue(SoField *field, void *newval)
Definition: SoFieldContainer.cpp:596
SoBase::initClass
static void initClass(void)
Definition: SoBase.cpp:455
SoFieldContainer::addWriteReference
virtual void addWriteReference(SoOutput *out, SbBool isfromfield=0)
Definition: SoFieldContainer.cpp:605
SoFieldData::getField
SoField * getField(const SoFieldContainer *object, int index) const
Definition: SoFieldData.cpp:307
SoNotList
The SoNotList class is a list of SoNotRec notification records.
Definition: SoNotification.h:34
SoFieldContainer::copyContents
virtual void copyContents(const SoFieldContainer *from, SbBool copyconnections)
Definition: SoFieldContainer.cpp:711
SoFieldData::read
SbBool read(SoInput *in, SoFieldContainer *object, SbBool erroronunknownfield, SbBool &notbuiltin) const
Definition: SoFieldData.cpp:446
SoFieldData::write
void write(SoOutput *out, const SoFieldContainer *object) const
Definition: SoFieldData.cpp:634
SoBase::setName
virtual void setName(const SbName &newname)
Definition: SoBase.cpp:763
SoNotRec::getType
SoNotRec::Type getType(void) const
Definition: SoNotRec.cpp:80
SoFieldContainer::copyThroughConnection
virtual SoFieldContainer * copyThroughConnection(void) const
Definition: SoFieldContainer.cpp:728

Copyright © 1998-2007 by Systems in Motion AS. All rights reserved.

Generated on Wed Jul 24 2019 for Coin by Doxygen. 1.8.17