📄 geometry.cpp
字号:
UByteArray* array = new UByteArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { unsigned int uint_value; if (fr[0].getUInt(uint_value)) { ++fr; array->push_back(uint_value); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"UShortArray")==0) { UShortArray* array = new UShortArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { unsigned int uint_value; if (fr[0].getUInt(uint_value)) { ++fr; array->push_back(uint_value); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"UIntArray")==0) { UIntArray* array = new UIntArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { unsigned int uint_value; if (fr[0].getUInt(uint_value)) { ++fr; array->push_back(uint_value); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"UVec4bArray")==0 || strcmp(arrayName,"Vec4ubArray")==0) { Vec4ubArray* array = new Vec4ubArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { unsigned int r,g,b,a; if (fr[0].getUInt(r) && fr[1].getUInt(g) && fr[2].getUInt(b) && fr[3].getUInt(a)) { fr+=4; array->push_back(osg::Vec4ub(r,g,b,a)); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"FloatArray")==0) { FloatArray* array = new FloatArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { float float_value; if (fr[0].getFloat(float_value)) { ++fr; array->push_back(float_value); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"DoubleArray")==0) { DoubleArray* array = new DoubleArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { double double_value; if (fr[0].getFloat(double_value)) { ++fr; array->push_back(double_value); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"Vec2Array")==0) { Vec2Array* array = new Vec2Array; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { Vec2 v; if (fr[0].getFloat(v.x()) && fr[1].getFloat(v.y())) { fr += 2; array->push_back(v); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"Vec2dArray")==0) { Vec2dArray* array = new Vec2dArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { Vec2d v; if (fr[0].getFloat(v.x()) && fr[1].getFloat(v.y())) { fr += 2; array->push_back(v); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"Vec3Array")==0) { Vec3Array* array = new Vec3Array; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { Vec3 v; if (fr[0].getFloat(v.x()) && fr[1].getFloat(v.y()) && fr[2].getFloat(v.z())) { fr += 3; array->push_back(v); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"Vec3dArray")==0) { Vec3dArray* array = new Vec3dArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { Vec3d v; if (fr[0].getFloat(v.x()) && fr[1].getFloat(v.y()) && fr[2].getFloat(v.z())) { fr += 3; array->push_back(v); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"Vec4Array")==0) { Vec4Array* array = new Vec4Array; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { Vec4 v; if (fr[0].getFloat(v.x()) && fr[1].getFloat(v.y()) && fr[2].getFloat(v.z()) && fr[3].getFloat(v.w())) { fr += 4; array->push_back(v); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"Vec4dArray")==0) { Vec4dArray* array = new Vec4dArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { Vec4d v; if (fr[0].getFloat(v.x()) && fr[1].getFloat(v.y()) && fr[2].getFloat(v.z()) && fr[3].getFloat(v.w())) { fr += 4; array->push_back(v); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"Vec2bArray")==0) { Vec2bArray* array = new Vec2bArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { unsigned int r,g; if (fr[0].getUInt(r) && fr[1].getUInt(g)) { fr+=2; array->push_back(osg::Vec2b(r,g)); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"Vec3bArray")==0) { Vec3bArray* array = new Vec3bArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { unsigned int r,g,b; if (fr[0].getUInt(r) && fr[1].getUInt(g) && fr[2].getUInt(b)) { fr+=3; array->push_back(osg::Vec3b(r,g,b)); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"Vec4bArray")==0) { Vec4bArray* array = new Vec4bArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { unsigned int r,g,b,a; if (fr[0].getUInt(r) && fr[1].getUInt(g) && fr[2].getUInt(b) && fr[3].getUInt(a)) { fr+=4; array->push_back(osg::Vec4b(r,g,b,a)); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"Vec2sArray")==0) { Vec2sArray* array = new Vec2sArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { unsigned int r,g; if (fr[0].getUInt(r) && fr[1].getUInt(g)) { fr+=2; array->push_back(osg::Vec2s(r,g)); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"Vec3sArray")==0) { Vec3sArray* array = new Vec3sArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { unsigned int r,g,b; if (fr[0].getUInt(r) && fr[1].getUInt(g) && fr[2].getUInt(b)) { fr+=3; array->push_back(osg::Vec3s(r,g,b)); } else ++fr; } ++fr; return_array = array; } else if (strcmp(arrayName,"Vec4sArray")==0) { Vec4sArray* array = new Vec4sArray; array->reserve(capacity); while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) { unsigned int r,g,b,a; if (fr[0].getUInt(r) && fr[1].getUInt(g) && fr[2].getUInt(b) && fr[3].getUInt(a)) { fr+=4; array->push_back(osg::Vec4s(r,g,b,a)); } else ++fr; } ++fr; return_array = array; } if (return_array) { if (!uniqueID.empty()) fr.registerUniqueIDForObject(uniqueID.c_str(),return_array); } return return_array;}bool Array_writeLocalData(const Array& array,Output& fw){ if (array.referenceCount()>1) { std::string uniqueID; if (fw.getUniqueIDForObject(&array,uniqueID)) { fw << "Use " << uniqueID << std::endl; return true; } else { std::string uniqueID; fw.createUniqueIDForObject(&array,uniqueID); fw.registerUniqueIDForObject(&array,uniqueID); fw << "UniqueID " << uniqueID << " "; } } switch(array.getType()) { case(Array::ByteArrayType): { const ByteArray& carray = static_cast<const ByteArray&>(array); fw<<array.className()<<" "<<carray.size()<<std::endl; writeArrayAsInts(fw,carray.begin(),carray.end()); return true; } break; case(Array::ShortArrayType): { const ShortArray& carray = static_cast<const ShortArray&>(array); fw<<array.className()<<" "<<carray.size()<<std::endl; writeArray(fw,carray.begin(),carray.end()); return true; } break; case(Array::IntArrayType): { const IntArray& carray = static_cast<const IntArray&>(array); fw<<array.className()<<" "<<carray.size()<<std::endl; writeArray(fw,carray.begin(),carray.end()); return true; } break; case(Array::UByteArrayType): { const UByteArray& carray = static_cast<const UByteArray&>(array); fw<<array.className()<<" "<<carray.size()<<std::endl; writeArrayAsInts(fw,carray.begin(),carray.end()); return true; } break; case(Array::UShortArrayType): { const UShortArray& carray = static_cast<const UShortArray&>(array); fw<<array.className()<<" "<<carray.size()<<std::endl; writeArray(fw,carray.begin(),carray.end()); return true; } break; case(Array::UIntArrayType): { const UIntArray& carray = static_cast<const UIntArray&>(array); fw<<array.className()<<" "<<carray.size()<<" "; writeArray(fw,carray.begin(),carray.end()); return true; } break; case(Array::Vec4ubArrayType): { const Vec4ubArray& carray = static_cast<const Vec4ubArray&>(array); fw<<array.className()<<" "<<carray.size()<<" "; writeArray(fw,carray.begin(),carray.end(),1); return true; } break; case(Array::FloatArrayType): { const FloatArray& carray = static_cast<const FloatArray&>(array); fw<<array.className()<<" "<<carray.size()<<std::endl; writeArray(fw,carray.begin(),carray.end()); return true; } break; case(Array::Vec2ArrayType): { const Vec2Array& carray = static_cast<const Vec2Array&>(array); fw<<array.className()<<" "<<carray.size()<<std::endl; writeArray(fw,carray.begin(),carray.end(),1); return true; } break; case(Array::Vec3ArrayType): { const Vec3Array& carray = static_cast<const Vec3Array&>(array); fw<<array.className()<<" "<<carray.size()<<std::endl; writeArray(fw,carray.begin(),carray.end(),1); return true; } break; case(Array::Vec4ArrayType): { const Vec4Array& carray = static_cast<const Vec4Array&>(array); fw<<array.className()<<" "<<carray.size()<<std::endl; writeArray(fw,carray.begin(),carray.end(),1); return true; } break; case(Array::DoubleArrayType): { int prec = fw.precision(15); const DoubleArray& carray = static_cast<const DoubleArray&>(array); fw<<array.className()<<" "<<carray.size()<<std::endl; writeArray(fw,carray.begin(),carray.end()); fw.precision(prec); return true; } break; case(Array::Vec2dArrayType): { int prec = fw.precision(15); const Vec2dArray& carray = static_cast<const Vec2dArray&>(array); fw<<array.className()<<" "<<carray.size()<<std::endl; writeArray(fw,carray.begin(),carray.end(),1); fw.precision(prec); return true; } break; case(Array::Vec3dArrayType): { int prec = fw.precision(15); const Vec3dArray& carray = static_cast<const Vec3dArray&>(array); fw<<array.className()<<" "<<carray.size()<<std::endl; writeArray(fw,carray.begin(),carray.end(),1); fw.precision(prec);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -