Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Thomas Pitiot
CGoGN
Commits
8e0ed488
Commit
8e0ed488
authored
Mar 23, 2012
by
Pierre Kraemer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bounding box : origin centered scale
parent
3bee55cb
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
31 additions
and
41 deletions
+31
-41
include/Algo/MC/marchingcube.h
include/Algo/MC/marchingcube.h
+7
-4
include/Geometry/bounding_box.h
include/Geometry/bounding_box.h
+7
-8
include/Geometry/bounding_box.hpp
include/Geometry/bounding_box.hpp
+11
-20
include/Geometry/plane_3d.h
include/Geometry/plane_3d.h
+1
-1
include/Geometry/plane_3d.hpp
include/Geometry/plane_3d.hpp
+5
-8
No files found.
include/Algo/MC/marchingcube.h
View file @
8e0ed488
...
...
@@ -37,7 +37,9 @@ namespace CGoGN
namespace
Algo
{
namespace
MC
{
namespace
MC
{
/**
* Marching Cube
*
...
...
@@ -257,10 +259,11 @@ public:
void
recalPoints
(
const
Geom
::
Vec3f
&
origin
);
};
}
// namespace MC
}
// namespace Algo
}
// end namespace
}
// end namespace
}
// end namespace
}
// namespace CGoGN
#include "Algo/MC/marchingcube.hpp"
#endif
include/Geometry/bounding_box.h
View file @
8e0ed488
...
...
@@ -89,23 +89,22 @@ class BoundingBox
// fusion with the given bounding box
void
fusion
(
const
BoundingBox
<
VEC
>&
bb
)
;
//return true if the vector belongs strictly to a bounding box
//
return true if the vector belongs strictly to a bounding box
bool
contains
(
const
VEC
&
p
);
//return true if the bounding box belongs strictly to a bounding box
//
return true if the bounding box belongs strictly to a bounding box
bool
contains
(
const
BoundingBox
<
VEC
>
&
bb
);
//resize a bounding box
void
scale
(
float
size
);
// scale the bounding box
void
scale
(
typename
VEC
::
DATA_TYPE
size
);
// 0-centered scale of the bounding box
void
centeredScale
(
typename
VEC
::
DATA_TYPE
size
);
/**********************************************/
/* STREAM OPERATORS */
/**********************************************/
// friend std::ostream& operator<<(std::ostream& out, const BoundingBox<VEC>& bb);
//
// friend std::istream& operator>>(std::istream& in, BoundingBox<VEC>& bb);
friend
std
::
ostream
&
operator
<<
(
std
::
ostream
&
out
,
const
BoundingBox
<
VEC
>&
bb
)
{
out
<<
bb
.
min
()
<<
" "
<<
bb
.
max
()
;
...
...
include/Geometry/bounding_box.hpp
View file @
8e0ed488
...
...
@@ -142,7 +142,7 @@ bool BoundingBox<VEC>::isInitialized() const
template
<
typename
VEC
>
void
BoundingBox
<
VEC
>::
reset
()
{
m_initialized
=
false
;
m_initialized
=
false
;
}
template
<
typename
VEC
>
...
...
@@ -197,7 +197,6 @@ void BoundingBox<VEC>::fusion(const BoundingBox<VEC>& bb)
}
}
template
<
typename
VEC
>
bool
BoundingBox
<
VEC
>::
contains
(
const
VEC
&
p
)
{
...
...
@@ -221,28 +220,20 @@ bool BoundingBox<VEC>::contains(const BoundingBox<VEC>& bb)
}
template
<
typename
VEC
>
void
BoundingBox
<
VEC
>::
scale
(
float
size
)
void
BoundingBox
<
VEC
>::
scale
(
typename
VEC
::
DATA_TYPE
size
)
{
assert
(
m_initialized
||
!
"Bounding box not initialized"
);
m_pMin
*=
size
;
m_pMax
*=
size
;
m_pMin
*=
size
;
m_pMax
*=
size
;
}
//template <typename VEC>
//friend std::ostream& BoundingBox<VEC>::operator<<(std::ostream& out, const BoundingBox<VEC>& bb)
//{
// out << bb.min() << " " << bb.max() ;
// return out ;
//}
//
//template <typename VEC>
//friend std::istream& BoundingBox<VEC>::operator>>(std::istream& in, BoundingBox<VEC>& bb)
//{
// in >> bb.min() >> bb.max() ;
// return in ;
//}
template
<
typename
VEC
>
void
BoundingBox
<
VEC
>::
centeredScale
(
typename
VEC
::
DATA_TYPE
size
)
{
VEC
center
=
(
m_pMin
+
m_pMax
)
/
typename
VEC
::
DATA_TYPE
(
2
)
;
m_pMin
=
((
m_pMin
-
center
)
*
size
)
+
center
;
m_pMax
=
((
m_pMax
-
center
)
*
size
)
+
center
;
}
}
// namespace Geom
...
...
include/Geometry/plane_3d.h
View file @
8e0ed488
...
...
@@ -109,6 +109,6 @@ class Plane3D
}
// namespace CGoGN
#include "plane_3d.hpp"
#include "
Geometry/
plane_3d.hpp"
#endif
include/Geometry/plane_3d.hpp
View file @
8e0ed488
...
...
@@ -44,8 +44,7 @@ std::string Plane3D<T>::CGoGNnameOfType()
/**********************************************/
template
<
typename
T
>
Plane3D
<
T
>::
Plane3D
(
int
d
)
:
m_normal
(
0
),
m_d
(
d
)
Plane3D
<
T
>::
Plane3D
(
int
d
)
:
m_normal
(
0
),
m_d
(
d
)
{
}
template
<
typename
T
>
...
...
@@ -56,15 +55,13 @@ Plane3D<T>::Plane3D(const Plane3D<T>& p)
}
template
<
typename
T
>
Plane3D
<
T
>::
Plane3D
(
const
Vector
<
3
,
T
>&
n
,
T
d
)
:
m_normal
(
n
),
m_d
(
d
)
Plane3D
<
T
>::
Plane3D
(
const
Vector
<
3
,
T
>&
n
,
T
d
)
:
m_normal
(
n
),
m_d
(
d
)
{
m_normal
.
normalize
();
}
template
<
typename
T
>
Plane3D
<
T
>::
Plane3D
(
const
Vector
<
3
,
T
>&
n
,
const
Vector
<
3
,
T
>&
p
)
:
m_normal
(
n
),
m_d
(
-
(
p
*
n
))
Plane3D
<
T
>::
Plane3D
(
const
Vector
<
3
,
T
>&
n
,
const
Vector
<
3
,
T
>&
p
)
:
m_normal
(
n
),
m_d
(
-
(
p
*
n
))
{
m_normal
.
normalize
();
}
...
...
@@ -118,7 +115,7 @@ T Plane3D<T>::distance(const Vector<3,T>& p) const
template
<
typename
T
>
void
Plane3D
<
T
>::
project
(
Vector
<
3
,
T
>&
p
)
const
{
#define PRECISION 1e-
5
#define PRECISION 1e-
10
T
d
=
-
distance
(
p
)
;
if
(
abs
(
d
)
>
PRECISION
)
{
...
...
@@ -131,7 +128,7 @@ void Plane3D<T>::project(Vector<3,T>& p) const
template
<
typename
T
>
Orientation3D
Plane3D
<
T
>::
orient
(
const
Vector
<
3
,
T
>&
p
)
const
{
#define PRECISION 1e-
5
#define PRECISION 1e-
10
T
dist
=
distance
(
p
)
;
if
(
dist
<
-
PRECISION
)
return
UNDER
;
...
...
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