SoFieldContainer(3IV)

SoFieldContainer (SoFldCont) - abstract base class for objects that contain fields

As shipped in IRIX 6.5.22. Added in IRIX 6.5.22.

NAME
     SoFieldContainer (SoFldCont) - abstract base class for objects that
     contain fields

INHERITS FROM
     SoBase > SoFieldContainer

SYNOPSIS
     #include <Inventor_c/fields/SoFieldContainer.h>

     typedef SoFieldContainer  SoFldCont

          Functions from class SoFieldContainer:

     SoType              SoFldContGetClassTypeId()
     void                SoFldContSetToDflts(SoFldCont *this)
     SbBool              SoFldContHasDfltVals(const SoFldCont *this)
     SbBool              SoFldContFldsAreEq(const SoFldCont *this, const
                              SoFieldContainer *fc)
     void                SoFldContCopyFieldVals(SoFldCont *this, const
                              SoFieldContainer *fc, SbBool copyConnections =
                              FALSE)
     SbBool              SoFldContSet(SoFldCont *this, const char
                              *fieldDataString)
     void                SoFldContGet(SoFldCont *this, SbString
                              *fieldDataString)
     int                 SoFldContGetFields(const SoFldCont *this, SoFieldList
                              *resultList)
     SoField *           SoFldContGetField(const SoFldCont *this, const char
                              *fieldName)
     SbBool              SoFldContGetFieldName(const SoFldCont *this, const
                              SoField *field, SbName *fieldName)
     SbBool              SoFldContIsNotifyEnabled(const SoFldCont *this)
     SbBool              SoFldContEnableNotify(SoFldCont *this, SbBool flag)

          Functions from class SoBase:

     void                SoFldContRef(SoFldCont *this)
     void                SoFldContUnref(const SoFldCont *this)
     void                SoFldContUnrefNoDelete(const SoFldCont *this)
     void                SoFldContTouch(SoFldCont *this)
     SoType              SoFldContGetTypeId(const SoFldCont *this)
     SbBool              SoFldContIsOfType(const SoFldCont *this, SoType type)
     void                SoFldContSetName(SoFldCont *this, const char *name)
     SbName              SoFldContGetName(const SoFldCont *this)


DESCRIPTION
     SoFieldContainer is the abstract base class for engines and nodes. It
     contains methods for finding out what fields an object has, controlling
     notification, and for dealing with all of the fields of an object at
     once.
     The fields of an engine are its inputs. Note that even though an engine's
     output corresponds to a specific type of field, an engine output is not a
     field.

FUNCTIONS
     SoType              SoFldContGetClassTypeId()
          Returns the type of this class.

     void                SoFldContSetToDflts(SoFldCont *this)
          Sets all fields in this object to their default values.

     SbBool              SoFldContHasDfltVals(const SoFldCont *this)
          Returns TRUE if all of the object's fields have their default
          values. This will return TRUE even if a field's isDefault() method
          returns FALSE - for example, if a field's default value is 0.0 and
          you SetValue(0.0) that field, the default flag will be set to FALSE
          (because it would be too slow to compare the field against its
          default value every time setValue is called). However, HasDfltVals()
          would return TRUE in this case.

     SbBool              SoFldContFldsAreEq(const SoFldCont *this, const
                              SoFieldContainer *fc)
          Returns TRUE if this object's fields are exactly equal to fc's
          fields. If fc is not exactly same type as this object, FALSE is
          returned.

     void                SoFldContCopyFieldVals(SoFldCont *this, const
                              SoFieldContainer *fc, SbBool copyConnections =
                              FALSE)
          Copies the contents of fc's fields into this object's fields. fc
          must be the same type as this object. If copyConnections is TRUE,
          then if any of fc's fields are connected then this object's fields
          will also be connected to the same source.

     SbBool              SoFldContSet(SoFldCont *this, const char
                              *fieldDataString)
          Sets one or more fields in this object to the values specified in
          the given string, which should be a string in the Inventor file
          format. TRUE is returned if the string was valid Inventor file
          format. For example, you could set the fields of an SoCube by doing:

               SoCube *cube = ....
               cube->set("width 1.0 height 2.0 depth 3.2");



     void                SoFldContGet(SoFldCont *this, SbString
                              *fieldDataString)
          Returns the values of the fields of this object in the Inventor
          ASCII file format in the given string. Fields whose IsDflt() bit is
          set will not be part of the string. You can use the SoFieldGet()
          method to get a field's value as a string even if has its default
          value.

     int                 SoFldContGetFields(const SoFldCont *this, SoFieldList
                              *resultList)
          Appends pointers to all of this object's fields to resultList, and
          returns the number of fields appended. The types of the fields can
          be determined using SoFldIsOfType and SoFldGetTypeId(), and their
          names can be determined by passing the field pointers to the
          GetFieldName() method (see below).

     SoField *           SoFldContGetField(const SoFldCont *this, const char
                              *fieldName)
          Returns a pointer to the field of this object whose name is
          fieldName. Returns NULL if there is no field with the given name.

     SbBool              SoFldContGetFieldName(const SoFldCont *this, const
                              SoField *field, SbName *fieldName)
          Returns the name of the given field in the fieldName argument.
          Returns FALSE if field is not a member of this object.

     SbBool              SoFldContIsNotifyEnabled(const SoFldCont *this)
          Notification is the process of telling interested objects that this
          object has changed. Notification is needed to make engines and
          sensors function, is used to keep SoPaths up to date when the scene
          graph's topology changes, and is also used to invalidate rendering
          or bounding box caches.

          Notification is normally enabled, but can be disabled on a node by
          node (or engine by engine) basis. If you are making extensive
          changes to a large part of the scene graph then disabling
          notification can increase performance, at the expense of increased
          responsibility for making sure that any interested engines, sensors
          or paths are kept up to date.

          For example, if you will be making a lot of changes to a small part
          of your scene graph and you know that there are no engines or
          sensors attached to nodes in that part of the scene graph, you might
          disable notification on the nodes you are changing, modify them,
          re-enable notification, and then touch() one of the nodes to cause a
          redraw.

          However, you should profile your application and make sure that
          notification is taking a significant amount of time before going to
          the trouble of manually controlling notification.

     SbBool              SoFldContEnableNotify(SoFldCont *this, SbBool flag)
          Notification at this Field Container is enabled (if flag == TRUE) or
          disabled (if flag == FALSE). The returned boolean value indicates
          whether notification was enabled immediately prior to applying this
          method.

SEE ALSO
     SoSField, SoMField, SoNode, SoDB