MorphoGraphX
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Namespaces | Typedefs | Functions
Geometry.hpp File Reference

Common definitions and utilities for all geometry algorithms This file is shared by cuda, do not include headers that nvcc can't handle (i.e. More...

#include <Config.hpp>
#include <Util.hpp>
#include <Vector.hpp>
#include <Matrix.hpp>
#include <BoundingBox.hpp>
#include <cmath>
#include <cuda/CudaGlobal.hpp>
#include <float.h>
#include <math.h>

Go to the source code of this file.

Namespaces

 mgx
 This namespace contains all the API of MorphoGraphX.
 

Typedefs

typedef unsigned char mgx::ubyte
 
typedef unsigned int mgx::uint
 
typedef unsigned short mgx::ushort
 
typedef unsigned long mgx::ulong
 
typedef util::Vector< 2, float > mgx::Point2f
 
typedef util::Vector< 4, float > mgx::Point4f
 
typedef util::Vector< 5, float > mgx::Point5f
 
typedef util::Vector< 6, float > mgx::Point6f
 
typedef util::Vector< 12, float > mgx::Point12f
 
typedef util::Vector< 2, double > mgx::Point2d
 
typedef util::Vector< 3, double > mgx::Point3d
 
typedef util::Vector< 4, double > mgx::Point4d
 
typedef util::Vector< 5, double > mgx::Point5d
 
typedef util::Vector< 6, double > mgx::Point6d
 
typedef util::Vector< 16, double > mgx::Point16d
 
typedef util::Vector< 3, int > mgx::Point3i
 
typedef util::Vector< 4, int > mgx::Point4i
 
typedef util::Vector< 5, int > mgx::Point5i
 
typedef util::Vector< 6, int > mgx::Point6i
 
typedef util::Vector< 2, uint > mgx::Point2u
 
typedef util::Vector< 3, uint > mgx::Point3u
 
typedef util::Vector< 4, uint > mgx::Point4u
 
typedef util::Vector< 5, uint > mgx::Point5u
 
typedef util::Vector< 6, uint > mgx::Point6u
 
typedef util::Vector< 2, size_t > mgx::Point2s
 
typedef util::Vector< 3, size_t > mgx::Point3s
 
typedef util::Vector< 4, size_t > mgx::Point4s
 
typedef util::Vector< 5, size_t > mgx::Point5s
 
typedef util::Vector< 6, size_t > mgx::Point6s
 
typedef util::Vector< 3, ushort > mgx::Point3us
 
typedef util::Matrix< 2, 2, float > mgx::Matrix2f
 
typedef util::Matrix< 3, 3, float > mgx::Matrix3f
 
typedef util::Matrix< 4, 4, float > mgx::Matrix4f
 
typedef util::Matrix
< 2, 2, double > 
mgx::Matrix2d
 
typedef util::Matrix
< 3, 3, double > 
mgx::Matrix3d
 
typedef util::Matrix
< 4, 4, double > 
mgx::Matrix4d
 
typedef util::BoundingBox
< 3, uint > 
mgx::BoundingBox3u
 
typedef util::BoundingBox< 3, int > mgx::BoundingBox3i
 
typedef util::BoundingBox
< 3, float > 
mgx::BoundingBox3f
 

Functions

CU_HOST_DEVICE Point3u mgx::toVoxelsCeil (const Point3f &p, const Point3f &step)
 
template<typename T >
CU_HOST_DEVICE util::Vector< 3, T > mgx::multMatrix4Point3 (const util::Matrix< 4, 4, T > &m, const util::Vector< 3, T > &p)
 
template<typename T >
T CU_HOST_DEVICE mgx::interpolate (const T a, const T b, const T s)
 
CU_HOST_DEVICE bool mgx::planeLineIntersect (Point3f p, Point3f n, Point3f u1, Point3f u2, float &s, Point3f &u)
 
CU_HOST_DEVICE float mgx::triangleArea (Point3f a, Point3f b, Point3f c)
 
CU_HOST_DEVICE float mgx::signedTetraVolume (Point3f a, Point3f b, Point3f c)
 
CU_HOST_DEVICE void mgx::getBasisFromPlane (const Point3f &nrml, Point3f &x, Point3f &y, Point3f &z)
 
CU_HOST_DEVICE int mgx::rayTriangleIntersect (const Point3f &r0, const Point3f &r1, const Point3f &t0, const Point3f &t1, const Point3f &t2, Point3f &intp)
 
CU_HOST_DEVICE float mgx::distLinePoint (Point3f v1, Point3f v2, Point3f p, bool segment)
 

Detailed Description

Common definitions and utilities for all geometry algorithms This file is shared by cuda, do not include headers that nvcc can't handle (i.e.

Qt)