Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
Variables
a
b
c
d
e
f
h
i
m
n
o
p
r
s
t
v
w
x
y
Typedefs
a
b
c
d
e
f
h
i
k
l
m
n
p
q
r
s
t
u
v
Enumerations
Enumerator
b
g
h
j
l
o
p
r
s
w
x
y
Classes
Class List
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
Enumerations
Enumerator
a
b
c
d
e
f
g
h
i
l
m
n
p
r
s
t
u
w
z
Related Functions
:
a
b
c
d
e
f
h
k
l
n
o
p
s
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
z
Functions
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
Variables
_
a
b
c
d
f
i
m
n
o
p
s
Typedefs
a
b
c
d
e
f
g
h
i
m
n
p
s
t
u
v
Enumerations
Enumerator
a
d
f
i
k
l
o
p
r
s
t
u
v
w
x
z
Macros
_
a
b
c
d
e
f
h
i
k
l
m
n
p
r
s
t
u
v
w
Examples
src
liblvr2
io
STLIO.cpp
Go to the documentation of this file.
1
28
/*
29
* STLIO.cpp
30
*
31
* Created on: Dec 9, 2016
32
* Author: robot
33
*/
34
35
36
#include "
lvr2/io/STLIO.hpp
"
37
#include "
lvr2/io/Timestamp.hpp
"
38
#include "
lvr2/geometry/BaseVector.hpp
"
39
#include "
lvr2/geometry/Normal.hpp
"
40
41
#include <iostream>
42
#include <cstdio>
43
#include <cstring>
44
#include <stdint.h>
45
#include <fstream>
46
47
using
std::cout;
48
using
std::endl;
49
50
namespace
lvr2
51
{
52
53
STLIO::STLIO
() {
54
// TODO Auto-generated constructor stub
55
56
}
57
58
STLIO::~STLIO
() {
59
// TODO Auto-generated destructor stub
60
}
61
62
ModelPtr
STLIO::read
(
string
filename
)
63
{
64
return
ModelPtr
(
new
Model
);
65
}
66
67
void
STLIO::save
(
string
filename
)
68
{
69
save
(this->
m_model
, filename);
70
}
71
72
void
STLIO::save
(
ModelPtr
model,
string
filename
)
73
{
74
75
MeshBufferPtr
mesh
= model->m_mesh;
76
size_t
n_vert =
mesh
->numVertices();
77
size_t
n_faces =
mesh
->numFaces();
78
floatArr
vertices =
mesh
->getVertices();
79
indexArray
indices =
mesh
->getFaceIndices();
80
81
std::string header_info =
"Created by LVR"
;
82
char
head[80];
83
std::strncpy(head,header_info.c_str(),
sizeof
(head)-1);
84
char
attribute[2] =
"0"
;
85
86
std::ofstream myfile(
filename
.c_str());
87
88
myfile.write(head,
sizeof
(head));
89
myfile.write((
char
*)&n_faces,4);
90
91
if
(myfile.good())
92
{
93
for
(
int
i = 0; i < n_faces; i++)
94
{
95
int
a = (int)indices[3 * i];
96
int
b = (int)indices[3 * i + 1];
97
int
c = (int)indices[3 * i + 2];
98
99
using
Vec
=
BaseVector<float>
;
100
Vec
v1;
101
Vec
v2;
102
Vec
v3;
103
104
v1.
x
= vertices[3 * a];
105
v1.
y
= vertices[3 * a + 1];
106
v1.
z
= vertices[3 * a + 2];
107
108
v2.
x
= vertices[3 * b];
109
v2.
y
= vertices[3 * b + 1];
110
v2.
z
= vertices[3 * b + 2];
111
112
v3.
x
= vertices[3 * c];
113
v3.
y
= vertices[3 * c + 1];
114
v3.
z
= vertices[3 * c + 2];
115
116
Normal<float>
normal( (v1 - v2).
cross
(v1 - v3));
117
118
myfile.write( (
char
*)&normal.x, 4);
119
myfile.write( (
char
*)&normal.y, 4);
120
myfile.write( (
char
*)&normal.z, 4);
121
122
myfile.write( (
char
*)&v1.
x
, 4);
123
myfile.write( (
char
*)&v1.
y
, 4);
124
myfile.write( (
char
*)&v1.
z
, 4);
125
126
myfile.write( (
char
*)&v2.
x
, 4);
127
myfile.write( (
char
*)&v2.
y
, 4);
128
myfile.write( (
char
*)&v2.
z
, 4);
129
130
myfile.write( (
char
*)&v3.
x
, 4);
131
myfile.write( (
char
*)&v3.
y
, 4);
132
myfile.write( (
char
*)&v3.
z
, 4);
133
134
uint16_t u = 0;
135
myfile.write( (
char
*)attribute, 2 );
136
}
137
}
138
else
139
{
140
cout <<
timestamp
<<
"Could not open file "
<<
filename
<<
" for writing."
<< endl;
141
}
142
}
143
144
}
/* namespace lvr2 */
lvr2::floatArr
boost::shared_array< float > floatArr
Definition:
DataStruct.hpp:133
BaseVector.hpp
lvr2::BaseVector< float >
lvr2::STLIO::~STLIO
virtual ~STLIO()
Definition:
STLIO.cpp:58
lvr2::indexArray
boost::shared_array< unsigned int > indexArray
Definition:
DataStruct.hpp:128
lvr2::BaseVector::x
CoordT x
Definition:
BaseVector.hpp:65
lvr2::Model
Definition:
Model.hpp:51
STLIO.hpp
lvr2::STLIO::save
virtual void save(string filename)
Definition:
STLIO.cpp:67
lvr2::Normal< float >
lvr2::STLIO::STLIO
STLIO()
Definition:
STLIO.cpp:53
lvr2::BaseVector::y
CoordT y
Definition:
BaseVector.hpp:66
scripts.normalize_multiple.filename
filename
Definition:
normalize_multiple.py:60
lvr2::timestamp
static Timestamp timestamp
A global time stamp object for program runtime measurement.
Definition:
Timestamp.hpp:116
kfusion::device::cross
__kf_hdevice__ float3 cross(const float3 &v1, const float3 &v2)
Definition:
temp_utils.hpp:102
lvr2::BaseIO::m_model
ModelPtr m_model
Definition:
BaseIO.hpp:104
lvr2::BaseVector::z
CoordT z
Definition:
BaseVector.hpp:67
lvr2
Definition:
BaseBufferManipulators.hpp:39
lvr2::ModelPtr
std::shared_ptr< Model > ModelPtr
Definition:
Model.hpp:80
lvr2::MeshBufferPtr
std::shared_ptr< MeshBuffer > MeshBufferPtr
Definition:
MeshBuffer.hpp:217
Timestamp.hpp
lvr2::STLIO::read
virtual ModelPtr read(string filename)
Parse the given file and load supported elements.
Definition:
STLIO.cpp:62
mesh
HalfEdgeMesh< Vec > mesh
Definition:
src/tools/lvr2_gs_reconstruction/Main.cpp:26
Normal.hpp
lvr2
Author(s): Thomas Wiemann
, Sebastian Pütz
, Alexander Mock
, Lars Kiesow
, Lukas Kalbertodt
, Tristan Igelbrink
, Johan M. von Behren
, Dominik Feldschnieders
, Alexander Löhr
autogenerated on Wed Mar 2 2022 00:37:25