Mirroring 2D

I am working on some bindings for OCCT. Now I am starting to play with the library. I made the bottle example with the bindings and they worked.

Now I was trying to do the example using 2D elements: gp_Pnt2d, GCE2d_MakeArcOfCircle, ...

I am able to mirror the created wire. And later I am able to add the original wire and the mirrored one.

The issue comes when I try to create a face from the wire. I get an error:

Error: unhandled unknown cpp exception

I am inspecting the wire and I get: - BRepCheck_NotClosed - isValid: false

I don't know how to close it.

When I revew the original wire (check the edges and their vertex) I get:

Original wire:
-25.0 0.0
-25.0 -5.0
-25.0 -5.0
25.0 -5.0
25.0 -5.0
25.0 0.0

When I review the mirrored wire, I get:

New wire:
-25.0 0.0
-25.0 5.0
-25.0 5.0
25.0 5.0
25.0 5.0
25.0 0.0

Any clue to solve it?

Jose M. Garcia's picture

If I print the points and the orientation, I get:

Edge:
  orientation: TopAbsFORWARD
  -25.0 0.0
  -25.0 -5.0
Edge:
  orientation: TopAbsFORWARD
  -25.0 -5.0
  25.0 -5.0
Edge:
  orientation: TopAbsFORWARD
  25.0 -5.0
  25.0 0.0
Edge:
  orientation: TopAbsREVERSED
  25.0 -5.0
  25.0 0.0
Edge:
  orientation: TopAbsREVERSED
  -25.0 -5.0
  25.0 -5.0
Edge:
  orientation: TopAbsREVERSED
  -25.0 0.0
  -25.0 -5.0