point_t
object, read a file, and add points
to a list (std::vector
), then draw them in a 2D 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 sequence of lines using OpenGL.
gluOrtho2D(0.0,w,0.0,h);
glLoadIdentity();
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:
15 14
600 320
104 29
19 78
450 321
*** printing list
15.00, 14.00
600.00, 320.00
104.00, 29.00
19.00, 78.00
450.00, 321.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