bGLOOP

A better GLOOP

Download .zip Download .tar.gz Get compiled .jar View on GitHub

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.

Tiger Mesh

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):

GLOOPbGLOOP
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.