mirror of https://github.com/vitalif/openscad
Merge remote-tracking branch 'origin/master' into launchingscreen
commit
72c6982f85
|
@ -2,8 +2,10 @@
|
|||
// (c) 2014 Torsten Paul
|
||||
// CC-BY-SA 4.0
|
||||
|
||||
$vpr = [0, 0, 0];
|
||||
$vpt = [-250, 0, -80];
|
||||
echo(version=version());
|
||||
|
||||
$vpr = [90, 0, 0];
|
||||
$vpt = [250, 0, 80];
|
||||
$vpd = 500;
|
||||
|
||||
r = 60;
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
// (c) 2014 Torsten Paul
|
||||
// CC-BY-SA 4.0
|
||||
|
||||
echo(version=version());
|
||||
|
||||
font = "Liberation Sans";
|
||||
|
||||
cube_size = 60;
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
**Language Features:**
|
||||
* surface() can now take PNG images as input
|
||||
* List comprehensions, let()
|
||||
* text() module
|
||||
* offset()
|
||||
* min() and max() can now take a wvector argument
|
||||
* concat()
|
||||
* 2D minkowski and holes
|
||||
|
||||
**Program Features:**
|
||||
* Added --viewall cmd-line parameter
|
||||
* MDI
|
||||
* FIXME: Windows cmd-line fixes
|
||||
* Qt5, retina
|
||||
* SVG import/export
|
||||
* AMF import/export
|
||||
|
||||
**Bugfixes/improvements:**
|
||||
* Internal cavity fix
|
||||
* Performance: 2D (clipper), preview, hull, minkowski, surface, n-ary-union, transforms (polyset)
|
||||
* Performance: Reduce duplicate evaluation of identical expressions
|
||||
* STL export/import fixes
|
||||
* F6 stability fixes
|
||||
* Better recursion behavior
|
||||
* Reorganized examples a bit
|
||||
* improved search() behavior
|
||||
* Mac: Timestamps is output fixed
|
||||
|
||||
**Deprecations:**
|
||||
* polyhedron triangles
|
||||
|
||||
**Misc:**
|
||||
|
|
@ -41,15 +41,6 @@ printUsage()
|
|||
echo " -d Build for deployment"
|
||||
}
|
||||
|
||||
create_dummy_cmd()
|
||||
{
|
||||
cmd="$1"
|
||||
file="$2"
|
||||
|
||||
echo "$cmd" > "$file"
|
||||
chmod 755 "$file"
|
||||
}
|
||||
|
||||
patch_qt_disable_core_wlan()
|
||||
{
|
||||
version="$1"
|
||||
|
@ -110,12 +101,18 @@ build_qt()
|
|||
;;
|
||||
esac
|
||||
./configure -prefix $DEPLOYDIR -release $QT_32BIT -arch x86_64 -opensource -confirm-license $PLATFORM -fast -no-qt3support -no-svg -no-phonon -no-audio-backend -no-multimedia -no-javascript-jit -no-script -no-scripttools -no-declarative -no-xmlpatterns -nomake demos -nomake examples -nomake docs -nomake translations -no-webkit $MACOSX_RELEASE_OPTIONS
|
||||
make -j6 install
|
||||
make -j"$NUMCPU" install
|
||||
}
|
||||
|
||||
build_qt5()
|
||||
{
|
||||
version=$1
|
||||
|
||||
if [ -d $DEPLOYDIR/lib/QtCore.framework ]; then
|
||||
echo "Qt5 already installed. not building"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Building Qt" $version "..."
|
||||
cd $BASEDIR/src
|
||||
v=(${version//./ }) # Split into array
|
||||
|
@ -125,8 +122,15 @@ build_qt5()
|
|||
fi
|
||||
tar xzf qt-everywhere-opensource-src-$version.tar.gz
|
||||
cd qt-everywhere-opensource-src-$version
|
||||
./configure -prefix $DEPLOYDIR -release -opensource -confirm-license -nomake examples -nomake tests -no-xcb -no-c++11 -no-glib
|
||||
make -j6 install
|
||||
./configure -prefix $DEPLOYDIR -release -opensource -confirm-license \
|
||||
-nomake examples -nomake tests \
|
||||
-no-xcb -no-c++11 -no-glib -no-harfbuzz -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc \
|
||||
-no-sql-psql -no-sql-sqlite2 -no-sql-tds -no-cups -no-qml-debug \
|
||||
-skip activeqt -skip connectivity -skip declarative -skip doc \
|
||||
-skip enginio -skip graphicaleffects -skip location -skip multimedia \
|
||||
-skip quick1 -skip quickcontrols -skip script -skip sensors -skip serialport \
|
||||
-skip svg -skip webkit -skip webkit-examples -skip websockets -skip xmlpatterns
|
||||
make -j"$NUMCPU" install
|
||||
}
|
||||
|
||||
# Hack warning: gmplib is built separately in 32-bit and 64-bit mode
|
||||
|
@ -310,7 +314,7 @@ build_boost()
|
|||
BOOST_TOOLSET="toolset=clang"
|
||||
echo "using clang ;" >> tools/build/v2/user-config.jam
|
||||
fi
|
||||
./b2 -j6 -d+2 $BOOST_TOOLSET cflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64 $BOOST_EXTRA_FLAGS" linkflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64 $BOOST_EXTRA_FLAGS -headerpad_max_install_names" install
|
||||
./b2 -j"$NUMCPU" -d+2 $BOOST_TOOLSET cflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64 $BOOST_EXTRA_FLAGS" linkflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64 $BOOST_EXTRA_FLAGS -headerpad_max_install_names" install
|
||||
install_name_tool -id $DEPLOYDIR/lib/libboost_thread.dylib $DEPLOYDIR/lib/libboost_thread.dylib
|
||||
install_name_tool -change libboost_system.dylib $DEPLOYDIR/lib/libboost_system.dylib $DEPLOYDIR/lib/libboost_thread.dylib
|
||||
install_name_tool -change libboost_chrono.dylib $DEPLOYDIR/lib/libboost_chrono.dylib $DEPLOYDIR/lib/libboost_thread.dylib
|
||||
|
@ -354,7 +358,7 @@ build_cgal()
|
|||
CGAL_EXTRA_FLAGS=";i386"
|
||||
fi
|
||||
cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DGMP_INCLUDE_DIR=$DEPLOYDIR/include -DGMP_LIBRARIES=$DEPLOYDIR/lib/libgmp.dylib -DGMPXX_LIBRARIES=$DEPLOYDIR/lib/libgmpxx.dylib -DGMPXX_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_LIBRARIES=$DEPLOYDIR/lib/libmpfr.dylib -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DBUILD_SHARED_LIBS=TRUE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="x86_64$CGAL_EXTRA_FLAGS" -DBOOST_ROOT=$DEPLOYDIR -DBoost_USE_MULTITHREADED=false
|
||||
make -j4
|
||||
make -j"$NUMCPU" install
|
||||
make install
|
||||
install_name_tool -id $DEPLOYDIR/lib/libCGAL.dylib $DEPLOYDIR/lib/libCGAL.dylib
|
||||
install_name_tool -id $DEPLOYDIR/lib/libCGAL_Core.dylib $DEPLOYDIR/lib/libCGAL_Core.dylib
|
||||
|
@ -414,10 +418,6 @@ build_eigen()
|
|||
{
|
||||
version=$1
|
||||
|
||||
if [ -d $DEPLOYDIR/include/eigen2 ]; then
|
||||
echo "eigen2 already installed. not building"
|
||||
return
|
||||
fi
|
||||
if [ -d $DEPLOYDIR/include/eigen3 ]; then
|
||||
echo "eigen3 already installed. not building"
|
||||
return
|
||||
|
@ -431,7 +431,9 @@ build_eigen()
|
|||
if [ $version = "3.1.2" ]; then EIGENDIR=eigen-eigen-5097c01bcdc4;
|
||||
elif [ $version = "3.1.3" ]; then EIGENDIR=eigen-eigen-2249f9c22fe8;
|
||||
elif [ $version = "3.1.4" ]; then EIGENDIR=eigen-eigen-36bf2ceaf8f5;
|
||||
elif [ $version = "3.2.0" ]; then EIGENDIR=eigen-eigen-ffa86ffb5570; fi
|
||||
elif [ $version = "3.2.0" ]; then EIGENDIR=eigen-eigen-ffa86ffb5570;
|
||||
elif [ $version = "3.2.1" ]; then EIGENDIR=eigen-eigen-6b38706d90a9;
|
||||
fi
|
||||
|
||||
if [ $EIGENDIR = "none" ]; then
|
||||
echo Unknown eigen version. Please edit script.
|
||||
|
@ -452,7 +454,7 @@ build_eigen()
|
|||
EIGEN_EXTRA_FLAGS=";i386"
|
||||
fi
|
||||
cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DEIGEN_BUILD_LIB=ON -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="x86_64$EIGEN_EXTRA_FLAGS" ..
|
||||
make -j4
|
||||
make -j"$NUMCPU" install
|
||||
make install
|
||||
}
|
||||
|
||||
|
@ -487,6 +489,11 @@ build_freetype()
|
|||
version="$1"
|
||||
extra_config_flags="$2"
|
||||
|
||||
if [ -f $DEPLOYDIR/lib/libfreetype.dylib ]; then
|
||||
echo "freetype already installed. not building"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Building freetype $version..."
|
||||
cd "$BASEDIR"/src
|
||||
rm -rf "freetype-$version"
|
||||
|
@ -504,6 +511,11 @@ build_libxml2()
|
|||
{
|
||||
version="$1"
|
||||
|
||||
if [ -f $DEPLOYDIR/lib/libxml2.dylib ]; then
|
||||
echo "libxml2 already installed. not building"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Building libxml2 $version..."
|
||||
cd "$BASEDIR"/src
|
||||
rm -rf "libxml2-$version"
|
||||
|
@ -521,6 +533,11 @@ build_fontconfig()
|
|||
{
|
||||
version=$1
|
||||
|
||||
if [ -f $DEPLOYDIR/lib/libfontconfig.dylib ]; then
|
||||
echo "fontconfig already installed. not building"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Building fontconfig $version..."
|
||||
cd "$BASEDIR"/src
|
||||
rm -rf "fontconfig-$version"
|
||||
|
@ -540,6 +557,11 @@ build_libffi()
|
|||
{
|
||||
version="$1"
|
||||
|
||||
if [ -f $DEPLOYDIR/lib/libffi.dylib ]; then
|
||||
echo "libffi already installed. not building"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Building libffi $version..."
|
||||
cd "$BASEDIR"/src
|
||||
rm -rf "libffi-$version"
|
||||
|
@ -557,6 +579,11 @@ build_gettext()
|
|||
{
|
||||
version="$1"
|
||||
|
||||
if [ -f $DEPLOYDIR/lib/libgettextlib.dylib ]; then
|
||||
echo "gettext already installed. not building"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Building gettext $version..."
|
||||
cd "$BASEDIR"/src
|
||||
rm -rf "gettext-$version"
|
||||
|
@ -575,6 +602,11 @@ build_glib2()
|
|||
{
|
||||
version="$1"
|
||||
|
||||
if [ -f $DEPLOYDIR/lib/libglib-2.0.dylib ]; then
|
||||
echo "glib2 already installed. not building"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Building glib2 $version..."
|
||||
|
||||
cd "$BASEDIR"/src
|
||||
|
@ -597,6 +629,11 @@ build_ragel()
|
|||
{
|
||||
version=$1
|
||||
|
||||
if [ -f $DEPLOYDIR/bin/ragel ]; then
|
||||
echo "ragel already installed. not building"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Building ragel $version..."
|
||||
cd "$BASEDIR"/src
|
||||
rm -rf "ragel-$version"
|
||||
|
@ -616,6 +653,11 @@ build_harfbuzz()
|
|||
version=$1
|
||||
extra_config_flags="$2"
|
||||
|
||||
if [ -f $DEPLOYDIR/lib/libharfbuzz.dylib ]; then
|
||||
echo "harfbuzz already installed. not building"
|
||||
return
|
||||
fi
|
||||
|
||||
echo "Building harfbuzz $version..."
|
||||
cd "$BASEDIR"/src
|
||||
rm -rf "harfbuzz-$version"
|
||||
|
@ -693,6 +735,7 @@ echo "Building for $MAC_OSX_VERSION_MIN or later"
|
|||
|
||||
if [ ! $NUMCPU ]; then
|
||||
NUMCPU=$(sysctl -n hw.ncpu)
|
||||
echo "Setting number of CPUs to $NUMCPU"
|
||||
fi
|
||||
|
||||
if $OPTION_DEPLOY; then
|
||||
|
@ -710,9 +753,9 @@ fi
|
|||
|
||||
echo "Using basedir:" $BASEDIR
|
||||
mkdir -p $SRCDIR $DEPLOYDIR
|
||||
build_qt5 5.3.0
|
||||
build_qt5 5.3.1
|
||||
# NB! For eigen, also update the path in the function
|
||||
build_eigen 3.2.0
|
||||
build_eigen 3.2.1
|
||||
build_gmp 5.1.3
|
||||
build_mpfr 3.1.2
|
||||
build_boost 1.54.0
|
||||
|
@ -724,14 +767,12 @@ build_libffi 3.1
|
|||
build_glib2 2.40.0
|
||||
build_opencsg 1.3.2
|
||||
build_freetype 2.5.3 --without-png
|
||||
build_ragel 6.8
|
||||
build_harfbuzz 0.9.28 "--with-coretext=auto --with-glib=no"
|
||||
export FREETYPE_CFLAGS="-I$DEPLOYDIR/include -I$DEPLOYDIR/include/freetype2"
|
||||
export FREETYPE_LIBS="-L$DEPLOYDIR/lib -lfreetype"
|
||||
build_libxml2 2.9.1
|
||||
build_fontconfig 2.11.1
|
||||
build_ragel 6.8
|
||||
export PATH="$PATH:$DEPLOYDIR/bin"
|
||||
create_dummy_cmd "touch gtk-doc.make" "$DEPLOYDIR/bin/gtkdocize"
|
||||
if $OPTION_DEPLOY; then
|
||||
# build_sparkle andymatuschak 0ed83cf9f2eeb425d4fdd141c01a29d843970c20
|
||||
build_sparkle Cocoanetics 1e7dcb1a48b96d1a8c62100b5864bd50211cbae1
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
*
|
||||
*/
|
||||
|
||||
#include <QClipboard>
|
||||
#include <QSortFilterProxyModel>
|
||||
|
||||
#include "FontListDialog.h"
|
||||
|
@ -41,9 +42,12 @@ FontListDialog::~FontListDialog()
|
|||
{
|
||||
}
|
||||
|
||||
void FontListDialog::on_pasteButton_clicked()
|
||||
void FontListDialog::on_copyButton_clicked()
|
||||
{
|
||||
font_selected(selection);
|
||||
|
||||
QClipboard *clipboard = QApplication::clipboard();
|
||||
clipboard->setText(selection);
|
||||
}
|
||||
|
||||
void FontListDialog::on_filterLineEdit_textChanged(const QString &text)
|
||||
|
@ -54,7 +58,7 @@ void FontListDialog::on_filterLineEdit_textChanged(const QString &text)
|
|||
void FontListDialog::selection_changed(const QItemSelection ¤t, const QItemSelection &)
|
||||
{
|
||||
if (current.count() == 0) {
|
||||
pasteButton->setEnabled(false);
|
||||
copyButton->setEnabled(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -62,12 +66,12 @@ void FontListDialog::selection_changed(const QItemSelection ¤t, const QIte
|
|||
const QString name = model->item(idx.row(), 0)->text();
|
||||
const QString style = model->item(idx.row(), 1)->text();
|
||||
selection = QString("\"%1:style=%2\"").arg(name).arg(style);
|
||||
pasteButton->setEnabled(true);
|
||||
copyButton->setEnabled(true);
|
||||
}
|
||||
|
||||
void FontListDialog::update_font_list()
|
||||
{
|
||||
pasteButton->setEnabled(false);
|
||||
copyButton->setEnabled(false);
|
||||
|
||||
if (proxy) {
|
||||
delete proxy;
|
||||
|
|
|
@ -18,7 +18,7 @@ public:
|
|||
void update_font_list();
|
||||
|
||||
public slots:
|
||||
void on_pasteButton_clicked();
|
||||
void on_copyButton_clicked();
|
||||
void on_filterLineEdit_textChanged(const QString &);
|
||||
void selection_changed(const QItemSelection &, const QItemSelection &);
|
||||
|
||||
|
|
|
@ -34,12 +34,12 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item row="4" column="3">
|
||||
<widget class="QPushButton" name="pasteButton">
|
||||
<widget class="QPushButton" name="copyButton">
|
||||
<property name="toolTip">
|
||||
<string>Paste font selector to Editor Window</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Paste</string>
|
||||
<string>Copy to Clipboard</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -126,7 +126,7 @@ std::vector<const Geometry *> FreetypeRenderer::render(const FreetypeRenderer::P
|
|||
{
|
||||
FT_Face face;
|
||||
FT_Error error;
|
||||
DrawingCallback callback(params.fn);
|
||||
DrawingCallback callback(params.segments);
|
||||
|
||||
FontCache *cache = FontCache::instance();
|
||||
if (!cache->is_init_ok()) {
|
||||
|
|
|
@ -47,6 +47,15 @@ public:
|
|||
void set_fn(double fn) {
|
||||
this->fn = fn;
|
||||
}
|
||||
void set_fa(double fa) {
|
||||
this->fa = fa;
|
||||
}
|
||||
void set_fs(double fs) {
|
||||
this->fs = fs;
|
||||
}
|
||||
void set_segments(double segments) {
|
||||
this->segments = segments;
|
||||
}
|
||||
void set_text(std::string text) {
|
||||
this->text = text;
|
||||
}
|
||||
|
@ -79,10 +88,12 @@ public:
|
|||
<< "\", script = \"" << params.script
|
||||
<< "\", halign = \"" << params.halign
|
||||
<< "\", valign = \"" << params.valign
|
||||
<< "\", $fn = " << params.fn;
|
||||
<< "\", $fn = " << params.fn
|
||||
<< ", $fa = " << params.fa
|
||||
<< ", $fs = " << params.fs;
|
||||
}
|
||||
private:
|
||||
double size, spacing, fn;
|
||||
double size, spacing, fn, fa, fs, segments;
|
||||
std::string text, font, direction, language, script, halign, valign;
|
||||
|
||||
friend class FreetypeRenderer;
|
||||
|
|
|
@ -137,7 +137,6 @@ private slots:
|
|||
void compileEnded();
|
||||
|
||||
private slots:
|
||||
void pasteText(const QString text);
|
||||
void pasteViewportTranslation();
|
||||
void pasteViewportRotation();
|
||||
void hideEditor();
|
||||
|
|
|
@ -1316,12 +1316,6 @@ void MainWindow::pasteViewportTranslation()
|
|||
cursor.insertText(txt);
|
||||
}
|
||||
|
||||
void MainWindow::pasteText(const QString text)
|
||||
{
|
||||
QTextCursor cursor = editor->textCursor();
|
||||
cursor.insertText(text);
|
||||
}
|
||||
|
||||
void MainWindow::pasteViewportRotation()
|
||||
{
|
||||
QTextCursor cursor = editor->textCursor();
|
||||
|
@ -2366,7 +2360,6 @@ void MainWindow::helpFontInfo()
|
|||
{
|
||||
if (!this->font_list_dialog) {
|
||||
FontListDialog *dialog = new FontListDialog();
|
||||
connect(dialog, SIGNAL(font_selected(QString)), this, SLOT(pasteText(QString)));
|
||||
this->font_list_dialog = dialog;
|
||||
}
|
||||
this->font_list_dialog->update_font_list();
|
||||
|
|
|
@ -77,10 +77,11 @@ fs::path find_valid_path(const fs::path &sourcepath,
|
|||
const std::vector<std::string> *openfilenames)
|
||||
{
|
||||
if (boosty::is_absolute(localpath)) {
|
||||
if (check_valid(localpath, openfilenames)) return boosty::absolute(localpath);
|
||||
if (check_valid(localpath, openfilenames)) return boosty::canonical(localpath);
|
||||
}
|
||||
else {
|
||||
fs::path fpath = sourcepath / localpath;
|
||||
if (fs::exists(fpath)) fpath = boosty::canonical(fpath);
|
||||
if (check_valid(fpath, openfilenames)) return fpath;
|
||||
fpath = search_libs(localpath);
|
||||
if (!fpath.empty() && check_valid(fpath, openfilenames)) return fpath;
|
||||
|
|
11
src/text.cc
11
src/text.cc
|
@ -55,8 +55,12 @@ AbstractNode *TextModule::instantiate(const Context *ctx, const ModuleInstantiat
|
|||
c.setVariables(args, evalctx);
|
||||
|
||||
double fn = c.lookup_variable("$fn").toDouble();
|
||||
double fs = c.lookup_variable("$fs").toDouble();
|
||||
double fa = c.lookup_variable("$fa").toDouble();
|
||||
double fs = c.lookup_variable("$fs").toDouble();
|
||||
|
||||
node->params.set_fn(fn);
|
||||
node->params.set_fa(fa);
|
||||
node->params.set_fs(fs);
|
||||
|
||||
double size = lookup_double_variable_with_default(c, "size", 10.0);
|
||||
int segments = Calc::get_fragments_from_r(size, fn, fs, fa);
|
||||
|
@ -64,9 +68,10 @@ AbstractNode *TextModule::instantiate(const Context *ctx, const ModuleInstantiat
|
|||
// by using a fraction of the number of full circle segments
|
||||
// the resolution will be better matching the detail level of
|
||||
// other objects.
|
||||
int text_segments = std::max(((int)floor(segments / 6)) + 2, 2);
|
||||
int text_segments = std::max(((int)floor(segments / 8)) + 1, 2);
|
||||
|
||||
node->params.set_size(size);
|
||||
node->params.set_fn(text_segments);
|
||||
node->params.set_segments(text_segments);
|
||||
node->params.set_text(lookup_string_variable_with_default(c, "text", ""));
|
||||
node->params.set_spacing(lookup_double_variable_with_default(c, "spacing", 1.0));
|
||||
node->params.set_font(lookup_string_variable_with_default(c, "font", ""));
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
include <include-recursive-test.scad>
|
||||
include <../misc/include-recursive-test.scad>
|
||||
include <../../scad/misc/include-recursive-test.scad>
|
||||
|
||||
echo("INC");
|
|
@ -988,6 +988,7 @@ list(APPEND ECHO_FILES ${FUNCTION_FILES}
|
|||
${CMAKE_SOURCE_DIR}/../testdata/scad/misc/utf8-tests.scad
|
||||
${CMAKE_SOURCE_DIR}/../testdata/scad/misc/concat-tests.scad
|
||||
${CMAKE_SOURCE_DIR}/../testdata/scad/misc/include-tests.scad
|
||||
${CMAKE_SOURCE_DIR}/../testdata/scad/misc/include-recursive-test.scad
|
||||
${CMAKE_SOURCE_DIR}/../testdata/scad/bugs/empty-stl.scad)
|
||||
|
||||
list(APPEND DUMPTEST_FILES ${FEATURES_FILES})
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
group() {
|
||||
group();
|
||||
multmatrix([[1, 0, 0, 110], [0, 1, 0, 0], [0, 0, 1, 80], [0, 0, 0, 1]]) {
|
||||
multmatrix([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 30], [0, 0, 0, 1]]) {
|
||||
multmatrix([[0.69427204401, 0.71938369937, 0.02175826214, 0], [-0.58256341607, 0.57946619475, -0.56994630922, 0], [-0.42261826174, 0.38302222155, 0.82139380484, 0], [0, 0, 0, 1]]) {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
group() {
|
||||
group();
|
||||
difference() {
|
||||
union() {
|
||||
color([0.501961, 0.501961, 0.501961, 1]) {
|
||||
|
|
|
@ -7,7 +7,7 @@ group() {
|
|||
color([0, 0, 1, 1]) {
|
||||
square(size = [0.5, 20], center = false);
|
||||
}
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "top", $fn = 7);
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "top", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 10], [0, 1, 0, 40], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
color([1, 0, 0, 1]) {
|
||||
|
@ -16,7 +16,7 @@ group() {
|
|||
color([0, 0, 1, 1]) {
|
||||
square(size = [0.5, 20], center = false);
|
||||
}
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "center", $fn = 7);
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "center", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 10], [0, 1, 0, 70], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
color([1, 0, 0, 1]) {
|
||||
|
@ -25,7 +25,7 @@ group() {
|
|||
color([0, 0, 1, 1]) {
|
||||
square(size = [0.5, 20], center = false);
|
||||
}
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 10], [0, 1, 0, 100], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
color([1, 0, 0, 1]) {
|
||||
|
@ -34,7 +34,7 @@ group() {
|
|||
color([0, 0, 1, 1]) {
|
||||
square(size = [0.5, 20], center = false);
|
||||
}
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "bottom", $fn = 7);
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "bottom", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
}
|
||||
group() {
|
||||
|
@ -45,7 +45,7 @@ group() {
|
|||
color([0, 0, 1, 1]) {
|
||||
square(size = [0.5, 20], center = false);
|
||||
}
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 249.2], [0, 1, 0, 40], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
color([1, 0, 0, 1]) {
|
||||
|
@ -54,7 +54,7 @@ group() {
|
|||
color([0, 0, 1, 1]) {
|
||||
square(size = [0.5, 20], center = false);
|
||||
}
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 316.1], [0, 1, 0, 70], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
color([1, 0, 0, 1]) {
|
||||
|
@ -63,7 +63,7 @@ group() {
|
|||
color([0, 0, 1, 1]) {
|
||||
square(size = [0.5, 20], center = false);
|
||||
}
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "right", valign = "baseline", $fn = 7);
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "right", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
group() {
|
||||
text(text = "Å", size = 40, spacing = 1, font = "Liberation Sans", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
|
||||
text(text = "Å", size = 40, spacing = 1, font = "Liberation Sans", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ group() {
|
|||
color([0, 0, 1, 1]) {
|
||||
square(size = [0.5, 20], center = false);
|
||||
}
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltl", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltl", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 90], [0, 1, 0, 60], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
color([1, 0, 0, 1]) {
|
||||
|
@ -16,7 +16,7 @@ group() {
|
|||
color([0, 0, 1, 1]) {
|
||||
square(size = [0.5, 20], center = false);
|
||||
}
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "rtl", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "rtl", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 10], [0, 1, 0, 160], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
color([1, 0, 0, 1]) {
|
||||
|
@ -25,7 +25,7 @@ group() {
|
|||
color([0, 0, 1, 1]) {
|
||||
square(size = [0.5, 20], center = false);
|
||||
}
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ttb", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ttb", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 60], [0, 1, 0, 140], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
color([1, 0, 0, 1]) {
|
||||
|
@ -34,7 +34,7 @@ group() {
|
|||
color([0, 0, 1, 1]) {
|
||||
square(size = [0.5, 20], center = false);
|
||||
}
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "btt", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "btt", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
group() {
|
||||
text(text = "T-X-U", size = 40, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 2);
|
||||
text(text = "T-X-U", size = 40, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 2, $fa = 12, $fs = 2);
|
||||
}
|
||||
|
|
|
@ -2,35 +2,35 @@ group() {
|
|||
group() {
|
||||
group() {
|
||||
multmatrix([[1, 0, 0, -180], [0, 1, 0, 10], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
text(text = "0123", size = 40, spacing = 1, font = "MarVoSym", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
|
||||
text(text = "0123", size = 40, spacing = 1, font = "MarVoSym", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, -180], [0, 1, 0, 70], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
text(text = "ABCD", size = 40, spacing = 1, font = "MarVoSym", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
|
||||
text(text = "ABCD", size = 40, spacing = 1, font = "MarVoSym", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, -180], [0, 1, 0, 130], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
text(text = "abcd", size = 40, spacing = 1, font = "MarVoSym", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
|
||||
text(text = "abcd", size = 40, spacing = 1, font = "MarVoSym", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
}
|
||||
group() {
|
||||
multmatrix([[1, 0, 0, 0], [0, 1, 0, 10], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
text(text = "0123", size = 40, spacing = 1, font = "Amiri", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
|
||||
text(text = "0123", size = 40, spacing = 1, font = "Amiri", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 0], [0, 1, 0, 70], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
text(text = "ABCD", size = 40, spacing = 1, font = "Amiri", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
|
||||
text(text = "ABCD", size = 40, spacing = 1, font = "Amiri", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 0], [0, 1, 0, 130], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
text(text = "abcd", size = 40, spacing = 1, font = "Amiri", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
|
||||
text(text = "abcd", size = 40, spacing = 1, font = "Amiri", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
}
|
||||
group() {
|
||||
multmatrix([[1, 0, 0, 180], [0, 1, 0, 10], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
text(text = "0123", size = 40, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
|
||||
text(text = "0123", size = 40, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 180], [0, 1, 0, 70], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
text(text = "ABCD", size = 40, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
|
||||
text(text = "ABCD", size = 40, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 180], [0, 1, 0, 130], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
text(text = "abcd", size = 40, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 7);
|
||||
text(text = "abcd", size = 40, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "center", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,20 +1,20 @@
|
|||
group() {
|
||||
multmatrix([[0.70710678118, 0.5, -0.5, 0], [-0.70710678118, 0.5, -0.5, 0], [0, 0.70710678118, 0.70710678118, 0], [0, 0, 0, 1]]) {
|
||||
multmatrix([[1, 0, 0, 0], [0, 1, 0, 80], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
|
||||
text(text = "OpenSCAD", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 0], [0, 1, 0, 40], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
text(text = "الخط الأميري", size = 20, spacing = 1, font = "Amiri:style=Regular", direction = "rtl", language = "ar", script = "arabic", halign = "left", valign = "baseline", $fn = 7);
|
||||
text(text = "الخط الأميري", size = 20, spacing = 1, font = "Amiri:style=Regular", direction = "rtl", language = "ar", script = "arabic", halign = "left", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
text(text = "الخط الأميري", size = 20, spacing = 1, font = "Amiri:style=Regular", direction = "rtl", language = "ar", script = "arabic", halign = "left", valign = "baseline", $fn = 7);
|
||||
text(text = "الخط الأميري", size = 20, spacing = 1, font = "Amiri:style=Regular", direction = "rtl", language = "ar", script = "arabic", halign = "left", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
multmatrix([[1, 0, 0, 0], [0, 1, 0, -40], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
text(text = "типографика", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "ru", script = "latin", halign = "left", valign = "baseline", $fn = 7);
|
||||
text(text = "типографика", size = 20, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "ru", script = "latin", halign = "left", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 0], [0, 1, 0, -80], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
text(text = "positional", size = 30, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
|
||||
text(text = "positional", size = 30, spacing = 1, font = "Liberation Sans:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
multmatrix([[1, 0, 0, 0], [0, 1, 0, -100], [0, 0, 1, 0], [0, 0, 0, 1]]) {
|
||||
text(text = "parameters", size = 12, spacing = 1, font = "Amiri:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 7);
|
||||
text(text = "parameters", size = 12, spacing = 1, font = "Amiri:style=Regular", direction = "ltr", language = "en", script = "latin", halign = "left", valign = "baseline", $fn = 0, $fa = 12, $fs = 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
WARNING: Can't open include file 'include-recursive-test.scad'.
|
||||
WARNING: Can't open include file '../misc/include-recursive-test.scad'.
|
||||
WARNING: Can't open include file '../../scad/misc/include-recursive-test.scad'.
|
||||
WARNING: Can't open include file 'include-recursive-test.scad'.
|
||||
WARNING: Can't open include file '../misc/include-recursive-test.scad'.
|
||||
WARNING: Can't open include file '../../scad/misc/include-recursive-test.scad'.
|
||||
WARNING: Can't open include file 'include-recursive-test.scad'.
|
||||
WARNING: Can't open include file '../misc/include-recursive-test.scad'.
|
||||
WARNING: Can't open include file '../../scad/misc/include-recursive-test.scad'.
|
||||
ECHO: "INC"
|
||||
ECHO: "INC"
|
||||
ECHO: "INC"
|
||||
ECHO: "INC"
|
Loading…
Reference in New Issue