00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef NL_PS_EDIT_H
00027 #define NL_PS_EDIT_H
00028
00029 #include "nel/misc/types_nl.h"
00030
00031
00032
00033 namespace NLMISC
00034 {
00035 class NLMISC::CMatrix ;
00036 class NLMISC::CVector ;
00037 } ;
00038
00039
00040 namespace NL3D {
00041
00042
00062 struct IPSMover
00063 {
00067 virtual bool supportUniformScaling(void) const { return false ; }
00068
00072 virtual bool supportNonUniformScaling(void) const { return false ; }
00073
00074
00075 virtual void setScale(uint32 index, float scale) {} ;
00076
00077
00078 virtual void setScale(uint32 index, const NLMISC::CVector &s) {}
00079
00080
00081 virtual NLMISC::CVector getScale(uint32 index) const { return NLMISC::CVector(1.f, 1.f, 1.f) ; }
00082
00086 virtual bool onlyStoreNormal(void) const { return false ; }
00087
00089 virtual NLMISC::CVector getNormal(uint32 index) { return NLMISC::CVector::Null ; }
00090
00092 virtual void setNormal(uint32 index, NLMISC::CVector n) { }
00093
00094
00095 virtual void setMatrix(uint32 index, const NLMISC::CMatrix &m) = 0 ;
00096
00097 virtual NLMISC::CMatrix getMatrix(uint32 index) const = 0 ;
00098
00099 };
00100
00101
00102
00103 }
00104
00105
00106 #endif // NL_PS_EDIT_H
00107
00108