point_t object, read a file, and add points
to a list (std::vector), then draw them in a 3D GLUT window.
point_t objects are
stored on a std::vector<point_t* > list
(vector) of pointers, then iterate through that list to
draw a single quad using OpenGL.
gluPerspective(90,1.0,1.0,1000.0);
glLoadIdentity();
but then also use the following utility to set up the frustum:
gluLookAt(0.0,0.0,-10.0,
0.0,0.0,1000.0,
0.0,1.0,0.0);
new point_t* each
time data is read in (this gets added to the list)
deleteing each point pointer as you erase each one
from the list (i.e., when the program exits)
pointdata.txt file used to test the above program is:
1.0 -1.0 1.0
-1.0 -1.0 1.0
-1.0 -1.0 -1.0
1.0 -1.0 -1.0
*** printing list
1.00, -1.00, 1.00
-1.00, -1.00, 1.00
-1.00, -1.00, -1.00
1.00, -1.00, -1.00
and a window showing something like what appears below:
Makefile that you can use to compile the project:
.SUFFIXES: .c .o .cpp .cc .cxx .C
UNAME = $(shell uname)
PLATFORM = $(shell uname -p)
CC = g++
COPTS = -g -Wall
INCDIR =
LIBDIR =
ifeq ("$(shell uname)", "Linux")
INC = \
-I/usr/lib/glut-3.7/include
LIBDIR = \
-L/usr/lib -L/usr/X11R6/lib -L/usr/lib/glut-3.7/lib/glut
LIBS = \
-lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm
else
ifeq ("$(shell uname)", "Darwin")
LIBS = \
-framework OpenGL -framework GLUT -framework Foundation -lstdc++
endif
endif
.c.o:
$(CC) -c $(INCDIR) $(COPTS) -o $@ $<
.cpp.o:
$(CC) -c $(INCDIR) $(COPTS) -o $@ $<
all : main
OBJECTS = \
point.o
main : $(OBJECTS) main.o
$(CC) -o $@ $(INCDIR) $(COPTS) $(OBJECTS) $@.o $(LIBDIR) $(LIBS)
point.o: point.h point.cpp
clean :
rm -f *.o
rm -rf main
tar.gz
archive of your asg##/ directory, including:
README file containing
Makefile
.h headers and .cpp source)
make clean before tar)
handin notes