RTFX  0.3
Real time special effects collaborative visualization and production library.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
RTFX Namespace Reference

The namespace for the RTFX Library. More...

Classes

class  Point2D
 A 2D point object. More...
 
class  Point3D
 A 3D point object. More...
 
class  Vector3D
 A 3D vector object. More...
 
class  Vector4D
 The homogenious vector object. More...
 
class  Matrix4x4
 A homogeneous transformation matrix. More...
 
class  Colour
 A class to represent several formats of colours. More...
 
class  RTFXCamera
 A child of RTFXObject, used specifically for cameras. More...
 
class  RTFXClient
 Client class, what plugins should use to talk to the server. More...
 
class  RTFXCustom
 A child of RTFXObject, used specifically for custom objects. More...
 
class  RTFXData
 The RTFXData class can be used to create a network or graph of RTFXObjects. It is used as the primary storage mechanism for RTFXObjects at any source. More...
 
class  RTFXError
 The RTFXError class is used to provide useful error messages. More...
 
class  RTFXPoint
 Represents a point in a mesh. More...
 
class  RTFXFace
 A face is a list of point indices which will construct that face. More...
 
class  RTFXGeometry
 The class to respresent meshes. More...
 
class  RTFXLight
 RTFXLight is a shortcut class to represent light objects. More...
 
class  RTFXMailbox
 The mailbox stores a copy of the data that was sent through the server. The data is up-to-date. More...
 
class  RTFXMath
 A simple class to hold generic mathematic functions. More...
 
class  RTFXObject
 The base object which all data objects inherit from. More...
 
class  RTFXParcel
 The definition of data packets used to send data over the network. More...
 
class  RTFXParticipant
 Participants in the "chat session", base class for clients. More...
 
class  RTFXParticleSystem
 RTFXParticleSystem is a shortcut class to represent ParticleSystem objects. More...
 
class  RTFXPeer
 
class  RTFXPeerPostOffice
 
class  RTFXPeerSession
 Extends RTFX participant, contains actual implementation for handling of read and write. More...
 
struct  MailboxNameComparison
 
class  RTFXPostOffice
 The postoffice is the main "room" where clients leave messages for sorting and parsing. More...
 
class  RTFXProperty
 The base class for RTFXProperties, which can be added to RTFXObjects to represent more sophisticated object types. More...
 
class  RTFXPropertyArray
 Properties which are arrays of a simple type. More...
 
class  RTFXPropertyBasic
 Properties which are single basic C types, integers, chars, floats, etc. More...
 
class  RTFXPropertyCharArray
 Properties which are char arrays. More...
 
class  RTFXPropertyColour
 Properties which are Colours (RGB, RGBA, or HSV) More...
 
class  RTFXPropertyDeleteObject
 This property has no value, other than to indicate the owning RTFXObject should be deleted from the system. More...
 
class  RTFXPropertyMatrix4x4
 Properties which are Matrix4x4. More...
 
class  RTFXPropertyPoint3D
 Properties which are Point3D. More...
 
class  RTFXPropertyRawData
 Properties which are raw dat. More...
 
class  RTFXPropertyString
 Properties which are C++ std::string. More...
 
class  RTFXPropertyVector3D
 Properties which are Vector3D. More...
 
class  RTFXPropertyVectorOf
 Properties which are a vector of same-typed data. More...
 
class  RTFXRaw
 A child of RTFXObject, used specifically for raw data files, such as JPGs, HIPs, FBXs. More...
 
class  RTFXRecorder
 
class  RTFXScript
 A child of RTFXObject, used specifically for Script data files. More...
 
class  RTFXServer
 The base server class for communication. More...
 
class  RTFXSession
 Extends RTFX participant, contains actual implementation for handling of read and write. More...
 
class  RTFXBone
 Represents a bone in a skeleton. More...
 
class  RTFXSkeleton
 The class to respresent skeletons. More...
 

Typedefs

typedef std::deque< RTFXParcelRTFXParcelQueue
 
typedef boost::shared_ptr
< RTFXPeerSession
RTFXPeerSessionPtr
 
typedef boost::shared_ptr
< RTFXParticipant
RTFXParticipant_ptr
 
typedef boost::shared_ptr
< RTFXSession
RTFXSessionPtr
 

Enumerations

enum  COMPRESSIONTYPE { NONE, ZLIB, GZIP, BZIP2 }
 COMPRESSIONTYPE enumerates all possible types of compression that can be used within RTFX. More...
 

Functions

static void swaprows (Matrix4x4 &_a, size_t _r1, size_t _r2)
 
static void dividerow (Matrix4x4 &_a, size_t _r, double _fac)
 
static void submultrow (Matrix4x4 &_a, size_t _dest, size_t _src, double _fac)
 
Vector3D operator* (double _s, const Vector3D &_v)
 
Vector3D operator+ (const Vector3D &_a, const Vector3D &_b)
 
Point3D operator+ (const Point3D &_a, const Vector3D &_b)
 
Point2D operator+ (const Point2D &_a, const Point2D &_b)
 
Point2D operator- (const Point2D &_a, const Point2D &_b)
 
Point3D operator+ (const Point3D &_a, const Point3D &_b)
 
Point3D operator* (const double &_a, const Point3D &_b)
 
Vector3D operator- (const Point3D &_a, const Point3D &_b)
 
Vector3D operator- (const Vector3D &_a, const Vector3D &_b)
 
Vector3D operator- (const Vector3D &_a)
 
Point3D operator- (const Point3D &_a, const Vector3D &_b)
 
bool operator== (const Vector3D &_a, const Vector3D &_b)
 
bool operator!= (const Vector3D &_a, const Vector3D &_b)
 
Point3D operator- (const Vector3D &_a, const Point3D &_b)
 
Vector3D cross (const Vector3D &_a, const Vector3D &_b)
 
std::ostream & operator<< (std::ostream &_os, const Point2D &_p)
 
std::ostream & operator<< (std::ostream &_os, const Point3D &_p)
 
std::ostream & operator<< (std::ostream &_os, const Vector3D &_v)
 
Matrix4x4 operator* (const Matrix4x4 &_a, const Matrix4x4 &_b)
 
Vector3D operator* (const Matrix4x4 &_M, const Vector3D &_v)
 
Point3D operator* (const Matrix4x4 &_M, const Point3D &_p)
 
Vector3D transNorm (const Matrix4x4 &_M, const Vector3D &_n)
 
std::ostream & operator<< (std::ostream &_os, const Matrix4x4 &_M)
 
void Serialize (RTFXData *_graph, string &_output)
 
RTFXDataDeserialize (string &_data)
 
RTFXAPI void SerializeText (RTFXData *_graph, string &_output)
 
RTFXAPI RTFXDataDeserializeText (string &_data)
 
void debug (ostream &_buffer)
 
void verbose (ostream &buffer)
 
void performance (ostream &buffer)
 
void timer (ostream &buffer)
 
string ZLIBCompress (string &_input)
 
string ZLIBDecompress (string &_input)
 
string GZIPCompress (string &_input)
 
string GZIPDecompress (string &_input)
 
string BZIP2Compress (string &_input)
 
string BZIP2Decompress (string &_input)
 
boost::uuids::uuid GenerateUniqueID ()
 
void MakeMailboxIDFromString (string _name, char *_mailboxID)
 
void BusySleep (unsigned int _count)
 
boost::uuids::uuid ConvertToUUID (char *_id)
 
void ConvertUUIDToCharArray (boost::uuids::uuid _id, char *_data)
 
boost::uuids::uuid ConvertStringToUUID (char *_id)
 
const Matrix4x4 I (1, 0, 0, 0, 1, 0, 0, 0, 1)
 
void CreateParcelList (vector< RTFXParcel > &_parcelList, boost::uuids::uuid _fromID, char *_mailboxName, string &_data, bool _isCompressed, unsigned int _compressionType, bool _keepDataAtServer, bool _isDataRTFX, bool _isBinary)
 
string ReAssembleParcelMessageFromList (vector< RTFXParcel > &_parcelList)
 
RTFXPropertyBasic< int > * MakeIntProperty (string _name, string _description, int _value)
 
RTFXPropertyBasic< float > * MakeFloatProperty (string _name, string _description, float _value)
 
RTFXPropertyBasic< bool > * MakeBoolProperty (string _name, string _description, bool _value)
 
RTFXPropertyBasic< double > * MakeDoubleProperty (string _name, string _description, double _value)
 
RTFXPropertyArray< int > * MakeIntArrayProperty (string _name, string _description, int *_value, int _length)
 
RTFXPropertyArray< float > * MakeFloatArrayProperty (string _name, string _description, float *_value, int _length)
 
RTFXPropertyArray< bool > * MakeBoolArrayProperty (string _name, string _description, bool *_value, int _length)
 
RTFXPropertyArray< double > * MakeDoubleArrayProperty (string _name, string _description, double *_value, int _length)
 
RTFXPropertyStringMakeStringProperty (string _name, string _description, string _value)
 
 BOOST_SERIALIZATION_ASSUME_ABSTRACT (RTFXProperty)
 
