+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
// File: Model_ResultBody.cpp
// Created: 08 Jul 2014
// Author: Mikhail PONIKAROV
#include <Model_ResultBody.h>
-#include <Model_Data.h>
-#include <TNaming_Builder.hxx>
-#include <TNaming_NamedShape.hxx>
-#include <TopoDS_Shape.hxx>
-#include <GeomAPI_Shape.h>
+#include <Model_BodyBuilder.h>
+#include <ModelAPI_AttributeIntArray.h>
+#include <Config_PropManager.h>
+// DEB
+//#include <TCollection_AsciiString.hxx>
+//#include <TDF_Tool.hxx>
+//#define DEB_IMPORT 1
Model_ResultBody::Model_ResultBody()
{
+ myBuilder = new Model_BodyBuilder(this);
+
+ myIsDisabled = true; // by default it is not initialized and false to be after created
+ setIsConcealed(false);
}
-void Model_ResultBody::store(const boost::shared_ptr<GeomAPI_Shape>& theShape)
+void Model_ResultBody::initAttributes()
{
- boost::shared_ptr<Model_Data> aData = boost::dynamic_pointer_cast<Model_Data>(data());
- if (aData) {
- TDF_Label& aShapeLab = aData->shapeLab();
- // TODO: to add the naming mechanism for shape storage in the next iteration
- TNaming_Builder aBuilder(aShapeLab);
- if (!theShape)
- return; // bad shape
- TopoDS_Shape aShape = theShape->impl<TopoDS_Shape>();
- if (aShape.IsNull())
- return; // null shape inside
-
- aBuilder.Generated(aShape);
- }
+ // append the color attribute. It is empty, the attribute will be filled by a request
+ DataPtr aData = data();
+ aData->addAttribute(COLOR_ID(), ModelAPI_AttributeIntArray::typeId());
}
-boost::shared_ptr<GeomAPI_Shape> Model_ResultBody::shape()
+void Model_ResultBody::colorConfigInfo(std::string& theSection, std::string& theName,
+ std::string& theDefault)
{
- boost::shared_ptr<Model_Data> aData = boost::dynamic_pointer_cast<Model_Data>(data());
- if (aData) {
- TDF_Label& aShapeLab = aData->shapeLab();
- Handle(TNaming_NamedShape) aName;
- if (aShapeLab.FindAttribute(TNaming_NamedShape::GetID(), aName)) {
- TopoDS_Shape aShape = aName->Get();
- if (!aShape.IsNull()) {
- boost::shared_ptr<GeomAPI_Shape> aRes(new GeomAPI_Shape);
- aRes->setImpl(new TopoDS_Shape(aShape));
- return aRes;
- }
- }
- }
- return boost::shared_ptr<GeomAPI_Shape>();
+ theSection = "Visualization";
+ theName = "result_body_color";
+ theDefault = DEFAULT_COLOR();
}
-boost::shared_ptr<ModelAPI_Feature> Model_ResultBody::owner()
+bool Model_ResultBody::setDisabled(std::shared_ptr<ModelAPI_Result> theThis, const bool theFlag)
{
- return myOwner;
+ bool aChanged = ModelAPI_ResultBody::setDisabled(theThis, theFlag);
+ if (aChanged) { // state is changed, so modifications are needed
+ myBuilder->evolutionToSelection(theFlag);
+ }
+ return aChanged;
}