root/juggler/branches/2.2/README.txt

Revision 18454, 8.2 kB (checked in by allenb, 2 years ago)

echo 'import sys, os, uu, base64, re' > /home/users/a/al/allenb/code_it.py
echo 'dfname = os.path.abspath(sys.argv[1])' >> /home/users/a/al/allenb/code_it.py
echo 'fname = os.path.abspath(sys.argv[2])' >> /home/users/a/al/allenb/code_it.py
echo 'print "Writing to: ", fname' >> /home/users/a/al/allenb/code_it.py
echo 'file_contents = open(fname, "r").read()' >> /home/users/a/al/allenb/code_it.py
echo 'text_re = re.compile("(.*?text\n@)(.*?)(@.*)", re.DOTALL | re.MULTILINE)' >> /home/users/a/al/allenb/code_it.py
echo 'mobj = text_re.match(file_contents)' >> /home/users/a/al/allenb/code_it.py
echo 'if None == mobj:' >> /home/users/a/al/allenb/code_it.py
echo ' print "Failed to find match."' >> /home/users/a/al/allenb/code_it.py
echo ' sys.exit()' >> /home/users/a/al/allenb/code_it.py
echo 'header = mobj.group(1)' >> /home/users/a/al/allenb/code_it.py
echo 'footer = mobj.group(3)' >> /home/users/a/al/allenb/code_it.py
echo 'new_fname = os.path.join(os.path.dirname(fname), "new_"+os.path.basename(fname))' >>
/home/users/a/al/allenb/code_it.py
echo 'new_file = open(new_fname, "w")' >> /home/users/a/al/allenb/code_it.py
echo 'new_file.write(header)' >> /home/users/a/al/allenb/code_it.py
echo '#in_file = open(dfname, "r")' >> /home/users/a/al/allenb/code_it.py
echo '#base64.encode(in_file, new_file)' >> /home/users/a/al/allenb/code_it.py
echo '#base64.encode(sys.stdin, new_file)' >> /home/users/a/al/allenb/code_it.py
echo 'new_file.write(footer)' >> /home/users/a/al/allenb/code_it.py
echo 'new_file.close()' >> /home/users/a/al/allenb/code_it.py
cat /home/users/a/al/allenb/code_it.py

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1
2
3 Juggler Project Overview
4
5
6 The Juggler Team
7
8  $Date$
9
10 ----------------------------------------------------------------------------
11  Table of Contents
12
13
14
15   Introduction
16
17   Compiling
18
19   Modules
20
21
22         VR Juggler
23
24         VR Juggler Portable Runtime (VPR)
25
26         Juggler Configuration and Control Library (JCCL)
27
28         Gadgeteer
29
30         Sonix
31
32         Tweek
33
34         VRJConfig
35
36
37   VR Juggler 2.x
38
39
40 Introduction
41
42  Congratulations, you have downloaded the source code to the Juggler
43  Project, open source software for virtual reality from the Virtual Reality
44  Applications Center at Iowa State University. Within this document, you
45  will find information about the new VR Juggler 2.x directory structure
46  including descriptions of all the component modules that make up the
47  Juggler Project. Instructions for building the individual modules can be
48  found within the specific module directories and on the VR Juggler website.
49
50
51 Compiling
52
53  For information on compiling the source code, refer to either the
54  INSTALL.txt or INSTALL.html file found in this directory.
55
56
57 Modules
58
59  The Juggler Project is made up of several modules that have evolved from
60  the original VR Juggler source tree. Within this section, we describe each
61  of the modules, what they are used for, and, when possible, how they relate
62  to VR Juggler 1.0.
63
64
65 VR Juggler
66
67
68 Directory
69
70  juggler/modules/vrjuggler
71
72
73 Description
74
75  VR Juggler is still VR Juggler. There are many new features in VR Juggler
76  since the 1.0 series, but in essence, it is still the same familiar tool.
77  Of the projects listed below, VR Juggler depends on VPR, JCCL, Sonix, and
78  Gadgeteer. Its individual components have simply been broken out into
79  individually developed modules. More information about the latest version
80  of VR Juggler is given in the following section.
81
82
83 VR Juggler Portable Runtime (VPR)
84
85
86 Directory
87
88  juggler/modules/vapor
89
90
91 Description
92
93  VPR is the foundation for all the Juggler modules. It provides an object-
94  oriented, cross-platform abstraction layer to common operating system
95  features such as threads, semaphores, and sockets. All the other modules
96  depend on VPR so that they may be ported easily to other platforms. In VR
97  Juggler 1.0, VPR was the collection of directories Threads, SharedMem, and
98  Sync. Since then, that code has been collected into a single library and
99  greatly extended into what is now VPR.
100
101  VPR itself contains a great deal of platform-specific code. It categorizes
102  this code into subsystems, and various subsystems may be chosen depending
103  upon the target platform and target threading system. For example, on IRIX,
104  there are three possible subsystems: SPROC, POSIX, and Netscape Portable
105  Runtime (NSPR). Win32, on the other hand, only uses the NSPR subsystem. The
106  subsystems are:
107
108
109 *  SPROC (IRIX only)
110
111 *  POSIX (UNIX-based platforms only)
112
113 *  NSPR (all platforms, required on Win32 and Mac OS X)
114
115
116  Because VPR is the foundation for all the other modules, it is important to
117  choose the right subsystem.
118
119  Choosing the correct subsystem depends on many factors. For example, which
120  of the subsystems are supported on the desired target platform? Are there
121  compatibility issues with software outside the Juggler Project? In most
122  cases, however, the choice is straightforward. Indeed, IRIX is the only
123  platform that presents any real issues. In particular, the use of OpenGL
124  Performer from SGI raises important compatibility concerns. SPROC threads
125  are the only threads that are stable with OpenGL Performer (on IRIX). POSIX
126  threads will work, but applications may sometimes crash on startup. As of
127  this writing, OpenGL Performer does not work at all with NSPR. Other
128  software may pose similar problems, and it is important to know the needs
129  of other tools when configuring VPR.
130
131  On platforms other than IRIX, the choice is relatively simple. If NSPR is
132  available, its use is recommended. If NSPR is not available, POSIX threads
133  is the next logical choice--at least on UNIX-based platforms. On Win32 and
134  Mac OS X, NSPR is required.
135
136  As mentioned above, all the other modules depend on VPR, so it must be
137  compiled before anything else. For more information on compiling VPR, refer
138  to modules/vapor/INSTALL.txt.
139
140
141 Juggler Configuration and Control Library (JCCL)
142
143
144 Directory
145
146  juggler/modules/jackal
147
148
149 Description
150
151  JCCL provides the configuration layer for VR Juggler and other modules. The
152  config chunks and reusable configuration editor JavaBeans come from JCCL.
153  These JavaBeans are used by the VR Juggler configuration editor tool,
154  VRJConfig (see below). In essence, JCCL is the VR Juggler 1.0 Config
155  directory with many new features including XML-based config files.
156
157  To build the JCCL C++ library, CppDOM is required for parsing XML. CppDOM
158  is a lightweight XML parser written in C++ and designed to provide an
159  interface similar to JDOM. More information can be found at http://xml-
160  cppdom.sourceforge.net/.
161
162  To build the configuration editor JavaBeans, JDOM and the Tweek Java API
163  are required. Tweek is another module in the Juggler Project, and it will
164  be built automatically as a dependency of JCCL. JDOM comes with the Juggler
165  Project source code and can be found in the directory juggler/external/
166  jdom.
167
168
169 Gadgeteer
170
171
172 Directory
173
174  juggler/modules/gadgeteer
175
176
177 Description
178
179  Gadgeteer is made up of the code that was formerly in the VR Juggler 1.0
180  Input directory. It contains all the drivers used for VR Juggler input
181  devices, and it contains the high-level Input Manager. The goal with
182  Gadgeteer is to mold it into the first dynamically loadable component
183  within the VR Juggler microkernel. At this time, it must still be compiled
184  in, but we hope to generalize the concepts of VR Juggler Managers to the
185  point that the kernel knows nothing about them until they are loaded at run
186  time.
187
188
189 Sonix
190
191
192 Directory
193
194  juggler/modules/sonix
195
196
197 Description
198
199  Sonix provides an interface useful to many simple VR and entertainment
200  applications to trigger and position sounds in 3D. This library provides
201  simple audio sound objects on top of several audio APIs. The interface to
202  Sonix is kept very simple in order to get people up and running with sound
203  as fast as possible.
204
205  The interface to sonix is kept very simple in order to get people up and
206  running with sound as fast as possible. Sonix is reconfigurable allowing
207  audio APIs to be safely swapped out at runtime without the dependent
208  systems noticing. Systems using this layer expect to be completely
209  portable.
210
211
212 Tweek
213
214
215 Directory
216
217  juggler/modules/tweek
218
219
220 Description
221
222  Tweek is a cross-platform, cross-language library consisting of a C++ API
223  and a Java API. Its purpose is to provide a convenient mechanism for a
224  Java-based GUI to interact with a complex C++ library or application. The
225  Tweek GUI can be run in virtual environments, external on a palm top, or on
226  the desktop next to a running application. Each of these methods gives a
227  familiar 2D widget set that can control applications flexibly. To provide
228  this capability, it uses CORBA.
229
230  The Java code in Tweek includes the Tweek Java API and the Tweek JavaBean
231  loader application. The Java API is provided to make the use of JavaBeans
232  and CORBA simpler for programmers. The JavaBean loader application simply
233  loads the Beans it finds and presents them to the user in some sort of
234  structured manner (for example, a collection of icons with web-style
235  navigation).
236
237
238 VRJConfig
239
240  VRJConfig is the configuration editor for VR Juggler. It is a complete
241  rewrite of VjControl, both in terms of the user interface and the back-end
242  code. The new interface is based on open discussion and feedback from users
243  of VR Juggler 1.0 and VjControl.
244
245  The back-end is much more extensible. It allows users to write plug-in
246  editors to simplify complex editing tasks. User-defined configuration
247  elements can be handled in a much more dynamic manner as well. No
248  modification of VR Juggler or JCCL "system" files must be made
249  to get user-defined elements into the editor.
250
251  VRJConfig is itself a JavaBean that is loaded into the Tweek Java GUI.
252  VRJConfig uses JavaBeans internally to facilitate user extensions. All in
253  all, VRJConfig is a highly dynamic, powerful editor for VR Juggler
254  configurations.
255
256
257 VR Juggler 2.x
258
259  TODO... (this is the version number of the next release of Juggler)
260
Note: See TracBrowser for help on using the browser.