Skip to content

Commit a4fae4e

Browse files
authored
Merge pull request #158 from Geode-solutions/fix/windows_problem_with_tellg_seekg
fix(Input): Fixed problem on windows when using tellg and seekg on fi…
2 parents 6dce4e2 + 8a0e866 commit a4fae4e

10 files changed

Lines changed: 19 additions & 14 deletions

File tree

src/geode/geosciences_io/mesh/grdecl_input.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ namespace
6565
public:
6666
GRDECLInputImpl(
6767
std::string_view filename, geode::HybridSolid3D& solid )
68-
: file_{ geode::to_string( filename ) },
68+
: file_{ geode::to_string( filename ), std::ios::binary },
6969
filepath_{
7070
geode::filepath_without_filename( filename ).string()
7171
},

src/geode/geosciences_io/mesh/pl_input.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ namespace
4040
{
4141
public:
4242
PLInputImpl( std::string_view filename, geode::EdgedCurve3D& curve )
43-
: file_{ geode::to_string( filename ) },
43+
: file_{ geode::to_string( filename ), std::ios::binary },
4444
curve_( curve ),
4545
builder_( geode::EdgedCurveBuilder< 3 >::create( curve ) )
4646
{

src/geode/geosciences_io/mesh/ts_input.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ namespace
4141
public:
4242
TSInputImpl(
4343
std::string_view filename, geode::TriangulatedSurface3D& surface )
44-
: file_{ geode::to_string( filename ) },
44+
: file_{ geode::to_string( filename ), std::ios::binary },
4545
surface_( surface ),
4646
builder_(
4747
geode::TriangulatedSurfaceBuilder< 3 >::create( surface ) )

src/geode/geosciences_io/mesh/vo_input.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include <string>
2929

3030
#include <absl/strings/str_replace.h>
31+
#include <absl/strings/strip.h>
3132

3233
#include <geode/basic/attribute_manager.hpp>
3334
#include <geode/basic/file.hpp>
@@ -63,7 +64,7 @@ namespace
6364
{
6465
public:
6566
VOInputImpl( std::string_view filename, geode::RegularGrid3D& grid )
66-
: file_{ geode::to_string( filename ) },
67+
: file_{ geode::to_string( filename ), std::ios::binary },
6768
file_folder_{
6869
geode::filepath_without_filename( filename ).string()
6970
},
@@ -157,10 +158,11 @@ namespace
157158
const auto data_file_name = get_data_file( file_ );
158159
OPENGEODE_EXCEPTION(
159160
data_file_name.has_value(), "[VOInput] No data file record" );
160-
std::ifstream data_file{ absl::StrCat(
161-
file_folder_, data_file_name.value() ) };
161+
const auto data_file_path = absl::StrCat( file_folder_,
162+
absl::StripSuffix( data_file_name.value(), "\r" ) );
163+
std::ifstream data_file{ data_file_path, std::ios::binary };
162164
OPENGEODE_EXCEPTION( data_file.good(),
163-
"[VOInput] Cannot open data file: ", data_file_name.value() );
165+
"[VOInput] Cannot open data file: ", data_file_path );
164166
std::string line;
165167
std::getline( data_file, line );
166168
std::getline( data_file, line );
@@ -219,7 +221,8 @@ namespace geode
219221

220222
auto VOInput::additional_files() const -> AdditionalFiles
221223
{
222-
std::ifstream file{ geode::to_string( filename() ) };
224+
std::ifstream file{ geode::to_string( filename() ),
225+
std::ios::binary };
223226
const auto data_file = get_data_file( file );
224227
file.close();
225228
if( !data_file.has_value() )
@@ -234,7 +237,8 @@ namespace geode
234237

235238
Percentage VOInput::is_loadable() const
236239
{
237-
std::ifstream file{ to_string( this->filename() ) };
240+
std::ifstream file{ to_string( this->filename() ),
241+
std::ios::binary };
238242
if( goto_keyword_if_it_exists( file, "GOCAD Voxet" ) )
239243
{
240244
return Percentage{ 1 };

src/geode/geosciences_io/mesh/vs_input.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ namespace
4040
{
4141
public:
4242
VSInputImpl( std::string_view filename, geode::PointSet3D& point_set )
43-
: file_{ geode::to_string( filename ) },
43+
: file_{ geode::to_string( filename ), std::ios::binary },
4444
point_set_( point_set ),
4545
builder_( geode::PointSetBuilder< 3 >::create( point_set ) )
4646
{

src/geode/geosciences_io/mesh/well_dev_input.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ namespace
4949
public:
5050
WellDevInputImpl(
5151
std::string_view filename, geode::EdgedCurve3D& curve )
52-
: file_{ geode::to_string( filename ) },
52+
: file_{ geode::to_string( filename ), std::ios::binary },
5353
curve_( curve ),
5454
builder_( geode::EdgedCurveBuilder3D::create( curve ) )
5555
{

src/geode/geosciences_io/mesh/wl_input.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ namespace
4141
{
4242
public:
4343
WLInputImpl( std::string_view filename, geode::EdgedCurve3D& curve )
44-
: file_{ geode::to_string( filename ) },
44+
: file_{ geode::to_string( filename ), std::ios::binary },
4545
builder_( geode::EdgedCurveBuilder3D::create( curve ) )
4646
{
4747
OPENGEODE_EXCEPTION(

src/geode/geosciences_io/model/internal/lso_input.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ namespace
6868
"geode_block_name_attribute_name";
6969

7070
LSOInputImpl( std::string_view filename, geode::StructuralModel& model )
71-
: file_{ geode::to_string( filename ) },
71+
: file_{ geode::to_string( filename ), std::ios::binary },
7272
model_( model ),
7373
builder_{ model },
7474
solid_{ geode::TetrahedralSolid3D::create() },

src/geode/geosciences_io/model/internal/ml_input.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ namespace
8282
static constexpr char EOL{ '\n' };
8383

8484
MLInputImpl( std::string_view filename, geode::StructuralModel& model )
85-
: file_{ geode::to_string( filename ) },
85+
: file_{ geode::to_string( filename ), std::ios::binary },
8686
model_( model ),
8787
builder_( model )
8888
{

tests/mesh/test-vo.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ int main()
7070
try
7171
{
7272
geode::GeosciencesIOMeshLibrary::initialize();
73+
geode::Logger::set_level( geode::Logger::LEVEL::debug );
7374
test_grid_input();
7475

7576
geode::Logger::info( "TEST SUCCESS" );

0 commit comments

Comments
 (0)