You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
2.3 KiB

  1. /*
  2. * This program source code file is part of KiCad, a free EDA CAD application.
  3. *
  4. * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
  5. *
  6. * This program is free software: you can redistribute it and/or modify it
  7. * under the terms of the GNU General Public License as published by the
  8. * Free Software Foundation, either version 3 of the License, or (at your
  9. * option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful, but
  12. * WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License along
  17. * with this program. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. #pragma once
  20. #include <wx/string.h>
  21. class BOARD;
  22. class PROJECT;
  23. class EXPORTER_PCB_VRML;
  24. /**
  25. * Wrapper to expose an API for writing VRML files, without exposing all the many
  26. * structures used in the actual exporter EXPORTER_PCB_VRML
  27. */
  28. class EXPORTER_VRML
  29. {
  30. public:
  31. EXPORTER_VRML( BOARD* aBoard );
  32. ~EXPORTER_VRML();
  33. /**
  34. * Exports the board and its footprint shapes 3D (vrml files only) as a
  35. * vrml file
  36. * @param aFullFileName is the full filename of the board vrml file to create
  37. * @param aMMtoWRMLunit is the convert factor from mm to the desired vrml file
  38. * @param aExport3DFiles = true to copy 3D fp vrml models to a folder,
  39. * and use " { inline fp_3d_model_filename }" keyword in vrml board file
  40. * false to include them in the vrml board file
  41. * @param aUseRelativePaths = true to use fp 3D relative paths,
  42. * false to use absolute paths
  43. * @param a3D_Subdir is the folder to copy 3D fp models
  44. * @param aXRef = X position of board (in mm)
  45. * @param aYRef = Y position of board (in mm)
  46. */
  47. bool ExportVRML_File( PROJECT* aProject, wxString *aMessages,
  48. const wxString& aFullFileName, double aMMtoWRMLunit,
  49. bool aIncludeUnspecified, bool aIncludeDNP,
  50. bool aExport3DFiles, bool aUseRelativePaths,
  51. const wxString& a3D_Subdir,
  52. double aXRef, double aYRef );
  53. private:
  54. EXPORTER_PCB_VRML* pcb_exporter;
  55. };