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