Main Page | Class Hierarchy | Class List | File List | Class Members

TKoo3d.h

00001 // TKoo3d.h: Schnittstelle für die Klasse TKoo3d.
00002 //
00004 
00005 #if !defined(AFX_TKOO3D_H__C733CF65_F6C3_42FF_8BA4_34C3B8B5A6BE__INCLUDED_)
00006 #define AFX_TKOO3D_H__C733CF65_F6C3_42FF_8BA4_34C3B8B5A6BE__INCLUDED_
00007 
00008 #if _MSC_VER > 1000
00009 #pragma once
00010 #endif // _MSC_VER > 1000
00011 
00012 #include <fcntl.h>
00013 #include <io.h>
00014 #include <stdlib.h> 
00015 #include <windows.h>
00016 #include <math.h>
00017 
00018 //#include <gl/gl.h>
00019 
00020 
00021 
00022 template <class T> class TKoo3d  
00023 {
00024         
00025         public:
00026                 virtual ~TKoo3d()
00027                 {
00028                         
00029                 }
00030                 
00031                 T  v[3];
00032                 inline double vMult(TKoo3d<T>& k)
00033                 {
00034                         return (v[0]*k.v[0]+v[1]*k.v[1]+v[2]*k.v[2]);
00035                 }
00036                 
00037                 inline TKoo3d<T> normalize()
00038                 {
00039                         double betr=betrag();
00040                         return TKoo3d<T>((T)(v[0]/betr),(T)(v[1]/betr),(T)(v[2]/betr));
00041                 };
00042                 inline TKoo3d<T> absVal()
00043                 {
00044                         return TKoo3d<T>(fabs(v[0]),fabs(v[1]),fabs(v[2]));
00045                 };
00046                 inline double betrag()
00047                 {
00048                         return (sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]));
00049                 };
00050                 inline TKoo3d(T xu, T yu, T zu)
00051                 {
00052                         
00053                         v[0]=xu;
00054                         v[1]=yu;
00055                         v[2]=zu;
00056                 };
00057                 inline TKoo3d ()
00058                 {
00059                         
00060                         v[0]=(T)0.0;
00061                         v[1]=(T)0.0;
00062                         v[2]=(T)0.0;
00063                 };
00064                 inline TKoo3d<T> normVZ()
00065                 {
00066                         return(TKoo3d<T>(-v[1],v[0],v[2]));
00067                 };
00068                 inline TKoo3d<T> (T *werte)
00069                 {
00070                         v[0]=werte[0];
00071                         v[1]=werte[1];
00072                         v[2]=werte[2];
00073                 
00074                         
00075                 };
00076                 //inline TKoo3d (TKoo3dInt& obj);
00077                 inline TKoo3d<T> operator+(TKoo3d<T>& k)
00078                 {
00079                         return TKoo3d<T>(k.v[0]+v[0],k.v[1]+v[1],k.v[2]+v[2]);
00080                 };
00081                 inline TKoo3d<T> operator-(TKoo3d<T>& k)
00082                 {
00083                         return TKoo3d<T>(v[0]-k.v[0],v[1]-k.v[1],v[2]-k.v[2]);
00084                 };
00085                 inline TKoo3d<T> operator*(float k)
00086                 {
00087                         return TKoo3d<T>(v[0]*k,v[1]*k,v[2]*k);
00088                 };
00089                 inline TKoo3d<T> operator*(TKoo3d<T>& k)
00090                 {
00091                         return TKoo3d<T>(v[1]*k.v[2]-v[2]*k.v[1],-(v[0]*k.v[2]-v[2]*k.v[0]), v[0]*k.v[1]-v[1]*k.v[0]); 
00092                 };
00093                 inline TKoo3d<T> operator/(float k)
00094                 {
00095                         return TKoo3d<T>(v[0]/k,v[1]/k,v[2]/k);
00096                 };
00097                 inline BOOLEAN operator== (TKoo3d<T>& k)
00098                 {
00099                         return (v[0]==k.v[0])&&(v[1]==k.v[1])&&(v[2]==k.v[2]);
00100                 };
00101 
00102                 template <class A> inline TKoo3d(A& o)
00103                 {
00104                         
00105                         v[0]=(T)o.v[0];
00106                         v[1]=(T)o.v[1];
00107                         v[2]=(T)o.v[2];
00108                 };
00109         /*      template <class A> inline void operator=(A& o)
00110                 {
00111                         
00112                         v[0]=(T)o.v[0];
00113                         v[1]=(T)o.v[1];
00114                         v[2]=(T)o.v[2];
00115                 };*/
00116 
00117 
00118 };
00119 
00120 
00121 #endif // !defined(AFX_TKOO3D_H__C733CF65_F6C3_42FF_8BA4_34C3B8B5A6BE__INCLUDED_)

Generated on Wed Dec 3 00:44:08 2003 for Volvis by doxygen 1.3.5