Commit 01f72698 authored by Johan Andruejol's avatar Johan Andruejol

Update to VTK8.2

parent 71808c60
......@@ -12,7 +12,7 @@ endif(${${PROJECT_NAME}_ENABLE_VR})
include(imstkAddExternalProject)
imstk_add_external_project( VTK
GIT_REPOSITORY https://gitlab.kitware.com/vtk/vtk.git
GIT_TAG v8.1.1
GIT_TAG v8.2.0
INSTALL_COMMAND ${SKIP_STEP_COMMAND}
CMAKE_ARGS
-DBUILD_EXAMPLES:BOOL=OFF
......@@ -33,6 +33,7 @@ imstk_add_external_project( VTK
-DVTK_RENDERING_BACKEND:STRING=OpenGL2
-DVTK_WRAP_PYTHON:BOOL=OFF
-DVTK_OPENVR_OBJECT_FACTORY:BOOL=OFF
-DVTK_LEGACY_REMOVE:BOOL=ON
DEPENDENCIES ${VTK_DEPENDENCIES}
RELATIVE_INCLUDE_PATH ""
#VERBOSE
......
......@@ -35,6 +35,64 @@ Texture::getType() const
return m_type;
}
std::string
Texture::getTypeAsString() const
{
return Texture::getTypeAsString(m_type);
}
std::string
Texture::getTypeAsString(Type type)
{
switch (type)
{
case Type::DIFFUSE:
{
return "Diffuse";
}
case Type::NORMAL:
{
return "Normal";
}
case Type::ROUGHNESS:
{
return "Roughness";
}
case Type::METALNESS:
{
return "Metalness";
}
case Type::SUBSURFACE_SCATTERING:
{
return "Subsurface_scattering";
}
case Type::AMBIENT_OCCLUSION:
{
return "Ambient_Occlusion";
}
case Type::CAVITY:
{
return "Cavity";
}
case Type::IRRADIANCE_CUBEMAP:
{
return "Irradiance_Cubemap";
}
case Type::RADIANCE_CUBEMAP:
{
return "Radiance_Cubemap";
}
case Type::BRDF_LUT:
{
return "BRDF_LUT";
}
default:
{
return "None";
}
}
}
const std::string
Texture::getPath() const
{
......
......@@ -69,6 +69,16 @@ public:
///
Type getType() const;
///
/// \brief Get type as a string
///
std::string getTypeAsString() const;
///
/// \brief Convert a Type into a string
///
static std::string getTypeAsString(Type type);
///
/// \brief Get path
///
......
......@@ -27,6 +27,7 @@
#include <vtkVertexGlyphFilter.h>
#include <vtkSphereSource.h>
#include <vtkGlyph3D.h>
#include <vtkVersion.h>
namespace imstk
{
......
......@@ -37,6 +37,7 @@
#include <vtkTexture.h>
#include <vtkProperty.h>
#include <vtkOpenGLPolyDataMapper.h>
#include <vtkVersion.h>
namespace imstk
{
......@@ -199,7 +200,13 @@ VTKSurfaceMeshRenderDelegate::initializeTextures(TextureManager<VTKTextureDelega
*/
// Set texture
m_actor->GetProperty()->SetTexture(currentUnit, textureDelegate->getTexture());
vtkSmartPointer<vtkTexture> currentTexture = textureDelegate->getTexture();
#if (VTK_MAJOR_VERSION <= 8 && VTK_MINOR_VERSION <= 1)
m_actor->GetProperty()->SetTexture(currentUnit, currentTexture);
#else
m_actor->GetProperty()->SetTexture(textureDelegate->getTextureName().c_str(), currentTexture);
#endif
currentUnit++;
}
}
......
......@@ -21,6 +21,8 @@
#include "imstkVTKCustomPolyDataMapper.h"
#include "vtkVersion.h"
namespace imstk
{
vtkStandardNewMacro(VTKCustomPolyDataMapper);
......@@ -218,7 +220,11 @@ VTKCustomPolyDataMapper::SetMapperShaderParameters(
auto diffuseTexture = material->getTexture(Texture::Type::DIFFUSE);
if (diffuseTexture->getPath() != "" && textureCount < textures.size())
{
#if (VTK_MAJOR_VERSION <= 8 && VTK_MINOR_VERSION <= 1)
auto texture = (vtkOpenGLTexture*)textures[currentTexture];
#else
auto texture = (vtkOpenGLTexture*)textures[currentTexture].first;
#endif
helper.Program->SetUniformi("diffuseTexture", texture->GetTextureUnit());
renderWindow->DeactivateTexture(texture->GetTextureObject());
currentTexture++;
......@@ -227,7 +233,11 @@ VTKCustomPolyDataMapper::SetMapperShaderParameters(
auto cubemapTexture = material->getTexture(Texture::Type::CUBEMAP);
if (cubemapTexture->getPath() != "" && textureCount < textures.size())
{
#if (VTK_MAJOR_VERSION <= 8 && VTK_MINOR_VERSION < 2)
auto texture = (vtkOpenGLTexture*)textures[currentTexture];
#else
auto texture = (vtkOpenGLTexture*)textures[currentTexture].first;
#endif
helper.Program->SetUniformi("cubemapTexture", texture->GetTextureUnit());
renderWindow->DeactivateTexture(texture->GetTextureObject());
currentTexture++;
......
......@@ -30,6 +30,12 @@ VTKTextureDelegate::getTexture() const
return m_sourceTexture;
}
const std::string&
VTKTextureDelegate::getTextureName() const
{
return m_textureName;
}
void
VTKTextureDelegate::loadTexture(std::shared_ptr<Texture> texture)
{
......@@ -39,6 +45,10 @@ VTKTextureDelegate::loadTexture(std::shared_ptr<Texture> texture)
m_sourceTexture = vtkSmartPointer<vtkTexture>::New();
// Mangle an unique texture name from the texture type and texture path
std::string manglingSymbol = "::";
m_textureName = texture->getTypeAsString() + manglingSymbol + texture->getPath();
if (texture->getType() == Texture::Type::CUBEMAP)
{
std::string sideNames[6] = {"posx", "negx", "posy", "negy", "posz", "negz"};
......
......@@ -63,6 +63,13 @@ protected:
///
vtkSmartPointer<vtkTexture> getTexture() const;
///
/// \brief Return the VTK texture name
///
/// \returns VTK texture
///
const std::string& getTextureName() const;
///
/// \brief Implementation of texture loading
///
......@@ -70,6 +77,7 @@ protected:
vtkSmartPointer<vtkTexture> m_sourceTexture; ///< VTK texture
std::string m_textureName; ///< VTK texture unique name
};
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment