Commit graph

121 commits

Author SHA1 Message Date
Garth Minette
d43b4667d5 Fix for #241: split_polygons_at_each_y produces non simple polygons 2020-11-29 22:39:42 -08:00
Garth Minette
775e0c4c48 Fixed bevel_gear() so that complementary gears will mesh. 2020-10-13 22:32:20 -07:00
Garth Minette
29ed649740 Added angle= and shift= to trapezoid() 2020-10-07 22:50:05 -07:00
Garth Minette
38873d8ef9 Fixed a bunch of docs errors with Usage headers. 2020-10-03 20:29:35 -07:00
Garth Minette
16ee49e8b2 Fixed a bunch of undef math warnings with dev snapshot OpenSCAD builds. 2020-10-03 19:50:29 -07:00
Garth Minette
f193871a34 Implement fix for issue #174. 2020-09-25 00:01:45 -07:00
Garth Minette
4f88775ef9 Changed circle_point_tangents() to return just a list of 2D tangent points. 2020-09-24 17:09:06 -07:00
RonaldoCMP
a00b738a75 Correct docs 2020-09-10 00:27:56 +01:00
RonaldoCMP
28cbdb4d89 removing tabs 2020-09-09 09:51:59 +01:00
RonaldoCMP
75e5cd4979 Solving bugs in functions on planes 2020-09-09 09:37:31 +01:00
Garth Minette
e1b0985afc Fixed broken line-plane intersections. Attachment enhanced vnf_polyhedron(). 2020-08-28 19:07:10 -07:00
RonaldoCMP
da5546cbc2 In observance of owner's last review
Eliminate double definitions.
Eliminate unneeded comments.

In common.scad redefine num_defined(), all_defined() and get_radius().

In geometry.scad:
- change name _dist to _dist2line
- simplify _point_above_below_segment() and triangle_area()
- change some arg names for uniformity (path>>poly)
- change point_in_polygon() to accept the Even-odd rule as alternative
- and other minor edits

Update tests_geometry to the new funcionalities.
2020-08-20 22:42:24 +01:00
RonaldoCMP
29672105ed
Update geometry.scad
Removed all double definitions
2020-08-18 23:27:38 +01:00
RonaldoCMP
2efd0ca5d0 Function name change
plane_projection >> projection_on_plane
2020-08-16 23:54:00 +01:00
RonaldoCMP
3bf22cd236 In-depth review
Besides param validation and some formating, changes:

A. add new functions:

1. _valid_line()
2. _valid_plane()
3. line_from_points()
4. projection_on_plane()
5. points_on_plane()

B. rename/redefine/remove functions:

1. points_are_coplanar() >> coplanar()
2. collinear() works with list of points as well as coplanar()
3. find_noncollinear_points >> noncollinear_triple
4. collinear_indexed() removed
5. polygon_is_convex() >> is_convex_polygon()

C. recode/optimize the codes of the functions:

1. point_on_segment2d()
2. point_left_of_line2d()
3. distance_from_line()
4. line_closest_point()
5. plane_from_polygon()
6. _general_plane_line_intersection()
7. polygon_line_intersection()
8. find_circle_2tangents()
9. find_circle_3points()
10. polygon_area()
11. is_convex_polygon()
12. reindex_polygon()
13. centroid()
14. polygon_is_clockwise()
15. clockwise_polygon()
16. ccw_polygon()

The function name changes were updated in:
test_geometry.scad
hull.scad
rounding.scad
vnf.scad

Regression tests for the new external functions were included in test_geometry.scad.

