pathgeom.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /// @file
  2. /// @ingroup public_apis
  3. /*************************************************************************
  4. * Copyright (c) 2011 AT&T Intellectual Property
  5. * All rights reserved. This program and the accompanying materials
  6. * are made available under the terms of the Eclipse Public License v1.0
  7. * which accompanies this distribution, and is available at
  8. * https://www.eclipse.org/legal/epl-v10.html
  9. *
  10. * Contributors: Details at https://graphviz.org
  11. *************************************************************************/
  12. #pragma once
  13. #include <stddef.h>
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #ifdef GVDLL
  18. #ifdef PATHPLAN_EXPORTS
  19. #define PATHGEOM_API __declspec(dllexport)
  20. #else
  21. #define PATHGEOM_API __declspec(dllimport)
  22. #endif
  23. #endif
  24. #ifndef PATHGEOM_API
  25. #define PATHGEOM_API /* nothing */
  26. #endif
  27. #ifdef HAVE_POINTF_S
  28. typedef struct pointf_s Ppoint_t;
  29. typedef struct pointf_s Pvector_t;
  30. #else
  31. typedef struct Pxy_t {
  32. double x, y;
  33. } Pxy_t;
  34. typedef struct Pxy_t Ppoint_t;
  35. typedef struct Pxy_t Pvector_t;
  36. #endif
  37. typedef struct Ppoly_t {
  38. Ppoint_t *ps;
  39. size_t pn;
  40. } Ppoly_t;
  41. typedef Ppoly_t Ppolyline_t;
  42. typedef struct Pedge_t {
  43. Ppoint_t a, b;
  44. } Pedge_t;
  45. /* opaque state handle for visibility graph operations */
  46. typedef struct vconfig_s vconfig_t;
  47. PATHGEOM_API void freePath(Ppolyline_t* p);
  48. #undef PATHGEOM_API
  49. #ifdef __cplusplus
  50. }
  51. #endif