Commit ed423f08 authored by Russ Fish's avatar Russ Fish

Tamara Munzner's HyperViewer library from Stanford

parent e94a81b1
Thu May 9 17:44:39 2002
Add functions to switch link color policy, so all links can easily be
set to a single color or to inherit the color of their parent. Bump
version number to 1.1.2.
----------
Fri Feb 1 03:52:32 2002
Fix bug with the addNode/addLink routines (used when loading graphs
from memory instead of disk file). Bump version number to 1.1.1.
Tue Mar 27 16:08:30 2001 TMM
Add Linux Makefiles, bump version number to 1.1, update documentation
accordingly.
----------
Sat Oct 23 14:48:46 1999 TMM
Repack up the distribution, somehow Makefile.* files got left out
----------
Wed Oct 6 17:59:28 1999 TMM
Go back to the NAMESPACEHACK approach of using preprocessor defines
since apparently some compilers aren't happy with "using namespace
std;"
Add a bit more Makefile documentation, etc.
Convert the Release include file pathname from absolute to relative in
the Windoze VisualC++ settings.
----------
Mon Oct 4 22:25:40 1999 TMM
currently tested: Irix Xt, Irix GLUT, Windows VisualC++ (OpenGL)
conjectured to work: FreeBSD Xt Mesa, Irix ViewKit
more Makefile munging.
Groups are all now enabled by default. The previous policy of forcing
explicit enabling was a major source of bugs in application programs.
Now the application programmer can explicitly turn them off at will,
but no action means that everything is drawn.
Fixed layout bugs which were exposed by certain data sets. Minor startup
optimizations.
Ported to Windows VisualC++.
Contributor:
Matt Gressek, Agenetics, matt@agenetics.com
Borland Windows port
Merged dwm's FreeBSD port into Windows Borland port.
----------
Sun Feb 21 02:06:17 1999
Contributor:
Daniel W. McRobb, CAIDA, dwm@caida.org
This code has been modified by Daniel W. McRobb at CAIDA
(dwm@caida.org). The Ok* classes are gone, replaced by STL and standard
C++ classes (array types replaced by STL <vector>, OkStr replaced by
<string>). This eliminated the troublesome large macros, and made thing
much easier to port to a GNU environment. Currently the glut interface
works on Solaris 2.7. The rest will be fixed and tested soon, except
ViewKit (since I don't have ViewKit anywhere). Near-term porting target
are FreeBSD 3.0 and Linux using X/OGL from Xi Graphics (see
http://www.xig.com/) and Linux using Mesa/GLIDE. In all likelihood,
plain old Mesa (no hardware accelerated 3D) will work on speedy machines
too since the drawing rate isn't tremendous (hypviewer is mostly optimized
for interaction and does minimal drawing during user interaction).
----------
Mon Oct 19 15:26:17 1998 TMM
This version of the H3/H3Viewer source has been tested to compile and
run on SGIs. The main library code should work across multiple
platforms. Device dependencies are segregated by #ifdef barriers.
Currently, the flavors that work are GLUT (Mark Kilgard's window
system independent toolkit) and ViewKit. I've started making an
Xt-only version, which should be quite similar to the Vk version, but
that's not ready yet. Both the Vk and the Xt versions use the GLX
defines.
The example application code has more device dependencies. Both the Vk
and Xt versions are in the vk directory. The glut version is in its
own directory. There's also a simplevk app that's more barebones than
the vk version.
Since I haven't tried compiling and running on anything but an SGI
yet, I'm sure there are a lot of unfound device dependencies. I got
most of the way through fixing the warnings/errors from using g++
instead of SGI's CC, but that's not quite finished either.
The GLUT version *should* work on Windows, just download the libraries
from http://reality.sgi.com/opengl/glut3/glut3.html. I haven't yet
tried compiling the code using VisualC++.
----------
1 Oct 1998 TMM
pack up source for distribution
* merge hash table and okds utility libraries into main source.
* completely revamp Makefile and directory structure.
* clean up warnings.
The new Makefile structure supports multiple flavors.
Currently Makefiles will compile and run for the GLUT and ViewKit
flavors of code.
H3Viewer includes portions of geomview/OOGL. Copyright (c) 1992 The
Geometry Center; University of Minnesota, 1300 South Second Street;
Minneapolis, MN 55454, USA
geomview/OOGL is free software; you can redistribute it and/or modify it
only under the terms given in the file COPYING, which you should have
received along with this file. This and other related software may be
obtained via anonymous ftp from geom.umn.edu; email: software@geom.umn.edu.
The incorporated portions of geomview/OOGL have been modified by Silicon
Graphics, Inc. in 1998 for the purpose of the creation of this software.
Original Geometry Center Copyright Notice:
Copyright (c) 1993
The National Science and Technology Research Center for
Computation and Visualization of Geometric Structures
(The Geometry Center)
University of Minnesota
1300 South Second Street
Minneapolis, MN 55454 USA
email: software@geom.umn.edu
This software is copyrighted as noted above. It is free software and
may be obtained via anonymous ftp from geom.umn.edu. It may be freely
copied, modified, and redistributed under the following conditions:
1. All copyright notices must remain intact in all files.
2. A copy of this file (COPYING) must be distributed along with any
copies which you redistribute; this includes copies which you have
modified, or copies of programs or other software products which
include this software.
3. If you modify this software, you must include a notice giving the
name of the person performing the modification, the date of
modification, and the reason for such modification.
4. When distributing modified versions of this software, or other
software products which include this software, you must provide
notice that the original source code may be obtained as noted
above.
5. There is no warranty or other guarantee of fitness for this
software, it is provided solely "as is". Bug reports or fixes may
be sent to the email address above; the authors may or may not act
on them as they desire.
If you use an image produced by this software in a publication or
presentation, we request that you credit the Geometry Center with a
notice such as the following:
Figures 1, 2, and 5-300 were generated with software written at the
Geometry Center, University of Minnesota.
Copyright © 1998, Silicon Graphics, Inc. -- ALL RIGHTS RESERVED
Permission is granted to copy, modify, use and distribute this software and
accompanying documentation free of charge provided (i) you include the
entirety of this reservation of rights notice in all such copies, (ii) you
comply with any additional or different obligations and/or use restrictions
specified by any third party owner or supplier of the software and
accompanying documentation in other notices that may be included with the
software, (iii) you do not charge any fee for the use or redistribution of
the software or accompanying documentation, or modified versions
thereof.
Contact sitemgr@sgi.com for information on licensing this software for
commercial use. Contact munzner@cs.stanford.edu for technical
questions.
SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH RESPECT TO THIS SOFTWARE,
EXPRESS, IMPLIED, OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ALL
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
NONINFRINGEMENT. SILICON GRAPHICS SHALL NOT BE LIABLE FOR ANY SPECIAL,
INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST
REVENUES, LOST PROFITS, OR LOSS OF PROSPECTIVE ECONOMIC ADVANTAGE,
RESULTING FROM THE USE OR MISUSE OF THIS SOFTWARE.
U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
Use, duplication or disclosure by the Government is subject to restrictions
as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the
Rights in Technical Data and Computer Software clause at DFARS 252.227-7013
and/or in similar or successor clauses in the FAR, or the DOD or NASA FAR
Supplement. Unpublished - rights reserved under the Copyright Laws of
United States. Contractor/manufacturer is Silicon Graphics, Inc., 2011 N.
Shoreline Blvd. Mountain View,
CA 94039-7311.
This software includes portions of geomview/OOGL. Copyright (c) 1992 The
Geometry Center; University of Minnesota, 1300 South Second Street;
Minneapolis, MN 55454, USA
geomview/OOGL is free software; you can redistribute it and/or modify it
only under the terms given in the file COPYING, which you should have
received along with this file. This and other related software may be
obtained via anonymous ftp from geom.umn.edu; email: software@geom.umn.edu.
The incorporated portions of geomview/OOGL have been modified by Silicon
Graphics, Inc. in 1998 for the purpose of the creation of this software.
all: descend
include Makefile.main
descend:
@for i in $(SUBDIRS); do (cd $$i; $(MAKE)); done
install:
cd src; ${MAKE} install
cd include; ${MAKE} install
clean:
@for i in $(SUBDIRS); do (cd $$i; $(MAKE) clean); done
MKTHEDIR = if test ! -d $(ARCH); then $(MKDIR) $(ARCH); fi
OBJS := $(addprefix $(ARCH)/, $(FILES))
OBJS := $(addsuffix $(OBJSUFFIX), $(OBJS))
LIBNAME := $(addprefix $(ARCH)/, $(LIBPREFIX)$(LIBRARY)$(ARCH)$(LIBSUFFIX))
INSTLIBNAME := $(addprefix $(INSTLIBDIR)/, $(LIBPREFIX)$(LIBRARY)$(ARCH)$(LIBSUFFIX))
INSTBINNAME := $(addprefix $(INSTBINDIR)/, $(TARGET))
SUFFIXES: .o .cpp
$(ARCH)/%.o: %.cpp
@$(MKTHEDIR)
$(CC) -o $@ -c $(CFLAGS) $(INCDIRS) $<
_clean:
$(RM) $(ARCH)
_install:
$(INSTALL) -c -m 444 $(LIBNAME) $(INSTLIBNAME)
# FreeBSD
# Glut windows
# totally untested, just a guide...
CPU = free
WINSYS = glut
ARCH = $(CPU)$(WINSYS)
CFLAGS = -DPyHack -DFONTHACK -DHYPGLUT -DHYPFREE -DGL_GLEXT_LEGACY -g -DNAMESPACEHACK=''
LDLIBS = -L../../src/$(ARCH) -L/usr/X11R6/lib -l$(LIBRARY)$(ARCH) -lglut -lGLU -lGL -lXmu -lXext -lX11 -lm
INCDIRS = -I../include -I../../include -I/usr/X11R6/include
SUBDIRS = src examples/glut
CC = /usr/bin/g++
LD = /usr/bin/cc
AR = /usr/bin/ar rv
MKDIR = /bin/mkdir
RM = /bin/rm -rf
MAKE = /usr/local/bin/gmake
INSTALL = /usr/bin/install
INSTLIBDIR = /usr/local/lib
INSTBINDIR = /usr/local/bin
OBJSUFFIX = .o
LIBSUFFIX = .a
LIBPREFIX = lib
_library:
$(AR) $(LIBNAME) $(OBJS)
# FreeBSD
# Xt windows
# totally untested, just a guide...
CPU = free
WINSYS = xt
ARCH = $(CPU)$(WINSYS)
#CFLAGS = -DHYPGLX -DHYPXT -DHYPFREE -DGL_GLEXT_LEGACY -g -DNAMESPACEHACK=''
CFLAGS = -DFONTHACK -DHYPGLX -DHYPXT -DHYPFREE -DGL_GLEXT_LEGACY -g -DNAMESPACEHACK=''
LDLIBS = -L../../src/$(ARCH) -L/usr/X11R6/lib -l$(LIBRARY)$(ARCH) -lGLw -lGL -lGLU -lXm -lXt -lX11 -lm
INCDIRS = -I../include -I../../include -I/usr/X11R6/include
SUBDIRS = src examples/vkxt examples/xtsimple
CC = /usr/bin/g++
LD = /usr/bin/cc
AR = /usr/bin/ar rv
MKDIR = /bin/mkdir
RM = /bin/rm -rf
MAKE = /usr/local/bin/gmake
INSTALL = /usr/bin/install
INSTLIBDIR = /usr/local/lib
INSTBINDIR = /usr/local/bin
OBJSUFFIX = .o
LIBSUFFIX = .a
LIBPREFIX = lib
_library:
$(AR) $(LIBNAME) $(OBJS)
# SGIs running Irix 6.x
# GLUT windows
# tested on SGI CC 7.3, Irix 6.5
CPU = irix
WINSYS = glut
ARCH = $(CPU)$(WINSYS)
CFLAGS = -DHYPGLUT -DHYPIRIX -g -ptused -I/usr/common/include -DNAMESPACEHACK='using namespace std;'
LDLIBS = -L../../src/$(ARCH) -l$(LIBRARY)$(ARCH) -L/usr/common/lib32 -lglut -lGLU -lGL -lXmu -lXext -lX11 -lm
SUBDIRS = src examples/glut
INSTLIBDIR = /usr/common/lib
INSTBINDIR = /usr/common/bin
CC = /bin/CC
LD = /bin/cc
AR = /bin/ar rv
MKDIR = /bin/mkdir
RM = /bin/rm -rf
MAKE = /usr/common/bin/gmake
INSTALL = /usr/common/bin/install
OBJSUFFIX = .o
LIBSUFFIX = .a
LIBPREFIX = lib
_library:
$(AR) $(LIBNAME) $(OBJS)
# SGIs running Irix 6.x
# ViewKit windows
# 10/6/99 not tested lately under 6.5, but used to work
CPU = irix
WINSYS = vk
ARCH = $(CPU)$(WINSYS)
CFLAGS = -I/n/radiance/usr/include -I/n/weevil/usr/include -DHYPGLX -DHYPVK -DHYPIRIX -g -ptused -DNAMESPACEHACK='using namespace std;'
LDLIBS = -L../../src/$(ARCH) -l$(LIBRARY)$(ARCH) -L/n/weevil/usr/lib32 -lvk -lGLw -lGL -lGLU -lXm -lXt -lX11 -lm
SUBDIRS = src examples/vkxt examples/vksimple
INSTLIBDIR = /usr/common/lib
INSTBINDIR = /usr/common/bin
CC = /bin/CC
LD = /bin/cc
MKDIR = /bin/mkdir
RM = /bin/rm -rf
MAKE = /usr/common/bin/gmake
INSTALL = /usr/common/bin/install
OBJSUFFIX = .o
LIBSUFFIX = .so
LIBPREFIX = lib
_library:
$(AR) $(LIBNAME) $(OBJS)
# SGIs running Irix 6.x
# Xt windows
# tested for SGI CC version 7.3
CPU = irix
WINSYS = xt
ARCH = $(CPU)$(WINSYS)
CFLAGS = -DHYPGLX -DHYPXT -DHYPIRIX -g -ptused -DNAMESPACEHACK='using namespace std;'
LDLIBS = -L../../src/$(ARCH) -l$(LIBRARY)$(ARCH) -lGLw -lGL -lGLU -lXm -lXt -lX11 -lm
SUBDIRS = src examples/vkxt examples/xtsimple
CC = /bin/CC
LD = /bin/cc
AR = /bin/ar rv
MKDIR = /bin/mkdir
RM = /bin/rm -rf
MAKE = /usr/common/bin/gmake
INSTALL = /usr/common/bin/install
INSTLIBDIR = /usr/common/lib
INSTBINDIR = /usr/common/bin
OBJSUFFIX = .o
LIBSUFFIX = .a
LIBPREFIX = lib
_library:
$(AR) $(LIBNAME) $(OBJS)
# Linux
# Xt windows
# tested under
# XFree86 4.0.1a, RedHat 7.0, uniprocessor kernel 2.2.16-22, NVidia GeForce 2 Ultra card, nvidia drivers 0.9-769, openmotif 2.1.30-5_ICS
CPU = linux
WINSYS = xt
ARCH = $(CPU)$(WINSYS)
CFLAGS = -DHYPGLX -DHYPXT -DHYPLINUX -g -DNAMESPACEHACK=''
LDLIBS = -L../../src/$(ARCH) -l$(LIBRARY)$(ARCH) -lGLw -lMesaGLw -lGL -lGLU -L/usr/X11R6/lib -lXm -lXt -lX11 -lm
SUBDIRS = src examples/vkxt examples/xtsimple examples/xtnofile
CC = /usr/bin/g++
LD = /usr/bin/cc
AR = /usr/bin/ar rv
MKDIR = /bin/mkdir
RM = /bin/rm -rf
MAKE = /usr/bin/gmake
INSTALL = /usr/bin/install
INSTLIBDIR = /usr/local/lib
INSTBINDIR = /usr/local/bin
OBJSUFFIX = .o
LIBSUFFIX = .a
LIBPREFIX = lib
_library:
$(AR) $(LIBNAME) $(OBJS)
# top-level Makefile for hypviewer release
# uses gmake extensions
# toplevel included makefile for hypviewer libraries
########################################
# change the line below to the right pathname on your system
########################################
#ROOTDIR = /udir/tmm/build.linux/hypviewer
ROOTDIR = /home/fish/h3/hypviewer
########################################
# uncomment the right line for your platform
########################################
#include $(ROOTDIR)/Makefile.irixxt
#include $(ROOTDIR)/Makefile.irixglut
#include $(ROOTDIR)/Makefile.irixvk
#include $(ROOTDIR)/Makefile.freext
include $(ROOTDIR)/Makefile.freeglut
#include $(ROOTDIR)/Makefile.linuxxt
########################################################################
# if you're not porting to a new platform, ignore everything below here
########################################################################
# needed all flavors (except of course Windows)
include $(ROOTDIR)/Makefile.common
# to construct a Makefile for a new platform:
# possible defs:
# HYPXT - Xt (on top of X/Motif) window system
# HYPVK - ViewKit window system. mainly found on SGI, but is crossplatform
# HYPGLX is a superset of HYPVK and HYPXT
# HYPGLUT - Mark Kilgard's window system
# HYPIRIX - it's an SGI
# HYPLINUX - it's a Linux box
# WIN32 - it's a Windoze box
# HYPFREE - it's a FreeBSD box
# XPMSNAP - can be enabled for any of the X Windows ones
#
# The window system is supposed to be vaguely orthogonal to the CPU,
# although you can't mix and match every combination.
#
# Define NAMESPACEHACK to either 'using namespace std;' or '':
# in some compilers (including SGI CC and Microsoft Visual C++ the
# former is critical for compiling STL, in others (older version of
# g++?) apparently the right thing to do is leave it blank.
HypViewer version 1.1.2 TMM
Thu May 9 17:44:27 2002
The HypViewer library provides layout and interactive navigation of
node-link graphs in 3D hyperbolic space. The library can handle quite
large graphs of up to 100,000 edges quickly and with minimal visual
clutter. The hyperbolic view allows the user to see a great deal of
the context around the current focus node. The guaranteed frame rate
algorithm is provides fast reponse time on both large data sets with
high-end machines and medium-sized data sets on low-end machines.
The example viewers are all very bare-bones standalone applications
which are really just to give some hints about how to use the library.
I definitely recommend integrating this component with other more
traditional UI components for the most effective user experience.
Author:
Tamara Munzner
munzner@cs.stanford.edu
http://graphics.stanford.edu/~munzner
650-853-2253
Contributors:
Daniel W. McRobb, CAIDA, dwm@caida.org
FreeBSD port, STL conversion, memory footprint reduction, etc.
Matt Gressek, Agenetics, matt@agenetics.com
most of Windows port
----------
Rights:
See the full COPYRIGHT file. In short, you can use this for free if
you don't redistribute it for a fee. Contact SGI if you want to
license it for commercial redistribution. This code was originally
written at SGI and Stanford.
----------
More info:
The main URL for H3 is
http://graphics.stanford.edu/~munzner/h3
API documentation is on the web at
http://graphics.stanford.edu/~munzner/h3/HypViewer.html
Papers with details on the algorithms are on the web at
http://graphics.stanford.edu/~munzner/papers.html
See the CHANGES file in this distribution for the changes between
versions.
----------
Dependencies:
Needs OpenGL, C++, STL. Note that the Mesa libraries on Linux will
work for the OpenGL requirement, and are default-installed under
RedHat.
All device-dependent code is supposed to be segregated by ifdef
statements, but caveat emptor.
----------
SOURCE CONTENTS
src/ library source files
include/ library include files
data/ sample data files
examples/
vksimple/ very simple ViewKit app, calls library
xtsimple/ very simple Xt app, calls library
vkxt/ more complex Xt or ViewKit app, keystroke callbacks show
off more library functionality.
see viewer.README for usage details.
(Note: if you're wondering why you can't see the cycles
in your graph, try hitting the 'u' button!)
xtnofile/ Xt app showing the use of the addNode/addLink commands
instead of reading data from an input file
mfc/ Windows example app, includes source file directly instead
of using libraries properly. someone who knows Windows
better could fix this up much more cleanly, I'm sure.
doc/ include/HypView.h and include/XHypViewer.h have
internal comments which are automatically turned the
HTML documents in here by cocoon, see
http://www.stratasys.com/software/cocoon/
Makefile.* makefiles (ignore for Windows version)
----------
PORTING/COMPILING
You will definitely need to change the ROOTDIR line in Makefile.main
to set the correct pathname where you unpacked the files. If you're
not compiling for Linux, then you'll also need to pick the right
Makefile.<OS> line.
The file Makefile.main is a shell that calls an OS/window system
specific Makefile with all the real settings. You'll almost certainly
have to adapt that specific Makefile.<OS> for your environment by changing
various paths and so on.
I'm afraid the ifdef conventions aren't very consistent. Sometime it's
#ifdef FOO, other times it's #ifndef BAR. I'm sure if people start
porting this to other platforms there will be a need to clean up the
logic a bit.
# to construct a Makefile for a new platform:
# possible defs:
# HYPXT - Xt (on top of X/Motif) window system
# HYPVK - ViewKit window system. mainly found on SGI, but is crossplatform
# HYPGLX is a superset of HYPVK and HYPXT
# HYPGLUT - Mark Kilgard's window system
# HYPIRIX - it's an SGI
# HYPLINUX - it's a Linux box
# WIN32 - it's a Windoze box
# HYPFREE - it's a FreeBSD box
# XPMSNAP - can be enabled for any of the X Windows ones
#
# The window system is supposed to be vaguely orthogonal to the CPU,
# although you can't mix and match every combination.
#
# Define NAMESPACEHACK to either 'using namespace std;' or '':
# in some compilers (including SGI CC and Microsoft Visual C++ the
# former is critical for compiling STL, in others (older version of
# g++?) apparently the right thing to do is leave it blank.
The following Makefiles are provided in this distribution:
irixxt: HYPXT HYPGLX HYPIRIX
irixvk: HYPVK HYPGLX HYPIRIX
irixglut: HYPGLUT HYPIRIX
freext: HYPXT HYPGLX HYPFREE
linuxxt: HYPXT HYPGLX HYPLINUX
The irixxt is the most tested configuration. The irixglut one has also
been tested. The irixvk one used to work but I don't have the ViewKit
development environment installed on my machine anymore after my
upgrade to Irix 6.5 so it hasn't been recently tested. The ViewKit
version is somewhat deprecated anyway compared to the Xt one.
The freext Makefile is just a prelim attempt which is completely
untested, just wanted to give people the idea of what I had in mind.
The linuxxt Makefile has been tested, albeit not extensively.
I'm not positive that the Visual C++ project files will work on
another Windows box without tweaking since they seem to encode
hardwired path names in their files, but the relevant ifdef is of
course WIN32. GLUT under Windows is untested but theoretically
possible.
If you port this software to another system please consider
contributing the changes (especially the Makefiles) back to me for
inclusion in the next release. I hope it should be pretty
straightforward to get another Unix flavor working.
Linux Compilation Notes:
1. If you see the following error message:
/tmp/hypviewer/src/VkHypViewer.cpp:95: undefined reference to
`glwMDrawingAreaWidgetClass'
the solution is to download
http://prdownloads.sourceforge.net/mesa3d/libGLw.tar.gz and unpack
into /usr/lib. It doesn't seem to be included in the standard Mesa
developer distribution.
----------
Possible future changes:
The H3Viewer library supports a guaranteed frame rate, with one
glaring exception. The mapping from hyperbolic to euclidean space is
global, not incremental, so occasionally with big data sets everything
will just freeze up for a few seconds while the remapping is computed.
See papers for more details. I have some ideas on how to fix this.
This diff is collapsed.
<html><head><title>VkHypViewer Documentation</title></head>
<body><h2>
<a name="topofdoc"><img src="hypviewer.gif">VkHypViewer</a></h2>
<dl>
<dd>
VkHypViewer is the ViewKit/Xt layer on top of the base <a href="././HypView.html">HypView</a> class.
#ifdef HYPXT
</dl>
<hr><p></p>
<p><strong>[
<a href="././HypViewer.html">HypViewer</a> |
<a href="VkHypViewer.h">Source</a> |
<a href="#aag">Summary</a> | <a href="#parents">Ancestors</a> | <a href="#flat">All Members</a> | <a href="#children">Descendants</a> ]</strong><p>
<h3><a name="quickind">Quick Index</a></h3>
<dl>
<dd><a href="#OVERVIEW">OVERVIEW</a>
<dd><a href="#AUTHOR">AUTHOR</a>
</dl>
<a name="aag"><hr><p></p></a><h3>Class Summary</h3>
class VkHypViewer <br>
{
<br>
<table>
<tr><td align=left><font size=+1><i><b>public:</b></i></font>
</td></tr>
<tr><td align=right valign=top></td><td><a href="././VkHypViewer.html#VkHypViewer(const_char_*name,_Widget_top,_Widget_parent,_XVisualInfo_*vi_)$">VkHypViewer</a>(const char *name, Widget top, Widget parent, XVisualInfo *vi );</td></tr>
<tr><td align=right valign=top></td><td>~<a href="././VkHypViewer.html#~VkHypViewer()$">VkHypViewer</a>();</td></tr>
<tr><td align=right valign=top>const char *</td><td><i><a href="././VkHypViewer.html#const_char_*className()$">className</a></i>();</td></tr>
<tr><td align=right valign=top>void </td><td><a href="././VkHypViewer.html#void_init()$">init</a>();</td></tr>
<tr><td align=right valign=top><a href="././HypView.html">HypView</a>* </td><td><a href="././VkHypViewer.html#HypView*_getHypView()_const_$">getHypView</a>() const ;</td></tr>
<tr><td align=right valign=top><strong>static</strong> void </td><td><a href="././VkHypViewer.html#void_eventHandlerCB(Widget_w,_XtPointer_clientData,_XEvent_*event,_Boolean_*flag)$">eventHandlerCB</a>(Widget w, XtPointer clientData, XEvent *event, Boolean *flag);</td></tr>
<tr><td align=right valign=top><strong>static</strong> void </td><td><a href="././VkHypViewer.html#void_initCallback(Widget_w,_XtPointer_clientData,_XtPointer_callData)$">initCallback</a>(Widget w, XtPointer clientData, XtPointer callData);</td></tr>
<tr><td align=left><font size=+1><i><b>protected:</b></i></font>
</td></tr>
</table>
}; // VkHypViewer <p>
<a name="OVERVIEW"><hr><p></p></a><h4>OVERVIEW</h4>
<p>
After initialization, <a href="#HypView*_getHypView()_const_$">getHypView</a>() should be used to get the <a href="././HypView.html">HypView</a>
object, which is the main interface to the functionality of the
library. Although this class is called VkHypViewer for historical