write face normals as double
This commit is contained in:
@@ -387,19 +387,36 @@ bool _OMWriter_::write_binary(std::ostream& _os, BaseExporter& _be,
|
||||
{
|
||||
#endif
|
||||
Vec3f n = _be.normal(FaceHandle(0));
|
||||
Vec3d nd = _be.normald(FaceHandle(0));
|
||||
|
||||
chunk_header.name_ = false;
|
||||
chunk_header.entity_ = OMFormat::Chunk::Entity_Face;
|
||||
chunk_header.type_ = OMFormat::Chunk::Type_Normal;
|
||||
chunk_header.signed_ = OMFormat::is_signed(n[0]);
|
||||
chunk_header.float_ = OMFormat::is_float(n[0]);
|
||||
chunk_header.dim_ = OMFormat::dim(n);
|
||||
chunk_header.bits_ = OMFormat::bits(n[0]);
|
||||
|
||||
if (_be.is_normal_double())
|
||||
{
|
||||
chunk_header.signed_ = OMFormat::is_signed(nd[0]);
|
||||
chunk_header.float_ = OMFormat::is_float(nd[0]);
|
||||
chunk_header.dim_ = OMFormat::dim(nd);
|
||||
chunk_header.bits_ = OMFormat::bits(nd[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
chunk_header.signed_ = OMFormat::is_signed(n[0]);
|
||||
chunk_header.float_ = OMFormat::is_float(n[0]);
|
||||
chunk_header.dim_ = OMFormat::dim(n);
|
||||
chunk_header.bits_ = OMFormat::bits(n[0]);
|
||||
}
|
||||
|
||||
bytes += store( _os, chunk_header, swap );
|
||||
#if !NEW_STYLE
|
||||
for (i=0, nF=header.n_faces_; i<nF; ++i)
|
||||
bytes += vector_store( _os, _be.normal(FaceHandle(i)), swap );
|
||||
if (_be.is_normal_double())
|
||||
for (i=0, nF=header.n_faces_; i<nF; ++i)
|
||||
bytes += vector_store( _os, _be.normald(FaceHandle(i)), swap );
|
||||
else
|
||||
for (i=0, nF=header.n_faces_; i<nF; ++i)
|
||||
bytes += vector_store( _os, _be.normal(FaceHandle(i)), swap );
|
||||
|
||||
#else
|
||||
bytes += bp->store(_os, swap );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user