void Update (RTFXObject *_cam)
 

Variables

static const double M_PI = 3.14159265358979323846
 
class RTFXAPI Matrix4x4
 
static const double RTFXVERSION = 0.3
 
static boost::mutex debugLock
 
static boost::mutex verboseLock
 
static boost::mutex performanceLock
 
static const std::string DEFAULTHOSTNAME = "localhost"
 
static const std::string DEFAULTPORTSTRING = "49512"
 
static const int DEFAULTPORT = 49512
 
static const double RTFXUNIT = 1.0
 
static const std::string RTFXUNITTEXT = "cm"
 
const AXISFRAME RTFX_NATIVE_FRAME = XFORWARD_YRIGHT_ZUP
 
const double RTFXPI = 3.14159265358979
 
const Matrix4x4 frameMatrices []
 

Detailed Description

The namespace for the RTFX Library.

RTFX namespace

All RTFX Library classes, functions, constants, etc. exist within this namespace.

Typedef Documentation

typedef std::deque< RTFXParcel > RTFX::RTFXParcelQueue

Data definition of a Parcel Queue

Enumeration Type Documentation

COMPRESSIONTYPE enumerates all possible types of compression that can be used within RTFX.

Enumerator:
NONE 

No compression is used

ZLIB 

Use ZLIB compression

GZIP 

Use GZIP compression

BZIP2 

Use BZIP2 compression

Function Documentation

void RTFXAPI RTFX::BusySleep ( unsigned int  _count)

Busy sleep

References BusySleep().

string RTFXAPI RTFX::BZIP2Compress ( string &  _input)

BZIP2Compress: Compresses [input] using the boost::iostreams::bzip2_crompressor and returns the compressed string.

Decompress a string and return the decompressed string

References BZIP2Compress(), debug(), and performance().

string RTFXAPI RTFX::BZIP2Decompress ( string &  _input)

BZIP2Decompress: Decompresses [input] using the boost::iostreams::bzip2_decompressor and returns the uncompressed string.

Compress and return the compressed string

References BZIP2Decompress(), debug(), and performance().

boost::uuids::uuid RTFXAPI RTFX::ConvertStringToUUID ( char *  _id)

Convert a verbose string to a boost::uuids::uuid

References ConvertStringToUUID().

boost::uuids::uuid RTFXAPI RTFX::ConvertToUUID ( char *  _id)

Convert an array of unsigned integers to a boost::uuids::uuid

References ConvertToUUID().

void RTFXAPI RTFX::ConvertUUIDToCharArray ( boost::uuids::uuid  _id,
char *  _data 
)

Convert a UUID to an array of 36 characters (string representation)

References ConvertUUIDToCharArray().

void RTFX::CreateParcelList ( vector< RTFXParcel > &  _parcelList,
boost::uuids::uuid  _fromID,
char *  _mailboxName,
string &  _data,
bool  _isCompressed,
unsigned int  _compressionType,
bool  _keepDataAtServer,
bool  _isDataRTFX,
bool  _isBinary 
)

CreateParcelList Given a message, convert it into a list of parcels. Note, the parcelList may be a single message in length.

Assumptions:

  • data is already compressed/etc

CreateParcelList will create a vector of parcels from an input string representing the binary (possibly compressed) serialized datastream.

References RTFX::RTFXParcel::CreateParcel(), CreateParcelList(), debug(), and verbose().

Vector3D RTFX::cross ( const Vector3D &  _a,
const Vector3D &  _b 
)
inline

Compute and return the cross product of two Vector3D's as a new Vector3D

References RTFX::Vector3D::cross().

void RTFXAPI RTFX::debug ( ostream &  _buffer)

Debugging wrapper function. Wraps ostream buffers, outputing them to cout when the RTFXDebug flag is set

References debug().

RTFXAPI RTFXData * RTFX::Deserialize ( string &  _data)

Deserialize a graph and return the string representation of the serialization

De-serialize an RTFXData from a binary archive. This is not cross platform safe, and cannot be used between Windows-Mac-Linux combinations. Combinations of same-os and same number of bits are safe. When boost releases a platform safe version, this will be updated. But as of this release, this is not the case.

References verbose().

RTFXAPI RTFXData * RTFX::DeserializeText ( string &  _data)

De-serialize an RTFXData from a TEXT archive for cross-platform support

References verbose().

static void RTFX::dividerow ( Matrix4x4 &  _a,
size_t  _r,
double  _fac 
)
static

