X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fio%2Flowlevel.hxx;h=2367d0d4a5ad4bcd60885c4720055fd52bc6982e;hb=201cb61f842ef50a19438e3872ba22e588fa1afc;hp=0f650d5b0f27d0372b0395895c484cb9e3da05e2;hpb=dcb95d131bc6aef1abe25d1f415e309f06e52436;p=simgear.git diff --git a/simgear/io/lowlevel.hxx b/simgear/io/lowlevel.hxx index 0f650d5b..2367d0d4 100644 --- a/simgear/io/lowlevel.hxx +++ b/simgear/io/lowlevel.hxx @@ -30,11 +30,11 @@ #include #include -#include - #include #include +#include + // Note that output is written in little endian form (and converted as // necessary for big endian machines) @@ -75,39 +75,50 @@ void sgWriteBytes ( gzFile fd, const unsigned int n, const void *var ) ; void sgReadString ( gzFile fd, char **var ) ; void sgWriteString ( gzFile fd, const char *var ) ; -inline void sgReadVec2 ( gzFile fd, sgVec2 var ) { - sgReadFloat ( fd, 2, var ) ; +inline void sgReadVec2 ( gzFile fd, SGVec2f& var ) { + sgReadFloat ( fd, 2, var.data() ) ; +} +inline void sgWriteVec2 ( gzFile fd, const SGVec2f& var ) { + sgWriteFloat ( fd, 2, var.data() ) ; +} + +inline void sgReadVec3 ( gzFile fd, SGVec3f& var ) { + sgReadFloat ( fd, 3, var.data() ) ; } -inline void sgWriteVec2 ( gzFile fd, const sgVec2 var ) { - sgWriteFloat ( fd, 2, var ) ; +inline void sgWriteVec3 ( gzFile fd, const SGVec3f& var ) { + sgWriteFloat ( fd, 3, var.data() ) ; } -inline void sgReadVec3 ( gzFile fd, sgVec3 var ) { - sgReadFloat ( fd, 3, var ) ; +inline void sgReaddVec3 ( gzFile fd, SGVec3d& var ) { + sgReadDouble ( fd, 3, var.data() ) ; } -inline void sgWriteVec3 ( gzFile fd, const sgVec3 var ) { - sgWriteFloat ( fd, 3, var ) ; +inline void sgWritedVec3 ( gzFile fd, const SGVec3d& var ) { + sgWriteDouble ( fd, 3, var.data() ) ; } -inline void sgReaddVec3 ( gzFile fd, sgdVec3 var ) { - sgReadDouble ( fd, 3, var ) ; +inline void sgReadVec4 ( gzFile fd, SGVec4f& var ) { + sgReadFloat ( fd, 4, var.data() ) ; } -inline void sgWritedVec3 ( gzFile fd, const sgdVec3 var ) { - sgWriteDouble ( fd, 3, var ) ; +inline void sgWriteVec4 ( gzFile fd, const SGVec4f& var ) { + sgWriteFloat ( fd, 4, var.data() ) ; } -inline void sgReadVec4 ( gzFile fd, sgVec4 var ) { - sgReadFloat ( fd, 4, var ) ; +inline void sgReadMat4 ( gzFile fd, SGMatrixf& var ) { + sgReadFloat ( fd, 16, (float *)var.data() ) ; } -inline void sgWriteVec4 ( gzFile fd, const sgVec4 var ) { - sgWriteFloat ( fd, 4, var ) ; +inline void sgWriteMat4 ( gzFile fd, const SGMatrixf& var ) { + sgWriteFloat ( fd, 16, (float *)var.data() ) ; } -inline void sgReadMat4 ( gzFile fd, sgMat4 var ) { - sgReadFloat ( fd, 16, (float *)var ) ; +inline void sgReadGeod ( gzFile fd, SGGeod& var ) { + double data[3]; + sgReadDouble ( fd, 3, data ); + var = SGGeod::fromDegM( data[0], data[1], data[2] ); } -inline void sgWriteMat4 ( gzFile fd, const sgMat4 var ) { - sgWriteFloat ( fd, 16, (float *)var ) ; +inline void sgWriteGeod ( gzFile fd, const SGGeod& var ) { + sgWriteDouble( fd, var.getLongitudeDeg() ); + sgWriteDouble( fd, var.getLatitudeDeg() ); + sgWriteDouble( fd, var.getElevationM() ); } void sgClearReadError();