Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Trying to import only ospTutorial but failing #568

Open
carlosd-29 opened this issue Aug 11, 2023 · 0 comments
Open

Trying to import only ospTutorial but failing #568

carlosd-29 opened this issue Aug 11, 2023 · 0 comments

Comments

@carlosd-29
Copy link

Hello I am trying to have ospTutorial exists by on the oneAPI repo as another example on how to use OSPRAY but I am running into to some issues.

In ospTutorialGLM.cpp it originally imports #include "ospray/ospray_cpp/ext/glm.h" but I was running into trouble finding the glm package:
/usr/bin/ld: cannot find -lglm

I changed that line and I got:

In file included from /opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Camera.h:6,
                 from /opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp.h:8,
                 from /home/carlos/flex/carlos_hackathon/oneAPI-samples/RenderingToolkit/Tutorial/ospTutorialGLM/ospTutorialGLM.cpp:23:
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/ManagedObject.h: In instantiation of ‘void ospray::cpp::ManagedObject<HANDLE_T, TYPE>::setParam(const string&, const T&) const [with T = glm::vec<3, float, glm::packed_highp>; HANDLE_T = osp::Camera*; OSPDataType TYPE = OSP_CAMERA; std::string = std::__cxx11::basic_string<char>]’:
/home/carlos/flex/carlos_hackathon/oneAPI-samples/RenderingToolkit/Tutorial/ospTutorialGLM/ospTutorialGLM.cpp:67:40:   required from here
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/ManagedObject.h:122:38: error: static assertion failed: Only types corresponding to OSPDataType values can be set as parameters on OSPRay objects. NOTE: Math types (vec, box, linear, affine) are expected to come from rkcommon::math.
  122 |   static_assert(OSPTypeFor<T>::value != OSP_UNKNOWN,
      |                                ~~~~~~^~~~~~~~~~~~~~
In file included from /opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp.h:9,
                 from /home/carlos/flex/carlos_hackathon/oneAPI-samples/RenderingToolkit/Tutorial/ospTutorialGLM/ospTutorialGLM.cpp:23:
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h: In instantiation of ‘void ospray::cpp::Data<SHARED>::validate_element_type() [with T = glm::vec<3, float, glm::packed_highp>; bool SHARED = false]’:
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:131:3:   required from ‘ospray::cpp::Data<SHARED>::Data(const T*, const DIM_T&, const DIM_T&) [with T = glm::vec<3, float, glm::packed_highp>; DIM_T = long unsigned int; bool SHARED = false]’
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:123:36:   required from ‘ospray::cpp::Data<SHARED>::Data(const T*, const DIM_T&) [with T = glm::vec<3, float, glm::packed_highp>; DIM_T = long unsigned int; bool SHARED = false]’
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:167:34:   required from ‘ospray::cpp::Data<SHARED>::Data(const std::vector<T, ALLOC_T>&) [with T = glm::vec<3, float, glm::packed_highp>; ALLOC_T = std::allocator<glm::vec<3, float, glm::packed_highp> >; bool SHARED = false]’
/home/carlos/flex/carlos_hackathon/oneAPI-samples/RenderingToolkit/Tutorial/ospTutorialGLM/ospTutorialGLM.cpp:74:68:   required from here
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:184:38: error: static assertion failed: Only types corresponding to OSPDataType values can be set as elements in OSPRay Data arrays. NOTE: Math types (vec, box, linear, affine) must be inferable as OSP_* enums, which are defined by the OSPTYPEFOR_SPECIALIZATION() macro.
  184 |   static_assert(OSPTypeFor<T>::value != OSP_UNKNOWN,
      |                                ~~~~~~^~~~~~~~~~~~~~
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h: In instantiation of ‘void ospray::cpp::Data<SHARED>::validate_element_type() [with T = glm::vec<4, float, glm::packed_highp>; bool SHARED = false]’:
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:131:3:   required from ‘ospray::cpp::Data<SHARED>::Data(const T*, const DIM_T&, const DIM_T&) [with T = glm::vec<4, float, glm::packed_highp>; DIM_T = long unsigned int; bool SHARED = false]’
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:123:36:   required from ‘ospray::cpp::Data<SHARED>::Data(const T*, const DIM_T&) [with T = glm::vec<4, float, glm::packed_highp>; DIM_T = long unsigned int; bool SHARED = false]’
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:167:34:   required from ‘ospray::cpp::Data<SHARED>::Data(const std::vector<T, ALLOC_T>&) [with T = glm::vec<4, float, glm::packed_highp>; ALLOC_T = std::allocator<glm::vec<4, float, glm::packed_highp> >; bool SHARED = false]’
/home/carlos/flex/carlos_hackathon/oneAPI-samples/RenderingToolkit/Tutorial/ospTutorialGLM/ospTutorialGLM.cpp:75:64:   required from here
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:184:38: error: static assertion failed: Only types corresponding to OSPDataType values can be set as elements in OSPRay Data arrays. NOTE: Math types (vec, box, linear, affine) must be inferable as OSP_* enums, which are defined by the OSPTYPEFOR_SPECIALIZATION() macro.
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h: In instantiation of ‘void ospray::cpp::Data<SHARED>::validate_element_type() [with T = glm::vec<3, unsigned int, glm::packed_highp>; bool SHARED = false]’:
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:131:3:   required from ‘ospray::cpp::Data<SHARED>::Data(const T*, const DIM_T&, const DIM_T&) [with T = glm::vec<3, unsigned int, glm::packed_highp>; DIM_T = long unsigned int; bool SHARED = false]’
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:123:36:   required from ‘ospray::cpp::Data<SHARED>::Data(const T*, const DIM_T&) [with T = glm::vec<3, unsigned int, glm::packed_highp>; DIM_T = long unsigned int; bool SHARED = false]’
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:167:34:   required from ‘ospray::cpp::Data<SHARED>::Data(const std::vector<T, ALLOC_T>&) [with T = glm::vec<3, unsigned int, glm::packed_highp>; ALLOC_T = std::allocator<glm::vec<3, unsigned int, glm::packed_highp> >; bool SHARED = false]’
/home/carlos/flex/carlos_hackathon/oneAPI-samples/RenderingToolkit/Tutorial/ospTutorialGLM/ospTutorialGLM.cpp:76:57:   required from here
/opt/intel/oneapi/ospray/2.12.0/include/ospray/ospray_cpp/Data.h:184:38: error: static assertion failed: Only types corresponding to OSPDataType values can be set as elements in OSPRay Data arrays. NOTE: Math types (vec, box, linear, affine) must be inferable as OSP_* enums, which are defined by the OSPTYPEFOR_SPECIALIZATION() macro.
make[2]: *** [CMakeFiles/ospTutorialGLM.dir/build.make:63: CMakeFiles/ospTutorialGLM.dir/ospTutorialGLM.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/ospTutorialGLM.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

I'm pretty sure I have glm package being added in the CMakeLists.txt:

find_package(glm REQUIRED)
if(TARGET glm::glm)
  set(GLM_TARGET glm::glm)
else()
  set(GLM_TARGET glm)
endif()

And I link it in the file as well.

If someone has some insight as to why either approach is wrong or if there is a separate component of the ospray build that I should include to get it to work standalone, it'd be greatly appreciated.

I am running this on Ubuntu WSL

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant