updated a bit
git-svn-id: svn://anubis/gvsu@371 45c1a28c-8058-47b2-ae61-ca45b979098e
This commit is contained in:
parent
19223f3d3f
commit
ad262d3484
@ -1,6 +1,16 @@
|
|||||||
|
|
||||||
|
ifdef WIN32
|
||||||
|
export CPPFLAGS += -I"$(shell cd)"
|
||||||
|
else
|
||||||
|
export CPPFLAGS += -I"$(shell pwd)"
|
||||||
|
endif
|
||||||
|
|
||||||
all:
|
all:
|
||||||
make -C util
|
make -C util
|
||||||
|
make -C shapes
|
||||||
|
make -C test
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
make -C test clean
|
||||||
|
make -C shapes clean
|
||||||
make -C util clean
|
make -C util clean
|
||||||
|
@ -4,7 +4,7 @@ OBJS := $(patsubst %.cc,%.o,$(wildcard *.cc))
|
|||||||
all: $(OBJS)
|
all: $(OBJS)
|
||||||
|
|
||||||
%.o: %.cc
|
%.o: %.cc
|
||||||
$(CXX) -c -o $@ $(CXXFLAGS) $<
|
$(CXX) -c -o $@ $(CPPFLAGS) $(CXXFLAGS) $<
|
||||||
|
|
||||||
# Make dependency files
|
# Make dependency files
|
||||||
%.dep: %.cc
|
%.dep: %.cc
|
||||||
|
22
cs658/final/shapes/Sphere.cc
Normal file
22
cs658/final/shapes/Sphere.cc
Normal 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;
|
||||||
|
}
|
18
cs658/final/shapes/Sphere.h
Normal file
18
cs658/final/shapes/Sphere.h
Normal 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
|
||||||
|
|
3
cs658/final/test/Makefile
Normal file
3
cs658/final/test/Makefile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
all:
|
||||||
|
@echo Nothing yet.
|
@ -4,7 +4,7 @@ OBJS := $(patsubst %.cc,%.o,$(wildcard *.cc))
|
|||||||
all: $(OBJS)
|
all: $(OBJS)
|
||||||
|
|
||||||
%.o: %.cc
|
%.o: %.cc
|
||||||
$(CXX) -c -o $@ $(CXXFLAGS) $<
|
$(CXX) -c -o $@ $(CPPFLAGS) $(CXXFLAGS) $<
|
||||||
|
|
||||||
# Make dependency files
|
# Make dependency files
|
||||||
%.dep: %.cc
|
%.dep: %.cc
|
||||||
|
@ -9,8 +9,8 @@ class Ray
|
|||||||
public:
|
public:
|
||||||
Ray();
|
Ray();
|
||||||
Ray(const Vector & origin, const Vector & direction);
|
Ray(const Vector & origin, const Vector & direction);
|
||||||
Vector & getOrigin() { return m_origin; }
|
const Vector & getOrigin() const { return m_origin; }
|
||||||
Vector & getDirection() { return m_direction; }
|
const Vector & getDirection() const { return m_direction; }
|
||||||
Vector getPositionAt(double dist) const;
|
Vector getPositionAt(double dist) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -12,6 +12,15 @@ Solver::Solver(double a, double b, double c, double d, double e)
|
|||||||
this->e = e;
|
this->e = e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
* QuadraticSolver methods *
|
||||||
|
*************************************************************************/
|
||||||
|
QuadraticSolver::QuadraticSolver(double a, double b, double c)
|
||||||
|
: Solver(a, b, c)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
/* solve a quadratic equation */
|
/* solve a quadratic equation */
|
||||||
Solver::Result QuadraticSolver::solve()
|
Solver::Result QuadraticSolver::solve()
|
||||||
{
|
{
|
||||||
@ -41,10 +50,28 @@ Solver::Result QuadraticSolver::solve()
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
* CubicSolver methods *
|
||||||
|
*************************************************************************/
|
||||||
|
CubicSolver::CubicSolver(double a, double b, double c, double d)
|
||||||
|
: Solver(a, b, c, d)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
Solver::Result CubicSolver::solve()
|
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()
|
Solver::Result QuarticSolver::solve()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -25,18 +25,21 @@ class Solver
|
|||||||
class QuadraticSolver : public Solver
|
class QuadraticSolver : public Solver
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
QuadraticSolver(double a, double b, double c);
|
||||||
Result solve();
|
Result solve();
|
||||||
};
|
};
|
||||||
|
|
||||||
class CubicSolver : public Solver
|
class CubicSolver : public Solver
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
CubicSolver(double a, double b, double c, double d);
|
||||||
Result solve();
|
Result solve();
|
||||||
};
|
};
|
||||||
|
|
||||||
class QuarticSolver : public Solver
|
class QuarticSolver : public Solver
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
QuarticSolver(double a, double b, double c, double d, double e);
|
||||||
Result solve();
|
Result solve();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user