updated a bit

git-svn-id: svn://anubis/gvsu@371 45c1a28c-8058-47b2-ae61-ca45b979098e
This commit is contained in:
josh 2009-01-17 22:10:19 +00:00
parent 19223f3d3f
commit ad262d3484
9 changed files with 87 additions and 4 deletions

View File

@ -1,6 +1,16 @@
ifdef WIN32
export CPPFLAGS += -I"$(shell cd)"
else
export CPPFLAGS += -I"$(shell pwd)"
endif
all:
make -C util
make -C shapes
make -C test
clean:
make -C test clean
make -C shapes clean
make -C util clean

View File

@ -4,7 +4,7 @@ OBJS := $(patsubst %.cc,%.o,$(wildcard *.cc))
all: $(OBJS)
%.o: %.cc
$(CXX) -c -o $@ $(CXXFLAGS) $<
$(CXX) -c -o $@ $(CPPFLAGS) $(CXXFLAGS) $<
# Make dependency files
%.dep: %.cc

View File

@ -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;
}

View File

@ -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

View File

@ -0,0 +1,3 @@
all:
@echo Nothing yet.

View File

@ -4,7 +4,7 @@ OBJS := $(patsubst %.cc,%.o,$(wildcard *.cc))
all: $(OBJS)
%.o: %.cc
$(CXX) -c -o $@ $(CXXFLAGS) $<
$(CXX) -c -o $@ $(CPPFLAGS) $(CXXFLAGS) $<
# Make dependency files
%.dep: %.cc

View File

@ -9,8 +9,8 @@ class Ray
public:
Ray();
Ray(const Vector & origin, const Vector & direction);
Vector & getOrigin() { return m_origin; }
Vector & getDirection() { return m_direction; }
const Vector & getOrigin() const { return m_origin; }
const Vector & getDirection() const { return m_direction; }
Vector getPositionAt(double dist) const;
private:

View File

@ -12,6 +12,15 @@ Solver::Solver(double a, double b, double c, double d, double e)
this->e = e;
}
/**************************************************************************
* QuadraticSolver methods *
*************************************************************************/
QuadraticSolver::QuadraticSolver(double a, double b, double c)
: Solver(a, b, c)
{
}
/* solve a quadratic equation */
Solver::Result QuadraticSolver::solve()
{
@ -41,10 +50,28 @@ Solver::Result QuadraticSolver::solve()
return res;
}
/**************************************************************************
* CubicSolver methods *
*************************************************************************/
CubicSolver::CubicSolver(double a, double b, double c, double d)
: Solver(a, b, c, d)
{
}
Solver::Result CubicSolver::solve()
{
}
/**************************************************************************
* QuarticSolver methods *
*************************************************************************/
QuarticSolver::QuarticSolver(double a, double b, double c, double d, double e)
: Solver(a, b, c, d, e)
{
}
Solver::Result QuarticSolver::solve()
{
}

View File

@ -25,18 +25,21 @@ class Solver
class QuadraticSolver : public Solver
{
public:
QuadraticSolver(double a, double b, double c);
Result solve();
};
class CubicSolver : public Solver
{
public:
CubicSolver(double a, double b, double c, double d);
Result solve();
};
class QuarticSolver : public Solver
{
public:
QuarticSolver(double a, double b, double c, double d, double e);
Result solve();
};