sources:
BOX.CPP (3.1k)
BOX.H (507 bytes)
RAY.CPP (609 bytes)
RAY.H (604 bytes)
SPHERE.CPP (1.9k)
SPHERE.H (564 bytes)
TRIANGLE.CPP (2.1k)
TRIANGLE.H (1.2k)
UTIL.H (1.7k)
VECTOR.CPP (1.6k)
VECTOR.H (5.0k)
cgapplication.cpp (3.2k)
cgapplication.h (3.5k)
cgraytracer.cpp (18.8k)
cgraytracer.h (1.6k)
shape.h (754 bytes)


binaries:
Release/raytracer.exe (38.0k)


website:
more info here


screenshot:
studies/grafik2/Computergrafik-Code6/Aufgabe17/TRIANGLE.H
download file

  1 #ifndef _TRIANGLE_H
  2 #define _TRIANGLE_H
  3
  4 #include "shape.h"
  5
  6 //- Triangle
  7 class Triangle : public Shape {
  8 //. Triangle Class.
  9 public:
 10     //- Triangle
 11     Triangle();
 12     Triangle(const Vector& v0, const Vector& v1, const Vector& v2);   
 13        
 14     //- set/getVertex, set/GetNormal, triangleNormal
 15     const Vector& getVertex(int i) const;
 16     void setVertex(int i,const Vector& v);
 17     const Vector& getNormal(int i) const;
 18     void setNormal(int i,const Vector& n);       
 19     const Vector& triangleNormal() const;   
 20    
 21     void normalizeNormals();
 22
 23
 24     // intersect
 25     virtual bool intersect(const Ray& r,Vector& p,Vector& n, double& d) const;
 26
 27
 28     //- operator>>
 29     friend  istream& operator>>(istream&, Triangle&);
 30
 31 private:
 32     Vector v_[3];
 33     Vector n_[3]
 34     Vector triNrm_;
 35 };
 36
 37
 38 inline const Vector& Triangle::getVertex(int i) const { return v_[i]; }
 39 inline void Triangle::setVertex(int i,const Vector& v) { v_[i] = v; }
 40 inline const Vector& Triangle::getNormal(int i) const { return n_[i]; }
 41 inline void Triangle::setNormal(int i,const Vector& n) { n_[i] = n; }
 42 inline const Vector& Triangle::triangleNormal() const { return triNrm_;}
 43
 44
 45 #endif // _TRIANGLE_H
 46