Points&Forces (core)
Software tools facilitating the task of surveying architecture
dxf
a_dxf_line.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_line.h
"
17
#include "
a_dxf_group.h
"
18
19
//---------------------------------------------------------------------------
20
a_dxf_line::a_dxf_line
(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
}
25
//---------------------------------------------------------------------------
26
bool
a_dxf_line::read
()
27
{
28
a_dxf_group
group(
file_
);
29
layer_
=
"0"
;
30
for
(;;)
31
{
32
group.
read
();
33
if
(group.
code
()==8)
34
layer_
= group.
data
();
35
if
(group.
code
()==10)
36
{
37
x1_
= group.
data_double
();
38
x1_ok
=
true
;
39
}
40
if
(group.
code
()==20)
41
{
42
y1_
= group.
data_double
();
43
y1_ok
=
true
;
44
}
45
if
(group.
code
()==30)
46
{
47
z1_
= group.
data_double
();
48
z1_ok
=
true
;
49
}
50
if
(group.
code
()==11)
51
{
52
x2_
= group.
data_double
();
53
x2_ok
=
true
;
54
}
55
if
(group.
code
()==21)
56
{
57
y2_
= group.
data_double
();
58
y2_ok
=
true
;
59
}
60
if
(group.
code
()==31)
61
{
62
z2_
= group.
data_double
();
63
z2_ok
=
true
;
64
}
65
if
(group.
code
()==0)
66
break
;
67
}
68
group.
putback
();
69
if
(
x1_ok
&&
y1_ok
&&
z1_ok
&&
x2_ok
&&
y2_ok
&&
z2_ok
)
70
return
true
;
71
else
72
return
false
;
73
}
a_dxf_group.h
a_dxf_line.h
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
a_dxf_line::y2_ok
bool y2_ok
Definition:
a_dxf_line.h:46
a_dxf_line::read
bool read()
Definition:
a_dxf_line.cxx:26
a_dxf_line::x2_
double x2_
Definition:
a_dxf_line.h:45
a_dxf_line::z1_ok
bool z1_ok
Definition:
a_dxf_line.h:44
a_dxf_line::x1_ok
bool x1_ok
Definition:
a_dxf_line.h:42
a_dxf_line::y2_
double y2_
Definition:
a_dxf_line.h:46
a_dxf_line::a_dxf_line
a_dxf_line(std::istream *file)
Definition:
a_dxf_line.cxx:20
a_dxf_line::x2_ok
bool x2_ok
Definition:
a_dxf_line.h:45
a_dxf_line::z2_
double z2_
Definition:
a_dxf_line.h:47
a_dxf_line::z2_ok
bool z2_ok
Definition:
a_dxf_line.h:47
a_dxf_line::y1_ok
bool y1_ok
Definition:
a_dxf_line.h:43
a_dxf_line::x1_
double x1_
Definition:
a_dxf_line.h:42
a_dxf_line::z1_
double z1_
Definition:
a_dxf_line.h:44
a_dxf_line::y1_
double y1_
Definition:
a_dxf_line.h:43
Generated on Tue Sep 6 2022 18:50:16 for Points&Forces (core) by
1.9.1