+ TDataStd_Integer::Set(_label.FindChild(TYPE_LABEL), theType);
+}
+
+
+//=============================================================================
+/*!
+ * Returns modifications counter of this object.
+ * Comparing this value with modifications counters of argument objects
+ * (on which this object depends) we decide whether this object needs to be updated.
+ */
+//=============================================================================
+int GEOM_Object::GetTic()
+{
+ Handle(TDataStd_Integer) aTicAttr;
+ if (!_label.FindChild(TIC_LABEL).FindAttribute(TDataStd_Integer::GetID(), aTicAttr))
+ return 0;
+
+ return aTicAttr->Get();
+}
+
+//=============================================================================
+/*!
+ * Set another value of modifications counter.
+ *
+ * Use this method to update modifications counter of dependent object
+ * to be equal to modifications counter of its argument.
+ * This is commonly done in GEOM_Function::GetValue()
+ */
+//=============================================================================
+void GEOM_Object::SetTic(int theTic)
+{
+ TDataStd_Integer::Set(_label.FindChild(TIC_LABEL), theTic);
+}
+
+//=============================================================================
+/*!
+ * Increment modifications counter to mark this object as modified.
+ *
+ * Commonly called from GEOM_Function::SetValue()
+ */
+//=============================================================================
+void GEOM_Object::IncrementTic()
+{
+ TDF_Label aTicLabel = _label.FindChild(TIC_LABEL);
+
+ Standard_Integer aTic = 0;
+ Handle(TDataStd_Integer) aTicAttr;
+ if (aTicLabel.FindAttribute(TDataStd_Integer::GetID(), aTicAttr))
+ aTic = aTicAttr->Get();
+
+ TDataStd_Integer::Set(aTicLabel, aTic + 1);