initial import from /gvsu/cs658 repository
git-svn-id: svn://anubis/fart/trunk@2 7f9b0f55-74a9-4bce-be96-3c2cd072584d
This commit is contained in:
1 parent
a00c525abe
commit
206ede3304
13 files changed
+356
No files matched your search
@@ -0,0 +1,20 @@
|
||||
|
||||
OBJS := $(patsubst %.cc,%.o,$(wildcard *.cc))
|
||||
|
||||
all: $(OBJS)
|
||||
|
||||
%.o: %.cc
|
||||
$(CXX) -c -o $@ $(CPPFLAGS) $(CXXFLAGS) $<
|
||||
|
||||
# Make dependency files
|
||||
%.dep: %.cc
|
||||
@set -e; rm -f $@; \
|
||||
$(CXX) -MM $(CPPFLAGS) $< > $@.$$$$; \
|
||||
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
|
||||
rm -f $@.$$$$
|
||||
|
||||
clean:
|
||||
-$(RM) -f *.o *.dep $(ARCHIVE)
|
||||
|
||||
# Include dependency files
|
||||
include $(OBJS:.o=.dep)
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
#ifndef SHAPE_H
|
||||
#define SHAPE_H SHAPE_H
|
||||
|
||||
#include "util/Solver.h"
|
||||
#include "util/Ray.h"
|
||||
|
||||
class Shape
|
||||
{
|
||||
public:
|
||||
virtual Solver::Result intersect(const Ray & ray) = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
|
||||
#include "Sphere.h"
|
||||
#include "util/Solver.h"
|
||||
|
||||
Sphere::Sphere(double radius)
|
||||
{
|
||||
m_radius = radius;
|
||||
}
|
||||
|
||||
Solver::Result Sphere::intersect(const Ray & ray)
|
||||
{
|
||||
Solver::Result res;
|
||||
QuadraticSolver solver(1.0,
|
||||
2 * ( ray.getOrigin()[0] * ray.getDirection()[0]
|
||||
+ ray.getOrigin()[1] * ray.getDirection()[1]
|
||||
+ ray.getOrigin()[2] * ray.getDirection()[2] ),
|
||||
ray.getOrigin()[0] * ray.getOrigin()[0]
|
||||
+ ray.getOrigin()[1] * ray.getOrigin()[1]
|
||||
+ ray.getOrigin()[2] * ray.getOrigin()[2] );
|
||||
Solver::Result quadSolutions = solver.solve();
|
||||
return res;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
#ifndef SPHERE_H
|
||||
#define SPHERE_H SPHERE_H
|
||||
|
||||
#include "Shape.h"
|
||||
|
||||
class Sphere : public Shape
|
||||
{
|
||||
public:
|
||||
Sphere(double radius);
|
||||
Solver::Result intersect(const Ray & ray);
|
||||
|
||||
private:
|
||||
double m_radius;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in new issue
Block a user