diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/GLView.cc | 1 | ||||
-rw-r--r-- | src/OpenCSGRenderer.cc | 2 | ||||
-rw-r--r-- | src/control.cc | 1 | ||||
-rw-r--r-- | src/import.cc | 4 | ||||
-rw-r--r-- | src/mathc99.cc | 6 | ||||
-rw-r--r-- | src/mathc99.h | 1 |
6 files changed, 12 insertions, 3 deletions
diff --git a/src/GLView.cc b/src/GLView.cc index b4fb8d6..822a246 100644 --- a/src/GLView.cc +++ b/src/GLView.cc @@ -2,6 +2,7 @@ #include "stdio.h" #include "rendersettings.h" +#include "mathc99.h" #ifdef _WIN32 #include <GL/wglew.h> diff --git a/src/OpenCSGRenderer.cc b/src/OpenCSGRenderer.cc index b4acf82..e65a259 100644 --- a/src/OpenCSGRenderer.cc +++ b/src/OpenCSGRenderer.cc @@ -77,8 +77,8 @@ void OpenCSGRenderer::renderCSGChain(CSGChain *chain, GLint *shaderinfo, std::vector<OpenCSG::Primitive*> primitives; size_t j = 0; for (size_t i = 0;; i++) { - const CSGChainObject &i_obj = chain->objects[i]; bool last = i == chain->objects.size(); + const CSGChainObject &i_obj = last ? chain->objects[i-1] : chain->objects[i]; if (last || i_obj.type == CSGTerm::TYPE_UNION) { if (j+1 != i) { OpenCSG::render(primitives); diff --git a/src/control.cc b/src/control.cc index c5ad09b..50e5eae 100644 --- a/src/control.cc +++ b/src/control.cc @@ -31,6 +31,7 @@ #include "builtin.h" #include "printutils.h" #include <sstream> +#include "mathc99.h" enum control_type_e { CHILD, diff --git a/src/import.cc b/src/import.cc index b5d67d2..3897331 100644 --- a/src/import.cc +++ b/src/import.cc @@ -212,7 +212,9 @@ PolySet *ImportNode::evaluate_polyset(class PolySetEvaluator *) const #ifdef BOOST_BIG_ENDIAN uint32_byte_swap( facenum ); #endif - if (file_size == 80 + 4 + 50*facenum) binary = true; + if (file_size == static_cast<std::streamoff>(80 + 4 + 50*facenum)) { + binary = true; + } } f.seekg(0); diff --git a/src/mathc99.cc b/src/mathc99.cc index 335446e..13f4c64 100644 --- a/src/mathc99.cc +++ b/src/mathc99.cc @@ -3,8 +3,12 @@ #ifdef WIN32
#include <algorithm>
+double trunc(double a) {
+ return (a >= 0) ? floor(a) : ceil(a);
+}
+
double round(double a) {
- return a > 0 ? floor(a+0.5) : ceil(a-0.5);
+ return a < 0 ? ceil(a - 0.5f) : floor(a + 0.5f);
}
float fmin(float a, float b) {
diff --git a/src/mathc99.h b/src/mathc99.h index ebc2d66..ae31a22 100644 --- a/src/mathc99.h +++ b/src/mathc99.h @@ -5,6 +5,7 @@ #include <cmath>
//for native win32 builds we need to provide C99 math functions by ourselves
+double trunc(double a);
double round(double a);
float fmin(float a, float b);
float fmax(float a, float b);
|