set(OBJ_SRCS
  objMesh.cpp
	objMesh-disjointSet.cpp
  objMeshBinaryLoader.cpp
  objMeshEncode.cpp
	objMeshGraph.cpp
	objMeshOrientable.cpp
	simpleSphere.cpp
	#triangle-closestPoint.cpp
	tribox3.cpp
)
set(OBJ_HDRS
  objMesh-disjointSet.h
  objMesh.h
  objMeshBinaryLoader.h
  objMeshEncode.h
  objMeshGraph.h
  objMeshOrientable.h
  simpleSphere.h
  tribox3.h
)
if (VegaFEM_ENABLE_OpenGL_SUPPORT)
  set(OBJ_SRCS
    ${OBJ_SRCS}
	  boundingBox.cpp
	  octree.cpp
	  triangle.cpp
	  objMeshOctree.cpp
	  objMeshOffsetVoxels.cpp
    objMeshRender.cpp
  )
  set(OBJ_HDRS
    ${OBJ_HDRS}
    boundingBox.h
    octree.h
    triangle.h
    objMeshOctree.h
    objMeshOffsetVoxels.h
    objMeshRender.h
  )
endif()

vega_add_library(objMesh
  SOURCES ${OBJ_SRCS}
  PUBLIC_HEADERS ${OBJ_HDRS}
)
target_link_libraries(objMesh
  PUBLIC
    minivector
    matrixIO
    imageIO
    sparseMatrix
    graph
)
if (VegaFEM_ENABLE_OpenGL_SUPPORT)
  target_link_libraries(objMesh
    PUBLIC
      ${OPENGL_gl_LIBRARY}
      ${OPENGL_glu_LIBRARY}
  )
endif()
