Classes | Public Types | Public Member Functions
CValue Class Reference

Detailed Description

The CValue object provides the convenience of a loosely typed variable inside a strictly typed language like C++.

In C++ all variables are strictly typed. For example "x" may be declared as an INT and "y" as a double. However scripting languages are often loosely typed, so a variable named x may contain a string or an integer or even a pointer to an object. The exact type of x is only determined when it is assigned a value, and the type of x can be changed at runtime by re-assigning its value.

For example, consider FCurve::AddKey. Because FCurves can be based on double, integer or boolean key values, there could be three versions of the function:

            %FCurve::AddKey( ...double in_value... )
            %FCurve::AddKey( ...integer in_value... )
            %FCurve::AddKey( ...bool in_value... )

However, with the availability of a class like CValue, all three functions can be replaced by a single one:

 FCurve::AddKey( ...const CValue& in_value... ) 

A CValue can store basic types like longs, floats and CString. By storing a CRef it can also contain a reference to any object in the scene. It can contain an entire array of values via CValueArray. It can also be used to hold a raw pointer to your own data or objects. Exceptionnaly, CVector3 objects can be contained in a CValue but other math objects are not automatically supported since they are not based on CBase.

The CValue::ChangeType and CValue::GetAsText methods are very useful for data conversion, for example to turn the value 55.5 to the string "55.5".

CValue is very similar to the VARIANT structure used in Win32. It is possible to convert between the two types using XSIVariantFromCValue and XSIVariantToCValue. However normally conversion is automatic, for example when using CComAPIHandler or when a custom C++ command is called from scripting. As a result it is possible to use this object without any knowledge of difficult COM datatypes like BSTR and SAFEARRAY. Because CValue provides operator overloads and various constructors it is much easier to use than a VARIANT and code using CValue will look very similar to the equivalent script code.

Example:
Demonstrates CValue usage
        using namespace XSI;
        Application app;

        // x has type "empty" and no value
        CValue x ;

        // Give x a value of type siInt4
        x = 5 ;

        // Change the type to siFloat by assigning a new value
        x = 6.0f;

        // Change the value 6.0 to the string "6.0"
        x.ChangeType( CValue::siString ) ;

        // Copy the value
        CValue y = x ;

        // It is possible to test exactly what type
        // of data a CValue contains
        if ( y.m_t == CValue::siString )
        {
            app.LogMessage( L"y has the value " + (CString)y ) ;
        }

        // CValueArray containing 3 CValue objects
        CValueArray a(3) ;

        a[0] = CValue( 125 ); // Explicit construction
        a[1] = 135 ;           // Implicit call to CValue( int )
        a[2] = L"String" ;     // Implicit call to CValue( const wchar_t* )

        // Now copy the entire CValueArray into a CValue.
        // b will have type siArray
        CValue b( a ) ;

        // Use the cast operator to access the Array inside b
        LONG size = ((CValueArray&)b).GetCount() ;

        //Will print: 'INFO : "Array contents: (125,135,String)"
        app.LogMessage( L"Array contents: " + b.GetAsText() ) ;


        // Copy the first array item
        CValue item1 = ((CValueArray&)b)[1] ;

        // Will print: 'INFO : "Item1 contains 135 and has type 3"
        // Notice how using a temporary CValue can be a
        // convenient way to convert a number (m_t) to text.
        app.LogMessage( L"Item1 contains " + item1.GetAsText()
                        + L" and has type " + CValue( (LONG)item1.m_t ).GetAsText() ) ;
Example:
Demonstrates using CValue with the GetValue command
        using namespace XSI;
        Application app;
        Model root = app.GetActiveSceneRoot();

        X3DObject myCube;
        root.AddGeometry( L"Cube", L"MeshSurface", CString(L"MyCube"), myCube );

        // change the cube's position x parameter value
        Parameter posx( myCube.GetParameter(L"posx") );
        CValue posxVal( posx.GetValue() );

        posx.PutValue( ((double)posxVal + 5.75) * 2.0 );

        app.LogMessage( posx.GetValue().GetAsText() );

#include <xsi_value.h>

List of all members.

Classes

union  ValueField

Public Types

