#include <cassert>
-GeomData_Point2D::GeomData_Point2D(TDF_Label& theLabel)
+GeomData_Point2D::GeomData_Point2D()
+{
+ myIsInitialized = false;
+}
+
+void GeomData_Point2D::reinit()
{
myIsInitialized = true;
+ for (int aComponent = 0; aComponent < NUM_COMPONENTS; ++aComponent) {
+ myExpression[aComponent]->reinit();
+ myIsInitialized = myIsInitialized && myExpression[aComponent]->isInitialized();
+ }
+}
+
+void GeomData_Point2D::reset()
+{
+ myIsInitialized = false;
+ for(int aComponent = 0; aComponent < NUM_COMPONENTS; ++aComponent) {
+ myExpression[aComponent]->reset();
+ }
}
void GeomData_Point2D::setCalculatedValue(const double theX, const double theY)
void GeomData_Point2D::setText(const std::string& theX,
const std::string& theY)
{
+ if (!myIsInitialized && theX.empty() && theY.empty())
+ return; // empty strings are not good initializers
if (!myIsInitialized || textX() != theX || textY() != theY) {
myExpression[0]->setText(theX);
myExpression[1]->setText(theY);
return myExpression[theComponent]->error();
}
-void GeomData_Point2D::setUsedParameters(int theComponent, const std::set<std::string>& theUsedParameters)
+void GeomData_Point2D::setUsedParameters(int theComponent,
+ const std::set<std::string>& theUsedParameters)
{
assert(theComponent >= 0 && theComponent < NUM_COMPONENTS);
myExpression[theComponent]->setUsedParameters(theUsedParameters);