Unsolved questions:
1. why sorting the indices in plane_from_points and polygon_line_intersection?
2. aren't redundant plane_from_polygon() and plane_from_points()?
2020-08-16 23:33:11 +01:00
Adrian Mariano
e222d26136 Removed unneeded functions 2020-07-28 17:55:56 -04:00
Adrian Mariano
3c9e304675 fix find_noncollinear_points 2020-07-28 17:54:45 -04:00
Adrian Mariano
1dda5b088c Fixed docs for path2d.
Modified pointlist_bounds to give output that matches input
dimension and to work on any input dimension.  Also made it ~20 times faster.
2020-07-24 16:36:57 -04:00
Garth Minette
ae1a6d8d61 Rewrote line_closest_point() and segment_closest_point() to support 3D. Added ray_closest_point(). 2020-07-19 23:07:49 -07:00
Revar Desmera
53c1e25395 Standardize indention on spaces, not tabs. 2020-05-29 19:04:34 -07:00
Revar Desmera
f3127d96a2 Formatting tweaks. 2020-05-24 01:03:37 -07:00
Revar Desmera
9c2cf53b2d Renamed find_circle_tangents() to circle_point_tangents() 2020-05-23 19:22:44 -07:00
Adrian Mariano
4eda2c701e added circle_circle_tangents 2020-05-23 17:25:46 -04:00
Revar Desmera
b1ae85e65c Bugfix for split_polygons_at_each_z() 2020-05-18 01:49:46 -07:00
Revar Desmera
32e0f26fd8 Added vnf_bend_around_y_axis(). 2020-05-14 05:14:23 -07:00
Revar Desmera
196ca2c055 Typo fix in triangle_area() 2020-05-03 19:11:08 -07:00
Revar Desmera
96e17c17e0 Fixed example generation for a few functions in geometry.scad. 2020-04-29 23:01:00 -07:00
Revar Desmera
182688cf02 Implemented solution for issue #159 2020-04-29 22:45:41 -07:00
Revar Desmera
e32735296c Various bugfixes found by docs regen. 2020-04-26 04:29:21 -07:00
Revar Desmera
1c06298f10 Enhanced find_circle_2tangents() 2020-04-18 18:38:22 -07:00
Revar Desmera
ea20f59c44 Fix collinear() for cases when a==b. 2020-04-02 18:26:46 -07:00
Revar Desmera
975185e262 Bugfix and optimization for find_noncollinear_points(). Optimized points_are_collinear() 2020-04-02 18:15:43 -07:00
Revar Desmera
971c1e795f Renamed place_copies() to move_copies() 2020-03-24 18:31:22 -07:00
Revar Desmera
1df6dcff2b Made polygon_area() work with 3D polygons as well. 2020-03-19 14:04:40 -07:00
Revar Desmera
412dd9e260 plane_intersection() bugfix. plane_line_intersection() and polygon_line_intersection() can now detect on-plane intersections. 2020-03-17 01:12:51 -07:00
Revar Desmera
602e850d24 Added points_are_collinear(). Renamed pointslist_is_coplanar() to points_are_coplanar() 2020-03-13 21:48:31 -07:00
Revar Desmera
efa75eaf5a Added pointslist_is_coplanar(). Added coplanar check to plane_from_pointslist(). 2020-03-13 18:45:46 -07:00
Adrian Mariano
ee82a8bb97 bug fix qr factorization, removed echo in plane intersection, fixed
bezier_surface so vnf arg is in right order
2020-03-09 21:05:57 -04:00
Revar Desmera
c152d393db
Merge branch 'master' into master 2020-03-07 16:31:21 -08:00
Revar Desmera
47c9560d5f Corrected docs about the equation of a plane used in plane functions. 2020-03-07 16:08:42 -08:00
Adrian Mariano
cc644c7a77 Added plane intersection and plane_from_normal and fixed docs for
plane definition.
2020-03-07 14:22:53 -05:00
Revar Desmera
07bfcd6a57 Renamed normalize() to unit() 2020-03-02 19:30:20 -08:00
Revar Desmera
c6ec9c8820 Moved path functions from geometry.scad to paths.scad 2020-03-01 16:12:51 -08:00
Adrian Mariano
4a3ecfe9ba Tweaked docs for reindex_polygon 2020-02-29 23:09:16 -05:00
Revar Desmera
5d1865dc77 Merge branch 'master' of github.com:revarbat/BOSL2 2020-02-28 21:45:27 -08:00
Revar Desmera
7e0512e5f9 Bugfix for polygon_line_intersection() for failing to find intersection. 2020-02-28 21:37:16 -08:00
Adrian Mariano
f8fc8cb544 Adds sweep and new version of path_sweep to skin.scad, which probably
needs a name change.  Adds apply(), apply_list() and
affine_frame_map() to affine.scad.  Adds derivative calcluation to
math.scad.  Adds path_tangent, path_normal, path_curvature and
path_torsion functions.  Adds path_length_fraction().
Fixed bug in reindex_polygon where it randomly reverses a 3d path (due
to clockwise check that is bogus in 3d) and put a check in
polygon_is_clockwise to trap this case.
2020-02-27 17:32:03 -05:00
Adrian Mariano
bfcc45c998 Added plane_line_angle 2020-02-13 18:06:20 -05:00
Revar Desmera
90daf37a53 Added polygon_is_convex() 2020-01-30 21:18:39 -08:00
Revar Desmera
8da60800c9 Consolidated path code into paths.scad 2020-01-30 14:00:10 -08:00