Unigine::Property Class
Header: | #include <UnigineProperties.h> |
This class provides an interface for property manipulation: it is used to modify properties that allow you to control values and states of the logic-related parameters. When a property parameter value is modified for a single node, an instanced property is saved into the .world file, however, it contains only the modified parameter rather than the whole list of parameters.
All properties are organized in property libraries. To be modified, properties should be obtained from a library by using functions of the Propertiesclass.
The libraries must be loaded. Otherwise, properties could not be obtained.
<!unigine_project.prop library>
<?xml version="1.0" encoding="utf-8"?>
<properties version="2.0">
<property name="surface_base_0" parent="surface_base">
<parameter name="friction">1.833</parameter>
<parameter name="restitution">0.194</parameter>
<parameter name="occlusion">0.791</parameter>
<parameter name="my_parameter">190</parameter>
</property>
<property name="surface_base_1" parent="surface_base">
<parameter name="my_parameter">191</parameter>
</property>
<property name="surface_base_2" parent="surface_base">
<parameter name="my_parameter">192</parameter>
</property>
</properties>
// 1. Declare the required number of instances of the Property class
Vector<PropertyPtr> my_properties;
// 2. Implement the function that sets the given value for the given property
void set_my_parameter(int num, int value){
PropertyPtr property = my_properties[num];
property->setParameterInt(property->findParameter("my_parameter"),value);
}
// 3. On the application initialization, form the array of the library properties.
// It will allow for fast access to the required properties later
int AppWorldLogic::init() {
// get a pointer to the property manager
Properties *properties = Properties::get();
// load the library and associate it with the current world
properties->addWorldLibrary("../data/unigine_project/unigine_project.prop");
// get the library number
int library = properties->findLibrary("../data/unigine_project/unigine_project.prop");
for (int num = 0; num < properties->getNumProperties(library); num++) {
// get a property from the library and append it to the list of properties
my_properties.append(properties->getProperty(library, num));
}
return 1;
}
// 4. Call the implemented function when it is necessary
int AppWorldLogic::update() {
...
set_my_parameter(num,num+100);
...
return 1;
}
You can modify only existing parameters and states of the property. To add or remove new parameters and states, you should manually edit the .prop file or use API to edit the XML file via the code.
Adding and Removing Properties
The Property class doesn't allow adding a new property to the property library.
- By manual editing of the corresponding .prop file. For example, the following .prop file contains 2 properties added manually:
<?xml version="1.0" encoding="utf-8"?> <properties version="1.00"> <property editable="0" name="GameObjectsUnit"> <state name="weapon_type" type="switch" items="air,land,all_types">0</state> <state name="attack" type="toggle">1</state> <parameter name="damage" type="int" max="1000">1</parameter> <parameter name="velocity" type="float" max="100">30</parameter> <parameter name="material" type="string"/> </property> <property editable="1" name="GameObjectsNavy" parent="GameObjectsUnit"> <state name="weapon_type">2</state> <parameter name="damage">120</parameter> <parameter name="material">military_navy</parameter> <parameter name="material_color" type="color">1.0 1.0 1.0 1.0</parameter> </property> </properties>
- By inheriting from the existing property via inheritProperty()function of the Properties class. For example:The inherit()function of the Property class cannot be used in this case, as it allows inheriting a new material during runtime without storing it in any property libraries.To save changes in the library, save the world.
// get a pointer to the property manager Properties *properties = Properties::get(); // load the library and associate it with the current world properties->addWorldLibrary("../data/unigine_project/unigine_project.prop"); // inherit a GameObjectsUnit_0 property from the GameObjectsUnit property // stored in the unigine_project.prop library properties->inheritProperty("GameObjectsUnit","unigine_project/unigine_project.prop","GameObjectsUnit_0");
By default, all parameters and states of the inherited property are the same as specified in the parent property. A child property can override some parameters of its parent or add new ones. - By editing the corresponding .prop file via C++ API: you can open an XML file, write data into it and save it.
To delete a property, you can simply call the removeProperty() function:
// remove the property with the given name
properties->removeProperty("GameObjectsUnit_0");
// save changes in the library if necessary
properties->save("unigine_project/unigine_project.prop");
Property Class
Members
Ptr<Property> getChild(int num)
Returns the child property of the current property.Arguments
- int num - The number of the target child property.
Return value
Child property.void setCollision(int enable)
Updates the collision option: a value indicating if the collision test is enabled for objects with the assigned property. The object will collide only if it has the collider node flag, the surface collision flag and the property collision option set at the same time.Arguments
- int enable - The collision option: 1 to enable the collision test, 0 to disable it.
int getCollision()
Returns the collision option: a value indicating if the collision test is enabled for objects with the assigned property. The object will collide only if it has the collider node flag, the surface collision flag and the property collision option set at the same time.Return value
The collision option: 1 if the collision test is enabled; otherwise, 0.Ptr<Property> getCompare()
Returns the parent property, parameters of which have been changed.Return value
Parent property.int isEditable()
Returns a value indicating if the property can be edited.Return value
1 if the property is editable; otherwise, 0.int isHidden()
Returns a value indicating if the property is hidden.Return value
1 if the property is hidden; otherwise, 0.void setIntersection(int enable)
Updates the intersection option: a value indicating if the intersection test is enabled for objects with the assigned property. The intersection with the object will be detected only if it has the surface intersection flag and the property intersection option set at the same time.Arguments
- int enable - The intersection option: 1 to enable the intersection test, 0 to disable it.
int getIntersection()
Returns the intersection option: a value indicating if the intersection test is enabled for objects with the assigned property. The intersection with the object will be detected only if it has the surface intersection flag and the property intersection option set at the same time.Return value
The intersection option: 1 if the intersection test is enabled; otherwise, 0.const char * getName()
Returns the property name.Return value
Name of the property.int getNumChildren()
Returns the number of children of the current property.Return value
Number of child properties.int getNumParameters()
Returns the number of property's parameters.Return value
Number of property parameters.int getNumStates()
Returns the number of property's states including states of the parent property. If the state of the current property overrides the parent property's state, the parent property's isn't taken into account.Return value
Number of property's states including states of the parent property.int isOwner()
bool setParameter(int num, const Variable & value)
Updates the value of the given parameter.Arguments
- int num - The number of the target parameter .
- const Variable & value - New value of the parameter.
Variable getParameter(int num)
Returns the value of the given parameter.Arguments
- int num - The number of the target parameter.
Return value
Value of the parameter.void setParameterColor(int num, const Math::vec4 & value)
Updates a value of the given color parameter. If the PARAMETER_COLORvariable isn't set for the parameter, the color value won't be updated.Arguments
- int num - The number of the parameter in range from 0 to the total number of the property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
- const Math::vec4 & value - New value for the color parameter.
Math::vec4 getParameterColor(int num)
Returns the current color set for the given color parameter. If the PARAMETER_COLORvariable isn't set for the parameter, the function will return(0,0,0,0).Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Color value of the color parameter. If an error occurs, (0,0,0,0) will be returned.void setParameterDouble(int num, double value)
Updates the value of the given integer double. If the PARAMETER_DOUBLEvariable isn't set for the parameter, the value won't be updated.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
- double value - New value for the double parameter.
double getParameterDouble(int num)
Returns the current value of the given double parameter. If the PARAMETER_DOUBLEvariable isn't set for the parameter, the function will return0.0.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Value of the douuble parameter.double getParameterDoubleMaxValue(int num)
Returns the maximum allowed value of the given double parameter. If the PARAMETER_DOUBLEvariable isn't set for the parameter, the function will return1.0.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Maximum allowed value of the double parameter.double getParameterDoubleMinValue(int num)
Returns the minimum allowed value of the given double parameter. If the PARAMETER_DOUBLEvariable isn't set for the parameter, the function will return0.0.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Minimum allowed value for the double parameter.void setParameterFloat(int num, float value)
Updates the value of the given float parameter. If the PARAMETER_FLOATvariable isn't set for the parameter, the value won't be updated.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
- float value - New value of the float parameter.
float getParameterFloat(int num)
Returns the current value of the given float parameter. If the PARAMETER_FLOATvariable isn't set for the parameter, the function will return0.0f.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Value of the float parameter.float getParameterFloatMaxValue(int num)
Returns the maximum allowed value of the given float parameter. If the PARAMETER_FLOATvariable isn't set for the parameter, the function will return1.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Maximum allowed value of the float parameter.float getParameterFloatMinValue(int num)
Returns the minimum allowed value of the given float parameter. If the PARAMETER_FLOATvariable isn't set for the parameter, the function will return0.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Minimum allowed value of the float parameter.int isParameterHidden(int num)
Returns a value indicating if the given parameter is hidden.Arguments
- int num - The number of the target parameter in range from 0 to the total number of the property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
1 is the parameter is hidden; otherwise, 0.void setParameterInt(int num, int value)
Updates the value of the given integer parameter. If the PARAMETER_INTvariable isn't set for the parameter, the value won't be updated.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
- int value - New value for the integer parameter.
int getParameterInt(int num)
Returns the current value of the given integer parameter. If the PARAMETER_INTvariable isn't set for the parameter, the function will return0.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Value of the integer parameter.int getParameterIntMaxValue(int num)
Returns the maximum allowed value of the given integer parameter. If the PARAMETER_INTvariable isn't set for the parameter, the function will return1.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Maximum allowed value of the integer parameter.int getParameterIntMinValue(int num)
Returns the minimum allowed value of the given integer parameter. If the PARAMETER_INTvariable isn't set for the parameter, the function will return0.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Minimum allowed value of the integer parameter.void setParameterMask(int num, int value)
Updates a value of the given mask parameter. If the PARAMETER_MASKvariable isn't set for the parameter, the value won't be updated.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
- int value - New value for the mask parameter.
int getParameterMask(int num)
Returns the current value set for the given mask parameter. If the PARAMETER_MASKvariable isn't set for the parameter, the function will return0.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Value of the mask parameter. If an error occurs, 0 will be returned.const char * getParameterName(int num)
Returns the name of the given property's parameter name.Arguments
- int num - The number of the target parameter in range from 0 to the total number of the property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Name of the parameter.int getParameterSliderLog10(int num)
Returns a value indicating if the given slider parameter of the current property uses a logarithmic scale (with the base ten). The slider parameter is a parameter of one of the following types: PARAMETER_INT, PARAMETER_FLOAT, PARAMETER_DOUBLE.Arguments
- int num - The number of the slider parameter in range from 0 to the total number of the property's parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
1 if the parameter uses a logarithmic scale; otherwise, 0.int getParameterSliderMaxExpand(int num)
Returns a value indicating if the maximum value of the given slider parameter can be increased. The slider parameter is a parameter of one of the following types: PARAMETER_INT, PARAMETER_FLOAT, PARAMETER_DOUBLE.Arguments
- int num - The number of the slider parameter in range from 0 to the total number of the property's parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
1 if the maximum value can be changed; otherwise, 0.int getParameterSliderMinExpand(int num)
Returns a value indicating if the minimum value of the given slider parameter can be decreased. The slider parameter is a parameter of one of the following types: PARAMETER_INT, PARAMETER_FLOAT, PARAMETER_DOUBLE.Arguments
- int num - The number of the slider parameter in range from 0 to the total number of the property's parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
1 if the minimum value can be changed; otherwise, 0.void setParameterString(int num, const char * value)
Updates the value of the given string parameter. If the PARAMETER_STRINGvariable isn't set for the parameter, the value won't be updated.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
- const char * value - New value for the string parameter.
const char * getParameterString(int num)
Returns the current value of the given string parameter. If the PARAMETER_STRINGvariable isn't set for the parameter, the function will returnNULL.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Value of the string parameter.int getParameterStringFile(int num)
Returns a value indicating if the given string parameter has a file flag. If the PARAMETER_STRINGvariable isn't set for the parameter, the function will return0. The file flag allows specifying a file for the string parameter by double-clicking the parameter value. Such flag is specified as a value of the flags attribute of the property, for example:<properties>
<property name="surface_base_0" type="string" flags="file"/>
</properties>
Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
1 if the target parameter has a file flag; otherwise 0.void setParameterSwitch(int num, int value)
Updates the value of the given switch parameter. If the PARAMETER_SWITCHvariable isn't set for the parameter, the value won't be updated.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
- int value - New value for the switch parameter.
int getParameterSwitch(int num)
Returns the current value of the given switch parameter. If the PARAMETER_SWITCHvariable isn't set for the parameter, the function will return0.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Value of the switch parameter.const char * getParameterSwitchItem(int num, int item)
Returns the value of the item of the given switch parameter. If the PARAMETER_SWITCHvariable isn't set for the parameter, the function will returnNULL.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
- int item - The number of the item of the switch parameter.
Return value
Value of the item. If an error occurs, NULL will be returned.int getParameterSwitchNumItems(int num)
Returns the number of items of the given switch parameter. If the PARAMETER_SWITCHvariable isn't set for the parameter, the function will return0.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Number of the items of the switch parameter.void setParameterToggle(int num, int value)
Updates the value of the given toggle parameter. If the PARAMETER_TOGGLEvariable isn't set for the parameter, the value won't be updated.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
- int value - New value of the toggle parameter.
int getParameterToggle(int num)
Returns the current value of the given toggle parameter. If the PARAMETER_TOGGLEvariable isn't set for the parameter, the function will return0.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Value of the toggle parameter.int getParameterType(int num)
Returns the type of the given parameter.Arguments
- int num - The number of the target parameter in range from 0 to the total number of the property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
One of the PARAMETER_*pre-defined variables; if an error occurs,-1 will be returned.void setParameterVec3(int num, const Math::vec3 & value)
Updates the value of the given vector (vec3) parameter. If the PARAMETER_VEC3variable isn't set for the parameter, the value won't be updated.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
- const Math::vec3 & value - New value for the vector (vec3) parameter.
Math::vec3 getParameterVec3(int num)
Returns the current value of the given vector (vec3) parameter. If the PARAMETER_VEC3variable isn't set for the parameter, the function will return(0,0,0).Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Value of the vector (vec3) parameter.void setParameterVec4(int num, const Math::vec4 & value)
Updates the value of the given vector (vec4) parameter. If the PARAMETER_VEC4variable isn't set for the parameter, the value won't be updated.Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
- const Math::vec4 & value - New value for the vector (vec4) parameter.
Math::vec4 getParameterVec4(int num)
Returns the current value of the given vector (vec4) parameter. If the PARAMETER_VEC4variable isn't set for the parameter, the function will return(0,0,0,0).Arguments
- int num - The number of the parameter in range from 0 to the total number of property parameters (including parameters of its parent; if a parameter of the current property overrides the parent property's parameter, the parent property's parameter isn't taken into account).
Return value
Value of the vector (vec4) parameter.Ptr<Property> getParent()
Returns the parent property.Return value
Parent property smart pointer.int isParent(const char * name)
Returns a value indicating if the property with the given name is a parent of the current property.<properties version="2.0">
<property name="surface_base_0" parent="surface_base">
<state name="my_state">1</state>
<parameter name="my_parameter">100</parameter>
</property>
<property name="surface_base_1" parent="surface_base_0">
<parameter name="my_parameter">101</parameter>
</property>
</properties>
// load the library and associate it with the current world
engine.properties.addWorldLibrary("../data/unigine_project/unigine_project.prop");
Property property = engine.properties.findProperty("surface_base_1");
log.message("%d\n",property.isParent("surface_base_0"));
<properties version="2.0">
<property name="surface_base_0" parent="surface_base">
<state name="my_state">1</state>
<parameter name="my_parameter">100</parameter>
</property>
<property name="surface_base_1" parent="surface_base_0">
<parameter name="my_parameter">101</parameter>
</property>
</properties>
// get a property to be cloned
Properties *properties = Properties::get();
// load the library and associate it with the current world
properties->addWorldLibrary("../data/unigine_project/unigine_project.prop");
PropertyPtr property = properties->findProperty("surface_base_1");
Log::message("%d\n",property->isParent("surface_base_0"));
Arguments
- const char * name - Name of the property.
Return value
1 if the property is a parent of the current property; otherwise, 0.void setState(int num, int value)
Updates the value or the given state. Note that the state must be editable. If the current property has no states, the state of the parent property will be changed.Arguments
- int num - The number of the target state in range from 0 to the total number of the property's states (including states of its parent; if the state of the current property overrides the parent property's state, the parent property's state isn't taken into account).
- int value - New value of the state.
int getState(int num)
Returns the value of the given state. If the current property has no states, the state value of the parent property will be returned.Arguments
- int num - The number of the target state in range from 0 to the total number of the property's states (including states of its parent; if a state of the current property overrides the parent property's state, the parent property's isn't taken into account).
Return value
Value of the state.int isStateHidden(int num)
Returns a value indicating if the given state is hidden.Arguments
- int num - The number of the target state in range from 0 to the total number of the property states (including states of its parent; if the state of the current property overrides the parent property's state, the parent property's state isn't taken into account).
Return value
1 if the state is hidden; otherwise, 0.const char * getStateName(int num)
Returns the name of the given state.Arguments
- int num - The number of the target state in range from 0 to the total number of the property states (including states of its parent; if the state of the current property overrides thethe parent property's state, the parent property's isn't taken into account).
Return value
Name of the state.const char * getStateSwitchItem(int num, int item)
Returns the name of the item of the switch state. The switch state is a state for which the STATE_SWITCHvariable is set.Arguments
- int num - The number of the target switch state in range from 0 to the total number of the property states (including states of its parent; if the state of the current property overrides the parent property's state, the parent property's state isn't taken into account).
- int item - The number of the item of the switch state.
Return value
Name of the switch item.int getStateSwitchNumItems(int num)
Returns the number of items of the given switch state. The switch state is a state for which the STATE_SWITCHvariable is set.Arguments
- int num - The number of the target switch state in range from 0 to the total number of the property states (including states of its parent; if the state of the current property overrides the parent property's state, the parent property's state isn't taken into account).
Return value
Number of items of the switch state.int getStateType(int num)
Returns the type of the given state.Arguments
- int num
Return value
One of the STATE_*predefined variables; if an error occurs,-1 will be returned.Ptr<Property> clone(const char * name)
Clones the current property.// get a property to be cloned
Properties *properties = Properties::get();
// load the library and associate it with the current world
properties->addWorldLibrary("../data/unigine_project/unigine_project.prop");
PropertyPtr property = properties->findProperty("surface_base_0");
// clone the property
PropertyPtr cloned = property->clone("cloned_surface_base_0");
// perform something on the cloned pointer
// ...
// delete the pointer
cloned.grab();
cloned.destroy();
Arguments
- const char * name - Name of the new property.
Return value
Cloned property smart pointer.int findParameter(const char * name)
Searches for a parameter by the given name among all parameters of the current property and also among all parameters of the parent property that aren't overridden in the current property.Arguments
- const char * name - Name of the parameter.
Return value
The number of the parameter, if it is found; otherwise, -1.int findParameter(const char * name, int fast_id)
Searches for a parameter by the given name among all parameters of the current property and also among all parameters of the parent property that aren't overridden in the current property. Searching by a fast identifier provides better performance.Arguments
- const char * name - Name of the parameter.
- int fast_id - Parameter's fast identifier (hash of a name). The value can be in range [0;127].
Return value
The number of the parameter, if it is found; otherwise, -1.int findState(const char * name, int fast_id)
Searches for a state by the given name and the fast identifier among all states of the current property and also among all states of the parent property that aren't overridden in the current property. Searching by a fast identifier provides better performance.Arguments
- const char * name - Name of the target state.
- int fast_id - State's fast identifier (hash of a name). The value can be in range [0;127].
Return value
The number of the state, if it is found; otherwise, -1.int findState(const char * name)
Searches for a state by the given name among all states of the current property and also among all states of the parent property that aren't overridden in the current property.Arguments
- const char * name - Name of the target state.
Return value
The number of the state, if it is found; otherwise, -1.void grab()
Ptr<Property> inherit(const char * name)
Inherits a property from the current one.Arguments
- const char * name - Name of the new property.
Return value
Inherited property smart pointer.int loadWorld(const Ptr<Xml> & xml)
Loads data of the current property (all its options, states and parameters) from the given instance of the Xml class.Arguments
- const Ptr<Xml> & xml - An instance of the Xml class in which the property data is stored.
Return value
1 if the property data is loaded successfully; otherwise, 0.void release()
int restoreState(const Ptr<Stream> & stream, int force = 0)
Restores data of the current property (all its options, states and parameters) from a binary stream.Arguments
- const Ptr<Stream> & stream - The stream in which the saved property data is stored.
- int force - A value indicating if forced restoring of property data is used: 1 to enable forced saving, 0 to disable it.
Return value
1 if the property data is restored successfully; otherwise, 0.int saveState(const Ptr<Stream> & stream, int force = 0)
Saves data of the current property (all its options, states and parameters) into a binary stream.Arguments
- const Ptr<Stream> & stream - The stream into which the property data will be saved.
- int force - A value indicating if forced saving of property data is used: 1 to enable forced saving, 0 to disable it.
Return value
1 if the property data is saved successfully; otherwise, 0.int saveWorld(const Ptr<Xml> & xml, int force = 0)
Saves data of the current property (all its options, states and parameters) into the given instance of the Xml class.Arguments
- const Ptr<Xml> & xml - An instance of the Xml class into which the property data will be saved.
- int force - A value indicating if forced saving of property data is used: 1 to enable forced saving, 0 to disable it.
Return value
1 if the property data is saved successfully; otherwise, 0.int PARAMETER_AUX
Description
Parameter of the auxiliary type.int PARAMETER_COLOR
Description
Type of the property parameter that allows specifying the material color (a vec4 value).int PARAMETER_DOUBLE
Description
Type of the property parameter that allows accepting any double value in a given range.int PARAMETER_FLOAT
Description
Type of the property parameter that allows accepting float value in a given range.int PARAMETER_INT
Description
Type of the property parameter that allows accepting any integer value in a given range.int PARAMETER_MASK
Description
Type of the property parameter that allows specifying a mask (an integer value).int PARAMETER_STRING
Description
Type of the property parameter that allows accepting any string value.int PARAMETER_SWITCH
Description
Type of the property parameter that allows specifying a set of several possible values (more than 2).int PARAMETER_TOGGLE
Description
Type of the property parameter that allows only 2 possible values.int PARAMETER_VEC3
Description
Type of the property parameter that allows accepting any vec3 value.int PARAMETER_VEC4
Description
Type of the property parameter that allows accepting any vec4 value.int STATE_AUX
Description
State of the auxiliary type.int STATE_SWITCH
Description
State in which the property can have a set of several possible values (more than 2).int STATE_TOGGLE
Description
State in which the property can have only 2 possible values.Last update: 03.07.2017
Помогите сделать статью лучше
Была ли эта статья полезной?
(или выберите слово/фразу и нажмите Ctrl+Enter