Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef __cmtkSurfaceNormal_h_included_
00032 #define __cmtkSurfaceNormal_h_included_
00033
00034 #include <cmtkconfig.h>
00035
00036 #include <Base/cmtkFixedVector.h>
00037
00038 namespace
00039 cmtk
00040 {
00041
00044
00046 class
00047 SurfaceNormal
00048 {
00049 public:
00051 typedef SurfaceNormal Self;
00052
00054 typedef FixedVector<3,Types::Coordinate> SpaceVectorType;
00055
00057 SurfaceNormal( const SpaceVectorType& s1, const SpaceVectorType& s2 )
00058 {
00059 this->m_Normal = FixedVectorStaticInitializer<3,Types::Coordinate>::Init( s1[1] * s2[2] - s1[2] * s2[1], s1[2] * s2[0] - s1[0] * s2[2], s1[0] * s2[1] - s1[1] * s2[0] );
00060 }
00061
00063 const SpaceVectorType& Get() const
00064 {
00065 return this->m_Normal;
00066 }
00067
00068 private:
00070 SpaceVectorType m_Normal;
00071 };
00072
00074
00075 }
00076
00077 #endif // #ifndef __cmtkSurfaceNormal_h_included_