
Qosmic
Source (link to git-repo or to original if based on someone elses unmodified work):
Version 1.5.0
- Compatibility updates for flam3-3.0.1.
- Enhanced directory browsing widget.
- Added move, rotate, scale, and flip modes to the triangle editor.
- Added xform previews and rendering enhancements to the triangle editor.
- Added a genome palette histogram to the xform color selector.
- Enhanced flam3 types in Lua scripts.
- Alpha channel and HSV colorspace support for ggr gradients.
- Enhanced mutations editor.
- Enhanced genome selector.
- New sheep loop animation widget.
- Added a configuration dialog for the autosave feature.
- Enhanced tree view in the variations widget.
- Added a message output pane to the Lua script editor.
- Fixed a bug when modifying coefs in the coordinates widget.
- Added drag+drop support to mutations, directory browser, and genome selector.
Ratings & Comments
27 Comments
Hi, I'm trying to port this app to Qt 5.5 So far, I get the application to compile without error, but it throws a segmentation error on start up. It seams that the error occurs in renderthread.cpp calling the flam3_render function. When I comment this line out, everything works fine, (apart rendering ;-) Has somebody any idea that can help me? Thanks in advance.
Hi! I can't compile. These are some messages: .obj/frame.o: In function `Lua::Frame::num_genomes(lua_State*)': frame.cpp:(.text+0xcb): undefined reference to `lua_pushinteger' frame.cpp:(.text+0x20e): undefined reference to `luaL_checkinteger' .obj/frame.o: In function `Lua::Frame::copy_genome(lua_State*)': genome.cpp:(.text+0x10b): undefined reference to `luaL_checkinteger' genome.cpp:(.text._ZN3Lua5LunarINS_5XFormEE4pushEP9lua_StatePS1_b[Lua::Lunar<Lua::XForm>::push(lua_State*, Lua::XForm*, bool)]+0x32): undefined reference to `lua_getfield' xform.cpp:(.text+0x102): undefined reference to `luaL_checknumber' .obj/xform.o: In function `Lua::XForm::supershape_pm_4(lua_State*)': luathread.cpp:(.text+0x96): undefined reference to `lua_pushinteger' luathread.cpp:(.text+0xae): undefined reference to `lua_setfield' .obj/luathread.o: In function `Lua::Lunar<Lua::Frame>::gc_T(lua_State*)': luathread.cpp:(.text._ZN3Lua5LunarINS_5FrameEE4gc_TEP9lua_State[Lua::Lunar<Lua::Frame>::gc_T(lua_State*)]+0x1e): undefined reference to `luaL_getmetafield' .obj/luathread.o: In function `Lua::Lunar<Lua::XForm>::thunk(lua_State*)': luathread.cpp:(.text._ZN3Lua5LunarINS_6GenomeEE8RegisterEP9lua_State[Lua::Lunar<Lua::Genome>::Register(lua_State*)]+0x20): undefined reference to `lua_createtable' luathread.cpp:(.text._ZN3Lua5LunarINS_6GenomeEE8RegisterEP9lua_State[Lua::Lunar<Lua::Genome>::Register(lua_State*)]+0x3a): undefined reference to `luaL_newmetatable' luathread.cpp:(.text._ZN3Lua5LunarINS_6GenomeEE8RegisterEP9lua_State[Lua::Lunar<Lua::Genome>::Register(lua_State*)]+0x195): undefined reference to `lua_createtable' collect2: ld returned 1 exit status make: *** [qosmic] Error 1 error while building qosmic Thanks for your help.
The linker can't find liblua. Try to find liblua.so on your system, and then add the directory it resides in to the LIBS variable in qosmic.pro like this: LIBS += -L/full-path/to/liblua/ Then run the build.sh script again.
Compiling for 64 bit gives a small error: src/renderthread.cpp: In member function ‘void RenderThread::render(RenderRequest*)’: src/renderthread.cpp:425: error: cast from ‘RenderRequest*’ to ‘uint’ loses precision To correct this, just replace (uint) with (long) and it compiles flawlessly. Funny application!
Thanks, I've made the change.
One may need to edit build.sh to run qmake-qt4 (or symlink qmake to that if not defaulted this way to build, then switch back). I also needed to place -I/usr/include/lau5.1 in the Makefile include list. Now compiling OK so we'll see.
Also needed to change -llua5.1 in the Makefile library list. Works fine -- now to learn how to make all those wonderful flames!
Thanks, I've added this to the README.
Hi, I'm trying to install Qosmic, and the script returns me an error: /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:977: undefined reference to `gaussian_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:980: undefined reference to `hermite_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:983: undefined reference to `box_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:986: undefined reference to `triangle_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:989: undefined reference to `bell_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:992: undefined reference to `b_spline_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:995: undefined reference to `mitchell_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:998: undefined reference to `blackman_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:1001: undefined reference to `catrom_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:1004: undefined reference to `hanning_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:1007: undefined reference to `hamming_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:1010: undefined reference to `lanczos3_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:1013: undefined reference to `lanczos2_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:1016: undefined reference to `quadratic_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:1019: undefined reference to `gaussian_filter' .obj/mainwindow.o: In function `MainWindow::setFlameXML(char*)': /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:719: undefined reference to `flam3_parse_xml2' .obj/mainwindow.o: In function `MainWindow::updateFormData(Triangle*)': /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:280: undefined reference to `gaussian_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:282: undefined reference to `hermite_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:284: undefined reference to `box_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:286: undefined reference to `triangle_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:288: undefined reference to `bell_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:290: undefined reference to `b_spline_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:292: undefined reference to `mitchell_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:294: undefined reference to `blackman_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:296: undefined reference to `catrom_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:298: undefined reference to `hanning_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:300: undefined reference to `hamming_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:302: undefined reference to `lanczos3_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:304: undefined reference to `lanczos2_filter' /home/n0y/descargas/flam3/qosmic/src/mainwindow.cpp:306: undefined reference to `quadratic_filter' .obj/xfedit.o: In function `FigureEditor::removeTriangleAction()': /home/n0y/descargas/flam3/qosmic/src/xfedit.cpp:635: undefined reference to `flam3_delete_xform' .obj/xfedit.o: In function `FigureEditor::addTriangleAction()': /home/n0y/descargas/flam3/qosmic/src/xfedit.cpp:601: undefined reference to `flam3_add_xforms' .obj/flam3util.o: In function `copy_genome(flam3_genome*, flam3_genome*)': /home/n0y/descargas/flam3/qosmic/src/flam3util.cpp:53: undefined reference to `flam3_add_xforms' .obj/renderthread.o: In function `RenderThread::run()': /home/n0y/descargas/flam3/qosmic/src/renderthread.cpp:174: undefined reference to `flam3_init_frame' .obj/mutationwidget.o: In function `MutationWidget::reset()': /home/n0y/descargas/flam3/qosmic/src/mutationwidget.cpp:167: undefined reference to `flam3_copy' .obj/mutation.o: In function `truncate_variations': /home/n0y/descargas/flam3/qosmic/src/mutation.c:55: undefined reference to `flam3_delete_xform' .obj/mutation.o: In function `flam3_mutate': /home/n0y/descargas/flam3/qosmic/src/mutation.c:193: undefined reference to `flam3_init_frame' /home/n0y/descargas/flam3/qosmic/src/mutation.c:255: undefined reference to `flam3_copy' /home/n0y/descargas/flam3/qosmic/src/mutation.c:275: undefined reference to `flam3_copy' /home/n0y/descargas/flam3/qosmic/src/mutation.c:276: undefined reference to `flam3_copy' /home/n0y/descargas/flam3/qosmic/src/mutation.c:302: undefined reference to `flam3_copy_params' /home/n0y/descargas/flam3/qosmic/src/mutation.c:426: undefined reference to `flam3_add_xforms' /home/n0y/descargas/flam3/qosmic/src/mutation.c:449: undefined reference to `flam3_delete_xform' /home/n0y/descargas/flam3/qosmic/src/mutation.c:487: undefined reference to `flam3_apply_template' /home/n0y/descargas/flam3/qosmic/src/mutation.c:498: undefined reference to `flam3_copy' collect2: ld devolvió el estado de salida 1 make: *** [qosmic] Error 1 I tried the LocoMojo solution with no results. Can you help me, please?
It looks like the linker can't find the libflam3.a library. Can you check that qosmic/flam3/libflam3.a exists?
Yes, it's there, in: /qosmic/flam3
The problem was a previous install of Flam3, i removed it and the script runs nice!! Thank you! Now let's try your creation!!
Hey simpl, Just downloaded and compiled the new version without a hitch. Qosmic is pretty nifty, I've had a lot of fun with it and I've created a few keepers so far. One thing missing though, it would be nice if there were a progressbar or some indication in the status bar that qosmic was working. Good work and thanks for releasing it. LocoMojo
I'm having trouble compiling this. I'm using qt-4.3.1. flam3/libflam3.a(flam3.o): In function `flam3_edit_print': flam3.c:(.text+0x5fdf): undefined reference to `xmlStrcmp' flam3.c:(.text+0x600c): undefined reference to `xmlGetProp' flam3.c:(.text+0x6032): undefined reference to `xmlFree' flam3.c:(.text+0x60af): undefined reference to `xmlStrcmp' flam3.c:(.text+0x60ed): undefined reference to `xmlIsBlankNode' flam3.c:(.text+0x6136): undefined reference to `xmlStrcmp' flam3.c:(.text+0x61a8): undefined reference to `xmlNodeGetContent' flam3.c:(.text+0x6236): undefined reference to `xmlStrcmp' flam3/libflam3.a(flam3.o): In function `flam3_print': flam3.c:(.text+0x7694): undefined reference to `xmlDocGetRootElement' flam3/libflam3.a(flam3.o): In function `scan_for_flame_nodes': flam3.c:(.text+0x192aa): undefined reference to `xmlStrcmp' flam3.c:(.text+0x192fc): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19338): undefined reference to `xmlFree' flam3.c:(.text+0x19356): undefined reference to `xmlGetProp' flam3.c:(.text+0x19370): undefined reference to `xmlStrcmp' flam3.c:(.text+0x193b2): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19427): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1946b): undefined reference to `xmlStrcmp' flam3.c:(.text+0x194ad): undefined reference to `xmlFree' flam3.c:(.text+0x194c3): undefined reference to `xmlGetProp' flam3.c:(.text+0x194d8): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1950b): undefined reference to `xmlFree' flam3.c:(.text+0x19672): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19699): undefined reference to `xmlStrcmp' flam3.c:(.text+0x196ca): undefined reference to `xmlFree' flam3.c:(.text+0x196e4): undefined reference to `xmlGetProp' flam3.c:(.text+0x196f9): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19736): undefined reference to `xmlStrcmp' flam3.c:(.text+0x197a2): undefined reference to `xmlStrcmp' flam3.c:(.text+0x197e7): undefined reference to `xmlFree' flam3.c:(.text+0x19801): undefined reference to `xmlGetProp' flam3.c:(.text+0x19818): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19862): undefined reference to `xmlStrcmp' flam3.c:(.text+0x198a3): undefined reference to `xmlStrcmp' flam3.c:(.text+0x198be): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19915): undefined reference to `xmlNodeGetContent' flam3.c:(.text+0x1993c): undefined reference to `xmlFree' flam3.c:(.text+0x19954): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19a57): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19a72): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19b5c): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19b7e): undefined reference to `xmlGetProp' flam3.c:(.text+0x19b93): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19bc6): undefined reference to `xmlFree' flam3.c:(.text+0x19bf5): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19c10): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19dae): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19dc5): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19dfa): undefined reference to `xmlStrcmp' flam3/libflam3.a(flam3.o):flam3.c:(.text+0x19e8f): more undefined references to `xmlStrcmp' follow flam3/libflam3.a(flam3.o): In function `scan_for_flame_nodes': flam3.c:(.text+0x19ecd): undefined reference to `xmlFree' flam3.c:(.text+0x19ee7): undefined reference to `xmlGetProp' flam3.c:(.text+0x19f05): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19f4e): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19f9a): undefined reference to `xmlStrcmp' flam3.c:(.text+0x19ff9): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1a1ca): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1a1de): undefined reference to `xmlNewDoc' flam3.c:(.text+0x1a1f3): undefined reference to `xmlCopyNode' flam3.c:(.text+0x1a204): undefined reference to `xmlDocSetRootElement' flam3.c:(.text+0x1a21c): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1a261): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1a334): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1a379): undefined reference to `xmlStrcmp' flam3.c:(.text+0x1a3d2): undefined reference to `xmlStrcmp' flam3/libflam3.a(flam3.o):flam3.c:(.text+0x1a448): more undefined references to `xmlStrcmp' follow flam3/libflam3.a(flam3.o): In function `flam3_parse_xml2': flam3.c:(.text+0x1bda0): undefined reference to `xmlReadMemory' flam3.c:(.text+0x1bdb2): undefined reference to `xmlDocGetRootElement' flam3.c:(.text+0x1bde5): undefined reference to `xmlFreeDoc' flam3/libflam3.a(flam3-palettes.o): In function `parse_palettes': flam3-palettes.c:(.text+0x2a4): undefined reference to `xmlStrcmp' flam3-palettes.c:(.text+0x30c): undefined reference to `xmlGetProp' flam3-palettes.c:(.text+0x325): undefined reference to `xmlStrcmp' flam3-palettes.c:(.text+0x43b): undefined reference to `xmlStrcmp' flam3-palettes.c:(.text+0x456): undefined reference to `xmlStrcmp' flam3/libflam3.a(flam3-palettes.o): In function `flam3_get_palette': flam3-palettes.c:(.text+0x783): undefined reference to `xmlReadMemory' flam3-palettes.c:(.text+0x795): undefined reference to `xmlDocGetRootElement' flam3-palettes.c:(.text+0x7c1): undefined reference to `xmlFreeDoc' collect2: ld returned 1 exit status make: *** [qosmic] Error 1 Can you tell me what I need to do? If you need any other information from me in order to help me, just let me know what you need. Thanks. LocoMojo
It looks like the expat library is not in the search path for the linker. Look for a file named libexpat.so.1 or 'libexpat.so*' using locate or find. Then add the following line to qosmic.pro toward the top: LIBS += -L/path/to/directory/containing_libexpat/ where you use the path to libexpat you found above. Then run qmake, and then run make. Hopefully that will do the trick.
Did what you suggested (my libexpat.so.1 is in /usr/lib) then ran qmake and make and this time the build was very short and I got a different error: In file included from src/mainwindow.cpp:23: flam3/private.h:38:20: error: config.h: No such file or directory src/mainwindow.cpp:213: warning: unused parameter 't' src/mainwindow.cpp:1091: warning: unused parameter 'column' src/mainwindow.cpp:1106: warning: unused parameter 'column' flam3/flam3.h:29: warning: 'flam3_h_id' defined but not used make: *** [.obj/mainwindow.o] Error 1 Hmm, no config.h ? What am I missing? For shits and giggles I tried the build script and I got the exact same error as earlier even though I added the line "LIBS += -L/usr/lib/" as you suggested. Any other ideas? Thanks for helping. LocoMojo
Okay, I was almost totally wrong. I think you are missing a library that is needed to build libflam3. Check that you have libxml2 installed on your system. Then type './build clean ; ./build' in the qosmic directory.
Yes, I have libxml2-2.6.28 installed on my system. LocoMojo
Try this export LDFLAGS="-L/path/to/dir_containing_libxml2.so/" export LIBS="-lxml2" ./build.sh clean ; ./build.sh
If that doesn't do it, then try adding LIBS += -L/path/to/dir_containing_libxml2.so/ -lxml2 to qosmic.pro, and then do what I suggested with the 'export' lines above.
The first suggestion above didn't work, but the second one did :) Thanks for that! I haven't had a chance to mess about with it just yet, I wanted to let you know that I finally got it to build. Thanks for your time and patience! Off to check out qosmic :) LocoMojo
Compilation error: ‘class QGridLayout’ has no member named ‘setLeftMargin’ ‘class QGridLayout’ has no member named ‘setTopMargin’ ‘class QGridLayout’ has no member named ‘setRightMargin’ ‘class QGridLayout’ has no member named ‘setBottomMargin’ Really has not such kind of members even in qt4.3: http://doc.trolltech.com/4.3/qgridlayout.html What is the solution? What is your qt version and your os?
You're right, it's doesn't appear anywhere in the qt docs. I've been using qt-4.3.1. I did a quick google with your error message, and there was something about these being part of an undocumented api used by designer. Maybe you could try updating qt if you haven't already.
fwiw, qt-copy from kde's svn repo compiles qosmic just fine. this is a a very good app :)
Thank you for posting. I hadn't even considered the qt-copy patches. I've updated the web page :)