]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - include/isurfaceplugin.h
eol style
[xonotic/netradiant.git] / include / isurfaceplugin.h
index 6783bb2ca5245c5faaf28546985a61a43ca7f3b0..d7be03fdf1421ec0457410066f70afe2abacbea8 100644 (file)
-/*\r
-Copyright (C) 1999-2007 id Software, Inc. and contributors.\r
-For a list of contributors, see the accompanying CONTRIBUTORS file.\r
-\r
-This file is part of GtkRadiant.\r
-\r
-GtkRadiant is free software; you can redistribute it and/or modify\r
-it under the terms of the GNU General Public License as published by\r
-the Free Software Foundation; either version 2 of the License, or\r
-(at your option) any later version.\r
-\r
-GtkRadiant is distributed in the hope that it will be useful,\r
-but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-GNU General Public License for more details.\r
-\r
-You should have received a copy of the GNU General Public License\r
-along with GtkRadiant; if not, write to the Free Software\r
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\r
-*/\r
-\r
-//-----------------------------------------------------------------------------\r
-//\r
-// DESCRIPTION:\r
-// \r
-//\r
-\r
-#ifndef __ISURFACEPLUGIN_H_\r
-#define __ISURFACEPLUGIN_H_\r
-\r
-typedef struct _GtkWidget GtkWidget;\r
-typedef struct _GtkWindow GtkWindow;\r
-\r
-#define SURFACEDIALOG_MAJOR "surfdialog"\r
-\r
-// there's a void* in each qtexture_t, must be casted to a IPluginTexdef*\r
-// there's a void* in each face_t, must be casted to a IPluginTexdef*\r
-// NOTE: IPluginTexdef stores a pointer to the qtexture_t or face_t it's stored in\r
-// members of IPluginTexdef often access the qtexture_t or face_t they are connected to\r
-\r
-// Write texdef needs a function pointer, because Radiant either writes into a FILE or a CMemFile\r
-typedef void (* PFN_QERAPP_MAPPRINTF) ( char *text, ... );\r
-\r
-class IPluginTexdef\r
-{\r
-public:\r
-       // Increment the number of references to this object\r
-       virtual void IncRef () = 0;\r
-       // Decrement the reference count\r
-       virtual void DecRef () = 0;\r
-};\r
-\r
-\r
-\r
-// Nurail: For SI module\r
-class texdef_to_face_t\r
-{\r
-public:\r
-  texdef_to_face_t* next;\r
-  brush_t *brush;   // Brush faces belong to (for Undo)\r
-  face_t *face;     // Face of Texdef\r
-  texdef_t texdef;  // Working texdef\r
-  texdef_t orig_texdef;  // Original, for baselining changes\r
-};\r
-\r
-\r
-typedef void (* PFN_QERPLUG_DOSURFACE)                 ();\r
-typedef void (* PFN_QERPLUG_TOGGLESURFACE)     ();\r
-typedef void (* PFN_QERPLUG_UPDATESURFACEDIALOG)       ();\r
-typedef void (* PFN_QERPLUG_SURFACEDLGFITALL)  ();\r
-typedef GtkWidget* (* PFN_GET_SI_MODULE_WIDGET) ();\r
-\r
-struct _QERPlugSurfaceTable\r
-{\r
-       int m_nSize;\r
-       PFN_QERPLUG_TOGGLESURFACE               m_pfnToggleSurface;\r
-       PFN_QERPLUG_DOSURFACE                           m_pfnDoSurface;\r
-       PFN_QERPLUG_UPDATESURFACEDIALOG         m_pfnUpdateSurfaceDialog;\r
-       PFN_QERPLUG_SURFACEDLGFITALL            m_pfnSurfaceDlgFitAll;\r
-       PFN_GET_SI_MODULE_WIDGET                m_pfnGet_SI_Module_Widget;\r
-};\r
-\r
-// this one is used by the plugin to access some Radiant stuff\r
-\r
-#define APPSURFACEDIALOG_MAJOR "appsurfdialog"\r
-\r
-// {42BAE4C0-9787-11d3-8EF3-0000E8E8657B}\r
-static const GUID QERAppSurfaceTable_GUID = \r
-{ 0x42bae4c0, 0x9787, 0x11d3, { 0x8e, 0xf3, 0x0, 0x0, 0xe8, 0xe8, 0x65, 0x7b } };\r
-\r
-typedef bool (* PFN_PATCHESSELECTED)   ();\r
-// retrieve g_qeglobals.texturewin_t\r
-//++timo FIXME: this should move in a dedicated table for all g_qeglobals stuff\r
-typedef texturewin_t* (* PFN_QEGLOBALSTEXTUREWIN) ();\r
-// look for the first selected patch mesh\r
-//++timo FIXME: this is a convenient func since there's no way to scan patches ( yet )\r
-typedef patchMesh_t* (* PFN_GETSELECTEDPATCH) ();\r
-//++timo FIXME: this one in particular is a hack\r
-typedef void (* PFN_GETTWOSELECTEDPATCH) (patchMesh_t **p1, patchMesh_t **p2);\r
-\r
-\r
-// leo FIXME: hacks uglier than the ones above\r
-typedef void (* PFN_TEXMATTOFAKETEXCOORDS) (vec_t texMat[2][3], float shift[2], float *rot, float scale[2]);\r
-typedef void (* PFN_CONVERTTEXMATWITHQTEXTURE) (brushprimit_texdef_t *texMat1, qtexture_t *qtex1, brushprimit_texdef_t *texMat2, qtexture_t *qtex2);\r
-typedef void (* PFN_FAKETEXCOORDSTOTEXMAT) (float shift[2], float rot, float scale[2], vec_t texMat[2][3]);\r
-typedef void (* PFN_PATCH_RESETTEXTURING) (float fx, float fy);\r
-typedef void (* PFN_PATCH_FITTEXTURING) ();\r
-typedef void (* PFN_PATCH_NATURALIZESELECTED) (bool bCap);\r
-typedef const char* (* PFN_PATCH_GETTEXTURENAME) (); \r
-typedef qboolean (* PFN_QE_SINGLEBRUSH) (bool bQuiet);\r
-typedef qboolean (* PFN_ISBRUSHPRIMITMODE) ();\r
-typedef void (* PFN_SELECT_FITTEXTURE)(int nHeight, int nWidth);\r
-typedef void (*PFN_COMPUTEAXISBASE)(vec3_t normal,vec3_t texS,vec3_t texT );\r
-typedef void (*PFN_BPMATMUL)(vec_t A[2][3], vec_t B[2][3], vec_t C[2][3]);\r
-typedef void (*PFN_EMITBRUSHPRIMITTEXCOORDS)(face_t * f, winding_t * w);\r
-typedef texdef_t* (*PFN_QEGLOBALSSAVEDINFO_SIINC) ();\r
-typedef float (* PFN_QEGLOBALSGETGRIDSIZE) ();\r
-typedef void (* PFN_FACELIST_FITTEXTURE) (texdef_to_face_t* texdef_face_list, int nHeight, int nWidth);\r
-typedef GtkWindow* (* PFN_GETMAINWINDOW)();\r
-typedef void (* PFN_SETWINPOS_FROM_PREFS) (GtkWidget *win);\r
-typedef int (* PFN_GETSELECTEDFACECOUNT_BRUSH) ();\r
-typedef void (* PFN_GETSELFACESTEXDEF) (texdef_to_face_t *);\r
-typedef void (* PFN_SETTEXDEF_FACELIST) (texdef_to_face_t* texdef_face_list, bool b_SetUndoPoint, bool bFit_to_Scale);\r
-typedef void (* PFN_SETACTIVEINRADIANT) ();\r
-\r
-\r
-struct _QERAppSurfaceTable\r
-{\r
-  int m_nSize;\r
-  PFN_PATCHESSELECTED          m_pfnOnlyPatchesSelected;\r
-  PFN_PATCHESSELECTED          m_pfnAnyPatchesSelected;\r
-  PFN_GETSELECTEDPATCH         m_pfnGetSelectedPatch;\r
-  PFN_GETTWOSELECTEDPATCH              m_pfnGetTwoSelectedPatch;\r
-  PFN_TEXMATTOFAKETEXCOORDS    m_pfnTexMatToFakeTexCoords;\r
-  PFN_CONVERTTEXMATWITHQTEXTURE        m_pfnConvertTexMatWithQTexture;\r
-  PFN_FAKETEXCOORDSTOTEXMAT    m_pfnFakeTexCoordsToTexMat;\r
-  PFN_PATCH_RESETTEXTURING     m_pfnPatch_ResetTexturing;\r
-  PFN_PATCH_FITTEXTURING               m_pfnPatch_FitTexturing;\r
-  PFN_PATCH_NATURALIZESELECTED m_pfnPatch_NaturalizeSelected;\r
-  PFN_PATCH_GETTEXTURENAME     m_pfnPatch_GetTextureName;\r
-  PFN_QE_SINGLEBRUSH           m_pfnQE_SingleBrush;\r
-  PFN_ISBRUSHPRIMITMODE                m_pfnIsBrushPrimitMode;\r
-  PFN_COMPUTEAXISBASE          m_pfnComputeAxisBase;\r
-  PFN_BPMATMUL                 m_pfnBPMatMul;\r
-  PFN_EMITBRUSHPRIMITTEXCOORDS m_pfnEmitBrushPrimitTextureCoordinates;\r
-  PFN_QEGLOBALSTEXTUREWIN              m_pfnQeglobalsTexturewin;\r
-  PFN_SELECT_FITTEXTURE                m_pfnSelect_FitTexture;\r
-  PFN_QEGLOBALSSAVEDINFO_SIINC         m_pfnQERApp_QeglobalsSavedinfo_SIInc;\r
-  PFN_QEGLOBALSGETGRIDSIZE     m_pfnQeglobalsGetGridSize;\r
-  PFN_FACELIST_FITTEXTURE              m_pfnFaceList_FitTexture;\r
-  PFN_GETMAINWINDOW            m_pfnGetMainWindow;\r
-  PFN_SETWINPOS_FROM_PREFS     m_pfnSetWinPos_From_Prefs;\r
-  PFN_GETSELECTEDFACECOUNT_BRUSH  m_pfnGetSelectedFaceCountfromBrushes;\r
-  PFN_GETSELFACESTEXDEF                m_pfnGetSelFacesTexdef;\r
-  PFN_SETTEXDEF_FACELIST               m_pfnSetTexdef_FaceList;\r
-};\r
-\r
-#endif\r
+/*
+Copyright (C) 1999-2007 id Software, Inc. and contributors.
+For a list of contributors, see the accompanying CONTRIBUTORS file.
+
+This file is part of GtkRadiant.
+
+GtkRadiant is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+GtkRadiant is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GtkRadiant; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+//-----------------------------------------------------------------------------
+//
+// DESCRIPTION:
+// 
+//
+
+#ifndef __ISURFACEPLUGIN_H_
+#define __ISURFACEPLUGIN_H_
+
+typedef struct _GtkWidget GtkWidget;
+typedef struct _GtkWindow GtkWindow;
+
+#define SURFACEDIALOG_MAJOR "surfdialog"
+
+// there's a void* in each qtexture_t, must be casted to a IPluginTexdef*
+// there's a void* in each face_t, must be casted to a IPluginTexdef*
+// NOTE: IPluginTexdef stores a pointer to the qtexture_t or face_t it's stored in
+// members of IPluginTexdef often access the qtexture_t or face_t they are connected to
+
+// Write texdef needs a function pointer, because Radiant either writes into a FILE or a CMemFile
+typedef void (* PFN_QERAPP_MAPPRINTF) ( char *text, ... );
+
+class IPluginTexdef
+{
+public:
+       // Increment the number of references to this object
+       virtual void IncRef () = 0;
+       // Decrement the reference count
+       virtual void DecRef () = 0;
+};
+
+
+
+// Nurail: For SI module
+class texdef_to_face_t
+{
+public:
+  texdef_to_face_t* next;
+  brush_t *brush;   // Brush faces belong to (for Undo)
+  face_t *face;     // Face of Texdef
+  texdef_t texdef;  // Working texdef
+  texdef_t orig_texdef;  // Original, for baselining changes
+};
+
+
+typedef void (* PFN_QERPLUG_DOSURFACE)                 ();
+typedef void (* PFN_QERPLUG_TOGGLESURFACE)     ();
+typedef void (* PFN_QERPLUG_UPDATESURFACEDIALOG)       ();
+typedef void (* PFN_QERPLUG_SURFACEDLGFITALL)  ();
+typedef GtkWidget* (* PFN_GET_SI_MODULE_WIDGET) ();
+
+struct _QERPlugSurfaceTable
+{
+       int m_nSize;
+       PFN_QERPLUG_TOGGLESURFACE               m_pfnToggleSurface;
+       PFN_QERPLUG_DOSURFACE                           m_pfnDoSurface;
+       PFN_QERPLUG_UPDATESURFACEDIALOG         m_pfnUpdateSurfaceDialog;
+       PFN_QERPLUG_SURFACEDLGFITALL            m_pfnSurfaceDlgFitAll;
+       PFN_GET_SI_MODULE_WIDGET                m_pfnGet_SI_Module_Widget;
+};
+
+// this one is used by the plugin to access some Radiant stuff
+
+#define APPSURFACEDIALOG_MAJOR "appsurfdialog"
+
+// {42BAE4C0-9787-11d3-8EF3-0000E8E8657B}
+static const GUID QERAppSurfaceTable_GUID = 
+{ 0x42bae4c0, 0x9787, 0x11d3, { 0x8e, 0xf3, 0x0, 0x0, 0xe8, 0xe8, 0x65, 0x7b } };
+
+typedef bool (* PFN_PATCHESSELECTED)   ();
+// retrieve g_qeglobals.texturewin_t
+//++timo FIXME: this should move in a dedicated table for all g_qeglobals stuff
+typedef texturewin_t* (* PFN_QEGLOBALSTEXTUREWIN) ();
+// look for the first selected patch mesh
+//++timo FIXME: this is a convenient func since there's no way to scan patches ( yet )
+typedef patchMesh_t* (* PFN_GETSELECTEDPATCH) ();
+//++timo FIXME: this one in particular is a hack
+typedef void (* PFN_GETTWOSELECTEDPATCH) (patchMesh_t **p1, patchMesh_t **p2);
+
+
+// leo FIXME: hacks uglier than the ones above
+typedef void (* PFN_TEXMATTOFAKETEXCOORDS) (vec_t texMat[2][3], float shift[2], float *rot, float scale[2]);
+typedef void (* PFN_CONVERTTEXMATWITHQTEXTURE) (brushprimit_texdef_t *texMat1, qtexture_t *qtex1, brushprimit_texdef_t *texMat2, qtexture_t *qtex2);
+typedef void (* PFN_FAKETEXCOORDSTOTEXMAT) (float shift[2], float rot, float scale[2], vec_t texMat[2][3]);
+typedef void (* PFN_PATCH_RESETTEXTURING) (float fx, float fy);
+typedef void (* PFN_PATCH_FITTEXTURING) ();
+typedef void (* PFN_PATCH_NATURALIZESELECTED) (bool bCap);
+typedef const char* (* PFN_PATCH_GETTEXTURENAME) (); 
+typedef qboolean (* PFN_QE_SINGLEBRUSH) (bool bQuiet);
+typedef qboolean (* PFN_ISBRUSHPRIMITMODE) ();
+typedef void (* PFN_SELECT_FITTEXTURE)(int nHeight, int nWidth);
+typedef void (*PFN_COMPUTEAXISBASE)(vec3_t normal,vec3_t texS,vec3_t texT );
+typedef void (*PFN_BPMATMUL)(vec_t A[2][3], vec_t B[2][3], vec_t C[2][3]);
+typedef void (*PFN_EMITBRUSHPRIMITTEXCOORDS)(face_t * f, winding_t * w);
+typedef texdef_t* (*PFN_QEGLOBALSSAVEDINFO_SIINC) ();
+typedef float (* PFN_QEGLOBALSGETGRIDSIZE) ();
+typedef void (* PFN_FACELIST_FITTEXTURE) (texdef_to_face_t* texdef_face_list, int nHeight, int nWidth);
+typedef GtkWindow* (* PFN_GETMAINWINDOW)();
+typedef void (* PFN_SETWINPOS_FROM_PREFS) (GtkWidget *win);
+typedef int (* PFN_GETSELECTEDFACECOUNT_BRUSH) ();
+typedef void (* PFN_GETSELFACESTEXDEF) (texdef_to_face_t *);
+typedef void (* PFN_SETTEXDEF_FACELIST) (texdef_to_face_t* texdef_face_list, bool b_SetUndoPoint, bool bFit_to_Scale);
+typedef void (* PFN_SETACTIVEINRADIANT) ();
+
+
+struct _QERAppSurfaceTable
+{
+  int m_nSize;
+  PFN_PATCHESSELECTED          m_pfnOnlyPatchesSelected;
+  PFN_PATCHESSELECTED          m_pfnAnyPatchesSelected;
+  PFN_GETSELECTEDPATCH         m_pfnGetSelectedPatch;
+  PFN_GETTWOSELECTEDPATCH              m_pfnGetTwoSelectedPatch;
+  PFN_TEXMATTOFAKETEXCOORDS    m_pfnTexMatToFakeTexCoords;
+  PFN_CONVERTTEXMATWITHQTEXTURE        m_pfnConvertTexMatWithQTexture;
+  PFN_FAKETEXCOORDSTOTEXMAT    m_pfnFakeTexCoordsToTexMat;
+  PFN_PATCH_RESETTEXTURING     m_pfnPatch_ResetTexturing;
+  PFN_PATCH_FITTEXTURING               m_pfnPatch_FitTexturing;
+  PFN_PATCH_NATURALIZESELECTED m_pfnPatch_NaturalizeSelected;
+  PFN_PATCH_GETTEXTURENAME     m_pfnPatch_GetTextureName;
+  PFN_QE_SINGLEBRUSH           m_pfnQE_SingleBrush;
+  PFN_ISBRUSHPRIMITMODE                m_pfnIsBrushPrimitMode;
+  PFN_COMPUTEAXISBASE          m_pfnComputeAxisBase;
+  PFN_BPMATMUL                 m_pfnBPMatMul;
+  PFN_EMITBRUSHPRIMITTEXCOORDS m_pfnEmitBrushPrimitTextureCoordinates;
+  PFN_QEGLOBALSTEXTUREWIN              m_pfnQeglobalsTexturewin;
+  PFN_SELECT_FITTEXTURE                m_pfnSelect_FitTexture;
+  PFN_QEGLOBALSSAVEDINFO_SIINC         m_pfnQERApp_QeglobalsSavedinfo_SIInc;
+  PFN_QEGLOBALSGETGRIDSIZE     m_pfnQeglobalsGetGridSize;
+  PFN_FACELIST_FITTEXTURE              m_pfnFaceList_FitTexture;
+  PFN_GETMAINWINDOW            m_pfnGetMainWindow;
+  PFN_SETWINPOS_FROM_PREFS     m_pfnSetWinPos_From_Prefs;
+  PFN_GETSELECTEDFACECOUNT_BRUSH  m_pfnGetSelectedFaceCountfromBrushes;
+  PFN_GETSELFACESTEXDEF                m_pfnGetSelFacesTexdef;
+  PFN_SETTEXDEF_FACELIST               m_pfnSetTexdef_FaceList;
+};
+
+#endif