Code Monkey home page Code Monkey logo

qppcad's Introduction

DOI Build Status Documentation Status qppcad_collage

current status - under construction

qpp::cad - molecule and crystal editor written in c++

Installation

Init submodules in one command

git clone [email protected]:nvpopov/qppcad.git --recurse-submodules

or in two!

git clone [email protected]:nvpopov/qppcad.git
git submodule update --init --recursive

Init && compile

git clone [email protected]:nvpopov/qppcad.git --recurse-submodules
cd qppcad
mkdir build
cd build
cmake ..
make

Update

git pull --recurse-submodules

Debian - based distro dependencies :

apt install libqt5opengl5-dev libqt5charts5-dev libqt5svg5-dev libqt5core5a libqt5widgets5 libqt5gui5 libpython3-dev

Dependencies and resources

  1. Qt5 - https://www.qt.io
  2. Eigen3 - http://eigen.tuxfamily.org
  3. Python3 - https://www.python.org/
  4. Pybind11 - https://github.com/pybind/pybind11
  5. JSON for Modern C++ - https://nlohmann.github.io/json/
  6. {fmt} - A modern formatting library https://fmt.dev
  7. Pugixml - https://pugixml.org/
  8. CppOptimizationLibrary - https://github.com/PatWie/CppNumericalSolvers
  9. qpp - https://github.com/nvpopov/qpp
  10. exprtk - http://www.partow.net/programming/exprtk/index.html
  11. icons - https://material.io/resources/icons/
  12. font - OpenSans

qppcad's People

Contributors

nvpopov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

qppcad's Issues

Cube file crashing

There is no error processing when some file is imported as cube formated file. So the app will crash.

Compile error. gcc 9.3.0

