45#ifndef OPENMESH_IO_OPTIONS_HH
46#define OPENMESH_IO_OPTIONS_HH
53#include <OpenMesh/Core/System/config.h>
94 typedef int enum_type;
95 typedef enum_type value_type;
135 Options(
const value_type _flgs) : flags_( _flgs)
152 Options& operator = (
const value_type _rhs )
153 { flags_ = _rhs;
return *
this; }
160 { flags_ &= ~_rhs;
return *
this; }
162 Options& unset(
const value_type _rhs)
163 {
return (*
this -= _rhs); }
173 { flags_ |= _rhs;
return *
this; }
175 Options& set(
const value_type _rhs)
176 {
return (*
this += _rhs); }
184 bool check(
const value_type _rhs)
const
186 return (flags_ & _rhs)==_rhs;
189 bool is_binary()
const {
return check(
Binary); }
190 bool vertex_has_normal()
const {
return check(
VertexNormal); }
191 bool vertex_has_color()
const {
return check(
VertexColor); }
192 bool vertex_has_texcoord()
const {
return check(
VertexTexCoord); }
193 bool vertex_has_status()
const {
return check(
Status); }
194 bool edge_has_color()
const {
return check(
EdgeColor); }
195 bool edge_has_status()
const {
return check(
Status); }
196 bool halfedge_has_status()
const {
return check(
Status); }
197 bool face_has_normal()
const {
return check(
FaceNormal); }
198 bool face_has_color()
const {
return check(
FaceColor); }
199 bool face_has_texcoord()
const {
return check(
FaceTexCoord); }
200 bool face_has_status()
const {
return check(
Status); }
201 bool color_has_alpha()
const {
return check(
ColorAlpha); }
202 bool color_is_float()
const {
return check(
ColorFloat); }
203 bool use_st_coordinates()
const {
return check(
TexCoordST); }
208 {
return flags_ == _rhs; }
213 {
return flags_ != _rhs; }
217 operator value_type ()
const {
return flags_; }
221 bool operator && (
const value_type _rhs)
const;
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...
Definition: MeshItems.hh:59
Set options for reader/writer modules.
Definition: Options.hh:92
Options & operator+=(const value_type _rhs)
Set options defined in _rhs.
Definition: Options.hh:172
std::string material_file_extension
Filename extension for material files when writing OBJs default is currently .mat.
Definition: Options.hh:126
Options(const value_type _flgs)
Initializing constructor setting multiple options.
Definition: Options.hh:135
bool operator!=(const value_type _rhs) const
Returns true if _rhs does not have the same options enabled.
Definition: Options.hh:212
void cleanup(void)
Restore state after default constructor.
Definition: Options.hh:139
bool is_empty(void) const
Returns true if all bits are zero.
Definition: Options.hh:147
bool operator==(const value_type _rhs) const
Returns true if _rhs has the same options enabled.
Definition: Options.hh:207
void clear(void)
Clear all bits.
Definition: Options.hh:143
Options()
Default constructor.
Definition: Options.hh:131
Flag
Definitions of Options for reading and writing.
Definition: Options.hh:99
@ ColorFloat
Has (r) / store (w) float values for colors (currently only implemented for PLY and OFF files)
Definition: Options.hh:113
@ FaceNormal
Has (r) / store (w) face normals.
Definition: Options.hh:109
@ TexCoordST
Write texture coordinates as ST instead of UV.
Definition: Options.hh:116
@ Swap
Swap byte order in binary mode.
Definition: Options.hh:104
@ None
No options.
Definition: Options.hh:100
@ FaceColor
Has (r) / store (w) face colors.
Definition: Options.hh:110
@ FaceTexCoord
Has (r) / store (w) face texture coordinates.
Definition: Options.hh:111
@ MSB
Assume big endian byte ordering.
Definition: Options.hh:102
@ Binary
Set binary mode for r/w.
Definition: Options.hh:101
@ Default
By default write persistent custom properties.
Definition: Options.hh:117
@ Status
Has (r) / store (w) status properties.
Definition: Options.hh:115
@ ColorAlpha
Has (r) / store (w) alpha values for colors.
Definition: Options.hh:112
@ LSB
Assume little endian byte ordering.
Definition: Options.hh:103
@ VertexNormal
Has (r) / store (w) vertex normals.
Definition: Options.hh:105
@ VertexTexCoord
Has (r) / store (w) texture coordinates.
Definition: Options.hh:107
@ EdgeColor
Has (r) / store (w) edge colors.
Definition: Options.hh:108
@ VertexColor
Has (r) / store (w) vertex colors.
Definition: Options.hh:106
@ Custom
Has (r) / store (w) custom properties marked persistent (currently PLY only supports reading and only...
Definition: Options.hh:114
std::string texture_file
Texture filename.
Definition: Options.hh:122
Options & operator-=(const value_type _rhs)
Unset options defined in _rhs.
Definition: Options.hh:159