Compare commits

...

1942 commits

Author SHA1 Message Date
Marius Kintel
6f68c9fc9b Revert "Bump version to 2015.03-3"
This reverts commit 9d8e9b5679.
2016-02-23 02:01:51 -05:00
Marius Kintel
e243246298 Revert "Updated release date"
This reverts commit fb8b0509b9.
2016-02-23 02:01:22 -05:00
Marius Kintel
fb8b0509b9 Updated release date 2016-02-23 01:57:45 -05:00
Marius Kintel
d73ddc3161 #1588 Set SUFeedURL to fix Sparkle-related crash. add http download exception for now 2016-02-23 01:57:31 -05:00
Marius Kintel
9d8e9b5679 Bump version to 2015.03-3 2016-02-23 01:54:07 -05:00
Marius Kintel
e316bec7dc sync with master 2016-02-17 16:34:22 -05:00
Marius Kintel
7dd4c02e6d Revert "Bump version to 2015.03-3"
This reverts commit dc710c110f.
2016-02-17 16:27:58 -05:00
Marius Kintel
00af9cc12f Updated release notes 2016-02-17 16:16:22 -05:00
Marius Kintel
dc710c110f Bump version to 2015.03-3 2016-02-17 16:12:34 -05:00
Marius Kintel
cfdc3c71c2 Security update: Upgraded Sparkle to 1.13.1 2016-02-17 16:08:38 -05:00
Marius Kintel
57ab1796b2 #1491 Clarified sparkle-related license 2015-11-16 11:44:08 -05:00
Marius Kintel
5edef7ef86 sync with 2015.03-2 2015-11-16 00:32:53 -05:00
Marius Kintel
14cf51b9d1 Revert "Bumped version to 2015.03-2"
This reverts commit 1d56186111.
2015-11-16 00:12:02 -05:00
Marius Kintel
1d56186111 Bumped version to 2015.03-2 2015-11-16 00:11:43 -05:00
Marius Kintel
f22e688424 #1481 Make sure we start animation when Steps are updated 2015-11-16 00:10:22 -05:00
Marius Kintel
614f82f270 Added release notes for 2015.03-2 2015-11-15 20:02:22 -05:00
Marius Kintel
375eba5a1f Added release notes for 2015.03-1 2015-11-15 20:01:49 -05:00
Marius Kintel
b4f765f8a4 #669 Support libc++ in macosx-sanity-check 2015-11-15 02:41:33 -05:00
Marius Kintel
406a4906c5 Added support for @rpath 2015-11-15 02:40:40 -05:00
Marius Kintel
a7ee1f2bcd #1479 Be more robust when passed invalid value 2015-11-15 01:53:39 -05:00
Marius Kintel
9511a12eb4 bugfix: #1481 don't divide by zero 2015-11-15 01:35:21 -05:00
Hans L
e36d59bdbf Fix Z-fighting in Ortho view, Issue #1483 2015-11-13 12:04:57 -05:00
Marius Kintel
461388402f #1472 Another attempt at fixing; fix the iterator 2015-11-09 21:14:12 -05:00
Marius Kintel
3791cb8b6a #1472: Fixed infinite loop when passing NaN to for loops 2015-11-09 19:53:09 -05:00
Marius Kintel
888e81b3b1 #1472: Fixed infinite loop when passing NaN to for loops 2015-11-09 18:16:03 -05:00
Marius Kintel
5fe95c9793 Added echo OK 2015-11-09 18:15:53 -05:00
Marius Kintel
4ced104ef5 #1472 Added test case 2015-11-09 18:15:41 -05:00
Don Bright
71ab915a5f use boost cstdint.hpp, prevent "int32_t does not name a type" error on new gcc 2015-11-01 21:39:26 -05:00
Don
1a534f2589 add some updated notes on MXE cross build 2015-11-01 21:39:10 -05:00
Don
cc92ba5a80 updates to MXE/win cross-build. use mingw64.static build dir.
check for 'zip' command when building package. auto detect mxe in /opt/mxe
2015-11-01 21:38:53 -05:00
Marius Kintel
a3af70309c #452 2015.03 branch still uses separate executable for tests, causing some numbers to be output differently 2015-10-26 17:55:18 -04:00
don bright
e7434abe40 simplify documentation, for deeper knowledge people should follow urls 2015-10-26 15:57:46 -04:00
don bright
b0f42558fc remove extraneous space 2015-10-26 15:57:41 -04:00
don bright
a7aaec1376 improve documentation of number conversion function (again) 2015-10-26 15:57:35 -04:00
don bright
74f4818837 better documentation of number conversion function 2015-10-26 15:57:30 -04:00
don bright
c5f65e9146 add convenience search for openscad binary under openscad/bin/openscad 2015-10-26 15:57:13 -04:00
Don Bright
d69065792f update test results to match output verbiage 2015-10-26 15:55:37 -04:00
don bright
9faf28b6a0 convenience search of openscad gui binary, for test run 2015-10-26 15:55:21 -04:00
Don Bright
c6b49151cb add a few more tests for floating point rands() seeds, and expected results. 2015-10-26 15:50:26 -04:00
Don Bright
f47866ac2e add test results for rands() dealing with floating point seeds & infinite inputs 2015-10-26 15:50:21 -04:00
Don Bright
48177ff27c minor cleanup of unneeded code 2015-10-26 15:50:15 -04:00
Don Bright
7c62ecc49c add new tests for infinite inputs to rands() 2015-10-26 15:50:09 -04:00
Don Bright
9ce966edb8 rm my old hash, use awesome floating point hash from Python, include license 2015-10-26 15:50:04 -04:00
Don Bright
80cf0574e1 create better hash function for 64 double->32 bit unsigned int 2015-10-26 15:49:58 -04:00
Don Bright
829b53fb72 make rands() deal better with float input for seed, and inf input 2015-10-26 15:49:53 -04:00
Andrew Plumb
fba8130303 Manually removing WARNING echos. 2015-10-16 13:09:21 -04:00
Andrew Plumb
34c83f8ffa Manually removing WARNING echos. 2015-10-16 13:09:11 -04:00
Andrew Plumb
6f8bb211ff Found more search PRINTB warnings to remove
Conflicts:
	src/func.cc
