Open Inventor Release 2024.1.0
 
Loading...
Searching...
No Matches
SoSFArray3D Class Reference

Field containing a 3D array value. More...

#include <Inventor/fields/SoSFArray3D.h>

+ Inheritance diagram for SoSFArray3D:

Public Member Functions

virtual SoType getTypeId () const
 Returns the type identifier for this specific instance.
 
const SoSFArray3Doperator= (const SoSFArray3D &f)
 Copy from another field of same type.
 
 SoSFArray3D ()
 Default constructor.
 
virtual ~SoSFArray3D ()
 Destructor.
 
void setValue (const SbVec3i32 &size, const SbDataType &dataType, unsigned int numSigBits, const void *data, CopyPolicy copy)
 Fill the array with data of the specified dimensions and type using the specified copy policy.
 
void setValue (const SbVec3i32 &size, unsigned int numSigBits, SoMemoryObject *memObj, CopyPolicy copy)
 Fill the array with data of the specified dimensions and type using the specified copy policy.
 
unsigned int getNumSigBits () const
 Returns the number of significant bits.
 
virtual int operator== (const SoSFArray3D &f) const
 Returns TRUE if all of the values of this field equal those of the given field f.
 
void * getValue () const
 Returns a read-only pointer to the array's values.
 
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 * startEditing (SbVec3i32 &size, SbDataType &dataType)
 Returns a pointer to the internally maintained array that can be modified.
 
const SbVec3i32getSize () const
 Returns the dimensions of the array.
 
- Public Member Functions inherited from SoSFArray
const SoSFArrayoperator= (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 do not equal those of the given field f.
 
void setNeverWrite (SbBool neverWrite)
 Sets the "neverWrite" flag.
 
SbBool isNeverWrite ()
 Returns the "neverWrite" flag.
 
const SbVec3i32getSize () 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.
 
SoFieldContainergetContainer () 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 SoSFArray
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.
 

Additional Inherited Members

- Public Types inherited from SoSFArray
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...
 

Detailed Description

Field containing a 3D array value.

This field contains a 3D array of values of a specified type. The setValue method allows you to specify the dimensions and type of data the array will contain, as well as the number of significant bits. The CopyPolicy allows you to control whether Open Inventor will make a copy of the data and, if not, whether the application or Open Inventor is responsible for managing the memory.

In ASCII format, an SoSFArray3D is written to file in the following format:

  • Three numbers define the dimensions of the array
  • One string defines the type of the data:
    • BYTE for signed bytes
    • UBYTE for unsigned bytes
    • SHORT for signed shorts
    • USHORT for unsigned shorts
    • INT32 for signed 32 bits ints
    • UINT32 for unsigned 32 bits ints
    • FLOAT for floating point values
  • A list of values in decimal, hexadecimal, or octal format for integers or in standard scientific notation for float. Numbers are separated by a blank (space, tab, return...).
  • One number defines the number of significant bits

The example below shows the definition of a 2x2x2 array of unsigned bytes with data values 0, 1, 2, 3, 4, 5, 6, 7 and a number of significant bits of 8:

  2 2 2 UBYTE
  0 1
  2 3
  4 5
  6 7
  8
* \verbatim
*
* An SoSFArray3D may be empty or contain only dimension and type information,
* but no data values.  With no data values the previous example would be
* written with the prefix "NODATA" like this:
* \verbatim
  NODATA 2 2 2 UBYTE
  8

SEE ALSO

SoField, SoSField, SoSFArray, SoSFArray2D

Definition at line 89 of file SoSFArray3D.h.

Constructor & Destructor Documentation

◆ SoSFArray3D()

SoSFArray3D::SoSFArray3D ( )

Default constructor.

◆ ~SoSFArray3D()

virtual SoSFArray3D::~SoSFArray3D ( )
virtual

Destructor.

Member Function Documentation

◆ getClassTypeId()

static SoType SoSFArray3D::getClassTypeId ( )
static

Returns the type identifier for this class.


◆ getNumSigBits()

unsigned int SoSFArray3D::getNumSigBits ( ) const
inline

Returns the number of significant bits.

Definition at line 161 of file SoSFArray3D.h.

◆ getSize()

const SbVec3i32 & SoSFArray::getSize ( ) const
inline

Returns the dimensions of the array.

Definition at line 151 of file SoSFArray.h.

◆ getTypeId()

virtual SoType SoSFArray3D::getTypeId ( ) const
virtual

Returns the type identifier for this specific instance.

Reimplemented from SoSFArray.

◆ getValue() [1/2]

void * SoSFArray::getValue ( ) const
inline

Returns a read-only pointer to the array's values.

Definition at line 108 of file SoSFArray.h.

◆ getValue() [2/2]

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.

◆ operator=()

const SoSFArray3D & SoSFArray3D::operator= ( const SoSFArray3D f)

Copy from another field of same type.

◆ operator==()

virtual int SoSFArray3D::operator== ( const SoSFArray3D f) const
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.

◆ setValue() [1/2]

void SoSFArray3D::setValue ( const SbVec3i32 size,
const SbDataType dataType,
unsigned int  numSigBits,
const void *  data,
CopyPolicy  copy 
)

Fill the array with data of the specified dimensions and type using the specified copy policy.

◆ setValue() [2/2]

void SoSFArray3D::setValue ( const SbVec3i32 size,
unsigned int  numSigBits,
SoMemoryObject memObj,
CopyPolicy  copy 
)

Fill the array with data of the specified dimensions and type using the specified copy policy.

◆ startEditing()

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.


The documentation for this class was generated from the following file: