Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/freestyle/intern/geometry/normal_cycle.h')
-rw-r--r--source/blender/freestyle/intern/geometry/normal_cycle.h146
1 files changed, 74 insertions, 72 deletions
diff --git a/source/blender/freestyle/intern/geometry/normal_cycle.h b/source/blender/freestyle/intern/geometry/normal_cycle.h
index 275e5494962..a57bfdb953e 100644
--- a/source/blender/freestyle/intern/geometry/normal_cycle.h
+++ b/source/blender/freestyle/intern/geometry/normal_cycle.h
@@ -37,7 +37,7 @@
#include "../system/FreestyleConfig.h"
#ifdef WITH_CXX_GUARDEDALLOC
-#include "MEM_guardedalloc.h"
+# include "MEM_guardedalloc.h"
#endif
namespace Freestyle {
@@ -46,11 +46,11 @@ using namespace Geometry;
namespace OGF {
-template <class T> inline void ogf_swap(T& x, T& y)
+template<class T> inline void ogf_swap(T &x, T &y)
{
- T z = x ;
- x = y ;
- y = z ;
+ T z = x;
+ x = y;
+ y = z;
}
//_________________________________________________________
@@ -64,83 +64,85 @@ template <class T> inline void ogf_swap(T& x, T& y)
* SOCG 2003
*/
class NormalCycle {
-public:
- NormalCycle();
- void begin();
- void end();
- /**
- * Note: the specified edge vector needs to be pre-clipped by the neighborhood.
- */
- void accumulate_dihedral_angle(const Vec3r& edge, real angle, real neigh_area = 1.0);
-
- const Vec3r& eigen_vector(int i) const
- {
- return axis_[i_[i]];
- }
-
- real eigen_value(int i) const
- {
- return eigen_value_[i_[i]];
- }
-
- const Vec3r& N() const
- {
- return eigen_vector(2);
- }
-
- const Vec3r& Kmax() const
- {
- return eigen_vector(1);
- }
-
- const Vec3r& Kmin() const
- {
- return eigen_vector(0);
- }
-
- real n() const
- {
- return eigen_value(2);
- }
-
- real kmax() const
- {
- return eigen_value(1);
- }
-
- real kmin() const
- {
- return eigen_value(0);
- }
-
-private:
- /* UNUSED */
- // real center_[3];
- Vec3r axis_[3];
- real eigen_value_[3];
- real M_[6];
- int i_[3];
+ public:
+ NormalCycle();
+ void begin();
+ void end();
+ /**
+ * Note: the specified edge vector needs to be pre-clipped by the neighborhood.
+ */
+ void accumulate_dihedral_angle(const Vec3r &edge, real angle, real neigh_area = 1.0);
+
+ const Vec3r &eigen_vector(int i) const
+ {
+ return axis_[i_[i]];
+ }
+
+ real eigen_value(int i) const
+ {
+ return eigen_value_[i_[i]];
+ }
+
+ const Vec3r &N() const
+ {
+ return eigen_vector(2);
+ }
+
+ const Vec3r &Kmax() const
+ {
+ return eigen_vector(1);
+ }
+
+ const Vec3r &Kmin() const
+ {
+ return eigen_vector(0);
+ }
+
+ real n() const
+ {
+ return eigen_value(2);
+ }
+
+ real kmax() const
+ {
+ return eigen_value(1);
+ }
+
+ real kmin() const
+ {
+ return eigen_value(0);
+ }
+
+ private:
+ /* UNUSED */
+ // real center_[3];
+ Vec3r axis_[3];
+ real eigen_value_[3];
+ real M_[6];
+ int i_[3];
#ifdef WITH_CXX_GUARDEDALLOC
- MEM_CXX_CLASS_ALLOC_FUNCS("Freestyle:OGF:NormalCycle")
+ MEM_CXX_CLASS_ALLOC_FUNCS("Freestyle:OGF:NormalCycle")
#endif
};
-inline void NormalCycle::accumulate_dihedral_angle(const Vec3r& edge, const double beta, double neigh_area)
+inline void NormalCycle::accumulate_dihedral_angle(const Vec3r &edge,
+ const double beta,
+ double neigh_area)
{
- double s = beta * neigh_area / edge.norm();
-
- M_[0] += s * edge.x() * edge.x();
- M_[1] += s * edge.x() * edge.y();
- M_[2] += s * edge.y() * edge.y();
- M_[3] += s * edge.x() * edge.z();
- M_[4] += s * edge.y() * edge.z();
- M_[5] += s * edge.z() * edge.z();
+ double s = beta * neigh_area / edge.norm();
+
+ M_[0] += s * edge.x() * edge.x();
+ M_[1] += s * edge.x() * edge.y();
+ M_[2] += s * edge.y() * edge.y();
+ M_[3] += s * edge.x() * edge.z();
+ M_[4] += s * edge.y() * edge.z();
+ M_[5] += s * edge.z() * edge.z();
}
//_________________________________________________________
-} // OGF namespace
+} // namespace OGF
} /* namespace Freestyle */