/// Returns the number of selection attributes in the list
virtual int size() = 0;
+ /// Returns true if the object with the shape are in list
+ /// \param theContext object where the sub-shape was selected
+ /// \param theSubShape selected sub-shape (if null, the whole context is selected)
+ /// \param theTemporarily if it is true, it checks also the temporary added item
+ /// \returns true if the pair is found in the attirbute
+ virtual bool isInList(
+ const ResultPtr& theContext, const std::shared_ptr<GeomAPI_Shape>& theSubShape,
+ const bool theTemporarily = false) = 0;
+
/// The type of all elements selection
/// \returns the index of the enumeration of the type of shape
virtual const std::string selectionType() const = 0;
/// Returns all attributes
virtual void clear() = 0;
+ /// Starts or stops cashing of the values in the attribute (the cash may become invalid
+ /// on modification of the attribute or sub-elements, so the cash must be enabled only
+ /// during non-modification operations with this attribute)
+ virtual void cashValues(const bool theEnabled) = 0;
+
/// Returns the type of this class of attributes
static std::string typeId()
{