enum  DataType {
  siEmpty = 0,
  siInt2 = 2,
  siInt4 = 3,
  siInt8 = 10,
  siFloat = 4,
  siDouble = 5,
  siString = 8,
  siIDispatch = 9,
  siBool = 11,
  siIUnknown = 13,
  siInt1 = 16,
  siUInt1 = 17,
  siUInt2 = 18,
  siUInt4 = 19,
  siUInt8 = 20,
  siWStr = 31,
  siRef = 666,
  siArray,
  siPtr,
  siRefArray,
  siVector3,
  siLongArray,
  siFloatArray,
  siVector2f = 800,
  siVector3f,
  siVector4f,
  siQuaternionf,
  siRotationf,
  siMatrix3f,
  siMatrix4f,
  siColor4f,
  siShape,
  siBlob,
  siStringArray
}
 DataType enumerator. More...

Public Member Functions

 CValue ()
virtual ~CValue ()
 CValue (const CValue &valSrc)
 CValue (short valSrc)
 CValue (unsigned short valSrc)
 CValue (LONG valSrc)
 CValue (int valSrc)
 CValue (ULONG valSrc)
 CValue (LLONG valSrc)
 CValue (ULLONG valSrc)
 CValue (float valSrc)
 CValue (double valSrc)
 CValue (bool valSrc)
 CValue (const CString &valSrc)
 CValue (const CRef &valSrc)
 CValue (const CRefArray &valSrc)
 CValue (unsigned char valSrc)
 CValue (signed char valSrc)
 CValue (const CValueArray &valSrc)
 CValue (const CLongArray &valSrc)
 CValue (const CFloatArray &valSrc)
 CValue (const MATH::CVector3 &valSrc)
 CValue (const MATH::CVector2f &valSrc)
 CValue (const MATH::CVector3f &valSrc)
 CValue (const MATH::CVector4f &val)
 CValue (const MATH::CQuaternionf &val)
 CValue (const MATH::CRotationf &val)
 CValue (const MATH::CMatrix3f &val)
 CValue (const MATH::CMatrix4f &val)
 CValue (const MATH::CColor4f &val)
 CValue (const MATH::CShape &val)
 CValue (siPtrType valSrc)
 CValue (const siBlobType &valSrc)
 CValue (const wchar_t *valSrc)
 CValue (const char *valSrc)
 CValue (const CStringArray &valSrc)
CValueoperator= (const CValue &valSrc)
CValueoperator= (short valSrc)
CValueoperator= (unsigned short valSrc)
CValueoperator= (LONG valSrc)
CValueoperator= (int valSrc)
CValueoperator= (ULONG valSrc)
CValueoperator= (LLONG valSrc)
CValueoperator= (ULLONG valSrc)
CValueoperator= (float valSrc)
CValueoperator= (double valSrc)
CValueoperator= (bool valSrc)
CValueoperator= (const CString &valSrc)
CValueoperator= (const wchar_t *valSrc)
CValueoperator= (const char *valSrc)
CValueoperator= (const CRef &valSrc)
CValueoperator= (const CRefArray &valSrc)
CValueoperator= (const MATH::CVector3 &valSrc)
CValueoperator= (const MATH::CVector2f &valSrc)
CValueoperator= (const MATH::CVector3f &valSrc)
CValueoperator= (const MATH::CVector4f &valSrc)
CValueoperator= (const MATH::CMatrix3f &valSrc)
CValueoperator= (const MATH::CMatrix4f &valSrc)
CValueoperator= (const MATH::CRotationf &valSrc)
CValueoperator= (const MATH::CQuaternionf &valSrc)
CValueoperator= (const MATH::CColor4f &valSrc)
CValueoperator= (const MATH::CShape &valSrc)
CValueoperator= (unsigned char valSrc)
CValueoperator= (signed char valSrc)
CValueoperator= (const CValueArray &valSrc)
CValueoperator= (const CLongArray &valSrc)
CValueoperator= (const CFloatArray &valSrc)
CValueoperator= (siPtrType valSrc)
CValueoperator= (const siBlobType &valSrc)
CValueoperator= (const CStringArray &valSrc)
 operator short () const
 operator unsigned short () const
 operator LONG () const
 operator int () const
 operator ULONG () const
 operator LLONG () const
 operator ULLONG () const
 operator float () const
 operator double () const
 operator bool () const
 operator CString () const
 operator CRef () const
 operator CRefArray () const
 operator unsigned char () const
 operator signed char () const
 operator CValueArray & () const
 operator CLongArray & () const
 operator CFloatArray & () const
 operator MATH::CVector3 () const
 operator MATH::CVector2f () const
 operator MATH::CVector3f () const
 operator MATH::CVector4f () const
 operator MATH::CMatrix3f () const
 operator MATH::CMatrix4f () const
 operator MATH::CRotationf () const
 operator MATH::CQuaternionf () const
 operator MATH::CColor4f () const
 operator MATH::CShape () const
 operator siPtrType () const
 operator siBlobType & () const
 operator CStringArray & () const
