GithubHelp home page GithubHelp logo

k-3d / k3d Goto Github PK

View Code? Open in Web Editor NEW
197.0 23.0 51.0 52.61 MB

The main K-3D code repository

Home Page: http://www.k-3d.org/

License: GNU General Public License v2.0

C++ 79.14% Shell 0.01% CSS 0.04% Python 9.42% Tcl 0.11% C 2.82% Cuda 0.65% JavaScript 0.10% LiveScript 0.37% Slash 1.86% CMake 2.48% Batchfile 0.01% HTML 0.92% GLSL 0.01% Ruby 2.06%

k3d's Introduction

This is K-3D, the free-as-in-freedom 3D modeling, animation, and rendering system.

For instructions on building the project, refer to INSTALL, located within this directory.
The project is licensed under the GNU General Public License.  A copy of the license is
located in COPYING.  Contributors to the project are listed in the AUTHORS file.

For further information, visit the K-3D web site:

	http://www.k-3d.org

Thank You,
The K-3D Team

k3d's People

Contributors

adrianbunk avatar alexcurtis avatar barche avatar barraemme avatar dsmatthews avatar elezar avatar jormungardian avatar jwakely avatar ntfshard avatar sonnybonds avatar yurivict avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

k3d's Issues

k3dsdk/property_collection.cpp is missing #include <algorithm>

On my system (gcc 9.3.0 on Linux with glibc 2.30), compilation of both latest master (commit 17ef1bf) and the latest release 0.8.0.6 fails with an attempt to cast k3d::iproperty to const char * in k3dsdk/property_collection.cpp -- because GCC isn't seeing std::remove from and is instead finding the closest match of int remove(const char *) from stdio.h which is placed in the std namespace when #include'd via g++.

/tmp/SBo/k3d-k3d-0.8.0.6/k3dsdk/property_collection.cpp: In member function ‘virtual void k3d::property_collection::register_property(k3d::iproperty&)’:
/tmp/SBo/k3d-k3d-0.8.0.6/k3dsdk/property_collection.cpp:50:51: error: cannot convert ‘std::vector<k3d::iproperty*>::iterator’ {aka ‘__gnu_cxx::__normal_iterator<k3d::iproperty**, std::vector<k3d::iproperty*> >’} to ‘const char*’
   50 |  m_properties.erase(std::remove(m_properties.begin(), m_properties.end(), &Property), m_properties.end());
      |                                 ~~~~~~~~~~~~~~~~~~^~
      |                                                   |
      |                                                   std::vector<k3d::iproperty*>::iterator {aka __gnu_cxx::__normal_iterator<k3d::iproperty**, std::vector<k3d::iproperty*> >}
In file included from /usr/include/c++/9.3.0/cstdio:42,
                 from /usr/include/c++/9.3.0/ext/string_conversions.h:43,
                 from /usr/include/c++/9.3.0/bits/basic_string.h:6493,
                 from /usr/include/c++/9.3.0/string:55,
                 from /usr/include/c++/9.3.0/stdexcept:39,
                 from /usr/include/c++/9.3.0/array:39,
                 from /usr/include/c++/9.3.0/tuple:39,
                 from /usr/include/c++/9.3.0/functional:54,
                 from /usr/include/sigc++-2.0/sigc++/reference_wrapper.h:22,
                 from /usr/include/sigc++-2.0/sigc++/adaptors/bound_argument.h:24,
                 from /usr/include/sigc++-2.0/sigc++/adaptors/bind.h:6,
                 from /usr/include/sigc++-2.0/sigc++/adaptors/adaptors.h:23,
                 from /usr/include/sigc++-2.0/sigc++/sigc++.h:107,
                 from /tmp/SBo/k3d-k3d-0.8.0.6/k3dsdk/signal_system.h:23,
                 from /tmp/SBo/k3d-k3d-0.8.0.6/k3dsdk/iproperty.h:28,
                 from /tmp/SBo/k3d-k3d-0.8.0.6/k3dsdk/property_collection.cpp:24:
/usr/include/stdio.h:146:32: note:   initializing argument 1 of ‘int remove(const char*)’
  146 | extern int remove (const char *__filename) __THROW;
      |                    ~~~~~~~~~~~~^~~~~~~~~~

According to https://en.cppreference.com/w/cpp/algorithm/remove, #include needs to be added. Adding it fixes the compilation of this file.

Positioning of new objects

dlwatib on the forum:

When I create an object or duplicate it, K-3D insists on plunking it smack dab in the middle of whatever I'm working on instead of automatically putting me in move mode with the new object selected and migrating with my mouse cursor so that I can position it properly. This is especially obnoxious with duplicate since there is no visual feedback that the new object was created.

Launch default browser

The default browser seems to be no longer launched, the relevant plugins need updating.

An update for desktop file

Missing semicolon: Categories=Graphics;3DGraphics
Should be: Categories=GTK;Graphics;3DGraphics;

i18n:

[Desktop Entry]
Name=K-3D
GenericName=3D modeling and animation
GenericName[ru]=3D моделирование и визуализация данных
GenericName[cy]=Modelu ac animeiddio 3D
GenericName[et]=Ruumiline modelleerimine ja animeerimine
GenericName[he]=דגימה ואנימציה תלת-ממדית
GenericName[hu]=Háromdimenziós modellezés és animáció
GenericName[pl]=Modelowanie i animacja w 3D
GenericName[el]=Δημιουργία τρισδιάστατων μοντέλων και κινούμενων εικόνων
GenericName[af]=3D modellering en animasie
GenericName[ast]=Modelación y animación en 3D
GenericName[be]=Трохмернае мадэляваньне й анімацыя
GenericName[bg]=3D моделиране и анимация
GenericName[pt_BR]=Modelagem e animação em 3D
GenericName[ca]=Modelització i animació en 3D
GenericName[zh_HK]=3D 建模與動畫工具
GenericName[zh_TW]=3D 建模與動畫工具
GenericName[zh_CN]=三维建模和动画
GenericName[cs]=3D modelace a animace
GenericName[nl]=3D modellering en animatie
GenericName[fi]=3D-mallinnus ja -animaatio
GenericName[fr]=Modélisation et animation 3D
GenericName[gl]=Modelaxe e animación 3D
GenericName[de]=Dreidimensionales modellieren und animieren
GenericName[is]=Gerð líkana og hreyfimynda í þrívídd
GenericName[it]=Modellazione e animazione 3D
GenericName[ja]=3D モデリングとアニメーション
GenericName[lt]=3D modeliavimas ir animacija
GenericName[oc]=Modelizacion e animacion 3D
GenericName[pt]=Modelagem e animação em 3D
GenericName[ro]=Modelare și animație 3D
GenericName[sl]=3D modeliranje in animacija
GenericName[es]=Modelación y animación en 3D
GenericName[sv]=3d-modellering och -animering
GenericName[tr]=3B modelleme ve canlandırma
GenericName[uk]=Тривимірне моделювання та анімація
GenericName[vi]=Mô hình và hoạt hình ba chiều
Comment=3D modeling, animation and rendering system
Comment[ru]=3D моделирование, анимация, рендеринг, визуализация данных
Exec=k3d
Icon=/usr/share/k3d/icons/k3d.png
Terminal=false
Type=Application
StartupNotify=true
Categories=GTK;Graphics;3DGraphics;

Cannot compile ImageMagick module on Archlinux

Hello ,

during make got the following message

[ 37%] Generating ../../lib/k3d/plugins/k3d-imagemagick-io.module.proxy Loading plugin module /tmp/yaourt-tmp-enrico/aur-k3d-git/src/k3d-build/lib/k3d/plugins/k3d-imagemagick-io.module Module k3d-imagemagick-io.module: /tmp/yaourt-tmp-enrico/aur-k3d-git/src/k3d-build/lib/k3d/plugins/k3d-imagemagick-io.module: undefined symbol: _ZNK6Magick5Image4rowsEv

And with the make install it stops on

