* added ellipse
* removed unused math imports
* added method ellipseArc and adapted method ellipse to circle
* introduced sense for ellipse building
* adapted ellipse test cases
* exclude vscode config folder
* use gp_Ax2(p, zdir, xdir) for ellipse building
* ran black against the changes
* Fix docstring of makeEllipse
Co-Authored-By: Adam Urbańczyk <adam-urbanczyk@users.noreply.github.com>
* Fix return value in docstring of makeEllips
Co-Authored-By: Adam Urbańczyk <adam-urbanczyk@users.noreply.github.com>
* Formatting fix
* Increase test coverage
* Formatting fixes
* Add test for makeEllipse
* Test fix
* Formatting + typo fix
Co-authored-by: Bernhard <bwalter42@gmail.com>
Co-authored-by: Adam Urbańczyk <adam-urbanczyk@users.noreply.github.com>
The vector defining the rotation is expected to be in local coordinates
and therefore needs to be converted to world coordinates before applying
the rotation.
BRepBuilderAPI_MakeWire::Add(const TopTools_ListOfShape & L) offers the option to accept a list of shapes directly as argument:
"Adds the edges of <L> to the current wire. The edges are not to be consecutive. But they are to be all connected geometrically or topologically. If some of them are not connected the Status give DisconnectedWire but the "Maker" is Done() and you can get the partial result. (ie connected to the first edgeof the list <L>)"
Following this I modified the assembledEdges in shapes.py to be able to provide a list of unordered edges to BRepBuilderAPI_MakeWire. This way, when the list of edges is generated by another function, there is not need to make them consecutive.
The tolerance parameter of the BoundingBox method of shape had no effect. Fixed this by passing the tolerance to the _fromTopoDS call. Changed the tolerance default value from 0.1 to None so that the global TOL is used by default. This allows the user to set the global TOL value as outlined in #74. The CenterofBoundbox method incorrectly passed a shape to the BoundingBox method, which is the position for the tolerance paramter. This has been fixed. The _fromTopoDS method hard coded the global variable TOL in it's call to BRepMesh_IncrementalMesh. This has been updated to use the user supplied tolerance if one has been provided. Added test coverage for the tolerance parameter of the BoundingBox method.
Now correctly returns True for points on boundary surface of solid. Updated tests to verify this. Remove check that isInside() is run on solid since it is now part of Mixin3D which implies that self is a solid. Improved doc string.