MeshLib
 
Loading...
Searching...
No Matches
MRIOParsing.h
Go to the documentation of this file.
1#pragma once
2#include "MRMeshFwd.h"
3#include "MRExpected.h"
4#include "MRBuffer.h"
5#include <istream>
6
7namespace MR
8{
9
10// returns offsets for each new line in monolith char block
11MRMESH_API std::vector<size_t> splitByLines( const char* data, size_t size );
12
13// reads input stream to monolith char block
15
16// read coordinates to `v` separated by space
17template<typename T>
18VoidOrErrStr parseTextCoordinate( const std::string_view& str, Vector3<T>& v, Vector3<T>* n = nullptr, Color* c = nullptr );
19template<typename T>
20VoidOrErrStr parseObjCoordinate( const std::string_view& str, Vector3<T>& v, Vector3<T>* c = nullptr );
21template<typename T>
22VoidOrErrStr parsePtsCoordinate( const std::string_view& str, Vector3<T>& v, Color& c );
23
24// reads the first integer number in the line
25MRMESH_API VoidOrErrStr parseFirstNum( const std::string_view& str, int& num );
26// reads the polygon points and optional number of polygon points
27// example
28// N vertex0 vertex1 ... vertexN
29MRMESH_API VoidOrErrStr parsePolygon( const std::string_view& str, VertId* vertId, int* numPoints );
30
31template<typename T>
32[[deprecated( "use parseTextCoordinate() instead")]]
33VoidOrErrStr parseAscCoordinate( const std::string_view& str, Vector3<T>& v, Vector3<T>* n = nullptr, Color* c = nullptr );
34
35
36
37template<typename T>
38VoidOrErrStr parseSingleNumber( const std::string_view& str, T& num );
39
40}
int VertId
Definition MRDotNet/MRMeshFwd.h:51
#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:46
Definition MRCameraOrientationPlugin.h:7
VoidOrErrStr parseSingleNumber(const std::string_view &str, T &num)
VoidOrErrStr parsePtsCoordinate(const std::string_view &str, Vector3< T > &v, Color &c)
ImVec2 size(const ViewportRectangle &rect)
Definition MRViewport.h:32
MRMESH_API std::vector< size_t > splitByLines(const char *data, size_t size)
MRMESH_API VoidOrErrStr parseFirstNum(const std::string_view &str, int &num)
tl::expected< T, E > Expected
Definition MRExpected.h:49
VoidOrErrStr parseAscCoordinate(const std::string_view &str, Vector3< T > &v, Vector3< T > *n=nullptr, Color *c=nullptr)
VoidOrErrStr parseTextCoordinate(const std::string_view &str, Vector3< T > &v, Vector3< T > *n=nullptr, Color *c=nullptr)
MRMESH_API VoidOrErrStr parsePolygon(const std::string_view &str, VertId *vertId, int *numPoints)
VoidOrErrStr parseObjCoordinate(const std::string_view &str, Vector3< T > &v, Vector3< T > *c=nullptr)
MRMESH_API Expected< Buffer< char > > readCharBuffer(std::istream &in)
Expected< void > VoidOrErrStr
return type for a void function that can produce an error string
Definition MRExpected.h:60
Definition MRColor.h:9
Definition MRMesh/MRVector3.h:19