]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/Model/Model_AttributeBoolean.cpp
Salome HOME
Prepare extrusion feature
[modules/shaper.git] / src / Model / Model_AttributeBoolean.cpp
diff --git a/src/Model/Model_AttributeBoolean.cpp b/src/Model/Model_AttributeBoolean.cpp
new file mode 100644 (file)
index 0000000..d3c0d6b
--- /dev/null
@@ -0,0 +1,33 @@
+// File:        Model_AttributeBoolean.cpp
+// Created:     2 june 2014
+// Author:      Vitaly Smetannikov
+
+#include "Model_AttributeBoolean.h"
+#include "Model_Events.h"
+#include <Events_Loop.h>
+
+using namespace std;
+
+void Model_AttributeBoolean::setValue(bool theValue)
+{
+  if (myBool->Get() != theValue) {
+    myBool->Set(theValue? 1 : 0);
+    static Events_ID anEvent = Events_Loop::eventByName(EVENT_FEATURE_UPDATED);
+    Model_FeatureUpdatedMessage aMsg(owner(), anEvent);
+    Events_Loop::loop()->send(aMsg);
+  }
+}
+
+bool Model_AttributeBoolean::value()
+{
+  return (myBool->Get() == 1)? true : false;
+}
+
+Model_AttributeBoolean::Model_AttributeBoolean(TDF_Label& theLabel)
+{
+  // check the attribute could be already presented in this doc (after load document)
+  if (!theLabel.FindAttribute(TDataStd_Integer::GetID(), myBool)) {
+    // create attribute: not initialized by value yet, just zero
+    myBool = TDataStd_Integer::Set(theLabel, 0);
+  }
+}