sources:


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
 47