00001 /////////////////////////////////////////////////////////////////////////// 00002 // _____________ ______________________ __ __ _____ 00003 // / ________ | | ___ ________ / | \ / \ | 00004 // | | | |_ | |_ | | / / \__ | | 00005 // | | ___ | || | || | | / / | | | 00006 // | | | \ | || | || | | / / \__/ \__/ __|__ 00007 // | | |_@ || || | || | | / / Institute 00008 // | |___/ || ||_| || | | / /_____________________ 00009 // \_______/ \______/ | |__| /___________________________ 00010 // | |__| | 00011 // \______/ 00012 // University of Utah 00013 // 2002 00014 /////////////////////////////////////////////////////////////////////////// 00015 00016 //BaseManip.h 00017 00018 00019 #include "baseManip.h" 00020 #include <string> 00021 #include <iostream> 00022 #include <serialize/SerializeUtil.h> 00023 #include "../eventGutz/mouseEvent.h" 00024 00025 using namespace gutz; 00026 using namespace std; 00027 00028 00029 00030 //////////////////////////////////////////////////////////// 00031 /// Serialization. 00032 /// write. 00033 00034 00035 const string DATA_STR("Data{"); 00036 00037 const string END_SECTION_STR("\n}\n"); 00038 00039 00040 00041 //========================================================================= 00042 // Uber Serialize 00043 //========================================================================= 00044 bool BaseManip::serialize(std::ostream &os, const std::string indent) 00045 { 00046 string ind = indent; 00047 ind += " "; 00048 00049 /// serial data 00050 os << indent << DATA_STR << " \n"; 00051 serialData(os, ind); 00052 os << indent << END_SECTION_STR; 00053 00054 bool status = false; 00055 00056 return status; 00057 } 00058 00059 //========================================================================= 00060 // Uber UnSerialize 00061 //========================================================================= 00062 /// read. 00063 bool BaseManip::unserialize(std::istream &is) 00064 { 00065 string tstr; 00066 00067 bool status = false; 00068 00069 /// unserial data 00070 is >> tstr; 00071 if(unserialKeyCheck(DATA_STR, tstr, "BaseManip, data")) return true; 00072 if(unserialData(is)) return true; 00073 is >> tstr; 00074 if(unserialKeyCheck(END_SECTION_STR,tstr,"BaseManip, data")) return true; 00075 00076 status = status || is.eof() || is.fail(); 00077 return status; 00078 } 00079 00080 00081 //========================================================================= 00082 // Serialize Data 00083 //========================================================================= 00084 const string FRUSTUM_STR("Frustum: "); 00085 const string CLIPS_STR("Clips: "); 00086 00087 bool BaseManip::serialData(std::ostream &os, const std::string indent) 00088 { 00089 /// frustum 00090 //os << indent << FRUSTUM_STR << _frustum << "\n"; 00091 /// clips 00092 //os << indent << CLIPS_STR << _clips << "\n"; 00093 return false; 00094 } 00095 00096 //========================================================================= 00097 // Unserialize Data 00098 //========================================================================= 00099 bool BaseManip::unserialData(std::istream &is) 00100 { 00101 /// frustum 00102 //string tstr; 00103 //is >> tstr; 00104 //if(unserialKeyCheck(FRUSTUM_STR, tstr, "BaseManip, data frustum")) return true; 00105 //is >> _frustum; 00106 /// clips 00107 //is >> tstr; 00108 //if(unserialKeyCheck(CLIPS_STR, tstr, "BaseManip, data clips")) return true; 00109 //is >> _clips; 00110 00111 return is.eof() || is.fail(); 00112 } 00113