OpenMesh
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
STLWriter.hh
1
/*===========================================================================*\
2
* *
3
* OpenMesh *
4
* Copyright (C) 2001-2011 by Computer Graphics Group, RWTH Aachen *
5
* www.openmesh.org *
6
* *
7
*---------------------------------------------------------------------------*
8
* This file is part of OpenMesh. *
9
* *
10
* OpenMesh is free software: you can redistribute it and/or modify *
11
* it under the terms of the GNU Lesser General Public License as *
12
* published by the Free Software Foundation, either version 3 of *
13
* the License, or (at your option) any later version with the *
14
* following exceptions: *
15
* *
16
* If other files instantiate templates or use macros *
17
* or inline functions from this file, or you compile this file and *
18
* link it with other files to produce an executable, this file does *
19
* not by itself cause the resulting executable to be covered by the *
20
* GNU Lesser General Public License. This exception does not however *
21
* invalidate any other reasons why the executable file might be *
22
* covered by the GNU Lesser General Public License. *
23
* *
24
* OpenMesh is distributed in the hope that it will be useful, *
25
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
26
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
27
* GNU Lesser General Public License for more details. *
28
* *
29
* You should have received a copy of the GNU LesserGeneral Public *
30
* License along with OpenMesh. If not, *
31
* see <http://www.gnu.org/licenses/>. *
32
* *
33
\*===========================================================================*/
34
35
/*===========================================================================*\
36
* *
37
* $Revision: 362 $ *
38
* $Date: 2011-01-26 10:21:12 +0100 (Mi, 26 Jan 2011) $ *
39
* *
40
\*===========================================================================*/
41
42
43
//=============================================================================
44
//
45
// Implements a writer module for STL ascii files
46
//
47
//=============================================================================
48
// $Id: STLWriter.hh,v 1.2 2007-05-18 15:17:43 habbecke Exp $
49
50
#ifndef __STLWRITER_HH__
51
#define __STLWRITER_HH__
52
53
54
//=== INCLUDES ================================================================
55
56
// -------------------- STL
57
#if defined( OM_CC_MIPS )
58
# include <stdio.h>
59
#else
60
# include <cstdio>
61
#endif
62
#include <string>
63
// -------------------- OpenMesh
64
#include <OpenMesh/Core/System/config.h>
65
#include <OpenMesh/Core/Utils/SingletonT.hh>
66
#include <OpenMesh/Core/IO/exporter/BaseExporter.hh>
67
#include <OpenMesh/Core/IO/writer/BaseWriter.hh>
68
69
70
//== NAMESPACES ===============================================================
71
72
73
namespace
OpenMesh {
74
namespace
IO {
75
76
77
//=== IMPLEMENTATION ==========================================================
78
79
84
class
_STLWriter_
:
public
BaseWriter
85
{
86
public
:
87
88
_STLWriter_
();
89
91
virtual
~_STLWriter_
() {};
92
93
std::string
get_description
()
const
{
return
"Stereolithography Format"
; }
94
std::string
get_extensions
()
const
{
return
"stla stlb"
; }
95
96
bool
write
(
const
std::string&,
BaseExporter
&,
Options
)
const
;
97
98
bool
write
(std::ostream&,
BaseExporter
&,
Options
)
const
;
99
100
size_t
binary_size
(
BaseExporter
&,
Options
)
const
;
101
102
private
:
103
bool
write_stla(
const
std::string&,
BaseExporter
&,
Options
)
const
;
104
bool
write_stlb(
const
std::string&,
BaseExporter
&,
Options
)
const
;
105
};
106
107
108
//== TYPE DEFINITION ==========================================================
109
110
111
// Declare the single entity of STL writer.
112
extern
_STLWriter_ __STLWriterInstance;
113
_STLWriter_& STLWriter();
114
115
116
//=============================================================================
117
}
// namespace IO
118
}
// namespace OpenMesh
119
//=============================================================================
120
#endif
121
//=============================================================================
Project
OpenMesh
, © Computer Graphics Group, RWTH Aachen. Documentation generated using
doxygen
.