//========================================================================
// Drawing macros for Splines and Faces
//
// AUTHOR:  Gabor Nagy
// DATE:    2024-Nov-09 01:32:24
//
// Copyright (C) 1996-2026 by Gabor Nagy. All rights reserved.
//========================================================================
#ifndef _E3D_SplineDraw_h
#define _E3D_SplineDraw_h

#ifndef _E3D_Draw_h
#include <E3D/GL/Draw.h>
#endif

#ifndef _E3D_Face_h
#include <E3D/Face.h>
#endif

#if defined (__cplusplus) && (!(defined (__CPLUSLIBS)))
extern "C" {
#endif

extern void  E3dSpline_GLDraw(E3dSpline* PSpline, const int PSelection,  const E3dDrawContext* PDrawContext, E3dGPUContext* PGPUContext);
extern void  E3dSpline_GLDrawForPick(E3dSpline* PSpline, const unsigned int PDisplayMode, const E3dItemFlags PPickTargets);

extern void  E3dFace_GLDrawContours(E3dFace* PFace,  E3dDrawContext* PDrawContext, E3dGPUContext* PGPUContext);
extern void  E3dFace_GLDrawSurface(E3dModel* const PModel, E3dFace* PFace,  E3dScene* PScene, E3dRenderer* PRenderer, const E3dDrawContext* PDrawContext, E3dGPUContext* PGPUContext);
extern void  E3dFace_GLDraw(E3dModel* const PModel, E3dFace* PFace,  E3dScene* PScene, E3dRenderer* PRenderer, E3dDrawContext* PDrawContext, E3dGPUContext* PGPUContext);
extern void  E3dFace_GLDrawForPick(const E3dDrawContext* PDrawContext, E3dGPUContext* PGPUContext,  E3dModel* const PModel, E3dFace* PFace, const int PPickTargets);

#if defined (__cplusplus) && (!(defined (__CPLUSLIBS)))
}	// Close scope of 'extern "C"'
#endif

#endif  // _E3D_SplineDraw_h