-- Set runtime path of "/tmp/yaourt-tmp-enrico/aur-k3d-git/pkg/k3d-git//usr/lib/k3d/plugins/k3d-imagemagick-io.module" to ""
CMake Error at modules/imagemagick_io/cmake_install.cmake:61 (file):
  file INSTALL cannot find
  "/tmp/yaourt-tmp-enrico/aur-k3d-git/src/k3d-build/lib/k3d/plugins/k3d-imagemagick-io.module.proxy".
Call Stack (most recent call first):
  modules/cmake_install.cmake:68 (include)
  cmake_install.cmake:51 (include)

Using

OS: Manjaro Linux x86_64
Host: MacBookPro8,1 1.0
Kernel: 4.9.77-1-MANJARO
Uptime: 3 days, 14 hours, 26 mins
Packages: 1741
Shell: zsh 5.4.2
Resolution: 1280x800
WM: i3
Theme: Arc-Maia-Dark [GTK2/3]
Icons: Vibrancy-Dark-Blue [GTK2/3]
Terminal: urxvtd
████████ ████████ ████████ Terminal Font: 9x15
CPU: Intel i5-2435M (4) @ 3.000GHz
GPU: Intel Sandybridge Mobile
Memory: 2653MiB / 15964MiB

Axis orientation in PolyCube

I created a Polycube of width=4m height=5m and depth=2m. I should have gotten a cube 5 units along the Z axis. Instead I got a cube with 5 units along the Y axis. This resulted in an invalid picture element.

Disabling gnome-vfs, using gvfs or glib/gio?

Hi,

In Debian we want to drop the dependency on gnome-vfs. As the following bug report discusses, perhaps it is possible to substitute it by gvfs or glib/gio?

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=868394

No gnome-vfs and gvfs are not compatible, but...

Quickly looking at the code k3d seems to only use gnome-vfs to identify
mime-types and start the default associated application, this
functionality is now provided by the glib/gio, see:

https://developer.gnome.org/gio/stable/GFileInfo.html
https://developer.gnome.org/gio/stable/gio-GContentType.html
https://developer.gnome.org/gio/stable/GAppInfo.html
https://developer.gnome.org/gio/stable/GAppInfo.html#g-app-info-launch-default-for-uri
https://stackoverflow.com/questions/1629172/how-do-you-get-the-icon-mime-type-and-application-associated-with-a-file-in-th/2170880#2170880
https://stackoverflow.com/questions/6143100/how-do-i-open-a-file-in-its-default-program-linux/11623712#11623712

Outdated "Welcome" message

Welcome to K-3D Version 0.8!

It's been a long time since our last official K-3D release - there have been many significant internal changes to K-3D, so some older documents may no longer work.

We're switching to a six-month release cycle for K-3D, so our next release will be in October, 2010.

We hope you enjoy using K-3D, and would love to see what you create!

Uninitialized variable

In the file: k3d/modules/annotation/annotation.cpp:142

We had expression: const k3d::point3 b = a + (0.05 * (b - a));

Could you please check this code. Thank you.

Problem when building against libglew 2.0.0

Hi,

Debian unstable just got a new version of GLEW, 2.0.0, and K-3D fails to build against it:

cd /«PKGBUILDDIR»/obj-aarch64-linux-gnu/k3dsdk && /usr/bin/c++   -DK3D_HAVE_EXPAT -DK3D_HAVE_SIGC_2_0 -Dk3dsdk_EXPORTS -I/«PKGBUILDDIR» -I/«PKGBUILDDIR»/obj-aarch64-linux-gnu/k3dsdk -I/«PKGBUILDDIR»/k3dsdk/gil -I/usr/include/glibmm-2.4 -I/usr/lib/aarch64-linux-gnu/glibmm-2.4/include -I/usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include -I/usr/include/sigc++-2.0 -I/usr/lib/aarch64-linux-gnu/sigc++-2.0/include  -g -O2 -fdebug-prefix-map=/«PKGBUILDDIR»=. -fPIE -fstack-protector-strong -Wformat -Werror=format-security -pipe -Wall -Wdate-time -D_FORTIFY_SOURCE=2 -frounding-math -Wdate-time -D_FORTIFY_SOURCE=2  -fPIC   -std=gnu++11 -o CMakeFiles/k3dsdk.dir/ustring.cpp.o -c /«PKGBUILDDIR»/k3dsdk/ustring.cpp
In file included from /«PKGBUILDDIR»/k3dsdk/type_registry.cpp:26:0:
/«PKGBUILDDIR»/k3dsdk/gl/context.h:50:9: error: 'GLEWContext' does not name a type
  static GLEWContext* current_glew_context();
         ^~~~~~~~~~~
/«PKGBUILDDIR»/k3dsdk/gl/context.h:56:2: error: 'GLEWContext' does not name a type
  GLEWContext* glew_context();
  ^~~~~~~~~~~
/«PKGBUILDDIR»/k3dsdk/gl/context.h:69:20: error: 'GLEWContext' was not declared in this scope
  boost::scoped_ptr<GLEWContext> m_glew_context;
                    ^~~~~~~~~~~
/«PKGBUILDDIR»/k3dsdk/gl/context.h:69:31: error: template argument 1 is invalid
  boost::scoped_ptr<GLEWContext> m_glew_context;
                               ^

Full log (for x86_64): https://buildd.debian.org/status/fetch.php?pkg=k3d&arch=arm64&ver=0.8.0.5-4%2Bb1&stamp=1473683749

I suspect that this involves fixing upstream not only for Debian but also other distros.

