Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
SoMField(3IV)()						       SoMField(3IV)()

       SoMField	-- base	class for all multiple-valued fields

       SoField > SoMField

       #include	<Inventor/fields/SoField.h>

	  Methods from class SoMField:

     int		 getNum() const
     void		 setNum(int num)
     virtual void	 deleteValues(int start, int num = -1)
     virtual void	 insertSpace(int start,	int num)
     SbBool		 set1(int index, const char *valueString)
     void		 get1(int index, SbString &valueString)
     static SoType	 getClassTypeId()

	  Methods from class SoField:

     void		 setIgnored(SbBool ignore)
     SbBool		 isIgnored() const
     SbBool		 isDefault() const
     virtual SoType	 getTypeId() const
     virtual SbBool	 isOfType(SoType type) const
     SbBool		 set(const char	*valueString)
     void		 get(SbString &valueString)
     int		 operator ==(const SoField &f) const
     int		 operator !=(const SoField &f) const
     void		 touch()
     SbBool		 connectFrom(SoField *fromField)
     SbBool		 connectFrom(SoEngineOutput *fromEngine)
     void		 disconnect()
     SbBool		 isConnected() const
     SbBool		 isConnectedFromField()	const
     SbBool		 getConnectedField(SoField *&writingField) const
     SbBool		 isConnectedFromEngine() const
     SbBool		 getConnectedEngine(SoEngineOutput     *&engineOutput)
     void		 enableConnection(SbBool flag)
     SbBool		 isConnectionEnabled() const
     int		 getForwardConnections(SoFieldList &list) const
     SoFieldContainer *	 getContainer()	const

       Each class derived from SoMField	begins with an SoMF  prefix  and  con-
       tains  a	 dynamic array of values of a particular type. Each has	a set-
       Values()	method that is passed a	pointer	to a const array of values  of
       the  correct type; these	values are copied into the array in the	field,
       making extra room in the	array if necessary. The	start and num  parame-
       ters  to	this method indicate the starting array	index to copy into and
       the number of values to copy.

       The getValues() method for  a  multiple-value  field  returns  a	 const
       pointer	to  the	array of values	in the field. (Because this pointer is
       const, it cannot	be used	to change values in this array.)

       In addition, the	indexing operator "[]" is  overloaded  to  return  the
       i'th  value  in the array; because it returns a const reference,	it can
       be used only to get values, not to set them.

       Methods are provided for	getting	the number of values in	the field, in-
       serting space for new values in the middle, and deleting	values.

       There are other methods that allow you to set only one value of several
       in the field and	to set the field to contain one	and only one value.

       Two other methods can be	used to	make several changes  to  a  multiple-
       value  field without the	overhead of copying values into	and out	of the
       fields. The startEditing() method returns a non-const  pointer  to  the
       array  of  values in the	field; this pointer can	then be	used to	change
       (but not	add or remove) any values in the  array.  The  finishEditing()
       method  indicates  that the editing is done and notifies	any sensors or
       engines that may	be connected to	the field.

       SoMFields are written to	file as	a series of values separated  by  com-
       mas,  all enclosed in square brackets. If the field has no values (get-
       Num() returns zero), then only the square brackets ("[]") are  written.
       The  last  value	may optionally be followed by a	comma. Each field sub-
       type defines how	the values are written;	for  example,  a  field	 whose
       values are integers might be written as:

	  [ 1, 2, 3, 4 ]
	  [ 1, 2, 3, 4,	]

     int		 getNum() const
	  Returns the number of	values currently in the	field.

     void		 setNum(int num)
	  Forces  this field to	have exactly num values, inserting or deleting
	  values as necessary.

     virtual void	 deleteValues(int start, int num = -1)
	  Deletes num values beginning at index	 start	(index	start  through
	  start+num-1  will  be	deleted, and any leftover values will be moved
	  down to fill in the gap created). A num of -1	means delete all  val-
	  ues  from start to the last value in the field; getNum() will	return
	  start	as the number of values	in  the	 field	after  this  operation
	  (deleteValues(0, -1) empties the field).

     virtual void	 insertSpace(int start,	int num)
	  Inserts  space  for  num  values at index start. Index start through
	  start+num-1 will be moved up to make room. For example, to make room
	  for  7  new values at	the beginning of the field call	insertSpace(0,

     SbBool		 set1(int index, const char *valueString)
     void		 get1(int index, SbString &valueString)
	  These	are equivalent to the set() and	get() methods of SoField,  but
	  they operate on only one value. See the SoField methods for details.

     static SoType	 getClassTypeId()
	  Return the type identifier for this field class.

       SoNode, SoEngine



Want to link to this manual page? Use this URL:

home | help