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)
delete
ing 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