00001 /**************************************************************************** 00002 * VCGLib o o * 00003 * Visual and Computer Graphics Library o o * 00004 * _ O _ * 00005 * Copyright(C) 2004 \/)\/ * 00006 * Visual Computing Lab /\/| * 00007 * ISTI - Italian National Research Council | * 00008 * \ * 00009 * All rights reserved. * 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 * This program is distributed in the hope that it will be useful, * 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00019 * GNU General Public License (http://www.gnu.org/licenses/gpl.txt) * 00020 * for more details. * 00021 * * 00022 ****************************************************************************/ 00023 /**************************************************************************** 00024 History 00025 00026 $Log: not supported by cvs2svn $ 00027 00028 ****************************************************************************/ 00029 00030 #ifndef VCG_STRIP_MESH_H 00031 #define VCG_STRIP_MESH_H 00032 00033 #include <vector> 00034 00035 namespace vcg { 00036 00037 00038 class StripMesh { 00039 public: 00040 enum Signature { NORMAL = 1, COLOR = 2, STRIP = 4 }; 00041 00042 StripMesh(char *s); 00043 00044 private: 00045 unsigned short _vert_size; 00046 unsigned short _norm_size; 00047 unsigned short _color_size; 00048 unsigned short _strip_size; 00049 00050 Point3f *_vert_start; 00051 short *_norm_start; 00052 unsigned char *_color_start; 00053 unsigned short *_strip_start; 00054 }; 00055 00056 class StripMeshBuilder { 00057 public: 00058 std::vector<Point3f> vert; 00059 std::vector<short> norm; 00060 std::vector<unsigned char> color; 00061 std::vector<unsigned short> strip; 00062 00063 unsigned int Signature(); 00065 unsigned int Size(); 00066 void Write(char *buffer, unsigned int size); 00067 }; 00068 00069 }//namespace 00070 #endif