bool operator== (const CValue &valSrc) const
bool operator== (short) const
bool operator== (unsigned short) const
bool operator== (LONG) const
bool operator== (int) const
bool operator== (ULONG) const
bool operator== (LLONG) const
bool operator== (ULLONG) const
bool operator== (float) const
bool operator== (double) const
bool operator== (bool) const
bool operator== (const CString &) const
bool operator== (const wchar_t *) const
bool operator== (const char *) const
bool operator== (const CRef &) const
bool operator== (const CRefArray &) const
bool operator== (unsigned char) const
bool operator== (signed char) const
bool operator== (const CValueArray &) const
bool operator== (const CLongArray &) const
bool operator== (const CFloatArray &) const
bool operator== (const siPtrType) const
bool operator== (const siBlobType &) const
bool operator== (const MATH::CVector3 &) const
bool operator== (const MATH::CVector2f &) const
bool operator== (const MATH::CVector3f &) const
bool operator== (const MATH::CVector4f &) const
bool operator== (const MATH::CMatrix3f &) const
bool operator== (const MATH::CMatrix4f &) const
bool operator== (const MATH::CRotationf &) const
bool operator== (const MATH::CQuaternionf &) const
bool operator== (const MATH::CColor4f &) const
bool operator== (const MATH::CShape &) const
bool operator== (const CStringArray &) const
bool operator!= (const CValue &valSrc) const
bool operator> (const CValue &val) const
bool operator< (const CValue &val) const
bool operator>= (const CValue &val) const
bool operator<= (const CValue &val) const
void ChangeType (CValue::DataType in_type, const CValue *in_pSrc=NULL)
void Clear ()
void Attach (CValue &in_valSrc)
CValue Detach ()
CString GetAsText () const
bool IsEmpty () const

Member Enumeration Documentation

enum DataType

DataType enumerator.

Enumerator:
siEmpty 

empty type

siInt2 

2 bytes signed integer number type (-32768..32767)

siInt4 

4 bytes signed integer number type (-2147483648..2147483647)

siInt8 

8 bytes signed integer number type (-9223372036854775808..9223372036854775807)

siFloat 

float type

siDouble 

double type

siString 

A normal Softimage string. In the C++ API this corresponds to the CString object.

siIDispatch 

IDispatch pointer type. This is the data type for the COM objects that expose methods and properties to scripting in addition to all Softimage objects in the scripting Object Model while siRef is the normal representation of Softimage objects in the C++ API. See CComAPIHandler and XSI::ConvertObject for more information about handling objects of this type in the C++ API. The value is stored in m_u.pval; however you should never access it directly from this structure member, because the result may be undefined. Use CValue::operator siPtrType() instead to access the IDispatch pointer.

siBool 

boolean type

siIUnknown 

IUnknown pointer type. This represents a COM object. Normally such objects are not accessible to the C++ API or to scripting. The value is stored in m_u.pval; however you should never access it directly from this structure member, because the result may be undefined. Use CValue::operator siPtrType() instead to access the IUnknown pointer.

siInt1 

byte type (-128..127)

siUInt1 

unsigned byte type (0..255)

siUInt2 

2 bytes unsigned integer number type (0..65535)

siUInt4 

4 bytes unsigned integer number type (0..4294967295)

siUInt8 

8 bytes unsigned integer number type (0..18446744073709551615)

siWStr 

Null-terminated wide character string. This data type is rarely encountered because siString is the recommended representation of all Softimage strings.

siRef 

CRef object type

siArray 

Array of type CValue

siPtr 

Pointer type

siRefArray 

CRefArray object type

siVector3 

CVector3 object type

siLongArray 

CLongArray object type

siFloatArray 

CFloatArray object type

siVector2f 

CVector2f object type

siVector3f 

CVector3f object type

siVector4f 

CVector4f object type

siQuaternionf 

CQuaternionf object type

siRotationf 

CRotationf object type

