Classes | |
| class | SBCClassInterface |
| This class describes a class interface in a class proxy. More... | |
Macros | |
| #define | SB_INHERIT(INTERFACE, CLASS, CLASS_INTERFACE) |
Typedefs | |
| typedef SBCClassInterface | SBInterface |
| The short name of SBCClassInterface. | |
Descriptions of class interfaces | |
| #define | SB_INTERFACE_BEGIN |
| Declares the beginning of the class interface. | |
| #define | SB_INTERFACE_END |
| Declares the end of the class interface. | |
Descriptions of functions | |
| #define | SB_FUNCTION_0(OUTPUT, CLASS, FUNCTION) |
| Declares a class function OUTPUT CLASS::FUNCTION() | |
| #define | SB_FUNCTION_1(OUTPUT, CLASS, FUNCTION, T0) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0) | |
| #define | SB_FUNCTION_2(OUTPUT, CLASS, FUNCTION, T0, T1) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1) | |
| #define | SB_FUNCTION_3(OUTPUT, CLASS, FUNCTION, T0, T1, T2) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1,T2) | |
| #define | SB_FUNCTION_4(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3) | |
| #define | SB_FUNCTION_5(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4) | |
| #define | SB_FUNCTION_6(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5) | |
| #define | SB_FUNCTION_7(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6) | |
| #define | SB_FUNCTION_8(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7) | |
| #define | SB_FUNCTION_9(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8) | |
| #define | SB_FUNCTION_10(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9) | |
| #define | SB_FUNCTION_11(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10) | |
| #define | SB_FUNCTION_12(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11) | |
| #define | SB_FUNCTION_13(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12) | |
| #define | SB_FUNCTION_14(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13) | |
| #define | SB_FUNCTION_15(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14) | |
| #define | SB_FUNCTION_16(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) |
| Declares a class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15) | |
Descriptions of const functions | |
| #define | SB_CONST_FUNCTION_0(OUTPUT, CLASS, FUNCTION) |
| Declares a const class function OUTPUT CLASS::FUNCTION() | |
| #define | SB_CONST_FUNCTION_1(OUTPUT, CLASS, FUNCTION, T0) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0) | |
| #define | SB_CONST_FUNCTION_2(OUTPUT, CLASS, FUNCTION, T0, T1) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1) | |
| #define | SB_CONST_FUNCTION_3(OUTPUT, CLASS, FUNCTION, T0, T1, T2) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1,T2) | |
| #define | SB_CONST_FUNCTION_4(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3) | |
| #define | SB_CONST_FUNCTION_5(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4) | |
| #define | SB_CONST_FUNCTION_6(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5) | |
| #define | SB_CONST_FUNCTION_7(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6) | |
| #define | SB_CONST_FUNCTION_8(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7) | |
| #define | SB_CONST_FUNCTION_9(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8) | |
| #define | SB_CONST_FUNCTION_10(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9) | |
| #define | SB_CONST_FUNCTION_11(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10) | |
| #define | SB_CONST_FUNCTION_12(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11) | |
| #define | SB_CONST_FUNCTION_13(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12) | |
| #define | SB_CONST_FUNCTION_14(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13) | |
| #define | SB_CONST_FUNCTION_15(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14) | |
| #define | SB_CONST_FUNCTION_16(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) |
| Declares a const class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15) | |
Descriptions of static functions | |
| #define | SB_STATIC_FUNCTION_0(OUTPUT, CLASS, FUNCTION) |
| Declares a static class function OUTPUT CLASS::FUNCTION() | |
| #define | SB_STATIC_FUNCTION_1(OUTPUT, CLASS, FUNCTION, T0) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0) | |
| #define | SB_STATIC_FUNCTION_2(OUTPUT, CLASS, FUNCTION, T0, T1) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1) | |
| #define | SB_STATIC_FUNCTION_3(OUTPUT, CLASS, FUNCTION, T0, T1, T2) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1,T2) | |
| #define | SB_STATIC_FUNCTION_4(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3) | |
| #define | SB_STATIC_FUNCTION_5(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4) | |
| #define | SB_STATIC_FUNCTION_6(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5) | |
| #define | SB_STATIC_FUNCTION_7(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6) | |
| #define | SB_STATIC_FUNCTION_8(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7) | |
| #define | SB_STATIC_FUNCTION_9(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8) | |
| #define | SB_STATIC_FUNCTION_10(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9) | |
| #define | SB_STATIC_FUNCTION_11(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10) | |
| #define | SB_STATIC_FUNCTION_12(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11) | |
| #define | SB_STATIC_FUNCTION_13(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12) | |
| #define | SB_STATIC_FUNCTION_14(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13) | |
| #define | SB_STATIC_FUNCTION_15(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14) | |
| #define | SB_STATIC_FUNCTION_16(OUTPUT, CLASS, FUNCTION, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) |
| Declares a static class function OUTPUT CLASS::FUNCTION(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15) | |
Descriptions of attributes | |
| #define | SB_ATTRIBUTE_READ_ONLY(TYPE, CLASS, NAME, DESCRIPTION, GROUP) |
| #define | SB_ATTRIBUTE_READ_WRITE(TYPE, CLASS, NAME, DESCRIPTION, GROUP) |
| #define | SB_ATTRIBUTE_READ_WRITE_RESET(TYPE, CLASS, NAME, DESCRIPTION, GROUP) |
| #define | SB_ATTRIBUTE_READ_WRITE_CLEAR(TYPE, CLASS, NAME, DESCRIPTION, GROUP) |
| #define | SB_ATTRIBUTE_READ_WRITE_CLEAR_ARRAY(TYPE, CLASS, NAME, DESCRIPTION, GROUP) |
| #define | SB_ATTRIBUTE_READ_WRITE_RANGE(TYPE, CLASS, NAME, DESCRIPTION, GROUP) |
| #define | SB_ATTRIBUTE_READ_WRITE_RESET_RANGE(TYPE, CLASS, NAME, DESCRIPTION, GROUP) |
| #define | SB_ATTRIBUTE_READ_WRITE_RANGE_SLIDER(TYPE, CLASS, NAME, DESCRIPTION, GROUP) |
| #define | SB_ATTRIBUTE_READ_WRITE_RESET_RANGE_SLIDER(TYPE, CLASS, NAME, DESCRIPTION, GROUP) |
| #define | SB_ATTRIBUTE_READ_WRITE_LIST(CLASS, NAME, DESCRIPTION, GROUP) |
| #define | SB_ATTRIBUTE_READ_WRITE_RESET_LIST(CLASS, NAME, DESCRIPTION, GROUP) |
| #define | SB_ATTRIBUTE_RICH_TEXT_EDIT_READ_ONLY(CLASS, NAME, DESCRIPTION, GROUP) |
| #define | SB_ATTRIBUTE_RICH_TEXT_EDIT_READ_WRITE(CLASS, NAME, DESCRIPTION, GROUP) |
| #define | SB_ATTRIBUTE_RICH_TEXT_EDIT_READ_WRITE_CLEAR(CLASS, NAME, DESCRIPTION, GROUP) |
Descriptions of functions/attributes that can serve as widgets in the Inspector | |
| #define | SB_ATTRIBUTE_PUSH_BUTTON(CLASS, TEXT, DESCRIPTION, GROUP, CLICKED_SLOT) |
| #define | SB_ATTRIBUTE_PUSH_BUTTON_CONST(CLASS, TEXT, DESCRIPTION, GROUP, CLICKED_SLOT) |
| #define | SB_ATTRIBUTE_PUSH_BUTTON_STATIC(CLASS, TEXT, DESCRIPTION, GROUP, CLICKED_SLOT) |
Convenience definitions of attributes | |
| #define | SB_ATTRIBUTE_SPIN_BOX(TYPE, CLASS, NAME, DESCRIPTION, GROUP) |
| SB_ATTRIBUTE_READ_WRITE_RANGE | |
| #define | SB_ATTRIBUTE_SPIN_BOX_RESET(TYPE, CLASS, NAME, DESCRIPTION, GROUP) |
| SB_ATTRIBUTE_READ_WRITE_RESET_RANGE | |
| #define | SB_ATTRIBUTE_SLIDER(TYPE, CLASS, NAME, DESCRIPTION, GROUP) |
| SB_ATTRIBUTE_READ_WRITE_RANGE_SLIDER | |
| #define | SB_ATTRIBUTE_SLIDER_RESET(TYPE, CLASS, NAME, DESCRIPTION, GROUP) |
| SB_ATTRIBUTE_READ_WRITE_RESET_RANGE_SLIDER | |
| #define | SB_ATTRIBUTE_COMBO_BOX(CLASS, NAME, DESCRIPTION, GROUP) |
| SB_ATTRIBUTE_READ_WRITE_LIST | |
| #define | SB_ATTRIBUTE_COMBO_BOX_RESET(CLASS, NAME, DESCRIPTION, GROUP) |
| SB_ATTRIBUTE_READ_WRITE_RESET_LIST | |
| #define SB_ATTRIBUTE_PUSH_BUTTON | ( | CLASS, | |
| TEXT, | |||
| DESCRIPTION, | |||
| GROUP, | |||
| CLICKED_SLOT | |||
| ) |
Declares a class function void CLASS::CLICKED_SLOT() that should be exposed and accessible for users in the Inspector in a group GROUP with a description DESCRIPTION.
The following functionality should be present in the CLASS:
Note, that this macros also exposes the abovementioned function, so you do not need to expose them using e.g. SB_FUNCTION_0 macros.
Example: Let's say that we want to expose in the Inspector a function called "requestUpdate" from a class called "SEMyVisualModel" that forces the update of the visual model. You need to have the following functions implemented in the class CLASS:
Then, in the class descriptor file, you can expose it as a push button in the Inspector as follows:
| #define SB_ATTRIBUTE_PUSH_BUTTON_CONST | ( | CLASS, | |
| TEXT, | |||
| DESCRIPTION, | |||
| GROUP, | |||
| CLICKED_SLOT | |||
| ) |
Declares a const class function void CLASS::CLICKED_SLOT() const that should be exposed and accessible for users in the Inspector in a group GROUP with a description DESCRIPTION.
The following functionality should be present in the CLASS:
Note, that this macros also exposes the abovementioned function, so you do not need to expose them using e.g. SB_CONST_FUNCTION_0 macros.
| #define SB_ATTRIBUTE_PUSH_BUTTON_STATIC | ( | CLASS, | |
| TEXT, | |||
| DESCRIPTION, | |||
| GROUP, | |||
| CLICKED_SLOT | |||
| ) |
Declares a static class function void CLASS::CLICKED_SLOT() that should be exposed and accessible for users in the Inspector in a group GROUP with a description DESCRIPTION.
The following functionality should be present in the CLASS:
Note, that this macros also exposes the abovementioned function, so you do not need to expose them using e.g. SB_STATIC_FUNCTION_0 macros.
| #define SB_ATTRIBUTE_READ_ONLY | ( | TYPE, | |
| CLASS, | |||
| NAME, | |||
| DESCRIPTION, | |||
| GROUP | |||
| ) |
Declares a non-modifiable attribute NAME of type TYPE from a class CLASS which associated functionality should be exposed and which should also be accessible for users in the Inspector in a group GROUP with a description name DESCRIPTION. String or numeric attributes will be shown as a text in a label, pointer attributes (e.g. a pointer to a SBAtom node) will be represented as a button.
The following functionality should be present in the CLASS:
Note, that this macros also exposes the abovementioned functions associated with an attribute NAME, so you do not need to expose them using e.g. SB_FUNCTION_1 macros.
Example: Let's say that we want to expose in the Inspector an attribute called "NumberOfEdges" of type "unsigned int" from a class called "SEMyVisualModel". You need to have the following functions implemented in the class CLASS:
Then, in the class descriptor file, you can expose this functionality and the attribute in the Inspector as follows:
| #define SB_ATTRIBUTE_READ_WRITE | ( | TYPE, | |
| CLASS, | |||
| NAME, | |||
| DESCRIPTION, | |||
| GROUP | |||
| ) |
Declares a modifiable attribute NAME of type TYPE from a class CLASS which associated functionality should be exposed and which should also be accessible for users in the Inspector in a group GROUP with a description name DESCRIPTION and with the possibility to modify it using a line edit for numerical and string values, or a check box for boolean values.
The following functionality should be present in the CLASS:
Note, that this macros also exposes the abovementioned functions associated with an attribute NAME, so you do not need to expose them using e.g. SB_FUNCTION_1 macros.
Example: Let's say that we want to expose in the Inspector an attribute called "ShowLines" of type "bool" from a class called "SEMyVisualModel". You need to have the following functions implemented in the class CLASS:
Then, in the class descriptor file, you can expose this functionality and the attribute in the Inspector as follows:
| #define SB_ATTRIBUTE_READ_WRITE_CLEAR | ( | TYPE, | |
| CLASS, | |||
| NAME, | |||
| DESCRIPTION, | |||
| GROUP | |||
| ) |
Declares a modifiable attribute NAME of type TYPE from a class CLASS which associated functionality should be exposed and which should also be accessible for users in the Inspector in a group GROUP with a description name DESCRIPTION and with the possibility to modify it using a line edit for numerical and string values, or a check box for boolean values.
The following functionality should be present in the CLASS:
Note, that this macros also exposes the abovementioned functions associated with an attribute NAME, so you do not need to expose them using e.g. SB_FUNCTION_1 macros.
Example: Let's say that we want to expose in the Inspector an attribute called "Comment" of type "std::string" from a class called "SEMyVisualModel". You need to have the following functions implemented in the class CLASS:
Then, in the class descriptor file, you can expose this functionality and the attribute in the Inspector as follows:
| #define SB_ATTRIBUTE_READ_WRITE_CLEAR_ARRAY | ( | TYPE, | |
| CLASS, | |||
| NAME, | |||
| DESCRIPTION, | |||
| GROUP | |||
| ) |
Declares a modifiable array attribute NAME of type TYPE from a class CLASS which associated functionality should be exposed and which should also be accessible for users in the Inspector in a group GROUP with a description name DESCRIPTION.
| #define SB_ATTRIBUTE_READ_WRITE_LIST | ( | CLASS, | |
| NAME, | |||
| DESCRIPTION, | |||
| GROUP | |||
| ) |
Declares a modifiable attribute NAME from a class CLASS which associated functionality should be exposed and which should also be accessible for users in the Inspector in a group GROUP with a description name DESCRIPTION and with the possibility to choose from a list using a combo box.
The following functionality should be present in the CLASS:
Note, that this macros also exposes the abovementioned functions associated with an attribute NAME, so you do not need to expose them using e.g. SB_FUNCTION_1 macros.
Example: Let's say that we want to expose in the Inspector an attribute called "VisualPreset" from a class called "SEMyVisualModel" and that has a limited number of variants. You need to have the following functions implemented in the class CLASS:
Then, in the class descriptor file, you can expose this functionality and the attribute in the Inspector as follows:
| #define SB_ATTRIBUTE_READ_WRITE_RANGE | ( | TYPE, | |
| CLASS, | |||
| NAME, | |||
| DESCRIPTION, | |||
| GROUP | |||
| ) |
Declares a modifiable attribute NAME of type TYPE from a class CLASS which associated functionality should be exposed and which should also be accessible for users in the Inspector in a group GROUP with a description name DESCRIPTION and with the possibility to modify it using a spin box that changes from a given minimum value to a given maximum value with a given step size.
The following functionality should be present in the CLASS:
TYPE is not of the SBQuantity type.Note, that this macros also exposes the abovementioned functions associated with an attribute NAME, so you do not need to expose them using e.g. SB_FUNCTION_1 macros.
Example: Let's say that we want to expose in the Inspector an attribute called "Radius" of type "SBQuantity::length" from a class called "SEMyVisualModel". You need to have the following functions implemented in the class CLASS:
Then, in the class descriptor file, you can expose this functionality and the attribute in the Inspector as follows:
| #define SB_ATTRIBUTE_READ_WRITE_RANGE_SLIDER | ( | TYPE, | |
| CLASS, | |||
| NAME, | |||
| DESCRIPTION, | |||
| GROUP | |||
| ) |
Declares a modifiable attribute NAME of type TYPE from a class CLASS which associated functionality should be exposed and which should also be accessible for users in the Inspector in a group GROUP with a description name DESCRIPTION and with the possibility to modify it using a slider (QSlider) that changes from a given minimum value to a given maximum value with a given step size.
The following functionality should be present in the CLASS:
TYPE is not of the SBQuantity type.Note, that this macros also exposes the abovementioned functions associated with an attribute NAME, so you do not need to expose them using e.g. SB_FUNCTION_1 macros.
Example: Let's say that we want to expose in the Inspector an attribute called "Opacity" of type "unsigned int" from a class called "SEMyVisualModel". And let's say that this Opacity attribute changes from 0 to 100% with a single step of 1%. You need to have the following functions implemented in the class CLASS:
Then, in the class descriptor file, you can expose this functionality and the attribute in the Inspector as follows:
| #define SB_ATTRIBUTE_READ_WRITE_RESET | ( | TYPE, | |
| CLASS, | |||
| NAME, | |||
| DESCRIPTION, | |||
| GROUP | |||
| ) |
Declares a modifiable and resettable attribute NAME of type TYPE from a class CLASS which associated functionality should be exposed and which should also be accessible for users in the Inspector in a group GROUP with a description name DESCRIPTION and with the possibility to modify it using a line edit for numerical and string values, or a check box for boolean values, and the possibility to reset it by double-clicking on its label.
The following functionality should be present in the CLASS:
Note, that this macros also exposes the abovementioned functions associated with an attribute NAME, so you do not need to expose them using e.g. SB_FUNCTION_1 macros.
Example: Let's say that we want to expose in the Inspector an attribute called "Scale" of type "float" from a class called "SEMyVisualModel". You need to have the following functions implemented in the class CLASS:
Then, in the class descriptor file, you can expose this functionality and the attribute in the Inspector as follows:
| #define SB_ATTRIBUTE_READ_WRITE_RESET_LIST | ( | CLASS, | |
| NAME, | |||
| DESCRIPTION, | |||
| GROUP | |||
| ) |
Declares a modifiable and resettable attribute NAME from a class CLASS which associated functionality should be exposed and which should also be accessible for users in the Inspector in a group GROUP with a description name DESCRIPTION and with the possibility to choose from a list using a combo box, and the possibility to reset it by double-clicking on its label.
The following functionality should be present in the CLASS:
Note, that this macros also exposes the abovementioned functions associated with an attribute NAME, so you do not need to expose them using e.g. SB_FUNCTION_1 macros.
Example: Let's say that we want to expose in the Inspector an attribute called "VisualPreset" from a class called "SEMyVisualModel" and that has a limited number of variants. You need to have the following functions implemented in the class CLASS:
Then, in the class descriptor file, you can expose this functionality and the attribute in the Inspector as follows:
| #define SB_ATTRIBUTE_READ_WRITE_RESET_RANGE | ( | TYPE, | |
| CLASS, | |||
| NAME, | |||
| DESCRIPTION, | |||
| GROUP | |||
| ) |
Declares a modifiable and resettable attribute NAME of type TYPE from a class CLASS which associated functionality should be exposed and which should also be accessible for users in the Inspector in a group GROUP with a description name DESCRIPTION and with the possibility to modify it using a spin box that changes from a given minimum value to a given maximum value with a given step size, and the possibility to reset it by double-clicking on its label.
The following functionality should be present in the CLASS:
TYPE is not of the SBQuantity type.Note, that this macros also exposes the abovementioned functions associated with an attribute NAME, so you do not need to expose them using e.g. SB_FUNCTION_1 macros.
Example: Let's say that we want to expose in the Inspector an attribute called "Radius" of type "SBQuantity::length" from a class called "SEMyVisualModel". You need to have the following functions implemented in the class CLASS:
Then, in the class descriptor file, you can expose this functionality and the attribute in the Inspector as follows:
| #define SB_ATTRIBUTE_READ_WRITE_RESET_RANGE_SLIDER | ( | TYPE, | |
| CLASS, | |||
| NAME, | |||
| DESCRIPTION, | |||
| GROUP | |||
| ) |
Declares a modifiable and resettable attribute NAME of type TYPE from a class CLASS which associated functionality should be exposed and which should also be accessible for users in the Inspector in a group GROUP with a description name DESCRIPTION and with the possibility to modify it using a slider (QSlider) that changes from a given minimum value to a given maximum value with a given step size, and the possibility to reset it by double-clicking on its label.
The following functionality should be present in the CLASS:
TYPE is not of the SBQuantity type.Note, that this macros also exposes the abovementioned functions associated with an attribute NAME, so you do not need to expose them using e.g. SB_FUNCTION_1 macros.
Example: Let's say that we want to expose in the Inspector an attribute called "Opacity" of type "unsigned int" from a class called "SEMyVisualModel". And let's say that this Opacity attribute changes from 0 to 100% with a single step of 1%. You need to have the following functions implemented in the class CLASS:
Then, in the class descriptor file, you can expose this functionality and the attribute in the Inspector as follows:
| #define SB_ATTRIBUTE_RICH_TEXT_EDIT_READ_ONLY | ( | CLASS, | |
| NAME, | |||
| DESCRIPTION, | |||
| GROUP | |||
| ) |
Declares a non-modifiable rich text attribute NAME of type const std::string& from a class CLASS which associated functionality should be exposed and which should also be accessible for users in the Inspector in a group GROUP with a description name DESCRIPTION. The rich text will be shown in a text edit.
The following functionality should be present in the CLASS:
Note, that this macros also exposes the abovementioned functions associated with an attribute NAME, so you do not need to expose them using e.g. SB_FUNCTION_1 macros.
Example: Let's say that we want to expose in the Inspector an attribute with a text description called "Description" from a class called "SEMyVisualModel". You need to have the following functions implemented in the class CLASS:
Then, in the class descriptor file, you can expose this functionality and the attribute in the Inspector as follows:
| #define SB_ATTRIBUTE_RICH_TEXT_EDIT_READ_WRITE | ( | CLASS, | |
| NAME, | |||
| DESCRIPTION, | |||
| GROUP | |||
| ) |
Declares a modifiable rich text attribute NAME of type const std::string& from a class CLASS which associated functionality should be exposed and which should also be accessible for users in the Inspector in a group GROUP with a description name DESCRIPTION and with the possibility to modify it using a text edit.
The following functionality should be present in the CLASS:
Note, that this macros also exposes the abovementioned functions associated with an attribute NAME, so you do not need to expose them using e.g. SB_FUNCTION_1 macros.
Example: Let's say that we want to expose in the Inspector an attribute with rich text called "Notes" from a class called "SEMyVisualModel". You need to have the following functions implemented in the class CLASS:
Then, in the class descriptor file, you can expose this functionality and the attribute in the Inspector as follows:
| #define SB_ATTRIBUTE_RICH_TEXT_EDIT_READ_WRITE_CLEAR | ( | CLASS, | |
| NAME, | |||
| DESCRIPTION, | |||
| GROUP | |||
| ) |
Declares a modifiable rich text attribute NAME of type const std::string& from a class CLASS which associated functionality should be exposed and which should also be accessible for users in the Inspector in a group GROUP with a description name DESCRIPTION and with the possibility to modify it using a text edit for numerical and string values, or a check box for boolean values.
See description for SB_ATTRIBUTE_RICH_TEXT_EDIT_READ_WRITE and SB_ATTRIBUTE_READ_WRITE_CLEAR