| | |
| |
|
| | #include <src/App/InitApplication.h> |
| | #include <App/Document.h> |
| | #include <Mod/Measure/App/MeasureDistance.h> |
| | #include <Mod/Part/App/PartFeature.h> |
| | #include <gtest/gtest.h> |
| | #include <BRepBuilderAPI_MakeEdge.hxx> |
| | #include <gp_Circ.hxx> |
| | #include <TopoDS_Edge.hxx> |
| | #include <TopoDS_Wire.hxx> |
| |
|
| | class MeasureDistance: public ::testing::Test |
| | { |
| | protected: |
| | static void SetUpTestSuite() |
| | { |
| | tests::initApplication(); |
| | } |
| |
|
| | void SetUp() override |
| | { |
| | document = App::GetApplication().newDocument("Measure"); |
| | } |
| |
|
| | void TearDown() override |
| | { |
| | App::GetApplication().closeDocument(document->getName()); |
| | } |
| |
|
| | App::Document* getDocument() const |
| | { |
| | return document; |
| | } |
| |
|
| | TopoDS_Edge makeCircle(const gp_Pnt& pnt) const |
| | { |
| | gp_Circ circle; |
| | circle.SetLocation(pnt); |
| | circle.SetRadius(1.0); |
| | BRepBuilderAPI_MakeEdge mkEdge(circle); |
| | return mkEdge.Edge(); |
| | } |
| |
|
| | private: |
| | App::Document* document {}; |
| | }; |
| |
|
| | |
| | TEST_F(MeasureDistance, testCircleCircle) |
| | { |
| | App::Document* doc = getDocument(); |
| | auto p1 = doc->addObject<Part::Feature>("Shape1"); |
| | p1->Shape.setValue(makeCircle(gp_Pnt(0.0, 0.0, 0.0))); |
| | auto p2 = doc->addObject<Part::Feature>("Shape2"); |
| | p2->Shape.setValue(makeCircle(gp_Pnt(3.0, 4.0, 0.0))); |
| |
|
| | auto md = doc->addObject<Measure::MeasureDistance>("Distance"); |
| | md->Element1.setValue(p1, {"Edge1"}); |
| | md->Element2.setValue(p2, {"Edge1"}); |
| |
|
| | doc->recompute(); |
| |
|
| | EXPECT_DOUBLE_EQ(md->Distance.getValue(), 5.0); |
| | EXPECT_DOUBLE_EQ(md->DistanceX.getValue(), 3.0); |
| | EXPECT_DOUBLE_EQ(md->DistanceY.getValue(), 4.0); |
| | EXPECT_DOUBLE_EQ(md->DistanceZ.getValue(), 0.0); |
| | EXPECT_EQ(md->Position1.getValue(), Base::Vector3d(0.0, 0.0, 0.0)); |
| | EXPECT_EQ(md->Position2.getValue(), Base::Vector3d(3.0, 4.0, 0.0)); |
| | } |
| | |
| |
|