gp_Ax2 anAxes (aP, aV);
gp_Ax3 anAxes3(anAxes);
gp_Pln aPln(anAxes3);
- gp_Circ aCirc (anAxes, aCI.GetRadius());
+ gp_Ax2 anAxes1(aP, -aV);
+ gp_Circ aCirc (anAxes1, aCI.GetRadius());
TopoDS_Shape aCircle = BRepBuilderAPI_MakeEdge(aCirc).Edge();
BRepBuilderAPI_MakeWire MW;
MW.Add(TopoDS::Edge(aCircle));
Standard_ConstructionError::Raise("Disk creation aborted: coincident points given");
if (gp_Vec(aP1, aP2).IsParallel(gp_Vec(aP1, aP3), Precision::Angular()))
Standard_ConstructionError::Raise("Disk creation aborted: points lay on one line");
- Handle(Geom_Circle) aCirc = GC_MakeCircle(aP1, aP2, aP3).Value();
+ Handle(Geom_Circle) aCirc = GC_MakeCircle(aP3, aP2, aP1).Value();
gp_Circ aGpCirc = aCirc->Circ();
- gp_Ax3 anAxes3(aGpCirc.Position());
+ gp_Ax2 anAxes = aGpCirc.Position();
+ gp_Ax3 anAxes3(anAxes.Location(), -anAxes.Direction());
gp_Pln aPln(anAxes3);
TopoDS_Shape aCircle = BRepBuilderAPI_MakeEdge(aCirc).Edge();
BRepBuilderAPI_MakeWire MW;
aV = gp::DY();
gp_Ax2 anAxes (aP, aV);
+ gp_Ax2 anAxes1(aP, -aV);
gp_Ax3 anAxes3(anAxes);
gp_Pln aPln(anAxes3);
- gp_Circ aCirc (anAxes, aCI.GetRadius());
+ gp_Circ aCirc (anAxes1, aCI.GetRadius());
TopoDS_Shape aCircle = BRepBuilderAPI_MakeEdge(aCirc).Edge();
BRepBuilderAPI_MakeWire MW;
MW.Add(TopoDS::Edge(aCircle));