Abstract Field containing an array of values. More...
#include <Inventor/fields/SoSFArray.h>
Public Types | |
enum | CopyPolicy { COPY = SoMemoryObject::COPY , NO_COPY = SoMemoryObject::NO_COPY , NO_COPY_AND_DELETE = SoMemoryObject::NO_COPY_AND_DELETE , NO_COPY_AND_FREE = SoMemoryObject::NO_COPY_AND_FREE } |
SoSFArray may be manipulating some large amounts of memory. More... | |
enum | DataType { UNSIGNED_BYTE = SbDataType::UNSIGNED_BYTE , UNSIGNED_SHORT = SbDataType::UNSIGNED_SHORT , UNSIGNED_INT32 = SbDataType::UNSIGNED_INT32 , SIGNED_BYTE = SbDataType::SIGNED_BYTE , SIGNED_SHORT = SbDataType::SIGNED_SHORT , SIGNED_INT32 = SbDataType::SIGNED_INT32 , FLOAT = SbDataType::FLOAT } |
Supported data type enumeration values. More... | |
Public Member Functions | |
virtual SoType | getTypeId () const |
Returns the type identifier for this specific instance. | |
const SoSFArray & | operator= (const SoSFArray &f) |
Copy from another field of same type. | |
SoSFArray () | |
Default constructor. | |
virtual | ~SoSFArray () |
Destructor. | |
void * | getValue () const |
Returns a read-only pointer to the array's values. | |
DataType | getDataType () const |
Returns the data type of the array. | |
void | finishEditing () |
Indicates that batch edits have finished. | |
virtual int | operator== (const SoSFArray &f) const |
Returns TRUE if all of the values of this field equal those of the given field f. | |
virtual int | operator!= (const SoSFArray &f) const |
Returns TRUE if all of the values of this field do not equal those of the given field f. | |
void | setNeverWrite (SbBool neverWrite) |
Sets the "neverWrite" flag. | |
SbBool | isNeverWrite () |
Returns the "neverWrite" flag. | |
const SbVec3i32 & | getSize () const |
Returns the dimensions of the array. | |
void * | startEditing (SbVec3i32 &size, SbDataType &dataType) |
Returns a pointer to the internally maintained array that can be modified. | |
virtual size_t | getValueSize () const |
Returns the size in bytes of one data value, e.g. | |
const void * | getValue (SbVec3i32 &size, SbDataType &dataType) const |
Returns a read-only pointer to the array's values and its dimensions and data type. | |
void | setValue (const SbVec3i32 &size, const SbDataType &dataType, const void *data, CopyPolicy copy=COPY) |
Fill the array with data of the specified dimensions and type using the specified copy policy. | |
void | setValue (const SbVec3i32 &size, SoMemoryObject *memObj, CopyPolicy copy) |
Fill the array with the specified dimensions and data from an SoMemoryObject using the specified copy policy. | |
SbBool | isEmpty () const |
Returns TRUE if the current array is empty. | |
Public Member Functions inherited from SoField | |
void | setIgnored (SbBool ig) |
Sets the ignore flag for this field. | |
SbBool | isIgnored () const |
Gets the ignore flag for this field. | |
SbBool | isDefault () const |
Gets the state of default flag of the field. | |
void | enableConnection (SbBool flag) |
Field connections may be enabled and disabled. | |
SbBool | isConnectionEnabled () const |
Returns FALSE if connections to this field are disabled. | |
SbBool | connectFrom (SoEngineOutput *engineOutput) |
Connects this field from an engine output. | |
SbBool | connectFrom (SoField *field) |
Connects this field to another field. | |
SbBool | connectFrom (SoVRMLInterpOutput *interpOutput) |
Connects this field from an interpOutput. | |
SbBool | appendConnection (SoEngineOutput *engineOutput) |
Appends this field to the list of connections from another engineOutput. | |
SbBool | appendConnection (SoField *field) |
Appends this field to the list of connections from another field. | |
SbBool | appendConnection (SoVRMLInterpOutput *interpOutput) |
Appends this field to the list of connections from another interpOutput. | |
void | disconnect (SoEngineOutput *engineOutput) |
Disconnect the field from the requested engineOutput. | |
void | disconnect (SoField *field) |
Disconnect the field from the requested field. | |
void | disconnect (SoVRMLInterpOutput *interpOutput) |
Disconnect the field from the requested interpOutput. | |
int | getNumConnections () const |
Returns the number of connections to this field. | |
int | getConnections (SoFieldList &list) |
Returns a list of the connections to this field. | |
void | disconnect () |
Disconnect the field from whatever it was connected to. | |
SbBool | isConnected () const |
Returns TRUE if the field is connected to anything. | |
SbBool | isConnectedFromVRMLInterp () const |
Returns TRUE if the field is connected to a VRML interpOutput. | |
SbBool | isConnectedFromEngine () const |
Returns TRUE if the field is connected to an engine's output. | |
SbBool | isConnectedFromField () const |
Returns TRUE if the field is connected to another field. | |
SbBool | getConnectedEngine (SoEngineOutput *&engineOutput) const |
Returns TRUE if this field is being written into by an engine, and returns the engine output it is connected to in engineOutput. | |
SbBool | getConnectedField (SoField *&writingField) const |
Returns TRUE if this field is being written into by another field, and returns the field it is connected to in writingField. | |
SbBool | getConnectedVRMLInterp (SoVRMLInterpOutput *&interpOutput) const |
Returns the VRMLInterpolator output field is connected to. | |
int | getForwardConnections (SoFieldList &list) const |
Adds references to all of the fields that this field is writing into (either fields in nodes, global fields or engine inputs) to the given field list, and returns the number of forward connections. | |
SoFieldContainer * | getContainer () const |
Returns the object that contains this field. | |
SoNONUNICODE SbBool | set (const char *valueString) |
Sets the field to the given value, which is an ASCII string in the Open Inventor file format. | |
SbBool | set (const SbString &valueString) |
Sets the field to the given value, which is an ASCII string in the Open Inventor file format. | |
void | get (SbString &valueString) |
Returns the value of the field in the Open Inventor file format, even if the field has its default value. | |
virtual void | touch () |
Simulates a change to the field, causing attached sensors to fire, connected fields and engines to be marked as needing evaluation, and so forth. | |
int | operator== (const SoField &f) const |
Return TRUE if this field is of the same type and has the same value as f. | |
int | operator!= (const SoField &f) const |
Return FALSE if this field is of the same type and has the same value as f. | |
Public Member Functions inherited from SoTypedObject | |
SbBool | isOfType (const SoType &type) const |
Returns TRUE if this object is of the type specified in type or is derived from that type. | |
template<typename TypedObjectClass > | |
SbBool | isOfType () const |
Returns TRUE if this object is of the type of class TypedObjectClass or is derived from that class. | |
Static Public Member Functions | |
static SoType | getClassTypeId () |
Returns the type identifier for this class. | |
Static Public Member Functions inherited from SoSField | |
static SoType | getClassTypeId () |
Return the type identifier for this field class. | |
Static Public Member Functions inherited from SoField | |
static SoType | getClassTypeId () |
Return the type identifier for this field class. | |
Static Public Member Functions inherited from SoTypedObject | |
static SoType | getClassTypeId () |
Returns the type identifier for this class. | |
Abstract Field containing an array of values.
Subclasses of this field can contain a 2D or 3D array of values of a specified type.
SoField, SoSField, SoSFArray2D, SoSFArray3D
Definition at line 49 of file SoSFArray.h.
SoSFArray may be manipulating some large amounts of memory.
It is therefore convienent to be able to set the memory usage policy dynamically. By default, the memory policy is COPY, which is consistent with other OIV fields. The most likely to be efficient is NO_COPY. See also setNeverWrite.
Enumerator | |
---|---|
COPY | Open Inventor will make a copy of the data (default) |
NO_COPY | Passed buffer used , user will delete. |
NO_COPY_AND_DELETE | Passed buffer used, SoSFImage will delete. Use this if memory is allocated with "new". |
NO_COPY_AND_FREE | Passed buffer used, SoSFImage will free. Use this if memory is allocated with "malloc". |
Definition at line 63 of file SoSFArray.h.
enum SoSFArray::DataType |
Supported data type enumeration values.
Enumerator | |
---|---|
UNSIGNED_BYTE | UNSIGNED_BYTE. |
UNSIGNED_SHORT | UNSIGNED_SHORT. |
UNSIGNED_INT32 | UNSIGNED_INT32. |
SIGNED_BYTE | SIGNED_BYTE. |
SIGNED_SHORT | SIGNED_SHORT. |
SIGNED_INT32 | SIGNED_INT32. |
FLOAT | FLOAT. |
Definition at line 85 of file SoSFArray.h.
SoSFArray::SoSFArray | ( | ) |
Default constructor.
|
virtual |
Destructor.
void SoSFArray::finishEditing | ( | ) |
Indicates that batch edits have finished.
See startEditing().
|
static |
Returns the type identifier for this class.
|
inline |
Returns the data type of the array.
Definition at line 113 of file SoSFArray.h.
|
inline |
Returns the dimensions of the array.
Definition at line 263 of file SoSFArray.h.
|
virtual |
Returns the type identifier for this specific instance.
Implements SoTypedObject.
Reimplemented in SoSFArray2D, and SoSFArray3D.
|
inline |
Returns a read-only pointer to the array's values.
Definition at line 253 of file SoSFArray.h.
const void * SoSFArray::getValue | ( | SbVec3i32 & | size, |
SbDataType & | dataType | ||
) | const |
Returns a read-only pointer to the array's values and its dimensions and data type.
|
inlinevirtual |
Returns the size in bytes of one data value, e.g.
returns 1 if the data type is UNSIGNED_BYTE.
Reimplemented from SoField.
Definition at line 270 of file SoSFArray.h.
SbBool SoSFArray::isEmpty | ( | ) | const |
Returns TRUE if the current array is empty.
|
inline |
Returns the "neverWrite" flag.
Definition at line 145 of file SoSFArray.h.
|
inlinevirtual |
Returns TRUE if all of the values of this field do not equal those of the given field f.
Definition at line 129 of file SoSFArray.h.
|
virtual |
Returns TRUE if all of the values of this field equal those of the given field f.
If the fields are different types FALSE will always be returned.
|
inline |
Sets the "neverWrite" flag.
As this field may have to handle large amounts of data and its representation in an .iv file is not very efficient, it is often a good idea not to allow that data to be written out when required by a write action. By default, the "neverWrite" condition is FALSE.
Definition at line 139 of file SoSFArray.h.
void SoSFArray::setValue | ( | const SbVec3i32 & | size, |
const SbDataType & | dataType, | ||
const void * | data, | ||
CopyPolicy | copy = COPY |
||
) |
Fill the array with data of the specified dimensions and type using the specified copy policy.
void SoSFArray::setValue | ( | const SbVec3i32 & | size, |
SoMemoryObject * | memObj, | ||
CopyPolicy | copy | ||
) |
Fill the array with the specified dimensions and data from an SoMemoryObject using the specified copy policy.
void * SoSFArray::startEditing | ( | SbVec3i32 & | size, |
SbDataType & | dataType | ||
) |
Returns a pointer to the internally maintained array that can be modified.
The values in the array may be changed, but values cannot be added or removed. It is illegal to call any other editing methods between startEditing() and finishEditing() (e.g. setValue(), etc.). Fields, engines or sensors connected to this field are not triggered until finishEditing() is called. Calling finishEditing() always sets the isDefault() flag to FALSE and informs engines and sensors that the field changed, even if none of the values actually were changed.