siMatrix3f 

CMatrix3f object type

siMatrix4f 

CMatrix4f object type

siColor4f 

CColor4f object type

siShape 

CShape object type

siBlob 

Blob object type

siStringArray 

CStringArray object type


Constructor & Destructor Documentation

CValue ( )

Default constructor.

virtual ~CValue ( ) [virtual]

Default destructor.

CValue ( const CValue valSrc)

Constructor.

Parameters:
valSrcCValue object
CValue ( short  valSrc)

Constructor.

Parameters:
valSrcshort value
CValue ( unsigned short  valSrc)

Constructor.

Parameters:
valSrcunsigned short value
CValue ( LONG  valSrc)

Constructor.

Parameters:
valSrcLONG value
CValue ( int  valSrc)

Constructor. Has the same results as using the LONG constructor.

Parameters:
valSrcint value
CValue ( ULONG  valSrc)

Constructor.

Parameters:
valSrcULONG value
CValue ( LLONG  valSrc)

Constructor.

Parameters:
valSrcLLONG value
Since:
7.0
CValue ( ULLONG  valSrc)

Constructor.

Parameters:
valSrcULLONG value
Since:
7.0
CValue ( float  valSrc)

Constructor.

Parameters:
valSrcfloat value
CValue ( double  valSrc)

Constructor.

Parameters:
valSrcdouble value
CValue ( bool  valSrc)

Constructor.

Parameters:
valSrcbool value
CValue ( const CString valSrc)

Constructor.

Parameters:
valSrcCString value
CValue ( const CRef valSrc)

Constructor.

Parameters:
valSrcCRef value
CValue ( const CRefArray valSrc)

Constructor.

Parameters:
valSrcCRefArray value
Since:
4.0
CValue ( unsigned char  valSrc)

Constructor.

Parameters:
valSrcunsigned char value
CValue ( signed char  valSrc)

Constructor.

Parameters:
valSrcsigned char value
CValue ( const CValueArray valSrc)

Constructor.

Parameters:
valSrcCValueArray value
CValue ( const CLongArray valSrc)

Constructor.

Parameters:
valSrcCLongArray value
Since:
7.0
CValue ( const CFloatArray valSrc)

Constructor.

Parameters:
valSrcCFloatArray value
Since:
7.0
CValue ( const MATH::CVector3 valSrc)

Constructor.

Parameters:
valSrcMATH::CVector3 value
Since:
5.1
CValue ( const MATH::CVector2f valSrc)

Constructor.

Parameters:
valSrcMATH::CVector2f value
Since:
7.0
CValue ( const MATH::CVector3f valSrc)

Constructor.

Parameters:
valSrcMATH::CVector3f value
Since:
7.0
CValue ( const MATH::CVector4f val)

Constructor.

Parameters:
valMATH::CVector4f value
Since:
7.0
CValue ( const MATH::CQuaternionf val)

Constructor.

Parameters:
valMATH::CQuaternionf value
Since:
7.0
CValue ( const MATH::CRotationf val)

Constructor.

Parameters:
valMATH::CRotationf value
Since:
7.0
CValue ( const MATH::CMatrix3f val)

Constructor.

Parameters:
valMATH::CMatrix3f value
Since:
7.0
CValue ( const MATH::CMatrix4f val)

Constructor.

Parameters:
valMATH::CMatrix4f value
Since:
7.0
CValue ( const MATH::CColor4f val)

Constructor.

Parameters:
valMATH::CColor4f value
Since:
7.0
CValue ( const MATH::CShape val)

Constructor.

Parameters:
valMATH::CShape value
Since:
7.0
CValue ( siPtrType  valSrc)

Constructor.

Parameters:
valSrcpointer value
CValue ( const siBlobType &  valSrc)

Constructor.

Parameters:
valSrcsiBlobType value
CValue ( const wchar_t *  valSrc)

Constructor.

Parameters:
valSrcstring value
CValue ( const char *  valSrc)

Constructor.

Parameters:
valSrcAscii string value
CValue ( const CStringArray valSrc)

Constructor.

Parameters:
valSrcCStringArray value
Since:
12.0 (2014)

Member Function Documentation

CValue& operator= ( const CValue valSrc)

Assignment

Parameters:
valSrcCValue value
CValue& operator= ( short  valSrc)

Assignment

Parameters:
valSrcshort value
CValue& operator= ( unsigned short  valSrc)

Assignment

Parameters:
valSrcunsigned short value
CValue& operator= ( LONG  valSrc)

Assignment

Parameters:
valSrcLONG value
CValue& operator= ( int  valSrc)

Assignment

Parameters:
valSrcint value
CValue& operator= ( ULONG  valSrc)

Assignment

Parameters:
valSrcULONG value
CValue& operator= ( LLONG  valSrc)

Assignment

Parameters:
valSrcLLONG value
Since:
7.0
CValue& operator= ( ULLONG  valSrc)

Assignment

Parameters:
valSrcULLONG value
Since:
7.0
CValue& operator= ( float  valSrc)

Assignment

Parameters:
valSrcfloat value
CValue& operator= ( double  valSrc)

Assignment

Parameters:
valSrcdouble value
CValue& operator= ( bool  valSrc)

Assignment

Parameters:
valSrcbool value
CValue& operator= ( const CString valSrc)

Assignment

Parameters:
valSrcCString value
CValue& operator= ( const wchar_t *  valSrc)

Assignment

Parameters:
valSrcWide Character String
CValue& operator= ( const char *  valSrc)

Assignment

Parameters:
valSrcAscii string value.
CValue& operator= ( const CRef valSrc)

Assignment

Parameters:
valSrcCRef value
CValue& operator= ( const CRefArray valSrc)

Assignment

Parameters:
valSrcCRefArray value
Since:
4.0
CValue& operator= ( const MATH::CVector3 valSrc)

Assignment

Parameters:
valSrcMATH::CVector3 value
Since:
5.1
CValue& operator= ( const MATH::CVector2f valSrc)

Assignment

Parameters:
valSrcMATH::CVector2f value
Since:
7.0
CValue& operator= ( const MATH::CVector3f valSrc)

Assignment

Parameters:
valSrcMATH::CVector3f value
Since:
7.0
CValue& operator= ( const MATH::CVector4f valSrc)

Assignment

Parameters:
valSrcMATH::CVector4f value
Since:
7.0
CValue& operator= ( const MATH::CMatrix3f valSrc)

Assignment

Parameters:
valSrcMATH::CMatrix3f value
Since:
7.0
CValue& operator= ( const MATH::CMatrix4f valSrc)

Assignment

Parameters:
valSrcMATH::CMatrix4f value
Since:
7.0
CValue& operator= ( const MATH::CRotationf valSrc)

Assignment

Parameters:
valSrcMATH::CRotationf value
Since:
7.0
CValue& operator= ( const MATH::CQuaternionf valSrc)

Assignment

Parameters:
valSrcMATH::CQuaternionf value
Since:
7.0
CValue& operator= ( const MATH::CColor4f valSrc)

Assignment

Parameters:
valSrcMATH::CColor4f value
Since:
7.0
CValue& operator= ( const MATH::CShape valSrc)

Assignment

Parameters:
valSrcMATH::CShape value
Since:
7.0
CValue& operator= ( unsigned char  valSrc)

Assignment

Parameters:
valSrcunsigned char value
CValue& operator= ( signed char  valSrc)

Assignment

Parameters:
valSrcsigned char value
CValue& operator= ( const CValueArray valSrc)

Assignment

Parameters:
valSrcCValueArray value
CValue& operator= ( const CLongArray valSrc)

Assignment

Parameters:
valSrcCLongArray value
CValue& operator= ( const CFloatArray valSrc)

Assignment

Parameters:
valSrcCFloatArray value
CValue& operator= ( siPtrType  valSrc)

Assignment

Parameters:
valSrcpointer value
CValue& operator= ( const siBlobType &  valSrc)

Assignment

Parameters:
valSrcsiBlobType value
CValue& operator= ( const CStringArray valSrc)

Assignment

Parameters:
valSrcCStringArray value
Since:
12.0 (2014)
operator short ( ) const

short extractor

operator unsigned short ( ) const

unsigned short extractor

operator LONG ( ) const

LONG extractor

operator int ( ) const

int extractor

Since:
5.1
operator ULONG ( ) const

ULONG extractor

Since:
5.0
operator LLONG ( ) const

LLONG extractor

Since:
7.0
operator ULLONG ( ) const

ULLONG extractor

Since:
7.0
operator float ( ) const

float extractor

operator double ( ) const

double extractor

operator bool ( ) const

