Merge remote-tracking branch 'origin/master' into launchingscreen

master
Marius Kintel 2014-08-13 15:08:09 -04:00
commit 72c6982f85
24 changed files with 189 additions and 77 deletions

View File

@ -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;

View File

@ -2,6 +2,8 @@
// (c) 2014 Torsten Paul
// CC-BY-SA 4.0
echo(version=version());
font = "Liberation Sans";
cube_size = 60;

33
releases/2014.QX.md Normal file
View File

@ -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:**

View File

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

View File

@ -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 &current, const QItemSelection &)
{
if (current.count() == 0) {
pasteButton->setEnabled(false);
copyButton->setEnabled(false);
return;
}
@ -62,12 +66,12 @@ void FontListDialog::selection_changed(const QItemSelection &current, 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;

View File

@ -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 &);

View File

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

View File

@ -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()) {

View File

@ -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;

View File

@ -137,7 +137,6 @@ private slots:
void compileEnded();
private slots:
void pasteText(const QString text);
void pasteViewportTranslation();
void pasteViewportRotation();
void hideEditor();

View File

@ -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();

View File

@ -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;

View File

@ -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", ""));

View File

@ -0,0 +1,5 @@
include <include-recursive-test.scad>
include <../misc/include-recursive-test.scad>
include <../../scad/misc/include-recursive-test.scad>
echo("INC");

View File

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

View File

@ -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]]) {

View File

@ -1,4 +1,5 @@
group() {
group();
difference() {
union() {
color([0.501961, 0.501961, 0.501961, 1]) {

View File

@ -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);
}
}
}

View File

@ -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);
}

View File

@ -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);
}
}
}

View File

@ -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);
}

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -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"