Points&Forces (core)
Software tools facilitating the task of surveying architecture
dxf
a_dxf_3dface.cxx
Go to the documentation of this file.
1
/*
2
Copyright 2002-2011 Pierre SMARS (smars@yuntech.edu.tw)
3
This program is free software: you can redistribute it and/or modify
4
it under the terms of the GNU General Public License as published by
5
the Free Software Foundation, either version 2 of the License, or
6
(at your option) any later version.
7
8
This program is distributed in the hope that it will be useful,
9
but WITHOUT ANY WARRANTY; without even the implied warranty of
10
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
GNU General Public License for more details.
12
13
You should have received a copy of the GNU General Public License
14
along with this program. If not, see <http://www.gnu.org/licenses/>.
15
*/
16
#include "
a_dxf_3dface.h
"
17
#include "
a_dxf_group.h
"
18
19
//---------------------------------------------------------------------------
20
a_dxf_3dface::a_dxf_3dface
(std::istream * file) :
a_dxf_entity
(file)
21
{
22
x1_ok
=
false
;
y1_ok
=
false
;
z1_ok
=
false
;
23
x2_ok
=
false
;
y2_ok
=
false
;
z2_ok
=
false
;
24
x3_ok
=
false
;
y3_ok
=
false
;
z3_ok
=
false
;
25
}
26
//---------------------------------------------------------------------------
27
bool
a_dxf_3dface::read
()
28
{
29
a_dxf_group
group(
file_
);
30
layer_
=
"0"
;
31
for
(;;)
32
{
33
group.
read
();
34
if
(group.
code
()==8)
35
layer_
= group.
data
();
36
if
(group.
code
()==10)
37
{
38
x1_
= group.
data_double
();
39
x1_ok
=
true
;
40
}
41
if
(group.
code
()==20)
42
{
43
y1_
= group.
data_double
();
44
y1_ok
=
true
;
45
}
46
if
(group.
code
()==30)
47
{
48
z1_
= group.
data_double
();
49
z1_ok
=
true
;
50
}
51
if
(group.
code
()==11)
52
{
53
x2_
= group.
data_double
();
54
x2_ok
=
true
;
55
}
56
if
(group.
code
()==21)
57
{
58
y2_
= group.
data_double
();
59
y2_ok
=
true
;
60
}
61
if
(group.
code
()==31)
62
{
63
z2_
= group.
data_double
();
64
z2_ok
=
true
;
65
}
66
if
(group.
code
()==12)
67
{
68
x3_
= group.
data_double
();
69
x3_ok
=
true
;
70
}
71
if
(group.
code
()==22)
72
{
73
y3_
= group.
data_double
();
74
y3_ok
=
true
;
75
}
76
if
(group.
code
()==32)
77
{
78
z3_
= group.
data_double
();
79
z3_ok
=
true
;
80
}
81
if
(group.
code
()==0)
82
break
;
83
}
84
group.
putback
();
85
if
(
x1_ok
&&
y1_ok
&&
z1_ok
&&
x2_ok
&&
y2_ok
&&
z2_ok
&&
x3_ok
&&
y3_ok
&&
z3_ok
)
86
return
true
;
87
else
88
return
false
;
89
}
a_dxf_3dface.h
a_dxf_group.h
a_dxf_3dface::z2_ok
bool z2_ok
Definition:
a_dxf_3dface.h:50
a_dxf_3dface::y1_
double y1_
Definition:
a_dxf_3dface.h:46
a_dxf_3dface::y3_ok
bool y3_ok
Definition:
a_dxf_3dface.h:52
a_dxf_3dface::y2_ok
bool y2_ok
Definition:
a_dxf_3dface.h:49
a_dxf_3dface::y2_
double y2_
Definition:
a_dxf_3dface.h:49
a_dxf_3dface::read
bool read()
Definition:
a_dxf_3dface.cxx:27
a_dxf_3dface::y1_ok
bool y1_ok
Definition:
a_dxf_3dface.h:46
a_dxf_3dface::z2_
double z2_
Definition:
a_dxf_3dface.h:50
a_dxf_3dface::x3_
double x3_
Definition:
a_dxf_3dface.h:51
a_dxf_3dface::x2_ok
bool x2_ok
Definition:
a_dxf_3dface.h:48
a_dxf_3dface::z3_
double z3_
Definition:
a_dxf_3dface.h:53
a_dxf_3dface::y3_
double y3_
Definition:
a_dxf_3dface.h:52
a_dxf_3dface::x1_ok
bool x1_ok
Definition:
a_dxf_3dface.h:45
a_dxf_3dface::x3_ok
bool x3_ok
Definition:
a_dxf_3dface.h:51
a_dxf_3dface::z1_ok
bool z1_ok
Definition:
a_dxf_3dface.h:47
a_dxf_3dface::x2_
double x2_
Definition:
a_dxf_3dface.h:48
a_dxf_3dface::z3_ok
bool z3_ok
Definition:
a_dxf_3dface.h:53
a_dxf_3dface::x1_
double x1_
Definition:
a_dxf_3dface.h:45
a_dxf_3dface::a_dxf_3dface
a_dxf_3dface(std::istream *file)
Definition:
a_dxf_3dface.cxx:20
a_dxf_3dface::z1_
double z1_
Definition:
a_dxf_3dface.h:47
a_dxf_entity
a generic dxf entity
Definition:
a_dxf_entity.h:29
a_dxf_entity::layer_
std::string layer_
Definition:
a_dxf_entity.h:38
a_dxf_entity::file_
std::istream * file_
Definition:
a_dxf_entity.h:37
a_dxf_group
a dxf group
Definition:
a_dxf_group.h:30
a_dxf_group::data_double
double data_double()
Definition:
a_dxf_group.cxx:90
a_dxf_group::code
int code()
Definition:
a_dxf_group.h:36
a_dxf_group::putback
void putback()
Definition:
a_dxf_group.cxx:68
a_dxf_group::read
bool read()
Definition:
a_dxf_group.cxx:21
a_dxf_group::data
std::string data()
Definition:
a_dxf_group.h:37
Generated on Tue Sep 6 2022 18:50:16 for Points&Forces (core) by
1.9.1