2015-10-16 13:08:26 -04:00
Andrew Plumb
38436c36e4 Removing instead of just commenting out line. 2015-10-16 13:07:40 -04:00
Andrew Plumb
d380ba4b85 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-10-16 13:07:26 -04:00
Don Bright
c8e8f7299c add expected result of recursion-test-vector 2015-10-16 12:59:36 -04:00
Don Bright
686d66f0f9 add test for issue1407, recursion crash when vectors are parameters 2015-10-16 12:59:26 -04:00
Marius Kintel
38d80566b3 #1407 Minor Value vs. ValuePtr value/reference cleanup 2015-10-16 12:55:07 -04:00
Marius Kintel
fafd3e853f Refactored to let VectorValues use ValuePtr instead of Value, to avoid having to copy large vectors. Attempt to fix #1407
Conflicts:
	src/func.cc
2015-10-16 12:53:46 -04:00
Liam Marshall
fae761e9d2 Easier fix for 93925 (control.cc) 2015-10-16 12:51:38 -04:00
Liam Marshall
5d12761c68 Fix memory leak 93925 2015-10-16 12:51:20 -04:00
Marius Kintel
0edd05760e #1425 For backwards compatibility, revert calculation so that never reaches 1.0 2015-10-16 12:47:43 -04:00
Marius Kintel
53492199b0 #1425 Let the last animation frame correspond with =1.0, to allow people to design for a valid last frame. 2015-10-16 12:47:29 -04:00
Marius Kintel
c2ebb73f4d #1425 Correctly reset picture dump if anim steps were changed 2015-10-16 12:47:22 -04:00
Marius Kintel
2c42445a7e #1425 Implemented some improvements suggested by @DBramley 2015-09-04 12:40:40 -04:00
Marius Kintel
62984ec5dd Use integers for underlying frame counter. Fixes rounding issue #1425 2015-09-02 23:28:59 -04:00
Torsten Paul
8cd5fecfa1 Validate colors against CSS4 draft - add "RebeccaPurple". 2015-08-31 17:25:01 -04:00
Torsten Paul
2e34c8bdd1 Use QSaveFile (if available) to write designs to disk.
Always check the status of the QTextStream to catch problems like disk
full.
In addition QSaveFile can ensure the old file is not destroyed as it's
using a temporary file which is committed at the end by just renaming it
to the output file name.
2015-08-31 17:14:19 -04:00
Torsten Paul
9768a0adc9 Remove flattr icon and use styled link instead.
This change is mainly driven by Debian declaring the button non-free so
it must be removed when distributing OpenSCAD in Debian.
2015-08-31 17:06:32 -04:00
Torsten Paul
85aa71bb4b Ignore Inf/NaN parameters to linear_extrude() (fixes #1378). 2015-08-31 17:06:17 -04:00
chrysn
553fd90bd4 Change "Allow to open multiple documents" to "Allow opening"
This is for grammatical reasons. It is being discussed in
https://bugs.debian.org/795158, and "allowing" seems to be a correct
(not necessarily ideal, but not intrusive) solution.

Forwarded: no
2015-08-31 17:05:44 -04:00
chrysn
4abb4706c4 man page: Rephase colorscheme option to avoid problems with wrapping
The old version threw errors when formatted:

$ LC_ALL=en_US.UTF-8 MANROFFSEQ='' MANWIDTH=80 man --warnings -E UTF-8 -l -Tutf8 -Z ./doc/openscad.1 >/dev/null
<standard input>:85: warning [p 2, 4.7i, div `an-div', 0.0i]: cannot adjust line

This was discovered by lintian and reported as
'manpage-has-errors-from-man'.

Forwarded: no

Gbp-Pq: Name man-page-Rephase-colorscheme-option-to-avoid-problem.patch
2015-08-31 17:05:35 -04:00
chrysn
f2e67e985b Add keywords to the desktop file
Forwarded: no

Gbp-Pq: Name Add-keywords-to-the-desktop-file.patch
2015-08-31 17:05:25 -04:00
Chow Loong Jin
660c0ac736 Add hashbang to test_cmdline_tool.py
Forwarded: no

Gbp-Pq: Name Add-hashbang-to-test_cmdline_tool.py.patch
2015-08-31 17:05:19 -04:00
Torsten Paul
5ba29f07b7 Check for infinite double values when using values as index (fixes #1420).
On arm64 the integer constructor returns 0 for an input value of NaN. To
prevent this, index values are now checked against Inf/NaN and protected
against overflow using boost::numeric_cast.
2015-08-31 17:04:48 -04:00
Torsten Paul
9a6c229fc2 Use Debian7 dependencies for Linux Mint (fixes #1422). 2015-08-31 17:04:23 -04:00
Marius Kintel
e2b0b81be6 Catch RangeTest exception from clipper. Fixes #1410 2015-08-31 17:02:37 -04:00
Marius Kintel
95be0ebfe7 Handle dimensional errors in matrix multiplication, including undef values. Fixes #1356 2015-06-07 13:12:06 -04:00
Torsten Paul
3421ca117e Add more detailed installer information including version number. 2015-06-07 11:17:45 -04:00
Marius Kintel
3b4ec9173a Fix resource path search; the 'libraries' folder isn't always installed. Fixes #1342 2015-05-14 22:31:40 -04:00
Torsten Paul
a69b31a5d9 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-14 22:24:29 -04:00
Torsten Paul
41f6b85c4a 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-05-14 22:09:48 -04:00
Miro Hrončok
a1b5d3ec0b Czech translation: Add missing space 2015-05-04 15:03:50 -04:00
Marius Kintel
be7acf4ab2 Version splitting used wrong variable, causing version() to return [0,0,0]. Fixes #1329 2015-04-28 10:20:32 -04:00
Marius Kintel
2b9949fefd #1254 Backport some code to boost filesystem V2, for old RedHat version 2015-04-26 16:12:15 -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
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
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
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
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
Marius Kintel
b7a011d0f1 Merge branch 'issue1276' into 2015.03 2015-04-13 13:21:15 -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
Torsten Paul
b2b4695f21 Switch to MXE hosted in openscad github / branch openscad-snapshot-build. 2015-03-30 23:47:36 -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
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
5042d064b2 Reimplemented Replace All to work properly. Fixes #1264 2015-03-23 12:51:25 -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
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
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
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
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
b6558889b4 bugfix: Don't return a temporary string from exception::what 2015-02-10 18:59:11 -05:00
Marius Kintel
4b4f4386bb Be nice (and C++11 compatible) 2015-02-10 17:31:00 -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
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
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
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
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
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
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
a5a3d8f4cf Some minor cleanup 2014-06-10 00:14:45 -04:00
Marius Kintel
27a2be8411 Applied Oskar's libc++ patches from #828 to master 2014-06-09 23:36:24 -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
db22a0191a Merge pull request #827 from purcell/patch-1
[scad-mode] Improved package description
2014-06-07 17:54:01 -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
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
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
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
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
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
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
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
Tim V. Shaporev
b3a946bd92 fixup issue 593 2014-01-25 18:43:33 +04:00
Miro Hrončok
93bd4af052 Link to Travis builds from README 2013-12-24 12:50:25 +01:00
1848 changed files with 106953 additions and 9535 deletions

51
.gitignore vendored
View file

@ -1,22 +1,51 @@
/*.scad
*.dmg
*~
*.tar*
*.new
out.*
Makefile
objects
.gdbinit
/*.stl
/*.dxf
/lexer_lex.cpp
/parser_yacc.cpp
.qmake.stash
parser_yacc.h
/tmp
/OpenSCAD.app
*/#*#
/nbproject
/openscad
/tests/openscad_nogui
**/#*#
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
/OpenSCAD.app
/openscad.pro.user
/openscad
/locale/*/*/*.mo
/locale/*.mo
/locale/POTFILES
/tmp
/nbproject
/mingw32
/mingw64
src/*.org
src/*.old
src/*.debug

View file

@ -2,16 +2,88 @@ 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 libeigen2-dev libeigen3-dev libcgal-dev libgmp3-dev libgmp-dev python-paramiko curl imagemagick
- 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
env: OPENSCAD_UPLOAD_TESTS=yes
- 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
script: ./scripts/travis-ci.sh
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>
@ -77,5 +82,15 @@
<string>OpenSCAD.sdef</string>
<key>SUPublicDSAKeyFile</key>
<string>dsa_pub.pem</string>
<key>SUFeedURL</key>
<string>http://files.openscad.org/appcast.xml</string>
<key>NSExceptionDomains</key>
<dict>
<key>files.openscad.org</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key><true/>
<key>NSExceptionRequiresForwardSecrecy</key><false/>
</dict>
</dict>
</dict>
</plist>

View file

@ -1,4 +1,6 @@
![Travis CI](https://api.travis-ci.org/openscad/openscad.png)
[![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)
@ -86,20 +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 (3.0 - 3.2)](http://eigen.tuxfamily.org/)
* [glib2 (2.2.0)](https://developer.gnome.org/glib/)
* [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/)
* [pkg-config (0.26)](http://www.freedesktop.org/wiki/Software/pkg-config/)
* [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
@ -117,26 +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) and [pkg-config](http://www.freedesktop.org/wiki/Software/pkg-config/),
both 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_mac-gcc.sh
Install Dependencies:
(or setenv_mac-clang.sh if you want to use the clang compiler instead of gcc).
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
@ -146,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:
@ -170,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
@ -212,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,247 +1,325 @@
OpenSCAD YYYY.MM
================
Language Features:
o Added diameter argument: circle(d), cylinder(d, d1, d2) and sphere(d)
o Added parent_module() and $parent_modules
o Added children() as a replacement for child()
o FIXME: Unicode support
o FIXME: Ranges with negative steps
o FIXME: Experimental concat()
# OpenSCAD 2015.03
Program Features:
o Added --info parameter to the cmd-line for system/library info
o Added --enable parameter to enable experimental features
o Added Reset View in GUI
o Added Feature tab in Preferences
## 2015.03-3
Bugfixes:
o polyhedron() is now much more robust handling almost planar polygons
o Automatic reloads of large designs are more robust
o Boolean logic in if() statements are now correctly short-circuited
o rands() with zero range caused an infinite loop
o resize(, auto=true) didn't work when shrinking objects
o The $children variable sometimes misbehaved due to dynamic scoping
o The --camera cmd-line option behaved differently then the corresponding GUI function
o PNG export now doesn't leak transparency settings into the target image
o Improved performance of OpenCSG (F5) compilation in some cases
o Some editor misbehaviors were fixed
o Stability fixes of CGAL-related crashes
**OS X only: Auto-update vulnerability fix**
Deprecations:
o child() is no longer supported. Use children() instead.
o polyhedron(triangles=[...]): Use polyhedron(faces=[...]) instead.
## 2015.03-2
Misc:
o We now use CGAL's EPEC kernel
o Additional output formats: .ast, .term, null (these are most useful for testing)
o Test framework now shares more code with the GUI app
o Test report can now be automatically uploaded to dinkypage.com
o Better compatibility with BSD systems
**Bugfixes**
* \#1483 - Fix Z-fighting in Ortho view
* \#1479 - No check for infinite $fn
* \#1472 - "nan" in list comprehension causes crash
* \#452 - rands() fails when the seed is a floating point number
* \#1407 - Recursive module crash
* \#1425 - Animate Filename Generation - Duplicate/Missing Filenames
* \#1420 - expression-evaluation-tests fails on arm64
* \#1410 - Crash when a polygon contains NaN
* \#1378 - Linear extrude plus infinite twist causes crash instead of just an error
* \#1358 - Add more detailed installer information including version number
* \#1356 - Crash when multiplying matrices with undefined elements
* \#1350 - Saving file when HD is full ends up in data loss
* \#1342 - Syntax Highlighting Does Not Work on Linux Mint 17.1
* \#1337 - Simple detection of script and direction based on given text
* \#1325 - Crash when polygons with > 3 indices turn out to be degenerate
* \#1329 - version() returned ```[0,0,0]```
OpenSCAD 2013.06
================
## 2015.03-1
Language Features:
o linear_extrude now takes a scale parameter:
**Bugfixes**
* \#1203 - Linux: Missing icons on Xfce
* \#1258 - Occasional crash when exporting STL
* \#1260 - Minimal window width too large
* \#1264 - Replace All sometimes caused a hang
* \#1274 - Fixed some preview bugs on Intel GPUs (OpenCSG 1.4.0)
* \#1276 - Module recursion sometimes caused a crash
* \#1277 - Automatic reload sometimes messed up camera position
* \#1284 - Animation flicker eliminated
* \#1294 - Support reproducible builds
* \#1317 - Normals vectors in STL were sometimes 0 0 0
## 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

@ -7,8 +7,9 @@
<item>
<title>OpenSCAD @VERSION@</title>
<pubDate>@VERSIONDATE@</pubDate>
<sparkle:releaseNotesLink>https://raw.github.com/openscad/openscad/master/RELEASE_NOTES</sparkle:releaseNotesLink>
<enclosure url="http://files.openscad.org/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,7 +7,8 @@
<item>
<title>OpenSCAD @VERSION@</title>
<pubDate>@VERSIONDATE@</pubDate>
<sparkle:releaseNotesLink>https://raw.github.com/openscad/openscad/openscad-@VERSION@/RELEASE_NOTES</sparkle:releaseNotesLink>
<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@"

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
}
}

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-vc110-mt-gd
} 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,18 @@
{
"name" : "BeforeDawn",
"index" : 1400,
"show-in-gui" : true,
"colors" : {
"background" : "#333333",
"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,18 @@
{
"name" : "DeepOcean",
"index" : 1600,
"show-in-gui" : true,
"colors" : {
"background" : "#333333",
"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,18 @@
{
"name" : "Metallic",
"index" : 1100,
"show-in-gui" : true,
"colors" : {
"background" : "#aaaaff",
"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,19 @@
{
"name" : "Monotone",
"index" : 9999,
"show-in-gui" : false,
"description" : "Color scheme with no difference between 'back face' and 'front face'",
"colors" : {
"background" : "#ffffe5",
"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,18 @@
{
"name" : "Nature",
"index" : 1500,
"show-in-gui" : true,
"colors" : {
"background" : "#fafafa",
"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,18 @@
{
"name" : "Solarized",
"index" : 1700,
"show-in-gui" : true,
"colors" : {
"background" : "#fdf6e3",
"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,18 @@
{
"name" : "Starnight",
"index" : 1300,
"show-in-gui" : true,
"colors" : {
"background" : "#000000",
"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,18 @@
{
"name" : "Sunset",
"index" : 1200,
"show-in-gui" : true,
"colors" : {
"background" : "#aa4444",
"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,18 @@
{
"name" : "Tomorrow Night",
"index" : 1900,
"show-in-gui" : true,
"colors" : {
"background" : "#1d1f21",
"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,18 @@
{
"name" : "Tomorrow",
"index" : 1800,
"show-in-gui" : true,
"colors" : {
"background" : "#f8f8f8",
"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

@ -12,4 +12,9 @@ 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)

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 --- Major mode for editing SCAD files
;; Author: Len Trigg
;; Maintainer: Len Trigg <lenbok@gmail.com>
;; Created: March 2010
;; Modified: 06 July 2012
;; Modified: 24 May 2014
;; 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
@ -143,6 +143,7 @@
(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)
@ -173,14 +174,24 @@
)
;; 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) " ")))))
(add-hook 'scad-mode-hook 'scad-prime-dabbrev)
;;; Indentation, based on http://www.emacswiki.org/emacs/download/actionscript-mode-haas-7.0.el
(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))))
(indent (max (scad-calculate-indentation) 0)))
(if savep
(save-excursion (indent-line-to indent))
(indent-line-to indent))))
@ -224,9 +235,9 @@
;; Don't count if in string or comment.
((scad-face-at-point (- (point) 1)))
((looking-back "\\s)")
(incf close-count))
(setq close-count (+ close-count 1)))
((looking-back "\\s(")
(incf open-count))
(setq open-count (+ open-count 1)))
)))
(- open-count close-count))))

Binary file not shown.

Binary file not shown.

259
doc/Python-LICENSE.txt Normal file
View file

@ -0,0 +1,259 @@
Part of OpenSCAD is copied from Python (linalg.cc/hash_floating_point()),
so the python license is included below.
----
A. HISTORY OF THE SOFTWARE
==========================
Python was created in the early 1990s by Guido van Rossum at Stichting
Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands
as a successor of a language called ABC. Guido remains Python's
principal author, although it includes many contributions from others.
In 1995, Guido continued his work on Python at the Corporation for
National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)
in Reston, Virginia where he released several versions of the
software.
In May 2000, Guido and the Python core development team moved to
BeOpen.com to form the BeOpen PythonLabs team. In October of the same
year, the PythonLabs team moved to Digital Creations (now Zope
Corporation, see http://www.zope.com). In 2001, the Python Software
Foundation (PSF, see http://www.python.org/psf/) was formed, a
non-profit organization created specifically to own Python-related
Intellectual Property. Zope Corporation is a sponsoring member of
the PSF.
All Python releases are Open Source (see http://www.opensource.org for
the Open Source Definition). Historically, most, but not all, Python
releases have also been GPL-compatible; the table below summarizes
the various releases.
Release Derived Year Owner GPL-
from compatible? (1)
0.9.0 thru 1.2 1991-1995 CWI yes
1.3 thru 1.5.2 1.2 1995-1999 CNRI yes
1.6 1.5.2 2000 CNRI no
2.0 1.6 2000 BeOpen.com no
1.6.1 1.6 2001 CNRI yes (2)
2.1 2.0+1.6.1 2001 PSF no
2.0.1 2.0+1.6.1 2001 PSF yes
2.1.1 2.1+2.0.1 2001 PSF yes
2.1.2 2.1.1 2002 PSF yes
2.1.3 2.1.2 2002 PSF yes
2.2 and above 2.1.1 2001-now PSF yes
Footnotes:
(1) GPL-compatible doesn't mean that we're distributing Python under
the GPL. All Python licenses, unlike the GPL, let you distribute
a modified version without making your changes open source. The
GPL-compatible licenses make it possible to combine Python with
other software that is released under the GPL; the others don't.
(2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
because its license has a choice of law clause. According to
CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
is "not incompatible" with the GPL.
Thanks to the many outside volunteers who have worked under Guido's
direction to make these releases possible.
B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
===============================================================
PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
--------------------------------------------
1. This LICENSE AGREEMENT is between the Python Software Foundation
("PSF"), and the Individual or Organization ("Licensee") accessing and
otherwise using this software ("Python") in source or binary form and
its associated documentation.
2. Subject to the terms and conditions of this License Agreement, PSF hereby
grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
analyze, test, perform and/or display publicly, prepare derivative works,
distribute, and otherwise use Python alone or in any derivative version,
provided, however, that PSF's License Agreement and PSF's notice of copyright,
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
2011, 2012, 2013, 2014, 2015 Python Software Foundation; All Rights Reserved"
are retained in Python alone or in any derivative version prepared by Licensee.
3. In the event Licensee prepares a derivative work that is based on
or incorporates Python or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python.
4. PSF is making Python available to Licensee on an "AS IS"
basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.
5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.
7. Nothing in this License Agreement shall be deemed to create any
relationship of agency, partnership, or joint venture between PSF and
Licensee. This License Agreement does not grant permission to use PSF
trademarks or trade name in a trademark sense to endorse or promote
products or services of Licensee, or any third party.
8. By copying, installing or otherwise using Python, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.
BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
-------------------------------------------
BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
Individual or Organization ("Licensee") accessing and otherwise using
this software in source or binary form and its associated
documentation ("the Software").
2. Subject to the terms and conditions of this BeOpen Python License
Agreement, BeOpen hereby grants Licensee a non-exclusive,
royalty-free, world-wide license to reproduce, analyze, test, perform
and/or display publicly, prepare derivative works, distribute, and
otherwise use the Software alone or in any derivative version,
provided, however, that the BeOpen Python License is retained in the
Software, alone or in any derivative version prepared by Licensee.
3. BeOpen is making the Software available to Licensee on an "AS IS"
basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.
4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
5. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.
6. This License Agreement shall be governed by and interpreted in all
respects by the law of the State of California, excluding conflict of
law provisions. Nothing in this License Agreement shall be deemed to
create any relationship of agency, partnership, or joint venture
between BeOpen and Licensee. This License Agreement does not grant
permission to use BeOpen trademarks or trade names in a trademark
sense to endorse or promote products or services of Licensee, or any
third party. As an exception, the "BeOpen Python" logos available at
http://www.pythonlabs.com/logos.html may be used according to the
permissions granted on that web page.
7. By copying, installing or otherwise using the software, Licensee
agrees to be bound by the terms and conditions of this License
Agreement.
CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
---------------------------------------
1. This LICENSE AGREEMENT is between the Corporation for National
Research Initiatives, having an office at 1895 Preston White Drive,
Reston, VA 20191 ("CNRI"), and the Individual or Organization
("Licensee") accessing and otherwise using Python 1.6.1 software in
source or binary form and its associated documentation.
2. Subject to the terms and conditions of this License Agreement, CNRI
hereby grants Licensee a nonexclusive, royalty-free, world-wide
license to reproduce, analyze, test, perform and/or display publicly,
prepare derivative works, distribute, and otherwise use Python 1.6.1
alone or in any derivative version, provided, however, that CNRI's
License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
1995-2001 Corporation for National Research Initiatives; All Rights
Reserved" are retained in Python 1.6.1 alone or in any derivative
version prepared by Licensee. Alternately, in lieu of CNRI's License
Agreement, Licensee may substitute the following text (omitting the
quotes): "Python 1.6.1 is made available subject to the terms and
conditions in CNRI's License Agreement. This Agreement together with
Python 1.6.1 may be located on the Internet using the following
unique, persistent identifier (known as a handle): 1895.22/1013. This
Agreement may also be obtained from a proxy server on the Internet
using the following URL: http://hdl.handle.net/1895.22/1013".
3. In the event Licensee prepares a derivative work that is based on
or incorporates Python 1.6.1 or any part thereof, and wants to make
the derivative work available to others as provided herein, then
Licensee hereby agrees to include in any such work a brief summary of
the changes made to Python 1.6.1.
4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
INFRINGE ANY THIRD PARTY RIGHTS.
5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
6. This License Agreement will automatically terminate upon a material
breach of its terms and conditions.
7. This License Agreement shall be governed by the federal
intellectual property law of the United States, including without
limitation the federal copyright law, and, to the extent such
U.S. federal law does not apply, by the law of the Commonwealth of
Virginia, excluding Virginia's conflict of law provisions.
Notwithstanding the foregoing, with regard to derivative works based
on Python 1.6.1 that incorporate non-separable material that was
previously distributed under the GNU General Public License (GPL), the
law of the Commonwealth of Virginia shall govern this License
Agreement only as to issues arising under or with respect to
Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
License Agreement shall be deemed to create any relationship of
agency, partnership, or joint venture between CNRI and Licensee. This
License Agreement does not grant permission to use CNRI trademarks or
trade name in a trademark sense to endorse or promote products or
services of Licensee, or any third party.
8. By clicking on the "ACCEPT" button where indicated, or by copying,
installing or otherwise using Python 1.6.1, Licensee agrees to be
bound by the terms and conditions of this License Agreement.
ACCEPT
CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
--------------------------------------------------
Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
The Netherlands. All rights reserved.
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose and without fee is hereby granted,
provided that the above copyright notice appear in all copies and that
both that copyright notice and this permission notice appear in
supporting documentation, and that the name of Stichting Mathematisch
Centrum or CWI not be used in advertising or publicity pertaining to
distribution of the software without specific, written prior
permission.
STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

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-06-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,9 @@ 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, 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
@ -46,12 +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.
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
@ -63,13 +69,24 @@ 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=\fIscheme
If exporting an image, use the specified color scheme for the rendering.
\fIscheme\fP can be any of \fBCornfield\fP, \fBSunset\fP, \fBMetallic\fP,
\fBStarnight\fP, \fBBeforeDawn\fP, \fBNature\fP or \fBDeepOcean\fP.
.TP
.B \-v, \-\-version
Show version of program.
.TP

View file

@ -0,0 +1,34 @@
Given:
VERSION (e.g. 2015.03-1)
o Make sure we have a $VERSION branch. If not, create one
o Update releases/$VERSION.md
o scripts/makereleasenotes.sh
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
o Upload Source package
$ scp openscad-$VERSION.src.tar.gz openscad@files.openscad.org:www
o Revert VERSION and VERSIONDATE in openscad.pro scripts/publish-macosx.sh scripts/release-common.sh scripts/publish-mingw-x.sh tests/CMakeLists.txt
o Announce:
- Write short release email to mailing list
- Tweet as OpenSCAD
- 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 of the main openscad binary and install MCAD.
See the main README.
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.
@ -39,6 +55,22 @@ $ ctest -C <configs> Adds extended tests belonging to configs.
Bugs - test known bugs (tests will fail)
All - test everything
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:
------------------
@ -65,23 +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
Migration away from dedicated regression tests:
-----------------------------------------------
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
Troubleshooting:
------------------------------
@ -131,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
@ -143,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