Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
43b5aa4c
Commit
43b5aa4c
authored
Sep 30, 2013
by
Maciej Suminski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed Mac OS build & removed one warning.
parent
a6a1af9d
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
7 additions
and
56 deletions
+7
-56
CMakeLists.txt
common/CMakeLists.txt
+1
-1
math_util.h
include/math/math_util.h
+3
-54
pcb_painter.cpp
pcbnew/pcb_painter.cpp
+2
-0
pcb_painter.h
pcbnew/pcb_painter.h
+1
-1
No files found.
common/CMakeLists.txt
View file @
43b5aa4c
...
...
@@ -156,7 +156,7 @@ set(COMMON_SRCS
view/view_item.cpp
view/view_group.cpp
#
math/math_util.cpp
math/math_util.cpp
system/fcontext.s
tool/tool_base.cpp
...
...
include/math/math_util.h
View file @
43b5aa4c
...
...
@@ -26,8 +26,6 @@
#ifndef __MATH_UTIL_H
#define __MATH_UTIL_H
#include <cmath>
#include <cstdlib>
#include <stdint.h>
/**
...
...
@@ -36,63 +34,14 @@
* Scales a number (value) by rational (numerator/denominator). Numerator must be <= denominator.
*/
template
<
typename
T
>
static
T
rescale
(
T
numerator
,
T
value
,
T
denominator
)
template
<
typename
T
>
T
rescale
(
T
numerator
,
T
value
,
T
denominator
)
{
return
numerator
*
value
/
denominator
;
}
// explicit specializations for integer types, taking care of overflow.
template
<>
int
rescale
(
int
numerator
,
int
value
,
int
denominator
)
{
return
(
int
)
(
(
int64_t
)
numerator
*
(
int64_t
)
value
/
(
int64_t
)
denominator
);
}
template
<>
int64_t
rescale
(
int64_t
numerator
,
int64_t
value
,
int64_t
denominator
)
{
int64_t
r
=
0
;
int64_t
sign
=
(
(
numerator
<
0
)
?
-
1
:
1
)
*
(
denominator
<
0
?
-
1
:
1
)
*
(
value
<
0
?
-
1
:
1
);
int64_t
a
=
std
::
abs
(
numerator
);
int64_t
b
=
std
::
abs
(
value
);
int64_t
c
=
std
::
abs
(
denominator
);
r
=
c
/
2
;
if
(
b
<=
INT_MAX
&&
c
<=
INT_MAX
)
{
if
(
a
<=
INT_MAX
)
return
sign
*
(
(
a
*
b
+
r
)
/
c
);
else
return
sign
*
(
a
/
c
*
b
+
(
a
%
c
*
b
+
r
)
/
c
);
}
else
{
uint64_t
a0
=
a
&
0xFFFFFFFF
;
uint64_t
a1
=
a
>>
32
;
uint64_t
b0
=
b
&
0xFFFFFFFF
;
uint64_t
b1
=
b
>>
32
;
uint64_t
t1
=
a0
*
b1
+
a1
*
b0
;
uint64_t
t1a
=
t1
<<
32
;
int
i
;
a0
=
a0
*
b0
+
t1a
;
a1
=
a1
*
b1
+
(
t1
>>
32
)
+
(
a0
<
t1a
);
a0
+=
r
;
a1
+=
((
uint64_t
)
a0
)
<
r
;
for
(
i
=
63
;
i
>=
0
;
i
--
)
{
a1
+=
a1
+
(
(
a0
>>
i
)
&
1
);
t1
+=
t1
;
if
(
(
uint64_t
)
c
<=
a1
)
{
a1
-=
c
;
t1
++
;
}
}
return
t1
*
sign
;
}
};
template
<>
int
rescale
(
int
numerator
,
int
value
,
int
denominator
);
template
<>
int64_t
rescale
(
int64_t
numerator
,
int64_t
value
,
int64_t
denominator
);
#endif // __MATH_UTIL_H
pcbnew/pcb_painter.cpp
View file @
43b5aa4c
...
...
@@ -913,3 +913,5 @@ void PCB_PAINTER::drawSelectionBox( const VIEW_ITEM* aItem ) const
m_gal
->
SetFillColor
(
m_pcbSettings
->
GetLayerColor
(
ITEM_GAL_LAYER
(
SELECTION
)
)
);
m_gal
->
DrawRectangle
(
boundingBox
.
GetOrigin
(),
boundingBox
.
GetEnd
()
);
}
const
double
PCB_RENDER_SETTINGS
::
MAX_FONT_SIZE
=
100000000
;
pcbnew/pcb_painter.h
View file @
43b5aa4c
...
...
@@ -108,7 +108,7 @@ protected:
bool
m_netNamesOnTracks
;
/// Maximum font size for netnames (and other dynamically shown strings)
static
const
double
MAX_FONT_SIZE
=
100000000
;
static
const
double
MAX_FONT_SIZE
;
/// Option for different display modes for zones
DisplayZonesMode
m_displayZoneMode
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment