From c068f22329d5cc722622a2183bbb22eef2093df7 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 24 Aug 2026 11:16:07 +0200 Subject: initial import --- tool_src/BspLib/InputData3D.h | 83 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 tool_src/BspLib/InputData3D.h (limited to 'tool_src/BspLib/InputData3D.h') 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_ + -- cgit v1.2.3