00001
00002 #ifndef _GK_PTN_TRIANGLE_H
00003 #define _GK_PTN_TRIANGLE_H
00004
00005 #include "Geometry.h"
00006 #include "Transform.h"
00007 #include "PNTriangle.h"
00008
00009 namespace gk {
00010
00011
00012 struct PTNTriangle : public PNTriangle
00013 {
00014 Point2 ta, tb, tc;
00015
00016
00017 PTNTriangle( )
00018 :
00019 PNTriangle()
00020 {}
00021
00022
00023 PTNTriangle(
00024 const Point& _a, const Normal& _na, const Point2& _ta,
00025 const Point& _b, const Normal& _nb, const Point2& _tb,
00026 const Point& _c, const Normal& _nc, const Point2& _tc )
00027 :
00028 PTNTriangle(_a, _na, _b, _nb, _c, _nc),
00029 ta(_ta), tb(_tb), tc(_tc)
00030 {}
00031
00032
00033 ~PTNTriangle( ) {}
00034
00035
00036 PTNTriangle transform( const Transform& t )
00037 {
00038 return PTNTriangle(
00039 t(a), t(na), ta,
00040 t(b), t(nb), tb,
00041 t(c), t(nc), tc );
00042 }
00043
00044
00045 Triangle getBaseTriangle( )
00046 {
00047 return Triangle(a, b, c);
00048 }
00049
00050
00051 Triangle getPNTriangle( )
00052 {
00053 return Triangle(a, na, b, nb, c, nc);
00054 }
00055 };
00056
00057 }
00058 #endif