API
4.5
For C++ developers
|
Class PropertyObj extends class Property. More...
Public Member Functions | |
PropertyObj () | |
PropertyObj (const std::string &aName, const Object &aValue) | |
PropertyObj (const PropertyObj &aProperty) | |
PropertyObj * | clone () const override |
Return a new instance of this concrete property object, containing new copies of this property's values. More... | |
virtual | ~PropertyObj () |
bool | isObjectProperty () const override |
Return true if this is an "object property", meaning that its values are all concrete objects of types that ultimately derive from the OpenSim serializable base class Object. More... | |
bool | isAcceptableObjectTag (const std::string &objectTypeTag) const override |
Return true if the given string is the XML tag name for one of the Object-derived types that is allowed by this property. More... | |
const Object & | getValueAsObject (int index=-1) const override |
For an object property, the values can be obtained as references to the abstract base class Object from which all the objects derive. More... | |
Object & | updValueAsObject (int index=-1) override |
Get writable access to an existing object value. More... | |
void | setValueAsObject (const Object &obj, int index=-1) override |
Set the indicated value element to a new copy of the supplied object. More... | |
PropertyObj & | operator= (const PropertyObj &aProperty) |
void | assign (const AbstractProperty &that) override |
Assign (copy) property that to this object. More... | |
bool | isValidObject (const Object *obj) const override |
std::string | getTypeName () const override |
This returns a string representation of this property's value type which will be the same as T::getClassName() for Object-derived types T, and some reasonably nice name for simple types, including at least "bool", "int", "double", "string", "Vec3", "Vector", and "Transform". More... | |
Object & | getValueObj () override |
const Object & | getValueObj () const override |
std::string | toString () const override |
For relatively simple types, return the current value of this property in a string suitable for displaying to a user in the GUI (i.e., this number may be rounded and not an exact representation of the actual value being used). More... | |
Public Member Functions inherited from OpenSim::Property_Deprecated | |
Property_Deprecated () | |
Property_Deprecated (PropertyType aType, const std::string &aName) | |
Property_Deprecated (const Property_Deprecated &aProperty) | |
virtual PropertyType | getPropertyType () const |
Return the enum value corresponding to the concrete property. More... | |
virtual bool | isArrayProperty () const |
Return true if this is an array property. More... | |
void | setMatchName (bool aMatchName) |
By default deprecated PropertyObj properties will ignore the name associated with the read-in object. More... | |
bool | getMatchName () const |
Return the value of the matchName flag for this (deprecated) property. More... | |
bool | isEqualTo (const AbstractProperty &other) const override |
The base class equals() method will have already done a lot of checking prior to calling this method, including verifying that both values are non-default and that the value lists are the same size; the concrete property need only compare the values. More... | |
virtual void | readFromXMLElement (SimTK::Xml::Element &propertyElement, int versionNumber) override |
Read in a new value for this property from the XML element propertyElement. More... | |
virtual void | writeToXMLElement (SimTK::Xml::Element &propertyElement) const override |
Output a serialized representation of this property by writing its value to the given XML property element. More... | |
int | getNumValues () const override |
How may values are currently stored in this property? If this is an object property you can use this with getValueAsObject() to iterate over the contained objects. More... | |
void | clearValues () override |
If the concrete property allows it, clear the value list. More... | |
bool | isUnnamedProperty () const override |
An unnamed property is a one-object property whose name was given as null or as the contained object's type tag. More... | |
void | setNull () |
Property_Deprecated & | operator= (const Property_Deprecated &aProperty) |
virtual bool | operator== (const Property_Deprecated &aProperty) const |
virtual bool | operator< (const Property_Deprecated &aProperty) const |
void | setType (PropertyType aType) |
PropertyType | getType () const |
virtual void | setValue (bool aValue) |
virtual bool & | getValueBool () |
virtual const bool & | getValueBool () const |
virtual void | setValue (int aValue) |
virtual int & | getValueInt () |
virtual const int & | getValueInt () const |
virtual void | setValue (double aValue) |
virtual double & | getValueDbl () |
virtual const double & | getValueDbl () const |
virtual void | setValue (const std::string &aValue) |
virtual std::string & | getValueStr () |
virtual const std::string & | getValueStr () const |
virtual void | setValue (int aSize, const bool aArray[]) |
virtual void | setValue (const Array< bool > &aArray) |
virtual Array< bool > & | getValueBoolArray () |
virtual const Array< bool > & | getValueBoolArray () const |
virtual void | setValue (int aSize, const int aArray[]) |
virtual void | setValue (const Array< int > &aArray) |
virtual Array< int > & | getValueIntArray () |
virtual const Array< int > & | getValueIntArray () const |
virtual void | setValue (int aSize, const double aArray[]) |
virtual void | setValue (const Array< double > &aArray) |
virtual Array< double > & | getValueDblArray () |
virtual const Array< double > & | getValueDblArray () const |
virtual void | setValue (int aSize, const std::string aArray[]) |
virtual void | setValue (const Array< std::string > &aArray) |
virtual Array< std::string > & | getValueStrArray () |
virtual const Array< std::string > & | getValueStrArray () const |
virtual void | setValue (Object *aValue) |
virtual const Object * | getValueObjPtr () const |
virtual const Object * | getValueObjPtr (int index) const |
virtual void | appendValue (Object *obj) |
virtual void | clearObjArray () |
virtual int | getArraySize () const |
template<class T > | |
T & | getValue () |
template<class T > | |
const T & | getValue () const |
template<class T > | |
Array< T > & | getValueArray () |
template<class T > | |
const Array< T > & | getValueArray () const |
template<> | |
bool & | getValue () |
template<> | |
const bool & | getValue () const |
template<> | |
int & | getValue () |
template<> | |
const int & | getValue () const |
template<> | |
double & | getValue () |
template<> | |
const double & | getValue () const |
template<> | |
std::string & | getValue () |
template<> | |
const std::string & | getValue () const |
template<> | |
Array< bool > & | getValue () |
template<> | |
const Array< bool > & | getValue () const |
template<> | |
Array< int > & | getValue () |
template<> | |
const Array< int > & | getValue () const |
template<> | |
Array< double > & | getValue () |
template<> | |
const Array< double > & | getValue () const |
template<> | |
Array< std::string > & | getValue () |
template<> | |
const Array< std::string > & | getValue () const |
template<> | |
Array< bool > & | getValueArray () |
template<> | |
const Array< bool > & | getValueArray () const |
template<> | |
Array< int > & | getValueArray () |
template<> | |
const Array< int > & | getValueArray () const |
template<> | |
Array< double > & | getValueArray () |
template<> | |
const Array< double > & | getValueArray () const |
template<> | |
Array< std::string > & | getValueArray () |
template<> | |
const Array< std::string > & | getValueArray () const |
Public Member Functions inherited from OpenSim::AbstractProperty | |
void | setAllowableListSize (int aMin, int aMax) |
Require that the number of values n in the value list of this property be in the range aMin <= n <= aMax. More... | |
void | setAllowableListSize (int aNum) |
Require that the number of values n in the value list of this property be exactly n=aNum values. More... | |
virtual | ~AbstractProperty () |
Return all heap space used by this property. More... | |
virtual std::string | toStringForDisplay (const int precision) const |
For relatively simple types, return the current value of this property in a string suitable for displaying to a user in the GUI (i.e., this number may be rounded and not an exact representation of the actual value being used). More... | |
bool | equals (const AbstractProperty &other) const |
Compare this property with another one; this is primarily used for testing. More... | |
bool | isSamePropertyClass (const AbstractProperty &other) const |
Return true if the other property is an object of exactly the same concrete class as this one. More... | |
bool | operator== (const AbstractProperty &other) const |
See the equals() method for the meaning of this operator. More... | |
void | setAllPropertiesUseDefault (bool shouldUseDefault) |
This method sets the "use default" flag for this property and the properties of any objects it contains to the given value. More... | |
void | readFromXMLParentElement (SimTK::Xml::Element &parent, int versionNumber) |
Given an XML parent element expected to contain a value for this property as an immediate child element, find that property element and set the property value from it. More... | |
void | writeToXMLParentElement (SimTK::Xml::Element &parent) const |
Given an XML parent element, append a single child element representing the serialized form of this property. More... | |
void | setName (const std::string &name) |
Set the property name. More... | |
void | setComment (const std::string &aComment) |
Set a user-friendly comment to be associated with property. More... | |
void | setValueIsDefault (bool isDefault) |
Set flag indicating whether the value of this property was simply taken from a default object and thus should not be written out when serializing. More... | |
const std::string & | getName () const |
Get the property name. More... | |
const std::string & | getComment () const |
Get the comment associated with this property. More... | |
bool | getValueIsDefault () const |
Get the flag indicating whether the current value is just the default value for this property (in which case it doesn't need to be written out). More... | |
int | getMinListSize () const |
Get the minimum number of values allowed in this property's value list. More... | |
int | getMaxListSize () const |
Get the maximum number of values allowed in this property's value list. More... | |
bool | isOptionalProperty () const |
This is an "optional" property if its value list can contain at most one value. More... | |
bool | isListProperty () const |
This is a "list" property if its value list can contain more than one value. More... | |
bool | isOneValueProperty () const |
This is a "one-value" property if its value list must always contain exactly one value. More... | |
bool | isOneObjectProperty () const |
This is a "one-object" property if it is a "one-value" property and it contains an Object-derived value. More... | |
int | size () const |
Return the number of values currently in this property's value list. More... | |
bool | empty () const |
Return true if this property's value list is currently empty. More... | |
void | clear () |
Empty the value list for this property; fails if zero is not an allowable size for this property. More... | |
template<class T > | |
const T & | getValue (int index=-1) const |
Return one of the values in this property as type T; this works only if the underlying concrete property stores type T and if the indexed element is present, otherwise throws an exception. More... | |
template<class T > | |
T & | updValue (int index=-1) |
Return a writable reference to one of the values in this property as type T; this works only if the underlying concrete property is actually of type T and the indexed element is present. More... | |
template<class T > | |
int | appendValue (const T &value) |
Append a new value of type T to the end of the list of values currently contained in this property. More... | |
Additional Inherited Members | |
Public Types inherited from OpenSim::Property_Deprecated | |
enum | PropertyType { None =0, Bool, Int, Dbl, Str, Obj, ObjPtr, BoolArray, IntArray, DblArray, StrArray, ObjArray, DblVec, DblVec3, Transform } |
Enumeration of recognized types. More... | |
Protected Member Functions inherited from OpenSim::AbstractProperty | |
AbstractProperty () | |
AbstractProperty (const std::string &name, const std::string &comment) | |
AbstractProperty (const AbstractProperty &)=default | |
AbstractProperty (AbstractProperty &&)=default | |
AbstractProperty & | operator= (const AbstractProperty &)=default |
AbstractProperty & | operator= (AbstractProperty &&)=default |
Class PropertyObj extends class Property.
It consists of a pointer to an object and the methods for accessing and modifying this object.
OpenSim::PropertyObj::PropertyObj | ( | ) |
OpenSim::PropertyObj::PropertyObj | ( | const std::string & | aName, |
const Object & | aValue | ||
) |
OpenSim::PropertyObj::PropertyObj | ( | const PropertyObj & | aProperty | ) |
|
virtual |
|
overridevirtual |
Assign (copy) property that to this object.
Implements OpenSim::AbstractProperty.
|
overridevirtual |
Return a new instance of this concrete property object, containing new copies of this property's values.
The new property object is allocated on the heap and it is up to the caller to delete it when done.
Implements OpenSim::Property_Deprecated.
|
inlineoverridevirtual |
This returns a string representation of this property's value type which will be the same as T::getClassName() for Object-derived types T, and some reasonably nice name for simple types, including at least "bool", "int", "double", "string", "Vec3", "Vector", and "Transform".
Implements OpenSim::Property_Deprecated.
|
inlineoverridevirtual |
For an object property, the values can be obtained as references to the abstract base class Object from which all the objects derive.
If the property can hold a list of values you must provide an index to select the value, otherwise it is optional but if supplied must be 0. This will throw an exception if this is not an object property, that is, if it is a simple property, because its values can't be represented as an Object in that case.
[in] | index | If supplied must be 0 <= index < getNumValues(). |
Reimplemented from OpenSim::Property_Deprecated.
|
overridevirtual |
Reimplemented from OpenSim::Property_Deprecated.
|
overridevirtual |
Reimplemented from OpenSim::Property_Deprecated.
|
inlineoverridevirtual |
Return true if the given string is the XML tag name for one of the Object-derived types that is allowed by this property.
If so, we expect that an element with that tag could be deserialized into a value element of this property. This always returns false for a simple property.
Reimplemented from OpenSim::Property_Deprecated.
|
inlineoverridevirtual |
Return true if this is an "object property", meaning that its values are all concrete objects of types that ultimately derive from the OpenSim serializable base class Object.
If this returns true then it is safe to call getValueAsObject(). Otherwise this property contains only simple types like "int" or "std::string", and you'll need to know the actual type in order to access the values.
Reimplemented from OpenSim::Property_Deprecated.
|
inlineoverridevirtual |
Reimplemented from OpenSim::Property_Deprecated.
PropertyObj& OpenSim::PropertyObj::operator= | ( | const PropertyObj & | aProperty | ) |
|
inlineoverridevirtual |
Set the indicated value element to a new copy of the supplied object.
If you already have a heap-allocated object you're willing to give up and want to avoid the extra copy, use adoptValueObject().
Reimplemented from OpenSim::Property_Deprecated.
References OpenSim::Object::clone().
|
overridevirtual |
For relatively simple types, return the current value of this property in a string suitable for displaying to a user in the GUI (i.e., this number may be rounded and not an exact representation of the actual value being used).
Objects just return something like "(Object)". For Property
s, This function calls toStringForDisplay()
with precision = 6
.
Implements OpenSim::Property_Deprecated.
|
inlineoverridevirtual |
Get writable access to an existing object value.
Note that you can't use this to install a different concrete object; see setValueAsObject() if you want to do that.
[in] | index | If supplied must be 0 <= index < getNumValues(). |
Reimplemented from OpenSim::Property_Deprecated.