A function to divide a specified row of a Matrix4x4 by a value. Assumption: r is between 0 and 3

boost::uuids::uuid RTFXAPI RTFX::GenerateUniqueID ( )

Generates (returns) a new unique id

Generate a unique ID

References GenerateUniqueID().

string RTFXAPI RTFX::GZIPCompress ( string &  _input)

GZIPCompress: Compresses [input] using the boost::iostreams::gzip_crompressor and returns the compressed string.

Decompress a string and return the decompressed string

References debug(), GZIPCompress(), and performance().

string RTFXAPI RTFX::GZIPDecompress ( string &  _input)

GZIPDecompress: Decompresses [input] using the boost::iostreams::gzip_decompressor and returns the uncompressed string.

Compress and return the compressed string

References debug(), GZIPDecompress(), and performance().

RTFXAPI RTFXPropertyBasic< int > * RTFX::MakeIntProperty ( string  _name,
string  _description,
int  _value 
)

A set of fuctions for creating common properties quickly

References RTFX::RTFXProperty::SetAll(), RTFX::RTFXProperty::SetDataType(), and RTFX::RTFXPropertyBasic< T >::SetValue().

void RTFXAPI RTFX::MakeMailboxIDFromString ( string  _name,
char *  _mailboxID 
)

Converts a string to a 15-character mailbox name. If the string is less than 16 characters, the remaining positions are spaces. If the string is longer, than the last characters are truncated. Function assumes that mailboxID memory HAS been allocated.

Create a mailbox name from a string

References debug(), and MakeMailboxIDFromString().

bool RTFX::operator!= ( const Vector3D &  _a,
const Vector3D &  _b 
)
inline

Determine if the two input Vector3D's are not equal

Vector3D RTFX::operator* ( double  _s,
const Vector3D &  _v 
)
inline

Multiply a vector by a scalar value. Returns a new vector.

Point3D RTFX::operator* ( const double &  _a,
const Point3D &  _b 
)
inline

Multiply a Point3D by a scalar value (a) and return the result as a new Point3D

Matrix4x4 RTFX::operator* ( const Matrix4x4 &  _a,
const Matrix4x4 &  _b 
)
inline

Multiply two Matrix4x4's together and return the result as a new Matrix4x4

References RTFX::Matrix4x4::getRow().

Vector3D RTFX::operator* ( const Matrix4x4 &  _M,
const Vector3D &  _v 
)
inline

Multiply a Vector3D by a Matrix4x4 and return the result as a new Vector3D

Point3D RTFX::operator* ( const Matrix4x4 &  _M,
const Point3D &  _p 
)
inline

Multiply a Point3D by a Matrix4x4 and return the result as a new Point3D

Vector3D RTFX::operator+ ( const Vector3D &  _a,
const Vector3D &  _b 
)
inline

Add two vectors together. Returns a new vector.

Point3D RTFX::operator+ ( const Point3D &  _a,
const Vector3D &  _b 
)
inline

Add a vector to a point, and return the new point

Point2D RTFX::operator+ ( const Point2D &  _a,
const Point2D &  _b 
)
inline

Add two Point2D's and return a new Point2D

Point3D RTFX::operator+ ( const Point3D &  _a,
const Point3D &  _b 
)
inline

Add two Point3D's together and return the result as a new Point3D

Point2D RTFX::operator- ( const Point2D &  _a,
const Point2D &  _b 
)
inline

Subtract one Point2D from another and return a new Point2D that contains the result.

Vector3D RTFX::operator- ( const Point3D &  _a,
const Point3D &  _b 
)
inline

Subtract two Point3D's to create a Vector3D

Vector3D RTFX::operator- ( const Vector3D &  _a,
const Vector3D &  _b 
)
inline

Subtract one Vector3D from another and return the result as a new Vector3D

Vector3D RTFX::operator- ( const Vector3D &  _a)
inline

Negate a Vector3D and return the result as a new Vector3D

Point3D RTFX::operator- ( const Point3D &  _a,
const Vector3D &  _b 
)
inline

Subtract a Vector3D from a Point3D and return the new Point3D

Point3D RTFX::operator- ( const Vector3D &  _a,
const Point3D &  _b 
)
inline

Subtract a Point3D from a Vector3D and return the new Point3D

std::ostream& RTFX::operator<< ( std::ostream &  _os,
const Point2D &  _p 
)
inline

Output the Point2D as a stream for printing

std::ostream& RTFX::operator<< ( std::ostream &  _os,
const Point3D &  _p 
)
inline

Output the Point3D as a stream for printing

