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 #ifndef __VCG_TRI_UPDATE_TEXTURE
00030 #define __VCG_TRI_UPDATE_TEXTURE
00031
00032
00033
00034 namespace vcg {
00035 namespace tri {
00036
00038
00040
00042 template <class ComputeMeshType>
00043 class UpdateTexture
00044 {
00045
00046 public:
00047 typedef ComputeMeshType MeshType;
00048 typedef typename MeshType::ScalarType ScalarType;
00049 typedef typename MeshType::VertexType VertexType;
00050 typedef typename MeshType::VertexPointer VertexPointer;
00051 typedef typename MeshType::VertexIterator VertexIterator;
00052 typedef typename MeshType::FaceType FaceType;
00053 typedef typename MeshType::FacePointer FacePointer;
00054 typedef typename MeshType::FaceIterator FaceIterator;
00055
00056 static void WedgeTexFromPlanar(ComputeMeshType &m, Plane3<ScalarType> &pl)
00057 {
00058 FaceIterator fi;
00059 for(fi=m.face.begin();fi!=m.face.end();++fi)
00060 if(!(*fi).IsD())
00061 {
00062
00063 }
00064 }
00065
00066 static void WedgeTexFromCamera(ComputeMeshType &m, Plane3<ScalarType> &pl)
00067 {
00068
00069 }
00070
00071
00075 static void WedgeTexRemoveNull(ComputeMeshType &m, const std::string &texturename)
00076 {
00077 bool found=false;
00078
00079 FaceIterator fi;
00080
00081 for(fi=m.face.begin();fi!=m.face.end();++fi)
00082 if(!(*fi).IsD()) if((*fi).WT(0).N()==-1) found = true;
00083
00084 if(!found) return;
00085 m.textures.push_back(texturename);
00086
00087 int nullId=m.textures.size()-1;
00088
00089 for(fi=m.face.begin();fi!=m.face.end();++fi)
00090 if(!(*fi).IsD()) if((*fi).WT(0).N()==-1)
00091 {
00092 (*fi).WT(0).N() = nullId;
00093 (*fi).WT(1).N() = nullId;
00094 (*fi).WT(2).N() = nullId;
00095 }
00096
00097 }
00098
00099 };
00100
00101 }
00102 }
00103
00104
00105 #endif