Welcome to bGLOOP
bGLOOP is a reimplementation of the GLOOP library, a library for teaching beginner courses for OOP in Java with application to 3d programming. It is basically a wrapper to the basic functionality in JOGL. It's main focus is to make creation of small 3d programs really simple to focus on the basic ideas of OOP.
Calling bGLOOP a “better” GLOOP is not meant to refer to features, stability, and the like. The thing that's better about bGLOOP is that it's free software, unlike GLOOP which is a closed source project. So if you like to change anything to suit your specific needs — feel free to do so.
Documentation
The API and the documentation is in German. Have a look at the javadoc.
Features, differences to GLOOP
GLOOP programs can be run with little changes to the source code. Most of the time it suffices changing import GLOOP.*
to import bGLOOP.*
. However, some things are done differently, and some features do not (yet) exist.
bGLOOP has most of the features of GLOOP. Have a look at the most notable differences (some are rather internal implementation details of the library):
GLOOP | bGLOOP |
---|---|
only working with old JOGL < 2.1.X library | uses current much more improved version of JOGL, currently version 2.3.2 |
selection of objects by window coordinates via Sys.gibObjekt(double,double) |
implemented as of build 63 |
GLTafel to represent a string in the GL window, rendering is done
by texturing an object with parts of a png-picture |
GLText class and deprecated GLTafel class. Auto rotation
is supported. Implementation via jogl's
TextRenderer
— no supplemental png-file is needed. |
steographic rendering | not implemented (no plans to do so since I hate 3D movies) |
not implemented | configuration by .bgloop property file to control different aspects
of the library's behaviour |
uses sin/cos matrix transformation to rotate the scene with the mouse in the camera view | uses jogl's quaternion implementation to compute camera rotation |
not implemented | sophisticated logging scheme, configurable in .bgloop |
not implemented | make a screenshot by calling a method or hitting a key |
GLObjekt.setzeSelbstleuchten |
GLLichtobjekt class following the GoF decorator pattern to avoid
further cluttering GLObjekt class and to achieve looser coupling |
not implemented | rendering of objects in wireframe/fill mode on a per object level |
not implemented | Three different drawing models for (most) of the base geometry classes (GLU, GL, VBO). Can be switched without recompilation by changing a flag in the .bgloop property file |
not implemented | GLMesh class to display mesh objects in OBJ format |
GLObjekt is the base class for all GLOOP objects |
GLObjekt is the base class for all bGLOOP objects, yet
services have been distributed over interfaces in an attempt to achieve looser coupling
between the main classes
|
Examples
Will follow soon.
Download
If you do not want to build the library by yourself you can use the current build. I have not thought about a versioning scheme, only incrementing the build number at the moment. To use bGLOOP you also need the jogamp jars (version >=2.3.2) listed below.
- bGLOOP.jar (build 89), packed and obfuscated with Proguard
- From the jogamp deployment archives download
jogl-all.jar
,jogl-all-natives-platform.jar
,gluegen-rt.jar
, andgluegen-rt-platform.jar
where platform is a placeholder for your OS. Put these files in the same directory as thebGLOOP.jar
file. - javadoc API documentation (for build 89), zipped.