#include <ModelAPI_AttributeSelection.h>
#include <ModelAPI_ResultConstruction.h>
+#include <ModelAPI_AttributeString.h>
#include <GeomAPI_Edge.h>
#include <GeomAlgoAPI_EdgeBuilder.h>
#include <GeomAlgoAPI_PointBuilder.h>
+#ifdef _DEBUG
+#include <iostream>
+#endif
+
using namespace std;
ConstructionPlugin_Axis::ConstructionPlugin_Axis()
void ConstructionPlugin_Axis::initAttributes()
{
+ data()->addAttribute(ConstructionPlugin_Axis::METHOD(),
+ ModelAPI_AttributeString::typeId());
data()->addAttribute(ConstructionPlugin_Axis::POINT_FIRST(),
- ModelAPI_AttributeSelection::type());
+ ModelAPI_AttributeSelection::typeId());
data()->addAttribute(ConstructionPlugin_Axis::POINT_SECOND(),
- ModelAPI_AttributeSelection::type());
+ ModelAPI_AttributeSelection::typeId());
+ data()->addAttribute(ConstructionPlugin_Axis::CYLINDRICAL_FACE(),
+ ModelAPI_AttributeSelection::typeId());
}
-void ConstructionPlugin_Axis::execute()
+void ConstructionPlugin_Axis::createAxisByTwoPoints()
{
AttributeSelectionPtr aRef1 = data()->selection(ConstructionPlugin_Axis::POINT_FIRST());
AttributeSelectionPtr aRef2 = data()->selection(ConstructionPlugin_Axis::POINT_SECOND());
}
}
-void ConstructionPlugin_Axis::customisePresentation(AISObjectPtr thePrs)
+void ConstructionPlugin_Axis::execute()
{
- std::vector<int> aRGB = Config_PropManager::color("Visualization", "construction_axis_color",
- ConstructionPlugin_Axis::DEFAULT_COLOR());
- thePrs->setColor(aRGB[0], aRGB[1], aRGB[2]);
- thePrs->setLineStyle(3);
- thePrs->redisplay();
+ AttributeStringPtr aMethodTypeAttr = string(ConstructionPlugin_Axis::METHOD());
+ std::string aMethodType = aMethodTypeAttr->value();
+ if (aMethodType == "AxisByPointsCase") {
+ createAxisByTwoPoints();
+ } else if (aMethodType == "AxisByCylindricalFaceCase") {
+ #ifdef _DEBUG
+ std::cout << "ConstructionPlugin_Axis::execute: " << "AxisByCylindricalFaceCase is not supported yet." << std::endl;
+ #endif
+ }
+}
+
+bool ConstructionPlugin_Axis::customisePresentation(ResultPtr theResult, AISObjectPtr thePrs,
+ std::shared_ptr<GeomAPI_ICustomPrs> theDefaultPrs)
+{
+ bool isCustomized = theDefaultPrs.get() != NULL &&
+ theDefaultPrs->customisePresentation(theResult, thePrs, theDefaultPrs);
+
+ isCustomized = thePrs->setLineStyle(3);
+
+ return isCustomized;
}