import model
from TestSketcher import SketcherTestCase
-class SketcherAddCircle(SketcherTestCase):
+class SketcherAddCircle(SketcherTestCase):
def test_add_cricle(self):
circle = self.sketch.addCircle(0, 10, 20)
model.do()
- self.assertEqual(circle.center().x(), 0.0)
+ self.assertEqual(circle.center().x(), 0.0)
self.assertEqual(circle.center().y(), 10.0)
- self.assertEqual(circle.radius(), 20.0)
-
+ self.assertEqual(circle.radius().value(), 20.0)
+
def test_modify_circle(self):
circle = self.sketch.addCircle(0, 10, 20)
model.do()
circle.setCenter(10, 10)
circle.setRadius(30)
model.do()
- self.assertEqual(circle.center().x(), 10.0)
+ self.assertEqual(circle.center().x(), 10.0)
self.assertEqual(circle.center().y(), 10.0)
- self.assertEqual(circle.radius(), 30.0)
-
-
+ self.assertEqual(circle.radius().value(), 30.0)
+
+
if __name__ == "__main__":
- unittest.main(verbosity=2)
\ No newline at end of file
+ unittest.main(verbosity=2)
//--------------------------------------------------------------------------------------
#include <ModelAPI_CompositeFeature.h>
#include <ModelHighAPI_Tools.h>
+#include "SketchAPI_Circle.h"
#include "SketchAPI_Line.h"
//--------------------------------------------------------------------------------------
SketchAPI_Sketch::SketchAPI_Sketch(
return LinePtr(new SketchAPI_Line(aFeature, theExternalName));
}
+//--------------------------------------------------------------------------------------
+std::shared_ptr<SketchAPI_Circle> SketchAPI_Sketch::addCircle(double theCenterX,
+ double theCenterY,
+ double theRadius)
+{
+ std::shared_ptr<ModelAPI_Feature> aFeature = compositeFeature()->addFeature(SketchPlugin_Circle::ID());
+ return CirclePtr(new SketchAPI_Circle(aFeature, theCenterX, theCenterY, theRadius));
+}
+
+std::shared_ptr<SketchAPI_Circle> SketchAPI_Sketch::addCircle(const std::shared_ptr<GeomAPI_Pnt2d>& theCenter,
+ double theRadius)
+{
+ std::shared_ptr<ModelAPI_Feature> aFeature = compositeFeature()->addFeature(SketchPlugin_Circle::ID());
+ return CirclePtr(new SketchAPI_Circle(aFeature, theCenter, theRadius));
+}
+
+std::shared_ptr<SketchAPI_Circle> SketchAPI_Sketch::addCircle(double theX1, double theY1,
+ double theX2, double theY2,
+ double theX3, double theY3)
+{
+ std::shared_ptr<ModelAPI_Feature> aFeature = compositeFeature()->addFeature(SketchPlugin_Circle::ID());
+ return CirclePtr(new SketchAPI_Circle(aFeature, theX1, theY1, theX2, theY2, theX3, theY3));
+}
+
+std::shared_ptr<SketchAPI_Circle> SketchAPI_Sketch::addCircle(const std::shared_ptr<GeomAPI_Pnt2d>& thePoint1,
+ const std::shared_ptr<GeomAPI_Pnt2d>& thePoint2,
+ const std::shared_ptr<GeomAPI_Pnt2d>& thePoint3)
+{
+ std::shared_ptr<ModelAPI_Feature> aFeature = compositeFeature()->addFeature(SketchPlugin_Circle::ID());
+ return CirclePtr(new SketchAPI_Circle(aFeature, thePoint1, thePoint2, thePoint3));
+}
+
+std::shared_ptr<SketchAPI_Circle> SketchAPI_Sketch::addCircle(const ModelHighAPI_Selection & theExternal)
+{
+ std::shared_ptr<ModelAPI_Feature> aFeature = compositeFeature()->addFeature(SketchPlugin_Line::ID());
+ return CirclePtr(new SketchAPI_Circle(aFeature, theExternal));
+}
+
+std::shared_ptr<SketchAPI_Circle> SketchAPI_Sketch::addCircle(const std::string & theExternalName)
+{
+ // TODO(spo): Add constraint SketchConstraintRigid like in PythonAPI. Is it necessary?
+ std::shared_ptr<ModelAPI_Feature> aFeature = compositeFeature()->addFeature(SketchPlugin_Line::ID());
+ return CirclePtr(new SketchAPI_Circle(aFeature, theExternalName));
+}
+
//--------------------------------------------------------------------------------------
std::shared_ptr<ModelAPI_Feature> SketchAPI_Sketch::setCoincident(
const ModelHighAPI_RefAttr & thePoint1,
class ModelHighAPI_Double;
class ModelHighAPI_RefAttr;
class ModelHighAPI_Selection;
+class SketchAPI_Circle;
class SketchAPI_Line;
//--------------------------------------------------------------------------------------
/**\class SketchAPI_Sketch
SKETCHAPI_EXPORT
std::shared_ptr<SketchAPI_Line> addLine(const std::string & theExternalName);
- // TODO(spo): addCircle
+ // Add circle.
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_Circle> addCircle(double theCenterX,
+ double theCenterY,
+ double theRadius);
+
+ // Add circle.
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_Circle> addCircle(const std::shared_ptr<GeomAPI_Pnt2d>& theCenter,
+ double theRadius);
+
+ // Add circle.
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_Circle> addCircle(double theX1, double theY1,
+ double theX2, double theY2,
+ double theX3, double theY3);
+
+ // Add circle.
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_Circle> addCircle(const std::shared_ptr<GeomAPI_Pnt2d>& thePoint1,
+ const std::shared_ptr<GeomAPI_Pnt2d>& thePoint2,
+ const std::shared_ptr<GeomAPI_Pnt2d>& thePoint3);
+
+ /// Add circle.
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_Circle> addCircle(const ModelHighAPI_Selection & theExternal);
+
+ /// Add circle.
+ SKETCHAPI_EXPORT
+ std::shared_ptr<SketchAPI_Circle> addCircle(const std::string & theExternalName);
+
// TODO(spo): addArc
/// Set coincident