(Sorry that I didn't notice this before asking you to release a new version).

Clang-40 compillation errors

In file included from /usr/local/include/boost/gil/gil_all.hpp:26:
/usr/local/include/boost/gil/channel_algorithm.hpp:54:85: error: non-type template argument evaluates to -1, which cannot be narrowed to type 'unsigned long' [-Wc++11-narrowing]
struct unsigned_integral_max_value : public mpl::integral_c<UnsignedIntegralChannel,-1> {};
                                                                                    ^
/usr/local/include/boost/gil/channel_algorithm.hpp:204:19: note: in instantiation of template class 'boost::gil::detail::unsigned_integral_max_value<unsigned long>' requested here
        if (src > unsigned_integral_max_value<uintmax_t>::value - div2)
                  ^
In file included from /usr/ports/graphics/k3d/work/k3d-k3d-0.8.0.6/k3dsdk/utility_gl.cpp:37:
/usr/ports/graphics/k3d/work/k3d-k3d-0.8.0.6/k3dsdk/utility_gl.h:107:22: error: non-constant-expression cannot be narrowed from type 'k3d::basic_rgb<double, k3d::color_traits<k3d::double_t> >::sample_type' (aka 'double') to 'GLfloat' (aka 'float') in initializer list [-Wc++11-narrowing]
        GLfloat color[] = { Color.red, Color.green, Color.blue, Alpha };
                            ^~~~~~~~~
/usr/ports/graphics/k3d/work/k3d-k3d-0.8.0.6/k3dsdk/utility_gl.h:107:22: note: insert an explicit cast to silence this issue
        GLfloat color[] = { Color.red, Color.green, Color.blue, Alpha };
                            ^~~~~~~~~
                            static_cast<GLfloat>( )
/usr/ports/graphics/k3d/work/k3d-k3d-0.8.0.6/k3dsdk/utility_gl.h:107:33: error: non-constant-expression cannot be narrowed from type 'k3d::basic_rgb<double, k3d::color_traits<k3d::double_t> >::sample_type' (aka 'double') to 'GLfloat' (aka 'float') in initializer list [-Wc++11-narrowing]
        GLfloat color[] = { Color.red, Color.green, Color.blue, Alpha };
                                       ^~~~~~~~~~~
/usr/ports/graphics/k3d/work/k3d-k3d-0.8.0.6/k3dsdk/utility_gl.h:107:33: note: insert an explicit cast to silence this issue
        GLfloat color[] = { Color.red, Color.green, Color.blue, Alpha };
                                       ^~~~~~~~~~~
                                       static_cast<GLfloat>( )
/usr/ports/graphics/k3d/work/k3d-k3d-0.8.0.6/k3dsdk/utility_gl.h:107:46: error: non-constant-expression cannot be narrowed from type 'k3d::basic_rgb<double, k3d::color_traits<k3d::double_t> >::sample_type' (aka 'double') to 'GLfloat' (aka 'float') in initializer list [-Wc++11-narrowing]
        GLfloat color[] = { Color.red, Color.green, Color.blue, Alpha };
                                                    ^~~~~~~~~~
/usr/ports/graphics/k3d/work/k3d-k3d-0.8.0.6/k3dsdk/utility_gl.h:107:46: note: insert an explicit cast to silence this issue
        GLfloat color[] = { Color.red, Color.green, Color.blue, Alpha };
                                                    ^~~~~~~~~~
                                                    static_cast<GLfloat>( )
/usr/ports/graphics/k3d/work/k3d-k3d-0.8.0.6/k3dsdk/utility_gl.h:107:58: error: non-constant-expression cannot be narrowed from type 'double' to 'GLfloat' (aka 'float') in initializer list [-Wc++11-narrowing]
        GLfloat color[] = { Color.red, Color.green, Color.blue, Alpha };
                                                                ^~~~~
/usr/ports/graphics/k3d/work/k3d-k3d-0.8.0.6/k3dsdk/utility_gl.h:107:58: note: insert an explicit cast to silence this issue
        GLfloat color[] = { Color.red, Color.green, Color.blue, Alpha };
                                                                ^~~~~
                                                                static_cast<GLfloat>( )

Error compiling in linux

I got this compiling error in Linux

c++ (GCC) 10.2.0
libc 2.33

[ 8%] Building CXX object k3dsdk/CMakeFiles/k3dsdk.dir/primitive_validation.cpp.o
[ 8%] Building CXX object k3dsdk/CMakeFiles/k3dsdk.dir/property.cpp.o
[ 8%] Building CXX object k3dsdk/CMakeFiles/k3dsdk.dir/property_collection.cpp.o
/home/joilnen/k3d/k3dsdk/property_collection.cpp: In member function ‘virtual void k3d::property_collection::register_property(k3d::iproperty&)’:
/home/joilnen/k3d/k3dsdk/property_collection.cpp:50:51: error: cannot convert ‘std::vectork3d::iproperty*::iterator’ to ‘const char*’
50 | m_properties.erase(std::remove(m_properties.begin(), m_properties.end(), &Property), m_properties.end());
| ~~~~~~~~~~~~~~~~~~^~
| |
| std::vectork3d::iproperty*::iterator
In file included from /usr/include/c++/10.2.0/cstdio:42,
from /usr/include/c++/10.2.0/ext/string_conversions.h:43,
from /usr/include/c++/10.2.0/bits/basic_string.h:6535,
from /usr/include/c++/10.2.0/string:55,
from /usr/include/c++/10.2.0/bits/locale_classes.h:40,
from /usr/include/c++/10.2.0/bits/ios_base.h:41,
from /usr/include/c++/10.2.0/ios:42,
from /usr/include/c++/10.2.0/ostream:38,
from /usr/include/c++/10.2.0/iostream:39,
from /home/joilnen/k3d/k3dsdk/Half/half.h:89,
from /home/joilnen/k3d/k3dsdk/types.h:28,
from /home/joilnen/k3d/k3dsdk/iproperty.h:29,
from /home/joilnen/k3d/k3dsdk/property_collection.cpp:24:
/usr/include/stdio.h:146:32: note: initializing argument 1 of ‘int remove(const char*)’
146 | extern int remove (const char __filename) __THROW;
| ~~~~~~~~~~~~^~~~~~~~~~
/home/joilnen/k3d/k3dsdk/property_collection.cpp: In member function ‘virtual void k3d::property_collection::register_properties(const properties_t&)’:
/home/joilnen/k3d/k3dsdk/property_collection.cpp:59:52: error: cannot convert ‘std::vectork3d::iproperty*::iterator’ to ‘const char

59 | m_properties.erase(std::remove(m_properties.begin(), m_properties.end(), property), m_properties.end());
| ~~~~~~~~~~~~~~~~~~^~
| |
| std::vectork3d::iproperty*::iterator
In file included from /usr/include/c++/10.2.0/cstdio:42,
from /usr/include/c++/10.2.0/ext/string_conversions.h:43,
from /usr/include/c++/10.2.0/bits/basic_string.h:6535,
from /usr/include/c++/10.2.0/string:55,
from /usr/include/c++/10.2.0/bits/locale_classes.h:40,
from /usr/include/c++/10.2.0/bits/ios_base.h:41,
from /usr/include/c++/10.2.0/ios:42,
from /usr/include/c++/10.2.0/ostream:38,
from /usr/include/c++/10.2.0/iostream:39,
from /home/joilnen/k3d/k3dsdk/Half/half.h:89,
from /home/joilnen/k3d/k3dsdk/types.h:28,
from /home/joilnen/k3d/k3dsdk/iproperty.h:29,
from /home/joilnen/k3d/k3dsdk/property_collection.cpp:24:
/usr/include/stdio.h:146:32: note: initializing argument 1 of ‘int remove(const char
)’
146 | extern int remove (const char __filename) __THROW;
| ~~~~~~~~~~~~^~~~~~~~~~
/home/joilnen/k3d/k3dsdk/property_collection.cpp:62:51: error: cannot convert ‘std::vectork3d::iproperty*::iterator’ to ‘const char

62 | m_properties.erase(std::remove(m_properties.begin(), m_properties.end(), static_cast<iproperty*>(0)), m_properties.end());
| ~~~~~~~~~~~~~~~~~~^~
| |
| std::vectork3d::iproperty*::iterator
In file included from /usr/include/c++/10.2.0/cstdio:42,
from /usr/include/c++/10.2.0/ext/string_conversions.h:43,
from /usr/include/c++/10.2.0/bits/basic_string.h:6535,
from /usr/include/c++/10.2.0/string:55,
from /usr/include/c++/10.2.0/bits/locale_classes.h:40,
from /usr/include/c++/10.2.0/bits/ios_base.h:41,
from /usr/include/c++/10.2.0/ios:42,
from /usr/include/c++/10.2.0/ostream:38,
from /usr/include/c++/10.2.0/iostream:39,
from /home/joilnen/k3d/k3dsdk/Half/half.h:89,
from /home/joilnen/k3d/k3dsdk/types.h:28,
from /home/joilnen/k3d/k3dsdk/iproperty.h:29,
from /home/joilnen/k3d/k3dsdk/property_collection.cpp:24:
/usr/include/stdio.h:146:32: note: initializing argument 1 of ‘int remove(const char*)’
146 | extern int remove (const char __filename) __THROW;
| ~~~~~~~~~~~~^~~~~~~~~~
/home/joilnen/k3d/k3dsdk/property_collection.cpp: In member function ‘virtual void k3d::property_collection::unregister_property(k3d::iproperty&)’:
/home/joilnen/k3d/k3dsdk/property_collection.cpp:69:51: error: cannot convert ‘std::vectork3d::iproperty*::iterator’ to ‘const char

69 | m_properties.erase(std::remove(m_properties.begin(), m_properties.end(), &Property), m_properties.end());
| ~~~~~~~~~~~~~~~~~~^~
| |
| std::vectork3d::iproperty*::iterator
In file included from /usr/include/c++/10.2.0/cstdio:42,
from /usr/include/c++/10.2.0/ext/string_conversions.h:43,
from /usr/include/c++/10.2.0/bits/basic_string.h:6535,
from /usr/include/c++/10.2.0/string:55,
from /usr/include/c++/10.2.0/bits/locale_classes.h:40,
from /usr/include/c++/10.2.0/bits/ios_base.h:41,
from /usr/include/c++/10.2.0/ios:42,
from /usr/include/c++/10.2.0/ostream:38,
from /usr/include/c++/10.2.0/iostream:39,
from /home/joilnen/k3d/k3dsdk/Half/half.h:89,
from /home/joilnen/k3d/k3dsdk/types.h:28,
from /home/joilnen/k3d/k3dsdk/iproperty.h:29,
from /home/joilnen/k3d/k3dsdk/property_collection.cpp:24:
/usr/include/stdio.h:146:32: note: initializing argument 1 of ‘int remove(const char*)’
146 | extern int remove (const char __filename) __THROW;
| ~~~~~~~~~~~~^~~~~~~~~~
/home/joilnen/k3d/k3dsdk/property_collection.cpp: In member function ‘virtual void k3d::property_collection::unregister_properties(const properties_t&)’:
/home/joilnen/k3d/k3dsdk/property_collection.cpp:76:52: error: cannot convert ‘std::vectork3d::iproperty*::iterator’ to ‘const char

76 | m_properties.erase(std::remove(m_properties.begin(), m_properties.end(), property), m_properties.end());
| ~~~~~~~~~~~~~~~~~~^~
| |
| std::vectork3d::iproperty*::iterator
In file included from /usr/include/c++/10.2.0/cstdio:42,
from /usr/include/c++/10.2.0/ext/string_conversions.h:43,
from /usr/include/c++/10.2.0/bits/basic_string.h:6535,
from /usr/include/c++/10.2.0/string:55,
from /usr/include/c++/10.2.0/bits/locale_classes.h:40,
from /usr/include/c++/10.2.0/bits/ios_base.h:41,
from /usr/include/c++/10.2.0/ios:42,
from /usr/include/c++/10.2.0/ostream:38,
from /usr/include/c++/10.2.0/iostream:39,
from /home/joilnen/k3d/k3dsdk/Half/half.h:89,
from /home/joilnen/k3d/k3dsdk/types.h:28,
from /home/joilnen/k3d/k3dsdk/iproperty.h:29,
from /home/joilnen/k3d/k3dsdk/property_collection.cpp:24:
/usr/include/stdio.h:146:32: note: initializing argument 1 of ‘int remove(const char
)’
146 | extern int remove (const char *__filename) __THROW;
| ~~~~~~~~~~~~^~~~~~~~~~
make[2]: *** [k3dsdk/CMakeFiles/k3dsdk.dir/build.make:1057: k3dsdk/CMakeFiles/k3dsdk.dir/property_collection.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:3638: k3dsdk/CMakeFiles/k3dsdk.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

Cannot build under Ubuntu 16.04 amd64

Hi,
I am fairly new to compiling from source, and ran into an issue I think is in the code:

[ 23%] Linking CXX executable ../bin/k3d
../lib/libk3dsdk-opengl.so.1: undefined reference to `glewContextInit'
collect2: error: ld returned 1 exit status
application/CMakeFiles/k3d.dir/build.make:132: recipe for target 'bin/k3d' failed
make[2]: *** [bin/k3d] Error 1
CMakeFiles/Makefile2:1257: recipe for target 'application/CMakeFiles/k3d.dir/all' failed
make[1]: *** [application/CMakeFiles/k3d.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

I made it far to compilation, but got hung up here.

Also, an earlier release for Debian Wheezy WORKS ON THE RASPBERRY PI. Should this be possible? I am trying to get the latest .8.0.5 to compile on the Raspberry Pi eventually, but have had no success even in Ubuntu right now. Thanks.

this is trivial, but make -jN doesn't seem to work

This might be a cmake thing, not a k3d thing, but when you try and make -j2 or 5 or anything that isn't 1, it seems there are dependencies that are required that don't get built in time for the second thread to find it, which means the dependency tree isn't being built correctly.
Again, not critical by any means, just thought I'd mention it.
Great software though.

CMake is confused about OpenGL

CMake Warning (dev) at CMakeLists.txt:1 (PROJECT):
  cmake_minimum_required() should be called prior to this top-level project()
  call.  Please see the cmake-commands(7) manual for usage documentation of
  both commands.
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Deprecation Warning at CMakeLists.txt:5 (CMAKE_POLICY):
  The OLD behavior for policy CMP0003 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


CMake Deprecation Warning at CMakeLists.txt:7 (CMAKE_POLICY):
  The OLD behavior for policy CMP0026 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


-- checking the width of std::vector<>::size_type for this platform
--   std::vector<>::size_type is 64 bits
-- checking for module 'cairomm-1.0'
--   found cairomm-1.0, version 1.12.2
-- checking for module 'dbus-glib-1'
--   found dbus-glib-1, version 0.112
-- checking for module 'freetype2'
--   found freetype2, version 24.1.18
-- checking for module 'giomm-2.4'
--   found giomm-2.4, version 2.66.2
-- checking for module 'glibmm-2.4>=2.26'
--   found glibmm-2.4, version 2.66.2
-- checking for module 'gtkglext-1.0'
--   found gtkglext-1.0, version 1.2.0
-- checking for module 'gtkmm-2.4'
--   found gtkmm-2.4, version 2.24.5
-- checking for module 'gtksourceview-2.0'
--   package 'gtksourceview-2.0' not found
-- checking for module 'gts'
--   package 'gts' not found
-- Could NOT find ImageMagick (missing: ImageMagick_Magick++_LIBRARY) (found version "6.9.11-60")
-- checking for module 'OpenEXR'
--   found OpenEXR, version 2.5.7
CMake Warning (dev) at /home/<username>/.local/lib/python3.10/site-packages/cmake/data/share/cmake-3.26/Modules/FindOpenGL.cmake:315 (message):
  Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
  available.  Run "cmake --help-policy CMP0072" for policy details.  Use the
  cmake_policy command to set the policy and suppress this warning.

  FindOpenGL found both a legacy GL library:

    OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so

  and GLVND libraries for OpenGL and GLX:

    OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
    OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so

  OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
  compatibility with CMake 3.10 and below the legacy GL library will be used.
Call Stack (most recent call first):
  cmake/modules/K3DFindOpenGL.cmake:3 (FIND_PACKAGE)
  CMakeLists.txt:58 (INCLUDE)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- checking for one of the modules 'glewmx;glew'
-- checking for module 'osmesa'
--   package 'osmesa' not found
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")  
-- checking for module 'sigc++-2.0'
--   found sigc++-2.0, version 2.10.4
-- checking for package 'EXPAT'
--   found EXPAT
-- Found unsuitable Qt version "5.15.3" from /usr/bin/qmake
CMake Error at cmake/modules/K3DDependencies.cmake:10 (MESSAGE):
  K-3D requires OpenGL, which can be obtained from http://opengl.org.
Call Stack (most recent call first):
  CMakeLists.txt:259 (K3D_CHECK)


-- checking for module 'gthread-2.0'
--   found gthread-2.0, version 2.72.4
-- generating i18n catalog
--   done
-- Configuring incomplete, errors occurred!

Failed in running Cmake.

When I build in the empty folder, it stopped and show info as:
"Found unsuitable Qt version "5.9.7" from /home/heda/anaconda3/bin/qmake"
What shall I do to solve the problem.

3Delight renderer ignore shadow maps

I created a Renderman renderer node for 3Delight. The renderered picture lacks shadow, which is there when redering the same scene with either Aqsis or Pixie. Seems K3D do not invok 3Delight's renderdl correctly for shadow maps.

Sorry could not attach a sample file, as github seems to be missing that feature in its issues tracker.

Python2 to be EOL-ed

Hi,

Are there any plans to migrate to Python 3? Python 2 will be EOL-ed in the next months and there are plans to remove it from Debian, and since K-3D depends on it we received this bug report:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=936777

So it needs to either be adapted to use Python 3, or we need to disable support in Debian in the next months, or if not possible and in the worst case (let's hope not), remove it completely.

Please comment/advise.

k3d-0.8.0.5 fails to build

We are trying to package k3d on Gentoo but it's failing with an error related with python :/
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp: In instantiation of 'boost::python::api::object k3d::python::detail::get_item(k3d::python::atk_object_wrapper&, boost::python::api::object) [with Role = mpl_::integral_c<int, 119>; k3d::python::atk_object_wrapper = k3d::python::instance_wrapper<AtkObject>]':
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp:174:72: required from 'void k3d::python::detail::role_method_creator::operator()(T) [with T = mpl
::integral_c<int, 119>]'
/usr/include/boost/mpl/for_each.hpp:82:111: recursively required from 'static void boost::mpl::aux::for_each_impl::execute(Iterator_, LastIterator_, TransformFunc_, F) [with Iterator = boost::mpl::r_iter<mpl_::integral_c<int, 1> >; LastIterator = boost::mpl::r_iter<mpl_::integral_c<int, 122> >; TransformFunc = boost::mpl::identity<mpl_::na>; F = k3d::python::detail::role_method_creator]'
/usr/include/boost/mpl/for_each.hpp:82:111: required from 'static void boost::mpl::aux::for_each_impl::execute(Iterator_, LastIterator_, TransformFunc_, F) [with Iterator = boost::mpl::r_iter<mpl_::integral_c<int, 0> >; LastIterator = boost::mpl::r_iter<mpl_::integral_c<int, 122> >; TransformFunc = boost::mpl::identity<mpl_::na>; F = k3d::python::detail::role_method_creator]'
/usr/include/boost/mpl/for_each.hpp:105:97: required from 'void boost::mpl::for_each(F, Sequence_, TransformOp_) [with Sequence = boost::mpl::range_c<int, 0, 122>; TransformOp = boost::mpl::identity<mpl_::na>; F = k3d::python::detail::role_method_creator]'
/usr/include/boost/mpl/for_each.hpp:118:48: required from 'void boost::mpl::for_each(F, Sequence_) [with Sequence = boost::mpl::range_c<int, 0, 122>; F = k3d::python::detail::role_method_creator]'
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp:186:85: required from here
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp:153:29: error: 'PyString_Check' was not declared in this scope
if(PyString_Check(Key.ptr()))
^
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp:155:31: error: 'PyInt_Check' was not declared in this scope
else if(PyInt_Check(Key.ptr()))
^
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp: In instantiation of 'boost::python::api::object k3d::python::detail::get_item(k3d::python::atk_object_wrapper&, boost::python::api::object) [with Role = mpl_::integral_c<int, 120>; k3d::python::atk_object_wrapper = k3d::python::instance_wrapper<AtkObject>]':
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp:174:72: required from 'void k3d::python::detail::role_method_creator::operator()(T) [with T = mpl
::integral_c<int, 120>]'
/usr/include/boost/mpl/for_each.hpp:82:111: recursively required from 'static void boost::mpl::aux::for_each_impl::execute(Iterator_, LastIterator_, TransformFunc_, F) [with Iterator = boost::mpl::r_iter<mpl_::integral_c<int, 1> >; LastIterator = boost::mpl::r_iter<mpl_::integral_c<int, 122> >; TransformFunc = boost::mpl::identity<mpl_::na>; F = k3d::python::detail::role_method_creator]'
/usr/include/boost/mpl/for_each.hpp:82:111: required from 'static void boost::mpl::aux::for_each_impl::execute(Iterator_, LastIterator_, TransformFunc_, F) [with Iterator = boost::mpl::r_iter<mpl_::integral_c<int, 0> >; LastIterator = boost::mpl::r_iter<mpl_::integral_c<int, 122> >; TransformFunc = boost::mpl::identity<mpl_::na>; F = k3d::python::detail::role_method_creator]'
/usr/include/boost/mpl/for_each.hpp:105:97: required from 'void boost::mpl::for_each(F, Sequence_, TransformOp_) [with Sequence = boost::mpl::range_c<int, 0, 122>; TransformOp = boost::mpl::identity<mpl_::na>; F = k3d::python::detail::role_method_creator]'
/usr/include/boost/mpl/for_each.hpp:118:48: required from 'void boost::mpl::for_each(F, Sequence_) [with Sequence = boost::mpl::range_c<int, 0, 122>; F = k3d::python::detail::role_method_creator]'
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp:186:85: required from here
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp:153:29: error: 'PyString_Check' was not declared in this scope
if(PyString_Check(Key.ptr()))
^
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp:155:31: error: 'PyInt_Check' was not declared in this scope
else if(PyInt_Check(Key.ptr()))
^
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp: In instantiation of 'boost::python::api::object k3d::python::detail::get_item(k3d::python::atk_object_wrapper&, boost::python::api::object) [with Role = mpl_::integral_c<int, 121>; k3d::python::atk_object_wrapper = k3d::python::instance_wrapper<AtkObject>]':
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp:174:72: required from 'void k3d::python::detail::role_method_creator::operator()(T) [with T = mpl
::integral_c<int, 121>]'
/usr/include/boost/mpl/for_each.hpp:82:111: recursively required from 'static void boost::mpl::aux::for_each_impl::execute(Iterator_, LastIterator_, TransformFunc_, F) [with Iterator = boost::mpl::r_iter<mpl_::integral_c<int, 1> >; LastIterator = boost::mpl::r_iter<mpl_::integral_c<int, 122> >; TransformFunc = boost::mpl::identity<mpl_::na>; F = k3d::python::detail::role_method_creator]'
/usr/include/boost/mpl/for_each.hpp:82:111: required from 'static void boost::mpl::aux::for_each_impl::execute(Iterator_, LastIterator_, TransformFunc_, F) [with Iterator = boost::mpl::r_iter<mpl_::integral_c<int, 0> >; LastIterator = boost::mpl::r_iter<mpl_::integral_c<int, 122> >; TransformFunc = boost::mpl::identity<mpl_::na>; F = k3d::python::detail::role_method_creator]'
/usr/include/boost/mpl/for_each.hpp:105:97: required from 'void boost::mpl::for_each(F, Sequence_, TransformOp_) [with Sequence = boost::mpl::range_c<int, 0, 122>; TransformOp = boost::mpl::identity<mpl_::na>; F = k3d::python::detail::role_method_creator]'
/usr/include/boost/mpl/for_each.hpp:118:48: required from 'void boost::mpl::for_each(F, Sequence_) [with Sequence = boost::mpl::range_c<int, 0, 122>; F = k3d::python::detail::role_method_creator]'
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp:186:85: required from here
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp:153:29: error: 'PyString_Check' was not declared in this scope
if(PyString_Check(Key.ptr()))
^
/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-k3d-0.8.0.5/k3dsdk/python/atk_python.cpp:155:31: error: 'PyInt_Check' was not declared in this scope
else if(PyInt_Check(Key.ptr()))
^
k3dsdk/python/CMakeFiles/k3dsdk-python-atk.dir/build.make:62: recipe for target 'k3dsdk/python/CMakeFiles/k3dsdk-python-atk.dir/atk_python.cpp.o' failed
make[2]: *_* [k3dsdk/python/CMakeFiles/k3dsdk-python-atk.dir/atk_python.cpp.o] Error 1
make[2]: Leaving directory '/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-0.8.0.5_build'
CMakeFiles/Makefile2:811: recipe for target 'k3dsdk/python/CMakeFiles/k3dsdk-python-atk.dir/all' failed
make[1]: *** [k3dsdk/python/CMakeFiles/k3dsdk-python-atk.dir/all] Error 2
make[1]: Leaving directory '/var/tmp/portage/media-gfx/k3d-0.8.0.5/work/k3d-0.8.0.5_build'
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2

Compositing on Windows 7

Disabling compositing is no longer necessary on Win7. We should detect the version and only disable it on Vista.

boost-1.69 headers for gil break builds on boost >= 1.72

Boost 1.72 moved aspects of convolve.hpp and other gil numeric extensions behind a detail:: subnamespace (https://gist.github.com/mloskot/993e3d3b471a7e3c02e5ac8199d2b4ad -> boostorg/gil@8235ee6). The randomly included chunk of gil headers causes a compile-time conflict for k3dsdk/bitmap.h resulting in numerous errors relating to convolve_*, kernel_*, and generate_dy_sobel:

In file included from /usr/include/boost/gil/image_processing/numeric.hpp:15,
                 from /usr/include/boost/gil/image_processing/scaling.hpp:14,
                 from /usr/include/boost/gil.hpp:46,
                 from /tmp/SBo/k3d-k3d-0.8.0.6/k3dsdk/bitmap.h:36,
                 from /tmp/SBo/k3d-k3d-0.8.0.6/k3dsdk/type_registry.cpp:24:
/usr/include/boost/gil/detail/math.hpp:24:16: error: ‘kernel_2d’ in namespace ‘boost::gil::detail’ does not name a template type
   24 | inline detail::kernel_2d<T, Allocator> get_identity_kernel()
      |                ^~~~~~~~~

...

  292 |     auto sobel_y = generate_dy_sobel();
      |                    ^~~~~~~~~~~~~~~~~
/usr/include/boost/gil/image_processing/numeric.hpp:293:13: error: ‘convolve_2d’ is not a member of ‘boost::gil::detail’
  293 |     detail::convolve_2d(dx, sobel_x, ddxx);

Removing the included headers in k3dsdk/gil/boost/gil/extension/numeric resolves the issue. I at first tried just removing convolve.hpp (fixes some errors), kernel.hpp (fixes some errors), but then trying to remove pixel_numeric_operations.hpp did not fix the errors related to various pixel_*_t types which started appearing after removing the other two headers, so I just tried removing them all -- this worked. If there is a need to include these in the source distribution for older boost builds, then perhaps CMake is incorrectly adding them to my g++ command line?

CMake on my system causes each source file to be built with a command like:

cd /tmp/SBo/k3d-17ef1bf060ea2d0c88f601f519b8ffdecd341de9/k3d-build/... && /usr/bin/c++  -DBOOST_ALL_NO_LIB -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBOOST_UNIT_TEST_FRAMEWORK_DYN_LINK -DK3D_HAVE_EXPAT -DK3D_HAVE_SIGC_2_0 -Dk3dsdk_EXPORTS  -I/tmp/SBo/k3d-17ef1bf060ea2d0c88f601f519b8ffdecd341de9 -I/tmp/SBo/k3d-17ef1bf060ea2d0c88f601f519b8ffdecd341de9/k3d-build/k3dsdk -I/tmp/SBo/k3d-17ef1bf060ea2d0c88f601f519b8ffdecd341de9/k3dsdk/gil -I/usr/include/glibmm-2.4 -I/usr/lib64/glibmm-2.4/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sigc++-2.0 -I/usr/lib64/sigc++-2.0/include  -O2 -fPIC -Wno-deprecated-declarations -O3 -DNDEBUG -std=gnu++11 -o CMakeFiles/... -c ...

Output of grep -B1 -i 'gil\|boost' CMakeCache.txt:

Boost_DATE_TIME_LIBRARY_RELEASE:STRING=/usr/lib64/libboost_date_time.so.1.74.0

//The directory containing a CMake configuration file for Boost.
Boost_DIR:PATH=/usr/lib64/cmake/Boost-1.74.0
--
//Path to a file.
Boost_INCLUDE_DIR:PATH=/usr/include

Boost_PROGRAM_OPTIONS_LIBRARY_RELEASE:STRING=/usr/lib64/libboost_program_options.so.1.74.0

Boost_PYTHON_LIBRARY_RELEASE:STRING=/usr/lib64/libboost_python27.so.1.74.0

Boost_REGEX_LIBRARY_RELEASE:STRING=/usr/lib64/libboost_regex.so.1.74.0

Boost_SYSTEM_LIBRARY_RELEASE:STRING=/usr/lib64/libboost_system.so.1.74.0

Boost_UNIT_TEST_FRAMEWORK_LIBRARY_RELEASE:STRING=/usr/lib64/libboost_unit_test_framework.so.1.74.0
--

//Override the default location for Boost header files.
K3D_BOOST_INCLUDE_DIR:PATH=

//Override the default location for Boost libraries.
K3D_BOOST_LIBRARY_DIR:PATH=

//Use multithreaded Boost libraries.
K3D_BOOST_USE_MULTITHREADED:BOOL=OFF
--

//The directory containing a CMake configuration file for boost_date_time.
boost_date_time_DIR:PATH=/usr/lib64/cmake/boost_date_time-1.74.0

//The directory containing a CMake configuration file for boost_headers.
boost_headers_DIR:PATH=/usr/lib64/cmake/boost_headers-1.74.0

//The directory containing a CMake configuration file for boost_program_options.
boost_program_options_DIR:PATH=/usr/lib64/cmake/boost_program_options-1.74.0

//The directory containing a CMake configuration file for boost_python.
boost_python_DIR:PATH=/usr/lib64/cmake/boost_python-1.74.0

//The directory containing a CMake configuration file for boost_regex.
boost_regex_DIR:PATH=/usr/lib64/cmake/boost_regex-1.74.0

//The directory containing a CMake configuration file for boost_system.
boost_system_DIR:PATH=/usr/lib64/cmake/boost_system-1.74.0

//The directory containing a CMake configuration file for boost_unit_test_framework.
boost_unit_test_framework_DIR:PATH=/usr/lib64/cmake/boost_unit_test_framework-1.74.0
--
//Dependencies for the target
k3d-scripted-plugins_LIB_DEPENDS:STATIC=general;k3dsdk;general;Boost::regex;
--
//Dependencies for the target
k3dsdk-python-arrays_LIB_DEPENDS:STATIC=general;k3dsdk;general;/usr/lib64/libpython2.7.so;general;Boost::python;
--
//Dependencies for the target
k3dsdk-python-atk_LIB_DEPENDS:STATIC=general;k3dsdk;general;Boost::python;general;/usr/lib64/libpython2.7.so;general;gtkmm-2.4;general;atkmm-1.6;general;gtk-x11-2.0;general;gdkmm-2.4;general;giomm-2.4;general;pangomm-1.4;general;glibmm-2.4;general;cairomm-1.0;general;sigc-2.0;general;gtk-x11-2.0;general;gdk-x11-2.0;general;pangocairo-1.0;general;atk-1.0;general;cairo;general;gdk_pixbuf-2.0;general;gio-2.0;general;pangoft2-1.0;general;pango-1.0;general;gobject-2.0;general;glib-2.0;general;fontconfig;general;freetype;
--
//Dependencies for the target
k3dsdk-python-const-arrays_LIB_DEPENDS:STATIC=general;k3dsdk;general;/usr/lib64/libpython2.7.so;general;Boost::python;
--
//Dependencies for the target
k3dsdk-python-values_LIB_DEPENDS:STATIC=general;k3dsdk;general;Boost::python;general;/usr/lib64/libpython2.7.so;
--
//Dependencies for the target
k3dsdk-python_LIB_DEPENDS:STATIC=general;k3dsdk-python-primitives;general;Boost::python;general;k3dsdk-python-atk;
--
//Dependencies for the target
k3dsdk_LIB_DEPENDS:STATIC=general;glibmm-2.4;general;gobject-2.0;general;glib-2.0;general;sigc-2.0;general;sigc-2.0;general;/usr/lib64/libexpat.so;general;/usr/lib64/libz.so;general;GLEW;general;GL;general;X11;general;GLU;general;GL;general;/usr/lib64/libGL.so;general;/usr/lib64/libGLU.so;general;k3dsdk-half;general;k3dsdk-sgi-tesselator;general;k3dsdk-parallel;general;Boost::program_options;general;Boost::unit_test_framework;general;Boost::system;general;dl;
--
BUILD_TESTING:INTERNAL=OFF
//ADVANCED property for variable: Boost_DIR
Boost_DIR-ADVANCED:INTERNAL=1
--
EXPAT_LIBRARY-ADVANCED:INTERNAL=1
//Details about finding Boost
FIND_PACKAGE_MESSAGE_DETAILS_Boost:INTERNAL=[/usr/lib64/cmake/Boost-1.74.0/BoostConfig.cmake][cfound components: date_time program_options regex system unit_test_framework python ][v1.74.0(1.42)]
--
K3D_BLAS_LIBRARY-ADVANCED:INTERNAL=1
//ADVANCED property for variable: K3D_BOOST_INCLUDE_DIR
K3D_BOOST_INCLUDE_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: K3D_BOOST_LIBRARY_DIR
K3D_BOOST_LIBRARY_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: K3D_BOOST_USE_MULTITHREADED
K3D_BOOST_USE_MULTITHREADED-ADVANCED:INTERNAL=1
--
__pkg_config_checked_PC_Magick++:INTERNAL=1
//ADVANCED property for variable: boost_date_time_DIR
boost_date_time_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: boost_headers_DIR
boost_headers_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: boost_program_options_DIR
boost_program_options_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: boost_python_DIR
boost_python_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: boost_regex_DIR
boost_regex_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: boost_system_DIR
boost_system_DIR-ADVANCED:INTERNAL=1
//ADVANCED property for variable: boost_unit_test_framework_DIR
boost_unit_test_framework_DIR-ADVANCED:INTERNAL=1

Observed in latest commit ID 17ef1bf but the same gil headers are present in latest release 0.8.0.6 as well, so I suspect the problem would also occur there.

GTK2 obsolete and being discontinued

Hello Bart,

This package depends on GTK2 libraries, in particular gtksourceview2.

In Debian gtksourceview2 is going to be removed in the next few months/year (see below), so we have to doe something about it, either port it or disable the dependency and miss functionality if it's an optional dependency, or in the worst case remove the pacakge.

Are there any plans to update GTK dependencies to v3 or even v4? Or moving to Qt? I guess not, specially the latter, because this project seems to be in maintenance mode for many years.

For reference, this is the report: https://bugs.debian.org/885686

As announced [1], we do not intend to release Debian 10 "Buster" with
the old libgnome (and related) libraries. These libraries have been
deprecated and unmaintained for several years.

Your package depends on gtksourceview2 which has not had a new release
since 2010.

Please port your package to GTK3 and gtksourceview3 and related
maintained libraries. Otherwise, please consider requesting that your
package be removed from Debian to help us complete this goal.

Coordinate system orientation

The current axes are left-handed. There should be an options to change this, or conversion options to easily exchange data with applications that use a different system.

New object creation

From dlwatib on the forum:

K-3D unhelpfully creates objects centered on point (0,0,0) which results in half the object lurking underground. When a base plane is shown, the proper way to introduce new elements is to sit them on the base plane. In other words their bottom surface should coincide with the (0,0) plane. They should not be half-buried.

Build Fails When gperftools Module is Enabled

Since you have updated the support for gperftools, I have tried to build the module against the gperftools 2.5 release. Unfortunately the build fails at the end:

[100%] Built target k3d-ngui-python-shell-proxy
...
INFO: Proxying plugin YafraySunLight
INFO: Starting user interface
INFO: Creating plugin [GPerftools] via k3d:application-start
INFO: Loading plugin module /home/thomas/abs/k3d-git/src/k3d-build/bin/../lib/k3d/plugins/k3d-gperftools.module
INFO: gperftools: saving profile data to file /tmp/k3d-profile-0.pprof
/home/thomas/abs/k3d-git/src/k3d-build/bin/k3d: symbol lookup error: /home/thomas/abs/k3d-git/src/k3d-build/bin/../lib/k3d/plugins/k3d-gperftools.module: undefined symbol: ProfilerStart
make[2]: *** [share/k3d/guide/CMakeFiles/docs-guide-ngui.dir/build.make:91: share/k3d/guide/content/plugins.txt] Fehler 127
make[1]: *** [CMakeFiles/Makefile2:13116: share/k3d/guide/CMakeFiles/docs-guide-ngui.dir/all] Fehler 2
make: *** [Makefile:128: all] Fehler 2

Building with Boost 1.61

I had to patch to build with Boost 1.61 in Debian (apparently, "system" is needed now).

Patch attached, but it's very simplistic, and it's
probably better to add conditionals depending on the version of Boost, etc.

fix-ftbfs-boost1.61.patch.txt

[patch] gcc-4.7

diff -Naur k3d-source-0.8.0.2.orig/k3dsdk/data.h k3d-source-0.8.0.2/k3dsdk/data.h
--- k3d-source-0.8.0.2.orig/k3dsdk/data.h   2010-07-03 04:27:46.000000000 +0200
+++ k3d-source-0.8.0.2/k3dsdk/data.h    2012-01-05 06:34:18.127223587 +0100
@@ -865,7 +865,7 @@

        try
        {
-           set_value(boost::lexical_cast<value_t>(*new_value), Hint);
+           this->set_value(boost::lexical_cast<value_t>(*new_value), Hint);
            return true;
        }
        catch(...)
@@ -1011,7 +1011,7 @@

        try
        {
-           set_value(boost::lexical_cast<value_t>(*new_value), Hint);
+           this->set_value(boost::lexical_cast<value_t>(*new_value), Hint);
            return true;
        }
        catch(...)
@@ -1146,7 +1146,7 @@
        if(!new_value)
            return false;

-       set_value(*new_value, Hint);
+       this->set_value(*new_value, Hint);
        return true;
    }

@@ -1671,7 +1671,7 @@
    /// This little bit of magic makes it possible for base classes (such as node_storage) to update their own values while observing the correct undo policy
    void internal_set_value(const value_t& Value, ihint* const Hint)
    {
-       set_value(Value, Hint);
+       this->set_value(Value, Hint);
    }
 };

diff -Naur k3d-source-0.8.0.2.orig/modules/animation/interpolator.h k3d-source-0.8.0.2/modules/animation/interpolator.h
--- k3d-source-0.8.0.2.orig/modules/animation/interpolator.h    2010-07-03 04:27:55.000000000 +0200
+++ k3d-source-0.8.0.2/modules/animation/interpolator.h 2012-01-05 06:05:38.400985430 +0100
@@ -92,7 +92,7 @@
    {
        time_t t_lower, t_upper;
        value_t v_lower, v_upper;
-       get_surrounding_keys(Time, Keyframes, t_lower, t_upper, v_lower, v_upper); 
+       this->get_surrounding_keys(Time, Keyframes, t_lower, t_upper, v_lower, v_upper); 
        return lerp(t_lower, t_upper, v_lower, v_upper, Time);
    }
 protected:
@@ -116,7 +116,7 @@
    {
        time_t t_lower, t_upper;
        value_t v_lower, v_upper;
-       get_surrounding_keys(Time, Keyframes, t_lower, t_upper, v_lower, v_upper); 
+       this->get_surrounding_keys(Time, Keyframes, t_lower, t_upper, v_lower, v_upper); 
        return lerp(t_lower, t_upper, v_lower, v_upper, Time);
    } 
 protected:

request for viewport depth start/end clipping adjustments

It's really difficult to model anything to scale below a certain threshold whan all you see is the back side of the model:

clipping

Understandably its impossible to create defaults that would work for every single case so having adjustable settings for the viewport would be appreciated.

Crashing issue when translating points.

Happened to me yesterday, and again today, however not 100% repeatable. Doesn't happen every time.

Steps I have taken both times was to select some points start translating with the widget and then cancel the translation with right mouse button. In this case I was moving my mouse side to side rapidly when right clicking to drop/cancel translation.

Version 8.0.1 on Windows 7 SP1 64 bit

Build Problems of Some Modules with Release 0.8.0.5

I have recently tried to compile K-3D 0.8.0.5 on Arch Linux and encountered some problems during the compilation of certain modules. I use cmake 3.5.2 and gcc 6.1.1. By the way, it is now possible to install K-3D from the Arch User Repository: https://aur.archlinux.org/packages/k3d/

These are the specific modules:

Carve Module / carve 1.4.0

Compilation fails because the header mesh.hpp is not present in carve 1.4.0. Do you use an older carve version or a fork?

carve/mesh.hpp: File or directory missing
#include <carve/mesh.hpp>

Google Perftools Module / gperftools 2.5

If the Perftools library is detected the default cmake run will fail because of this error message:

CMake Error at cmake/modules/K3DDependencies.cmake:14 (MESSAGE):
K3D_BUILD_GOOGLE_PERFTOOLS_MODULE requires K3D_ENABLE_PROFILING.
Call Stack (most recent call first):
CMakeLists.txt:277 (K3D_CHECK)

Preferably this error should not occur thus the module will only be activated if K3D_ENABLE_PROFILING is enabled. When profiling is enabled the following error message will occour:

CMake Error at modules/CMakeLists.txt:76 (TARGET_LINK_LIBRARIES):
Cannot specify link libraries for target "/usr/lib64/libprofiler.so" which
is not built by this project.
Call Stack (most recent call first):
modules/3ds_io/CMakeLists.txt:3 (K3D_BUILD_MODULE)

Open CASCADE Module / Open CASCADE 6.9.1

Compilation fails because the file gprim_factory.h seems no longer be part of K-3D.

/home/thomas/abs/k3d/src/k3d/modules/opencascade/opencascade_document_importer.cpp:34:34: fatal error k3dsdk/gprim_factory.h: File or directory missing
#include <k3dsdk/gprim_factory.h>

Collada IO Module / collada-dom 2.4

Module seems no longer to be compile against current library version. Missing namespace usage and a type incompatibility problem.

Aqsis Module / aqsis 1.8.2

When compiling Aqsis from source it doesn't seem to include cmake package information so find_package will fail during cmake configuration.

yafray -> yafaray

yafray was renamed with name yafaray.
for executable:
s/yafray/yafaray-xml/

for strings in program:
s/yafray/yafaray/
s/Yafray/Yafaray/

Further Development

Is there any interest in kickstarting development back up?

I'm an educator and hobbyist animator, and am looking for a simple 3d animation program to introduce to high school students. And to use myself for my projects.

I've been using Blender for years but it has way too many bells and whistles that I never use. And when I showed Blender to my teenager, the interface was way too daunting for him. I need something simpler. My only option right now for animating is K-3d and Art of Illusion, but k-3d has the more intuitive interface.

I'm a non-coder, but I'm willing to contribute a lot of my time in other areas if there is interest from coders.

Thanks,

Character animation without bones

Hello
How are you?

I found Idea for character animation without rigs or bones. This idea created by pixar studios called character articulation through profile curves or Curvenent
They have been released the paper about this idea. So please if k 3d still active, please support this idea for important

Look at the video and download the paper too

https://youtu.be/gUJ4RxMdVn8

Download the paper here :-

https://graphics.pixar.com/library/ProfileMover/paper.pdf

Please let me know, you will create it or not

Thank you

Color mesh faces by

I'm creating a coordinate frame using o3d.create_mesh_coordinate_frame(). If I'd display it in open3d (http://www.open3d.org/), it would look like this:

Screen Shot 2019-10-27 at 12 20 40

However, their Jupyter viewer does not work, which is why for Jupyter I'm visualizing using k3d. The conversion to a k3d.mesh object is straightforward for vertices and indices. However, I can't understand how coloring work. Can't I just make faces get the average of the triangle's colors? Seems like this is the way it's implemented in open3d... But perhaps I am missing something?

Thanks!

Install error in Lubuntu 20.04

[CODE]$ cd /home/ia/soft/animate/k3d
ia@PC:/soft/animate/k3d$ git clone git://github.com/K-3D/k3d.git
Cloning into «k3d»…
remote: Enumerating objects: 40, done.
remote: Counting objects: 100% (40/40), done.
remote: Compressing objects: 100% (40/40), done.
remote: Total 44248 (delta 9), reused 2 (delta 0), pack-reused 44208
Получение объектов: 100% (44248/44248), 52.68 MiB | 247.00 KiB/s, готово.
Определение изменений: 100% (33384/33384), готово.
ia@PC:
/soft/animate/k3d$ mkdir k3d-build
ia@PC:/soft/animate/k3d$ cd k3d-build
ia@PC:
/soft/animate/k3d/k3d-build$ cmake ../k3d
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at CMakeLists.txt:5 (CMAKE_POLICY):
The OLD behavior for policy CMP0003 will be removed from a future version
of CMake.

The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.

CMake Deprecation Warning at CMakeLists.txt:7 (CMAKE_POLICY):
The OLD behavior for policy CMP0026 will be removed from a future version
of CMake.

The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.

-- checking the width of std::vector<>::size_type for this platform
-- std::vector<>::size_type is 64 bits
-- checking for module 'cairomm-1.0'
-- package 'cairomm-1.0' not found
-- checking for module 'dbus-glib-1'
-- package 'dbus-glib-1' not found
-- checking for module 'freetype2'
-- found freetype2, version 23.1.17
-- checking for module 'giomm-2.4'
-- found giomm-2.4, version 2.64.2
-- checking for module 'glibmm-2.4>=2.26'
-- found glibmm-2.4, version 2.64.2
-- checking for module 'gtkglext-1.0'
-- package 'gtkglext-1.0' not found
-- checking for module 'gtkmm-2.4'
-- package 'gtkmm-2.4' not found
-- checking for module 'gtksourceview-2.0'
-- package 'gtksourceview-2.0' not found
-- checking for module 'gts'
-- package 'gts' not found
-- Could NOT find ImageMagick (missing: ImageMagick_Magick++_LIBRARY) (found version "6.9.10-23")
-- checking for module 'OpenEXR'
-- package 'OpenEXR' not found
CMake Warning (dev) at /usr/share/cmake-3.16/Modules/FindOpenGL.cmake:275 (message):
Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
available. Run "cmake --help-policy CMP0072" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.

FindOpenGL found both a legacy GL library:

OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so

and GLVND libraries for OpenGL and GLX:

OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so

OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
compatibility with CMake 3.10 and below the legacy GL library will be used.
Call Stack (most recent call first):
cmake/modules/K3DFindOpenGL.cmake:3 (FIND_PACKAGE)
CMakeLists.txt:58 (INCLUDE)
This warning is for project developers. Use -Wno-dev to suppress it.

-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
-- checking for one of the modules 'glewmx;glew'
-- checking for module 'osmesa'
-- package 'osmesa' not found
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")
-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.6.37")
-- Found PythonInterp: /usr/bin/python (found version "2.7.18")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found version "2.7.18rc1")
-- checking for module 'sigc++-2.0'
-- found sigc++-2.0, version 2.10.2
-- checking for package 'EXPAT'
-- Found EXPAT: /usr/lib/x86_64-linux-gnu/libexpat.so (found version "2.2.9")
-- found EXPAT
-- Found unsuitable Qt version "5.12.8" from /usr/bin/qmake
CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
Could NOT find Boost (missing: Boost_INCLUDE_DIR date_time program_options
regex system unit_test_framework python) (Required is at least version
"1.42")
Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.16/Modules/FindBoost.cmake:2179 (find_package_handle_standard_args)
cmake/modules/K3DFindBoost.cmake:9 (FIND_PACKAGE)
CMakeLists.txt:254 (INCLUDE)

-- Configuring incomplete, errors occurred!
See also "/home/ia/soft/animate/k3d/k3d-build/CMakeFiles/CMakeOutput.log".
ia@PC:~/soft/animate/k3d/k3d-build$ make
make: *** No targets specified and no makefile found. Stop.
[/CODE]

[patch] lib64

--- k3d-source-0.8.0.2.orig/CMakeLists.txt  2010-07-03 04:27:53.000000000 +0200
+++ k3d-source-0.8.0.2/CMakeLists.txt   2011-02-10 10:28:23.236698104 +0100
@@ -326,7 +326,8 @@
 # Setup output directories ...
 SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${k3d_BINARY_DIR}/bin)

-SET(K3D_LIBDIR lib) # Allows us to handle 64-bit libs if/when it becomes necessary.
+# SET(K3D_LIBDIR lib) # Allows us to handle 64-bit libs if/when it becomes necessary.
+SET(K3D_LIBDIR lib${LIB_SUFFIX}) 
 IF(WIN32)
    SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${k3d_BINARY_DIR}/bin)
 ELSE(WIN32)

Typos in the code

Some (likely) typos detected in Debian by packaging tools:

I spelling-error-in-binary
usr/lib/k3d/plugins/k3d-selection.module egdes edges
usr/lib/k3d/plugins/k3d-selection.module egdes edges
usr/lib/libk3dsdk-python-interfaces.so.1 ment meant
usr/lib/libk3dsdk-python-interfaces.so.1 pres press

Node List pollution

The node list is overcrowded. This list should be separated with user created objects and built-in objects. Scrolling through 20 extra objects just to find my what I'm looking for is no good.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.