In file included from /home/vit/progs/src/qppcad/deps/qpp/modules/pyqpp/pyqpp_geom.cpp:11:
/home/vit/progs/src/qppcad/deps/qpp/modules/geom/geom.hpp: In member function 'REAL qpp::geometry<REAL, CELL>::py_getsymmrad(const char*) [with REAL = float; CELL = qpp::periodic_cell]':
/home/vit/progs/src/qppcad/deps/qpp/modules/geom/geom.hpp:821:3: warning: control reaches end of non-void function [-Wreturn-type]
821 | }
| ^
/home/vit/progs/src/qppcad/deps/qpp/modules/geom/geom.hpp: In member function 'REAL qpp::geometry<REAL, CELL>::py_getsymmrad(const char*) [with REAL = float; CELL = qpp::gen_cell<float, qpp::generic_matrix<float, 3, 3> >]':
/home/vit/progs/src/qppcad/deps/qpp/modules/geom/geom.hpp:821:3: warning: control reaches end of non-void function [-Wreturn-type]
821 | }
| ^
/home/vit/progs/src/qppcad/deps/qpp/modules/geom/geom.hpp: In member function 'REAL qpp::geometry<REAL, CELL>::py_getsymmrad(const char*) [with REAL = float; CELL = qpp::gen_cell<float, qpp::rotrans >]':
/home/vit/progs/src/qppcad/deps/qpp/modules/geom/geom.hpp:821:3: warning: control reaches end of non-void function [-Wreturn-type]
821 | }
| ^
[ 33%] Building CXX object CMakeFiles/qppcad.dir/deps/qpp/modules/pyqpp/pyqpp_xgeom.cpp.o
In file included from /home/vit/progs/src/qppcad/deps/qpp/modules/pyqpp/pyqpp_xgeom.cpp:3:
/home/vit/progs/src/qppcad/deps/qpp/modules/geom/xgeom.hpp: In member function 'pybind11::object qpp::xgeometry<REAL, CELL>::py_getfield(int, int) [with REAL = float; CELL = qpp::periodic_cell]':
/home/vit/progs/src/qppcad/deps/qpp/modules/geom/xgeom.hpp:967:5: warning: control reaches end of non-void function [-Wreturn-type]
967 | }
| ^
/home/vit/progs/src/qppcad/deps/qpp/modules/geom/xgeom.hpp: In member function 'pybind11::object qpp::xgeometry<REAL, CELL>::py_getfield(int, int) [with REAL = float; CELL = qpp::gen_cell<float, qpp::generic_matrix<float, 3, 3> >]':
/home/vit/progs/src/qppcad/deps/qpp/modules/geom/xgeom.hpp:967:5: warning: control reaches end of non-void function [-Wreturn-type]
967 | }
| ^
/home/vit/progs/src/qppcad/deps/qpp/modules/geom/xgeom.hpp: In member function 'pybind11::object qpp::xgeometry<REAL, CELL>::py_getfield(int, int) [with REAL = float; CELL = qpp::gen_cell<float, qpp::rotrans >]':
/home/vit/progs/src/qppcad/deps/qpp/modules/geom/xgeom.hpp:967:5: warning: control reaches end of non-void function [-Wreturn-type]
967 | }
| ^
[ 33%] Building CXX object CMakeFiles/qppcad.dir/deps/qpp/modules/pyqpp/pyqpp_cell.cpp.o
[ 33%] Building CXX object CMakeFiles/qppcad.dir/deps/qpp/modules/pyqpp/pyqpp_autosymm.cpp.o
In file included from /home/vit/progs/src/qppcad/deps/qpp/modules/pyqpp/pyqpp_autosymm.cpp:2:
/home/vit/progs/src/qppcad/deps/qpp/modules/symm/autosymm.hpp: In member function 'qpp::subspace_of3d qpp::subspace_of3d::operator&(const qpp::subspace_of3d&) const [with REAL = float]':
/home/vit/progs/src/qppcad/deps/qpp/modules/symm/autosymm.hpp:228:7: warning: control reaches end of non-void function [-Wreturn-type]
228 | }
| ^
[ 34%] Building CXX object CMakeFiles/qppcad.dir/deps/qpp/modules/pyqpp/pyqpp_builders.cpp.o
[ 34%] Building CXX object CMakeFiles/qppcad.dir/deps/qpp/modules/pyqpp/pyqpp_ccd.cpp.o
[ 35%] Building CXX object CMakeFiles/qppcad.dir/deps/qpp/modules/pyqpp/pyqpp_opaque_types.cpp.o
[ 35%] Building CXX object CMakeFiles/qppcad.dir/deps/qpp/modules/data/errors.cpp.o
[ 36%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/render/camera.cpp.o
[ 36%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/render/draw_pipeline.cpp.o
[ 37%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/render/glapi.cpp.o
[ 37%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/render/mesh.cpp.o
[ 38%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/render/mesh_generators.cpp.o
[ 38%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/render/shader_generators.cpp.o
[ 38%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/render/shader_program.cpp.o
[ 39%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/render/volume_tools.cpp.o
[ 39%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/arrow_array/arrow_array.cpp.o
[ 40%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/arrow_array/arrow_array_obj_insp_widget.cpp.o
[ 40%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/arrow_primitive/arrow_primitive.cpp.o
[ 41%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/arrow_primitive/arrow_primitive_obj_insp_widget.cpp.o
[ 41%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/ccd_view/ccd_traj_analyzer_extended_editor.cpp.o
[ 42%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/ccd_view/ccd_vib_analyzer_extended_editor.cpp.o
[ 42%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/ccd_view/ccd_view.cpp.o
[ 42%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/ccd_view/ccd_view_obj_insp_widget.cpp.o
[ 43%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/ccd_view/ccd_view_tools.cpp.o
[ 43%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/ccd_view/python_ccd_view.cpp.o
[ 44%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/compl_list_view/compl_list_view.cpp.o
[ 44%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/compl_list_view/compl_list_view_obj_insp_widget.cpp.o
[ 45%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/compl_list_view/python_compl_list_view.cpp.o
[ 45%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/cube_primitive/cube_primitive.cpp.o
[ 46%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/cube_primitive/cube_primitive_obj_insp_widget.cpp.o
[ 46%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/geom_view/displ_proj.cpp.o
[ 47%] Building CXX object CMakeFiles/qppcad.dir/src/qppcad/ws_item/geom_view/geom_view.cpp.o
In file included from /usr/include/c++/9/bits/stl_algobase.h:64,
from /usr/include/c++/9/vector:60,
from /home/vit/progs/src/qppcad/src/qppcad/core/qppcad.hpp:4,
from /home/vit/progs/src/qppcad/src/qppcad/ws_item/ws_item_behaviour_manager.hpp:4,
from /home/vit/progs/src/qppcad/src/qppcad/ws_item/geom_view/geom_view.cpp:1:
/usr/include/c++/9/bits/stl_pair.h: In instantiation of 'struct std::pair<const std::tuple<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, long unsigned int>, QPainterPath>':
/usr/include/c++/9/ext/aligned_buffer.h:56:65: required from 'struct __gnu_cxx::__aligned_membuf<std::pair<const std::tuple<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, long unsigned int>, QPainterPath> >'
/usr/include/c++/9/bits/stl_tree.h:231:41: required from 'struct std::_Rb_tree_node<std::pair<const std::tuple<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, long unsigned int>, QPainterPath> >'
/usr/include/c++/9/bits/stl_tree.h:1913:21: required from 'void std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_erase(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type) [with _Key = std::tuple<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, long unsigned int>; _Val = std::pair<const std::tuple<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, long unsigned int>, QPainterPath>; _KeyOfValue = std::_Select1st<std::pair<const std::tuple<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, long unsigned int>, QPainterPath> >; _Compare = std::less<std::tuple<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, long unsigned int> >; _Alloc = std::allocator<std::pair<const std::tuple<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, long unsigned int>, QPainterPath> >; std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_Link_type = std::_Rb_tree_node<std::pair<const std::tuple<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, long unsigned int>, QPainterPath> >]'
/usr/include/c++/9/bits/stl_tree.h:995:9: required from 'std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::~_Rb_tree() [with _Key = std::tuple<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, long unsigned int>; _Val = std::pair<const std::tuple<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, long unsigned int>, QPainterPath>; _KeyOfValue = std::_Select1st<std::pair<const std::tuple<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, long unsigned int>, QPainterPath> >; _Compare = std::less<std::tuple<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, long unsigned int> >; _Alloc = std::allocator<std::pair<const std::tuple<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, long unsigned int>, QPainterPath> >]'
/usr/include/c++/9/bits/stl_map.h:300:7: required from 'void __gnu_cxx::new_allocator<_Tp>::destroy(_Up
) [with _Up = qpp::cad::geom_view_labels_subsys_t; _Tp = qpp::cad::geom_view_labels_subsys_t]'
/usr/include/c++/9/bits/alloc_traits.h:497:4: required from 'static void std::allocator_traits<std::allocator<_Tp1> >::destroy(std::allocator_traits<std::allocator<_Tp1> >::allocator_type&, _Up*) [with _Up = qpp::cad::geom_view_labels_subsys_t; _Tp = qpp::cad::geom_view_labels_subsys_t; std::allocator_traits<std::allocator<_Tp1> >::allocator_type = std::allocatorqpp::cad::geom_view_labels_subsys_t]'
/usr/include/c++/9/bits/shared_ptr_base.h:557:35: required from 'void std::_Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp>::_M_dispose() [with _Tp = qpp::cad::geom_view_labels_subsys_t; _Alloc = std::allocatorqpp::cad::geom_view_labels_subsys_t; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]'
/usr/include/c++/9/bits/shared_ptr_base.h:555:7: required from here
/usr/include/c++/9/bits/stl_pair.h:215:11: error: 'std::pair<_T1, _T2>::second' has incomplete type
215 | _T2 second; /// @c second is a copy of the second object
| ^~~~~~
In file included from /bigfat/cs/qt5/5.15.0/gcc_64/include/QtGui/qtransform.h:43,
from /bigfat/cs/qt5/5.15.0/gcc_64/include/QtGui/qimage.h:48,
from /bigfat/cs/qt5/5.15.0/gcc_64/include/QtGui/qpixmap.h:49,
from /bigfat/cs/qt5/5.15.0/gcc_64/include/QtGui/qpainter.h:48,
from /bigfat/cs/qt5/5.15.0/gcc_64/include/QtGui/QPainter:1,
from /home/vit/progs/src/qppcad/src/qppcad/ws_item/ws_item.hpp:15,
from /home/vit/progs/src/qppcad/src/qppcad/ws_item/ws_item_behaviour_manager.hpp:5,
from /home/vit/progs/src/qppcad/src/qppcad/ws_item/geom_view/geom_view.cpp:1:
/bigfat/cs/qt5/5.15.0/gcc_64/include/QtGui/qmatrix.h:54:7: note: forward declaration of 'class QPainterPath'
54 | class QPainterPath;
| ^~~~~~~~~~~~
make[2]: *** [CMakeFiles/qppcad.dir/build.make:904: CMakeFiles/qppcad.dir/src/qppcad/ws_item/geom_view/geom_view.cpp.o] Error 1

3D scene

Are you going to realize export a scene with molecules to some 3d application such as blender, 3dMax or some other?

Crashing

The menu item Tools->Generic tools->Structure similarity cause segfault when any xyz file is imported.

[Sat Apr 13 00:33:08 2019] DEBUG: object_inspector_widget_t::cur_ws_changed
[Sat Apr 13 00:33:08 2019] DEBUG: obj_insp_widget_t::cur_ws_selected_item_changed
[Sat Apr 13 00:33:08 2019] DEBUG ::cur_ws_selected_item_changed(), [num_wsi = 1]
[Sat Apr 13 00:33:08 2019] main_window::workspaces_changed_slot(), total ws = 1
[Sat Apr 13 00:33:08 2019] M_LAST_DIR= /media/vit/6dd540d6-27bf-4c7c-ad56-f2417288ac37/docs
[Sat Apr 13 00:33:08 2019] main_window::workspaces_changed_slot(), total ws = 1
QXcbConnection: XCB error: 3 (BadWindow), sequence: 3247, resource id: 15151365, major code: 40 (TranslateCoords), minor code: 0
/tmp/.mount_qppcady50d8a/AppRun: line 6: 15523 Segmentation fault (core dumped) "${HERE}"/usr/bin/qppcad "$@"

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.