#include <ilviews/protos/macros.h>
#include <ilviews/protos/group.h>
#include <ilviews/protos/groupio.h>
#include <stdarg.h>
Classes | |
class | IlvAccessorDescriptor |
Accessor description. More... | |
class | IlvAccessorParameter |
Provides information for a single parameter of an IlvUserAccessor . More... | |
class | IlvCompositeAccessor |
Assign the current attribute value to multiple other attributes or subattributes. More... | |
class | IlvCounterAccessor |
Defines a counter. More... | |
class | IlvDebugAccessor |
Prints a trace each time it is queried or changed. More... | |
class | IlvFormatAccessor |
Format a float value into a string. More... | |
class | IlvGroupUserAccessor |
References all the subattributes of a group that have the same name. More... | |
class | IlvMultipleUserAccessor |
Base class for accessors that represent several attributes. More... | |
class | IlvNodeAccessor |
Reference to another attribute or subattribute of an IlvGroup object. More... | |
class | IlvToggleAccessor |
Switch a Boolean attribute back and forth between IlTrue and IlFalse . More... | |
class | IlvTriggerAccessor |
Assign a value to another attribute or subattribute of the accessor holder. More... | |
class | IlvUserAccessor |
Base class for persistent behaviors. More... | |
class | IlvValueAccessor |
Stores the values of an attribute. More... | |
Macros | |
#define | DeclareUserAccessorInfo() |
#define | DeclareUserAccessorInfoRO() |
#define | IlvPredefinedUserAccessorIOMembers(classname) |
#define | IlvRegisterUserAccessorClass(classname, superclass) |
Enumerations | |
enum | IlvAccessorCategory { Data, Control, Trigger, Display, Animation, Miscellaneous } |
enum | IlvUserAccessorFlag |
Library: ilvproto
Declaration of the IlvUserAccessor
class, its main subclasses and its metaclass.
#define DeclareUserAccessorInfo | ( | ) |
Use this macro to declare as external the input/output member functions read()
, write()
and copy()
. These functions have no default implementation and you must provide a version of them for each subclass of IlvUserAccessor
.
This macro can be added to your graphic class definition to implicitly declare all the input/output data members and functions.
DeclareUserAccessorInfoRO()
. #define DeclareUserAccessorInfoRO | ( | ) |
Use this macro to declare the input/output routines when you do not need to add the write()
member function (that is, your user accessor subtype does not add any new data members that need to be saved, and the implementation of the write()
member function in the parent class already accomplishes this task). This macro can be added to the class definition of your user accessor in order to implicitly declare all the input/output data members and functions (except write()
).
IlvUserAccessor
, IlvDeclarePropClassInfo()
. #define IlvPredefinedUserAccessorIOMembers | ( | classname | ) |
This macro defines the copy()
and read()
member functions for a new IlvUserAccessor
class.
IlvPredefinedIOMembers
. #define IlvRegisterUserAccessorClass | ( | classname, | |
superclass | |||
) |
Declares a new subclass of IlvUserAccessor
so that it can be loaded as saved from/to prototype description files (.ivp
). This macro also declares the accessor class so that it can be edited in Studio using the Group Inspector.
IlvRegisterClass()
. enum IlvAccessorCategory |
These categories describe the type of effect of a given accessor.
Enumerator | |
---|---|
Data | Data accessors are similar to variable declarations in a programming language. They hold or point to some internal value of an |
Control | Control accessors are similar to control instructions in a programming language. They perform a side effect on some attributes of an |
Trigger | Trigger accessors are similar to entry points in a programming language. External or internal changes generated by the user will set those accessors and start a chain of evaluation of other accessors. |
Display | Display accessors are similar to drawing/editing functions in a programming language. They have some effect on the graphic objects they point to. |
Animation | Animation accessors are display accessor that animate the objects they point to. They are triggered by an internal timer that performs periodical changes of some objects. |
Miscellaneous | Miscellaneous accessors. |
enum IlvUserAccessorFlag |
IlvUserAccessor
|
extern |
This parameter type can be used if the parameter is the name of an attribute of one of the group nodes. The node name is generally the first parameter of the accessor. If this parameter type is used, Studio will create a combo box containing the names of all the node accessors. This accessor parameter type has subtypes:
IlvNodeAccessorParameterTypeMine:
with this parameter type, only the accessors that match the attribute type will be listed by default in the combo box. IlvNodeAccessorParameterTypeString
; IlvNodeAccessorParameterTypeFloat
; IlvNodeAccessorParameterTypeInt
; IlvNodeAccessorParameterTypeUInt
; IlvNodeAccessorParameterTypeBoolean
; IlvNodeAccessorParameterTypeColor
; IlvNodeAccessorParameterTypeDirection
;IlvNodeAccessorParameterTypeString
designates a parameter that accepts only attributes and subattributes of type String as input. IlvNodeAccessorParameterTypePar0
; IlvNodeAccessorParameterTypePar1
; IlvNodeAccessorParameterTypePar2
; IlvNodeAccessorParameterTypePar3
; IlvNodeAccessorParameterTypePar4
; IlvNodeAccessorParameterTypePar5
; IlvNodeAccessorParameterTypePar6
; IlvNodeAccessorParameterTypePar7
; IlvNodeAccessorParameterTypePar8
; IlvNodeAccessorParameterTypePar9
;
|
extern |
This parameter type can be used if the parameter is the name of a node. If this parameter type is used, Studio will create a combo box containing the names of the prototype nodes. In addition, a special value [All Nodes]
can be specified to designate all the nodes of a group.
|
extern |
This parameter type can be used if the parameter is the name of a node. If this parameter type is used, Studio will create a combo box containing the names of the prototype nodes.
|
extern |
This parameter type can be used if the parameter is the name of a notifying value of the IlvGroup
object. If this parameter type is used, Studio will create a combo box containing the names of the notifying values of the group.
|
extern |
This parameter type can be used if the parameter is a literal string. If this parameter type is used, Studio will create a simple text field in the matrix.
|
extern |
This parameter type is similar to the IlvNodeAccessorParameterType
types, with the difference that all the prototype attributes are listed (perhaps filtered according to their type), and not just the attributes of a given node. This accessor parameter type has subtypes:
IlvSubAccessorParameterTypeMine:
with this parameter type, only the accessors that match the attribute type will be listed by default in the combo box. IlvSubAccessorParameterTypeString
; IlvSubAccessorParameterTypeFloat
; IlvSubAccessorParameterTypeInt
; IlvSubAccessorParameterTypeUInt
; IlvSubAccessorParameterTypeBoolean
; IlvSubAccessorParameterTypeColor
; IlvSubAccessorParameterTypeDirection
;IlvSubAccessorParameterTypeString
designates a parameter that accepts only attributes and subattributes of type String as input: IlvSubAccessorParameterTypePar0
; IlvSubAccessorParameterTypePar1
; IlvSubAccessorParameterTypePar2
; IlvSubAccessorParameterTypePar3
; IlvSubAccessorParameterTypePar4
; IlvSubAccessorParameterTypePar5
; IlvSubAccessorParameterTypePar6
; IlvSubAccessorParameterTypePar7
; IlvSubAccessorParameterTypePar8
; IlvSubAccessorParameterTypePar9
;
|
extern |
This parameter type can be used if the parameter has no known editing policy. The Group Inspector will create a simple text field in the Group Inspector matrix to let the user edit the parameter.
|
extern |
These parameter types are similar to the corresponding IlvSubAccessorParameterType*
types, with the difference that the value of the parameter can be a full arithmetic expression, made up of a combination of: immediate values (strings or numeric constants), subaccessors (group or group node attributes), operators (+, -, *, **, /, %, ==, !=, >, >=, <, <=, &&, ||), parenthesis, or the following functions: abs, acos, asin, atan, ceil, cos, exp, floor, log, rand, rint, round, sin, sqrt, tan. The rand() function differs from its C/C++ equivalent: it takes an integer argument, that, if non-zero, is used a a seed for the random generator. If one of these types is used, Studio creates a combo box with a special entry "[immediate value]"
. This parameter type has subtypes:
IlvValueParameterTypeMine:
with this parameter type, only the accessors that match the attribute type will be listed by default in the combo box. IlvValueParameterTypeString
; IlvValueParameterTypeFloat
; IlvValueParameterTypeInt
; IlvValueParameterTypeUInt
; IlvValueParameterTypeBoolean
; IlvValueParameterTypeColor
; IlvValueParameterTypeDirection
;IlvValueParameterTypeString
designates a parameter that accepts only attributes and subattributes of type String as input: IlvValueParameterTypePar0
; IlvValueParameterTypePar1
; IlvValueParameterTypePar2
; IlvValueParameterTypePar3
; IlvValueParameterTypePar4
; IlvValueParameterTypePar5
; IlvValueParameterTypePar6
; IlvValueParameterTypePar7
; IlvValueParameterTypePar8
; IlvValueParameterTypePar9
;