aboutsummaryrefslogtreecommitdiff
path: root/tool_src/BspLib/InputData3D.h
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
committerFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
commitc068f22329d5cc722622a2183bbb22eef2093df7 (patch)
tree12d56c1aede67988a55e241364606bfbb4dba933 /tool_src/BspLib/InputData3D.h
downloadopenparsec-c068f22329d5cc722622a2183bbb22eef2093df7.tar.xz
openparsec-c068f22329d5cc722622a2183bbb22eef2093df7.zip
initial importHEADmain
Diffstat (limited to 'tool_src/BspLib/InputData3D.h')
-rw-r--r--tool_src/BspLib/InputData3D.h83
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_
+