diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2026-08-24 11:16:07 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2026-08-24 11:16:07 +0200 |
| commit | c068f22329d5cc722622a2183bbb22eef2093df7 (patch) | |
| tree | 12d56c1aede67988a55e241364606bfbb4dba933 /tool_src/BspLib/InputData3D.h | |
| download | openparsec-c068f22329d5cc722622a2183bbb22eef2093df7.tar.xz openparsec-c068f22329d5cc722622a2183bbb22eef2093df7.zip | |
Diffstat (limited to 'tool_src/BspLib/InputData3D.h')
| -rw-r--r-- | tool_src/BspLib/InputData3D.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/tool_src/BspLib/InputData3D.h b/tool_src/BspLib/InputData3D.h new file mode 100644 index 0000000..ab295b3 --- /dev/null +++ b/tool_src/BspLib/InputData3D.h @@ -0,0 +1,83 @@ +//----------------------------------------------------------------------------- +// BSPLIB HEADER: InputData3D.h +// +// Copyright (c) 1997-1998 by Markus Hadwiger +// All Rights Reserved. +//----------------------------------------------------------------------------- + +#ifndef _INPUTDATA3D_H_ +#define _INPUTDATA3D_H_ + +// bsplib header files +#include "BspLibDefs.h" +#include "BspObjectList.h" +#include "IOData3D.h" + + +BSPLIB_NAMESPACE_BEGIN + + +// generic input class for 3-D data ------------------------------------------- +// +class InputData3D : public IOData3D { + +public: + // flags for automatic postprocessing of input data + enum { + CONVERT_COLINDXS_TO_RGB = 0x0001, + FILTER_SCALE_FACTORS = 0x0002, + FILTER_AXES_DIR_SWITCH = 0x0004, + FILTER_AXES_EXCHANGE = 0x0008, + DO_AXES_EXCHANGE = FILTER_AXES_DIR_SWITCH | FILTER_AXES_EXCHANGE, + FORCE_MAXIMUM_EXTENT = 0x0010, + ALLOW_N_GONS = 0x0020, + }; + +public: + InputData3D( BspObjectList objectlist, const char *filename, int format = UNKNOWN_FORMAT ); + virtual ~InputData3D(); + + virtual int ParseObjectData(); // parse data file + + int getObjectFormat() const { return m_objectformat; } // get format of "real" object + InputData3D* getRealObject() const { return m_data; } // get pointer to "real" object + + int InputDataValid() const { return m_inputok; } // input data parsed ok? + + // set/reset flags for automatic postprocessing of input data + static int EnableRGBConversion( int enable ); + static int EnableScaleFactors( int enable ); + static int EnableAxesChange( int enable ); + static int EnableMaximumExtent( int enable, double extent ); + static int EnableAllowNGons( int enable ); + + // get state of flags for automatic postprocessing of input data + static int getRGBConversionFlag() { return ( ( PostProcessingFlags & CONVERT_COLINDXS_TO_RGB ) == CONVERT_COLINDXS_TO_RGB ); } + static int getScaleFactorsFlag() { return ( ( PostProcessingFlags & FILTER_SCALE_FACTORS ) == FILTER_SCALE_FACTORS ); } + static int getAxesChangeFlag() { return ( ( PostProcessingFlags & DO_AXES_EXCHANGE ) == DO_AXES_EXCHANGE ); } + static int getEnforceExtentsFlag() { return ( ( PostProcessingFlags & FORCE_MAXIMUM_EXTENT ) == FORCE_MAXIMUM_EXTENT ); } + static double getMaxExtents() { return MaximumExtentToForce; } + static int getAllowNGonFlag() { return ( ( PostProcessingFlags & ALLOW_N_GONS ) == ALLOW_N_GONS ); } + +private: + int ReadFileSignature(); + +protected: + static dword PostProcessingFlags; + static double MaximumExtentToForce; + static const char parser_err_str[]; + +protected: + int m_objectformat; + int m_inputok; + +private: + InputData3D* m_data; +}; + + +BSPLIB_NAMESPACE_END + + +#endif // _INPUTDATA3D_H_ + |
