Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
OpenFlipper-Free
OpenFlipper
Commits
02048eaa
Commit
02048eaa
authored
Feb 06, 2019
by
Jan Möbius
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replaced the glutSolidSphere in Manipulator Node with own implementation
parent
403a73bf
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
29 additions
and
922 deletions
+29
-922
CoreApp/CMakeLists.txt
CoreApp/CMakeLists.txt
+0
-3
OpenFlipper.cc
OpenFlipper.cc
+0
-4
PluginLib/CMakeLists.txt
PluginLib/CMakeLists.txt
+0
-3
cmake/CMakeLists.txt
cmake/CMakeLists.txt
+1
-6
cmake/FindGLUT.cmake
cmake/FindGLUT.cmake
+0
-138
cmake/plugin.cmake
cmake/plugin.cmake
+1
-5
cmake/type.cmake
cmake/type.cmake
+0
-3
libs_required/ACG/CMakeLists.txt
libs_required/ACG/CMakeLists.txt
+3
-10
libs_required/ACG/Glut/GlutExaminer.cc
libs_required/ACG/Glut/GlutExaminer.cc
+0
-213
libs_required/ACG/Glut/GlutExaminer.hh
libs_required/ACG/Glut/GlutExaminer.hh
+0
-108
libs_required/ACG/Glut/GlutViewer.cc
libs_required/ACG/Glut/GlutViewer.cc
+0
-289
libs_required/ACG/Glut/GlutViewer.hh
libs_required/ACG/Glut/GlutViewer.hh
+0
-136
libs_required/ACG/Scenegraph/ManipulatorNode.cc
libs_required/ACG/Scenegraph/ManipulatorNode.cc
+24
-4
No files found.
CoreApp/CMakeLists.txt
View file @
02048eaa
...
...
@@ -10,7 +10,6 @@ include_directories (
${
CMAKE_CURRENT_BINARY_DIR
}
${
OPENGL_INCLUDE_DIR
}
${
GLEW_INCLUDE_DIR
}
${
GLUT_INCLUDE_DIR
}
)
# Linking for apple is special here as the linker pulls in the dependencies, we have to set them like in PluginLib!
...
...
@@ -156,7 +155,6 @@ if (WIN32)
-DUSEACG
-DPLUGINLIBDLL
-DUSEPLUGINLIBDLL
-DFREEGLUT_LIB_PRAGMAS=0
)
endif
()
...
...
@@ -228,7 +226,6 @@ target_link_libraries (${OPENFLIPPER_PRODUCT_STRING}
${
QT_LIBRARIES
}
${
OPENGL_LIBRARIES
}
${
GLEW_LIBRARY
}
${
GLUT_LIBRARIES
}
${
COREAPP_ADDITIONAL_LINK_LIBRARIES
}
${
OPENFLIPPER_STATIC_PLUGINS
}
)
...
...
OpenFlipper.cc
View file @
02048eaa
...
...
@@ -762,10 +762,6 @@ int main(int argc, char **argv)
return
-
1
;
}
#ifndef __APPLE__
glutInit
(
&
argc
,
argv
);
#endif
// create core ( this also reads the ini files )
Core
*
w
=
new
Core
(
);
#ifdef PYTHON_ENABLED
...
...
PluginLib/CMakeLists.txt
View file @
02048eaa
...
...
@@ -43,7 +43,6 @@ include_directories (
${
CMAKE_CURRENT_BINARY_DIR
}
${
OPENGL_INCLUDE_DIR
}
${
GLEW_INCLUDE_DIR
}
${
GLUT_INCLUDE_DIR
}
${
ADDITIONAL_PLUGINLIB_INCS
}
${
PACKAGE_INCLUDES
}
)
...
...
@@ -63,7 +62,6 @@ if (WIN32)
-DPLUGINLIBDLL
-DACGDLL
-DUSEACG
-DFREEGLUT_LIB_PRAGMAS=0
)
endif
()
...
...
@@ -145,7 +143,6 @@ target_link_libraries (OpenFlipperPluginLib
${
QT_LIBRARIES
}
${
OPENGL_LIBRARIES
}
${
GLEW_LIBRARY
}
${
GLUT_LIBRARIES
}
${
FTGL_LIBS
}
${
ADDITIONAL_PLUGINLIB_LIBS
}
)
...
...
cmake/CMakeLists.txt
View file @
02048eaa
...
...
@@ -202,7 +202,7 @@ include (ACGOutput)
acg_openmp
()
# check for OpenGL, GLEW
and GLUT
as our required dependencies
# check for OpenGL, GLEW as our required dependencies
find_package
(
OpenGL
)
if
(
NOT OPENGL_FOUND
)
message
(
FATAL_ERROR
"OpengGL not found!"
)
...
...
@@ -213,11 +213,6 @@ if (NOT GLEW_FOUND)
message
(
FATAL_ERROR
"GLEW not found!"
)
endif
()
find_package
(
GLUT
)
if
(
NOT GLUT_FOUND
)
message
(
FATAL_ERROR
"GLUT not found!"
)
endif
()
# using the internal openmesh delivered by the svn repo (default) or use some external installation
set
(
USE_INTERNAL_OPENMESH ON CACHE BOOL
"Use and build internal version of OpenMesh found in libs_required"
)
...
...
cmake/FindGLUT.cmake
deleted
100644 → 0
View file @
403a73bf
# - try to find glut library and include files
# GLUT_INCLUDE_DIR, where to find GL/glut.h, etc.
# GLUT_LIBRARIES, the libraries to link against
# GLUT_FOUND, If false, do not try to use GLUT.
# Also defined, but not for general use are:
# GLUT_glut_LIBRARY = the full path to the glut library.
# GLUT_Xmu_LIBRARY = the full path to the Xmu library.
# GLUT_Xi_LIBRARY = the full path to the Xi Library.
#=============================================================================
# Copyright 2001-2009 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distributed this file outside of CMake, substitute the full
# License text for the above reference.)
IF
(
WIN32
)
# Check if the base path is set
if
(
NOT CMAKE_WINDOWS_LIBS_DIR
)
# This is the base directory for windows library search used in the finders we shipp.
set
(
CMAKE_WINDOWS_LIBS_DIR
"c:\libs"
CACHE STRING
"Default Library search dir on windows."
)
endif
()
if
(
CMAKE_GENERATOR MATCHES
"^Visual Studio 11.*Win64"
)
SET
(
VS_SEARCH_PATH
"
${
CMAKE_WINDOWS_LIBS_DIR
}
/vs2012/x64/"
)
elseif
(
CMAKE_GENERATOR MATCHES
"^Visual Studio 11.*"
)
SET
(
VS_SEARCH_PATH
"
${
CMAKE_WINDOWS_LIBS_DIR
}
/vs2012/x32/"
)
elseif
(
CMAKE_GENERATOR MATCHES
"^Visual Studio 12.*Win64"
)
SET
(
VS_SEARCH_PATH
"
${
CMAKE_WINDOWS_LIBS_DIR
}
/vs2013/x64/"
)
elseif
(
CMAKE_GENERATOR MATCHES
"^Visual Studio 12.*"
)
SET
(
VS_SEARCH_PATH
"
${
CMAKE_WINDOWS_LIBS_DIR
}
/vs2013/x32/"
)
elseif
(
CMAKE_GENERATOR MATCHES
"^Visual Studio 14.*Win64"
)
SET
(
VS_SEARCH_PATH
"
${
CMAKE_WINDOWS_LIBS_DIR
}
/vs2015/x64/"
)
elseif
(
CMAKE_GENERATOR MATCHES
"^Visual Studio 14.*"
)
SET
(
VS_SEARCH_PATH
"
${
CMAKE_WINDOWS_LIBS_DIR
}
/vs2015/x32/"
)
elseif
(
CMAKE_GENERATOR MATCHES
"^Visual Studio 15.*Win64"
)
SET
(
VS_SEARCH_PATH
"
${
CMAKE_WINDOWS_LIBS_DIR
}
/vs2017/x64/"
)
elseif
(
CMAKE_GENERATOR MATCHES
"^Visual Studio 15.*"
)
SET
(
VS_SEARCH_PATH
"
${
CMAKE_WINDOWS_LIBS_DIR
}
/vs2017/x32/"
)
endif
()
FIND_PATH
(
GLUT_INCLUDE_DIR NAMES GL/glut.h
PATHS
${
GLUT_ROOT_PATH
}
/include
"
${
CMAKE_WINDOWS_LIBS_DIR
}
/glut-3.7/include"
"
${
VS_SEARCH_PATH
}
/freeglut-3.0.0/include"
"
${
VS_SEARCH_PATH
}
/freeglut-2.8.1/include"
)
FIND_LIBRARY
(
GLUT_release_LIBRARY NAMES glut32 glut freeglut
PATHS
${
OPENGL_LIBRARY_DIR
}
${
GLUT_ROOT_PATH
}
/Release
"
${
CMAKE_WINDOWS_LIBS_DIR
}
/glut-3.7/lib"
"
${
VS_SEARCH_PATH
}
/freeglut-3.0.0/lib"
"
${
VS_SEARCH_PATH
}
/freeglut-2.8.1/lib"
)
GET_FILENAME_COMPONENT
(
GLUT_LIBRARY_DIR
${
GLUT_release_LIBRARY
}
PATH
)
FIND_LIBRARY
(
GLUT_debug_LIBRARY NAMES glut32d glutd freeglutd
PATHS
${
OPENGL_LIBRARY_DIR
}
${
GLUT_ROOT_PATH
}
/Release
"
${
CMAKE_WINDOWS_LIBS_DIR
}
/glut-3.7/lib"
"
${
VS_SEARCH_PATH
}
/freeglut-3.0.0/lib"
"
${
VS_SEARCH_PATH
}
/freeglut-2.8.1/lib"
)
set
(
GLUT_glut_LIBRARY optimized
${
GLUT_release_LIBRARY
}
debug
${
GLUT_debug_LIBRARY
}
CACHE STRING
"Path to the glut libraries"
)
ELSE
(
WIN32
)
IF
(
APPLE
)
# These values for Apple could probably do with improvement.
FIND_PATH
(
GLUT_INCLUDE_DIR glut.h
/System/Library/Frameworks/GLUT.framework/Versions/A/Headers
${
OPENGL_LIBRARY_DIR
}
)
SET
(
GLUT_glut_LIBRARY
"-framework GLUT"
CACHE STRING
"GLUT library for OSX"
)
SET
(
GLUT_cocoa_LIBRARY
"-framework Cocoa"
CACHE STRING
"Cocoa framework for OSX"
)
ELSE
(
APPLE
)
FIND_PATH
(
GLUT_INCLUDE_DIR GL/glut.h
/usr/include/GL
/usr/openwin/share/include
/usr/openwin/include
/opt/graphics/OpenGL/include
/opt/graphics/OpenGL/contrib/libglut
)
FIND_LIBRARY
(
GLUT_glut_LIBRARY glut
/usr/openwin/lib
)
FIND_LIBRARY
(
GLUT_Xi_LIBRARY Xi
/usr/openwin/lib
)
FIND_LIBRARY
(
GLUT_Xmu_LIBRARY Xmu
/usr/openwin/lib
)
ENDIF
(
APPLE
)
ENDIF
(
WIN32
)
SET
(
GLUT_FOUND
"NO"
)
IF
(
GLUT_INCLUDE_DIR
)
IF
(
GLUT_glut_LIBRARY
)
# Is -lXi and -lXmu required on all platforms that have it?
# If not, we need some way to figure out what platform we are on.
SET
(
GLUT_LIBRARIES
${
GLUT_glut_LIBRARY
}
${
GLUT_Xmu_LIBRARY
}
${
GLUT_Xi_LIBRARY
}
${
GLUT_cocoa_LIBRARY
}
)
SET
(
GLUT_FOUND
"YES"
)
#The following deprecated settings are for backwards compatibility with CMake1.4
SET
(
GLUT_LIBRARY
${
GLUT_LIBRARIES
}
)
SET
(
GLUT_INCLUDE_PATH
${
GLUT_INCLUDE_DIR
}
)
ENDIF
(
GLUT_glut_LIBRARY
)
ENDIF
(
GLUT_INCLUDE_DIR
)
MARK_AS_ADVANCED
(
GLUT_INCLUDE_DIR
GLUT_glut_LIBRARY
GLUT_Xmu_LIBRARY
GLUT_Xi_LIBRARY
)
cmake/plugin.cmake
View file @
02048eaa
...
...
@@ -528,7 +528,6 @@ function (_build_openflipper_plugin plugin)
${${
_PLUGIN
}
_INCDIRS
}
${
OPENGL_INCLUDE_DIR
}
${
GLEW_INCLUDE_DIR
}
${
GLUT_INCLUDE_DIR
}
${
CMAKE_BINARY_DIR
}
/OpenFlipper/PluginLib
${
PACKAGE_INCLUDES
}
${${
_PLUGIN
}
_TYPE_INCLUDES
}
...
...
@@ -693,15 +692,12 @@ function (_build_openflipper_plugin plugin)
)
if
(
WIN32
)
# Visual studio requires our plugins to link with GLUT
find_package
(
GLUT
)
# generate dllinport defines
add_definitions
(
-DACGDLL -DUSEACG -DPLUGINLIBDLL -DUSEPLUGINLIBDLL
-DFREEGLUT_LIB_PRAGMAS=0
)
add_definitions
(
-DACGDLL -DUSEACG -DPLUGINLIBDLL -DUSEPLUGINLIBDLL
)
target_link_libraries
(
Plugin-
${
plugin
}
${
OPENMESH_LIBRARIES
}
ACG
OpenFlipperPluginLib
${
GLUT_LIBRARIES
}
)
# copy plugin dll file to "Build" directory
...
...
cmake/type.cmake
View file @
02048eaa
...
...
@@ -17,7 +17,6 @@ if (WIN32)
-DBUILDOBJECTTYPEDLL
-DACGDLL
-DUSEACG
-DFREEGLUT_LIB_PRAGMAS=0
)
endif
()
...
...
@@ -43,7 +42,6 @@ include_directories (
${
CMAKE_CURRENT_BINARY_DIR
}
${
OPENGL_INCLUDE_DIR
}
${
GLEW_INCLUDE_DIR
}
${
GLUT_INCLUDE_DIR
}
)
# remove template cc files from source file list
...
...
@@ -73,7 +71,6 @@ target_link_libraries (${TYPENAME}
${
QT_LIBRARIES
}
${
OPENGL_LIBRARIES
}
${
GLEW_LIBRARY
}
${
GLUT_LIBRARIES
}
OpenFlipperPluginLib
)
libs_required/ACG/CMakeLists.txt
View file @
02048eaa
...
...
@@ -16,7 +16,7 @@ endif ()
acg_openmp
()
# check for OpenGL, GLEW
and GLUT
as our required dependencies
# check for OpenGL, GLEW as our required dependencies
find_package
(
OpenGL
)
if
(
NOT OPENGL_FOUND
)
message
(
FATAL_ERROR
"OpengGL not found!"
)
...
...
@@ -27,11 +27,6 @@ if (NOT GLEW_FOUND)
message
(
FATAL_ERROR
"GLEW not found!"
)
endif
()
find_package
(
GLUT
)
if
(
NOT GLUT_FOUND
)
message
(
FATAL_ERROR
"GLUT not found!"
)
endif
()
find_package
(
OpenMesh
)
if
(
NOT OPENMESH_FOUND
)
message
(
FATAL_ERROR
"OpenMesh not found!"
)
...
...
@@ -42,8 +37,7 @@ set(INCLUDE_DIRS ${OPENMESH_INCLUDE_DIRS}
${
CMAKE_CURRENT_SOURCE_DIR
}
/ShaderUtils
${
CMAKE_CURRENT_BINARY_DIR
}
${
OPENGL_INCLUDE_DIR
}
${
GLEW_INCLUDE_DIR
}
${
GLUT_INCLUDE_DIR
}
)
${
GLEW_INCLUDE_DIR
}
)
set
(
ADDITIONAL_LINK_LIBRARIES
""
)
set
(
ADDITIONAL_BUILD_DIRS
""
)
...
...
@@ -100,7 +94,7 @@ set (directories
# generate dllexport macros on windows
if
(
WIN32
)
add_definitions
(
-DACGDLL
-DFREEGLUT_LIB_PRAGMAS=0
)
add_definitions
(
-DACGDLL
)
remove_definitions
(
-DUSEACG
)
endif
()
...
...
@@ -146,7 +140,6 @@ target_link_libraries ( ACG ${OPENMESH_LIBRARIES}
${
QT_LIBRARIES
}
${
OPENGL_LIBRARIES
}
${
GLEW_LIBRARY
}
${
GLUT_LIBRARIES
}
${
ADDITIONAL_LINK_LIBRARIES
}
)
#===================================================================
...
...
libs_required/ACG/Glut/GlutExaminer.cc
deleted
100644 → 0
View file @
403a73bf
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
//=============================================================================
//
// CLASS GlutExaminer - IMPLEMENTATION
//
//=============================================================================
//== INCLUDES =================================================================
#include "GlutExaminer.hh"
#include "../Utils/StopWatch.hh"
//== NAMESPACES ===============================================================
namespace
ACG
{
//== IMPLEMENTATION ==========================================================
GlutExaminer
::
GlutExaminer
(
const
char
*
_title
,
int
_width
,
int
_height
)
:
GlutViewer
(
_title
,
_width
,
_height
),
trackball_
(
glstate_
),
center_
(
Vec3f
(
0.0
,
0.0
,
0.0
)),
radius_
(
1.0
)
{
init
();
}
//-----------------------------------------------------------------------------
void
GlutExaminer
::
init
()
{
trackball_
.
set_center
(
Vec3f
(
0
,
0
,
0
));
}
//-----------------------------------------------------------------------------
void
GlutExaminer
::
draw
()
{
ACG
::
GLState
::
enable
(
GL_LIGHTING
);
ACG
::
GLState
::
shadeModel
(
GL_SMOOTH
);
glutSolidTeapot
(
0.5
);
}
//-----------------------------------------------------------------------------
void
GlutExaminer
::
mouse
(
int
button
,
int
state
,
int
x
,
int
y
)
{
if
(
state
==
GLUT_DOWN
)
trackball_
.
mouse_press
(
button
,
x
,
y
);
else
trackball_
.
mouse_release
(
button
,
x
,
y
);
glutPostRedisplay
();
}
//-----------------------------------------------------------------------------
void
GlutExaminer
::
motion
(
int
x
,
int
y
)
{
trackball_
.
mouse_move
(
x
,
y
);
glutPostRedisplay
();
}
//-----------------------------------------------------------------------------
void
GlutExaminer
::
keyboard
(
int
key
,
int
x
,
int
y
)
{
switch
(
key
)
{
case
'f'
:
{
std
::
cerr
<<
"Performance test: "
;
double
fps
=
measure_fps
();
std
::
cerr
<<
fps
<<
" FPS
\n
"
;
break
;
}
default:
{
GlutViewer
::
keyboard
(
key
,
x
,
y
);
break
;
}
}
}
//-----------------------------------------------------------------------------
void
GlutExaminer
::
setup_scene
(
const
Vec3f
&
_center
,
float
_radius
)
{
center_
=
_center
;
radius_
=
_radius
;
trackball_
.
set_center
(
_center
);
near_
=
0.01
f
*
radius_
;
far_
=
10.0
f
*
radius_
;
update_projection
();
view_all
();
}
//-----------------------------------------------------------------------------
void
GlutExaminer
::
view_all
()
{
ACG
::
Vec3d
t
=
(
-
(
glstate_
.
modelview
().
transform_point
(
center_
))
-
Vec3d
(
0.0
f
,
0.0
f
,
3.0
f
*
radius_
));
glstate_
.
translate
(
t
[
0
],
t
[
1
],
t
[
2
],
MULT_FROM_LEFT
);
}
//-----------------------------------------------------------------------------
double
GlutExaminer
::
measure_fps
()
{
const
Vec3d
t
=
glstate_
.
modelview
().
transform_point
(
center_
);
glMatrixMode
(
GL_MODELVIEW
);
glPushMatrix
();
StopWatch
timer
;
timer
.
start
();
for
(
int
i
=
0
;
i
<
72
;
++
i
)
{
glstate_
.
translate
(
-
t
[
0
],
-
t
[
1
],
-
t
[
2
],
MULT_FROM_LEFT
);
glstate_
.
rotate
(
5.0
f
,
0.0
f
,
1.0
f
,
0.0
f
,
MULT_FROM_LEFT
);
glstate_
.
translate
(
t
[
0
],
t
[
1
],
t
[
2
],
MULT_FROM_LEFT
);
display
();
}
glFinish
();
double
elapsed
=
timer
.
stop
();
glPopMatrix
();
glutPostRedisplay
();
return
(
1000.0
/
elapsed
*
72.0
);
}
//=============================================================================
}
// namespace ACG
//=============================================================================
libs_required/ACG/Glut/GlutExaminer.hh
deleted
100644 → 0
View file @
403a73bf
/*===========================================================================*\
* *
* OpenFlipper *
* Copyright (c) 2001-2015, RWTH-Aachen University *
* Department of Computer Graphics and Multimedia *
* All rights reserved. *
* www.openflipper.org *
* *
*---------------------------------------------------------------------------*
* This file is part of OpenFlipper. *
*---------------------------------------------------------------------------*
* *
* Redistribution and use in source and binary forms, with or without *
* modification, are permitted provided that the following conditions *
* are met: *
* *
* 1. Redistributions of source code must retain the above copyright notice, *
* this list of conditions and the following disclaimer. *
* *
* 2. Redistributions in binary form must reproduce the above copyright *
* notice, this list of conditions and the following disclaimer in the *
* documentation and/or other materials provided with the distribution. *
* *
* 3. Neither the name of the copyright holder nor the names of its *
* contributors may be used to endorse or promote products derived from *
* this software without specific prior written permission. *
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
* *
\*===========================================================================*/
//=============================================================================
//
// CLASS GlutExaminer
//
//=============================================================================
#ifndef ACG_GLUTEXAMINER_HH
#define ACG_GLUTEXAMINER_HH
//== INCLUDES =================================================================
#include "GlutViewer.hh"
#include "../GL/GLTrackball.hh"
#include "../Config/ACGDefines.hh"
//== NAMESPACES ===============================================================
namespace
ACG
{
//== CLASS DEFINITION =========================================================
class
ACGDLLEXPORT
GlutExaminer
:
public
GlutViewer
{
public:
GlutExaminer
(
const
char
*
_title
,
int
_width
,
int
_height
);
~
GlutExaminer
()
{}
void
setup_scene
(
const
Vec3f
&
_center
,
float
_radius
);
void
view_all
();
double
measure_fps
();
protected:
virtual
void
init
();
virtual
void
draw
();
virtual
void
motion
(
int
x
,
int
y
);
virtual
void
mouse
(
int
button
,
int
state
,
int
x
,
int
y
);
virtual
void
keyboard
(
int
key
,
int
x
,
int
y
);
protected:
GLTrackball
trackball_
;
Vec3d
center_
;
float
radius_
;
};
//=============================================================================