bool extractor

operator CString ( ) const

CString extractor

operator CRef ( ) const

CRef extractor

operator CRefArray ( ) const

The CRefArray extractor returns a CRefArray if the source is a siRefArray type. If the source is a siRef type, the extractor returns a one element CRefArray containing the source object. The function returns an empty array if the source is invalid.

operator unsigned char ( ) const

unsigned byte extractor

operator signed char ( ) const

byte extractor

operator CValueArray & ( ) const

CValueArray& extractor

operator CLongArray & ( ) const

CLongArray& extractor

Since:
7.0
operator CFloatArray & ( ) const

CFloatArray& extractor

Since:
7.0
operator MATH::CVector3 ( ) const

CVector3 extractor

Since:
5.1
operator MATH::CVector2f ( ) const

CVector2f extractor

Since:
7.0
operator MATH::CVector3f ( ) const

CVector3f extractor

Since:
7.0
operator MATH::CVector4f ( ) const

CVector4f extractor

Since:
7.0
operator MATH::CMatrix3f ( ) const

CMatrix3f extractor

Since:
7.0
operator MATH::CMatrix4f ( ) const

CMatrix4f extractor

Since:
7.0
operator MATH::CRotationf ( ) const

CRotationf extractor

Since:
7.0
operator MATH::CQuaternionf ( ) const

CQuaternionf extractor

Since:
7.0
operator MATH::CColor4f ( ) const

CColor4f extractor

Since:
7.0
operator MATH::CShape ( ) const

CShape extractor

Since:
7.0
operator siPtrType ( ) const

CValue::siPtrType extractor. The data returned by this function depends on the type of this CValue:

  • siIDispatch, pointer type returned: IDispatch*
  • siIUnknown, pointer type returned: IUnknown*
  • siPtr, pointer type returned: void*
Warning:
Always use this function to access the pointer stored in m_u.pval, do not access m_u.pval directly otherwise the result may be undefined.
Note:
Returned pointers to IDispatch and IUnknown are reference counted.
Example:
        using namespace XSI;

        CComAPIHandler uitoolkit;
        uitoolkit.CreateInstance( L"XSI.UIToolkit");

        // retrieves the IDispatch pointer of the Softimage UI toolkit object
        CValue dispVal = uitoolkit.GetRef();
        IDispatch* pDisp = (IDispatch*)(CValue::siPtrType)dispVal;
operator siBlobType & ( ) const

siBlobType extractor

Since:
8.0 (2010)
operator CStringArray & ( ) const

CStringArray extractor

Since:
12.0 (2014)
bool operator== ( const CValue valSrc) const

Comparison

Parameters:
valSrcCValue value
bool operator== ( short  val) const [inline]

short equality operator

bool operator== ( unsigned short  val) const [inline]

unsigned short equality operator

bool operator== ( LONG  val) const [inline]

LONG equality operator

bool operator== ( int  val) const [inline]

int equality operator

bool operator== ( ULONG  val) const [inline]

ULONG equality operator

bool operator== ( LLONG  val) const [inline]

LLONG equality operator

Since:
7.0
bool operator== ( ULLONG  val) const [inline]

ULLONG equality operator

Since:
7.0
bool operator== ( float  val) const [inline]

float equality operator

bool operator== ( double  val) const [inline]

double equality operator

bool operator== ( bool  val) const [inline]

bool equality operator

bool operator== ( const CString val) const [inline]

CString equality operator

bool operator== ( const wchar_t *  val) const [inline]

wchar_t * equality operator

bool operator== ( const char *  val) const [inline]

char * equality operator

bool operator== ( const CRef val) const [inline]

CRef equality operator

bool operator== ( const CRefArray val) const [inline]

CRefArray equality operator

Since:
4.0
bool operator== ( unsigned char  val) const [inline]

unsigned byte equality operator

bool operator== ( signed char  val) const [inline]

byte equality operator

bool operator== ( const CValueArray ) const

CValueArray& equality operator

bool operator== ( const CLongArray ) const

CLongArray& equality operator

Since:
7.0
bool operator== ( const CFloatArray ) const

CFloatArray& equality operator

Since:
7.0
bool operator== ( const siPtrType  val) const [inline]

siPtrType equality operator

bool operator== ( const siBlobType &  val) const [inline]

siBlobType equality operator

bool operator== ( const MATH::CVector3 val) const [inline]

