Compare commits

...

2583 Commits

Author SHA1 Message Date
Vitaliy Filippov 80abdc1da0 Experimental circular/spherical/cylindric bend modifier (issue openscad/openscad#815) 2015-05-23 13:45:15 +03:00
Vitaliy Filippov 045a3b93b0 Use Delaunay triangulation, for both STL and OFF export 2015-05-23 13:45:15 +03:00
Marius Kintel 42d6629156 Merge pull request #1339 from openscad/export-to-clipboard
Add "Export to Clipboard" to copy the current 3d view to the system clipboard.
2015-05-18 22:20:28 -04:00
Torsten Paul ff2427cc1e Move to Edit->Copy Viewport and add shortcut SHIFT-CTRL-C. 2015-05-16 17:41:52 +02:00
Marius Kintel 5451fabcc1 Merge pull request #1346 from ArchimedesPi/fixup-some-coverity-defects
Fix some defects from Coverity (WIP)
2015-05-15 15:45:11 -04:00
Liam Marshall 9641e9bd7f oops can't delete a pointer address 2015-05-15 14:25:08 -05:00
Liam Marshall 365c562a17 Fix #1 of 2 in 25081 (OffscreenContextGLX.cc) 2015-05-15 14:20:46 -05:00
Liam Marshall a1a238a9cd Fix memory leak 25072 (ModuleCache::evaluate) 2015-05-15 14:07:42 -05:00
Liam Marshall 7223f2ac05 Preserve output state so that everything afterwards doesn't get turned into hex 2015-05-15 13:43:23 -05:00
Liam Marshall 1752fcee8c Easier fix for 93925 (control.cc) 2015-05-15 13:31:20 -05:00
Liam Marshall 4f1132e5a6 Fix memory leak 25008 2015-05-15 13:15:31 -05:00
Liam Marshall 306cece150 Fix memory leak 25035 2015-05-15 13:11:55 -05:00
Liam Marshall 289d84aac0 Fix memory leak 93925 2015-05-15 12:52:12 -05:00
Liam Marshall 38b93fe7a7 Fix memory leak 25100 2015-05-15 12:46:30 -05:00
Marius Kintel 031e016df7 Fix resource path search; the 'libraries' folder isn't always installed. Fixes #1342 2015-05-14 22:32:00 -04:00
Marius Kintel 52f5fe2e92 Merge pull request #1343 from ArchimedesPi/quiet-mode
Implement quiet mode
2015-05-14 22:14:21 -04:00
Marius Kintel f71e0acbbb Merge pull request #1338 from ArchimedesPi/axes-colorscheme
Add a axes-color option for color schemes
2015-05-14 22:12:37 -04:00
Marius Kintel 59f63b5e17 Merge pull request #1337 from openscad/script-detect
Simple detection of script and direction based on given text.
2015-05-14 22:10:44 -04:00
Marius Kintel cd4ced5456 Merge pull request #1327 from openscad/issue1254-qscintilla-fedora
Workaround for Fedora 21 builds (fixes #1254).
2015-05-14 22:08:47 -04:00
Liam Marshall 2c6d783eb7 Change bacl to black axes for Cornfield 2015-05-14 14:48:12 -05:00
Liam Marshall 1ab390d115 Don't suppress error messages 2015-05-13 17:38:47 -05:00
Liam Marshall c31a96454c Need to add quiet to OpenSCAD namespace 2015-05-13 11:23:15 -05:00
Liam Marshall 5239121706 Make PRINT_NOCACHE respect OpenSCAD::quiet 2015-05-13 11:21:55 -05:00
Liam Marshall 061537e773 Add OpenSCAD::quiet definition 2015-05-13 11:21:36 -05:00
Liam Marshall 02db2e15a4 Make -q toggle a global variable for quiet mode 2015-05-13 11:18:32 -05:00
Liam Marshall 4f4ddb938a Add --quiet,-q option 2015-05-13 11:16:24 -05:00
Liam Marshall 17f9941a08 Make default blue color a bit darker 2015-05-12 17:37:00 -05:00
Torsten Paul 591c98e979 Add "Export to Clipboard" to copy the current 3d view to the system clipboard. 2015-05-12 23:48:17 +02:00
Liam Marshall ca9f9d9d9c axes-color for Tomorrow Night 2015-05-12 15:53:26 -05:00
Liam Marshall 0c2af2defa axes-color for Tomorrow 2015-05-12 15:53:19 -05:00
Liam Marshall 8e53c29612 axes-color for Sunset 2015-05-12 15:53:11 -05:00
Liam Marshall e6cd3fdda1 axes-color for StarNight 2015-05-12 15:50:22 -05:00
Liam Marshall f9b074c473 axes-color for Nature 2015-05-12 15:50:14 -05:00
Liam Marshall 3511e7079f axes-color for Monotone 2015-05-12 15:47:49 -05:00
Liam Marshall 7fb626fb08 axes-color for Metallic 2015-05-12 15:45:53 -05:00
Liam Marshall 55affd0273 axes-color for DeepOcean 2015-05-12 15:44:56 -05:00
Liam Marshall c2f2ba5293 axes-color for beforedawn 2015-05-12 15:43:31 -05:00
Liam Marshall 69e6707c62 axes-color for solarized 2015-05-12 15:41:54 -05:00
Liam Marshall 9fb5893540 Map axes-color in JSON files to AXES_COLOR 2015-05-12 15:26:08 -05:00
Liam Marshall cdbd08a4d3 Default for axis color (for testing) 2015-05-12 15:25:53 -05:00
Liam Marshall 98b6cf3d19 Add AXES_COLOR to `enum RenderColor` 2015-05-12 15:22:26 -05:00
Liam Marshall 5e3cd59eeb Switch from getContrastColor to getColor in GLView
* Removed bgcontrast
* Added new `Color4f axescolor` obtained by `ColorMap::getColor(...,
AXES_COLOR)`
* Switched showAxes and showScalemarkers to `axescolor`
2015-05-12 15:09:20 -05:00
Torsten Paul 9f372cff41 Simple detection of script and direction based on given text.
This adds a simple detection logic based on the hb_unicode_script()
function provided by harfbuzz. Automatic script selection will only
happen if no valid parameter was given (basically only in case of
a missing script parameter in text()).
If different scripts are found in a single text, the resulting value
is HB_SCRIPT_UNKNOWN.
2015-05-09 18:05:07 +02:00
Marius Kintel 89371f60cf Merge pull request #1335 from hroncok/patch-1
Czech translation: Add missing space
2015-05-04 15:02:58 -04:00
Miro Hrončok c94e62878a Czech translation: Add missing space 2015-05-04 20:12:53 +02:00
Marius Kintel 2dbf9755c3 Version splitting used wrong variable, causing version() to return [0,0,0]. Fixes #1329 2015-04-28 10:21:02 -04:00
Marius Kintel 0e1b0daf36 #1254 Backport some code to boost filesystem V2, for old RedHat version 2015-04-26 16:11:51 -04:00
Marius Kintel e21b321323 Allow compiling against libstdc++ and c++03 2015-04-26 16:11:10 -04:00
Torsten Paul cc4b633e43 Workaround for Fedora 21 builds (fixes #1254).
Fedora installs qscintilla2.prf in the wrong location and has a different
naming scheme than the one used in Ubuntu so the existing workaround fails.
This adds yet another workaround to detect the different naming for the
Qt5 version of the QScintilla2 library.
2015-04-26 16:45:04 +02:00
Marius Kintel c45f2b5f36 Merge branch 'master' of github.com:openscad/openscad 2015-04-25 21:31:17 -04:00
Marius Kintel 2b3392266f Merge pull request #1326 from openscad/issue1325
Fixes Issue #1325
2015-04-25 16:57:05 -04:00
Marius Kintel e6989526ca #1325 Fixed crash when polygons with > 3 indices turn out to be degenerate 2015-04-25 15:20:09 -04:00
Marius Kintel 12a43fd942 bugfix: bash substitution of SHORTVERSION was wrong 2015-04-21 11:10:24 -04:00
Marius Kintel 172f1bfd3e bugfix: bash substitution of SHORTVERSION was wrong 2015-04-21 11:10:02 -04:00
Marius Kintel 4d0745d337 Revert "Bumped version to 2015.03-1"
This reverts commit a209035a83.
2015-04-21 11:09:23 -04:00
Marius Kintel a209035a83 Bumped version to 2015.03-1 2015-04-21 10:41:44 -04:00
Marius Kintel b3ae7fa1ff Merge pull request #1319 from openscad/issue1317
Fixed bug reversing result of is_nan(), causing normals vectors to somet...
2015-04-21 01:56:00 -04:00
Marius Kintel 167b8825f7 Fixed bug reversing result of is_nan(), causing normals vectors to sometime be exported as 0 0 0. Fixes #1317 2015-04-21 01:33:25 -04:00
Marius Kintel a1bece5c51 Merge pull request #1316 from openscad/issue1288
Grab framebuffer before opening file dialog. Should fix #1288
2015-04-17 10:14:02 -04:00
Marius Kintel 728a114594 #1288 Grab framebuffer before opening file dialog to avoid the dialog being part of hte grabbed frame 2015-04-16 11:11:28 -04:00
Marius Kintel 4d3800cc89 Merge pull request #1313 from clothbot/patch-3
Removed deprecated assign statement
2015-04-16 00:32:12 -04:00
Andrew Plumb c32e271a0c Sync up output with example023 cleanup. 2015-04-15 23:58:06 -04:00
Marius Kintel 6e5315b430 Merge pull request #1312 from clothbot/patch-2
Comment out search term not found WARNING
2015-04-15 22:08:24 -04:00
Marius Kintel b718a23972 Fix gmp issue; ptrdiff_t not found. Fixes #1314 2015-04-15 21:45:21 -04:00
Marius Kintel 2e31b3e43a Prefer http over ftp 2015-04-15 21:45:12 -04:00
Andrew Plumb 9897174a03 Found more search PRINTB warnings to remove 2015-04-15 18:29:05 -04:00
Marius Kintel e87dab0bc6 Merge branch 'master' of https://github.com/openscad/openscad 2015-04-15 14:35:15 -07:00
Marius Kintel e5e9f20f95 Prefer http over ftp 2015-04-15 14:35:12 -07:00
Marius Kintel b9c8985377 Fix gmp issue; ptrdiff_t not found. Fixes #1314 2015-04-15 14:33:51 -07:00
Andrew Plumb e8c8bda674 Manually removing WARNING echos. 2015-04-15 14:50:44 -04:00
Andrew Plumb dee5885d9f Manually removing WARNING echos. 2015-04-15 14:49:02 -04:00
Andrew Plumb bb183558ae Removing instead of just commenting out line. 2015-04-15 14:47:30 -04:00
Marius Kintel ed2f4c2e22 Merge pull request #1315 from ankush1995/compile-gl
separate-compile
2015-04-15 13:22:38 -04:00
ankush1995 7e5394c6fa separate-compile 2015-04-15 14:56:19 +05:30
Andrew Plumb 330b41656b Removed deprecated assign statement 2015-04-13 19:24:51 -04:00
Andrew Plumb 3adfdad66d Comment out search term not found WARNING
Returning empty result should be sufficient for detecting a no-match condition.

See forum discussion http://forum.openscad.org/Suppressing-quot-search-term-not-found-quot-warning-in-search-td12359.html
2015-04-13 18:46:43 -04:00
Marius Kintel b7a011d0f1 Merge branch 'issue1276' into 2015.03 2015-04-13 13:21:15 -04:00
Marius Kintel 82f85cd328 Merge pull request #1311 from openscad/issue1276
Issue1276
2015-04-13 13:21:09 -04:00
Marius Kintel f53b3a3ac1 Merge pull request #1310 from openscad/issue1284
Issue1284
2015-04-13 13:10:00 -04:00
Marius Kintel c3736b0f30 #1276 Let FileModule::instantiate() catch all module recursions 2015-04-13 12:45:30 -04:00
Marius Kintel 25f927799d #1284 Fix animation flicker by not updating camera while compiling 2015-04-12 22:02:03 -04:00
Marius Kintel 90a86be54b Don't include build date. Fixes #1294 2015-04-01 17:12:27 -04:00
Marius Kintel 90094fff25 Merge pull request #1295 from openscad/issue1294
Don't include build date. Fixes #1294
2015-04-01 17:10:36 -04:00
Marius Kintel 38ef9fddde Don't include build date. Fixes #1294 2015-04-01 17:09:57 -04:00
Torsten Paul b2b4695f21 Switch to MXE hosted in openscad github / branch openscad-snapshot-build. 2015-03-30 23:47:36 -04:00
Marius Kintel 6c3c2de264 Merge pull request #1283 from Lenbok/scad-mode-updates
Updates to Emacs scad-mode
2015-03-30 23:29:24 -04:00
Lenbok 7632b065c6 Fix incorrect indentation for lines affected by # modifier 2015-03-28 15:38:13 +13:00
Lenbok b43734c3e5 * Convert to being derived from cc-mode, as per a 2013 post from Lukasz
Stelmach. This yields better indentation (particularly for
  continuations) as well as being simpler.

* Update keywords for the 2015.03 release (plus a couple missed from
  earlier)

* Use separate highlighting style for deprecated keywords.
2015-03-28 13:59:45 +13:00
Torsten Paul a5ec4587b6 Switch to MXE hosted in openscad github / branch openscad-snapshot-build. 2015-03-24 01:29:33 +01:00
Marius Kintel 1b840be127 Merge pull request #1280 from openscad/issue1264b
#1264 Backported to QScintilla 2.7, left a small bug when using 2.7 but ...
2015-03-23 16:30:57 -04:00
Marius Kintel 8b452f65f7 #1264 Backported to QScintilla 2.7, left a small bug when using 2.7 but we can live with it 2015-03-23 16:30:04 -04:00
Marius Kintel 85290e4d51 Merge pull request #1279 from openscad/issue1277
Update temporal variables for each evaluation, not for each compilation....
2015-03-23 15:28:54 -04:00
Marius Kintel 5ad4b13036 Update temporal variables for each evaluation, not for each compilation. This ensures that camera parameters are correct even if we reuse an already compiled document. Fixes #1277 2015-03-23 15:02:14 -04:00
Marius Kintel 3ac213d649 Merge pull request #1278 from openscad/issue1264
Reimplemented Replace All to work properly. Fixes #1264
2015-03-23 14:26:11 -04:00
Marius Kintel 5042d064b2 Reimplemented Replace All to work properly. Fixes #1264 2015-03-23 12:51:25 -04:00
Marius Kintel 2001f1302e Merge pull request #1275 from openscad/mxe-c++11
Build fixes to compile on MXE with C++11 enabled.
2015-03-23 11:32:34 -04:00
Torsten Paul c71e70c0f9 Build fixes to compile on MXE with C++11 enabled. 2015-03-22 14:17:36 +01:00
Marius Kintel d37f4fbbab install in normal location, set c++11 as default for dependencies 2015-03-20 20:16:55 -04:00
Marius Kintel c5e1e2b9af Merge remote-tracking branch 'origin/master' into c++11 2015-03-20 17:00:41 -04:00
Marius Kintel c037625b65 Disable c++11 as default for now 2015-03-20 17:00:05 -04:00
Marius Kintel 21cce232bc #1203 Explicitly set icon to make sure windows systems correctly set up the icon 2015-03-20 00:40:55 -04:00
Marius Kintel 2ab649c226 Allow resizing the main window smaller than the status bar label. Fixes #1260 2015-03-14 19:23:31 -04:00
Marius Kintel 363b27a614 Patch level release checklist 2015-03-14 16:17:38 -04:00
Marius Kintel 99eae18713 Release notes doesn't currently change for patch level releases 2015-03-14 16:17:20 -04:00
Marius Kintel 9ef1717459 Conflicts:
openscad.pro
	scripts/publish-macosx.sh
	scripts/publish-mingw-x.sh
	scripts/release-common.sh
	tests/CMakeLists.txt
2015-03-14 16:17:07 -04:00
Marius Kintel 9660ba84a0 Merge remote-tracking branch 'origin/master' into c++11 2015-03-14 15:46:49 -04:00
Marius Kintel 064cf23887 #1258 Moved test to issues after fixing 2015-03-13 15:52:52 -04:00
Marius Kintel 4a9d2d321a Crashed attempting to access non-existing element. Fixes #1258 2015-03-13 15:45:40 -04:00
Marius Kintel f3e28ca8b4 #1258 Added testcase 2015-03-13 15:34:52 -04:00
Marius Kintel c2cb2377f5 Made Bezier code slightly more easy to read 2015-03-12 19:34:36 -04:00
Marius Kintel 72ca3c849d Removed unused code 2015-03-12 19:33:33 -04:00
Torsten Paul d2666c80ef Activate special icon for nightly builds (using SUFFIX=-nightly). 2015-03-13 00:08:26 +01:00
Marius Kintel 067eec8743 Merge remote-tracking branch 'origin/master' into c++11 2015-03-12 01:38:29 -04:00
Marius Kintel e78206d2aa Separate out std/stdlib flags since ragel doesn't currently build with C++11 2015-03-12 01:38:12 -04:00
Marius Kintel 0eb91e0549 Ignore leading and trailing whitespace when comparings dumps, makes diffs a lot easier to read 2015-03-12 00:24:27 -04:00
Marius Kintel 541352acad Removed use of deprecated rotate_extrude variant 2015-03-12 00:04:54 -04:00
Marius Kintel c10bc224e5 Merge pull request #1255 from prokoudine/master
Completed Russian translation of OpenSCAD
2015-03-11 23:58:37 -04:00
Alexandre Prokoudine ff829babab Fixed and updated the header of ru.po 2015-03-11 16:19:15 +03:00
Alexandre Prokoudine 6d9bcad1e7 Completed and fixed Russian translation 2015-03-11 16:15:28 +03:00
Marius Kintel 394cc15fba Merge remote-tracking branch 'origin/master' into c++11 2015-03-10 22:08:06 -04:00
Marius Kintel f7df0edd85 Nightly icons 2015-03-10 17:18:39 -04:00
Marius Kintel 5e46cb2ff8 Add snapshot to CONFIG for snapshot builds 2015-03-10 17:18:17 -04:00
Marius Kintel 26e5684d08 Enable nightly icon for Mac 2015-03-10 17:17:21 -04:00
Marius Kintel 3a3eb3b8b9 Added hyperair 2015-03-10 17:00:18 -04:00
Marius Kintel ca72a5ab5d Reverted version to master after release 2015-03-10 10:46:46 -04:00
Marius Kintel a7bf4fe69b Bumped version to 2015.03 2015-03-10 10:45:40 -04:00
Marius Kintel 71cc091c26 Upload release version in correct location 2015-03-10 10:44:01 -04:00
Marius Kintel 6a0658df22 #1252 merged Spanish translation 2015-03-10 10:43:30 -04:00
Marius Kintel 15a7d74b69 Updated test results after adding echo(version()) 2015-03-09 13:10:44 -04:00
Marius Kintel b23bebe434 Added license 2015-03-09 12:33:06 -04:00
Marius Kintel 653e3cb116 typo 2015-03-09 12:13:37 -04:00
Marius Kintel 891b484bdc Added assign() to deprecation list 2015-03-09 11:58:46 -04:00
Marius Kintel 4db81672ca Remove empty categories. Revert hardcoding of categories 2015-03-09 11:36:57 -04:00
Marius Kintel e7971b6a60 Revert "Hardcode example categories to make them easier to translate"
This reverts commit a4bbf2063b.
2015-03-09 11:24:13 -04:00
Marius Kintel 08b97429a9 Use correct links to release notes 2015-03-09 03:42:58 -04:00
Marius Kintel 2091e6532b various small updates 2015-03-09 02:50:05 -04:00
Marius Kintel c4f42011fc Disable test with z buffer tearing 2015-03-09 01:00:02 -04:00
Marius Kintel 061401ccfc sync 2015-03-09 00:00:26 -04:00
Marius Kintel 424f37e17b #1250 Don't tesselate convex polysets for rendering 2015-03-08 23:56:37 -04:00
Marius Kintel 3cda1c6f5a bboxes should be recalculated after transformations. We could filter out rotation transforms but this is easier for now 2015-03-08 23:56:21 -04:00
Marius Kintel df9a05e46c Ignore throwntogethertest_issue964 2015-03-08 22:46:53 -04:00
Marius Kintel f52061535e Updated test result; order of polygons changes 2015-03-08 20:56:30 -04:00
Marius Kintel 7d1962b95a wops, forgot to set the dirty bit in one place 2015-03-08 20:41:56 -04:00
Marius Kintel cc1f9e1353 quickfix: Increase parser stack depth to allow for larger designs 2015-03-08 19:36:30 -04:00
Marius Kintel 28b347065d Improved performance regression: create indexed polygon before tessellating, don't tessellate triangles 2015-03-08 19:35:20 -04:00
Marius Kintel 30f5343834 Optimization: Cache boundingbox, added append_poly with Polygon parameter 2015-03-08 19:32:10 -04:00
Marius Kintel 485edd57be doc 2015-03-08 19:29:24 -04:00
Marius Kintel 66835e1ef4 Only show verbose debug info when --debug is turned on 2015-03-08 17:35:30 -04:00
Marius Kintel 78f3c283b0 Updated test results after fixing zero clamp surface issue 2015-03-07 23:17:33 -05:00
Marius Kintel 393772d1f8 fixed a small remaining surface issue; z values weren't clamped to 0 2015-03-07 23:17:11 -05:00
Marius Kintel d98f892913 Updated test result after camera change 2015-03-07 19:34:47 -05:00
Marius Kintel 30d2440598 More camera fixes: Better viewall calculation, better switching between perspective and ortho 2015-03-07 19:02:51 -05:00
Marius Kintel 788293f68f Updated test results after camera changes 2015-03-07 19:01:58 -05:00
Marius Kintel f67c116c9d Disable freetype issue on travis 2015-03-07 18:52:34 -05:00
Marius Kintel 2c2b9b15ac Issue 899 is fixed 2015-03-07 18:50:55 -05:00
Marius Kintel 2dd29906ef Merge branch 'master' of github.com:openscad/openscad 2015-03-07 18:33:18 -05:00
Marius Kintel 7cf1f3a7dd #1246 Filter away nan/inf coordinates to avoid crashing libtess2 2015-03-07 18:33:09 -05:00
Marius Kintel 56723afa50 #1246 Added testcase 2015-03-07 18:14:12 -05:00
Marius Kintel e4b55e2eed Slightly modified camera tests, cgalpngtest-text-search-test is no longer heavy 2015-03-07 14:20:09 -05:00
Marius Kintel ade90b2275 Merge pull request #1244 from openscad/translation-updates
Translation updates
2015-03-06 17:47:13 -05:00
Torsten Paul e95f432781 Update German translation. 2015-03-06 23:34:21 +01:00
Torsten Paul f7303223c0 Extract strings for translation from JSON file. 2015-03-06 23:26:06 +01:00
Marius Kintel 7392f7b159 Updated release checklist, related to VERSION 2015-03-06 14:24:51 -05:00
Marius Kintel 51346343d1 Merge branch 'master' of github.com:openscad/openscad 2015-03-06 11:41:13 -05:00
Marius Kintel b9463833ff Enable auto indent as default 2015-03-06 11:41:04 -05:00
Marius Kintel 91c6c3aa58 Changed default tab width to 4 2015-03-06 11:40:49 -05:00
Marius Kintel 5916197860 Merge pull request #1242 from hroncok/czech
Czech translation + .mo ignore
2015-03-06 10:30:34 -05:00
Marius Kintel 759e761b11 Merge pull request #1243 from dkreuter/master
scripts/check-dependencies.sh can't determine version of opencsg
2015-03-06 10:25:36 -05:00
David Kreuter 4ca4677265 Bugfix: scripts/check-dependencies.sh can't determine version of opencsg.
Grep doesn't return matching lines when it believes that the file is a binary.
The header for opencsg seems to trigger this behaviour. Added the -a switch to
the grep invocation to force interpretation as text file.
2015-03-06 12:21:29 +01:00
Miro Hrončok 8ba56e9e8d Ignore .mo files lying next to .po files 2015-03-06 10:30:11 +01:00
Miro Hrončok 6339e7b655 Updated Czech translation 2015-03-06 10:29:16 +01:00
Marius Kintel 3e5846d969 #1239 Updated test results 2015-03-05 18:28:56 -05:00
Marius Kintel d5e50a188a fixed merge error 2015-03-05 17:58:13 -05:00
Marius Kintel 09a10152ad Merge branch 'master' of github.com:openscad/openscad 2015-03-05 17:47:13 -05:00
Marius Kintel f3eaa2a6c0 #1239 Updated test results 2015-03-05 17:45:22 -05:00
Marius Kintel ca0fc467a6 #1239 Use Liberation Sans font 2015-03-05 17:43:50 -05:00
Marius Kintel caf8954b19 Merge pull request #1241 from kevenv/master
Update french translation
2015-03-05 17:33:19 -05:00
Marius Kintel 778752a8dc #1239 Updated test cases 2015-03-05 17:31:15 -05:00
Marius Kintel 6ca6d14b5c Merge branch 'master' of github.com:openscad/openscad 2015-03-05 17:30:32 -05:00
Marius Kintel a48551dffb #1239 Changed font to a more generally available one 2015-03-05 17:30:29 -05:00
Keven Villeneuve 7b1e305be8 Update french translation 2015-03-05 17:30:18 -05:00
Marius Kintel 4e0ee77e24 Merge pull request #1240 from NeoTheFox/patch-3
Updated traslation
2015-03-05 17:24:29 -05:00
NeoTheFox 9bdac9db09 Updated traslation 2015-03-06 01:13:02 +03:00
Marius Kintel 0599ece998 Disable test which triggers floating point rounding issues 2015-03-05 17:02:21 -05:00
Marius Kintel ab428bee47 Added 2015.03 2015-03-05 16:19:05 -05:00
Marius Kintel 671f7dc58b cosmetics 2015-03-05 16:18:53 -05:00
Marius Kintel 4bda97761f Merge remote-tracking branch 'origin/examples-cleanup' 2015-03-05 16:10:44 -05:00
Marius Kintel f8e732e25a Merge remote-tracking branch 'origin/master' into examples-cleanup
Conflicts:
	locale/ru.po
2015-03-05 16:09:54 -05:00
Marius Kintel 928180f313 Minor feature 2015-03-05 16:05:52 -05:00
Marius Kintel a8efc1200b Merge branch 'master' of github.com:openscad/openscad 2015-03-05 15:57:59 -05:00
Marius Kintel a2d0985737 #1158 Don't mix 2D and 3D objects 2015-03-05 15:57:48 -05:00
Marius Kintel 9a223a5df0 Updated version variable info 2015-03-05 15:44:06 -05:00
Marius Kintel 57a3b7c9aa Updated version to 2015.03 2015-03-05 15:43:36 -05:00
Marius Kintel 08e3722bcb Updated version variable info 2015-03-05 15:42:46 -05:00
Marius Kintel 8a735b1452 Merge pull request #1238 from NeoTheFox/patch-2
Updated traslation and fixed some errors
2015-03-05 15:25:43 -05:00
Marius Kintel e7aeb2490c Updated pre-release preparations 2015-03-05 15:23:29 -05:00
Marius Kintel 94798345ff Updated copyright, added translators 2015-03-05 15:23:05 -05:00
Marius Kintel a05c40de9d Updated MCAD 2015-03-05 15:22:42 -05:00
NeoTheFox 010208e22b Updated traslation and fixed some errors 2015-03-05 23:16:18 +03:00
Marius Kintel bf60d0571c Reran script to generate new strings 2015-03-05 14:58:43 -05:00
Marius Kintel a46c43b444 Include all source files 2015-03-05 14:57:53 -05:00
Marius Kintel a4bbf2063b Hardcode example categories to make them easier to translate 2015-03-05 14:49:19 -05:00
Marius Kintel 66230e2680 Merge remote-tracking branch 'origin/master' into examples-cleanup 2015-03-05 14:35:04 -05:00
Marius Kintel 82e560aed4 Put appcast on files.openscad.org to be able to log activity 2015-03-05 14:34:23 -05:00
Marius Kintel 12abe07da4 Include basic sysinfo to app updater 2015-03-05 14:20:46 -05:00
Marius Kintel 1152e9a167 #1158 coding style 2015-03-05 10:38:35 -05:00
Marius Kintel 981aad9966 #1158 tabs to space 2015-03-05 10:30:13 -05:00
Marius Kintel 8761d340be #1236 Updated test results after camera FOV change 2015-03-05 10:26:32 -05:00
Marius Kintel 66134448ac #1236 slighty update camera parameters 2015-03-05 10:26:09 -05:00
Marius Kintel 4b9c56bcc5 #1158 Make text 3D 2015-03-05 10:25:22 -05:00
Marius Kintel 8a8926db3d Merge remote-tracking branch 'origin/master' into examples-cleanup 2015-03-05 10:24:20 -05:00
Marius Kintel 039d0806e6 #1236 Revert camera FOV 2015-03-05 10:24:13 -05:00
Don Bright 252a870059 add some debugging for qsci 2015-03-05 02:36:46 -06:00
Don Bright c7fb84685a don't check gcc version, it has been removed from README 2015-03-05 02:28:50 -06:00
Don Bright a40d9c9150 speed up gmp search 2015-03-05 02:21:51 -06:00
Marius Kintel 4b45893575 indentation 2015-03-03 23:49:34 -05:00
Marius Kintel e24fb72092 doc 2015-03-03 23:49:07 -05:00
Marius Kintel 0d2c1f5466 Don't manually process events during MainWindows construction as it causes out-of-order execution of certain methods. Fixes #1235 2015-03-03 23:48:58 -05:00
Marius Kintel 1cb880401d Updated release notes 2015-03-03 16:53:15 -05:00
Marius Kintel e8ad157619 #1158 Added old examples back, updated expected results, general workover 2015-03-03 16:31:48 -05:00
Marius Kintel 83228e3ef2 Merge branch 'examples-cleanup' of github.com:openscad/openscad into examples-cleanup 2015-03-03 15:34:15 -05:00
Torsten Paul ffb0129d03 Generate seeded random values to produce stable output for test cases. 2015-03-03 21:29:43 +01:00
Marius Kintel c830906a3f Merge remote-tracking branch 'origin/master' into examples-cleanup 2015-03-03 14:12:23 -05:00
Marius Kintel 78f83e17d2 Keep 05-osx-fonts.conf in fonts dir to make the fonts work in development mode 2015-03-03 13:25:53 -05:00
Marius Kintel dc160d410d #1158 Updated examples 2015-03-03 02:49:19 -05:00
Marius Kintel 5c7ebc0fda Updated examples 2015-03-03 02:47:53 -05:00
Marius Kintel 928a3f5da7 updated example 2015-03-03 02:46:04 -05:00
Marius Kintel 4d0b59abfa changed convexity 2015-03-03 02:45:41 -05:00
Marius Kintel 8fed5b2aa3 Removed star as it has been covered in other examples 2015-03-03 02:28:50 -05:00
Marius Kintel c255dba121 Added polygon_areas example 2015-03-03 02:28:26 -05:00
Marius Kintel 6eaf6e9500 Allow 2D cross product 2015-03-03 02:28:01 -05:00
Marius Kintel ce1e0d9b80 #1158 Minor cleanup 2015-03-03 01:26:25 -05:00
Marius Kintel 333d402f77 #814 Added list comprehension example 2015-03-03 01:25:54 -05:00
Marius Kintel 4a0071c1ba #1158 Read example filenames from examples.json, allowing us to determine sorting order of examples, as well as ignore spurious files 2015-03-03 00:42:54 -05:00
Marius Kintel 6e44f62472 indentation 2015-03-03 00:41:34 -05:00
Marius Kintel 9fd3aa5f17 Merge remote-tracking branch 'origin/master' into examples-cleanup 2015-03-02 23:12:54 -05:00
Marius Kintel fc436f6f9f #1233 Correctly handle homogeneous components in transformation matrices 2015-03-02 17:16:56 -05:00
Marius Kintel dfc516c5e1 #1233 Added testcase 2015-03-02 17:06:27 -05:00
Marius Kintel 43c500f0b8 Refactor: Moved _DxfData contents to main cc file as it's no longer related to dxfdata 2015-03-02 14:47:28 -05:00
Marius Kintel 4c6cc6aa78 Move private clase ZRemover to cc file 2015-03-02 14:46:45 -05:00
Marius Kintel 70ae4acdd0 Improve line number coloring 2015-03-02 13:11:53 -05:00
Marius Kintel 697399d4a2 bugfix: Sometimes, the margin wasn't wide enought to fit the line numbers, improved colors for no syntax highlighting 2015-03-02 13:11:34 -05:00
Marius Kintel f54a968391 Merge remote-tracking branch 'origin/master' into examples-cleanup 2015-03-01 22:04:57 -05:00
Marius Kintel 70b1fc5c09 cosmetics 2015-03-01 20:45:11 -05:00
Marius Kintel 2b87482a70 Merge pull request #1231 from openscad/fix-new-button
Fix "New" button in launching screen.
2015-02-28 19:05:51 -05:00
Torsten Paul 0bbe4ea43e Fix "New" button in launching screen.
The "New" button will cause the launching screen to return with an empty
selection of files. In this case, the dummy file name "" needs to remain
in the file list to allow the main window to open.
2015-03-01 00:55:59 +01:00
Marius Kintel 94d609addb Merge branch 'master' of github.com:openscad/openscad 2015-02-27 10:19:23 -05:00
Marius Kintel b4d00a3da2 Allow opening of multiple files on application launch on OS X. Fixes #1229 2015-02-27 10:19:21 -05:00
Marius Kintel 3c3ac52576 Merge pull request #1227 from openscad/alpha-marker-fix
Workaround for colors with alpha part in Qt4
2015-02-26 23:43:06 -05:00
Marius Kintel b9e1b6603e Bumped to Qt-5.4.1 2015-02-25 18:58:20 -05:00
Marius Kintel 7b8c98cfbd Make 'show scale values' a slave of 'show axes' 2015-02-25 15:03:52 -05:00
Marius Kintel 994872359e Indentation 2015-02-25 14:50:47 -05:00
Torsten Paul c6bac0be69 Fix handling of colors with alpha value, Qt4 does not support that in QColor. 2015-02-25 20:15:11 +01:00
Torsten Paul 01df14d388 Use indicator 8 as documentation says the first 8 are reserved by lexers. 2015-02-25 20:14:29 +01:00
Marius Kintel 1dbeff48bd Bugfix: Margin font didn't get set correctly, causing font spacing to be larger than necessary for small fonts 2015-02-25 11:32:09 -05:00
Marius Kintel fb2e2fa08d Removed duplicate fire of QComboBox signals 2015-02-25 11:31:30 -05:00
Marius Kintel dd69750d48 Use same fontsize for margin and text 2015-02-24 15:53:48 -05:00
Marius Kintel de595c0f9e Bugfix: Correctly set font 2015-02-24 15:53:24 -05:00
Marius Kintel 656735f694 #1225 moved fixed test to issues 2015-02-23 21:28:41 -05:00
Marius Kintel b13075d2a5 #1225 Fix nan or inf normal vector output 2015-02-23 21:21:31 -05:00
Marius Kintel 56f3552404 #1225 Added testcase 2015-02-23 19:12:44 -05:00
Marius Kintel 0dd3f004dd #1223 Put back check for min value, to catch negative values 2015-02-23 02:17:02 -05:00
Marius Kintel 878cd0a8d8 Updated offset() to correct API 2015-02-23 01:59:34 -05:00
Marius Kintel aaed62060c #1223 Updated tests 2015-02-22 19:02:10 -05:00
Marius Kintel 40ecf515af #1223 Made PNG surfaces behave similar to .dat files; scale max possible intensity to height=100 2015-02-22 19:00:59 -05:00
Marius Kintel 29e52ef4e0 #1223 PNG surfaces were 1 unit too large in the Y direction 2015-02-22 18:37:31 -05:00
Marius Kintel 8302aa830f #865 remove debug info 2015-02-22 13:18:34 -05:00
Marius Kintel c5b0a61911 #865 bugfix: Account for retina displays, fixed bug in relative vs. absolute positioning 2015-02-22 13:17:41 -05:00
Marius Kintel d84d1e0250 Updated contributors 2015-02-22 13:02:03 -05:00
Marius Kintel 54ffa54fa3 Support both Qt4 and Qt5 2015-02-22 11:35:37 -05:00
Marius Kintel bdc52fa6e6 Fixed erratic zooming on trackpads 2015-02-22 03:55:42 -05:00
Marius Kintel 54ad8c2039 #1206 Fix rounding of scale markers, Added 'e' character for large axis values 2015-02-22 03:15:45 -05:00
Marius Kintel e7e8b30379 #1223 Improved testcases 2015-02-22 02:47:57 -05:00
Marius Kintel 5878da1c7d #1223 Added testcase 2015-02-21 19:12:37 -05:00
Marius Kintel 2cf9de36e2 Disable opencsgtest_issue11105b for travis; Gallium issue 2015-02-20 00:38:55 -05:00
Marius Kintel 577f8129ae Deal with known non-manifoldness 2015-02-20 00:28:13 -05:00
Marius Kintel ef9b06040f Disable opencsgtest_issue1215 for travis as it causes an OpenCSG rendering difference 2015-02-20 00:22:09 -05:00
Marius Kintel 979cb37381 #904 Moved fixed tests to issues 2015-02-20 00:16:41 -05:00
Marius Kintel 38280a10ae #1105 moved fixed tests to issues 2015-02-19 23:59:11 -05:00
Marius Kintel 944ad096fc #1221 Moved fixed tests to issues 2015-02-19 23:46:36 -05:00
Marius Kintel 0c74474c49 #1215 Moved fixed tests to issues 2015-02-19 23:44:57 -05:00
Marius Kintel 5c2c96a4f2 #13 Added another testcase 2015-02-19 23:39:09 -05:00
Marius Kintel e23c79fd25 #945 Added another testcase 2015-02-19 23:27:46 -05:00
Marius Kintel 2b01887b7f #1221 Adjusted related tests 2015-02-19 21:01:05 -05:00
Marius Kintel bf3df9a81a #1221 Always quantize vertices when converting from PolySet to Nef polyhedron 2015-02-19 20:59:39 -05:00
Marius Kintel b7617fd82f #1221 Added testcase 2015-02-19 20:21:02 -05:00
Marius Kintel e4aae1cc62 #1215 Fixed corner case 2015-02-19 16:40:49 -05:00
Marius Kintel 7073e3a2f5 #1215 test case is known to be weakly manifold 2015-02-19 16:40:25 -05:00
Marius Kintel da6fb17207 #1215 Enable exceptions in test suite 2015-02-17 17:18:48 -05:00
Marius Kintel 47d4954f8b Updated expected test result 2015-02-17 17:18:26 -05:00
Marius Kintel c9694935e1 Fixed crash in OFF and AMF export by applying workaround for #410 2015-02-17 17:18:05 -05:00
Marius Kintel 98fcfa43be #1215 Added expected test results 2015-02-17 17:17:27 -05:00
Marius Kintel 54239a2534 Merge remote-tracking branch 'origin/master' into c++11 2015-02-17 15:28:58 -05:00
Marius Kintel 9dc76d2012 Bump CGAL to 4.5.2, don't automatically build 32-bit binaries in deployment mode 2015-02-16 23:52:55 -05:00
Marius Kintel 307afc53e0 #1215 Added new testcase 2015-02-16 14:41:14 -05:00
Marius Kintel 33d7023752 #1215 Repair non-manifold tessellation results, detect and report non-manifold results 2015-02-14 12:28:26 -05:00
Marius Kintel d5d22158dd #1215 Added support for optional --render parameter as well as optional manifoldness requirement to export_import_pngtest, slightly reorganized tests to use the new parameters 2015-02-14 12:26:54 -05:00
Marius Kintel a3337c7af8 No need to link with Qt 2015-02-13 16:18:34 -05:00
Marius Kintel 946eb0efdf Adjusted some non-manifold tests 2015-02-13 16:17:59 -05:00
Marius Kintel e067bead92 Merge branch 'master' of github.com:openscad/openscad 2015-02-12 14:47:04 -05:00
Marius Kintel c023b1eb30 ignore *.pyc 2015-02-12 14:46:30 -05:00
Marius Kintel c8e12ad949 Minor reorg of expor-import tests to better handle manifoldness issues 2015-02-12 14:45:48 -05:00
Marius Kintel 6893d3efe2 Always run with --render=cgal for the first export 2015-02-12 14:45:25 -05:00
Marius Kintel abd79418f1 Merge branch 'master' of github.com:openscad/openscad 2015-02-12 12:31:09 -05:00
Marius Kintel 09b3ab45d4 #1215 Added tests, check for weak manifoldness when running tests 2015-02-12 12:29:15 -05:00
Marius Kintel faabc49266 Merge branch 'master' of github.com:openscad/openscad 2015-02-11 14:01:56 -05:00
Marius Kintel 8dd0102d4e Bugfix: We sometimes did output extra null-triangles if the tessellator left consecutive unused vertices 2015-02-11 13:58:45 -05:00
Marius Kintel 7e64335450 Simplified debug checking and made debug output work for cgal test programs 2015-02-11 12:55:10 -05:00
Marius Kintel 6ac8d017b7 #669 Added DXX11 and LIBCXX11 options 2015-02-10 19:10:08 -05:00
Marius Kintel 8216e98afd Merge remote-tracking branch 'origin/master' into c++11 2015-02-10 19:09:12 -05:00
Marius Kintel b6558889b4 bugfix: Don't return a temporary string from exception::what 2015-02-10 18:59:11 -05:00
Marius Kintel b567f844ad #669 Support libc++ in macosx-sanity-check 2015-02-10 17:50:42 -05:00
Marius Kintel 137928fced #669 C++11 build fix 2015-02-10 17:46:55 -05:00
Marius Kintel 7c2db84fe6 #669 Added C++11 support 2015-02-10 17:32:24 -05:00
Marius Kintel 65935b4466 Merge remote-tracking branch 'origin/master' into c++11 2015-02-10 17:31:12 -05:00
Marius Kintel 4b4f4386bb Be nice (and C++11 compatible) 2015-02-10 17:31:00 -05:00
Marius Kintel 6576ee7d05 Merge remote-tracking branch 'origin/master' into c++11 2015-02-10 16:42:48 -05:00
Marius Kintel 2cbbf66586 Support high-resolution icons if present 2015-02-10 14:10:25 -05:00
Marius Kintel 0fefd42250 The margin checkerboard was a bit visually disturbing 2015-02-10 12:21:53 -05:00
Marius Kintel 571d2140c1 Updated Mac dependency build: Allow package selection on the cmd-line, allow forcing reinstall of already installed package 2015-02-09 19:19:00 -05:00
Marius Kintel c2bd5c3537 Set the following enabled as default: show axes, show scalemarkers, automatic reload. Fixes #1205 2015-02-09 18:46:12 -05:00
Marius Kintel c50d927216 Fixed bug in libtess. Fixes #1210 2015-02-09 18:42:17 -05:00
Marius Kintel b2f2323f6b #1210 Added test 2015-02-09 01:29:32 -05:00
Marius Kintel fe4997b38c Merge pull request #1207 from Lenbok/fix-qt-detection-hang
Fix problem with check-dependencies.sh during detection of qt
2015-02-06 00:42:38 +01:00
Lenbok 47f5815b49 Fix problem with check-dependencies.sh during detection of qt under
some circumstances.

- If qtchooser is installed but qmake could not be found (either qt4
  or qt5), the check would hang due to grep expecting input from
  stdin.

- If qtchooser is installed but qmake for qt5 is not installed, the
  code would not actually check for the existence of qt4 qmake, since
  the test for ! -e $qtpath doesn't do what you want when $qtpath is
  empty.
2015-02-06 12:03:07 +13:00
Marius Kintel e6557822f6 Removed obsolete file 2015-02-05 17:08:24 -05:00
Marius Kintel 6cecbc2a52 Removed unused images 2015-02-05 17:07:46 -05:00
Marius Kintel a4508e3fb5 Removed obsolete files 2015-02-05 17:03:19 -05:00
Marius Kintel 37421bbbfa #1186 bugfix: Use QString in slots 2015-02-05 12:08:38 -05:00
Marius Kintel a203b55205 Reduce excessive degenerate polygon warnings 2015-02-05 12:08:08 -05:00
Marius Kintel 2631b40915 ignore out.* 2015-02-04 15:14:10 -05:00
Marius Kintel 448b38fe9e Added Makefile for generating examples html pages. From @t-paul 2015-02-04 15:13:37 -05:00
Marius Kintel d7d980675d Improved curve rendering 2015-02-04 14:15:37 -05:00
Marius Kintel 4f49b35ba4 Made logo.scad use a module, and let logo_and_text.scad use<> that module 2015-02-04 13:48:11 -05:00
Marius Kintel b578ff5c75 minor cleanup 2015-02-04 13:47:47 -05:00
Marius Kintel ec0f42d648 minor cleanup 2015-02-04 13:47:34 -05:00
Marius Kintel 4deb7b2d64 Merge branch 'examples-cleanup' of github.com:openscad/openscad into examples-cleanup 2015-02-04 13:31:14 -05:00
Marius Kintel d244807be8 minor cleanup 2015-02-04 13:31:12 -05:00
Marius Kintel fd9553b510 minor cleanup 2015-02-04 13:31:00 -05:00
Torsten Paul df51c85717 Add example for recursive module calls. 2015-02-04 19:27:31 +01:00
Torsten Paul 707afb2f4c Add example for using the animation feature. 2015-02-04 19:27:31 +01:00
Marius Kintel d3e9d2659e Added CSG and CSG-modules examples 2015-02-04 13:21:20 -05:00
Marius Kintel e7c684d5c7 Merge remote-tracking branch 'origin/master' into examples-cleanup 2015-02-04 12:36:30 -05:00
Marius Kintel 18d7237293 Renamed to logo.scad 2015-02-04 12:36:16 -05:00
Marius Kintel 4ce1a8d92f Move cursor to end of console to avoid inheriting selected paragraph style. Fixes #1186 2015-02-04 01:20:53 -05:00
Marius Kintel 0fcc1fbf83 Force execution of the progress dialog to the GUI thread. Fixes #1194 2015-02-03 14:35:54 -05:00
Marius Kintel 8cb5adf0ca Make sure GUI event processing happens in the GUI thread. Fixes #1194 2015-02-03 00:48:26 -05:00
Marius Kintel 00a3a1777e #793 Don't try to tessellate empty geometry 2015-02-02 19:21:49 -05:00
Marius Kintel 707103b606 #793 Tessellate PolySets before rendering to properly support concave polygons 2015-02-02 18:57:21 -05:00
Marius Kintel 384c6af273 Output timing for convex decomposition when doing minkowski 2015-02-02 16:31:17 -05:00
Marius Kintel 32024588b5 bugfix: Specifying multiple --debug args didn't work 2015-02-02 15:56:35 -05:00
Marius Kintel c0bcb36843 #842 bugfix: handle multiple consecutive NBSP characters 2015-02-02 14:08:53 -05:00
Marius Kintel 9cade2487e Added NBSP tests 2015-02-02 14:05:49 -05:00
Marius Kintel f669f4d84a Merge branch 'master' of github.com:openscad/openscad 2015-02-01 18:43:21 -05:00
Marius Kintel 111197f694 #793 Added testcase 2015-02-01 18:43:18 -05:00
Marius Kintel 3aa0b63a05 Merge pull request #1201 from hroncok/czech
Updated the Czech translation after #1200 changes
2015-02-01 20:57:36 +01:00
Miro Hrončok c5f7f66809 Updated the Czech translation after #1200 changes 2015-02-01 20:55:47 +01:00
Marius Kintel bd53d58061 Merge pull request #1200 from openscad/translations-update
Translations update
2015-02-01 20:22:27 +01:00
Torsten Paul c5ec54362e Run translation-make.sh from test suite to validate *.po file syntax (fixes #1180). 2015-02-01 20:11:29 +01:00
Torsten Paul af8c938c8c Update German translation. 2015-02-01 19:44:30 +01:00
Torsten Paul fa233049c7 Fix translation of combobox values in preferences. 2015-02-01 19:44:11 +01:00
Torsten Paul ef8cdc42d3 Update translations. 2015-02-01 19:41:21 +01:00
Marius Kintel ea165eeb58 Wops, accidentally committed a change made for testing 2015-01-29 20:43:13 -05:00
Marius Kintel 5b216a5bd4 Changed behavior of something minkowski'ed with nothing: It should return the actual object without changes 2015-01-29 18:50:57 -05:00
Marius Kintel f01826b28b #1196 moved test to fixed issues 2015-01-29 18:36:33 -05:00
Marius Kintel 1d66d2154b Filter empty children before performing minkowski sum. Fixes #1196 2015-01-29 18:35:12 -05:00
Marius Kintel e4d7de133b #1198 moved test to fixed issues 2015-01-29 17:54:58 -05:00
Marius Kintel 0ca04759bb Bugfix: We forgot to align the first passed vertex. Fixes #1198 2015-01-29 17:45:09 -05:00
Marius Kintel 2b727e8ea2 #1198 Added testcase 2015-01-29 17:06:30 -05:00
Marius Kintel 07e1894f6e Fixes crash when using rands() with min == max 2015-01-29 12:59:56 -05:00
Marius Kintel b5c60a22e5 #1196 Added testcase 2015-01-29 12:24:12 -05:00
Marius Kintel 81ef1b896b Merge pull request #1189 from hroncok/czech
Updated the Czech translation
2015-01-29 17:27:16 +01:00
Marius Kintel c68533d3c6 #1189 Removed unused titles for progressbar and preferences toolbar 2015-01-29 11:26:38 -05:00
Marius Kintel 3fa3317233 minor fix: Call this->quit to correctly end application 2015-01-29 11:18:53 -05:00
Marius Kintel 41642f2cb5 Updated menu mnemonics to cover most of the entries 2015-01-29 11:16:31 -05:00
Marius Kintel 79b45e62b6 Fix test results after modifying default convexity for rotate_extrude 2015-01-29 00:52:53 -05:00
Marius Kintel 5f496b2554 Be helpful and set default convexity of rotate_extrude to 2 2015-01-29 00:11:52 -05:00
Marius Kintel 597d07f357 Catch infinite recursion in top-level assignments. Fixes #1192 2015-01-28 20:07:15 -05:00
Marius Kintel 2d721de753 Merge branch 'master' of github.com:openscad/openscad 2015-01-28 14:49:09 -05:00
Marius Kintel ab2fa92eb5 Added test triggering #1192 2015-01-28 14:49:06 -05:00
Miro Hrončok f2c263a1f4 Updated the Czech translation 2015-01-28 10:50:55 +01:00
Marius Kintel c110962405 Merge pull request #1185 from kevenv/master
Update french translation
2015-01-28 01:18:58 +01:00
Keven Villeneuve d347b72e49 Update french translation 2015-01-27 18:53:02 -05:00
Marius Kintel 99f69e92cd Merge pull request #1182 from b4zz4/patch-1
update es.po
2015-01-27 22:58:38 +01:00
Bazza 44d846f16e update es.po
add my name in code
2015-01-27 21:38:20 +00:00
Torsten Paul 0e90e3b5f7 Merge pull request #1179 from clothbot/patch-1
Mac build failing on line 908-909
2015-01-25 15:56:11 +01:00
Andrew Plumb b5ee931d13 Mac build failing on line 908-909
Looks like lines 908-909 need to be reversed for my Mac OS X build to work on my latest git pull.

Error message is:

--snip--

msgfmt -c -v -o ./locale/ru/LC_MESSAGES/openscad.mo ./locale/ru.po
./locale/ru.po:908: missing 'msgstr' section
./locale/ru.po:910:7: syntax error
msgfmt: found 2 fatal errors
error running msgfmt
make: *** [OpenSCAD.app/Contents/MacOS/OpenSCAD] Error 1

--end-snip--

Andrew.
2015-01-25 09:51:11 -05:00
Marius Kintel a87401031b Merge pull request #1178 from NeoTheFox/patch-1
Update ru.po
2015-01-25 07:58:55 +01:00
Marius Kintel c755854251 Don't translate messages going to the Library Info dialog 2015-01-25 01:55:46 -05:00
Marius Kintel d6f0b7dc50 Flip faces when transforming using a mirroring transform. Fixes #1174 2015-01-25 01:53:04 -05:00
Marius Kintel 3722ce5d81 Merge branch 'master' of github.com:openscad/openscad 2015-01-25 01:50:39 -05:00
Marius Kintel 4c26959cf2 #1174 Added testcase 2015-01-25 01:49:36 -05:00
Marius Kintel 13a4e43de9 Merge branch 'master' of github.com:openscad/openscad 2015-01-25 01:37:37 -05:00
Marius Kintel 4a3245056b Cosmetics 2015-01-24 23:51:07 -05:00
NeoTheFox 4ba92ece61 Update ru.po
Translated most of recent changes
2015-01-24 23:32:06 +03:00
Torsten Paul 181ee4823a Update translations. 2015-01-24 20:51:40 +01:00
Marius Kintel 5a0c4b0ba8 Updated copyright year 2015-01-23 01:31:41 -05:00
Marius Kintel 25da58afb3 Updated with new cmd-line switches 2015-01-23 01:31:17 -05:00
Marius Kintel 60ae33f796 ignores.. 2015-01-22 19:12:32 -05:00
Marius Kintel 0a1c74c2ef Merge branch 'master' of github.com:openscad/openscad 2015-01-22 16:18:10 -05:00
Marius Kintel c80bb8a624 Bumped freetype to 2.5.5 2015-01-22 16:18:07 -05:00
Marius Kintel f5c667333e Merge pull request #1171 from openscad/preview-render-icons
Added new Preview and Render icons from @atartanian
2015-01-22 20:21:38 +01:00
Marius Kintel 6167269377 Merge pull request #1173 from Qubotica/master
español
2015-01-22 07:11:27 +01:00
Marius Kintel 0a0275b502 Added new GEB example suggestion 2015-01-21 23:13:35 -05:00
b4zz4 ce2e3ec965 detalles faltantes 2015-01-21 22:36:55 -03:00
b4zz4 7f7369e064 add spanish 2015-01-21 22:33:07 -03:00
b4zz4 b14e698697 español 2015-01-21 22:23:43 -03:00
Marius Kintel 577e23c15a Renamed and simplified the logo model 2015-01-21 19:19:59 -05:00
Marius Kintel 6fc671c961 Merge branch 'master' into examples-cleanup 2015-01-21 18:09:27 -05:00
Marius Kintel 630cb483d7 Added new Preview and Render icons from @atartanian 2015-01-21 17:43:04 -05:00
Marius Kintel 0ce207b950 Updated URL and release notes for snapshots 2015-01-21 12:52:53 -05:00
Marius Kintel a70c49d20a Merge branch 'master' of github.com:openscad/openscad 2015-01-21 11:18:25 -05:00
Marius Kintel 8e75fecacc Display non-manifold warning after F6. Fixes #1162 2015-01-21 11:18:22 -05:00
Marius Kintel 9808b2c14f Remember to update wikibooks on release 2015-01-21 10:01:18 -05:00
Marius Kintel ff02f14308 Merge branch 'master' of github.com:openscad/openscad 2015-01-21 09:51:07 -05:00
Marius Kintel eef129324f Added test result 2015-01-21 09:39:37 -05:00
Marius Kintel 125fb788e1 Moved fixed bug to issues 2015-01-21 02:15:01 -05:00
Marius Kintel dc9769e6ad Moved fixed bug to issues 2015-01-21 02:14:43 -05:00
Marius Kintel ce5a367b8f Clean up incoming polygon. Fixes #1165 2015-01-21 02:13:13 -05:00
Marius Kintel 1a4599f213 #1165 updated expected image 2015-01-21 02:06:35 -05:00
Marius Kintel 83e3c5a7e1 Updated prerequisites 2015-01-21 01:09:09 -05:00
Marius Kintel b64ef905a0 Clarified OS X build 2015-01-21 01:04:51 -05:00
Marius Kintel c7a3e206d8 minor build fix; avoid generating empty -I or -L arguments. Needed for MacPorts build 2015-01-21 01:04:31 -05:00
Marius Kintel 083bf4313f Allow the state to track cache lookup preference. This is important to allow lookups to prefer Nef polyhedrons in cases where PolySet->Nef fails due to zero triangles. Fixes #1027 2015-01-20 16:03:31 -05:00
Marius Kintel 3cb7731192 Merge branch 'master' of github.com:openscad/openscad 2015-01-20 15:01:23 -05:00
Marius Kintel ceb01a3ef2 Merge pull request #1167 from TDeagan/export_icons_retry
Cleanup of files to add export icons to all export types.
2015-01-18 05:00:02 +01:00
Tim Deagan b217b08394 Cleanup of files to add export icons to all export types. 2015-01-17 20:49:18 -06:00
Torsten Paul a26870754e Add example for recursive functions. 2015-01-17 19:39:27 +01:00
Torsten Paul 26156ea755 Add example for simple functions. 2015-01-17 19:39:17 +01:00
Torsten Paul a3c32e5f87 Add Functions example category. 2015-01-17 19:39:05 +01:00
Marius Kintel 7a8574aee2 #1165 Added testcase 2015-01-16 14:37:47 -05:00
Marius Kintel 65e50b2be6 #13 Added testcases 2015-01-16 13:35:01 -05:00
Marius Kintel e479ffba90 Use new tessellator for PolySet tessellation 2015-01-16 12:45:35 -05:00
Marius Kintel f8a9af0e54 Removed unnecessary console output 2015-01-16 12:03:30 -05:00
Marius Kintel 11dec75290 Merge pull request #1160 from TDeagan/defaulticon
Set Windows Registry Defaulticon For Document Icon
2015-01-16 06:29:38 +01:00
Marius Kintel 0860021a52 Merge branch 'gui-updates' 2015-01-15 23:47:48 -05:00
Marius Kintel d246814a2c Merge branch 'master' into gui-updates
Conflicts:
	src/MainWindow.ui
2015-01-15 23:47:36 -05:00
Marius Kintel 29d9d4e614 Revert "cosmetics" - this is apparently needed when using boost-1.46
This reverts commit 7283d06294.
2015-01-15 23:16:11 -05:00
Marius Kintel 4fa3b71422 Merge pull request #1159 from openscad/extend-help-menu
Add cheat-sheet link to help menu
2015-01-15 22:53:36 -05:00
Marius Kintel 7283d06294 cosmetics 2015-01-15 22:51:50 -05:00
Marius Kintel a038d693c7 debug output tweak 2015-01-15 22:51:38 -05:00
Marius Kintel 24f15e5738 Updated expected results after modifying examples to CC0 2015-01-15 22:48:40 -05:00
Marius Kintel b23ca0407f #1156 bugfix: Fix for polygons using the same vertex multiple times, but not consecutively 2015-01-15 22:01:30 -05:00
Marius Kintel 3f4e6705e8 #1156 bugfix: We were assuming monotone polygon indices with no duplicates. Caused a out of bounds write 2015-01-15 17:55:58 -05:00
Marius Kintel 1822865b58 Assert on invalid result 2015-01-15 17:54:29 -05:00
Marius Kintel ebc1404e05 #1156 Added failing polygon test 2015-01-15 17:54:13 -05:00
Marius Kintel fb55e1485b #1156 PRINTDB bugfix 2015-01-15 17:25:57 -05:00
Tim Deagan c54a2e8f0c Removed redundant #include <QDir> statement
QDir was already being conditionally included prior to the gui function, including it at the top of the file was redundant.

	modified:   src/openscad.cc
2015-01-15 15:48:23 -06:00
Marius Kintel d8d8ee3ab5 debug output 2015-01-15 16:17:31 -05:00
Marius Kintel 39e7442b92 #1156 Bugfix: We don't have userdata any longer 2015-01-15 16:07:06 -05:00
Marius Kintel f7a5c1c78e Updated expected results 2015-01-15 15:11:47 -05:00
Marius Kintel 0e23303cbc doc 2015-01-15 15:05:04 -05:00
Marius Kintel 9087369863 Merge remote-tracking branch 'origin/master' into libtess2 2015-01-15 14:47:13 -05:00
Marius Kintel 1c52fad1d3 Moved libtess2-based tessellation to GeometryUtils, related refactoring 2015-01-15 14:47:05 -05:00
Marius Kintel 90b647ec48 Use iterator as dest instead of a vector, for flexibility 2015-01-15 14:38:34 -05:00
Marius Kintel d7175c7d01 Added hash_value() for Vector3f 2015-01-15 14:38:04 -05:00
Tim Deagan c0760e9904 Removal of openscad.cc cmdline section for registry change
Removal of the code block in the cmdline() section of openscad.cc that sets the Document Icon.  This was necessary due to the follow:

"This is also used from the test framework which does not link with Qt. See Travis log:
/home/travis/build/openscad/openscad/src/openscad.cc:46:16: fatal error: QDir: No such file or directory"

modified:   src/openscad.cc
2015-01-15 11:14:01 -06:00
Torsten Paul 33425115c5 Update dumptest reference files. 2015-01-15 17:29:11 +01:00
Torsten Paul dcda8faa3d Remove setting WhitespaceBackgroundColor from noColor() too. 2015-01-15 16:59:46 +01:00
Marius Kintel b6d76e370c update: no SVG/AMF import in this release 2015-01-15 10:04:18 -05:00
Torsten Paul 903ecfcfe7 Add example for image import with surface(). 2015-01-15 02:04:56 +01:00
Torsten Paul 80da2525b4 Add example for indexed access using children(). 2015-01-14 23:59:20 +01:00
Torsten Paul d8b67df3a2 Add example for children(). 2015-01-14 22:58:52 +01:00
Torsten Paul 9a8ba2c5d0 Add example for projection(). 2015-01-14 21:48:03 +01:00
Torsten Paul 9fb0f14f67 Add example for rotate_extrude(). 2015-01-14 20:33:02 +01:00
Torsten Paul 1e14e63947 Add cheat-sheet link to help menu 2015-01-14 20:01:53 +01:00
Torsten Paul 6260bbea62 Add basic linear_extrude() examples. 2015-01-14 19:30:24 +01:00
Marius Kintel 4af38828d2 Remaining example -> CC0 2015-01-14 11:47:56 -05:00
Marius Kintel b2692d9a98 Changed license of most remaining examples to CC0 2015-01-13 23:51:56 -05:00
Marius Kintel cce80c5a96 Merge pull request #1144 from openscad/examples-license-change
Change license for example files.
2015-01-13 22:56:15 -05:00
Marius Kintel c30eeecfa2 Make sure we export the on-screen image. Fixes #1154 2015-01-13 22:29:33 -05:00
Marius Kintel 2e79055edc sync with upstream 2015-01-13 21:39:00 -05:00
Marius Kintel fc68e3571e Convert all coordinates to float; the tessellator works in floats 2015-01-13 19:56:18 -05:00
Marius Kintel 39d6823872 Turn off gridding again 2015-01-13 19:21:46 -05:00
Marius Kintel e03c0cebda Polygon tests 2015-01-13 19:17:33 -05:00
Marius Kintel 7b16891cc5 Merge remote-tracking branch 'origin/master' into libtess2 2015-01-13 18:56:41 -05:00
Marius Kintel f32eb7e84d Grid Nef3 vertices when converting to PolySet 2015-01-13 18:54:35 -05:00
Marius Kintel cd8607d87d Always normalize normal vector, for safety 2015-01-13 18:51:00 -05:00
Marius Kintel e3103c69c2 Don't tessellate triangles, ignore self-intersections, convert all coordinates to TESSfloat 2015-01-13 18:46:09 -05:00
Marius Kintel da8f4d9933 Upstream sync 2015-01-13 18:35:20 -05:00
Marius Kintel b0c822988b sync with upstream 2015-01-13 16:52:23 -05:00
Marius Kintel 0b1925a417 Less intense debug output 2015-01-13 16:51:02 -05:00
Marius Kintel e1c62ea152 Added some forgotten libraries 2015-01-13 13:30:50 -05:00
Marius Kintel 0e15b4bf54 Merge branch 'master' of github.com:openscad/openscad 2015-01-13 13:18:14 -05:00
Marius Kintel 4b60231d3b Merge branch 'master' into libtess2 2015-01-13 13:14:51 -05:00
Marius Kintel df2dae4e59 Added new tessellator using libtess2 instead of CGAL 2015-01-13 13:14:09 -05:00
Torsten Paul 366663610f Clarify editor zoom to be font size change and add proper icons. 2015-01-13 02:26:12 +01:00
Torsten Paul 303217d0b9 Always set both height and viewer_distance (fixes #1153).
The only exception is the initialization in the Constructor which seems
to matter for the test suite where the Camera is initialized with type
NONE. This still needs some investigation as unifying both variables into
a single one does break tests on Travis (but not locally).
2015-01-12 17:48:24 +01:00
Tim Deagan 47254dd021 Update STL export icons. 2015-01-12 17:32:36 +01:00
Torsten Paul 7b33e9eb67 Highlight export warnings in console window. 2015-01-12 17:31:14 +01:00
Torsten Paul e84f7976a6 Update translation template file. 2015-01-12 17:13:06 +01:00
Marius Kintel 3bb9cd79c6 Merge pull request #1152 from openscad/win-version-detect
Extend Windows version detection (fixes #1076).
2015-01-11 21:30:45 -05:00
Tim Deagan 01a0299890 New multi-image icon file for Document Icon
Different images for different size icons are in the same .ico file.  Windows will pick the correct size one as needed.  This is built into openscad.exe via the openscad_win32.rc file.

	new file:   icons/openscad_doc.ico
2015-01-11 18:25:02 -06:00
Tim Deagan ce5b38d96e Add on-launch code to set Document Icon in windows registry
Since OpenSCAD doesn't distribute with additional image files, this means a new icon needs to be built into the .exe. This is accomplished by adding a line to the end of openscad_win32.rc file consisting of something like the following:
IDI_ICON2 ICON DISCARDABLE "icons/openscad_doc.ico"
which will get built into the exe as icon index 1 (icon index 0 is the current app icon.)

In the cmdline and gui functions in openscad.cc I added code to set the HKEY_CURRENT_USER/Software/Classes/OpenSCAD_File/DefaultIcon/Default value to the icon index 1 of openscad.exe

	modified:   openscad_win32.rc
	modified:   src/openscad.cc
2015-01-11 18:21:08 -06:00
Torsten Paul 668a5211ff Fix ragel URL and bump to version 6.9. 2015-01-11 19:31:42 +01:00
Torsten Paul 094bc92090 Scale icons depending on font size. 2015-01-10 17:21:56 +01:00
Torsten Paul 197dd5ef3b Add scale marker icon for dark theme. 2015-01-10 02:06:19 +01:00
Torsten Paul ddd1228a51 Add settings entry to enable/disable warning display in the 3D view. 2015-01-10 00:54:52 +01:00
Torsten Paul 1ae9ed5ada Allow true/false for boolean settings. 2015-01-10 00:54:13 +01:00
Torsten Paul 670d9a0833 Enable word wrap to prevent the message forcing a bigger viewport size. 2015-01-10 00:35:45 +01:00
Marius Kintel 4fc31db780 Merge branch 'master' of github.com:openscad/openscad 2015-01-09 18:14:27 -05:00
Marius Kintel 9f6b7b170d #1105 Yet another testcase 2015-01-09 18:13:43 -05:00
Torsten Paul cd5ecb5eeb Make welcome screen work for dark themes. 2015-01-09 20:20:29 +01:00
Torsten Paul bb7adc83cb Add white icons. 2015-01-09 19:24:04 +01:00
Torsten Paul ceae9d57d0 Merge branch 'toolbar' of https://github.com/openscad/openscad into gui-updates
Conflicts:
	openscad.qrc
	src/MainWindow.ui
2015-01-09 19:09:22 +01:00
Torsten Paul 5943704194 Fix icon selection for dark theme. 2015-01-09 19:04:43 +01:00
Torsten Paul 166e3df850 Remove setting the font size for the warning/error bar. 2015-01-09 18:20:07 +01:00
Torsten Paul 13ba427bb4 Extend Windows version detection (fixes #1076).
As GetVersionEx() is deprecated and will not report Windows 8.1 without
additional resource file manipulation this is now using the code from
http://hg.m1xa.com/findversion (by M1xA / MIT license) which is using the
VerifyVersionInfo API.
2015-01-09 02:00:33 +01:00
Marius Kintel 76dc38008c Merge pull request #1148 from openscad/fix-search-crash
Validate size of search vector entries (fixes #1147).
2015-01-08 17:00:26 -05:00
Torsten Paul 6e85c54fc4 Validate size of search vector entries (fixes #1147). 2015-01-08 22:11:45 +01:00
Torsten Paul 10bee498e6 Fix duplicated output of DEPRECATED marker. 2015-01-08 19:34:37 +01:00
Torsten Paul e3441b50a1 Move winconsole to separate folder. 2015-01-08 19:12:13 +01:00
Marius Kintel 35d25f394c Normalize calculated normal vector also for polygons without holes 2015-01-08 00:16:45 -05:00
Marius Kintel aeab04233b Merge branch 'master' into warning-in-viewport 2015-01-08 00:00:03 -05:00
Marius Kintel 6e0d94ec44 Fixed merge error 2015-01-07 23:56:00 -05:00
Marius Kintel e44c103b72 Fixed merge error 2015-01-07 23:55:38 -05:00
Marius Kintel b893834c86 Merge remote-tracking branch 'origin/master' into warning-in-viewport 2015-01-07 23:51:45 -05:00
Marius Kintel 93a9db4917 Merge branch 'master' into warning-in-viewport 2015-01-07 23:42:15 -05:00
Marius Kintel c8097c411e Merge pull request #1131 from TDeagan/scalemarkers_numbered
Scalemarkers numbered
2015-01-07 23:41:38 -05:00
Marius Kintel 6a39812160 Stand-alone program for exporting a Nef polyhedron to STL 2015-01-07 14:10:31 -05:00
Marius Kintel b519718b64 Another crash example 2015-01-07 13:50:14 -05:00
Torsten Paul 156d7ccefb Clarify license for basic examples. 2015-01-07 19:35:41 +01:00
Marius Kintel 4538134990 #1105 Yet another testcase 2015-01-07 13:20:02 -05:00
Torsten Paul c915ecfde0 Change license for example files. 2015-01-07 17:25:42 +01:00
Torsten Paul da657d7543 Treat deprecation as warning message (fixes #1143). 2015-01-07 17:05:50 +01:00
Marius Kintel 47fcde8d5c Merge branch 'gridfix' 2015-01-07 10:56:31 -05:00
Marius Kintel 0bd0129f8f bugfix: Apparently execution order wasn't deterministic, caused bugs on older gcc's 2015-01-07 02:09:37 -05:00
Marius Kintel 8c53981cfa Killed compiler warnings 2015-01-07 02:06:25 -05:00
Marius Kintel 55b5d26965 Bugfix: Integer norm is only available in Eigen 3.2.3 -> 2015-01-07 01:02:29 -05:00
Marius Kintel cfc879cd1c Mac compile fix 2015-01-07 00:34:33 -05:00
Marius Kintel 74a93a3be8 Merge remote-tracking branch 'origin/gridfix' 2015-01-06 23:58:19 -05:00
Marius Kintel 1941a7fc0d #1105 Workaround for CGAL problem: Don't trust normal vectors from Nef polyhedrons, normalize calculated normal vectors 2015-01-06 22:51:44 -05:00
Marius Kintel 5537e82274 Added printPolyhedron 2015-01-06 22:50:40 -05:00
Marius Kintel 2eda0b60a0 cosmetics 2015-01-06 22:50:07 -05:00
Marius Kintel b302cb172b Merge remote-tracking branch 'origin/master' into gridfix 2015-01-06 22:47:43 -05:00
Torsten Paul dda527dabd Show error/warning status in viewport. 2015-01-07 03:14:46 +01:00
Torsten Paul 7b2d01ff51 Use double backslashes to quote fontconfig input. 2015-01-07 00:50:58 +01:00
Marius Kintel 08fd033293 Be conservative and don't apply the CGAL hull fix to unknown versions without testing 2015-01-06 17:55:42 -05:00
Marius Kintel 61cf460a4f Merge remote-tracking branch 'origin/master' into gridfix 2015-01-06 17:35:46 -05:00
Marius Kintel 02a2727983 sync 2015-01-06 17:35:19 -05:00
Marius Kintel 499a9717d7 #1105 Added another testcase 2015-01-06 17:35:04 -05:00
Marius Kintel 31f42ee81d Merge remote-tracking branch 'origin/master' into gridfix
Conflicts:
	src/cgalutils.cc
2015-01-06 12:44:17 -05:00
Marius Kintel 1a6a7392e7 #1089 Moved testcases to good tests 2015-01-06 12:39:49 -05:00
Marius Kintel 61c17092e1 #1089 Only apply convex_hull_3 bugfix to appropriate CGAL versions 2015-01-06 12:24:53 -05:00
Marius Kintel 82dbabac92 Apply convex hull bugfix from CGAL, work around next issue by avoiding using std::set iterators, updated test cases. Fixes #1089 2015-01-06 11:12:03 -05:00
Marius Kintel a41c8716ec Merge remote-tracking branch 'origin/master' into c++11
Conflicts:
	openscad.pro
2015-01-06 01:10:04 -05:00
Marius Kintel 073b2e7740 Merge remote-tracking branch 'origin/master' into gridfix 2015-01-06 00:21:43 -05:00
Marius Kintel a300cddfb5 Suppress a few test cases triggering Gallium bugs on Ubuntu-12.04 2015-01-06 00:14:14 -05:00
Marius Kintel 57fd4a20bc Minor adjustment to testcase 2015-01-05 23:51:21 -05:00
Marius Kintel 4b41ccaa29 Minor adjustment to testcase 2015-01-05 23:47:48 -05:00
Marius Kintel 02d591556c Moved tests from #936 to #945 2015-01-05 23:31:03 -05:00
Marius Kintel abf9a96881 Fix crash when checking if invalid Nef3 is valid 2015-01-05 23:30:51 -05:00
Marius Kintel 87e483095b Merge remote-tracking branch 'origin/master' into gridfix 2015-01-05 22:36:29 -05:00
Marius Kintel ac6a302608 Merge branch 'master' of github.com:openscad/openscad 2015-01-05 21:43:32 -05:00
Marius Kintel 966add80a8 Run fixed bug test cases as part of the normal regression tests 2015-01-05 21:43:17 -05:00
Marius Kintel 4d454367f9 Run fixed bug test cases as part of the normal regression tests 2015-01-05 21:41:58 -05:00
Marius Kintel 27f8370c7b Export blank image on empty top-level objects, instead of no image 2015-01-05 21:41:05 -05:00
Torsten Paul d5600b855c Merge pull request #1140 from t-paul/fix-tests
Fix test case failures caused by camera changes.
2015-01-06 02:35:41 +01:00
Torsten Paul f3f343e101 Fix test case failures caused by camera changes. 2015-01-06 02:21:13 +01:00
Marius Kintel 10e3676a01 Added a test config 'Good' which includes all tests except Bugs 2015-01-05 20:03:20 -05:00
Marius Kintel 32b2d2ec97 Fixed buggy vertex quantizing and polygon tessellation. Should improve some corner cases 2015-01-05 18:22:58 -05:00
Marius Kintel 2fb01e5f83 Merge branch 'master' of github.com:openscad/openscad 2015-01-05 17:38:51 -05:00
Marius Kintel 26f8742023 Added convexValue() 2015-01-05 17:38:42 -05:00
Marius Kintel adbd458aab Merge branch 'master' of github.com:openscad/openscad 2015-01-05 17:37:37 -05:00
Marius Kintel 5a2b89981c Minor fix: If we know that a PolySet is convex, there is no need to perform a computationally expensive test. Should improve #1090 2015-01-05 17:37:14 -05:00
Marius Kintel bd5cdf9e34 Merge branch 'master' of github.com:openscad/openscad 2015-01-05 17:14:21 -05:00
Marius Kintel 8f6c8a2a03 Merge branch 'master' of github.com:openscad/openscad 2015-01-05 16:17:16 -05:00
Marius Kintel 90172fa5c3 #913 Added expected image 2015-01-05 16:14:02 -05:00
Marius Kintel 179ad1ea7c #911 Added expected image 2015-01-05 16:13:21 -05:00
Marius Kintel 1e894bb152 #904 Added expected image 2015-01-05 16:11:51 -05:00
Marius Kintel fe0b7dd334 #835 Added expected image 2015-01-05 16:10:02 -05:00
Marius Kintel 1ad4af8b0b Collapse consequtive identical vertices instead of deleting the whole polygon. Fixes #1138 2015-01-05 16:04:48 -05:00
Marius Kintel f79414a208 More debug output 2015-01-05 15:57:42 -05:00
Marius Kintel fe1e300756 #1138 Added testcase 2015-01-05 15:31:59 -05:00
Marius Kintel 1896c3f09a Gracefully handle malformed PolySets in minkowski. Fixes #1137 2015-01-05 14:33:54 -05:00
Marius Kintel 5786ba89ff #1137 Added testcase 2015-01-05 14:32:59 -05:00
Marius Kintel 1a1f36035d polyhedron debug output had indices reversed 2015-01-05 13:38:26 -05:00
Marius Kintel d0cee28898 Merge branch 'master' of github.com:openscad/openscad 2015-01-05 13:36:06 -05:00
Marius Kintel 0cf6de75a4 Updated hosting issue. Fixes #1136 2015-01-05 13:36:03 -05:00
Marius Kintel 32229dc34b Merge pull request #1135 from openscad/unify-camera
Unify zoom handling for perspective and orthogonal mode.
2015-01-05 12:43:56 -05:00
Torsten Paul 3c337449e9 Unify zoom handling for perspective and orthogonal mode. 2015-01-05 18:34:08 +01:00
Marius Kintel 578b70c40d Merge pull request #1134 from openscad/orthogonal-zoom-fix
Orthogonal zoom fix
2015-01-05 11:04:20 -05:00
Marius Kintel 4ebc9ce4d0 sync 2015-01-05 10:52:11 -05:00
Marius Kintel edae1b6980 Merge branch 'master' of github.com:openscad/openscad 2015-01-05 01:56:59 -05:00
Marius Kintel 5b865293a6 Library updates; qt-5.4.0, eigen-3.2.3, boost-1.57, cgal-4.5.1, glew-1.11, gettext-0.19.4, libffi-3.2.1, glib-2.42.1, libxml2-2.9.2 2015-01-05 01:56:24 -05:00
Marius Kintel 4b5ff845f7 Update README.md 2015-01-04 20:10:37 -05:00
Marius Kintel 2fd06f4b78 #1089 Correctly handle CGAL exception behavior 2015-01-04 13:38:06 -05:00
Marius Kintel 378c125b47 Merge branch 'master' of github.com:openscad/openscad 2015-01-04 12:24:48 -05:00
Marius Kintel acb206dd18 #1089 Added minimal testcase 2015-01-04 12:24:46 -05:00
Marius Kintel d920a29a3e Merge pull request #1133 from openscad/svg-scaling-fix
Remove border from SVG viewport to fix scaling issues (fixes #1122).
2015-01-04 11:54:32 -05:00
Torsten Paul 8d401d3534 Use viewport height as "distance" for the status text in orthogonal mode.
While this is not strictly correct as the actual distance has no effect
in orthogonal mode, it's giving the user an indication of the zoom factor.
2015-01-04 17:09:27 +01:00
Torsten Paul 712049795f Use correct eye position in orthogonal projection mode (fixes #1058). 2015-01-04 17:09:27 +01:00
Torsten Paul 0e20a7cb17 Remove border from SVG viewport to fix scaling issues (fixes #1122). 2015-01-04 16:09:44 +01:00
Marius Kintel 86daffdfd7 Merge branch 'master' of github.com:openscad/openscad 2015-01-03 16:44:16 -05:00
Marius Kintel d997226f3c #1089 Provide error message instead of crashing hard on CGAL hull exceptions 2015-01-03 16:43:28 -05:00
Torsten Paul 7cefaa7300 Drop setting the WhitespaceBackgroundColor.
QScintilla uses this color even when the whitespace is selected instead of
drawing it in the selection background color. This causes selection to
look strange when the whitespace display is enabled.
2015-01-03 19:28:42 +01:00
Tim Deagan 358ba86fc8 Swap out spaces for tabs
modified:   src/GLView.h
	modified:   src/MainWindow.h
	modified:   src/QGLView.h
	modified:   src/mainwin.cc

QtCreator ignores the prefs and will only put in spaces instead of tabs.  These are manual fixes in Notepad++ to try and keep the indents in the standard mode.
2015-01-02 01:32:37 -06:00
Marius Kintel 09e7bfc96d #1129 Fixed crash when performing empty projection 2015-01-01 23:01:09 -05:00
Marius Kintel b68ac5e6f2 fixed typo in last commit 2015-01-01 22:54:09 -05:00
Marius Kintel f10d0c5d5f #1129 Added testcase for empty projection crash 2015-01-01 22:50:58 -05:00
Marius Kintel 743732d874 Fix bug in harfbuzz build causing us to require OS X 10.9+ 2014-12-31 15:31:27 -05:00
Marius Kintel 6fc720d1b7 Bumped Eigen to 3.2.2 2014-12-31 15:02:20 -05:00
Marius Kintel f139c4b424 #1097 Test program do decompose an STL into multiple convex STL's and an OpenSCAD model importing them all with different colors 2014-12-31 14:45:34 -05:00
Marius Kintel 648b7acc22 Prefix some missing errors with 'ERROR:' to make highlighting work. Fixes #1123 2014-12-31 13:49:54 -05:00
Marius Kintel 15d1dbce28 Merge branch 'master' of github.com:openscad/openscad 2014-12-31 02:52:58 -05:00
Marius Kintel 4eaf8797c2 Small refactoring: Split out Polyhedron-related functions to from cgalutils.cc to cgalutils-polyhedron.cc 2014-12-31 02:52:56 -05:00
Torsten Paul bebe08483f The WrapFlagInMargin value is only available in QScintilla 2.7 and later.
This is a workaround for Debian 7 which has QScintilla 2.6.2. The "Margin"
setting is simply ignored and behaves as "None".
2014-12-30 13:58:48 +01:00
Torsten Paul 8d4d83f168 Fix build with Qt4. 2014-12-30 13:03:51 +01:00
Marius Kintel bc30dca513 Merge pull request #1119 from openscad/scintilla-updates
Scintilla updates
2014-12-30 02:51:38 -05:00
Marius Kintel e69513fa2e #1119 Added missing slot to change tab key function 2014-12-30 02:49:47 -05:00
Tim Deagan 7a71e59f2d Fix layout of number 6 character & add comments
The layout of the array that drives the 6 char was wrong.  Additional
commenting added
2014-12-29 21:23:46 -06:00
Torsten Paul 9bcb38df48 Change settings handling to use Value objects. 2014-12-30 02:37:16 +01:00
Tim Deagan 1826aa98f7 Addition of header to support function to print scale marker position values on large axes.
modified:   src/GLView.h
2014-12-29 15:00:37 -06:00
Tim Deagan 4823f26706 Addition of function to generate scale maker numeric values on large axes.
modified:   src/GLView.cc

The added function takes the length of the axis (l), the currrent position on the axis (i) and the size of the divisions between i and uses a variety of arrays to decode the characters of the position into GL_LINES, GL_LINE_STRIPs, GL_LINE_LOOPs as appropriate.  The various orientations required by the axis are handled by abstracting the line vertex sequences into arrays (set per axis.)
2014-12-29 14:55:15 -06:00
Torsten Paul 2c89f562a3 Update GUI to make options a bit clearer for the user. 2014-12-29 03:49:45 +01:00
Torsten Paul 6f9c4f7f09 Integrate with QSettings. 2014-12-29 00:29:09 +01:00
Marius Kintel 03f63c1c40 Minor compile fix 2014-12-28 16:05:54 -05:00
Marius Kintel 89419f50a1 #1105 Added testcase 2014-12-28 16:05:33 -05:00
Marius Kintel 06e2fc7d9b #1105 Added example crashing CGAL 2014-12-28 15:32:57 -05:00
Marius Kintel 3f6a590a2f Added stand-alone 2D tesselator 2014-12-27 17:58:20 -05:00
Marius Kintel 3e2ff23c00 Merge pull request #1115 from openscad/quantizevertices
Quantize vertices
2014-12-27 00:25:18 -05:00
Tim Deagan b6dcea12d0 Merge remote-tracking branch 'upstream/master' into scalemarkers
merging the upstream/master branch into my working branch prior to syncing with my fork
12/26/2014 22:07 CST tim deagan
2014-12-26 22:07:03 -06:00
Tim Deagan 1068f61dc6 Add optional menu driven scaling tics to the large axes
Tim Deagan 12/26/2014

While add-on rulers can be extremely useful, there are many times that a quick scaling marker would be handy. This feature generates tics every 10 units, driven off the log10 of the l variable defining axes length.  As you zoom in or out, the tics automatically re-scale themselves.  Every tenth tic is slightly larger.  A menu item is added to the view menu to enable or disable the feature.

I experimented with menu driven scaling (.01, .1, 1, 10, etc.), but using small increments when zoomed out brought the app to it's knees.  Adding a visual indicator of the current scaling might be nice, but I'm nto sure where to put it (possibly below the small axes,) since it changes as zooming and would clutter the console.

 Changes to be committed:
	new file:   images/scalemarkers.png
	modified:   openscad.qrc
	modified:   src/GLView.cc
	modified:   src/GLView.h
	modified:   src/MainWindow.h
	modified:   src/MainWindow.ui
	modified:   src/QGLView.h
	modified:   src/mainwin.cc
2014-12-26 21:44:31 -06:00
Marius Kintel 27b6f5e3e7 Merge pull request #1112 from openscad/stipple-fix
Enable GL_LINE_STIPPLE only for the block where a stipple pattern is used
2014-12-26 22:33:48 -05:00
Torsten Paul 6c25d5ccb6 Add more settings (AutoIndent / TabIndents / IndentationsUseTabs). 2014-12-27 02:59:11 +01:00
Torsten Paul 0cb6b3267a Add editor settings. 2014-12-27 02:17:15 +01:00
Torsten Paul dde4575c88 Add class to handle settings. 2014-12-27 00:12:23 +01:00
Torsten Paul 3a5ee3a4c6 Add GUI controls for editor settings. 2014-12-27 00:12:17 +01:00
Marius Kintel cce016b97b Merge remote-tracking branch 'origin/master' into quantizevertices 2014-12-26 14:08:09 -05:00
Torsten Paul 7ccdb778fc Enable GL_LINE_STIPPLE only for the block where a stipple pattern is used (fixes #1111). 2014-12-26 19:20:11 +01:00
Marius Kintel 3f0b16dd75 Merge branch 'master' of github.com:openscad/openscad 2014-12-25 17:27:40 -05:00
Marius Kintel 641ac4a506 #1107 Correctly display validity for objects which didn't yet touch CGAL 2014-12-25 17:27:13 -05:00
shaina7837 1ba2216108 reset view icon added 2014-12-26 00:56:31 +05:30
shaina7837 295f257bf8 undo redo icons added 2014-12-26 00:35:13 +05:30
Torsten Paul 0bf2d4e286 No need to update translation in release-common.sh it's done by the build. 2014-12-25 19:18:55 +01:00
shaina7837 2654bf9575 unindent duplicate image removed 2014-12-25 23:44:41 +05:30
shaina7837 040aac5e8f Indent icon added 2014-12-25 23:34:28 +05:30
shaina7837 3bfa28c83d indent image name changed 2014-12-25 23:27:28 +05:30
Torsten Paul ec3f735d5c Need to specify openscad.pro for qmake now. 2014-12-25 18:56:30 +01:00
Torsten Paul 82c8c7405d Move readme to color scheme folder. 2014-12-25 18:54:16 +01:00
Torsten Paul 4cb7b42fb8 Add defines for MSYS2 build. 2014-12-25 18:52:20 +01:00
shaina7837 ed500abd39 indent unindent icons added 2014-12-25 23:12:32 +05:30
Torsten Paul d2af825640 Enable resource lookup for Windows build (needed for dev and MSYS2 package). 2014-12-25 18:22:51 +01:00
Torsten Paul fd4fe0816a Fix style sheet to remove borders from QStatusBar items. 2014-12-25 18:22:51 +01:00
Torsten Paul 40602c99bc Minor color scheme tweaks, mainly for brace matching colors. 2014-12-25 18:22:51 +01:00
Marius Kintel c2643d82ea #1069 Correctly fall back to CGAL minkowski if our convex decomposition-based minkowski fails. Fixes #1069 for now, but our convex-based minkowski should not fail 2014-12-23 22:50:38 -05:00
Marius Kintel 32c3e0d322 Merge pull request #1106 from openscad/gui-updates
Gui updates
2014-12-23 13:20:32 -05:00
Torsten Paul ef83c5c911 Remove duplicate definition. 2014-12-23 19:15:23 +01:00
Torsten Paul d296d93ddc Quit application when last main window is closed (fixes #1079). 2014-12-23 19:05:53 +01:00
Torsten Paul 0801fc432d Add background to the drag&drop pixmap to make it better readable. 2014-12-23 18:42:16 +01:00
Torsten Paul 481665f8a3 Change layout to allow longer version number text. 2014-12-23 18:28:16 +01:00
Torsten Paul c9a234a079 Add OK button, some Linux window managers do not add a close button to dialogs. 2014-12-23 18:27:39 +01:00
Marius Kintel 49ce79a633 Merge branch 'czech' of git://github.com/hroncok/openscad into hroncok-czech
Conflicts:
	locale/cs.po
2014-12-23 11:57:45 -05:00
Miro Hrončok 9445d1297a Minor corrections to Czech translation 2014-12-23 12:27:41 +01:00
Marius Kintel bc98089aca Mac release build fix 2014-12-23 01:18:27 -05:00
Marius Kintel 3812acf146 Merge branch 'jgelderloos-master' 2014-12-23 01:10:37 -05:00
Marius Kintel a68560707f Merge branch 'master' of github.com:openscad/openscad 2014-12-23 01:10:23 -05:00
Marius Kintel cb290bfcaa Merge remote-tracking branch 'origin/master' into jgelderloos-master 2014-12-23 01:09:10 -05:00
Marius Kintel 328cd7f362 #1028 Adjusted return values for errors 2014-12-23 01:07:35 -05:00
Marius Kintel b48089e694 Merge branch 'master' of git://github.com/jgelderloos/openscad 2014-12-23 01:02:50 -05:00
Marius Kintel 9b00f69311 #1065 Made font cache progress dialog indeterminate also on Windows 2014-12-23 00:49:37 -05:00
Marius Kintel 22ed0780fa Merge branch 'master' of github.com:openscad/openscad 2014-12-23 00:37:45 -05:00
Marius Kintel c5e4715575 bugfix: highlighted differences didn't render correctly 2014-12-23 00:37:43 -05:00
Torsten Paul 5dc88d0eed Switch between progress widget and status label. 2014-12-23 06:33:35 +01:00
Torsten Paul 3d9b66cf0f Fix crash on startup for the MinGW version. 2014-12-23 06:33:35 +01:00
Marius Kintel 0007684c5b Merge pull request #1077 from openscad/winconsole-fix
Use separate project for winconsole and don't statically link Qt
2014-12-23 00:32:15 -05:00
Marius Kintel 4c11d6b62f Updated test results for offset tests 2014-12-23 00:09:05 -05:00
Marius Kintel a10426acc3 Merge branch 'master' of github.com:openscad/openscad 2014-12-23 00:03:49 -05:00
Marius Kintel 756d3e2a97 Merge pull request #1102 from openscad/text-fixes-part6
Text fixes (part 6)
2014-12-23 00:03:34 -05:00
Torsten Paul b37b49f407 Add version number to launching screen and main windows (fixes #1101). 2014-12-23 03:56:17 +01:00
Torsten Paul 5ad36c82b6 Add OpenSCAD version to the status bar. 2014-12-23 03:33:42 +01:00
Torsten Paul c4e895a813 Add drag&drop to the FontListDialog. 2014-12-23 03:07:27 +01:00
Marius Kintel 77a568cda0 Less verbose 2014-12-22 19:31:40 -05:00
Marius Kintel d071ba16cb Merge pull request #1087 from openscad/offset-updates2
Update offset() parameter handling.
2014-12-22 19:18:40 -05:00
Marius Kintel 0eb2c45f12 Merge branch 'master' of github.com:openscad/openscad 2014-12-22 18:58:27 -05:00
Marius Kintel aeba95aa01 Windows build fix (msys2) 2014-12-22 18:58:25 -05:00
Torsten Paul b2227c7191 Quote special characters when copying the font selector. 2014-12-23 00:05:42 +01:00
Torsten Paul b5f5ffd142 Update German translation and merge new template. 2014-12-22 23:38:35 +01:00
Marius Kintel f945ce3ad8 Correctly calculate arc_tolerance for Clipper 2014-12-22 16:58:22 -05:00
Marius Kintel 781ec4d7bf Minor doc clarification 2014-12-22 16:58:03 -05:00
Marius Kintel 5fe30c66eb Merge pull request #1094 from openscad/fontconfig-init
Use QtConcurrentRun to initialize FontConfig in a separate thread.
2014-12-22 11:23:20 -05:00
Marius Kintel 0c88f63e00 Merge pull request #1098 from hroncok/czech
Updated the Czech translation
2014-12-22 10:42:06 -05:00
Torsten Paul 594f548b20 Add color schemes "Tomorrow" and "Tomorrow Night".
See https://github.com/chriskempson/tomorrow-theme
2014-12-22 02:25:48 +01:00
Miro Hrončok b79954237c Updated the Czech translation 2014-12-21 23:23:25 +01:00
Marius Kintel dea8dd9bd0 Merge pull request #1096 from openscad/win-updates
Win updates
2014-12-21 14:24:39 -05:00
Torsten Paul b697003b0a Handle different naming conventions for debug versions of QScintilla. 2014-12-21 17:56:51 +01:00
Torsten Paul c278963a85 Path and filenames need to use system encoding (fixes #1092). 2014-12-21 17:56:50 +01:00
Torsten Paul 8214cabe50 Remove qtcreator user configuration. 2014-12-21 17:56:47 +01:00
Marius Kintel fa3cba12cc Merge pull request #1093 from openscad/warning-highlight
Color code warning and error messages in the console window (fixes #855).
2014-12-21 00:02:39 -05:00
Torsten Paul 310ca16c1b Update test reference file for norm(). 2014-12-21 04:40:24 +01:00
Torsten Paul 98a9ea7e12 Use QtConcurrentRun to initialize FontConfig in a separate thread. 2014-12-21 03:49:20 +01:00
Torsten Paul 5a0ea7abe2 Color code warning and error messages in the console window (fixes #855). 2014-12-21 02:12:06 +01:00
Torsten Paul abdf80c494 Revert usage of the -Wa,-mbig-obj flag as that does not work on MXE. 2014-12-20 23:28:51 +01:00
Torsten Paul 7d863d2bf2 Updates to build on MSYS2. 2014-12-20 23:09:03 +01:00
Torsten Paul 4a75c57209 Move -DNOGDI to main project file.
This is not related to the cross build but a workaround when including
windows.h that also defines Polygon. So it's now enabled for all Windows
builds including MSYS2.
2014-12-20 21:46:30 +01:00
Torsten Paul 33a8c2baaa Catch win32-mingw used when building on MSYS2. 2014-12-20 21:39:32 +01:00
Torsten Paul ba2f150f33 Remove eigen2 detection, eigen3 is required. 2014-12-20 21:38:52 +01:00
Torsten Paul b488242548 Swap colors so the bright red is only used for language keywords. 2014-12-20 17:30:37 +01:00
Torsten Paul a603afb767 Add keyword lists. 2014-12-20 17:27:34 +01:00
Torsten Paul 128498a678 Allow reading the keyword lists from the color scheme files. 2014-12-20 17:27:18 +01:00
Torsten Paul 90b7dd82c2 Update lexer keywords. 2014-12-20 04:46:59 +01:00
Torsten Paul b1871c6309 Fix color schemes (brace highlight / selection color / line-end markers). 2014-12-20 02:51:11 +01:00
Torsten Paul ad51cadfbd Update offset() parameter handling.
- Rounded offset is now using parameter r
- Using delta only or delta with camfer = false creates no chamfer
- Using delta with chamfer =true creates chamfer at delta distance
2014-12-19 16:48:13 +01:00
Marius Kintel d72c121fa6 Minor Grid3 refactoring 2014-12-19 02:40:17 -05:00
Marius Kintel 0aa215b90c Quantize vertices when building Nef polyhedrons from PolySets 2014-12-19 02:27:56 -05:00
Marius Kintel f42dbea817 Merge pull request #1083 from Scalpel78/master
Added color scheme - Visual Studio
2014-12-17 16:48:20 -05:00
Frode Lillerud 69b644fcc2 Create visualstudio.json 2014-12-17 22:27:13 +01:00
Frode Lillerud 832fca9672 Delete visualstudio.json 2014-12-17 22:26:41 +01:00
Frode Lillerud e34530f752 Create visualstudio.json
Color scheme similar to default in Visual Studio.
2014-12-17 22:26:12 +01:00
Marius Kintel f0c7ee6d61 #1068 Attempt to fix the Windows line ending issue 2014-12-17 16:19:13 -05:00
Marius Kintel 450dd836fa Added png of document icon 2014-12-17 15:52:51 -05:00
Marius Kintel ca11624f52 #1065 Added new expected test result 2014-12-17 13:13:27 -05:00
Marius Kintel 6492d25265 #1065 The text module is no longer experimental 2014-12-17 12:56:52 -05:00
Marius Kintel 1aef9f2758 #1065 Show progress dialog while building font cache 2014-12-17 12:12:53 -05:00
Marius Kintel 3d0749b619 Improve displayed rendering time by including compilation time 2014-12-16 18:01:25 -05:00
Marius Kintel 0448b0f1db #1076 Fix memory display on 64-bit Windows 2014-12-16 17:40:13 -05:00
Marius Kintel a40b2848e9 killed compiler warning 2014-12-16 17:39:38 -05:00
Torsten Paul 1126a0ef17 Use separate project for winconsole and don't statically link Qt (fixes #870). 2014-12-16 23:35:42 +01:00
Marius Kintel 93b6113edc #1065 fix: It's allowed to pass NULL geometry to the preview renderer 2014-12-16 17:22:41 -05:00
Marius Kintel fe3cae8120 #1065 Text preview optimization: Don't tesselate every frame 2014-12-16 17:03:06 -05:00
Torsten Paul 0f2806ab8a Assume internally used strings are stored in UTF-8. 2014-12-16 21:31:00 +01:00
Torsten Paul 4be9a43b40 Add debug output for the Node Id Cache. 2014-12-16 21:21:06 +01:00
Marius Kintel 7bea0bef37 Merge branch 'master' of github.com:openscad/openscad 2014-12-16 13:04:13 -05:00
Marius Kintel 77c865d1be Improved regex to correctly match quoted characters in strings 2014-12-16 13:03:12 -05:00
Marius Kintel 061fa9604a Merge pull request #1071 from kevenv/master
Added french translation :)
2014-12-16 12:59:49 -05:00
Keven Villeneuve db4e609dbd Finish french translation 2014-12-14 10:21:08 -05:00
Keven Villeneuve 2c4c19d2d5 Correct some mistakes in the french translation 2014-12-14 00:45:15 -05:00
Keven Villeneuve 999e27d0da Added french translation :) 2014-12-13 22:38:18 -05:00
jgelderloos 01ce545e1a Merge branch 'master' of https://github.com/jgelderloos/openscad 2014-12-13 16:21:18 -05:00
jgelderloos 6f68330ce0 Changed exit codes to 0 and added help description to help menu #1028 2014-12-13 16:03:25 -05:00
Marius Kintel 14870d69de #1066 Build fix 2014-12-12 14:35:42 -05:00
Marius Kintel f1b1faad44 Preserve whitespace inside strings when creating cache keys. Fixes #1066 2014-12-12 14:06:28 -05:00
jgelderloos 023d22e5fe Merge pull request #1 from openscad/master
update from main
2014-12-12 00:19:37 -05:00
Marius Kintel ad69698f97 Changed stlcsgpngtest to render, not preview, to be able to reuse monotonepngtest results 2014-12-11 18:01:56 -05:00
Marius Kintel 1f032d0d7d #803 Don't install OS X specific file on other platforms 2014-12-11 17:32:26 -05:00
Marius Kintel 723556b803 #964 Run correct tests 2014-12-11 17:27:08 -05:00
Marius Kintel 1bbbfad575 #964 Added test for checking correct export of nonmanifold objects 2014-12-11 17:24:35 -05:00
Marius Kintel 9fe80a3a66 Mac build fix 2014-12-11 17:23:45 -05:00
Marius Kintel 255fc1d58d #1051 updated test results after suppressing repeated error messages 2014-12-11 17:04:33 -05:00
Marius Kintel 9da865604c #600 Tag menu action roles to allow translated menu items to move to the correct Mac OS X menu 2014-12-11 16:58:20 -05:00
Marius Kintel 0a10aca8aa #1051 Suppress warning and error output after 5 equal messages 2014-12-11 16:37:27 -05:00
Marius Kintel c9aea8a6b6 Merge branch 'master' of github.com:openscad/openscad 2014-12-11 16:09:59 -05:00
Marius Kintel 9863aa9ab2 #1051 Detect recursion after 1M tail recursion iterations 2014-12-11 16:09:55 -05:00
Torsten Paul dd274b744a Fix download urls for freetype and ragel; bump freetype to 2.5.4. 2014-12-11 19:42:35 +01:00
Marius Kintel df53d05bba Merge pull request #1062 from openscad/sysinfo
Report system information in the 'Library Info' dialog
2014-12-10 22:45:15 -05:00
Marius Kintel 39612397fa #1057 Sysinfo for Mac OS X 2014-12-10 22:44:39 -05:00
Marius Kintel 73b6700b69 Empty polysets are convex. Fixes crash in is_approximately_convex() 2014-12-09 17:46:03 -05:00
Marius Kintel 7e728fac6a Improve polyset convexity check by tessellating polygons prior to testing. Fixes #1061 2014-12-09 16:53:11 -05:00
Torsten Paul 845bd5706e Guard against reading huge files. 2014-12-09 22:46:09 +01:00
Marius Kintel f32e03dffb Merge branch 'master' of github.com:openscad/openscad 2014-12-09 16:42:05 -05:00
Marius Kintel 6d9329966a #1061 fixed test build behaving differently from GUI build due to ENABLE_CGAL flag not being passed to all relevant sources. Added testcase 2014-12-09 16:42:02 -05:00
Torsten Paul ba8446e8bf Remove qtaccessiblewidgets as QTPLUGIN.
MXE now ships Qt-5.4.0-rc which has accessibility built-in. All other
platforms did not have it enabled so far.
2014-12-09 22:21:07 +01:00
Torsten Paul f7816e02cd Add system info (OS / CPUs/ RAM / Distribution (when on Linux)). 2014-12-09 22:21:04 +01:00
Torsten Paul f4a6da7fb0 Try to detect if compiling with a 32bit or 64bit compiler. 2014-12-09 21:19:57 +01:00
Torsten Paul 3a90fa12fa Merge pull request #1060 from openscad/qglformat-patch
Disable vertical refresh syncing.
2014-12-09 21:18:57 +01:00
Marius Kintel 2462799655 Handle a bunch of nullspace corner cases. Fixes #1029 2014-12-08 18:25:48 -05:00
Marius Kintel 7d8203fc52 Disabled less useful test 2014-12-08 18:24:09 -05:00
Marius Kintel c03350e3cb Added more nullspace tests 2014-12-08 17:53:40 -05:00
Marius Kintel 0a049f7ab2 removed fixed fixme 2014-12-08 17:53:19 -05:00
Torsten Paul 342af594ad Disable vertical refresh syncing. 2014-12-08 18:54:39 +01:00
Marius Kintel 94aabb05b5 #1054 Fixed memory leak 2014-12-08 00:57:28 -05:00
Marius Kintel ccea6fdde9 Bugfix: 2D scale or mirror sometimes caused flipped normals which caused larger issues downstream. Fixes #1055 2014-12-07 20:09:45 -05:00
Marius Kintel 6c6882fb2e #1055 Doc: Clarify sanitized polygons 2014-12-07 19:54:31 -05:00
Marius Kintel 5695d7f445 #1055 added testcase 2014-12-07 19:47:43 -05:00
Marius Kintel a606fe39b6 Minor testcase tweak 2014-12-07 19:38:48 -05:00
Marius Kintel 82b599e8ba Bumped Qt to 5.3.2 2014-12-07 18:07:53 -05:00
Torsten Paul 399895bbfe Fix translation file install target when running qmake on clean source. 2014-12-07 05:46:07 +01:00
Torsten Paul 771526b5ae Fix install target for translation files. 2014-12-07 03:39:01 +01:00
Torsten Paul 04c194f6d6 Update .desktop file to include the install SUFFIX. 2014-12-07 03:38:02 +01:00
Torsten Paul dcd0f23277 Fix make install with INSTALL_ROOT set, e.g. used by Debian package build. 2014-12-06 21:31:37 +01:00
Marius Kintel 49d265a750 Merge pull request #1053 from openscad/install-suffix
Add optional target suffix for the binary / installation folder.
2014-12-06 14:09:05 -05:00
Torsten Paul 2f4171f506 Add optional target suffix for the binary / installation folder.
This is mainly intended to be used for building snapshot binaries that
are able to install in parallel to a release build. E.g. by using the
parameter "SUFFIX=-nightly" for qmake, the target binary will be called
openscad-nightly and the resource base folder /usr/share/openscad-nightly.
2014-12-06 19:23:19 +01:00
Torsten Paul 50e79a6817 Fix evaluation of ! expressions. 2014-12-05 20:54:01 +01:00
Torsten Paul 092b9eeddc Build with -DNOGDI by default to prevent name conflicts with windows.h. 2014-12-04 23:30:42 +01:00
Torsten Paul 80f1a31143 Update translation file generator scripts. 2014-12-04 23:20:25 +01:00
Marius Kintel 2316a42759 Merge pull request #988 from openscad/translation2
Translation2
2014-12-04 16:30:17 -05:00
Marius Kintel 9285222e29 Updated test result after moving recursion exception catch 2014-12-04 15:53:04 -05:00
Torsten Paul a466638433 Remove automatic translation update as that always generates modified *.po files. 2014-12-04 20:52:07 +01:00
Torsten Paul b6167b0b60 Merge branch 'master' into translation2
Conflicts:
	src/PlatformUtils.h
2014-12-04 20:51:44 +01:00
Marius Kintel 8bd04b1417 Merge pull request #1030 from openscad/issue409
Optimize stack usage (#409)
2014-12-04 14:05:15 -05:00
Torsten Paul 407da2ea8c Move catch for function recursion detection.
Catching this at ModuleInstantiation::evaluate() should ensure the whole
function call is terminated with the first exception. Otherwise function
calls with multiple recursion points (e.g. function f(x) = f(x) + f(x);)
will still descent into the recursion multiple times.
2014-12-04 19:40:15 +01:00
Marius Kintel 8b9559a27c Merge branch 'cmakeissues' of git://github.com/bmcage/openscad
Conflicts:
	tests/CMakeLists.txt
2014-12-03 11:01:48 -05:00
Marius Kintel 87f532493e #1047 Some more cleanup for NULLGL 2014-12-03 10:58:44 -05:00
Marius Kintel 88713b01cf Merge branch 'nullglfix' of git://github.com/bmcage/openscad into bmcage-nullglfix 2014-12-03 10:13:12 -05:00
Torsten Paul b894166dea Add tests to check tail recursion eliminiation. 2014-12-02 22:45:08 +01:00
Benny Malengier 3e0ef9dd68 Needed changes to have NULLGL compiling.
Resulting prog compiles to output stl
2014-12-02 12:31:59 +01:00
Benny Malengier 6898b49a08 Revert "MCAD not available should not be a critical error, only a warning"
This reverts commit 96cde0a265.
2014-12-02 12:22:42 +01:00
Marius Kintel 0067aafbb0 Forgot to commit Value -> ValuePtr fix to header 2014-12-01 17:34:47 -05:00
Marius Kintel be595efd31 Merge remote-tracking branch 'origin/master' into issue409
Conflicts:
	src/mainwin.cc
	src/module.cc
2014-12-01 17:07:01 -05:00
Marius Kintel a59e7d658e Merge branch 'master' of github.com:openscad/openscad 2014-12-01 17:06:30 -05:00
Marius Kintel 582d5dde8c #1030 bugfix: contexts need a parent, or it may crash 2014-12-01 16:52:04 -05:00
Marius Kintel 1e2b28ac2f Merge remote-tracking branch 'origin/master' into translation2 2014-12-01 16:47:36 -05:00
Marius Kintel 57974baa13 Silence verbose debug output 2014-12-01 16:47:00 -05:00
Marius Kintel d6d814586c Merge pull request #1037 from openscad/issue949
Use FileContext when evaluating $vp{rtd} variables (fixes #949).
2014-12-01 10:56:32 -05:00
Benny Malengier 415349e873 Missing quotes in argument list target properties 2014-12-01 12:20:16 +01:00
Benny Malengier 96cde0a265 MCAD not available should not be a critical error, only a warning 2014-12-01 12:10:08 +01:00
Marius Kintel 80050e94db merge fixes 2014-12-01 02:51:56 -05:00
Marius Kintel 5743064d56 Merge remote-tracking branch 'origin/master' into translation2 2014-12-01 02:34:28 -05:00
Marius Kintel bb9e7f5277 Tagged stlpngtest_bad-stl-wing as a bug 2014-12-01 01:06:15 -05:00
Marius Kintel a05fe72c6b Rewrote tessellation used for NefPolyhedron to PolySet conversion. Should fix #1033 2014-12-01 00:54:01 -05:00
Torsten Paul ef9f2f3289 Retain FileContext to lookup $vp{rtd} variables after compilation (fixes #949). 2014-11-30 16:37:17 +01:00
Torsten Paul 471ff7718e Merge pull request #1038 from openscad/issue1024+issue1035
Update drawing logic
2014-11-30 03:35:37 +01:00
Torsten Paul 6263bfd269 Render crosshair a bit less intrusive. 2014-11-30 03:22:14 +01:00
Torsten Paul fcbd9fc024 Fix crosshair at the center of the display (fixes #1025). 2014-11-30 03:04:15 +01:00
Torsten Paul 3992cc547b Update drawing logic (fixes #1035).
- Draw negative part of the axis with stippled lines
- Calculate contrast color for axis based on background color
- Disable lighting for axis / crosshair
2014-11-30 03:04:01 +01:00
Marius Kintel cf418188b9 Added malformed offset tests 2014-11-27 21:15:29 -05:00
Marius Kintel f36646730d Added some malformed polygon tests 2014-11-27 21:02:35 -05:00
Marius Kintel 75b57cd9b5 Added some malformed polyhedron tests and fixed an assertion bug 2014-11-27 21:00:23 -05:00
Marius Kintel fac2340989 More correct handling of empty geometry. Should fix a few crash bugs 2014-11-27 20:40:37 -05:00
Marius Kintel c2775d4541 doc 2014-11-27 20:38:53 -05:00
Marius Kintel 91139402ea toPolygon2d() should never return NULL 2014-11-27 20:38:09 -05:00
Marius Kintel defb486a64 createGeometry() should never return NULL 2014-11-27 20:37:40 -05:00
Marius Kintel 1cca6c088a Added tests for empty text results 2014-11-27 20:22:18 -05:00
Marius Kintel 77887bc2f8 Added surface not found tests 2014-11-27 19:19:02 -05:00
Marius Kintel 9c628225aa Added some nullspace tests 2014-11-27 19:09:54 -05:00
Marius Kintel 096ba7026d Added test for dxf file not found 2014-11-27 18:52:23 -05:00
Marius Kintel 23f1c4ac3f Updated test results 2014-11-27 17:21:23 -05:00
Marius Kintel 1b9d62c907 Added test for mixing empty 2D and 3D objects 2014-11-27 17:19:01 -05:00
Marius Kintel 4d6db2caa7 fixes crash when intersecting 3 or more 2d objects which results in an empty polygon 2014-11-27 15:27:09 -05:00
Torsten Paul a820487032 Simple implementation of tail-recursion elimination. 2014-11-26 22:53:10 +01:00
Marius Kintel 819f5d085f Moved Polygon typedef out of PolySet class 2014-11-26 15:22:15 -05:00
Marius Kintel 0b58b7d2b3 Compile fix: Don't include Carbon as it pollutes the global namespace with e.g. 'Polygon' 2014-11-26 15:02:44 -05:00
Marius Kintel e1da26bd8b Merge remote-tracking branch 'origin/master' into c++11 2014-11-25 17:42:59 -05:00
Marius Kintel ecbaec0849 Updated ClipperLib to 6.2.1 2014-11-25 17:41:08 -05:00
Marius Kintel b621287610 C++11 build fix 2014-11-25 17:40:49 -05:00
Marius Kintel 437aa69292 Merge remote-tracking branch 'origin/master' into c++11 2014-11-25 17:13:01 -05:00
Marius Kintel 2e8d93d5be Some Expression refactoring 2014-11-25 17:08:14 -05:00
Marius Kintel 74475395f4 Merge remote-tracking branch 'origin/master' into stack-size-hack
Conflicts:
	src/expr.cc
2014-11-25 17:02:58 -05:00
Marius Kintel b03345ec18 bugfix: dump of list comprehension if expression was buggy 2014-11-25 17:01:10 -05:00
Marius Kintel d99dea1db2 bugfix after merging master - dynamic memory caused contexts not to be destructed 2014-11-25 15:53:44 -05:00
Marius Kintel 8ca812ac1a Added infinite module recursion test 2014-11-25 15:28:48 -05:00
Marius Kintel 32bc6ae516 inlined stack pointer retrieval to silence compiler warning 2014-11-25 15:06:20 -05:00
Marius Kintel 2644b19ce7 Reimplemented serialization of expression to string after last refactoring 2014-11-25 15:05:36 -05:00
Marius Kintel 259d1b6435 Initialize StackCheck for all test drivers 2014-11-25 15:04:00 -05:00
Marius Kintel 09d85c79ac Merge branch 'stack-size-hack' of github.com:openscad/openscad into stack-size-hack 2014-11-25 14:48:04 -05:00
Marius Kintel 247b8db57f Merge remote-tracking branch 'origin/master' into stack-size-hack 2014-11-25 14:44:53 -05:00
Torsten Paul 5680dfc0e4 Fix test build. 2014-11-25 20:41:32 +01:00
Marius Kintel 0fa6154bbb Updated test results of all* tests 2014-11-25 14:35:23 -05:00
Marius Kintel df49d9e1a8 Added missing moduledump tests for list comprehension and let 2014-11-25 14:31:54 -05:00
Marius Kintel 07284b86ff Added missing moduledump tests for offset and text 2014-11-25 14:30:03 -05:00
Marius Kintel d73565f59f Added missing moduledump tests for chr, concat, norm, cross, parent_module 2014-11-25 14:28:17 -05:00
Marius Kintel be9b0ee925 indentation 2014-11-25 11:26:14 -05:00
Marius Kintel 4cd712d24d Merge remote-tracking branch 'origin/master' into stack-size-hack
Conflicts:
	src/context.h
	src/control.cc
	src/evalcontext.h
	src/localscope.cc
	src/module.cc
2014-11-25 11:25:37 -05:00
Marius Kintel 945be0020f Updated tests 2014-11-25 00:45:19 -05:00
Marius Kintel 23c9dee265 bugfix: Correctly handle else scopes, handle overrides inside assign scopes 2014-11-25 00:45:00 -05:00
Marius Kintel d195d05008 Test assignment in if, else and assign scopes 2014-11-25 00:44:12 -05:00
Marius Kintel 5072f0752a Don't use assign now that it's deprecated 2014-11-25 00:43:48 -05:00
Marius Kintel 697944c4ef Merge pull request #1022 from openscad/issue347
Support variable assignment in local blocks.
2014-11-24 22:09:15 -05:00
Marius Kintel 6b61e9b1a7 sync 2014-11-24 21:57:36 -05:00
Marius Kintel 3612db6a2f Fixes crash during the second run of a failing recursive module 2014-11-24 20:44:39 -05:00
Marius Kintel f1b29e1db9 Removed old stack measurement code 2014-11-24 18:54:51 -05:00
Marius Kintel 15835271c2 Implemented stackLimit() for Mac OS X 2014-11-24 18:29:13 -05:00
Marius Kintel d8010a0659 Take a copy of the name of the recursive component, don't use a pointer to a temporary string 2014-11-24 18:25:38 -05:00
Marius Kintel e0fbeb8d95 Use StackCheck to detect module recursion 2014-11-24 18:12:58 -05:00
Torsten Paul aa586136ae Remove duplicate warning message. 2014-11-24 23:52:07 +01:00
Torsten Paul c206fab087 Merge branch 'stack-size-hack' of github.com:openscad/openscad into stack-size-hack 2014-11-24 23:46:57 +01:00
Torsten Paul 241723dd8f Merge branch 'stack-size-hack' of github.com:openscad/openscad into stack-size-hack
Conflicts:
	src/expr.cc
2014-11-24 23:46:39 +01:00
Marius Kintel 5debac7de0 Throw and catch RecursionException on module recursion 2014-11-24 17:44:39 -05:00
Marius Kintel edc64bdbe9 forgot exceptions.h 2014-11-24 17:43:13 -05:00
Torsten Paul dc8f559b85 Use class hierarchy for the different types of expressions. 2014-11-24 23:37:42 +01:00
Torsten Paul 756f8079d8 Add class to determine the current stack size. 2014-11-24 23:36:29 +01:00
Torsten Paul ba4c50c631 Add function to retrieve the maximum stack size. 2014-11-24 23:34:57 +01:00
Marius Kintel ab96a82629 Minor cleanup of recursion exception handling 2014-11-24 17:30:05 -05:00
Marius Kintel 54a111472f Initial experiment with using exceptions to handle stack overflows 2014-11-24 12:54:14 -05:00
Torsten Paul 6ed14dafb0 Remove big switch statement from expression evaluation.
The switch statement causes a huge stack overhead that is very bad for
evaluating recursive functions.
2014-11-24 00:53:46 +01:00
Torsten Paul 69451af578 Use heap for Context object. 2014-11-24 00:53:46 +01:00
Torsten Paul 609f665406 Extract PRINTB() from recursion stack. 2014-11-24 00:53:46 +01:00
Torsten Paul 1f73807097 Hack to track stack size in function evaluation. 2014-11-24 00:53:41 +01:00
Marius Kintel 406e6e1bac #409 Pass Value objects as shared_ptr instances instead of by Value to battle excess stack usage 2014-11-23 00:59:17 -05:00
Marius Kintel d381ec8bcf #347 Deprecated assign() 2014-11-20 18:31:24 -05:00
Marius Kintel 6a1bc270fd Removed unused member variable 2014-11-20 18:30:58 -05:00
Marius Kintel b2c205ba4c Merge remote-tracking branch 'origin/master' into translation2
Conflicts:
	tests/csgtexttest.cc
2014-11-17 21:56:53 -05:00
Marius Kintel 1afb706461 Merge remote-tracking branch 'origin/master' into translation2 2014-11-17 21:55:19 -05:00
Marius Kintel b83bf31ac4 Merge branch 'master' into issue347 2014-11-17 01:00:41 -05:00
Marius Kintel ea1d561c46 Support variable assignment in local blocks. This should fix #347 but more testing is needed 2014-11-17 00:57:36 -05:00
Marius Kintel ef262f62a2 Merge pull request #1021 from openscad/mdi-fixes
Fix MDI issues.
2014-11-16 16:45:56 -05:00
Torsten Paul 8cf85e0987 Fix MDI issues. 2014-11-16 19:35:16 +01:00
Marius Kintel 1263042fc9 typo 2014-11-15 17:28:33 -05:00
Marius Kintel 6e5edb5beb No need to run dxfpngtest on #899 2014-11-15 17:04:12 -05:00
Marius Kintel 61819efd4b Merge pull request #1018 from openscad/resource-lookup-fix
Resource lookup fix
2014-11-15 16:49:30 -05:00
Torsten Paul 66b22b24a5 Add path information to info output. 2014-11-15 22:44:46 +01:00
Torsten Paul e1db572688 Fix application path initialization for --info. 2014-11-15 22:44:46 +01:00
Torsten Paul 2d6ac803be Initialize application path. 2014-11-15 22:44:46 +01:00
Torsten Paul 7761c0887b Postpone color scheme initialization after the application path is set. 2014-11-15 22:44:46 +01:00
Torsten Paul 635bf29308 Throw an error if the application path is accessed before it's initialized. 2014-11-15 22:44:46 +01:00
Torsten Paul ce16eb5ce0 Lookup resource folder only once and add some debug output. 2014-11-15 22:44:46 +01:00
Torsten Paul 650a0d2d21 Add debug output for color scheme enumeration. 2014-11-15 18:39:17 +01:00
Marius Kintel 109c566e44 Merge pull request #1016 from mcguffin/master
BBEdit Lang Module: Enable Un/Comment selection in the Text menu
2014-11-15 12:05:44 -05:00
Jörn Lund 6e58efd370 Enable Un/Comment selection in the Text menu 2014-11-15 18:02:15 +01:00
Torsten Paul 441160d8e8 Fix release package creation. 2014-11-14 21:31:42 +01:00
Marius Kintel c16284abca Merge pull request #1015 from mermerico/master
Improved DXF output compatibility
2014-11-14 09:58:59 -05:00
mermerico 85a91d62a5 Improved DXF output compatibility
Changed coordinate order from [X1 X2 Y1 Y2] to [X1 Y1 X2 Y2]. Both orders are standard compliant but [X1 Y1 X2 Y2] is far more common and can be parsed linearly. Some libraries, like the python libraries dxfgrabber and ezdxf, cannot open [X1 X2 Y1 Y2] order.
2014-11-14 09:49:06 -05:00
Torsten Paul 99c617562c Remove obsolete LOCALE_PREFIX and update documentation. 2014-11-13 00:39:17 +01:00
Torsten Paul ca3672b19c Move translation files to locale folder instead of po.
While this is not the standard name for the files, this makes the
resource handling easier as the PlatformUtils code already handles
lookup for both installed and dev layouts. At least for Linux the
installed name would be /usr/share/locale, so we use that in source
too for now.
2014-11-13 00:24:44 +01:00
Torsten Paul 59c4dec623 Merge branch 'master' into translation2 2014-11-12 23:21:42 +01:00
Marius Kintel 1d9b664e85 #899 Updated testcase: Tagged as 2D test 2014-11-11 16:17:21 -05:00
Marius Kintel 43221a78e1 Updated test results after viewAll changes 2014-11-10 16:18:28 -05:00
Marius Kintel e6b8f83859 Use dev@openscad.org for notification emails 2014-11-10 15:19:21 -05:00
Marius Kintel 40aae17c0e Move software update menu handling to AutoUpdater. This should fix #714 2014-11-10 15:01:34 -05:00
Marius Kintel e518cb9089 bugfix: Correct order of recent files on splash screen 2014-11-08 23:00:56 -05:00
Marius Kintel 31b90d1acb Merge pull request #1008 from openscad/externalize-colorschemes2
Externalize colorschemes
2014-11-08 20:49:15 -05:00
Marius Kintel 4ef9f3e817 Bumped QScintilla to 2.8.4 2014-11-08 19:45:02 -05:00
Marius Kintel 03ac045802 #802 Slimmed down testcase 2014-11-07 10:56:58 -05:00
Marius Kintel 877c010269 #802 Updated test results 2014-11-07 10:03:15 -05:00
Marius Kintel be9853cd20 #791 Added testcase 2014-11-07 09:54:01 -05:00
Marius Kintel aba7ba7665 #584 updated test results 2014-11-07 09:37:25 -05:00
Marius Kintel 2bdf02d352 Cleaned up c++11 config a bit 2014-11-06 12:53:53 +01:00
Marius Kintel 637244d59e Merge remote-tracking branch 'origin/master' into c++11 2014-11-06 12:41:54 +01:00
Marius Kintel 28d7d54502 Issue warning if trying to export previous F6 state. Fixes #48 2014-11-06 08:14:04 +01:00
Marius Kintel 92389b8589 Merge pull request #1003 from openscad/configure-window-reorder
Add option to disable window reordering by removing the dock window title bar
2014-11-05 21:28:13 +04:00
Marius Kintel 90f58ced7d Allow preview of designs with only background or highlight objects. Fixes #1005 2014-11-05 21:24:09 +04:00
Marius Kintel a3a6b66061 Ignore background nodes when checking for mixed 2D and 3D objects. Fixes #1004 2014-11-05 19:35:00 +04:00
Marius Kintel 4bc3d98509 #1004 Added testcase 2014-11-05 19:25:45 +04:00
Marius Kintel d74450eaad Allow pretty print of tests which fail with a non-zero return code 2014-11-05 19:25:05 +04:00
Marius Kintel 56866bc3d8 #1006 is a duplicate of #945 2014-11-05 19:05:56 +04:00
Marius Kintel 01b845397a Added buildonly option 2014-11-05 18:59:06 +04:00
Marius Kintel 7086f5fc37 Fixed build issue related to https://svn.boost.org/trac/boost/ticket/6455 2014-11-05 18:58:45 +04:00
Marius Kintel 1342db57cf Include debug objects in View All 2014-11-05 18:33:30 +04:00
Marius Kintel 162b453981 Merge remote-tracking branch 'origin/master' into externalize-colorschemes2 2014-11-05 18:26:10 +04:00
Marius Kintel 44af2b86ce Added color-schemes folder 2014-11-05 18:25:55 +04:00
Marius Kintel 26da9ca983 Include debug objects in View All 2014-11-05 18:22:08 +04:00
Marius Kintel 9e882be319 #1005 Added testcase 2014-11-05 18:16:05 +04:00
Marius Kintel 3470e7ff3c Merge remote-tracking branch 'origin/master' into externalize-colorschemes2 2014-11-05 17:03:42 +04:00
Marius Kintel 3fd7d9da3c Unify resource path location, correctly find resources for the test suite on Mac 2014-11-05 16:45:14 +04:00
Marius Kintel 9205a378c4 Added ~/Library/Application Support as user config path on Mac 2014-11-05 16:14:14 +04:00
Marius Kintel 728f1337a2 #1006 Added testcase 2014-11-05 14:33:36 +04:00
Torsten Paul a9cbabdbc2 Remove some obsolete dependencies to colormap.h. 2014-11-02 23:42:24 +01:00
Torsten Paul 46bffd3f4c Move default color scheme back into code. 2014-11-02 23:36:23 +01:00
Torsten Paul 4306586adf Set OPENSCAD_FONT_PATH also for the normal test cases.
This was already set for the export/import test cases as the exported
CSG files do not have the use<fontfile> statements. Due to differences
in the glyphs between the Liberation 2.00.1 we ship and the system
installed fonts some test cases (e.g. text_on_cube) did also fail.
2014-11-02 22:18:23 +01:00
Marius Kintel 7c677c968f Added text tessellation test 2014-11-02 23:59:15 +04:00
Torsten Paul 34981284fc Use local AppData folder for user config on Windows. 2014-11-02 16:39:51 +01:00
Torsten Paul 073c6fe2b3 Add color schemes to Windows installer. 2014-11-02 16:39:03 +01:00
Torsten Paul 7c3077b0f2 Read color schemes from additional user config path. 2014-11-01 23:06:36 +01:00
Torsten Paul 42fab36a05 Add color schemes to "make install". 2014-11-01 22:20:32 +01:00
Torsten Paul e59a2f035e Handle color scheme lookup in test cases. 2014-11-01 20:51:36 +01:00
Torsten Paul 2ee58893f5 Move render color schemes to separate files. 2014-11-01 20:51:36 +01:00
Torsten Paul df119fec75 Add solarized render color map to match the editor color scheme. 2014-11-01 20:51:36 +01:00
Torsten Paul 0886944fcd Handle setting of additional color schemes. 2014-11-01 20:51:36 +01:00
Torsten Paul 23275dc927 Get color schemes from editor; Enumerate from resource folder for scintilla. 2014-11-01 20:51:36 +01:00
Torsten Paul 395795949e Move color scheme values into resource files. 2014-11-01 20:51:36 +01:00
Torsten Paul 63201e25fd Add option to disable window reordering by removing the dock window title bar. 2014-11-01 18:55:48 +01:00
Torsten Paul 5078f401e9 Change console minimum size to 10x10. 2014-11-01 17:24:28 +01:00
Marius Kintel a68b39ead7 Fix regression related to intersection with empty shapes. Fixes #996 2014-10-31 15:28:26 +04:00
Marius Kintel cf979b3900 Bumped Ragel to 6.9 and harfbuzz to 0.9.35 2014-10-31 12:34:54 +04:00
Marius Kintel 6c703ab3ef Bugfix: OpenCSG-1.4.0 installed the lib in the wrong location. Fixes #997 2014-10-31 12:34:19 +04:00
Marius Kintel a93196eb7e Update settings for show/hide toolbars. Fixes #1001 2014-10-31 11:45:04 +04:00
Marius Kintel ccfc0c2401 Added testcase for #1000 2014-10-31 10:08:07 +04:00
Marius Kintel 4dfc70f439 Merge pull request #993 from openscad/hull-fix
Hull fix
2014-10-31 09:44:37 +04:00
Marius Kintel fd5c9b8e4f Merge branch 'master' of github.com:openscad/openscad 2014-10-31 09:40:46 +04:00
Torsten Paul f66d274c6e Add cubes to test case to ensure something is rendered. 2014-10-21 20:57:50 +02:00
Torsten Paul 7ad0a86b02 Fix crash in hull() with empty CGAL child geometry (fixes #990). 2014-10-21 20:57:18 +02:00
Torsten Paul 346fc3622b Merge pull request #991 from hroncok/test990
Test case for #990
2014-10-21 20:10:11 +02:00
Miro Hrončok a23d463020 Test case for #990 2014-10-21 11:52:46 +02:00
Torsten Paul 1974cf863b Update German translation, incorporating comments from #988. 2014-10-21 00:02:53 +02:00
Marius Kintel 5d28e86e95 Merge branch 'master' of github.com:openscad/openscad 2014-10-19 20:00:39 -04:00
Marius Kintel 0e88cfdacb Merge pull request #989 from openscad/window-handling-fix
Window handling fixes
2014-10-19 20:00:25 -04:00
Torsten Paul ea39c70471 Ensure window is visible after restoring the window state (fixes #976). 2014-10-20 00:22:22 +02:00
Torsten Paul ebb7dde012 Fix status handling for docked windows.
Especially for the case where the windows are docked as tabs in the
same position, the "visibility-changed" signal does not work as close
indicator. The window is also treated as invisible when just the tab
is invisible, not only in case the window is closed.
2014-10-20 00:21:06 +02:00
Marius Kintel 5669f0d95f Bumped CGAL to 4.5 2014-10-19 17:56:51 -04:00
Miro Hrončok f0ce0e663e Add Czech translation from #614. 2014-10-19 18:38:09 +02:00
Torsten Paul d6989488da Fix typo in script. 2014-10-19 18:01:50 +02:00
Torsten Paul 27594848db Fix translation file build on Windows; Use host gettext tools. 2014-10-19 17:41:22 +02:00
Torsten Paul df0597c8bf Update translations. 2014-10-19 01:43:48 +02:00
Torsten Paul 6cd441e0f1 Port translation code to use resource path from PlatformUtils. 2014-10-19 01:43:45 +02:00
Torsten Paul e4071472ad Rename for easier translation. 2014-10-19 01:25:23 +02:00
Torsten Paul baf49d107f Add translations. 2014-10-19 01:25:23 +02:00
Torsten Paul 9e52f2fc1b Add N_() to allow adding translation keys without direct gettext() call. 2014-10-19 01:25:23 +02:00
Torsten Paul 989675324b Make setting uic parameters work for both Qt4 and Qt5. 2014-10-19 01:25:23 +02:00
Torsten Paul 05c3c3e76c Add gettext to new dialogs. 2014-10-19 01:25:23 +02:00
Torsten Paul c8a24971b6 Add preferences option to enable/disable localization. 2014-10-19 01:25:23 +02:00
Torsten Paul 929d909947 Set Qt text encoding to UTF-8. 2014-10-19 01:25:23 +02:00
benderamp 4d17d80947 Add Russian translation for main window and preferences dialog 2014-10-19 01:25:23 +02:00
Torsten Paul 2a635f6797 Update translation files. 2014-10-19 01:25:23 +02:00
Torsten Paul 54a6f2addb Integrate message catalog creation into build process. 2014-10-19 01:25:23 +02:00
Torsten Paul e07d1d0320 Fix windows installer. 2014-10-19 01:25:23 +02:00
Torsten Paul 8f2491cd0a Support linux packaging structure with shared locale folder. 2014-10-19 01:25:23 +02:00
Torsten Paul cfe14254d4 Handle resource layout on linux and add translation files to openscad.pro. 2014-10-19 01:25:23 +02:00
Torsten Paul afd52b3075 Fix compilation of test cases. 2014-10-19 01:25:23 +02:00
Torsten Paul a512a6442e Handle the MacOS application layout when finding resources. 2014-10-19 01:25:23 +02:00
Torsten Paul ee4b2ffef5 Fix library references and translation scripts on MacOS. 2014-10-19 01:25:23 +02:00
Torsten Paul d620c8f40b Allow localization to be enabled/disabled by configuration settings.
This is only the logic to check the settings, no GUI.
Changing the setting requires a restart as disabling localization simply
skips the call to bindtextdomain() at the application start.
2014-10-19 01:25:23 +02:00
Torsten Paul ae2d19241e Use application resource path to locate the translation files. 2014-10-19 01:25:23 +02:00
Torsten Paul a7e3c8639c Fix compile problem on MinGW and force UTF-8 as encoding. 2014-10-19 01:25:23 +02:00
Torsten Paul 753f7160f9 Add German translation. 2014-10-19 01:25:23 +02:00
Torsten Paul 17244af2f9 Add more gettext calls. 2014-10-19 01:25:23 +02:00
don bright 21abad2dbd Add Russian stub translation. 2014-10-19 01:25:23 +02:00
don bright f12ff0597d First attempt at getting .mo files working with windows (wine). 2014-10-19 01:25:23 +02:00
don bright c559be20e1 Create basic gettext infrastructure and French language stub. 2014-10-19 01:25:14 +02:00
Marius Kintel b66fb597fa Merge pull request #987 from openscad/comment-fix
Retain selection after comment/uncomment (fixes #986).
2014-10-18 11:38:43 -04:00
Torsten Paul 32874b6d92 Retain selection after comment/uncomment (fixes #986). 2014-10-17 23:42:34 +02:00
Marius Kintel 8d7d854e35 Merge pull request #985 from openscad/build-fix
Handle both Qt4 and Qt5 and add fallback in case of missing qscintilla2.prf
2014-10-17 13:34:28 -04:00
Torsten Paul aefafd2ec5 Handle both Qt4 and Qt5 and add fallback in case of missing qscintilla2.prf. 2014-10-17 19:32:15 +02:00
Marius Kintel f7b15e92a5 #244 Escape spaces in filenames 2014-10-14 16:31:09 -04:00
Marius Kintel d20e1efbbd doc 2014-10-13 23:13:48 -04:00
Marius Kintel 1bd15b45a6 #964 another testcase 2014-10-13 22:33:33 -04:00
Marius Kintel a7eab14c29 Proper fix of the save-saveas problem 2014-10-13 15:34:47 -04:00
Marius Kintel 1ab34dc9d0 bugfix: Attempted to assign temporary variable to a const&, broke in debug mode. Fixes #980 2014-10-13 15:13:17 -04:00
Marius Kintel c577c7e501 Calling signals from outside is only possible with Qt5. This is probably the wrong hack anyway 2014-10-12 23:13:15 -04:00
Marius Kintel 1cc4f6be53 update the previous fix: SCN_SAVEPOINTLEFT() is only accessible in QScintilla >= 2.8, always save the file on actionSave() 2014-10-11 18:59:27 -04:00
Marius Kintel d064b9238f bugfix: When saving an unmodified file using Save As, the file wasn't actually saved 2014-10-11 18:38:34 -04:00
Marius Kintel 3dca2873e0 Handle arriving FileOpen events while the launchscreen is active, cleaned up some code, make static MainWindow handling more robust. Fixes #972 2014-10-09 22:13:18 -04:00
Marius Kintel a4b999e0d4 Use same UI inheritance style for launchingscreen as other components, indentation fixes 2014-10-09 17:21:15 -04:00
Marius Kintel 428cf27a03 Merge pull request #957 from openscad/restore_selection_for_find
Editor: Restore lost 'use selection for find' functionality
2014-10-02 02:11:43 -04:00
Marius Kintel 0993d5c9c2 Merge branch 'master' into scintilla-updates
Conflicts:
	src/MainWindow.ui
2014-10-02 02:10:55 -04:00
Marius Kintel 253b57f747 #964 Implemented a more robust polygon triangulator which will now handle intersecting edges properly. Should output more sane corner-case meshes, although they're not perfectly manifold 2014-10-02 01:38:05 -04:00
Marius Kintel 8eff7ed37b #964 Catch precondition exception for malformed (self-intersecting) polygons to avoid a crash 2014-10-01 00:43:34 -04:00
Marius Kintel 1121c96a11 #964 Added testcases 2014-09-30 19:38:43 -04:00
Marius Kintel 3b307fba93 Merge branch 'master' of github.com:openscad/openscad 2014-09-30 17:26:07 -04:00
Marius Kintel 6d81c37e6c Merge pull request #950 from openscad/Toolbar2
Toolbar2
2014-09-30 17:25:54 -04:00
Marius Kintel 7343290ffc Removed empty toolbar subtypes 2014-09-30 17:25:01 -04:00
Marius Kintel a8e9f63928 Improved some variable naming 2014-09-30 17:18:40 -04:00
Marius Kintel bc86312997 bugfix: Font list was connected to wrong slot 2014-09-30 16:48:36 -04:00
Marius Kintel 7a1737c09f toolBar -> viewerToolBar, indendation fixes 2014-09-30 16:47:14 -04:00
Marius Kintel e00292b445 Updated OpenCSG build to correctly set the install name 2014-09-30 15:27:24 -04:00
Marius Kintel 6ed2acf791 Merge remote-tracking branch 'origin/master' into Toolbar2 2014-09-29 11:46:45 -04:00
Marius Kintel f98d565714 Use python's difflib instead of calling the diff cmd. Fixes issue where diff isn't always available on Windows. Fixed #960 2014-09-23 12:36:27 -04:00
Torsten Paul 4eb53d3355 Add fonts folder to 'make install'. 2014-09-21 21:38:40 +02:00
Torsten Paul 8d067fe3cb Change categories property to only list a single main category. 2014-09-20 23:46:30 +02:00
Torsten Paul 1776bcd460 Add menu entry to convert tabs to spaces. 2014-09-19 23:25:49 +02:00
Torsten Paul cdb4120dcb Set indentation defaults. 2014-09-19 23:25:03 +02:00
Oskar Linde ec696b8240 Editor: Don't clear the findbox text if nothing is selected when hitting Ctrl+F 2014-09-19 22:36:08 +02:00
Oskar Linde e533d2a71a Mac: Findbuffer support 2014-09-19 22:35:20 +02:00
Torsten Paul ecc5622e7f Reapply keyboard shortcut fix from #770. 2014-09-19 21:58:39 +02:00
Marius Kintel 17fe75ea4a Merge pull request #955 from openscad/issue953
Fix issue #953
2014-09-19 15:51:34 -04:00
Marius Kintel 42507526b6 minor cosmetics 2014-09-19 14:17:04 -04:00
Oskar Linde 8d3d2fe9f4 Editor: Restore lost 'use selection for find' functionality 2014-09-19 19:52:59 +02:00
Oskar Linde b62079a632 Mark twist-free linear extrusions of convex polygons convex 2014-09-18 23:14:21 +02:00
Oskar Linde 2e1f24b4dc Bugfix. Fixes #953 2014-09-18 23:14:16 +02:00
Torsten Paul d039729878 Add "ViewAll" and remove "Crosshair" icon from toolbar. 2014-09-18 23:14:12 +02:00
Torsten Paul 97424f0447 Add keyboard shortcut to the tooltip of toolbar actions. 2014-09-18 22:55:06 +02:00
Marius Kintel e1fd9c83b8 #948 Allow export of collinear triangles to avoid creating holes in meshes 2014-09-15 20:51:41 -04:00
Marius Kintel cf8844c19d Added testcase for #947 2014-09-15 18:41:30 -04:00
Marius Kintel ff73aaaac7 OpenCSG-1.4.0 patch for Mac 2014-09-15 18:41:09 -04:00
Marius Kintel 72e09b6891 Updated to OpenCSG-1.4.0 2014-09-15 18:27:40 -04:00
Torsten Paul e68fc74c87 Merge branch 'master' into Toolbar2
Conflicts:
	openscad.pro
	openscad.qrc
2014-09-15 21:49:47 +02:00
Marius Kintel 988333abb8 Merge branch 'master' of github.com:openscad/openscad 2014-09-15 15:43:05 -04:00
Marius Kintel d5235f2b2c Merge pull request #894 from openscad/launchingscreen
Launching screen
2014-09-15 15:42:51 -04:00
Marius Kintel 41348f2166 Merge branch 'launchingscreen' of github.com:openscad/openscad into launchingscreen 2014-09-15 15:35:24 -04:00
Marius Kintel d9ae0dab10 #894 Let enter key open last selected item, allow cursor keys for item selection 2014-09-15 15:35:21 -04:00
Torsten Paul c19df82b72 Use HTML to render the headline text. 2014-09-15 21:29:32 +02:00
Marius Kintel 52797177b2 Auto-fill search field for search&replace 2014-09-15 14:43:31 -04:00
Torsten Paul f8336029f1 Merge branch 'master' into launchingscreen
Conflicts:
	openscad.pro
2014-09-15 19:58:55 +02:00
Torsten Paul 131119fd28 Fix stylesheet issue (wrong scrollbar style; unreadable tooltips on MacOS). 2014-09-15 18:12:00 +02:00
Torsten Paul cbddc6313e Fix build. 2014-09-15 17:47:15 +02:00
Marius Kintel 5ff8bbfe11 Merge pull request #951 from kevenv/libraryinfo
Modernise help library info
2014-09-14 22:45:19 -04:00
Keven Villeneuve adbe4c9d86 Modernise help library info 2014-09-14 22:08:18 -04:00
Torsten Paul f9b0a7e9a9 Add more icons. 2014-09-14 21:39:15 +02:00
Torsten Paul c251683c20 Move ToolBar setup to GUI design file. 2014-09-14 21:17:27 +02:00
shaina7837 56ebdd92f1 Added toolbars in Designer, make search panel appear below toolbar 2014-09-14 20:40:29 +02:00
shaina7837 3fd08be98e render icon is shifted to rendering window toolbar 2014-09-14 20:39:59 +02:00
shaina7837 642407c241 improved syntax color scheme and added more icons 2014-09-14 20:39:33 +02:00
shaina7837 8e3b3e1919 added few more icons with tool tips 2014-09-14 20:39:17 +02:00
shaina7837 3f37cf8c50 toolbar splitted into two 2014-09-14 20:39:12 +02:00
shaina7837 efb23fc9bd toolBar-subclass of QToolBar added 2014-09-14 20:39:05 +02:00
shaina7837 7345de27b1 toolbar set 2014-09-14 20:38:20 +02:00
Torsten Paul d67b01c7f2 Default to show welcome screen if no settings value available. 2014-09-14 04:00:17 +02:00
Torsten Paul 78e341cd4c Add bigger logo image. 2014-09-14 03:18:32 +02:00
Torsten Paul aec33dd75f Separate launching screen from main window and show before main window opens. 2014-09-14 02:08:57 +02:00
Torsten Paul 8c892907c2 Make welcome screen resizable and update some minor UI issues.
- Move images to icons folder
- Move "Show welcome screen" to advanced tab in preferences
- Set button styles via Qt stylesheet to handle hover and disable
- Rename config setting to "launcher/showOnStartup" and add default
2014-09-13 23:52:21 +02:00
Torsten Paul e7d3025753 Merge branch 'master' into launchingscreen
Conflicts:
	openscad.pro
	openscad.pro.user
	src/MainWindow.h
	src/Preferences.cc
	src/Preferences.h
	src/Preferences.ui
	src/mainwin.cc
	src/openscad.cc
2014-09-13 21:19:44 +02:00
Marius Kintel 5252bae1f9 Merge pull request #941 from openscad/qscintilla-fedora20-fix
Use fallback if CONFIG+=qscintilla2 does not add a lib reference
2014-09-05 14:42:06 -04:00
Torsten Paul d08e7bbe82 Use fallback if CONFIG+=qscintilla2 does not add a lib reference (fixes #938). 2014-09-05 20:31:54 +02:00
Torsten Paul 155c275180 Add qscintilla2 to dependency list. 2014-09-05 19:58:31 +02:00
Torsten Paul af69e95bbe Check also lib64 path for glib-2.0; fixes detection on fedora20/64bit. 2014-09-05 18:43:37 +02:00
Marius Kintel 771f764533 Use --render=cgal in export-import tests, added testcase for #936 2014-09-04 17:36:52 -04:00
Marius Kintel 51c54f2e5b Add --render=cgal option for test purposes (forces conversion to CGAL Nef polyhedron before rendering 2014-09-04 17:35:32 -04:00
Marius Kintel cfb15466e4 #337 Print warning on non-simple export instead of refusing to export 2014-09-04 17:34:53 -04:00
Marius Kintel f15a177132 Added expected files for #904 2014-09-04 14:43:34 -04:00
Marius Kintel efc552b0bf Only print one degenerate triangle warning per polyset 2014-09-04 14:40:03 -04:00
Marius Kintel 2c11e397d1 #904 testcase 2014-09-04 14:36:23 -04:00
Marius Kintel fc26d25011 #915 Make QScintilla editor the default 2014-09-04 14:25:41 -04:00
Marius Kintel 15d596099c Disabled some tests for Travis which fails due to Gallium 0.4 driver issues on Ubuntu 12.04 2014-09-04 13:49:12 -04:00
Marius Kintel 0d304f7e43 #924 Made MDI and undocking options visible again 2014-09-04 12:18:46 -04:00
Marius Kintel c4485cfdeb Merge pull request #879 from openscad/scintillaeditor
Scintilla Editor
2014-09-03 16:44:35 -04:00
Torsten Paul dab35ffa40 Use strong bindings for the liberation font aliases. 2014-09-03 21:55:18 +02:00
Marius Kintel 45a649d6ab #879 fix some keyboard binding issues 2014-09-03 15:00:52 -04:00
Marius Kintel 9ef3349e4e #879 fixed some minor layout and shortcut issues 2014-09-03 14:52:41 -04:00
Marius Kintel 845df0cce1 Merge remote-tracking branch 'origin/master' into scintillaeditor
Conflicts:
	scripts/mingw-x-build-dependencies.sh
2014-09-03 12:46:54 -04:00
Marius Kintel de2e1090ca Merge branch 'master' of github.com:openscad/openscad 2014-09-03 12:28:16 -04:00
Marius Kintel c7f8d283e2 Merge pull request #928 from openscad/mingw-master
MXE master / Fix Windows cache folder
2014-09-03 12:14:42 -04:00
Marius Kintel 546c8dd1d7 constness, codingstyle 2014-09-03 12:14:27 -04:00
Marius Kintel 98fb23f6b3 Merge pull request #929 from openscad/fix-fontconfig
Fix fontconfig logic
2014-09-03 12:12:00 -04:00
Torsten Paul af9843d91b Remove code to add Windows font folder - handled by fonts.conf. 2014-09-03 17:46:27 +02:00
Torsten Paul 3d2290c203 Use FcMatchPattern to make alias replacement work. 2014-09-03 17:43:19 +02:00
Torsten Paul 64e66bb397 Move additional conf files for fontconfig back to previous location. 2014-09-03 15:37:57 +02:00
Torsten Paul 2959cd0f30 Install fontconfig configuration folder. 2014-09-03 00:36:05 +02:00
Torsten Paul fde1b89cd9 Switch to MXE master branch using mingw-w64/static targets. 2014-09-03 00:36:05 +02:00
Torsten Paul a95b14da42 Add platform abstraction for setenv() which is not supported on MinGW. 2014-09-03 00:36:05 +02:00
Marius Kintel 3a3ffc0118 Merge remote-tracking branch 'origin/master' into c++11 2014-09-02 00:16:38 -04:00
Marius Kintel 67c68634b6 Be more verbose when using c++11 2014-09-02 00:16:36 -04:00
Torsten Paul 89201c91c8 Suppress find error output. 2014-08-30 22:22:33 +02:00
Torsten Paul 2170e0ad2d Detect qmake-qt5 first, use qmake as fallback (needed for fedora). 2014-08-30 21:32:21 +02:00
Torsten Paul fdd5464835 Use OPENSCAD_LIBRARY include path only if it actually exists. 2014-08-30 21:23:03 +02:00
Torsten Paul e00287c8a4 Update dependency script for fedora. 2014-08-30 21:07:22 +02:00
Marius Kintel 5dd4823936 Merge remote-tracking branch 'origin/master' into scintillaeditor 2014-08-28 12:04:12 -04:00
Marius Kintel f1f4e4c778 Copy resourcess 2014-08-28 00:46:21 -04:00
Marius Kintel fb1270ea66 Added OS X font config for binary distribution 2014-08-28 00:43:58 -04:00
Marius Kintel 2edfed69b3 Copy font config for Mac binary build. The same should be done for Windows 2014-08-28 00:42:53 -04:00
Marius Kintel 44fa788a34 Add system, MacPorts and Homebrew fonts for OS X 2014-08-28 00:42:07 -04:00
Marius Kintel 97b47c8ee3 To auto-load configs, we need to prefix the config files with a number 2014-08-28 00:41:13 -04:00
Marius Kintel db14aa2bba Tweaked font config handling to hopefully be more correct 2014-08-28 00:39:51 -04:00
Marius Kintel 9ee42012fc Return a canonical resources path 2014-08-28 00:39:20 -04:00
Marius Kintel 0f9450137f Refactored resource path lookup 2014-08-27 16:00:15 -04:00
Torsten Paul efbfa064f0 Merge pull request #923 from openscad/linux-build-update
Update build scripts
2014-08-27 20:08:35 +02:00
Marius Kintel abd14b6296 disable unused scheme 2014-08-26 16:35:16 -04:00
Torsten Paul 67f0275618 Build fontconfig with --prefix=/ to let it pick up system data. 2014-08-26 21:24:02 +02:00
Torsten Paul 28dd3c6ec4 Use https download link for gmp. 2014-08-26 21:24:02 +02:00
Torsten Paul c90e8f24e1 Update to Eigen 3.2.2, boost 1.56, cgal 4.4. 2014-08-26 21:24:02 +02:00
Torsten Paul bc643b3cf5 Add packages needed for static Qt5 builds. 2014-08-26 21:24:02 +02:00
Torsten Paul 09dd11c7c4 Include swrast_dri driver. 2014-08-26 21:24:02 +02:00
Torsten Paul f415ee239f Remove dependency to libpng when building freetype. 2014-08-26 21:24:02 +02:00
Torsten Paul 90b8ac026c Add curl and libffi-dev to Debian dependencies. 2014-08-26 21:24:02 +02:00
Torsten Paul d4ac26d693 Use blacklist approach to include library dependencies. 2014-08-26 21:24:02 +02:00
Torsten Paul 4bdc4c4247 Add static dependency builds for Qt5 and QScintilla2. 2014-08-26 21:24:02 +02:00
Torsten Paul f7ea9f415b Use OPENSCAD_LIBRARY include path only if it actually exists. 2014-08-26 21:24:02 +02:00
Marius Kintel edded0f69d Bugfix: Added missing code for properly comparing booleans 2014-08-26 14:52:22 -04:00
Torsten Paul 28ded1166e Update MXE build to master branch and mingw-w64 to support qscintilla2. 2014-08-26 19:12:11 +02:00
Marius Kintel c4d3f22145 C++11 compile fix 2014-08-24 21:27:23 -04:00
Marius Kintel 4cf5d76196 xcode ignores 2014-08-24 18:07:20 -04:00
Marius Kintel 95ed3141fd #899 tagged failing test as a bug, added minimal test case 2014-08-24 18:06:19 -04:00
Torsten Paul c5c5a02163 Implement indent/unindent and comment/uncomment. 2014-08-24 23:49:13 +02:00
Marius Kintel b05a8eb0ca Xcode fix: Run executable in correct working dir 2014-08-24 17:41:40 -04:00
Marius Kintel 99bc04c9ab #879 scintilla editor incorrectly reported a freshly opened file as modified 2014-08-24 17:40:46 -04:00
Marius Kintel 844edc9b78 cosmetics 2014-08-24 17:40:12 -04:00
Marius Kintel 50853052a8 Merge remote-tracking branch 'origin/master' into scintillaeditor 2014-08-24 17:16:07 -04:00
Marius Kintel dd230a0e76 Added hidden Xcode schemes 2014-08-24 17:15:55 -04:00
Marius Kintel 07e620e611 Merge remote-tracking branch 'origin/master' into scintillaeditor 2014-08-24 17:10:35 -04:00
Marius Kintel 0b5dc26511 Added Xcode project file for debugging aid on OS X 2014-08-24 17:10:19 -04:00
shaina7837 257af85259 brace matching, cursor display and line number scaling is fixed as per the todo list 2014-08-23 20:29:54 +05:30
Marius Kintel 03e5e43269 #879 bugfix: modificationChanged connectinon was made to the wrong component, cosmetics 2014-08-23 01:33:35 -04:00
Marius Kintel f6e02ffb0c cosmetics 2014-08-23 01:28:07 -04:00
Marius Kintel ee89658df3 Use selection as text for find function 2014-08-23 01:25:29 -04:00
Marius Kintel e3960304bd #879 Implemented wheel zoom for scintilla editor 2014-08-23 01:18:51 -04:00
Marius Kintel 6ecf72a976 #879 bugfix: emit contentsChanged instead of textChanged, cosmetics 2014-08-23 01:15:04 -04:00
Marius Kintel 8ab3f843c7 indentation 2014-08-23 00:57:57 -04:00
Marius Kintel c9b0a16843 Use #pragma once 2014-08-23 00:57:22 -04:00
Marius Kintel 3c45262ea8 cosmetics 2014-08-23 00:53:49 -04:00
Marius Kintel 759e926b9a Added Q_OBJECT macro to make slots work, made wrapping look more like existing editor 2014-08-22 18:54:09 -04:00
Marius Kintel 10f4a52985 #879 Handle document modification signals, make editor interface more abstract 2014-08-22 18:39:12 -04:00
Marius Kintel f6b74eb6e0 Fixed a search&replace bug, removed some unused code 2014-08-22 18:10:58 -04:00
Marius Kintel bd19da5d6e bugfix: superclass initialization was removed in last commit 2014-08-22 15:10:54 -04:00
Marius Kintel fe0f24602d #879 kill c++11 warning 2014-08-22 15:10:08 -04:00
Marius Kintel cea96185aa #879 made paste viewport translation and rotation work for scintilla editor 2014-08-22 14:22:33 -04:00
Marius Kintel 79f44ae7fa Fix file drops to legacy editor, misc. cosmetics 2014-08-22 14:17:24 -04:00
Marius Kintel c59d3aef79 indentation 2014-08-22 13:42:23 -04:00
Marius Kintel 138d5bc57e Merge remote-tracking branch 'origin/master' into scintillaeditor
Conflicts:
	src/MainWindow.h
	src/Preferences.ui
	src/mainwin.cc
2014-08-22 12:59:10 -04:00
Marius Kintel 574fbf97c5 Force shininess to 64 - this is reported to fix #71 2014-08-22 11:48:34 -04:00
Marius Kintel 8a9e0daa01 minor debug output fixes 2014-08-22 11:48:10 -04:00
Marius Kintel acb7fe8e96 Don't export malformed triangles (< 3 unique vertices) 2014-08-21 17:08:11 -04:00
Marius Kintel 724fbbab5f Handle failure to convert cmd-line parameters to numbers. Fixes #908 2014-08-21 16:28:59 -04:00
Marius Kintel 51c43af4f4 #337 Enabled conversion directly from Nef polyhedron to PolySets, making us able to deal with more manifold corner cases 2014-08-21 13:20:32 -04:00
Marius Kintel 39fc1faee5 #584 updated expected image 2014-08-21 01:17:54 -04:00
Marius Kintel 8359c4ad6f #913 updated testcase result 2014-08-21 01:14:17 -04:00
Marius Kintel 54b9c90aef #913 Updated test cases 2014-08-21 00:19:35 -04:00
Marius Kintel 3e5df1a965 added missing file cgalutils-tess.cc 2014-08-20 11:43:12 -04:00
Marius Kintel 04ac48f21c #913 added testcase 2014-08-20 11:11:18 -04:00
Marius Kintel de6bcb1786 small reorg of cgalutils namespace 2014-08-19 22:02:08 -04:00
Marius Kintel 4f4bf2b0b8 #911 updated test image 2014-08-19 13:14:52 -04:00
Marius Kintel b8bbd6f842 The minkowski module needs to pass on any given convexity value. Fixes #911 2014-08-19 13:13:20 -04:00
Marius Kintel 377811123b #911 Added testcase 2014-08-18 20:03:26 -04:00
Marius Kintel 426d5b9de0 Added missing expected files, disabled export test added by mistake 2014-08-18 19:15:32 -04:00
Marius Kintel 4a1962cb84 #112 Updated test images, added export tests 2014-08-18 15:39:01 -04:00
Marius Kintel ce3b403c9b #337 Added more corner case tests from previous bugs 2014-08-18 01:50:33 -04:00
shaina7837 c7ea10575a minor code cleanup 2014-08-18 10:29:38 +05:30
shaina7837 b54710404a minor code cleanup 2014-08-18 09:43:43 +05:30
Marius Kintel e975ac3808 #337 Added more export tests, added failing export tests, handle 2D examples, added empty-union test 2014-08-17 16:06:25 -04:00
Marius Kintel ac22552b84 Added correct expected image 2014-08-17 16:02:00 -04:00
Marius Kintel 9d79d90104 #337 bugfix: We exported inner surfaces instead of outer ones 2014-08-17 15:07:02 -04:00
Marius Kintel 11952c4c0c PRINT -> PRINTD 2014-08-17 13:58:48 -04:00
Marius Kintel 2631cf6430 Merge pull request #873 from openscad/builtin-chr
Built-in chr()
2014-08-17 12:44:29 -04:00
Marius Kintel 9a1074ebbc #703 Ignore faces with <3 vertices while checking for convexity. Fixes crash 2014-08-17 12:42:24 -04:00
Marius Kintel 207b56d0a4 #703 Don't try to export empty objects 2014-08-17 12:41:45 -04:00
Marius Kintel e8407afc6d #703 Don't try to export empty objects 2014-08-17 12:38:06 -04:00
Marius Kintel b073521aa8 Silence fallback lookup warnings 2014-08-17 12:06:59 -04:00
Marius Kintel be845d6444 #587 Reorganized some tests to better distinguish between 2D and 3D tests. Added DXF export tests 2014-08-17 11:17:35 -04:00
Marius Kintel c01ea899f1 Missed tagging of lwpolyline tests as 2D 2014-08-15 14:46:22 -04:00
Marius Kintel 97512818cf Missed tagging of projection-cut-tests as 2D 2014-08-15 14:41:50 -04:00
Marius Kintel 99fb4ecb34 Use the same test results for all STL/OFF export-import tests 2014-08-15 13:22:01 -04:00
Marius Kintel 6405456c8a Renamed CGAL_renderer to CGAL_OGL_Polyhedron for clarity 2014-08-15 13:04:34 -04:00
Marius Kintel 49749da7dd Updated expected image to pass DIFFPNG tests 2014-08-15 13:01:23 -04:00
Marius Kintel 99e41df4db doc 2014-08-15 12:13:04 -04:00
Marius Kintel 134a1b9706 Removed duplicate DIFFPNG section 2014-08-15 12:12:50 -04:00
shaina7837 91ed8723c3 font and size operations in preferences are working for qscintilla editor 2014-08-15 14:13:58 +05:30
shaina7837 6a69510b13 fixed open buttons in launching screen 2014-08-15 10:42:12 +05:30
Marius Kintel 717ff3b1ef forgot to add colormap class 2014-08-14 17:19:41 -04:00
Marius Kintel 5133984202 new test results 2014-08-14 17:17:18 -04:00
Marius Kintel e70bc04197 Colormap functionality from pull request #816, mostly by Don Bright, includes new colormaps by shaina 2014-08-14 17:16:24 -04:00
Marius Kintel c5050b03b7 fontconfig check by Don Bright 2014-08-13 23:32:27 -04:00
Marius Kintel 5c3cfa4e98 Make real-time find work 2014-08-13 18:58:59 -04:00
Marius Kintel a25f02780e #879 Fix forward/backward search in the scintilla editor 2014-08-13 18:52:01 -04:00
Marius Kintel cfb2f350c8 Merge remote-tracking branch 'origin/master' into scintillaeditor 2014-08-13 16:57:15 -04:00
Marius Kintel 53a8841603 #894 Minor cleanup 2014-08-13 15:59:45 -04:00
Marius Kintel 84b11c29d9 #894 compile fix for MDI mode, minor cleanup 2014-08-13 15:30:47 -04:00
Marius Kintel 72c6982f85 Merge remote-tracking branch 'origin/master' into launchingscreen 2014-08-13 15:08:09 -04:00
shaina7837 fbc13a7456 added generic function in editor interface 2014-08-13 21:29:56 +05:30
shaina7837 7ef1e9b59e recents list in launching screen contains names of files instead of path 2014-08-13 09:43:24 +05:30
shaina7837 1ef69bb940 indent/unindent comment/uncomment menu items removed when scintilla editor is on 2014-08-11 20:09:50 +05:30
Torsten Paul eabd27dd92 Merge pull request #906 from openscad/text-fixes-5
Change FontDialog button to do "copy to clipboard".
2014-08-10 21:27:54 +02:00
Torsten Paul 0760103ac7 Change FontDialog button to do "copy to clipboard". 2014-08-10 20:40:43 +02:00
Marius Kintel e9edb69603 Some adjustment of default color scheme 2014-08-10 00:56:04 -05:00
Marius Kintel 50bf202df1 Merge branch 'master' of github.com:openscad/openscad 2014-08-09 23:15:30 -05:00
Marius Kintel 2bb08b41a7 Attempted to summarize changes in master 2014-08-09 23:15:13 -05:00
Marius Kintel ab62050727 Merge pull request #886 from openscad/fix-recursive-include
Fix recursive include handling by using canonical path (fixes #885).
2014-08-09 22:28:27 -05:00
Marius Kintel 080c9ea193 Merge remote-tracking branch 'origin/master' into scintillaeditor
Conflicts:
	scripts/macosx-build-dependencies.sh
2014-08-09 22:27:40 -05:00
Marius Kintel d4f240e272 Merge branch 'scintillaeditor' of github.com:openscad/openscad into scintillaeditor 2014-08-09 22:25:38 -05:00
shaina7837 46a948d302 find and replace working in scintillaeditor 2014-08-07 07:34:37 +05:30
shaina7837 7da7c07918 added solarized theme 2014-08-05 19:23:10 +05:30
shaina7837 fbceb0bdd8 added Monokai theme color scheme in scintilla editor 2014-08-05 07:52:30 +05:30
Torsten Paul fde73a4b27 Merge pull request #896 from openscad/text-fixes-4
Text fixes 4
2014-08-03 20:42:45 +02:00
Torsten Paul c0c4fdf527 Handle $fn, $fa and $fs for CSG output. 2014-08-03 20:31:03 +02:00
Torsten Paul a4b9bb554d Lower number of segments generated for bezier path. 2014-08-03 20:31:03 +02:00
Torsten Paul b920352f98 Save original $fn value for CSG output. 2014-08-03 20:31:03 +02:00
shaina7837 a70c4eb8e2 added box style folding 2014-08-03 22:29:17 +05:30
Torsten Paul 1c4603cef1 Merge pull request #898 from openscad/update-text-examples
Add version output to text examples and fix viewport orientation.
2014-08-03 18:56:27 +02:00
Torsten Paul 164b50b1b7 Add version output to text examples and fix viewport orientation. 2014-08-03 18:38:21 +02:00
shaina7837 9925639a45 no launching screen if filename is given at cmd line 2014-08-03 21:36:38 +05:30
Torsten Paul 63be176c11 Merge pull request #897 from openscad/macosx-build-fix
Update MacOS X dependency build.
2014-08-03 14:42:06 +02:00
Torsten Paul 475bf8a90f Update MacOS X dependency build.
- use $NUMCPU for parallel build
- don't always rebuild libs when already installed
- switch to Qt 5.3.1 and disable most modules
- switch to eigen 3.2.1
- fix build order for ragel (needed by harfbuzz build)
2014-08-03 14:37:46 +02:00
shaina7837 9e4cf7f326 tab width made default 2014-08-03 17:59:10 +05:30
shaina7837 a23f54a416 changed tab with to 4 characters 2014-08-03 17:40:06 +05:30
shaina7837 958e6c89da made the size of launching screen fixed 2014-08-03 12:27:19 +05:30
shaina7837 24efe77962 QSettings header file added after QApplication 2014-08-02 21:11:10 +05:30
shaina7837 1ff309a9d2 #include<QSettings> added after #include<QApplication 2014-08-02 20:53:16 +05:30
shaina7837 b18631873e dialog box closed after selecting option 2014-08-02 19:38:02 +05:30
shaina7837 755c23391e added option in preferences to show launcher again 2014-08-02 11:46:07 +05:30
shaina7837 4ae7746b95 make checkbox working to show or hide launcher in launching screen 2014-08-02 10:36:06 +05:30
shaina7837 e637a75617 example button is disabled if nothing selected 2014-08-02 01:14:45 +05:30
shaina7837 4697a8268f launching screen examples working 2014-08-01 23:35:30 +05:30
shaina7837 ad11bd8cd2 launching screen 2014-08-01 22:32:55 +05:30
Torsten Paul 428790c771 Update to use boosty.h as older boost versions seem to be still in use. 2014-07-31 21:58:59 +02:00
Torsten Paul c5ce5a400c Fix recursive include handling by using canonical path (fixes #885). 2014-07-30 00:14:03 +02:00
Marius Kintel 9c1bb00885 Updated expected images 2014-07-24 02:12:36 -04:00
Marius Kintel 20e97ac482 Removed unnecessary test related to old colorscheme experiments 2014-07-24 02:12:07 -04:00
Marius Kintel 40b5028955 Turn off camera debugging 2014-07-23 23:48:46 -04:00
Marius Kintel a8f1ec7319 Merge remote-tracking branch 'origin/master' into scintillaeditor 2014-07-23 23:42:28 -04:00
Marius Kintel ff3e65ad16 Updated expected images for 2D tests using autocenter and viewall 2014-07-23 23:36:42 -04:00
Marius Kintel 7de599324b Adjust 2D test handling 2014-07-23 23:36:20 -04:00
Marius Kintel 12f28fd194 Make autocenter preserve direction 2014-07-23 23:35:35 -04:00
Marius Kintel 1c690dfe5d Updated test image (forgotten as it was part of examples) 2014-07-22 18:05:41 -04:00
Marius Kintel d4f769c15c Updated test image (forgotten as it was part of examples) 2014-07-22 17:11:45 -04:00
Don Bright 858afffff8 add more expected images. remove accidentally added intermediate files.
Conflicts:
	tests/regression/offpngtest/demo_cut-expected.png
	tests/regression/offpngtest/difference-expected.png
	tests/regression/offpngtest/fence-expected.png
	tests/regression/offpngtest/rounded_box-expected.png
	tests/regression/offpngtest/surface-expected.png
	tests/regression/offpngtest/translation-expected.png
	tests/regression/stlpngtest/demo_cut-expected.png
	tests/regression/stlpngtest/difference-expected.png
	tests/regression/stlpngtest/fence-expected.png
	tests/regression/stlpngtest/rounded_box-expected.png
	tests/regression/stlpngtest/surface-expected.png
	tests/regression/stlpngtest/translation-expected.png
2014-07-22 17:11:41 -04:00
Marius Kintel fbe08862ca #879 change install name. qtmacdeploy requires a full install name path 2014-07-22 17:09:59 -04:00
Marius Kintel c90cb30e50 Synced some remaining fixes from the test_3d_export branch 2014-07-22 16:23:05 -04:00
Don Bright 3b5893144d run the diffpng image comparer without creating an output image, for speed 2014-07-22 16:09:56 -04:00
Marius Kintel 3bd56036a5 Tag all example tests correctly 2014-07-22 16:09:51 -04:00
Don Bright d819ab6d32 new tests for stlpngtest offpngtest
Conflicts:
	tests/regression/offpngtest/demo_cut-expected.png
	tests/regression/offpngtest/difference-expected.png
	tests/regression/offpngtest/fence-expected.png
	tests/regression/offpngtest/rounded_box-expected.png
	tests/regression/offpngtest/surface-expected.png
	tests/regression/offpngtest/translation-expected.png
2014-07-22 16:09:34 -04:00
Don Bright ac27854c8f fix bug where --render was not using proper colorscheme due to
getFacetColor in OGL_helper.h not being overridden in CGAL_renderer.h

Conflicts:
	src/CGALRenderer.cc
	src/CGAL_renderer.h
	src/OGL_helper.h
	src/renderer.cc
	tests/CMakeLists.txt
	tests/export_import_pngtest.py
	tests/regression/stlpngtest/demo_cut-expected.png
	tests/regression/stlpngtest/difference-expected.png
	tests/regression/stlpngtest/fence-expected.png
	tests/regression/stlpngtest/rounded_box-expected.png
	tests/regression/stlpngtest/surface-expected.png
	tests/regression/stlpngtest/translation-expected.png
2014-07-22 15:55:40 -04:00
Marius Kintel 07da269643 Use --render when creating expected images 2014-07-22 15:45:21 -04:00
Marius Kintel dec1abd827 turn off pretty-print debugging 2014-07-22 15:45:05 -04:00
Don Bright 92ef136967 re-doing the test generation for 3d formats that dont preserve color 2014-07-22 15:33:10 -04:00
Don Bright cc6a0978cb add test imgs for offpngtest and stlpngtest. updates to test_cmd and test_pretty_print
to handle missing expected images better and properly report img comparer.
tweak diffpng

Conflicts:
	src/OGL_helper.h
	tests/CMakeLists.txt
	tests/diffpng.cpp
	tests/test_3d_export.py
	tests/test_pretty_print.py
2014-07-22 15:33:08 -04:00
Don Bright 02f91a7413 debugging messages. update diffpng
Conflicts:
	src/Camera.cc
	tests/CMakeLists.txt
2014-07-22 15:21:41 -04:00
Don Bright 3c71753332 tweak improvements for test pretty print logging. new intersection test img files
Conflicts:
	tests/regression/opencsgtest/intersection2-tests-expected.png
	tests/test_pretty_print.py
2014-07-22 15:18:18 -04:00
Don Bright e5bb9d178d add test imgs for offpngtest and stlpngtest. updates to test_cmd and test_pretty_print
to handle missing expected images better and properly report img comparer.
tweak diffpng

Conflicts:
	src/OGL_helper.h
	tests/CMakeLists.txt
	tests/test_3d_export.py
	tests/test_cmdline_tool.py
	tests/test_pretty_print.py
2014-07-22 15:15:53 -04:00
Don Bright 07ad12f154 update diffpng.cpp 2014-07-22 15:09:42 -04:00
Don Bright 4d619a7e38 update diffpng
Conflicts:
	tests/CMakeLists.txt
2014-07-22 15:09:36 -04:00
Don Bright 94d11adeb2 allow alternate image comparison tool diffpng based on Hector Yee's algorithm
Conflicts:
	tests/CMakeLists.txt
2014-07-22 15:09:04 -04:00
Don Bright 901caedd01 fallback to diffpng if ImageMagick is missing 2014-07-22 15:02:27 -04:00
don bright a44f844882 fix bug in imagemagick comparison detector 2014-07-22 15:02:20 -04:00
Don Bright 6f0bd738e7 test ImageMagick to see if two non-identical images are considered identical.
on failure, fall back to diffpng comparison (diffpng.cpp)
2014-07-22 15:02:13 -04:00
Don Bright b3737d96c2 allow alternate image comparison tool diffpng based on Hector Yee's algorithm
Conflicts:
	tests/CMakeLists.txt
	tests/test_cmdline_tool.py
2014-07-22 15:02:05 -04:00
Marius Kintel af8c3ee9d1 Merge remote-tracking branch 'origin/master' into scintillaeditor
Conflicts:
	src/PlatformUtils.cc
2014-07-22 14:48:45 -04:00
Marius Kintel b3d094a604 Fixed failing tests by adjusting some mistakes done while cherry-picking from the test_3d_export branch 2014-07-22 14:11:21 -04:00
Don Bright d2338e9e87 make default render like it was before. (bbox.center=center) 2014-07-22 14:00:45 -04:00
Marius Kintel d21dea3fd1 Removed debug info 2014-07-22 14:00:43 -04:00
Don Bright 209feff810 redo 2d tests to be viewed from the top down. experiment w altering viewall code
Conflicts:
	src/Camera.cc
	tests/CMakeLists.txt
	tests/regression/cgalpngtest/resize-2d-tests-expected.png
	tests/regression/cgalpngtest/rotate_extrude_dxf-tests-expected.png
	tests/regression/cgalpngtest/text-font-alignment-tests-expected.png
	tests/regression/cgalpngtest/text-font-direction-tests-expected.png
	tests/regression/cgalpngtest/text-font-simple-tests-expected.png
	tests/regression/cgalpngtest/text-font-tests-expected.png
	tests/regression/dumptest/resize-2d-tests-expected.csg
	tests/regression/opencsgtest/intersection2-tests-expected.png
	tests/regression/opencsgtest/resize-2d-tests-expected.png
	tests/regression/opencsgtest/rotate_extrude_dxf-tests-expected.png
	tests/regression/opencsgtest/text-font-alignment-tests-expected.png
	tests/regression/opencsgtest/text-font-direction-tests-expected.png
	tests/regression/opencsgtest/text-font-simple-tests-expected.png
	tests/regression/opencsgtest/text-font-tests-expected.png
	tests/regression/throwntogethertest/resize-2d-tests-expected.png
	tests/regression/throwntogethertest/rotate_extrude_dxf-tests-expected.png
	tests/regression/throwntogethertest/text-font-alignment-tests-expected.png
	tests/regression/throwntogethertest/text-font-direction-tests-expected.png
	tests/regression/throwntogethertest/text-font-simple-tests-expected.png
	tests/regression/throwntogethertest/text-font-tests-expected.png
2014-07-22 14:00:08 -04:00
Don Bright f3a0d5dc64 add --autocenter option to make it easier to test 2d objects properly
Conflicts:
	src/Camera.cc
	tests/CMakeLists.txt
2014-07-22 13:37:09 -04:00
Marius Kintel 28864037ee Split info() function into separate file as it depends on too many defines and external libs 2014-07-22 13:32:44 -04:00
Marius Kintel 50ac9c262c cgal vs. nocgal build tweaks 2014-07-22 12:21:48 -04:00
Marius Kintel fef8e6a9a8 Correctly display OpenCSG version for test suite 2014-07-22 11:49:08 -04:00
Oskar Linde 7358e1108f Resolve issue #883 2014-07-22 11:11:57 +02:00
Oskar Linde ba81166a2b Add tests for issue #883 2014-07-22 11:11:23 +02:00
Marius Kintel 0852e707a6 Don't crash on infinite dimensions. Fixes #859 2014-07-17 17:59:42 -04:00
Marius Kintel 2790b4987f Merge branch 'master' of github.com:openscad/openscad 2014-07-17 17:36:14 -04:00
Marius Kintel f87ee92755 bugfix: don't crash on empty resize(). refactoring: added virtual copy() to geometry, moved resize() to CGAL_Nef_polyhedron. Fixes #862 2014-07-17 17:03:03 -04:00
Torsten Paul d4ef0823d3 Add Coverity Status badge. 2014-07-17 22:27:34 +02:00
Torsten Paul 2e63a3ac86 Skip unit test run after coverity scan. 2014-07-17 21:32:06 +02:00
Marius Kintel 68962e1c01 Allow building without scintilla 2014-07-17 15:28:23 -04:00
Marius Kintel 6b95307ae1 Improved editor tab layout 2014-07-17 15:28:14 -04:00
Marius Kintel 74ec208581 QScintilla build script for Mac 2014-07-17 15:11:33 -04:00
Marius Kintel 514a34a85f bugfix: always return a bool 2014-07-17 15:10:58 -04:00
Marius Kintel 66ec59eaae Added QScintilla version to library info 2014-07-17 15:10:39 -04:00
Marius Kintel 597cdbe7b3 Fix to make debug builds correctly link against qscintilla on Mac/Windows 2014-07-17 15:09:50 -04:00
Marius Kintel 6270441341 Merge remote-tracking branch 'origin/master' into scintillaeditor
Conflicts:
	openscad.pro
	src/mainwin.cc
2014-07-17 15:07:42 -04:00
Torsten Paul e84e6bb09c Activate scan.coverity.com integration. 2014-07-17 20:34:22 +02:00
Marius Kintel aadb85d86e Less verbose irc output from travis 2014-07-17 11:37:12 -04:00
Marius Kintel c7aa75c558 Merge pull request #856 from openscad/fix-viewport-scoping
Fix viewport variable scoping
2014-07-17 11:14:01 -04:00
Marius Kintel bfc182c290 Merge pull request #876 from openscad/issue875-testcase
Test case for UTF-8 include / use (issue #875).
2014-07-17 11:12:44 -04:00
Torsten Paul 37686582d9 Test case for UTF-8 include / use (issue #875). 2014-07-17 00:54:12 +02:00
Torsten Paul 1269ef49c3 Add test cases for chr(). 2014-07-13 19:18:48 +02:00
Torsten Paul 94fd976bad Add chr() function to convert numbers to unicode characters. 2014-07-13 18:43:44 +02:00
Torsten Paul 247479ca67 Merge pull request #871 from openscad/text-fixes-3
Text fixes (part 3)
2014-07-12 23:01:24 +02:00
Torsten Paul f47edd1bfe Accept Macintosh/Roman charmap and always dump charmaps (as debug output). 2014-07-12 21:36:56 +02:00
Torsten Paul ca51057485 Read font index from fontconfig and check result from FcPatternGet(). 2014-07-12 21:36:56 +02:00
Torsten Paul d0ba2903b3 Enable text for most test cases and update reference images. 2014-07-12 21:36:56 +02:00
Torsten Paul 2b37c39861 Add filter for font table. 2014-07-12 21:36:56 +02:00
Torsten Paul f01afd7252 Add paste button to font list dialog. 2014-07-12 21:36:56 +02:00
Torsten Paul d86e9d43ee Fix text() CSG output and cleanup test cases.
- enable text feature in import-export test cases
- drop ParaType font as Liberation is needed for the composition regression
  test, so use this for other tests too
- drop Amiri bold font, which is not adding anything to coverage
2014-07-12 21:36:50 +02:00
shaina7837 91d4929af7 content modified message without modifying anything problem get solved 2014-07-11 20:32:30 +05:30
shaina7837 8ab18596ad runtime switching from simple editor to scintilla editor 2014-07-11 19:41:16 +05:30
Torsten Paul 7847fd0dad Update camera settings for camortho test and update reference image. 2014-07-08 00:55:01 +02:00
Torsten Paul 6cb5e9218f Setup camera distance for both perspective and orthogonal mode. 2014-07-08 00:55:01 +02:00
Torsten Paul 3709fc30b2 Match gimbal camera orientation with values shown in GUI. 2014-07-08 00:55:01 +02:00
Torsten Paul ae1adbe785 Fix scoping issues when evaluating $vpt, $vpr, $vpd. 2014-07-08 00:55:01 +02:00
Torsten Paul d8c325846d Enable IRC notification for travis builds. 2014-07-08 00:46:59 +02:00
Torsten Paul 444ae5d705 Fix FreeType include handling. 2014-07-08 00:44:16 +02:00
Marius Kintel 8a2734da40 Merge pull request #868 from openscad/text-fixes2
Text fixes (part 2)
2014-07-08 00:30:12 +02:00
Torsten Paul e8fac2ef97 Add example files for text() usage.
The test case images are currently not including the text as the example
test run does not include experimental features. This will need to be
updated once the text() feature is not experimental anymore.
2014-07-07 23:28:03 +02:00
Torsten Paul 0a5acbde25 Add test cases for composition and symbol font handling. 2014-07-07 23:28:03 +02:00
Torsten Paul d413e4695b Use special handling for Windows/Symbol charmap only with charcodes >= 0xf000.
Some fonts with symbol encoding still have the charcodes in the ASCII
area instead of Unicode page 0xf000. To make those work too, the special
handling is only enabled in case the first charcode is >= 0xf000.
2014-07-07 23:28:03 +02:00
Torsten Paul f29d10a49f Select charmap when loading fonts and add workaround for windows symbol fonts. 2014-07-07 23:28:03 +02:00
Marius Kintel c47ba7c8ba Merge pull request #865 from openscad/feature/cam_center
Camera handling: Double click on a point of an object to set the camera center
2014-07-07 23:12:38 +02:00
Marius Kintel b9f20780a8 Merge pull request #866 from openscad/text-fixes
Text fixes
2014-07-06 19:43:33 +02:00
Torsten Paul 90ef6c95a3 Fix render issue with combining chars intersecting with the base char.
Example: text("A\u030A", font = "Arial");

The fix relies on the winding order of the polygons reported by FreeType
to be correct, so the Clipper union operation keeps that information.
2014-07-06 18:41:41 +02:00
Oskar Linde b257891391 Camera handling: Double click on a point of an object to set the camera center 2014-07-06 07:40:46 +02:00
Torsten Paul ea21e0fbd5 Show font path in Library Info window. 2014-07-06 04:28:16 +02:00
Torsten Paul f820727fe8 Remove unused path lookup and move OPENSCAD_FONT_PATH to fontconfig. 2014-07-06 03:57:25 +02:00
Torsten Paul 29b22c49fe Add /Library/Fonts for MacOS. 2014-07-06 03:37:54 +02:00
Torsten Paul ffeae16728 Set default font and add loading of additional fontconfig config file. 2014-07-06 03:24:46 +02:00
Torsten Paul cac3de5461 Use const for std::string arguments. 2014-07-05 23:54:19 +02:00
Marius Kintel 57c52e9351 Merge pull request #864 from openscad/bugfix/cmd_save
Bugfix: Cmd-S on an unmodified document inserted an 's'
2014-07-05 22:45:26 +02:00
Oskar Linde f9ac5053a1 Bugfix: Cmd-S on an unmodified document inserted an 's' 2014-07-05 22:13:51 +02:00
Marius Kintel 9fdc44b00f Merge branch 'master' of github.com:openscad/openscad 2014-06-26 19:42:20 -04:00
Torsten Paul bc17acf8fe Fix handling of multi-line comments.
If not eaten by the lexer, the comment content will be dumped to stdout
as default action.
2014-06-26 23:05:05 +02:00
Marius Kintel 328fbb9000 Allow slices to be specified independently of twist. Fixes #850 2014-06-26 16:43:12 -04:00
Marius Kintel 4bed4902e9 Bugfix: Zoom was broken for orthographic cameras. Fixes #853 2014-06-26 15:34:15 -04:00
Marius Kintel 7e5ad73c66 Removed unused code 2014-06-26 15:33:40 -04:00
Marius Kintel 0a566b3d83 Removed unused code 2014-06-26 15:33:22 -04:00
Marius Kintel 1085d3507a Set fixed point to 2^16 2014-06-26 15:32:52 -04:00
Marius Kintel f108798c00 Output debug info only in debug mode 2014-06-26 15:31:22 -04:00
Marius Kintel 705b913c18 Use transparency from color name. Fixes #852 2014-06-26 11:36:02 -04:00
Marius Kintel 8733b875f2 Output debug info only in debug mode 2014-06-25 23:54:10 -04:00
Marius Kintel 446c569703 Forgot some files for the #837 testcase 2014-06-25 23:37:18 -04:00
Marius Kintel d9fda460cc Popped path_stack once too many. Should fix #837 2014-06-24 19:23:06 -04:00
Marius Kintel c8b4d82d96 Added testcase for #837 2014-06-24 19:22:33 -04:00
Marius Kintel b81ab0530d Output debug info only in debug mode 2014-06-24 19:22:15 -04:00
Marius Kintel ccb9495354 Merge branch 'master' into text-escape-sequences
Conflicts:
	tests/CMakeLists.txt
2014-06-24 18:32:14 -04:00
Torsten Paul 544de72c80 Add test cases for the escape sequences. 2014-06-24 20:09:04 +02:00
Torsten Paul 581928a8fd Fix no-break space handling. 2014-06-24 19:17:50 +02:00
Marius Kintel bbdfe9b706 Make concat() a primary feature (not experimental) 2014-06-23 22:42:11 -04:00
Torsten Paul d46b8a8465 Handle UTF-8 multi-byte characters in the lexer. 2014-06-23 23:21:16 +02:00
Torsten Paul 1a2fcc0559 Add support for \x \u and \U escape sequences.
For all escape sequences the 0 byte is illegal and converted to a space.

\x supports only the range from 0x01 to 0x7F as the values greater or
equal to 0x80 could produce illegal UTF-8 sequences.

\u allows to specify unicode codepoints with exactly 4 hex digits.

\U allows to specify unicode codepoints with exactly 6 hex digits.
2014-06-23 23:21:16 +02:00
Torsten Paul 62aebbbb37 Add encoding of \r. 2014-06-23 23:21:16 +02:00
Torsten Paul 86e87e45f9 Use toString() when generating echo() messages (fixes #838).
When using the Value << operator, strings are encoded (e.g. a newline
character is encoded as \n), but echo() should output the text as given.
2014-06-23 23:21:16 +02:00
Oskar Linde 681f03a2a7 Resolve #835 2014-06-23 10:15:39 +02:00
Oskar Linde 38c7a24240 Add test case for issue 835 2014-06-23 10:15:39 +02:00
Marius Kintel 0dd3ac272b Handle cwd as outputdir 2014-06-21 19:05:50 -04:00
Marius Kintel b394da33c7 Mac: Disallow c++11 if dependencies are linked against libstdc++ 2014-06-21 16:52:35 -04:00
Marius Kintel a0875c845c Merge remote-tracking branch 'origin/master' into c++11 2014-06-21 16:15:56 -04:00
Marius Kintel d066648390 Added View->View All menu entry 2014-06-21 16:12:55 -04:00
Marius Kintel 4097aa887d Merge pull request #841 from openscad/viewport-variables
Add $vpd and make the viewport variables writeable
2014-06-21 15:35:56 -04:00
Marius Kintel 1ed3e4c4ad #840 bugfix: Set the up vector to Y axis in the case where we're looking down the Z axis 2014-06-21 14:53:31 -04:00
Marius Kintel 01e70046fb #810 removed unused code 2014-06-21 14:33:11 -04:00
Marius Kintel de3dc8461c #840 bugfix: Small axes had wrong rotation, adjusted size of the big axes after changing FOV to 45 degrees 2014-06-21 14:14:06 -04:00
Marius Kintel 49ff368c78 #840 Adjust default camera distance after changing FOV to 45 degrees 2014-06-21 14:12:52 -04:00
Marius Kintel e097508472 Link with the correct C++ library on Mac. Added a fix for allowing folder names with regex special characters 2014-06-21 13:34:41 -04:00
Marius Kintel 81d92f2254 Some cleanup of old eigen2 workarounds. Added fix to support cameras looking down the Z axis 2014-06-21 12:44:38 -04:00
Marius Kintel 96d17bd6e2 Updated Clipper to 6.1.3a 2014-06-21 12:43:19 -04:00
Torsten Paul b88564b9b2 Allow setting $vpt/$vpr/$vpd at top-level to set the viewport camera. 2014-06-21 18:29:51 +02:00
Torsten Paul fafcf1dbfa Add variable $vpd containing the viewport camera distance (Fixes #839). 2014-06-21 18:29:49 +02:00
shaina7837 6a67c0b6bb highlighting and background color set 2014-06-20 12:07:40 +05:30
Marius Kintel 458d60faa6 Refactored the camera handling a bit, added --viewall cmd-line parameter 2014-06-19 17:47:38 -04:00
Marius Kintel c6e21a6027 Report boost version, don't add BOOST_FILESYSTEM_VERION for recent boost versions 2014-06-19 17:43:35 -04:00
shaina7837 0b6814f253 syntax highlighting implemented 2014-06-19 22:53:00 +05:30
shaina7837 25bf6dd20b new lexer added 2014-06-17 21:45:04 +05:30
shaina7837 5936bc2243 added 2014-06-17 21:27:28 +05:30
shaina7837 9d35c792ed scad lexer added 2014-06-17 21:04:54 +05:30
Marius Kintel 48e1d6a5a9 Allow other files than .scad as input 2014-06-16 21:13:18 -04:00
Marius Kintel 4ef994ac3e Pass full path to python script 2014-06-16 15:56:36 -04:00
Marius Kintel e344f7e478 Bugfix - png is the last arg + some better error output 2014-06-16 15:56:07 -04:00
Marius Kintel d77db77825 Rewrote csg-import-test to be able to export other file formats as well as pass extra parameters to OpenSCAD 2014-06-16 02:41:04 -04:00
Marius Kintel b93a6203fe Merge branch 'master' of github.com:openscad/openscad 2014-06-14 16:27:42 -04:00
Marius Kintel 9d09e6475e Disable failing test on Ubuntu 12.04 Gallium drivers 2014-06-14 16:27:37 -04:00
Marius Kintel 9ae42c355a Merge pull request #833 from openscad/fix-visibility-behavior
Ignore visibility change events when the window is closing (fixes #812).
2014-06-14 15:13:31 -04:00
Torsten Paul 0d9e627a8c Ignore visibility change events when the window is closing (fixes #812). 2014-06-14 15:30:48 +02:00
Marius Kintel cf2009f180 Bugfix: Pick up qscintilla2 from the installed .prf file 2014-06-13 15:29:38 -04:00
Marius Kintel 11ca82dbb5 Moved scintilla config to scintilla.pri, enabled scintilla by default 2014-06-13 14:41:40 -04:00
Torsten Paul f20ad99be9 Remove unnecessary include. 2014-06-13 20:37:45 +02:00
shaina7837 6ff02a9ada editor padding removed 2014-06-13 06:10:47 +05:30
shaina7837 6b8acb0d3a error indicator with line marker 2014-06-12 20:26:18 +05:30
shaina7837 9f276a5788 error indicator implemented 2014-06-12 13:31:28 +05:30
shaina7837 a297a1b0aa syntax highlighting 2014-06-11 15:59:05 +05:30
Marius Kintel fe8ce9335e Some tuning of versions of dependencies 2014-06-10 16:20:08 -04:00
Oskar Linde 05e2a1edf1 Mac: Add -stdlib=libc++ to testsuite on 10.9 and later 2014-06-10 02:09:29 -04:00
Marius Kintel 8793fed7db Merge branch 'master' of github.com:openscad/openscad 2014-06-10 01:40:45 -04:00
Marius Kintel c1701654fc #784 bugfix slightly changed twist behavior. Updating test results 2014-06-10 01:40:41 -04:00
Marius Kintel a7b4f2e5b7 #495 Updated test png to reflect correct behavior 2014-06-10 01:13:36 -04:00
Marius Kintel c4f369fbf8 Merge branch 'master' into c++11
Conflicts:
	openscad.pro
2014-06-10 00:16:05 -04:00
Marius Kintel da56dff89d minor c++11 config fixes 2014-06-10 00:15:14 -04:00
Marius Kintel a5a3d8f4cf Some minor cleanup 2014-06-10 00:14:45 -04:00
Marius Kintel 1d6b7923bd Merge branch 'master' into c++11 2014-06-09 23:38:32 -04:00
Marius Kintel 27a2be8411 Applied Oskar's libc++ patches from #828 to master 2014-06-09 23:36:24 -04:00
Marius Kintel 7b4411bbcc We're actually checking for libc++, not c++11 2014-06-09 23:35:33 -04:00
Marius Kintel 2de378bef5 Merge branch 'master' into c++11 2014-06-09 23:23:44 -04:00
Marius Kintel 3ccce0d7ee Added testcase for erosions issue 2014-06-09 23:03:33 -04:00
Marius Kintel 7b6153fed8 Updated expected file for #495 2014-06-09 22:48:29 -04:00
Marius Kintel 832725d957 Merge branch 'master' into minkowski-speedup 2014-06-09 22:03:52 -04:00
Marius Kintel aac577635a Merge pull request #826 from tim-caper/winconsole.c
use MS Windows API for Unicode and/or stdout support
2014-06-09 22:00:32 -04:00
Oskar Linde 6b8118c3fe Fix build on Travis 2014-06-09 01:28:14 +02:00
Oskar Linde e8bdf04d48 Fix second half of #495: Nef with holes get imported correctly (CGAL Bug) 2014-06-09 01:17:26 +02:00
Oskar Linde 8e16e2fecb Fix half of #495: Exported facets get correct orientation 2014-06-09 01:17:26 +02:00
Oskar Linde 331df90e4a Make Nef -> OpenGL conversion aware of face orientations allowing (but not enabling) Nef renderer to mark in purple or cull backfaces 2014-06-09 01:17:26 +02:00
Oskar Linde 6df806c60c Minkowski bugfix: Multi-convex shell polyhedra were incorrectly classified as convex 2014-06-08 15:24:24 +02:00
Marius Kintel 35222064c1 Adapt to using CONFIG+=c++11 2014-06-08 00:03:06 -04:00
Marius Kintel 7f782832d7 Merge remote-tracking branch 'origin/mac_libc++_build' into c++11 2014-06-07 23:45:31 -04:00
Oskar Linde c5bc92d97c Mac: Automate build with libc++ when not using OPENSCAD_LIBRARIES
Conflicts:
	openscad.pro
2014-06-08 01:27:44 +02:00
Marius Kintel db22a0191a Merge pull request #827 from purcell/patch-1
[scad-mode] Improved package description
2014-06-07 17:54:01 -04:00
Marius Kintel 19cea6f3a8 Merge branch 'master' into c++11 2014-06-07 17:49:29 -04:00
Marius Kintel 2eb96a2a88 Build as c++11. On Mac, build as c++11 if as libc++-linked boost exists 2014-06-07 17:48:42 -04:00
Marius Kintel 7346c3136d Use mt-version of boost for MacPorts and Homebrew 2014-06-07 17:46:29 -04:00
Torsten Paul c6a4332025 Use Scintilla editor only with DEFINES+=USE_SCINTILLA_EDITOR. 2014-06-07 17:43:52 +02:00
shaina 9a712c0c26 scintilla editor working 2014-06-07 17:43:52 +02:00
shaina 950ffe9722 layout problem of editor is solved 2014-06-07 17:43:52 +02:00
Marius Kintel 22e884d08f Quick and dirty fixup 2014-06-07 17:43:52 +02:00
shaina 59a71b7e6e added scintilla editor classes 2014-06-07 17:43:52 +02:00
shaina 5a0df4e6d9 legacyeditor 2014-06-07 17:43:46 +02:00
Steve Purcell 36e007472b [scad-mode] Improved package description 2014-06-07 13:32:47 +01:00
Oskar Linde acd6cb1a4e Bugfix: Work around Clipper's incorrect isHole status after offset() 2014-06-06 13:06:37 +02:00
Tim V. Shaporev 32e3daf767 use MS Windows API for Unicode and/or stdout support 2014-06-06 12:31:22 +04:00
Marius Kintel 2cf6dcacf2 Merge branch 'master' into c++11 2014-06-05 19:18:33 -04:00
Marius Kintel d90945db6a Merge branch 'winconsole2' of git://github.com/tim-caper/openscad into tim-caper-winconsole2
Conflicts:
	src/openscad.cc
2014-06-05 15:38:59 -04:00
Marius Kintel 026efa317f Merge pull request #823 from tim-caper/func.cc
fixup issue 767 & func.cc cleanup
2014-06-04 18:29:32 -04:00
Tim V. Shaporev 0b4e4ee946 fixup issue 767 & func.cc cleanup
1) fixed last cases of duplicate calls to getArgValue() in builtin_lookup() and instantiate();
2) make sin_degrees() & cos_degrees() separate functions to use in other parts of code;
3) cleaned most of gcc warnings in func.cc
2014-06-04 14:04:21 +04:00
Oskar Linde c3da736f4d Remove some c++11-syntax 2014-06-03 18:51:29 +02:00
Oskar Linde 4aa5ea04d8 Change minkowski 3d png test result from green -> yellow facets 2014-06-03 18:51:29 +02:00
Oskar Linde cb2c5029c0 Faster minkowski() 2014-06-03 18:51:29 +02:00
Oskar Linde 8c977a45e5 Make sure convex objects remain convex as Nef polyhedrons 2014-06-03 18:51:29 +02:00
don bright 78803bfe10 builder.sh use master as default branch 2014-06-02 18:02:34 -07:00
don bright 1ee5f18794 change gettext detection (libintl is part of gnu libc not gettext?) 2014-06-02 17:38:24 -07:00
don bright 958345a0a5 change gettext detection (libintl is part of gnu libc not gettext). also
disable native java in gettext. disable redundant glib build.
2014-06-02 17:15:19 -07:00
don bright 19d3ba0d96 change gettext-tarball-existance test to use .gz not .xz, since the
download/unpack use gz (and gz is more portable than xz)
2014-06-02 16:14:13 -07:00
don bright eb45f9bc36 more documentation of scripts. disable java for gettext. disable docs for fontconfig 2014-06-02 16:12:54 -07:00
Marius Kintel 1999898508 devicePixelRatio() was introduced in Qt-5.1.0 2014-05-31 15:52:08 -04:00
Marius Kintel ca3ff7cf66 Related to #737 - allow for nbsp (0xc2a0) characters on the cmd-line 2014-05-29 18:22:32 -04:00
Marius Kintel 380af79b25 This was fixed during unstable refactoring. Fixes #585 2014-05-29 02:08:03 -04:00
Marius Kintel 1d5ff65e04 freetype and harfbuzz build fixes, updated gettext, ffi, glib, harfbuzz 2014-05-29 01:19:12 -04:00
Marius Kintel c73dfa6e8e Updated to Qt-5.3.0 and CGAL-4.4 2014-05-29 00:22:59 -04:00
Marius Kintel ef1c92ca2f #803 compile fix: Initializing static variables in a header file is a GNU extension 2014-05-28 22:53:32 -04:00
Marius Kintel 4ccda0f794 #784 bugfix: Missing conversion to radians 2014-05-28 22:52:21 -04:00
Marius Kintel a633c9c650 #567 Exclude the last remaining test until improved GL drivers can be used on Travis VMs 2014-05-28 20:49:27 -04:00
Marius Kintel 22e46762f8 Catch File Exists on makedirs to better support parallel runs 2014-05-28 20:36:40 -04:00
Marius Kintel ce24e2e29b Initialize FaceInfo properly. Caused problems with some compilers, e.g. on Ubuntu 12.04 2014-05-26 17:35:37 -04:00
Marius Kintel f4278926f8 Attempt to upgrade mesa to fix rendering bugs 2014-05-26 16:21:34 -04:00
Marius Kintel f18becefec Merge pull request #792 from openscad/list-comprehensions
List comprehensions && let() expression
2014-05-26 15:39:48 -04:00
Marius Kintel a6cc43f1f6 #810 Quickfix to improve progress feedback on CSG ops 2014-05-26 00:27:20 -04:00
Marius Kintel 38c24fe006 Merge branch 'master' into list-comprehensions 2014-05-25 16:00:10 -04:00
Marius Kintel 0ae6ea9c8a doc 2014-05-25 15:59:46 -04:00
Marius Kintel 89ade7c568 Attempt to fix some problems related to use of temporary objects after they've potentially been destructed 2014-05-25 00:50:19 -04:00
Marius Kintel bba4f0e821 Merge pull request #809 from michthom/master
Update to OpenSCAD 2014.03
2014-05-24 22:30:21 -04:00
Michael Thomson 04e0de5fe9 Use BBLMPredefinedNameList to show parameters etc 2014-05-25 00:38:37 +01:00
Michael Thomson 686fe11fc2 Update to OpenSCAD 2014.03
Added many more keywords and included the CC Attribution license info.
2014-05-24 23:22:08 +01:00
Marius Kintel 88ab6d6038 Merge branch 'master' of https://github.com/openscad/openscad 2014-05-24 22:10:27 +02:00
Marius Kintel 6661f9de1c Testing with fontconfig 2.8 2014-05-24 16:05:05 -04:00
Marius Kintel 90b815a4be Added fontconfig to travis setup 2014-05-24 16:02:34 -04:00
Marius Kintel 778eac0e22 Update after adding ppa 2014-05-24 16:00:15 -04:00
Marius Kintel e2950f6ea7 attempt to fix ppa conflict 2014-05-24 15:56:46 -04:00
Marius Kintel 6ef026bbad Removed some obsolete packages 2014-05-24 15:54:12 -04:00
Marius Kintel d4a221606f Added harfbuzz PPA 2014-05-24 15:51:55 -04:00
Marius Kintel e536e1ba19 Merge branch 'master' of https://github.com/openscad/openscad 2014-05-24 21:50:16 +02:00
Marius Kintel 8f85f2ded9 Merge branch 'master' of github.com:openscad/openscad 2014-05-24 15:49:52 -04:00
Marius Kintel 481d3754b3 Cleaned up library dependencies 2014-05-24 15:49:46 -04:00
Marius Kintel 447c260438 Ubuntu 12.04 build fixes 2014-05-24 21:41:04 +02:00
Marius Kintel 65edc63166 kill warning 2014-05-24 12:08:37 -04:00
Marius Kintel 944e898280 Merge pull request #808 from Lenbok/issue-438-cl-dependency
Remove dependency on cl from scad-mode
2014-05-24 11:49:52 -04:00
Marius Kintel 97149a8991 Merge pull request #807 from Lenbok/scad-mode-improvement
Improvements to the emacs scad-mode
2014-05-24 11:49:42 -04:00
Lenbok eae4d6c7fa Remove dependency on cl by substituting incf for setq, and fail-fast if there is a problem during indentation 2014-05-24 19:55:48 +12:00
Lenbok 206f2cacb1 Add use and include to syntax highlighting. Also prime dynamic keyword expansion 2014-05-24 19:24:59 +12:00
Marius Kintel c9bbb3b9bf Use shared_ptr instead of managing memory manually 2014-05-23 17:44:14 -04:00
Marius Kintel 147685d2c8 Merge pull request #797 from openscad/csg-import-tests
Csg import tests
2014-05-23 16:44:58 -04:00
Marius Kintel 357e0beccd Merge branch 'master' into csg-import-tests 2014-05-23 16:36:07 -04:00
Marius Kintel 8ac0209db5 bugfix: FindGLIB2 didn't clean up properly. added new pkg-config utility functions which can be reused 2014-05-23 16:30:50 -04:00
OskarLinde 0fa0a84a22 Merge pull request #806 from OskarLinde/list-comprehensions-and-let
List comprehensions and let update
2014-05-23 19:27:41 +02:00
Marius Kintel 3c9d9a705a Merge branch 'master' into csg-import-tests 2014-05-22 23:44:41 -04:00
Marius Kintel db19afcf80 Updated include guards to #pragma once 2014-05-22 22:26:46 -04:00
Marius Kintel 6ed870b53a Change order of dependency builds to avoid picking up the wrong dependency 2014-05-22 21:55:22 -04:00
Oskar Linde 694dad5a8b Added testcases for let and list-comprehensions 2014-05-22 22:58:24 +02:00
Oskar Linde dd4e229a46 let()-expression: disable reassignments 2014-05-22 22:24:26 +02:00
Oskar Linde 0a610baf5b Refactor let and list comprehension expressions a little
to be more in line with the other expression evaluation refactoring to minimize stack space
2014-05-22 21:51:29 +02:00
Oskar Linde c67ef30b75 Merge remote-tracking branch 'origin/list-comprehensions' into list-comprehensions-and-let 2014-05-22 21:37:49 +02:00
Oskar Linde 02cb1f0ca8 Speed up 3D convex hull() by a few orders of magnitude by using a more suitable kernel 2014-05-22 21:15:34 +02:00
Oskar Linde 35c2a5e5ca Speed up 3D hull() slightly by avoiding converting the result to Nef 2014-05-22 20:09:54 +02:00
Marius Kintel 943e98ae80 Merge branch 'master' into text-module 2014-05-21 16:43:11 -04:00
Marius Kintel 2838795d63 #802 Added test, issue warning instead of crashing 2014-05-21 14:01:12 -04:00
Torsten Paul c64360d372 Merge branch 'master' into text-module
Conflicts:
	tests/CMakeLists.txt
2014-05-20 21:36:51 +02:00
Marius Kintel e64734f8fd bugfix: Empty import combined with real geometry caused an assert failure 2014-05-19 15:21:43 -04:00
Marius Kintel 55fb525da9 Merge branch 'master' of github.com:openscad/openscad 2014-05-19 11:49:44 -04:00
Marius Kintel e4dd4da818 #791 Handle twist=0 as no twist 2014-05-19 11:49:41 -04:00
Marius Kintel c601060f82 Put tests in correct test config 2014-05-18 23:20:26 -04:00
Marius Kintel 9b72d45199 Merge branch 'master' into csg-import-tests 2014-05-18 22:11:50 -04:00
Marius Kintel ee3f52354a Merge pull request #798 from openscad/win-installer-fix
Fix handling of examples folder (fixes #795).
2014-05-18 21:54:20 -04:00
Torsten Paul 34ebcb1a43 Fix handling of examples folder (fixes #795). 2014-05-18 19:40:33 +02:00
Torsten Paul ee0328df39 Disable inf/nan cases for *.csg import tests.
The inf/nan tests fail when exporting CSG and rendering that output again
as currently inf/nan is written directly to the CSG file (e.g. r = inf)
which is not valid or even misleading in case a variable inf exists.
2014-05-18 17:32:14 +02:00
Torsten Paul 84eada804b Fix CSG output of offset(). 2014-05-18 17:32:10 +02:00
Torsten Paul f74228a029 Add script to test rendering of exported CSG files. 2014-05-18 17:18:41 +02:00
Marius Kintel 13d46e994e Correction: It wasn't fixed in CGAL after all, it was fixed somewhere in our code 2014-05-17 18:48:35 -04:00
Marius Kintel ba4d0b0e38 CGAL-4.4 fixed some issues 2014-05-17 18:42:23 -04:00
Marius Kintel 2b744f9512 #541 was fixed during unstable refactoring 2014-05-17 15:34:00 -04:00
Marius Kintel dfec3b59fc #593 was fixed by #608 2014-05-17 15:19:26 -04:00
Marius Kintel b9f75759b7 Issue #582 was fixed sometime during the unstable branch refactoring 2014-05-17 15:11:35 -04:00
Marius Kintel acab1dda1c Mac fix: Only use NSLog when GUI launched 2014-05-17 14:28:22 -04:00
Marius Kintel 985d9a2f61 Updated pngs after merging unstable 2014-05-17 13:58:36 -04:00
Marius Kintel f002fed152 bugfix: Don't try to export if a root geometry wasn't created 2014-05-17 13:04:45 -04:00
Marius Kintel 7a709b5e8b Merge pull request #785 from OskarLinde/vector_min_max
Make min() and max() handle vector argument
2014-05-17 11:59:01 -04:00
Marius Kintel 6a0d70033d Merge pull request #796 from OskarLinde/offset_bugfix
Offset bug with delta < 1
2014-05-17 11:57:50 -04:00
Marius Kintel e931c8ab83 bugfix: Dumptest failed to dump the highlight modifier 2014-05-17 11:53:11 -04:00
Marius Kintel 76e152f300 Moved to the Heavy group 2014-05-17 11:52:42 -04:00
Oskar Linde 5058086837 Tests for min()/max() 2014-05-17 14:50:06 +02:00
Oskar Linde dfa1748c81 Bugfix: Offset with rounded join_type calculated fragments incorrectly for delta < 1 2014-05-17 14:23:46 +02:00
Oskar Linde a886d001ba Offset bug regression test 2014-05-17 14:22:16 +02:00
Tim V. Shaporev 298680ff1b attach to parent console and provide stdout/stderr for GUI app. under Windows 2014-05-17 09:02:44 +04:00
Marius Kintel 619d44800e bugfix: Forgot to add csg as a known filetype 2014-05-15 16:32:25 -04:00
Marius Kintel 0e3b2d0f2f Merge branch 'list-comprehensions' of git://github.com/OskarLinde/openscad into OskarLinde-list-comprehensions 2014-05-13 13:22:27 -04:00
Marius Kintel e14df37c0e Merge branch 'let-expression' of git://github.com/OskarLinde/openscad into OskarLinde-let-expression 2014-05-13 13:13:48 -04:00
Marius Kintel 44a86c2566 Merge branch 'lowlevel1' of git://github.com/tim-caper/openscad into tim-caper-lowlevel1 2014-05-13 00:59:55 -04:00
Marius Kintel 7952d24915 Merge branch 'master' into categorized_examples
Conflicts:
	src/MainWindow.h
2014-05-13 00:50:25 -04:00
Marius Kintel 5da1861534 Merge pull request #787 from openscad/mdi+dockable-windows
Make editor and console windows dockable / make MDI mode a runtime option.
2014-05-13 00:43:46 -04:00
Torsten Paul cb5904d685 Overwrite sizeHint() for the editor to handle missing window state information.
This triggers only in case the configuration file has no window state
information (or no configuration file at all).
When this happens, the editor would default to a very ugly width due to
the dock widget layout. This overwrites the value reported via sizeHint()
to a width a bit smaller than half the main window size (either the one
loaded from the configuration or the default value of 800).
The height is only a dummy value which will be essentially ignored by
the layouting as the editor is set to expand to fill the available space.
2014-05-12 22:47:47 +02:00
Torsten Paul 7f84eb0a23 Update window title in undocked mode when loading new files. 2014-05-12 22:47:47 +02:00
Torsten Paul c976f0725b Fix resizing constraints for the animation panel. 2014-05-12 22:47:47 +02:00
Torsten Paul 4fbbc09895 Make editor and console windows dockable and make MDI mode a runtime option. 2014-05-12 22:47:42 +02:00
Marius Kintel 9ac41c6b21 Merge branch 'checkwrite' of git://github.com/tim-caper/openscad into tim-caper-checkwrite 2014-05-12 16:27:55 -04:00
Marius Kintel 71f8e62a15 Merge branch 'close-empty-win-on-open' of git://github.com/OskarLinde/openscad into OskarLinde-close-empty-win-on-open 2014-05-12 16:22:44 -04:00
Marius Kintel f560288ab1 Unset QMAKESPEC to avoid old Qt4 env to bleed over 2014-05-12 16:03:47 -04:00
Marius Kintel 1cb754603b #786 Added tests 2014-05-12 15:15:06 -04:00
Marius Kintel c4e81baf65 Merge branch 'search_crashfix' of git://github.com/OskarLinde/openscad into OskarLinde-search_crashfix 2014-05-12 13:42:42 -04:00
Marius Kintel eb98e55477 Merge pull request #788 from OskarLinde/autoreload_undo_fix
auto-reload & compile with internal editor preserve undo status
2014-05-12 13:40:30 -04:00
Marius Kintel 758edd0ecc Merge branch 'OskarLinde-proxy-icons' 2014-05-12 13:39:39 -04:00
Marius Kintel 5707bc6eaf Merge branch 'proxy-icons' of git://github.com/OskarLinde/openscad into OskarLinde-proxy-icons 2014-05-12 13:34:21 -04:00
Marius Kintel ca765dd688 #252 Downgrade to Qt-5.2.0 for Mac 2014-05-12 13:32:50 -04:00
Marius Kintel 5e8996918a Merge pull request #780 from OskarLinde/discard-shortcut
Add Mac standard Cmd-D shortcut for the 'Don't Save' button
2014-05-12 13:31:14 -04:00
Oskar Linde 5648573d24 Preserves undo status if using the internal editor together with 'autoreload and compile' 2014-05-10 22:41:46 +02:00
Oskar Linde 27e889d818 search(): fix crash bug and add additional feature
search(4,[1,2,3]) crashed OpenSCAD. Instead of crashing, one can now search vectors for matching elements.
In addition, search([[1,2]],[[0,1],[1,2],[2,3]]) will work and return [1].
2014-05-10 20:54:09 +02:00
Oskar Linde bef0efb18e Fix crash in cgalpngtest_assign-tests 2014-05-10 20:54:09 +02:00
Oskar Linde afd8d4025b Make min() and max() handle vector argument
This patch adds the ability for max() and min() to take one single vector as argument. The max (or min) element of that vector is returned if the vector contains at least one element.
2014-05-10 19:40:15 +02:00
Oskar Linde 9ccde53749 Add Mac standard Cmd-D shortcut for the 'Don't Save' button 2014-05-10 19:27:17 +02:00
Marius Kintel 6ec9934365 bugfix: missing slash in download link 2014-05-06 01:10:27 -04:00
Torsten Paul 6e04d33898 Update test cases. 2014-05-04 00:26:02 +02:00
Torsten Paul d4afb53fee Change diff output to use unified diff format to make it easier to read. 2014-05-04 00:13:00 +02:00
Torsten Paul 6a3a88e3b5 Output the OpenSCAD version number to console window. 2014-05-03 23:16:31 +02:00
Torsten Paul 533e7c1035 Fix DXF file name. 2014-05-03 23:16:30 +02:00
Torsten Paul d8ab4715e8 Don't use deprecated file parameter. 2014-05-03 23:16:30 +02:00
Torsten Paul e182b41c88 Fix name for STL file. 2014-05-03 23:16:30 +02:00
Torsten Paul d4b7f85b6a Update to use new faces parameter. 2014-05-03 23:16:30 +02:00
Torsten Paul fc90a385a7 Add missing DXF file for flat_body.scad (was example009.dxf). 2014-05-03 23:16:30 +02:00
Torsten Paul 89570cb6fe Move offset example into new directory structure. 2014-05-03 23:16:11 +02:00
shaina7837 2b14befb6f examples showed in separate method 2014-05-03 21:15:05 +02:00
shaina7837 de7cea8a17 example file change 2014-05-03 21:15:03 +02:00
shaina7837 b1976cf3ff categorized_examples 2014-05-03 21:14:57 +02:00
Oskar Linde 75e66a531b Mac: Give document windows proper proxy icons 2014-05-03 19:15:36 +02:00
Oskar Linde 180bd906b7 Avoid leaving the first empty document window when opening a file in MDI mode 2014-05-03 18:20:37 +02:00
Tim V. Shaporev 76389d83cc fixup issue 766 2014-05-03 19:44:22 +04:00
Oskar Linde b611ed5eac Add list-comprehensions 2014-05-03 17:24:44 +02:00
Oskar Linde ed3041c551 Add a let() expression 2014-05-03 11:19:30 +02:00
Tim V. Shaporev ebb075315f low-level optimization to reduce stack usage & accelerate calculations 2014-05-02 10:03:46 +04:00
Ben Gamari b984297e28 GeometryEvaluator: Fix signed-ness warnings 2014-04-28 13:37:43 -04:00
Ben Gamari 3d21e84b44 clipper-utils: Fix signed-ness warning 2014-04-28 13:37:43 -04:00
Ben Gamari b5337ad338 Various whitespace fixes 2014-04-28 13:37:43 -04:00
Ben Gamari ff466c2189 Switch from #define guards to #pragma once
As well as a few whitespace cleanups
2014-04-28 13:32:19 -04:00
Marius Kintel 065789e0d7 Sync two remaining test cases after merging unstable. Fixes #758 2014-04-27 23:21:20 -04:00
Marius Kintel 63f0ac2c8c Updated Mac setenv script 2014-04-27 02:39:16 -04:00
Marius Kintel 0e2e8d9f94 Merge pull request #769 from tim-caper/builtin2
exact sin/cos and eliminated duplicate args computations
2014-04-27 02:37:32 -04:00
Marius Kintel 11ef366601 Make Mac dependencies work on 10.7+. This causes some weird artifacts. See #633 2014-04-27 01:02:18 -04:00
Don Bright 9be9d1513d build linux snapshot with QT5 by default 2014-04-26 23:48:18 -05:00
Don Bright 319737daff Merge branch 'master' of github.com:openscad/openscad 2014-04-26 23:33:30 -05:00
Don Bright 2f4617ddef remove #ifdefs for eigen version 2 ( see issue #532 ) 2014-04-26 23:14:24 -05:00
Don Bright f80865c950 qt 5.0->5.2 2014-04-26 23:05:38 -05:00
Don Bright 464e3fc76d change max qt version in README to support qt5 2014-04-26 23:05:00 -05:00
Marius Kintel 146f977422 Merge pull request #770 from openscad/copy-paste-fix
Fix keyboard shortcuts in automatically generated actions (fixes #408).
2014-04-26 23:58:12 -04:00
Don Bright eda854d54c default to qt5 for MXE cross build for Win 2014-04-26 22:56:51 -05:00
Don Bright d32956a942 remove /opt/qt5 hack in setenv script. (distros have their own way to specify) 2014-04-26 22:46:08 -05:00
Marius Kintel f9b3d357ff build fix after merging text and the new master 2014-04-26 22:09:15 -04:00
Marius Kintel 2cba2a1b55 Merge branch 'master' into text-module
Conflicts:
	scripts/macosx-build-homebrew.sh
	scripts/mingw-x-build-dependencies.sh
	scripts/uni-build-dependencies.sh
	scripts/uni-get-dependencies.sh
	src/GeometryEvaluator.h
	src/MainWindow.ui
	src/clipper-utils.h
	src/mainwin.cc
	tests/CMakeLists.txt
2014-04-26 22:08:31 -04:00
Torsten Paul 7a05fb40d8 Fix keyboard shortcuts in automatically generated actions (fixes #408).
Having our own "copy" menu did cause the automatically generated action
of the QTextEditor used as console to drop the CTRL+C link. Using the
WidgetWithChildrenShortcut settings seems to fix that for Qt4 and Qt5.
2014-04-26 23:04:09 +02:00
Tim V. Shaporev 02137273ff exact sin/cos and eliminated duplicate args computations:
1) eliminated duplicate arguments computations for most of builtin functions (except serach & lookup);
2) provide exact results of sin or cos whenever possible like cos(90)
2014-04-25 10:46:45 +04:00
Marius Kintel 32425c6963 Merge branch 'unstable' into text-module 2014-04-25 02:35:24 -04:00
Marius Kintel b2b3306205 Merge branch 'master' into c++11 2014-04-25 02:29:40 -04:00
Marius Kintel 05e1dd7df4 #252 Use Qt5 as default for Mac snapshots 2014-04-25 02:00:06 -04:00
Marius Kintel a9f9fb342a #252 Make filename drops on the editor open the file 2014-04-25 00:54:22 -04:00
Marius Kintel f862e9bd87 Merge branch 'master' of github.com:openscad/openscad 2014-04-24 22:47:19 -04:00
Marius Kintel 7a5035f14e bugfix: use 470 to read qmake variable 2014-04-24 22:46:36 -04:00
Marius Kintel 75dc6b16d1 Use a power of two as scaling factor to be nice to the computer 2014-04-24 01:07:48 -04:00
Marius Kintel 9613e992da Suppress unused local typedef warning for gcc. Fixes #757 2014-04-24 00:01:42 -04:00
Marius Kintel 863303f601 Improved cleanup of aborted normalization. This should fix #762 2014-04-23 23:59:27 -04:00
Marius Kintel b9f8c6b77d Strip color profile from expected images. Makes test work with newer versions of libpng 2014-04-23 02:44:39 -04:00
Don Bright b5974b5da0 NetBSD build fixes 2014-04-22 17:00:38 +00:00
Marius Kintel 90b394015b Merge remote-tracking branch 'origin/master' into unstable
Conflicts:
	src/MainWindow.ui
	src/mainwin.cc
2014-04-22 01:13:20 -04:00
Marius Kintel 91074eba48 Merge pull request #752 from qSLX/master
Preventing losing keyboard focus by editor.
2014-04-22 01:03:21 -04:00
Marius Kintel 23ac323c88 Strip color profile from expected images. Makes test work with newer versions of libpng 2014-04-21 23:23:25 -04:00
Marius Kintel 0a851b0892 Merge remote-tracking branch 'origin/master' into unstable 2014-04-21 22:34:36 -04:00
Marius Kintel e9981048fa Require minimum Mac OS X 10.7 2014-04-21 12:44:26 -04:00
Marius Kintel f32a7bbb91 Merge pull request #760 from openscad/slow-min-max-fix
Evaluate arguments only once in min/max builtins (fixes #738).
2014-04-15 16:42:53 -04:00
Torsten Paul d2240efca8 Evaluate arguments only once in min/max builtins (fixes #738). 2014-04-15 22:36:02 +02:00
Marius Kintel 296d2824d5 Merge pull request #745 from openscad/contextfixme
fix issue #694
2014-04-12 22:32:43 -04:00
Don Bright 355aac26e3 fix datecode bug 2014-04-11 08:37:28 -05:00
Sławomir Demeszko ff555d760b Preventing loosing keyboard focus by editor.
When you write your code in editor sometimes you want to rotate or move object
on 3D view, but due stealing focus by this widget it is quite tedious.
You need additional mouse click to return focus to editor and search line where
you last edited. This behavior is not neccessary as we can interpret keyboard
events globally (in MainWindow) and send commands to 3D view.

Console window need ClickFocus to show context menu.

Zoom In/Out 3D view is assigned to CTRL+[ and CTRL+]. Adding also additional
shortcut to zoom in editor font CTRL+= (with CTRL++ SHIFT is necessary).
2014-04-11 01:18:08 +02:00
Don Bright 9535627657 update documentation and add assertion check for Stack to destructor 2014-04-10 17:29:31 -05:00
Don Bright 0a20e32dc5 Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-04-10 00:28:26 -05:00
Marius Kintel e30a40f432 minor cleanup of stack handling 2014-04-10 01:23:01 -04:00
Don Bright f0f2a68899 fix issue #751 2014-04-10 00:21:24 -05:00
Marius Kintel 2a16aa1a4f Merge branch 'unstable' into contextfixme 2014-04-10 00:07:36 -04:00
Marius Kintel 0e69decc0e Merge pull request #747 from OskarLinde/nan_fix
NaN comparisons were inconsistent
2014-04-09 23:49:26 -04:00
Marius Kintel 8d6fb11f32 Merge pull request #750 from openscad/non-manifold-export-crash
Prevent crash in OFF/AMF export caused by non-manifold models (fixes #748).
2014-04-09 23:48:41 -04:00
Don Bright a85e103ba2 Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-04-09 20:16:04 -05:00
Torsten Paul 7fcfe6bb8d Prevent crash in OFF/AMF export caused by non-manifold models (fixes #748). 2014-04-09 21:51:07 +02:00
Oskar Linde f81ae9b4fd Fix NaN comparison bug 2014-04-08 15:36:12 +02:00
Oskar Linde 90e8f70da2 Add regression tests for comparison with NaN 2014-04-08 15:36:12 +02:00
Don Bright ea4a10c027 fix bugs in date code setting. fix bug with crlf conversion 2014-04-07 16:36:31 -05:00
Don Bright 1d9fa45715 Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-04-05 15:04:09 -05:00
Don Bright 4ff4744d8d find imagemagick using windows registry 2014-04-05 15:04:00 -05:00
Don Bright 0d950338e1 fix issue #694 2014-04-04 23:40:23 -05:00
Don Bright b25f744b25 bugfix - cd out of website path before rebuilding on loop 2014-04-04 20:10:08 -05:00
Don Bright 57668f0e03 fix: \" was being replaced with /" ,messing up tests pretty print 2014-04-03 22:38:08 -05:00
Don Bright f1f7b1a665 fix bash bug when using awk to convert lf to crlf 2014-04-03 17:08:28 -05:00
Don Bright 1ecf715476 add mime-type under linux during make install ( issue #696 ) 2014-04-02 18:16:31 -05:00
Don Bright e8cb468999 test for issue #703 (polyhedron w undef arguments) 2014-04-02 17:45:25 -05:00
Don Bright 49d545285c test for crash on 'undef' args to polyhedron(), issue #703 2014-04-02 17:42:49 -05:00
Don Bright 5bb2ab0c76 fixes issue #701 (Handle Debian KFreeBSD) 2014-04-02 17:36:10 -05:00
Don Bright 70dbe2eef7 fix issue #702 (rm test_cmdline_tool executable bit) 2014-04-02 17:12:23 -05:00
Don Bright 58017aeb08 put 'tests' in name of OpenSCAD Tests on Windows. clean up some bad scripting 2014-04-02 03:10:26 -05:00
Don Bright f3cd66a416 fix broken build, move export_amf inside ENABLE_CGAL #ifdef 2014-04-02 01:51:10 -05:00
Don Bright 61483f53e2 more CTEST_CUSTOM_POST_TEST fixes 2014-04-02 01:45:32 -05:00
Don Bright d0b5e193b8 deal with ctest CTEST_CUSTOM_POST_TEST argument bugs 2014-04-02 01:44:17 -05:00
Don Bright 5b1cb69f59 better finding of logfile on windows. fix bug in test report gen. make
it clear test_pretty_print.exe wont work on cross builds
2014-04-02 01:29:38 -05:00
Don Bright 24e029c76f convert text files from lf to crlf for windows test build 2014-04-02 01:14:35 -05:00
Don Bright 214870062b add WinReadme.txt to Windows(TM) test suite package to prevent confusion 2014-04-01 21:52:09 -05:00
Marius Kintel ff55dc026e Merge pull request #731 from openscad/amf-export
Amf export
2014-04-01 23:37:11 +02:00
Marius Kintel 53aaa044d7 Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-04-01 23:14:43 +02:00
Marius Kintel cba064e739 Upload to www/snapshots 2014-04-01 23:14:39 +02:00
Marius Kintel a0760b7266 Merge pull request #736 from openscad/fix-menu-order
Switch menu order back to File, Edit, Design, View, Help (fixes #733).
2014-04-01 22:57:16 +02:00
Torsten Paul e04ab86803 Switch menu order back to File, Edit, Design, View, Help (fixes #733). 2014-04-01 19:26:32 +02:00
Don Bright 1931cdacde fix too-slow upload rate limit 2014-03-31 22:14:48 -05:00
Don Bright b7f7487727 dont build GUI twice!!!! 2014-03-31 20:27:51 -05:00
Don Bright 1ffda82db0 fix batch file display for filenames with spaces in them 2014-03-31 19:58:01 -05:00
Don Bright 6ce1809828 upload to www/snapshots/ directory 2014-03-31 19:46:42 -05:00
Don Bright 10c1c7954c Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-03-30 21:06:14 -05:00
Don Bright 36d8f895b4 fix the documentation (merge errors) 2014-03-30 21:05:49 -05:00
Don Bright 34358c8725 properly remove old github.openscad.com code before update 2014-03-30 18:48:25 -05:00
Torsten Paul e240220c11 Add test case reference files for offset() example025.scad. 2014-03-31 00:23:11 +02:00
Marius Kintel cf81703751 Merge branch 'unstable' into offset 2014-03-31 00:04:58 +02:00
Marius Kintel b1f0fb55cd Updated tests after surface(invert) change 2014-03-31 00:04:49 +02:00
Marius Kintel cfccc6ac83 Merge branch 'unstable' into offset 2014-03-30 23:55:18 +02:00
Torsten Paul 71f6abda24 Rename join_type "square" to the more commonly used "bevel". 2014-03-30 23:51:08 +02:00
Torsten Paul 5d8507f725 Add test cases for offset(). 2014-03-30 23:51:04 +02:00
Marius Kintel f72e4047d2 bugfix: Make OffsetNode behave as AbstractPolyNode if a visitor doesn't handle it 2014-03-30 23:41:41 +02:00
Torsten Paul 49dc984bef Add offset() module to inset/outset polygons using Clipper (fixes #483). 2014-03-30 23:41:37 +02:00
Marius Kintel 14aeaba3b7 Merge branch 'tim-caper-consoleprocevents' into unstable 2014-03-30 23:37:54 +02:00
Marius Kintel 12bfcd30d4 Merge branch 'consoleprocevents' of git://github.com/tim-caper/openscad into tim-caper-consoleprocevents 2014-03-30 23:37:42 +02:00
Marius Kintel 66b752f95a Merge branch 'master' into unstable
Conflicts:
	README.md
	scripts/uni-build-dependencies.sh
	scripts/uni-get-dependencies.sh
2014-03-30 23:32:48 +02:00
Don Bright ae307df8f3 Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-03-30 16:25:45 -05:00
Don Bright 4e9275f6f0 add test suite to windows(TM) build 2014-03-30 16:24:20 -05:00
Torsten Paul 9f76288c74 Add AMF export via command line. 2014-03-30 22:59:18 +02:00
Mark Cooper cdab3e9ab8 Add AMF export. 2014-03-30 22:59:18 +02:00
Marius Kintel 7809a9e916 Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-03-30 22:55:36 +02:00
Marius Kintel 98957526c8 Merge branch 'unstable' into svg-export 2014-03-30 22:53:31 +02:00
Don Bright 5bd8cf540d better search for ctest.exe, better running of batch file message 2014-03-30 15:48:59 -05:00
Don Bright ebfdec303a better finding of MCAD under windows(TM) test run. better pretty-print if
all tests passed
2014-03-30 15:36:31 -05:00
Don Bright 2b1ab8e1ed better indicate in report if all tests pass. add 'doc' to test bundle. 2014-03-30 14:57:30 -05:00
Don Bright 8fb483c0ea make mingwcon.bat work better. improve git error message for test print. 2014-03-30 14:43:22 -05:00
Don Bright c3a3710cb4 Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-03-30 13:07:42 -05:00
Don Bright 753bb285f5 mingw/win(TM) run: find ctest.exe and add to path 2014-03-30 13:01:39 -05:00
Marius Kintel 37eb4d91eb Merge pull request #730 from openscad/memory-leak-fix
Memory leak fix
2014-03-30 19:58:07 +02:00
Don Bright 97ebae9f78 polish up so its easier to run under Windows(TM) 2014-03-30 12:23:58 -05:00
Torsten Paul 5667ae14d4 Delete ThrownTogetherRenderer and CSG Root Chain. 2014-03-30 19:16:50 +02:00
Torsten Paul d8a1b5f7eb Convert Assignment to use shared pointers for Expressions (fixes #709). 2014-03-30 19:16:50 +02:00
Torsten Paul d253d66000 Fix memory leak in sphere rendering. 2014-03-30 19:16:45 +02:00
Marius Kintel 0e9d06669e Merge pull request #708 from openscad/zoompeace
Zoompeace
2014-03-30 19:09:27 +02:00
Torsten Paul 2a59fa7bfb Fix memory leak in lexer for $var assignments. 2014-03-30 19:04:49 +02:00
Marius Kintel 278d5f18e3 Merge pull request #729 from openscad/surface-image
Add png support for surface() module (fixes #721).
2014-03-30 18:47:30 +02:00
Marius Kintel 0507d3864f Merge branch 'unstable' of github.com:openscad/openscad into unstable
Conflicts:
	README.md
	scripts/builder.sh
2014-03-30 18:30:02 +02:00
Torsten Paul 6d892a4742 Add png support for surface() module (fixes #721). 2014-03-29 23:22:27 +01:00
Don Bright 90c549ad0a fix the use of imagemagick convert during cross-built tests. 2014-03-29 13:14:41 -05:00
Tim V. Shaporev 4f0fd23810 process events in consoleOutput() to allow error message display right away 2014-03-29 13:43:28 +04:00
Tim V. Shaporev 80f8b850be add quotes to line 80 to prevent diagnostics 2014-03-29 11:37:34 +04:00
Don Bright 93eb89c00b dont show a screen full of 'no such file' errors on failed tests 2014-03-28 23:01:36 -05:00
Don Bright 53a0f9c4cf MXE cross build of tests: polish the scripts, introduce conversion script
for CTest
2014-03-28 22:55:37 -05:00
Don Bright 80b226bbe4 add Tests build for mxe/mingw to release-common. make GLIB2 better for crossbuild 2014-03-28 16:23:23 -05:00
Don Bright 563583ef4b first stage of moving towards cross-build of test suite for mingw 2014-03-28 16:02:45 -05:00
Don Bright 590711aa26 fix build problem under qt5 2014-03-28 14:01:14 -05:00
Don Bright 265c3abcae fix compiler warning 2014-03-28 12:50:44 -05:00
Don Bright 37b0ad1ec9 enable qt5 mxe mingw cross build 2014-03-28 12:36:14 -05:00
Don Bright e6a33b3b2b build qt5 in addition to qt4 under MXE cross build 2014-03-28 12:30:45 -05:00
Don Bright 0d9b20dc14 Merge branch 'unstable' of github.com:openscad/openscad into unstable
Conflicts:
	scripts/builder.sh
2014-03-27 18:30:09 -05:00
Don Bright 41c7e72ca8 no longer suggest the 'time saver' cgal/opencsg dep build, to avoid confusion
with outdated cgal versions on systems.
2014-03-27 18:28:40 -05:00
Don Bright 49d32100df fix eigen3 find bug 2014-03-27 18:23:07 -05:00
Don Bright 45ef0c9a6e remove eigen2 checks per patch from @fcbsd to master branch 2014-03-27 18:18:38 -05:00
Don Bright 819c74d8ab rate limit scp upload 2014-03-27 18:16:41 -05:00
Don Bright a040be29e6 loop - improve sleep code 2014-03-27 18:14:06 -05:00
Don Bright f80fc6c78b fix loop bug 2014-03-25 22:10:04 -05:00
Don Bright 74b0cb5127 enable looping 2014-03-25 22:01:31 -05:00
Don Bright 46c0a8520d exit if missing nsis. do git fetch/git pull if openscad already checked out. 2014-03-25 16:49:38 -05:00
Don Bright fc665d0b3a check for nsis at beginning of builder.sh not in the middle 2014-03-24 22:14:26 -05:00
Don Bright d23a4664b1 Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-03-23 21:54:06 -05:00
Don Bright c950358b86 better ssh auth sock handling 2014-03-23 21:53:38 -05:00
don bright 7a871202f3 better printing of glib2 include dirs 2014-03-24 03:28:34 +01:00
Don Bright 3e22f8aa4d debug message 2014-03-23 21:22:45 -05:00
don bright 424dc86cc6 better glib detection (again) 2014-03-24 03:20:28 +01:00
Don Bright fc78dedfe8 debugging output 2014-03-23 21:14:28 -05:00
Don Bright 6b1079b7b7 better glib2 detection 2014-03-23 21:12:01 -05:00
Don Bright 1473cf41ac fix cmake version detection 2014-03-23 20:28:26 -05:00
Don Bright d3d1fc72da Merge branch 'unstable' of github.com:openscad/openscad into unstable
Conflicts:
	scripts/uni-build-dependencies.sh
2014-03-23 20:26:59 -05:00
don bright 8176b4ce27 fix build on gcc 4.5 (typedef typename is c++0x) 2014-03-24 02:00:42 +01:00
don bright 03d62f8242 fix build gcc 4.5 (CGAL ENABLE during DEBUG of Geometry Cache) 2014-03-24 01:46:02 +01:00
don bright de0201ad93 undo nef poly 'fix', wasnt a fix 2014-03-24 01:41:53 +01:00
don bright 36eb6758b0 tweak pkg-config detection. also fix weird gcc4.5 problem w NefPoly 2014-03-24 01:33:52 +01:00
don bright 3d35e5ec74 make glib2 work on debian 6 (build libffi, build pkg-config) 2014-03-24 01:17:43 +01:00
don bright 237dee86fb fix build by requiring newer cmake for string(FIND function) in tests/ build 2014-03-24 00:27:09 +01:00
Don Bright 3bdd28ec2b fix broken mxe dependency build 2014-03-23 13:13:40 -05:00
Torsten Paul fcf7b27257 Merge pull request #712 from openscad/number-fix
Catch exceptions caused by parsing invalid double values (fixes #706).
2014-03-23 00:00:50 +01:00
Torsten Paul 7922c3dbc9 Catch exceptions caused by parsing invalid double values (fixes #706). 2014-03-22 23:46:34 +01:00
Don Bright 6d7db87b8e checkout stable branch of MXE in mingw-x-build-deps (match builder.sh) 2014-03-22 01:39:23 -05:00
Don Bright 87d553d134 .static not in stable branch of mxe yet, revert prev. commit 2014-03-22 01:36:09 -05:00
Don Bright 6fdd4e2041 do not build glib2 or gettext by default, assume most systems will have 2014-03-21 23:46:30 -05:00
Don Bright 6cb5f11f2e fix glib2 build for mingw. update mxe target to '.static' 2014-03-21 23:45:29 -05:00
Don Bright e32a3ff053 remove pythong paramiko from deps list 2014-03-21 22:56:18 -05:00
Don Bright d9220a25b3 dont always build glib2 in uni-build-deps, fix mingw issues + build on systems
that already have glib2
2014-03-19 20:49:15 -05:00
Don Bright 0d8c9359b5 fix build errors 2014-03-18 18:59:47 -05:00
Don Bright 3022a83148 disable ctrl-mouse-wheel zoom on Mac by default. add preference to toggle 2014-03-18 18:52:15 -05:00
Don Bright 33c81d96c9 fix issue #705 by using MXE's mingw-*-pkgconfig instead of system 2014-03-18 00:47:54 -05:00
Marius Kintel d2eecc4e06 access method for parent context 2014-03-16 00:10:45 -03:00
Don Bright 0dd7daf68d do not suggest the 'time saver' of only opencsg or cgal build, too confusing 2014-03-14 23:54:27 +02:00
Don Bright 8955a66153 do not build gettext or glib2 by default. fix glib2.pri to find system version.
fix spaces.
2014-03-14 22:19:45 +02:00
Marius Kintel 19de4c9d15 Merge branch 'master' into unstable 2014-03-10 10:42:53 -04:00
Torsten Paul b8dd47eae4 Merge pull request #698 from hroncok/patch-1
Make the desktop file valid
2014-03-10 09:47:07 +01:00
Miro Hrončok 3ac2b95c0a Make the desktop file valid 2014-03-10 09:45:05 +01:00
Marius Kintel 21c8d2fc98 typo 2014-03-09 15:04:07 -04:00
Marius Kintel 3e880cfb10 Merge branch 'master' of github.com:openscad/openscad 2014-03-09 13:17:58 -04:00
Marius Kintel 8d77775387 Don't delete MainWindows on close. See #694 2014-03-09 13:17:20 -04:00
Marius Kintel 2cce1e71fa bugfix: Returned pointer instead of bool. Caused infinite reload loop related to #535 2014-03-09 13:13:45 -04:00
Marius Kintel 7cad89beb7 release notes update 2014-03-09 13:13:02 -04:00
Marius Kintel ad452c5322 testing note 2014-03-09 13:12:40 -04:00
Torsten Paul 26089372d6 Merge pull request #693 from openscad/mime-type
Add mime-type description file for *.scad files. (fixes #647)
2014-03-09 16:55:33 +01:00
Torsten Paul cd5b751d92 Add mime-type description file for *.scad files. (fixes #647) 2014-03-09 16:53:48 +01:00
Torsten Paul c5de27102b Merge pull request #692 from openscad/uint32-compile-fix
Fix compile error by using uint32_t from boost namespace.
2014-03-09 16:51:06 +01:00
Torsten Paul 9907e5d7bb Fix compile error by using uint32_t from boost namespace. 2014-03-09 16:50:03 +01:00
Marius Kintel 8a5bd6996a minor version number fix 2014-03-07 00:16:56 -05:00
Marius Kintel e57a34731c Updated MCAD 2014-03-07 00:15:53 -05:00
Marius Kintel 74c13d6ce3 minor clarification 2014-03-07 00:07:52 -05:00
Marius Kintel b3eab459f0 Merge pull request #690 from openscad/about_update
add Torsten Paul to openscad github team, add patch contributors.
2014-03-06 21:13:14 -05:00
Don Bright 5d9f9fe16f add Torsten Paul to openscad github team, add patch contributors. 2014-03-06 18:17:17 -06:00
Marius Kintel 32f3fe3b84 boost version 2014-03-06 11:29:14 -05:00
Marius Kintel d6d55c32e5 github wants https 2014-03-06 01:04:31 -05:00
Marius Kintel 261109b036 Release preparations 2014-03-06 00:29:08 -05:00
Marius Kintel 1d78844d4d Updated MCAD 2014-03-06 00:07:34 -05:00
Marius Kintel 537a03eb18 Only upload failed tests 2014-03-05 23:14:52 -05:00
Marius Kintel 9b0592f4ab Reenable master branch for travis 2014-03-05 22:18:53 -05:00
Marius Kintel 9d63d2d4c8 Enable all tests 2014-03-05 22:18:16 -05:00
Marius Kintel 86b8823420 Experiment with travis and encoded ssh keys 2014-03-05 21:47:13 -05:00
Marius Kintel 04a40c0063 Experiment with travis and encoded ssh keys 2014-03-05 21:38:48 -05:00
Marius Kintel 95efeeaa9d Experiment with travis and encoded ssh keys 2014-03-05 21:28:43 -05:00
Marius Kintel 3b965b1b72 Experiment with travis and encoded ssh keys 2014-03-05 21:22:05 -05:00
Marius Kintel fa78aaabc4 Experiment with travis and encoded ssh keys 2014-03-05 21:08:33 -05:00
Marius Kintel 8ac6039ea9 Experiment with travis and encoded ssh keys 2014-03-05 20:53:12 -05:00
Marius Kintel da94adca1a Experiment with travis and encoded ssh keys 2014-03-05 20:39:00 -05:00
Marius Kintel 875cbcceaf Experiment with travis and encoded ssh keys 2014-03-05 20:37:05 -05:00
Torsten Paul 0c2f2b0749 Register experimental features only with ENABLE_EXPERIMENTAL defined (fixes #687). 2014-03-04 21:35:44 +01:00
Marius Kintel c1ed1146cf Disable Update tab for platforms where this is not implemented. Fixes #416 2014-03-04 00:52:27 -05:00
Marius Kintel f4efa5e358 Updated manpage 2014-03-04 00:31:44 -05:00
Marius Kintel aeeeb967e7 Be more explicit when using boost::math functions 2014-03-03 23:37:25 -05:00
Marius Kintel a6f2b9fa6c Remember to update manpages 2014-03-03 23:37:02 -05:00
Marius Kintel e54d0cca6e Moved MACOSX_DEPLOYMENT_TARGET to the deploy script to allow building against the current system 2014-03-03 21:32:52 -05:00
Marius Kintel d6340b18db Merge branch 'master' into c++11 2014-03-03 21:04:27 -05:00
Marius Kintel 8635e94166 Updated tests after fixing #678 2014-03-02 23:31:36 -05:00
Marius Kintel ab6192e465 Merge branch 'master' into unstable
Conflicts:
	src/openscad.cc
	src/printutils.h
2014-03-02 22:41:05 -05:00
Marius Kintel fbfc9b0879 Print each deprecation message only once per compilation. Fixes #678 2014-03-02 22:09:10 -05:00
Marius Kintel f3d97f3751 Merge branch 'master' into issue680 2014-03-02 21:53:00 -05:00
Marius Kintel fd938e4423 Added openSUSE maintainer 2014-03-02 18:38:08 -05:00
Torsten Paul f6129ffdb8 Add SVG export via command line. 2014-03-02 19:26:21 +01:00
Torsten Paul f84c5acada Add SVG export. 2014-03-02 19:26:17 +01:00
Don Bright 3de6986d8f Merge branch 'master' of github.com:openscad/openscad into issue680 2014-03-01 15:16:39 -06:00
Don Bright 780d897ff2 fix issue 680 2014-03-01 15:14:35 -06:00
Marius Kintel c6520e22fc Added Arch Linux maintainer 2014-03-01 15:27:08 -05:00
Marius Kintel bbfddcdd85 killed warning; unused variable 2014-03-01 15:15:13 -05:00
Marius Kintel 52ceb71444 devicePixelRatio() is reported to not exist before Qt-5.0.2 2014-03-01 15:14:05 -05:00
Marius Kintel 43088239e0 killed warning 2014-03-01 15:13:34 -05:00
Marius Kintel 1d211498c6 Added note to encourage people to build with experimental features enabled 2014-03-01 15:11:52 -05:00
Don Bright b2fbad4005 attempt to band-aid fix issue 677 by changing fromUtf8 to fromLocal8Bit 2014-02-27 17:42:22 -06:00
Don Bright 484802d685 remove extraneous this->highlighter from Mainwindow 2014-02-27 06:14:10 -06:00
Don Bright 36af7cd972 Merge branch 'master' of github.com:openscad/openscad 2014-02-27 06:13:20 -06:00
Don Bright 4fe662a90a add regression test ('manual') for highlighter scheme changer 2014-02-26 23:50:20 -06:00
Marius Kintel fb49c77f25 Merge branch 'master' of github.com:openscad/openscad 2014-02-27 00:14:33 -05:00
Marius Kintel ec40bae6e9 Added note about auto-uploading tests 2014-02-27 00:14:30 -05:00
Don Bright e2d6afecf5 fix crash bug (mainwindow no longer has a 'highlighter' member) 2014-02-26 22:39:07 -06:00
Marius Kintel bc86c4936d Merge pull request #674 from openscad/jawsreader
Jawsreader bug fix
2014-02-26 20:10:33 -05:00
Don Bright 14771c90be remove experimental menu options 2014-02-26 18:40:32 -06:00
Don Bright afcf7239ab fix broken linux gui build!! 2014-02-26 18:29:57 -06:00
Don Bright ced162977f fix broken test build 2014-02-26 18:07:30 -06:00
Don Bright 59cd328b9b Merge branch 'master' of github.com:openscad/openscad into jawsreader 2014-02-25 20:21:35 -06:00
Don Bright 36e0d73e69 enable qtaccessibility plugin so that screenreading of QAction menu works
(tested on Jaws screenreader demo on Windows 7, per bug report to mailing list
by Robert Jaquiss 2/25/2014)
2014-02-25 20:20:14 -06:00
Marius Kintel 341571ce52 Manage releases on github, use markdown for release notes 2014-02-25 02:05:21 -05:00
Don Bright 020d65eff0 fix issue #671 (regression) 2014-02-24 18:38:45 -06:00
Don Bright 776df9fc0e update release-common.sh calls to use 'snapshot', add 'release' stub 2014-02-24 18:24:39 -06:00
Marius Kintel 2db7597541 Updated RELEASE NOTES 2014-02-23 16:42:58 -05:00
Marius Kintel e1623ab3e0 Merge branch 'master' into unstable 2014-02-23 15:49:50 -05:00
Marius Kintel bab951b344 Merge branch 'master' into unstable
Conflicts:
	src/CGALEvaluator.cc
	src/MainWindow.h
	src/MainWindow.ui
	src/import.cc
	src/mainwin.cc
	src/winconsole.c
	tests/CMakeLists.txt
2014-02-23 15:49:26 -05:00
Marius Kintel 3ac8895d7a Enable experimental features only for snapshot builds 2014-02-23 15:47:26 -05:00
Marius Kintel 2712465a1d Merge branch 'master' of github.com:openscad/openscad 2014-02-23 14:58:11 -05:00
Marius Kintel e9ace30cca Print error message if upload fails 2014-02-22 20:00:29 -05:00
Marius Kintel fd1ae57c16 Merge branch 'f_enable_cpp11' of git://github.com/8p0/openscad into 8p0-f_enable_cpp11 2014-02-22 11:30:02 -05:00
Marius Kintel 6867c50003 Added fixme for release builds 2014-02-22 11:29:43 -05:00
Marius Kintel 00b584177d Merge pull request #668 from tim-caper/master
proper quotation of \" special case
2014-02-22 10:39:51 -05:00
Tim V. Shaporev 5024821991 proper quotation of \" special case 2014-02-22 12:55:04 +04:00
Jan Huwald 086f231d5a fix typo 2014-02-21 12:21:38 +01:00
Jan Huwald c259e5275c compile with -std=c++0x to support older C++11 compilers 2014-02-21 09:22:39 +01:00
Marius Kintel bd14e4bab3 Inspired by #386, delete main windows on close 2014-02-21 02:09:30 -05:00
Marius Kintel 0b8929cf1c #665 support multiple open files with the same basename. Always clean up backups on window close 2014-02-21 00:02:09 -05:00
Marius Kintel 3e6f659990 Added failing test for #666 2014-02-20 01:04:04 -05:00
Marius Kintel 0575b9209c Merge pull request #663 from openscad/issue235
Issue235
2014-02-20 00:08:39 -05:00
Marius Kintel c9df4c0d26 Last #235 fix: Don't return empty PolySets, as they will be interpreted as 3D object later, causing a mixed 2D-3D error 2014-02-19 23:33:31 -05:00
Don Bright ff83978cf3 Merge branch 'issue235' of github.com:openscad/openscad into issue235 2014-02-19 05:27:36 -06:00
Don Bright d4b0a3ae50 Merge branch 'master' of github.com:openscad/openscad into issue235 2014-02-19 05:27:03 -06:00
Don Bright ccc782e39c fix failing tests per comments on github, make slightly more robust 2014-02-19 05:26:19 -06:00
Marius Kintel ed2ea087fb #665 Improve automatic backup: Only save if editor is dirty 2014-02-18 00:00:33 -05:00
Marius Kintel 22ac006f33 Editor hiding broke after adding the search panel. Fixes #664 2014-02-17 23:49:45 -05:00
Marius Kintel a4bbcda45e Merge branch 'master' into issue406 2014-02-17 22:44:59 -05:00
Marius Kintel 14dc012e2c Merge remote-tracking branch 'origin/master' into issue235 2014-02-17 22:19:47 -05:00
Marius Kintel 1aed4cfa47 Updated test to use children() instead of the deprecated child() 2014-02-17 22:19:31 -05:00
Don Bright 7b7a76a364 Merge branch 'master' of github.com:openscad/openscad into issue235 2014-02-17 20:34:53 -06:00
Don Bright 3a77956bdd Merge branch 'master' of github.com:openscad/openscad into issue406 2014-02-17 20:34:06 -06:00
Don Bright 464bdf4fc0 fix build problem 2014-02-17 20:30:43 -06:00
Marius Kintel 36cd62db80 Simple test of -D cmd-line parameter 2014-02-17 21:04:37 -05:00
Marius Kintel 09e2f1116f mac build fix: correctly link Cocoa to core libraries 2014-02-17 21:00:32 -05:00
Marius Kintel 3682c45263 bugfix: Return boolean from ModuleCache::evaluate() 2014-02-17 20:58:12 -05:00
Marius Kintel 702ad5c6f9 Merge branch 'master' of git://github.com/tim-caper/openscad into tim-caper-master 2014-02-17 20:56:17 -05:00
Marius Kintel 7bb18bae69 Revert "Backported 2e3729ab22 to master; redo assemblePath for Win. redo openscad.com to handle spaces in filenames"
This reverts commit 55192e46a4.
2014-02-17 20:53:09 -05:00
Don Bright 6326aab677 fix issue #235 2014-02-17 14:19:12 -06:00
Don Bright 838e80ae34 refactor + rehighlight only if we are no doing a reload (issue #406) 2014-02-17 13:19:42 -06:00
Marius Kintel d2024c12bb Merge pull request #656 from openscad/vector-norm-cross
Add vector norm() and cross().
2014-02-16 22:26:06 -05:00
Marius Kintel 8a23013af2 Merge pull request #655 from openscad/openscad-path-fix
Fix handling of platform specific path separator (fixes #651).
2014-02-16 22:25:39 -05:00
Torsten Paul 12b115e4b0 Add cross() function to calculate vector cross product. 2014-02-16 23:04:48 +01:00
Torsten Paul 990e2a472b Add test cases for norm(). 2014-02-16 22:47:55 +01:00
Steve Kelly e5d703bee3 Implement norm() function to find the length of a vector. 2014-02-16 22:11:47 +01:00
Torsten Paul 6839e613bf Fix handling of platform specific path separator (fixes #651). 2014-02-16 21:13:21 +01:00
Marius Kintel e66e1691a9 Manually set icon size, this should fix #640 2014-02-14 00:44:51 -05:00
Jan Huwald ec3743dc9a compile as C++11 2014-02-13 12:00:12 +01:00
Marius Kintel 78baae599b Adapted wil1471's pull request #385 to master 2014-02-13 00:15:35 -05:00
Marius Kintel ada0609b9c Bugfix: GUI stayed locked if CGAL compile failed 2014-02-13 00:06:48 -05:00
Marius Kintel dbaf1776d8 More comments to clarify #495 2014-02-11 01:33:06 -05:00
Marius Kintel 57ac24013e Added testcase for #112 2014-02-11 01:04:49 -05:00
Marius Kintel ec52c4e713 Added test for issue exporting volume with a cavity - #495 2014-02-11 01:04:27 -05:00
Marius Kintel 8d8518d128 Fixed issue 1 of #598: Auto-compile on subsequent File->Open 2014-02-10 19:17:39 -05:00
Marius Kintel 64eee477c7 Merge branch 'master' into export-menu 2014-02-10 13:34:19 -05:00
Marius Kintel 214fb779ac Merge branch 'master' of github.com:openscad/openscad 2014-02-10 13:30:57 -05:00
Torsten Paul 157bf75a9b Move Export menu entries to a sub-menu of the File menu (fixes #474). 2014-02-10 19:28:36 +01:00
Marius Kintel dcb0b53d11 Deprecated child() 2014-02-10 02:46:24 -05:00
Marius Kintel d64a0609fa #504 Updated example: child() -> children() 2014-02-10 02:40:54 -05:00
Marius Kintel 6f4cf3ebec Fixed a bug failing to detect changes in underlying libraries. Should improve some of the issues reported in #181 2014-02-10 02:19:56 -05:00
Marius Kintel e4daa42cf6 Added test for #181 2014-02-10 02:18:50 -05:00
Marius Kintel 3ce44e92a4 cosmetics 2014-02-10 02:18:07 -05:00
Marius Kintel 603ce02420 Cleaned up some module cache misbehaviors. Fixes #535 2014-02-09 17:17:10 -05:00
Marius Kintel 65aeb0ad19 Added test for #535 2014-02-09 16:26:43 -05:00
Marius Kintel 93cdb34d8b Use homebrew-built libraries, use actual # of CPUs 2014-02-06 18:55:14 -05:00
Marius Kintel b4163c6dea Backported #638 from unstable 2014-02-06 01:49:38 -05:00
Marius Kintel f8f3ca45e7 fix related to 6a1d91dc76 2014-02-06 01:49:11 -05:00
Marius Kintel 47b20e3bb1 sync 2014-02-06 01:47:45 -05:00
Marius Kintel 716d8a7ab3 Moved % modifier handling from node to nodedumper. This makes nodes with % operators use the existing cache instead of recalculating the object 2014-02-06 00:50:00 -05:00
Oskar Linde 6a1d91dc76 Remove automatic validity check at end of render
In more complex cases, the final Nef_Polyhedron is_valid check() took up to 30 % of the total rendering time just to be able to say Valid: YES. In the case of cached geometry, the validity check was totally dominating the execution time when doing a render. This patch removes the automatic validity check, instead adding a menu command "Check Validity".

Conflicts:
	src/mainwin.cc
2014-02-06 00:49:41 -05:00
Oskar Linde 86d25f04b7 Editor: Fix bug where replaceAll could enter an infinite loop 2014-02-06 00:46:47 -05:00
Oskar Linde b124c4efd8 Editor: Subtle UI Tweak
Return in the find or replace field will animate the triggered button
2014-02-06 00:46:27 -05:00
Oskar Linde 197e8955a4 Editor: Implement Search & Replace
Conflicts:
	src/MainWindow.h
2014-02-06 00:46:26 -05:00
Oskar Linde f04378c129 Editor: Reduce find panel bottom margin 2014-02-06 00:46:08 -05:00
Oskar Linde 4f5882566c Editor: Implemented simple Find functionality
Conflicts:
	src/MainWindow.h
2014-02-06 00:46:06 -05:00
Marius Kintel 55192e46a4 Backported 2e3729ab22 to master; redo assemblePath for Win. redo openscad.com to handle spaces in filenames 2014-02-06 00:44:03 -05:00
Marius Kintel 3787049f5a Merge pull request #638 from OskarLinde/hull_speedup
Speed up 3d convex hull()
2014-02-05 23:54:13 -05:00
Marius Kintel 92017ded7a Merge pull request #637 from OskarLinde/projection_bug
Projection bug
2014-02-05 23:42:31 -05:00
Marius Kintel daf5a169dc Refactored Nef_nary_union optimization 2014-02-05 23:27:04 -05:00
Marius Kintel ca510bdb1a Merge branch 'unstable' into OskarLinde-nary_union_speedup 2014-02-05 19:39:38 -05:00
Oskar Linde 2e6196761a Performance: Speed up CGAL n-ary union
By utilizing CGAL::Nef_nary_union_3, n-ary union of many objects becomes significantly
faster (more than twice as fast in a test of 20 objects).

A further optimization potential lies in sorting the unioned objects based on proximity.
2014-02-05 17:31:35 +01:00
Oskar Linde b7d9abd4f7 Speed up 3d convex hull()
Speed up hull() significantly by removing duplicate points prior to calling CGAL::convex_hull_3.
Most computation now lies in converting the resulting CGAL::Polyhedron -> CGAL::Nef_polyhedron_3.
Also, enables convex hulls to be computed on non-manifold geometry.
2014-02-05 14:23:24 +01:00
Oskar Linde 4a0896d349 Bugfix: projection(cut=true) generated polygon holes with incorrect winding order 2014-02-05 14:08:22 +01:00
Oskar Linde 013d2722da Test: verify winding order of holes with projection(cut=true) 2014-02-05 14:08:22 +01:00
Marius Kintel 34333941d3 Merge branch 'master' into unstable 2014-02-05 01:08:44 -05:00
Marius Kintel 57e2ecd7b5 ifdef Qt5 method 2014-02-05 01:01:51 -05:00
Marius Kintel 2315524505 Scale axis display on high-DPI displays 2014-02-05 00:54:39 -05:00
Marius Kintel 0f3de6ca8a Qt5: Ported Q_WS usage to Q_OS 2014-02-05 00:27:05 -05:00
Marius Kintel cf1fa4b57b Moved % modifier handling from node to nodedumper. This makes nodes with % operators use the existing cache instead of recalculating the object 2014-02-04 23:49:10 -05:00
Marius Kintel 8cece20ced minor: No need to evaluate csg terms of null geometry 2014-02-04 23:47:39 -05:00
Torsten Paul 6c84515275 Add positional parameters for text().
Positional parameters are t, size, font.

Example: text("OpenSCAD", 30, "Liberation Mono");
2014-02-04 19:10:16 +01:00
Marius Kintel 00d20bb5ac Fix issue with boost and Apple namespace pollution 2014-02-04 01:22:02 -05:00
Marius Kintel b80c6c7bf4 Qt5 qmake needs explicit includpath 2014-02-04 01:21:35 -05:00
Marius Kintel c7530012be Build qt5 2014-02-04 01:21:13 -05:00
Marius Kintel 17dc062904 csgtermtest output has changed after refactoring 2014-02-03 23:33:14 -05:00
Marius Kintel 360622109a We changed how we interpret intersections in dxf. This is a marginal use-case, so we dropped backwards compatibility 2014-02-03 23:10:29 -05:00
Marius Kintel 528ef22104 Merge branch 'master' into unstable
Conflicts:
	src/openscad.cc
2014-02-03 22:55:58 -05:00
Marius Kintel 23023bfaf4 Merge branch 'master' of github.com:openscad/openscad 2014-02-03 22:53:57 -05:00
Marius Kintel c4e41d76e1 Added --csglimit parameter 2014-02-03 22:53:54 -05:00
Marius Kintel 887754e2ff Increased the default csg limit to 100K 2014-02-03 22:53:42 -05:00
Marius Kintel a6b3b21c3a Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-02-03 21:10:52 -05:00
Marius Kintel 5e45feafca Merge pull request #635 from OskarLinde/skip_validity_check
Remove automatic validity check at end of render
2014-02-03 18:10:41 -08:00
Marius Kintel 256a52d9c6 Added libs needed for text() module. Added support for MACOSX_DEPLOYMENT_TARGET 2014-02-03 20:18:50 -05:00
Marius Kintel b92e5aac92 Validate deployment target 2014-02-03 20:18:06 -05:00
Tim V. Shaporev 8e7902867d cmd buffer overflow test simplified 2014-02-03 22:58:03 +04:00
Marius Kintel 042f8c4d65 Merge pull request #636 from openscad/issue634
Fix positional arguments for polyhedron (fixes #634).
2014-02-03 07:27:22 -08:00
Torsten Paul 84c6d23d87 Fix positional arguments for polyhedron (fixes #634). 2014-02-03 15:51:32 +01:00
Oskar Linde 1c64a95020 Remove automatic validity check at end of render
In more complex cases, the final Nef_Polyhedron is_valid check() took up to 30 % of the total rendering time just to be able to say Valid: YES. In the case of cached geometry, the validity check was totally dominating the execution time when doing a render. This patch removes the automatic validity check, instead adding a menu command "Check Validity".
2014-02-03 15:23:22 +01:00
Marius Kintel 85fae69ca6 Pass --enable=text to text tests 2014-02-02 19:49:45 -05:00
Marius Kintel 3f42b8c6cb adapted text-module branch to refactored branch
Conflicts:
	src/GeometryEvaluator.cc
	src/GeometryEvaluator.h
	src/clipper-utils.h
	tests/CMakeLists.txt
2014-02-02 18:41:59 -05:00
Torsten Paul b5b0fe2674 Add text() module to the experimental feature list. 2014-02-02 18:01:09 -05:00
Torsten Paul 5dc7fd2a2b Add fonts to MacOS installer. 2014-02-02 18:01:09 -05:00
Torsten Paul 9c484f2091 Add libffi to MacOS build. 2014-02-02 18:01:09 -05:00
Torsten Paul 1fab3524f2 Fix crash due to not initialized dialog. 2014-02-02 18:01:09 -05:00
Torsten Paul 63fa26301f Use librarypath to find additional font directories. 2014-02-02 18:01:09 -05:00
Torsten Paul 395a87047b Add fonts to release build and Windows installer. 2014-02-02 18:01:09 -05:00
Torsten Paul a00d4787ab Fix compilation in MinGW environment. 2014-02-02 18:01:09 -05:00
Torsten Paul 6c9d11248a Add gtk-doc-tools providing gtkdocize (needed for building harfbuzz). 2014-02-02 18:01:09 -05:00
Torsten Paul 284a93972a Add dialog to show all registered fonts. 2014-02-02 18:01:08 -05:00
Torsten Paul b5755b6aa0 Add libxml2 to MacOS X build. 2014-02-02 18:01:08 -05:00
Torsten Paul c6d0ad9bf5 Add libxml2 to dependency build script and configure fontconfig to use it. 2014-02-02 18:01:08 -05:00
Torsten Paul 22e91235d4 Show a warning message in case some compile variables are set.
Currently warning is shown for:
- CFLAGS
- CXXFLAGS
- LDFLAGS
2014-02-02 18:01:08 -05:00
Torsten Paul 0b6da3dc1e Change sed calls to work on both MacOS X and Linux.
The syntax for the -i parameter is not compatible, so just write the
modified file temporarily and move it in place after the sed call.
2014-02-02 18:01:08 -05:00
Torsten Paul 1c2cb2dde9 Move main text test cases to the heavy set and introduce a simple test. 2014-02-02 18:01:08 -05:00
Torsten Paul dc16918beb Force pkg-config to look in the local library folder.
Setting both PKG_CONFIG_PATH and PKG_CONFIG_LIBDIR should
force pkg-config to ignore system installed libraries. We
only want it to find locally compiled dependencies if the
variable OPENSCAD_LIBRARIES is set.
2014-02-02 18:00:45 -05:00
Torsten Paul 39a2136e3d Fix dependency build script on MacOS X. 2014-02-02 18:00:45 -05:00
Torsten Paul afca09729a Add test cases for text alignment and text direction. 2014-02-02 18:00:45 -05:00
Torsten Paul a994d4b750 Add first set of test cases for text(). 2014-02-02 18:00:44 -05:00
Torsten Paul 695c2cbdbf Include common script for Linux builds. 2014-02-02 18:00:44 -05:00
Torsten Paul 067c7bd08f Add new libraries to MacOS X build script.
Also move some general stuff into a separate script so
it can be shared by the MacOS X and the Linux build.
2014-02-02 18:00:44 -05:00
Torsten Paul 9713a1fefb Patch Qt when building on Mavericks/XCode 5.0.1.
This is a workaround for compilation problems in that
environment:

- Disable tiff plugin which fails with duplicate symbol
  errors when linking. This is available as configure option.

- Disable core-wlan which fails compilation with lots
  of errors. This needs to patch the qmake config file.
2014-02-02 18:00:44 -05:00
Torsten Paul 1101d671a1 Skip build in case the library is already installed. 2014-02-02 18:00:44 -05:00
Torsten Paul 8bb32da1c4 Add libraries to qmake config. 2014-02-02 18:00:44 -05:00
Torsten Paul 5741b64036 Add debian package dependencies. 2014-02-02 18:00:44 -05:00
Torsten Paul 84caf4fa3d Add new libraries to the build and check scripts. 2014-02-02 18:00:44 -05:00
Torsten Paul bb45e7e52a Add implementation of text() module. 2014-02-02 18:00:44 -05:00
Marius Kintel 9c9915a6f9 removed temporary file 2014-02-02 17:58:59 -05:00
Marius Kintel 5b7572e927 Create freenode-verification.txt 2014-02-02 17:58:59 -05:00
Marius Kintel bc197049b9 Merge branch 'master' of github.com:openscad/openscad 2014-02-02 17:55:59 -05:00
Marius Kintel 85bdca5c81 Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-02-02 14:44:16 -05:00
Marius Kintel 9639e1c043 Merge pull request #625 from openscad/piliko0
small speedup of CGAL (according to CGAL tests)
2014-02-02 11:44:09 -08:00
Marius Kintel b5a6443b36 Merge pull request #628 from OskarLinde/ui_find
Editor: Fix bug where replaceAll could enter an infinite loop
2014-02-02 11:42:04 -08:00
Tim V. Shaporev 74c5094cb0 fixup issues 440 441 479 2014-02-02 21:51:56 +04:00
Don Bright 1280ab8c4e fix issue 629 - dont run sudo automatically as it can harm some systems 2014-02-02 09:57:53 -06:00
Marius Kintel cf7c24232e Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-02-02 01:01:20 -05:00
Marius Kintel c59fa49693 Merge pull request #611 from OskarLinde/minkowski2_bug
Minkowski2 bug
2014-02-01 18:48:54 -08:00
Oskar Linde d3f736d873 Editor: Fix bug where replaceAll could enter an infinite loop 2014-02-02 02:09:09 +01:00
Marius Kintel 56a2d0fff6 Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-02-01 17:55:17 -05:00
Marius Kintel 072c3a3059 Simplified and renamed test related to #612 2014-02-01 17:53:47 -05:00
Marius Kintel b23b653290 Merge branch 'minkowski2_bug' of git://github.com/OskarLinde/openscad into unstable 2014-02-01 17:42:29 -05:00
Marius Kintel b33ab943ff Merge branch 'poly2_bug' of git://github.com/OskarLinde/openscad into OskarLinde-poly2_bug 2014-02-01 17:30:54 -05:00
Oskar Linde 1942205585 toPolygon2D() now use Clipper's cleaning algorithm
The old polygon simplification algorithm in toPolygon2D() was broken.
It could create self-intersecting paths which made CGAL barf and
resulted in non-manifold meshes. It has been replaced with the one
built into Clipper. I am not sure Clipper's is guaranteed to be
correct either, but it at least seems to have fewer fail cases.
2014-02-01 20:53:10 +01:00
Marius Kintel fa398e1501 Merge branch 'master' into unstable 2014-02-01 14:14:02 -05:00
Marius Kintel 90b9667103 Merge pull request #626 from OskarLinde/ui_find
Editor: Implemented simple Find functionality
2014-02-01 11:13:05 -08:00
Marius Kintel d076c73a4d Merge pull request #577 from hroncok/patch-5
Link to Travis builds from README
2014-02-01 10:48:31 -08:00
Marius Kintel f97aa9c0e0 Merge pull request #608 from tim-caper/issue593
fixup issue 593
2014-02-01 10:48:04 -08:00
Marius Kintel cd1d5cf2f3 Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-02-01 13:46:49 -05:00
Marius Kintel 9b83ed6029 Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-02-01 13:44:11 -05:00
Marius Kintel a948936740 Started on hacking doc 2014-02-01 13:43:58 -05:00
Marius Kintel 9c3de2229e Renamed setting to be in sync with other file settings 2014-02-01 13:42:59 -05:00
Marius Kintel db20a3afac Added --debug to usage 2014-02-01 13:26:15 -05:00
Marius Kintel c8e28c0896 Merge branch 'unstable' into issue598fo 2014-02-01 13:22:38 -05:00
Marius Kintel cdd23c5d63 Merge branch 'unstable' into printd0 2014-02-01 12:56:20 -05:00
Marius Kintel fa829a137e Merge branch 'issue593' of git://github.com/tim-caper/openscad 2014-02-01 11:47:15 -05:00
Oskar Linde 7d6deea4e5 Editor: Subtle UI Tweak
Return in the find or replace field will animate the triggered button
2014-02-01 16:20:26 +01:00
Oskar Linde aaae223e40 Editor: Implement Search & Replace 2014-02-01 16:20:22 +01:00
Oskar Linde e483339580 Editor: Reduce find panel bottom margin 2014-02-01 16:20:19 +01:00
Oskar Linde 9750866aa8 Editor: Implemented simple Find functionality 2014-02-01 16:20:11 +01:00
Oskar Linde b10e9bc5c5 Fix a problem with the 2D Minkowski implementation
Polygons were clipped too soon, resulting in numerical robustness errors
which could create cracks in the resulting geometry. This patch corrects
the problem by postponing Clipper's union operation until the Minkowski
insides are filled. The result is also a net reduction of the number
of Clipper operations.
2014-02-01 16:18:04 +01:00
Oskar Linde 37aa801c46 Add some additional minkowski2d test cases 2014-02-01 16:17:56 +01:00
Oskar Linde 9a66954003 Add a testcase for a bug with self-intersecting polygon outline 2014-02-01 16:14:59 +01:00
Marius Kintel 143a7102c6 Merge branch 'unstable' of github.com:openscad/openscad into unstable 2014-02-01 01:01:04 -05:00
Marius Kintel 0d1e978baa Merge branch 'unstable' into nullgl 2014-02-01 00:35:29 -05:00
don bright 0b801fe6e0 small speedup of CGAL (according to CGAL tests) 2014-01-31 15:22:57 -08:00
Don Bright 11c24e3120 undo my changes 2014-01-31 06:42:13 -06:00
Don Bright 54742747ad adding missing file 2014-01-31 06:41:57 -06:00
Don Bright 88ff8ee6d4 add missing file 2014-01-31 06:34:46 -06:00
Marius Kintel 9fa66e37c0 Merge pull request #624 from openscad/issue598cmdline
Issue598cmdline
2014-01-30 22:20:26 -08:00
Marius Kintel 1b77d945be bugfix: When trying to copy Nef polyhderons, we were just copying pointers, defeating the const 2014-01-31 00:59:59 -05:00
Don Bright 43b4b072dc fix PRINTD to PRINTDB 2014-01-30 18:40:22 -06:00
Don Bright a51e3e2e90 replace logstream with PRINTD / PRINTDB . add boost include to printutils.cc 2014-01-30 18:37:08 -06:00
Don Bright 6269872397 add global OpenSCAD::debug string to printutils.cc (see printutils.h for usage) 2014-01-30 18:30:41 -06:00
Don Bright 36d5bde12b add '--debug=' option to openscad cmdline. see printutils.h for usage 2014-01-30 18:29:34 -06:00
Don Bright 5ab6794c4e add PRINTD to printutils.h 2014-01-30 18:28:16 -06:00
Don Bright a655d63987 add PRINTD to printutils.cc 2014-01-30 18:24:51 -06:00
Don Bright 0308a2c896 build on system without OpenGL. do cmake .. -DNULLGL=1 2014-01-30 18:21:32 -06:00
Marius Kintel 4da5657705 Made executable 2014-01-29 18:56:06 -05:00
Tim V. Shaporev 111a935540 fixup 593 revised 2014-01-29 12:11:38 +04:00
Don Bright 2e3729ab22 redo assemblePath for Win. redo openscad.com to handle spaces in filenames 2014-01-28 23:08:04 -06:00
Don Bright 79f6baf264 syntax highlight - improve contrast on dark background 2014-01-28 20:38:51 -06:00
Don Bright 588eb7a985 issue598 file open - remember the last directory 'file open' was in and reuse
bug rept per Michael at Oz
2014-01-28 19:36:14 -06:00
Marius Kintel fbcb807463 Short-circuit zero scaled 2D objects 2014-01-28 01:16:02 -05:00
Marius Kintel 0600d80046 Moved special handling of intersection to ClipperUtils 2014-01-27 23:25:33 -05:00
Marius Kintel 41f457584d removed temporary file 2014-01-27 22:21:00 -05:00
Marius Kintel 94b1299cde Create freenode-verification.txt 2014-01-27 16:45:59 -05:00
Oskar Linde c25ead11ff Regression fix: n-ary 2d intersection() with n != 2 2014-01-27 16:25:44 +01:00
Oskar Linde b05eb736a0 Regression test for 2D intersection() operation 2014-01-27 16:21:44 +01:00
Marius Kintel c3562e26ab Fixed caching issue: Sometimes we didn't use existing objects in the CGAL cache, but recalculated the objects, causing reduced performance when reusing CGAL-calculated objects in preview mode 2014-01-26 22:32:20 -05:00
Marius Kintel 3eb4489245 Use GEN_SURFACE_DEBUG instead of DEBUG for verbose debug output 2014-01-26 21:52:46 -05:00
Tim V. Shaporev b3a946bd92 fixup issue 593 2014-01-25 18:43:33 +04:00
Marius Kintel 33ab1fd9e4 Merge branch 'master' into unstable
Conflicts:
	tests/regression/throwntogethertest/difference-tests-expected.png
2014-01-24 18:18:20 -05:00
Marius Kintel d9432d76e7 Merge pull request #607 from openscad/range-fix
Handle NaN / +Inf / -Inf in range evaluation (fixes #606).
2014-01-24 13:02:32 -08:00
Torsten Paul 1212e2ba7c Handle NaN / +Inf / -Inf in range evaluation (fixes #606). 2014-01-24 20:52:04 +01:00
Marius Kintel 9d55e33b36 Updated forgotten test results related to commit 34ae2b8f68 2014-01-24 13:12:27 -05:00
Marius Kintel 91ff6420e4 OFF export workaround. Convert to Nef polyhedron for now 2014-01-24 00:59:02 -05:00
Marius Kintel df3137ce13 Merge branch 'master' into unstable 2014-01-23 21:22:26 -05:00
Marius Kintel 548b9c7c93 Reinstate Grid to fix problems introduced due to floating point inaccuracy. Grid does a certain job at vertex melding across objects and also help keeping plans planar 2014-01-23 21:22:05 -05:00
Marius Kintel 3288447e70 Added note for future enhancement of rotate_extrude 2014-01-23 20:52:47 -05:00
Marius Kintel d2e3625678 bug: forgot a break in switch statement while refactoring 2014-01-23 20:40:06 -05:00
Marius Kintel b4fc711758 compile fix: forgot include for boost::math::isinf 2014-01-23 19:54:52 -05:00
Marius Kintel 34a758c7f6 bugfix: Don't crash if HOME is not set 2014-01-22 21:27:25 -05:00
Marius Kintel faf1e2a3a5 bugfix: 2D minkowski was slightly broken; only one child and >2 children didn't work correctly 2014-01-19 12:27:11 -05:00
Marius Kintel 8a5c8e35ce Merge branch 'master' into issue527 2014-01-19 12:18:32 -05:00
Marius Kintel 556040439e Added test of minkowski2 with >2 children 2014-01-19 12:18:09 -05:00
Marius Kintel 47c042a559 minor clarification 2014-01-19 10:18:10 -05:00
Marius Kintel 59fca2674a Merge branch 'master' into issue527
Conflicts:
	tests/regression/cgalpngtest/minkowski2-tests-expected.png
	tests/regression/opencsgtest/minkowski2-tests-expected.png
	tests/regression/throwntogethertest/minkowski2-tests-expected.png
2014-01-18 18:31:06 -05:00
Marius Kintel 87231f3134 Added tests for minkowski with only one child 2014-01-18 18:29:35 -05:00
Marius Kintel f881efe477 killed warning 2014-01-18 18:26:38 -05:00
Marius Kintel 337f6668bc killed warning 2014-01-18 18:26:04 -05:00
Marius Kintel c8291b0645 merge error 2014-01-15 23:53:35 -05:00
Marius Kintel 696f2d5182 Adjusted some Heavy tests 2014-01-15 23:53:23 -05:00
Marius Kintel e7b62b4088 Merge branch 'master' into issue527
Conflicts:
	src/CGALEvaluator.cc
2014-01-15 22:34:49 -05:00
Marius Kintel bf0d9edf38 Change behavior of intersection: intersecting something with an empty object will be empty 2014-01-15 22:23:50 -05:00
Marius Kintel 1fc52f8cd4 Remove isinf from mathc99 since we're using boost 2014-01-15 19:32:31 -05:00
Marius Kintel e3e635bce1 Merge branch 'master' of github.com:openscad/openscad 2014-01-15 19:24:51 -05:00
Marius Kintel 5c57ed41e7 Added test for empty geometry 2014-01-15 19:24:38 -05:00
Don Bright 5f0ccc3e50 fix broken build on mingw / mxe 2014-01-14 17:50:59 -06:00
Marius Kintel 0f2853895a Merge branch 'master' into issue527 2014-01-13 23:08:56 -05:00
Marius Kintel 389e95e374 fixed merge error 2014-01-13 23:08:43 -05:00
Marius Kintel 7af6922829 Updated tests to account for modifiers inside AbstractPolyNodes 2014-01-13 23:07:56 -05:00
Marius Kintel 8d95b48ad2 Revert "Fixed an issue which caused us to traverse the entire tree for OpenCSG rendering traversals, where we didn't actually use the traversal results (for all nodes requiring CGAL)"
This reverts commit 448f8b4142.

-> We need to traverse the subtrees to be able to pick up debug and highlight modifiers
2014-01-13 23:04:22 -05:00
Marius Kintel 0ea3c831dd Merge branch 'issue527' of github.com:openscad/openscad into issue527 2014-01-13 22:24:21 -05:00
Marius Kintel c2673d4ff0 Updated tests for minkowski2 with holes 2014-01-13 22:24:13 -05:00
Marius Kintel c680540ea2 Merge branch 'master' into issue527
Conflicts:
	src/primitives.cc
2014-01-13 21:34:51 -05:00
Marius Kintel 34ae2b8f68 Testcase and fix for a problem transforming an empty bbox with very small numbers in a transformation matrix 2014-01-13 20:57:49 -05:00
Marius Kintel 23b04c3a9f bugfix: division by zero can cause malformed primitives 2014-01-13 20:49:55 -05:00
Marius Kintel fc8096acac Merge branch 'issue527' of github.com:openscad/openscad into issue527
Conflicts:
	src/GeometryEvaluator.cc
	tests/CMakeLists.txt
2014-01-12 19:41:34 -05:00
Marius Kintel e0e0319ec6 Added and updated tests for minkowski2 with holes 2014-01-12 19:39:20 -05:00
Marius Kintel dd113ae0f1 Minor simplification of minkowski2 2014-01-12 19:36:11 -05:00
Oskar Linde 295062875d Clipper based 2D Minkowski properly (hopefully) handles holes and multiple disjoint polygon components 2014-01-12 16:21:29 +01:00
Marius Kintel f57ceae58d Removed old reference to clipper 2014-01-09 02:06:38 -05:00
Marius Kintel 0c8a34775f crash fix: forgot null check of missing dxf 2014-01-09 02:06:38 -05:00
Marius Kintel acace4606b hull-of-hull bug: bugxi and test for exposing it 2014-01-09 02:06:38 -05:00
Marius Kintel dc8da819da Only output debug info in DEBUG builds 2014-01-09 02:06:38 -05:00
Marius Kintel aa6fe1eb2b Bugfix: We didn't cache top-level objects properly 2014-01-09 02:06:38 -05:00
Marius Kintel a47c282872 Ignore empty Nef's when renderinge 2014-01-09 02:06:38 -05:00
Marius Kintel 033b298ac9 Initial port of Don Bright's Nef3->PolySet converter 2014-01-09 02:06:38 -05:00
Marius Kintel f8e013e791 bugfix: forgot to negate statement when refactoring 2014-01-09 02:06:38 -05:00
Marius Kintel d258e0cbc0 Better error message on triangulation error 2014-01-09 02:06:38 -05:00
Marius Kintel 4fd13fcac2 adjusted test results 2014-01-09 02:06:38 -05:00
Marius Kintel efc71a8d8e Be compatible with existing behavior: close open paths in DXF files 2014-01-09 02:06:38 -05:00
Marius Kintel 87d07f23c6 small cleanup - removed redundant dim field 2014-01-09 02:06:37 -05:00
Marius Kintel afa659d906 Use cartesian points for 2D hull 2014-01-09 02:06:37 -05:00
Marius Kintel 03036b91f8 Updated import_stl-tests: Added subtraction from not found file 2014-01-09 02:06:37 -05:00
Marius Kintel 24986eec91 Added Geometry::isEmpty, some cleanups of CGAL_Nef_polyhedron, fixed some 2D-3D-mix issues 2014-01-09 02:06:37 -05:00
Marius Kintel 029cc74898 Updated test result with new behavior 2014-01-09 02:06:37 -05:00
Marius Kintel 512c0153dd Updated test result with new behavior 2014-01-09 02:06:37 -05:00
Marius Kintel 4caf0c9cd9 Triangulate objects before exporting to STL 2014-01-09 02:06:37 -05:00
Marius Kintel 0c65fec41a Added a separate component for dealing with vertex reindexing 2014-01-09 02:06:37 -05:00
Marius Kintel 6ae42bd0e7 case sensitive include 2014-01-09 02:06:37 -05:00
Marius Kintel 979d480da8 nullptr is a C++11 keyword 2014-01-09 02:06:37 -05:00
Marius Kintel 8a2cc97145 include case fix 2014-01-09 02:06:37 -05:00
Marius Kintel 0d318c83c7 minor cleanup 2014-01-09 02:06:37 -05:00
Marius Kintel 394cb6a7a5 test data update 2014-01-09 02:06:37 -05:00
Marius Kintel 5b1ae5cbb1 test data update 2014-01-09 02:06:36 -05:00
Marius Kintel ad6ef980db doc fix 2014-01-09 02:06:36 -05:00
Marius Kintel 2edc0c214f Use CLipperLib's PolyTree to identify negative contours 2014-01-09 02:06:36 -05:00
Marius Kintel 5c4534d3fc Updated test result with new behavior 2014-01-09 02:06:36 -05:00
Marius Kintel d4be9b4153 bugfix: Allow rendering empty images 2014-01-09 02:06:36 -05:00
Marius Kintel 054277b3ac Updated test result with new behavior 2014-01-09 02:06:36 -05:00
Marius Kintel 3122050139 Updated test result with new behavior 2014-01-09 02:06:36 -05:00
Marius Kintel e35ea1bcb0 Updated test result with new, improved behavior 2014-01-09 02:06:36 -05:00
Marius Kintel bff5b4d666 Updated test result with new, improved behavior 2014-01-09 02:06:36 -05:00
Marius Kintel 54850b3bd0 Updated test result with new, improved behavior 2014-01-09 02:06:36 -05:00
Marius Kintel 5f7d81c791 Extract clipper operations to ClipperLib::apply(), added sanitized flag to Polygon2d 2014-01-09 02:06:36 -05:00
Marius Kintel ec849b18d4 RenderNode is now the same as any abstract node 2014-01-09 02:06:36 -05:00
Marius Kintel 5d29804882 Remove degenerate faces 2014-01-09 02:06:36 -05:00
Marius Kintel e27c05cf0e bugfix: missing space in output 2014-01-09 02:06:36 -05:00
Marius Kintel 7b31827fe3 Implemented intersection_for 2014-01-09 02:06:35 -05:00
Marius Kintel 1f0705f8a0 Sanitize input polygons for filename parameter to extrude modules 2014-01-09 02:06:35 -05:00
Marius Kintel ace3668736 Cleanup: Removed redundant code 2014-01-09 02:06:35 -05:00
Marius Kintel 0e5037dce3 Make CGALRenderer support all Geometries 2014-01-09 02:06:35 -05:00
Marius Kintel 053fba737a reuse coordinates for last ring of rotate_extrude 2014-01-09 02:06:35 -05:00
Marius Kintel 9a1d0eeb91 minor bugfixes after running tests 2014-01-09 02:06:35 -05:00
Marius Kintel 135294e142 Implemented export of Polygon2d to dxf 2014-01-09 02:06:35 -05:00
Marius Kintel dc9429acac Use GeometryEvaluator instead of CGALEvaluator. A bunch of refactoring and fixes as a result of that. Renamed GUI menu items to reflect preview vs. render 2014-01-09 02:06:35 -05:00
Marius Kintel 4ac6d079b2 Removed obsolete code 2014-01-09 02:06:35 -05:00
Marius Kintel 4a8de1e53a Upgraded ClipperLib to 6.1.2 - fixes a projection crash 2014-01-09 02:06:35 -05:00
Marius Kintel 669c30be6a Implemented resize 2014-01-09 02:06:35 -05:00
Marius Kintel a1fcf2d5b2 Updated test results with new behavior 2014-01-09 02:06:34 -05:00
Marius Kintel b5abd6a39f Fixes remaining issues after merging #574 2014-01-09 02:06:34 -05:00
Marius Kintel 4e9de72779 Implemented 3D transform of PolySets, removed some Grid usage, improved PolySet -> Polyhedron conversion, optimized operations with only one child 2014-01-09 02:06:34 -05:00
Marius Kintel f4ae95d9e5 Handle shared_ptr in signals/slots 2014-01-09 02:06:34 -05:00
Marius Kintel 1ef92f55f2 Clipper is bundled 2014-01-09 02:06:34 -05:00
Marius Kintel b9f51febd4 Adapt to related changes in master 2014-01-09 02:06:34 -05:00
Marius Kintel ffdbc9bf46 Enforce x > 0 for rotate_extrude 2014-01-09 02:06:34 -05:00
Marius Kintel 43e1a27ff3 Don't convert empty clipper result to Polygon2d 2014-01-09 02:06:34 -05:00
Marius Kintel 1f488f851d Refactoring to facilitate more sharing of code between CGALEvaluator, GeometryEvaluator and CGALUtils 2014-01-09 02:06:34 -05:00
Marius Kintel c507db461d hull 2D and 3D implementation 2014-01-09 02:06:34 -05:00
Marius Kintel 12f14b84a1 ignore openscad_nogui 2014-01-09 02:06:34 -05:00
Marius Kintel 02cd792cb3 Implemented minkowski (2D and 3D) 2014-01-09 02:06:34 -05:00
Marius Kintel 2ca39595cd This should fix Clipper-based non-cut projection 2014-01-09 02:06:34 -05:00
Marius Kintel b2945cc714 bugfix: don't insert Nef polyhedrons into the GeometryCache as it will compete with PolySets needed for OpenCSG rendering 2014-01-09 02:06:34 -05:00
Marius Kintel af59b1983c Implemented non-cut projection using ClipperLib. Upgraded ClipperLib to V6 2014-01-09 02:06:33 -05:00
Marius Kintel eeb23d6723 corrected test results 2014-01-09 02:06:33 -05:00
Marius Kintel b04d0ccc52 bugfix: ClipperLib usage was not handling polygons with internal holes properly 2014-01-09 02:06:33 -05:00
Marius Kintel 34fc42a3b5 Moved shared CGAL operations to cgalutils 2014-01-09 02:06:33 -05:00
Marius Kintel ef4c07cd78 Let PolySets tessellated from Polygon2d objects keep track of the original object, e.g. for edge rendering purposes 2014-01-09 02:06:33 -05:00
Marius Kintel 3e53120e46 Implemented file parameter to extrude nodes 2014-01-09 02:06:33 -05:00
Marius Kintel 97a6f99883 bugfix: reverse order of conversion to Polygon2d 2014-01-09 02:06:33 -05:00
Marius Kintel a17e0dee2a Handle Nef polyhedrons as temporary geometry nodes 2014-01-09 02:06:33 -05:00
Marius Kintel acc354b24c Fix for linear_extrude with center 2014-01-09 02:06:33 -05:00
Marius Kintel 11b7624bbf Made CGAL_Nef_polyhedron a Geometry subtype, implemented 3D transforms, implemented projection, implemented render 2014-01-09 02:06:33 -05:00
Marius Kintel afd4a6adb8 Handle CgaladvNodes 2014-01-09 02:06:33 -05:00
Marius Kintel 11b1966cfb bugfix: Proper cache handling of visitor 2014-01-09 02:06:33 -05:00
Marius Kintel 84ce5dbd5d Implemented import to Polygon2d, fixed twist bug, added convexity support 2014-01-09 02:06:33 -05:00
Marius Kintel dc93436da9 Compile fixes 2014-01-09 02:06:32 -05:00
Marius Kintel d9ad3a60a0 Implemented rotate_extrude, basic support for 2D CSG, fixed some linear_extrude issues 2014-01-09 02:06:32 -05:00
Marius Kintel 064ee8f98a Basic linear_extrude now works 2014-01-09 02:06:32 -05:00
Marius Kintel b8c15cfb8a Preliminary large refactoring: Created GeometryEvaluator as a replacement for PolySetEvaluator. Use ClipperLib for 2D CSG (first baby steps). This design is far from perfect but sacrifice design for staying in the green. This version is broken, but can render primitives. 2014-01-09 02:06:32 -05:00
Marius Kintel acd08b6f1a Green refactoring, but uncertain if we should keep it 2014-01-09 02:06:32 -05:00
Torsten Paul e6bfee021b Add libffi to MacOS build. 2014-01-08 14:43:04 -05:00
Marius Kintel 20938506b6 Mac fix: We need to use bundled resources when running bundled apps in cmd-line node 2014-01-07 15:44:28 -05:00
Marius Kintel f7a633c57f Added some missing ignores 2014-01-07 15:43:15 -05:00
Marius Kintel aabb2f405f Fixes to build against homebrew-built dependencies
Conflicts:
	tests/CMakeLists.txt
2014-01-07 13:48:58 -05:00
Marius Kintel 09ffd9a6b7 crash fix: forgot null check of missing dxf 2014-01-06 18:13:49 -05:00
Marius Kintel b598b1ad01 hull-of-hull bug: bugxi and test for exposing it 2014-01-06 17:48:09 -05:00
Marius Kintel fb76a0bd96 Only output debug info in DEBUG builds 2014-01-06 17:48:09 -05:00
Marius Kintel c39b919e19 Fixes to build against homebrew-built dependencies 2014-01-06 17:48:09 -05:00
Marius Kintel b482d9f15b Bugfix: We didn't cache top-level objects properly 2014-01-06 17:48:09 -05:00
Marius Kintel 8ae2e389a3 Ignore empty Nef's when renderinge 2014-01-06 17:48:09 -05:00
Marius Kintel 0703f1a6ca Initial port of Don Bright's Nef3->PolySet converter 2014-01-06 17:48:09 -05:00
Marius Kintel c3eaeae45c bugfix: forgot to negate statement when refactoring 2014-01-06 17:48:09 -05:00
Marius Kintel 76f53de49f Better error message on triangulation error 2014-01-06 17:48:09 -05:00
Marius Kintel 31612ef242 adjusted test results 2014-01-06 17:48:09 -05:00
Marius Kintel db7da052a3 Be compatible with existing behavior: close open paths in DXF files 2014-01-06 17:48:09 -05:00
Marius Kintel bc4fae0d85 small cleanup - removed redundant dim field 2014-01-06 17:48:09 -05:00
Marius Kintel d6ad2c7de1 Use cartesian points for 2D hull 2014-01-06 17:48:08 -05:00
Marius Kintel b11429b1d2 Updated import_stl-tests: Added subtraction from not found file 2014-01-06 17:48:08 -05:00
Marius Kintel b5928655e3 Added Geometry::isEmpty, some cleanups of CGAL_Nef_polyhedron, fixed some 2D-3D-mix issues 2014-01-06 17:48:08 -05:00
Marius Kintel 211e3bc66d Updated test result with new behavior 2014-01-06 17:48:08 -05:00
Marius Kintel 9f6635a5f2 Updated test result with new behavior 2014-01-06 17:48:08 -05:00
Marius Kintel 05ddcdaabb Triangulate objects before exporting to STL 2014-01-06 17:48:08 -05:00
Marius Kintel 464c0ec3df Added a separate component for dealing with vertex reindexing 2014-01-06 17:48:08 -05:00
Marius Kintel 9a0cd69cfd case sensitive include 2014-01-06 17:48:08 -05:00
Marius Kintel 18810fcbee nullptr is a C++11 keyword 2014-01-06 17:48:08 -05:00
Marius Kintel 27c5d73bad include case fix 2014-01-06 17:48:08 -05:00
Marius Kintel aec1169c90 minor cleanup 2014-01-06 17:48:08 -05:00
Marius Kintel 9ccde5fe22 test data update 2014-01-06 17:48:08 -05:00
Marius Kintel e49bccfa83 test data update 2014-01-06 17:48:08 -05:00
Marius Kintel 1e59035bd0 doc fix 2014-01-06 17:48:08 -05:00
Marius Kintel 5a4ff8e39a Use CLipperLib's PolyTree to identify negative contours 2014-01-06 17:48:07 -05:00
Marius Kintel 1c8221004a Updated test result with new behavior 2014-01-06 17:48:07 -05:00
Marius Kintel 512aba9f10 bugfix: Allow rendering empty images 2014-01-06 17:48:07 -05:00
Marius Kintel ebdb2847b3 Updated test result with new behavior 2014-01-06 17:48:07 -05:00
Marius Kintel 0ce14af64b Updated test result with new behavior 2014-01-06 17:48:07 -05:00
Marius Kintel 8b7ef88664 Updated test result with new, improved behavior 2014-01-06 17:48:07 -05:00
Marius Kintel 7ed97132c6 Updated test result with new, improved behavior 2014-01-06 17:48:07 -05:00
Marius Kintel 3d72b2b68f Updated test result with new, improved behavior 2014-01-06 17:48:07 -05:00
Marius Kintel c9d372d4db Extract clipper operations to ClipperLib::apply(), added sanitized flag to Polygon2d 2014-01-06 17:48:07 -05:00
Marius Kintel dbd8f78d10 RenderNode is now the same as any abstract node 2014-01-06 17:48:07 -05:00
Marius Kintel e52ec73d4e Remove degenerate faces 2014-01-06 17:48:07 -05:00
Marius Kintel 6a57885224 bugfix: missing space in output 2014-01-06 17:48:07 -05:00
Marius Kintel 90be2bc10d Implemented intersection_for 2014-01-06 17:48:07 -05:00
Marius Kintel af578b9f47 Sanitize input polygons for filename parameter to extrude modules 2014-01-06 17:48:07 -05:00
Marius Kintel a8ed295b22 Cleanup: Removed redundant code 2014-01-06 17:48:06 -05:00
Marius Kintel aa1b856ea6 Make CGALRenderer support all Geometries 2014-01-06 17:48:06 -05:00
Marius Kintel c9366d1dcb reuse coordinates for last ring of rotate_extrude 2014-01-06 17:48:06 -05:00
Marius Kintel 0f6e5860e8 minor bugfixes after running tests 2014-01-06 17:48:06 -05:00
Marius Kintel 94d6de06fd Implemented export of Polygon2d to dxf 2014-01-06 17:48:06 -05:00
Marius Kintel 7efac3940e Use GeometryEvaluator instead of CGALEvaluator. A bunch of refactoring and fixes as a result of that. Renamed GUI menu items to reflect preview vs. render 2014-01-06 17:48:06 -05:00
Marius Kintel 73497690bc Removed obsolete code 2014-01-06 17:48:06 -05:00
Marius Kintel 4733216ee4 Upgraded ClipperLib to 6.1.2 - fixes a projection crash 2014-01-06 17:48:06 -05:00
Marius Kintel 2726a6853f Implemented resize 2014-01-06 17:48:06 -05:00
Marius Kintel 575d429824 Updated test results with new behavior 2014-01-06 17:48:06 -05:00
Marius Kintel a49c32bee0 Fixes remaining issues after merging #574 2014-01-06 17:48:06 -05:00
Marius Kintel 698aa54998 Implemented 3D transform of PolySets, removed some Grid usage, improved PolySet -> Polyhedron conversion, optimized operations with only one child 2014-01-06 17:48:06 -05:00
Marius Kintel 2fc3a39cfc Handle shared_ptr in signals/slots 2014-01-06 17:48:05 -05:00
Marius Kintel 8367068be5 Clipper is bundled 2014-01-06 17:48:05 -05:00
Marius Kintel 33f6f8d285 Adapt to related changes in master 2014-01-06 17:48:05 -05:00
Marius Kintel 8bc3d52516 Enforce x > 0 for rotate_extrude 2014-01-06 17:48:05 -05:00
Marius Kintel 05e7f63ffc Don't convert empty clipper result to Polygon2d 2014-01-06 17:48:05 -05:00
Marius Kintel 6298ccd188 Refactoring to facilitate more sharing of code between CGALEvaluator, GeometryEvaluator and CGALUtils 2014-01-06 17:48:05 -05:00
Marius Kintel 041b6c12da hull 2D and 3D implementation 2014-01-06 17:48:05 -05:00
Marius Kintel 28a6e64a97 ignore openscad_nogui 2014-01-06 17:48:05 -05:00
Marius Kintel a67452711b Implemented minkowski (2D and 3D) 2014-01-06 17:48:05 -05:00
Marius Kintel 54ddd63f08 This should fix Clipper-based non-cut projection 2014-01-06 17:48:05 -05:00
Marius Kintel d4112fed2e bugfix: don't insert Nef polyhedrons into the GeometryCache as it will compete with PolySets needed for OpenCSG rendering 2014-01-06 17:48:05 -05:00
Marius Kintel 377c8adde4 Implemented non-cut projection using ClipperLib. Upgraded ClipperLib to V6 2014-01-06 17:48:05 -05:00
Marius Kintel 528be86990 corrected test results 2014-01-06 17:48:05 -05:00
Marius Kintel 41b938bf68 bugfix: ClipperLib usage was not handling polygons with internal holes properly 2014-01-06 17:48:04 -05:00
Marius Kintel 73256de438 Moved shared CGAL operations to cgalutils 2014-01-06 17:48:04 -05:00
Marius Kintel 97f0155d9c Let PolySets tessellated from Polygon2d objects keep track of the original object, e.g. for edge rendering purposes 2014-01-06 17:48:04 -05:00
Marius Kintel aea83d2bcb Implemented file parameter to extrude nodes 2014-01-06 17:48:04 -05:00
Marius Kintel 74ba42fb39 bugfix: reverse order of conversion to Polygon2d 2014-01-06 17:48:04 -05:00
Marius Kintel 8715104f3d Handle Nef polyhedrons as temporary geometry nodes 2014-01-06 17:48:04 -05:00
Marius Kintel b59a61c4e6 Fix for linear_extrude with center 2014-01-06 17:48:04 -05:00
Marius Kintel 87f73263fc Made CGAL_Nef_polyhedron a Geometry subtype, implemented 3D transforms, implemented projection, implemented render 2014-01-06 17:48:04 -05:00
Marius Kintel 44b5ee1d6d Handle CgaladvNodes 2014-01-06 17:48:04 -05:00
Marius Kintel 40bd253912 bugfix: Proper cache handling of visitor 2014-01-06 17:48:04 -05:00
Marius Kintel 6cc0a20f2c Implemented import to Polygon2d, fixed twist bug, added convexity support 2014-01-06 17:48:04 -05:00
Marius Kintel e3b53f6550 Compile fixes 2014-01-06 17:48:04 -05:00
Marius Kintel 1a65f0ba48 Implemented rotate_extrude, basic support for 2D CSG, fixed some linear_extrude issues 2014-01-06 17:48:04 -05:00
Marius Kintel 64442eccbd Basic linear_extrude now works 2014-01-06 17:48:04 -05:00
Marius Kintel db7ba5b204 Preliminary large refactoring: Created GeometryEvaluator as a replacement for PolySetEvaluator. Use ClipperLib for 2D CSG (first baby steps). This design is far from perfect but sacrifice design for staying in the green. This version is broken, but can render primitives. 2014-01-06 17:48:03 -05:00
Marius Kintel 688a61dfec Green refactoring, but uncertain if we should keep it 2014-01-06 17:48:03 -05:00
Marius Kintel 5fc6af7782 In some rare cases, subtrees got invalidated and caused an assert failure 2014-01-06 01:27:01 -05:00
Marius Kintel 28fb4dc4cb Added testcase for #593 2014-01-05 23:21:49 -05:00
Marius Kintel 0899abeb90 Added testcase for #591 2014-01-05 12:44:53 -05:00
Marius Kintel 5ef8d9b8a1 sync 2014-01-05 12:44:43 -05:00
Marius Kintel 5affb45eb3 Experimental homebrew dependency build 2014-01-04 18:14:14 -05:00
Marius Kintel 9a1bd74af3 Merge branch 'master' of github.com:openscad/openscad 2014-01-04 18:07:51 -05:00
Marius Kintel 3b78ba1a58 Fail on clang's libc++ usage. Don't require 32-bit. Don't require < 10.7 compatibility 2014-01-04 18:05:43 -05:00
Marius Kintel 62b9746ab1 Mac fixes: Moved sparkle config to sparkle.pri. Link with ApplicationServices 2014-01-04 18:03:33 -05:00
Marius Kintel 70026aa0b8 bugfix: real geometry with bugs should evaluate with a dimension 2014-01-03 23:06:56 -05:00
Marius Kintel 56a8be7f24 Merge pull request #589 from Ivoah/patch-1
Added elif statement for Raspbian (Raspberry Pi)
2014-01-03 13:04:20 -08:00
Ivoah 50f9354282 Added elif statement for Raspbian (Raspberry Pi) 2014-01-03 16:03:13 -05:00
Marius Kintel e3f416db27 Added missing --version and --info to help output 2014-01-03 14:57:06 -05:00
Marius Kintel 064247ae5e Merge branch 'master' of github.com:openscad/openscad 2014-01-03 13:58:13 -05:00
Marius Kintel 8dca991045 Removed obsolete test 2014-01-03 13:31:37 -05:00
Marius Kintel c4a1d855f1 Merge branch 'vector-concat' of git://github.com/t-paul/openscad into t-paul-vector-concat 2014-01-03 13:27:22 -05:00
Torsten Paul c350f428b7 Update comment to reflect changed behavior. 2014-01-03 19:25:37 +01:00
Marius Kintel bee5233a91 Merge branch 'vector-concat' of git://github.com/t-paul/openscad into t-paul-vector-concat
Conflicts:
	src/Preferences.ui
2014-01-03 13:17:58 -05:00
Torsten Paul ad15bc7dc2 Update .gitignore. 2014-01-03 19:17:31 +01:00
Torsten Paul c5223417e3 Merge pull request #2 from openscad/vector-concat
Some cleanup
2014-01-03 10:12:04 -08:00
Marius Kintel 3d5b844679 Keep cmd-line and GUI separate in terms of preferences, handle experimental tests separately, minor cleanups 2014-01-03 02:31:57 -05:00
Marius Kintel f093b53c3e Fixed merge error 2014-01-03 00:14:31 -05:00
Marius Kintel bda8e6b55b Added another testcase for #495 2014-01-02 20:57:53 -05:00
Torsten Paul 9caa2dcfa5 Add concat() function to list of experimental features. 2014-01-02 23:32:09 +01:00
Torsten Paul bef4ea3053 Handle synchronization between Qt settings / GUI and Feature objects. 2014-01-02 23:32:09 +01:00
Torsten Paul b7b2681c74 Add GUI Settings page to enable/disable features. 2014-01-02 23:32:03 +01:00
Torsten Paul 09f8e80a7d Integrate feature registry with functions.
In case a function is attached to a disabled feature, the function lookup
will give a warning message and ignore that (builtin) function.
2014-01-02 23:28:02 +01:00
Torsten Paul 7f36599073 Integrate feature registry with modules.
In case a module is attached to a disabled feature, the module lookup
will give a warning message and ignore that (builtin) module.
2014-01-02 23:28:02 +01:00
Torsten Paul 72865e17da Add feature registry. 2014-01-02 23:27:52 +01:00
Marius Kintel 0044ecde20 Added testcase for #495 2014-01-02 17:07:34 -05:00
Marius Kintel 1bf5f44379 Merge branch 'master' of github.com:openscad/openscad 2013-12-31 01:28:23 -05:00
Marius Kintel df731159d4 Removed obsolete tests 2013-12-31 01:20:38 -05:00
Marius Kintel 46a9af8594 Added testcase for #585 2013-12-31 01:20:15 -05:00
Don Bright 7fb88e6c14 fix mingw cross build 2013-12-30 16:41:50 -06:00
Don Bright f7a527ed1e add glib and libintl to mingw cross build 2013-12-30 16:38:53 -06:00
Marius Kintel 38b8e6961e Clarified test cases for #541 and #578 2013-12-30 01:48:46 -05:00
Marius Kintel 69d9dfd29b Renamed test belonging to #578, not #541 2013-12-30 01:40:50 -05:00
Marius Kintel 3cb440c624 Removed obsolete tests 2013-12-30 01:23:22 -05:00
Marius Kintel d5bf74c91c Added testcase for #584 2013-12-30 01:23:14 -05:00
Marius Kintel 267cb31e79 Removed obsolete tests 2013-12-29 21:17:35 -05:00
Marius Kintel 182625c5de Added testcase for #578 2013-12-29 21:17:20 -05:00
Marius Kintel a0fc90b7c9 Removed obsolete tests 2013-12-29 20:17:03 -05:00
Marius Kintel 101d6343c0 Added testcase for #582 2013-12-29 20:16:54 -05:00
Marius Kintel b47ec73e72 Renamed to issue541 2013-12-29 20:00:40 -05:00
Don Bright 275f3baa3d Merge branch 'master' of github.com:openscad/openscad 2013-12-29 18:06:31 -06:00
Don Bright 9834582882 attempt to fix broken mingw build due to new GLIB dependency 2013-12-29 17:58:16 -06:00
Marius Kintel bf19347248 Merge pull request #580 from openscad/colorsfix
Colorsfix - 3 options for syntax highlighter
2013-12-29 15:37:29 -08:00
Marius Kintel 9ea82e746c Added failing test for issue 541 2013-12-29 18:28:06 -05:00
Don Bright 81a08c05c2 Merge branch 'master' of github.com:openscad/openscad into colorsfix 2013-12-29 17:20:17 -06:00
Don Bright 316c514208 make math functions easier to see on white background 2013-12-29 16:14:55 -06:00
Don Bright f0e0772694 enable disabling of syntax highlighter, add highlighter for dark backgrounds 2013-12-29 15:25:35 -06:00
Marius Kintel b272d1f0de Added mixed 2D and 3D object for difference tests 2013-12-28 17:11:56 -05:00
Marius Kintel ce8bf70604 Added 2D difference tests 2013-12-28 16:41:28 -05:00
Marius Kintel cc3858949e Updated tests 2013-12-28 14:27:21 -05:00
Marius Kintel 3e464d01a7 Use namespace instead of class method 2013-12-27 18:04:52 -05:00
Marius Kintel 11ab95385f removed redundant get_fragments_from_r 2013-12-27 18:04:28 -05:00
Torsten Paul b49f51dab3 Moved get_fragments_from_r into Calc 2013-12-27 17:48:15 -05:00
Marius Kintel 68de0ab680 Updated tests 2013-12-26 18:31:38 -05:00
Marius Kintel 1c44d04e00 Merge branch 'master' of github.com:openscad/openscad 2013-12-26 18:09:27 -05:00
Marius Kintel 8c02f17bb3 Updated tests 2013-12-26 18:09:19 -05:00
Torsten Paul 6443df394b Add concat() builtin (fixes #201).
This allows to concatenate multiple vectors and single elements into a
single result vector.
2013-12-26 20:02:31 +01:00
Miro Hrončok 93bd4af052 Link to Travis builds from README 2013-12-24 12:50:25 +01:00
Marius Kintel 41ab9e8ab6 Merge pull request #575 from hroncok/patch-3
`make install` installs manpage and appdata file
2013-12-23 18:02:36 -08:00
Marius Kintel de3a629656 Merge pull request #576 from hroncok/patch-4
AppData: Do not have 2 default screenshots
2013-12-23 18:02:19 -08:00
Miro Hrončok 107d19e93e AppData: Do not have 2 default screenshots 2013-12-24 02:37:43 +01:00
Miro Hrončok 90edc3b5f7 `make install` installs manpage and appdata file 2013-12-24 02:11:20 +01:00
Don Bright 6938ae2dfd prevent cgal::orientation_2 crash on polygons that fail is_simple_2 test 2013-12-17 17:08:36 -06:00
Marius Kintel e64bf96b37 Added mesh test 2013-12-15 20:15:01 -05:00
Marius Kintel a9bb2651e0 Deprecated polygons(triangles=[]) 2013-12-15 20:11:49 -05:00
Marius Kintel 4be55c016e Merge branch 'master' of github.com:openscad/openscad 2013-12-15 18:25:22 -05:00
Marius Kintel 70dfdf42c3 sync 2013-12-15 18:25:19 -05:00
Marius Kintel 111d8f416a Added FIXME 2013-12-15 18:24:17 -05:00
Marius Kintel dced79fb2d Merge pull request #574 from openscad/planar
Planar - see  issue #349
2013-12-15 15:21:51 -08:00
Marius Kintel 446dc3d36d Improved non-planar tests 2013-12-15 18:19:05 -05:00
Marius Kintel 4fd18f6d72 Silence glib-2.0.pri 2013-12-15 17:17:15 -05:00
Don Bright 7a35d0c10d merging tests 2013-12-15 16:08:46 -06:00
Don Bright 3b3ef44f66 Merge branch 'master' of github.com:openscad/openscad into planar
Conflicts:
	src/CGAL_Nef_polyhedron.cc
	tests/CMakeLists.txt
2013-12-15 15:32:06 -06:00
Marius Kintel c7cea0082e Added testcase for concave polygons in polyhedrons 2013-12-15 15:02:32 -05:00
Don Bright 5271b345bc minor tweak for clarity 2013-12-15 09:00:43 -06:00
Don Bright e6bf94b6ff tab spaces 2013-12-15 08:33:18 -06:00
Don Bright f570b7fd25 add some error checking 2013-12-15 08:28:36 -06:00
Don Bright 851ce360b4 documentation work 2013-12-15 08:17:14 -06:00
Don Bright 0bd8531b25 delete 'new polyset' on failure of creation 2013-12-15 08:06:45 -06:00
Don Bright 218760d2f5 restore error checking when creating polyhedron from polyset 2013-12-15 08:02:42 -06:00
Don Bright 3296ae4d37 documenation update 2013-12-15 07:59:53 -06:00
Don Bright 6d0efd62d9 improve CGAL nonplanar face error detection. also change dumptests to 'faces'
keyword for 'polyhedrnon().
2013-12-15 07:47:01 -06:00
Don Bright 60a4561da5 fix bug in polyhedron() primitive keyword 'faces' vs 'triangles' 2013-12-14 22:15:57 -06:00
Don Bright f12237a9c4 add tests for non-planar bug. add docs to .cc code 2013-12-14 21:58:22 -06:00
Don Bright 36db9de870 in polyhedron() replace "triangles" w "faces", but allow backwards compatability
by accepting 'triangles' and putting them into 'faces' variable
2013-12-14 21:15:29 -06:00
Don Bright 804ec858d9 triangulation of near-planar PolySet faces 2013-12-14 21:12:01 -06:00
Don Bright 09d60fd5af stub of face tessellation function for polyset 2013-12-14 17:25:40 -06:00
Don Bright 0a2b7ca0d4 FIXME leaking polyset by altering functions signatures 2013-12-14 17:20:35 -06:00
Marius Kintel 0eaa5333db Put back printing path to test report 2013-12-14 17:57:28 -05:00
Marius Kintel cca80a1559 bugfix: #562 didn't take into account that it's allowed with all X coordinates being negative 2013-12-14 17:44:05 -05:00
Marius Kintel a3aa61bab2 bugfix: glib include fix 2013-12-14 12:49:23 -05:00
Marius Kintel b54a8a42e8 Merge pull request #572 from hroncok/patch-2
Change invalid Programming category to Development
2013-12-13 07:34:35 -08:00
Miro Hrončok 585412bed6 Change invalid Programming category to Development
Programming is not a valid category of .desktop file, it is not listed in either [Main Categories](http://standards.freedesktop.org/menu-spec/latest/apa.html) or [Additional Categories](http://standards.freedesktop.org/menu-spec/latest/apas02.html).

desktop-file-validate returns error:

    openscad.desktop: error: value "Graphics;3DGraphics;Engineering;Programming;" for key "Categories" in group "Desktop Entry" contains an unregistered value "Programming"; values extending the format should start with "X-"

This changes it to Development, witch is a valid category listed in Additional Categories. Now desktop-file-validate only gives us a hint:

    openscad.desktop: hint: value "Graphics;3DGraphics;Engineering;Development;" for key "Categories" in group "Desktop Entry" contains more than one main category; application might appear more than once in the application menu.

That is fine, as we want it both in Graphics and Development.

This is a valid response to #533
2013-12-13 15:51:58 +01:00
Marius Kintel 3438dbad4d Merge pull request #570 from brodykenrick/master
Fix check_dependencies glib2 for Ubuntu 12.10
2013-12-11 23:16:16 -08:00
Brody Kenrick b8859a6716 Correct coding style for last commit (check_dependencies). 2013-12-12 17:54:40 +11:00
Brody Kenrick 68c706da8c Fix check_dependencies for Ubuntu 12.10 and ...
... and other platforms that report a different arch triplet than where
they store their libraries)

check-dependencies.sh doesn't find glib2 on Ubuntu 12.10 since glib is
installed in /usr/lib/i386-linux-gnu/glib-2.0/include/glibconfig.h while
gcc -dumpmachine reports the arch as i686-linux-gnu
2013-12-12 17:48:55 +11:00
Marius Kintel 966f7eb624 #514 Change gcc 4.8.2 version check error to a warning 2013-12-12 01:15:34 -05:00
Marius Kintel 6987ac9279 Merge pull request #561 from brodykenrick/master
Unicode support for search, length and STRING[] accesses (+ a fix for 3rd Party CGAL lib issue on Ubunti)
2013-12-10 23:50:52 -08:00
Marius Kintel d14f0be01c minor fix: Only use UPLOADARG if it exists 2013-12-11 02:01:50 -05:00
Brody Kenrick 509a466ddd Merge branch 'master' of https://github.com/brodykenrick/openscad 2013-12-11 18:00:05 +11:00
Brody Kenrick 4552d2d263 Add back in GL and GLIB2 links for tests-core 2013-12-11 17:59:38 +11:00
Brody Kenrick 225afc966b Add gettext lib for linux also 2013-12-11 17:53:43 +11:00
Brody Kenrick 745664f126 Ctests build for Glib2 - Add GLIB2_LIBDIR to find_library paths 2013-12-11 17:06:27 +11:00
Brody ef92a395a8 Merge pull request #1 from openscad/brodykenrick-master
Brodykenrick master
2013-12-10 21:46:04 -08:00
Marius Kintel 379e7a0547 Updated gmp patch. Fixes #558 2013-12-11 00:16:27 -05:00
Marius Kintel 50fb5bb135 Merge branch 'master' of git://github.com/brodykenrick/openscad into brodykenrick-master
Conflicts:
	scripts/macosx-build-dependencies.sh
	tests/CMakeLists.txt
2013-12-10 23:09:28 -05:00
Marius Kintel 7cb3ea77ff Build glib2 and gettext on Mac, Find macro for glib2 2013-12-10 23:08:04 -05:00
Marius Kintel 7e0917d6b2 Merge branch 'travis' 2013-12-09 00:48:26 -05:00
Marius Kintel 3bd224b990 Merge remote-tracking branch 'origin/travis' 2013-12-09 00:47:02 -05:00
Marius Kintel e96305ddf5 minor tuning 2013-12-09 00:46:38 -05:00
Marius Kintel 6fd378e9af Set upload env. variable in travis env since the cmake version on Travis is too old 2013-12-09 00:24:55 -05:00
Marius Kintel a22394fc39 Set upload env. variable in travis env since the cmake version on Travis is too old 2013-12-09 00:13:14 -05:00
Marius Kintel 8f103043a2 Upload test results from travis 2013-12-08 23:16:49 -05:00
Marius Kintel a407e4bf29 Enable upload of test results (#525) 2013-12-08 23:13:28 -05:00
Marius Kintel 462d4d4478 Merge branch 'master' into travis 2013-12-08 23:12:13 -05:00
Marius Kintel 33c34b6f7c Merge pull request #566 from a-e-m/master
Fix for issue 525
2013-12-08 17:12:28 -08:00
a-e-m 58bf7386a1 Added --upload command line option 2013-12-08 16:32:36 -08:00
a-e-m b7c818bf00 Revert to uploading to dinkypage, gists won't work 2013-12-08 16:15:50 -08:00
Brody Kenrick d46ce3fb81 Add specific tests for unicode len() 2013-12-08 18:35:36 -05:00
Brody Kenrick d2575016b9 Add in missed glib build dependencies for OS X and unix 2013-12-08 18:35:36 -05:00
Brody Kenrick c0849eb1d3 Update comments/messages for CGAL source of bad boost libraries
Add comments and change to a status instead of a warning (as we recover
nicely and it is a known issue in CGAL @
https://bugs.launchpad.net/ubuntu/+source/cgal/+bug/1242111)
2013-12-08 18:35:35 -05:00
Brody Kenrick 3abf64249f Unicode support for strings
Add suport for using unicode strings in .scad files. Support iterating
across them/accessing them via [] and searching.
--------
Add GLIB (to build for test and normal build -- both with installed and
built locally development files).
Add support for unicode chars to length and search builtin functions and
[] for strings.
Added unicode testing functions.
Ad GLIB to library info page.
2013-12-08 18:35:35 -05:00
Brody Kenrick 7075d8d9c4 Fix for bad boost libraries
Get this error because of a search for a non-existent library on linux64
-----------
[ 69%] Built target tests-cgal
Scanning dependencies of target cgalcachetest
[ 70%] Building CXX object
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o
make[2]: *** No rule to make target `/usr/lib/libboost_thread.so',
needed by `cgalcachetest'.  Stop.
make[1]: *** [CMakeFiles/cgalcachetest.dir/all] Error 2
make: *** [all] Error 2
[2]+  Done                    gedit openscad.pro  (wd:
~/git/openscad_unicode)
----------
2013-12-08 18:35:35 -05:00
a-e-m d6bffc4691 Taking out test accidentially left in, my user token 2013-12-08 12:17:19 -08:00
Marius Kintel eb046015d2 #559 Fix Qt font rendering on OS X 10.9 2013-12-08 15:17:17 -05:00
Marius Kintel 88cc7edafd #559 Fix Qt font rendering on OS X 10.9 2013-12-08 15:16:58 -05:00
a-e-m e27f971d9c Changed upload code to use gists 2013-12-08 12:15:04 -08:00
a-e-m a22ebd608d Moved include_passed 2013-12-08 11:28:19 -08:00
a-e-m 8971c67fa2 Fixed variable name error 2013-12-08 11:18:58 -08:00
a-e-m cb2b094b26 Fixed small error in Templates.get 2013-12-08 10:51:25 -08:00
Marius Kintel b131464f95 #559 CMAKE_OSX_DEPLOYMENT_TARGET needs to be cached 2013-12-08 13:50:03 -05:00
a-e-m 8a21092dc0 Adding imports 2013-12-07 17:59:07 -08:00
a-e-m 8d3365a79a Update design philosopy comments 2013-12-07 14:50:49 -08:00
a-e-m 40ae8c7b34 Add html report upload to test_pretty_print.py, removed wiki support 2013-12-07 14:38:22 -08:00
Brody Kenrick d7d5bea736 Add specific tests for unicode len() 2013-12-06 18:33:42 +11:00
Brody Kenrick a0d8cbe692 Add in missed glib build dependencies for OS X and unix 2013-12-06 18:16:49 +11:00
Marius Kintel 941b56e7f8 Merge branch 'master' of github.com:openscad/openscad 2013-12-06 01:08:29 -05:00
Marius Kintel ede5c4b688 delete ps when short-circuiting return, no need for explicit boost::format 2013-12-06 00:52:51 -05:00
David Eccles (gringer) e3317ecc64 Fail if any polygon points for rotate_extrude are less than 0 2013-12-06 00:39:48 -05:00
Marius Kintel 38a3422159 #559 fixes for 10.9 2013-12-06 00:39:21 -05:00
Brody Kenrick ac7b37a3d6 Update comments/messages for CGAL source of bad boost libraries
Add comments and change to a status instead of a warning (as we recover
nicely and it is a known issue in CGAL @
https://bugs.launchpad.net/ubuntu/+source/cgal/+bug/1242111)
2013-12-06 09:57:29 +11:00
Marius Kintel 8c060691d7 Update Mac deployment target to make it build on 10.9, apply Qt4 patches 2013-12-05 12:21:10 -05:00
Marius Kintel 301ef946f0 Qt4 patches to make it build on 10.9 2013-12-05 12:20:40 -05:00
Brody Kenrick 0717c67c9f Unicode support for strings
Add suport for using unicode strings in .scad files. Support iterating
across them/accessing them via [] and searching.
--------
Add GLIB (to build for test and normal build -- both with installed and
built locally development files).
Add support for unicode chars to length and search builtin functions and
[] for strings.
Added unicode testing functions.
Ad GLIB to library info page.
2013-12-05 18:28:40 +11:00
Brody Kenrick d3b82dcac0 Fix for bad boost libraries
Get this error because of a search for a non-existent library on linux64
-----------
[ 69%] Built target tests-cgal
Scanning dependencies of target cgalcachetest
[ 70%] Building CXX object
CMakeFiles/cgalcachetest.dir/cgalcachetest.cc.o
make[2]: *** No rule to make target `/usr/lib/libboost_thread.so',
needed by `cgalcachetest'.  Stop.
make[1]: *** [CMakeFiles/cgalcachetest.dir/all] Error 2
make: *** [all] Error 2
[2]+  Done                    gedit openscad.pro  (wd:
~/git/openscad_unicode)
----------
2013-12-05 15:56:50 +11:00
Marius Kintel f2fe074e1d clang fix: Clang claims to be gcc 2013-12-04 01:15:34 -05:00
Marius Kintel 69cbb17497 Killed warnings 2013-12-04 01:15:19 -05:00
Marius Kintel 89c21d07c4 Merge pull request #554 from openscad/issue410x
Issue410x
2013-12-01 08:36:50 -08:00
Don Bright 791a49b9e8 build bug fix 2013-11-30 17:26:50 -06:00
Don Bright 9ea7713335 print errmsg for applyHull. add quotes around err msg in version check. 2013-11-30 15:43:00 -06:00
Don Bright 75692592e4 Merge branch 'master' into issue410x 2013-11-30 15:30:40 -06:00
Don Bright f175bae46a disallow gcc 4.8.2 2013-11-30 15:13:03 -06:00
Don Bright 31199ea2d1 Merge branch 'master' of github.com:openscad/openscad 2013-11-30 15:00:35 -06:00
Don Bright 6f6a8dff76 MXE c/o 'stable' instd of 'master' from github b/c master has gcc 4.8.2 which
is causing crashes. also allow 'build only' builder.sh script command
2013-11-30 13:42:09 -06:00
Marius Kintel 961c380c84 Merge pull request #553 from Gazer/editor_improvements
Keep cursor position on save
2013-11-30 09:11:58 -08:00
Ricardo Markiewicz afe1fbcb53 Move main code inside Editor class
Before open a new file now we cleanup the Editor, so the new file get the cursor
on the first character.
2013-11-29 01:40:28 -03:00
Ricardo Markiewicz 7b64944738 Try to keep cursor and scroll in place on refresh
When the file is saving, the cursor position was resetting to the top and you should keep
scrolling by hand every time you save the file.

This patch saves the scroll and cursor position and set it again after the file is refreshed so
we can continue edition from where we were.
2013-11-29 00:16:40 -03:00
Don Bright fd715c6526 finish adding new test, add png for new test 2013-11-26 20:55:26 -06:00
Don Bright faf008ce24 simplify nef polyhedron code. attempt to add test for bug 2013-11-26 20:29:29 -06:00
Don Bright cf9f19818c prevent crash in CGAL nef3. fix #issue 410 . also deal w qmake bug re .h files 2013-11-26 20:04:57 -06:00
Marius Kintel de2db22b5f Split projection tests into cut vs. project 2013-11-25 00:27:15 -05:00
Don Bright 8496e5d7cc Merge branch 'master' of github.com:openscad/openscad 2013-11-24 19:02:15 -06:00
Don Bright 825fbc7b9e revert to GMPQ number type kernel due to bugs like issue #481 2013-11-24 19:01:11 -06:00
Marius Kintel 91c2b8909c Added test for implicit union of render() children 2013-11-23 22:10:05 -05:00
Marius Kintel 20eba57829 Merge branch 'master' of github.com:openscad/openscad 2013-11-23 20:00:22 -05:00
Marius Kintel 7b526bc27a Added test for polygon with hole 2013-11-23 20:00:19 -05:00
Don Bright b204aba444 mxe64 build fix. make 'qt disabled' message less confusing on test binary. 2013-11-23 18:38:45 -06:00
Marius Kintel ab102cec85 Merge pull request #550 from t-paul/ubuntu-fix
Fix compilation error on Ubuntu where uint32_t is not defined.
2013-11-23 08:19:01 -08:00
Torsten Paul 34d7f37fe7 Fix compilation error on Ubuntu where uint32_t is not defined. 2013-11-23 15:12:44 +01:00
Marius Kintel 2162aaed64 Split up projection tests to avoid long running times 2013-11-20 01:27:46 -05:00
Marius Kintel 3e3caaa625 Removed eigen2 from build system and documentation. We now require eigen3 2013-11-15 15:48:43 -05:00
Marius Kintel 022f80e87b Merge pull request #542 from t-paul/issue500
Allow for statement with negative step value.
2013-11-15 12:34:42 -08:00
Torsten Paul f46bd3788f Change nbsteps() to uint32_t to make it independent from 32/64-bit platform. 2013-11-15 19:41:37 +01:00
Torsten Paul 1fcad169e6 Update 'for' test cases to match the new range expression handling. 2013-11-11 01:38:34 +01:00
Torsten Paul e6b2884805 Fix output of range expressions. 2013-11-11 01:38:34 +01:00
Torsten Paul 3c0e9f4f18 Update 'children' test case using range [4 : -1 : 0] which is now valid. 2013-11-11 01:38:24 +01:00
Torsten Paul bcba02fac3 Add test cases for new range expression handling. 2013-11-11 01:31:53 +01:00
Torsten Paul 00a329f0bd Add support for handling negative step values in ranges (fixes #500). 2013-11-11 01:31:44 +01:00
Don Bright af8359993a download eigen 3 package , eigen2 no longer works 2013-11-10 16:43:46 -06:00
Marius Kintel e5d535e900 Fixes #533 2013-11-08 00:57:38 -05:00
Marius Kintel 7872e7a229 Re-fix: don't add path to empty files. Fixes #536 2013-11-08 00:53:58 -05:00
Marius Kintel e722d906ce Get rid of leading zeros in date tags, causing them to be interpreted as octal in C++ 2013-11-08 00:34:01 -05:00
Marius Kintel 77829d0a3a Merge pull request #529 from t-paul/issue434
Add menu entry "Reset View" to reset viewport to initial settings
2013-11-04 14:32:24 -08:00
Marius Kintel aa62be3386 Merge branch 'master' of github.com:openscad/openscad 2013-11-01 12:10:13 -04:00
Marius Kintel 5aa01edb93 Fix potential memory alignment issue with eigen. This might make us dependent on eigen3, but it's about time anyway 2013-11-01 12:10:03 -04:00
Marius Kintel e05a9745a3 Bumped to eigen-3.2.0 2013-11-01 11:35:58 -04:00
Torsten Paul be4c72d9e9 Add menu entry "Reset View" to reset viewport to initial settings (fixes Issue #434). 2013-10-31 22:56:31 +01:00
Marius Kintel a40530d73d bugfix: CMAKE_BUILDTYPE typo 2013-10-31 14:41:02 -04:00
Marius Kintel a197e5b22c Merge pull request #524 from pdbogen/master
Use find instead of ls and grep to locate gmp.h (or gmp-blah.h)
2013-10-30 20:02:33 -07:00
Patrick Bogen c6df507590 Use find instead of ls and grep to locate gmp.h (or gmp-blah.h) for gmp_sysver 2013-10-30 19:53:23 -07:00
Marius Kintel e764c9ad03 Merge pull request #523 from pdbogen/master
Dependency searching and results display should be more robust
2013-10-30 19:52:24 -07:00
Patrick Bogen 8521cb132e Use quotes for values that might end up empty, so that pretty print displays missing version numbers properly. 2013-10-30 19:40:24 -07:00
Patrick Bogen ed4529404a More robust searching through README files for dependency versions. 2013-10-30 19:40:03 -07:00
Marius Kintel 435e0c021c Limit parallel builds as Travis apparently runs out of memory 2013-10-30 22:39:18 -04:00
Marius Kintel 83dc80ff5f Parallel build 2013-10-30 22:19:27 -04:00
Marius Kintel 9e55b31265 clang not yet supported by the travis script 2013-10-30 22:19:27 -04:00
Marius Kintel 7d667b1025 Update README.md 2013-10-30 22:19:27 -04:00
Marius Kintel d37cb95e2e Detect errors mid-way into test run 2013-10-30 22:19:27 -04:00
Marius Kintel 2b966f92f2 Get OpenCSG from PPA - attempt 4 2013-10-30 22:19:27 -04:00
Marius Kintel acdf95002f Get OpenCSG from PPA - attempt 3 2013-10-30 22:19:27 -04:00
Marius Kintel e06dbbe742 Get OpenCSG from PPA - attempt 2 2013-10-30 22:19:27 -04:00
Marius Kintel f8abd39095 Get OpenCSG from PPA 2013-10-30 22:19:27 -04:00
Marius Kintel cc1688cab8 Script for kicking off Travis CI 2013-10-30 22:19:27 -04:00
Marius Kintel 1f6c61d9ce typo 2013-10-30 22:19:26 -04:00
Marius Kintel ba812e52bd initial travis test 2013-10-30 22:19:26 -04:00
Marius Kintel 3e79b547c1 Merge pull request #521 from hzeller/fix-broken-absolute-path
Fix invocation with absolute path.
2013-10-30 08:32:20 -07:00
Henner Zeller a218869770 Invocation of openscad with an absolute path failed:
./openscad /home/username/foo.scad
.. because the curent working directory was always prepended; so
internally, it attempted to open $PWD + /home/username/foo.scad

Use platform aware QDir functionality to only prepend the absolute
current working directory prefix, if the given path is relative.
2013-10-29 20:55:32 -07:00
Marius Kintel 8aa749f8b3 Merge pull request #510 from hzeller/master
Make keyboard events working for GQLView
2013-10-29 09:42:08 -07:00
Marius Kintel 9fe0beeddd Added newline 2013-10-28 22:15:10 -04:00
Marius Kintel bc76c79e2f sync changes since last release 2013-10-27 16:37:29 -04:00
Marius Kintel f708f5e82b Fixed download URL 2013-10-26 23:08:01 -04:00
Marius Kintel 64f35bce3d moved to files.openscad.org 2013-10-26 01:14:01 -04:00
Henner Zeller 3e15f42113 o Key-press event in the QGLView were ignored, as it never got the
focus. Fix: Gain focus on mouse-click inside that view.
o QGLView: make zoom-in as well possible on '=' key. On American
  keyboards, the '=' key is right next to the '-' (Minus) key, while
  '+' (plus) requires Shift-equals.
o Provide a useful 'c' key-binding for 'center'. Very useful after
  getting lost in panning.
2013-10-24 22:56:55 -07:00
Marius Kintel 144c30e701 Merge branch 'master' of github.com:openscad/openscad 2013-10-25 00:48:38 -04:00
Marius Kintel 60ce9748de Use PRINTB for output which might be grabbed by OS launchers 2013-10-25 00:48:31 -04:00
Marius Kintel e3e7512425 doc typo 2013-10-25 00:46:02 -04:00
Marius Kintel 752f35eab6 bugfix: Allow unknown parameters. This fixes exit-on-launch issue on Mac 2013-10-25 00:45:24 -04:00
Marius Kintel 54595cc9bf fix llvm build 2013-10-24 11:32:25 -04:00
Marius Kintel da369f0d17 Move files to files.openscad.org. Disable google code uploads 2013-10-22 19:41:05 -04:00
Marius Kintel 6af64497eb Move files to files.openscad.org 2013-10-22 19:40:13 -04:00
Marius Kintel 1fd3bec4fe bugfix: starting without arguments caused a warning 2013-10-22 19:39:51 -04:00
Marius Kintel 178309f357 bugfix: Don't use QApplication before it's instantiated 2013-10-22 11:30:15 -04:00
Marius Kintel 9a28badc89 updated Sparkle 2013-10-22 02:15:47 -04:00
Marius Kintel 187f656d8d Updated eigen, gmp, boost, cgal and glew 2013-10-22 02:04:35 -04:00
Marius Kintel f6b381fc7e Merge pull request #509 from t-paul/issue392
Add diameter variable to the sphere, cylinder and circle primitives.
2013-10-21 11:47:15 -07:00
Torsten Paul 74082c8cff Extend circle tests to cover the new diameter parameter. 2013-10-21 19:47:55 +02:00
Torsten Paul 141f43498c Add cylinder tests to cover the new diameter parameters. 2013-10-21 19:47:55 +02:00
Torsten Paul 6624fc7089 Extend sphere tests to cover the new diameter parameter. 2013-10-21 19:47:48 +02:00
Torsten Paul bc4ace7e26 Add diameter variable to the sphere, cylinder and circle primitives (fixes #392).
When doing the lookup, the diameter value has priority so if both diameter
and radius are given, the radius value is ignored and a warning is printed.
2013-10-20 22:49:40 +02:00
Marius Kintel 170d4a5497 bugfix: previous commit broke debug builds 2013-10-20 14:38:33 -04:00
Marius Kintel a15b07a09c removed unused member variable 2013-10-20 14:38:11 -04:00
Marius Kintel 448f8b4142 Fixed an issue which caused us to traverse the entire tree for OpenCSG rendering traversals, where we didn't actually use the traversal results (for all nodes requiring CGAL) 2013-10-19 18:03:09 -04:00
Marius Kintel d2a729bdfa Ignore malformed polygons 2013-10-19 17:15:25 -04:00
Marius Kintel 257d1f7115 Use VERSION env. variable or current timestamp for test builds 2013-10-19 17:15:05 -04:00
Marius Kintel e77615be30 Merge branch 'children' of git://github.com/vicnet/openscad into vicnet-children
Conflicts:
	tests/CMakeLists.txt
2013-10-13 13:19:34 -04:00
Marius Kintel 0f22d6e9ad Added test case for parent_module() 2013-10-08 23:41:53 -04:00
Marius Kintel 0860dfda3e Added test case for parent_module() 2013-10-08 23:40:42 -04:00
Marius Kintel 0cacb434fc bugfix related to #460: removed duplicate initializeModule() 2013-10-08 23:40:16 -04:00
Vicnet 4401a136b9 add children tests 2013-10-08 15:35:47 +02:00
Marius Kintel 80e5d42f47 Merge branch 'master' of ../openscad into steelman-bom-tree-std-stack 2013-10-07 15:49:08 -07:00
Marius Kintel aa1752a3a0 Mac needs to know if we're a GUI app in order to find bundled libraries, Use Qt to find application path if available 2013-10-07 15:47:08 -07:00
Marius Kintel 4c06a4e78f Set OPENSCADPATH in order for tests to find MCAD 2013-10-07 15:46:45 -07:00
Marius Kintel fd59585983 Bugfix related to #480: some tests had the test file specified twice 2013-10-07 15:32:05 -07:00
Vicnet a9175af124 merge from origin 2013-10-07 16:15:19 +02:00
Vicnet eb27a0277f factorize Value::RangeType calculation and correct error 2013-10-07 16:04:43 +02:00
Vicnet 9bc73ac106 add range on children() 2013-10-07 16:04:43 +02:00
Vicnet e5484b1081 remove compliation warnings 2013-10-07 16:04:43 +02:00
Vicnet 2452aa8e88 factorize Value::RangeType method 2013-10-07 16:04:42 +02:00
Vicnet 3dfb76a56d add vector parameter to children() 2013-10-07 16:04:42 +02:00
Vicnet 014f48c1e8 allow one number parameter on children(): select this child only 2013-10-07 16:04:42 +02:00
Vicnet ce27757712 use explicit Value::RangeType for clarity 2013-10-07 16:04:42 +02:00
Vicnet 119bf37cb3 add children primitive, and refactor control.cc a little 2013-10-07 16:04:42 +02:00
Marius Kintel 4381743ca9 Merge branch 'master' into steelman-bom-tree-std-stack 2013-10-06 18:01:14 -07:00
Marius Kintel 572ab5804b Added echo as test type 2013-10-06 18:00:26 -07:00
Marius Kintel b4e80581ca Merge branch 'bom-tree-std-stack' of git://github.com/steelman/openscad into steelman-bom-tree-std-stack
Conflicts:
	src/module.cc
2013-10-04 15:13:26 -07:00
Marius Kintel 793ee8eb88 Mac build fix 2013-10-04 15:11:16 -07:00
Marius Kintel 0404a921af Merge pull request #499 from openscad/issue480
Issue480
2013-10-04 00:20:03 -07:00
Marius Kintel 5ed3e28b7a Mac build fix for openscad_nogui 2013-10-03 23:34:59 -04:00
Marius Kintel 7273e5b5a9 Make recent examplesdir changws work for MDI mode 2013-10-03 23:21:26 -04:00
Don Bright 204b3de3a0 fix broken build 2013-10-02 17:37:38 -05:00
Don Bright 7804a398a3 Merge branch 'master' of github.com:openscad/openscad into issue480
Conflicts:
	src/openscad.cc
2013-10-02 17:27:42 -05:00
Marius Kintel 94070f7b51 Merge pull request #491 from vicnet/master
Remove unused stuff
2013-09-30 22:27:51 -07:00
Marius Kintel bfc826abba Added appdata for Linux desktops. #494 2013-10-01 01:23:01 -04:00
Vicnet d3cb7e4a17 remove unused stuff 2013-09-25 13:43:32 +02:00
Vicnet dece213f9d Merge branch 'children' of https://github.com/vicnet/openscad into children 2013-09-24 07:16:41 +02:00
Vicnet 8f1081a27d add children primitive, and refactor control.cc a little 2013-09-24 07:14:43 +02:00
Vicnet 611d5ce2a7 add children primitive, and refactor control.cc a little 2013-09-24 07:06:44 +02:00
Don Bright c78c0e8875 turn off extra debug in cmakelist 2013-09-22 16:46:48 -05:00
Don Bright c9f8b7bf6b Merge branch 'issue480' of github.com:openscad/openscad into issue480
Conflicts:
	tests/CMakeLists.txt
2013-09-22 16:45:38 -05:00
Don Bright 40a198a087 tweaks for building on older machines 2013-09-22 16:35:29 -05:00
Don Bright 4ebd8136a8 enable clang for freebsd (tested on freebsd 9) 2013-09-22 05:30:41 -05:00
Don Bright c6600f8841 dumptest should be fine now on BSD, using openscad binary 2013-09-21 10:35:36 -05:00
Don Bright 8c11a091d5 use debug symbols for test binaries. also remove echostream pointer 2013-09-21 10:25:36 -05:00
Don Bright efc6731774 make echotest work on BSD, by adding .echo as recognized extension 2013-09-21 09:04:01 -05:00
Don Bright 47ed2f1b12 moving towards making tests work on bsd again 2013-09-21 00:12:42 -05:00
Don Bright 5f36117b8f restore missing digits. make --info work better. fix parser / path bug 2013-09-20 01:54:53 -05:00
Don Bright 3eda281be1 allow openscad binary to be compiled with or without QT. use non-QT for tests. 2013-09-20 00:19:09 -05:00
Marius Kintel 2e21f3deff Don't recompile while editing the text. Wait until saving or manual refresh. Fixes #482 2013-09-18 22:53:50 -04:00
Don Bright 322664cb12 gcc 4.7 should work for demangling of CGAL kernel info name 2013-09-18 21:00:12 -05:00
Don Bright e6f3bd4777 enable --info output of names of CGAL Kernels to aid debugging 2013-09-18 20:55:27 -05:00
don bright 9a484d7170 fix camdist test, issue #430 2013-09-15 08:22:35 +02:00
don bright a36b5f740a fix issue with gcc 4.4.5. pointer to renderer in export_png segfaulted
worked fine in clang
2013-09-15 08:04:43 +02:00
Marius Kintel b779d6a93b Merge pull request #478 from vicnet/master
Indent and reorder parser for clarity
2013-09-14 08:09:59 -07:00
Vicnet 7b1e423f82 Merge remote-tracking branch 'upstream/master' 2013-09-13 14:52:22 +02:00
Vicnet f6343949eb reorder parser predicat to better understanding 2013-09-13 14:42:45 +02:00
Vicnet d9a66f2cb0 Indent parser file for better clarity 2013-09-13 08:17:39 +02:00
Marius Kintel ead8749e99 Merge pull request #476 from openscad/testfixes
Testfixes
2013-09-12 22:06:17 -07:00
Marius Kintel 2334062302 Merge pull request #472 from openscad/fixcamera1
fix issue #430
2013-09-12 21:49:42 -07:00
Don Bright f82ff8272b copyright info to nsis scripts 2013-09-12 20:29:22 -05:00
Don Bright 36545b3cc5 rm googlecode stuff 2013-09-12 20:26:39 -05:00
Don Bright 72945a53ca remove googlecode uploader 2013-09-12 20:25:46 -05:00
Don Bright 955d55f6e6 cleanup 2013-09-12 20:22:01 -05:00
Don Bright a7805f1e45 clean 2013-09-12 20:21:17 -05:00
Don Bright 3464d2028a cleanup 2013-09-12 20:20:15 -05:00
Don Bright dd3ba6d805 cleanup, remove unused files and code, etc 2013-09-12 20:17:02 -05:00
Don Bright 8a42158485 cleanups, tab fixes, remove redundant code 2013-09-12 20:07:59 -05:00
Don Bright 30fd8b250a little tweaks, cleanups, tab fixing, eliminating comments 2013-09-12 20:03:27 -05:00
Don Bright d6a57b8968 fix bug in 2d resize code 2013-09-12 19:44:07 -05:00
Don Bright c87e9f8d6e remove extraneous files, add rands working test 2013-09-12 00:47:03 -05:00
Don Bright 4e1b1900ed remove redundant code 2013-09-12 00:42:38 -05:00
Don Bright 6af6c311a1 cmdline throwntogether, integrate w chrysn tests, update resize tests 2013-09-12 00:17:17 -05:00
Don Bright 54b35a4a84 rendersettings.h not needed 2013-09-11 21:51:15 -05:00
Don Bright 03a9bfd7d2 lodepng: write RGB instead of RGBA: decoders differ on alpha rendering 2013-09-11 21:47:23 -05:00
Don Bright 4a2255f199 use background color when writing PNG with lodepng 2013-09-11 21:01:16 -05:00
Don Bright ea92d9ce19 fix issue #430 2013-09-11 19:52:31 -05:00
Marius Kintel b53dde04e2 Merge pull request #471 from dmopalmer/mac_compile_2013.09
Mac Build update build to 2013-09 versions
2013-09-05 21:12:39 -07:00
David M. Palmer 31cb13b7ae Mac Build update build to 2013-09 versions
README.md
   reflect change in setenv_mac*.sh files
macosx-build-dependencies.sh
    qt4 version updated to 4.8.5 and is now at a different host which uses 302 redirection
FindBoost.cmake
    Added paths for MacPorts (/opt/local) and Brew (/usr/local) to previous Fink (/sw/local)
2013-09-05 21:50:19 -06:00
Marius Kintel 7db45a878b Merge branch 'master' of github.com:openscad/openscad 2013-08-21 01:40:25 -04:00
Marius Kintel a7396cc36f Fixes two problems related to : lookup was dynamic rather than lexical, assignment was done after all local variables causing it not to be copyable 2013-08-21 01:40:21 -04:00
Marius Kintel f25ad73ea5 Put back some stuff necessary for building on non-MSVC platforms for now 2013-08-19 23:27:30 -04:00
Marius Kintel 154c65dee2 Merge branch 'master' of git://github.com/ivoknutsel/openscad into ivoknutsel-master 2013-08-19 23:26:05 -04:00
Łukasz Stelmach 400d28d753 Enable module stack introspection from within an SCAD script
The _current_module and _parent_module variables have been replaced
by a built-in function parent_module(n). It takes one numeric parameter n,
and returns n-th element from the module stack. If no argument provided,
n defaults to 1 and the function returns the name of the direct parent
module. If n is equal 0 current module name is returned.
2013-08-18 17:19:49 +02:00
Marius Kintel fe7fb45019 Support out-of-source use of testsuite. Fixes #456 2013-08-17 13:18:49 -04:00
Łukasz Stelmach d67e012916 Introduce '_current_module' and '_parent_module' variables
Add two built-in variables that provide access to the names
of the current and the previously instantiated modules.

Having these variables simplifies generation of BOMs and assembly
graphs (e.g. with GraphViz).

[std::stack]
2013-08-17 16:22:00 +02:00
Marius Kintel ea606f69fc Merge branch 'master' of github.com:openscad/openscad 2013-08-14 23:01:43 -04:00
Don Bright af7e8320e2 more migration from google-code to files.openscad.org 2013-08-13 22:24:03 -05:00
Don Bright 0dd0a262f9 switch from google-code file hosting to files.openscad.org 2013-08-13 22:00:48 -05:00
Don Bright 506ed4e693 first step of dealing with issue #455 2013-08-13 21:14:56 -05:00
Don Bright d2933590c2 fix #452 2013-08-11 09:54:04 -05:00
Don Bright 6900160b7d commit bugfix per report from chrysn to mailing list 8/8/13 2013-08-08 18:07:14 -05:00
Ivo Noorhoff 61e6178d1b In this commit i'll change just the Qt project, c and header files to get OpenSCAD
building and working on Windows 7 compiled with Visual Studio Express 2012.

A couple of things needed changing :
* MSVC 2012 has no trunc or round, i have added those to mathc99 and included mathc99 to the files needed.
The implementations were taken from boost.
* MSVC 2012 stl does now allow accessing out of bounds elements in std:vector as an array, so "chain->objects[i]" will
fail in "OpenCSGRenderer::renderCSGChain". Whatever the platform, it will me a good idea to change this
code to something that does not trigger undefined behavior.
* MSVC 2012 cannot figure out the types involved in "if (file_size ==  80 + 4 + 50*facenum) {", i have added
a cast to force it to "if (file_size ==  static_cast<std::streamoff>(80 + 4 + 50*facenum)) {".

The next round would be regression testing and debugging and possibly more changes to the OpenSCAD main code.

The round after that would be changing the .pro and .pri files to create correct visual studio solutions.
2013-07-28 13:42:35 +02:00
Marius Kintel 70247b7545 Ported use of check_output to Python-2.6 2013-07-02 10:59:59 +02:00
Marius Kintel c3e7d4bf03 dumptest now supports the root modifier - updated test results 2013-07-02 09:33:24 +02:00
Marius Kintel 5a43874897 cgalstlsanitytest moved 2013-07-02 00:28:56 -04:00
Marius Kintel 6082dafad8 Re-enable tests which previously cause floating point comparison issues 2013-07-02 00:16:07 -04:00
chrysn 4d18db65e3 python validation for cgal stl sanity test
this drops another static binary and replaces it with a very small
shell^Wpython script (again, python used to avoid sed / grep
implementation differences)
2013-06-28 11:47:17 +02:00
chrysn 28e420d871 replace echotest and dumptest with python scripts
this solves problems of sed compatibility on different platoforms.

also, the openscad binary to use is now passed in from the ctest script.
2013-06-28 10:50:48 +02:00
chrysn ad1a11a28e Merge branch 'master' into no-testprograms
Conflicts:
	tests/CMakeLists.txt
	tests/regression/csgtermtest/assign-expected.term
	tests/regression/csgtermtest/child-expected.term
	tests/regression/csgtermtest/circle-expected.term
	tests/regression/csgtermtest/color-expected.term
	tests/regression/csgtermtest/cube-expected.term
	tests/regression/csgtermtest/cylinder-expected.term
	tests/regression/csgtermtest/difference-expected.term
	tests/regression/csgtermtest/dxf_linear_extrude-expected.term
	tests/regression/csgtermtest/dxf_rotate_extrude-expected.term
	tests/regression/csgtermtest/echo-expected.term
	tests/regression/csgtermtest/for-expected.term
	tests/regression/csgtermtest/glide-expected.term
	tests/regression/csgtermtest/group-expected.term
	tests/regression/csgtermtest/hull-expected.term
	tests/regression/csgtermtest/if-expected.term
	tests/regression/csgtermtest/import-expected.term
	tests/regression/csgtermtest/import_dxf-expected.term
	tests/regression/csgtermtest/import_off-expected.term
	tests/regression/csgtermtest/import_stl-expected.term
	tests/regression/csgtermtest/intersection-expected.term
	tests/regression/csgtermtest/intersection_for-expected.term
	tests/regression/csgtermtest/linear_extrude-expected.term
	tests/regression/csgtermtest/minkowski-expected.term
	tests/regression/csgtermtest/mirror-expected.term
	tests/regression/csgtermtest/multmatrix-expected.term
	tests/regression/csgtermtest/polygon-expected.term
	tests/regression/csgtermtest/polyhedron-expected.term
	tests/regression/csgtermtest/projection-expected.term
	tests/regression/csgtermtest/render-expected.term
	tests/regression/csgtermtest/rotate-expected.term
	tests/regression/csgtermtest/rotate_extrude-expected.term
	tests/regression/csgtermtest/scale-expected.term
	tests/regression/csgtermtest/sphere-expected.term
	tests/regression/csgtermtest/square-expected.term
	tests/regression/csgtermtest/subdiv-expected.term
	tests/regression/csgtermtest/surface-expected.term
	tests/regression/csgtermtest/translate-expected.term
	tests/regression/csgtermtest/union-expected.term
	tests/regression/dumptest/circle-expected.csg
	tests/regression/dumptest/color-expected.csg
	tests/regression/dumptest/cube-expected.csg
	tests/regression/dumptest/cylinder-expected.csg
	tests/regression/dumptest/difference-expected.csg
	tests/regression/dumptest/dxf_linear_extrude-expected.csg
	tests/regression/dumptest/dxf_rotate_extrude-expected.csg
	tests/regression/dumptest/glide-expected.csg
	tests/regression/dumptest/import-expected.csg
	tests/regression/dumptest/import_dxf-expected.csg
	tests/regression/dumptest/import_off-expected.csg
	tests/regression/dumptest/import_stl-expected.csg
	tests/regression/dumptest/intersection-expected.csg
	tests/regression/dumptest/intersection_for-expected.csg
	tests/regression/dumptest/linear_extrude-expected.csg
	tests/regression/dumptest/minkowski-expected.csg
	tests/regression/dumptest/mirror-expected.csg
	tests/regression/dumptest/multmatrix-expected.csg
	tests/regression/dumptest/polygon-expected.csg
	tests/regression/dumptest/polyhedron-expected.csg
	tests/regression/dumptest/projection-expected.csg
	tests/regression/dumptest/render-expected.csg
	tests/regression/dumptest/rotate-expected.csg
	tests/regression/dumptest/rotate_extrude-expected.csg
	tests/regression/dumptest/scale-expected.csg
	tests/regression/dumptest/sphere-expected.csg
	tests/regression/dumptest/square-expected.csg
	tests/regression/dumptest/subdiv-expected.csg
	tests/regression/dumptest/surface-expected.csg
	tests/regression/dumptest/translate-expected.csg
2013-06-26 18:06:00 +02:00
chrysn d532a17cb8 acknowledge new output formats in release notes 2013-06-26 15:28:51 +02:00
chrysn aaa781b12e document the new commands 2013-06-26 15:28:51 +02:00
chrysn 177e4676a4 document the testing migration to the main binary 2013-06-26 15:28:50 +02:00
Marius Kintel 1b7cc41a7f Short circuit boolean logic - fixes #411 2013-06-25 23:39:02 -04:00
Marius Kintel d9b3f7b52b Test case for #399 2013-06-25 23:17:51 -04:00
chrysn 077332ff5c normalize -nan and -0 in all output modes
having a stable output is not only relevant in testing, and with the
main binary being used for more tests, having those normalizations takes
load off the preparing scripts tests/{dumptest,echotest}
2013-06-25 14:26:28 +02:00
chrysn a4b5449d4e remove test binaries for cgsltest, csgtermtest and opencsgtest 2013-06-25 14:25:07 +02:00
chrysn 17cd6d1989 switch opencsgtest to native binary 2013-06-25 14:25:07 +02:00
chrysn b7170fe349 add .term output for CSG term export 2013-06-25 14:25:03 +02:00
chrysn 0eb64d8f7a ctest infrastructure for native .term tests 2013-06-25 13:41:49 +02:00
chrysn 3460564880 renamed csgtermtest to .term 2013-06-25 13:41:49 +02:00
chrysn 1d17e623db make test_pretty_print.py work with .csg and .ast too
file results that were neither txt nor png used to be ignored silently;
now, unknown extensions produce errors, and csg and ast are known.
2013-06-25 13:41:49 +02:00
chrysn 2006824c24 drop moduledumptest, use `openscad -o ${NAME}.ast`
src/openscad.cc code was copy/pasted from .csg section; some refactoring
might make things nicer, but i didn't dare change too much for lack of
language knowledge
2013-06-25 13:41:49 +02:00
chrysn 06fd345dfc drop cgalpngtest all together
replaced in CMakeLists.txt with direct openscad call, and duplicate
checks removed

cgalpngtest_text-search-test was left in the Heavy configuration,
resolving the ambiguity of it being heavy with cgalpngtest and not with
openscad-cgalpng (which does the same thing)
2013-06-25 13:41:48 +02:00
chrysn 887c4757b6 drop cgalpngtest for openscad drop in replacement 2013-06-25 13:41:48 +02:00
chrysn 770cb09f5f trim precision from the echo tests
as it was done with dumptest before
2013-06-25 13:41:48 +02:00
chrysn 7d53e564aa use openscad as a replacement for dumptest and echotest
the echotest and dumptest still contain hacks to keep the delta to the
original unit tests minimal; possibly, some of these changes will make
it into the openscad program, at which time they can go away from there.
2013-06-25 13:41:48 +02:00
chrysn 84857ac157 modify root modifier example now that the test program respects the root modifier
as the dumptests are now run from a full openscad, the root modifier is
respected by the test program too; reflectin that in the unit test
2013-06-25 13:41:48 +02:00
chrysn 850058eb69 trim precision in dumptest regressions
in order for them to work against openscad's .csg output, the number of
decimal places was reduced.
2013-06-25 13:41:48 +02:00
chrysn 00e29e9099 changed group headers to empty group headers
this became necessary because the batch editing in the last commit
didn't respect that an empty group is not group() { } but group();
2013-06-25 13:41:47 +02:00
chrysn 400248d566 renamed dumptest files to .csg and added group headers 2013-06-25 13:41:47 +02:00
Marius Kintel a3cd019494 Removed a bunch of less useful tests 2013-06-23 01:56:04 -04:00
Marius Kintel 140189d470 renamed to setenv_mac-* 2013-06-23 00:13:43 -04:00
Don Bright b715e580f7 check OPENSCAD_LIBRARIES first 2013-06-22 08:29:42 -05:00
Marius Kintel ec867349ff Close file as soon as possible to avoid potential readlocks being kept too long. Might be enough for #415 2013-06-21 01:36:08 -04:00
Marius Kintel 2da488800c Merge remote-tracking branch 'origin/epec-kernel' 2013-06-20 00:27:23 -04:00
Marius Kintel cf882d2ea3 gcc and clang profiles 2013-06-20 00:13:43 -04:00
Marius Kintel 1c719371cc Merge remote-tracking branch 'origin/epec-kernel' 2013-06-20 00:11:16 -04:00
Marius Kintel 10032341e2 Default to clang for Mac OS X 10.7+ 2013-06-20 00:05:09 -04:00
Marius Kintel bac587363a Merge pull request #413 from hroncok/patch-2
Added missing include stdint.h to work with gcc 4.8.1
2013-06-19 11:11:21 -07:00
Miro Hrončok 7870d9c15a Added missing include stdint.h to work with gcc 4.8.1
Without this include, this was not possible to build with gcc 4.8.1:

Build log (without this commit): http://kojipkgs.fedoraproject.org//work/tasks/1370/5521370/build.log
2013-06-19 20:09:44 +02:00
Marius Kintel c75d195552 clang fixes 2013-06-19 03:48:50 -04:00
Marius Kintel b75826d298 Leftover from previous merge 2013-06-19 03:48:16 -04:00
Marius Kintel 9b7c83bbda missed one conflict 2013-06-18 02:17:25 -04:00
Marius Kintel a0a49b0bc9 Merge remote-tracking branch 'origin/issue181' into epec-kernel
Conflicts:
	src/MainWindow.h
	src/ModuleCache.cc
	src/mainwin.cc
	src/module.cc
	src/module.h
	src/parsersettings.cc
	testdata/modulecache-tests/cascade.sh
	testdata/modulecache-tests/cascade2.sh
2013-06-18 02:16:20 -04:00
Marius Kintel f452c986e1 Default to clang for Mac 2013-06-18 01:58:26 -04:00
Marius Kintel 169e08adce Default to clang for Mac 2013-06-18 01:58:15 -04:00
Marius Kintel 6d91540e4c Merge branch 'master' into epec-kernel 2013-06-18 01:46:48 -04:00
Marius Kintel a126fa826c bugfix: the previous progress bar fix wasn't fixed properly 2013-06-04 23:45:00 -04:00
Marius Kintel c719dde971 More frequent progress updates, progress updates also for CSG evaluation 2013-06-04 21:52:03 -04:00
Marius Kintel c5f792e992 Merge branch 'master' into issue181 2013-06-04 21:15:32 -04:00
Marius Kintel 3e024822e6 Fixed a bug where a file was loaded twice when auto reload was on 2013-06-04 21:15:01 -04:00
Marius Kintel 85c83fbc04 Merge branch 'master' into issue181 2013-06-02 18:15:37 -04:00
Marius Kintel 40ad096379 Merge branch 'master' into issue181 2013-05-31 10:41:47 -04:00
Marius Kintel 5d3ae2a77e cascadetest.scad is now autogenerated 2013-05-30 16:51:32 -04:00
Marius Kintel 06237a067f Related to #181, also ignore removal of the main file when auto-reloading 2013-05-30 16:51:00 -04:00
Marius Kintel 0041f3012d Increase recursion limit to 1000 2013-05-30 16:50:05 -04:00
Marius Kintel 1255b19c2e bugfix: Auto-reload failed in some circumstances 2013-05-28 20:58:44 -04:00
Marius Kintel 57dae12b80 Merge branch 'master' into issue181 2013-05-28 20:41:05 -04:00
Marius Kintel 5722dd9e41 Minor refactoring, no longer automatically reloads if a dependency disappears 2013-05-28 16:29:53 -04:00
Marius Kintel c0fa353e06 Added automatic reload and compile note 2013-05-28 10:23:36 -04:00
Marius Kintel 72de958320 Added testcase for cascading changes 2013-05-28 10:20:07 -04:00
Marius Kintel 33e873d8da Changed compile GUI logic to properly handler automatic reload on cascading changes 2013-05-28 01:25:03 -04:00
Marius Kintel eade7ede54 typo 2013-05-28 01:24:30 -04:00
Marius Kintel 4bc18dc680 Don't auto-reload missing files, reduce warning output from periodically called functions 2013-05-27 18:28:29 -04:00
Marius Kintel 95947a877b Ported recent changes to the EPEC kernel 2013-05-24 13:58:52 -04:00
Marius Kintel 26046f6f0c Merge branch 'master' into epec-kernel 2013-05-24 10:16:20 -04:00
Marius Kintel eefcd6d0b2 Merge branch 'master' into epec-kernel
Conflicts:
	src/PolySetCGALEvaluator.cc
2013-03-27 23:55:51 -04:00
Marius Kintel f70578f362 Merge branch 'master' into epec-kernel 2013-03-05 23:27:12 -05:00
Marius Kintel 32469374cf Try the CGAL EPEC kernel for 3D operations 2013-01-22 17:26:03 -05:00
2274 changed files with 136121 additions and 29084 deletions

45
.gitignore vendored
View File

@ -1,14 +1,51 @@
/*.scad
*.dmg
*~
*.tar*
*.new
out.*
Makefile
objects
.gdbinit
.qmake.stash
parser_yacc.h
**/#*#
testdata/scad/features/import_dxf-tests.scad
testdata/scad/features/import_stl-tests.scad
testdata/scad/misc/include-tests.scad
testdata/scad/misc/use-tests.scad
**/project.xcworkspace
**/xcuserdata
/*.scad
/*.stl
/*.dxf
/*.off
/*.amf
/*.png
/*.csg
/*.nef3
/*.blend
/*.obj
/*.rcad
/*.xml
/*.dat
/*.gcode
/*.py
/*.svg
/*.h
/*.dump
/*.pl
/lexer_lex.cpp
/parser_yacc.cpp
parser_yacc.h
/tmp
/OpenSCAD.app
*/#*#
/openscad.pro.user
/openscad
/locale/*/*/*.mo
/locale/*.mo
/locale/POTFILES
/tmp
/nbproject
/mingw32
/mingw64
src/*.org
src/*.old
src/*.debug

89
.travis.yml Normal file
View File

@ -0,0 +1,89 @@
language: cpp
cache: apt
compiler: gcc
notifications:
irc:
channels:
- "chat.freenode.net#openscad"
on_success: change
use_notice: true
skip_join: true
before_install:
- echo 'yes' | sudo add-apt-repository ppa:chrysn/openscad
- sudo apt-get update -qq
- sudo apt-get install -qq build-essential libqt4-dev libqt4-opengl-dev libxmu-dev cmake bison flex git-core libboost-all-dev libXi-dev libmpfr-dev libboost-dev libglew-dev libeigen3-dev libcgal-dev libgmp3-dev libgmp-dev curl imagemagick libfontconfig-dev
- sudo apt-get install -qq libopencsg-dev
- echo 'yes' | sudo add-apt-repository ppa:mapnik/nightly-trunk
- sudo apt-get update -qq
- sudo apt-get install -qq libharfbuzz-dev
- echo 'yes' | sudo add-apt-repository ppa:oibaf/graphics-drivers
- sudo apt-get update -qq
- sudo apt-get install --install-recommends libgl1-mesa-dev-lts-quantal
branches:
only:
- master
before_script:
- echo -e "Host files.openscad.org\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
- echo -n $openscad_rsa_{00..40} >> ~/.ssh/openscad_rsa_base64
- base64 --decode --ignore-garbage ~/.ssh/openscad_rsa_base64 > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
script: if [ "${COVERITY_SCAN_BRANCH}" != 1 ]; then ./scripts/travis-ci.sh ; fi
env:
global:
- OPENSCAD_UPLOAD_TESTS=yes
- secure: "mBWdnkXe8BL1SqYRBnOOpXn60xtHGfpeVOh+HrK8xZPflLyJLdgAz3jsrgPaaMibfuygOEfn86jm8dFZPDJSeGh+gGbcjbtOywvYtr0d/KJPk2ccCavlGEBsTSdfWVBMH2hqZ+OXrSn4amx12fmcF/rnpRZu0jHxRWrL4SbouXM="
- secure: "gYPUvQekTxYW4bNIDvL6MFdPihd0HFGIq2saEbcOVyGYuZTdyBIzoh3tLIdG6jJNLWb/Nn2iWEsbsSsSIVk9UowW2qmuKVmzOyezKiu7wO2bdk08zeNtZLdFU4f8NsPz/ODXGQBCbjrBr8csnczQ9DKcxQeG2Lr9z1PjpJE43zY="
- secure: "N4tu1zJPq4tDrfArXawiQZ/oAb3jZ1xEonxH2WWMnUXj6CGMSrRbkUD7h7Yx5WcIgxkDE87Q+mMgKDNDhDQuK4RiTngwokXKSCHYn0odo10o1SWiNE42czLpbCTWJeM/5m+nyPhE1Hn8StTwiwqiA2YkBUICh/z+s6cmqV5JaEU="
- secure: "hfkGLUH90vkYIIQlBjAlYRxl/KJE/d5Z8cGnXGN77+RuvmGN2vMspSTXdvIe7KXesLs3ly96iA/mx3LLzW4YQu1qlwaAtffXiX2GBUFgRAHQV4Ty6PJzwRjzTxqZTh2jE+lZukB/6oh0ZlF4lpFYRFIMwLQMP64gGN0aqdQwc0I="
- secure: "UBH3ATAhykSH4su70oG6vmnOfV62ghNDLO/Y5dZwZvZVkKdERdddtpP8tPmJrkeqZp6nZs2DPA1ufgifaShZgv5eo5U1pdg4zFRA8UuOlK51QWdPYdk4/kTbifqeKhiQlNpvMXGnRPfk0a2HdAiaAHk0FKIPBRPAgwJlE03zKf4="
- secure: "YAMu566rDdaAHflMlvBdwkb7F4DNoDa6nJ1/d0bbaPDDk2onxzt5Nos9P3LMMya9XDo/+/8XZWUhdU2t8fwKfKiAanaIPiDYFaS7gZDohu7TI41rqJnnHFF1KNtG624PbABIgKBu8AEHsF1op7EG31SD8ZFyYTBdFOlgVruNWEA="
- secure: "cLVNa1aAtGyO7nHumphZRcNmMnFp+Ts4Bqh6WlclZ3RljEp5rKqHP3knHVgE6T0jC6zMTdNDwKHkyW2jlETRa0l7SGblZI1iuAATnNMwH14FPJgfHP2g30dYu714J6ik6UWUyFNex6o5ZlrVnTnrTuQpTQmF/Ehb4xBcFh780S8="
- secure: "VXa5G1ow1YND0Ap7jTH6oewSlgE3bQz0ZRKPz/bMEQhmImitAW24LG+kLi1RWfvtwJdHBOExlwh/yGpe508WXLF5F/Hv9LKTeAFixUSpFXt1Llsx1/LuApy7i4bq9nmx30Of5GiFvUARTr0wa1a3BbH5E0Sj963vVLwy+FZDiS8="
- secure: "K9pzYAsFc9rvFVz12Y80uFpruH7R5tJpurtGxQJpgSRCr4kRlJO+ODt4/Voq7lzFCiMuhbBiE0G4f8SzylyyiyJaZshAxqRBteEdDEMEnx1ND4FbqDnB9apWnWRoY1AbqBx1ckEy3jCvw1Tn9bRvvvcnOI6qXFxLpTJMP3eY6R4="
- secure: "Oa/blQENesTANzJbqzdQPQ1Hg99DaUVCekms1xkymLBUCSzqPL44KVdz3cxVGYBl/Om7mBwENEQ9BOUI6vGq+CZ7aaTYrYfEUokgvhGUgku0iLjxpHrIH04TH4XwpDXRg/iLwdQZO3d+xq7Q4XTBLOEyHVdzn5uDGP+cNoW9NbM="
- secure: "L3vKi+0gahSm8DF2GGp98FPhuWtUlqRRpCXjAUsSVNCPtru01tI4i6Kls7yqq2L+31FtkyWqBIlm1S1OZw8uiPyis3eUDqMRgASs4tOx/q2Xj2TEK8p+TKK+d3A8mct/y0e806GwdH5JIIppGSPOknPtxT92jZMrv0PnGnPAJSQ="
- secure: "fZzEs4GUtK494s63as9K72kmw0taicfouk2NDym58wHqS88UeRVjvrAkwoIGLJS6rCrh/4NkKhxPkd6JNVRVHy3KH8j2FYoIwtLStEC7YZfT25gi8EiN+O6MrTVre1WA9RT52v5gQ+a2v2YPUU6fBJAy6Xgy372PzoQrXF4iYOA="
- secure: "fNSoCKmJQUJJn4rFxsX0YXHIEtF3JCIixBkM8sCmuzOxjUPFLEjD/5D4x/t+FJfGwb1PR4194L3Tys7AK4IrpIDDXBO8vF3PYK1/evoPLPgj4IkPOReoX2zDUhxsvnEVlF3pGMK6erB6QZoDFCYD6OvqeQUxDDDuEvG8UEvNUgc="
- secure: "apJEmAnp5Ome0UJk+UEsdlVNBOX4bXE9FjBp6yYVrSeAEASFZTZbnIQXP9N8XwFc+TBa5aBlV9s7GZaieVW1/uNZg9njGUsbxPLtqpyHqJTDBgw3edcs7V12jGl+quRJoYVOtbyMQyr5VwCPzV6MmaLOoEtJM75yoSUoerkyNiI="
- secure: "AnXGOWlfhnxEuwqfnir411x/Z2Kvd/R37F8Jcv60+3dugCTLsOL/9i7rY5mwwm2ZFx4uwbCDXEC+UlW/vUhLhvdh8sCYocpghxY+WQye1cib+voqkP6Tgi1AtZL2CxBTJ2Kvyr+kNGTl0TvQC/uv3qI/D+ePijn89KFt9Z2NQEk="
- secure: "KPpkgyXr1mpbNOtxn0NAH2iS0NSy/LC6/DBoR9PBmK80LmHqhQkcB+OAwHy5q4RvRpeNIm2zg49OvV7RgzXQD3NXIy7Eik3uM6IzrcHXlDO6zPye/EAMYt/C0tJylR6ESDfp1+pEI0VyFz6pjFFs7FAX5m9UinaEJns7vucb8SA="
- secure: "Hf1TNzMMPw7msFCttHoF0V2wOFQERbGwYsZSMUac8njBXDjbsP+S/iYNkqoqJIfBjknXbn1U0RDfiDwvs/71lhV0FEoF2zPbOWitO7+ZeqpNcP2oMqnPBLCuCldKWxbsjKLwE5Qgd9KflPh49ZlnHe/cZZdzeDCIpAmHk+Ey/4U="
- secure: "cG7qndC1YAHa05QSLD8CzAZJOyJsHj4+I8OKvv+nfKFO/pQVZzKfF84v0ZVxpqdFNRRUwdH4n7zYCNAaMSoeSQmk++jyf+w8cu+x1MZ9HcnfqduuyirZR5iehmlIy1v/c1CsxAQeovDMulnFJOXGf7q7tUqB3rw/WlZZHn6Fpfc="
- secure: "NHym8MhLToBE5dlldCKTBn8NuLQg9jhjdB/9Gnn0h5j0G3x3O9yx3XbBtVSKNdvtqfGog6NG6XT2UhCYGtv59lTcWVR5tPulYkJV1vqeHfY21QeDYIESr/JOZaAIZ0RQaT/jWnoIghQNe38VMozWdwZ3ulKQ2HnzFagTbftfF5A="
- secure: "mClAXQOm9gc7UXuXpyqfNWp7JJU4n6n3pd792VK8K8ioXKVSySZLbJOFul5KY8ZLePCvdliZ0yfKqyBR7XqbzPFwH/0R3pppaI+T/0mZRi5SqcJ9KnJdf7jkTLsQI73wU25YC/T6ZHodEfANYTaP06Ex7QnY/djWsTvAH3Ga2dA="
- secure: "BdYq/BztHLp4TGExfjAxRW9Qtnpi7aizY6fyQNqOBorF6aYKNLOaaN8i7bURL7I5B+WT2vR/NFDv8Ehz096HFjnDZ8vVFn4tQQgGlxf+BcYrBOeA+AIxA9XR/yp9v6ljONasD7PQ8uDJoyUy9FOimet6T5GAOTy8LO8SRQDvxoY="
- secure: "iHb3IwbyrCKW884oVvckz7BR8F9YhLQXkEUvufc/5oKtsn/zMflHQ1+OV04q4j7B5hdu9/ur8T0q80YysJL8btHT0vnR7kx/uDx/S8tqXlMMb0Tr1JUGLFIHBZWRPUCayXTcBk06BrYRA1wB8cLQnLxqI4OfgMAN+rOv60CGR8k="
- secure: "XzK4KXCtcu5B1Flyiq9jl7hxnsUXXTYcmSq7bmIM4g8dsRz6EdDWrSBJUIstKCLckmoeQcfyCyXYjy2dvGgv7FX+Hu1nNGCZGy/rOIaciiinHf9mQZVTTwUZv1gGPZo2jdue15NvvCLwJt/N6SSZYor8fRyPyuVnK8/PBj4jcao="
- secure: "YFEbESe4qlFKXsgYgST3Z9NRMyNEj2oVYEzgcB+dWsVnfDufhtjUhQ+AGw+vsbYg2g2TIQzyVSWMG+mQo41SX4bLFH0Rwgial4ZnpWP7NHrkCgjIeeZRP/f81KIdGnCyabatOkJPQQ5qS0cZVRpQaXq8Zsxk+aDmYc2kZwWA3xc="
- secure: "Tv1OUgeQDBPwnL5GsEBiKjr1HdMrvsedk5I6ckbpBa6S1dKCzirOJRRHr9ZP4/TiZYEBd84nQZ5fKTIrCxU18CQzrs/gsS2hHyN+Nr8cpWpa6IovKOpMKxCYryLJFpX69cihcOVzp1xQq+a7sZq/yhZJmKaUBFlZchyPtJ1ysmg="
- secure: "iYz1GPvgcYpue6CKaW/O8iEolwC0UFztsZWzJZyrpZGrsw0fZbqpcn9ACEc+LQKYmvTo3hdBj9ewZB4+Bj4VMVIjgTlYsP0rYESsPd7njgpll+WfslRd5WNJLioUiPeb29yC4woiGa+/YHy2ACJI+ix7F6NyHk+2ri0MCOa4BnQ="
- secure: "Xwco3s7JM7hsAuDrAKuaYBjMccNTKWCXsoE48kQsKGlBM/iQ849nGTmImIKvdh0tZG5LDXgc04rbldhnpvMfWmty0hrQZuwjPaHBqHQ7zWXeNl3/CpAIGTBsefO7hTRoT2+xw1I6f4n8a5U7FICaGmWkR/MvykPOJyR+ms/hOQM="
- secure: "lNW2JDlel5MC9kwRu9lvNPWdlkbhAmkLo/YovVsrKyXPZfETWZO6IU2dDfKQvetIB2zQQnplbozdyiRBMywBnAk27FqLRAjbBqlKTC1jPlU4W29SBCMf+kJlVcQHvh0feeJChBZrVb2GQIAiHEkloDFX03E7RhOPAE5GqzvYow0="
- secure: "ZCfE5sS+70M4MVDOxVMlYcge7LewYbHIm0DE7QFfkwJ9sobaVr+uQMWe+9bA3DhxhdvQQ9p6lGE36ST+WYWopO7SHW6Ly+WvH1kM1nOZfY4w5R+BlAJ9QPcudnPUuFMOBXM0Wm8XccPuld2D5Jg7SalmS1F6mdArXsuL55CXxco="
- secure: "G4MDFYa3BbzqUGMfrABOjEjIa/pXHR8/jgOIQxY3FK2/0bYr//2YU/bw1gJBPQc8Ef243LzhTKvfFhntTecSfH2pS0Ezm2HWwtaF+lBg/A5bYCJX5Tek6HAOv1+aajTRZAjjj4X28T0NCqJI6u1WvbHwYFmW8wsfZtYZKB8JFuo="
- secure: "Py01+IBxGWKG7lyV10bZPYnqvLxNNBE+L6i1hvvvQmx078LfKtVr3tdDSZJVjf3H+gMXW0qnEhBYWJlzKPO5zCMhX314s43yxW3a5N+QZ74ucCO0Yvc4JXA8y7+g4lgsihJmzLSGQZziT+xnn0Q4iNpB8G0kXcl7zVT/ZsLFooQ="
- secure: "lkkLCzuHhR1Z3zzV/8me/PbzMConA8kdxUQ6mQb4VZE8h3wsRDh9P8yKciluV/ZVgqZtLG8VbVnLHgVzzu2zDTqf1t/Gsb5u8Rq5w/sTZyqMpB9qpRjHmq+uPds+ScvAplyoPH4oskXS8xQ8G1ykJwPBbRETyZzAU2/JoOgWiOs="
- secure: "KQlczojVt3jfMtsnl1GFiKsCxkPOaIr95MxopGYqqOVxzRDeNvtJcA/xQU1ouibJlx9B/EHZx0K+/DIk6dyr+irAVzgPGdT5pRxmjSREONPDaGEj9f4D6GWS3AtUJW2AqTMdtI3+d6o7oaYFGGXTCeW+qFMcsxEpn3eT1HMJs1A="
- secure: "XeqXuqqHPAW6/5WukY8y3n1PmaP7ASuNvMTd/Xv3sXzcci11ZKWNEOQDxZeRUwuEot4v2WG+m4HuvIqGWbz6mi8+4OaWUynLRitlGWj7JBu1igN9awmOw+HOcM32v2UcxUdsUSB5AdEOs7hafjodbshxrWQbo05ruk6Au4+jrd4="
- secure: "Ej8RRGUT95llMPDUtbx/lF7D9bKGxTCGdKZbTKFdIPjUzTJgE0pm89vIxKvq7y//oMCposX5DjcVolF+dS2Ya2031MTUto3mUwFq+sx3t2knWt812mQ6p2Ow/l6/uOlr2FHxUJKOxPeWqLRB6NYd9YnUiC3OJNlERr8nyHkCx4c="
- secure: "JsOTX5JsRAY3zyKa/5yYkd48Nejt9CAEraXVpN1NDW25jJmsOynyW5d2WYazJ1H0x1oR6Fhc4gstNxaj1MNh/gVM9O3UM2tyFnSxDY6fZnEGWaf17ln4dqi3KHXWU7h2Gdg1ah19NS0nWytooW6VcEXmk+cYSheTqyfc5gK7Sdo="
- secure: "mMc9MyopIjvzpDg3eN6owSmr2PI58JiPnlLhMNvOWW9axUzup5tthfqM+tvR/AqdLQSSMUC9JXwwQK0d543Q4YyoQ0jwVY2RT56VdEywxD5+yWRfXD+ANlJhdQWmlPVc3KsavKYmfQPBLbwe0nyhtQTWGeAgKTYvYT+k1/PD4rg="
- secure: "X7KDSiSOR3XcePJgTXNzwE1wU285yFsxB7crMLskD08wU8xdRqS8NL+1++/Lju6pypOkospI2AYH1JAJ7JK3Sx5QYM4MxgRJcrMHiTMirN3cm3KzkWUuv3iEZNJ7q6ANi5oFfHh3k0D4JhCEnA1ICTDPdq+r9+mOvgkrly8V0Dw="
# scan.coverity token
- secure: "CGHkiv3Aki3HF2xiNPbPEqB66Xcz8HrdhSpFYjQFqHsrseIXOmZGLaIdnkwCqoIHUMFVtqGVGSxRhhrSOrAq+uOgc6Wyst8u6ThN3HhRbvQgF2v7XvtGsTiAObxLvj5V91gqQwHxWPHf948Cm12QQgmEd+dbhyjPWsmVMDb4gNk="
addons:
coverity_scan:
project:
name: "openscad/openscad"
description: "The Programmers Solid 3D CAD Modeller"
notification_email: dev@openscad.org
build_command_prepend: qmake
build_command: make
branch_pattern: coverity_scan

View File

@ -18,6 +18,11 @@
<string>@SHORT_VERSION@</string>
<key>CFBundleShortVersionString</key>
<string>@SHORT_VERSION@</string>
<key>LSEnvironment</key>
<dict>
<key>GUI_LAUNCHED</key>
<string></string>
</dict>
<key>CFBundleDocumentTypes</key>
<array>
<dict>

View File

@ -1,3 +1,7 @@
[![Travis CI](https://api.travis-ci.org/openscad/openscad.png)](https://travis-ci.org/openscad/openscad)
[![Coverity Status](https://scan.coverity.com/projects/2510/badge.svg)](https://scan.coverity.com/projects/2510)
[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/openscad/openscad/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
# What is OpenSCAD?
[![Flattr this git repo](http://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/submit/auto?user_id=openscad&url=http://openscad.org&title=OpenSCAD&language=&tags=github&category=software)
@ -84,18 +88,23 @@ libraries from aptitude. If you're using Mac, or an older Linux/BSD, there
are build scripts that download and compile the libraries from source.
Follow the instructions for the platform you're compiling on below.
* [Qt4 (4.4 - 4.8)](http://www.qt.nokia.com/)
* [CGAL (3.6 - 4.1)](http://www.cgal.org/)
* [Qt4 (4.4 - 5.4)](http://www.qt.nokia.com/)
* [QScintilla2 (2.7 - 2.8)](http://www.riverbankcomputing.co.uk/software/qscintilla/)
* [CGAL (3.6 - 4.5)](http://www.cgal.org/)
* [GMP (5.x)](http://www.gmplib.org/)
* [cmake (2.8, required by CGAL and the test framework)](http://www.cmake.org/)
* [MPFR (3.x)](http://www.mpfr.org/)
* [boost (1.35 - 1.53)](http://www.boost.org/)
* [OpenCSG (1.3.2)](http://www.opencsg.org/)
* [cmake (2.8 - 3.0, required by CGAL and the test framework)](http://www.cmake.org/)
* [boost (1.35 - 1.57)](http://www.boost.org/)
* [OpenCSG (1.3.2 ->)](http://www.opencsg.org/)
* [GLEW (1.5.4 ->)](http://glew.sourceforge.net/)
* [Eigen (2.0.x->3.x)](http://eigen.tuxfamily.org/)
* [GCC C++ Compiler (4.2 ->)](http://gcc.gnu.org/)
* [Bison (2.4)](http://www.gnu.org/software/bison/)
* [Flex (2.5.35)](http://flex.sourceforge.net/)
* [Eigen (3.x)](http://eigen.tuxfamily.org/)
* [glib2 (2.x)](https://developer.gnome.org/glib/)
* [fontconfig (2.10 -> )](http://fontconfig.org/)
* [freetype2 (2.4 -> )](http://freetype.org/)
* [harfbuzz (0.9.19 -> )](http://harfbuzz.org/)
* [Bison (2.4 -> )](http://www.gnu.org/software/bison/)
* [Flex (2.5.35 -> )](http://flex.sourceforge.net/)
* [pkg-config (0.26 -> )](http://www.freedesktop.org/wiki/Software/pkg-config/)
### Getting the source code
@ -113,24 +122,41 @@ To pull the MCAD library (http://reprap.org/wiki/MCAD), do the following:
### Building for Mac OS X
Prerequisites:
* XCode, including XCode command-line tools (install from XCode Preferences).
* [CMake](http://cmake.org), which can be installed manually or through MacPorts/homebrew.
Then after you've cloned this git repository, run the script that sets up the
environment variables.
* XCode, including XCode command-line tools.
source setenv_mjau.sh
Install Dependencies:
Then run the script to compile all the prerequisite libraries above:
Run the script that sets up the environment variables:
```source setenv_mac-qt5.sh```
./scripts/macosx-build-dependencies.sh
Then run the script to compile all the dependencies:
```./scripts/macosx-build-dependencies.sh```
You can also install the prerequisites using
[MacPorts](http://www.macports.org). Unfortunately,
[brew](http://mxcl.github.com/homebrew/) doesn't yet support CGAL and
OpenCSG.
After that, follow the Compilation instructions below.
After building dependencies, follow the instructions in the *Compilation* section.
For the adventurous, it might be possible to build OpenSCAD using _MacPorts_ or _Homebrew_. The main challenge is that both these systems have partially broken libraries, but that tends to change from time to time.
1. **MacPorts** (assumes [MacPorts](http://macports.org) is already installed)
NB! MacPorts currently doesn't support Qt5 very well, so using Qt4
is the only working option at the moment. However, MacPorts' Qt4
has a broken ```moc``` command, causing OpenSCAD compilation to
break. This may be fixed in MacPorts by the time you read this.
```sudo port install opencsg qscintilla boost cgal pkgconfig eigen3 harfbuzz fontconfig```
1. **Homebrew** (assumes [Homebrew](http://brew.sh)) is already installed)
NB! Homebrew's ```qscintilla2``` component doesn't support Qt5, so using Qt4 is currently necessary.
However, Homebrew's Qt4 has a broken ```moc``` command, causing OpenSCAD compilation to
break. This may be fixed in Homebrew by the time you read this.
NB! Homebrew's ```harfbuzz``` package requires X11, so you may have to install an X11 server.
NB! Homebrew doesnt have an OpenCSG package
```brew install cgal qscintilla2 eigen harfbuzz```
### Building for Linux/BSD
@ -140,7 +166,7 @@ the dependency packages listed above using your system's package
manager. A convenience script is provided that can help with this
process on some systems:
./scripts/uni-get-dependencies.sh
sudo ./scripts/uni-get-dependencies.sh
After installing dependencies, check their versions. You can run this
script to help you:
@ -164,17 +190,9 @@ Then run the script to compile all the prerequisite libraries above:
./scripts/uni-build-dependencies.sh
This may take an hour or more, depending on your network and system. It
is recommended to have at least 1 gigabyte of free disk space. As a
special timesaver if you are only missing CGAL and OpenCSG, you can do
this instead:
./scripts/uni-build-dependencies.sh opencsg
./scripts/uni-build-dependencies.sh cgal
Note that huge dependencies like gcc or qt are not included here, only
the smaller ones (boost, CGAL, opencsg, etc). After the build, again
check dependencies.
Note that huge dependencies like gcc, qt, or glib2 are not included
here, only the smaller ones (boost, CGAL, opencsg, etc). After the
build, again check dependencies.
./scripts/check-dependencies.sh
@ -206,15 +224,16 @@ complete, build OpenSCAD and package it to an installer:
If you wish you can only build the openscad.exe binary:
cd mingw32
qmake .. CONFIG+=mingw-cross-env
qmake ../openscad.pro CONFIG+=mingw-cross-env
make
For a 64-bit Windows cross-build, replace 32 with 64 in the above instructions.
### Compilation
First, run 'qmake' from Qt4 to generate a Makefile. On some systems you need to
run 'qmake4', 'qmake-qt4' or something alike to run the qt4 version of the tool.
First, run 'qmake openscad.pro' from Qt4 to generate a Makefile.
On some systems, depending on which version(s) of Qt you have installed, you may need to specify which version you want to use, e.g. by running 'qmake4', 'qmake-qt4' or something alike.
Then run make. Finally you might run 'make install' as root or simply copy the
'openscad' binary (OpenSCAD.app on Mac OS X) to the bin directory of your choice.

View File

@ -1,206 +1,285 @@
OpenSCAD 2013.06
================
Language Features:
o linear_extrude now takes a scale parameter:
# OpenSCAD 2015.03
**Language Features:**
* Added text() module for 2D text
* Added offset() module for 2D offsets
* Added list comprehensions and let()
* Added concat() function
* Added chr() function
* surface() can now take PNG images as input
* min() and max() can now take a vector argument
* 2D minkowski can now handle polygons with holes
* Variables can now be assigned in local blocks without using assign()
**Program Features:**
* Added Toolbar icons
* New code editor based on QScintilla
* Added Splash screen
* Added SVG export
* Added AMF export
* Added --viewall and --autocenter cmd-line parameters
* GUI is now translated into German, Czech, Spanish, French and Russian
* MDI (Multiple Document Interface) is now available on all platforms
* Color schemes for viewer and editor can be user-edited using JSON files
* GUI components are now dockable
* Added Tickmarks on axes
**Bugfixes/improvements:**
* Performance improvement: 2D (clipper), preview, hull, minkowski, surface
* Performance improvement: Reduce duplicate evaluation of identical expressions
* Better recursion behavior
* STL export and import is now more robust
* Internal cavities are better supported
* New examples
* Windows cmd-line behaves better
* Better mirror() and scale() behavior when using negative factors
**Deprecations:**
* polyhedron() now takes a faces= argument rather than triangles=
* assign() is no longer needed. Local variables can be created in any scope
# OpenSCAD 2014.03
**Language Features:**
* Added diameter argument: circle(d), cylinder(d, d1, d2) and sphere(d)
* Added parent_module() and $parent_modules
* Added children() as a replacement for child()
* Unicode strings (using UTF-8) are now correctly handled
* Ranges can have a negative step value
* Added norm() and cross() functions
**Program Features:**
* Cmd-line: --info parameter prints system/library info
* Cmd-line: --csglimit parameter to change CSG rendering limit
* Cmd-line: Better handling of cmd-line arguments under Windows
* GUI: Added Reset View
* GUI: Added Search&Replace in editor
* GUI: Syntax highlighting now has a dark background theme
* GUI: We now create a backup file before rendering to allow for recovery if OpenSCAD crashes/freezes
* GUI: Accessibility features enabled (e.g. screenreading)
**Bugfixes/improvements:**
* Reading empty STL files sometimes caused a crash
* OPENSCADPATH now uses semicolon as path separator under Windows
* polyhedron() is now much more robust handling almost planar polygons
* Automatic reloads of large designs are more robust
* Boolean logic in if() statements are now correctly short-circuited
* rands() with zero range caused an infinite loop
* resize(, auto=true) didn't work when shrinking objects
* The $children variable sometimes misbehaved due to dynamic scoping
* The --camera cmd-line option behaved differently then the corresponding GUI function
* PNG export now doesn't leak transparency settings into the target image
* Improved performance of 3D hull() operations
* Some editor misbehaviors were fixed
* Stability fixes of CGAL-related crashes
* Windows cmd-line can now handle spaces in filenames
* Default CSG rendering limit is now 100K elements
* Fixed a crash reading DXF files using comma as decimal separator
* Fixed a crash running the cmd-line without a HOME env. variable
* Intersecting something with nothing now correctly results in an empty object
**Deprecations:**
* child() is no longer supported. Use children() instead.
* polyhedron(triangles=[...]): Use polyhedron(faces=[...]) instead.
**Misc:**
* Test framework now shares more code with the GUI app
* Test report can now be automatically uploaded to dinkypage.com
* Better compatibility with BSD systems
* Qt5 support
# OpenSCAD 2013.06
**Language Features:**
* linear_extrude now takes a scale parameter:
linear_extrude(height=a, slices=b, twist=c, scale=[x,y])
o Recursive use of modules is now supported (including cascading child() operations):
* Recursive use of modules is now supported (including cascading child() operations):
https://github.com/openscad/openscad/blob/master/examples/example024.scad
o Parameter list values can now depend on earlier values, e.g. for (i=[0:2], j=[0:i]) ..
o value assignments in parameters can now depend on already declared parameters
o Added resize() module:
* Parameter list values can now depend on earlier values, e.g. for (i=[0:2], j=[0:i]) ..
* value assignments in parameters can now depend on already declared parameters
* Added resize() module:
http://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Transformations#resize
Program Features:
o Added basic syntax highlighting in the editor
o There is now a built-in library path in user-space:
**Program Features:**
* Added basic syntax highlighting in the editor
* There is now a built-in library path in user-space:
http://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Libraries#Library_Locations
o Commandline output to PNG, with various camera and rendering settings.
* Commandline output to PNG, with various camera and rendering settings.
Run openscad -h to see usage info or see the OpenSCAD wiki user manual.
o Attempting to open dxf, off or stl files in the GUI will now create an import statement.
o The preview operator (%) will now preserve any manually set color
o The highlight operator (#) will now color the object in transparent red
o Mac: Added document icon
o Mac: Added auto-update check
o Windows: Better cmd-line support using the openscad.com executable
* Attempting to open dxf, off or stl files in the GUI will now create an import statement.
* The preview operator (%) will now preserve any manually set color
* The highlight operator (#) will now color the object in transparent red
* Mac: Added document icon
* Mac: Added auto-update check
* Windows: Better cmd-line support using the openscad.com executable
Bugfixes:
o Importing files is now always relative to the importing script, also for libraries
o We didn't always print a warning when CSG normalization created too many elements
o Binary STLs can now be read on big endian architectures
o Some binary STLs couldn't be read
o Fixed some issues related to ARM builds
o CGAL triangulation more lenient- enables partial rendering of 'bad' DXF data
o The Automatic Reload feature is now more robust
o If a file couldn't be saved it no longer fails silently
o Fixed a number of crashes related to CGAL and OpenCSG rendering or complex models
o The lookup() function had bad boundary condition behavior
o The surface() module failed when the .dat file lacked a trailing newline
o The hull() module could crash if any of the children were empty objects
o Some problems using unicode filenames have been fixed
**Bugfixes:**
* Importing files is now always relative to the importing script, also for libraries
* We didn't always print a warning when CSG normalization created too many elements
* Binary STLs can now be read on big endian architectures
* Some binary STLs couldn't be read
* Fixed some issues related to ARM builds
* CGAL triangulation more lenient- enables partial rendering of 'bad' DXF data
* The Automatic Reload feature is now more robust
* If a file couldn't be saved it no longer fails silently
* Fixed a number of crashes related to CGAL and OpenCSG rendering or complex models
* The lookup() function had bad boundary condition behavior
* The surface() module failed when the .dat file lacked a trailing newline
* The hull() module could crash if any of the children were empty objects
* Some problems using unicode filenames have been fixed
Misc:
o Build scripts have been further improved
o Regression test now creates single monolithic .html file for easier uploading
o Regression test auto-starts & stops Xvfb / Xvnc if on headless unix machine
o The backend is finally independent of Qt
o Windows: We now have a 64-bit version
**Misc:**
* Build scripts have been further improved
* Regression test now creates single monolithic .html file for easier uploading
* Regression test auto-starts & stops Xvfb / Xvnc if on headless unix machine
* The backend is finally independent of Qt
* Windows: We now have a 64-bit version
Known Bugs:
o Linux: command-line png rendering on Gallium is flaky.
**Known Bugs:**
* Linux: command-line png rendering on Gallium is flaky.
Workaround: use CGAL --render or hardware rendering.
OpenSCAD 2013.01
================
# OpenSCAD 2013.01
Features:
o Snappier GUI while performing CGAL computations (computations running in separate thread)
o The size of the misc. caches can now be adjusted from Preferences
o The limit for when to disable OpenCSG can now be adjusted from Preferences
o Added Dot product operator: vec * vec
o Added Matrix multiplication operator: vec * mat, mat * mat
o Added search() function
o Dependencies are now tracked - any changes in uses/included files will be detected and cause a recompile
o The OPENSCADPATH environment variable is now implemented will have precedence when searching for libraries
o .csg files can now be opened from the GUI
o linear_extrude() will now assume that the first parameter means 'height' if it's a number
**Features:**
* Snappier GUI while performing CGAL computations (computations running in separate thread)
* The size of the misc. caches can now be adjusted from Preferences
* The limit for when to disable OpenCSG can now be adjusted from Preferences
* Added Dot product operator: vec * vec
* Added Matrix multiplication operator: vec * mat, mat * mat
* Added search() function
* Dependencies are now tracked - any changes in uses/included files will be detected and cause a recompile
* The OPENSCADPATH environment variable is now implemented will have precedence when searching for libraries
* .csg files can now be opened from the GUI
* linear_extrude() will now assume that the first parameter means 'height' if it's a number
Bugfixes:
o use'ing an non-existing file sometimes crashed under Windows
o Better font handling: Ensure a monospace font is chosen as default
o Division by zero caused hang in some cases (e.g. sin(1/0))
o Larger minkowski operations sometimes caused a crash after a CGAL assert was thrown
o Fixed crashes in shared_ptr.hpp (or similar places) due bugs in cache management and CSG normalization
o scale() with a scale factor of zero could cause a crash
o Fixed a number of issues related to use/include
o Providing an unknown parameter on the cmd-line caused a crash
o cmd-line overrides using -D now also work for USEd modules
o Modifier characters can now be used in front of if statements
o rotate() with a vector argument with less that 3 elements used uninitialized variables, ending up being non-deterministic.
o .csg files will now have relative filenames whenever possible
o Don't just ignore geometric nodes having zero volume/area - when doing difference/intersection, they tend to turn negative objects into positive ones.
o Always use utf-8 file encoding, also under Windows
o A lot of build script fixes
o Some other crash bugs fixes
**Bugfixes:**
* use'ing an non-existing file sometimes crashed under Windows
* Better font handling: Ensure a monospace font is chosen as default
* Division by zero caused hang in some cases (e.g. sin(1/0))
* Larger minkowski operations sometimes caused a crash after a CGAL assert was thrown
* Fixed crashes in shared_ptr.hpp (or similar places) due bugs in cache management and CSG normalization
* scale() with a scale factor of zero could cause a crash
* Fixed a number of issues related to use/include
* Providing an unknown parameter on the cmd-line caused a crash
* cmd-line overrides using -D now also work for USEd modules
* Modifier characters can now be used in front of if statements
* rotate() with a vector argument with less that 3 elements used uninitialized variables, ending up being non-deterministic.
* .csg files will now have relative filenames whenever possible
* Don't just ignore geometric nodes having zero volume/area - when doing difference/intersection, they tend to turn negative objects into positive ones.
* Always use utf-8 file encoding, also under Windows
* A lot of build script fixes
* Some other crash bugs fixes
Deprecations:
o The old include syntax "<filename.scad>" without the include keyword is no
**Deprecations:**
* The old include syntax "<filename.scad>" without the include keyword is no
longer supported and will cause a syntax error.
OpenSCAD 2011.12
================
# OpenSCAD 2011.12
Features:
o The MCAD library is now bundled with OpenSCAD
o Added len() function. Takes one vector or string parameter and returns its length.
o The index operator [] now works on strings
o The version() function will return the OpenSCAD version as a vector, e.g. [2011, 09]
o The version_num() function will return the OpenSCAD version as a number, e.g. 20110923
o hull() Now supports 3D objects
o hull() with 2D object can now use for loops and boolean operations as children
o New import() statement reads the correct file format based on the filename extension
**Features:**
* The MCAD library is now bundled with OpenSCAD
* Added len() function. Takes one vector or string parameter and returns its length.
* The index operator [] now works on strings
* The version() function will return the OpenSCAD version as a vector, e.g. [2011, 09]
* The version_num() function will return the OpenSCAD version as a number, e.g. 20110923
* hull() Now supports 3D objects
* hull() with 2D object can now use for loops and boolean operations as children
* New import() statement reads the correct file format based on the filename extension
(.stl, .dxf and .off is supported)
o The color() statement now supports an alpha parameter, e.g. color(c=[1,0,0], alpha=0.4)
o The color() statement now supports specifying colors as strings, e.g. color("Red")
o The color() statement now overrides colors specified further down in the tree
o if()/else() and the ternary operator can now take any value type as parameter. false, 0, empty string and empty vector or illegal value type will evaluate as false, everything else as true.
o Strings can now be lexographically compared using the <, <=, >, >= operators
o Added PI constant.
o Number literals in scientific notation are now accepted by the parser
o Added import and export of the OFF file format
o Now uses standard shortcuts for save, reload and quit on Linux and Windows. F2/F3 will still work but is deprecated.
* The color() statement now supports an alpha parameter, e.g. color(c=[1,0,0], alpha=0.4)
* The color() statement now supports specifying colors as strings, e.g. color("Red")
* The color() statement now overrides colors specified further down in the tree
* if()/else() and the ternary operator can now take any value type as parameter. false, 0, empty string and empty vector or illegal value type will evaluate as false, everything else as true.
* Strings can now be lexographically compared using the <, <=, >, >= operators
* Added PI constant.
* Number literals in scientific notation are now accepted by the parser
* Added import and export of the OFF file format
* Now uses standard shortcuts for save, reload and quit on Linux and Windows. F2/F3 will still work but is deprecated.
Bugfixes:
o Complex CSG models sometimes took extremely long time to normalize before OpenCSG preview
o square() crashed if any of the dimensions were zero
o Flush Caches didn't flush cached USE'd modules
o STL export should be a bit more robust
o Dropping a file into the editor under Windows didn't work (double C:/C:/ problem)
o On some platforms it was possible to insertion rich text in the editor, causing confusion.
o Less crashes due to CGAL assertions
o OpenCSG should now work on systems with OpenGL 1.x, given that the right extensions are available
o include now searches librarydir
o The $fs parameter yielded only half the number of segments it should have
o surface(center=true) is now correctly centered in the XY plane
**Bugfixes:**
* Complex CSG models sometimes took extremely long time to normalize before OpenCSG preview
* square() crashed if any of the dimensions were zero
* Flush Caches didn't flush cached USE'd modules
* STL export should be a bit more robust
* Dropping a file into the editor under Windows didn't work (double C:/C:/ problem)
* On some platforms it was possible to insertion rich text in the editor, causing confusion.
* Less crashes due to CGAL assertions
* OpenCSG should now work on systems with OpenGL 1.x, given that the right extensions are available
* include now searches librarydir
* The $fs parameter yielded only half the number of segments it should have
* surface(center=true) is now correctly centered in the XY plane
Deprecations:
o dxf_linear_extrude() and dxf_rotate_extrude() are now deprecated.
**Deprecations:**
* dxf_linear_extrude() and dxf_rotate_extrude() are now deprecated.
Use linear_extrude() and rotate_extrude() instead.
o The file, layer, origin and scale parameters to linear_extrude() and rotate_extrude()
* The file, layer, origin and scale parameters to linear_extrude() and rotate_extrude()
are now deprecated. Use an import() child instead.
o import_dxf(), import_stl() and import_off() are now deprecated. Use import() instead.
o When exporting geometry from the cmd-line, use the universal -o option. It will export to the correct file format based on the given suffix (dxf, stl, off). The -x and -s parameters are still working but deprecated.
o F2 and F3 for Save and Reload is now deprecated
* import_dxf(), import_stl() and import_off() are now deprecated. Use import() instead.
* When exporting geometry from the cmd-line, use the universal -o option. It will export to the correct file format based on the given suffix (dxf, stl, off). The -x and -s parameters are still working but deprecated.
* F2 and F3 for Save and Reload is now deprecated
OpenSCAD 2011.06
================
# OpenSCAD 2011.06
o Added "Export as Image" menu.
* Added "Export as Image" menu.
Bugfixes:
o Cylinder tesselation broke existing models which are using cylinders
**Bugfixes:**
* Cylinder tesselation broke existing models which are using cylinders
for e.g. captured nut slots and are dependent on the orientation not
changing.
o DXF output couldn't be imported into e.g. AutoCAD and Solidworks after updating
* DXF output couldn't be imported into e.g. AutoCAD and Solidworks after updating
to using the AutoCAD 2000 (AC1015) format. Reverted to the old entity-only output,
causing LWPOLYLINES to not exported allowed anymore.
# OpenSCAD 2011.04
* Added hull() for convex hulls (2D object only)
* minkowski() now supports 2D objects
* Added functions: rands(), sign()
* Now supports escaping of the following characters in strings: \n, \t, \r, \\, \"
* Support nested includes
* Improved parsing of numbers
* DXF: output LWPOLYLINE instead of just LINE entities
* Bugfixes: More robust DXF export, setting $fs/$fa to 0 caused a crash
* Some bugs fixed, maybe some new bugs added
OpenSCAD 2011.04
================
# OpenSCAD 2010.05
o Added hull() for convex hulls (2D object only)
o minkowski() now supports 2D objects
o Added functions: rands(), sign()
o Now supports escaping of the following characters in strings: \n, \t, \r, \\, \"
o Support nested includes
o Improved parsing of numbers
o DXF: output LWPOLYLINE instead of just LINE entities
o Bugfixes: More robust DXF export, setting $fs/$fa to 0 caused a crash
o Some bugs fixed, maybe some new bugs added
* Added functions and statements
* Added abs() function
* Added exp(x), log(b, x), log(x) and ln(x) functions
* Added minkowski() statement for 3d minkowski sums
* Added 'include <filename>' and 'use <filename>' statements
* Old implicit '<filename>' include statement is now obsolete
* Some bugs fixed, maybe some new bugs added
OpenSCAD 2010.05
================
# OpenSCAD 2010.02
o Added functions and statements
- Added abs() function
- Added exp(x), log(b, x), log(x) and ln(x) functions
- Added minkowski() statement for 3d minkowski sums
o Added 'include <filename>' and 'use <filename>' statements
- Old implicit '<filename>' include statement is now obsolete
o Some bugs fixed, maybe some new bugs added
* Added functions and statements
* Added sqrt() function
* Added round(), ceil() and floor() functions
* Added lookup() function for linear interpolation in value list
* Added projection(cut = true/false) statement
* Added child() statement for accessing child nodes of module instances
* Added mirror() statement
* Improved DXF import code (more entities and some bugs fixed)
* Added feature for dumping animation as PNG files
* Added a preferences dialog
* Now using CGAL's delaunay tesselator
* Now using eigen2 for linear algebra
* Reorganisation of the source tree
* Some bugs fixed, maybe some new bugs added
OpenSCAD 2010.02
================
o Added functions and statements
- Added sqrt() function
- Added round(), ceil() and floor() functions
- Added lookup() function for linear interpolation in value list
- Added projection(cut = true/false) statement
- Added child() statement for accessing child nodes of module instances
- Added mirror() statement
o Improved DXF import code (more entities and some bugs fixed)
o Added feature for dumping animation as PNG files
o Added a preferences dialog
o Now using CGAL's delaunay tesselator
o Now using eigen2 for linear algebra
o Reorganisation of the source tree
o Some bugs fixed, maybe some new bugs added
OpenSCAD 2010.01
================
o Added functions and statements
- Added intersection_for()
- Added str function
- Added min and max function
- Added color() statement
o Added 2D Subsystem
- New primitives: circle(), square() and polygon()
- 2D->3D path: linear_extrude() and rotate_extrude()
- Import of DXF to 2d subsystem: import_dxf()
- Export of 2D data as DXF files
o Some bugs fixed, maybe some new bugs added
# OpenSCAD 2010.01
* Added functions and statements
* Added intersection_for()
* Added str function
* Added min and max function
* Added color() statement
* Added 2D Subsystem
* New primitives: circle(), square() and polygon()
* 2D->3D path: linear_extrude() and rotate_extrude()
* Import of DXF to 2d subsystem: import_dxf()
* Export of 2D data as DXF files
* Some bugs fixed, maybe some new bugs added

View File

@ -3,12 +3,13 @@
<channel>
<title>OpenSCAD Development Snapshots</title>
<link>http://openscad.org/appcast-snapshots.xml</link>
<language>en</language>
<language>en</language>
<item>
<title>OpenSCAD @VERSION@</title>
<pubDate>@VERSIONDATE@</pubDate>
<sparkle:releaseNotesLink>https://raw.github.com/openscad/openscad/master/RELEASE_NOTES</sparkle:releaseNotesLink>
<enclosure url="https://openscad.googlecode.com/files/OpenSCAD-@VERSION@.dmg"
<sparkle:releaseNotesLink>https://raw.githubusercontent.com/openscad/openscad/master/releases/2015.XX.md</sparkle:releaseNotesLink>
<sparkle:minimumSystemVersion>10.7.0</sparkle:minimumSystemVersion>
<enclosure url="http://files.openscad.org/snapshots/OpenSCAD-@VERSION@.dmg"
sparkle:version="@VERSIONDATE@"
sparkle:shortVersionString="@VERSION@"
sparkle:dsaSignature="@DSASIGNATURE@"

View File

@ -7,8 +7,9 @@
<item>
<title>OpenSCAD @VERSION@</title>
<pubDate>@VERSIONDATE@</pubDate>
<sparkle:releaseNotesLink>https://raw.github.com/openscad/openscad/openscad-@VERSION@/RELEASE_NOTES</sparkle:releaseNotesLink>
<enclosure url="https://openscad.googlecode.com/files/OpenSCAD-@VERSION@.dmg"
<sparkle:releaseNotesLink>https://raw.githubusercontent.com/openscad/openscad/openscad-@VERSION@/releases/@SHORTVERSION@.md</sparkle:releaseNotesLink>
<sparkle:minimumSystemVersion>10.7.0</sparkle:minimumSystemVersion>
<enclosure url="http://files.openscad.org/OpenSCAD-@VERSION@.dmg"
sparkle:version="@VERSIONDATE@"
sparkle:shortVersionString="@VERSION@"
sparkle:dsaSignature="@DSASIGNATURE@"

View File

@ -3,7 +3,7 @@
bison.input = BISONSOURCES
bison.output = ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.cpp
bison.commands = bison -d -p ${QMAKE_FILE_BASE} -o ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.cpp ${QMAKE_FILE_IN}
bison.commands += && if [ -e ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.hpp ]; then mv ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.hpp ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.h ; fi
bison.commands += && if [[ -e ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.hpp ]] ; then mv ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.hpp ${QMAKE_FILE_PATH}/${QMAKE_FILE_BASE}_yacc.h ; fi
bison.CONFIG += target_predeps
bison.variable_out = GENERATED_SOURCES
silent:bison.commands = @echo Bison ${QMAKE_FILE_IN} && $$bison.commands
@ -40,3 +40,6 @@ netbsd* {
QMAKE_YACC = bison
}
}
win32*msvc* {
}

View File

@ -9,15 +9,23 @@ boost {
win*: QMAKE_LIBDIR += -L$$BOOST_DIR/lib
}
# See https://svn.boost.org/trac/boost/ticket/6219
macx: DEFINES += __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0
# MXE cross build
CONFIG(mingw-cross-env) {
DEFINES += BOOST_STATIC
DEFINES += BOOST_THREAD_USE_LIB
DEFINES += Boost_USE_STATIC_LIBS
BOOST_LINK_FLAGS = -lboost_thread_win32-mt -lboost_program_options-mt -lboost_filesystem-mt -lboost_system-mt -lboost_regex-mt -lboost_chrono-mt
}
}
isEmpty(BOOST_LINK_FLAGS):win* {
BOOST_LINK_FLAGS = -llibboost_thread-vc90-mt-s-1_46_1 -llibboost_program_options-vc90-mt-s-1_46_1 -llibboost_filesystem-vc90-mt-s-1_46_1 -llibboost_system-vc90-mt-s-1_46_1 -llibboost_regex-vc90-mt-s-1_46_1
# MSYS2
isEmpty(BOOST_LINK_FLAGS):win32-g++ {
DEFINES += BOOST_STATIC
DEFINES += BOOST_THREAD_USE_LIB
DEFINES += Boost_USE_STATIC_LIBS
BOOST_LINK_FLAGS = -lboost_thread-mt -lboost_program_options-mt -lboost_filesystem-mt -lboost_system-mt -lboost_regex-mt
}
# check for OPENSCAD_LIBDIR + multithread
@ -53,7 +61,9 @@ boost {
BMT_TEST1 = /usr/lib64/libboost*thread-mt*
BMT_TEST2 = /usr/lib/libboost*thread-mt*
BMT_TEST3 = /usr/pkg/lib/libboost*thread-mt* # netbsd
exists($$BMT_TEST1)|exists($$BMT_TEST2)|exists($$BMT_TEST3) {
BMT_TEST4 = /usr/local/lib/libboost*thread-mt* # homebrew
BMT_TEST5 = /opt/local/lib/libboost*thread-mt* # macports
exists($$BMT_TEST1)|exists($$BMT_TEST2)|exists($$BMT_TEST3)|exists($$BMT_TEST4)|exists($$BMT_TEST5) {
BOOST_LINK_FLAGS = -lboost_thread-mt -lboost_program_options-mt -lboost_filesystem-mt -lboost_system-mt -lboost_regex-mt
}
}

38
c++11.pri Normal file
View File

@ -0,0 +1,38 @@
macx {
# Mac needs special care to link against the correct C++ library
# We attempt to auto-detect it by inspecting Boost
dirs = $${BOOSTDIR} $${QMAKE_LIBDIR}
for(dir, dirs) {
system(grep -q __112basic_string $${dir}/libboost_thread* >& /dev/null) {
message("Using libc++11")
CONFIG += libc++
}
else {
message("Using libstdc++")
CONFIG += libstdc++
c++11 {
# libc++ is a requirement for using C++11
warning("Disabling C++11 since libstdc++ dependencies were found")
CONFIG -= c++11
}
}
}
libc++ {
QMAKE_CXXFLAGS += -stdlib=libc++
QMAKE_LFLAGS += -stdlib=libc++
QMAKE_OBJECTIVE_CFLAGS += -stdlib=libc++
# libc++ on requires Mac OS X 10.7+
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7
}
}
c++11 {
QMAKE_CXXFLAGS += -std=c++11
message("Using C++11")
}
else {
*clang* {
QMAKE_CXXFLAGS_WARN_ON += -Wno-c++11-extensions
}
}

View File

@ -6,7 +6,6 @@ cgal {
CGAL_DIR = $$(CGALDIR)
!isEmpty(CGAL_DIR) {
QMAKE_INCDIR += $$CGAL_DIR/include
win*: QMAKE_INCDIR += $$CGAL_DIR/auxiliary/gmp/include
QMAKE_LIBDIR += $$CGAL_DIR/lib
message("CGAL location: $$CGAL_DIR")
}
@ -19,14 +18,13 @@ cgal {
*-g++* {
QMAKE_CXXFLAGS += -frounding-math
}
LIBS += $$CGAL_DIR/auxiliary/gmp/lib/libmpfr-4.lib -lCGAL-vc90-mt-s
} else {
LIBS += -lgmp -lmpfr -lCGAL
QMAKE_CXXFLAGS += -frounding-math
}
LIBS += -lCGAL -lmpfr -lgmp
}
*clang* {
QMAKE_CXXFLAGS -= -frounding-math
}
*clang* {
QMAKE_CXXFLAGS -= -frounding-math
}
}

8
cgal/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
/*.stl
/*.scad
/*.polygon
polyhole-tessellator
polyhole-tessellator-libtess2
minkowski
decompose
export_nef

6
cgal/README.md Normal file
View File

@ -0,0 +1,6 @@
This folder contains some CGAL test programs to easier develop and debug CGAL-based components.
## polyhole-tessellator
Tessellate an almost planar 3D polygon with holes into a vector of double precision 3D triangles.

View File

@ -0,0 +1,4 @@
-76.547562539078825239,38.705110299157155396,5.353092412611622386
-76.547562541749158527,38.705110304107662955,5.3530924135499766692
-76.5475616455078125,38.705108642578125,0
-76.5475616455078125,38.705108642578125,0.020000000000000000416

198
cgal/data/cubes.stl Normal file
View File

@ -0,0 +1,198 @@
solid OpenSCAD_Model
facet normal -1 0 0
outer loop
vertex 0 10 0
vertex 0 0 0
vertex 0 0 10
endloop
endfacet
facet normal -1 -0 -0
outer loop
vertex 0 10 10
vertex 0 10 0
vertex 0 0 10
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 0 0 10
vertex 0 0 0
vertex 10 0 0
endloop
endfacet
facet normal -0 -1 -0
outer loop
vertex 10 0 10
vertex 0 0 10
vertex 10 0 0
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 5 10 0
vertex 0 0 0
vertex 0 10 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 5 15 0
vertex 15 15 0
vertex 5 10 0
endloop
endfacet
facet normal 0 -0 -1
outer loop
vertex 5 10 0
vertex 10 5 0
vertex 0 0 0
endloop
endfacet
facet normal 0 -0 -1
outer loop
vertex 15 15 0
vertex 15 5 0
vertex 10 5 0
endloop
endfacet
facet normal 0 -0 -1
outer loop
vertex 10 5 0
vertex 10 0 0
vertex 0 0 0
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 15 15 0
vertex 10 5 0
vertex 5 10 0
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 5 10 0
vertex 0 10 0
vertex 0 10 10
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 5 10 10
vertex 5 10 0
vertex 0 10 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 10 5 10
vertex 0 0 10
vertex 10 0 10
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex 15 5 10
vertex 15 15 10
vertex 10 5 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 10 5 10
vertex 5 10 10
vertex 0 0 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 15 15 10
vertex 5 15 10
vertex 5 10 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 5 10 10
vertex 0 10 10
vertex 0 0 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 15 15 10
vertex 5 10 10
vertex 10 5 10
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 0 10
vertex 10 0 0
vertex 10 5 0
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 5 10
vertex 10 0 10
vertex 10 5 0
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 5 15 0
vertex 5 10 0
vertex 5 10 10
endloop
endfacet
facet normal -1 -0 -0
outer loop
vertex 5 15 10
vertex 5 15 0
vertex 5 10 10
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 10 5 10
vertex 10 5 0
vertex 15 5 0
endloop
endfacet
facet normal -0 -1 -0
outer loop
vertex 15 5 10
vertex 10 5 10
vertex 15 5 0
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 15 15 0
vertex 5 15 0
vertex 5 15 10
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 15 15 10
vertex 15 15 0
vertex 5 15 10
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 15 5 10
vertex 15 5 0
vertex 15 15 0
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 15 15 10
vertex 15 5 10
vertex 15 15 0
endloop
endfacet
endsolid OpenSCAD_Model

View File

@ -0,0 +1,4 @@
0,0,0
0,1,0
1,1,1
0,1,0

View File

@ -0,0 +1,4 @@
0,1,0
0,0,0
0,1,0
1,1,0

View File

@ -0,0 +1,4 @@
0 0 0
1 0 0
1 1 0
1 1 0

View File

@ -0,0 +1,4 @@
0 0 0
1 0 0
0 1 0
1 1 0

View File

@ -0,0 +1,4 @@
6, -25, 29.285714285714285
6, -26.732050855686023, 29.020513307787397
6, -26.732050855686026, 29.020513307787397
6, -26, 29.132600433972414

View File

@ -0,0 +1,8 @@
11.8244953852727654464160877978,-33.4423534623057960857295256574,28
11.8244953852727654464160877978,-34,28
11.8244953852727654464160877978,-36.5576465376941897034157591406,28
7.99999999999999911182158029987,-35.6847304231704427479598962236,23.516743531220182461538570351
8,-35,23.516743531220182461538570351
5.99999999999999911182158029987,-35,21.1722478437400596362749638502
6,-35,21.1722478437400596362749638502
5.8577590289166048265201425238,-34.8042220990505484223831444979,21.0055061720960587479112291476

View File

@ -0,0 +1,4 @@
9.5,7.5,-0.5
9.5,2,-0.5
9.5,2,-0.4999999701976776123
9.5,7.5,-0.4999999701976776123

View File

@ -0,0 +1,5 @@
50.9504,53.0377,9.35305
50.2251,53.0492,9.4122
50.9537,53.0376,9.35278
55.2851,53.5142,9.35278
50.9537,53.0376,9.35278

View File

@ -0,0 +1,5 @@
50.95040130615234375,53.037654876708984375,9.35305023193359375
50.225086212158203125,53.049152374267578125,9.4121952056884765625
50.953746795654296875,53.037601470947265625,9.3527774810791015625
55.285125732421875,53.514209747314453125,9.3527774810791015625
50.953746795654296875,53.037601470947265625,9.3527774810791015625

10
cgal/data/quads.polygon Normal file
View File

@ -0,0 +1,10 @@
0,0,0
2,0,0
2,2,0
0,2,0
0.5,0.5,0
1.5,0.5,0
1.5,1.5,0
0.5,1.5,0

View File

@ -0,0 +1,4 @@
10,10,0
0,10,0
0,0,0
-1,0,0

3
cgal/data/tri.polygon Normal file
View File

@ -0,0 +1,3 @@
0,0,0
2,0,0
2,2,0

667
cgal/decompose.cpp Normal file
View File

@ -0,0 +1,667 @@
#include <boost/foreach.hpp>
#include <boost/regex.hpp>
#include <sstream>
#include <iostream>
#include <locale.h>
#include "cgalutils.h"
#include "export.h"
#include "polyset.h"
#include "CGAL_Nef_polyhedron.h"
using namespace CGALUtils;
// Nef polyhedron are using CGAL_Kernel3 (Cartesian<Gmpq>)
// Triangulation will use Epick
typedef CGAL::Epick K;
typedef CGAL::Polyhedron_3<K> PolyhedronK;
#include <boost/assign/std/vector.hpp>
#include <boost/assign/list_of.hpp>
using namespace boost::assign; // bring 'operator+=()' into scope
std::vector<Color4f> colors = boost::assign::list_of
(Color4f(240, 248, 255))
(Color4f(250, 235, 215))
(Color4f(0, 255, 255))
(Color4f(127, 255, 212))
(Color4f(240, 255, 255))
(Color4f(245, 245, 220))
(Color4f(255, 228, 196))
(Color4f(0, 0, 0))
(Color4f(255, 235, 205))
(Color4f(0, 0, 255))
(Color4f(138, 43, 226))
(Color4f(165, 42, 42))
(Color4f(222, 184, 135))
(Color4f(95, 158, 160))
(Color4f(127, 255, 0))
(Color4f(210, 105, 30))
(Color4f(255, 127, 80))
(Color4f(100, 149, 237))
(Color4f(255, 248, 220))
(Color4f(220, 20, 60))
(Color4f(0, 255, 255))
(Color4f(0, 0, 139))
(Color4f(0, 139, 139))
(Color4f(184, 134, 11))
(Color4f(169, 169, 169))
(Color4f(0, 100, 0))
(Color4f(169, 169, 169))
(Color4f(189, 183, 107))
(Color4f(139, 0, 139))
(Color4f(85, 107, 47))
(Color4f(255, 140, 0))
(Color4f(153, 50, 204))
(Color4f(139, 0, 0))
(Color4f(233, 150, 122))
(Color4f(143, 188, 143))
(Color4f(72, 61, 139))
(Color4f(47, 79, 79))
(Color4f(47, 79, 79))
(Color4f(0, 206, 209))
(Color4f(148, 0, 211))
(Color4f(255, 20, 147))
(Color4f(0, 191, 255))
(Color4f(105, 105, 105))
(Color4f(105, 105, 105))
(Color4f(30, 144, 255))
(Color4f(178, 34, 34))
(Color4f(255, 250, 240))
(Color4f(34, 139, 34))
(Color4f(255, 0, 255))
(Color4f(220, 220, 220))
(Color4f(248, 248, 255))
(Color4f(255, 215, 0))
(Color4f(218, 165, 32))
(Color4f(128, 128, 128))
(Color4f(0, 128, 0))
(Color4f(173, 255, 47))
(Color4f(128, 128, 128))
(Color4f(240, 255, 240))
(Color4f(255, 105, 180))
(Color4f(205, 92, 92))
(Color4f(75, 0, 130))
(Color4f(255, 255, 240))
(Color4f(240, 230, 140))
(Color4f(230, 230, 250))
(Color4f(255, 240, 245))
(Color4f(124, 252, 0))
(Color4f(255, 250, 205))
(Color4f(173, 216, 230))
(Color4f(240, 128, 128))
(Color4f(224, 255, 255))
(Color4f(250, 250, 210))
(Color4f(211, 211, 211))
(Color4f(144, 238, 144))
(Color4f(211, 211, 211))
(Color4f(255, 182, 193))
(Color4f(255, 160, 122))
(Color4f(32, 178, 170))
(Color4f(135, 206, 250))
(Color4f(119, 136, 153))
(Color4f(119, 136, 153))
(Color4f(176, 196, 222))
(Color4f(255, 255, 224))
(Color4f(0, 255, 0))
(Color4f(50, 205, 50))
(Color4f(250, 240, 230))
(Color4f(255, 0, 255))
(Color4f(128, 0, 0))
(Color4f(102, 205, 170))
(Color4f(0, 0, 205))
(Color4f(186, 85, 211))
(Color4f(147, 112, 219))
(Color4f(60, 179, 113))
(Color4f(123, 104, 238))
(Color4f(0, 250, 154))
(Color4f(72, 209, 204))
(Color4f(199, 21, 133))
(Color4f(25, 25, 112))
(Color4f(245, 255, 250))
(Color4f(255, 228, 225))
(Color4f(255, 228, 181))
(Color4f(255, 222, 173))
(Color4f(0, 0, 128))
(Color4f(253, 245, 230))
(Color4f(128, 128, 0))
(Color4f(107, 142, 35))
(Color4f(255, 165, 0))
(Color4f(255, 69, 0))
(Color4f(218, 112, 214))
(Color4f(238, 232, 170))
(Color4f(152, 251, 152))
(Color4f(175, 238, 238))
(Color4f(219, 112, 147))
(Color4f(255, 239, 213))
(Color4f(255, 218, 185))
(Color4f(205, 133, 63))
(Color4f(255, 192, 203))
(Color4f(221, 160, 221))
(Color4f(176, 224, 230))
(Color4f(128, 0, 128))
(Color4f(255, 0, 0))
(Color4f(188, 143, 143))
(Color4f(65, 105, 225))
(Color4f(139, 69, 19))
(Color4f(250, 128, 114))
(Color4f(244, 164, 96))
(Color4f(46, 139, 87))
(Color4f(255, 245, 238))
(Color4f(160, 82, 45))
(Color4f(192, 192, 192))
(Color4f(135, 206, 235))
(Color4f(106, 90, 205))
(Color4f(112, 128, 144))
(Color4f(112, 128, 144))
(Color4f(255, 250, 250))
(Color4f(0, 255, 127))
(Color4f(70, 130, 180))
(Color4f(210, 180, 140))
(Color4f(0, 128, 128))
(Color4f(216, 191, 216))
(Color4f(255, 99, 71))
(Color4f(0, 0, 0, 0))
(Color4f(64, 224, 208))
(Color4f(238, 130, 238))
(Color4f(245, 222, 179))
(Color4f(255, 255, 255))
(Color4f(245, 245, 245))
(Color4f(255, 255, 0))
(Color4f(154, 205, 50));
#include <boost/unordered_set.hpp>
#include <CGAL/convex_hull_3.h>
template<typename Polyhedron>
bool is_weakly_convex(Polyhedron const& p) {
for (typename Polyhedron::Edge_const_iterator i = p.edges_begin(); i != p.edges_end(); ++i) {
typename Polyhedron::Plane_3 p(i->opposite()->vertex()->point(), i->vertex()->point(), i->next()->vertex()->point());
if (p.has_on_positive_side(i->opposite()->next()->vertex()->point()) &&
CGAL::squared_distance(p, i->opposite()->next()->vertex()->point()) > 1e-8) {
return false;
}
}
// Also make sure that there is only one shell:
boost::unordered_set<typename Polyhedron::Facet_const_handle, typename CGAL::Handle_hash_function> visited;
// c++11
// visited.reserve(p.size_of_facets());
std::queue<typename Polyhedron::Facet_const_handle> to_explore;
to_explore.push(p.facets_begin()); // One arbitrary facet
visited.insert(to_explore.front());
while (!to_explore.empty()) {
typename Polyhedron::Facet_const_handle f = to_explore.front();
to_explore.pop();
typename Polyhedron::Facet::Halfedge_around_facet_const_circulator he, end;
end = he = f->facet_begin();
CGAL_For_all(he,end) {
typename Polyhedron::Facet_const_handle o = he->opposite()->facet();
if (!visited.count(o)) {
visited.insert(o);
to_explore.push(o);
}
}
}
return visited.size() == p.size_of_facets();
}
class Shell_explorer
{
public:
std::vector<K::Point_3> vertices;
Shell_explorer() {}
void visit(CGAL_Nef_polyhedron3::Vertex_const_handle v) {
vertices.push_back(K::Point_3(to_double(v->point()[0]),
to_double(v->point()[1]),
to_double(v->point()[2])));
}
void visit(CGAL_Nef_polyhedron3::Halfedge_const_handle ) {}
void visit(CGAL_Nef_polyhedron3::Halffacet_const_handle ) {}
void visit(CGAL_Nef_polyhedron3::SHalfedge_const_handle ) {}
void visit(CGAL_Nef_polyhedron3::SHalfloop_const_handle ) {}
void visit(CGAL_Nef_polyhedron3::SFace_const_handle ) {}
};
template<class Output>
void decompose(const CGAL_Nef_polyhedron3 *N, Output out_iter)
{
int parts = 0;
assert(N);
CGAL_Polyhedron poly;
if (N->is_simple()) {
nefworkaround::convert_to_Polyhedron<CGAL_Kernel3>(*N, poly);
}
if (is_weakly_convex(poly)) {
PRINTD("Minkowski: Object is convex and Nef");
PolyhedronK poly2;
CGALUtils::copyPolyhedron(poly, poly2);
*out_iter++ = poly2;
return;
}
else {
PRINTD("Minkowski: Object is nonconvex Nef, decomposing...");
CGAL_Nef_polyhedron3 decomposed_nef = *N;
CGAL::convex_decomposition_3(decomposed_nef);
// the first volume is the outer volume, which ignored in the decomposition
CGAL_Nef_polyhedron3::Volume_const_iterator ci = ++decomposed_nef.volumes_begin();
// Convert each convex volume to a Polyhedron
for(; ci != decomposed_nef.volumes_end(); ++ci) {
if(ci->mark()) {
// CGAL_Polyhedron poly;
// decomposed_nef.convert_inner_shell_to_polyhedron(ci->shells_begin(), poly);
// P.push_back(poly);
auto s = CGAL_Nef_polyhedron3::SFace_const_handle(ci->shells_begin());
CGAL_Nef_polyhedron3::SFace_const_iterator sf = ci->shells_begin();
Shell_explorer SE;
decomposed_nef.visit_shell_objects(CGAL_Nef_polyhedron3::SFace_const_handle(sf),SE);
PolyhedronK poly;
CGAL::convex_hull_3(SE.vertices.begin(), SE.vertices.end(), poly);
*out_iter++ = poly;
parts++;
}
}
PRINTDB("Minkowski: decomposed into %d convex parts", parts);
}
}
Geometry const * minkowskitest(const Geometry::ChildList &children)
{
CGAL::Timer t,t_tot;
assert(children.size() >= 2);
// Iterate over children, perform pairwise minkowski on children:
// operands = [ch, ch+1]
Geometry::ChildList::const_iterator minkowski_ch_it = children.begin();
t_tot.start();
Geometry const *operands[2] = {minkowski_ch_it->second.get(), NULL};
try {
while (++minkowski_ch_it != children.end()) {
operands[1] = minkowski_ch_it->second.get();
std::vector<PolyhedronK> convexP[2]; // Stores decomposed operands
std::list<PolyhedronK> result_parts;
for (int i = 0; i < 2; i++) {
shared_ptr<const CGAL_Nef_polyhedron> N;
if (const PolySet *ps = dynamic_cast<const PolySet *>(operands[i])) {
if (ps->is_convex()) {
PRINTDB("Minkowski: child %d is convex and PolySet", i);
PolyhedronK poly;
CGALUtils::createPolyhedronFromPolySet(*ps, poly);
convexP[i].push_back(poly);
}
else {
PRINTDB("Minkowski: child %d is nonconvex PolySet, transforming to Nef", i);
N.reset(createNefPolyhedronFromGeometry(*ps));
}
}
else if (const CGAL_Nef_polyhedron *n = dynamic_cast<const CGAL_Nef_polyhedron *>(operands[i])) {
CGAL_Polyhedron poly;
if (n->p3->is_simple()) {
nefworkaround::convert_to_Polyhedron<CGAL_Kernel3>(*n->p3, poly);
// FIXME: Can we calculate weakly_convex on a PolyhedronK instead?
if (is_weakly_convex(poly)) {
PRINTDB("Minkowski: child %d is convex and Nef", i);
PolyhedronK poly2;
CGALUtils::copyPolyhedron(poly, poly2);
convexP[i].push_back(poly2);
}
else {
PRINTDB("Minkowski: child %d is nonconvex Nef",i);
N.reset(n);
}
}
else throw 0; // We cannot handle this, fall back to CGAL's minkowski
}
// If not convex...
if (N && N->p3) {
PRINTD("Decomposing...");
decompose(N->p3.get(), std::back_inserter(convexP[i]));
}
PRINTD("Hulling convex parts...");
std::vector<K::Point_3> points[2];
std::vector<K::Point_3> minkowski_points;
// For each permutation of convex operands..
BOOST_FOREACH(const PolyhedronK &p0, convexP[0]) {
BOOST_FOREACH(const PolyhedronK &p1, convexP[1]) {
t.start();
// Create minkowski pointcloud
minkowski_points.clear();
minkowski_points.reserve(p0.size_of_vertices() * p0.size_of_vertices());
BOOST_FOREACH(const K::Point_3 &p0p, std::make_pair(p0.points_begin(), p0.points_end())) {
BOOST_FOREACH(const K::Point_3 &p1p, std::make_pair(p1.points_begin(), p1.points_end())) {
minkowski_points.push_back(p0p+(p1p-CGAL::ORIGIN));
}
}
t.stop();
// Ignore empty volumes
if (minkowski_points.size() <= 3) continue;
// Hull point cloud
PolyhedronK result;
PRINTDB("Minkowski: Point cloud creation (%d ⨉ %d -> %d) took %f ms",
points[0].size() % points[1].size() % minkowski_points.size() % (t.time()*1000));
t.reset();
t.start();
CGAL::convex_hull_3(minkowski_points.begin(), minkowski_points.end(), result);
std::vector<K::Point_3> strict_points;
strict_points.reserve(minkowski_points.size());
for (PolyhedronK::Vertex_iterator i = result.vertices_begin(); i != result.vertices_end(); ++i) {
K::Point_3 const &p = i->point();
PolyhedronK::Vertex::Halfedge_handle h,e;
h = i->halfedge();
e = h;
bool collinear = false;
bool coplanar = true;
do {
K::Point_3 const& q = h->opposite()->vertex()->point();
if (coplanar && !CGAL::coplanar(p,q,
h->next_on_vertex()->opposite()->vertex()->point(),
h->next_on_vertex()->next_on_vertex()->opposite()->vertex()->point())) {
coplanar = false;
}
for (PolyhedronK::Vertex::Halfedge_handle j = h->next_on_vertex();
j != h && !collinear && ! coplanar;
j = j->next_on_vertex()) {
K::Point_3 const& r = j->opposite()->vertex()->point();
if (CGAL::collinear(p,q,r)) {
collinear = true;
}
}
h = h->next_on_vertex();
} while (h != e && !collinear);
if (!collinear && !coplanar) strict_points.push_back(p);
}
result.clear();
CGAL::convex_hull_3(strict_points.begin(), strict_points.end(), result);
t.stop();
PRINTDB("Minkowski: Computing convex hull took %f s", t.time());
t.reset();
result_parts.push_back(result);
}
}
}
if (minkowski_ch_it != boost::next(children.begin())) delete operands[0];
if (result_parts.size() == 1) {
PolySet *ps = new PolySet(3,true);
createPolySetFromPolyhedron(*result_parts.begin(), *ps);
operands[0] = ps;
} else if (!result_parts.empty()) {
t.start();
PRINTDB("Minkowski: Computing union of %d parts",result_parts.size());
Geometry::ChildList fake_children;
for (std::list<PolyhedronK>::iterator i = result_parts.begin(); i != result_parts.end(); ++i) {
PolySet ps(3,true);
createPolySetFromPolyhedron(*i, ps);
fake_children.push_back(std::make_pair((const AbstractNode*)NULL,
shared_ptr<const Geometry>(createNefPolyhedronFromGeometry(ps))));
}
CGAL_Nef_polyhedron *N = CGALUtils::applyOperator(fake_children, OPENSCAD_UNION);
t.stop();
if (N) PRINTDB("Minkowski: Union done: %f s",t.time());
else PRINTDB("Minkowski: Union failed: %f s",t.time());
t.reset();
operands[0] = N;
} else {
operands[0] = new CGAL_Nef_polyhedron();
}
}
t_tot.stop();
PRINTDB("Minkowski: Total execution time %f s", t_tot.time());
t_tot.reset();
return operands[0];
}
catch (...) {
// If anything throws we simply fall back to Nef Minkowski
PRINTD("Minkowski: Falling back to Nef Minkowski");
CGAL_Nef_polyhedron *N = applyOperator(children, OPENSCAD_MINKOWSKI);
return N;
}
}
#define STL_FACET_NUMBYTES 4*3*4+2
// as there is no 'float32_t' standard, we assume the systems 'float'
// is a 'binary32' aka 'single' standard IEEE 32-bit floating point type
union stl_facet {
uint8_t data8[ STL_FACET_NUMBYTES ];
uint32_t data32[4*3];
struct facet_data {
float i, j, k;
float x1, y1, z1;
float x2, y2, z2;
float x3, y3, z3;
uint16_t attribute_byte_count;
} data;
};
void uint32_byte_swap( uint32_t &x )
{
#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 3
x = __builtin_bswap32( x );
#elif defined(__clang__)
x = __builtin_bswap32( x );
#elif defined(_MSC_VER)
x = _byteswap_ulong( x );
#else
uint32_t b1 = ( 0x000000FF & x ) << 24;
uint32_t b2 = ( 0x0000FF00 & x ) << 8;
uint32_t b3 = ( 0x00FF0000 & x ) >> 8;
uint32_t b4 = ( 0xFF000000 & x ) >> 24;
x = b1 | b2 | b3 | b4;
#endif
}
void read_stl_facet( std::ifstream &f, stl_facet &facet )
{
f.read( (char*)facet.data8, STL_FACET_NUMBYTES );
#ifdef BOOST_BIG_ENDIAN
for ( int i = 0; i < 12; i++ ) {
uint32_byte_swap( facet.data32[ i ] );
}
// we ignore attribute byte count
#endif
}
PolySet *import_stl(const std::string &filename)
{
PolySet *p = new PolySet(3);
// Open file and position at the end
std::ifstream f(filename.c_str(), std::ios::in | std::ios::binary | std::ios::ate);
if (!f.good()) {
PRINTB("WARNING: Can't open import file '%s'.", filename);
return NULL;
}
boost::regex ex_sfe("solid|facet|endloop");
boost::regex ex_outer("outer loop");
boost::regex ex_vertex("vertex");
boost::regex ex_vertices("\\s*vertex\\s+([^\\s]+)\\s+([^\\s]+)\\s+([^\\s]+)");
bool binary = false;
std::streampos file_size = f.tellg();
f.seekg(80);
if (f.good() && !f.eof()) {
uint32_t facenum = 0;
f.read((char *)&facenum, sizeof(uint32_t));
#ifdef BOOST_BIG_ENDIAN
uint32_byte_swap( facenum );
#endif
if (file_size == static_cast<std::streamoff>(80 + 4 + 50*facenum)) {
binary = true;
}
}
f.seekg(0);
char data[5];
f.read(data, 5);
if (!binary && !f.eof() && f.good() && !memcmp(data, "solid", 5)) {
int i = 0;
double vdata[3][3];
std::string line;
std::getline(f, line);
while (!f.eof()) {
std::getline(f, line);
boost::trim(line);
if (boost::regex_search(line, ex_sfe)) {
continue;
}
if (boost::regex_search(line, ex_outer)) {
i = 0;
continue;
}
boost::smatch results;
if (boost::regex_search(line, results, ex_vertices)) {
try {
for (int v=0;v<3;v++) {
vdata[i][v] = boost::lexical_cast<double>(results[v+1]);
}
}
catch (const boost::bad_lexical_cast &blc) {
PRINTB("WARNING: Can't parse vertex line '%s'.", line);
i = 10;
continue;
}
if (++i == 3) {
p->append_poly();
p->append_vertex(vdata[0][0], vdata[0][1], vdata[0][2]);
p->append_vertex(vdata[1][0], vdata[1][1], vdata[1][2]);
p->append_vertex(vdata[2][0], vdata[2][1], vdata[2][2]);
}
}
}
}
else if (binary && !f.eof() && f.good())
{
f.ignore(80-5+4);
while (1) {
stl_facet facet;
read_stl_facet( f, facet );
if (f.eof()) break;
p->append_poly();
p->append_vertex(facet.data.x1, facet.data.y1, facet.data.z1);
p->append_vertex(facet.data.x2, facet.data.y2, facet.data.z2);
p->append_vertex(facet.data.x3, facet.data.y3, facet.data.z3);
}
}
return p;
}
/*!
file format:
1. polygon coordinates (x,y,z) are comma separated (+/- spaces) and
each coordinate is on a separate line
2. each polygon is separated by one or more blank lines
*/
bool import_polygon(PolyholeK &polyhole, const std::string &filename)
{
std::ifstream ifs(filename.c_str());
if (!ifs) return false;
std::string line;
PolygonK polygon;
while (std::getline(ifs, line)) {
std::stringstream ss(line);
double X = 0.0, Y = 0.0, Z = 0.0;
if (!(ss >> X)) {
//ie blank lines => flag start of next polygon
if (polygon.size() > 0) polyhole.push_back(polygon);
polygon.clear();
continue;
}
char c = ss.peek();
while (c == ' ') {ss.read(&c, 1); c = ss.peek();} //gobble spaces before comma
if (c == ',') {ss.read(&c, 1); c = ss.peek();} //gobble comma
while (c == ' ') {ss.read(&c, 1); c = ss.peek();} //gobble spaces after comma
if (!(ss >> Y)) {
std::cerr << "Y error\n";
return false;
}
c = ss.peek();
while (c == ' ') {ss.read(&c, 1); c = ss.peek();} //gobble spaces before comma
if (c == ',') {ss.read(&c, 1); c = ss.peek();} //gobble comma
while (c == ' ') {ss.read(&c, 1); c = ss.peek();} //gobble spaces after comma
if (!(ss >> Z)) {
std::cerr << "Z error\n";
return false;
}
polygon.push_back(Vertex3K(X, Y, Z));
}
if (polygon.size() > 0) polyhole.push_back(polygon);
ifs.close();
return true;
}
//------------------------------------------------------------------------------
int main(int argc, char *argv[])
{
OpenSCAD::debug = "decompose";
PolySet *ps = NULL;
if (argc == 2) {
if (!(ps = import_stl(argv[1]))) {
std::cerr << "Error importing STL " << argv[1] << std::endl;
exit(1);
}
std::cerr << "Imported " << ps->numPolygons() << " polygons" << std::endl;
}
else {
std::cerr << "Usage: " << argv[0] << " <file.stl> <file.stl>" << std::endl;
exit(1);
}
Geometry::ChildList children;
CGAL_Nef_polyhedron *N = createNefPolyhedronFromGeometry(*ps);
std::vector<PolyhedronK> result;
decompose(N->p3.get(), std::back_inserter(result));
std::cerr << "Decomposed into " << result.size() << " convex parts" << std::endl;
int idx = 0;
BOOST_FOREACH(const PolyhedronK &P, result) {
PolySet result_ps(3);
if (CGALUtils::createPolySetFromPolyhedron(P, result_ps)) {
std::cerr << "Error converting to PolySet\n";
}
else {
std::stringstream ss;
ss << "out" << idx++ << ".stl";
exportFileByName(&result_ps, OPENSCAD_STL, ss.str().c_str(), ss.str().c_str());
std::cout << "color([" << colors[idx%147][0] << "," << colors[idx%147][1] << "," << colors[idx%147][2] << "]) " << "import(\"" << ss.str() << "\");\n";
}
}
std::cerr << "Done." << std::endl;
}

108
cgal/decompose.pro Normal file
View File

@ -0,0 +1,108 @@
CONFIG += debug
CONFIG -= qt
debug: DEFINES += DEBUG
TEMPLATE = app
INCLUDEPATH += ../src
DEPENDPATH += ../src
# Handle custom library location.
# Used when manually installing 3rd party libraries
isEmpty(OPENSCAD_LIBDIR) OPENSCAD_LIBDIR = $$(OPENSCAD_LIBRARIES)
macx:isEmpty(OPENSCAD_LIBDIR) {
exists(/opt/local):exists(/usr/local/Cellar) {
error("It seems you might have libraries in both /opt/local and /usr/local. Please specify which one to use with qmake OPENSCAD_LIBDIR=<prefix>")
} else {
exists(/opt/local) {
#Default to MacPorts on Mac OS X
message("Automatically searching for libraries in /opt/local. To override, use qmake OPENSCAD_LIBDIR=<prefix>")
OPENSCAD_LIBDIR = /opt/local
} else:exists(/usr/local/Cellar) {
message("Automatically searching for libraries in /usr/local. To override, use qmake OPENSCAD_LIBDIR=<prefix>")
OPENSCAD_LIBDIR = /usr/local
}
}
}
!isEmpty(OPENSCAD_LIBDIR) {
QMAKE_INCDIR = $$OPENSCAD_LIBDIR/include
QMAKE_LIBDIR = $$OPENSCAD_LIBDIR/lib
}
TARGET = decompose
mac {
CONFIG -= app_bundle
}
macx {
# Mac needs special care to link against the correct C++ library
# We attempt to auto-detect it by inspecting Boost
dirs = $${BOOSTDIR} $${QMAKE_LIBDIR}
for(dir, dirs) {
system(grep -q __112basic_string $${dir}/libboost_thread* >& /dev/null) {
message("Detected libc++-linked boost in $${dir}")
CONFIG += libc++
}
}
libc++ {
QMAKE_CXXFLAGS += -stdlib=libc++
QMAKE_LFLAGS += -stdlib=libc++
QMAKE_OBJECTIVE_CFLAGS += -stdlib=libc++
# libc++ on requires Mac OS X 10.7+
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7
}
}
# See Dec 2011 OpenSCAD mailing list, re: CGAL/GCC bugs.
*g++* {
QMAKE_CXXFLAGS *= -fno-strict-aliasing
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-local-typedefs # ignored before 4.8
}
*clang* {
# http://llvm.org/bugs/show_bug.cgi?id=9182
QMAKE_CXXFLAGS_WARN_ON += -Wno-overloaded-virtual
# disable enormous amount of warnings about CGAL / boost / etc
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-parameter
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-variable
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-function
QMAKE_CXXFLAGS_WARN_ON += -Wno-c++11-extensions
# might want to actually turn this on once in a while
QMAKE_CXXFLAGS_WARN_ON += -Wno-sign-compare
}
# Application configuration
CONFIG += cgal
CONFIG += boost
CONFIG += eigen
CONFIG += gettext
mac: {
LIBS += -framework OpenGL
}
include(../common.pri)
HEADERS += ../src/cgal.h \
../src/cgalutils.h \
../src/linalg.h \
../src/polyset.h \
../src/polyset-utils.h \
../src/printutils.h
SOURCES += decompose.cpp \
../src/polygon2d.cc \
../src/polygon2d-CGAL.cc \
../src/CGAL_Nef_polyhedron.cc \
../src/CGAL_Nef_polyhedron_DxfData.cc \
../src/cgalutils.cc \
../src/cgalutils-tess.cc \
../src/cgalutils-polyhedron.cc \
../src/polyset.cc \
../src/svg.cc \
../src/node.cc \
../src/export.cc \
../src/polyset-utils.cc \
../src/progress.cc \
../src/printutils.cc

180
cgal/export_nef.cpp Normal file
View File

@ -0,0 +1,180 @@
#include <boost/foreach.hpp>
#include <boost/regex.hpp>
#include <sstream>
#include <iostream>
#include <fstream>
#include <locale.h>
#include "cgalutils.h"
#include "export.h"
#include "polyset.h"
#include "CGAL_Nef_polyhedron.h"
#include "boosty.h"
#include <CGAL/IO/Nef_polyhedron_iostream_3.h>
using namespace CGALUtils;
#define STL_FACET_NUMBYTES 4*3*4+2
// as there is no 'float32_t' standard, we assume the systems 'float'
// is a 'binary32' aka 'single' standard IEEE 32-bit floating point type
union stl_facet {
uint8_t data8[ STL_FACET_NUMBYTES ];
uint32_t data32[4*3];
struct facet_data {
float i, j, k;
float x1, y1, z1;
float x2, y2, z2;
float x3, y3, z3;
uint16_t attribute_byte_count;
} data;
};
void uint32_byte_swap( uint32_t &x )
{
#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 3
x = __builtin_bswap32( x );
#elif defined(__clang__)
x = __builtin_bswap32( x );
#elif defined(_MSC_VER)
x = _byteswap_ulong( x );
#else
uint32_t b1 = ( 0x000000FF & x ) << 24;
uint32_t b2 = ( 0x0000FF00 & x ) << 8;
uint32_t b3 = ( 0x00FF0000 & x ) >> 8;
uint32_t b4 = ( 0xFF000000 & x ) >> 24;
x = b1 | b2 | b3 | b4;
#endif
}
void read_stl_facet( std::ifstream &f, stl_facet &facet )
{
f.read( (char*)facet.data8, STL_FACET_NUMBYTES );
#ifdef BOOST_BIG_ENDIAN
for ( int i = 0; i < 12; i++ ) {
uint32_byte_swap( facet.data32[ i ] );
}
// we ignore attribute byte count
#endif
}
PolySet *import_stl(const std::string &filename)
{
PolySet *p = new PolySet(3);
// Open file and position at the end
std::ifstream f(filename.c_str(), std::ios::in | std::ios::binary | std::ios::ate);
if (!f.good()) {
PRINTB("WARNING: Can't open import file '%s'.", filename);
return NULL;
}
boost::regex ex_sfe("solid|facet|endloop");
boost::regex ex_outer("outer loop");
boost::regex ex_vertex("vertex");
boost::regex ex_vertices("\\s*vertex\\s+([^\\s]+)\\s+([^\\s]+)\\s+([^\\s]+)");
bool binary = false;
std::streampos file_size = f.tellg();
f.seekg(80);
if (f.good() && !f.eof()) {
uint32_t facenum = 0;
f.read((char *)&facenum, sizeof(uint32_t));
#ifdef BOOST_BIG_ENDIAN
uint32_byte_swap( facenum );
#endif
if (file_size == static_cast<std::streamoff>(80 + 4 + 50*facenum)) {
binary = true;
}
}
f.seekg(0);
char data[5];
f.read(data, 5);
if (!binary && !f.eof() && f.good() && !memcmp(data, "solid", 5)) {
int i = 0;
double vdata[3][3];
std::string line;
std::getline(f, line);
while (!f.eof()) {
std::getline(f, line);
boost::trim(line);
if (boost::regex_search(line, ex_sfe)) {
continue;
}
if (boost::regex_search(line, ex_outer)) {
i = 0;
continue;
}
boost::smatch results;
if (boost::regex_search(line, results, ex_vertices)) {
try {
for (int v=0;v<3;v++) {
vdata[i][v] = boost::lexical_cast<double>(results[v+1]);
}
}
catch (const boost::bad_lexical_cast &blc) {
PRINTB("WARNING: Can't parse vertex line '%s'.", line);
i = 10;
continue;
}
if (++i == 3) {
p->append_poly();
p->append_vertex(vdata[0][0], vdata[0][1], vdata[0][2]);
p->append_vertex(vdata[1][0], vdata[1][1], vdata[1][2]);
p->append_vertex(vdata[2][0], vdata[2][1], vdata[2][2]);
}
}
}
}
else if (binary && !f.eof() && f.good())
{
f.ignore(80-5+4);
while (1) {
stl_facet facet;
read_stl_facet( f, facet );
if (f.eof()) break;
p->append_poly();
p->append_vertex(facet.data.x1, facet.data.y1, facet.data.z1);
p->append_vertex(facet.data.x2, facet.data.y2, facet.data.z2);
p->append_vertex(facet.data.x3, facet.data.y3, facet.data.z3);
}
}
return p;
}
int main(int argc, char *argv[])
{
OpenSCAD::debug = "export_nef";
CGAL_Nef_polyhedron *N = NULL;
PolySet *ps = NULL;
if (argc == 2) {
std::string filename(argv[1]);
std::string suffix = boosty::extension_str(filename);
boost::algorithm::to_lower(suffix);
if (suffix == ".stl") {
if (!(ps = import_stl(filename))) {
std::cerr << "Error importing STL " << argv[1] << std::endl;
exit(1);
}
std::cerr << "Imported " << ps->numPolygons() << " polygons" << std::endl;
}
else if (suffix == ".nef3") {
N = new CGAL_Nef_polyhedron(new CGAL_Nef_polyhedron3);
std::ifstream stream(filename.c_str());
stream >> *N->p3;
std::cerr << "Imported Nef polyhedron" << std::endl;
}
}
else {
std::cerr << "Usage: " << argv[0] << " <file.stl>" << std::endl;
exit(1);
}
if (ps && !N) N = createNefPolyhedronFromGeometry(*ps);
export_stl(N, std::cout);
std::cerr << "Done." << std::endl;
}

109
cgal/export_nef.pro Normal file
View File

@ -0,0 +1,109 @@
CONFIG += debug
CONFIG -= qt
debug: DEFINES += DEBUG
TEMPLATE = app
INCLUDEPATH += ../src
DEPENDPATH += ../src
# Handle custom library location.
# Used when manually installing 3rd party libraries
isEmpty(OPENSCAD_LIBDIR) OPENSCAD_LIBDIR = $$(OPENSCAD_LIBRARIES)
macx:isEmpty(OPENSCAD_LIBDIR) {
exists(/opt/local):exists(/usr/local/Cellar) {
error("It seems you might have libraries in both /opt/local and /usr/local. Please specify which one to use with qmake OPENSCAD_LIBDIR=<prefix>")
} else {
exists(/opt/local) {
#Default to MacPorts on Mac OS X
message("Automatically searching for libraries in /opt/local. To override, use qmake OPENSCAD_LIBDIR=<prefix>")
OPENSCAD_LIBDIR = /opt/local
} else:exists(/usr/local/Cellar) {
message("Automatically searching for libraries in /usr/local. To override, use qmake OPENSCAD_LIBDIR=<prefix>")
OPENSCAD_LIBDIR = /usr/local
}
}
}
!isEmpty(OPENSCAD_LIBDIR) {
QMAKE_INCDIR = $$OPENSCAD_LIBDIR/include
QMAKE_LIBDIR = $$OPENSCAD_LIBDIR/lib
}
TARGET = export_nef
mac {
CONFIG -= app_bundle
}
macx {
# Mac needs special care to link against the correct C++ library
# We attempt to auto-detect it by inspecting Boost
dirs = $${BOOSTDIR} $${QMAKE_LIBDIR}
for(dir, dirs) {
system(grep -q __112basic_string $${dir}/libboost_thread* >& /dev/null) {
message("Detected libc++-linked boost in $${dir}")
CONFIG += libc++
}
}
libc++ {
QMAKE_CXXFLAGS += -stdlib=libc++
QMAKE_LFLAGS += -stdlib=libc++
QMAKE_OBJECTIVE_CFLAGS += -stdlib=libc++
# libc++ on requires Mac OS X 10.7+
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7
}
}
# See Dec 2011 OpenSCAD mailing list, re: CGAL/GCC bugs.
*g++* {
QMAKE_CXXFLAGS *= -fno-strict-aliasing
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-local-typedefs # ignored before 4.8
}
*clang* {
# http://llvm.org/bugs/show_bug.cgi?id=9182
QMAKE_CXXFLAGS_WARN_ON += -Wno-overloaded-virtual
# disable enormous amount of warnings about CGAL / boost / etc
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-parameter
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-variable
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-function
QMAKE_CXXFLAGS_WARN_ON += -Wno-c++11-extensions
# might want to actually turn this on once in a while
QMAKE_CXXFLAGS_WARN_ON += -Wno-sign-compare
}
# Application configuration
CONFIG += cgal
CONFIG += boost
CONFIG += eigen
CONFIG += gettext
mac: {
LIBS += -framework OpenGL
}
include(../common.pri)
HEADERS += ../src/cgal.h \
../src/cgalutils.h \
../src/linalg.h \
../src/polyset.h \
../src/polyset-utils.h \
../src/printutils.h
SOURCES += export_nef.cpp \
../src/polygon2d.cc \
../src/polygon2d-CGAL.cc \
../src/CGAL_Nef_polyhedron.cc \
../src/CGAL_Nef_polyhedron_DxfData.cc \
../src/cgalutils.cc \
../src/cgalutils-tess.cc \
../src/cgalutils-polyhedron.cc \
../src/polyset.cc \
../src/svg.cc \
../src/node.cc \
../src/export.cc \
../src/polyset-utils.cc \
../src/progress.cc \
../src/printutils.cc \
../src/grid.cc

View File

@ -0,0 +1,159 @@
#include <boost/foreach.hpp>
#include <boost/algorithm/string.hpp>
#include <boost/lexical_cast.hpp>
#include <sstream>
#include <fstream>
#include <iostream>
#include <locale.h>
#include "GeometryUtils.h"
#include "Reindexer.h"
#include "linalg.h"
#include "grid.h"
#include "printutils.h"
static void export_stl(const IndexedTriangleMesh &trimesh, std::ostream &output)
{
setlocale(LC_NUMERIC, "C"); // Ensure radix is . (not ,) in output
output << "solid OpenSCAD_Model\n";
const Vector3f *verts = &trimesh.vertices.front();
BOOST_FOREACH(const IndexedTriangle &t, trimesh.triangles) {
assert(t[0] < trimesh.vertices.size());
assert(t[1] < trimesh.vertices.size());
assert(t[2] < trimesh.vertices.size());
Vector3f p[3];
p[0] = verts[t[0]];
p[1] = verts[t[1]];
p[2] = verts[t[2]];
std::stringstream stream;
stream << p[0][0] << " " << p[0][1] << " " << p[0][2];
std::string vs1 = stream.str();
stream.str("");
stream << p[1][0] << " " << p[1][1] << " " << p[1][2];
std::string vs2 = stream.str();
stream.str("");
stream << p[2][0] << " " << p[2][1] << " " << p[2][2];
std::string vs3 = stream.str();
// if (vs1 != vs2 && vs1 != vs3 && vs2 != vs3) {
// The above condition ensures that there are 3 distinct vertices, but
// they may be collinear. If they are, the unit normal is meaningless
// so the default value of "1 0 0" can be used. If the vertices are not
// collinear then the unit normal must be calculated from the
// components.
Vector3f normal = (p[1] - p[0]).cross(p[2] - p[0]);
normal.normalize();
output << " facet normal " << normal[0] << " " << normal[1] << " " << normal[2] << "\n";
output << " outer loop\n";
for (int i=0;i<3;i++) {
output << " vertex " << p[i][0] << " " << p[i][1] << " " << p[i][2] << "\n";
}
output << " endloop\n";
output << " endfacet\n";
// }
}
output << "endsolid OpenSCAD_Model\n";
setlocale(LC_NUMERIC, ""); // Set default locale
}
/*!
file format:
1. polygon coordinates (x,y,z) are comma separated (+/- spaces) and
each coordinate is on a separate line
2. each polygon is separated by one or more blank lines
*/
bool import_polygon(IndexedPolygons &polyhole, const std::string &filename)
{
Reindexer<Vector3f> uniqueVertices;
std::ifstream ifs(filename.c_str());
if (!ifs) return false;
std::string line;
IndexedFace polygon;
while (std::getline(ifs, line)) {
std::stringstream ss(line);
double X = 0.0, Y = 0.0, Z = 0.0;
if (!(ss >> X)) {
//ie blank lines => flag start of next polygon
if (polygon.size() > 0) polyhole.faces.push_back(polygon);
polygon.clear();
continue;
}
char c = ss.peek();
while (c == ' ') {ss.read(&c, 1); c = ss.peek();} //gobble spaces before comma
if (c == ',') {ss.read(&c, 1); c = ss.peek();} //gobble comma
while (c == ' ') {ss.read(&c, 1); c = ss.peek();} //gobble spaces after comma
if (!(ss >> Y)) {
std::cerr << "Y error\n";
return false;
}
c = ss.peek();
while (c == ' ') {ss.read(&c, 1); c = ss.peek();} //gobble spaces before comma
if (c == ',') {ss.read(&c, 1); c = ss.peek();} //gobble comma
while (c == ' ') {ss.read(&c, 1); c = ss.peek();} //gobble spaces after comma
if (!(ss >> Z)) {
std::cerr << "Z error\n";
return false;
}
polygon.push_back(uniqueVertices.lookup(Vector3f(X, Y, Z)));
}
if (polygon.size() > 0) polyhole.faces.push_back(polygon);
ifs.close();
uniqueVertices.copy(std::back_inserter(polyhole.vertices));
return true;
}
int main(int argc, char *argv[])
{
OpenSCAD::debug = "GeometryUtils";
IndexedPolygons polyhole;
Vector3f *normal = NULL;
if (argc >= 2) {
if (!import_polygon(polyhole, argv[1])) {
std::cerr << "Error importing polygon" << std::endl;
exit(1);
}
std::cerr << "Imported " << polyhole.faces.size() << " polygons" << std::endl;
if (argc == 3) {
std::vector<std::string> strs;
std::vector<double> normalvec;
std::string arg(argv[2]);
boost::split(strs, arg, boost::is_any_of(","));
assert(strs.size() == 3);
BOOST_FOREACH(const std::string &s, strs) normalvec.push_back(boost::lexical_cast<double>(s));
normal = new Vector3f(normalvec[0], normalvec[1], normalvec[2]);
}
}
else {
//construct two non-intersecting nested polygons
Reindexer<Vector3f> uniqueVertices;
IndexedFace polygon1;
polygon1.push_back(uniqueVertices.lookup(Vector3f(0,0,0)));
polygon1.push_back(uniqueVertices.lookup(Vector3f(2,0,0)));
polygon1.push_back(uniqueVertices.lookup(Vector3f(2,2,0)));
polygon1.push_back(uniqueVertices.lookup(Vector3f(0,2,0)));
IndexedFace polygon2;
polygon2.push_back(uniqueVertices.lookup(Vector3f(0.5,0.5,0)));
polygon2.push_back(uniqueVertices.lookup(Vector3f(1.5,0.5,0)));
polygon2.push_back(uniqueVertices.lookup(Vector3f(1.5,1.5,0)));
polygon2.push_back(uniqueVertices.lookup(Vector3f(0.5,1.5,0)));
polyhole.faces.push_back(polygon1);
polyhole.faces.push_back(polygon2);
uniqueVertices.copy(std::back_inserter(polyhole.vertices));
}
std::vector<IndexedTriangle> triangles;
bool ok = GeometryUtils::tessellatePolygonWithHoles(&polyhole.vertices.front(), polyhole.faces, triangles, normal);
std::cerr << "Tessellated into " << triangles.size() << " triangles" << std::endl;
IndexedTriangleMesh trimesh;
trimesh.vertices = polyhole.vertices;
trimesh.triangles = triangles;
export_stl(trimesh, std::cout);
}

View File

@ -0,0 +1,107 @@
debug: DEFINES += DEBUG
TEMPLATE = app
INCLUDEPATH += ../src ../src/libtess2/Include
DEPENDPATH += ../src
# Handle custom library location.
# Used when manually installing 3rd party libraries
isEmpty(OPENSCAD_LIBDIR) OPENSCAD_LIBDIR = $$(OPENSCAD_LIBRARIES)
macx:isEmpty(OPENSCAD_LIBDIR) {
exists(/opt/local):exists(/usr/local/Cellar) {
error("It seems you might have libraries in both /opt/local and /usr/local. Please specify which one to use with qmake OPENSCAD_LIBDIR=<prefix>")
} else {
exists(/opt/local) {
#Default to MacPorts on Mac OS X
message("Automatically searching for libraries in /opt/local. To override, use qmake OPENSCAD_LIBDIR=<prefix>")
OPENSCAD_LIBDIR = /opt/local
} else:exists(/usr/local/Cellar) {
message("Automatically searching for libraries in /usr/local. To override, use qmake OPENSCAD_LIBDIR=<prefix>")
OPENSCAD_LIBDIR = /usr/local
}
}
}
!isEmpty(OPENSCAD_LIBDIR) {
QMAKE_INCDIR = $$OPENSCAD_LIBDIR/include
QMAKE_LIBDIR = $$OPENSCAD_LIBDIR/lib
}
TARGET = polyhole-tessellator-libtess2
CONFIG -= qt
mac {
CONFIG -= app_bundle
}
macx {
# Mac needs special care to link against the correct C++ library
# We attempt to auto-detect it by inspecting Boost
dirs = $${BOOSTDIR} $${QMAKE_LIBDIR}
for(dir, dirs) {
system(grep -q __112basic_string $${dir}/libboost_thread* >& /dev/null) {
message("Detected libc++-linked boost in $${dir}")
CONFIG += libc++
}
}
libc++ {
QMAKE_CXXFLAGS += -stdlib=libc++
QMAKE_LFLAGS += -stdlib=libc++
QMAKE_OBJECTIVE_CFLAGS += -stdlib=libc++
# libc++ on requires Mac OS X 10.7+
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7
}
}
# See Dec 2011 OpenSCAD mailing list, re: CGAL/GCC bugs.
*g++* {
QMAKE_CXXFLAGS *= -fno-strict-aliasing
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-local-typedefs # ignored before 4.8
}
*clang* {
# http://llvm.org/bugs/show_bug.cgi?id=9182
QMAKE_CXXFLAGS_WARN_ON += -Wno-overloaded-virtual
# disable enormous amount of warnings about CGAL / boost / etc
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-parameter
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-variable
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-function
QMAKE_CXXFLAGS_WARN_ON += -Wno-c++11-extensions
# might want to actually turn this on once in a while
QMAKE_CXXFLAGS_WARN_ON += -Wno-format-security
}
# Application configuration
CONFIG += cgal
CONFIG += boost
CONFIG += eigen
CONFIG += gettext
include(../common.pri)
HEADERS += ../src/GeometryUtils.cc \
../src/linalg.h \
../src/printutils.h \
../src/grid.h \
../src/libtess2/Include/tesselator.h \
../src/libtess2/Source/bucketalloc.h \
../src/libtess2/Source/dict.h \
../src/libtess2/Source/geom.h \
../src/libtess2/Source/mesh.h \
../src/libtess2/Source/priorityq.h \
../src/libtess2/Source/sweep.h \
../src/libtess2/Source/tess.h
SOURCES += polyhole-tessellator-libtess2.cpp \
../src/GeometryUtils.cc \
../src/printutils.cc \
../src/grid.cc \
../src/libtess2/Source/bucketalloc.c \
../src/libtess2/Source/dict.c \
../src/libtess2/Source/geom.c \
../src/libtess2/Source/mesh.c \
../src/libtess2/Source/priorityq.c \
../src/libtess2/Source/sweep.c \
../src/libtess2/Source/tess.c

View File

@ -0,0 +1,140 @@
#include <boost/foreach.hpp>
#include <boost/algorithm/string.hpp>
#include <sstream>
#include <iostream>
#include <locale.h>
#include "cgalutils.h"
// Nef polyhedron are using CGAL_Kernel3 (Cartesian<Gmpq>)
// Triangulation will use Epick
static void export_stl(const Polygons &triangles, std::ostream &output)
{
setlocale(LC_NUMERIC, "C"); // Ensure radix is . (not ,) in output
output << "solid OpenSCAD_Model\n";
BOOST_FOREACH(const Polygon &p, triangles) {
assert(p.size() == 3); // STL only allows triangles
std::stringstream stream;
stream << p[0][0] << " " << p[0][1] << " " << p[0][2];
std::string vs1 = stream.str();
stream.str("");
stream << p[1][0] << " " << p[1][1] << " " << p[1][2];
std::string vs2 = stream.str();
stream.str("");
stream << p[2][0] << " " << p[2][1] << " " << p[2][2];
std::string vs3 = stream.str();
if (vs1 != vs2 && vs1 != vs3 && vs2 != vs3) {
// The above condition ensures that there are 3 distinct vertices, but
// they may be collinear. If they are, the unit normal is meaningless
// so the default value of "1 0 0" can be used. If the vertices are not
// collinear then the unit normal must be calculated from the
// components.
Vector3d normal = (p[1] - p[0]).cross(p[2] - p[0]);
normal.normalize();
output << " facet normal " << normal[0] << " " << normal[1] << " " << normal[2] << "\n";
output << " outer loop\n";
BOOST_FOREACH(const Vector3d &v, p) {
output << " vertex " << v[0] << " " << v[1] << " " << v[2] << "\n";
}
output << " endloop\n";
output << " endfacet\n";
}
}
output << "endsolid OpenSCAD_Model\n";
setlocale(LC_NUMERIC, ""); // Set default locale
}
/*!
file format:
1. polygon coordinates (x,y,z) are comma separated (+/- spaces) and
each coordinate is on a separate line
2. each polygon is separated by one or more blank lines
*/
bool import_polygon(PolyholeK &polyhole, const std::string &filename)
{
std::ifstream ifs(filename.c_str());
if (!ifs) return false;
std::string line;
PolygonK polygon;
while (std::getline(ifs, line)) {
std::stringstream ss(line);
double X = 0.0, Y = 0.0, Z = 0.0;
if (!(ss >> X)) {
//ie blank lines => flag start of next polygon
if (polygon.size() > 0) polyhole.push_back(polygon);
polygon.clear();
continue;
}
char c = ss.peek();
while (c == ' ') {ss.read(&c, 1); c = ss.peek();} //gobble spaces before comma
if (c == ',') {ss.read(&c, 1); c = ss.peek();} //gobble comma
while (c == ' ') {ss.read(&c, 1); c = ss.peek();} //gobble spaces after comma
if (!(ss >> Y)) {
std::cerr << "Y error\n";
return false;
}
c = ss.peek();
while (c == ' ') {ss.read(&c, 1); c = ss.peek();} //gobble spaces before comma
if (c == ',') {ss.read(&c, 1); c = ss.peek();} //gobble comma
while (c == ' ') {ss.read(&c, 1); c = ss.peek();} //gobble spaces after comma
if (!(ss >> Z)) {
std::cerr << "Z error\n";
return false;
}
polygon.push_back(Vertex3K(X, Y, Z));
}
if (polygon.size() > 0) polyhole.push_back(polygon);
ifs.close();
return true;
}
//------------------------------------------------------------------------------
int main(int argc, char *argv[])
{
PolyholeK polyhole;
K::Vector_3 *normal = NULL;
if (argc >= 2) {
if (!import_polygon(polyhole, argv[1])) {
std::cerr << "Error importing polygon" << std::endl;
exit(1);
}
std::cerr << "Imported " << polyhole.size() << " polygons" << std::endl;
if (argc == 3) {
std::vector<std::string> strs;
std::vector<double> normalvec;
std::string arg(argv[2]);
boost::split(strs, arg, boost::is_any_of(","));
assert(strs.size() == 3);
BOOST_FOREACH(const std::string &s, strs) normalvec.push_back(boost::lexical_cast<double>(s));
normal = new K::Vector_3(normalvec[0], normalvec[1], normalvec[2]);
}
}
else {
//construct two non-intersecting nested polygons
PolygonK polygon1;
polygon1.push_back(Vertex3K(0,0,0));
polygon1.push_back(Vertex3K(2,0,0));
polygon1.push_back(Vertex3K(2,2,0));
polygon1.push_back(Vertex3K(0,2,0));
PolygonK polygon2;
polygon2.push_back(Vertex3K(0.5,0.5,0));
polygon2.push_back(Vertex3K(1.5,0.5,0));
polygon2.push_back(Vertex3K(1.5,1.5,0));
polygon2.push_back(Vertex3K(0.5,1.5,0));
polyhole.push_back(polygon1);
polyhole.push_back(polygon2);
}
Polygons triangles;
bool ok = CGALUtils::tessellatePolygonWithHoles(polyhole, triangles, normal);
std::cerr << "Tessellated into " << triangles.size() << " triangles" << std::endl;
export_stl(triangles, std::cout);
}

View File

@ -0,0 +1,90 @@
debug: DEFINES += DEBUG
TEMPLATE = app
INCLUDEPATH += ../src
DEPENDPATH += ../src
# Handle custom library location.
# Used when manually installing 3rd party libraries
isEmpty(OPENSCAD_LIBDIR) OPENSCAD_LIBDIR = $$(OPENSCAD_LIBRARIES)
macx:isEmpty(OPENSCAD_LIBDIR) {
exists(/opt/local):exists(/usr/local/Cellar) {
error("It seems you might have libraries in both /opt/local and /usr/local. Please specify which one to use with qmake OPENSCAD_LIBDIR=<prefix>")
} else {
exists(/opt/local) {
#Default to MacPorts on Mac OS X
message("Automatically searching for libraries in /opt/local. To override, use qmake OPENSCAD_LIBDIR=<prefix>")
OPENSCAD_LIBDIR = /opt/local
} else:exists(/usr/local/Cellar) {
message("Automatically searching for libraries in /usr/local. To override, use qmake OPENSCAD_LIBDIR=<prefix>")
OPENSCAD_LIBDIR = /usr/local
}
}
}
!isEmpty(OPENSCAD_LIBDIR) {
QMAKE_INCDIR = $$OPENSCAD_LIBDIR/include
QMAKE_LIBDIR = $$OPENSCAD_LIBDIR/lib
}
TARGET = polyhole-tessellator
mac {
CONFIG -= app_bundle
}
macx {
# Mac needs special care to link against the correct C++ library
# We attempt to auto-detect it by inspecting Boost
dirs = $${BOOSTDIR} $${QMAKE_LIBDIR}
for(dir, dirs) {
system(grep -q __112basic_string $${dir}/libboost_thread* >& /dev/null) {
message("Detected libc++-linked boost in $${dir}")
CONFIG += libc++
}
}
libc++ {
QMAKE_CXXFLAGS += -stdlib=libc++
QMAKE_LFLAGS += -stdlib=libc++
QMAKE_OBJECTIVE_CFLAGS += -stdlib=libc++
# libc++ on requires Mac OS X 10.7+
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7
}
}
# See Dec 2011 OpenSCAD mailing list, re: CGAL/GCC bugs.
*g++* {
QMAKE_CXXFLAGS *= -fno-strict-aliasing
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-local-typedefs # ignored before 4.8
}
*clang* {
# http://llvm.org/bugs/show_bug.cgi?id=9182
QMAKE_CXXFLAGS_WARN_ON += -Wno-overloaded-virtual
# disable enormous amount of warnings about CGAL / boost / etc
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-parameter
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-variable
QMAKE_CXXFLAGS_WARN_ON += -Wno-unused-function
QMAKE_CXXFLAGS_WARN_ON += -Wno-c++11-extensions
# might want to actually turn this on once in a while
QMAKE_CXXFLAGS_WARN_ON += -Wno-format-security
}
# Application configuration
CONFIG += cgal
CONFIG += boost
CONFIG += eigen
CONFIG += gettext
include(../common.pri)
HEADERS += ../src/cgal.h \
../src/cgalutils.h \
../src/linalg.h \
../src/printutils.h
SOURCES += polyhole-tessellator.cpp \
../src/cgalutils-tess.cc \
../src/printutils.cc

View File

@ -0,0 +1,36 @@
{
"name" : "For Dark Background",
"index" : 1100,
"paper" : "#222222",
"text" : "#e0e0e0",
"caret" : {
"width" : 2,
"foreground" : "#ffff00",
"line-background" : "#303030"
},
"colors" : {
"keyword1" : "#90ee90",
"keyword2" : "#56dbf0",
"keyword3" : "#add8e6",
"comment" : "#808080",
"commentline" : "#808080",
"commentdoc" : "#808080",
"commentdockeyword" : "#808080",
"number" : "#ff0000",
"string" : "#e6db74",
"operator" : "#e8b609",
"whitespace-foreground" : "#e0e0e0",
"selection-foreground" : "#ffffff",
"selection-background" : "#4a90d9",
"margin-background" : "#272822",
"margin-foreground" : "Gray",
"matched-brace-background" : "#505050",
"matched-brace-foreground" : "#ffffff",
"unmatched-brace-background" : "#dc322f",
"unmatched-brace-foreground" : "#fdf6e3",
"error-marker" : "#ff0000",
"error-indicator" : "#60ff0000",
"error-indicator-outline" : "#ff000000",
"edge" : "#ffffff"
}
}

View File

@ -0,0 +1,36 @@
{
"name" : "For Light Background",
"index" : 1000,
"paper" : "#ffffff",
"text" : "#272822",
"caret" : {
"width" : 2,
"foreground" : "#000000",
"line-background" : "#f8f8f8"
},
"colors" : {
"keyword1" : "Green",
"keyword2" : "Green",
"keyword3" : "DarkBlue",
"comment" : "DarkCyan",
"commentline" : "DarkCyan",
"commentdoc" : "DarkCyan",
"commentdockeyword" : "DarkCyan",
"number" : "DarkRed",
"string" : "DarkMagenta",
"operator" : "Blue",
"whitespace-foreground" : "#272822",
"selection-foreground" : "#ffffff",
"selection-background" : "#4a90d9",
"margin-background" : "#f8f8f8",
"margin-foreground" : "Gray",
"matched-brace-background" : "#c7f6cb",
"matched-brace-foreground" : "Blue",
"unmatched-brace-background" : "#ffcdcc",
"unmatched-brace-foreground" : "Blue",
"error-marker" : "#ff0000",
"error-indicator" : "#60ff0000",
"error-indicator-outline" : "#ff000000",
"edge" : "#ffffff"
}
}

View File

@ -0,0 +1,36 @@
{
"name" : "Monokai",
"index" : 1200,
"paper" : "#272822",
"text" : "#f8f8f2",
"caret" : {
"width" : 2,
"foreground" : "#f8f8f2",
"line-background" : "#49483e"
},
"colors" : {
"keyword1" : "#f92672",
"keyword2" : "#a6e22e",
"keyword3" : "#66d9ef",
"comment" : "#75715e",
"commentline" : "#75715e",
"commentdoc" : "#75715e",
"commentdockeyword" : "#7b9a3c",
"number" : "#ae81ff",
"string" : "#e6db74",
"operator" : "#f8f8f2",
"whitespace-foreground" : "#f8f8f2",
"selection-foreground" : "#272822",
"selection-background" : "#f8f8f2",
"margin-background" : "#3e3d32",
"margin-foreground" : "DarkGray",
"matched-brace-background" : "#606060",
"matched-brace-foreground" : "#ffff00",
"unmatched-brace-background" : "#b06060",
"unmatched-brace-foreground" : "#ffff00",
"error-marker" : "#ff0000",
"error-indicator" : "#80ffe0e0",
"error-indicator-outline" : "#ff000000",
"edge" : "#ffffff"
}
}

View File

@ -0,0 +1,36 @@
{
"name" : "Solarized (dark)",
"index" : 1310,
"paper" : "#002b36",
"text" : "#839496",
"caret" : {
"width" : 2,
"foreground" : "#fff070",
"line-background" : "#073642"
},
"colors" : {
"keyword1" : "#268ad1",
"keyword2" : "#2aa198",
"keyword3" : "#859900",
"comment" : "#657b83",
"commentline" : "#657b83",
"commentdoc" : "#657b83",
"commentdockeyword" : "#6c71c4",
"number" : "#d33682",
"string" : "#b58900",
"operator" : "#cb4b16",
"whitespace-foreground" : "#839496",
"selection-foreground" : "#fdf6e3",
"selection-background" : "#657b83",
"margin-background" : "#002b36",
"margin-foreground" : "#839496",
"matched-brace-background" : "#0c4e22",
"matched-brace-foreground" : "#fff070",
"unmatched-brace-background" : "#92211f",
"unmatched-brace-foreground" : "#fff070",
"error-marker" : "#ff0000",
"error-indicator" : "#90ff8080",
"error-indicator-outline" : "#ff000000",
"edge" : "#d33682"
}
}

View File

@ -0,0 +1,36 @@
{
"name" : "Solarized (light)",
"index" : 1300,
"paper" : "#fdf6e3",
"text" : "#657b83",
"caret" : {
"width" : 2,
"foreground" : "#000000",
"line-background" : "#eee8d5"
},
"colors" : {
"keyword1" : "#268ad1",
"keyword2" : "#2aa198",
"keyword3" : "#859900",
"comment" : "#93a1a1",
"commentline" : "#93a1a1",
"commentdoc" : "#93a1a1",
"commentdockeyword" : "#6c71c4",
"number" : "#d33682",
"string" : "#b58900",
"operator" : "#cb4b16",
"whitespace-foreground" : "#657b83",
"selection-foreground" : "#fdf6e3",
"selection-background" : "#657b83",
"margin-background" : "#eee8d5",
"margin-foreground" : "#657b83",
"matched-brace-background" : "#c7f6cb",
"matched-brace-foreground" : "#cb4b16",
"unmatched-brace-background" : "#ffcdcc",
"unmatched-brace-foreground" : "#cb4b16",
"error-marker" : "#ff0000",
"error-indicator" : "#80ff0000",
"error-indicator-outline" : "#ff000000",
"edge" : "#d33682"
}
}

View File

@ -0,0 +1,36 @@
{
"name" : "Tomorrow Night",
"index" : 1600,
"paper" : "#1d1f21",
"text" : "#c5c8c6",
"caret" : {
"width" : 2,
"foreground" : "#ffffff",
"line-background" : "#282a2e"
},
"colors" : {
"keyword1" : "#de935f",
"keyword2" : "#b294bb",
"keyword3" : "#81a2be",
"comment" : "#969896",
"commentline" : "#969896",
"commentdoc" : "#969896",
"commentdockeyword" : "#f0c674",
"number" : "#cc6666",
"string" : "#b5bd68",
"operator" : "#8abeb7",
"whitespace-foreground" : "#c5c8c6",
"selection-foreground" : "#373b41",
"selection-background" : "#c5c8c6",
"margin-background" : "#1d1f21",
"margin-foreground" : "#969896",
"matched-brace-background" : "#50545c",
"matched-brace-foreground" : "#e2e6e3",
"unmatched-brace-background" : "#8a1111",
"unmatched-brace-foreground" : "#e2e6e3",
"error-marker" : "#ff0000",
"error-indicator" : "#80ff0000",
"error-indicator-outline" : "#ff000000",
"edge" : "#d33682"
}
}

View File

@ -0,0 +1,36 @@
{
"name" : "Tomorrow",
"index" : 1500,
"paper" : "#f8f8f8",
"text" : "#4d4d4c",
"caret" : {
"width" : 2,
"foreground" : "#000000",
"line-background" : "#efefef"
},
"colors" : {
"keyword1" : "#f5871f",
"keyword2" : "#8959a8",
"keyword3" : "#4271ae",
"comment" : "#8e908c",
"commentline" : "#8e908c",
"commentdoc" : "#8e908c",
"commentdockeyword" : "#eab700",
"number" : "#c82829",
"string" : "#718c00",
"operator" : "#3e999f",
"whitespace-foreground" : "#4d4d4c",
"selection-foreground" : "#4d4d4c",
"selection-background" : "#d6d6d6",
"margin-background" : "#f8f8f8",
"margin-foreground" : "#4d4d4c",
"matched-brace-background" : "#c7f6cb",
"matched-brace-foreground" : "#4d4d4c",
"unmatched-brace-background" : "#ffcdcc",
"unmatched-brace-foreground" : "#4d4d4c",
"error-marker" : "#ff0000",
"error-indicator" : "#80ff0000",
"error-indicator-outline" : "#ff000000",
"edge" : "#d33682"
}
}

View File

@ -0,0 +1,41 @@
{
"name" : "Visual Studio",
"index" : 1400,
"paper" : "#ffffff",
"text" : "#101010",
"caret" : {
"width" : 2,
"foreground" : "#000000",
"line-background" : "#eeeeee"
},
"colors" : {
"keyword1" : "blue",
"keyword2" : "blue",
"keyword3" : "#2B91AF",
"comment" : "DarkGreen",
"commentline" : "DarkGreen",
"commentdoc" : "#DarkGreen",
"commentdockeyword" : "#DarkGreen",
"number" : "DarkRed",
"string" : "#A31515",
"operator" : "Blue",
"whitespace-foreground" : "#101010",
"selection-foreground" : "black",
"selection-background" : "lightblue",
"margin-background" : "white",
"margin-foreground" : "#2B91AF",
"matched-brace-background" : "darkgrey",
"matched-brace-foreground" : "black",
"unmatched-brace-background" : "red",
"unmatched-brace-foreground" : "#ffffff",
"error-marker" : "#ff0000",
"error-indicator" : "#60ff0000",
"error-indicator-outline" : "#ff000000",
"edge" : "#ffffff"
},
"keywords" : {
"keyword-set1" : "if else let for module function true false undef include use",
"keyword-set2" : "abs sign rands min max sin cos asin acos tan atan atan2 round ceil floor pow sqrt exp len log ln str chr concat lookup search version version_num norm cross parent_module dxf_dim dxf_cross",
"keyword-set3" : "cube sphere cylinder polyhedron square circle polygon text minkowski hull resize child echo union difference intersection linear_extrude rotate_extrude import group projection render surface scale rotate mirror translate multmatrix color offset"
}
}

44
color-schemes/readme.txt Normal file
View File

@ -0,0 +1,44 @@
Color Schemes
=============
Solarized
---------
http://ethanschoonover.com/solarized
Monokai
-------
http://www.monokai.nl/blog/2006/07/15/textmate-color-theme/
Tomorrow / Tomorrow Night
-------------------------
https://github.com/chriskempson/tomorrow-theme
Editor:
keyword1 Orange
keyword2 Purple
keyword3 Blue
comment Comment
commentline Comment
commentdoc Comment
commentdockeyword Yellow
number Red
string Green
operator Aqua
selection-foreground Foreground
selection-background Selection
Render:
opencsg-face-front Blue
opencsg-face-back Orange
cgal-face-front Aqua
cgal-face-back Yellow
cgal-face-2d Green
cgal-edge-front Foreground
cgal-edge-back Foreground
cgal-edge-2d Red
crosshair Purple

View File

@ -0,0 +1,19 @@
{
"name" : "BeforeDawn",
"index" : 1400,
"show-in-gui" : true,
"colors" : {
"background" : "#333333",
"axes-color" : "#c1c1c1",
"opencsg-face-front" : "#cccccc",
"opencsg-face-back" : "#5563dd",
"cgal-face-front" : "#cccccc",
"cgal-face-back" : "#5563dd",
"cgal-face-2d" : "#00bf99",
"cgal-edge-front" : "#ff0000",
"cgal-edge-back" : "#ff0000",
"cgal-edge-2d" : "#ff0000",
"crosshair" : "#f0f0f0"
}
}

View File

@ -0,0 +1,19 @@
{
"name" : "DeepOcean",
"index" : 1600,
"show-in-gui" : true,
"colors" : {
"background" : "#333333",
"axes-color" : "#c1c1c1",
"opencsg-face-front" : "#eeeeee",
"opencsg-face-back" : "#0babc8",
"cgal-face-front" : "#eeeeee",
"cgal-face-back" : "#0babc8",
"cgal-face-2d" : "#9370db",
"cgal-edge-front" : "#0000ff",
"cgal-edge-back" : "#0000ff",
"cgal-edge-2d" : "#ff00ff",
"crosshair" : "#f0f0f0"
}
}

View File

@ -0,0 +1,19 @@
{
"name" : "Metallic",
"index" : 1100,
"show-in-gui" : true,
"colors" : {
"background" : "#aaaaff",
"axes-color" : "#222233",
"opencsg-face-front" : "#ddddff",
"opencsg-face-back" : "#dd22dd",
"cgal-face-front" : "#ddddff",
"cgal-face-back" : "#dd22dd",
"cgal-face-2d" : "#00bf99",
"cgal-edge-front" : "#ff0000",
"cgal-edge-back" : "#ff0000",
"cgal-edge-2d" : "#ff0000",
"crosshair" : "#800000"
}
}

View File

@ -0,0 +1,20 @@
{
"name" : "Monotone",
"index" : 9999,
"show-in-gui" : false,
"description" : "Color scheme with no difference between 'back face' and 'front face'",
"colors" : {
"background" : "#ffffe5",
"axes-color" : "#191916",
"opencsg-face-front" : "#f9d72c",
"opencsg-face-back" : "#f9d72c",
"cgal-face-front" : "#f9d72c",
"cgal-face-back" : "#f9d72c",
"cgal-face-2d" : "#00bf99",
"cgal-edge-front" : "#ff0000",
"cgal-edge-back" : "#ff0000",
"cgal-edge-2d" : "#ff0000",
"crosshair" : "#800000"
}
}

View File

@ -0,0 +1,19 @@
{
"name" : "Nature",
"index" : 1500,
"show-in-gui" : true,
"colors" : {
"background" : "#fafafa",
"axes-color" : "#323232",
"opencsg-face-front" : "#16a085",
"opencsg-face-back" : "#dbf4da",
"cgal-face-front" : "#16a085",
"cgal-face-back" : "#dbf4da",
"cgal-face-2d" : "#00bf99",
"cgal-edge-front" : "#ff0000",
"cgal-edge-back" : "#ff0000",
"cgal-edge-2d" : "#ff0000",
"crosshair" : "#111111"
}
}

View File

@ -0,0 +1,19 @@
{
"name" : "Solarized",
"index" : 1700,
"show-in-gui" : true,
"colors" : {
"background" : "#fdf6e3",
"axes-color" : "#191816",
"opencsg-face-front" : "#b58800",
"opencsg-face-back" : "#882233",
"cgal-face-front" : "#b58800",
"cgal-face-back" : "#882233",
"cgal-face-2d" : "#6c71c4",
"cgal-edge-front" : "#b58800",
"cgal-edge-back" : "#b58800",
"cgal-edge-2d" : "#b58800",
"crosshair" : "#800000"
}
}

View File

@ -0,0 +1,19 @@
{
"name" : "Starnight",
"index" : 1300,
"show-in-gui" : true,
"colors" : {
"background" : "#000000",
"axes-color" : "#e5e5e5",
"opencsg-face-front" : "#ffffe0",
"opencsg-face-back" : "#00ffff",
"cgal-face-front" : "#ffffe0",
"cgal-face-back" : "#00ffff",
"cgal-face-2d" : "#9370db",
"cgal-edge-front" : "#0000ff",
"cgal-edge-back" : "#0000ff",
"cgal-edge-2d" : "#ff00ff",
"crosshair" : "#f0f0f0"
}
}

View File

@ -0,0 +1,19 @@
{
"name" : "Sunset",
"index" : 1200,
"show-in-gui" : true,
"colors" : {
"background" : "#aa4444",
"axes-color" : "#220d0d",
"opencsg-face-front" : "#ffaaaa",
"opencsg-face-back" : "#882233",
"cgal-face-front" : "#ffaaaa",
"cgal-face-back" : "#882233",
"cgal-face-2d" : "#00bf99",
"cgal-edge-front" : "#ff0000",
"cgal-edge-back" : "#ff0000",
"cgal-edge-2d" : "#ff0000",
"crosshair" : "#800000"
}
}

View File

@ -0,0 +1,19 @@
{
"name" : "Tomorrow Night",
"index" : 1900,
"show-in-gui" : true,
"colors" : {
"background" : "#1d1f21",
"axes-color" : "#e8e8e8",
"opencsg-face-front" : "#81a2be",
"opencsg-face-back" : "#de935f",
"cgal-face-front" : "#8abeb7",
"cgal-face-back" : "#f0c674",
"cgal-face-2d" : "#b5bd68",
"cgal-edge-front" : "#c5c8c6",
"cgal-edge-back" : "#c5c8c6",
"cgal-edge-2d" : "#cc6666",
"crosshair" : "#b294bb"
}
}

View File

@ -0,0 +1,19 @@
{
"name" : "Tomorrow",
"index" : 1800,
"show-in-gui" : true,
"colors" : {
"background" : "#f8f8f8",
"axes-color" : "#181818",
"opencsg-face-front" : "#4271ae",
"opencsg-face-back" : "#f5871f",
"cgal-face-front" : "#3e999f",
"cgal-face-back" : "#eab700",
"cgal-face-2d" : "#718c00",
"cgal-edge-front" : "#4d4d4c",
"cgal-edge-back" : "#4d4d4c",
"cgal-edge-2d" : "#c82829",
"crosshair" : "#8959a8"
}
}

View File

@ -11,3 +11,11 @@ include(opencsg.pri)
include(glew.pri)
include(eigen.pri)
include(boost.pri)
include(glib-2.0.pri)
include(gettext.pri)
include(sparkle.pri)
include(harfbuzz.pri)
include(freetype.pri)
include(fontconfig.pri)
include(scintilla.pri)
include(c++11.pri)

View File

@ -1,6 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<!--
(cc) Michael Thomson <openscad.org@m-thomson.net>
OpenSCAD syntax highlights in BBEdit/TextWrangler by Michael Thomson
is licensed under a Creative Commons Attribution 4.0 International License.
http://creativecommons.org/licenses/by/4.0/
Master copy in OpenSCAD Distribution:
https://github.com/openscad/openscad/tree/master/contrib
Also Published on Thingiverse:
http://www.thingiverse.com/thing:15244/
Based on OpenSCAD 2014.03, documented here:
http://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language
Version History
2011-12-31 Initial version
2014-05-24 Updated for OpenSCAD 2014.03
-->
<dict>
<key>BBEditDocumentType</key>
<string>CodelessLanguageModule</string>
@ -8,54 +29,158 @@
<true/>
<key>BBLMColorsSyntax</key>
<true/>
<key>BBLMCommentLineDefault</key>
<string>//</string>
<key>BBLMCommentPrefixDefault</key>
<string>/*</string>
<key>BBLMCommentSuffixDefault</key>
<string>*/</string>
<key>BBLMIsCaseSensitive</key>
<true/>
<key>BBLMPredefinedNameList</key>
<array>
<!-- Special constants -->
<string>true</string>
<string>false</string>
<string>undef</string>
<string>PI</string>
<!-- Parameters -->
<string>auto</string>
<string>center</string>
<string>invert</string>
<string>size</string>
<string>points</string>
<string>faces</string>
<string>convexity</string>
<string>file</string>
<string>layer</string>
<string>origin</string>
<!-- Modifier Characters -->
<string>%</string>
<string>#</string> <!-- Not highlighted? -->
<string>!</string>
<string>*</string>
<!-- Special Variables -->
<string>$fa</string>
<string>$fs</string>
<string>$fn</string>
<string>$t</string>
<string>$vpr</string>
<string>$vpt</string>
</array>
<key>BBLMKeywordList</key>
<array>
<string>!</string>
<string>#</string>
<string>$fa</string>
<string>$fn</string>
<string>$fs</string>
<string>$t</string>
<string>%</string>
<string>*</string>
<string>assign</string>
<string>center</string>
<string>circle</string>
<string>color</string>
<string>cube</string>
<string>cylinder</string>
<string>difference</string>
<string>echo</string>
<string>for</string>
<string>function</string>
<string>hull</string>
<string>if</string>
<string>import_dxf</string>
<string>import_stl</string>
<string>include</string>
<string>intersection</string>
<string>intersection_for</string>
<string>linear_extrude</string>
<string>minkowski</string>
<string>mirror</string>
<string>module</string>
<string>multmatrix</string>
<string>polygon</string>
<string>polyhedron</string>
<string>projection</string>
<string>render</string>
<string>rotate</string>
<string>rotate_extrude</string>
<string>scale</string>
<string>sphere</string>
<!--
Based on OpenSCAD 2014.3, documented here:
http://en.wikibooks.org/wiki/OpenSCAD_User_Manual/The_OpenSCAD_Language
-->
<!-- 2D Primitives -->
<string>square</string>
<string>circle</string>
<string>polygon</string>
<!-- Primitive Solids -->
<string>cube</string>
<string>sphere</string>
<string>cylinder</string>
<string>polyhedron</string>
<!-- Conditional and Iterator Functions -->
<string>for</string>
<string>intersection_for</string>
<string>if</string>
<string>else</string>
<string>assign</string>
<!-- Mathematical Operators -->
<string>?</string> <!-- Not highlighted? -->
<!-- Trigonometric Functions -->
<string>cos</string>
<string>sin</string>
<string>tan</string>
<string>acos</string>
<string>asin</string>
<string>atan</string>
<string>atan2</string>
<!-- Other Mathematical Functions -->
<string>abs</string>
<string>ceil</string>
<string>cross</string>
<string>exp</string>
<string>floor</string>
<string>ln</string>
<string>len</string>
<string>log</string>
<string>lookup</string>
<string>max</string>
<string>min</string>
<string>norm</string>
<string>pow</string>
<string>rands</string>
<string>round</string>
<string>sign</string>
<string>sqrt</string>
<!-- String Functions -->
<string>str</string>
<string>surface</string>
<!-- Transformations -->
<string>scale</string>
<string>rotate</string>
<string>translate</string>
<string>resize</string>
<string>mirror</string>
<string>multmatrix</string>
<string>color</string>
<string>minkowski</string>
<string>hull</string>
<!-- CSG Modelling -->
<string>union</string>
<string>difference</string>
<string>intersection</string>
<string>linear_extrude</string>
<!-- Modules -->
<string>module</string>
<string>children</string>
<string>function</string>
<!-- Importing Geometry -->
<string>import</string>
<string>include</string>
<string>use</string>
<string>dxf_cross</string>
<!-- Other Language Features -->
<!-- Echo Statements -->
<string>echo</string>
<!-- Render -->
<string>render</string>
<!-- Offset -->
<string>offset</string>
<!-- Surface -->
<string>surface</string>
<!-- Search -->
<string>search</string>
<!-- OpenSCAD Version -->
<string>version</string>
<string>version_num</string>
<string>parent_module</string>
<string>$parent_modules</string>
</array>
<key>BBLMLanguageCode</key>
<string>Oscd</string>

View File

@ -1,12 +1,12 @@
;;; scad-mode.el --- SCAD mode derived mode
;;; scad-mode.el --- A major mode for editing OpenSCAD code
;; Author: Len Trigg
;; Author: Len Trigg, Łukasz Stelmach
;; Maintainer: Len Trigg <lenbok@gmail.com>
;; Created: March 2010
;; Modified: 06 July 2012
;; Modified: 28 Mar 2015
;; Keywords: languages
;; URL: https://raw.github.com/openscad/openscad/master/contrib/scad-mode.el
;; Version: 90.0
;; Version: 91.0
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@ -26,11 +26,11 @@
;;; Commentary:
;;
;; This is a major-mode to implement the SCAD constructs and
;; font-locking for openscad
;; font-locking for OpenSCAD
;;
;; If installing manually, insert the following into your emacs startup:
;;
;; (autoload 'scad-mode "scad-mode" "Major mode for editing SCAD code." t)
;; (autoload 'scad-mode "scad-mode" "A major mode for editing OpenSCAD code." t)
;; (add-to-list 'auto-mode-alist '("\\.scad$" . scad-mode))
;;
;; or
@ -48,6 +48,8 @@
;;;###autoload
(add-to-list 'auto-mode-alist '("\\.scad$" . scad-mode))
(require 'cc-mode)
(defcustom scad-command
'"openscad"
"Path to openscad executable"
@ -68,30 +70,41 @@
"str"
"lookup" "version" "version_num" "len" "search"
"dxf_dim" "dxf_cross" ;;dxfdim.cc
"norm" "cross" ;;2014.03
"concat" "chr" ;;2015.03
)
"SCAD functions."
:type 'list
:group 'scad-font-lock)
(defcustom scad-modules
'("child" "echo" "assign" "for" "intersection_for" "if" "else" ;;control.cc
'("children" "echo" "for" "intersection_for" "if" "else" ;;control.cc
"cube" "sphere" "cylinder" "polyhedron" "square" "circle" "polygon" ;;primitives.cc
"scale" "rotate" "translate" "mirror" "multmatrix" ;;transform.cc
"union" "difference" "intersection" ;;csgops.cc
"render" ;;render.cc
"color" ;;color.cc
"surface" ;;surface.cc
"dxf_linear_extrude" "linear_extrude" ;;linearextrude.cc
"dxf_rotate_extrude" "rotate_extrude" ;;rotateextrude.cc
"import_stl" "import_off" "import_dxf" "import" ;;import.cc
"linear_extrude" ;;linearextrude.cc
"rotate_extrude" ;;rotateextrude.cc
"import" ;;import.cc
"group" ;;builtin.cc
"projection" ;;projection.cc
"minkowski" "glide" "subdiv" "hull" "resize" ;;cgaladv.cc
"parent_module" ;;2014.03
"let" "offset" "text" ;;2015.03
)
"SCAD modules."
:type 'list
:group 'scad-font-lock)
(defcustom scad-deprecated
'("child" "assign" "dxf_linear_extrude" "dxf_rotate_extrude"
"import_stl" "import_off" "import_dxf")
"SCAD deprecated modules and functions."
:type 'list
:group 'scad-font-lock)
(defcustom scad-operators
'("+" "-" "*" "/" "%"
"&&" "||" "!"
@ -103,9 +116,9 @@
(defvar scad-mode-map
(let ((map (make-sparse-keymap)))
(define-key map "\t" 'scad-indent-line)
(define-key map [(control c) (control o)] 'scad-open-current-buffer)
(define-key map [return] 'newline-and-indent)
(define-key map [return] 'newline-and-indent)
;;(define-key map [(control c) (control s)] 'c-show-syntactic-information) ;; Debugging info
map)
"Keymap for `scad-mode'.")
@ -138,97 +151,63 @@
(defvar scad-keywords-regexp (regexp-opt scad-keywords 'words))
(defvar scad-modules-regexp (regexp-opt scad-modules 'words))
(defvar scad-functions-regexp (regexp-opt scad-functions 'words))
(defvar scad-deprecated-regexp (regexp-opt scad-deprecated 'words))
(defvar scad-operators-regexp (regexp-opt scad-operators))
(defvar scad-font-lock-keywords
`(
("\\(module\\|function\\)[ \t]+\\(\\sw+\\)" (1 'font-lock-keyword-face nil) (2 'font-lock-function-name-face nil t))
("\\(use\\|include\\)[ \t]*<\\([^>]+\\)>" (1 'font-lock-preprocessor-face nil) (2 'font-lock-type-face nil t))
("<\\(\\sw+\\)>" (1 'font-lock-builtin-face nil))
("$\\(\\sw+\\)" (1 'font-lock-builtin-face nil))
(,scad-keywords-regexp . font-lock-keyword-face)
(,scad-modules-regexp . font-lock-builtin-face)
(,scad-functions-regexp . font-lock-function-name-face)
(,scad-deprecated-regexp . font-lock-warning-face)
;(,scad-operators-regexp . font-lock-operator-face) ;; This actually looks pretty ugly
;("\\(\\<\\S +\\>\\)\\s *(" 1 font-lock-function-name-face t) ;; Seems to override other stuff (e.g. in comments and builtins)
)
"Keyword highlighting specification for `scad-mode'.")
(defconst scad-font-lock-keywords-1 scad-font-lock-keywords)
(defconst scad-font-lock-keywords-2 scad-font-lock-keywords)
(defconst scad-font-lock-keywords-3 scad-font-lock-keywords)
;(defvar scad-imenu-generic-expression ...)
;(defvar scad-outline-regexp ...)
(defvar scad-indent-style nil
"The style of indentation for scad-mode. Defaults to \"k&r\" if
nil. If you want to set the style with file local variables use
the `c-file-style' variable")
(put 'scad-mode 'c-mode-prefix "scad-")
;;;###autoload
(define-derived-mode scad-mode fundamental-mode "SCAD"
"A major mode for editing SCAD files."
:syntax-table scad-mode-syntax-table
(set (make-local-variable 'font-lock-defaults) '(scad-font-lock-keywords))
(set (make-local-variable 'indent-line-function) 'scad-indent-line)
;(set (make-local-variable 'imenu-generic-expression) scad-imenu-generic-expression)
;(set (make-local-variable 'outline-regexp) scad-outline-regexp)
;; set comment styles for scad mode
(set (make-local-variable 'comment-start) "//")
(set (make-local-variable 'comment-end) "")
(set (make-local-variable 'block-comment-start) "/*")
(set (make-local-variable 'block-comment-end) "*/")
)
(define-derived-mode scad-mode prog-mode "SCAD"
"Major mode for editing OpenSCAD code.
To see what version of CC Mode you are running, enter `\\[c-version]'.
;;; Indentation, based on http://www.emacswiki.org/emacs/download/actionscript-mode-haas-7.0.el
The hook `c-mode-common-hook' is run with no args at mode
initialization, then `scad-mode-hook'.
(defun scad-indent-line ()
"Indent current line of SCAD code."
(interactive)
(let ((savep (> (current-column) (current-indentation)))
(indent (condition-case nil (max (scad-calculate-indentation) 0)
(error 0))))
(if savep
(save-excursion (indent-line-to indent))
(indent-line-to indent))))
Key bindings:
\\{scad-mode-map}"
(c-initialize-cc-mode)
;; (setq local-abbrev-table scad-mode-abbrev-table
;; abbrev-mode t)
(use-local-map scad-mode-map)
(c-set-offset (quote cpp-macro) 0 nil)
(c-basic-common-init 'scad-mode (or scad-indent-style "k&r"))
(c-font-lock-init)
(c-run-mode-hooks 'c-mode-common-hook 'scad-mode-hook)
(c-update-modeline))
(defun scad-calculate-indentation ()
"Return the column to which the current line should be indented."
(save-excursion
(scad-maybe-skip-leading-close-delim)
(let ((pos (point)))
(beginning-of-line)
(if (not (search-backward-regexp "[^\n\t\r ]" 1 0))
0
(progn
(scad-maybe-skip-leading-close-delim)
(+ (current-indentation) (* standard-indent (scad-count-scope-depth (point) pos))))))))
(defun scad-maybe-skip-leading-close-delim ()
(beginning-of-line)
(forward-to-indentation 0)
(if (looking-at "\\s)")
(forward-char)
(beginning-of-line)))
(defun scad-face-at-point (pos)
"Return face descriptor for char at point."
(plist-get (text-properties-at pos) 'face))
(defun scad-count-scope-depth (rstart rend)
"Return difference between open and close scope delimeters."
(save-excursion
(goto-char rstart)
(let ((open-count 0)
(close-count 0)
opoint)
(while (and (< (point) rend)
(progn (setq opoint (point))
(re-search-forward "\\s)\\|\\s(" rend t)))
(if (= opoint (point))
(forward-char 1)
(cond
;; Don't count if in string or comment.
((scad-face-at-point (- (point) 1)))
((looking-back "\\s)")
(incf close-count))
((looking-back "\\s(")
(incf open-count))
)))
(- open-count close-count))))
;; From: http://stackoverflow.com/questions/14520073/add-words-for-dynamic-expansion-to-emacs-mode
(defun scad-prime-dabbrev ()
"Makes a hidden scad-mode buffer containing all the scad keywords, so dabbrev expansion just works."
(unless (get-buffer " *scad words*")
(with-current-buffer (get-buffer-create " *scad words*")
(scad-mode)
(insert "module function use include") ; Explicitly add these -- they're not in the below vars
(insert (mapconcat 'identity (append scad-keywords scad-functions scad-modules scad-deprecated) " ")))))
(add-hook 'scad-mode-hook 'scad-prime-dabbrev)
(defun scad-open-current-buffer ()
(interactive)

Binary file not shown.

Binary file not shown.

View File

@ -226,8 +226,6 @@ o Visitation refactoring
DOCUMENTATION
-------------
o Auto-generate API documentation instead of, in addition to or combined with, the wikibooks docs.
o Write checklists for typical extension work (add new module, add new function)
-> syntax highlighter, test files, examples, documentation (external editor modes)
o Clarify include/use better in the wikibook docs (e.g. that use'd modules have to be self-contained)
TESTING

11
doc/hacking.txt Normal file
View File

@ -0,0 +1,11 @@
# Add new function/module
* Implement
* Add test
* Modules: Add example
* Document:
* wikibooks
* cheatsheet
* Modules: tooltips (editor.cc)
* External editor modes
* Add to RELEASE_NOTES

View File

@ -1,4 +1,4 @@
.TH OPENSCAD 1 "2013-03-xx"
.TH OPENSCAD 1 "2015.03"
.\" Please adjust this date whenever revising the manpage.
.SH NAME
openscad \- script file based graphical CAD environment
@ -19,9 +19,19 @@ the OpenSCAD user manual at http://en.wikibooks.org/wiki/OpenSCAD_User_Manual.
.TP
\fB-o\fP \fIoutputfile\fP
Export the given file to \fIoutputfile\fP in STL, OFF, DXF, CSG, or PNG format,
depending on file extension of \fIoutputfile\fP (which has to be lower case).
If this option is given, the GUI will not be started.
Export the given file to \fIoutputfile\fP in STL, OFF, AMF, DXF, SVG, or PNG
format, depending on file extension of \fIoutputfile\fP. If this
option is given, the GUI will not be started.
Additional formats, which are mainly used for debugging and testing (but can
also be used in automation), are AST (the input file as parsed and serialized
again), CSG (an OpenSCAD language representation of the input file with
calculations done and module calls applied), TERM (the constructive solid
geometry expression passed to OpenCSG). If \fIoutputfile\fP is \fBnull\fP, no
output file will be written, but the file will still be evaluated and all
\fBecho\fP commands will be written to the standard error output. (The
rendering process will still take place if the \fB\-\-render\fP option is
given.)
.TP
\fB\-d\fP \fIfile.deps\fP
If the \fB-d\fP option is given, all files accessed while exporting are written
@ -36,15 +46,18 @@ read it again.
This option can be used to assign constant values to OpenSCAD variables. The
variable's value is an expression, so if this mechanism is used to assign
strings, care has to be taken that the shell does not consume quotation marks.
More than one \fB-D\fP options can be given.
.TP
.B \-v, \-\-version
Show version of program.
More than one \fB-D\fP option can be given.
.TP
.B \-\-render
If exporting an image, use a full CGAL render. (Default is an OpenCSG compile)
If exporting an image, render the model fully. (Default is preview)
.TP
.B \-\-camera=rotx,roty,rotz,transx,transy,transz,distance
.B \-\-preview[=throwntogether]
If exporting an image, use an OpenCSG preview (optionally in throwntogether mode for quicker rendering).
.TP
.B \-\-csglimit=limit
If exporting an image as an OpenCSG preview, stop rendering after encountering \fIlimit\fP elements to avoid runaway resource usage.
.TP
.B \-\-camera=transx,transy,transz,rotx,roty,rotz,distance
If exporting an image, use a Gimbal camera with the given parameters.
Rot is rotation around the x, y, and z axis, trans is the distance to
move the object in the x, y, and z directions, and distance is the
@ -56,12 +69,28 @@ The first three are for the Eye position, while the next three are for
the Center (or target) that the camera will look at. The 'up' vector is
not currently supported.
.TP
.B \-\-viewall
If exporting an image, adjust camera distance to fit the whole design in the frame
.TP
.B \-\-autocenter
If exporting an image, center the design in the frame
.TP
.B \-\-imgsize=width,height
If exporting an image, specify the pixel width and height
.TP
.B \-\-projection=[o|p]
.B \-\-projection=[o|ortho|p|perspective]
If exporting an image, specify whether to use orthographic or perspective
projection
.TP
.B \-\-colorscheme=[Cornfield|Sunset|Metallic|Starnight|BeforeDawn|Nature|DeepOcean]
If exporting an image, use the specified color scheme for the rendering.
.TP
.B \-v, \-\-version
Show version of program.
.TP
.B \-\-info
Show which versions of libraries were used to compile the program, and which
OpenGL details are discovered.
.SH COMMAND LINE EXAMPLES
.PP

View File

@ -0,0 +1,27 @@
Given:
VERSION (e.g. 2015.03-1)
o Make sure we have a $VERSION branch. If not, create one
o Update VERSION and VERSIONDATE in
openscad.pro
scripts/publish-macosx.sh
scripts/release-common.sh
scripts/publish-mingw-x.sh
tests/CMakeLists.txt
o git tag "openscad-$VERSION"
o ./scripts/git-archive-all.py --prefix=openscad-$VERSION/ openscad-$VERSION.src.tar.gz
o git push --tags $VERSION
o Upload Source package
$ scp openscad-$VERSION.src.tar.gz openscad@files.openscad.org:www
o Write short release email to mailing list
o Tweet as OpenSCAD
o Notify package managers
- Debian/Ubuntu: https://launchpad.net/~chrysn
- Ubuntu PPA: https://github.com/hyperair
- Fedora: Miro Hrončok <miro@hroncok.cz> or <mhroncok@redhat.com>
- OpenSUSE: Pavol Rusnak <prusnak@opensuse.org>
- Arch Linux: Kyle Keen <keenerd@gmail.com>
- MacPorts: https://svn.macports.org/repository/macports/trunk/dports/science/openscad/Portfile
- Homebrew: https://github.com/caskroom/homebrew-cask/blob/master/Casks/openscad.rb

View File

@ -2,6 +2,10 @@ OpenSCAD Release Checklist
--------------------------
o Pre-release preparations
- Update translations:
- Send emails to translation managers, see .po files:
https://github.com/openscad/openscad/tree/master/locale
- Update src/AboutDialog.html with new contributors etc.
- Merge MCAD
o In MCAD clone:
$ git fetch upstream
@ -11,44 +15,40 @@ o Pre-release preparations
$ cd libraries/MCAD
$ git pull
$ cd ../..
$ git commit -m "Updated MCAD"
$ git commit -m "Updated MCAD" libraries/MCAD
$ git push
(See bottom of this file for how to build release binaries)
o Set VERSION and VERSIONDATE environment variable
(VERSIONDATE is new and used to identify releases. VERSION is for humans.
For development builds, set VERSION and VERSIONDATE to the same value)
o Update manpage: doc/openscad.1
o Update releases/$VERSION.md
o scripts/makereleasenotes.sh
export VERSION=2013.01
export VERSIONDATE=2013.01.17
It will be used by the commands below, as well as these files:
scripts/release-common.sh
scripts/publish-macosx.sh
scripts/publish-mingw-x.sh
o Update RELEASE_NOTES
o Update version number in doc/openscad.1
o Update copyright year in AboutDialog.html and mainwin.cc
o Add VERSION and VERSIONDATE in openscad.pro, scripts/publish-macosx.sh, scripts/release-common.sh
o Add VERSION in tests/CMakeLists.txt, scripts/publish-mingw-x.sh
o Tag release
git tag "openscad-$VERSION"
o Revert VERSION and VERSIONDATE in
openscad.pro, scripts/publish-macosx.sh, scripts/release-common.sh, scripts/publish-mingw-x.sh
o build source package
scripts/git-archive-all.py --prefix=openscad-$VERSION/ openscad-$VERSION.src.tar.gz
o Sanity check; build a binary or two and manually run some tests
o git push --tags
o git push --tags master
o Upload Source package
$ ./scripts/googlecode_upload.py -s 'Source Code' -p openscad -l Featured,Type-Source openscad-$VERSION.src.tar.gz
$ scp openscad-$VERSION.src.tar.gz openscad@files.openscad.org:www
o Remove VERSION environment variable
$ unset VERSION
o Build binaries for all platforms and wait for upload
o Announce:
o ./scripts/github-release.sh $VERSION
o Write release email/blog entry
o Update web page
- news.html
@ -56,18 +56,21 @@ o Update web page
o Update external resources:
- http://en.wikipedia.org/wiki/OpenSCAD
o Write to mailing list
o Tweet
o Tweet as OpenSCAD
o Notify package managers
- Ubuntu: https://launchpad.net/~chrysn
- Debian/Ubuntu: https://launchpad.net/~chrysn
- Ubuntu PPA: https://github.com/hyperair
- Fedora: Miro Hrončok <miro@hroncok.cz> or <mhroncok@redhat.com>
- OpenSUSE: Pavol Rusnak <prusnak@opensuse.org>
- MacPorts: Frank Schima <macports2000@gmail.com>
- Arch Linux: Kyle Keen <keenerd@gmail.com>
- MacPorts: https://svn.macports.org/repository/macports/trunk/dports/science/openscad/Portfile
- Homebrew: https://github.com/caskroom/homebrew-cask/blob/master/Casks/openscad.rb
o Update dev version to release version in documentation
- https://en.wikibooks.org/wiki/OpenSCAD_User_Manual
Build and Upload Release Binaries
---------------------------------
$ export VERSIONDATE=<date of release in YYYY.MM.DD format, e.g. 2013.01.17>
$ export VERSION=<openscad version, e.g. 2013.01> # If development snapshot, you don't need version is the same as VERSIONDATE
$ tar xzf openscad-$VERSION.src.tar.gz
$ cd openscad-$VERSION
@ -81,7 +84,7 @@ Linux:
$ ./scripts/release-common.sh -> openscad-$VERSION.x86-ARCH.tar.gz
(where ARCH will be detected and set to 32 or 64)
$ ./scripts/googlecode_upload.py -s 'Linux Binaries' -p openscad openscad-$VERSION.x86-ARCH.tar.gz -l Featured,OpSys-Linux,Type-Archive openscad-$VERSION.x86-ARCH.tar.gz
$ scp openscad-$VERSION.x86-ARCH.tar.gz openscad@files.openscad.org:www
o Update web page with download links
Windows mingw cross-build:

View File

@ -1,34 +1,50 @@
Running regression tests:
-------------------------
Prerequisites: cmake, python, ImageMagick 6.5.9.3 or newer
0) Prerequisites
First, get a working qmake GUI build. It is used by the tests.
Next, get MCAD installed by using 'git submodule update --init'
Install the prerequisite helper programs on your system:
cmake, python2 (not 3), ImageMagick 6.5.9.3 or newer, diff
There are binary installer packages of these tools available for Mac,
Win, Linux, BSD, and other systems. (except maybe diff for Win)
Next, get a working qmake GUI build of the main openscad binary working.
For Windows(TM) this means get a cross-build working from within linux.
See README.md for how to do this.
Then, install MCAD under openscad/libraries.
$ cd openscad
$ git submodule update --init
A) Building test environment
Linux, Mac:
$ cd tests
$ cmake .
$ make
Windows + MSVC:
$ cd tests
$ cmake .
$ make
From the QT command prompt:
Windows(TM):
> cd tests
> cmake . -DCMAKE_BUILD_TYPE=Release
> sed -i s/\/MD/\/MT/ CMakeCache.txt
> cmake .
> nmake -f Makefile
Cross-build from within linux:
Cross compiling Linux->Win32:
64-bit:
$ source ./scripts/setenv-mingw-xbuild.sh 64
$ ./scripts/release-common.sh mingw64 tests
$ # result is .zip file under ./mingw64/
Please see openscad/tests/CMingw-cross-env.cmake for instructions.
32-bit:
$ source ./scripts/setenv-mingw-xbuild.sh 32
$ ./scripts/release-common.sh mingw32 tests
$ # result is .zip file under ./mingw32/
B) Running tests
Linux, Mac:
$ ctest Runs tests enabled by default
$ ctest -R <regex> Runs only matching tests, e.g. ctest -R dxf
$ ctest -C <configs> Adds extended tests belonging to configs.
@ -36,10 +52,27 @@ $ ctest -C <configs> Adds extended tests belonging to configs.
Default - Run default tests
Heavy - Run more time consuming tests (> ~10 seconds)
Examples - test all examples
Bugs - test known bugs (tests will fail)
All - test everything
Adding a new regression test:
------------------------------
Win:
Unzip the OpenSCAD-Tests-YYYY.MM.DD file onto a Windows(TM) machine.
There will be a script called OpenSCAD-Test-Console.py in the parent folder.
Double-click it, and it will open a console, from which you can type the ctest
commands listed above.
C) Automatically upload test results (experimental)
It's possible to automatically upload tests results to an external
server. This is good for CI, as well as being able to easily report
bugs.
To enable this feature, add '-DOPENSCAD_UPLOAD_TESTS=1' to the cmake
cmd-line, e.g.: cmake -DOPENSCAD_UPLOAD_TESTS=1 .
Adding a new test:
------------------
1) create a test file at an appropriate location under testdata/
2) if the test is non-obvious, create a human readable description as comments in the test (or in another file in the same directory in case the file isn't human readable)
@ -64,8 +97,6 @@ This is almost the same as adding a new regression test:
4) run the test normally and verify that it passes:
$ ctest -C Examples -R exampleNNN
Troubleshooting:
------------------------------
@ -115,7 +146,7 @@ Imagemagick may have crashed while comparing the expected images to the
test-run generated (actual) images. You can try using the alternate
ImageMagick comparison method by by erasing CMakeCache, and re-running
cmake with -DCOMPARATOR=ncc. This will enable the Normalized Cross
Comparison method.
Comparison method which is less accurate but won't usually crash.
4. Testing images fails with 'morphology not found" for ImageMagick in the log
@ -127,14 +158,68 @@ cmake. The comparison will be of lowered reliability.
"terminate called after throwing an instance of 'std::runtime_error'
what(): locale::facet::_S_create_c_locale name not valid"
Is a boost/libstdc++ bug. Fix like so:
Is a boost/libstdc++ bug. Fix like so before running:
$ export LC_MESSAGES=
6. Other issues
6. I want to build without OpenGL
The OpenSCAD User Manual has a section on buildling. Please check there
for updates:
There is an unsupported way to do this, by defining NULLGL to Cmake:
mkdir nullglbin
cd nullglbin && cmake .. -DNULLGL=1 && make
The resulting openscad_nogui binary will fail most tests, but may be
useful for debugging and outputting 3d-formats like STL on systems without GL.
This option may break in the future and require tweaking to get working again.
7. Proprietary GL driver issues
There are sporadic reports of problems running on remote machines with
proprietary GL drivers. Try doing a web search for your exact error
message to see solutions and workarounds that others have found.
8. Windows + MSVC:
The MSVC build was last tested circa 2012. The last time it worked,
these were the necessary commands to run.
> Start the 'QT command prompt'
> cd \where\you\installed\openscad
> cd tests
> cmake . -DCMAKE_BUILD_TYPE=Release
> sed -i s/\/MD/\/MT/ CMakeCache.txt
> cmake .
> nmake -f Makefile
9. Other issues
The OpenSCAD User Manual Wiki has a section on buildling. Please check
there for possible updates and workarounds:
http://en.wikibooks.org/wiki/OpenSCAD_User_Manual
Please report build errors (after double checking the instructions) in
the github issue tracker
http://github.com/openscad/openscad/issues
10. Migration away from dedicated regression tests:
In 2013 the test programs underwent a major change. The following notes
are leftover.
"This test still needs an intermediate script that mangles away timestamps and
near-zero floating point numbers:
* cgalstlsanitytest
Some tests are yet to be converted:
* csgtexttest -- verify whether this is not redundant with dumptest
These look like tests, but are not actually in use:
* modulecachetest
* cgalcachetest
"

84
doc/translation.txt Normal file
View File

@ -0,0 +1,84 @@
OpenSCAD human language translation
===================================
We use the GNU gettext system, both for c++ code as well as QT's .ui files.
The latter is accomplished by the '-tr' feature of QT's uic to insert
a gettext wrapper into the ui_xxxxx.h files.
For somewhat similar designs, see the source code of projects like celestia,
stellarium, licq, merkaartor, etc (although they typically use cmake).
Currently the build system does not auto-update anything. The .mo files must
be generated by running the gettext tools: xgettext, msgmerge, and msgfmt.
There is a script included, translation-update.sh, that automates this process.
File layout:
============
./locale/*.po - .po files, one per language
./locale/openscad.pot - .pot template, generated by xgettext
./locale/POTFILES - list of source files with translatable strings (generated)
./locale/LINGUAS - list of language codes for which .po files exist
./src/qtgettext.h - wrapper code between QT and GNU gettext
./scripts/translation-update.sh - simple unix helper script
./locale/xx/LC_MESSAGES/openscad.mo - 'binaries' of .po files, built by script
To translate the strings:
=========================
Use a text editor or special program (poedit or lokalize) to edit the .po file.
( See http://en.opensuse.org/SDB:Localization_work_with_po_files )
Then submit your new .po file as an OpenSCAD github issue or pull request:
https://github.com/openscad/openscad/issues/
In the future there might be a site to allow translations in a browser:
https://translations.launchpad.net/openscad
If all else fails, email the OpenSCAD mailing list with your new .po
file attached.
To make source code changes:
============================
In .cc files, #include "printutils.h" and change each "text" into
_("text"). In .ui files, #include "qtgettext.h" first in the .h file
(see MainWindow.h). Then clean and rebuild to recreate the ui_xxxx.h
files.
$ make clean && qmake && make
Then run the script to scan the source files, and regenerate .pot & .po files.
$ ./scripts/translation-update.sh
This will create new .po files with any new untranslated strings you
added to the source code. These .po files can be distributed to
translators for translation. After the translated .po file is obtained,
overwrite the old .po and run the same script to update the .mo files.
$ ./scripts/translation-update.sh
To add a new language:
======================
First add the language code to file ./locale/LINGUAS. Then run msginit,
replacing $LANGCODE with the language code you want.
$ msginit -l $LANGCODE -o ./locale/$LANGCODE.po -i ./locale/openscad.pot
You will now have a new ./locale/xx.po file to edit and translate
Testing:
========
On unix, set the locale related environment variables. For example in
French, run this:
$ LANGUAGE=fr ./openscad
Linux system trace tools can help find errors. To show open()s on .mo files:
$ LANGUAGE=fr strace -f ./openscad 2>&1 | grep LC_MESSAGES

View File

@ -1,18 +1,14 @@
# Detect eigen3 + eigen2, then use this priority list to determine
# which eigen to use:
# Detect eigen3
#
# Priority
# 0. EIGENDIR if set (also EIGEN2DIR for backwards compatability)
# 0. EIGENDIR if set
# 1. OPENSCAD_LIBRARIES eigen3
# 2. OPENSCAD_LIBRARIES eigen2
# 3. system's standard include paths for eigen3
# 4. system's standard include paths for eigen2
eigen {
# read environment variables
OPENSCAD_LIBRARIES_DIR = $$(OPENSCAD_LIBRARIES)
EIGEN2_DIR = $$(EIGEN2DIR)
EIGEN_DIR = $$(EIGENDIR)
# Optionally specify location of Eigen3 using the
@ -23,41 +19,18 @@ EIGEN_DIR = $$(EIGENDIR)
EIGEN_INCLUDEPATH = $$OPENSCAD_LIBRARIES_DIR/include/eigen3
}
}
isEmpty(EIGEN_INCLUDEPATH) {
exists($$OPENSCAD_LIBRARIES_DIR/include/eigen2) {
EIGEN_INCLUDEPATH = $$OPENSCAD_LIBRARIES_DIR/include/eigen2
}
}
}
# Optionally specify location of Eigen using the
# EIGENDIR env. variable (EIGEN2 for backwards compatability)
!isEmpty(EIGEN2_DIR) {
EIGEN_INCLUDEPATH = $$EIGEN2_DIR
message("User set EIGEN location: $$EIGEN_INCLUDEPATH")
}
!isEmpty(EIGEN_DIR) {
EIGEN_INCLUDEPATH = $$EIGEN_DIR
message("User set EIGEN location: $$EIGEN_INCLUDEPATH")
}
isEmpty(EIGEN_INCLUDEPATH) {
linux*|hurd*|unix: EIGEN_INCLUDEPATH = /usr/include/eigen3
freebsd-g++: EIGEN_INCLUDEPATH = /usr/local/include/eigen3
netbsd*: EIGEN_INCLUDEPATH = /usr/pkg/include/eigen3
linux*|hurd*|unix: EIGEN_INCLUDEPATH = /usr/include/eigen3
macx: EIGEN_INCLUDEPATH = /opt/local/include/eigen3
!exists($$EIGEN_INCLUDEPATH) {
freebsd-g++: EIGEN_INCLUDEPATH = /usr/local/include/eigen2
netbsd*: EIGEN_INCLUDEPATH = /usr/pkg/include/eigen2
linux*|hurd*|unix*: EIGEN_INCLUDEPATH = /usr/include/eigen2
macx: EIGEN_INCLUDEPATH = /opt/local/include/eigen2
}
}
!exists($$EIGEN_INCLUDEPATH/Eigen/Core) {
EIGEN_CFLAGS = $$system("pkg-config --cflags eigen2")
EIGEN_INCLUDEPATH = $$replace(EIGEN_CFLAGS,"-I","")
}
!exists($$EIGEN_INCLUDEPATH/Eigen/Core) {
@ -72,7 +45,7 @@ isEmpty(EIGEN_INCLUDEPATH) {
}
}
# EIGEN being under 'include/eigen[2-3]' needs special prepending
# EIGEN being under 'include/eigen3' needs special prepending
contains(QT_VERSION, ^5\\..*) {
QMAKE_INCDIR = $$EIGEN_INCLUDEPATH $$QMAKE_INCDIR
} else {

View File

@ -0,0 +1,61 @@
font = "Liberation Sans";
// Nicer, but not generally installed:
// font = "Bank Gothic";
module G() offset(0.3) text("G", size=10, halign="center", valign="center", font = font);
module E() offset(0.3) text("E", size=10, halign="center", valign="center", font = font);
module B() offset(0.5) text("B", size=10, halign="center", valign="center", font = font);
$fn=64;
module GEB() {
intersection() {
linear_extrude(height = 20, convexity = 3, center=true) B();
rotate([90, 0, 0])
linear_extrude(height = 20, convexity = 3, center=true) E();
rotate([90, 0, 90])
linear_extrude(height = 20, convexity = 3, center=true) G();
}
}
color("Ivory") GEB();
color("MediumOrchid")
translate([0,0,-20])
linear_extrude(1)
difference() {
square(40, center=true);
projection() GEB();
}
color("DarkMagenta")
rotate([90,0,0])
translate([0,0,-20])
linear_extrude(1)
difference() {
translate([0,0.5]) square([40,39], center=true);
projection() rotate([-90,0,0]) GEB();
}
color("MediumSlateBlue")
rotate([90,0,90])
translate([0,0,-20])
linear_extrude(1)
difference() {
translate([-0.5,0.5]) square([39,39], center=true);
projection() rotate([0,-90,-90]) GEB();
}
echo(version=version());
// Written in 2015 by Marius Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,89 @@
// animation.scad - Demo of animation usage
// The animation funtionality is based simply on a variable $t
// that is changed automatically by OpenSCAD while repeatedly
// showing the model.
// To activate animation, select "View->Animation" from the
// menu and enter values into the appearing FPS and Steps input
// fields (e.g. 5 FPS and 200 Steps for this animation).
// This is not intended to directly produce real-time animations
// but the image sequence can be exported to generate videos of
// the animation.
// Length of the 2 arm segments, change to see the effects on
// the arm movements.
arm1_length = 70;
arm2_length = 50;
r = 2;
$fn = 30;
plate();
pos = position($t);
arm(pos[0], pos[1], arm1_length, arm2_length);
// Function describing the X/Y position that should be traced
// by the arm over time.
// The $t variable will be used as parameter for this function
// so the range for t is [0..1].
function position(t) = t < 0.5
? [ 200 * t - 50, 30 * sin(5 * 360 * t) + 60 ]
: [ 50 * cos(360 * (t - 0.5)), 100 * -sin(360 * (t- 0.5)) + 60 ];
// Inverse kinematics functions for a scara style arm
// See http://forums.reprap.org/read.php?185,283327
function sq(x, y) = x * x + y * y;
function angB(x, y, l1, l2) = 180 - acos((l2 * l2 + l1 * l1 - sq(x, y)) / (2 * l1 * l2));
function ang2(x, y, l1, l2) = 90 - acos((l2 * l2 - l1 * l1 + sq(x, y)) / (2 * l2 * sqrt(sq(x, y)))) - atan2(x, y);
function ang1(x, y, l1, l2) = ang2(x, y, l1, l2) + angB(x, y, l1, l2);
// Draw an arm segment with the given color and length.
module segment(col, l) {
color(col) {
hull() {
sphere(r);
translate([l, 0, 0]) sphere(r);
}
}
}
// Draw the whole 2 segmented arm trying to reach position x/y.
// Parameters l1 and l2 are the length of the two arm segments.
module arm(x, y, l1, l2) {
a1 = ang1(x, y, l1, l2);
a2 = ang2(x, y, l1, l2);
sphere(r = 2 * r);
cylinder(r = 2, h = 6 * r, center = true);
rotate([0, 0, a1]) segment("red", l1);
translate(l1 * [cos(a1), sin(a1), 0]) {
sphere(r = 2 * r);
rotate([0, 0, a2]) segment("green", l2);
}
translate([x, y, -r/2])
cylinder(r1 = 0, r2 = r, h = 4 * r, center = true);
}
module curve() polygon([for (a = [ 0 : 0.004 : 1]) position(a)]);
// Draws the plate and the traced function using small black cubes.
module plate() {
%translate([0, 0, -3*r]) {
translate([0,25,0]) cube([150, 150, 0.1], center = true);
color("Black") linear_extrude(0.1) difference() {
curve();
offset(-1) curve();
}
}
}
echo(version=version());
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,54 @@
// children.scad - Usage of children()
// The use of children() allows to write generic modules that
// modify child modules regardless of how the child geometry
// is created.
color("red")
make_ring_of(radius = 15, count = 6)
cube(8, center = true);
color("green")
make_ring_of(radius = 30, count = 12)
difference() {
sphere(5);
cylinder(r = 2, h = 12, center = true);
}
color("cyan")
make_ring_of(radius = 50, count = 4)
something();
module make_ring_of(radius, count)
{
for (a = [0 : count - 1]) {
angle = a * 360 / count;
translate(radius * [sin(angle), -cos(angle), 0])
rotate([0, 0, angle])
children();
}
}
module something()
{
cube(10, center = true);
cylinder(r = 2, h = 12, $fn = 40);
translate([0, 0, 12])
rotate([90, 0, 0])
linear_extrude(height = 2, center = true)
text("SCAD", 8, halign = "center");
translate([0, 0, 12])
cube([22, 1.6, 0.4], center = true);
}
echo(version=version());
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,62 @@
// children_indexed.scad - Usage of indexed children()
// children() with a parameter allows access to a specific child
// object with children(0) being the first one. In addition the
// $children variable is automatically set to the number of child
// objects.
color("red")
translate([-100, -20, 0])
align_in_grid_and_add_text();
color("yellow")
translate([-50, -20, 0])
align_in_grid_and_add_text() {
cube(5, center = true);
}
color("cyan")
translate([0, -20, 0])
align_in_grid_and_add_text() {
cube(5, center = true);
sphere(4);
}
color("green")
translate([50, -20, 0])
align_in_grid_and_add_text() {
cube(5, center = true);
sphere(4);
cylinder(r = 4, h = 5);
}
module align_in_grid_and_add_text()
{
if ($children == 0) {
linear_extrude(height = 1, center = true)
text("Nothing...", 6, halign = "center");
} else {
t = $children == 1 ? "one object" : str($children, " objects ");
linear_extrude(height = 1, center = true)
text(t, 6, halign = "center");
for (y = [0 : $children - 1])
for (x = [0 : $children - 1])
translate([15 * (x - ($children - 1) / 2), 20 * y + 40, 0])
scale(1 + x / $children)
children(y);
}
}
echo(version=version());
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,51 @@
// Recursive calls of modules can generate complex geometry, especially
// fractal style objects.
// The example uses a recursive module to generate a random tree as
// described in http://natureofcode.com/book/chapter-8-fractals/
levels = 10; // number of levels for the recursion
len = 100; // length of the first segment
thickness = 5; // thickness of the first segment
// the identity matrix
identity = [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ];
// random generator, to generate always the same output for the example,
// this uses a seed for rands() and stores the array of random values in
// the random variable. To generate different output, remove the seed or
// replace the function rnd() to just call rands(s, e, 1)[0].
rcnt = 1000;
random = rands(0, 1, rcnt, 18);
function rnd(s, e, r) = random[r % rcnt] * (e - s) + s;
// generate 4x4 translation matrix
function mt(x, y) = [ [ 1, 0, 0, x ], [ 0, 1, 0, y ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ];
// generate 4x4 rotation matrix around Z axis
function mr(a) = [ [ cos(a), -sin(a), 0, 0 ], [ sin(a), cos(a), 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ];
module tree(length, thickness, count, m = identity, r = 1) {
color([0, 1 - (0.8 / levels * count), 0])
multmatrix(m)
square([thickness, length]);
if (count > 0) {
tree(rnd(0.6, 0.8, r) * length, 0.8 * thickness, count - 1, m * mt(0, length) * mr(rnd(20, 35, r + 1)), 8 * r);
tree(rnd(0.6, 0.8, r + 1) * length, 0.8 * thickness, count - 1, m * mt(0, length) * mr(-rnd(20, 35, r + 3)), 8 * r + 4);
}
}
tree(len, thickness, levels);
echo(version=version());
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,43 @@
// offset.scad - Example for offset() usage in OpenSCAD
$fn = 40;
foot_height = 20;
echo(version=version());
module outline(wall = 1) {
difference() {
offset(wall / 2) children();
offset(-wall / 2) children();
}
}
// offsetting with a positive value allows to create rounded corners easily
linear_extrude(height = foot_height, scale = 0.5) {
offset(10) {
square(50, center = true);
}
}
translate([0, 0, foot_height]) {
linear_extrude(height = 20) {
outline(wall = 2) circle(15);
}
}
%cylinder(r = 14, h = 100);
%translate([0, 0, 100]) sphere(r = 30);
// Written in 2014 by Torsten Paul <Torsten.Paul@gmx.de>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1,26 @@
echo(version=version());
// surface() can import images, the pixel values are converted
// to grayscale and converted to values between 0 and 100.
// The example takes 3 cuts from the height map and displays
// those as 3 stacked layers.
for (a = [1, 2, 3])
color([a/6 + 0.5, 0, 0])
linear_extrude(height = 2 * a, convexity = 10)
projection(cut = true)
translate([0, 0, -30 * a])
surface("surface_image.png", center = true);
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,94 @@
// CSG-modules.scad - Basic usage of modules, if, color, $fs/$fa
// Change this to false to remove the helper geometry
debug = true;
// Global resolution
$fs = 0.1; // Don't generate smaller facets than 0.1 mm
$fa = 5; // Don't generate larger angles than 5 degrees
// Main geometry
difference() {
intersection() {
body();
intersector();
}
holes();
}
// Helpers
if (debug) helpers();
// Core geometric primitives.
// These can be modified to create variations of the final object
module body() {
color("Blue") sphere(10);
}
module intersector() {
color("Red") cube(15, center=true);
}
module holeObject() {
color("Lime") cylinder(h=20, r=5, center=true);
}
// Various modules for visualizing intermediate components
module intersected() {
intersection() {
body();
intersector();
}
}
module holeA() rotate([0,90,0]) holeObject();
module holeB() rotate([90,0,0]) holeObject();
module holeC() holeObject();
module holes() {
union() {
holeA();
holeB();
holeC();
}
}
module helpers() {
// Inner module since it's only needed inside helpers
module line() color("Black") cylinder(r=1, h=10, center=true);
scale(0.5) {
translate([-30,0,-40]) {
intersected();
translate([-15,0,-35]) body();
translate([15,0,-35]) intersector();
translate([-7.5,0,-17.5]) rotate([0,30,0]) line();
translate([7.5,0,-17.5]) rotate([0,-30,0]) line();
}
translate([30,0,-40]) {
holes();
translate([-10,0,-35]) holeA();
translate([10,0,-35]) holeB();
translate([30,0,-35]) holeC();
translate([5,0,-17.5]) rotate([0,-20,0]) line();
translate([-5,0,-17.5]) rotate([0,30,0]) line();
translate([15,0,-17.5]) rotate([0,-45,0]) line();
}
translate([-20,0,-22.5]) rotate([0,45,0]) line();
translate([20,0,-22.5]) rotate([0,-45,0]) line();
}
}
echo(version=version());
// Written by Marius Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

32
examples/Basics/CSG.scad Normal file
View File

@ -0,0 +1,32 @@
// CSG.scad - Basic example of CSG usage
translate([-24,0,0]) {
union() {
cube(15, center=true);
sphere(10);
}
}
intersection() {
cube(15, center=true);
sphere(10);
}
translate([24,0,0]) {
difference() {
cube(15, center=true);
sphere(10);
}
}
echo(version=version());
// Written by Marius Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,34 @@
// LetterBlock.scad - Basic usage of text() and linear_extrude()
// Module instantiation
LetterBlock("M");
// Module definition.
// size=30 defines an optional parameter with a default value.
module LetterBlock(letter, size=30) {
difference() {
translate([0,0,size/4]) cube([size,size,size/2], center=true);
translate([0,0,size/6]) {
// convexity is needed for correct preview
// since characters can be highly concave
linear_extrude(height=size, convexity=4)
text(letter,
size=size*22/30,
font="Bitstream Vera Sans",
halign="center",
valign="center");
}
}
}
echo(version=version());
// Written by Marius Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,36 @@
echo(version=version());
// simple 2D -> 3D extrusion of a rectangle
color("red")
translate([0, -30, 0])
linear_extrude(height = 20)
square([20, 10], center = true);
// using the scale parameter a frustum can be constructed
color("green")
translate([-30, 0, 0])
linear_extrude(height = 20, scale = 0.2)
square([20, 10], center = true);
// with twist the extruded shape will rotate around the Z axis
color("cyan")
translate([30, 0, 0])
linear_extrude(height = 20, twist = 90)
square([20, 10], center = true);
// combining both relatively complex shapes can be created
color("gray")
translate([0, 30, 0])
linear_extrude(height = 40, twist = -360, scale = 0, center = true, slices = 200)
square([20, 10], center = true);
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

35
examples/Basics/logo.scad Normal file
View File

@ -0,0 +1,35 @@
// logo.scad - Basic example of module, top-level variable and $fn usage
Logo(50);
// The $fn parameter will influence all objects inside this module
// It can, optionally, be overridden when instantiating the module
module Logo(size=50, $fn=100) {
// Temporary variables
hole = size/2;
cylinderHeight = size * 1.25;
// One positive object (sphere) and three negative objects (cylinders)
difference() {
sphere(d=size);
cylinder(d=hole, h=cylinderHeight, center=true);
// The '#' operator highlights the object
#rotate([90, 0, 0]) cylinder(d=hole, h=cylinderHeight, center=true);
rotate([0, 90, 0]) cylinder(d=hole, h=cylinderHeight, center=true);
}
}
echo(version=version());
// Written by Clifford Wolf <clifford@clifford.at> and Marius
// Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,42 @@
// logo_and_text.scad - Example for use<> and text()
use <logo.scad> // Imports the Logo() module from logo.scad into this namespace
// Set the initial viewport parameters
$vpr = [90, 0, 0];
$vpt = [250, 0, 80];
$vpd = 500;
logosize = 120;
translate([110, 0, 80]) {
translate([0, 0, 30]) rotate([25, 25, -40]) Logo(logosize);
translate([100, 0, 40]) green() t("Open", 42, ":style=Bold");
translate([247, 0, 40]) black() t("SCAD", 42, ":style=Bold");
translate([100, 0, 0]) black() t("The Programmers");
translate([160, 0, -30]) black() t("Solid 3D CAD Modeller");
}
// Helper to create 3D text with correct font and orientation
module t(t, s = 18, style = "") {
rotate([90, 0, 0])
linear_extrude(height = 1)
text(t, size = s, font = str("Liberation Sans", style), $fn = 16);
}
// Color helpers
module green() color([81/255, 142/255, 4/255]) children();
module black() color([0, 0, 0]) children();
echo(version=version());
// Written in 2014 by Torsten Paul <Torsten.Paul@gmx.de>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,64 @@
echo(version=version());
%import("projection.stl");
// projection() without the cut = true parameter will project
// the outline of the object onto the X/Y plane. The result is
// a 2D shape.
color("red")
translate([0, 0, -20])
linear_extrude(height = 2, center = true)
difference() {
square(30, center = true);
projection()
import("projection.stl");
}
color("green")
rotate([0, 90, 0])
translate([0, 0, -20])
linear_extrude(height = 2, center = true)
difference() {
square(30, center = true);
projection()
rotate([0, 90, 0])
import("projection.stl");
}
color("cyan")
rotate([-90, 0, 0])
translate([0, 0, 20])
linear_extrude(height = 2, center = true)
difference() {
square(30, center = true);
projection()
rotate([90, 0, 0])
import("projection.stl");
}
// Including the cut = true uses the outline of the cut at
// the X/Y plane.at Z = 0. This can make internal features
// of the model visible.
color("yellow", 0.5)
translate([0, 0, 20])
linear_extrude(height = 2, center = true)
difference() {
square(30, center = true);
projection(cut = true)
import("projection.stl");
}
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

29122
examples/Basics/projection.stl Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,35 @@
echo(version=version());
// rotate_extrude() always rotates the 2D shape 360 degrees
// around the Z axis. Note that the 2D shape must be either
// completely on the positive or negative side of the X axis.
color("red")
rotate_extrude()
translate([10, 0])
square(5);
// rotate_extrude() uses the global $fn/$fa/$fs settings, but
// it's possible to give a different value as parameter.
color("cyan")
translate([40, 0, 0])
rotate_extrude($fn = 80)
text(" J");
// Using a shape that touches the X axis is allowed and produces
// 3D objects that don't have a hole in the center.
color("green")
translate([0, 30, 0])
rotate_extrude($fn = 80)
polygon( points=[[0,0],[8,4],[4,8],[4,12],[12,16],[0,20]] );
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,51 @@
// text_on_cube.scad - Example for text() usage in OpenSCAD
echo(version=version());
font = "Liberation Sans";
cube_size = 60;
letter_size = 50;
letter_height = 5;
o = cube_size / 2 - letter_height / 2;
module letter(l) {
// Use linear_extrude() to make the letters 3D objects as they
// are only 2D shapes when only using text()
linear_extrude(height = letter_height) {
text(l, size = letter_size, font = font, halign = "center", valign = "center", $fn = 16);
}
}
difference() {
union() {
color("gray") cube(cube_size, center = true);
translate([0, -o, 0]) rotate([90, 0, 0]) letter("C");
translate([o, 0, 0]) rotate([90, 0, 90]) letter("U");
translate([0, o, 0]) rotate([90, 0, 180]) letter("B");
translate([-o, 0, 0]) rotate([90, 0, -90]) letter("E");
}
// Put some symbols on top and bottom using symbols from the
// Unicode symbols table.
// (see https://en.wikipedia.org/wiki/Miscellaneous_Symbols)
//
// Note that depending on the font used, not all the symbols
// are actually available.
translate([0, 0, o]) letter("\u263A");
translate([0, 0, -o - letter_height]) letter("\u263C");
}
// Written in 2014 by Torsten Paul <Torsten.Paul@gmx.de>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

121
examples/COPYING-CC0.txt Normal file
View File

@ -0,0 +1,121 @@
Creative Commons Legal Code
CC0 1.0 Universal
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
HEREUNDER.
Statement of Purpose
The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below) upon the creator
and subsequent owner(s) (each and all, an "owner") of an original work of
authorship and/or a database (each, a "Work").
Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons") that the public can reliably and without fear
of later claims of infringement build upon, modify, incorporate in other
works, reuse and redistribute as freely as possible in any form whatsoever
and for any purposes, including without limitation commercial purposes.
These owners may contribute to the Commons to promote the ideal of a free
culture and the further production of creative, cultural and scientific
works, or to gain reputation or greater distribution for their Work in
part through the use and efforts of others.
For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
is an owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under its
terms, with knowledge of his or her Copyright and Related Rights in the
Work and the meaning and intended legal effect of CC0 on those rights.
1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights"). Copyright and Related Rights include, but are not
limited to, the following:
i. the right to reproduce, adapt, distribute, perform, display,
communicate, and translate a Work;
ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or
likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work,
subject to the limitations in paragraph 4(a), below;
v. rights protecting the extraction, dissemination, use and reuse of data
in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of the
European Parliament and of the Council of 11 March 1996 on the legal
protection of databases, and under any national implementation
thereof, including any amended or successor version of such
directive); and
vii. other similar, equivalent or corresponding rights throughout the
world based on applicable law or treaty, and any national
implementations thereof.
2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and surrenders all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action), in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or future
medium and for any number of copies, and (iv) for any purpose whatsoever,
including without limitation commercial, advertising or promotional
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
member of the public at large and to the detriment of Affirmer's heirs and
successors, fully intending that such Waiver shall not be subject to
revocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.
3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i) in all territories worldwide, (ii) for the
maximum duration provided by applicable law or treaty (including future
time extensions), (iii) in any current or future medium and for any number
of copies, and (iv) for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
"License"). The License shall be deemed effective as of the date CC0 was
applied by Affirmer to the Work. Should any part of the License for any
reason be judged legally invalid or ineffective under applicable law, such
partial invalidity or ineffectiveness shall not invalidate the remainder
of the License, and in such case Affirmer hereby affirms that he or she
will not (i) exercise any of his or her remaining Copyright and Related
Rights in the Work or (ii) assert any associated claims and causes of
action with respect to the Work, in either case contrary to Affirmer's
express Statement of Purpose.
4. Limitations and Disclaimers.
a. No trademark or patent rights held by Affirmer are waived, abandoned,
surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or
warranties of any kind concerning the Work, express, implied,
statutory or otherwise, including without limitation warranties of
title, merchantability, fitness for a particular purpose, non
infringement, or the absence of latent or other defects, accuracy, or
the present or absence of errors, whether or not discoverable, all to
the greatest extent permissible under applicable law.
c. Affirmer disclaims responsibility for clearing rights of other persons
that may apply to the Work or any use thereof, including without
limitation any person's Copyright and Related Rights in the Work.
Further, Affirmer disclaims responsibility for obtaining any necessary
consents, permissions or other rights required for any use of the
Work.
d. Affirmer understands and acknowledges that Creative Commons is not a
party to this document and has no duty or obligation with respect to
this CC0 or use of the Work.

View File

@ -0,0 +1,35 @@
echo(version=version());
// Functions can be defined to simplify code using lots of
// calculations.
// Simple example with a single function argument (which should
// be a number) and returning a number calculated based on that.
function f(x) = 0.5 * x + 1;
color("red")
for (a = [ -100 : 5 : 100 ])
translate([a, f(a), 0]) cube(2, center = true);
// Functions can call other functions and return complex values
// too. In this case a 3 element vector is returned which can
// be used as point in 3D space or as vector (in the mathematical
// meaning) for translations and other transformations.
function g(x) = [ 5 * x + 20, f(x) * f(x) - 50, 0 ];
color("green")
for (a = [ -200 : 10 : 200 ])
translate(g(a / 8)) sphere(1);
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,47 @@
// list_comprehensions.scad - Examples of list comprehension usage
// Basic list comprehension:
// Returns a 2D vertex per iteration of the for loop
// Note: subsequent assignments inside the for loop is allowed
module ngon(num, r) {
polygon([for (i=[0:num-1], a=i*360/num) [ r*cos(a), r*sin(a) ]]);
}
ngon(3, 10);
translate([20,0]) ngon(6, 8);
translate([36,0]) ngon(10, 6);
// More complex list comprehension:
// Similar to ngon(), but uses an inner function to calculate
// the vertices. the let() keyword allows assignment of temporary variables.
module rounded_ngon(num, r, rounding = 0) {
function v(a) = let (d = 360/num, v = floor((a+d/2)/d)*d) (r-rounding) * [cos(v), sin(v)];
polygon([for (a=[0:360-1]) v(a) + rounding*[cos(a),sin(a)]]);
}
translate([0,22]) rounded_ngon(3, 10, 5);
translate([20,22]) rounded_ngon(6, 8, 4);
translate([36,22]) rounded_ngon(10, 6, 3);
// Gear/star generator
// Uses a list comprehension taking a list of radii to generate a star shape
module star(num, radii) {
function r(a) = (floor(a / 10) % 2) ? 10 : 8;
polygon([for (i=[0:num-1], a=i*360/num, r=radii[i%len(radii)]) [ r*cos(a), r*sin(a) ]]);
}
translate([0,44]) star(20, [6,10]);
translate([20,44]) star(40, [6,8,8,6]);
translate([36,44]) star(30, [3,4,5,6,5,4]);
echo(version=version());
// Written by Marius Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,50 @@
// polygon_areas.scad: Another recursion example
// Draw all geometry
translate([0,20]) color("Red") text("Areas:", size=8, halign="center");
translate([-44,0]) shapeWithArea(3, 10);
translate([-22,0]) shapeWithArea(4, 10);
translate([0,0]) shapeWithArea(6, 10);
translate([22,0]) shapeWithArea(10, 10);
translate([44,0]) shapeWithArea(360, 10);
// One shape with corresponding text
module shapeWithArea(num, r) {
polygon(ngon(num, r));
translate([0,-20])
color("Cyan")
text(str(round(area(ngon(num, r)))), halign="center", size=8);
}
// Simple list comprehension for creating N-gon vertices
function ngon(num, r) =
[for (i=[0:num-1], a=i*360/num) [ r*cos(a), r*sin(a) ]];
// Area of a triangle with the 3rd vertex in the origin
function triarea(v0, v1) = cross(v0, v1) / 2;
// Area of a polygon using the Shoelace formula
function area(vertices) =
let (areas = [let (num=len(vertices))
for (i=[0:num-1])
triarea(vertices[i], vertices[(i+1)%num])
])
sum(areas);
// Recursive helper function: Sums all values in a list.
// In this case, sum all partial areas into the final area.
function sum(values,s=0) =
s == len(values) - 1 ? values[s] : values[s] + sum(values,s+1);
echo(version=version());
// Written in 2015 by Marius Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,25 @@
// recursionscad: Basic recursion example
// Recursive functions are very powerful for calculating values.
// A good number of algorithms make use of recursive definitions,
// e.g the caluclation of the factorial of a number.
// The ternary operator " ? : " is the easiest way to define the
// termination condition.
// Note how the following simple implementation will never terminate
// when called with a negative value. This will produce an error after
// some time when OpenSCAD detects the endless recursive call.
function factorial(n) = n == 0 ? 1 : factorial(n - 1) * n;
color("cyan") text(str("6! = ", factorial(6)), halign = "center");
echo(version=version());
// Written in 2015 by Torsten Paul <Torsten.Paul@gmx.de>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,38 @@
module example001()
{
function r_from_dia(d) = d / 2;
module rotcy(rot, r, h) {
rotate(90, rot)
cylinder(r = r, h = h, center = true);
}
difference() {
sphere(r = r_from_dia(size));
rotcy([0, 0, 0], cy_r, cy_h);
rotcy([1, 0, 0], cy_r, cy_h);
rotcy([0, 1, 0], cy_r, cy_h);
}
size = 50;
hole = 25;
cy_r = r_from_dia(hole);
cy_h = r_from_dia(size * 2.5);
}
echo(version=version());
example001();
// Written by Clifford Wolf <clifford@clifford.at> and Marius
// Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,36 @@
module example002()
{
intersection() {
difference() {
union() {
cube([30, 30, 30], center = true);
translate([0, 0, -25])
cube([15, 15, 50], center = true);
}
union() {
cube([50, 10, 10], center = true);
cube([10, 50, 10], center = true);
cube([10, 10, 50], center = true);
}
}
translate([0, 0, 5])
cylinder(h = 50, r1 = 20, r2 = 5, center = true);
}
}
echo(version=version());
example002();
// Written by Clifford Wolf <clifford@clifford.at> and Marius
// Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,33 @@
module example003()
{
difference() {
union() {
cube([30, 30, 30], center = true);
cube([40, 15, 15], center = true);
cube([15, 40, 15], center = true);
cube([15, 15, 40], center = true);
}
union() {
cube([50, 10, 10], center = true);
cube([10, 50, 10], center = true);
cube([10, 10, 50], center = true);
}
}
}
echo(version=version());
example003();
// Written by Clifford Wolf <clifford@clifford.at> and Marius
// Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,24 @@
module example004()
{
difference() {
cube(30, center = true);
sphere(20);
}
}
echo(version=version());
example004();
// Written by Clifford Wolf <clifford@clifford.at> and Marius
// Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,34 @@
module example005()
{
translate([0, 0, -120]) {
difference() {
cylinder(h = 50, r = 100);
translate([0, 0, 10]) cylinder(h = 50, r = 80);
translate([100, 0, 35]) cube(50, center = true);
}
for (i = [0:5]) {
echo(360*i/6, sin(360*i/6)*80, cos(360*i/6)*80);
translate([sin(360*i/6)*80, cos(360*i/6)*80, 0 ])
cylinder(h = 200, r=10);
}
translate([0, 0, 200])
cylinder(h = 80, r1 = 120, r2 = 0);
}
}
echo(version=version());
example005();
// Written by Clifford Wolf <clifford@clifford.at> and Marius
// Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,59 @@
module example006()
{
module edgeprofile()
{
render(convexity = 2) difference() {
cube([20, 20, 150], center = true);
translate([-10, -10, 0])
cylinder(h = 80, r = 10, center = true);
translate([-10, -10, +40])
sphere(r = 10);
translate([-10, -10, -40])
sphere(r = 10);
}
}
difference() {
cube(100, center = true);
for (rot = [ [0, 0, 0], [1, 0, 0], [0, 1, 0] ]) {
rotate(90, rot)
for (p = [[+1, +1, 0], [-1, +1, 90], [-1, -1, 180], [+1, -1, 270]]) {
translate([ p[0]*50, p[1]*50, 0 ])
rotate(p[2], [0, 0, 1])
edgeprofile();
}
}
for (i = [
[ 0, 0, [ [0, 0] ] ],
[ 90, 0, [ [-20, -20], [+20, +20] ] ],
[ 180, 0, [ [-20, -25], [-20, 0], [-20, +25], [+20, -25], [+20, 0], [+20, +25] ] ],
[ 270, 0, [ [0, 0], [-25, -25], [+25, -25], [-25, +25], [+25, +25] ] ],
[ 0, 90, [ [-25, -25], [0, 0], [+25, +25] ] ],
[ 0, -90, [ [-25, -25], [+25, -25], [-25, +25], [+25, +25] ] ]
]) {
rotate(i[0], [0, 0, 1])
rotate(i[1], [1, 0, 0])
translate([0, -50, 0])
for (j = i[2]) {
translate([j[0], 0, j[1]]) sphere(10);
}
}
}
}
echo(version=version());
example006();
// Written by Clifford Wolf <clifford@clifford.at> and Marius
// Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,70 @@
module cutout()
{
intersection() {
rotate(90, [1, 0, 0])
translate([0, 0, -50])
linear_extrude(height = 100, convexity = 1)
import(file = "example007.dxf", layer = "cutout1");
rotate(90, [0, 0, 1])
rotate(90, [1, 0, 0])
translate([0, 0, -50])
linear_extrude(height = 100, convexity = 2)
import(file = "example007.dxf", layer = "cutout2");
}
}
module clip()
{
difference() {
rotate_extrude(convexity = 3, $fn = 0, $fa = 12, $fs = 2) {
import(file = "example007.dxf", layer = "dorn");
}
for (r = [0, 90])
rotate(r, [0, 0, 1])
cutout();
}
}
module cutview()
{
difference() {
difference() {
translate([0, 0, -10]) clip();
rotate(20, [0, 0, 1])
rotate(-20, [0, 1, 0])
translate([18, 0, 0])
cube(30, center = true);
}
# render(convexity = 5) intersection() {
translate([0, 0, -10])
clip();
rotate(20, [0, 0, 1])
rotate(-20, [0, 1, 0])
translate([18, 0, 0])
cube(30, center = true);
}
}
}
echo(version=version());
translate([0, 0, -10]) clip();
// cutview();
// Written by Clifford Wolf <clifford@clifford.at> and Marius
// Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

View File

@ -0,0 +1,42 @@
echo(version=version());
difference() {
intersection() {
translate([ -25, -25, -25])
linear_extrude(height = 50, convexity = 3)
import(file = "example008.dxf", layer = "G");
rotate(90, [1, 0, 0])
translate([ -25, -125, -25])
linear_extrude(height = 50, convexity = 3)
import(file = "example008.dxf", layer = "E");
rotate(90, [0, 1, 0])
translate([ -125, -125, -25])
linear_extrude(height = 50, convexity = 3)
import(file = "example008.dxf", layer = "B");
}
intersection() {
translate([ -125, -25, -26])
linear_extrude(height = 52, convexity = 1)
import(file = "example008.dxf", layer = "X");
rotate(90, [0, 1, 0])
translate([ -125, -25, -26])
linear_extrude(height = 52, convexity = 1)
import(file = "example008.dxf", layer = "X");
}
}
// Written by Clifford Wolf <clifford@clifford.at> and Marius
// Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.

Some files were not shown because too many files have changed in this diff Show More