SDK Documentation

0.5Beta

General

  • Working with parameters
  • Understanding Demopaja Undo System
  • Effect Transformation

Plugin Projects

  • Creating a New Plugin Project
  • Creating the DLL functions
  • Making an Image Import Plugin
  • Making an Effect Plugin
  • Demopaja Help System
Moppi Demopaja SDK Documentation -- Copyright © 2000 Moppi Productions


Annotated Index

Moppi Demopaja Compound List

Here are the classes, structs, unions and interfaces with brief descriptions:
  • BBox2C (Bounding box class)
  • ClassDescC (Plugin Class Descriptor class)
  • ClassIdC (Plugin Class ID)
  • ColorC (RGBA color class)
  • ControllerC (Value controller class)
  • DataBlockI (Plugin data interface)
  • DecomposeAffineC (Decomposes a matrix into affine parts)
  • DeviceContextC (Device context class)
  • DeviceInterfaceI (Device interface)
  • EditableI (Editable interface)
  • EffectI (The effect interface)
  • FactoryC (Plugin class factory class)
  • FileHandleC (File handle class)
  • FileListC (File list class)
  • GizmoI (Gizmo interface)
  • ImportableI (Importable file interface)
  • ImportableImageI (Importable image interface)
  • ImportInterfaceC (Import interface class)
  • KeyC (Keyframe class for controller)
  • LayerC (Composition Layer class)
  • LoadC (Demopaja input stream)
  • Matrix2C (2x3 matrix class)
  • Matrix3C (3x4 matrix class)
  • OpenGLInterfaceC (Device interface for OpenGL)
  • ParamColorC (Color parameter class)
  • ParamFileC (File parameter class)
  • ParamFloatC (Float parameter class)
  • ParamI (Parameter class)
  • ParamIntC (Integer parameter class)
  • ParamTextC (Text parameter class)
  • ParamVector2C (2D vector parameter class)
  • ParamVector3C (3D vector parameter class)
  • QuatC (Quaternion class)
  • SaveC (Demopaja output stream)
  • SceneC (Composition scene class)
  • SuperClassIdC (Plugin super class ID)
  • TimeContextC (Time context class)
  • TimeSegmentC (Time segment class)
  • UndoC (Undo object class)
  • Vector2C (2D Vector class)
  • Vector3C (3D vector class)


PajaTypes::BBox2C Class Reference

Bounding box class. More...

#include <BBox2C.h>

List of all members.

Public Methods

  • BBox2C ()
  • BBox2C ( const Vector2C& rMin, const Vector2C& rMax )
  • BBox2C ( const BBox2C& rBBox )
  • virtual ~BBox2C ()
  • float32 width () const
  • float32 height () const
  • Vector2C center () const
  • Vector2C size () const
  • bool contains ( const Vector2C& rVec ) const
  • bool contains ( const BBox2C& rBBox ) const
  • BBox2C trim ( const BBox2C& rBBox ) const
  • BBox2C normalize () const
  • BBox2C offset ( const Vector2C& rOffset ) const
  • BBox2C combine ( const BBox2C& rBBox ) const
  • Vector2C& operator[] ( int i )
  • const Vector2C& operator[] ( int i ) const
  • bool operator== ( const BBox2C& rBBox ) const
  • bool operator!= ( const BBox2C& rBBox ) const

Detailed Description

Bounding box class.

BBox2C class implements two dimensional box used as bounding box. When specifying a bounding box you must be careful to construct it so that it is normalized. In other words, the minimum values and maximum values has to be correct. If the bounding box is not normalized many methods will return incorrect results. If a method needs the box ot be normalized it is mentioned. To normalize non-normalized bounding box use the normalize method.

See also:
normalize

This class is implemented by the system.

Constructor & Destructor Documentation

BBox2C ( )

Default constructor.

BBox2C ( | const Vector2C & rMin,
 | const Vector2C & rMax )

Initialises the bounds of the box from specified maximum and minimum values.

BBox2C ( const BBox2C & rBBox )

Copy constructor.

~BBox2C ( ) [virtual]

Destructor.

Member Function Documentation

Vector2C center ( ) const [inline]

Returns the center of the bounding box.

Returns:
The center point of the bounding box. The center is calculated as: (min + max) / 2.

BBox2C combine ( const BBox2C & rBBox ) const

Combines two bounding boxes.

Makes the dimension of a bounding box equal to the union of the bounding box and the other specified bounding box, and returns the union. The union is the smallest bounding box containing both bounding boxes.

Returns:
The combined bounding box.

bool contains ( const BBox2C & rBBox ) const [inline]

Determines wheter the specified bounding box is inside the bounding box.

Both boxes have to be normalized or this method may fail. You may normalize the box by calling the normalize() method.

Returns:
True if the specified bounding box is inside the bounding box, else false.

bool contains ( const Vector2C & rVec ) const [inline]

Determines wheter the specified point is inside the bounding box.

The box has to be normalized or this method may fail. You may normalize the box by calling the normalize() method.

Returns:
True if the point is inside the bounding box, else false.

float32 height ( ) const [inline]

Returns the height of the bounding box.

Returns:
The returned value is absolute height, that is, even the min and max bounds are in wrong order height() will return correct result.

BBox2C normalize ( ) const

Normalizes the bounding box so that the minimum and maximum values are correct.

This method is useful when dealing with bounding boxes which may be inverted.

Returns:
The normalized bounding box.

BBox2C offset ( const Vector2C & rOffset ) const [inline]

Moves the bounding box by specified offset.

Returns:
The transformed bounding box.

bool operator!= ( const BBox2C & rBBox ) const [inline]

Compares two boxes and returns true if they are non-equal.

Both boxes have to be normalized or this method may fail. You may normalize the box by calling the normalize() method.

Returns:
True if both bounding boxes are non-equal, else false.

bool operator== ( const BBox2C & rBBox ) const [inline]

Compares two boxes and returns true if they are equal.

Both boxes have to be normalized or this method may fail. You may normalize the box by calling the normalize() method.

Returns:
True if both bounding boxes are equal, else false.

const Vector2C & operator[] ( int i ) const [inline]

Returns either minimum or maximum of the box.

The returns value depends on the given index: 0 for minimum, 1 for maximum. The box has to be normalized or this method may return incorrect values. You may normalize the box by calling the normalize()> method. There are two versions of this method, this version is for retrieving the values.

Returns:
If the specified index is 0 (zero) minimum is returned, else maximum is returned.

Vector2C & operator[] ( int i ) [inline]

Returns either minimum or maximum of the box.

The returns value depends on the given index: 0 for minimum, 1 for maximum. The box has to be normalized or this method may return incorrect values. You may normalize the box by calling the normalize() method. There are two versions of this method, this version enables to assign values using the assignment operator.

Returns:
If the specified index is 0 (zero) minimum is returned, else maximum is returned.

Vector2C size ( ) const [inline]

Returns the size of the bounding box.

Returns:
The size of the bounding box. Size is calculated as: max - min. You must normalize the bounding box to get correct size. You may normalize the box by calling the normalize() method.

BBox2C trim ( const BBox2C & rBBox ) const

Trims the bounding box by the specified bounding box.

After trimming the bounding box will fit inside the trimming box.

Parameters:
rBBox Reference to the trimming box.
Returns:
The trimmed bounding box.

float32 width ( ) const [inline]

Returns the width of the bounding box.

Returns:
The returned value is absolute width, that is, even the min and max bounds are in wrong order width() will return correct result.

The documentation for this class was generated from the following file:
  • BBox2C.h


PluginClass::ClassDescC Class Reference

Plugin Class Descriptor class. More...

#include <ClassDescC.h>

List of all members.

Public Methods

  • ClassDescC ()
  • virtual ~ClassDescC ()
  • virtual void* create () = 0
  • virtual PajaTypes::int32 get_classtype () const = 0
  • virtual ClassIdC get_classid () const = 0
  • virtual SuperClassIdC get_super_classid () const = 0
  • virtual const char* get_name () const = 0
  • virtual const char* get_desc () const = 0
  • virtual const char* get_author_name () const = 0
  • virtual const char* get_copyright_message () const = 0
  • virtual const char* get_url () const = 0
  • virtual const char* get_help_filename () const = 0
  • virtual PajaTypes::uint32 get_ext_count () const = 0
  • virtual const char* get_ext ( PajaTypes::uint32 ui32Index ) const = 0
  • virtual bool check_device_support ( PajaSystem::DeviceContextC* pContext ) = 0

Detailed Description

Plugin Class Descriptor class.

Class descriptors provide the system information about the plugin classes in the DLL. Developer creates a class descriptor by deriving a class from ClassDescC and implementing the methods

This class is implemented by the plugin.

Constructor & Destructor Documentation

ClassDescC ( )

Default constructor.

~ClassDescC ( ) [virtual]

Default destructor.

Member Function Documentation

bool check_device_support ( PajaSystem::DeviceContextC * pContext ) [pure virtual]

Check plugin's device support.

Parameters:
pContext Pointer to the device context containing all the supported interfaces.
Returns:
True if device context holds a device interface the plugin class supports.

This function is called by the system at load time to check if this plugin class can be used with the current devices, such as OpenGL or software rendering. To check if the interface the plugin class uses is available, the method should query it. If query_interface methods returns an interface then it exists. Otherwise the interface is not supported.

Example Implementation:

            bool
            TGAImportDescC::check_device_support( DeviceContextC* pContext )
            {
                if( pContext->query_interface( INTERFACE_OPENGL ) )
                    return true;
                return false;
            }

void * create ( ) [pure virtual]

Demopaja calls this method when it needs new instance of the plugin class.

The plugin is responds by allocating a new insance of its plugin class. The instace should be derived from DataBlockI interface, which has the release method for deleting the instance.

Example Implementation:

            void*
            TGAImportDescC::create()
            {
                return (void*)TGAImportC::create_new();
            }

const char * get_author_name ( ) const [pure virtual]

Returns the short description of the developer of the plugin class as NULL terminated string.

Example Implementation:

            const char*
            TGAImportDescC::get_author_name() const
            {
                return "Mikko \"memon\" Mononen";
            }

ClassIdC get_classid ( ) const [pure virtual]

Returns unique class ID of the plugin class.

Each plugin class must have unique class ID. The Demopaja system will identify the plugin classes (Importers and Effects) by its class ID. If two classes conflict the system will use the first class it finds. Use the random class ID generator provided with the SDK to generate new class IDs to avoid conflicts. This ID is for per class, you don't have to create new ID for every instance.

PajaTypes::int32 get_classtype ( ) const [pure virtual]

Returns the type of the plugin.

The return value can be either CLASS_TYPE_EFFECT or CLASS_TYPE_FILEIMPORT depending on the plugin class' type. Both values are defined in the ClassDescC.h.

const char * get_copyright_message ( ) const [pure virtual]

Returns copyright message of the plugin class as NULL terminated string.

Example Implementation

            const char*
            TGAImportDescC::get_copyright_message() const
            {
                return "Copyright (c) 2000 Moppi Productions";
            }

const char * get_desc ( ) const [pure virtual]

Returns description of the plugin class as NULL terminated string.

Example Implementation:

            const char*
            TGAImportDescC::get_desc() const
            {
                return "Importer for Targa (.TGA) images";
            }

const char * get_ext ( PajaTypes::uint32 ui32Index ) const [pure virtual]

Returns the extension of specified index as a NULL terminated string.

Parameters:
ui32Index A zero based index of the extension string get get.

The extension can be any length, but it should not include the leading ".".

Example Implementation:

            const char*
            TGAImportDescC::get_ext( uint32 ui32Index ) const
            {
                if( ui32Index == 0 )
                    return "tga";
                else if( ui32Index == 1 )
                    return "vda";
                else if( ui32Index == 2 )
                    return "icb";
                else if( ui32Index == 3 )
                    return "vst";
                return 0;
            }

PajaTypes::uint32 get_ext_count ( ) const [pure virtual]

Returns number of file extensions used by the plugin class.

This information is only used with the importer and exporter plugins. Effect plugin class descriptors should return zero.

Example Implementation:

            uint32
            TGAImportDescC::get_ext_count() const
            {
                return 4;
            }

const char * get_help_filename ( ) const [pure virtual]

Returns the path name to the help file of the plugin class.

This path name will be used to load the help file of a plugin class to be shown in the Help Viewer. The help files has to be in HTML format.

The path is relative to the Demopaja plugin directory.

Example Implementation:

            const char*
            TGAImportDescC::get_url() const
            {
                return "TGAImport.html";
            }

const char * get_name ( ) const [pure virtual]

Returns the name of the plugin class as NULL terminated string.

The name of the plugin class should be as descriptive as possible. This name is used all over the user interface so make it short. Name of below 15 characters is good.

Example Implementation:

            const char*
            TGAImportDescC::get_name() const
            {
                return "Targa Image";
            }

SuperClassIdC get_super_classid ( ) const [pure virtual]

Returns super class ID of the plugin class.

This method returns system defined constant which describes the class this plugin class is derived from. For example all effects returns SUPERCLASS_EFFECT (defined in EffectI.h).

const char * get_url ( ) const [pure virtual]

Returns the URL of the developers homepage (or e-mail address) as NULL terminated string.

This information will be used in the About Plugins dialog to forward user to the homepage of the plugin.

Example Implementation:

            const char*
            TGAImportDescC::get_url() const
            {
                return "http://moppi.inside.org/demopaja/";
            }

The documentation for this class was generated from the following file:
  • ClassDescC.h


PluginClass::ClassIdC Class Reference

Plugin Class ID. More...

#include <ClassIdC.h>

List of all members.

Public Methods

  • ClassIdC ()
  • ClassIdC ( PajaTypes::uint32 ui32ClassA, PajaTypes::uint32 ui32ClassB )
  • ClassIdC ( const ClassIdC& rClassId )
  • virtual ~ClassIdC ()
  • PajaTypes::uint32 get_class_a () const
  • PajaTypes::uint32 get_class_b () const
  • bool operator== ( const ClassIdC& rClassId ) const
  • bool operator!= ( const ClassIdC& rClassId ) const
  • ClassIdC& operator= ( const ClassIdC& rClassId )

Detailed Description

Plugin Class ID.

This class represents the unique class ID for a Demopaja plugin class. A Class ID consists of two 32-bit numbers. The class ID must be unique, since plugin classes are identified by it. To avoid any conflicts always generate random class ID for each plugin class you use. You should use the Class ID generator (classidgen.exe) provided with this documentation. A class ID with two zero numbers is a NULL class ID, and is not a valid ID.

Class IDs which has zero first (A) part are reserved to be used only by the Demopaja development team. If you use one of the sample plugins as basis of your own plugin remember to change the class IDs!

This class is implemented by the system.

Constructor & Destructor Documentation

ClassIdC ( )

Default constructor, assigns each number to zero (NULL class ID).

ClassIdC ( | PajaTypes::uint32 ui32ClassA,
 | PajaTypes::uint32 ui32ClassB )

Creates a new class ID with the values assigned from the arguments.

ClassIdC ( const ClassIdC & rClassId )

Copy constructor, creates a new class ID with the same values as the argument.

~ClassIdC ( ) [virtual]

Default Destructor.

Member Function Documentation

PajaTypes::uint32 get_class_a ( ) const

Returns the first part of the class ID.

PajaTypes::uint32 get_class_b ( ) const

Returns the second part of the class ID.

bool operator!= ( const ClassIdC & rClassId ) const

Returns true if the class IDs are non-equal, else false.

ClassIdC & operator= ( const ClassIdC & rClassId )

Copy operator.

bool operator== ( const ClassIdC & rClassId ) const

Returns true if the class IDs are equal, else false.

The documentation for this class was generated from the following file:
  • ClassIdC.h


PajaTypes::ColorC Class Reference

RGBA color class. More...

#include <ColorC.h>

List of all members.

Public Methods

  • ColorC ( const ColorC& rCol )
  • ColorC ( float32 f32R = 0, float32 f32G = 0, float32 f32B = 0, float32 f32A = 1.0f )
  • ~ColorC ()
  • void convert_from_uint8 ( uint8 ui8R, uint8 ui8G, uint8 ui8B, uint8 ui8A = 255 )
  • operator const float32 * ()
  • float32& operator[] ( int32 i )
  • const float32& operator[] ( int32 i ) const
  • ColorC operator- () const
  • bool operator== ( const ColorC& rCol ) const
  • bool operator!= ( const ColorC& rCol ) const
  • ColorC& operator-= ( const ColorC& rCol )
  • ColorC& operator+= ( const ColorC& rCol )
  • ColorC& operator *= ( float32 f32S )
  • ColorC& operator/= ( float32 f32S )
  • ColorC operator * ( float32 f32S ) const
  • ColorC operator/ ( float32 f32S ) const
  • ColorC operator- ( const ColorC& rCol ) const
  • ColorC operator+ ( const ColorC& rCol ) const
  • ColorC operator * ( const ColorC& rCol ) const

Friends

  • ColorC operator * ( float32 f32S, const ColorC& rCol )

Detailed Description

RGBA color class.

Color class defines a four component color type. The components are red, green, blue and alpha. All components are handled similar inside the class.

The assumed color range is 0..1.

This class is implemented by the system.

Constructor & Destructor Documentation

ColorC ( const ColorC & rCol )

Copy constructor.

ColorC ( | float32 f32R = 0,
 | float32 f32G = 0,
 | float32 f32B = 0,
 | float32 f32A = 1.0f )

Default constructor.

~ColorC ( )

Default destructor.

Member Function Documentation

void convert_from_uint8 ( | uint8 ui8R,
 | uint8 ui8G,
 | uint8 ui8B,
 | uint8 ui8A = 255 )

Converts color from unsigned integer values.

All values are in range 0..255.

ColorC operator * ( const ColorC & a ) const [inline]

Multiplies each component of the color by matching component in the specified argument and returns the result.

ColorC operator * ( float32 s ) const [inline]

Multiplies each color component by the specified number and returns the result.

ColorC & operator *= ( float32 s ) [inline]

Multiplies each color component by the specified number.

operator const float32 * ( )

Constant float pointer cast operator.

bool operator!= ( const ColorC & rCol ) const

Returns true if colors are not equal, else false.

ColorC operator+ ( const ColorC & a ) const [inline]

Adds the color specified by the argument to the color and returns the result.

ColorC & operator+= ( const ColorC & a ) [inline]

Adds the color specified by the argument to the color.

ColorC operator- ( const ColorC & a ) const [inline]

Subtracts the color specified by the argument from the color and returns the result.

ColorC operator- ( ) const [inline]

Returns negated color.

ColorC & operator-= ( const ColorC & a ) [inline]

Subtracts the color specified by the argument from the color.

ColorC operator/ ( float32 s ) const [inline]

Divides each color component by the specified number and returns the result.

ColorC & operator/= ( float32 s ) [inline]

Divides each color component by the specified number.

bool operator== ( const ColorC & rCol ) const

Returns true if both colors are equal, else false.

const float & operator[] ( int32 i ) const [inline]

Returns component of the color.

The index values from 0 to 3 corresponds to components R, G, B, and A respectively. There are two versions of this method, this version is for retrieving the values.

float & operator[] ( int32 i ) [inline]

Returns component of the color.

The index values from 0 to 3 corresponds to components R, G, B, and A respectively. There are two versions of this method, this version enables to assign values.

Friends And Related Function Documentation

ColorC operator * ( | float32 f32S,
 | const ColorC & rCol ) [friend]

Multiplies each color component by the specified number and returns the result.

The documentation for this class was generated from the following file:
  • ColorC.h


Composition::ControllerC Class Reference

Value controller class. More...

#include <ControllerC.h>

Inheritance diagram for Composition::ControllerC:

Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual Edit::DataBlockI* create ()
  • virtual Edit::DataBlockI* create ( Edit::EditableI* pOriginal )
  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pBlock )
  • virtual PajaTypes::int32 get_key_count ()
  • virtual KeyC* get_key ( PajaTypes::int32 i32Index )
  • virtual void del_key ( PajaTypes::int32 i32Index )
  • virtual KeyC* get_key_at_time ( PajaTypes::int32 i32Time )
  • virtual KeyC* add_key_at_time ( PajaTypes::int32 i32Time )
  • virtual void set_start_ort ( PajaTypes::uint32 ui32Ort )
  • virtual void set_end_ort ( PajaTypes::uint32 ui32Ort )
  • virtual PajaTypes::uint32 get_start_ort ()
  • virtual PajaTypes::uint32 get_end_ort ()
  • virtual void sort_keys ()
  • virtual void prepare ()
  • virtual void get_value ( PajaTypes::float32* pValues, PajaTypes::int32 i32Time )
  • virtual void get_value ( PajaTypes::int32& i32Val, PajaTypes::int32 i32Time )
  • virtual void get_value ( PajaTypes::float32& f32Val, PajaTypes::int32 i32Time )
  • virtual void get_value ( PajaTypes::Vector2C& rVal, PajaTypes::int32 i32Time )
  • virtual void get_value ( PajaTypes::Vector3C& rVal, PajaTypes::int32 i32Time )
  • virtual void get_value ( PajaTypes::ColorC& rVal, PajaTypes::int32 i32Time )
  • virtual PajaTypes::float32 get_min_val ()
  • virtual PajaTypes::float32 get_max_val ()
  • virtual PajaTypes::int32 get_min_time ()
  • virtual PajaTypes::int32 get_max_time ()
  • virtual PajaTypes::uint32 get_type ()
  • virtual void set_type ( PajaTypes::uint32 ui32Type )
  • virtual PajaTypes::uint32 get_num_channels ()
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Static Public Methods

  • ControllerC* create_new ( ControllerTypeE eType )

Protected Methods

  • ControllerC ( ControllerTypeE eType )
  • ControllerC ( Edit::EditableI* pOriginal )
  • ~ControllerC ()

Detailed Description

Value controller class.

Controller class is used to control the animated parameter values in Demopaja. For user and coder the use of controllers are invisible. The parameter takes care of using the controller. In some cases it may be useful to use the controller directly.

Controller provides methods to add and delete keys, interpolate between set of keys,

This class is implemented by the system.

See also:
KeyC

Constructor & Destructor Documentation

ControllerC ( ControllerTypeE eType ) [protected]

Default constructor.

ControllerC ( Edit::EditableI * pOriginal ) [protected]

Default constructor with reference to the original.

~ControllerC ( ) [protected]

Default destructor.

Member Function Documentation

KeyC * add_key_at_time ( PajaTypes::int32 i32Time ) [virtual]

Creates a new key at specified time and returns it.

void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( Edit::EditableI * pOriginal ) [virtual]

Creates new controller (used internally), see Edit::EditableI::create().

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( ) [virtual]

Creates new controller.

Use set_type() to set number of channels and the type of the controller.

Reimplemented from Edit::EditableI.

ControllerC * create_new ( ControllerTypeE eType ) [static]

Creates new controller.

Parameters:
eType Type of controller to create.

This method creates new controller. The type defines the number of channels to use.

void del_key ( PajaTypes::int32 i32Index ) [virtual]

Deletes a key pointed by the argument.

PajaTypes::uint32 get_end_ort ( ) [virtual]

Returns the end out fo range type.

KeyC * get_key ( PajaTypes::int32 i32Index ) [virtual]

Returns pointer to a key pointed by the argument.

KeyC * get_key_at_time ( PajaTypes::int32 i32Time ) [virtual]

Returns a key at specified time, else NULL.

PajaTypes::int32 get_key_count ( ) [virtual]

Returns the number of keys inside the controller.

PajaTypes::int32 get_max_time ( ) [virtual]

Returns the time of the last key.

PajaTypes::float32 get_max_val ( ) [virtual]

Returns the maximum value of the cotnroller.

The value is checked on keyframes and the result is maximum of the all channels.

This method is mainly used internally.

PajaTypes::int32 get_min_time ( ) [virtual]

Returns the time of the first key.

PajaTypes::float32 get_min_val ( ) [virtual]

Returns the minimum value of the controller.

The value is checked on keyframes and the result is minimum of the all channels.

This method is mainly used internally.

PajaTypes::uint32 get_num_channels ( ) [virtual]

Returns number of channels this cintroller controls.

The channel count depends on the controller type.

See also:
ControllerTypeE

PajaTypes::uint32 get_start_ort ( ) [virtual]

Returns the start out fo range type.

PajaTypes::uint32 get_type ( ) [virtual]

Returns the type of the controller.

void get_value ( | PajaTypes::ColorC & rVal,
 | PajaTypes::int32 i32Time ) [virtual]

Returns the interpolated value of the controller at specified time as a color.

void get_value ( | PajaTypes::Vector3C & rVal,
 | PajaTypes::int32 i32Time ) [virtual]

Returns the interpolated value of the controller at specified time as a 3D vector.

void get_value ( | PajaTypes::Vector2C & rVal,
 | PajaTypes::int32 i32Time ) [virtual]

Returns the interpolated value of the controller at specified time as a 3D vector.

void get_value ( | PajaTypes::float32 & f32Val,
 | PajaTypes::int32 i32Time ) [virtual]

Returns the interpolated value of the controller at specified time as a floating point values.

void get_value ( | PajaTypes::int32 & i32Val,
 | PajaTypes::int32 i32Time ) [virtual]

Returns the interpolated value of the controller at specified time as a integer value.

void get_value ( | PajaTypes::float32 * pValues,
 | PajaTypes::int32 i32Time ) [virtual]

Returns the interpolated value of the controller at specified time.

This method calculates the interpolated value based in the keys inside the controller. If no keys are present the return value will be zero for all channels.

Maximum of KEY_MAXCHANNELS (currently 4) values are stored in the array pointed by the pValues parmeter.

For easier access should one of the other get_value() methods be used.

virtual PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Load editable from a Demopaja input stream.

Reimplemented from Edit::EditableI.

void prepare ( ) [virtual]

Prepares controller for interpolation.

This method has to be called after a new key is added to the controller, or the result of other methods may be incorrect.

If the controller contains smooth keys the tangents are calculated by this method, else it does nothing.

void restore ( Edit::EditableI * pBlock ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Edit::EditableI.

virtual PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Save editable to a Demopaja output stream.

Reimplemented from Edit::EditableI.

void set_end_ort ( PajaTypes::uint32 ui32Ort ) [virtual]

Sets the end (time after last key) out of range type.

void set_start_ort ( PajaTypes::uint32 ui32Ort ) [virtual]

Sets the start (time before the first key) out of range type.

void set_type ( PajaTypes::uint32 ui32Type ) [virtual]

Sets the type of the controller.

This method should only be called for a controller which does not have any keys. It doesn't convert the keys and will lead in serious trouble if misused.

void sort_keys ( ) [virtual]

Sorts keys by time.

This method has to be called after a new key is added to the controller, or the result of other methods may be incorrect.

The documentation for this class was generated from the following file:
  • ControllerC.h


Edit::DataBlockI Class Reference

Plugin data interface. More...

#include <DataBlockI.h>

Inheritance diagram for Edit::DataBlockI:

Edit::EditableI Composition::ControllerC Composition::EffectI Composition::GizmoI Composition::KeyC Composition::LayerC Composition::ParamI Composition::SceneC Composition::TimeSegmentC Import::FileHandleC Import::FileListC Import::ImportableI List of all members.

Public Methods

  • virtual DataBlockI* create () = 0
  • virtual void release ()
  • virtual void copy ( DataBlockI* pBlock ) = 0

Protected Methods

  • DataBlockI ()
  • virtual ~DataBlockI ()

Detailed Description

Plugin data interface.

Data block class is base class for every object created in a plugin class in a DLL and returned to the Demopaja system. Data block class takes care that the memory management of the main application and the plugin won't corrupt. This class also hides the constructor and destructor to prevent the misuse of the classes derived from this class.

Constructor & Destructor Documentation

DataBlockI ( ) [protected]

Protected default constructor.

~DataBlockI ( ) [protected, virtual]

Protected default desctructor.

Member Function Documentation

void copy ( DataBlockI * pBlock ) [pure virtual]

Deep copy from a data block.

Parameters:
pBlock Pointer to datablock of same class to data from.

This method should make a deep copy (that is, copy everything) of the instance specified by the argument.

            Example Implementation
            void
            TGAImportC::copy( DataBlockI* pBlock )
            {
                TGAImportC* pFile = (TGAImportC*)pBlock;

                m_i32Width = pFile->m_i32Width;
                m_i32Height = pFile->m_i32Height;
                m_i32Bpp = pFile->m_i32Bpp;
                m_sFileName = pFile->m_sFileName;

                // duplicate data
                delete m_pData;
                uint32 ui32DataSize = m_i32Width * m_i32Height * (m_i32Bpp / 8);
                m_pData = new uint8[ui32DataSize];
                memcpy( m_pData, pFile->m_pData, ui32DataSize );
            }

Reimplemented in Composition::ControllerC, Edit::EditableI, Composition::EffectI, Import::FileHandleC, Import::FileListC, Composition::GizmoI, Composition::KeyC, Composition::LayerC, Composition::ParamI, Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, Composition::ParamFileC, Composition::SceneC, and Composition::TimeSegmentC.

DataBlockI * create ( ) [pure virtual]

Creates new datablock.

The create method of data block class creates new instance of the same class the data block is.

Example implementation:

            DataBlockI*
            TGAImportC::create()
            {
                return new TGAImportC;
            }

Returns:
Pointer to a new instance of this class.

Reimplemented in Composition::ControllerC, Edit::EditableI, Import::FileHandleC, Import::FileListC, Composition::KeyC, Composition::LayerC, Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, Composition::ParamFileC, Composition::SceneC, and Composition::TimeSegmentC.

void release ( ) [virtual]

Deletes data block.

This method should delete all the contents of this class. The default implementation is shown below. So in practice, you can implement the desctructor method to release the data as usual.

The default implementation of this method is:

            void
            DataBlockI::release()
            {
                delete this;
            }

The documentation for this class was generated from the following file:
  • DataBlockI.h


PajaTypes::DecomposeAffineC Class Reference

Decomposes a matrix into affine parts. More...

#include <DecomposeAffineC.h>

List of all members.

Public Methods

  • DecomposeAffineC ( const PajaTypes::Matrix3C& rMat )
  • ~DecomposeAffineC ()
  • PajaTypes::Vector3C get_translation ()
  • PajaTypes::QuatC get_rotation ()
  • PajaTypes::Vector3C get_scale ()
  • PajaTypes::QuatC get_scale_rotation ()
  • PajaTypes::float32 get_sign ()

Detailed Description

Decomposes a matrix into affine parts.

Decomposes matrix into translation, rotation, scale and scael rotation parts. The class is based on the article: "Polar Matrix Decomposition" by Ken Shoemake, shoemake@graphics.cis.upenn.edu in "Graphics Gems IV", Academic Press, 1994

To reassemble the matrix use following:

        Matrix3C    rScaleMat, rScaleRotMat, rInvScaleRotMat;
        Matrix3C    rPosMat, rRotMat, rTM;
        QuatC       rInvScaleRot;
        // scale
        rScaleMat.set_scale( rScale );
        // scale rot
        rScaleRot.from_axis_angle( rScaleAxis, f32ScaleAngle );
        rScaleRotMat.set_rot( rScaleRot );
        // inv scale rot
        rInvScaleRot = rScaleRot.unit_inverse();
        rInvScaleRotMat.set_rot( rInvScaleRot );
        // rot
        rRot.from_axis_angle( rRotAxis, f32RotAngle );
        rRotMat.set_rot( rRot );
        // pos
        rPosMat.set_trans( rPos );
        // Compose matrix
        rTM = rInvScaleRotMat * rScaleMat * rScaleRotMat * rRotMat * rPosMat;

Or using OpenGL:

        float32     f32X, f32Y, f32Z, f32A;
        QuatC       rInvScaleRot = rScaleRot.unit_inverse();

        glTranslatef( rPos[0], rPos[1], rPos[2] );

        rRot.to_axis_angle( f32X, f32Y, f32Z, f32A );
        glRotatef( f32A / (float32)M_PI * 180.0f, f32X, f32Y, f32Z );

        rScaleRot.to_axis_angle( f32X, f32Y, f32Z, f32A );
        glRotatef( f32A / (float32)M_PI * 180.0f, f32X, f32Y, f32Z );

        glScalef( rScale[0], rScale[1], rScale[2] );

        rInvScaleRot.to_axis_angle( f32X, f32Y, f32Z, f32A );
        glRotatef( f32A / (float32)M_PI * 180.0f, f32X, f32Y, f32Z );

Constructor & Destructor Documentation

DecomposeAffineC ( const PajaTypes::Matrix3C & rMat )

Constructor.

~DecomposeAffineC ( )

Desctructor.

Member Function Documentation

PajaTypes::QuatC get_rotation ( )

Return essential rotation part of the matrix.

PajaTypes::Vector3C get_scale ( )

Return scale part of the matrix.

PajaTypes::QuatC get_scale_rotation ( )

Return scale rotation part of the matrix.

PajaTypes::float32 get_sign ( )

Returns sign of the determinant.

PajaTypes::Vector3C get_translation ( )

Returns the translation part of the matrix.

The documentation for this class was generated from the following file:
  • DecomposeAffineC.h


PajaSystem::DeviceContextC Class Reference

Device context class. More...

#include <DeviceContextC.h>

List of all members.

Public Methods

  • DeviceContextC ()
  • virtual ~DeviceContextC ()
  • virtual DeviceInterfaceI* query_interface ( PajaTypes::int32 i32Iface )
  • virtual void register_interface ( PajaTypes::int32 i32Iface, DeviceInterfaceI* pInterface )

Detailed Description

Device context class.

The purpose of the device context class is to gather all the device interfaces available to the effects. The interfaces may range from renderin APIs (such as OpenGL, or Direct3D) to music system APIs. The interface holds just enough information to use the API and some helper methods to help the use of the API under the editor. Device context simply holds these interfaces. These interfaces can be queried from the context.

This class is implemented by the system.

Constructor & Destructor Documentation

DeviceContextC ( )

Default constructor.

Initialises the structures used by the device context. Used internally.

~DeviceContextC ( ) [virtual]

Default destructor.

The destructor. Releases all resgitered interfaces. Used internally.

Member Function Documentation

DeviceInterfaceI * query_interface ( PajaTypes::int32 i32Iface ) [virtual]

Query specified device interface.

Parameters:
i32IFace ID of the interface to query.
Returns:
Pointer to existing interface. If no interface was found the return value is NULL.

This is the only method user needs to call from this class. It makes a query to the list inside the device context to see if the queried interface is available. If it is available pointer to the interface will be returned, otherwise the return value is NULL.

The IDs for the interfaces are defined in the header files of the interfaces.

Example:

            void
            TestEffectC::do_frame( DeviceContextC* pContext )
            {
                OpenGLInterfaceC* pInterface = (OpenGLInterfaceC*)pContext->query_interface( INTERFACE_OPENGL );
                if( !pInterface ) {
                    // No interface available... bail out!
                    return;
                }
                // do the effect...
            }

void register_interface ( | PajaTypes::int32 i32Iface,
 | DeviceInterfaceI * pInterface ) [virtual]

Register device interface.

The system uses this method internally to register device interfaces to the device context.

The documentation for this class was generated from the following file:
  • DeviceContextC.h


PajaSystem::DeviceInterfaceI Class Reference

Device interface. More...

#include <DeviceInterfaceI.h>

Inheritance diagram for PajaSystem::DeviceInterfaceI:

PajaSystem::OpenGLInterfaceC List of all members.

Public Methods

  • DeviceInterfaceI ()
  • virtual ~DeviceInterfaceI ()
  • virtual PajaTypes::uint32 get_type () const = 0

Detailed Description

Device interface.

Device interface is the base class interface for all devices the effects in Demopaja system can use.

Work in progress. This interface will change in the future when the complete driver system is implemented.

Constructor & Destructor Documentation

DeviceInterfaceI ( )

Default constructor.

~DeviceInterfaceI ( ) [virtual]

Default destructor.

Member Function Documentation

PajaTypes::uint32 get_type ( ) const [pure virtual]

Returns the type if the interface.

This type is the same type that is used to query the interface.

Reimplemented in PajaSystem::OpenGLInterfaceC.

The documentation for this class was generated from the following file:
  • DeviceInterfaceI.h


Edit::EditableI Class Reference

Editable interface. More...

#include <EditableI.h>

Inheritance diagram for Edit::EditableI:

Edit::DataBlockI Composition::ControllerC Composition::EffectI Composition::GizmoI Composition::KeyC Composition::LayerC Composition::ParamI Composition::SceneC Composition::TimeSegmentC Import::FileHandleC Import::FileListC Import::ImportableI List of all members.

Public Methods

  • virtual DataBlockI* create () = 0
  • virtual DataBlockI* create ( EditableI* pOriginal ) = 0
  • virtual void copy ( DataBlockI* pBlock ) = 0
  • virtual void restore ( EditableI* pEditable ) = 0
  • virtual EditableI* duplicate ()
  • virtual EditableI* clone ()
  • virtual EditableI* get_original () const
  • virtual UndoC* begin_editing ( UndoC* pUndo )
  • virtual void end_editing ( UndoC* pUndo )
  • virtual UndoC* get_undo ()
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave ) = 0
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad ) = 0

Protected Methods

  • EditableI ()
  • EditableI ( EditableI* m_pOriginal )
  • virtual ~EditableI ()

Detailed Description

Editable interface.

Editable interfaces is used by all the objects which are editable. The interface defines set of methods which are used for example by the undo-system in Demopaja.

Constructor & Destructor Documentation

EditableI ( ) [protected]

Default constructor.

EditableI ( EditableI * m_pOriginal ) [protected]

Default constructor with reference to the original.

~EditableI ( ) [protected, virtual]

Default destructor.

Member Function Documentation

UndoC * begin_editing ( UndoC * pUndo ) [virtual]

Starts new editing scope, returns current undo.

Parameters:
pUndo Undo object to store the changes.

Begins new undo scope, sets the internal undo object to the object given as argument. The default implmentation uses clone() method to clone data and pushes the clone to the undo restore data queue.

Implemented by the system. If the class needs to store extra information which cannot be stored in the clone() method or a special flag needs to be set, override this method, but remember to call this memeber at the beginning of the overridden method!

EditableI * clone ( ) [virtual]

Clones editable.

Makes a clone of the editable and returns it. The duplicated editable has to be released when it is no longer used. The restore() method is used to clone the data. Also the reference to the original data is saved.

Used internally, usually from the begin_editing() method.

See also:
get_original();

virtual void copy ( DataBlockI * pBlock ) [pure virtual]

Deep copy from a data block.

Parameters:
pBlock Pointer to datablock of same class to data from.

This method should make a deep copy (that is, copy everything) of the instance specified by the argument.

            Example Implementation
            void
            TGAImportC::copy( DataBlockI* pBlock )
            {
                TGAImportC* pFile = (TGAImportC*)pBlock;

                m_i32Width = pFile->m_i32Width;
                m_i32Height = pFile->m_i32Height;
                m_i32Bpp = pFile->m_i32Bpp;
                m_sFileName = pFile->m_sFileName;

                // duplicate data
                delete m_pData;
                uint32 ui32DataSize = m_i32Width * m_i32Height * (m_i32Bpp / 8);
                m_pData = new uint8[ui32DataSize];
                memcpy( m_pData, pFile->m_pData, ui32DataSize );
            }

Reimplemented from Edit::DataBlockI.

Reimplemented in Composition::ControllerC, Composition::EffectI, Import::FileHandleC, Import::FileListC, Composition::GizmoI, Composition::KeyC, Composition::LayerC, Composition::ParamI, Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, Composition::ParamFileC, Composition::SceneC, and Composition::TimeSegmentC.

DataBlockI * create ( EditableI * pOriginal ) [pure virtual]

Creates new datablock, with reference to the original.

Parameters:
pOriginal Pointer to the original editable. This method is used by the undo system to create a copy of the editable while keeping reference to the original.

The method restore() is used to restore the data from the original copy.

Reimplemented in Composition::ControllerC, Import::FileHandleC, Import::FileListC, Composition::KeyC, Composition::LayerC, Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, Composition::ParamFileC, Composition::SceneC, and Composition::TimeSegmentC.

virtual DataBlockI* create ( ) [pure virtual]

Creates new datablock.

The create method of data block class creates new instance of the same class the data block is.

Example implementation:

            DataBlockI*
            TGAImportC::create()
            {
                return new TGAImportC;
            }

Returns:
Pointer to a new instance of this class.

Reimplemented from Edit::DataBlockI.

Reimplemented in Composition::ControllerC, Import::FileHandleC, Import::FileListC, Composition::KeyC, Composition::LayerC, Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, Composition::ParamFileC, Composition::SceneC, and Composition::TimeSegmentC.

EditableI * duplicate ( ) [virtual]

Duplicates editable.

Makes a duplicate of the editable and returns it. The duplicated editable has to be released when it is no longer used. The copy() method is used to duplicate the data.

void end_editing ( UndoC * pUndo ) [virtual]

Ends current editing scope, set return previous undo.

The default implementation sets the given undo object as current undo object.

This method is implemented by the system and used internally.

See also:
begin_editing

EditableI * get_original ( ) const [virtual]

Returns original editable, if the editable is a clone, else returns 0.

Every time a editable is cloned a reference to the orginal data is saved too. This methods enables to get the pointer to the original data. This methods is mainly used to determine if the released editable is a clone, hence no data will be released.

Example usage:

            TGAImportC::~TGAImportC()
            {
                // Check if this editable is a clone.
                if( get_original() )
                    return;     // It's clone, return.
                // Delete data
                delete m_pData;
            }

UndoC * get_undo ( ) [virtual]

Returns current undo.

Returns current undo object bind by the last begin_editing() call. The return value can be NULL.

Implemented by the system.

PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [pure virtual]

Load editable from a Demopaja input stream.

Reimplemented in Composition::ControllerC, Composition::EffectI, Import::FileHandleC, Import::FileListC, Composition::GizmoI, Composition::KeyC, Composition::LayerC, Composition::ParamI, Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, Composition::ParamFileC, Composition::SceneC, and Composition::TimeSegmentC.

void restore ( EditableI * pEditable ) [pure virtual]

Shallow copy of a data block.

Restores the local data from the given data block. This method is used by the Demopaja undo system to restore data from a copy. This method should only do a shallow copy, that is, copy the variables which can be changed by the methods in the interface of the class.

For example if a import plugin class should not copy the data, but only pointer to the data since there isnt any method in the interface which would change the data. If the data can be changed the copy() is called automatically by the system.

Example:

            void
            TGAImportC::restore( EditableI* pEditable )
            {
                TGAImportC* pFile = (TGAImportC*)pEditable;

                m_ui32TextureId = pFile->m_ui32TextureId;
                m_pData = pFile->m_pData;
                m_i32Width = pFile->m_i32Width;
                m_i32Height = pFile->m_i32Height;
                m_i32Bpp = pFile->m_i32Bpp;
                m_sFileName = pFile->m_sFileName;
            }

See also:
DataBlockI::copy

Reimplemented in Composition::ControllerC, Composition::EffectI, Import::FileHandleC, Import::FileListC, Composition::GizmoI, Composition::KeyC, Composition::LayerC, Composition::ParamI, Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, Composition::ParamFileC, Composition::SceneC, and Composition::TimeSegmentC.

PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [pure virtual]

Save editable to a Demopaja output stream.

Reimplemented in Composition::ControllerC, Composition::EffectI, Import::FileHandleC, Import::FileListC, Composition::GizmoI, Composition::KeyC, Composition::LayerC, Composition::ParamI, Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, Composition::ParamFileC, Composition::SceneC, and Composition::TimeSegmentC.

The documentation for this class was generated from the following file:
  • EditableI.h


Composition::EffectI Class Reference

The effect interface. More...

#include <EffectI.h>

Inheritance diagram for Composition::EffectI:

Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pEditable )
  • virtual void set_name ( const char* szName )
  • virtual const char* get_name () const
  • virtual PajaTypes::int32 get_gizmo_count () = 0
  • virtual GizmoI* get_gizmo ( PajaTypes::int32 i32Index ) = 0
  • virtual void set_flags ( PajaTypes::int32 i32Flags )
  • virtual void add_flags ( PajaTypes::int32 i32Flags )
  • virtual void del_flags ( PajaTypes::int32 i32Flags )
  • virtual void toggle_flags ( PajaTypes::int32 i32Flags )
  • virtual PajaTypes::int32 get_flags ()
  • virtual TimeSegmentC* get_timesegment ()
  • virtual PluginClass::SuperClassIdC get_super_class_id ()
  • virtual PluginClass::ClassIdC get_class_id () = 0
  • virtual const char* get_class_name () = 0
  • virtual void set_default_file ( Import::FileHandleC* pHandle ) = 0
  • virtual ParamI* get_default_param ( PajaTypes::int32 i32Param ) = 0
  • virtual void update_notify ( PajaTypes::uint32 ui32GizmoId, PajaTypes::uint32 ui32ParamId, PajaTypes::int32 i32Time )
  • virtual bool hit_test ( const PajaTypes::Vector2C& rPoint ) = 0
  • virtual void initialize ( PajaSystem::DeviceContextC* pContext, PajaSystem::TimeContextC* pTimeContext ) = 0
  • virtual void eval_state ( PajaTypes::int32 i32Time, PajaSystem::TimeContextC* pTimeContext ) = 0
  • virtual void do_frame ( PajaSystem::DeviceContextC* pContext ) = 0
  • virtual PajaTypes::BBox2C get_bbox () = 0
  • virtual const PajaTypes::Matrix2C& get_transform_matrix () const = 0
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Protected Methods

  • EffectI ()
  • EffectI ( Edit::EditableI* pOriginal )
  • virtual ~EffectI ()

Detailed Description

The effect interface.

The effect interface is one of the most import interfaces in Demopaja for the coder. Every effect to be shown on screen have to be derived from this class.

In normal play mode there are two metods which are called every frame: eval_state() and do_frame(). The first evaluates the state of the specified frame, calculates all data that can be calculated before hand. The latter renders the effect to the screen.

The reason to cut the rendering in tow parts is that sometimes the Demopaja editor needs some information about the effect but there is no need to render the object. Also a frame can be rendered multiple time while editing and there's no reason to update the data, only to draw it.

To create a new instace of the effect class a static member should be created, which takes care of the instantiating. The member could look like this:

        TestEffectC*
        TestEffectC::create_new()
        {
            return new TestEffectC;
        }

Constructor & Destructor Documentation

EffectI ( ) [protected]

Default constructor.

EffectI ( Edit::EditableI * pOriginal ) [protected]

Default constructor with reference to the original.

~EffectI ( ) [protected, virtual]

Default destructor.

Member Function Documentation

void add_flags ( PajaTypes::int32 i32Flags ) [virtual]

Sets only specified flags.

Implemented by the EffectI class.

void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

When overriding this method the base class member should be called first.

Example:

            void
            TestEffectC::copy( DataBlockI* pBlock )
            {
                EffectI::copy( pBlock );
                TestEffectC*    pEffect = (TestEffectC*)pBlock;
                m_pGizmo->copy( pEffect->m_pGizmo );
            }

Reimplemented from Edit::EditableI.

void del_flags ( PajaTypes::int32 i32Flags ) [virtual]

Removes only specified flags.

Implemented by the EffectI class.

void do_frame ( PajaSystem::DeviceContextC * pContext ) [pure virtual]

Execute (draws, plays, etc.) the current state of the effect.

All the rendering code goes in this method.

Example:

            void
            PlasmaEffectC::do_frame( DeviceContextC* pContext )
            {
                // Query the interface to use.
                OpenGLInterfaceC*   pInterface = (OpenGLInterfaceC*)pContext->query_interface( INTERFACE_OPENGL );
                if( !pInterface )
                    return;

                // Use the interface to set the rendering area.
                pInterface->set_ortho( m_rBBox, m_rBBox.width(), m_rBBox.height() );

                // Render the effect
                ...
            }

void eval_state ( | PajaTypes::int32 i32Time,
 | PajaSystem::TimeContextC * pTimeContext ) [pure virtual]

Evaluate the state of this effect at specified time.

All the calculation should be done in this method. The eval_state() and do_frame() have been separated to allow the user interface to update the state of the effect only once and draw the effect many times.

The eval_state() method may also be called to update the data (such as the transformation matrix), but not to draw it.

Example:

            void
            TestEffectC::eval_state( int32 i32Time, TimeContextC* pTimeContext )
            {
                Matrix2C    rPosMat, rRotMat, rScaleMat, rPivotMat;
                Vector2C    rPivot = m_pGizmo->get_pivot( i32Time );

                // Calc matrix.
                rPivotMat.set_trans( -rPivot );
                rPosMat.set_trans( m_pGizmo->get_pos( i32Time ) + rPivot );
                rRotMat.set_rot( m_pGizmo->get_rot( i32Time ) / 180.0f * M_PI );
                rScaleMat.set_scale( m_pGizmo->get_scale( i32Time ) ) ;

                // Store matrix.
                m_rTM = rPivotMat * rRotMat * rScaleMat * rPosMat;

                // Calc bounding box
                float32     f32Width = 25, f32Height = 25;
                Vector2C    rMin, rMax, rVec;

                m_rVertices[0][0] = -f32Width;      // top-left
                m_rVertices[0][1] = -f32Height;
                m_rVertices[1][0] =  f32Width;      // top-right
                m_rVertices[1][1] = -f32Height;
                m_rVertices[2][0] =  f32Width;      // bottom-right
                m_rVertices[2][1] =  f32Height;
                m_rVertices[3][0] = -f32Width;      // bottom-left
                m_rVertices[3][1] =  f32Height;

                for( uint32 i = 0; i < 4; i++ ) {
                    rVec = m_rTM * m_rVertices[i];
                    m_rVertices[i] = rVec;
                    if( !i )
                        rMin = rMax = rVec;
                    else {
                        if( rVec[0] < rMin[0] ) rMin[0] = rVec[0];
                        if( rVec[1] < rMin[1] ) rMin[1] = rVec[1];
                        if( rVec[0] > rMax[0] ) rMax[0] = rVec[0];
                        if( rVec[1] > rMax[1] ) rMax[1] = rVec[1];
                    }
                }
                // Store bounding box.
                m_rBBox[0] = rMin;
                m_rBBox[1] = rMax;
            }

PajaTypes::BBox2C get_bbox ( ) [pure virtual]

Returns axis-aligned bounding box of the effect.

PluginClass::ClassIdC get_class_id ( ) [pure virtual]

Returns unique class ID of the effect.

const char * get_class_name ( ) [pure virtual]

Returns effect's class name as NULL terminated string.

ParamI * get_default_param ( PajaTypes::int32 i32Param ) [pure virtual]

Returns default parameter.

Default parameters are commonly used parameters such as position and scale.

Example:

            ParamI*
            TestEffectC::get_default_param( PajaTypes::int32 i32Param )
            {
                if( i32Param == DEFAULT_PARAM_POSITION )
                    return m_pGizmo->get_parameter( TEST_PARAM_POS );
                else if( i32Param == DEFAULT_PARAM_ROTATION )
                    return m_pGizmo->get_parameter( TEST_PARAM_ROT );
                return 0;
            }
See also:
DefaultParamE

PajaTypes::int32 get_flags ( ) [virtual]

Returns effect flags.

Implemented by the EffectI class.

GizmoI * get_gizmo ( PajaTypes::int32 i32Index ) [pure virtual]

Returns gizmo at specified index.

PajaTypes::int32 get_gizmo_count ( ) [pure virtual]

Returns number of gizmos in the effect.

const char * get_name ( ) const [virtual]

Returns the name of the effect.

Implemented by the EffectI class.

PluginClass::SuperClassIdC get_super_class_id ( ) [virtual]

Returns super class ID of the effect (should be SUPERCLASS_EFFECT for effects).

TimeSegmentC * get_timesegment ( ) [virtual]

Returns the timesegment of this effect.

Implemented by the EffectI class.

const PajaTypes::Matrix2C & get_transform_matrix ( ) const [pure virtual]

Returns transformaion matrix of the effect.

bool hit_test ( const PajaTypes::Vector2C & rPoint ) [pure virtual]

Returns true if the given point is inside the region of the effect.

Example:

            bool
            TestEffectC::hit_test( const PajaTypes::Vector2C& rPoint )
            {
                // Point in polygon test (from comp.graphics.algorithms FAQ).
                int32   i, j;
                bool    bInside = false;
                for( i = 0, j = 4 - 1; i < 4; j = i++ ) {
                    if( ( ((m_rVertices[i][1] <= rPoint[1]) && (rPoint[1] < m_rVertices[j][1])) ||
                        ((m_rVertices[j][1] <= rPoint[1]) && (rPoint[1] < m_rVertices[i][1])) ) &&
                        (rPoint[0] < (m_rVertices[j][0] - m_rVertices[i][0]) * (rPoint[1] - m_rVertices[i][1]) / (m_rVertices[j][1] - m_rVertices[i][1]) + m_rVertices[i][0]) )
                        bInside = !bInside;
                }
                return bInside;
            }

void initialize ( | PajaSystem::DeviceContextC * pContext,
 | PajaSystem::TimeContextC * pTimeContext ) [pure virtual]

Initialize effect.

This method is called after all data is passed to the effect. That is, after the effect has been loaded from file or after the effect is created, and all the possible data is set. Usually there is no need to do anything in this method.

PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Serialize effect from a Demopaja input stream.

The base class implementation of this method has to be called in the overridden method.

Example:

            uint32
            TestEffectC::load( LoadC* pLoad )
            {
                uint32  ui32Error = IO_OK;
                while( (ui32Error = pLoad->open_chunk()) == IO_OK ) {
                    switch( pLoad->get_chunk_id() ) {
                    case CHUNK_TESTEFFECT_EFFECTI:
                        if( pLoad->get_chunk_version() == TESTEFFECT_VERSION )
                            ui32Error = EffectI::load( pLoad );
                        break;
                    default:
                        assert( 0 );
                    }
                    pLoad->close_chunk();
                    if( ui32Error != IO_OK && ui32Error != IO_END )
                        return ui32Error;
                }
                return ui32Error;
            }

Reimplemented from Edit::EditableI.

void restore ( Edit::EditableI * pEditable ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

When overriding this method the base class member should be called first.

Example:

            void
            TestEffectC::restore( EditableI* pEditable )
            {
                EffectI::restore( pEditable );
                TestEffectC*    pEffect = (TestEffectC*)pEditable;
                m_pGizmo = pEffect->m_pGizmo;
            }

Reimplemented from Edit::EditableI.

PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Serialize effect to a Demopaja output stream.

The base class implementation of this method has to be called in the overridden method.

Example:

            uint32
            TestEffectC::save( SaveC* pSave )
            {
                uint32  ui32Error = IO_OK;
                // EffectI stuff
                pSave->begin_chunk( CHUNK_TESTEFFECT_EFFECTI, TESTEFFECT_VERSION );
                    ui32Error = EffectI::save( pSave );
                pSave->end_chunk();
                return ui32Error;
            }

Reimplemented from Edit::EditableI.

void set_default_file ( Import::FileHandleC * pHandle ) [pure virtual]

Sets the default file if effect has a default file.

If the effect uses file parameters one of the file parameters has to be set as default file parameter. This is used for example is a file is dragged from File Inspector window to the Timeline Window. That causes new effect to be created and the dragged file to be set as default file. This method does not have to accept the file.

void set_flags ( PajaTypes::int32 i32Flags ) [virtual]

Sets the effect flags.

Be careful to use this method. There are some flags, which have to be in place to make the effect work correctly. Use add, del or toggle flags methods instead.

void set_name ( const char * szName ) [virtual]

Sets the name of the effect.

Implemented by the EffectI class.

void toggle_flags ( PajaTypes::int32 i32Flags ) [virtual]

Toggles only specified flags.

Implemented by the EffectI class.

void update_notify ( | PajaTypes::uint32 ui32GizmoId,
 | PajaTypes::uint32 ui32ParamId,
 | PajaTypes::int32 i32Time ) [virtual]

This method is called when a parameter is changed.

Do not call the rendering methods from this method. The system will automatically update the state effect if a parameter is changed.

The documentation for this class was generated from the following file:
  • EffectI.h


PluginClass::FactoryC Class Reference

Plugin class factory class. More...

#include <FactoryC.h>

List of all members.

Public Methods

  • FactoryC ()
  • virtual ~FactoryC ()
  • virtual void load_plugins ( const char* szDir )
  • virtual void register_class ( ClassDescC* pClass )
  • virtual void* create ( const ClassIdC& rClassId )
  • virtual PajaTypes::uint32 get_classdesc_count ()
  • virtual ClassDescC* get_classdesc ( PajaTypes::uint32 )
  • virtual const char* get_classdesc_dll_name ( PajaTypes::uint32 )

Detailed Description

Plugin class factory class.

The class factory is used to create plugin classes. Different plugin classes are created based on their class IDs. Each plugin class has unique class ID.

See also:
ClassIdC

Constructor & Destructor Documentation

FactoryC ( )

Default constructor.

~FactoryC ( ) [virtual]

Default destructor.

Member Function Documentation

void * create ( const ClassIdC & rClassId ) [virtual]

Creates new instance of class specified by class ID and returns the class.

ClassDescC * get_classdesc ( PajaTypes::uint32 ) [virtual]

Returns pointer to a class descriptor of specified index.

PajaTypes::uint32 get_classdesc_count ( ) [virtual]

Returns number of class descriptors.

const char * get_classdesc_dll_name ( PajaTypes::uint32 ) [virtual]

Returns file name of the DLL where the class descriptor of specified index has loaded.

void load_plugins ( const char * szDir ) [virtual]

Loads plugins from specified directory (used internally).

void register_class ( ClassDescC * pClass ) [virtual]

Registers a plugins class.

The documentation for this class was generated from the following file:
  • FactoryC.h


Import::FileHandleC Class Reference

File handle class. More...

#include <FileHandleC.h>

Inheritance diagram for Import::FileHandleC:

Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual Edit::DataBlockI* create ()
  • virtual Edit::DataBlockI* create ( Edit::EditableI* pOriginal )
  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pEditable )
  • virtual ImportableI* get_importable ()
  • virtual void set_importable ( ImportableI* pImportable )
  • virtual PajaTypes::uint32 get_id ()
  • virtual void set_id ( PajaTypes::uint32 i32ID )
  • virtual void inc_reference_count ()
  • virtual void reset_reference_count ()
  • virtual PajaTypes::int32 get_reference_count ()
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Static Public Methods

  • FileHandleC* create_new ()

Protected Methods

  • FileHandleC ()
  • FileHandleC ( Edit::EditableI* pOriginal )
  • virtual ~FileHandleC ()

Detailed Description

File handle class.

The data loaded into Demopaja can be accessed via ImportableI interface. This file handle class is used to hold that interface. Even if files fail to load the file handle will always be there, so the file handle works as kind of smart reference to the file.

This class is implemented by the system.

Constructor & Destructor Documentation

FileHandleC ( ) [protected]

Default constructor.

FileHandleC ( Edit::EditableI * pOriginal ) [protected]

Default constructor with reference to the original.

~FileHandleC ( ) [protected, virtual]

Default destructor.

Member Function Documentation

void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( Edit::EditableI * pOriginal ) [virtual]

Creates new file handle (used internally), see Edit::EditableI::create().

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( ) [virtual]

Creates new file handle.

Reimplemented from Edit::EditableI.

FileHandleC * create_new ( ) [static]

Creates new file handle.

PajaTypes::uint32 get_id ( ) [virtual]

Get serialixation ID.

ImportableI * get_importable ( ) [virtual]

Returns the importable the file handle refers to.

The return value can be NULL if the file is not present (failure in load, etc.). Always check the return value.

PajaTypes::int32 get_reference_count ( ) [virtual]

Returns reference count (used internally).

void inc_reference_count ( ) [virtual]

Increase reference count (used internally).

virtual PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Load editable from a Demopaja input stream.

Reimplemented from Edit::EditableI.

void reset_reference_count ( ) [virtual]

Reset reference count (used internally).

void restore ( Edit::EditableI * pEditable ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Edit::EditableI.

virtual PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Save editable to a Demopaja output stream.

Reimplemented from Edit::EditableI.

void set_id ( PajaTypes::uint32 i32ID ) [virtual]

Set serialization ID.

When the data is serialized out each file handle is given an ID which is used on to patch the file handles when the data is serialized in. The system sets this ID and it should not be changed.

See also:
FileIO::LoadC::add_file_handle_patch

void set_importable ( ImportableI * pImportable ) [virtual]

Sets the importable the file handle refers to. Used internally.

The documentation for this class was generated from the following file:
  • FileHandleC.h


Import::FileListC Class Reference

File list class. More...

#include <FileListC.h>

Inheritance diagram for Import::FileListC:

Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual Edit::DataBlockI* create ()
  • virtual Edit::DataBlockI* create ( Edit::EditableI* pOriginal )
  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pEditable )
  • virtual FileHandleC* add_file ( ImportableI* pImportable )
  • virtual PajaTypes::uint32 get_file_count ()
  • virtual void reload_file ( PajaTypes::uint32 ui32Index, ImportInterfaceC* pIface )
  • virtual void replace_file ( PajaTypes::uint32 ui32Index, const char* szName, ImportInterfaceC* pIface )
  • virtual FileHandleC* get_file ( PajaTypes::uint32 ui32Index )
  • virtual FileHandleC* get_file ( const char* szName )
  • virtual void del_file ( PajaTypes::uint32 ui32Index )
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Static Public Methods

  • FileListC* create_new ()

Protected Methods

  • FileListC ()
  • FileListC ( Edit::EditableI* pOriginal )
  • virtual ~FileListC ()

Detailed Description

File list class.

File list class manages the imported files. It checks for duplicates enables to load, reload, replace, and delete importable files. Changes made to file list are also undoable. This class is used internally.

This class is implemented by the system.

Constructor & Destructor Documentation

FileListC ( ) [protected]

Default constructor.

FileListC ( Edit::EditableI * pOriginal ) [protected]

Default constructor with reference to the original.

~FileListC ( ) [protected, virtual]

Default destructor.

Member Function Documentation

FileHandleC * add_file ( ImportableI * pImportable ) [virtual]

Loads a file and adds it to the list.

void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( Edit::EditableI * pOriginal ) [virtual]

Creates new file list(used internally), see Edit::EditableI::create().

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( ) [virtual]

Create new file list.

Reimplemented from Edit::EditableI.

FileListC * create_new ( ) [static]

Create new file list.

void del_file ( PajaTypes::uint32 ui32Index ) [virtual]

Deletes the file at given index.

FileHandleC * get_file ( const char * szName ) [virtual]

Returns the file with given name.

FileHandleC * get_file ( PajaTypes::uint32 ui32Index ) [virtual]

Returns the file at given index.

PajaTypes::uint32 get_file_count ( ) [virtual]

Returns number of files in the list.

virtual PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Load editable from a Demopaja input stream.

Reimplemented from Edit::EditableI.

void reload_file ( | PajaTypes::uint32 ui32Index,
 | ImportInterfaceC * pIface ) [virtual]

Reloads a file already in the list.

This method will create a new instace of the same plugin class and attach it to the file handle. The old instance is not used. The caller of this method is responsible to update every parameter which has the filehandle of this importable points. The Demopaja GUI does that every time the reload is requested.

void replace_file ( | PajaTypes::uint32 ui32Index,
 | const char * szName,
 | ImportInterfaceC * pIface ) [virtual]

Replaces a file inthe list with another file .

This method will create a new instace of the same plugin class and attach it to the file handle. The old instance is not used. The caller of this method is responsible to update every parameter which has the filehandle of this importable points. The Demopaja GUI does that every time the replace is requested.

void restore ( Edit::EditableI * pEditable ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Edit::EditableI.

virtual PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Save editable to a Demopaja output stream.

Reimplemented from Edit::EditableI.

The documentation for this class was generated from the following file:
  • FileListC.h


Composition::GizmoI Class Reference

Gizmo interface. More...

#include <GizmoI.h>

Inheritance diagram for Composition::GizmoI:

Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pEditable )
  • virtual const char* get_name () const
  • virtual void set_name ( const char* szName )
  • virtual PajaTypes::int32 get_parameter_count () = 0
  • virtual ParamI* get_parameter ( PajaTypes::int32 i32Index ) = 0
  • virtual void update_notify ( PajaTypes::uint32 ui32Id, PajaTypes::int32 i32Time )
  • virtual PajaTypes::uint32 get_id ()
  • virtual void set_id ( PajaTypes::uint32 ui32Id )
  • virtual void set_flags ( PajaTypes::int32 i32Flags )
  • virtual void add_flags ( PajaTypes::int32 i32Flags )
  • virtual void del_flags ( PajaTypes::int32 i32Flags )
  • virtual void toggle_flags ( PajaTypes::int32 i32Flags )
  • virtual PajaTypes::int32 get_flags ()
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Protected Methods

  • GizmoI ()
  • GizmoI ( EffectI* pParent, PajaTypes::uint32 ui32Id )
  • GizmoI ( Edit::EditableI* pOriginal )
  • virtual ~GizmoI ()

Detailed Description

Gizmo interface.

Gizmo holds a set of parameters, which should form a logical group of information, such as geometric transformation of the effect. Gizmo interface also contains logic to respond the change of a parameter. This respond can be for example to get information from thru a file parameter and pass it to other parameters.

The developer of the plugin is responsible to write a gizmo class for each different gizmo that is used by the plugin. If only simple gizmo is needed, use Composition::AutoGizmoC class instead.

To create a new instace of the gizmo class a static member should be created, which takes care of the instantiating. The member could look like this:

An ID is attached to each gizmo. When a parameter is changed on a gizmo, the parameter send a notify to the gizmo via the update_notify() method, the update notify is relayed to the effect via effects update_notify method. When handling a notify message each parameter and gizmo can be identified from the ID.

        TestGizmoC*
        TestGizmoC::create_new( EffectI* pParent, uint32 ui32Id )
        {
            return new TestGizmoC( pParent, ui32Id );
        }

Constructor & Destructor Documentation

GizmoI ( ) [protected]

Default constructor.

GizmoI ( | EffectI * pParent,
 | PajaTypes::uint32 ui32Id ) [protected]

Constructor.

Parameters:
pParent | pointer to the effect which is holds this gizmo.
ui32Id | ID of the gizmo, this ID is passed to the update_notify() method.

GizmoI ( Edit::EditableI * pOriginal ) [protected]

Constructor with reference to the original.

~GizmoI ( ) [protected, virtual]

Default destructor.

Member Function Documentation

void add_flags ( PajaTypes::int32 i32Flags ) [virtual]

Sets only specified flags.

Implemented by the GizmoI class.

void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

When overriding this method the base class member should be called first.

Example:

            void
            TestGizmoC::copy( DataBlockI* pBlock )
            {
                GizmoI::copy( pBlock );
                TestGizmoC* pGizmo = (TestGizmoC*)pBlock;
                m_pParamPos->copy( pGizmo->m_pParamPos );
                m_pParamSize->copy( pGizmo->m_pParamSize );
                m_pParamFile->copy( pGizmo->m_pParamFile );
                m_pParamCamera->copy( pGizmo->m_pParamCamera );
            }

Reimplemented from Edit::EditableI.

void del_flags ( PajaTypes::int32 i32Flags ) [virtual]

Removes only specified flags.

Implemented by the GizmoI class.

PajaTypes::int32 get_flags ( ) [virtual]

Returns gizmo flags.

Implemented by the GizmoI class.

PajaTypes::uint32 get_id ( ) [virtual]

Returns the ID of the gizmo.

Implemented by the GizmoI class.

const char * get_name ( ) const [virtual]

Returns the name of the gizmo as NULL terminated string.

Implemented by the GizmoI class.

ParamI * get_parameter ( PajaTypes::int32 i32Index ) [pure virtual]

Returns parameter at specified index.

PajaTypes::int32 get_parameter_count ( ) [pure virtual]

Returns number of parameters in the gizmo.

PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Serialize the gizmo from a Demopaja input stream.

The base class implementation of this method has to be called in the overridden method.

Example:

            uint32
            TestGizmoC::load( LoadC* pLoad )
            {
                uint32  ui32Error = IO_OK;
                while( (ui32Error = pLoad->open_chunk()) == IO_OK ) {
                    switch( pLoad->get_chunk_id() ) {
                    case CHUNK_TESTGIZMO_GIZMOI:
                        if( pLoad->get_chunk_version() == TESTGIZMO_VERSION )
                            ui32Error = GizmoI::load( pLoad );
                        break;
                    default:
                        assert( 0 );
                    }
                    pLoad->close_chunk();
                    if( ui32Error != IO_OK && ui32Error != IO_END )
                        return ui32Error;
                }
                return ui32Error;
            }

Reimplemented from Edit::EditableI.

void restore ( Edit::EditableI * pEditable ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

When overriding this method the base class member should be called first.

Example:

            void
            TestGizmoC::restore( EditableI* pEditable )
            {
                GizmoI::restore( pEditable );
                TestGizmoC* pGizmo = (TestGizmoC*)pEditable;
                m_pParamPos = pGizmo->m_pParamPos;
                m_pParamSize = pGizmo->m_pParamSize;
                m_pParamFile = pGizmo->m_pParamFile;
                m_pParamCamera = pGizmo->m_pParamCamera;
            }

Reimplemented from Edit::EditableI.

PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Serialize the gizmo to a Demopaja output stream.

The base class implementation of this method has to be called in the overridden method.

Example:

            uint32
            TestGizmoC::save( SaveC* pSave )
            {
                uint32  ui32Error = IO_OK;
                // GizmoI stuff
                pSave->begin_chunk( CHUNK_TESTGIZMO_GIZMOI, TESTGIZMO_VERSION );
                    ui32Error = GizmoI::save( pSave );
                pSave->end_chunk();
                return ui32Error;
            }

Reimplemented from Edit::EditableI.

void set_flags ( PajaTypes::int32 i32Flags ) [virtual]

Sets the gizmo flags.

Be careful to use this method. There are some flags, which have to be in place to make the gizmo work correctly. Use add, del or toggle flags methods instead. Implemented by the GizmoI class.

void set_id ( PajaTypes::uint32 ui32Id ) [virtual]

Sets the ID of the gizmo.

Implemented by the GizmoI class.

void set_name ( const char * szName ) [virtual]

Sets the name of the gizmo.

Implemented by the GizmoI class.

void toggle_flags ( PajaTypes::int32 i32Flags ) [virtual]

Toggles only specified flags.

Implemented by the GizmoI class.

void update_notify ( | PajaTypes::uint32 ui32Id,
 | PajaTypes::int32 i32Time ) [virtual]

This method is called when a parameter is changed.

The default implementation relays the message to the parent effect. The base class method should be called as shown in the example.

Example:

            void
            TestGizmoC::update_notify( uint32 ui32Id, int32 i32Time )
            {
                if( ui32Id == ID_TEST_PARAMFILE ) {
                    // The file has changed
                    // Get undo object from the changed parameter.
                    UndoC*          pUndo = m_pParamFile->get_undo();
                    FileHandleC*    pHandle = 0;
                    MASImportC*     pImp = 0;
                    // Get importable.
                    pHandle = m_pParamFile->get_file();
                    if( pHandle )
                        pImp = (MASImportC*)pHandle->get_importable();
                    if( pImp ) {
                        // Update labels
                        // Begin undo block.
                        UndoC*  pOldUndo = m_pParamCamera->begin_editing( pUndo );
                        // Set labels in camera parameter to the names of the cameras in the file.
                        m_pParamCamera->clear_labels();     // m_pParamCamera is integer parameter
                        for( uint32 i = 0; i < pImp->get_camera_count(); i++ ) {
                            CameraC*    pCam = pImp->get_camera( i );
                            if( !pCam ) continue;
                            m_pParamCamera->add_label( i, pCam->get_name() );
                        }
                        m_pParamCamera->set_min_max( 0, pImp->get_camera_count() );
                        // Close undo block.
                        m_pParamCamera->end_editing( pOldUndo );
                    }
                }
                // Relay the message to the effect
                GizmoI::update_notify( ui32Id, i32Time );
            }

The documentation for this class was generated from the following file:
  • GizmoI.h


Import::ImportableI Class Reference

Importable file interface. More...

#include <ImportableI.h>

Inheritance diagram for Import::ImportableI:

Edit::EditableI Edit::DataBlockI Import::ImportableImageI List of all members.

Public Methods

  • virtual const char* get_filename () = 0
  • virtual bool load_file ( const char* szName, ImportInterfaceC* pInterface ) = 0
  • virtual PajaTypes::uint32 get_reference_file_count ()
  • virtual FileHandleC* get_reference_file ( PajaTypes::uint32 ui32Index )
  • virtual PluginClass::SuperClassIdC get_super_class_id () = 0
  • virtual PluginClass::ClassIdC get_class_id () = 0
  • virtual const char* get_class_name () = 0
  • virtual const char* get_info () = 0
  • virtual PajaTypes::int32 get_duration ( PajaSystem::TimeContextC* pTimeContext ) = 0
  • virtual PajaTypes::float32 get_start_label ( PajaSystem::TimeContextC* pTimeContext ) = 0
  • virtual PajaTypes::float32 get_end_label ( PajaSystem::TimeContextC* pTimeContext ) = 0
  • virtual PluginClass::ClassIdC get_default_effect () = 0

Protected Methods

  • ImportableI ()
  • ImportableI ( Edit::EditableI* pOriginal )
  • virtual ~ImportableI ()

Detailed Description

Importable file interface.

Importable files are key elements in the Demopaja system. Importers imports and holds the external data in the system, and effects are used to display it. This allows data sharing between the effects. All the importers are derived from this base class.

Note: Classes derived from ImportableI which loads the data from a file does not have to implement the copy() method. It can be simple left empty. This may change in future, if importables can create the data be procedurally.

Constructor & Destructor Documentation

ImportableI ( ) [protected]

Default constructor.

ImportableI ( Edit::EditableI * pOriginal ) [protected]

Constructor with reference to the original.

~ImportableI ( ) [protected, virtual]

Default destructor.

Member Function Documentation

PluginClass::ClassIdC get_class_id ( ) [pure virtual]

Returns unique class ID of the importer.

const char * get_class_name ( ) [pure virtual]

Returns importer's class name as NULL terminated string.

PluginClass::ClassIdC get_default_effect ( ) [pure virtual]

Returns the default effect class ID this importable creates if dropped to a File List (or to the Layout View).

PajaTypes::int32 get_duration ( PajaSystem::TimeContextC * pTimeContext ) [pure virtual]

Returns duration of the file in given time context.

If the duration cannot be determined (for example the data is a still image) negative value should be returned.

Example:

            int32
            MASImportC::get_duration( TimeContextC* pTimeContext )
            {
                int32   i32Length = m_i32LastFrame - m_i32FirstFrame;
                // Convert the FPS timecode to Demopaja timecode.
                return pTimeContext->convert_fps_to_time( i32Length, m_i32FPS );
            }

PajaTypes::float32 get_end_label ( PajaSystem::TimeContextC * pTimeContext ) [pure virtual]

Returns end label (a numerical value).

The value does not have to be related to the returned duration. The start label is shown in the duration bar in the timegraph. The Demopaja system will find nice values for the labels between the start and end label returned from the importable.

Example:

            float32
            MASImportC::get_end_label( TimeContextC* pTimeContext )
            {
                return m_i32LastFrame;
            }

const char * get_filename ( ) [pure virtual]

Returns the name of the file this importable refers to.

const char * get_info ( ) [pure virtual]

Return short info about the file.

The information can be for example width and height and bit depth, etc. This information is displayed in the File Inspector window.

FileHandleC * get_reference_file ( PajaTypes::uint32 ui32Index ) [virtual]

Returns file reference at speficied index.

The default implementation returns zero.

PajaTypes::uint32 get_reference_file_count ( ) [virtual]

Returns the number of referenced files.

If the importable has references to other files (such as textures in 3D meshes) this method returns number of file references.

File loading is implemented in the ImportInterfaceC which is passed to the load_file() method.

The default implementation returns zero.

PajaTypes::float32 get_start_label ( PajaSystem::TimeContextC * pTimeContext ) [pure virtual]

Returns start label (a numerical value).

The value does not have to be related to the returned duration. The start label is shown in the duration bar in the timegraph. The Demopaja system will find nice values for the labels between the start and end label returned from the importable.

Example:

            float32
            MASImportC::get_start_label( TimeContextC* pTimeContext )
            {
                return m_i32FirstFrame;
            }

PluginClass::SuperClassIdC get_super_class_id ( ) [pure virtual]

Returns super class ID of the importer.

Reimplemented in Import::ImportableImageI.

bool load_file ( | const char * szName,
 | ImportInterfaceC * pInterface ) [pure virtual]

Loads the file specified in by the argument.

The documentation for this class was generated from the following file:
  • ImportableI.h


Import::ImportableImageI Class Reference

Importable image interface. More...

#include <ImportableImageI.h>

Inheritance diagram for Import::ImportableImageI:

Import::ImportableI Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual PluginClass::SuperClassIdC get_super_class_id ()
  • virtual PajaTypes::int32 get_width () = 0
  • virtual PajaTypes::int32 get_height () = 0
  • virtual PajaTypes::int32 get_pitch () = 0
  • virtual PajaTypes::int32 get_bpp () = 0
  • virtual PajaTypes::uint8* get_data () = 0
  • virtual void bind_texture ( PajaSystem::DeviceInterfaceI* pInterface, PajaTypes::uint32 ui32Properties ) = 0

Protected Methods

  • ImportableImageI ()
  • ImportableImageI ( Edit::EditableI* pOriginal )
  • virtual ~ImportableImageI ()

Detailed Description

Importable image interface.

This interface, derived from ImportableI, implements super class for image importers. There are set of methods which enables to get the information of the image and to bind it (set as active image) on specified device.

Constructor & Destructor Documentation

ImportableImageI ( ) [protected]

Default constructor.

ImportableImageI ( Edit::EditableI * pOriginal ) [protected]

Constructor with reference to the original.

~ImportableImageI ( ) [protected, virtual]

Default destructor.

Member Function Documentation

void bind_texture ( | PajaSystem::DeviceInterfaceI * pInterface,
 | PajaTypes::uint32 ui32Properties ) [pure virtual]

Binds texture to the given device.

PajaTypes::int32 get_bpp ( ) [pure virtual]

Return bits per pixel.

PajaTypes::uint8 * get_data ( ) [pure virtual]

Returns pointer to the imagedata.

PajaTypes::int32 get_height ( ) [pure virtual]

Returns height of the image in pixels.

PajaTypes::int32 get_pitch ( ) [pure virtual]

Returns pitch of the image, pitch is the actual length of scanline in pixels.

PluginClass::SuperClassIdC get_super_class_id ( ) [virtual]

Returns the super class ID.

Reimplemented from Import::ImportableI.

PajaTypes::int32 get_width ( ) [pure virtual]

Returns width of the image in pixels.

The documentation for this class was generated from the following file:
  • ImportableImageI.h


Import::ImportInterfaceC Class Reference

Import interface class. More...

#include <ImportInterfaceC.h>

List of all members.

Public Methods

  • ImportInterfaceC ( FileListC* pFileList, PluginClass::FactoryC* pFactory )
  • virtual ~ImportInterfaceC ()
  • virtual FileHandleC* request_import ( const char* szName, PluginClass::SuperClassIdC rSuperFilter, const PluginClass::ClassIdC rClassFilter )

Detailed Description

Import interface class.

Import interface class is a tool class for importers. It's purpose is to enable the importer to import other files inside a importer.

This class is implemented by the system.

Constructor & Destructor Documentation

ImportInterfaceC ( | FileListC * pFileList,
 | PluginClass::FactoryC * pFactory )

Default constructor (used internally).

~ImportInterfaceC ( ) [virtual]

Default destructor (used internally).

Member Function Documentation

FileHandleC * request_import ( | const char * szName,
 | PluginClass::SuperClassIdC rSuperFilter,
 | const PluginClass::ClassIdC rClassFilter ) [virtual]

Imports requested file.

Request a import for a specified file. File importer filters can be used range the number of possible importers which could match the file extension.

For example if it is known that the file must be image, SUPERCLASS_IMAGE could be passed as the rSuperFilter argument.

If a filter (class Id of super class ID) isn't used NULL_CLASSID or NULL_SUPERCLASS should be passed as argument.

Example:

            // Request import for a image.
            FileHandleC*    pHandle = m_pImpInterface->request_import( szFileName, SUPERCLASS_IMAGE, NULL_CLASSID );

The documentation for this class was generated from the following file:
  • ImportInterfaceC.h


Composition::KeyC Class Reference

Keyframe class for controller. More...

#include <KeyC.h>

Inheritance diagram for Composition::KeyC:

Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual Edit::DataBlockI* create ()
  • virtual Edit::DataBlockI* create ( Edit::EditableI* pOriginal )
  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pEditable )
  • virtual PajaTypes::int32 get_time ()
  • virtual void set_time ( PajaTypes::int32 i32Time )
  • virtual void set_flags ( PajaTypes::int32 i32Flags )
  • virtual void add_flags ( PajaTypes::int32 i32Flags )
  • virtual void del_flags ( PajaTypes::int32 i32Flags )
  • virtual void toggle_flags ( PajaTypes::int32 i32Flags )
  • virtual PajaTypes::int32 get_flags ()
  • virtual PajaTypes::float32 get_ease_in ()
  • virtual PajaTypes::float32 get_ease_out ()
  • virtual PajaTypes::float32 get_tens ()
  • virtual PajaTypes::float32 get_cont ()
  • virtual PajaTypes::float32 get_bias ()
  • virtual void set_ease_in ( PajaTypes::float32 )
  • virtual void set_ease_out ( PajaTypes::float32 )
  • virtual void set_tens ( PajaTypes::float32 )
  • virtual void set_cont ( PajaTypes::float32 )
  • virtual void set_bias ( PajaTypes::float32 )
  • virtual void get_value ( PajaTypes::float32* pValues )
  • virtual void set_value ( const PajaTypes::float32* pValues )
  • virtual void get_in_tan ( PajaTypes::float32* pValues )
  • virtual void set_in_tan ( const PajaTypes::float32* pValues )
  • virtual void get_out_tan ( PajaTypes::float32* pValues )
  • virtual void set_out_tan ( const PajaTypes::float32* pValues )
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Static Public Methods

  • KeyC* create_new ()
  • KeyC* create_new ( PajaTypes::int32 i32NumChannels )

Protected Methods

  • KeyC ()
  • KeyC ( PajaTypes::int32 i32Time )
  • KeyC ( Edit::EditableI* pOriginal )
  • virtual ~KeyC ()

Detailed Description

Keyframe class for controller.

Key class defines the keys used in controllers. One key can have maximum of KEY_MAXCHANNELS channels. Currently the maximum number of channels is 4. All the channels in the key are floating point values.

This class is implemented by the system.

Constructor & Destructor Documentation

KeyC ( ) [protected]

Default constructor.

KeyC ( PajaTypes::int32 i32Time ) [protected]

Creates new key and assign it the specified time.

KeyC ( Edit::EditableI * pOriginal ) [protected]

Constructor with reference to the original.

~KeyC ( ) [protected, virtual]

Default destructor.

Member Function Documentation

void add_flags ( PajaTypes::int32 i32Flags ) [virtual]

Sets only specified flags.

void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( Edit::EditableI * pOriginal ) [virtual]

Creates new file handle (used internally), see Edit::EditableI::create().

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( ) [virtual]

Create new key with zero no channels.

Reimplemented from Edit::EditableI.

KeyC * create_new ( PajaTypes::int32 i32NumChannels ) [static]

Create new key with specified number fo channels.

KeyC * create_new ( ) [static]

Create new key with zero no channels.

void del_flags ( PajaTypes::int32 i32Flags ) [virtual]

Removes only specified flags.

PajaTypes::float32 get_bias ( ) [virtual]

Returns bias value.

PajaTypes::float32 get_cont ( ) [virtual]

Returns continuity value.

PajaTypes::float32 get_ease_in ( ) [virtual]

Returns ease in value.

PajaTypes::float32 get_ease_out ( ) [virtual]

Returns ease out value.

PajaTypes::int32 get_flags ( ) [virtual]

Returns key flags.

void get_in_tan ( PajaTypes::float32 * pValues ) [virtual]

Returns the value of in-coming tangent.

See also:
get_value.

void get_out_tan ( PajaTypes::float32 * pValues ) [virtual]

Returns the value of out-going tangent.

See also:
get_value.

PajaTypes::float32 get_tens ( ) [virtual]

Returns tension value.

PajaTypes::int32 get_time ( ) [virtual]

Returns the time of the key.

void get_value ( PajaTypes::float32 * pValues ) [virtual]

Returns the value of the key.

If the number of channels of the key isn't absolutely know the following method should be used to retrieve the value:

            float32 f32Values[KEY_MAXCHANNELS];
            pKey->get_value( f32Values );

PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Serialize the key from a Demopaja input stream.

Reimplemented from Edit::EditableI.

void restore ( Edit::EditableI * pEditable ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Edit::EditableI.

PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Serialize the key to a Demopaja output stream.

Reimplemented from Edit::EditableI.

void set_bias ( PajaTypes::float32 ) [virtual]

Sets bias value.

void set_cont ( PajaTypes::float32 ) [virtual]

Sets continuity value.

void set_ease_in ( PajaTypes::float32 ) [virtual]

Sets ease in value.

void set_ease_out ( PajaTypes::float32 ) [virtual]

Sets ease out value.

void set_flags ( PajaTypes::int32 i32Flags ) [virtual]

Sets the effect flags.

Be careful to use this method. There are some flags, which have to be in place to make the key work correctly. Use add, del or toggle flags methods instead.

void set_in_tan ( const PajaTypes::float32 * pValues ) [virtual]

Sets in-coming tangent.

See also:
set_value.

void set_out_tan ( const PajaTypes::float32 * pValues ) [virtual]

Sets out-going tangent.

See also:
set_value.

void set_tens ( PajaTypes::float32 ) [virtual]

Sets tension value.

void set_time ( PajaTypes::int32 i32Time ) [virtual]

Sets the time of the key.

void set_value ( const PajaTypes::float32 * pValues ) [virtual]

Sets the value of the key.

If the number of channels of the key isn't absolutely know the following method should be used to set the value:

            float32 f32Values[KEY_MAXCHANNELS];
            // Set values
            f32Values[0] = 10.0f;
            pKey->set_value( f32Values );

void toggle_flags ( PajaTypes::int32 i32Flags ) [virtual]

Toggles only specified flags.

The documentation for this class was generated from the following file:
  • KeyC.h


Composition::LayerC Class Reference

Composition Layer class. More...

#include <LayerC.h>

Inheritance diagram for Composition::LayerC:

Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual Edit::DataBlockI* create ()
  • virtual Edit::DataBlockI* create ( Edit::EditableI* pOriginal )
  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pBlock )
  • void set_name ( const char* szName )
  • const char* get_name () const
  • PajaTypes::int32 get_effect_count ()
  • EffectI* get_effect ( PajaTypes::int32 i32Index )
  • PajaTypes::int32 add_effect ( EffectI* pEffect )
  • void del_effect ( PajaTypes::int32 i32Index )
  • EffectI* remove_effect ( PajaTypes::int32 i32Index )
  • void insert_effect ( PajaTypes::int32 i32IndexBefore, EffectI* pEffect )
  • void set_flags ( PajaTypes::int32 i32Flags )
  • void add_flags ( PajaTypes::int32 i32Flags )
  • void del_flags ( PajaTypes::int32 i32Flags )
  • void toggle_flags ( PajaTypes::int32 i32Flags )
  • PajaTypes::int32 get_flags ()
  • TimeSegmentC* get_timesegment ()
  • PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Static Public Methods

  • LayerC* create_new ()

Protected Methods

  • LayerC ()
  • LayerC ( Edit::EditableI* pOriginal )
  • virtual ~LayerC ()

Detailed Description

Composition Layer class.

Layer class is used to group effects and to control their visibility. The layer class used by the Demopaja system and is only exposed to the export plugins. The changes to the layer are stored to a undo object if present.

This class is implemented by the system.

Constructor & Destructor Documentation

LayerC ( ) [protected]

Default constructor.

LayerC ( Edit::EditableI * pOriginal ) [protected]

Constructor with reference to the original.

~LayerC ( ) [protected, virtual]

Default destructor.

Member Function Documentation

PajaTypes::int32 add_effect ( EffectI * pEffect )

Adds new effect to the layer.

void add_flags ( PajaTypes::int32 i32Flags )

Sets only specified flags.

void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( Edit::EditableI * pOriginal ) [virtual]

Creates new layer (used internally), see Edit::EditableI::create().

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( ) [virtual]

Creates new layer (used internally), see Edit::EditableI::create().

Reimplemented from Edit::EditableI.

LayerC * create_new ( ) [static]

Creates new layer.

void del_effect ( PajaTypes::int32 i32Index )

Removes and deletes a effect at specified index from the layer.

void del_flags ( PajaTypes::int32 i32Flags )

Removes only specified flags.

EffectI * get_effect ( PajaTypes::int32 i32Index )

Returns effect at specified index.

PajaTypes::int32 get_effect_count ( )

Return number of effects inside the layer.

PajaTypes::int32 get_flags ( )

Returns key flags.

const char * get_name ( ) const

Return the name of the layer.

TimeSegmentC * get_timesegment ( )

Returns the timesegment of the layer.

void insert_effect ( | PajaTypes::int32 i32IndexBefore,
 | EffectI * pEffect )

Adds a effect to list, the change is not stored to the present undo object.

PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Serialize the layer from a Demopaja input stream.

Reimplemented from Edit::EditableI.

EffectI * remove_effect ( PajaTypes::int32 i32Index )

Removes a effect at specified index from list.

This method removes the effect from the list inside the layer, and retuns the effect. The effect is not deleted.

See also:
del_effect

void restore ( Edit::EditableI * pBlock ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Edit::EditableI.

PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Serialize the layer to a Demopaja output stream.

Reimplemented from Edit::EditableI.

void set_flags ( PajaTypes::int32 i32Flags )

Sets the effect flags.

Be careful to use this method. There are some flags, which have to be in place to make the layer work correctly. Use add, del or toggle flags methods instead.

void set_name ( const char * szName )

Sets the name of the layer\. The name is NULL terminated string.

void toggle_flags ( PajaTypes::int32 i32Flags )

Toggles only specified flags.

The documentation for this class was generated from the following file:
  • LayerC.h


FileIO::LoadC Class Reference

Demopaja input stream. More...

#include <LoadC.h>

List of all members.

Public Methods

  • LoadC ( PluginClass::FactoryC* pFactory )
  • virtual ~LoadC ()
  • virtual PajaTypes::uint32 open ( const char* szName, const PajaTypes::int8* pSignature, PajaTypes::int32 i32SignatureSize )
  • virtual PajaTypes::uint32 close ()
  • virtual PajaTypes::uint32 open_chunk ()
  • virtual PajaTypes::uint32 get_chunk_id ()
  • virtual PajaTypes::uint32 get_chunk_version ()
  • virtual PajaTypes::uint32 get_chunk_size ()
  • virtual PajaTypes::uint32 get_chunk_indent ()
  • virtual PajaTypes::uint32 peek_next_chunk ()
  • virtual PajaTypes::uint32 close_chunk ()
  • virtual PajaTypes::uint32 read ( void* pBuffer, PajaTypes::uint32 ui32Size )
  • virtual PajaTypes::uint32 read_str ( char* szStr )
  • virtual PajaTypes::uint32 get_error ()
  • virtual void add_file_handle_patch ( void** pPointer, PajaTypes::uint32 ui32HandleId )
  • virtual PajaTypes::uint32 get_file_handle_patch_count ()
  • virtual void** get_file_handle_patch_pointer ( PajaTypes::uint32 ui32Index )
  • virtual PajaTypes::uint32 get_file_handle_patch_id ( PajaTypes::uint32 ui32Index )
  • virtual PluginClass::FactoryC* get_factory () const
  • virtual PajaTypes::uint32 get_error_message_count ()
  • virtual const char* get_error_message ( PajaTypes::uint32 ui32Index )
  • virtual void add_error_message ( const char* szMessage )

Detailed Description

Demopaja input stream.

LoadC is used to load the information in Demopaja from a chunk based file format. The data in the output stream is serialized in chunk based format. The read phase consist of opening a chunk, determining the chunk and the version of the chunk, and then reading the data aout of the chunk.

The close_chunk() method skips from the opened chunk to the next chunk even if the whole chunk wasn't read.

This class is implemented by the system.

Example of load() method on effect class:

        uint32
        TestEffectC::load( LoadC* pLoad )
        {
            uint32  ui32Error = IO_OK;

            // Open new chunk for read.
            while( (ui32Error = pLoad->open_chunk()) == IO_OK ) {

                // Determine which chunk to read.
                switch( pLoad->get_chunk_id() ) {
                case CHUNK_TESTEFFECT_BASE:
                    if( pLoad->get_chunk_version() == TESTEFFECT_VERSION )
                        ui32Error = EffectI::load( pLoad );
                    break;
                case CHUNK_TESTEFFECT_TRANSGIZMO:
                    if( pLoad->get_chunk_version() == TESTEFFECT_VERSION )
                        ui32Error = m_pTransGizmo->load( pLoad );
                    break;
                case CHUNK_TESTEFFECT_ATTRIBGIZMO:
                    if( pLoad->get_chunk_version() == TESTEFFECT_VERSION )
                        ui32Error = m_pAttribGizmo->load( pLoad );
                    break;
                default:
                    // Report illegal chunks.
                    assert( 0 );
                }

                // Goto next chunk
                pLoad->close_chunk();

                // Check for errors
                if( ui32Error != IO_OK && ui32Error != IO_END )
                    return ui32Error;
            }

            return ui32Error;
        }

See also:
SaveC

Constructor & Destructor Documentation

LoadC ( PluginClass::FactoryC * pFactory )

Default constructor.

~LoadC ( ) [virtual]

Default destructor.

Member Function Documentation

void add_error_message ( const char * szMessage ) [virtual]

Adds new error message.

On load the plugin class can report errors via this method. Adding a error message does not stop reading the file. The errors are reported after the file load is completed.

void add_file_handle_patch ( | void ** pPointer,
 | PajaTypes::uint32 ui32HandleId ) [virtual]

Adds file handle patch.

Parameters:
pPointer pointer of the file handle pointer.
ui32HandleId The ID returned by Import::FileHandleC::get_id().

Via this method a file handle pointer can be set to patched when the data is available. The file handle is patched before the initialize method of effect class is called. Therefore file handle parameters cannot be copied sooner than in the initialize method of the effect class.

Since the file referencing is done via file parameter, the system takes care of all the file handle patching in effect classes. Importer classes have to use this file handle patching mechanism.

Example of writing file handle:

            Import::FileHandleC*    m_pTextureHandle;
            uint32  ui32ID;
            // Write texture handle.
            if( m_pTextureHandle )
                ui32ID = m_pTextureHandle->get_id();
            else
                ui32ID = 0xffffffff;    // NULL ID.
            ui32Error = pSave->write( &ui32ID, sizeof( ui32ID ) );

Example of reading file handle saved in previous example:

            Import::FileHandleC*    m_pTextureHandle;
            uint32  ui32ID = 0xffffffff;
            // Read texture handle.
            ui32Error = pLoad->read( &ui32ID, sizeof( ui32ID) );
            if( ui32ID != 0xffffffff )
                pLoad->add_file_handle_patch( (void**)&m_pTextureHandle, ui32ID );

PajaTypes::uint32 close ( ) [virtual]

Closes the input stream.

PajaTypes::uint32 close_chunk ( ) [virtual]

Closes a chunk and goes to the next chunk in the indentation level.

close_chunk uses peek_next_chunk to go to the next chunk.

PajaTypes::uint32 get_chunk_id ( ) [virtual]

Returns the ID if the currently open chunk, this value is used to determine different chunks.

PajaTypes::uint32 get_chunk_indent ( ) [virtual]

Returns the indentation level of the currently open chunk.

PajaTypes::uint32 get_chunk_size ( ) [virtual]

Returns the size of the currently open chunk.

PajaTypes::uint32 get_chunk_version ( ) [virtual]

Returns the Version of the currently open chunk.

PajaTypes::uint32 get_error ( ) [virtual]

Returns current error.

const char * get_error_message ( PajaTypes::uint32 ui32Index ) [virtual]

Returns error message at given index (used internally).

PajaTypes::uint32 get_error_message_count ( ) [virtual]

Returns number of error messages (used internally).

PluginClass::FactoryC * get_factory ( ) const [virtual]

Returns factory class attached to the LoadC.

PajaTypes::uint32 get_file_handle_patch_count ( ) [virtual]

Returns number of file handle patched (used internally).

PajaTypes::uint32 get_file_handle_patch_id ( PajaTypes::uint32 ui32Index ) [virtual]

Returns ID of the pointer to patch (used internally).

void ** get_file_handle_patch_pointer ( PajaTypes::uint32 ui32Index ) [virtual]

Returns pointer to patch (used internally).

PajaTypes::uint32 open ( | const char * szName,
 | const PajaTypes::int8 * pSignature,
 | PajaTypes::int32 i32SignatureSize ) [virtual]

Opens input stream.

See FileIOErrorsE for more information on the error codes. If the signature of the opened file doe not match the given signature the error IO_ERROR_FORMAT is returned.

Parameters:
szName | NULL terminated name of the input file.
pSignature | pointer to array of bytes describing the signature of the file.
length of the signature in bytes.

Returns:
IO_OK if everything went ok, error otherwise.

PajaTypes::uint32 open_chunk ( ) [virtual]

Opens a chunk for read.

The open_chunk method returns IO_OK if opening succeed. Since the chunks can be hierarchial (that is, chunks stored inside chunks) IO_END is returned if the load() method should not continue to read the data.

PajaTypes::uint32 peek_next_chunk ( ) [virtual]

Goes to the next chunk in this indentation level.

PajaTypes::uint32 read ( | void * pBuffer,
 | PajaTypes::uint32 ui32Size ) [virtual]

Reads uiSize bytes to the specified buffer from the stream.

PajaTypes::uint32 read_str ( char * szStr ) [virtual]

Reads a string from the stream.

The documentation for this class was generated from the following file:
  • LoadC.h


PajaTypes::Matrix2C Class Reference

2x3 matrix class. More...

#include <Matrix2C.h>

List of all members.

Public Methods

  • Matrix2C ()
  • Matrix2C ( const Matrix2C& rMat )
  • Matrix2C ( const float32* pMat )
  • virtual ~Matrix2C ()
  • Matrix2C operator * ( const Matrix2C& rMat ) const
  • Matrix2C& operator *= ( const Matrix2C& rMat )
  • Vector2C& operator[] ( int32 i )
  • const Vector2C& operator[] ( int32 i ) const
  • Matrix2C operator- () const
  • Matrix2C& operator-= ( const Matrix2C& rMat )
  • Matrix2C& operator+= ( const Matrix2C& rMat )
  • Matrix2C operator- ( const Matrix2C& rMat ) const
  • Matrix2C operator+ ( const Matrix2C& rMat ) const
  • Matrix2C& set_identity ()
  • Matrix2C& set_trans ( const Vector2C& rVec )
  • Matrix2C& set_scale ( const Vector2C& rVec )
  • Matrix2C& set_rot ( float32 f32Angle )
  • Matrix2C pre_trans ( const Vector2C& rVec ) const
  • Matrix2C invert () const
  • Matrix2C transpose () const
  • Matrix2C ortho_norm () const

Friends

  • Vector2C operator * ( const Matrix2C& rMat, const Vector2C& rVec )
  • Vector2C operator * ( const Vector2C& rVec, const Matrix2C& rMat )
  • Vector2C& operator *= ( Vector2C& rVec, const Matrix2C& rMat )

Detailed Description

2x3 matrix class.

Matrix2C class defines a 2 by 3 matrix class which is used by the Demopaja system. The matrix class implements standard set of methods and overdriven operators for easy use.

This class is implemented by the system.

Constructor & Destructor Documentation

Matrix2C ( )

Default constructor.

Matrix2C ( const Matrix2C & rMat )

Copy constructor.

Matrix2C ( const float32 * pMat )

Contructor from array of floats.

Creates a new vector with the values as the array pointed by the argument. The array should contain 6 values, 2 for each row in the matrix. The rows in the array are arranged linearly.

~Matrix2C ( ) [virtual]

Default destructor.

Member Function Documentation

Matrix2C invert ( ) const

Inverts the matrix and returns the result.

Matrix2C operator * ( const Matrix2C & rMat ) const

Multiplies two matrices and returns the result.

Matrix2C & operator *= ( const Matrix2C & rMat )

Multiplies two matrices and stores the result.

Matrix2C operator+ ( const Matrix2C & rMat ) const

Adds two matrices and returns the result.

Matrix2C & operator+= ( const Matrix2C & rMat )

Adds two matrices and stores the result in the matrix.

Matrix2C operator- ( const Matrix2C & rMat ) const

Substracts two matrices and returns the result.

Matrix2C operator- ( ) const

Negates the matrix and returns the result.

Matrix2C & operator-= ( const Matrix2C & rMat )

Subtracts two matrices and stores the result in the matrix.

const Vector2C & operator[] ( int32 i ) const [inline]

Returns reference to the vector at a row pointed by the index.

The index values from 0 to 2 corresponds to the rows in the matrix. There are two versions of this method, this version is for retrieving the values.

Vector2C & operator[] ( int32 i ) [inline]

Returns reference to the vector at a row pointed by the index.

The index values from 0 to 2 corresponds to the rows in the matrix. There are two versions of this method, this version enables to assign values.

Matrix2C ortho_norm ( ) const

Ortho normalizes the matrix and returns the result.

Matrix2C pre_trans ( const Vector2C & rVec ) const

Pretranslates the matrix and returns the result.

Matrix2C & set_identity ( )

Sets the matrix as identity matrix.

Matrix2C & set_rot ( float32 f32Angle )

Sets the matrix to identity and then rotates the matrix to the value of the argument.

Matrix2C & set_scale ( const Vector2C & rVec )

Sets the matrix to identity and then scales the matrix to the value of the argument.

Matrix2C & set_trans ( const Vector2C & rVec )

Sets the matrix to identity and then translates the matrix to the value of the argument.

Matrix2C transpose ( ) const

Transposes the matrix and returns the result.

Friends And Related Function Documentation

Vector2C operator * ( | const Vector2C & rVec,
 | const Matrix2C & rMat ) [friend]

Multiplies the specified vector by the specified matrix and returns the result.

Vector2C operator * ( | const Matrix2C & rMat,
 | const Vector2C & rVec ) [friend]

Multiplies the specified vector by the specified matrix and returns the result.

Vector2C & operator *= ( | Vector2C & rVec,
 | const Matrix2C & rMat ) [friend]

Multiplies the specified vector by the specified matrix and stores the result to the vector.

The documentation for this class was generated from the following file:
  • Matrix2C.h


PajaTypes::Matrix3C Class Reference

3x4 matrix class. More...

#include <Matrix3C.h>

List of all members.

Public Methods

  • Matrix3C ()
  • Matrix3C ( const Matrix3C& rMat )
  • Matrix3C ( const float32* pMat )
  • virtual ~Matrix3C ()
  • Matrix3C operator- () const
  • Matrix3C& operator-= ( const Matrix3C& rMat )
  • Matrix3C& operator+= ( const Matrix3C& rMat )
  • Matrix3C operator- ( const Matrix3C& rMat ) const
  • Matrix3C operator+ ( const Matrix3C& rMat ) const
  • Matrix3C operator * ( const Matrix3C& rMat ) const
  • Matrix3C& operator *= ( const Matrix3C& rMat )
  • Vector3C& operator[] ( int32 i )
  • const Vector3C& operator[] ( int32 i ) const
  • Matrix3C& set_identity ()
  • Matrix3C& set_trans ( const Vector3C& v )
  • Matrix3C& set_scale ( const Vector3C& v )
  • Matrix3C& set_rot_x ( float32 f32Angle )
  • Matrix3C& set_rot_y ( float32 f32Angle )
  • Matrix3C& set_rot_z ( float32 f32Angle )
  • Matrix3C& set_rot_xyz ( float32 f32XAngle, float32 f32YAngle, float32 f32ZAngle )
  • Matrix3C& set_rot ( const QuatC& rQuat )
  • Matrix3C pre_trans ( const Vector3C& rVec ) const
  • Matrix3C inverse () const
  • Matrix3C transpose () const
  • Matrix3C ortho_norm () const

Friends

  • Vector3C operator * ( const Matrix3C& rMat, const Vector3C& rVec )
  • Vector3C operator * ( const Vector3C& rVec, const Matrix3C& rMat )
  • Vector3C& operator *= ( Vector3C& rVec, const Matrix3C& rMat )

Detailed Description

3x4 matrix class.

Matrix3C class defines a 3 by 4 matrix class which is used by the Demopaja system The matrix class implements standard set of methods and overdriven operators for easy use.

This class is implemented by the system.

Constructor & Destructor Documentation

Matrix3C ( )

Default constructor.

Matrix3C ( const Matrix3C & rMat )

Copy constructor.

Matrix3C ( const float32 * pMat )

Contructor from array of floats.

Creates a new vector with the values as the array pointed by the argument. The array should contain 12 values, 3 for each row in the matrix. The rows in the array are arranged linearly.

~Matrix3C ( ) [virtual]

Default destructor.

Member Function Documentation

Matrix3C inverse ( ) const

Inverts the matrix and returns the result.

Matrix3C operator * ( const Matrix3C & rMat ) const

Multiplies two matrices and returns the result.

Matrix3C & operator *= ( const Matrix3C & rMat )

Multiplies two matrices and stores the result in the matrix.

Matrix3C operator+ ( const Matrix3C & rMat ) const

Adds two matrices and returns the result.

Matrix3C & operator+= ( const Matrix3C & rMat )

Adds two matrices and stores the result in the matrix.

Matrix3C operator- ( const Matrix3C & rMat ) const

Substracts two matrices and returns the result.

Matrix3C operator- ( ) const

Negates the matrix and returns the result.

Matrix3C & operator-= ( const Matrix3C & rMat )

Subtracts two matrices and stores the result in the matrix.

const Vector3C & operator[] ( int32 i ) const [inline]

Returns reference to the vector at a row pointed by the index.

The index values from 0 to 2 corresponds to the rows in the matrix. There are two versions of this method this version is for retrieving the values.

Vector3C & operator[] ( int32 i ) [inline]

Returns reference to the vector at a row pointed by the index.

The index values from 0 to 2 corresponds to the rows in the matrix. There are two versions of this method, this version enables to assign values.

Matrix3C ortho_norm ( ) const

Ortho normalizes the matrix and returns the result.

Matrix3C pre_trans ( const Vector3C & rVec ) const

Pretranslates the matrix and returns the result.

Matrix3C & set_identity ( )

Sets the matrix as identity matrix.

Matrix3C & set_rot ( const QuatC & rQuat )

Converts quaternion to matrix and stores the result to the matrix.

Matrix3C & set_rot_x ( float32 f32Angle )

Sets the matrix to identity and then rotates the matrix around the X-axis to the value of the argument.

Matrix3C & set_rot_xyz ( | float32 f32XAngle,
 | float32 f32YAngle,
 | float32 f32ZAngle )

Sets the matrix to identity and then rotates the matrix to the values of the arguments in order XYZ.

Matrix3C & set_rot_y ( float32 f32Angle )

Sets the matrix to identity and then rotates the matrix around the Y-axis to the value of the argument.

Matrix3C & set_rot_z ( float32 f32Angle )

Sets the matrix to identity and then rotates the matrix around the Z-axis to the value of the argument.

Matrix3C & set_scale ( const Vector3C & v )

Sets the matrix to identity and then scales the matrix to the value of the argument.

Matrix3C & set_trans ( const Vector3C & v )

Sets the matrix to identity and then translates the matrix to the value of the argument.

Matrix3C transpose ( ) const

Transposes the matrix and returns the result.

Friends And Related Function Documentation

Vector3C operator * ( | const Vector3C & rVec,
 | const Matrix3C & rMat ) [friend]

Multiplies the specified vector by the specified matrix and returns the result.

Vector3C operator * ( | const Matrix3C & rMat,
 | const Vector3C & rVec ) [friend]

Multiplies the specified vector by the specified matrix and returns the result.

Vector3C & operator *= ( | Vector3C & rVec,
 | const Matrix3C & rMat ) [friend]

Multiplies the specified vector by the specified matrix and stores the result to the vector.

The documentation for this class was generated from the following file:
  • Matrix3C.h


PajaSystem::OpenGLInterfaceC Class Reference

Device interface for OpenGL. More...

#include <OpenGLInterfaceC.h>

Inheritance diagram for PajaSystem::OpenGLInterfaceC:

PajaSystem::DeviceInterfaceI List of all members.

Public Methods

  • OpenGLInterfaceC ( PajaTypes::int32 i32PosX, PajaTypes::int32 i32PosY, PajaTypes::int32 i32Width, PajaTypes::int32 i32Height, const PajaTypes::BBox2C& rViewport, const PajaTypes::BBox2C& rLayout )
  • OpenGLInterfaceC ()
  • virtual ~OpenGLInterfaceC ()
  • virtual PajaTypes::uint32 get_type () const
  • virtual void set_perspective ( const PajaTypes::BBox2C& rBBox, PajaTypes::float32 f32FOV, PajaTypes::float32 f32Aspect, PajaTypes::float32 f32ZNear, PajaTypes::float32 f32ZFar )
  • virtual void set_ortho ( const PajaTypes::BBox2C& rBBox, PajaTypes::float32 f32Left, PajaTypes::float32 f32Right, PajaTypes::float32 f32Top, PajaTypes::float32 f32Bottom, PajaTypes::float32 f32ZNear = -1, PajaTypes::float32 f32ZFar = 1 )
  • virtual PajaTypes::Vector2C client_to_layout ( const PajaTypes::Vector2C& rVec )
  • virtual PajaTypes::Vector2C layout_to_client ( const PajaTypes::Vector2C& rVec )
  • virtual PajaTypes::Vector2C delta_client_to_layout ( const PajaTypes::Vector2C& rVec )
  • virtual PajaTypes::Vector2C delta_layout_to_client ( const PajaTypes::Vector2C& rVec )
  • virtual const PajaTypes::BBox2C& get_viewport ()
  • virtual const PajaTypes::BBox2C& get_layout ()
  • virtual PajaTypes::int32 get_width ()
  • virtual PajaTypes::int32 get_height ()
  • virtual void set_dimension ( PajaTypes::int32 i32PosX, PajaTypes::int32 i32PosY, PajaTypes::int32 i32Width, PajaTypes::int32 i32Height )
  • virtual void set_viewport ( const PajaTypes::BBox2C& rViewport )
  • virtual void set_layout ( const PajaTypes::BBox2C& rLayout )

Detailed Description

Device interface for OpenGL.

The purpose of the device interface for OpenGL is to setup the area where an effect can draw and to convert coordinates from screen (pixel) coordinates to the layout.

Constructor & Destructor Documentation

OpenGLInterfaceC ( | PajaTypes::int32 i32PosX,
 | PajaTypes::int32 i32PosY,
 | PajaTypes::int32 i32Width,
 | PajaTypes::int32 i32Height,
 | const PajaTypes::BBox2C & rViewport,
 | const PajaTypes::BBox2C & rLayout )

Defautl constructor (used internally).

~OpenGLInterfaceC ( ) [virtual]

Default destructor.

Member Function Documentation

PajaTypes::Vector2C client_to_layout ( const PajaTypes::Vector2C & rVec ) [virtual]

Converts positions in screen pixels to the layout coordinate system.

PajaTypes::Vector2C delta_client_to_layout ( const PajaTypes::Vector2C & rVec ) [virtual]

Converts delta values of screen pixels to the layout coordinate system.

PajaTypes::Vector2C delta_layout_to_client ( const PajaTypes::Vector2C & rVec ) [virtual]

Converts delta values layout coordinate system uints to the screen pixels.

PajaTypes::int32 get_height ( ) [virtual]

Returns the height of the screen in pixels.

const PajaTypes::BBox2C & get_layout ( ) [virtual]

Returns the layout (rendering are of the demo).

PajaTypes::uint32 get_type ( ) const [virtual]

Returns the type of the interface (INTERFACE_OPENGL).

Reimplemented from PajaSystem::DeviceInterfaceI.

const PajaTypes::BBox2C & get_viewport ( ) [virtual]

Returns the viewport (visible are of the demo).

PajaTypes::int32 get_width ( ) [virtual]

Returns the width of the screen in pixels.

PajaTypes::Vector2C layout_to_client ( const PajaTypes::Vector2C & rVec ) [virtual]

Converts positions in layout coordinate system uints to the screen pixels.

void set_dimension ( | PajaTypes::int32 i32PosX,
 | PajaTypes::int32 i32PosY,
 | PajaTypes::int32 i32Width,
 | PajaTypes::int32 i32Height ) [virtual]

Sets the dimension of the OpenGL rendering are in pixels (used internally).

void set_layout ( const PajaTypes::BBox2C & rLayout ) [virtual]

Sets the layout (used internally).

void set_ortho ( | const PajaTypes::BBox2C & rBBox,
 | PajaTypes::float32 f32Left,
 | PajaTypes::float32 f32Right,
 | PajaTypes::float32 f32Top,
 | PajaTypes::float32 f32Bottom,
 | PajaTypes::float32 f32ZNear = -1,
 | PajaTypes::float32 f32ZFar = 1 ) [virtual]

Sets orthographic viewport and projection matrix.

Parameters:
rBBox | the bounding box of the effect.
f32Width | Width of the viewport.
f32Height | Height of the viewport.
f32ZNear | Near clipping plane.
f32ZFar Far clipping plane.

This method is a replacement for glOrtho. Scrissor testing is enabled and the bounding box is used to define the scissor box.

void set_perspective ( | const PajaTypes::BBox2C & rBBox,
 | PajaTypes::float32 f32FOV,
 | PajaTypes::float32 f32Aspect,
 | PajaTypes::float32 f32ZNear,
 | PajaTypes::float32 f32ZFar ) [virtual]

Sets perspective viewport and projection matrix.

Parameters:
rBBox | the bounding box of the effect.
f32FOV | FOV on x-axis.
f32Aspect | Aspect ration of the viewport.
f32ZNear | Near clipping plane.
f32ZFar Far clipping plane.

This method is a replacement for gluPerspective. Note that the FOV is different. Scrissor testing is enabled and the bounding box is used to define the scissor box.

void set_viewport ( const PajaTypes::BBox2C & rViewport ) [virtual]

Sets the viewport (used internally).

The documentation for this class was generated from the following file:
  • OpenGLInterfaceC.h


Composition::ParamColorC Class Reference

Color parameter class. More...

#include <ParamI.h>

Inheritance diagram for Composition::ParamColorC:

Composition::ParamI Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual Edit::DataBlockI* create ()
  • virtual Edit::DataBlockI* create ( Edit::EditableI* pOriginal )
  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pBlock )
  • virtual PajaTypes::uint32 get_type () const
  • virtual void set_controller ( ControllerC* cnt )
  • virtual ControllerC* get_controller ()
  • virtual void set_increment ( PajaTypes::float32 inc )
  • virtual PajaTypes::float32 get_increment () const
  • virtual bool get_min_max ( PajaTypes::float32* pMin, PajaTypes::float32* pMax )
  • virtual void set_style ( PajaTypes::uint32 style )
  • virtual PajaTypes::uint32 get_style () const
  • virtual void set_id ( PajaTypes::uint32 id )
  • virtual PajaTypes::uint32 get_id () const
  • virtual void set_val ( PajaTypes::int32 t, PajaTypes::float32* val )
  • virtual void get_val ( PajaTypes::int32 t, PajaTypes::float32* val )
  • virtual void set_val ( PajaTypes::int32 t, const PajaTypes::ColorC& val )
  • virtual void get_val ( PajaTypes::int32 t, PajaTypes::ColorC& val )
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Static Public Methods

  • ParamColorC* create_new ( GizmoI* pParent, const char* szName, const PajaTypes::ColorC& rValue, PajaTypes::uint32 ui32ID, PajaTypes::uint32 ui32Style = PARAM_STYLE_COLORPICKER, bool bAnimatable = true )

Protected Methods

  • ParamColorC ()
  • ParamColorC ( GizmoI* pParent, const char* name, const PajaTypes::ColorC& value, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_COLORPICKER, bool animatable = true )
  • ParamColorC ( Edit::EditableI* pOriginal )
  • virtual ~ParamColorC ()

Detailed Description

Color parameter class.

The color parameter class can be used to control four component color variables. The components are R, G, B, A. It's up to the user how the components are threated. Colors are chosen using a color picker type-in.

The color parameter can only be used to control color values from 0 to 1. The values are shown in the GUI in range 0 to 255.

A new color parameter is created using the create_new() static method.

Constructor & Destructor Documentation

ParamColorC ( ) [protected]

Default constructor.

ParamColorC ( | GizmoI * pParent,
 | const char * name,
 | const PajaTypes::ColorC & value,
 | PajaTypes::uint32 id,
 | PajaTypes::uint32 style = PARAM_STYLE_COLORPICKER,
 | bool animatable = true ) [protected]

Constructor.

ParamColorC ( Edit::EditableI * pOriginal ) [protected]

Constructor with reference to the original.

~ParamColorC ( ) [protected, virtual]

Default destructor.

Member Function Documentation

virtual void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Composition::ParamI.

virtual Edit::DataBlockI* create ( Edit::EditableI * pOriginal ) [virtual]

Creates new datablock, with reference to the original.

Parameters:
pOriginal Pointer to the original editable. This method is used by the undo system to create a copy of the editable while keeping reference to the original.

The method restore() is used to restore the data from the original copy.

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( ) [virtual]

Creates new parameter.

Following default values are used:

            pParent = 0,
            szName = 0,
            rValue = (0, 0, 0, 1), //RGBA
            ui32ID = 0,
            ui32Style = 0,
            bAnimatable = false,

See also:
create_new

Reimplemented from Edit::EditableI.

ParamColorC * create_new ( | GizmoI * pParent,
 | const char * szName,
 | const PajaTypes::ColorC & rValue,
 | PajaTypes::uint32 ui32ID,
 | PajaTypes::uint32 ui32Style = PARAM_STYLE_COLORPICKER,
 | bool bAnimatable = true ) [static]

Creates a new color parameter.

Parameters:
pParent | Pointer to the parent gizmo.
szName | The name of the parameter as NULL terminated string.
rValue | Start value of the parameter.
ui32ID | ID of the parameter.
ui32Style | The style of the parameter. Must be PARAM_STYLE_COLORPICKER. Default PARAM_STYLE_COLORPICKER.
bAnimatable If set true the parameter is animatable, else it's not (you may use PARAM_ANIMATABLE or PARAM_NOT_ANIMATABLE too). Default true.

The only type-in style is color picker.

The range and the spinner increment are set internally.

Example: This example creates new parameter. The name of the parameter is "Color", it's default value is opaque white and it's ID is ID_COLOR (constant defined by the plugin writer), the type-in style is color picker, the parameter can be animated.

            m_pParamColor = ParamColorC::create_new( this, "Color", ColorC( 1, 1, 1, 1 ), ID_COLOR,
                                                        PARAM_STYLE_COLORPICKER, PARAM_ANIMATABLE );

virtual ControllerC* get_controller ( ) [virtual]

Returns the conroller attached to the parameter.

NULL is returned if the parameter cannot be animated.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_id ( ) const [virtual]

Returns the ID of the parameter.

Reimplemented from Composition::ParamI.

virtual PajaTypes::float32 get_increment ( ) const [virtual]

Returns the spinner increment.

Reimplemented from Composition::ParamI.

virtual bool get_min_max ( | PajaTypes::float32 * pMin,
 | PajaTypes::float32 * pMax ) [virtual]

Returns the range of the parameter.

Parameters:
pMin pointer to a array of maximum of KEY_MAXCHANNEL floats.
pMax pointer to a array of maximum of KEY_MAXCHANNEL floats.

If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats.

Returns:
true if the range is valid, false if the range is not used.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_style ( ) const [virtual]

Returns the style of the parameter.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_type ( ) const [virtual]

Returns the type of the parameter.

Reimplemented from Composition::ParamI.

void get_val ( | PajaTypes::int32 t,
 | PajaTypes::ColorC & val ) [virtual]

Gets the value of the parameter at specified time.

virtual void get_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 * val ) [virtual]

Returns the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If The parameter is animated, interpolated value is returned.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Serialize the parameter from a Demopaja input stream.

Reimplemented from Composition::ParamI.

virtual void restore ( Edit::EditableI * pBlock ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Serialize the parameter to a Demopaja output stream.

Reimplemented from Composition::ParamI.

virtual void set_controller ( ControllerC * cnt ) [virtual]

Sets the controller of the parameter.

Reimplemented from Composition::ParamI.

virtual void set_id ( PajaTypes::uint32 id ) [virtual]

Sets the ID of the parmeter.

Reimplemented from Composition::ParamI.

void set_increment ( PajaTypes::float32 inc ) [virtual]

Set spinner increment (ignored for color parameter).

Reimplemented from Composition::ParamI.

virtual void set_style ( PajaTypes::uint32 style ) [virtual]

Sets the style of the parameter.

Reimplemented from Composition::ParamI.

void set_val ( | PajaTypes::int32 t,
 | const PajaTypes::ColorC & val ) [virtual]

Sets the value of the parameter at specified time.

virtual void set_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 * val ) [virtual]

Sets the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If the parameter is animated a new keyframe is created or existing is updated.

Reimplemented from Composition::ParamI.

The documentation for this class was generated from the following file:
  • ParamI.h


Composition::ParamFileC Class Reference

File parameter class. More...

#include <ParamI.h>

Inheritance diagram for Composition::ParamFileC:

Composition::ParamI Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual Edit::DataBlockI* create ()
  • virtual Edit::DataBlockI* create ( Edit::EditableI* pOriginal )
  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pBlock )
  • virtual PajaTypes::uint32 get_type () const
  • virtual void set_controller ( ControllerC* cnt )
  • virtual ControllerC* get_controller ()
  • virtual void set_style ( PajaTypes::uint32 style )
  • virtual PajaTypes::uint32 get_style () const
  • virtual void set_id ( PajaTypes::uint32 id )
  • virtual PajaTypes::uint32 get_id () const
  • virtual void set_increment ( PajaTypes::float32 inc )
  • virtual PajaTypes::float32 get_increment () const
  • virtual bool get_min_max ( PajaTypes::float32* pMin, PajaTypes::float32* pMax )
  • virtual void set_val ( PajaTypes::int32 t, PajaTypes::float32* val )
  • virtual void get_val ( PajaTypes::int32 t, PajaTypes::float32* val )
  • virtual void set_file ( Import::FileHandleC* pHandle )
  • virtual Import::FileHandleC* get_file ()
  • virtual PluginClass::SuperClassIdC get_super_class_filter ()
  • virtual PluginClass::ClassIdC get_class_filter ()
  • virtual void set_super_class_filter ( PluginClass::SuperClassIdC rSuperClassId )
  • virtual void set_class_filter ( PluginClass::ClassIdC rClassId )
  • virtual void set_time_offset ( PajaTypes::int32 i32TimeOffset )
  • virtual void set_time_scale ( PajaTypes::float32 f32TimeScale )
  • virtual PajaTypes::int32 get_time_offset ()
  • virtual PajaTypes::float32 get_time_scale ()
  • virtual PajaTypes::int32 get_duration ( PajaSystem::TimeContextC* pTimeContext )
  • virtual PajaTypes::float32 get_start_label ( PajaSystem::TimeContextC* pTimeContext )
  • virtual PajaTypes::float32 get_end_label ( PajaSystem::TimeContextC* pTimeContext )
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Static Public Methods

  • ParamFileC* create_new ( GizmoI* pParent, const char* szName, PluginClass::SuperClassIdC rSuperClassFilter, PluginClass::ClassIdC rClassFilter, PajaTypes::uint32 ui32ID, PajaTypes::uint32 ui32Style = PARAM_STYLE_FILE )

Protected Methods

  • ParamFileC ()
  • ParamFileC ( GizmoI* pParent, const char* name, PluginClass::SuperClassIdC rSuperClassFilter, PluginClass::ClassIdC rClassFilter, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX )
  • ParamFileC ( Edit::EditableI* pOriginal )
  • virtual ~ParamFileC ()

Detailed Description

File parameter class.

The file parameter provodes access to the imported files in the Demopaja system for the effect plugins.

Range and spinner increment are not used.

A new file parameter is created using the create_new() static method.

Constructor & Destructor Documentation

ParamFileC ( ) [protected]

Default constructor.

ParamFileC ( | GizmoI * pParent,
 | const char * name,
 | PluginClass::SuperClassIdC rSuperClassFilter,
 | PluginClass::ClassIdC rClassFilter,
 | PajaTypes::uint32 id,
 | PajaTypes::uint32 style = PARAM_STYLE_EDITBOX ) [protected]

Constructor.

ParamFileC ( Edit::EditableI * pOriginal ) [protected]

Constructor with reference to the original.

~ParamFileC ( ) [protected, virtual]

Default destructor.

Member Function Documentation

virtual void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Composition::ParamI.

virtual Edit::DataBlockI* create ( Edit::EditableI * pOriginal ) [virtual]

Creates new datablock, with reference to the original.

Parameters:
pOriginal Pointer to the original editable. This method is used by the undo system to create a copy of the editable while keeping reference to the original.

The method restore() is used to restore the data from the original copy.

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( ) [virtual]

Creates new parameter.

Following default values are used:

            pParent = 0,
            rSuperClassFilter = NULL_SUPERCLASSID,
            rClassFilter = NULL_CLASSID,
            ui32ID = 0,
            ui32Style = 0,

See also:
create_new

Reimplemented from Edit::EditableI.

ParamFileC * create_new ( | GizmoI * pParent,
 | const char * szName,
 | PluginClass::SuperClassIdC rSuperClassFilter,
 | PluginClass::ClassIdC rClassFilter,
 | PajaTypes::uint32 ui32ID,
 | PajaTypes::uint32 ui32Style = PARAM_STYLE_FILE ) [static]

Creates a new file parameter.

Parameters:
pParent | Pointer to the parent gizmo.
rSuperClassFilter | Specifies super class filter.
rClassFilter | Specifies class filter.
ui32ID | ID of the parameter.
ui32Style The style of the parameter. Must be PARAM_STYLE_FILE. Default PARAM_STYLE_FILE.

The only type-in style is file selector.

The super class filter and class filter enables only a defined set of files to be set via this parameter. For example if the superclass filter is SUPERCLASS_IMAGE all the files that are selected via this parameter implement the Import::ImportableImageI interface. Passing null (super) class ID disables the filtering.

Example 1: This example creates new parameter. The name of the parameter is "Image", it's super class filter is set to enable only files which support the ImportableImageI interface, any sub-type can be used. Parameter's ID is ID_IMAGE (constant defined by the plugin writer), the type-in style is the default file selector.

            m_pParamFile = ParamFileC::create_new( this, "Image", SUPERCLASS_IMAGE, NULL_CLASSID, ID_IMAGE );

Example 2: This example creates new parameter. The name of the parameter is "Scene", the class filters are set to enable only specified file type to be set. Parameter's ID is ID_SCENE (constant defined by the plugin writer), the type-in style is the default file selector.

            m_pParamFile = ParamFileC::create_new( this, "Scene", NULL_SUPERCLASSID, MY_3DFILE_CLASSID, ID_3DSCENE );

PluginClass::ClassIdC get_class_filter ( ) [virtual]

Returns the super filter.

virtual ControllerC* get_controller ( ) [virtual]

Returns the conroller attached to the parameter.

NULL is returned if the parameter cannot be animated.

Reimplemented from Composition::ParamI.

PajaTypes::int32 get_duration ( PajaSystem::TimeContextC * pTimeContext ) [virtual]

Returns the duration of the file.

If the duration cannot be determined (for example the data is a still image) negative value is returned.

This information is used by the system to draw the duration of the file.

See also:
set_time_scale() , set_time_offset()

PajaTypes::float32 get_end_label ( PajaSystem::TimeContextC * pTimeContext ) [virtual]

Returns end label/frame.

Import::FileHandleC * get_file ( ) [virtual]

Returns the file handle.

virtual PajaTypes::uint32 get_id ( ) const [virtual]

Returns the ID of the parameter.

Reimplemented from Composition::ParamI.

virtual PajaTypes::float32 get_increment ( ) const [virtual]

Returns the spinner increment.

Reimplemented from Composition::ParamI.

virtual bool get_min_max ( | PajaTypes::float32 * pMin,
 | PajaTypes::float32 * pMax ) [virtual]

Returns the range of the parameter.

Parameters:
pMin pointer to a array of maximum of KEY_MAXCHANNEL floats.
pMax pointer to a array of maximum of KEY_MAXCHANNEL floats.

If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats.

Returns:
true if the range is valid, false if the range is not used.

Reimplemented from Composition::ParamI.

PajaTypes::float32 get_start_label ( PajaSystem::TimeContextC * pTimeContext ) [virtual]

Returns start label/frame.

virtual PajaTypes::uint32 get_style ( ) const [virtual]

Returns the style of the parameter.

Reimplemented from Composition::ParamI.

PluginClass::SuperClassIdC get_super_class_filter ( ) [virtual]

Returns the super class filter.

PajaTypes::int32 get_time_offset ( ) [virtual]

Returns the time offset\. See: set_time_offset().

PajaTypes::float32 get_time_scale ( ) [virtual]

Returns the time scale factor\. See: set_time_scale().

virtual PajaTypes::uint32 get_type ( ) const [virtual]

Returns the type of the parameter.

Reimplemented from Composition::ParamI.

virtual void get_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 * val ) [virtual]

Returns the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If The parameter is animated, interpolated value is returned.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Serialize the parameter from a Demopaja input stream.

Reimplemented from Composition::ParamI.

virtual void restore ( Edit::EditableI * pBlock ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Serialize the parameter to a Demopaja output stream.

Reimplemented from Composition::ParamI.

void set_class_filter ( PluginClass::ClassIdC rClassId ) [virtual]

Sets the class filter.

virtual void set_controller ( ControllerC * cnt ) [virtual]

Sets the controller of the parameter.

Reimplemented from Composition::ParamI.

void set_file ( Import::FileHandleC * pHandle ) [virtual]

Sets the file handle.

virtual void set_id ( PajaTypes::uint32 id ) [virtual]

Sets the ID of the parmeter.

Reimplemented from Composition::ParamI.

virtual void set_increment ( PajaTypes::float32 inc ) [virtual]

Sets the spinner increment of the parameter.

The spinner increment is the smallest value the parameter is meant to control. For 1/10th accuracy use spinner increment of 0.1. The spinner increment is used in the spinners of the type-ins and also to draw the values in the GUI.

Reimplemented from Composition::ParamI.

virtual void set_style ( PajaTypes::uint32 style ) [virtual]

Sets the style of the parameter.

Reimplemented from Composition::ParamI.

void set_super_class_filter ( PluginClass::SuperClassIdC rSuperClassId ) [virtual]

Sets the super class filter.

void set_time_offset ( PajaTypes::int32 i32TimeOffset ) [virtual]

Sets the time offset which is used to display the file duration.

If it is neccessary an offset can be set to the file parameter. The system uses this offset and the scale factor set by the set_time_scale() method to calculate the duration of the file. The result is then shown in the timegraph. The default offset is zero.

See also:
set_time_scale()

void set_time_scale ( PajaTypes::float32 f32TimeScale ) [virtual]

Sets the scaling factor which is used to scale the duration got from the file.

If it is neccessary a scale factor can be set to the file parameter. The system uses this scalefactor and the offset set by the set_time_offset() method to calculate the duration of the file. The result is then shown in the timegraph. The default scale factor is one.

See also:
set_time_offset()

virtual void set_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 * val ) [virtual]

Sets the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If the parameter is animated a new keyframe is created or existing is updated.

Reimplemented from Composition::ParamI.

The documentation for this class was generated from the following file:
  • ParamI.h


Composition::ParamFloatC Class Reference

Float parameter class. More...

#include <ParamI.h>

Inheritance diagram for Composition::ParamFloatC:

Composition::ParamI Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual Edit::DataBlockI* create ()
  • virtual Edit::DataBlockI* create ( Edit::EditableI* pOriginal )
  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pBlock )
  • virtual PajaTypes::uint32 get_type () const
  • virtual void set_controller ( ControllerC* cnt )
  • virtual ControllerC* get_controller ()
  • virtual void set_min_max ( PajaTypes::float32 min, PajaTypes::float32 max )
  • virtual PajaTypes::float32 get_min () const
  • virtual PajaTypes::float32 get_max () const
  • virtual void set_increment ( PajaTypes::float32 inc )
  • virtual PajaTypes::float32 get_increment () const
  • virtual bool get_min_max ( PajaTypes::float32* pMin, PajaTypes::float32* pMax )
  • virtual void set_style ( PajaTypes::uint32 style )
  • virtual PajaTypes::uint32 get_style () const
  • virtual void set_id ( PajaTypes::uint32 id )
  • virtual PajaTypes::uint32 get_id () const
  • virtual void set_val ( PajaTypes::int32 t, PajaTypes::float32* val )
  • virtual void get_val ( PajaTypes::int32 t, PajaTypes::float32* val )
  • virtual void set_val ( PajaTypes::int32 t, const PajaTypes::float32& val )
  • virtual void get_val ( PajaTypes::int32 t, PajaTypes::float32& val )
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Static Public Methods

  • ParamFloatC* create_new ( GizmoI* pParent, const char* name, PajaTypes::float32 value, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX, bool animatable = true, PajaTypes::float32 min = 0, PajaTypes::float32 max = 0, PajaTypes::float32 inc = 0.01f )

Protected Methods

  • ParamFloatC ()
  • ParamFloatC ( GizmoI* pParent, const char* name, PajaTypes::float32 value, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX, bool animatable = true, PajaTypes::float32 min = 0, PajaTypes::float32 max = 0, PajaTypes::float32 inc = 0.01f )
  • ParamFloatC ( Edit::EditableI* pOriginal )
  • virtual ~ParamFloatC ()

Detailed Description

Float parameter class.

Float parameter can used to control pretty much everything where one parameter is enough. This parameter can have extra styles which enables it to be used as a percentage or an angle parameter.

A new float parameter is created using the create_new() static method.

Constructor & Destructor Documentation

ParamFloatC ( ) [protected]

Default constructor.

ParamFloatC ( | GizmoI * pParent,
 | const char * name,
 | PajaTypes::float32 value,
 | PajaTypes::uint32 id,
 | PajaTypes::uint32 style = PARAM_STYLE_EDITBOX,
 | bool animatable = true,
 | PajaTypes::float32 min = 0,
 | PajaTypes::float32 max = 0,
 | PajaTypes::float32 inc = 0.01f ) [protected]

Constructor.

ParamFloatC ( Edit::EditableI * pOriginal ) [protected]

Constructor with reference to the original.

~ParamFloatC ( ) [protected, virtual]

Default destructor.

Member Function Documentation

virtual void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Composition::ParamI.

virtual Edit::DataBlockI* create ( Edit::EditableI * pOriginal ) [virtual]

Creates new datablock, with reference to the original.

Parameters:
pOriginal Pointer to the original editable. This method is used by the undo system to create a copy of the editable while keeping reference to the original.

The method restore() is used to restore the data from the original copy.

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( ) [virtual]

Creates new parameter.

Following default values are used:

            pParent = 0,
            szName = 0,
            f32Value = 0,
            ui32ID = 0,
            ui32Style = 0,
            bAnimatable = false,
            f32Min = 0,
            f32Max = 0,
            f32Inc = 0.01f

See also:
create_new

Reimplemented from Edit::EditableI.

ParamFloatC * create_new ( | GizmoI * pParent,
 | const char * name,
 | PajaTypes::float32 value,
 | PajaTypes::uint32 id,
 | PajaTypes::uint32 style = PARAM_STYLE_EDITBOX,
 | bool animatable = true,
 | PajaTypes::float32 min = 0,
 | PajaTypes::float32 max = 0,
 | PajaTypes::float32 inc = 0.01f ) [static]

Creates a new float parameter.

Parameters:
pParent | Pointer to the parent gizmo.
szName | The name of the parameter as NULL terminated string.
f32Value | Start value of the parameter.
ui32ID | ID of the parameter.
ui32Style | The style of the parameter. Must be PARAM_STYLE_EDITBOX. In addition PARAM_STYLE_PERCENT or PARAM_STYLE_ANGLE can be set. Default PARAM_STYLE_EDITBOX.
bAnimatable | If set true the parameter is animatable, else it's not (you may use PARAM_ANIMATABLE or PARAM_NOT_ANIMATABLE too). Default true.
f32Min | The minimum of the parameter value range. Default 0.
f32Max | The maximum of the parameter value range. Default 0.
f32Inc The increment of the value spinner in type-in. Default 0.01.

If minimum and maximum of the range are same no range checking is used.

The only type-in style is editbox.

If PARAM_STYLE_PERCENT is set, percent marks are used in the GUI, and also the values are multiplied by 100 before displayed. That is, the value for 100% is 1.0.

If PARAM_STYLE_ANGLE is set, the angle mark is shown in the GUI. The value is not scaled.

Example: This example creates new parameter. The name of the parameter is "Rotation", it's default value is 0 (zero) and it's ID is ID_ROTATION (constant defined by the plugin writer), the type-in style is editbox, the parameter can be animated, and no range is defined. Parameter has been marked to be used as rotation. Spinner increment is 1.0.

            m_pParamRot = ParamFloatC::create_new( this, "Rotation", 0,
                                                    ID_ROTATION, PARAM_STYLE_EDITBOX | PARAM_STYLE_ANGLE,
                                                    PARAM_ANIMATABLE, 0, 0, 1.0f );

virtual ControllerC* get_controller ( ) [virtual]

Returns the conroller attached to the parameter.

NULL is returned if the parameter cannot be animated.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_id ( ) const [virtual]

Returns the ID of the parameter.

Reimplemented from Composition::ParamI.

virtual PajaTypes::float32 get_increment ( ) const [virtual]

Returns the spinner increment.

Reimplemented from Composition::ParamI.

PajaTypes::float32 get_max ( ) const [virtual]

Returns the maximum of the value range.

PajaTypes::float32 get_min ( ) const [virtual]

Returns the minimum of the value range.

virtual bool get_min_max ( | PajaTypes::float32 * pMin,
 | PajaTypes::float32 * pMax ) [virtual]

Returns the range of the parameter.

Parameters:
pMin pointer to a array of maximum of KEY_MAXCHANNEL floats.
pMax pointer to a array of maximum of KEY_MAXCHANNEL floats.

If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats.

Returns:
true if the range is valid, false if the range is not used.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_style ( ) const [virtual]

Returns the style of the parameter.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_type ( ) const [virtual]

Returns the type of the parameter.

Reimplemented from Composition::ParamI.

void get_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 & val ) [virtual]

Gets the value of the parameter at specified time.

virtual void get_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 * val ) [virtual]

Returns the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If The parameter is animated, interpolated value is returned.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Serialize the parameter from a Demopaja input stream.

Reimplemented from Composition::ParamI.

virtual void restore ( Edit::EditableI * pBlock ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Serialize the parameter to a Demopaja output stream.

Reimplemented from Composition::ParamI.

virtual void set_controller ( ControllerC * cnt ) [virtual]

Sets the controller of the parameter.

Reimplemented from Composition::ParamI.

virtual void set_id ( PajaTypes::uint32 id ) [virtual]

Sets the ID of the parmeter.

Reimplemented from Composition::ParamI.

virtual void set_increment ( PajaTypes::float32 inc ) [virtual]

Sets the spinner increment of the parameter.

The spinner increment is the smallest value the parameter is meant to control. For 1/10th accuracy use spinner increment of 0.1. The spinner increment is used in the spinners of the type-ins and also to draw the values in the GUI.

Reimplemented from Composition::ParamI.

void set_min_max ( | PajaTypes::float32 min,
 | PajaTypes::float32 max ) [virtual]

Sets the range of the parameter.

virtual void set_style ( PajaTypes::uint32 style ) [virtual]

Sets the style of the parameter.

Reimplemented from Composition::ParamI.

void set_val ( | PajaTypes::int32 t,
 | const PajaTypes::float32 & val ) [virtual]

Sets the value of the parameter at specified time.

virtual void set_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 * val ) [virtual]

Sets the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If the parameter is animated a new keyframe is created or existing is updated.

Reimplemented from Composition::ParamI.

The documentation for this class was generated from the following file:
  • ParamI.h


Composition::ParamI Class Reference

Parameter class. More...

#include <ParamI.h>

Inheritance diagram for Composition::ParamI:

Edit::EditableI Edit::DataBlockI Composition::ParamColorC Composition::ParamFileC Composition::ParamFloatC Composition::ParamIntC Composition::ParamTextC Composition::ParamVector2C Composition::ParamVector3C List of all members.

Public Methods

  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pBlock )
  • virtual void set_flags ( PajaTypes::int32 i32Flags )
  • virtual void add_flags ( PajaTypes::int32 i32Flags )
  • virtual void del_flags ( PajaTypes::int32 i32Flags )
  • virtual void toggle_flags ( PajaTypes::int32 i32Flags )
  • virtual PajaTypes::int32 get_flags ()
  • virtual void set_expanded_height ( PajaTypes::int32 i32Height )
  • virtual PajaTypes::int32 get_expanded_height ()
  • virtual PajaTypes::uint32 get_type () const = 0
  • virtual void set_name ( const char* name )
  • virtual const char* get_name ()
  • virtual void set_controller ( ControllerC* cnt ) = 0
  • virtual ControllerC* get_controller () = 0
  • virtual void set_increment ( PajaTypes::float32 f32Inc ) = 0
  • virtual PajaTypes::float32 get_increment () const = 0
  • virtual bool get_min_max ( PajaTypes::float32* pMin, PajaTypes::float32* pMax ) = 0
  • virtual void set_id ( PajaTypes::uint32 id ) = 0
  • virtual PajaTypes::uint32 get_id () const = 0
  • virtual void set_style ( PajaTypes::uint32 style ) = 0
  • virtual PajaTypes::uint32 get_style () const = 0
  • virtual void set_val ( PajaTypes::int32 t, PajaTypes::float32* pVal ) = 0
  • virtual void get_val ( PajaTypes::int32 t, PajaTypes::float32* pVal ) = 0
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )
  • virtual void set_parent ( GizmoI* pParent )
  • virtual GizmoI* get_parent ()

Protected Methods

  • ParamI ()
  • ParamI ( Edit::EditableI* pOriginal )
  • ParamI ( GizmoI* pParent, const char* name, PajaTypes::uint32 id, PajaTypes::uint32 style = 0, bool animatable = true )
  • virtual ~ParamI ()

Friends

  • class ParamIntC
  • class ParamFloatC
  • class ParamVector2C
  • class ParamVector3C
  • class ParamColorC
  • class ParamTextC
  • class ParamFileC

Detailed Description

Parameter class.

Parameter class defines a parameter which can be edited and animated in Demopaja GUI. ParamI implements a base class for all parameters.

An ID is attached to each parameter. When a parameter is changed on a gizmo, the parameter send a notify to the gizmo via the update_notify() method, the update notify is relayed to the effect via effects update_notify method. When handling a notify message each parameter and gizmo can be identified from the ID. The ID of a parameter is specified in the create method or it can be changed with the set_id() method.

If the value range of a animated parameter is changed no range checking is done to the keyframes in the controller. The plugin has to either clanp the keys, or handle the parameters out of the range.

The content of the parameter (including name, range, etc) can be changed at any time, and the change is shown next time the GUI is updated. A common place to change a parameter is on update_notify() method of a gizmo or an effect. Parameters are ment to be created at the constructor of a gizmo. Hence, the some of the properties of the parameter namely, the name of the parameter, the style and the ID are not serialized to the stream.

Demopaja does not currently support overridden parameters.

All the parameters classes are implemented by the system.

See also:
Composition::GizmoI

Constructor & Destructor Documentation

ParamI ( ) [protected]

Default constructor.

ParamI ( Edit::EditableI * pOriginal ) [protected]

Constructor with reference to the original.

ParamI ( | GizmoI * pParent,
 | const char * name,
 | PajaTypes::uint32 id,
 | PajaTypes::uint32 style = 0,
 | bool animatable = true ) [protected]

Constructor.

~ParamI ( ) [protected, virtual]

Default destructor.

Member Function Documentation

void add_flags ( PajaTypes::int32 i32Flags ) [virtual]

Sets only specified flags.

void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Edit::EditableI.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

void del_flags ( PajaTypes::int32 i32Flags ) [virtual]

Removes only specified flags.

ControllerC * get_controller ( ) [pure virtual]

Returns the conroller attached to the parameter.

NULL is returned if the parameter cannot be animated.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

PajaTypes::int32 get_expanded_height ( ) [virtual]

Returns the expanded height of the parameter (used by the GUI).

PajaTypes::int32 get_flags ( ) [virtual]

Returns gizmo flags.

PajaTypes::uint32 get_id ( ) const [pure virtual]

Returns the ID of the parameter.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

PajaTypes::float32 get_increment ( ) const [pure virtual]

Returns the spinner increment.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

bool get_min_max ( | PajaTypes::float32 * pMin,
 | PajaTypes::float32 * pMax ) [pure virtual]

Returns the range of the parameter.

Parameters:
pMin pointer to a array of maximum of KEY_MAXCHANNEL floats.
pMax pointer to a array of maximum of KEY_MAXCHANNEL floats.

If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats.

Returns:
true if the range is valid, false if the range is not used.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

const char * get_name ( ) [virtual]

Returns the name of the parameter.

GizmoI * get_parent ( ) [virtual]

Sets the parent gizmo of the parameter.

PajaTypes::uint32 get_style ( ) const [pure virtual]

Returns the style of the parameter.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

PajaTypes::uint32 get_type ( ) const [pure virtual]

Returns the type of the parameter.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

void get_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 * val ) [pure virtual]

Returns the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If The parameter is animated, interpolated value is returned.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Serialize the parameter from a Demopaja input stream.

Reimplemented from Edit::EditableI.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

void restore ( Edit::EditableI * pBlock ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Edit::EditableI.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Serialize the parameter to a Demopaja output stream.

Reimplemented from Edit::EditableI.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

void set_controller ( ControllerC * cnt ) [pure virtual]

Sets the controller of the parameter.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

void set_expanded_height ( PajaTypes::int32 i32Height ) [virtual]

Sets the expanded height of the parameter (used by the GUI).

void set_flags ( PajaTypes::int32 i32Flags ) [virtual]

Sets the parameter flags.

void set_id ( PajaTypes::uint32 id ) [pure virtual]

Sets the ID of the parmeter.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

void set_increment ( PajaTypes::float32 inc ) [pure virtual]

Sets the spinner increment of the parameter.

The spinner increment is the smallest value the parameter is meant to control. For 1/10th accuracy use spinner increment of 0.1. The spinner increment is used in the spinners of the type-ins and also to draw the values in the GUI.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

void set_name ( const char * name ) [virtual]

Sets the name of the parameter.

void set_parent ( GizmoI * pParent ) [virtual]

Returns the parent gizmo of the parameter.

void set_style ( PajaTypes::uint32 style ) [pure virtual]

Sets the style of the parameter.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

void set_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 * val ) [pure virtual]

Sets the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If the parameter is animated a new keyframe is created or existing is updated.

Reimplemented in Composition::ParamIntC, Composition::ParamFloatC, Composition::ParamVector2C, Composition::ParamVector3C, Composition::ParamColorC, Composition::ParamTextC, and Composition::ParamFileC.

void toggle_flags ( PajaTypes::int32 i32Flags ) [virtual]

Toggles only specified flags.

The documentation for this class was generated from the following file:
  • ParamI.h


Composition::ParamIntC Class Reference

Integer parameter class. More...

#include <ParamI.h>

Inheritance diagram for Composition::ParamIntC:

Composition::ParamI Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual Edit::DataBlockI* create ()
  • virtual Edit::DataBlockI* create ( Edit::EditableI* pOriginal )
  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pBlock )
  • virtual PajaTypes::uint32 get_type () const
  • virtual void set_controller ( ControllerC* cnt )
  • virtual ControllerC* get_controller ()
  • virtual void set_min_max ( PajaTypes::int32 i32Min, PajaTypes::int32 i32Max )
  • virtual PajaTypes::int32 get_min () const
  • virtual PajaTypes::int32 get_max () const
  • virtual void set_increment ( PajaTypes::float32 inc )
  • virtual PajaTypes::float32 get_increment () const
  • virtual bool get_min_max ( PajaTypes::float32* pMin, PajaTypes::float32* pMax )
  • virtual void set_style ( PajaTypes::uint32 style )
  • virtual PajaTypes::uint32 get_style () const
  • virtual void set_id ( PajaTypes::uint32 id )
  • virtual PajaTypes::uint32 get_id () const
  • virtual void clear_labels ()
  • virtual void add_label ( PajaTypes::int32 i32Val, const char* szName )
  • virtual void add_label ( PajaTypes::int32 i32Val, const std::string& sName )
  • virtual PajaTypes::uint32 get_label_count () const
  • virtual const char* get_label_name ( PajaTypes::uint32 i )
  • virtual PajaTypes::int32 get_label_value ( PajaTypes::uint32 i )
  • virtual void remove_label ( PajaTypes::int32 val )
  • virtual void set_val ( PajaTypes::int32 t, PajaTypes::float32* val )
  • virtual void get_val ( PajaTypes::int32 t, PajaTypes::float32* val )
  • virtual void set_val ( PajaTypes::int32 t, const PajaTypes::int32& val )
  • virtual void get_val ( PajaTypes::int32 t, PajaTypes::int32& val )
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Static Public Methods

  • ParamIntC* create_new ( GizmoI* pParent, const char* szName, PajaTypes::int32 i32Value, PajaTypes::uint32 ui32ID, PajaTypes::uint32 ui32Style = PARAM_STYLE_EDITBOX, bool bAnimatable = true, PajaTypes::int32 i32Min = 0, PajaTypes::int32 i32Max = 0, PajaTypes::int32 i32Inc = 1 )

Protected Methods

  • ParamIntC ()
  • ParamIntC ( GizmoI* pParent, const char* name, PajaTypes::int32 value, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX, bool animatable = true, PajaTypes::int32 min = 0, PajaTypes::int32 max = 0, PajaTypes::int32 inc = 1 )
  • ParamIntC ( Edit::EditableI* pOriginal )
  • virtual ~ParamIntC ()

Detailed Description

Integer parameter class.

The integer parameter can be used to coltrol parameters which can be represent as integers. This parameter also gives a possibility to have set of predefined values, which can be named, and selected using a combobox control.

Even this is integer parameter the internal format is 32-bit float. So it is not possible to access the whole 32-bit integer range.

A new integer parameter is created using the create_new() static method.

Constructor & Destructor Documentation

ParamIntC ( ) [protected]

Default constructor.

ParamIntC ( | GizmoI * pParent,
 | const char * name,
 | PajaTypes::int32 value,
 | PajaTypes::uint32 id,
 | PajaTypes::uint32 style = PARAM_STYLE_EDITBOX,
 | bool animatable = true,
 | PajaTypes::int32 min = 0,
 | PajaTypes::int32 max = 0,
 | PajaTypes::int32 inc = 1 ) [protected]

Constructor.

ParamIntC ( Edit::EditableI * pOriginal ) [protected]

Constructor with reference to the original.

~ParamIntC ( ) [protected, virtual]

Default destructor.

Member Function Documentation

void add_label ( | PajaTypes::int32 i32Val,
 | const std::string & sName ) [virtual]

Adds a value label.

Parameters:
i32Val | Value to bind the label.
sName | Name of the value as STL string.

void add_label ( | PajaTypes::int32 i32Val,
 | const char * szName ) [virtual]

Adds a value label.

Parameters:
i32Val | Value to bind the label.
szName | Name of the value as NULL terminated string.

void clear_labels ( ) [virtual]

Clears all labels.

virtual void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Composition::ParamI.

virtual Edit::DataBlockI* create ( Edit::EditableI * pOriginal ) [virtual]

Creates new datablock, with reference to the original.

Parameters:
pOriginal Pointer to the original editable. This method is used by the undo system to create a copy of the editable while keeping reference to the original.

The method restore() is used to restore the data from the original copy.

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( ) [virtual]

Creates new parameter.

Following default values are used:

            pParent = 0,
            szName = 0,
            i32Value = 0,
            ui32ID = 0,
            ui32Style = 0,
            bAnimatable = false,
            i32Min = 0,
            i32Max = 0,
            i32Inc = 1

See also:
create_new

Reimplemented from Edit::EditableI.

ParamIntC * create_new ( | GizmoI * pParent,
 | const char * szName,
 | PajaTypes::int32 i32Value,
 | PajaTypes::uint32 ui32ID,
 | PajaTypes::uint32 ui32Style = PARAM_STYLE_EDITBOX,
 | bool bAnimatable = true,
 | PajaTypes::int32 i32Min = 0,
 | PajaTypes::int32 i32Max = 0,
 | PajaTypes::int32 i32Inc = 1 ) [static]

Creates a new integer parameter.

Parameters:
pParent | Pointer to the parent gizmo.
szName | The name of the parameter as NULL terminated string.
i32Value | Start value of the parameter.
ui32ID | ID of the parameter.
ui32Style | The style of the parameter. Can be PARAM_STYLE_EDITBOX or PARAM_STYLE_COMBOBOX. Default PARAM_STYLE_EDITBOX.
bAnimatable | If set true the parameter is animatable, else it's not (you may use PARAM_ANIMATABLE or PARAM_NOT_ANIMATABLE too). Default true.
i32Min | The minimum of the parameter value range. Default 0.
i32Max | The maximum of the parameter value range. Default 0.
i32Inc The increment of the value spinner in type-in.

If minimum and maximum of the range are same no range checking is used.

If the stype is PARAM_STYLE_COMBOBOX only labeled values can be selected from the type-in.

Example: This example creates new parameter. The name of the parameter is "Filter mode", it's default value is 0 (zero) and it's ID is ID_FILTERMODE (constant defined by the plugin writer), the type-in style is combobox, the parameter can be animated, and the value range of the parameter is from 0 to 1. Also labels are defined for values 0, and 1. Default increment value 1 is used.

            m_pParamFilterMode = ParamIntC::create_new( this, "Filter mode", 0, ID_FILTERMODE,
                                                        PARAM_STYLE_COMBOBOX, PARAM_ANIMATABLE, 0, 1 );
            m_pParamFilterMode->add_label( 0, "Bilinear" );
            m_pParamFilterMode->add_label( 1, "Nearest" );

virtual ControllerC* get_controller ( ) [virtual]

Returns the conroller attached to the parameter.

NULL is returned if the parameter cannot be animated.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_id ( ) const [virtual]

Returns the ID of the parameter.

Reimplemented from Composition::ParamI.

virtual PajaTypes::float32 get_increment ( ) const [virtual]

Returns the spinner increment.

Reimplemented from Composition::ParamI.

PajaTypes::uint32 get_label_count ( ) const [virtual]

Returns number of labels.

const char * get_label_name ( PajaTypes::uint32 i ) [virtual]

Returns the name of the label at specified index.

PajaTypes::int32 get_label_value ( PajaTypes::uint32 i ) [virtual]

Returns the value of the label at specified index.

PajaTypes::int32 get_max ( ) const [virtual]

Returns the maximum of the value range.

PajaTypes::int32 get_min ( ) const [virtual]

Returns the minimum of the value range.

virtual bool get_min_max ( | PajaTypes::float32 * pMin,
 | PajaTypes::float32 * pMax ) [virtual]

Returns the range of the parameter.

Parameters:
pMin pointer to a array of maximum of KEY_MAXCHANNEL floats.
pMax pointer to a array of maximum of KEY_MAXCHANNEL floats.

If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats.

Returns:
true if the range is valid, false if the range is not used.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_style ( ) const [virtual]

Returns the style of the parameter.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_type ( ) const [virtual]

Returns the type of the parameter.

Reimplemented from Composition::ParamI.

void get_val ( | PajaTypes::int32 t,
 | PajaTypes::int32 & val ) [virtual]

Gets the value of the parameter at specified time.

virtual void get_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 * val ) [virtual]

Returns the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If The parameter is animated, interpolated value is returned.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Serialize the parameter from a Demopaja input stream.

Reimplemented from Composition::ParamI.

void remove_label ( PajaTypes::int32 val ) [virtual]

Removes the label at specified index.

virtual void restore ( Edit::EditableI * pBlock ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Serialize the parameter to a Demopaja output stream.

Reimplemented from Composition::ParamI.

virtual void set_controller ( ControllerC * cnt ) [virtual]

Sets the controller of the parameter.

Reimplemented from Composition::ParamI.

virtual void set_id ( PajaTypes::uint32 id ) [virtual]

Sets the ID of the parmeter.

Reimplemented from Composition::ParamI.

virtual void set_increment ( PajaTypes::float32 inc ) [virtual]

Sets the spinner increment of the parameter.

The spinner increment is the smallest value the parameter is meant to control. For 1/10th accuracy use spinner increment of 0.1. The spinner increment is used in the spinners of the type-ins and also to draw the values in the GUI.

Reimplemented from Composition::ParamI.

void set_min_max ( | PajaTypes::int32 i32Min,
 | PajaTypes::int32 i32Max ) [virtual]

Sets the range of the parameter.

virtual void set_style ( PajaTypes::uint32 style ) [virtual]

Sets the style of the parameter.

Reimplemented from Composition::ParamI.

void set_val ( | PajaTypes::int32 t,
 | const PajaTypes::int32 & val ) [virtual]

Sets the value of the parameter at specified time.

virtual void set_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 * val ) [virtual]

Sets the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If the parameter is animated a new keyframe is created or existing is updated.

Reimplemented from Composition::ParamI.

The documentation for this class was generated from the following file:
  • ParamI.h


Composition::ParamTextC Class Reference

Text parameter class. More...

#include <ParamI.h>

Inheritance diagram for Composition::ParamTextC:

Composition::ParamI Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual Edit::DataBlockI* create ()
  • virtual Edit::DataBlockI* create ( Edit::EditableI* pOriginal )
  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pBlock )
  • virtual PajaTypes::uint32 get_type () const
  • virtual void set_controller ( ControllerC* cnt )
  • virtual ControllerC* get_controller ()
  • virtual void set_style ( PajaTypes::uint32 style )
  • virtual PajaTypes::uint32 get_style () const
  • virtual void set_id ( PajaTypes::uint32 id )
  • virtual PajaTypes::uint32 get_id () const
  • virtual void set_increment ( PajaTypes::float32 inc )
  • virtual PajaTypes::float32 get_increment () const
  • virtual bool get_min_max ( PajaTypes::float32* pMin, PajaTypes::float32* pMax )
  • virtual void set_val ( PajaTypes::int32 i32Time, PajaTypes::float32* pVal )
  • virtual void get_val ( PajaTypes::int32 i32Time, PajaTypes::float32* pVal )
  • virtual void set_val ( PajaTypes::int32 i32Time, const char* szVal )
  • virtual const char* get_val ( PajaTypes::int32 i32Time, char* szVal = 0, PajaTypes::int32 i32Size = 0 )
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Static Public Methods

  • ParamTextC* create_new ( GizmoI* pParent, const char* szName, const char* szText, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX )

Protected Methods

  • ParamTextC ()
  • ParamTextC ( GizmoI* pParent, const char* name, const char* text, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX )
  • ParamTextC ( Edit::EditableI* pOriginal )
  • virtual ~ParamTextC ()

Detailed Description

Text parameter class.

Text parameter class provides a simple text input to the effect. The text parameter cannot be animated.

Range and spinner increment are not used.

A new text parameter is created using the create_new() static method.

Constructor & Destructor Documentation

ParamTextC ( ) [protected]

Default constructor.

ParamTextC ( | GizmoI * pParent,
 | const char * name,
 | const char * text,
 | PajaTypes::uint32 id,
 | PajaTypes::uint32 style = PARAM_STYLE_EDITBOX ) [protected]

Constructor.

ParamTextC ( Edit::EditableI * pOriginal ) [protected]

Constructor with reference to the original.

~ParamTextC ( ) [protected, virtual]

Default destructor.

Member Function Documentation

virtual void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Composition::ParamI.

virtual Edit::DataBlockI* create ( Edit::EditableI * pOriginal ) [virtual]

Creates new datablock, with reference to the original.

Parameters:
pOriginal Pointer to the original editable. This method is used by the undo system to create a copy of the editable while keeping reference to the original.

The method restore() is used to restore the data from the original copy.

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( ) [virtual]

Creates new parameter.

Following default values are used:

            pParent = 0,
            szName = 0,
            szValue = 0,
            ui32ID = 0,
            ui32Style = 0,

See also:
create_new

Reimplemented from Edit::EditableI.

ParamTextC * create_new ( | GizmoI * pParent,
 | const char * szName,
 | const char * szText,
 | PajaTypes::uint32 id,
 | PajaTypes::uint32 style = PARAM_STYLE_EDITBOX ) [static]

Creates a new color parameter.

Parameters:
pParent | Pointer to the parent gizmo.
szName | The name of the parameter as NULL terminated string.
rValue | Start value of the parameter.
ui32ID | ID of the parameter.
ui32Style The style of the parameter. Must be PARAM_STYLE_EDITBOX. Default PARAM_STYLE_EDITBOX.

The only type-in style is edit box.

Example: This example creates new parameter. The name of the parameter is "Text", it's default value is string "Text" and it's ID is ID_TEXT (constant defined by the plugin writer), the type-in style is the default editbox.

            m_pParamText = ParamTextC::create_new( this, "Text", "Text", ID_TEXT );

virtual ControllerC* get_controller ( ) [virtual]

Returns the conroller attached to the parameter.

NULL is returned if the parameter cannot be animated.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_id ( ) const [virtual]

Returns the ID of the parameter.

Reimplemented from Composition::ParamI.

virtual PajaTypes::float32 get_increment ( ) const [virtual]

Returns the spinner increment.

Reimplemented from Composition::ParamI.

virtual bool get_min_max ( | PajaTypes::float32 * pMin,
 | PajaTypes::float32 * pMax ) [virtual]

Returns the range of the parameter.

Parameters:
pMin pointer to a array of maximum of KEY_MAXCHANNEL floats.
pMax pointer to a array of maximum of KEY_MAXCHANNEL floats.

If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats.

Returns:
true if the range is valid, false if the range is not used.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_style ( ) const [virtual]

Returns the style of the parameter.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_type ( ) const [virtual]

Returns the type of the parameter.

Reimplemented from Composition::ParamI.

const char * get_val ( | PajaTypes::int32 i32Time,
 | char * szVal = 0,
 | PajaTypes::int32 i32Size = 0 ) [virtual]

Returns the value of the parameter.

Parameters:
i32Time | Point in time to get the value.
szVal | pointer to the string to copy the value.
i32Size | size of the string to copy the value.
Returns:
Pointer to the parameter string.

virtual void get_val ( | PajaTypes::int32 i32Time,
 | PajaTypes::float32 * pVal ) [virtual]

Returns the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If The parameter is animated, interpolated value is returned.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Serialize the parameter from a Demopaja input stream.

Reimplemented from Composition::ParamI.

virtual void restore ( Edit::EditableI * pBlock ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Serialize the parameter to a Demopaja output stream.

Reimplemented from Composition::ParamI.

virtual void set_controller ( ControllerC * cnt ) [virtual]

Sets the controller of the parameter.

Reimplemented from Composition::ParamI.

virtual void set_id ( PajaTypes::uint32 id ) [virtual]

Sets the ID of the parmeter.

Reimplemented from Composition::ParamI.

virtual void set_increment ( PajaTypes::float32 inc ) [virtual]

Sets the spinner increment of the parameter.

The spinner increment is the smallest value the parameter is meant to control. For 1/10th accuracy use spinner increment of 0.1. The spinner increment is used in the spinners of the type-ins and also to draw the values in the GUI.

Reimplemented from Composition::ParamI.

virtual void set_style ( PajaTypes::uint32 style ) [virtual]

Sets the style of the parameter.

Reimplemented from Composition::ParamI.

void set_val ( | PajaTypes::int32 i32Time,
 | const char * szVal ) [virtual]

Sets the value of the parameter as NULL terminated string at specified time.

virtual void set_val ( | PajaTypes::int32 i32Time,
 | PajaTypes::float32 * pVal ) [virtual]

Sets the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If the parameter is animated a new keyframe is created or existing is updated.

Reimplemented from Composition::ParamI.

The documentation for this class was generated from the following file:
  • ParamI.h


Composition::ParamVector2C Class Reference

2D vector parameter class. More...

#include <ParamI.h>

Inheritance diagram for Composition::ParamVector2C:

Composition::ParamI Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual Edit::DataBlockI* create ()
  • virtual Edit::DataBlockI* create ( Edit::EditableI* pOriginal )
  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pBlock )
  • virtual PajaTypes::uint32 get_type () const
  • virtual void set_controller ( ControllerC* cnt )
  • virtual ControllerC* get_controller ()
  • virtual void set_min_max ( const PajaTypes::Vector2C& min, const PajaTypes::Vector2C& max )
  • virtual const PajaTypes::Vector2C& get_min () const
  • virtual const PajaTypes::Vector2C& get_max () const
  • virtual bool get_min_max ( PajaTypes::float32* pMin, PajaTypes::float32* pMax )
  • virtual void set_increment ( PajaTypes::float32 inc )
  • virtual PajaTypes::float32 get_increment () const
  • virtual void set_style ( PajaTypes::uint32 style )
  • virtual PajaTypes::uint32 get_style () const
  • virtual void set_id ( PajaTypes::uint32 id )
  • virtual PajaTypes::uint32 get_id () const
  • virtual void set_val ( PajaTypes::int32 t, PajaTypes::float32* val )
  • virtual void get_val ( PajaTypes::int32 t, PajaTypes::float32* val )
  • virtual void set_val ( PajaTypes::int32 t, const PajaTypes::Vector2C& val )
  • virtual void get_val ( PajaTypes::int32 t, PajaTypes::Vector2C& val )
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Static Public Methods

  • ParamVector2C* create_new ( GizmoI* pParent, const char* name, const PajaTypes::Vector2C& value, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX, bool animatable = true, const PajaTypes::Vector2C& min = PajaTypes::Vector2C(), const PajaTypes::Vector2C& max = PajaTypes::Vector2C(), PajaTypes::float32 inc = 0.1f )

Protected Methods

  • ParamVector2C ()
  • ParamVector2C ( GizmoI* pParent, const char* name, const PajaTypes::Vector2C& value, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX, bool animatable = true, const PajaTypes::Vector2C& min = PajaTypes::Vector2C(), const PajaTypes::Vector2C& max = PajaTypes::Vector2C(), PajaTypes::float32 inc = 0.1f )
  • ParamVector2C ( Edit::EditableI* pOriginal )
  • virtual ~ParamVector2C ()

Detailed Description

2D vector parameter class.

The 2D vector parameter can used to control everything where two parameter is enough. This parameter can have extra styles which enables it to be used as a percentage or an angle parameter. Also a couple of flags enables it to be used efficiently as positional parameter. This parameter type can also be edited in the Layout view if prper styles are set.

A new 2D vector parameter is created using the create_new() static method.

Constructor & Destructor Documentation

ParamVector2C ( ) [protected]

Default constructor.

ParamVector2C ( | GizmoI * pParent,
 | const char * name,
 | const PajaTypes::Vector2C & value,
 | PajaTypes::uint32 id,
 | PajaTypes::uint32 style = PARAM_STYLE_EDITBOX,
 | bool animatable = true,
 | const PajaTypes::Vector2C & min = PajaTypes::Vector2C(),
 | const PajaTypes::Vector2C & max = PajaTypes::Vector2C(),
 | PajaTypes::float32 inc = 0.1f ) [protected]

Constructor.

ParamVector2C ( Edit::EditableI * pOriginal ) [protected]

Constructor with reference to the original.

~ParamVector2C ( ) [protected, virtual]

Default destructor.

Member Function Documentation

virtual void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Composition::ParamI.

virtual Edit::DataBlockI* create ( Edit::EditableI * pOriginal ) [virtual]

Creates new datablock, with reference to the original.

Parameters:
pOriginal Pointer to the original editable. This method is used by the undo system to create a copy of the editable while keeping reference to the original.

The method restore() is used to restore the data from the original copy.

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( ) [virtual]

Creates new parameter.

Following default values are used:

            pParent = 0,
            szName = 0,
            rValue = (0, 0),
            ui32ID = 0,
            ui32Style = 0,
            bAnimatable = false,
            rMin = (0, 0),
            rMax = (0, 0),
            f32Inc = 0.1f

See also:
create_new

Reimplemented from Edit::EditableI.

ParamVector2C * create_new ( | GizmoI * pParent,
 | const char * name,
 | const PajaTypes::Vector2C & value,
 | PajaTypes::uint32 id,
 | PajaTypes::uint32 style = PARAM_STYLE_EDITBOX,
 | bool animatable = true,
 | const PajaTypes::Vector2C & min = PajaTypes::Vector2C(),
 | const PajaTypes::Vector2C & max = PajaTypes::Vector2C(),
 | PajaTypes::float32 inc = 0.1f ) [static]

Creates a new 2D vector parameter.

Parameters:
pParent | Pointer to the parent gizmo.
szName | The name of the parameter as NULL terminated string.
rValue | Start value of the parameter.
ui32ID | ID of the parameter.
ui32Style | The style of the parameter. Must be PARAM_STYLE_EDITBOX. In addition PARAM_STYLE_PERCENT, PARAM_STYLE_ANGLE, PARAM_STYLE_ABS_POSITION, PARAM_STYLE_REL_POSITION, PARAM_STYLE_WORLD_SPACE, or PARAM_STYLE_OBJECT_SPACE can be set. Default PARAM_STYLE_EDITBOX.
bAnimatable | If set true the parameter is animatable, else it's not (you may use PARAM_ANIMATABLE or PARAM_NOT_ANIMATABLE too). Default true.
rMin | The minimum of the parameter value range. Default (0, 0).
rMax | The maximum of the parameter value range. Default (0, 0).
f32Inc The increment of the value spinner in type-in. Default 0.1.

If minimum and maximum of the range are same no range checking is used.

The only type-in style is editbox.

If PARAM_STYLE_PERCENT is set, percent marks are used in the GUI, and also the values are multiplied by 100 before displayed. That is, the value for 100% is 1.0.

If PARAM_STYLE_ANGLE is set, the angle mark is shown in the GUI. The value is not scaled.

If PARAM_STYLE_ABS_POSITION is set the parameter is treated as absolute position from the layout origo (lower left corner). Absolute positions are always in the world space. If the parameter is the position of the effect, this style has to be set.

If PARAM_STYLE_REL_POSITION is set the parameter is treated as relative to the position of the effect (not including the pivot). If the parameter is the pivot of the effect, this style has to be set along with the PARAM_STYLE_WORLD_SPACE style.

If PARAM_STYLE_WORLD_SPACE is set the parameter is in the world space coordinate system. The world space coordinate system is the same as the layouts coord-sys.

If PARAM_STYLE_OBJECT_SPACE is set the parameter is in the object space coordinate system. The object space coordinate system is the same as the effect's coord-sys. If this style is set, the point this parameter defines will move along with the effect as it rotates, scales, or when it's pivot is changed.

If the parameter has PARAM_STYLE_ABS_POSITION or PARAM_STYLE_REL_POSITION style the parameter can be edited in the Layout view.

Example: This example creates new parameter. The name of the parameter is "Center", it's default value is (0, 0) and it's ID is ID_CENTER (constant defined by the plugin writer), the type-in style is editbox, the parameter can be animated, and no range is defined. The represents a position which is relative to the effect position and is in effects coordinate system. The is used as effect's center point and therefore it has to transform along with the effect. Spinner increment is default 0.1.

            m_pParamCenter = ParamVector2C::create_new( this, "Center", Vector2C(), ID_CENTER,
                                                        PARAM_STYLE_EDITBOX | PARAM_STYLE_REL_POSITION | PARAM_STYLE_OBJECT_SPACE,
                                                        PARAM_ANIMATABLE );

virtual ControllerC* get_controller ( ) [virtual]

Returns the conroller attached to the parameter.

NULL is returned if the parameter cannot be animated.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_id ( ) const [virtual]

Returns the ID of the parameter.

Reimplemented from Composition::ParamI.

virtual PajaTypes::float32 get_increment ( ) const [virtual]

Returns the spinner increment.

Reimplemented from Composition::ParamI.

const PajaTypes::Vector2C & get_max ( ) const [virtual]

Returns the maximum of the value range.

const PajaTypes::Vector2C & get_min ( ) const [virtual]

Returns the minimum of the value range.

virtual bool get_min_max ( | PajaTypes::float32 * pMin,
 | PajaTypes::float32 * pMax ) [virtual]

Returns the range of the parameter.

Parameters:
pMin pointer to a array of maximum of KEY_MAXCHANNEL floats.
pMax pointer to a array of maximum of KEY_MAXCHANNEL floats.

If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats.

Returns:
true if the range is valid, false if the range is not used.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_style ( ) const [virtual]

Returns the style of the parameter.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_type ( ) const [virtual]

Returns the type of the parameter.

Reimplemented from Composition::ParamI.

void get_val ( | PajaTypes::int32 t,
 | PajaTypes::Vector2C & val ) [virtual]

Gets the value of the parameter at specified time.

virtual void get_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 * val ) [virtual]

Returns the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If The parameter is animated, interpolated value is returned.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Serialize the parameter from a Demopaja input stream.

Reimplemented from Composition::ParamI.

virtual void restore ( Edit::EditableI * pBlock ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Serialize the parameter to a Demopaja output stream.

Reimplemented from Composition::ParamI.

virtual void set_controller ( ControllerC * cnt ) [virtual]

Sets the controller of the parameter.

Reimplemented from Composition::ParamI.

virtual void set_id ( PajaTypes::uint32 id ) [virtual]

Sets the ID of the parmeter.

Reimplemented from Composition::ParamI.

virtual void set_increment ( PajaTypes::float32 inc ) [virtual]

Sets the spinner increment of the parameter.

The spinner increment is the smallest value the parameter is meant to control. For 1/10th accuracy use spinner increment of 0.1. The spinner increment is used in the spinners of the type-ins and also to draw the values in the GUI.

Reimplemented from Composition::ParamI.

void set_min_max ( | const PajaTypes::Vector2C & min,
 | const PajaTypes::Vector2C & max ) [virtual]

Sets the range of the parameter.

virtual void set_style ( PajaTypes::uint32 style ) [virtual]

Sets the style of the parameter.

Reimplemented from Composition::ParamI.

void set_val ( | PajaTypes::int32 t,
 | const PajaTypes::Vector2C & val ) [virtual]

Sets the value of the parameter at specified time.

virtual void set_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 * val ) [virtual]

Sets the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If the parameter is animated a new keyframe is created or existing is updated.

Reimplemented from Composition::ParamI.

The documentation for this class was generated from the following file:
  • ParamI.h


Composition::ParamVector3C Class Reference

3D vector parameter class. More...

#include <ParamI.h>

Inheritance diagram for Composition::ParamVector3C:

Composition::ParamI Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual Edit::DataBlockI* create ()
  • virtual Edit::DataBlockI* create ( Edit::EditableI* pOriginal )
  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pBlock )
  • virtual PajaTypes::uint32 get_type () const
  • virtual void set_controller ( ControllerC* cnt )
  • virtual ControllerC* get_controller ()
  • virtual void set_min_max ( const PajaTypes::Vector3C& min, const PajaTypes::Vector3C& max )
  • virtual const PajaTypes::Vector3C& get_min () const
  • virtual const PajaTypes::Vector3C& get_max () const
  • virtual void set_increment ( PajaTypes::float32 inc )
  • virtual PajaTypes::float32 get_increment () const
  • virtual bool get_min_max ( PajaTypes::float32* pMin, PajaTypes::float32* pMax )
  • virtual void set_style ( PajaTypes::uint32 style )
  • virtual PajaTypes::uint32 get_style () const
  • virtual void set_id ( PajaTypes::uint32 id )
  • virtual PajaTypes::uint32 get_id () const
  • virtual void set_val ( PajaTypes::int32 t, PajaTypes::float32* val )
  • virtual void get_val ( PajaTypes::int32 t, PajaTypes::float32* val )
  • virtual void set_val ( PajaTypes::int32 t, const PajaTypes::Vector3C& val )
  • virtual void get_val ( PajaTypes::int32 t, PajaTypes::Vector3C& val )
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Static Public Methods

  • ParamVector3C* create_new ( GizmoI* pParent, const char* szName, const PajaTypes::Vector3C& rValue, PajaTypes::uint32 ui32ID, PajaTypes::uint32 ui32Style = PARAM_STYLE_EDITBOX, bool bAnimatable = true, const PajaTypes::Vector3C& rMin = PajaTypes::Vector3C(), const PajaTypes::Vector3C& rMax = PajaTypes::Vector3C(), PajaTypes::float32 f32Inc = 0.1f )

Protected Methods

  • ParamVector3C ()
  • ParamVector3C ( GizmoI* pParent, const char* name, const PajaTypes::Vector3C& value, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX, bool animatable = true, const PajaTypes::Vector3C& min = PajaTypes::Vector3C(), const PajaTypes::Vector3C& max = PajaTypes::Vector3C(), PajaTypes::float32 inc = 0.1f )
  • ParamVector3C ( Edit::EditableI* pOriginal )
  • virtual ~ParamVector3C ()

Detailed Description

3D vector parameter class.

The 3D vector parameter can used to control everything where three parameters are enough. This parameter can have extra styles which enables it to be used as a percentage or an angle parameter.

A new 3D vector parameter is created using the create_new() static method.

Constructor & Destructor Documentation

ParamVector3C ( ) [protected]

Default constructor.

ParamVector3C ( | GizmoI * pParent,
 | const char * name,
 | const PajaTypes::Vector3C & value,
 | PajaTypes::uint32 id,
 | PajaTypes::uint32 style = PARAM_STYLE_EDITBOX,
 | bool animatable = true,
 | const PajaTypes::Vector3C & min = PajaTypes::Vector3C(),
 | const PajaTypes::Vector3C & max = PajaTypes::Vector3C(),
 | PajaTypes::float32 inc = 0.1f ) [protected]

Constructor.

ParamVector3C ( Edit::EditableI * pOriginal ) [protected]

Constructor with reference to the original.

~ParamVector3C ( ) [protected, virtual]

Default destructor.

Member Function Documentation

virtual void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Composition::ParamI.

virtual Edit::DataBlockI* create ( Edit::EditableI * pOriginal ) [virtual]

Creates new datablock, with reference to the original.

Parameters:
pOriginal Pointer to the original editable. This method is used by the undo system to create a copy of the editable while keeping reference to the original.

The method restore() is used to restore the data from the original copy.

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( ) [virtual]

Creates new parameter.

Following default values are used:

            pParent = 0,
            szName = 0,
            rValue = (0, 0, 0),
            ui32ID = 0,
            ui32Style = 0,
            bAnimatable = false,
            rMin = (0, 0, 0),
            rMax = (0, 0, 0),
            f32Inc = 0.1f

See also:
create_new

Reimplemented from Edit::EditableI.

ParamVector3C * create_new ( | GizmoI * pParent,
 | const char * szName,
 | const PajaTypes::Vector3C & rValue,
 | PajaTypes::uint32 ui32ID,
 | PajaTypes::uint32 ui32Style = PARAM_STYLE_EDITBOX,
 | bool bAnimatable = true,
 | const PajaTypes::Vector3C & rMin = PajaTypes::Vector3C(),
 | const PajaTypes::Vector3C & rMax = PajaTypes::Vector3C(),
 | PajaTypes::float32 f32Inc = 0.1f ) [static]

Creates a new 3D vector parameter.

Parameters:
pParent | Pointer to the parent gizmo.
szName | The name of the parameter as NULL terminated string.
rValue | Start value of the parameter.
ui32ID | ID of the parameter.
ui32Style | The style of the parameter. Must be PARAM_STYLE_EDITBOX. In addition PARAM_STYLE_PERCENT or PARAM_STYLE_ANGLE can be set. Default PARAM_STYLE_EDITBOX.
bAnimatable | If set true the parameter is animatable, else it's not (you may use PARAM_ANIMATABLE or PARAM_NOT_ANIMATABLE too). Default true.
rMin | The minimum of the parameter value range. Default (0, 0, 0).
rMax | The maximum of the parameter value range. Default (0, 0, 0).
f32Inc The increment of the value spinner in type-in. Default 0.1.

If minimum and maximum of the range are same no range checking is used.

The only type-in style is editbox.

If PARAM_STYLE_PERCENT is set, percent marks are used in the GUI, and also the values are multiplied by 100 before displayed. That is, the value for 100% is 1.0.

If PARAM_STYLE_ANGLE is set, the angle mark is shown in the GUI. The value is not scaled.

Example: This example creates new parameter. The name of the parameter is "Position", it's default value is (0, 0, 0) and it's ID is ID_POSITION (constant defined by the plugin writer), the type-in style is editbox, the parameter can be animated, and no range is defined. Spinner increment is default 0.1.

            m_pParamPos = ParamVector3C::create_new( this, "Position", Vector3C(), ID_POSITION,
                                                        PARAM_STYLE_EDITBOX, PARAM_ANIMATABLE );

virtual ControllerC* get_controller ( ) [virtual]

Returns the conroller attached to the parameter.

NULL is returned if the parameter cannot be animated.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_id ( ) const [virtual]

Returns the ID of the parameter.

Reimplemented from Composition::ParamI.

virtual PajaTypes::float32 get_increment ( ) const [virtual]

Returns the spinner increment.

Reimplemented from Composition::ParamI.

const PajaTypes::Vector3C & get_max ( ) const [virtual]

Returns the maximum of the value range.

const PajaTypes::Vector3C & get_min ( ) const [virtual]

Returns the minimum of the value range.

virtual bool get_min_max ( | PajaTypes::float32 * pMin,
 | PajaTypes::float32 * pMax ) [virtual]

Returns the range of the parameter.

Parameters:
pMin pointer to a array of maximum of KEY_MAXCHANNEL floats.
pMax pointer to a array of maximum of KEY_MAXCHANNEL floats.

If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats.

Returns:
true if the range is valid, false if the range is not used.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_style ( ) const [virtual]

Returns the style of the parameter.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 get_type ( ) const [virtual]

Returns the type of the parameter.

Reimplemented from Composition::ParamI.

void get_val ( | PajaTypes::int32 t,
 | PajaTypes::Vector3C & val ) [virtual]

Gets the value of the parameter at specified time.

virtual void get_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 * val ) [virtual]

Returns the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If The parameter is animated, interpolated value is returned.

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Serialize the parameter from a Demopaja input stream.

Reimplemented from Composition::ParamI.

virtual void restore ( Edit::EditableI * pBlock ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Composition::ParamI.

virtual PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Serialize the parameter to a Demopaja output stream.

Reimplemented from Composition::ParamI.

virtual void set_controller ( ControllerC * cnt ) [virtual]

Sets the controller of the parameter.

Reimplemented from Composition::ParamI.

virtual void set_id ( PajaTypes::uint32 id ) [virtual]

Sets the ID of the parmeter.

Reimplemented from Composition::ParamI.

virtual void set_increment ( PajaTypes::float32 inc ) [virtual]

Sets the spinner increment of the parameter.

The spinner increment is the smallest value the parameter is meant to control. For 1/10th accuracy use spinner increment of 0.1. The spinner increment is used in the spinners of the type-ins and also to draw the values in the GUI.

Reimplemented from Composition::ParamI.

void set_min_max ( | const PajaTypes::Vector3C & min,
 | const PajaTypes::Vector3C & max ) [virtual]

Sets the range of the parameter.

virtual void set_style ( PajaTypes::uint32 style ) [virtual]

Sets the style of the parameter.

Reimplemented from Composition::ParamI.

void set_val ( | PajaTypes::int32 t,
 | const PajaTypes::Vector3C & val ) [virtual]

Sets the value of the parameter at specified time.

virtual void set_val ( | PajaTypes::int32 t,
 | PajaTypes::float32 * val ) [virtual]

Sets the value of the parameter.

Parameters:
pVal pointer to a array of maximum of KEY_MAXCHANNEL floats. If the type of the parameter id not know use arrays of KEY_MAXCHANNEL floats. If the parameter is animated a new keyframe is created or existing is updated.

Reimplemented from Composition::ParamI.

The documentation for this class was generated from the following file:
  • ParamI.h


PajaTypes::QuatC Class Reference

Quaternion class. More...

#include <QuatC.h>

List of all members.

Public Methods

  • QuatC ( float32 f32X = 0, float32 f32Y = 0, float32 f32Z = 0, float32 f32W = 1 )
  • QuatC ( const QuatC& rQuat )
  • virtual ~QuatC ()
  • void from_rot_matrix ( const Matrix3C& rMat )
  • Matrix3C to_rot_matrix () const
  • void from_axis_angle ( const Vector3C& rVec, float32 f32Angle )
  • void from_axis_angle ( float32 f32X, float32 f32Y, float32 f32Z, float32 f32Angle )
  • void to_axis_angle ( Vector3C& rVec, float32& f32Angle ) const
  • void to_axis_angle ( float32& f32X, float32& f32Y, float32& f32Z, float32& f32Angle ) const
  • QuatC operator- () const
  • float32& operator[] ( int32 i )
  • const float32& operator[] ( int32 i ) const
  • QuatC operator+ ( const QuatC& rQuat ) const
  • QuatC operator- ( const QuatC& rQuat ) const
  • QuatC operator * ( const QuatC& rQuat ) const
  • QuatC operator/ ( const QuatC& rQuat ) const
  • QuatC operator * ( float32 f32Scalar ) const
  • bool operator== ( const QuatC& rQuat ) const
  • bool operator!= ( const QuatC& rQuat ) const
  • float32 dot ( const QuatC& rQuat ) const
  • float32 norm () const
  • QuatC inverse () const
  • QuatC unit_inverse () const
  • QuatC exp () const
  • QuatC log () const
  • QuatC normalize () const

Static Public Methods

  • QuatC slerp ( float32 f32T, const QuatC& rQ, const QuatC& rP )

Friends

  • QuatC operator * ( float32 f32Scalar, const QuatC& rQuat )

Detailed Description

Quaternion class.

QuatC class defines a quaternion class which is used by the Demopaja system. The quaternion class implements standard set of methods and overdriven operators for easy use.

This class is implemented by the system.

Constructor & Destructor Documentation

QuatC ( | float32 f32X = 0,
 | float32 f32Y = 0,
 | float32 f32Z = 0,
 | float32 f32W = 1 )

Default constructor.

QuatC ( const QuatC & rQuat )

copy constructor.

~QuatC ( ) [virtual]

Default destructor.

Member Function Documentation

float32 dot ( const QuatC & rQuat ) const [inline]

Computes the quaternion dot product and returns the result.

QuatC exp ( ) const

Computes the exponential of the quaternion and returns the result.

void from_axis_angle ( | float32 f32X,
 | float32 f32Y,
 | float32 f32Z,
 | float32 f32Angle )

Creates quaternion from axis-angle presentation and stores the result in the quaternion.

void from_axis_angle ( | const Vector3C & rVec,
 | float32 f32Angle )

Creates quaternion from axis-angle presentation and stores the result in the quaternion.

void from_rot_matrix ( const Matrix3C & rMat )

Converts a matrix to quaternion and stores the result to the quaternion.

QuatC inverse ( ) const

Converts the quaternion to unit-length and inverses it and returns the result.

Use this method to inverse non-unit-length quaternions.

QuatC log ( ) const

Computes the logarithm of the quaternion and returns the result.

float32 norm ( ) const [inline]

Return the squared-length of the quaternion.

QuatC normalize ( ) const

Normalizes the quaternion to unit length and returns the result.

QuatC operator * ( float32 f32Scalar ) const [inline]

Multiplies the quaternion by a scalar value specified by the argument and returns the result.

QuatC operator * ( const QuatC & rQuat ) const

Multiplies the quaternion specified by argument from the quaternion and returns the result.

bool operator!= ( const QuatC & a ) const [inline]

Returns true if both quaternions are non-equal, else false.

QuatC operator+ ( const QuatC & rQuat ) const [inline]

Adds the quaternion specified by argument from the quaternion and returns the result.

QuatC operator- ( const QuatC & rQuat ) const [inline]

Substracts the quaternion specified by argument from the quaternion and returns the result.

QuatC operator- ( ) const [inline]

Negates the quaternion and returns the result.

QuatC operator/ ( const QuatC & rQuat ) const

Divides the quaternion specified by argument from the quaternion and returns the result.

bool operator== ( const QuatC & a ) const [inline]

Returns true if both quaternions are equal, else false.

const float32 & operator[] ( int32 i ) const [inline]

Return reference to the component pointed by the index.

The index values from 0 to 3 corresponds to components X, Y, Z, and W respectively. There are two versions of this method, this version is for retrieving the values.

float32 & operator[] ( int32 i ) [inline]

Return reference to the component pointed by the index.

The index values from 0 to 3 corresponds to components X, Y, Z, and W respectively. There are two versions of this method, this version is to assign values.

QuatC slerp ( | float32 f32T,
 | const QuatC & rQ,
 | const QuatC & rP ) [static]

Spherical linear interpolation.

Parameters:
f32T | The time of interpolation. Range 0..1.
Reference | to the quaternion to interpolate from.
Reference to the quaternion to interpolate to.

Uses spherical linear interpolation to find the quaternion value between the first and the second interpolation quaternions.

void to_axis_angle ( | float32 & f32X,
 | float32 & f32Y,
 | float32 & f32Z,
 | float32 & f32Angle ) const

Converts the quaternion to axis-angle presentation and stores the result to the arguments.

void to_axis_angle ( | Vector3C & rVec,
 | float32 & f32Angle ) const

Converts the quaternion to axis-angle presentation and stores the result to the arguments.

Matrix3C to_rot_matrix ( ) const

Converts the quaternion to matrix and returns the result.

QuatC unit_inverse ( ) const [inline]

Inverses the quaternion and returns the result.

Use this method to inverse unit-length quaternions.

Friends And Related Function Documentation

QuatC operator * ( | float32 f32Scalar,
 | const QuatC & rQuat ) [friend]

Multiplies the quaternion by a scalar value specified by the argument and returns the result.

The documentation for this class was generated from the following file:
  • QuatC.h


FileIO::SaveC Class Reference

Demopaja output stream. More...

#include <SaveC.h>

List of all members.

Public Methods

  • SaveC ()
  • virtual ~SaveC ()
  • virtual PajaTypes::uint32 open ( const char* szName, const PajaTypes::int8* pSignature, PajaTypes::int32 i32SignatureSize )
  • virtual PajaTypes::uint32 close ()
  • virtual PajaTypes::uint32 begin_chunk ( PajaTypes::uint32 ui32ID, PajaTypes::uint32 ui32Version )
  • virtual PajaTypes::uint32 end_chunk ()
  • virtual PajaTypes::uint32 write ( const void* pBuffer, PajaTypes::uint32 ui32Len )
  • virtual PajaTypes::uint32 write_str ( const char* szStr )
  • virtual PajaTypes::uint32 get_error ()

Detailed Description

Demopaja output stream.

SaveC is used to save the information in Demopaja into a chunk based file format. The data in the output stream is serialized in chunk based format. Each begin_chunk() call should be closed with a call to the end_chunk() method.

This class is implemented by the system.

Example of save() method of an effect class:

        uint32
        TestEffectC::save( SaveC* pSave )
        {
            uint32  ui32Error = IO_OK;

            // EffectI stuff
            pSave->begin_chunk( CHUNK_TESTEFFECT_BASE, TESTEFFECT_VERSION );
                ui32Error = EffectI::save( pSave );
            pSave->end_chunk();

            // Save transform gizmo
            pSave->begin_chunk( CHUNK_TESTEFFECT_TRANSGIZMO, TESTEFFECT_VERSION );
                ui32Error = m_pTransGizmo->save( pSave );
            pSave->end_chunk();

            // Save attribute gizmo
            pSave->begin_chunk( CHUNK_TESTEFFECT_ATTRIBGIZMO, TESTEFFECT_VERSION );
                ui32Error = m_pAttribGizmo->save( pSave );
            pSave->end_chunk();

            return ui32Error;
        }

See also:
LoadC

Constructor & Destructor Documentation

SaveC ( )

Default constructor.

~SaveC ( ) [virtual]

Default destructor.

Member Function Documentation

PajaTypes::uint32 begin_chunk ( | PajaTypes::uint32 ui32ID,
 | PajaTypes::uint32 ui32Version ) [virtual]

Begins a chunk a data.

Parameters:
ui32ID | ID of the chunk.
ui32Version | Version of the chunk.
Returns:
IO_OK if everything went ok, error otherwise.

The versionin of chunks enables to easy modification to the format of the stored data in the file. The ID and Version info are available when the chunk is read back from the file.

Example:

            ...
            // Begin new chunk of data.
            pSave->begin_chunk( CHUNK_TGAIMPORT_NAME, TGAIMPORT_VERSION );
                // Write data to a chunk.
                sStr = m_sFileName;
                if( sStr.size() > 255 )
                    sStr.resize( 255 );
                ui32Error = pSave->write_str( sStr.c_str() );
            // Close data chunk.
            pSave->end_chunk();
            ...

PajaTypes::uint32 close ( ) [virtual]

Flushes all buffers and closes output stream.

PajaTypes::uint32 end_chunk ( ) [virtual]

Closes a chunk.

Calls to this method are hierarchial. There can be many chunks open at the same time. The chunk opened by the last call to begin_chunck() is closed.

Returns:
IO_OK if everything went ok, error otherwise.

PajaTypes::uint32 get_error ( ) [virtual]

Returns current error code.

PajaTypes::uint32 open ( | const char * szName,
 | const PajaTypes::int8 * pSignature,
 | PajaTypes::int32 i32SignatureSize ) [virtual]

Opens output stream.

See FileIOErrorsE for more information on the error codes.

Parameters:
szName | NULL terminated name of the output file.
pSignature | pointer to array of bytes describing the signature of the file.
length of the signature in bytes.

Returns:
IO_OK if everything went ok, error otherwise.

PajaTypes::uint32 write ( | const void * pBuffer,
 | PajaTypes::uint32 ui32Len ) [virtual]

Writes a buffer to the stream.

Parameters:
pBuffer | pointer to the buffer containing all the data.
ui32Len | length of the buffer in bytes.
Returns:
IO_OK if everything went ok, error otherwise.

PajaTypes::uint32 write_str ( const char * szStr ) [virtual]

Writes string to the stream.

Returns:
IO_OK if everything went ok, error otherwise.

The documentation for this class was generated from the following file:
  • SaveC.h


Composition::SceneC Class Reference

Composition scene class. More...

#include <SceneC.h>

Inheritance diagram for Composition::SceneC:

Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual Edit::DataBlockI* create ()
  • virtual Edit::DataBlockI* create ( Edit::EditableI* pOriginal )
  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pEditable )
  • void set_name ( const char* szName )
  • const char* get_name () const
  • PajaTypes::uint32 get_layer_count ()
  • LayerC* get_layer ( PajaTypes::uint32 ui32Index )
  • LayerC* add_layer ()
  • void del_layer ( PajaTypes::uint32 ui32Index )
  • void move_layer_before ( PajaTypes::uint32 ui32Index, PajaTypes::uint32 ui32IndexBefore )
  • PajaTypes::int32 get_beats_per_min ()
  • void set_beats_per_min ( PajaTypes::int32 i32BeatsPerMin )
  • PajaTypes::int32 get_edit_accuracy ()
  • void set_edit_accuracy ( PajaTypes::int32 i32Accuracy )
  • PajaTypes::int32 get_beats_per_measure ()
  • void set_beats_per_measure ( PajaTypes::int32 i32Beats )
  • PajaTypes::int32 get_qnotes_per_beat ()
  • void set_qnotes_per_beat ( PajaTypes::int32 i32QNotes )
  • PajaTypes::int32 get_duration ()
  • void set_duration ( PajaTypes::int32 i32Duration )
  • PajaTypes::int32 get_layout_width ()
  • void set_layout_width ( PajaTypes::int32 i32Width )
  • PajaTypes::int32 get_layout_height ()
  • void set_layout_height ( PajaTypes::int32 i32Height )
  • PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • PajaTypes::uint32 load ( FileIO::LoadC* pLoad )
  • PajaTypes::uint32 load ( FileIO::LoadC* pLoad, bool bMerge )

Static Public Methods

  • SceneC* create_new ()

Protected Methods

  • SceneC ()
  • SceneC ( Edit::EditableI* pOriginal )
  • virtual ~SceneC ()

Detailed Description

Composition scene class.

The base of the demo in Demopaja is scene. The layers are store inside the scene. Scene also contains information about the size of the canvas where the demo is shown and the speed of the demo.

The changes made to the scene is saved to a undo object if present.

This class is implemented by the system.

Constructor & Destructor Documentation

SceneC ( ) [protected]

Default constructor.

SceneC ( Edit::EditableI * pOriginal ) [protected]

Constructor with reference to the original.

~SceneC ( ) [protected, virtual]

Default destructor.

Member Function Documentation

LayerC * add_layer ( )

Adds new layer to the scene.

void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( Edit::EditableI * pOriginal ) [virtual]

Creates new scene (used internally), see Edit::EditableI::create().

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( ) [virtual]

Creates new, empty scene.

Reimplemented from Edit::EditableI.

SceneC * create_new ( ) [static]

Creates new, empty scene.

void del_layer ( PajaTypes::uint32 ui32Index )

Deletes a layer at specified index.

PajaTypes::int32 get_beats_per_measure ( )

Returns number of beats per measure of the demo.

PajaTypes::int32 get_beats_per_min ( )

Returns number of beats per minute (BPM) of the demo.

PajaTypes::int32 get_duration ( )

Returns the duration of the demo.

The return value is number of quater-notes multiplied by 256.

PajaTypes::int32 get_edit_accuracy ( )

Returns the edit accuracy of the demo.

LayerC * get_layer ( PajaTypes::uint32 ui32Index )

Returns a layer at specified index.

PajaTypes::uint32 get_layer_count ( )

Returns number of layers in the scene.

PajaTypes::int32 get_layout_height ( )

Returns the height of the layout in pixels.

PajaTypes::int32 get_layout_width ( )

Returns the width of the layout in pixels.

const char * get_name ( ) const

Returns the name of the scene.

PajaTypes::int32 get_qnotes_per_beat ( )

Returns number of quater-notes per beat.

PajaTypes::uint32 load ( | FileIO::LoadC * pLoad,
 | bool bMerge )

Serialize the key from a Demopaja input stream with merge to old scnene.

PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Serialize the key from a Demopaja input stream.

Reimplemented from Edit::EditableI.

void move_layer_before ( | PajaTypes::uint32 ui32Index,
 | PajaTypes::uint32 ui32IndexBefore )

Moves the order of a layer.

Parameters:
ui32Index | the index of the layer to move.
ui32IndexBefore | the index of the layer before the layer is moved. Moves the layer before another layer.

void restore ( Edit::EditableI * pEditable ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Edit::EditableI.

PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Serialize the key to a Demopaja output stream.

Reimplemented from Edit::EditableI.

void set_beats_per_measure ( PajaTypes::int32 i32Beats )

Sets number of beats per measure of the demo.

void set_beats_per_min ( PajaTypes::int32 i32BeatsPerMin )

Sets number of beats per minute (BPM) of the demo.

void set_duration ( PajaTypes::int32 i32Duration )

Sets the duration of the demo.

void set_edit_accuracy ( PajaTypes::int32 i32Accuracy )

Sets the edit accuracy of the demo.

void set_layout_height ( PajaTypes::int32 i32Height )

Sets the height of the layout in pixels.

void set_layout_width ( PajaTypes::int32 i32Width )

Sets the width of the layout in pixels.

void set_name ( const char * szName )

Sets the name of the scene.

void set_qnotes_per_beat ( PajaTypes::int32 i32QNotes )

Sets number of quater-notes per beat.

The documentation for this class was generated from the following file:
  • SceneC.h


PluginClass::SuperClassIdC Class Reference

Plugin super class ID. More...

#include <ClassIdC.h>

List of all members.

Public Methods

  • SuperClassIdC ()
  • SuperClassIdC ( PajaTypes::uint32 ui32SuperClass )
  • SuperClassIdC ( const SuperClassIdC& rClassId )
  • virtual ~SuperClassIdC ()
  • PajaTypes::uint32 get_class () const
  • bool operator== ( const SuperClassIdC& rClassId ) const
  • bool operator!= ( const SuperClassIdC& rClassId ) const
  • SuperClassIdC& operator= ( const SuperClassIdC& rClassId )

Detailed Description

Plugin super class ID.

Super class IDs are system defined constants which describes the class the plugin class is derived from. For example all effects are derived from EffectI and the plugin class recriptor should return SUPERCLASS_EFFECT (defined in EffectI.h). The super class ID is more important in imported files where, for example, all image loaders have same interface and the effect plugin class can use any type of image to work with. Super class ID consists of one 32-bit unsigned integer number.

This class is implemented by the system.

Constructor & Destructor Documentation

SuperClassIdC ( )

Default constructor, assigns the number to zero (NULL super class ID).

SuperClassIdC ( PajaTypes::uint32 ui32SuperClass )

Creates a new super class ID with the same values as the argument.

SuperClassIdC ( const SuperClassIdC & rClassId )

Copy constructor, creates a new super class ID with the same values as the argument.

~SuperClassIdC ( ) [virtual]

Default Destructor.

Member Function Documentation

PajaTypes::uint32 get_class ( ) const

Returns the super class ID.

bool operator!= ( const SuperClassIdC & rClassId ) const

Returns true if the super class IDs are non-equal, else false.

SuperClassIdC & operator= ( const SuperClassIdC & rClassId )

Copy operator.

bool operator== ( const SuperClassIdC & rClassId ) const

Returns true if the super class IDs are equal, else false.

The documentation for this class was generated from the following file:
  • ClassIdC.h


PajaSystem::TimeContextC Class Reference

Time context class. More...

#include <TimeContextC.h>

List of all members.

Public Methods

  • TimeContextC ( PajaTypes::int32 i32BeatsPerMin, PajaTypes::int32 i32QNotesPerBeat, PajaTypes::int32 i32EditAccuracy )
  • virtual ~TimeContextC ()
  • virtual PajaTypes::float64 convert_fps_to_time ( PajaTypes::float64 f64Time, PajaTypes::float64 f64FPS )
  • virtual PajaTypes::float64 convert_time_to_fps ( PajaTypes::float64 f64FpsTime, PajaTypes::float64 f64FPS )
  • virtual PajaTypes::int32 get_beats_per_min () const
  • virtual PajaTypes::int32 get_qnotes_per_beat () const
  • virtual PajaTypes::int32 get_edit_accuracy () const

Detailed Description

Time context class.

Time context is helper class which provides the timing information to the effect plugin class. There are also couple of methods which helps converting timing information provided in FPS form to the Demopaja time and back.

This class is implemented by the system.

Constructor & Destructor Documentation

TimeContextC ( | PajaTypes::int32 i32BeatsPerMin,
 | PajaTypes::int32 i32QNotesPerBeat,
 | PajaTypes::int32 i32EditAccuracy )

Default constructor (used internally).

~TimeContextC ( ) [virtual]

Default destructor (used internally).

Member Function Documentation

PajaTypes::float64 convert_fps_to_time ( | PajaTypes::float64 f64Time,
 | PajaTypes::float64 f64FPS ) [virtual]

Converts time in FPS timecode to Demopaja timecode.

Parameters:
f64Time Time in FPS (frames per second) timecode
f64FPS Frames per second.

Example: The animation in a file is defined as 30 FPS and the first frame is 10 and last frame is 520, and you should convert the time in Demopaja system.
            int32   i32FPS = 30;
            int32   i32FirstFrame = 10;
            int32   i32LastFrame = 520;
            int32   i32Length = i32LastFrame - i32FirstFrame;
            // Convert the time. (FPS -> Demopaja)
            float64 f64Time = pTimeContext->convert_fps_to_time( i32Length, i32FPS );

PajaTypes::float64 convert_time_to_fps ( | PajaTypes::float64 f64FpsTime,
 | PajaTypes::float64 f64FPS ) [virtual]

Converts time in Demopaja timecode to FPS timecode.

Parameters:
f64Time Time in Demopaja timecode
f64FPS Frames per second.

Example: Your animation is defined as 30 FPS, 160 ticks per frame, and you want to get the frame number at current time (i32Time in the example):

            int32   i32FPS = 30;
            int32   i32TicksPerFrame = 160;
            // Convert the time. (Demopaja -> FPS)
            m_i32Frame = (int32)(pTimeContext->convert_time_to_fps( i32Time, i32FPS ) * (float64)i32TicksPerFrame);
            // Adjust the animation to start at the first frame.
            m_i32Frame += i32FirstFrame * i32TicksPerFrame;

PajaTypes::int32 get_beats_per_min ( ) const [virtual]

Returns beats per minute (BPM).

PajaTypes::int32 get_edit_accuracy ( ) const [virtual]

Returns edit accuracy.

PajaTypes::int32 get_qnotes_per_beat ( ) const [virtual]

Returns quarter notes per beat.

The documentation for this class was generated from the following file:
  • TimeContextC.h


Composition::TimeSegmentC Class Reference

Time segment class. More...

#include <TimeSegmentC.h>

Inheritance diagram for Composition::TimeSegmentC:

Edit::EditableI Edit::DataBlockI List of all members.

Public Methods

  • virtual Edit::DataBlockI* create ()
  • virtual Edit::DataBlockI* create ( Edit::EditableI* pOriginal )
  • virtual void copy ( Edit::DataBlockI* pBlock )
  • virtual void restore ( Edit::EditableI* pEditable )
  • virtual PajaTypes::int32 get_segment_start ()
  • virtual void set_segment_start ( PajaTypes::int32 i32Start )
  • virtual PajaTypes::int32 get_key_count ()
  • virtual KeyC* get_key ( PajaTypes::int32 i32Index )
  • virtual void del_key ( PajaTypes::int32 i32Index )
  • virtual PajaTypes::int32 get_key_time ( PajaTypes::int32 i32Index )
  • virtual void set_key_time ( PajaTypes::int32 i32Index, PajaTypes::int32 i32Time )
  • virtual KeyC* get_key_at_time ( PajaTypes::int32 i32Time )
  • virtual KeyC* add_key_at_time ( PajaTypes::int32 i32Time )
  • virtual void sort_keys ()
  • virtual bool is_visible ( PajaTypes::int32 i32Time )
  • virtual PajaTypes::uint32 save ( FileIO::SaveC* pSave )
  • virtual PajaTypes::uint32 load ( FileIO::LoadC* pLoad )

Static Public Methods

  • TimeSegmentC* create_new ()
  • TimeSegmentC* create_new ( PajaTypes::int32 i32SegmentStart, PajaTypes::int32 i32SegmentEnd )

Protected Methods

  • TimeSegmentC ()
  • TimeSegmentC ( PajaTypes::int32 i32SegmentStart, PajaTypes::int32 i32SegmentLength )
  • TimeSegmentC ( Edit::EditableI* pOriginal )
  • virtual ~TimeSegmentC ()

Detailed Description

Time segment class.

Time segment class implements the visibility control for Demopaja layers and effects. The time segment has a origo in time and set of keys. The origo is treated as the beginning of the effect (or for example begin of animation the effect plays). Every two keys defines a segment where the is_visible() method returns true (the layer/effect is visible). If there is odd number of keys the last key is ignored.

The time values of the keys in a time segment are stored relative to the time origo. The methods, which operates the keys based in time uses the same time space as the time segment itself.

The changes made to the time segment is saved to a undo object if present.

This class is implemented by the system.

See also:
KeyC

Constructor & Destructor Documentation

TimeSegmentC ( ) [protected]

Default constructor.

TimeSegmentC ( | PajaTypes::int32 i32SegmentStart,
 | PajaTypes::int32 i32SegmentLength ) [protected]

Creates new time segment.

TimeSegmentC ( Edit::EditableI * pOriginal ) [protected]

Default constructor with reference to the original.

~TimeSegmentC ( ) [protected, virtual]

Default destructor.

Member Function Documentation

KeyC * add_key_at_time ( PajaTypes::int32 i32Time ) [virtual]

Adds a key at specified time.

The time is in the same time space as the origo, even keys are relative to the origo of the time segment.

void copy ( Edit::DataBlockI * pBlock ) [virtual]

Deep copy from a data block, see Edit::DataBlockI::copy().

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( Edit::EditableI * pOriginal ) [virtual]

Creates new time segment (used internally), see Edit::EditableI::create().

Reimplemented from Edit::EditableI.

Edit::DataBlockI * create ( ) [virtual]

Create new time segment.

Sets the origo of the time segment to zero. Noe keys are created.

Reimplemented from Edit::EditableI.

TimeSegmentC * create_new ( | PajaTypes::int32 i32SegmentStart,
 | PajaTypes::int32 i32SegmentEnd ) [static]

Create new time segment.

Sets the origo of the timesegment to i32SegmentStart and creates two keys, first at the point in time of i32SegmentStart and second at the point in time of i32SegmentEnd.

TimeSegmentC * create_new ( ) [static]

Create new time segment.

Sets the origo of the time segment to zero. Noe keys are created.

void del_key ( PajaTypes::int32 i32Index ) [virtual]

Deletes a key at specified index.

KeyC * get_key ( PajaTypes::int32 i32Index ) [virtual]

Returns a key at specified index.

KeyC * get_key_at_time ( PajaTypes::int32 i32Time ) [virtual]

Returns a key at specified time.

The time is in the same time space as the origo, even keys are relative to the origo of the time segment.

PajaTypes::int32 get_key_count ( ) [virtual]

Returns the number of keys.

PajaTypes::int32 get_key_time ( PajaTypes::int32 i32Index ) [virtual]

Returns the time of the key.

The returned time is in the same time space as the origo, even keys are relative to the origo of the time segment.

PajaTypes::int32 get_segment_start ( ) [virtual]

Returns the origo of the time segment.

bool is_visible ( PajaTypes::int32 i32Time ) [virtual]

Returns true if there is visible segment at given time.

PajaTypes::uint32 load ( FileIO::LoadC * pLoad ) [virtual]

Serialize the time segment from a Demopaja input stream.

Reimplemented from Edit::EditableI.

void restore ( Edit::EditableI * pEditable ) [virtual]

Shallow copy from a editable, see Edit::EditableI::restore().

Reimplemented from Edit::EditableI.

PajaTypes::uint32 save ( FileIO::SaveC * pSave ) [virtual]

Serialize the time segment to a Demopaja output stream.

Reimplemented from Edit::EditableI.

void set_key_time ( | PajaTypes::int32 i32Index,
 | PajaTypes::int32 i32Time ) [virtual]

Sets the time of a key.

The time is in the same time space as the origo, even keys are relative to the origo of the time segment.

void set_segment_start ( PajaTypes::int32 i32Start ) [virtual]

Sets the origo of the time segment.

void sort_keys ( ) [virtual]

Sort the keys based on the time of a key.

The documentation for this class was generated from the following file:
  • TimeSegmentC.h


Edit::UndoC Class Reference

Undo object class. More...

#include <UndoC.h>

List of all members.

Public Methods

  • UndoC ( const char* szName )
  • virtual ~UndoC ()
  • virtual void undo ()
  • virtual void redo ()
  • virtual void add_restore_data ( EditableI* pBlock )
  • virtual void add_discardable_data ( DataBlockI* pBlock, PajaTypes::uint32 ui32Flags )
  • virtual const char* get_name ()
  • virtual bool can_redo ()

Detailed Description

Undo object class.

Undo object class is used internally by the Demopaja system to hold the original data modified by the action the undo object relates. For example if the editor executes a move command all the position parameters of the selected objects are push into the undo object. Later if the commands the application do undo, the data stored in the undo object is copied to the original place.

When the undo object is pushed out of the undo stack, the discardable data and the copies of the original date are finally deleted.

This class is implemented by the system.

Constructor & Destructor Documentation

UndoC ( const char * szName )

Default constructor.

Creates new undo object and gives it name spcified by the argument.

~UndoC ( ) [virtual]

Default desctructor.

Member Function Documentation

void add_discardable_data ( | DataBlockI * pBlock,
 | PajaTypes::uint32 ui32Flags ) [virtual]

Adds discardable data to the undo object.

The flags indicades whether the action was to remove or create new data. For example if you create new block of data and an undo object is available you should push the new data block, so that it can be deleted when the create action is undone.

void add_restore_data ( EditableI * pBlock ) [virtual]

Adds restore data to the undo object.

Adds cloned editable to the undo object which is later used to restore the original state of the editable. The data has to be created with the clone() method of the editable! Otherwise the pointer to the original data won't be available nad no data will be restored.

Example usage:

            ...
            pUndo->add_restore_data( clone() );     // push clone of editbale into the undo object.
            ...

bool can_redo ( ) [virtual]

Returns true if redo can be done (the condition is that undo is called).

const char * get_name ( ) [virtual]

Returns the name of the action.

void redo ( ) [virtual]

Redoes the undo object (used internally).

void undo ( ) [virtual]

Undoes the undo object (used internally).

The documentation for this class was generated from the following file:
  • UndoC.h


PajaTypes::Vector2C Class Reference

2D Vector class. More...

#include <Vector2C.h>

List of all members.

Public Methods

  • Vector2C ( float32 f32X = 0, float32 f32Y = 0 )
  • Vector2C ( const Vector2C& rVec )
  • Vector2C ( const float32 f32A[2] )
  • virtual ~Vector2C ()
  • float32& operator[] ( int32 i )
  • const float32& operator[] ( int32 i ) const
  • Vector2C operator- () const
  • bool operator== ( const Vector2C& rVec ) const
  • bool operator!= ( const Vector2C& rVec ) const
  • Vector2C& operator-= ( const Vector2C& rVec )
  • Vector2C& operator+= ( const Vector2C& rVec )
  • Vector2C& operator *= ( float32 f32S )
  • Vector2C& operator/= ( float32 f32S )
  • Vector2C operator * ( float32 f32S ) const
  • Vector2C operator/ ( float32 f32S ) const
  • Vector2C operator- ( const Vector2C& rVec ) const
  • Vector2C operator+ ( const Vector2C& rVec ) const
  • Vector2C operator * ( const Vector2C& rVec ) const
  • Vector2C normalize () const
  • float32 length () const
  • float32 dot ( const Vector2C& rVec ) const

Friends

  • Vector2C operator * ( float32 s, const Vector2C& rVec )

Detailed Description

2D Vector class.

Vector2C class defines a two dimensional vector class which is used by the Demopaja system. The vector class implements standard set of methods and overdriven opertators for easy use.

This class is implemented by the system.

Constructor & Destructor Documentation

Vector2C ( | float32 f32X = 0,
 | float32 f32Y = 0 )

Default constructor.

Vector2C ( const Vector2C & rVec )

Copy constructor.

Vector2C ( const float32 f32A[2] )

Creates a new vector with the values as the array pointed by the argument.

~Vector2C ( ) [virtual]

Default destructor.

Member Function Documentation

float32 dot ( const Vector2C & v ) const [inline]

Computes the dot product of the two vectors and returns the result.

float32 length ( ) const [inline]

Returns the length of the vector.

Vector2C normalize ( ) const

Normalizes the vector to unit size and returns the result.

Vector2C operator * ( const Vector2C & a ) const [inline]

Multiplies the vector specified by argument from the vector and returns the result.

The multiplication is done component vise (that is, each corresponding component is multiplied).

Vector2C operator * ( float32 s ) const [inline]

Multiplies the vector by a scalar value specified by the argument and returns the result.

Vector2C & operator *= ( float32 s ) [inline]

Multiplies the vector by a scalar value specified by the argument and stores the result.

bool operator!= ( const Vector2C & rVec ) const

Return true if both vectors are not equal, else false.

Vector2C operator+ ( const Vector2C & a ) const [inline]

Adds the vector specified by argument from the vector and returns the result.

Vector2C & operator+= ( const Vector2C & a ) [inline]

Adds the vector specified by argument from the vector and stores the result.

Vector2C operator- ( const Vector2C & a ) const [inline]

Substracts the vector specified by argument from the vector and returns the result.

Vector2C operator- ( ) const [inline]

Returns Negated vector.

Vector2C & operator-= ( const Vector2C & a ) [inline]

Substracts the vector specified by argument from the vector and stores the result.

Vector2C operator/ ( float32 s ) const [inline]

Divides the vector by a scalar value specified by the argument and returns the result.

Vector2C & operator/= ( float32 s ) [inline]

Divides the vector by a scalar value specified by the argument and stores the result.

bool operator== ( const Vector2C & rVec ) const

Return true if both vectors are equal, else false.

const float32 & operator[] ( int32 i ) const [inline]

Return reference to the component pointed by the index.

The index values from 0 to 1 corresponds to components X, and Y respectively. There are two versions of this method, this version is for retrieving the values.

float32 & operator[] ( int32 i ) [inline]

Return reference to the component pointed by the index.

The index values from 0 to 1 corresponds to components X, and Y respectively. There are two versions of this method, this version is to assign values.

Friends And Related Function Documentation

Vector2C operator * ( | float32 s,
 | const Vector2C & rVec ) [friend]

Multiplies the vector by a scalar value specified by the argument and returns the result.

The documentation for this class was generated from the following file:
  • Vector2C.h


PajaTypes::Vector3C Class Reference

3D vector class. More...

#include <Vector3C.h>

List of all members.

Public Methods

  • Vector3C ( float32 f32X = 0, float32 f32Y = 0, float32 f32Z = 0 )
  • Vector3C ( const Vector3C& rVec )
  • Vector3C ( float32 f32A[3] )
  • virtual ~Vector3C ()
  • float32& operator[] ( int32 i )
  • const float32& operator[] ( int32 i ) const
  • Vector3C operator- () const
  • bool operator== ( const Vector3C& rVec ) const
  • bool operator!= ( const Vector3C& rVec ) const
  • Vector3C& operator-= ( const Vector3C& rVec )
  • Vector3C& operator+= ( const Vector3C& rVec )
  • Vector3C& operator *= ( float32 f32S )
  • Vector3C& operator/= ( float32 f32S )
  • Vector3C operator * ( float32 f32S )
  • Vector3C operator/ ( float32 f32S )
  • Vector3C operator- ( const Vector3C& rVec ) const
  • Vector3C operator+ ( const Vector3C& rVec ) const
  • Vector3C operator * ( const Vector3C& rVec ) const
  • Vector3C normalize () const
  • float32 length () const
  • float32 dot ( const Vector3C& v ) const
  • Vector3C cross ( const Vector3C& v ) const

Friends

  • Vector3C operator * ( float32 f32S, const Vector3C& rVec )

Detailed Description

3D vector class.

Vector3C class defines a three dimensional vector class which is used by the Demopaja system. The vector class implements standard set of methods and overdriven opertators for easy use.

This class is implemented by the system.

Constructor & Destructor Documentation

Vector3C ( | float32 f32X = 0,
 | float32 f32Y = 0,
 | float32 f32Z = 0 )

Default constructor.

Vector3C ( const Vector3C & rVec )

Copy constructor.

Vector3C ( float32 f32A[3] )

Creates a new vector with the values as the array pointed by the argument.

~Vector3C ( ) [virtual]

Default destructor.

Member Function Documentation

Vector3C cross ( const Vector3C & v ) const

Computes the cross product of the two vectors and returns the result.

float32 dot ( const Vector3C & v ) const [inline]

Computes the dot product of the two vectors and returns the result.

float32 length ( ) const [inline]

Returns the length of the vector.

Vector3C normalize ( ) const

Normalizes the vector to unit size and returns the result.

Vector3C operator * ( const Vector3C & a ) const [inline]

Multiplies the vector specified by argument from the vector and returns the result.

The multiplication is done component vise (that is, each corresponding component is multiplied).

Vector3C operator * ( float32 s ) [inline]

Multiplies the vector by a scalar value specified by the argument and returns the result.

Vector3C & operator *= ( float32 s ) [inline]

Multiplies the vector by a scalar value specified by the argument and stores the result.

bool operator!= ( const Vector3C & rVec ) const

Returns true if both vectors are not equal, else false.

Vector3C operator+ ( const Vector3C & a ) const [inline]

Adds the vector specified by argument from the vector and returns the result.

Vector3C & operator+= ( const Vector3C & a ) [inline]

Adds the vector specified by argument from the vector and stores the result.

Vector3C operator- ( const Vector3C & a ) const [inline]

Substracts the vector specified by argument from the vector and returns the result.

Vector3C operator- ( ) const [inline]

Negated vector.

Vector3C & operator-= ( const Vector3C & a ) [inline]

Substracts the vector specified by argument from the vector and stores the result.

Vector3C operator/ ( float32 s ) [inline]

Divides the vector by a scalar value specified by the argument and returns the result.

Vector3C & operator/= ( float32 s ) [inline]

Divides the vector by a scalar value specified by the argument and stores the result.

bool operator== ( const Vector3C & rVec ) const

Returns true if both vectors are equal, else false.

const float32 & operator[] ( int32 i ) const [inline]

Returns reference to the component pointed by the index.

The index values from 0 to 2 corresponds to components X, Y, and Z respectively. There are two versions of this method, this version is for retrieving the values.

float32 & operator[] ( int32 i ) [inline]

Returns reference to the component pointed by the index.

The index values from 0 to 2 corresponds to components X, Y, and Z respectively. There are two versions of this method, this version is to assign values.

Friends And Related Function Documentation

Vector3C operator * ( | float32 f32S,
 | const Vector3C & rVec ) [friend]

Multiplies the vector by a scalar value specified by the argument and returns the result.

The documentation for this class was generated from the following file:
  • Vector3C.h


Hierarchical Index

Moppi Demopaja Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
  • BBox2C
  • ClassDescC
  • ClassIdC
  • ColorC
  • DataBlockI
    • EditableI
      • ControllerC
      • EffectI
      • GizmoI
      • KeyC
      • LayerC
      • ParamI
        • ParamColorC
        • ParamFileC
        • ParamFloatC
        • ParamIntC
        • ParamTextC
        • ParamVector2C
        • ParamVector3C
      • SceneC
      • TimeSegmentC
      • FileHandleC
      • FileListC
      • ImportableI
        • ImportableImageI
  • DecomposeAffineC
  • DeviceContextC
  • DeviceInterfaceI
    • OpenGLInterfaceC
  • FactoryC
  • ImportInterfaceC
  • LoadC
  • Matrix2C
  • Matrix3C
  • QuatC
  • SaveC
  • SuperClassIdC
  • TimeContextC
  • UndoC
  • Vector2C
  • Vector3C


Namespace Index

Moppi Demopaja Namespace List

Here is a list of all documented namespaces with brief descriptions:
  • Composition (The composition namespace)
  • Edit (The Edit namespace)
  • FileIO (Namespace for file IO related classes)
  • Import (The Import namespace)
  • PajaTypes (Generic types used in Demopaja)
  • PluginClass (Namespace for plugin class related classes)


Composition Namespace Reference

The composition namespace. More...

Compounds

  • class Composition::ControllerC
  • class Composition::EffectI
  • class Composition::GizmoI
  • class Composition::KeyC
  • struct Composition::ParamIntC::LabelS
  • class Composition::LayerC
  • class Composition::ParamColorC
  • class Composition::ParamFileC
  • class Composition::ParamFloatC
  • class Composition::ParamI
  • class Composition::ParamIntC
  • class Composition::ParamTextC
  • class Composition::ParamVector2C
  • class Composition::ParamVector3C
  • class Composition::SceneC
  • class Composition::TimeSegmentC

Enumerations

  • enum ControllerOrtE { CONT_ORT_NONE = 0, CONT_ORT_CONSTANT, CONT_ORT_REPEAT, CONT_ORT_LOOP }
  • enum ControllerTypeE {
    CONT_TYPE_NONE = 0, CONT_TYPE_INT, CONT_TYPE_FLOAT, CONT_TYPE_VECTOR2,
    CONT_TYPE_VECTOR3, CONT_TYPE_COLOR
    }
  • enum DefaultParamE { DEFAULT_PARAM_POSITION = 1,
DEFAULT_PARAM_ROTATION = 2,
DEFAULT_PARAM_SCALE = 3,
DEFAULT_PARAM_PIVOT = 4
 }
  • enum KeyFlagsE {
KEY_NOFLAGS = 0,
KEY_SELECTED = 0x0001,
KEY_LINEAR = 0x0002,
KEY_SMOOTH = 0x0004,
KEY_HOLD = 0x0008
}
  • enum ParameterTypesE {
    PARAM_TYPE_INT = 1, PARAM_TYPE_FLOAT, PARAM_TYPE_VECTOR2, PARAM_TYPE_VECTOR3,
    PARAM_TYPE_COLOR, PARAM_TYPE_TEXT, PARAM_TYPE_FILE
    }
  • enum ParamStyleE {
PARAM_STYLE_EDITBOX = 0x0001,
PARAM_STYLE_COMBOBOX = 0x0002,
PARAM_STYLE_TEXTPARAGRAPH = 0x0004,
PARAM_STYLE_FILE = 0x0008,
PARAM_STYLE_COLORPICKER = 0x0010,
PARAM_STYLE_PERCENT = 0x0020,
PARAM_STYLE_ANGLE = 0x0040,
PARAM_STYLE_ABS_POSITION = 0x0080,
PARAM_STYLE_REL_POSITION = 0x0100,
PARAM_STYLE_WORLD_SPACE = 0x0200,
PARAM_STYLE_OBJECT_SPACE = 0x0400
}

Variables

  • const PajaTypes::uint32 KEY_MAXCHANNELS = 4
  • const bool PARAM_ANIMATABLE = true
  • const bool PARAM_NOT_ANIMATABLE = false

Detailed Description

The composition namespace.

The classes collected into the Composition namespace are used as parts of demo composition. The classes range from a controller and parameter to a layer or complete scene.

Enumeration Type Documentation

enum ControllerOrtE

Controller out of range types.

Enumeration values:
CONT_ORT_CONSTANT | The out of range curve.
CONT_ORT_REPEAT | The curve is repeated.
CONT_ORT_LOOP | The curve is looped.

enum ControllerTypeE

Controller type.

Enumeration values:
CONT_TYPE_INT | Controller is used to interpolate integer values (1 channel).
CONT_TYPE_FLOAT | Controller is used to interpolate floating point values (1 channel).
CONT_TYPE_VECTOR2 | Controller is used to interpolate 2D vector values (2 channel).
CONT_TYPE_VECTOR3 | Controller is used to interpolate 3D vector values (3 channel).
CONT_TYPE_COLOR | Controller is used to interpolate color values (4 channel).

enum DefaultParamE

Predefined indices for get_gizmo().

This set of indices are used to get default parameters from effect.

Enumeration values:
DEFAULT_PARAM_POSITION | Position parameter.
DEFAULT_PARAM_ROTATION | Rotation parameter.
DEFAULT_PARAM_SCALE | Scale parameter.
DEFAULT_PARAM_PIVOT | Pivot parameter.

enum KeyFlagsE

Key flags.

Enumeration values:
KEY_SELECTED | Key is selected (used only in editor).
KEY_LINEAR | Key uses linear interpolation.
KEY_SMOOTH | Key uses smooth (TCB spline) interpolation.
KEY_HOLD | Key uses hold interpolation.

enum ParamStyleE

Parameter styles.

Enumeration values:
PARAM_STYLE_EDITBOX | Parameter has editbox type-in.
PARAM_STYLE_COMBOBOX | Parameter has combobox (drop down selection box) type-in.
PARAM_STYLE_TEXTPARAGRAPH | Parameter has text paragraph type-in (not implemented).
PARAM_STYLE_FILE | Parameter has file type-in.
PARAM_STYLE_COLORPICKER | Parameter has color picked type-in.
PARAM_STYLE_PERCENT | Parameter is percentage.
PARAM_STYLE_ANGLE | Parameter is angle.
PARAM_STYLE_ABS_POSITION | Positional parameter is absolute position (in screen space).
PARAM_STYLE_REL_POSITION | Positional parameter is relative position to the effect center.
PARAM_STYLE_WORLD_SPACE | Positional parameter is in world space (screen space).
PARAM_STYLE_OBJECT_SPACE | Positional parameter is object space (effect space).

enum ParameterTypesE

Parameter types.

Enumeration values:
PARAM_TYPE_INT | Integer parameter.
PARAM_TYPE_FLOAT | Floating-point value parameter.
PARAM_TYPE_VECTOR2 | 2D vector parameter.
PARAM_TYPE_VECTOR3 | 3D vector parameter.
PARAM_TYPE_COLOR | Color parameter.
PARAM_TYPE_TEXT | Text parameter.
PARAM_TYPE_FILE | File parameter.

Variable Documentation

const PajaTypes::uint32 KEY_MAXCHANNELS = 4

Maximum number of channels in a key.

This cosntant represent the maximum number of channels (values) the get_value() method may return.

const bool PARAM_ANIMATABLE = true

Constant for parameter creation.

const bool PARAM_NOT_ANIMATABLE = false

Constant for parameter creation.


Edit Namespace Reference

The Edit namespace. More...

Compounds

  • class Edit::DataBlockI
  • struct Edit::UndoC::DiscardableS
  • class Edit::EditableI
  • class Edit::UndoC

Enumerations

  • enum DiscardableTypeE { DATA_REMOVED = 1, DATA_CREATED = 2 }

Detailed Description

The Edit namespace.

The classes collected into the Edit namespace are very closely related to the internal undo-system of Demopaja. The classes range from the actual undo object to the basic data objects. which are handled by the undo system.

Enumeration Type Documentation

enum DiscardableTypeE

Flags for add_discardable_data().

Enumeration values:
DATA_REMOVED | The discardable data has been removed.
DATA_CREATED | The discardable data has been created.


FileIO Namespace Reference

Namespace for file IO related classes. More...

Compounds

  • struct FileIO::LoadC::ChunkHdrS
  • struct FileIO::LoadC::ErrorMessageS
  • struct FileIO::LoadC::FileHandlePatchS
  • class FileIO::LoadC
  • class FileIO::SaveC

Enumerations

  • enum FileIOErrorsE {
    IO_OK = 0, IO_END, IO_EOF, IO_ERROR_OPEN,
    IO_ERROR_WRITE, IO_ERROR_READ, IO_ERROR_FORMAT
    }

Detailed Description

Namespace for file IO related classes.

Enumeration Type Documentation

enum FileIOErrorsE

File IO errors.

Set of error codes returned from the calls to file IO classes.

Enumeration values:
IO_OK | OK, no error.
IO_END | Preliminary end of file.
IO_EOF | End of file, no error.
IO_ERROR_OPEN | Error opening file.
IO_ERROR_WRITE | Error writing to a file.
IO_ERROR_READ | Error reading from a file.
IO_ERROR_FORMAT | Bad file format.


Import Namespace Reference

The Import namespace. More...

Compounds

  • class Import::FileHandleC
  • class Import::FileListC
  • class Import::ImportableI
  • class Import::ImportableImageI
  • class Import::ImportInterfaceC

Enumerations

  • enum ImagePropertiesE {
IMAGE_RGB = 1,
IMAGE_ALPHA = 2,
IMAGE_GREY = 4,
IMAGE_WRAP = 8,
IMAGE_CLAMP = 16,
IMAGE_LINEAR = 32,
IMAGE_NEAREST = 64
}

Detailed Description

The Import namespace.

The classes collected to the Import namespace are used in import related tasks.

Enumeration Type Documentation

enum ImagePropertiesE

Properties for ImportableImageI::bind_texture().

Enumeration values:
IMAGE_RGB | Bind as RGB image (if the data is gray scale the bind may use grayscale).
IMAGE_ALPHA | Use alpha channel (only applies to one channel images).
IMAGE_GREY | Force to grey (only applies to one channel images).
IMAGE_WRAP | Wrap texture texture coordinates.
IMAGE_CLAMP | Clamp texture coordinates.
IMAGE_LINEAR | Bilinear inperpolation.
IMAGE_NEAREST | Point sampling interpolation.


PajaTypes Namespace Reference

Generic types used in Demopaja. More...

Compounds

  • class PajaTypes::BBox2C
  • class PajaTypes::ColorC
  • class PajaTypes::DecomposeAffineC
  • class PajaTypes::Matrix2C
  • class PajaTypes::Matrix3C
  • class PajaTypes::QuatC
  • class PajaTypes::Vector2C
  • class PajaTypes::Vector3C

Typedefs

  • typedef char int8
  • typedef unsigned char uint8
  • typedef short int16
  • typedef unsigned short uint16
  • typedef int int32
  • typedef unsigned int uint32
  • typedef float float32
  • typedef double float64
  • typedef long double float80

Functions

  • ColorC operator * ( float s, const ColorC& v )
  • Vector2C operator * ( const Matrix2C& m, const Vector2C& v )
  • Vector2C operator * ( const Vector2C& v, const Matrix2C& m )
  • Vector2C& operator *= ( Vector2C& v, const Matrix2C& m )
  • Vector3C operator * ( const Matrix3C& m, const Vector3C& v )
  • Vector3C operator * ( const Vector3C& v, const Matrix3C& m )
  • Vector3C& operator *= ( Vector3C& v, const Matrix3C& m )
  • QuatC operator * ( float32 f32Scalar, const QuatC& rQuat )
  • Vector2C operator * ( float32 s, const Vector2C& v )
  • Vector3C operator * ( float32 s, const Vector3C& v )

Detailed Description

Generic types used in Demopaja.

The PajaTypes namespace contains all basic data types used in Demopaja, such as integer types, floating-point types, vectors, matrices, quaternion, and color.

Typedef Documentation

typedef float float32

Single precicion floating point value.

typedef double float64

Double precicion floating point value.

typedef long double float80

Extra precicion floating point value.

typedef short int16

Signed 16-bit integer.

typedef int int32

Signed 32-bit integer.

typedef char int8

Signed 8-bit integer.

typedef unsigned short uint16

Unsigned 16-bit integer.

typedef unsigned int uint32

Unsigned 32-bit integer.

typedef unsigned char uint8

Unsigned 8-bit integer.


PluginClass Namespace Reference

Namespace for plugin class related classes. More...

Compounds

  • class PluginClass::ClassDescC
  • class PluginClass::ClassIdC
  • struct PluginClass::FactoryC::DLLClassS
  • class PluginClass::FactoryC
  • class PluginClass::SuperClassIdC

Enumerations

  • enum ClassTypesE { CLASS_TYPE_NONE = 0, CLASS_TYPE_EFFECT, CLASS_TYPE_FILEIMPORT }

Variables

  • const SuperClassIdC SUPERCLASS_INTERNAL = SuperClassIdC( 0x0000001 )
  • const SuperClassIdC SUPERCLASS_MESH3D = SuperClassIdC( 0x1000001 )
  • const SuperClassIdC SUPERCLASS_ANIM = SuperClassIdC( 0x1000002 )
  • const SuperClassIdC SUPERCLASS_VECTOR2D = SuperClassIdC( 0x1000003 )
  • const SuperClassIdC SUPERCLASS_FONT = SuperClassIdC( 0x1000004 )
  • const SuperClassIdC NULL_SUPERCLASS = SuperClassIdC( 0x0000000 )
  • const ClassIdC NULL_CLASSID = ClassIdC( 0, 0 )
  • const PluginClass::SuperClassIdC SUPERCLASS_EFFECT = PluginClass::SuperClassIdC( 0x1000000 )
  • const PluginClass::SuperClassIdC SUPERCLASS_IMPORT = PluginClass::SuperClassIdC( 0x2000000 )
  • const PluginClass::SuperClassIdC SUPERCLASS_IMAGE = PluginClass::SuperClassIdC( 0x2000001 )

Detailed Description

Namespace for plugin class related classes.

Enumeration Type Documentation

enum ClassTypesE

Plugin types.

Enumeration values:
CLASS_TYPE_EFFECT | Effect plugin.
CLASS_TYPE_FILEIMPORT | File import plugin.

Variable Documentation

const ClassIdC NULL_CLASSID = ClassIdC( 0, 0 )

NULL class ID.

const SuperClassIdC NULL_SUPERCLASS = SuperClassIdC( 0x0000000 )

NULL super class ID. (not implemented).

const SuperClassIdC SUPERCLASS_ANIM = SuperClassIdC( 0x1000002 )

Super class ID for animation import files. (not implemented).

const PluginClass::SuperClassIdC SUPERCLASS_EFFECT = PluginClass::SuperClassIdC( 0x1000000 )

The effect super class ID.

Every effect should return CLASS_EFFECT as super class.

const SuperClassIdC SUPERCLASS_FONT = SuperClassIdC( 0x1000004 )

Super class ID for Font import files. (not implemented).

const PluginClass::SuperClassIdC SUPERCLASS_IMAGE = PluginClass::SuperClassIdC( 0x2000001 )

The importable super class ID.

Every importer should return SUPERCLASS_IMAGE as super class if it implements the ImportableImageI interface.

const PluginClass::SuperClassIdC SUPERCLASS_IMPORT = PluginClass::SuperClassIdC( 0x2000000 )

The importable super class ID.

Every importer should return SUPERCLASS_IMPORT as super class if it only implements the ImportableI interface.

const SuperClassIdC SUPERCLASS_INTERNAL = SuperClassIdC( 0x0000001 )

Super class ID for internal use.

const SuperClassIdC SUPERCLASS_MESH3D = SuperClassIdC( 0x1000001 )

Super class ID for 3D mesh import files.

const SuperClassIdC SUPERCLASS_VECTOR2D = SuperClassIdC( 0x1000003 )

Super class ID for vector import files. (not implemented).


Page Index

Moppi Demopaja Related Pages

Here is a list of all related documentation pages:
  • Working with parameters
  • Effect Transformation
  • Creating the DLL functions
  • Creating a New Plugin Project
  • Making an Image Import Plugin
  • Making an Effect Plugin
  • Understanding Demopaja Undo System
  • Demopaja Help System


Working with parameters

Overview

Parameters in a Demopaja plugin effect are the interface between the effect and the user. The parameters are edited either using a parameter type-in dialogs or manipulating the keyframes in the Valuegraph. Most of the parameters can be animated using keyframes. To the developer the animation of a parameter is transparent and the same interface is always used to get the parameter value.

The time values used in a parameter are relative to the time origo of the effect. The system takes care of adjusting the time passed to the effect rendering and state evaluating methods so that the effect class does not have to change the time.

There are seven different kinds of parameters, which all are derived from the same base class ParamI. The base class controls most of the basic functionality of the paramter such as setting parameter flags, name or controller.

When creating a parameter pointer to the parent Gizmo is provided to enable the parameter change notifications to be releyed to the gizmo and further on to the effect. Each parameter also has an ID. This ID is used to identify the parameter notifcations.

ParamIntC

The integer parameter (ParamIntC) can be used to control integer parameters such as selection lists, or number-of parameters. It is possible to attach labels to anyvalue of the parameter (this is special feature of integer parameter). These labels can be selected using a dropdown list. The type-in styles for integer parameter are dropdown list (PARAM_STYLE_COMBOBOX) and simple edit box with spinner button (PARAM_STYLE_EDITBOX).

To get the current value of the pamaeter use the get_value() method. The arguments fo the get_value() are time and reference to the variale where the value is stored.

New integer parameter is created using the create_new() static method of the ParamIntC class.

See also:
Composition::ParamIntC

ParamFloatC

The float parameter (ParamFloatC) can be used to implement any parameter which can be controlled using one value, such as an angle, or a percentage parameter. The type-in style of float parameter is always edit box (PARAM_STYLE_EDITBOX). Additionally two flags can be set: PARAM_STYLE_PERCENT or PARAM_STYLE_ANGLE. The first makes the parameter to act as a percent in the user interface, percent symbols is shown at the end of the value and the parameter value is scale by 100 before shown in the user interface. The latter makes the parameter to act as a angle in the user interface, the angle symbols is added at the end of the parameter value.

New float parameter is created using the create_new() static method of the ParamIntC class.

See also:
Composition::ParamFloatC

ParamVector2C

The vector 2D can be used to control any 2D parameter such as position or scale. The type-in style and percent and angle styles are the same as in the float parameter (see above). If the parameter is used as positional parameter there are additional flags which enables the parameter to be edited in the Demopaja Layout View. These flags are: PARAM_STYLE_ABS_POSITION style indicates that the parameter is a in the same coordinate system as the layout. The position parameter of each effect should have this flag. PARAM_STYLE_REL_POSITION indicates that the parameter is realtive to the effect position. This style cannot be used alone. One of the follwing two flags have to be used. PARAM_STYLE_WORLD_SPACE indicates that a relative positional parameter should be edited in the layout coordinate system. PARAM_STYLE_OBJECT_SPACE style indicates a relative parameter should be edited in effect's coordinate system.

If effect has a pivot parameter it should have PARAM_STYLE_REL_POSITION and PARAM_STYLE_WORLD_SPACE styles. The position parameter should have PARAM_STYLE_ABS_POSITION style.

New vector 2D parameter is created using the create_new() static method of the ParamVector2C class.

See also:
Effect Transformation , Composition::ParamVector2C

ParamVector3C

The vector 3D can be used to control any 3D parameter such as position or scale. The type-in style and percent and angle styles are the same as in the float parameter (see above).

New vector 3D parameter is created using the create_new() static method of the ParamVector3C class.

See also:
Composition::ParamVector3C

ParamColorC

The color parameter can be sued to control four component (RGBA) colors. The alpha component may be ignored if not used. The type-in style of color parameter is always color picker(PARAM_STYLE_COLORPICKER).

New color parameter is created using the create_new() static method of the ParamColorC class.

See also:
Composition::ParamColorC

ParamTextC

The text parameter can be used for example to implement text input for text effects. The text parameter cannot be animated. The type-in style of text parameter is always edit box (PARAM_STYLE_EDITBOX).

New text parameter is created using the create_new() static method of the ParamTextC class.

See also:
Composition::ParamTextC

ParamFileC

The file parameter is the door to the import files for the effect. There is a file handle attached to each file parameter. This handle can be used to get a pointer to the actual importer class. The type-in style of file parameter is always file selector (PARAM_STYLE_FILE).

New file parameter is created using the create_new() static method of the ParamTextC class.

See also:
Composition::ParamFileC

Changing the Value of a Parameter

If you wish to change the value of a parameter you must store the changes to a undo object. There is no way to create new undo objects and store them into the undo stack. The change is usually needed to do when another parameter is changed. The parameter change can be catched either in the Composition::EffectI::update_notify() or Composition::GizmoI::update_notify() methods. The parameter which is changed has a valid undo object attached to it. The undo object can be get via the get_undo() method.

Here is an example which changes the content of a camera dropdown list when a file parameter is changed. The parameter change notify is catched in the gizmo.

    void
    TestGizmoC::init()
    {
        set_name( "Attributes" );

        m_pParamCamera = ParamIntC::create_new( this, "Camera", 0, ID_TEST_PARAMCAMERA,
            PARAM_STYLE_COMBOBOX, PARAM_ANIMATABLE, 0, 1 );
        m_pParamFile = ParamFileC::create_new( this, "Scene", SUPERCLASS_MESH3D, NULL_CLASSID, ID_TEST_PARAMFILE );
    }

    ...

    void
    TestGizmoC::update_notify( uint32 ui32Id, int32 i32Time )
    {
        if( ui32Id == ID_TEST_PARAMFILE ) {
            // The file has changed, update camera list.

            // Get undo object from the changed parameter.
            UndoC*          pUndo = m_pParamFile->get_undo();

            FileHandleC*    pHandle = 0;
            MASImportC*     pImp = 0;

            // Get importable.
            pHandle = m_pParamFile->get_file();
            if( pHandle )
                pImp = (MASImportC*)pHandle->get_importable();
            if( pImp ) {
                // Update labels.

                // Begin undo block.
                UndoC*  pOldUndo = m_pParamCamera->begin_editing( pUndo );

                // Set labels in camera parameter to the names of the cameras in the file.
                m_pParamCamera->clear_labels();
                for( uint32 i = 0; i < pImp->get_camera_count(); i++ ) {
                    CameraC*    pCam = pImp->get_camera( i );
                    if( !pCam ) continue;
                        m_pParamCamera->add_label( i, pCam->get_name() );
                }
                // Limit the parameter range to number of cameras.
                m_pParamCamera->set_min_max( 0, pImp->get_camera_count() );

                // Close undo block.
                m_pParamCamera->end_editing( pOldUndo );
            }
        }
        // Relay the message to the effect
        GizmoI::update_notify( ui32Id, i32Time );
    }

    ...

See also:
Understanding Demopaja Undo System


Effect Transformation

Overview

Contructing the effect transformation matrix

The Demopaja system supports plugin effects to be transformed using translation rotation and scale. Additionally rotation and scale can have a pivot point. The plugin effect does not have to support none of these transformations. It is though adviced to support at least position and scale transformation.

The rotation matrix is constructed in following order using the Matrix2C class:

    M = P * R * S * T

Where P is pivot patrix, R is rotation matrix, S is scale matrix, and T is translation matrix.

First the effect is offset to the pivot position then it is rotated, then scaled and finally translated to it's final position. The rotation and scale are in different order than usually expected. This avoids extra calculation which should be handled if the effect were scaled after rotation. It will also ease the editing process, since effects can be easier transformed in groups.

Default Parameters

The Demopaja system gets the parameters which affects the transformation via the get_default_param() method in the EffectI interface. It is important to implement the method correctly. The parameters can be inside any gizmo, the get_default_param() method just returns the requested parameter.

See also:
Composition::EffectI::get_default_param()

Position

 DEFAULT_PARAM_POSITION Position parameter has to be type ParamVector2C and have style: PARAM_STYLE_ABS_POSITION.

Pivot

DEFAULT_PARAM_PIVOT Pivot parameter has to be type ParamVector2C and have styles: PARAM_STYLE_REL_POSITION and PARAM_STYLE_WORLD_SPACE. The system handles pivot parameter a bit different than other parameters which affect the transformation. When a pivot is moved, also the position of the effect changes. If the position parameter is animated the change will also affect the animation. This is done to compensate the pivot change.

Rotation

DEFAULT_PARAM_ROTATION Rotation parameter has to be type ParamFloatC. It is adviced to also set the PARAM_STYLE_ANGLE style to indicate that the parameter is angle in the user interface.

Scale

DEFAULT_PARAM_SCALE Scale parameter has to be type ParamVector2C. It is adviced to also set the PARAM_STYLE_PERCENT style to indicate that the parameter is show as percent in the user interface.

See also:
Composition::EffectI , PajaTypes::Matrix2C


Creating the DLL functions

Overview

The plugins are interfaced to the Demopaja system via four functions which are implemented inside the DLL. In addition to those four functions also one function is needed for Windows to initialize the DLL. The Demopaja or Windows calls these functions when the plugin is loaded.

The functions are:

    • DllMain( HANDLE hModule, DWORD ulReasonForCall, LPVOID lpReserved )
    • get_classdesc_count()
    • get_classdesc( int32 i )
    • get_api_version()
    • get_dll_name()
The __declspec( dllexport ) before each function declaration (see code snippet below) makes sure the functions can be loaded from the plugin. Only the four last functions has to have this declaration.

The first funtion DllMain() is a Windows specific funtions which is called when the plugin is loaded. Since there is nothing to do in it, it may simply return TRUE to indicate that everything in initialisation went ok. See Windows API documentation for more information about DllMain.

The second function get_classdesc_count() returns number of plugin class descripors in the DLL. One DLL may have several class descriptors, one for each plugin class. The classdescriptor is used to provide more information about the plugin class, and also to create new instances of the plugin class.

The third function get_classdesc() returns the class descriptor at specified index. Since a pointer is returned the class descriptor has to be statically declared (such as a global variable) inside the DLL.

The fourth function get_api_version() returns the version number of the Demopaja API which was used to compile the plugin. The version information is used at load time to check if the plugin can be used with the current program version.

Finally, the fifth function get_dll_name() returns a short description about the DLL as a null terminated string.

The basic skeleton of a plugin DLL should look like this:

    #define WIN32_LEAN_AND_MEAN     // Exclude rarely-used stuff from
                    // Windows headers
    #include <windows.h>

    // Demopaja headers
    #include "DemopajaVersion.h"
    #include "PajaTypes.h"

    using namespace PajaTypes;

    // The DLL
    BOOL APIENTRY
    DllMain( HANDLE hModule, DWORD ulReasonForCall, LPVOID lpReserved )
    {
        return TRUE;
    }

    // Returns number of classes inside this plugin DLL.
    __declspec( dllexport )
    int32
    get_classdesc_count()
    {
        return 1;
    }

    // Returns class descriptors of the plugin classes.
    __declspec( dllexport )
    ClassDescC*
    get_classdesc( int32 i )
    {
        if( i == 0 )
            return g_rImageDesc;
        return 0;
    }

    // Returns the API version this DLL was made with.
    __declspec( dllexport )
    int32
    get_api_version()
    {
        return DEMOPAJA_VERSION;
    }

    // Returns the DLL name.
    __declspec( dllexport )
    char*
    get_dll_name()
    {
        return "PCXimport.dll - PCX importer (c) 2000 memon/moppi productions";
    }


Creating a New Plugin Project

Overview

This section explains the procedures which are common to all new plugin projects. It is assumed that the developer uses Microsoft Visual C++.

New Project File

To create a new Demopaja plugin project file follow the steps below:

  1. Choose File > New... then make sure the Projects tab is active.
  2. Select Win32 Dynamic Link Library from the list.
  3. Select the directory where the plugin project is created and fill in the project name.
  4. Press OK button to exit the dialog.
  5. At the prompt What kind of DLL would you like to create? choose An Empty DLL project.

Setting the Project Settings

First you will need to specify the output file name for the plugin. It is convenient to set the output directory to the directory where the other Demopaja plugins are. This way you don't have to copy the plugin file all the time. It's assumed that the Demopaja application is installed in directory C:\demopaja. You specify the output file name as follows:

  1. Choose Project > Settings... (ALT + F7). Make sure all the settings arebeing changed by selecting All Configurations from the Settings For: dropdown list. The next procedures assumes that all configurations are select until otherwise told.
  2. Select the Link tab.
  3. On the Output file name: editbox enter the path for the Demopaja plugin directory plus the name of you plugin. For example: C:\demopaja\plugins\myplugin.dll.
Since DLL cannot be run themselfs we need to specify an executable which will be run. Of course we will use the Demopaja application. To select the application:

  1. Select the Debug tab from the Project Settings dialog.
  2. Press the arrow next to the Executable for the debug session editbox and Choose Browse....
  3. Browse to the Demopaja directory and select the Demopaja executable. Press OK. Now the editbox should read for example: C:\demopaja\demopaja.exe.
  4. In the working directory write the Demopaja path. For example: C:\demopaja.
The third change to the project settings is to specify the path where the Demopaja SDK header files can be found. If you have the Demopaja SDK installed on C:\demopajasdk use the following:

  1. Select the C/C++ tab from the Project Settings dialog.
  2. Select Preprocessor rom the Category: dropdown list.
  3. On the Additional include directories: editbox enter the path C:\demopajasdk\include.
The next step is to specify the libraries you need to use. You should still keep the All Configurations selected. Pay attention to the library names. The debug library ends to D character and release to R.

  1. Select the Link tab from the Project Settings dialog.
  2. Choose the Input from the Category: dropdown list.
  3. On the Additional library path: editbox write the path C:\demopajasdk\lib.
Now update the Win32 Debug settings:

  1. From the Settings For: dropdown list choose Win32 Debug.
  2. From the Link tab, under the Category: dropdown list select General.
  3. Add corelibd.lib to the Object/library modules: edit box.
  4. From the C/C++ tab, under the Category: dropdown list select Code generation.
  5. Make sure Debug Multithreaded is selected from the Use run-time library: dropdown list.
Now update the Win32 Release settings:

  1. From the Settings For: dropdown list choose Win32 Release.
  2. From the Link tab, under the Category: dropdown list select General.
  3. Add corelibr.lib to the Object/library modules: edit box.
  4. From the C/C++ tab, under the Category: dropdown list select Code generation.
  5. Make sure Multithreaded is selected from the Use run-time library: dropdown list.
Now all the settings for the project are set. It is good idea to save the workspace now.

Adding CPP file to the project

To create a new plugin class you will need a C++ source file where the code for the plugin is written. To create a new C++ source file follow the steps below:

  1. Choose File > New... then make sure the Files tab is activate.
  2. Select C++ Source File from the list.
  3. Fill in the name for the file and press OK to exit the dialog.
In addition to the CPP source file you propably will need a C++ header file too. The steps to create a new header file is similar, just choose C/C++ Header File from the Files list.

See also:
Creating the DLL functions


Making an Image Import Plugin

Overview

This tutorial will guide you to write a simple image importer for Moppi Demopaja. The image format this plugin imports is the PCX file format.

First step

First we need to write the few functions which Demopaja loads from the DLL when the DLL is loaded. See the Creating a New Plugin Project for how to set up a new project.

Writing a plugin class descriptor

The next step is to write a class descriptor. We will implement a class descriptor for a import plugin. At this point we also need the unique class ID for our class. This class is generated with the class ID generator which comes with the SDK.

The class descriptor of the PCX importer looks like this:

    // The Class ID
    const ClassIdC  CLASS_PCX_IMPORT( 0x74C4BF04, 0xCA444A3D );

    //  PCX importer class descriptor.
    class PCXImportDescC : public ClassDescC
    {
    public:
        PCXImportDescC();
        virtual ~PCXImportDescC();
        virtual void*           create();
        virtual int32           get_classtype() const;
        virtual SuperClassIdC   get_super_classid() const;
        virtual ClassIdC        get_classid() const;
        virtual const char*     get_name() const;
        virtual const char*     get_desc() const;
        virtual const char*     get_author_name() const;
        virtual const char*     get_copyright_message() const;
        virtual const char*     get_url() const;
        virtual const char*     get_help_filename() const;
        virtual bool            check_device_support( DeviceContextC* pContext );
        virtual uint32          get_ext_count() const;
        virtual const char*     get_ext( uint32 ui32Index ) const;
    };

    PCXImportDescC::PCXImportDescC()
    {
        // empty
    }

    PCXImportDescC::~PCXImportDescC()
    {
        // empty
    }

The create method is used to create a new instance of the PCX importer class. In the PCX importer class there is a static member method which is used to create a new instance.

    void*
    PCXImportDescC::create()
    {
        return PCXImportC::create_new();
    }

Returns the plugin class type. CLASS_TYPE_FILEIMPORT is returned for importer plugins.

    int32
    PCXImportDescC::get_classtype() const
    {
        return CLASS_TYPE_FILEIMPORT;
    }

Returns the super class ID. Since the importer class is derived from the ImageImporterI we return the superclass ID of the ImportableImageI interface.

    SuperClassIdC
    PCXImportDescC::get_super_classid() const
    {
        return SUPERCLASS_IMAGE;
    }

Returns the class ID of the importer class. This class ID has to be unique for every plugin class that is implemented.

    ClassIdC
    PCXImportDescC::get_classid() const
    {
        return CLASS_PCX_IMPORT;
    }

Returns the name of the plugin class. This name should be short but desciptive. This name is shown to the user of the Demopaja.

    const char*
    PCXImportDescC::get_name() const
    {
        return "PCX Image";
    }

Returns a short description of the plugin class.

    const char*
    PCXImportDescC::get_desc() const
    {
        return "Importer for PCX images";
    }

These methods returns some information about the author of the plugin class, such name, copyright notice and an URL where the plugin/author can be found.

    const char*
    PCXImportDescC::get_author_name() const
    {
        return "Mikko \"memon\" Mononen";
    }
    const char*
    PCXImportDescC::get_copyright_message() const
    {
        return "Copyright (c) 2000 Moppi Productions";
    }

    const char*
    PCXImportDescC::get_url() const
    {
        return "http://www.moppi.inside.org/demopaja/";
    }

Returns the file name of the help file. Help files are in HTML format. This plugin has the HTML file stored in the resources of the DLL. See Demopaja Help System for more information how to deal with help files.

const char*
PCXImportDescC::get_help_filename() const
{
    return "res://pcxhelp.html";
}

This method is used to checks if this plugin class can be created and used within the current device context. Every device the plugin class depends on should be checked. The plugin class descriptor should check the support by trying to query the devices it needs. If they can be queried, they are available.

    bool
    PCXImportDescC::check_device_support( DeviceContextC* pContext )
    {
        if( pContext->query_interface( INTERFACE_OPENGL ) )
            return true;
        return false;
    }

Returns the number of file extensions this plugin class uses. For effect plugin classes zero should be returned, but since we are implementing an importer plugin we have to define at least one extension. Here we just return number of the extensions we have defined.

    uint32
    PCXImportDescC::get_ext_count() const
    {
        return 1;
    }

Returns an extension string at specified index. We have only one extension and it is "pcx".

    const char*
    PCXImportDescC::get_ext( uint32 ui32Index ) const
    {
        if( ui32Index == 0 )
            return "pcx";
        return 0;
    }

Now we should declare one global variable (those people who fear global variables propably can find a different way to do this) which type is the class we just defined. It is important that this variable is global (or at least static) since a pointer to it is returned to the Demopaja via the get_classdesc() function.

PCXImportDescC      g_rPCXImportDesc;

The Import Class

The final phase is to write the importer class itself. All importer plugin classes has to be derived from the ImporterI super class. In the Demopaja SDK there are set of interfaces which all are derived from the generic ImportableI interface. These interfaces has a set of methods which are common to all importers which are derived from it. For example image is such a generic thing that it can have an interface. The advantage of this is that all the effect plugins needs to only know how to use for example the ImportableImageI interface and they can use all the image file formats that are implemented by the importer plugins.

Here is the class definition of the PCX importer plugin class:

    class PCXImportC : public Import::ImportableImageI
    {
    public:
        static PCXImportC*              create_new();
        virtual Edit::DataBlockI*       create();
        virtual Edit::DataBlockI*       create( Edit::EditableI* pOriginal );
        virtual void                    copy( Edit::DataBlockI* pBlock );
        virtual void                    restore( Edit::EditableI* pEditable );

        virtual const char*             get_filename();

        virtual bool
        load_file( const char* szName, Import::ImportInterfaceC* pInterface );

        virtual PluginClass::ClassIdC   get_class_id();
        virtual const char*             get_class_name();

        // The importable image interface.
        virtual PajaTypes::int32        get_width();
        virtual PajaTypes::int32        get_height();
        virtual PajaTypes::int32        get_pitch();
        virtual PajaTypes::int32        get_bpp();
        virtual PajaTypes::uint8*       get_data();

        virtual void
        bind_texture( PajaSystem::DeviceInterfaceI* pInterface,
                PajaTypes::uint32 ui32Properties );

        virtual const char*             get_info();
        virtual PluginClass::ClassIdC   get_default_effect();

        virtual PajaTypes::int32
        get_duration( PajaSystem::TimeContextC* pTimeContext );

        virtual PajaTypes::float32
        get_start_label( PajaSystem::TimeContextC* pTimeContext );

        virtual PajaTypes::float32
        get_end_label( PajaSystem::TimeContextC* pTimeContext );

        virtual PajaTypes::uint32       save( FileIO::SaveC* pSave );
        virtual PajaTypes::uint32       load( FileIO::LoadC* pLoad );

    protected:
        PCXImportC();
        PCXImportC( Edit::EditableI* pOriginal );
        virtual ~PCXImportC();

    private:

        bool    read_encoded_block( PajaTypes::uint32 ui32Size,
                        PajaTypes::uint8* pBuffer, FILE* pStream );

        PajaTypes::uint32       m_ui32TextureId;
        PajaTypes::uint8*       m_pData;
        PajaTypes::int32        m_i32Width, m_i32Height;
        PajaTypes::int32        m_i32Bpp;
        std::string         m_sFileName;
    };

Here is the implementation:

The default constructor. Set everything to the default values.

    PCXImportC::PCXImportC() :
        m_pData( 0 ),
        m_i32Width( 0 ),
        m_i32Height( 0 ),
        m_ui32TextureId( 0 )
    {
        // empty
    }

The constructor which is used when a clone of this file is made. The most important thing is to call the base class constructor, then set the data to the default values.

    PCXImportC::PCXImportC( EditableI* pOriginal ) :
        ImportableImageI( pOriginal ),
        m_pData( 0 ),
        m_i32Width( 0 ),
        m_i32Height( 0 ),
        m_ui32TextureId( 0 )
    {
        // empty
    }

The destructor. Since the data is not duplicated when a clone object is created (the importer class in this case) we don't release the data if the object is a clone. The clone can be detected by the get_original() method of the EditableI interface. If it returns a valid pointer (anything else than NULL ) then the object is a clone and no data should be released.

    PCXImportC::~PCXImportC()
    {
        // Return if this is a clone.
        if( get_original() )
            return;

        // Delete creted texture.
        if( m_ui32TextureId )
            glDeleteTextures( 1, &m_ui32TextureId );

        delete m_pData;
    }

Static member which is used to create a new instance of a plugin class. It is only a recommendation to use this method name. It could be really anything. There just have to be a way to create a new instance of the plugin class.

    PCXImportC*
    PCXImportC::create_new()
    {
        return new PCXImportC;
    }

This method is analogous to the default constructor.

    DataBlockI*
    PCXImportC::create()
    {
        return new PCXImportC;
    }

This method is analogous to the clone constructor.

    DataBlockI*
    PCXImportC::create( EditableI* pOriginal )
    {
        return new PCXImportC( pOriginal );
    }

This method is used to copy data from a specified datablock (the datablock is guaranteed to be of the same class as the class which copy() method is called). All the data should be copied (deep copy).

    void
    PCXImportC::copy( DataBlockI* pBlock )
    {
        PCXImportC* pFile = (PCXImportC*)pBlock;

        m_ui32TextureId = pFile->m_ui32TextureId;
        m_i32Width = pFile->m_i32Width;
        m_i32Height = pFile->m_i32Height;
        m_i32Bpp = pFile->m_i32Bpp;
        m_sFileName = pFile->m_sFileName;

        // Duplicate data.
        delete m_pData;
        uint32  ui32DataSize = m_i32Width * m_i32Height * (m_i32Bpp / 8);
        m_pData = new uint8[ui32DataSize];
        memcpy( m_pData, pFile->m_pData, ui32DataSize );
    }

This method is used to make shallow copy from a specified editable (the editable is guaranteed to be of the same class as the class which copy() method is called). Only the variables should be copied, no the data they point to. This method is used first to store the data to a clone object and then later on to restore the data from the clone, hence the name.

    void
    PCXImportC::restore( EditableI* pEditable )
    {
        PCXImportC* pFile = (PCXImportC*)pEditable;

        m_ui32TextureId = pFile->m_ui32TextureId;
        m_pData = pFile->m_pData;
        m_i32Width = pFile->m_i32Width;
        m_i32Height = pFile->m_i32Height;
        m_i32Bpp = pFile->m_i32Bpp;
        m_sFileName = pFile->m_sFileName;
    }

Returns the name of the file attached to this importable. This name is shown in the GUI (first the path is stripped off) and is also used to reload the file. So be sure to store the original file name.

    const char*
    PCXImportC::get_filename()
    {
        return m_sFileName.c_str();
    }

This method is used by the PCX loader. It reads a RLE encoded block from the file.

    bool
    PCXImportC::read_encoded_block( uint32 ui32Size, uint8* pBuffer, FILE* pStream )
    {
        uint32  ui32Count;
        uint32  ui32Val;
        uint8*  pDest = pBuffer;

        for( uint32 i = 0; i < ui32Size; ) {

            ui32Val = fgetc( pStream );
            ui32Count = 1;

            if( feof( pStream ) )
                return true;

            if( (ui32Val & 0xC0) == 0xC0 ) {
                ui32Count = ui32Val & 0x3F;
                ui32Val = fgetc( pStream );
                if( feof( pStream ) )
                    return false;
            }

            for( uint32 j = 0; j < ui32Count; j++ )
pDest++ = (uint8)ui32Val;

            i += ui32Count;
        }

        return true;
    }

Loads the file. It is convenient to store the file name in this method. The import interface is not used in this importer. Most the code is PCX file format specific.

    bool
    PCXImportC::load_file( const char* szName, ImportInterfaceC* pInterface )
    {
        FILE*       pStream;
        PCXHeaderS  rHeader;

        if( (pStream = fopen( szName, "rb" )) == 0 ) {
            return false;
        }

        // Read header
        fread( &rHeader, 1, sizeof( rHeader ), pStream );

        // We only support BPP images
        if( rHeader.m_ui8BPP != 8 )
            return false;

        // Store width and height
        m_i32Width = rHeader.m_ui16BytesPerLine;
        m_i32Height = (rHeader.m_ui16YMax - rHeader.m_ui16YMin) + 1;

        if( rHeader.m_ui8NPlanes == 1 ) {
            // Read 8-bit image
            uint32  ui32Size = m_i32Width * m_i32Height;
            uint8*  pBuffer = new uint8[ui32Size];

            // Encode
            if( !read_encoded_block( ui32Size, pBuffer, pStream ) )
                return false;

            if( rHeader.m_ui16PalInfo == 2 ) {
                // Greyscale
                m_pData = pBuffer;
                m_i32Bpp = 8;
            }
            else {
                // Read palette.
                uint8   ui8Palette[256 * 3];
                fseek( pStream, SEEK_END, -768 );
                fread( ui8Palette, 256 * 3, 1, pStream );

                m_pData = new uint8[m_i32Width * m_i32Height * 3];
                uint8*  pDest = m_pData;
                uint8*  pSrc = pBuffer;

                // Convert paletted to RGB
                for( uint32 i = 0; i < m_i32Height; i++ ) {
                    for( uint32 j = 0; j < m_i32Width; j++ ) {
pDest++ = ui8Palette[(*pSrc) * 3 + 2];
pDest++ = ui8Palette[(*pSrc) * 3 + 1];
pDest++ = ui8Palette[(*pSrc) * 3 + 0];
                        pSrc++;
                    }
                }

                m_i32Bpp = 24;
                delete [] pBuffer;
            }

        }
        else if( rHeader.m_ui8NPlanes == 3 ) {
            // Read 24-bit image.
            uint32  ui32Size = m_i32Width * m_i32Height * 3;
            uint8*  pBuffer = new uint8[ui32Size];

            // Encode
            if( !read_encoded_block( ui32Size, pBuffer, pStream ) )
                return false;

            m_pData = new uint8[ui32Size];
            uint8*  pDest = m_pData;

            // Convert to interleaved RGB
            for( uint32 i = 0; i < m_i32Height; i++ ) {
                for( uint32 j = 0; j < m_i32Width; j++ ) {
pDest++ =
                    pBuffer[i * m_i32Width * 3 + j];
pDest++ =
                    pBuffer[i * m_i32Width * 3 + j + m_i32Width];
pDest++ =
                    pBuffer[i * m_i32Width * 3 + j + m_i32Width * 2];
                }
            }

            delete [] pBuffer;

            m_i32Bpp = 24;
        }

        fclose( pStream );

        // Store file name.
        m_sFileName = szName;

        return true;
    }

Returns the class ID. This method should return the same information as the method of same name in the class descriptor.

    ClassIdC
    PCXImportC::get_class_id()
    {
        return CLASS_PCX_IMPORT;
    }

Returns the name of the class. This method should return the same information as the method of same name in the class descriptor.

    const char*
    PCXImportC::get_class_name()
    {
        return "PCX Image";
    }

Returns the width of the image in pixels. This method is from the ImportableImageI interface.

    int32
    PCXImportC::get_width()
    {
        return m_i32Width;
    }

Returns the height of the image in pixels. This method is from the ImportableImageI interface.

    int32
    PCXImportC::get_height()
    {
        return m_i32Height;
    }

Returns the pitch of the image in bytes. In some cases it is necessary to store the image in the memory so that the length of each row in the data is not same as the width of the image. This method is from the ImportableImageI interface.

    int32
    PCXImportC::get_pitch()
    {
        return m_i32Width * m_i32BPP / 8;
    }

Returns the Bits Per Pixel (BPP) of the image. This method is from the ImportableImageI interface.

    int32
    PCXImportC::get_bpp()
    {
        return m_i32Bpp;
    }

Returns pointer to the data of the image. This method is from the ImportableImageI interface.

    uint8*
    PCXImportC::get_data()
    {
        return m_pData;
    }

Sets the image as current texture on specified device. This method enables the texture only be stored in the graphic card once. In this case this is done via the texture objects in OpenGL. This method is from the ImportableImageI interface.

    void
    PCXImportC::bind_texture( DeviceInterfaceI* pInterface, uint32 ui32Properties )
    {
        if( !pInterface || pInterface->get_type() != INTERFACE_OPENGL )
            return;

        if( !m_ui32TextureId ) {

            glGenTextures( 1, &m_ui32TextureId );
            glBindTexture( GL_TEXTURE_2D, m_ui32TextureId );
            glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE );

            if( m_i32Bpp == 8 ) {
                glTexImage2D( GL_TEXTURE_2D, 0, GL_ALPHA , m_i32Width,
                m_i32Height, 0, GL_ALPHA , GL_UNSIGNED_BYTE, m_pData );
            }
            else if( m_i32Bpp == 24 ) {
                glTexImage2D( GL_TEXTURE_2D, 0, GL_RGB, m_i32Width,
                m_i32Height, 0, GL_RGB, GL_UNSIGNED_BYTE, m_pData );
            }
            else if( m_i32Bpp ==32 ) {
                glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, m_i32Width,
                m_i32Height, 0, GL_RGBA, GL_UNSIGNED_BYTE, m_pData );
            }
        }
        else
            glBindTexture( GL_TEXTURE_2D, m_ui32TextureId );

        if( ui32Properties & IMAGE_LINEAR ) {
            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
        }
        else {
            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
        }

        if( ui32Properties & IMAGE_CLAMP ) {
            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP );
            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP );
        }
        else {
            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT );
            glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT );
        }
    }

Returns short info about the importable. In this case the importable is an image, and the image dimension and image type is returned.

    const char*
    PCXImportC::get_info()
    {
        static char szInfo[256];
        _snprintf( szInfo, 255, "%s %d x %d x %dbit",
            m_i32Bpp == 8 ? "GREY" : "RGB", m_i32Width, m_i32Height, m_i32Bpp );
        return szInfo;
    }

Returns the default effect which is able to show this data. This method is used when a new effect is created by drag'n'drop operation.

    ClassIdC
    PCXImportC::get_default_effect()
    {
        return CLASS_SIMPLEIMAGE_EFFECT;
    }

Returns the duration of the data. Since the data in this case is a still image return -1, which indicates, that there is no duration.

    int32
    PCXImportC::get_duration( TimeContextC* pTimeContext )
    {
        return -1;
    }

Return dummy for labels. The labels are only used if the importable has animation. The start label is the first frame number, and the end label is the last frame number.

    float32
    PCXImportC::get_start_label( TimeContextC* pTimeContext )
    {
        return 0;
    }

    float32
    PCXImportC::get_end_label( TimeContextC* pTimeContext )
    {
        return 0;
    }

Save the importable to a Demopaja stream. The data is written in two chunks. The first chunk contains the name of the file and the second cintains the actual data.

    enum PCXImportChunksE {
        CHUNK_PCXIMPORT_BASE =  0x1000,
        CHUNK_PCXIMPORT_DATA =  0x2000,
    };

    const uint32    PCXIMPORT_VERSION = 1;

    uint32
    PCXImportC::save( SaveC* pSave )
    {
        uint32      ui32Error = IO_OK;
        uint8       ui8Tmp;
        std::string sStr;

        // file base
        pSave->begin_chunk( CHUNK_PCXIMPORT_BASE, PCXIMPORT_VERSION );
            sStr = m_sFileName;
            if( sStr.size() > 255 )
                    sStr.resize( 255 );
            ui32Error = pSave->write_str( sStr.c_str() );
        pSave->end_chunk();

        // file data
        pSave->begin_chunk( CHUNK_PCXIMPORT_DATA, PCXIMPORT_VERSION );
            ui32Error = pSave->write( &m_i32Width, sizeof( m_i32Width ) );
            ui32Error = pSave->write( &m_i32Height, sizeof( m_i32Height ) );
            ui8Tmp = (uint8)m_i32Bpp;
            ui32Error = pSave->write( &ui8Tmp, sizeof( ui8Tmp ) );
            ui32Error = pSave->write( m_pData,
                    m_i32Width * m_i32Height * (m_i32Bpp / 8) );
        pSave->end_chunk();

        return ui32Error;
    }

Loads the importable from a Demopaja stream.

    uint32
    PCXImportC::load( LoadC* pLoad )
    {
        uint32  ui32Error = IO_OK;
        char    szStr[256];
        uint8   ui8Tmp;

        while( (ui32Error = pLoad->open_chunk()) == IO_OK ) {

            switch( pLoad->get_chunk_id() ) {
            case CHUNK_PCXIMPORT_BASE:
                if( pLoad->get_chunk_version() == PCXIMPORT_VERSION ) {
                    ui32Error = pLoad->read_str( szStr );
                    m_sFileName = szStr;
                }
                break;

            case CHUNK_PCXIMPORT_DATA:
                if( pLoad->get_chunk_version() == PCXIMPORT_VERSION ) {
                    // delete old data if any
                    delete m_pData;
                    // load new data
                    ui32Error = pLoad->read( &m_i32Width,
                        sizeof( m_i32Width ) );
                    ui32Error = pLoad->read( &m_i32Height,
                        sizeof( m_i32Height ) );
                    ui32Error = pLoad->read( &ui8Tmp,
                        sizeof( ui8Tmp ) );
                    m_i32Bpp = ui8Tmp;
                    m_pData = new uint8[m_i32Width * m_i32Height *
                        (m_i32Bpp / 8)];
                    ui32Error = pLoad->read( m_pData,
                        m_i32Width * m_i32Height * (m_i32Bpp / 8) );
                }
                break;

            default:
                assert( 0 );
            }

            pLoad->close_chunk();

            if( ui32Error != IO_OK && ui32Error != IO_END ) {
                return ui32Error;
            }
        }

        return ui32Error;
    }

Now we have created an importer plugin which imports PCX images to Demopaja for further use. The source for this plugin can be found in the Examples\ImagePlugin directory. That plugin also contains a simple effect which shows the data.


Making an Effect Plugin

 This tutorial will guide you to write a simple effect plugin for Moppi Demopaja.

First step

First we need to write the few functions which Demopaja loads from the DLL when the DLL is loaded. See the Creating a New Plugin Project for how to set up a new project.

Writing a plugin class descriptor

The next step is to write a class descriptor. We will implement a class descriptor for an effect plugin. At this point we also need the unique class ID for our class. This class is generated with the class ID generator which comes with the SDK.

The class descriptor of the image effect looks like this:

// The class ID
const ClassIdC  CLASS_SIMPLEIMAGE_EFFECT( 0x08DF0B9D, 0xFF4B4769 );

//  Simple image effect class descriptor.
class ImageDescC : public ClassDescC
{
public:
    ImageDescC();
    virtual ~ImageDescC();
    virtual void*           create();
    virtual int32           get_classtype() const;
    virtual SuperClassIdC   get_super_classid() const;
    virtual ClassIdC        get_classid() const;
    virtual const char*     get_name() const;
    virtual const char*     get_desc() const;
    virtual const char*     get_author_name() const;
    virtual const char*     get_copyright_message() const;
    virtual const char*     get_url() const;
    virtual const char*     get_help_filename() const;
    virtual bool            check_device_support( DeviceContextC* pContext );
    virtual uint32          get_ext_count() const;
    virtual const char*     get_ext( uint32 ui32Index ) const;
};

ImageDescC::ImageDescC()
{
    // empty
}

ImageDescC::~ImageDescC()
{
    // empty
}

The create method is used to create a new instance of the image effect class. In the image effect class there is a static member method which is used to create a new instance.

void*
ImageDescC::create()
{
    return (void*)ImageEffectC::create_new();
}

Returns the plugin class type. CLASS_TYPE_EFFECT is returned for all effect plugins. The system determines using this method wheter the plugin class is importer or effect.

int32
ImageDescC::get_classtype() const
{
    return CLASS_TYPE_EFFECT;
}

Returns the super class ID. All effects returns SUPERCLASS_EFFECT. It indicates that the effect is derived from EffectI class.

SuperClassIdC
ImageDescC::get_super_classid() const
{
    return SUPERCLASS_EFFECT;
}

Returns the class ID of the image effect class. This class ID has to be unique for every plugin class that is implemented.

ClassIdC
ImageDescC::get_classid() const
{
    return CLASS_SIMPLEIMAGE_EFFECT;
};

Returns a short description of the plugin class.

const char*
ImageDescC::get_desc() const
{
    return "Simple Image effect";
}

These methods returns some information about the author of the plugin class, such name, copyright notice and an URL where the plugin/author can be found.

const char*
ImageDescC::get_name() const
{
    return "Simple Image";
}

const char*
ImageDescC::get_author_name() const
{
    return "Mikko \"memon\" Mononen";
}

const char*
ImageDescC::get_copyright_message() const
{
    return "Copyright (c) 2000 Moppi Productions";
}

const char*
ImageDescC::get_url() const
{
    return "http://www.moppi.inside.org/demopaja/";
}

Returns the file name of the help file. Help files are in HTML format. This plugin has the HTML file stored in the resources of the DLL. See Demopaja Help System for more information how to deal with help files.

const char*
ImageDescC::get_help_filename() const
{
    return "res://imagehelp.html";
}

This method is used to checks if this plugin class can be created and used within the current device context. Every device the plugin class depends on should be checked. The plugin class descriptor should check the support by trying to query the devices it needs. If they can be queried, they are available.

bool
ImageDescC::check_device_support( DeviceContextC* pContext )
{
    if( pContext->query_interface( INTERFACE_OPENGL ) )
        return true;
    return false;
}

These two methods are not used for effect plugins. These are used with importer plugin classes and they return the file extensions which the plugin could load.

uint32
ImageDescC::get_ext_count() const
{
    return 0;
}

const char*
ImageDescC::get_ext( uint32 ui32Index ) const
{
    return 0;
}

Now we should declare one global variable (those people who fear global variables propably can find a different way to do this) which type is the class we just defined. It is important that this variable is global (or at least static) since a pointer to it is returned to the Demopaja via the get_classdesc() function.

ImageDescC      g_rImageDesc;

The Effect Class

The last thing to do is to write the effect class. The effect class will contain some gizmos, which in turn contains the parameters. Usually it would be required to implement some GizmoI derived classes where the gizmos would be stored, but since the effect we work on is so simple we use a AutoGizmoI class instead. The auto gizmo class enables the gizmo to be filled with parameters with out need to write derived gizmo class. Even the auto gizmo saves the data inside parameters it does not save the information about itself. That is, the gizmo has to be populated with the same kind of parameters before it is loaded. It is safe to use the auto gizmo in the way it is represented in this example.

This effect simple has six parameters put in two gizmos. The first gizmo "Transform" holds position, pivot, scale, and rotation parameters, the second gizmo "Attributes" holds color and image parameters.

Here is the class definition of the image effect plugin class:

// IDs for the transformation parameters.
enum TransformGizmoParamsE {
    ID_TRANSFORM_POS = 0,
    ID_TRANSFORM_PIVOT,
    ID_TRANSFORM_ROT,
    ID_TRANSFORM_SCALE,
    TRANSFORM_COUNT,
};

// IDs for the attribute parameters.
enum AttributeGizmoParamsE {
    ID_ATTRIBUTE_COLOR = 0,
    ID_ATTRIBUTE_FILE,
    ATTRIBUTE_COUNT,
};

// Gizmo IDs.
enum ImageEffectGizmosE {
    ID_GIZMO_TRANS = 0,
    ID_GIZMO_ATTRIB,
    GIZMO_COUNT,
};

// The Image effect class.
class ImageEffectC : public Composition::EffectI
{
public:
    static ImageEffectC*            create_new();
    virtual Edit::DataBlockI*       create();
    virtual Edit::DataBlockI*       create( Edit::EditableI* pOriginal );
    virtual void                    copy( Edit::DataBlockI* pBlock );
    virtual void                    restore( Edit::EditableI* pEditable );

    virtual PajaTypes::int32        get_gizmo_count();
    virtual Composition::GizmoI*    get_gizmo( PajaTypes::int32 i32Index );

    virtual PluginClass::ClassIdC   get_class_id();
    virtual const char*             get_class_name();

    virtual void                    set_default_file( Import::FileHandleC* pHandle );
    virtual Composition::ParamI*    get_default_param( PajaTypes::int32 i32Param );

    virtual void                    initialize( PajaSystem::DeviceContextC* pContext, PajaSystem::TimeContextC* pTimeContext );

    virtual void                    do_frame( PajaSystem::DeviceContextC* pContext );
    virtual void                    eval_state( PajaTypes::int32 i32Time, PajaSystem::TimeContextC* pTimeContext );
    virtual PajaTypes::BBox2C       get_bbox();

    virtual const PajaTypes::Matrix2C&  get_transform_matrix() const;

    virtual bool                    hit_test( const PajaTypes::Vector2C& rPoint );

    virtual PajaTypes::uint32       save( FileIO::SaveC* pSave );
    virtual PajaTypes::uint32       load( FileIO::LoadC* pLoad );

protected:
    ImageEffectC();
    ImageEffectC( Edit::EditableI* pOriginal );
    virtual ~ImageEffectC();

private:

    Composition::AutoGizmoC*    m_pTraGizmo;
    Composition::AutoGizmoC*    m_pAttGizmo;

    PajaTypes::Matrix2C m_rTM;
    PajaTypes::BBox2C   m_rBBox;
    PajaTypes::Vector2C m_rVertices[4];
    PajaTypes::ColorC   m_rFillColor;
};

Here is the implementation:

Default constructor. Create the gizmos and the parameters and put the into the gizmos. Since we do the parameter initialization here, the auto gizmos will be filled before the serialization methods are called.

ImageEffectC::ImageEffectC()
{
    // Create Transform gizmo.
    m_pTraGizmo = AutoGizmoC::create_new( this, "Transform", ID_GIZMO_TRANS );

    m_pTraGizmo->add_parameter( ParamVector2C::create_new( m_pTraGizmo, "Position", Vector2C(), ID_TRANSFORM_POS,
                        PARAM_STYLE_EDITBOX | PARAM_STYLE_ABS_POSITION, PARAM_ANIMATABLE ) );

    m_pTraGizmo->add_parameter( ParamVector2C::create_new( m_pTraGizmo, "Pivot", Vector2C(), ID_TRANSFORM_PIVOT,
                        PARAM_STYLE_EDITBOX | PARAM_STYLE_REL_POSITION | PARAM_STYLE_WORLD_SPACE, PARAM_ANIMATABLE ) );

    m_pTraGizmo->add_parameter( ParamFloatC::create_new( m_pTraGizmo, "Rotation", 0, ID_TRANSFORM_ROT,
                        PARAM_STYLE_EDITBOX | PARAM_STYLE_ANGLE, PARAM_ANIMATABLE, 0, 0, 1.0f ) );

    m_pTraGizmo->add_parameter( ParamVector2C::create_new( m_pTraGizmo, "Scale", Vector2C( 1, 1 ), ID_TRANSFORM_SCALE,
                        PARAM_STYLE_EDITBOX | PARAM_STYLE_PERCENT, PARAM_ANIMATABLE, Vector2C(), Vector2C(), 0.01f ) );

    // Create Attributes gizmo.
    m_pAttGizmo = AutoGizmoC::create_new( this, "Attributes", ID_GIZMO_ATTRIB );

    m_pAttGizmo->add_parameter( ParamColorC::create_new( m_pAttGizmo, "Fill Color", ColorC( 1, 1, 1, 1 ), ID_ATTRIBUTE_COLOR,
                            PARAM_STYLE_COLORPICKER, PARAM_ANIMATABLE ) );
    m_pAttGizmo->add_parameter( ParamFileC::create_new( m_pAttGizmo, "Fill Image", SUPERCLASS_IMAGE, NULL_CLASSID, ID_ATTRIBUTE_FILE ) );
}

Close constructor. Initialize only.

ImageEffectC::ImageEffectC( EditableI* pOriginal ) :
    EffectI( pOriginal ),
    m_pTraGizmo( 0 ),
    m_pAttGizmo( 0 )
{
    // Empty. The parameters are not created in the clone constructor.
}

The destructor. Since the data is not duplicated when a clone object is created we don't release the data if the object is a clone. The clone can be detected by the get_original() method of the EditableI interface. If it returns a valid pointer (anything else than NULL ) then the object is a clone and no data should be released.

ImageEffectC::~ImageEffectC()
{
    // Return if this is a clone.
    if( get_original() )
        return;

    // Release gizmos.
    m_pTraGizmo->release();
    m_pAttGizmo->release();
}

Static member which is used to create a new instance of a plugin class. It is only a recommendation to use this method name. It could be really anything. There just have to be a way to create a new instance of the plugin class.

ImageEffectC*
ImageEffectC::create_new()
{
    return new ImageEffectC;
}

This method is analogous to the default constructor.

DataBlockI*
ImageEffectC::create()
{
    return new ImageEffectC;
}

This method is analogous to the clone constructor.

DataBlockI*
ImageEffectC::create( EditableI* pOriginal )
{
    return new ImageEffectC( pOriginal );
}

This method is used to copy data from a specified datablock (the datablock is guaranteed to be of the same class as the class which copy() method is called). All the data should be copied (deep copy).

void
ImageEffectC::copy( DataBlockI* pBlock )
{
    EffectI::copy( pBlock );

    // Make deep copy.
    ImageEffectC*   pEffect = (ImageEffectC*)pBlock;
    m_pTraGizmo->copy( pEffect->m_pTraGizmo );
    m_pAttGizmo->copy( pEffect->m_pAttGizmo );
}

This method is used to make shallow copy from a specified editable (the editable is guaranteed to be of the same class as the class which copy() method is called). Only the variables should be copied, no the data they point to. This method is used first to store the data to a clone object and then later on to restore the data from the clone, hence the name.

void
ImageEffectC::restore( EditableI* pEditable )
{
    EffectI::restore( pEditable );

    // Make shallow copy.
    ImageEffectC*   pEffect = (ImageEffectC*)pEditable;
    m_pTraGizmo = pEffect->m_pTraGizmo;
    m_pAttGizmo = pEffect->m_pAttGizmo;
}

Returns number of gizmos inside the effect.

int32
ImageEffectC::get_gizmo_count()
{
    // Return number of gizmos inside this effect.
    return GIZMO_COUNT;
}

Returns the gizmo at specified index.

GizmoI*
ImageEffectC::get_gizmo( PajaTypes::int32 i32Index )
{
    // Returns specified gizmo.
    // Since the ID's are zero based, we can use them as indices.
    switch( i32Index ) {
    case ID_GIZMO_TRANS:
        return m_pTraGizmo;
    case ID_GIZMO_ATTRIB:
        return m_pAttGizmo;
    }

    return 0;
}

Returns the class ID. This method should return the same information as the method of same name in the class descriptor.

ClassIdC
ImageEffectC::get_class_id()
{
    // Return the class ID. Should be same as in the class descriptor.
    return CLASS_SIMPLEIMAGE_EFFECT;
}

Returns the name of the class. This method should return the same information as the method of same name in the class descriptor.

const char*
ImageEffectC::get_class_name()
{
    // Return the class name. Should be same as in the class descriptor.
    return "Simple Image";
}

Sets the default file. This method is called when an effect is created by draggin an imported file to the Layer list. This method should set the file parameter which is ment to be the default for this effect. The file parameter checks that the file is in format allowed by the class filters.

void
ImageEffectC::set_default_file( FileHandleC* pHandle )
{
    // Sets the default file.

    // Get the file parameter.
    ParamFileC* pParam = (ParamFileC*)m_pAttGizmo->get_parameter( ID_ATTRIBUTE_FILE );

    // Begin Undo block.
    UndoC*  pOldUndo = pParam->begin_editing( get_undo() );

    // Set the file.
    pParam->set_file( pHandle );

    // End undo block.
    pParam->end_editing( pOldUndo );
}

Returns defautl parameters used by the user interface. These four are for transformation.

ParamI*
ImageEffectC::get_default_param( int32 i32Param )
{
    // Return specified default parameter.
    if( i32Param == DEFAULT_PARAM_POSITION )
        return m_pTraGizmo->get_parameter( ID_TRANSFORM_POS );
    else if( i32Param == DEFAULT_PARAM_ROTATION )
        return m_pTraGizmo->get_parameter( ID_TRANSFORM_ROT );
    else if( i32Param == DEFAULT_PARAM_SCALE )
        return m_pTraGizmo->get_parameter( ID_TRANSFORM_SCALE );
    else if( i32Param == DEFAULT_PARAM_PIVOT )
        return m_pTraGizmo->get_parameter( ID_TRANSFORM_PIVOT );
    return 0;
}

Initializes the effect. All the initializing which requires the information about the device or time code, should be done here. Also, if parameters needs to be copied (for example the gizmo layout has changed between two version of the effect) don't copy the parameters in the load() method, but do it in this method, because the file handles in file parameters are not valid when the effect is being loaded. When a new effect is created this method is called after data is passed to the effect (default parameter and name). If an effect is duplicated (for example using Copy/Paste) this method is not called. This means that, the parameters initialized here should be copied in the copy() method.

void
ImageEffectC::initialize( DeviceContextC* pContext, TimeContextC* pTimeContext )
{
    // Empty, nothign to initialize.
}

Updates the effect state at specified time. The main purpose is to generate here the data the user interface will need. The most important things are: transformation matrix, bounding box, and possible data which may be needed in hittesting.

void
ImageEffectC::eval_state( int32 i32Time, TimeContextC* pTimeContext )
{
    Matrix2C    rPosMat, rRotMat, rScaleMat, rPivotMat;

    Vector2C    rScale;
    Vector2C    rPos;
    Vector2C    rPivot;
    float32     f32Rot;

    // Get parameters which affect the transformation.
    ((ParamVector2C*)m_pTraGizmo->get_parameter( ID_TRANSFORM_POS ))->get_val( i32Time, rPos );
    ((ParamVector2C*)m_pTraGizmo->get_parameter( ID_TRANSFORM_PIVOT ))->get_val( i32Time, rPivot );
    ((ParamFloatC*)m_pTraGizmo->get_parameter( ID_TRANSFORM_ROT ))->get_val( i32Time, f32Rot );
    ((ParamVector2C*)m_pTraGizmo->get_parameter( ID_TRANSFORM_SCALE ))->get_val( i32Time, rScale );

    // Calculate transformation matrix.
    rPivotMat.set_trans( rPivot );
    rPosMat.set_trans( rPos );
    rRotMat.set_rot( f32Rot / 180.0f * M_PI );
    rScaleMat.set_scale( rScale ) ;
    m_rTM = rPivotMat * rRotMat * rScaleMat * rPosMat;

    float32     f32Width = 25;
    float32     f32Height = 25;
    Vector2C    rMin, rMax;
    Vector2C    rVec;

    // Get the size from the fiel or use the defautls if no file.
    ImportableImageI*   pImp = 0;
    FileHandleC*        pHandle = ((ParamFileC*)m_pAttGizmo->get_parameter( ID_ATTRIBUTE_FILE ))->get_file();

    if( pHandle )
        pImp = (ImportableImageI*)pHandle->get_importable();

    if( pImp ) {
        f32Width = (float32)pImp->get_width() * 0.5f;
        f32Height = (float32)pImp->get_height() * 0.5f;
    }

    // Calcualte vertices of the rectangle.
    m_rVertices[0][0] = -f32Width;      // top-left
    m_rVertices[0][1] = -f32Height;

    m_rVertices[1][0] =  f32Width;      // top-right
    m_rVertices[1][1] = -f32Height;

    m_rVertices[2][0] =  f32Width;      // bottom-right
    m_rVertices[2][1] =  f32Height;

    m_rVertices[3][0] = -f32Width;      // bottom-left
    m_rVertices[3][1] =  f32Height;

    // Calculate bounding box
    for( uint32 i = 0; i < 4; i++ ) {
        rVec = m_rTM * m_rVertices[i];
        m_rVertices[i] = rVec;

        if( !i )
            rMin = rMax = rVec;
        else {
            if( rVec[0] < rMin[0] ) rMin[0] = rVec[0];
            if( rVec[1] < rMin[1] ) rMin[1] = rVec[1];
            if( rVec[0] > rMax[0] ) rMax[0] = rVec[0];
            if( rVec[1] > rMax[1] ) rMax[1] = rVec[1];
        }
    }

    // Store bounding box.
    m_rBBox[0] = rMin;
    m_rBBox[1] = rMax;

    // Get fill color.
    ((ParamColorC*)m_pAttGizmo->get_parameter( ID_ATTRIBUTE_COLOR ))->get_val( i32Time, m_rFillColor );
}

Renders the frame.

void
ImageEffectC::do_frame( DeviceContextC* pContext )
{
    // Get the OpenGL interface.
    OpenGLInterfaceC*   pInterface = (OpenGLInterfaceC*)pContext->query_interface( INTERFACE_OPENGL );

    // Return if not present.
    if( !pInterface )
        return;

    // Set orthographic projection.
    pInterface->set_ortho( m_rBBox, m_rBBox[0][0], m_rBBox[1][0], m_rBBox[1][1], m_rBBox[0][1] );

    // Get file handle and image.
    FileHandleC*        pHandle = 0;
    ImportableImageI*   pImp = 0;

    pHandle = ((ParamFileC*)m_pAttGizmo->get_parameter( ID_ATTRIBUTE_FILE ))->get_file();
    if( pHandle )
        pImp = (ImportableImageI*)pHandle->get_importable();

    if( pImp ) {
        // If there is image set it as current texture.
        pImp->bind_texture( pInterface, IMAGE_CLAMP | IMAGE_LINEAR );
        glEnable( GL_TEXTURE_2D );
    }
    else
        glDisable( GL_TEXTURE_2D );

    glDisable( GL_DEPTH_TEST );
    glEnable( GL_BLEND );
    glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
    glDepthMask( GL_FALSE );

    // Set color
    glColor4fv( m_rFillColor );

    // Draw rectangle.
    glBegin( GL_QUADS );

    glTexCoord2f( 0, 1 );
    glVertex2f( m_rVertices[0][0], m_rVertices[0][1] );

    glTexCoord2f( 1, 1 );
    glVertex2f( m_rVertices[1][0], m_rVertices[1][1] );

    glTexCoord2f( 1, 0 );
    glVertex2f( m_rVertices[2][0], m_rVertices[2][1] );

    glTexCoord2f( 0, 0 );
    glVertex2f( m_rVertices[3][0], m_rVertices[3][1] );

    glEnd();

    glDepthMask( GL_TRUE );
}

Returns the bounding box of the effect. The whole effect should fit inside this box. The box is axis-aligned.

BBox2C
ImageEffectC::get_bbox()
{
    // Return the bounding box.
    return m_rBBox;
}

Returns the transformation matrix of the effect.

const Matrix2C&
ImageEffectC::get_transform_matrix() const
{
    // Return the trnasformation matrix.
    return m_rTM;
}

Tests if the specified point is inside the the effects rendering area. Simple point in polygon testing is used here. The hit testing should be as accurate as possible, but if it cannot be defined, hit test the bounding box. The code here is taken from the comp.graphics.algorithms newsgroup FAQ.

bool
ImageEffectC::hit_test( const Vector2C& rPoint )
{
    // Point in polygon test.
    // from c.g.a FAQ
    int     i, j;
    bool    bInside = false;

    for( i = 0, j = 4 - 1; i < 4; j = i++ ) {
        if( ( ((m_rVertices[i][1] <= rPoint[1]) && (rPoint[1] < m_rVertices[j][1])) ||
            ((m_rVertices[j][1] <= rPoint[1]) && (rPoint[1] < m_rVertices[i][1])) ) &&
            (rPoint[0] < (m_rVertices[j][0] - m_rVertices[i][0]) * (rPoint[1] - m_rVertices[i][1]) / (m_rVertices[j][1] - m_rVertices[i][1]) + m_rVertices[i][0]) )

            bInside = !bInside;
    }

    return bInside;
}

Some constant for serializing the effect.

enum ImageEffectChunksE {
    CHUNK_IMAGEEFFECT_BASE =        0x1000,
    CHUNK_IMAGEEFFECT_TRANSGIZMO =  0x2000,
    CHUNK_IMAGEEFFECT_ATTRIBGIZMO = 0x3000,
};

const uint32    IMAGEEFFECT_VERSION = 1;

Saves the effect to Demopaja output stream. It usually won't get any complicated than this. It is important to call the EffectI's save method too.

uint32
ImageEffectC::save( SaveC* pSave )
{
    uint32  ui32Error = IO_OK;

    // EffectI base class
    pSave->begin_chunk( CHUNK_IMAGEEFFECT_BASE, IMAGEEFFECT_VERSION );
        ui32Error = EffectI::save( pSave );
    pSave->end_chunk();

    // Transform
    pSave->begin_chunk( CHUNK_IMAGEEFFECT_TRANSGIZMO, IMAGEEFFECT_VERSION );
        ui32Error = m_pTraGizmo->save( pSave );
    pSave->end_chunk();

    // Attribute
    pSave->begin_chunk( CHUNK_IMAGEEFFECT_ATTRIBGIZMO, IMAGEEFFECT_VERSION );
        ui32Error = m_pAttGizmo->save( pSave );
    pSave->end_chunk();

    return ui32Error;
}

Loads the effect from Demopaja input stream.

uint32
ImageEffectC::load( LoadC* pLoad )
{
    uint32  ui32Error = IO_OK;

    while( (ui32Error = pLoad->open_chunk()) == IO_OK ) {

        switch( pLoad->get_chunk_id() ) {
        case CHUNK_IMAGEEFFECT_BASE:
            // EffectI base class
            if( pLoad->get_chunk_version() == IMAGEEFFECT_VERSION )
                ui32Error = EffectI::load( pLoad );
            break;

        case CHUNK_IMAGEEFFECT_TRANSGIZMO:
            // Transform
            if( pLoad->get_chunk_version() == IMAGEEFFECT_VERSION )
                ui32Error = m_pTraGizmo->load( pLoad );
            break;

        case CHUNK_IMAGEEFFECT_ATTRIBGIZMO:
            // Attribute
            if( pLoad->get_chunk_version() == IMAGEEFFECT_VERSION )
                ui32Error = m_pAttGizmo->load( pLoad );
            break;

        default:
            assert( 0 );
        }

        pLoad->close_chunk();

        if( ui32Error != IO_OK && ui32Error != IO_END )
            return ui32Error;
    }

    return ui32Error;
}

Now we have created an effect plugin which shows images in Demopaja. The source for this plugin can be found in the Examples\ImagePlugin directory. That plugin also contains a PCX image importer.


Understanding Demopaja Undo System

Overview

For plugin developer it is important to know how the undo system in Demopaja works. The undo systems acts as a kind of garbage collector where all the changed data during is put. And on undo, the data is put back where it came from. The changed data during a single event is put inside a container called undo object. These objects are stored into a ring buffer. The size of this buffer could be for example 100 and when the buffer overflows the oldest undo object is destroyed. At the same time the changes stored in that undo object are deleted and it cannot be undone ever again.

If data should be allocated or deleted during the change operation the pointer to that data is also stored into the undo object. When put, the data is marked either being destroyed or being created. When the object is flushed out of the undo cache if the data is marked to be deleted it is deleted. The deletion flag may be changed is the undo object is undone. Then created data is destroyed and deleted are kept. This all may sound a bit complicated but it has proven to work very well.

After reading this section you should be able to understand the meaning of the few methods which are common in all the EditableI derived classes you will be implementing.

Undo on Developers perspective

Most of the undo stuff is done internally by the Demopaja system. The only task left for the developer is to complete the methods needed for the undo system. The same methods are also used to make duplicates of the data using the Copy/Paste operation. The methods to be implement are:

  • Default constructor: create()
  • Clone constructor: create( EditableI* pOriginal )
  • Deep copy: copy( DataBlockI* pBlock )
  • Shallow copy: restore( EditableI* pEditable )
The create() method should create a new instace of the class. This method is used in the process to create duplicates of an existing instance (usually in Copy/Paste operation). The method returns new instance of the same class it is.

The second create method is similar as the first, but it is used during the undo process. It should call the constructor which accepts a pointer to the original instance. Each class derived from the EditableI or it's derived classes should have that constructor. The constructor takes care of some of the internal undo logic, and also stores the pointer to the original instance. Using the original instance the data can be later on restored.

The copy() method copies everything from the instance specified as the argument. After the copy() method is called the instace should be able to work as the instance where the data was copied from. This method is used during the duplication process.

The restore() method is used during the undo process to store a snapshot of the state of the effect. It should by no means make a full duplicate of the instance, but only copy the data that is required to restore the state back (using the same method) when the undo action is proceed.

The undo workflow

When user requests to change something in the Demopaja (for example change value of a parameter, create new effect) the object that is to be changed is asked to clone itself. The cloned object is put into the undo object. The process of changing a parameter uses the following procedure:

    EditableI*  pClone;
    pClone = pObj->clone();
    pUndo->add_restore_data( pClone );
    pObj->change_param(...);

The clone method can be written as:

    pClone = pObj->create( pObj );  // Use clone constructor.
    pClone->restore( pObj );        // Store current state using restore.

When the change is undone the following procedure is used:

    EditableI*  pState;
    EditableI*  pOriginal;
    pState = undoStack[i];
    pOriginal = pState->get_original();
    pOriginal->restore( pState );

The Copy/Paste workflow

To make a duplicate of an existing object the Demopaja uses the almost similar system as storing data in an undoable action. When the methods in undo actions were clone(), create( EditableI*), and restore() the methods to create a duplicate object are duplicate(), create(), and copy(). When a duplicate is needed the Demopaja system calls the duplicate() method. The duplicate method uses following procedure:

    EditableI*  pDup;
    pDup = pObj->create();          // Use default constructor.
    pDup->copy( pObj );             // Copy the data using copy.

See also:
Edit::UndoC , Edit::EditableI


Demopaja Help System

Overview

The help files in Demopaja system are in HTML format. The application has internal help viewer which will get the file name of the help file via a method in a plugin class descriptor. The file path is relative to the plugin directory. The plugin directory is paste at the beginning of the help file name before it is loaded in to the help viewer. There are no restrictions in the help file.

Help Files in Resources

It is possible to store the help files as resource files. It is also possible to store images to the resource which is shown in the help file. See the example plugins how to do it.


Member List

Composition::ControllerC Member List

This is the complete list of members for Composition::ControllerC, including all inherited members.
  • add_key_at_time( PajaTypes::int32 i32Time ) [virtual]
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • ControllerC( ControllerTypeE eType ) [protected]
  • ControllerC( Edit::EditableI* pOriginal ) [protected]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() [virtual]
  • create( Edit::EditableI* pOriginal ) [virtual]
  • create_new( ControllerTypeE eType ) [static]
  • DataBlockI() [protected]
  • del_key( PajaTypes::int32 i32Index ) [virtual]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_end_ort() [virtual]
  • get_key( PajaTypes::int32 i32Index ) [virtual]
  • get_key_at_time( PajaTypes::int32 i32Time ) [virtual]
  • get_key_count() [virtual]
  • get_max_time() [virtual]
  • get_max_val() [virtual]
  • get_min_time() [virtual]
  • get_min_val() [virtual]
  • get_num_channels() [virtual]
  • get_original() const [virtual]
  • get_start_ort() [virtual]
  • get_type() [virtual]
  • get_undo() [virtual]
  • get_value( PajaTypes::float32* pValues, PajaTypes::int32 i32Time ) [virtual]
  • get_value( PajaTypes::int32& i32Val, PajaTypes::int32 i32Time ) [virtual]
  • get_value( PajaTypes::float32& f32Val, PajaTypes::int32 i32Time ) [virtual]
  • get_value( PajaTypes::Vector2C& rVal, PajaTypes::int32 i32Time ) [virtual]
  • get_value( PajaTypes::Vector3C& rVal, PajaTypes::int32 i32Time ) [virtual]
  • get_value( PajaTypes::ColorC& rVal, PajaTypes::int32 i32Time ) [virtual]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • prepare() [virtual]
  • release() [virtual]
  • restore( Edit::EditableI* pBlock ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_end_ort( PajaTypes::uint32 ui32Ort ) [virtual]
  • set_start_ort( PajaTypes::uint32 ui32Ort ) [virtual]
  • set_type( PajaTypes::uint32 ui32Type ) [virtual]
  • sort_keys() [virtual]
  • ~ControllerC() [protected]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]


Member List

Composition::EffectI Member List

This is the complete list of members for Composition::EffectI, including all inherited members.
  • add_flags( PajaTypes::int32 i32Flags ) [virtual]
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() = 0 [pure virtual]
  • create( EditableI* pOriginal ) = 0 [pure virtual]
  • DataBlockI() [protected]
  • del_flags( PajaTypes::int32 i32Flags ) [virtual]
  • do_frame( PajaSystem::DeviceContextC* pContext ) = 0 [pure virtual]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • EffectI() [protected]
  • EffectI( Edit::EditableI* pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • eval_state( PajaTypes::int32 i32Time, PajaSystem::TimeContextC* pTimeContext ) = 0 [pure virtual]
  • get_bbox() = 0 [pure virtual]
  • get_class_id() = 0 [pure virtual]
  • get_class_name() = 0 [pure virtual]
  • get_default_param( PajaTypes::int32 i32Param ) = 0 [pure virtual]
  • get_flags() [virtual]
  • get_gizmo( PajaTypes::int32 i32Index ) = 0 [pure virtual]
  • get_gizmo_count() = 0 [pure virtual]
  • get_name() const [virtual]
  • get_original() const [virtual]
  • get_super_class_id() [virtual]
  • get_timesegment() [virtual]
  • get_transform_matrix() const = 0 [pure virtual]
  • get_undo() [virtual]
  • hit_test( const PajaTypes::Vector2C& rPoint ) = 0 [pure virtual]
  • initialize( PajaSystem::DeviceContextC* pContext, PajaSystem::TimeContextC* pTimeContext ) = 0 [pure virtual]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • release() [virtual]
  • restore( Edit::EditableI* pEditable ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_default_file( Import::FileHandleC* pHandle ) = 0 [pure virtual]
  • set_flags( PajaTypes::int32 i32Flags ) [virtual]
  • set_name( const char* szName ) [virtual]
  • toggle_flags( PajaTypes::int32 i32Flags ) [virtual]
  • update_notify( PajaTypes::uint32 ui32GizmoId, PajaTypes::uint32 ui32ParamId, PajaTypes::int32 i32Time ) [virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~EffectI() [protected, virtual]


Member List

Composition::GizmoI Member List

This is the complete list of members for Composition::GizmoI, including all inherited members.
  • add_flags( PajaTypes::int32 i32Flags ) [virtual]
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() = 0 [pure virtual]
  • create( EditableI* pOriginal ) = 0 [pure virtual]
  • DataBlockI() [protected]
  • del_flags( PajaTypes::int32 i32Flags ) [virtual]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_flags() [virtual]
  • get_id() [virtual]
  • get_name() const [virtual]
  • get_original() const [virtual]
  • get_parameter( PajaTypes::int32 i32Index ) = 0 [pure virtual]
  • get_parameter_count() = 0 [pure virtual]
  • get_undo() [virtual]
  • GizmoI() [protected]
  • GizmoI( EffectI* pParent, PajaTypes::uint32 ui32Id ) [protected]
  • GizmoI( Edit::EditableI* pOriginal ) [protected]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • release() [virtual]
  • restore( Edit::EditableI* pEditable ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_flags( PajaTypes::int32 i32Flags ) [virtual]
  • set_id( PajaTypes::uint32 ui32Id ) [virtual]
  • set_name( const char* szName ) [virtual]
  • toggle_flags( PajaTypes::int32 i32Flags ) [virtual]
  • update_notify( PajaTypes::uint32 ui32Id, PajaTypes::int32 i32Time ) [virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~GizmoI() [protected, virtual]


Member List

Composition::KeyC Member List

This is the complete list of members for Composition::KeyC, including all inherited members.
  • add_flags( PajaTypes::int32 i32Flags ) [virtual]
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() [virtual]
  • create( Edit::EditableI* pOriginal ) [virtual]
  • create_new() [static]
  • create_new( PajaTypes::int32 i32NumChannels ) [static]
  • DataBlockI() [protected]
  • del_flags( PajaTypes::int32 i32Flags ) [virtual]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_bias() [virtual]
  • get_cont() [virtual]
  • get_ease_in() [virtual]
  • get_ease_out() [virtual]
  • get_flags() [virtual]
  • get_in_tan( PajaTypes::float32* pValues ) [virtual]
  • get_original() const [virtual]
  • get_out_tan( PajaTypes::float32* pValues ) [virtual]
  • get_tens() [virtual]
  • get_time() [virtual]
  • get_undo() [virtual]
  • get_value( PajaTypes::float32* pValues ) [virtual]
  • KeyC() [protected]
  • KeyC( PajaTypes::int32 i32Time ) [protected]
  • KeyC( Edit::EditableI* pOriginal ) [protected]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • release() [virtual]
  • restore( Edit::EditableI* pEditable ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_bias( PajaTypes::float32 ) [virtual]
  • set_cont( PajaTypes::float32 ) [virtual]
  • set_ease_in( PajaTypes::float32 ) [virtual]
  • set_ease_out( PajaTypes::float32 ) [virtual]
  • set_flags( PajaTypes::int32 i32Flags ) [virtual]
  • set_in_tan( const PajaTypes::float32* pValues ) [virtual]
  • set_out_tan( const PajaTypes::float32* pValues ) [virtual]
  • set_tens( PajaTypes::float32 ) [virtual]
  • set_time( PajaTypes::int32 i32Time ) [virtual]
  • set_value( const PajaTypes::float32* pValues ) [virtual]
  • toggle_flags( PajaTypes::int32 i32Flags ) [virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~KeyC() [protected, virtual]


Member List

Composition::LayerC Member List

This is the complete list of members for Composition::LayerC, including all inherited members.
  • add_effect( EffectI* pEffect )
  • add_flags( PajaTypes::int32 i32Flags )
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() [virtual]
  • create( Edit::EditableI* pOriginal ) [virtual]
  • create_new() [static]
  • DataBlockI() [protected]
  • del_effect( PajaTypes::int32 i32Index )
  • del_flags( PajaTypes::int32 i32Flags )
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_effect( PajaTypes::int32 i32Index )
  • get_effect_count()
  • get_flags()
  • get_name() const
  • get_original() const [virtual]
  • get_timesegment()
  • get_undo() [virtual]
  • insert_effect( PajaTypes::int32 i32IndexBefore, EffectI* pEffect )
  • LayerC() [protected]
  • LayerC( Edit::EditableI* pOriginal ) [protected]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • release() [virtual]
  • remove_effect( PajaTypes::int32 i32Index )
  • restore( Edit::EditableI* pBlock ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_flags( PajaTypes::int32 i32Flags )
  • set_name( const char* szName )
  • toggle_flags( PajaTypes::int32 i32Flags )
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~LayerC() [protected, virtual]


Member List

Composition::ParamColorC Member List

This is the complete list of members for Composition::ParamColorC, including all inherited members.
  • add_flags( PajaTypes::int32 i32Flags ) [virtual]
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() [virtual]
  • create( Edit::EditableI* pOriginal ) [virtual]
  • create_new( GizmoI* pParent, const char* szName, const PajaTypes::ColorC& rValue, PajaTypes::uint32 ui32ID, PajaTypes::uint32 ui32Style = PARAM_STYLE_COLORPICKER, bool bAnimatable = true ) [static]
  • DataBlockI() [protected]
  • del_flags( PajaTypes::int32 i32Flags ) [virtual]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_controller() [virtual]
  • get_expanded_height() [virtual]
  • get_flags() [virtual]
  • get_id() const [virtual]
  • get_increment() const [virtual]
  • get_min_max( PajaTypes::float32* pMin, PajaTypes::float32* pMax ) [virtual]
  • get_name() [virtual]
  • get_original() const [virtual]
  • get_parent() [virtual]
  • get_style() const [virtual]
  • get_type() const [virtual]
  • get_undo() [virtual]
  • get_val( PajaTypes::int32 t, PajaTypes::float32* val ) [virtual]
  • get_val( PajaTypes::int32 t, PajaTypes::ColorC& val ) [virtual]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • ParamColorC() [protected]
  • ParamColorC( GizmoI* pParent, const char* name, const PajaTypes::ColorC& value, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_COLORPICKER, bool animatable = true ) [protected]
  • ParamColorC( Edit::EditableI* pOriginal ) [protected]
  • ParamI() [protected]
  • ParamI( Edit::EditableI* pOriginal ) [protected]
  • ParamI( GizmoI* pParent, const char* name, PajaTypes::uint32 id, PajaTypes::uint32 style = 0, bool animatable = true ) [protected]
  • release() [virtual]
  • restore( Edit::EditableI* pBlock ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_controller( ControllerC* cnt ) [virtual]
  • set_expanded_height( PajaTypes::int32 i32Height ) [virtual]
  • set_flags( PajaTypes::int32 i32Flags ) [virtual]
  • set_id( PajaTypes::uint32 id ) [virtual]
  • set_increment( PajaTypes::float32 inc ) [virtual]
  • set_name( const char* name ) [virtual]
  • set_parent( GizmoI* pParent ) [virtual]
  • set_style( PajaTypes::uint32 style ) [virtual]
  • set_val( PajaTypes::int32 t, PajaTypes::float32* val ) [virtual]
  • set_val( PajaTypes::int32 t, const PajaTypes::ColorC& val ) [virtual]
  • toggle_flags( PajaTypes::int32 i32Flags ) [virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~ParamColorC() [protected, virtual]
  • ~ParamI() [protected, virtual]


Member List

Composition::ParamFileC Member List

This is the complete list of members for Composition::ParamFileC, including all inherited members.
  • add_flags( PajaTypes::int32 i32Flags ) [virtual]
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() [virtual]
  • create( Edit::EditableI* pOriginal ) [virtual]
  • create_new( GizmoI* pParent, const char* szName, PluginClass::SuperClassIdC rSuperClassFilter, PluginClass::ClassIdC rClassFilter, PajaTypes::uint32 ui32ID, PajaTypes::uint32 ui32Style = PARAM_STYLE_FILE ) [static]
  • DataBlockI() [protected]
  • del_flags( PajaTypes::int32 i32Flags ) [virtual]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_class_filter() [virtual]
  • get_controller() [virtual]
  • get_duration( PajaSystem::TimeContextC* pTimeContext ) [virtual]
  • get_end_label( PajaSystem::TimeContextC* pTimeContext ) [virtual]
  • get_expanded_height() [virtual]
  • get_file() [virtual]
  • get_flags() [virtual]
  • get_id() const [virtual]
  • get_increment() const [virtual]
  • get_min_max( PajaTypes::float32* pMin, PajaTypes::float32* pMax ) [virtual]
  • get_name() [virtual]
  • get_original() const [virtual]
  • get_parent() [virtual]
  • get_start_label( PajaSystem::TimeContextC* pTimeContext ) [virtual]
  • get_style() const [virtual]
  • get_super_class_filter() [virtual]
  • get_time_offset() [virtual]
  • get_time_scale() [virtual]
  • get_type() const [virtual]
  • get_undo() [virtual]
  • get_val( PajaTypes::int32 t, PajaTypes::float32* val ) [virtual]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • ParamFileC() [protected]
  • ParamFileC( GizmoI* pParent, const char* name, PluginClass::SuperClassIdC rSuperClassFilter, PluginClass::ClassIdC rClassFilter, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX ) [protected]
  • ParamFileC( Edit::EditableI* pOriginal ) [protected]
  • ParamI() [protected]
  • ParamI( Edit::EditableI* pOriginal ) [protected]
  • ParamI( GizmoI* pParent, const char* name, PajaTypes::uint32 id, PajaTypes::uint32 style = 0, bool animatable = true ) [protected]
  • release() [virtual]
  • restore( Edit::EditableI* pBlock ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_class_filter( PluginClass::ClassIdC rClassId ) [virtual]
  • set_controller( ControllerC* cnt ) [virtual]
  • set_expanded_height( PajaTypes::int32 i32Height ) [virtual]
  • set_file( Import::FileHandleC* pHandle ) [virtual]
  • set_flags( PajaTypes::int32 i32Flags ) [virtual]
  • set_id( PajaTypes::uint32 id ) [virtual]
  • set_increment( PajaTypes::float32 inc ) [virtual]
  • set_name( const char* name ) [virtual]
  • set_parent( GizmoI* pParent ) [virtual]
  • set_style( PajaTypes::uint32 style ) [virtual]
  • set_super_class_filter( PluginClass::SuperClassIdC rSuperClassId ) [virtual]
  • set_time_offset( PajaTypes::int32 i32TimeOffset ) [virtual]
  • set_time_scale( PajaTypes::float32 f32TimeScale ) [virtual]
  • set_val( PajaTypes::int32 t, PajaTypes::float32* val ) [virtual]
  • toggle_flags( PajaTypes::int32 i32Flags ) [virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~ParamFileC() [protected, virtual]
  • ~ParamI() [protected, virtual]


Member List

Composition::ParamFloatC Member List

This is the complete list of members for Composition::ParamFloatC, including all inherited members.
  • add_flags( PajaTypes::int32 i32Flags ) [virtual]
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() [virtual]
  • create( Edit::EditableI* pOriginal ) [virtual]
  • create_new( GizmoI* pParent, const char* name, PajaTypes::float32 value, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX, bool animatable = true, PajaTypes::float32 min = 0, PajaTypes::float32 max = 0, PajaTypes::float32 inc = 0.01f ) [static]
  • DataBlockI() [protected]
  • del_flags( PajaTypes::int32 i32Flags ) [virtual]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_controller() [virtual]
  • get_expanded_height() [virtual]
  • get_flags() [virtual]
  • get_id() const [virtual]
  • get_increment() const [virtual]
  • get_max() const [virtual]
  • get_min() const [virtual]
  • get_min_max( PajaTypes::float32* pMin, PajaTypes::float32* pMax ) [virtual]
  • get_name() [virtual]
  • get_original() const [virtual]
  • get_parent() [virtual]
  • get_style() const [virtual]
  • get_type() const [virtual]
  • get_undo() [virtual]
  • get_val( PajaTypes::int32 t, PajaTypes::float32* val ) [virtual]
  • get_val( PajaTypes::int32 t, PajaTypes::float32& val ) [virtual]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • ParamFloatC() [protected]
  • ParamFloatC( GizmoI* pParent, const char* name, PajaTypes::float32 value, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX, bool animatable = true, PajaTypes::float32 min = 0, PajaTypes::float32 max = 0, PajaTypes::float32 inc = 0.01f ) [protected]
  • ParamFloatC( Edit::EditableI* pOriginal ) [protected]
  • ParamI() [protected]
  • ParamI( Edit::EditableI* pOriginal ) [protected]
  • ParamI( GizmoI* pParent, const char* name, PajaTypes::uint32 id, PajaTypes::uint32 style = 0, bool animatable = true ) [protected]
  • release() [virtual]
  • restore( Edit::EditableI* pBlock ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_controller( ControllerC* cnt ) [virtual]
  • set_expanded_height( PajaTypes::int32 i32Height ) [virtual]
  • set_flags( PajaTypes::int32 i32Flags ) [virtual]
  • set_id( PajaTypes::uint32 id ) [virtual]
  • set_increment( PajaTypes::float32 inc ) [virtual]
  • set_min_max( PajaTypes::float32 min, PajaTypes::float32 max ) [virtual]
  • set_name( const char* name ) [virtual]
  • set_parent( GizmoI* pParent ) [virtual]
  • set_style( PajaTypes::uint32 style ) [virtual]
  • set_val( PajaTypes::int32 t, PajaTypes::float32* val ) [virtual]
  • set_val( PajaTypes::int32 t, const PajaTypes::float32& val ) [virtual]
  • toggle_flags( PajaTypes::int32 i32Flags ) [virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~ParamFloatC() [protected, virtual]
  • ~ParamI() [protected, virtual]


Member List

Composition::ParamI Member List

This is the complete list of members for Composition::ParamI, including all inherited members.
  • add_flags( PajaTypes::int32 i32Flags ) [virtual]
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() = 0 [pure virtual]
  • create( EditableI* pOriginal ) = 0 [pure virtual]
  • DataBlockI() [protected]
  • del_flags( PajaTypes::int32 i32Flags ) [virtual]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_controller() = 0 [pure virtual]
  • get_expanded_height() [virtual]
  • get_flags() [virtual]
  • get_id() const = 0 [pure virtual]
  • get_increment() const = 0 [pure virtual]
  • get_min_max( PajaTypes::float32* pMin, PajaTypes::float32* pMax ) = 0 [pure virtual]
  • get_name() [virtual]
  • get_original() const [virtual]
  • get_parent() [virtual]
  • get_style() const = 0 [pure virtual]
  • get_type() const = 0 [pure virtual]
  • get_undo() [virtual]
  • get_val( PajaTypes::int32 t, PajaTypes::float32* pVal ) = 0 [pure virtual]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • ParamColorC (defined in Composition::ParamI) [friend]
  • ParamFileC (defined in Composition::ParamI) [friend]
  • ParamFloatC (defined in Composition::ParamI) [friend]
  • ParamI() [protected]
  • ParamI( Edit::EditableI* pOriginal ) [protected]
  • ParamI( GizmoI* pParent, const char* name, PajaTypes::uint32 id, PajaTypes::uint32 style = 0, bool animatable = true ) [protected]
  • ParamIntC (defined in Composition::ParamI) [friend]
  • ParamTextC (defined in Composition::ParamI) [friend]
  • ParamVector2C (defined in Composition::ParamI) [friend]
  • ParamVector3C (defined in Composition::ParamI) [friend]
  • release() [virtual]
  • restore( Edit::EditableI* pBlock ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_controller( ControllerC* cnt ) = 0 [pure virtual]
  • set_expanded_height( PajaTypes::int32 i32Height ) [virtual]
  • set_flags( PajaTypes::int32 i32Flags ) [virtual]
  • set_id( PajaTypes::uint32 id ) = 0 [pure virtual]
  • set_increment( PajaTypes::float32 f32Inc ) = 0 [pure virtual]
  • set_name( const char* name ) [virtual]
  • set_parent( GizmoI* pParent ) [virtual]
  • set_style( PajaTypes::uint32 style ) = 0 [pure virtual]
  • set_val( PajaTypes::int32 t, PajaTypes::float32* pVal ) = 0 [pure virtual]
  • toggle_flags( PajaTypes::int32 i32Flags ) [virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~ParamI() [protected, virtual]


Member List

Composition::ParamIntC Member List

This is the complete list of members for Composition::ParamIntC, including all inherited members.
  • add_flags( PajaTypes::int32 i32Flags ) [virtual]
  • add_label( PajaTypes::int32 i32Val, const char* szName ) [virtual]
  • add_label( PajaTypes::int32 i32Val, const std::string& sName ) [virtual]
  • begin_editing( UndoC* pUndo ) [virtual]
  • clear_labels() [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() [virtual]
  • create( Edit::EditableI* pOriginal ) [virtual]
  • create_new( GizmoI* pParent, const char* szName, PajaTypes::int32 i32Value, PajaTypes::uint32 ui32ID, PajaTypes::uint32 ui32Style = PARAM_STYLE_EDITBOX, bool bAnimatable = true, PajaTypes::int32 i32Min = 0, PajaTypes::int32 i32Max = 0, PajaTypes::int32 i32Inc = 1 ) [static]
  • DataBlockI() [protected]
  • del_flags( PajaTypes::int32 i32Flags ) [virtual]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_controller() [virtual]
  • get_expanded_height() [virtual]
  • get_flags() [virtual]
  • get_id() const [virtual]
  • get_increment() const [virtual]
  • get_label_count() const [virtual]
  • get_label_name( PajaTypes::uint32 i ) [virtual]
  • get_label_value( PajaTypes::uint32 i ) [virtual]
  • get_max() const [virtual]
  • get_min() const [virtual]
  • get_min_max( PajaTypes::float32* pMin, PajaTypes::float32* pMax ) [virtual]
  • get_name() [virtual]
  • get_original() const [virtual]
  • get_parent() [virtual]
  • get_style() const [virtual]
  • get_type() const [virtual]
  • get_undo() [virtual]
  • get_val( PajaTypes::int32 t, PajaTypes::float32* val ) [virtual]
  • get_val( PajaTypes::int32 t, PajaTypes::int32& val ) [virtual]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • ParamI() [protected]
  • ParamI( Edit::EditableI* pOriginal ) [protected]
  • ParamI( GizmoI* pParent, const char* name, PajaTypes::uint32 id, PajaTypes::uint32 style = 0, bool animatable = true ) [protected]
  • ParamIntC() [protected]
  • ParamIntC( GizmoI* pParent, const char* name, PajaTypes::int32 value, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX, bool animatable = true, PajaTypes::int32 min = 0, PajaTypes::int32 max = 0, PajaTypes::int32 inc = 1 ) [protected]
  • ParamIntC( Edit::EditableI* pOriginal ) [protected]
  • release() [virtual]
  • remove_label( PajaTypes::int32 val ) [virtual]
  • restore( Edit::EditableI* pBlock ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_controller( ControllerC* cnt ) [virtual]
  • set_expanded_height( PajaTypes::int32 i32Height ) [virtual]
  • set_flags( PajaTypes::int32 i32Flags ) [virtual]
  • set_id( PajaTypes::uint32 id ) [virtual]
  • set_increment( PajaTypes::float32 inc ) [virtual]
  • set_min_max( PajaTypes::int32 i32Min, PajaTypes::int32 i32Max ) [virtual]
  • set_name( const char* name ) [virtual]
  • set_parent( GizmoI* pParent ) [virtual]
  • set_style( PajaTypes::uint32 style ) [virtual]
  • set_val( PajaTypes::int32 t, PajaTypes::float32* val ) [virtual]
  • set_val( PajaTypes::int32 t, const PajaTypes::int32& val ) [virtual]
  • toggle_flags( PajaTypes::int32 i32Flags ) [virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~ParamI() [protected, virtual]
  • ~ParamIntC() [protected, virtual]


Member List

Composition::ParamTextC Member List

This is the complete list of members for Composition::ParamTextC, including all inherited members.
  • add_flags( PajaTypes::int32 i32Flags ) [virtual]
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() [virtual]
  • create( Edit::EditableI* pOriginal ) [virtual]
  • create_new( GizmoI* pParent, const char* szName, const char* szText, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX ) [static]
  • DataBlockI() [protected]
  • del_flags( PajaTypes::int32 i32Flags ) [virtual]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_controller() [virtual]
  • get_expanded_height() [virtual]
  • get_flags() [virtual]
  • get_id() const [virtual]
  • get_increment() const [virtual]
  • get_min_max( PajaTypes::float32* pMin, PajaTypes::float32* pMax ) [virtual]
  • get_name() [virtual]
  • get_original() const [virtual]
  • get_parent() [virtual]
  • get_style() const [virtual]
  • get_type() const [virtual]
  • get_undo() [virtual]
  • get_val( PajaTypes::int32 i32Time, PajaTypes::float32* pVal ) [virtual]
  • get_val( PajaTypes::int32 i32Time, char* szVal = 0, PajaTypes::int32 i32Size = 0 ) [virtual]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • ParamI() [protected]
  • ParamI( Edit::EditableI* pOriginal ) [protected]
  • ParamI( GizmoI* pParent, const char* name, PajaTypes::uint32 id, PajaTypes::uint32 style = 0, bool animatable = true ) [protected]
  • ParamTextC() [protected]
  • ParamTextC( GizmoI* pParent, const char* name, const char* text, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX ) [protected]
  • ParamTextC( Edit::EditableI* pOriginal ) [protected]
  • release() [virtual]
  • restore( Edit::EditableI* pBlock ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_controller( ControllerC* cnt ) [virtual]
  • set_expanded_height( PajaTypes::int32 i32Height ) [virtual]
  • set_flags( PajaTypes::int32 i32Flags ) [virtual]
  • set_id( PajaTypes::uint32 id ) [virtual]
  • set_increment( PajaTypes::float32 inc ) [virtual]
  • set_name( const char* name ) [virtual]
  • set_parent( GizmoI* pParent ) [virtual]
  • set_style( PajaTypes::uint32 style ) [virtual]
  • set_val( PajaTypes::int32 i32Time, PajaTypes::float32* pVal ) [virtual]
  • set_val( PajaTypes::int32 i32Time, const char* szVal ) [virtual]
  • toggle_flags( PajaTypes::int32 i32Flags ) [virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~ParamI() [protected, virtual]
  • ~ParamTextC() [protected, virtual]


Member List

Composition::ParamVector2C Member List

This is the complete list of members for Composition::ParamVector2C, including all inherited members.
  • add_flags( PajaTypes::int32 i32Flags ) [virtual]
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() [virtual]
  • create( Edit::EditableI* pOriginal ) [virtual]
  • create_new( GizmoI* pParent, const char* name, const PajaTypes::Vector2C& value, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX, bool animatable = true, const PajaTypes::Vector2C& min = PajaTypes::Vector2C(), const PajaTypes::Vector2C& max = PajaTypes::Vector2C(), PajaTypes::float32 inc = 0.1f ) [static]
  • DataBlockI() [protected]
  • del_flags( PajaTypes::int32 i32Flags ) [virtual]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_controller() [virtual]
  • get_expanded_height() [virtual]
  • get_flags() [virtual]
  • get_id() const [virtual]
  • get_increment() const [virtual]
  • get_max() const [virtual]
  • get_min() const [virtual]
  • get_min_max( PajaTypes::float32* pMin, PajaTypes::float32* pMax ) [virtual]
  • get_name() [virtual]
  • get_original() const [virtual]
  • get_parent() [virtual]
  • get_style() const [virtual]
  • get_type() const [virtual]
  • get_undo() [virtual]
  • get_val( PajaTypes::int32 t, PajaTypes::float32* val ) [virtual]
  • get_val( PajaTypes::int32 t, PajaTypes::Vector2C& val ) [virtual]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • ParamI() [protected]
  • ParamI( Edit::EditableI* pOriginal ) [protected]
  • ParamI( GizmoI* pParent, const char* name, PajaTypes::uint32 id, PajaTypes::uint32 style = 0, bool animatable = true ) [protected]
  • ParamVector2C() [protected]
  • ParamVector2C( GizmoI* pParent, const char* name, const PajaTypes::Vector2C& value, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX, bool animatable = true, const PajaTypes::Vector2C& min = PajaTypes::Vector2C(), const PajaTypes::Vector2C& max = PajaTypes::Vector2C(), PajaTypes::float32 inc = 0.1f ) [protected]
  • ParamVector2C( Edit::EditableI* pOriginal ) [protected]
  • release() [virtual]
  • restore( Edit::EditableI* pBlock ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_controller( ControllerC* cnt ) [virtual]
  • set_expanded_height( PajaTypes::int32 i32Height ) [virtual]
  • set_flags( PajaTypes::int32 i32Flags ) [virtual]
  • set_id( PajaTypes::uint32 id ) [virtual]
  • set_increment( PajaTypes::float32 inc ) [virtual]
  • set_min_max( const PajaTypes::Vector2C& min, const PajaTypes::Vector2C& max ) [virtual]
  • set_name( const char* name ) [virtual]
  • set_parent( GizmoI* pParent ) [virtual]
  • set_style( PajaTypes::uint32 style ) [virtual]
  • set_val( PajaTypes::int32 t, PajaTypes::float32* val ) [virtual]
  • set_val( PajaTypes::int32 t, const PajaTypes::Vector2C& val ) [virtual]
  • toggle_flags( PajaTypes::int32 i32Flags ) [virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~ParamI() [protected, virtual]
  • ~ParamVector2C() [protected, virtual]


Member List

Composition::ParamVector3C Member List

This is the complete list of members for Composition::ParamVector3C, including all inherited members.
  • add_flags( PajaTypes::int32 i32Flags ) [virtual]
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() [virtual]
  • create( Edit::EditableI* pOriginal ) [virtual]
  • create_new( GizmoI* pParent, const char* szName, const PajaTypes::Vector3C& rValue, PajaTypes::uint32 ui32ID, PajaTypes::uint32 ui32Style = PARAM_STYLE_EDITBOX, bool bAnimatable = true, const PajaTypes::Vector3C& rMin = PajaTypes::Vector3C(), const PajaTypes::Vector3C& rMax = PajaTypes::Vector3C(), PajaTypes::float32 f32Inc = 0.1f ) [static]
  • DataBlockI() [protected]
  • del_flags( PajaTypes::int32 i32Flags ) [virtual]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_controller() [virtual]
  • get_expanded_height() [virtual]
  • get_flags() [virtual]
  • get_id() const [virtual]
  • get_increment() const [virtual]
  • get_max() const [virtual]
  • get_min() const [virtual]
  • get_min_max( PajaTypes::float32* pMin, PajaTypes::float32* pMax ) [virtual]
  • get_name() [virtual]
  • get_original() const [virtual]
  • get_parent() [virtual]
  • get_style() const [virtual]
  • get_type() const [virtual]
  • get_undo() [virtual]
  • get_val( PajaTypes::int32 t, PajaTypes::float32* val ) [virtual]
  • get_val( PajaTypes::int32 t, PajaTypes::Vector3C& val ) [virtual]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • ParamI() [protected]
  • ParamI( Edit::EditableI* pOriginal ) [protected]
  • ParamI( GizmoI* pParent, const char* name, PajaTypes::uint32 id, PajaTypes::uint32 style = 0, bool animatable = true ) [protected]
  • ParamVector3C() [protected]
  • ParamVector3C( GizmoI* pParent, const char* name, const PajaTypes::Vector3C& value, PajaTypes::uint32 id, PajaTypes::uint32 style = PARAM_STYLE_EDITBOX, bool animatable = true, const PajaTypes::Vector3C& min = PajaTypes::Vector3C(), const PajaTypes::Vector3C& max = PajaTypes::Vector3C(), PajaTypes::float32 inc = 0.1f ) [protected]
  • ParamVector3C( Edit::EditableI* pOriginal ) [protected]
  • release() [virtual]
  • restore( Edit::EditableI* pBlock ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_controller( ControllerC* cnt ) [virtual]
  • set_expanded_height( PajaTypes::int32 i32Height ) [virtual]
  • set_flags( PajaTypes::int32 i32Flags ) [virtual]
  • set_id( PajaTypes::uint32 id ) [virtual]
  • set_increment( PajaTypes::float32 inc ) [virtual]
  • set_min_max( const PajaTypes::Vector3C& min, const PajaTypes::Vector3C& max ) [virtual]
  • set_name( const char* name ) [virtual]
  • set_parent( GizmoI* pParent ) [virtual]
  • set_style( PajaTypes::uint32 style ) [virtual]
  • set_val( PajaTypes::int32 t, PajaTypes::float32* val ) [virtual]
  • set_val( PajaTypes::int32 t, const PajaTypes::Vector3C& val ) [virtual]
  • toggle_flags( PajaTypes::int32 i32Flags ) [virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~ParamI() [protected, virtual]
  • ~ParamVector3C() [protected, virtual]


Member List

Composition::SceneC Member List

This is the complete list of members for Composition::SceneC, including all inherited members.
  • add_layer()
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() [virtual]
  • create( Edit::EditableI* pOriginal ) [virtual]
  • create_new() [static]
  • DataBlockI() [protected]
  • del_layer( PajaTypes::uint32 ui32Index )
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_beats_per_measure()
  • get_beats_per_min()
  • get_duration()
  • get_edit_accuracy()
  • get_layer( PajaTypes::uint32 ui32Index )
  • get_layer_count()
  • get_layout_height()
  • get_layout_width()
  • get_name() const
  • get_original() const [virtual]
  • get_qnotes_per_beat()
  • get_undo() [virtual]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • load( FileIO::LoadC* pLoad, bool bMerge )
  • move_layer_before( PajaTypes::uint32 ui32Index, PajaTypes::uint32 ui32IndexBefore )
  • release() [virtual]
  • restore( Edit::EditableI* pEditable ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • SceneC() [protected]
  • SceneC( Edit::EditableI* pOriginal ) [protected]
  • set_beats_per_measure( PajaTypes::int32 i32Beats )
  • set_beats_per_min( PajaTypes::int32 i32BeatsPerMin )
  • set_duration( PajaTypes::int32 i32Duration )
  • set_edit_accuracy( PajaTypes::int32 i32Accuracy )
  • set_layout_height( PajaTypes::int32 i32Height )
  • set_layout_width( PajaTypes::int32 i32Width )
  • set_name( const char* szName )
  • set_qnotes_per_beat( PajaTypes::int32 i32QNotes )
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~SceneC() [protected, virtual]


Member List

Composition::TimeSegmentC Member List

This is the complete list of members for Composition::TimeSegmentC, including all inherited members.
  • add_key_at_time( PajaTypes::int32 i32Time ) [virtual]
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() [virtual]
  • create( Edit::EditableI* pOriginal ) [virtual]
  • create_new() [static]
  • create_new( PajaTypes::int32 i32SegmentStart, PajaTypes::int32 i32SegmentEnd ) [static]
  • DataBlockI() [protected]
  • del_key( PajaTypes::int32 i32Index ) [virtual]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_key( PajaTypes::int32 i32Index ) [virtual]
  • get_key_at_time( PajaTypes::int32 i32Time ) [virtual]
  • get_key_count() [virtual]
  • get_key_time( PajaTypes::int32 i32Index ) [virtual]
  • get_original() const [virtual]
  • get_segment_start() [virtual]
  • get_undo() [virtual]
  • is_visible( PajaTypes::int32 i32Time ) [virtual]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • release() [virtual]
  • restore( Edit::EditableI* pEditable ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_key_time( PajaTypes::int32 i32Index, PajaTypes::int32 i32Time ) [virtual]
  • set_segment_start( PajaTypes::int32 i32Start ) [virtual]
  • sort_keys() [virtual]
  • TimeSegmentC() [protected]
  • TimeSegmentC( PajaTypes::int32 i32SegmentStart, PajaTypes::int32 i32SegmentLength ) [protected]
  • TimeSegmentC( Edit::EditableI* pOriginal ) [protected]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~TimeSegmentC() [protected, virtual]


Member List

Edit::DataBlockI Member List

This is the complete list of members for Edit::DataBlockI, including all inherited members.
  • copy( DataBlockI* pBlock ) = 0 [pure virtual]
  • create() = 0 [pure virtual]
  • DataBlockI() [protected]
  • release() [virtual]
  • ~DataBlockI() [protected, virtual]


Member List

Edit::EditableI Member List

This is the complete list of members for Edit::EditableI, including all inherited members.
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( DataBlockI* pBlock ) = 0 [pure virtual]
  • create() = 0 [pure virtual]
  • create( EditableI* pOriginal ) = 0 [pure virtual]
  • DataBlockI() [protected]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_original() const [virtual]
  • get_undo() [virtual]
  • load( FileIO::LoadC* pLoad ) = 0 [pure virtual]
  • release() [virtual]
  • restore( EditableI* pEditable ) = 0 [pure virtual]
  • save( FileIO::SaveC* pSave ) = 0 [pure virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]


Member List

Edit::UndoC Member List

This is the complete list of members for Edit::UndoC, including all inherited members.
  • add_discardable_data( DataBlockI* pBlock, PajaTypes::uint32 ui32Flags ) [virtual]
  • add_restore_data( EditableI* pBlock ) [virtual]
  • can_redo() [virtual]
  • get_name() [virtual]
  • redo() [virtual]
  • undo() [virtual]
  • UndoC( const char* szName )
  • ~UndoC() [virtual]


Member List

FileIO::LoadC Member List

This is the complete list of members for FileIO::LoadC, including all inherited members.
  • add_error_message( const char* szMessage ) [virtual]
  • add_file_handle_patch( void** pPointer, PajaTypes::uint32 ui32HandleId ) [virtual]
  • close() [virtual]
  • close_chunk() [virtual]
  • get_chunk_id() [virtual]
  • get_chunk_indent() [virtual]
  • get_chunk_size() [virtual]
  • get_chunk_version() [virtual]
  • get_error() [virtual]
  • get_error_message( PajaTypes::uint32 ui32Index ) [virtual]
  • get_error_message_count() [virtual]
  • get_factory() const [virtual]
  • get_file_handle_patch_count() [virtual]
  • get_file_handle_patch_id( PajaTypes::uint32 ui32Index ) [virtual]
  • get_file_handle_patch_pointer( PajaTypes::uint32 ui32Index ) [virtual]
  • LoadC( PluginClass::FactoryC* pFactory )
  • open( const char* szName, const PajaTypes::int8* pSignature, PajaTypes::int32 i32SignatureSize ) [virtual]
  • open_chunk() [virtual]
  • peek_next_chunk() [virtual]
  • read( void* pBuffer, PajaTypes::uint32 ui32Size ) [virtual]
  • read_str( char* szStr ) [virtual]
  • ~LoadC() [virtual]


Member List

FileIO::SaveC Member List

This is the complete list of members for FileIO::SaveC, including all inherited members.
  • begin_chunk( PajaTypes::uint32 ui32ID, PajaTypes::uint32 ui32Version ) [virtual]
  • close() [virtual]
  • end_chunk() [virtual]
  • get_error() [virtual]
  • open( const char* szName, const PajaTypes::int8* pSignature, PajaTypes::int32 i32SignatureSize ) [virtual]
  • SaveC()
  • write( const void* pBuffer, PajaTypes::uint32 ui32Len ) [virtual]
  • write_str( const char* szStr ) [virtual]
  • ~SaveC() [virtual]


Member List

Import::FileHandleC Member List

This is the complete list of members for Import::FileHandleC, including all inherited members.
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() [virtual]
  • create( Edit::EditableI* pOriginal ) [virtual]
  • create_new() [static]
  • DataBlockI() [protected]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • FileHandleC() [protected]
  • FileHandleC( Edit::EditableI* pOriginal ) [protected]
  • get_id() [virtual]
  • get_importable() [virtual]
  • get_original() const [virtual]
  • get_reference_count() [virtual]
  • get_undo() [virtual]
  • inc_reference_count() [virtual]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • release() [virtual]
  • reset_reference_count() [virtual]
  • restore( Edit::EditableI* pEditable ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • set_id( PajaTypes::uint32 i32ID ) [virtual]
  • set_importable( ImportableI* pImportable ) [virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~FileHandleC() [protected, virtual]


Member List

Import::FileListC Member List

This is the complete list of members for Import::FileListC, including all inherited members.
  • add_file( ImportableI* pImportable ) [virtual]
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( Edit::DataBlockI* pBlock ) [virtual]
  • create() [virtual]
  • create( Edit::EditableI* pOriginal ) [virtual]
  • create_new() [static]
  • DataBlockI() [protected]
  • del_file( PajaTypes::uint32 ui32Index ) [virtual]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • FileListC() [protected]
  • FileListC( Edit::EditableI* pOriginal ) [protected]
  • get_file( PajaTypes::uint32 ui32Index ) [virtual]
  • get_file( const char* szName ) [virtual]
  • get_file_count() [virtual]
  • get_original() const [virtual]
  • get_undo() [virtual]
  • load( FileIO::LoadC* pLoad ) [virtual]
  • release() [virtual]
  • reload_file( PajaTypes::uint32 ui32Index, ImportInterfaceC* pIface ) [virtual]
  • replace_file( PajaTypes::uint32 ui32Index, const char* szName, ImportInterfaceC* pIface ) [virtual]
  • restore( Edit::EditableI* pEditable ) [virtual]
  • save( FileIO::SaveC* pSave ) [virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~FileListC() [protected, virtual]


Member List

Import::ImportableI Member List

This is the complete list of members for Import::ImportableI, including all inherited members.
  • begin_editing( UndoC* pUndo ) [virtual]
  • clone() [virtual]
  • copy( DataBlockI* pBlock ) = 0 [pure virtual]
  • create() = 0 [pure virtual]
  • create( EditableI* pOriginal ) = 0 [pure virtual]
  • DataBlockI() [protected]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_class_id() = 0 [pure virtual]
  • get_class_name() = 0 [pure virtual]
  • get_default_effect() = 0 [pure virtual]
  • get_duration( PajaSystem::TimeContextC* pTimeContext ) = 0 [pure virtual]
  • get_end_label( PajaSystem::TimeContextC* pTimeContext ) = 0 [pure virtual]
  • get_filename() = 0 [pure virtual]
  • get_info() = 0 [pure virtual]
  • get_original() const [virtual]
  • get_reference_file( PajaTypes::uint32 ui32Index ) [virtual]
  • get_reference_file_count() [virtual]
  • get_start_label( PajaSystem::TimeContextC* pTimeContext ) = 0 [pure virtual]
  • get_super_class_id() = 0 [pure virtual]
  • get_undo() [virtual]
  • ImportableI() [protected]
  • ImportableI( Edit::EditableI* pOriginal ) [protected]
  • load( FileIO::LoadC* pLoad ) = 0 [pure virtual]
  • load_file( const char* szName, ImportInterfaceC* pInterface ) = 0 [pure virtual]
  • release() [virtual]
  • restore( EditableI* pEditable ) = 0 [pure virtual]
  • save( FileIO::SaveC* pSave ) = 0 [pure virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~ImportableI() [protected, virtual]


Member List

Import::ImportableImageI Member List

This is the complete list of members for Import::ImportableImageI, including all inherited members.
  • begin_editing( UndoC* pUndo ) [virtual]
  • bind_texture( PajaSystem::DeviceInterfaceI* pInterface, PajaTypes::uint32 ui32Properties ) = 0 [pure virtual]
  • clone() [virtual]
  • copy( DataBlockI* pBlock ) = 0 [pure virtual]
  • create() = 0 [pure virtual]
  • create( EditableI* pOriginal ) = 0 [pure virtual]
  • DataBlockI() [protected]
  • duplicate() [virtual]
  • EditableI() [protected]
  • EditableI( EditableI* m_pOriginal ) [protected]
  • end_editing( UndoC* pUndo ) [virtual]
  • get_bpp() = 0 [pure virtual]
  • get_class_id() = 0 [pure virtual]
  • get_class_name() = 0 [pure virtual]
  • get_data() = 0 [pure virtual]
  • get_default_effect() = 0 [pure virtual]
  • get_duration( PajaSystem::TimeContextC* pTimeContext ) = 0 [pure virtual]
  • get_end_label( PajaSystem::TimeContextC* pTimeContext ) = 0 [pure virtual]
  • get_filename() = 0 [pure virtual]
  • get_height() = 0 [pure virtual]
  • get_info() = 0 [pure virtual]
  • get_original() const [virtual]
  • get_pitch() = 0 [pure virtual]
  • get_reference_file( PajaTypes::uint32 ui32Index ) [virtual]
  • get_reference_file_count() [virtual]
  • get_start_label( PajaSystem::TimeContextC* pTimeContext ) = 0 [pure virtual]
  • get_super_class_id() [virtual]
  • get_undo() [virtual]
  • get_width() = 0 [pure virtual]
  • ImportableI() [protected]
  • ImportableI( Edit::EditableI* pOriginal ) [protected]
  • ImportableImageI() [protected]
  • ImportableImageI( Edit::EditableI* pOriginal ) [protected]
  • load( FileIO::LoadC* pLoad ) = 0 [pure virtual]
  • load_file( const char* szName, ImportInterfaceC* pInterface ) = 0 [pure virtual]
  • release() [virtual]
  • restore( EditableI* pEditable ) = 0 [pure virtual]
  • save( FileIO::SaveC* pSave ) = 0 [pure virtual]
  • ~DataBlockI() [protected, virtual]
  • ~EditableI() [protected, virtual]
  • ~ImportableI() [protected, virtual]
  • ~ImportableImageI() [protected, virtual]


Member List

Import::ImportInterfaceC Member List

This is the complete list of members for Import::ImportInterfaceC, including all inherited members.
  • ImportInterfaceC( FileListC* pFileList, PluginClass::FactoryC* pFactory )
  • request_import( const char* szName, PluginClass::SuperClassIdC rSuperFilter, const PluginClass::ClassIdC rClassFilter ) [virtual]
  • ~ImportInterfaceC() [virtual]


Member List

PajaSystem::DeviceContextC Member List

This is the complete list of members for PajaSystem::DeviceContextC, including all inherited members.
  • DeviceContextC()
  • query_interface( PajaTypes::int32 i32Iface ) [virtual]
  • register_interface( PajaTypes::int32 i32Iface, DeviceInterfaceI* pInterface ) [virtual]
  • ~DeviceContextC() [virtual]


Member List

PajaSystem::DeviceInterfaceI Member List

This is the complete list of members for PajaSystem::DeviceInterfaceI, including all inherited members.
  • DeviceInterfaceI()
  • get_type() const = 0 [pure virtual]
  • ~DeviceInterfaceI() [virtual]


Member List

PajaSystem::OpenGLInterfaceC Member List

This is the complete list of members for PajaSystem::OpenGLInterfaceC, including all inherited members.
  • client_to_layout( const PajaTypes::Vector2C& rVec ) [virtual]
  • delta_client_to_layout( const PajaTypes::Vector2C& rVec ) [virtual]
  • delta_layout_to_client( const PajaTypes::Vector2C& rVec ) [virtual]
  • DeviceInterfaceI()
  • get_height() [virtual]
  • get_layout() [virtual]
  • get_type() const [virtual]
  • get_viewport() [virtual]
  • get_width() [virtual]
  • layout_to_client( const PajaTypes::Vector2C& rVec ) [virtual]
  • OpenGLInterfaceC( PajaTypes::int32 i32PosX, PajaTypes::int32 i32PosY, PajaTypes::int32 i32Width, PajaTypes::int32 i32Height, const PajaTypes::BBox2C& rViewport, const PajaTypes::BBox2C& rLayout )
  • OpenGLInterfaceC() (defined in PajaSystem::OpenGLInterfaceC)
  • set_dimension( PajaTypes::int32 i32PosX, PajaTypes::int32 i32PosY, PajaTypes::int32 i32Width, PajaTypes::int32 i32Height ) [virtual]
  • set_layout( const PajaTypes::BBox2C& rLayout ) [virtual]
  • set_ortho( const PajaTypes::BBox2C& rBBox, PajaTypes::float32 f32Left, PajaTypes::float32 f32Right, PajaTypes::float32 f32Top, PajaTypes::float32 f32Bottom, PajaTypes::float32 f32ZNear = -1, PajaTypes::float32 f32ZFar = 1 ) [virtual]
  • set_perspective( const PajaTypes::BBox2C& rBBox, PajaTypes::float32 f32FOV, PajaTypes::float32 f32Aspect, PajaTypes::float32 f32ZNear, PajaTypes::float32 f32ZFar ) [virtual]
  • set_viewport( const PajaTypes::BBox2C& rViewport ) [virtual]
  • ~DeviceInterfaceI() [virtual]
  • ~OpenGLInterfaceC() [virtual]


Member List

PajaSystem::TimeContextC Member List

This is the complete list of members for PajaSystem::TimeContextC, including all inherited members.
  • convert_fps_to_time( PajaTypes::float64 f64Time, PajaTypes::float64 f64FPS ) [virtual]
  • convert_time_to_fps( PajaTypes::float64 f64FpsTime, PajaTypes::float64 f64FPS ) [virtual]
  • get_beats_per_min() const [virtual]
  • get_edit_accuracy() const [virtual]
  • get_qnotes_per_beat() const [virtual]
  • TimeContextC( PajaTypes::int32 i32BeatsPerMin, PajaTypes::int32 i32QNotesPerBeat, PajaTypes::int32 i32EditAccuracy )
  • ~TimeContextC() [virtual]


Member List

PajaTypes::BBox2C Member List

This is the complete list of members for PajaTypes::BBox2C, including all inherited members.
  • BBox2C()
  • BBox2C( const Vector2C& rMin, const Vector2C& rMax )
  • BBox2C( const BBox2C& rBBox )
  • center() const [inline]
  • combine( const BBox2C& rBBox ) const
  • contains( const Vector2C& rVec ) const [inline]
  • contains( const BBox2C& rBBox ) const [inline]
  • height() const [inline]
  • normalize() const
  • offset( const Vector2C& rOffset ) const [inline]
  • operator!=( const BBox2C& rBBox ) const [inline]
  • operator==( const BBox2C& rBBox ) const [inline]
  • operator[]( int i ) [inline]
  • operator[]( int i ) const [inline]
  • size() const [inline]
  • trim( const BBox2C& rBBox ) const
  • width() const [inline]
  • ~BBox2C() [virtual]


Member List

PajaTypes::ColorC Member List

This is the complete list of members for PajaTypes::ColorC, including all inherited members.
  • ColorC( const ColorC& rCol )
  • ColorC( float32 f32R = 0, float32 f32G = 0, float32 f32B = 0, float32 f32A = 1.0f )
  • convert_from_uint8( uint8 ui8R, uint8 ui8G, uint8 ui8B, uint8 ui8A = 255 )
  • operator *( float32 f32S ) const [inline]
  • operator *( const ColorC& rCol ) const [inline]
  • operator *( float32 f32S, const ColorC& rCol ) [friend]
  • operator *=( float32 f32S ) [inline]
  • operator const float32 *()
  • operator!=( const ColorC& rCol ) const
  • operator+( const ColorC& rCol ) const [inline]
  • operator+=( const ColorC& rCol ) [inline]
  • operator-() const [inline]
  • operator-( const ColorC& rCol ) const [inline]
  • operator-=( const ColorC& rCol ) [inline]
  • operator/( float32 f32S ) const [inline]
  • operator/=( float32 f32S ) [inline]
  • operator==( const ColorC& rCol ) const
  • operator[]( int32 i ) [inline]
  • operator[]( int32 i ) const [inline]
  • ~ColorC()


Member List

PajaTypes::DecomposeAffineC Member List

This is the complete list of members for PajaTypes::DecomposeAffineC, including all inherited members.
  • DecomposeAffineC( const PajaTypes::Matrix3C& rMat )
  • get_rotation()
  • get_scale()
  • get_scale_rotation()
  • get_sign()
  • get_translation()
  • ~DecomposeAffineC()


Member List

PajaTypes::Matrix2C Member List

This is the complete list of members for PajaTypes::Matrix2C, including all inherited members.
  • invert() const
  • Matrix2C()
  • Matrix2C( const Matrix2C& rMat )
  • Matrix2C( const float32* pMat )
  • operator *( const Matrix2C& rMat ) const
  • operator *( const Matrix2C& rMat, const Vector2C& rVec ) [friend]
  • operator *( const Vector2C& rVec, const Matrix2C& rMat ) [friend]
  • operator *=( const Matrix2C& rMat )
  • operator *=( Vector2C& rVec, const Matrix2C& rMat ) [friend]
  • operator+( const Matrix2C& rMat ) const
  • operator+=( const Matrix2C& rMat )
  • operator-() const
  • operator-( const Matrix2C& rMat ) const
  • operator-=( const Matrix2C& rMat )
  • operator[]( int32 i ) [inline]
  • operator[]( int32 i ) const [inline]
  • ortho_norm() const
  • pre_trans( const Vector2C& rVec ) const
  • set_identity()
  • set_rot( float32 f32Angle )
  • set_scale( const Vector2C& rVec )
  • set_trans( const Vector2C& rVec )
  • transpose() const
  • ~Matrix2C() [virtual]


Member List

PajaTypes::Matrix3C Member List

This is the complete list of members for PajaTypes::Matrix3C, including all inherited members.
  • inverse() const
  • Matrix3C()
  • Matrix3C( const Matrix3C& rMat )
  • Matrix3C( const float32* pMat )
  • operator *( const Matrix3C& rMat ) const
  • operator *( const Matrix3C& rMat, const Vector3C& rVec ) [friend]
  • operator *( const Vector3C& rVec, const Matrix3C& rMat ) [friend]
  • operator *=( const Matrix3C& rMat )
  • operator *=( Vector3C& rVec, const Matrix3C& rMat ) [friend]
  • operator+( const Matrix3C& rMat ) const
  • operator+=( const Matrix3C& rMat )
  • operator-() const
  • operator-( const Matrix3C& rMat ) const
  • operator-=( const Matrix3C& rMat )
  • operator[]( int32 i ) [inline]
  • operator[]( int32 i ) const [inline]
  • ortho_norm() const
  • pre_trans( const Vector3C& rVec ) const
  • set_identity()
  • set_rot( const QuatC& rQuat )
  • set_rot_x( float32 f32Angle )
  • set_rot_xyz( float32 f32XAngle, float32 f32YAngle, float32 f32ZAngle )
  • set_rot_y( float32 f32Angle )
  • set_rot_z( float32 f32Angle )
  • set_scale( const Vector3C& v )
  • set_trans( const Vector3C& v )
  • transpose() const
  • ~Matrix3C() [virtual]


Member List

PajaTypes::QuatC Member List

This is the complete list of members for PajaTypes::QuatC, including all inherited members.
  • dot( const QuatC& rQuat ) const [inline]
  • exp() const
  • from_axis_angle( const Vector3C& rVec, float32 f32Angle )
  • from_axis_angle( float32 f32X, float32 f32Y, float32 f32Z, float32 f32Angle )
  • from_rot_matrix( const Matrix3C& rMat )
  • inverse() const
  • log() const
  • norm() const [inline]
  • normalize() const
  • operator *( const QuatC& rQuat ) const
  • operator *( float32 f32Scalar ) const [inline]
  • operator *( float32 f32Scalar, const QuatC& rQuat ) [friend]
  • operator!=( const QuatC& rQuat ) const [inline]
  • operator+( const QuatC& rQuat ) const [inline]
  • operator-() const [inline]
  • operator-( const QuatC& rQuat ) const [inline]
  • operator/( const QuatC& rQuat ) const
  • operator==( const QuatC& rQuat ) const [inline]
  • operator[]( int32 i ) [inline]
  • operator[]( int32 i ) const [inline]
  • QuatC( float32 f32X = 0, float32 f32Y = 0, float32 f32Z = 0, float32 f32W = 1 )
  • QuatC( const QuatC& rQuat )
  • slerp( float32 f32T, const QuatC& rQ, const QuatC& rP ) [static]
  • to_axis_angle( Vector3C& rVec, float32& f32Angle ) const
  • to_axis_angle( float32& f32X, float32& f32Y, float32& f32Z, float32& f32Angle ) const
  • to_rot_matrix() const
  • unit_inverse() const [inline]
  • ~QuatC() [virtual]


Member List

PajaTypes::Vector2C Member List

This is the complete list of members for PajaTypes::Vector2C, including all inherited members.
  • dot( const Vector2C& rVec ) const [inline]
  • length() const [inline]
  • normalize() const
  • operator *( float32 f32S ) const [inline]
  • operator *( const Vector2C& rVec ) const [inline]
  • operator *( float32 s, const Vector2C& rVec ) [friend]
  • operator *=( float32 f32S ) [inline]
  • operator!=( const Vector2C& rVec ) const
  • operator+( const Vector2C& rVec ) const [inline]
  • operator+=( const Vector2C& rVec ) [inline]
  • operator-() const [inline]
  • operator-( const Vector2C& rVec ) const [inline]
  • operator-=( const Vector2C& rVec ) [inline]
  • operator/( float32 f32S ) const [inline]
  • operator/=( float32 f32S ) [inline]
  • operator==( const Vector2C& rVec ) const
  • operator[]( int32 i ) [inline]
  • operator[]( int32 i ) const [inline]
  • Vector2C( float32 f32X = 0, float32 f32Y = 0 )
  • Vector2C( const Vector2C& rVec )
  • Vector2C( const float32 f32A[2] )
  • ~Vector2C() [virtual]


Member List

PajaTypes::Vector3C Member List

This is the complete list of members for PajaTypes::Vector3C, including all inherited members.
  • cross( const Vector3C& v ) const
  • dot( const Vector3C& v ) const [inline]
  • length() const [inline]
  • normalize() const
  • operator *( float32 f32S ) [inline]
  • operator *( const Vector3C& rVec ) const [inline]
  • operator *( float32 f32S, const Vector3C& rVec ) [friend]
  • operator *=( float32 f32S ) [inline]
  • operator!=( const Vector3C& rVec ) const
  • operator+( const Vector3C& rVec ) const [inline]
  • operator+=( const Vector3C& rVec ) [inline]
  • operator-() const [inline]
  • operator-( const Vector3C& rVec ) const [inline]
  • operator-=( const Vector3C& rVec ) [inline]
  • operator/( float32 f32S ) [inline]
  • operator/=( float32 f32S ) [inline]
  • operator==( const Vector3C& rVec ) const
  • operator[]( int32 i ) [inline]
  • operator[]( int32 i ) const [inline]
  • Vector3C( float32 f32X = 0, float32 f32Y = 0, float32 f32Z = 0 )
  • Vector3C( const Vector3C& rVec )
  • Vector3C( float32 f32A[3] )
  • ~Vector3C() [virtual]


Member List

PluginClass::ClassDescC Member List

This is the complete list of members for PluginClass::ClassDescC, including all inherited members.
  • check_device_support( PajaSystem::DeviceContextC* pContext ) = 0 [pure virtual]
  • ClassDescC()
  • create() = 0 [pure virtual]
  • get_author_name() const = 0 [pure virtual]
  • get_classid() const = 0 [pure virtual]
  • get_classtype() const = 0 [pure virtual]
  • get_copyright_message() const = 0 [pure virtual]
  • get_desc() const = 0 [pure virtual]
  • get_ext( PajaTypes::uint32 ui32Index ) const = 0 [pure virtual]
  • get_ext_count() const = 0 [pure virtual]
  • get_help_filename() const = 0 [pure virtual]
  • get_name() const = 0 [pure virtual]
  • get_super_classid() const = 0 [pure virtual]
  • get_url() const = 0 [pure virtual]
  • ~ClassDescC() [virtual]


Member List

PluginClass::ClassIdC Member List

This is the complete list of members for PluginClass::ClassIdC, including all inherited members.
  • ClassIdC()
  • ClassIdC( PajaTypes::uint32 ui32ClassA, PajaTypes::uint32 ui32ClassB )
  • ClassIdC( const ClassIdC& rClassId )
  • get_class_a() const
  • get_class_b() const
  • operator!=( const ClassIdC& rClassId ) const
  • operator=( const ClassIdC& rClassId )
  • operator==( const ClassIdC& rClassId ) const
  • ~ClassIdC() [virtual]


Member List

PluginClass::FactoryC Member List

This is the complete list of members for PluginClass::FactoryC, including all inherited members.
  • create( const ClassIdC& rClassId ) [virtual]
  • FactoryC()
  • get_classdesc( PajaTypes::uint32 ) [virtual]
  • get_classdesc_count() [virtual]
  • get_classdesc_dll_name( PajaTypes::uint32 ) [virtual]
  • load_plugins( const char* szDir ) [virtual]
  • register_class( ClassDescC* pClass ) [virtual]
  • ~FactoryC() [virtual]


Member List

PluginClass::SuperClassIdC Member List

This is the complete list of members for PluginClass::SuperClassIdC, including all inherited members.
  • get_class() const
  • operator!=( const SuperClassIdC& rClassId ) const
  • operator=( const SuperClassIdC& rClassId )
  • operator==( const SuperClassIdC& rClassId ) const
  • SuperClassIdC()
  • SuperClassIdC( PajaTypes::uint32 ui32SuperClass )
  • SuperClassIdC( const SuperClassIdC& rClassId )
  • ~SuperClassIdC() [virtual]


Alphabetical index

Moppi Demopaja Compound Index

B
BBox2C
C
ClassDescC
ClassIdC
ColorC
ControllerC
D
DataBlockI
DecomposeAffineC
DeviceContextC
DeviceInterfaceI
E
EditableI
EffectI
F
FactoryC
FileHandleC
FileListC
G
GizmoI
I
ImportableI
ImportableImageI
ImportInterfaceC
K
KeyC
L
LayerC
LoadC
M
Matrix2C
Matrix3C
O
OpenGLInterfaceC
P
ParamColorC
ParamFileC
ParamFloatC
ParamI
ParamIntC
ParamTextC
ParamVector2C
ParamVector3C
Q
QuatC
S
SaveC
SceneC
SuperClassIdC
T
TimeContextC
TimeSegmentC
U
UndoC
V
Vector2C
Vector3C


Compound Member Index

Moppi Demopaja Compound Members

a | b | c | d | e | f | g | h | i | k | l | m | n | o | p | q | r | s | t | u | v | w | ~

Here is a list of all documented class members with links to the classes they belong to:

- a -

  • add_discardable_data() : UndoC
  • add_effect() : LayerC
  • add_error_message() : LoadC
  • add_file() : FileListC
  • add_file_handle_patch() : LoadC
  • add_flags() : ParamI, LayerC, KeyC, GizmoI, EffectI
  • add_key_at_time() : TimeSegmentC, ControllerC
  • add_label() : ParamIntC
  • add_layer() : SceneC
  • add_restore_data() : UndoC

- b -
  • BBox2C() : BBox2C
  • begin_chunk() : SaveC
  • begin_editing() : EditableI
  • bind_texture() : ImportableImageI

- c -
  • can_redo() : UndoC
  • center() : BBox2C
  • check_device_support() : ClassDescC
  • ClassDescC() : ClassDescC
  • ClassIdC() : ClassIdC
  • clear_labels() : ParamIntC
  • client_to_layout() : OpenGLInterfaceC
  • clone() : EditableI
  • close() : SaveC, LoadC
  • close_chunk() : LoadC
  • ColorC() : ColorC
  • combine() : BBox2C
  • contains() : BBox2C
  • ControllerC() : ControllerC
  • convert_fps_to_time() : TimeContextC
  • convert_from_uint8() : ColorC
  • convert_time_to_fps() : TimeContextC
  • copy() : TimeSegmentC, SceneC, ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI, LayerC, KeyC, GizmoI, FileListC, FileHandleC, EffectI, EditableI, DataBlockI, ControllerC
  • create() : TimeSegmentC, SceneC, ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, LayerC, KeyC, FileListC, FileHandleC, FactoryC, EditableI, DataBlockI, ControllerC, ClassDescC
  • create_new() : TimeSegmentC, SceneC, ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, LayerC, KeyC, FileListC, FileHandleC, ControllerC
  • cross() : Vector3C

- d -
  • DataBlockI() : DataBlockI
  • DecomposeAffineC() : DecomposeAffineC
  • del_effect() : LayerC
  • del_file() : FileListC
  • del_flags() : ParamI, LayerC, KeyC, GizmoI, EffectI
  • del_key() : TimeSegmentC, ControllerC
  • del_layer() : SceneC
  • delta_client_to_layout() : OpenGLInterfaceC
  • delta_layout_to_client() : OpenGLInterfaceC
  • DeviceContextC() : DeviceContextC
  • DeviceInterfaceI() : DeviceInterfaceI
  • do_frame() : EffectI
  • dot() : Vector3C, Vector2C, QuatC
  • duplicate() : EditableI

- e -
  • EditableI() : EditableI
  • EffectI() : EffectI
  • end_chunk() : SaveC
  • end_editing() : EditableI
  • eval_state() : EffectI
  • exp() : QuatC

- f -
  • FactoryC() : FactoryC
  • FileHandleC() : FileHandleC
  • FileListC() : FileListC
  • from_axis_angle() : QuatC
  • from_rot_matrix() : QuatC

- g -
  • get_author_name() : ClassDescC
  • get_bbox() : EffectI
  • get_beats_per_measure() : SceneC
  • get_beats_per_min() : TimeContextC, SceneC
  • get_bias() : KeyC
  • get_bpp() : ImportableImageI
  • get_chunk_id() : LoadC
  • get_chunk_indent() : LoadC
  • get_chunk_size() : LoadC
  • get_chunk_version() : LoadC
  • get_class() : SuperClassIdC
  • get_class_a() : ClassIdC
  • get_class_b() : ClassIdC
  • get_class_filter() : ParamFileC
  • get_class_id() : ImportableI, EffectI
  • get_class_name() : ImportableI, EffectI
  • get_classdesc() : FactoryC
  • get_classdesc_count() : FactoryC
  • get_classdesc_dll_name() : FactoryC
  • get_classid() : ClassDescC
  • get_classtype() : ClassDescC
  • get_cont() : KeyC
  • get_controller() : ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI
  • get_copyright_message() : ClassDescC
  • get_data() : ImportableImageI
  • get_default_effect() : ImportableI
  • get_default_param() : EffectI
  • get_desc() : ClassDescC
  • get_duration() : SceneC, ParamFileC, ImportableI
  • get_ease_in() : KeyC
  • get_ease_out() : KeyC
  • get_edit_accuracy() : TimeContextC, SceneC
  • get_effect() : LayerC
  • get_effect_count() : LayerC
  • get_end_label() : ParamFileC, ImportableI
  • get_end_ort() : ControllerC
  • get_error() : SaveC, LoadC
  • get_error_message() : LoadC
  • get_error_message_count() : LoadC
  • get_expanded_height() : ParamI
  • get_ext() : ClassDescC
  • get_ext_count() : ClassDescC
  • get_factory() : LoadC
  • get_file() : ParamFileC, FileListC
  • get_file_count() : FileListC
  • get_file_handle_patch_count() : LoadC
  • get_file_handle_patch_id() : LoadC
  • get_file_handle_patch_pointer() : LoadC
  • get_filename() : ImportableI
  • get_flags() : ParamI, LayerC, KeyC, GizmoI, EffectI
  • get_gizmo() : EffectI
  • get_gizmo_count() : EffectI
  • get_height() : OpenGLInterfaceC, ImportableImageI
  • get_help_filename() : ClassDescC
  • get_id() : ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI, GizmoI, FileHandleC
  • get_importable() : FileHandleC
  • get_in_tan() : KeyC
  • get_increment() : ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI
  • get_info() : ImportableI
  • get_key() : TimeSegmentC, ControllerC
  • get_key_at_time() : TimeSegmentC, ControllerC
  • get_key_count() : TimeSegmentC, ControllerC
  • get_key_time() : TimeSegmentC
  • get_label_count() : ParamIntC
  • get_label_name() : ParamIntC
  • get_label_value() : ParamIntC
  • get_layer() : SceneC
  • get_layer_count() : SceneC
  • get_layout() : OpenGLInterfaceC
  • get_layout_height() : SceneC
  • get_layout_width() : SceneC
  • get_max() : ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC
  • get_max_time() : ControllerC
  • get_max_val() : ControllerC
  • get_min() : ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC
  • get_min_max() : ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI
  • get_min_time() : ControllerC
  • get_min_val() : ControllerC
  • get_name() : UndoC, SceneC, ParamI, LayerC, GizmoI, EffectI, ClassDescC
  • get_num_channels() : ControllerC
  • get_original() : EditableI
  • get_out_tan() : KeyC
  • get_parameter() : GizmoI
  • get_parameter_count() : GizmoI
  • get_parent() : ParamI
  • get_pitch() : ImportableImageI
  • get_qnotes_per_beat() : TimeContextC, SceneC
  • get_reference_count() : FileHandleC
  • get_reference_file() : ImportableI
  • get_reference_file_count() : ImportableI
  • get_rotation() : DecomposeAffineC
  • get_scale() : DecomposeAffineC
  • get_scale_rotation() : DecomposeAffineC
  • get_segment_start() : TimeSegmentC
  • get_sign() : DecomposeAffineC
  • get_start_label() : ParamFileC, ImportableI
  • get_start_ort() : ControllerC
  • get_style() : ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI
  • get_super_class_filter() : ParamFileC
  • get_super_class_id() : ImportableImageI, ImportableI, EffectI
  • get_super_classid() : ClassDescC
  • get_tens() : KeyC
  • get_time() : KeyC
  • get_time_offset() : ParamFileC
  • get_time_scale() : ParamFileC
  • get_timesegment() : LayerC, EffectI
  • get_transform_matrix() : EffectI
  • get_translation() : DecomposeAffineC
  • get_type() : OpenGLInterfaceC, ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI, DeviceInterfaceI, ControllerC
  • get_undo() : EditableI
  • get_url() : ClassDescC
  • get_val() : ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI
  • get_value() : KeyC, ControllerC
  • get_viewport() : OpenGLInterfaceC
  • get_width() : OpenGLInterfaceC, ImportableImageI
  • GizmoI() : GizmoI

- h -
  • height() : BBox2C
  • hit_test() : EffectI

- i -
  • ImportableI() : ImportableI
  • ImportableImageI() : ImportableImageI
  • ImportInterfaceC() : ImportInterfaceC
  • inc_reference_count() : FileHandleC
  • initialize() : EffectI
  • insert_effect() : LayerC
  • inverse() : QuatC, Matrix3C
  • invert() : Matrix2C
  • is_visible() : TimeSegmentC

- k -
  • KeyC() : KeyC

- l -
  • LayerC() : LayerC
  • layout_to_client() : OpenGLInterfaceC
  • length() : Vector3C, Vector2C
  • load() : TimeSegmentC, SceneC, ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI, LayerC, KeyC, GizmoI, FileListC, FileHandleC, EffectI, EditableI, ControllerC
  • load_file() : ImportableI
  • load_plugins() : FactoryC
  • LoadC() : LoadC
  • log() : QuatC

- m -
  • Matrix2C() : Matrix2C
  • Matrix3C() : Matrix3C
  • move_layer_before() : SceneC

- n -
  • norm() : QuatC
  • normalize() : Vector3C, Vector2C, QuatC, BBox2C

- o -
  • offset() : BBox2C
  • open() : SaveC, LoadC
  • open_chunk() : LoadC
  • OpenGLInterfaceC() : OpenGLInterfaceC
  • operator *() : Vector3C, Vector2C, QuatC, Matrix3C, Matrix2C, ColorC
  • operator *=() : Vector3C, Vector2C, Matrix3C, Matrix2C, ColorC
  • operator const float32 *() : ColorC
  • operator!=() : Vector3C, Vector2C, QuatC, ColorC, SuperClassIdC, ClassIdC, BBox2C
  • operator+() : Vector3C, Vector2C, QuatC, Matrix3C, Matrix2C, ColorC
  • operator+=() : Vector3C, Vector2C, Matrix3C, Matrix2C, ColorC
  • operator-() : Vector3C, Vector2C, QuatC, Matrix3C, Matrix2C, ColorC
  • operator-=() : Vector3C, Vector2C, Matrix3C, Matrix2C, ColorC
  • operator/() : Vector3C, Vector2C, QuatC, ColorC
  • operator/=() : Vector3C, Vector2C, ColorC
  • operator=() : SuperClassIdC, ClassIdC
  • operator==() : Vector3C, Vector2C, QuatC, ColorC, SuperClassIdC, ClassIdC, BBox2C
  • operator[]() : Vector3C, Vector2C, QuatC, Matrix3C, Matrix2C, ColorC, BBox2C
  • ortho_norm() : Matrix3C, Matrix2C

- p -
  • ParamColorC() : ParamColorC
  • ParamFileC() : ParamFileC
  • ParamFloatC() : ParamFloatC
  • ParamI() : ParamI
  • ParamIntC() : ParamIntC
  • ParamTextC() : ParamTextC
  • ParamVector2C() : ParamVector2C
  • ParamVector3C() : ParamVector3C
  • peek_next_chunk() : LoadC
  • pre_trans() : Matrix3C, Matrix2C
  • prepare() : ControllerC

- q -
  • QuatC() : QuatC
  • query_interface() : DeviceContextC

- r -
  • read() : LoadC
  • read_str() : LoadC
  • redo() : UndoC
  • register_class() : FactoryC
  • register_interface() : DeviceContextC
  • release() : DataBlockI
  • reload_file() : FileListC
  • remove_effect() : LayerC
  • remove_label() : ParamIntC
  • replace_file() : FileListC
  • request_import() : ImportInterfaceC
  • reset_reference_count() : FileHandleC
  • restore() : TimeSegmentC, SceneC, ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI, LayerC, KeyC, GizmoI, FileListC, FileHandleC, EffectI, EditableI, ControllerC

- s -
  • save() : TimeSegmentC, SceneC, ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI, LayerC, KeyC, GizmoI, FileListC, FileHandleC, EffectI, EditableI, ControllerC
  • SaveC() : SaveC
  • SceneC() : SceneC
  • set_beats_per_measure() : SceneC
  • set_beats_per_min() : SceneC
  • set_bias() : KeyC
  • set_class_filter() : ParamFileC
  • set_cont() : KeyC
  • set_controller() : ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI
  • set_default_file() : EffectI
  • set_dimension() : OpenGLInterfaceC
  • set_duration() : SceneC
  • set_ease_in() : KeyC
  • set_ease_out() : KeyC
  • set_edit_accuracy() : SceneC
  • set_end_ort() : ControllerC
  • set_expanded_height() : ParamI
  • set_file() : ParamFileC
  • set_flags() : ParamI, LayerC, KeyC, GizmoI, EffectI
  • set_id() : ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI, GizmoI, FileHandleC
  • set_identity() : Matrix3C, Matrix2C
  • set_importable() : FileHandleC
  • set_in_tan() : KeyC
  • set_increment() : ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI
  • set_key_time() : TimeSegmentC
  • set_layout() : OpenGLInterfaceC
  • set_layout_height() : SceneC
  • set_layout_width() : SceneC
  • set_min_max() : ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC
  • set_name() : SceneC, ParamI, LayerC, GizmoI, EffectI
  • set_ortho() : OpenGLInterfaceC
  • set_out_tan() : KeyC
  • set_parent() : ParamI
  • set_perspective() : OpenGLInterfaceC
  • set_qnotes_per_beat() : SceneC
  • set_rot() : Matrix3C, Matrix2C
  • set_rot_x() : Matrix3C
  • set_rot_xyz() : Matrix3C
  • set_rot_y() : Matrix3C
  • set_rot_z() : Matrix3C
  • set_scale() : Matrix3C, Matrix2C
  • set_segment_start() : TimeSegmentC
  • set_start_ort() : ControllerC
  • set_style() : ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI
  • set_super_class_filter() : ParamFileC
  • set_tens() : KeyC
  • set_time() : KeyC
  • set_time_offset() : ParamFileC
  • set_time_scale() : ParamFileC
  • set_trans() : Matrix3C, Matrix2C
  • set_type() : ControllerC
  • set_val() : ParamFileC, ParamTextC, ParamColorC, ParamVector3C, ParamVector2C, ParamFloatC, ParamIntC, ParamI
  • set_value() : KeyC
  • set_viewport() : OpenGLInterfaceC
  • size() : BBox2C
  • slerp() : QuatC
  • sort_keys() : TimeSegmentC, ControllerC
  • SuperClassIdC() : SuperClassIdC

- t -
  • TimeContextC() : TimeContextC
  • TimeSegmentC() : TimeSegmentC
  • to_axis_angle() : QuatC
  • to_rot_matrix() : QuatC
  • toggle_flags() : ParamI, LayerC, KeyC, GizmoI, EffectI
  • transpose() : Matrix3C, Matrix2C
  • trim() : BBox2C

- u -
  • undo() : UndoC
  • UndoC() : UndoC
  • unit_inverse() : QuatC
  • update_notify() : GizmoI, EffectI

- v -
  • Vector2C() : Vector2C
  • Vector3C() : Vector3C

- w -
  • width() : BBox2C
  • write() : SaveC
  • write_str() : SaveC

- ~ -
  • ~BBox2C() : BBox2C
  • ~ClassDescC() : ClassDescC
  • ~ClassIdC() : ClassIdC
  • ~ColorC() : ColorC
  • ~ControllerC() : ControllerC
  • ~DataBlockI() : DataBlockI
  • ~DecomposeAffineC() : DecomposeAffineC
  • ~DeviceContextC() : DeviceContextC
  • ~DeviceInterfaceI() : DeviceInterfaceI
  • ~EditableI() : EditableI
  • ~EffectI() : EffectI
  • ~FactoryC() : FactoryC
  • ~FileHandleC() : FileHandleC
  • ~FileListC() : FileListC
  • ~GizmoI() : GizmoI
  • ~ImportableI() : ImportableI
  • ~ImportableImageI() : ImportableImageI
  • ~ImportInterfaceC() : ImportInterfaceC
  • ~KeyC() : KeyC
  • ~LayerC() : LayerC
  • ~LoadC() : LoadC
  • ~Matrix2C() : Matrix2C
  • ~Matrix3C() : Matrix3C
  • ~OpenGLInterfaceC() : OpenGLInterfaceC
  • ~ParamColorC() : ParamColorC
  • ~ParamFileC() : ParamFileC
  • ~ParamFloatC() : ParamFloatC
  • ~ParamI() : ParamI
  • ~ParamIntC() : ParamIntC
  • ~ParamTextC() : ParamTextC
  • ~ParamVector2C() : ParamVector2C
  • ~ParamVector3C() : ParamVector3C
  • ~QuatC() : QuatC
  • ~SaveC() : SaveC
  • ~SceneC() : SceneC
  • ~SuperClassIdC() : SuperClassIdC
  • ~TimeContextC() : TimeContextC
  • ~TimeSegmentC() : TimeSegmentC
  • ~UndoC() : UndoC
  • ~Vector2C() : Vector2C
  • ~Vector3C() : Vector3C


Namespace Member Index

Moppi Demopaja Namespace Members

c | d | f | i | k | n | p | s | u

Here is a list of all documented namespace members with links to the namespaces they belong to:

- c -

  • CLASS_TYPE_EFFECT : PluginClass
  • CLASS_TYPE_FILEIMPORT : PluginClass
  • ClassTypesE : PluginClass
  • CONT_ORT_CONSTANT : Composition
  • CONT_ORT_LOOP : Composition
  • CONT_ORT_REPEAT : Composition
  • CONT_TYPE_COLOR : Composition
  • CONT_TYPE_FLOAT : Composition
  • CONT_TYPE_INT : Composition
  • CONT_TYPE_VECTOR2 : Composition
  • CONT_TYPE_VECTOR3 : Composition
  • ControllerOrtE : Composition
  • ControllerTypeE : Composition

- d -
  • DATA_CREATED : Edit
  • DATA_REMOVED : Edit
  • DEFAULT_PARAM_PIVOT : Composition
  • DEFAULT_PARAM_POSITION : Composition
  • DEFAULT_PARAM_ROTATION : Composition
  • DEFAULT_PARAM_SCALE : Composition
  • DefaultParamE : Composition
  • DiscardableTypeE : Edit

- f -
  • FileIOErrorsE : FileIO
  • float32 : PajaTypes
  • float64 : PajaTypes
  • float80 : PajaTypes

- i -
  • IMAGE_ALPHA : Import
  • IMAGE_CLAMP : Import
  • IMAGE_GREY : Import
  • IMAGE_LINEAR : Import
  • IMAGE_NEAREST : Import
  • IMAGE_RGB : Import
  • IMAGE_WRAP : Import
  • ImagePropertiesE : Import
  • int16 : PajaTypes
  • int32 : PajaTypes
  • int8 : PajaTypes
  • IO_END : FileIO
  • IO_EOF : FileIO
  • IO_ERROR_FORMAT : FileIO
  • IO_ERROR_OPEN : FileIO
  • IO_ERROR_READ : FileIO
  • IO_ERROR_WRITE : FileIO
  • IO_OK : FileIO

- k -
  • KEY_HOLD : Composition
  • KEY_LINEAR : Composition
  • KEY_MAXCHANNELS : Composition
  • KEY_SELECTED : Composition
  • KEY_SMOOTH : Composition
  • KeyFlagsE : Composition

- n -
  • NULL_CLASSID : PluginClass
  • NULL_SUPERCLASS : PluginClass

- p -
  • PARAM_ANIMATABLE : Composition
  • PARAM_NOT_ANIMATABLE : Composition
  • PARAM_STYLE_ABS_POSITION : Composition
  • PARAM_STYLE_ANGLE : Composition
  • PARAM_STYLE_COLORPICKER : Composition
  • PARAM_STYLE_COMBOBOX : Composition
  • PARAM_STYLE_EDITBOX : Composition
  • PARAM_STYLE_FILE : Composition
  • PARAM_STYLE_OBJECT_SPACE : Composition
  • PARAM_STYLE_PERCENT : Composition
  • PARAM_STYLE_REL_POSITION : Composition
  • PARAM_STYLE_TEXTPARAGRAPH : Composition
  • PARAM_STYLE_WORLD_SPACE : Composition
  • PARAM_TYPE_COLOR : Composition
  • PARAM_TYPE_FILE : Composition
  • PARAM_TYPE_FLOAT : Composition
  • PARAM_TYPE_INT : Composition
  • PARAM_TYPE_TEXT : Composition
  • PARAM_TYPE_VECTOR2 : Composition
  • PARAM_TYPE_VECTOR3 : Composition
  • ParameterTypesE : Composition
  • ParamStyleE : Composition

- s -
  • SUPERCLASS_ANIM : PluginClass
  • SUPERCLASS_EFFECT : PluginClass
  • SUPERCLASS_FONT : PluginClass
  • SUPERCLASS_IMAGE : PluginClass
  • SUPERCLASS_IMPORT : PluginClass
  • SUPERCLASS_INTERNAL : PluginClass
  • SUPERCLASS_MESH3D : PluginClass
  • SUPERCLASS_VECTOR2D : PluginClass

- u -
  • uint16 : PajaTypes
  • uint32 : PajaTypes
  • uint8 : PajaTypes