CVector3 equality operator

Since:
5.1
bool operator== ( const MATH::CVector2f val) const [inline]

CVector2f equality operator

Since:
7.0
bool operator== ( const MATH::CVector3f val) const [inline]

CVector3f equality operator

Since:
7.0
bool operator== ( const MATH::CVector4f val) const [inline]

CVector4f equality operator

Since:
7.0
bool operator== ( const MATH::CMatrix3f val) const [inline]

CMatrix3f equality operator

Since:
7.0
bool operator== ( const MATH::CMatrix4f val) const [inline]

CMatrix4f equality operator

Since:
7.0
bool operator== ( const MATH::CRotationf val) const [inline]

CRotationf equality operator

Since:
7.0
bool operator== ( const MATH::CQuaternionf val) const [inline]

CQuaternionf equality operator

Since:
7.0
bool operator== ( const MATH::CColor4f val) const [inline]

CColor4f equality operator

Since:
7.0
bool operator== ( const MATH::CShape val) const [inline]

CShape equality operator

Since:
7.0
bool operator== ( const CStringArray val) const [inline]

CStringArray equality operator

Since:
12.0 (2014)
bool operator!= ( const CValue valSrc) const

Inequality

Parameters:
valSrcCValue value
bool operator> ( const CValue val) const

Greater than operator. Return true if this value is greater than val, false otherwise. Return false if types don't match.

Note:
operator > is not available for the following types and always returns false:
Parameters:
valValue to test.
Since:
10.5 (2012)
bool operator< ( const CValue val) const

Less than operator. Return true if this value is less than val, false otherwise. Return false if types don't match.

Note:
operator < is not available for the following types and always returns false:
Parameters:
valValue to test.
Since:
10.5 (2012)
bool operator>= ( const CValue val) const

Greater than or equal to operator. Return true if this value is greater or equal to val, false otherwise. Return false if types don't match.

Parameters:
valValue to test.
Since:
10.5 (2012)
bool operator<= ( const CValue val) const

Less than or equal to operator. Return true if this value is less or equal to val, false otherwise. Return false if types don't match.

Parameters:
valValue to test.
Since:
10.5 (2012)
void ChangeType ( CValue::DataType  in_type,
const CValue in_pSrc = NULL 
)

Converts the object into a given type. If in_pSrc is NULL, the conversion is done in place, otherwise the object is copied from in_pSrc and then converted. This function can also be used to create a CValue object of type siIDispatch or siIUnknown, see example below.

Parameters:
in_typeType to convert into.
in_pSrcPointer to the CValue to convert
Example:
Converting a LONG to double value
        using namespace XSI;
        Application app;

        CValue val((LONG)55);
        app.LogMessage( L"Value = " + val.GetAsText() );

        val.ChangeType( CValue::siDouble );
        app.LogMessage( L"Value = " + val.GetAsText() );
Example:
Setting a CValue as a IUnknown pointer
        using namespace XSI;
        Application app;

        CComAPIHandler uitoolkit;
        uitoolkit.CreateInstance( L"XSI.UIToolkit");

        // retrieves a IDispatch pointer from the Softimage UI toolkit object
        CValue dispVal = uitoolkit.GetRef();
        IDispatch* pDisp = (IDispatch*)(CValue::siPtrType)dispVal;

        // create a CValue of type IUnknown
        IUnknown* pUnk = NULL;
        pDisp->QueryInterface( IID_IUnknown, (void**)&pUnk );

        CValue valUnk((CValue::siPtrType)pUnk);
        valUnk.ChangeType( CValue::siIUnknown );

        pDisp->Release();
        pUnk->Release();
void Clear ( )

Clear this CValue object

void Attach ( CValue in_valSrc)

Attaches a CValue into this object. The object takes ownership of a CValue by encapsulating it. This function releases any existing encapsulated CValue, then copies the input CValue.

Parameters:
in_valSrcCValue object to encapsulate.
CValue Detach ( )

Detaches the encapsulated CValue object from this CValue object. Extracts and returns the encapsulated CValue, then clears this CValue object without destroying it.

Returns:
The encapsulated CValue.
CString GetAsText ( ) const

Returns the CValue content into a text string.

Returns:
The value in text format.
bool IsEmpty ( ) const [inline]

Convenient method to know if the object is set with a value or not.

Returns:
true if the CValue is empty or false otherwise.

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