/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkToolkits.h.in

  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
  All rights reserved.
  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.

     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notice for more information.

=========================================================================*/
#ifndef __vtkToolkits_h
#define __vtkToolkits_h

/* This header is configured by VTK's build process.  */

/*--------------------------------------------------------------------------*/
/* Selected VTK Toolkits                                                    */

#cmakedefine VTK_USE_CHARTS
#cmakedefine VTK_USE_CHEMISTRY
#cmakedefine VTK_USE_VIEWS
#cmakedefine VTK_USE_GEOVIS
#cmakedefine VTK_USE_INFOVIS
#cmakedefine VTK_USE_TEXT_ANALYSIS
#cmakedefine VTK_USE_N_WAY_ARRAYS
#cmakedefine VTK_USE_PARALLEL
#cmakedefine VTK_USE_RENDERING
#cmakedefine VTK_USE_GL2PS

/* The Hybrid and VolumeRendering kits are now switched with Rendering.  */
#ifdef VTK_USE_RENDERING
# define VTK_USE_HYBRID
# define VTK_USE_VOLUMERENDERING
#endif

/*--------------------------------------------------------------------------*/
/* Rendering Configuration                                                  */

#cmakedefine VTK_USE_X
#cmakedefine VTK_USE_MANGLED_MESA
#cmakedefine VTK_USE_OPENGL_LIBRARY
#cmakedefine VTK_OPENGL_HAS_OSMESA
#cmakedefine VTK_USE_OFFSCREEN

#cmakedefine VTK_USE_CG_SHADERS
#cmakedefine VTK_USE_GLSL_SHADERS

#cmakedefine VTK_MATERIALS_DIRS
#ifdef VTK_MATERIALS_DIRS
#  undef VTK_MATERIALS_DIRS
#  define VTK_MATERIALS_DIRS "@VTK_MATERIALS_DIRS@"
#endif

#cmakedefine VTK_USE_VOLUMEPRO_1000

/*--------------------------------------------------------------------------*/
/* Wrapping Configuration                                                   */

#cmakedefine VTK_WRAP_TCL
#cmakedefine VTK_WRAP_PYTHON
#cmakedefine VTK_WRAP_JAVA
#cmakedefine VTK_WRAP_PYTHON_SIP

/*--------------------------------------------------------------------------*/
/* Other Configuration Options                                              */

/* Whether we are building MPI support.  */
#cmakedefine VTK_USE_MPI

/* Should VTK use the display?  */
#cmakedefine VTK_USE_DISPLAY

/* Is VTK_DATA_ROOT defined? */
#cmakedefine VTK_DATA_ROOT
#ifdef VTK_DATA_ROOT
#  undef VTK_DATA_ROOT
#  define VTK_DATA_ROOT "@VTK_DATA_ROOT@"
#endif

/* Should VTK use PostgreSQL?  */
#cmakedefine VTK_USE_POSTGRES

/* Should VTK use MySQL?  */
#cmakedefine VTK_USE_MYSQL

/* Should VTK use ODBC?  */
#cmakedefine VTK_USE_ODBC
#cmakedefine VTK_ODBC_TEST_DSN
#ifdef VTK_ODBC_TEST_DSN
#  undef VTK_ODBC_TEST_DSN
#  define VTK_ODBC_TEST_DSN "@VTK_ODBC_TEST_DSN@"
#endif

/* Is a test PostgreSQL database URL defined? */
#cmakedefine VTK_PSQL_TEST_URL
#ifdef VTK_PSQL_TEST_URL
#  undef VTK_PSQL_TEST_URL
#  define VTK_PSQL_TEST_URL "@VTK_PSQL_TEST_URL@"
#endif

/* Is a test MySQL database URL defined? */
#cmakedefine VTK_MYSQL_TEST_URL
#ifdef VTK_MYSQL_TEST_URL
#  undef VTK_MYSQL_TEST_URL
#  define VTK_MYSQL_TEST_URL "@VTK_MYSQL_TEST_URL@"
#endif

/* Debug leaks support.  */
#cmakedefine VTK_DEBUG_LEAKS

/* Whether VTK is using vfw32 and if it supports video capture */
#cmakedefine VTK_USE_VIDEO_FOR_WINDOWS
#cmakedefine VTK_VFW_SUPPORTS_CAPTURE

/* Whether FFMPEG is found or not  */
#cmakedefine VTK_USE_FFMPEG_ENCODER

/* Whether the user has linked in the MPEG2 library or not  */
#cmakedefine VTK_USE_MPEG2_ENCODER

/* Whether the user wants to use the Ogg/Theora encoder or not */
#cmakedefine VTK_USE_OGGTHEORA_ENCODER

/* Whether the user has built the MetaIO library or not  */
#cmakedefine VTK_USE_METAIO

/* Options for GPUInfo */
#cmakedefine VTK_USE_DIRECTX
#cmakedefine VTK_USE_CORE_GRAPHICS
#cmakedefine VTK_USE_NVCONTROL

/*--------------------------------------------------------------------------*/
/* Setup VTK based on platform features and configuration.                  */

/* OGLR */
/* OGLR is for GLX. It can be on Unix, Mac or Windows */
#if ((defined(VTK_USE_OPENGL_LIBRARY) && defined(VTK_USE_X) && \
      !defined(_WIN32)) ||                                     \
     (defined(VTK_USE_X) && defined(_WIN32)) || \
     (defined(VTK_USE_MANGLED_MESA) && !defined(_WIN32))) && \
     !(defined (VTK_USE_CARBON) || defined(VTK_USE_COCOA))
# define VTK_USE_OGLR
#endif

#if (defined(VTK_OPENGL_HAS_OSMESA) && !defined(VTK_USE_OGLR) &&  \
    !defined(_WIN32) && !defined(VTK_USE_CARBON) && !defined(VTK_USE_COCOA))
# define VTK_USE_OSMESA
#endif

#endif