std::ostream& RTFX::operator<< ( std::ostream &  _os,
const Vector3D &  _v 
)
inline

Output the Vector3D as a stream for printing

std::ostream& RTFX::operator<< ( std::ostream &  _os,
const Matrix4x4 &  _M 
)
inline

Output the Matrix4x4 as a stream for printing

bool RTFX::operator== ( const Vector3D &  _a,
const Vector3D &  _b 
)
inline

Determine if the two input Vector3D's are equal

void RTFXAPI RTFX::performance ( ostream &  _buffer)

A debugging wrapper function that outputs performance data ONLY

References performance().

string RTFX::ReAssembleParcelMessageFromList ( vector< RTFXParcel > &  _parcelList)

ReassembleParcelMessageFromList Take a list of parcels, and return the message contained between them ASSUMPTION: Since we are using TCP and sending the packets in ORDER, I assume (for now) that packets arrive, and are added to the list IN ORDER.

ReassembleParcelMessageFromList takes a vector of parcels, and reassembles the binary (possibly compressed) serialized datastream

References ReAssembleParcelMessageFromList().

RTFXAPI void RTFX::Serialize ( RTFXData *  _graph,
string &  _output 
)

Serialize a graph and return the string representation of the serialization

Serialize an RTFXData using a binary archive. This is not cross platform safe, and cannot be used between Windows-Mac-Linux combinations. Combinations of same-os and same number of bits are safe. When boost releases a platform safe version, this will be updated. But as of this release, this is not the case.

References debug(), performance(), and verbose().

RTFXAPI void RTFX::SerializeText ( RTFXData *  _graph,
string &  _output 
)

Serialize an RTFXData using TEXT serialization for cross-platform suppoort

References debug(), performance(), and verbose().

static void RTFX::submultrow ( Matrix4x4 &  _a,
size_t  _dest,
size_t  _src,
double  _fac 
)
static

A function to subtract and multiply a row by a value. Assumption: dest and src are between 0 and 3

static void RTFX::swaprows ( Matrix4x4 &  _a,
size_t  _r1,
size_t  _r2 
)
static

A function to swap two specified rows in a Matrix4x4. Assumption: r1 and r2 are between 0 and 3

void RTFXAPI RTFX::timer ( ostream &  _buffer)

A debuggign wrapper function that outputs the current time

References timer().

Vector3D RTFX::transNorm ( const Matrix4x4 &  _M,
const Vector3D &  _n 
)
inline

Multiply a normalized Vector3D by a Matrix4x4 and return the result as a new Vector3D

void RTFX::Update ( RTFXObject *  _cam)

Update this Raw using the data contained in the input parameter. Operates as a copy constructor, with one exception: it does NOT update base RTFXObject parameters including unique ids

Update this Script using the data contained in the input parameter. Operates as a copy constructor, with one exception: it does NOT update base RTFXObject parameters including unique ids

void RTFXAPI RTFX::verbose ( ostream &  _buffer)

A super-verbose debugging wrapper function. Wraps ostream buffers, outputing them to cout when the RTFXVerbose flag is set

References verbose().

string RTFXAPI RTFX::ZLIBCompress ( string &  _input)

ZLIBCompress: Compresses [input] using the boost::iostreams::zlib_crompressor and returns the compressed string.

Decompress a string and return the decompressed string

References debug(), performance(), and ZLIBCompress().

string RTFXAPI RTFX::ZLIBDecompress ( string &  _input)

ZLIBDecompress: Decompresses [input] using the boost::iostreams::zlib_decompressor and returns the uncompressed string.

Compress and return the compressed string

References debug(), performance(), and ZLIBDecompress().

Variable Documentation

const std::string RTFX::DEFAULTHOSTNAME = "localhost"
static

< DEFAULTHOSTNAME is the presumed default hostname if none is explicitly specified DEFAULTPORTSTRING is the default port used for RTFX network communication expressed as a string

const int RTFX::DEFAULTPORT = 49512
static

RTFXUNIT is the default unit size for the RTFXLibrary. One RTFXUNIT is equal to 1cm.

const std::string RTFX::DEFAULTPORTSTRING = "49512"
static

DEFAULTPORT is the default port used for RTFX network communication expressed as an integer

const double RTFX::M_PI = 3.14159265358979323846
static

< M_PI the value of pi used for mathematical computations

const double RTFX::RTFXUNIT = 1.0
static

RTFXUNITTEXT is a string descriptor for the RTFXUNIT. To be used for pretty or debugging.

const double RTFX::RTFXVERSION = 0.3
static

< RTFXVERSION is the current version of the RTFX Library