-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDgDVec2D.cpp
77 lines (60 loc) · 2.01 KB
/
DgDVec2D.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
////////////////////////////////////////////////////////////////////////////////
//
// DgDVec2D.cpp: DgDVec2D class implementation
//
// Version 6.1 - Kevin Sahr, 5/23/13
//
////////////////////////////////////////////////////////////////////////////////
#include "DgBase.h"
#include "DgDVec2D.h"
#include "DgDVec3D.h"
#include <sstream>
////////////////////////////////////////////////////////////////////////////////
const DgDVec2D& DgDVec2D::undefDgDVec2D = DgDVec2D(std::numeric_limits<double>::max(), std::numeric_limits<double>::max());
////////////////////////////////////////////////////////////////////////////////
DgDVec2D::DgDVec2D (const DgDVec3D& pt) : x_ (pt.x()), y_ (pt.y()) {}
////////////////////////////////////////////////////////////////////////////////
DgDVec2D&
DgDVec2D::operator= (const DgDVec3D& pt)
{
x_ = pt.x();
y_ = pt.y();
return *this;
} // DgDVec2D& DgDVec2D::operator=
////////////////////////////////////////////////////////////////////////////////
const char*
DgDVec2D::fromString (const char* str, char delimiter)
{
char delimStr[2];
delimStr[0] = delimiter;
delimStr[1] = '\0';
char* tmpStr = new char[strlen(str) + 1];
strcpy(tmpStr, str);
char* tok;
long double xIn;
long double yIn;
// get the x
{
tok = strtok(tmpStr, delimStr);
std::istringstream convert(tok);
convert >> xIn;
if(convert.fail())
::report("DgDVec2D::fromString() invalid value in string " + string(tok), DgBase::Fatal);
}
// get the y
{
tok = strtok(NULL, delimStr);
std::istringstream convert(tok);
convert >> yIn;
if(convert.fail())
::report("DgDVec2D::fromString() invalid value in string " + string(tok), DgBase::Fatal);
}
setX(xIn);
setY(yIn);
unsigned int offset = (tok - tmpStr) + strlen(tok) + 1;
if (offset >= strlen(str))
return 0;
else
return &str[offset];
} // const char* DgDVec2D::fromString
////////////////////////////////////////////////////////////////////////////////