muMECH  1.0
Namespaces | Macros | Enumerations | Functions | Variables
meso3d.cpp File Reference
#include "meso3d.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdarg.h>

Go to the source code of this file.

Namespaces

 meso3d
 

Macros

#define NO_ERROR   -1
 
#define WARNING   0
 
#define GENERAL_ERROR   1
 
#define INPUT_ERROR   6
 
#define EPSILON   1.0e-10
 
#define EPSILON_T   1.0e-5
 
#define EPSILON_U   1.0e-5
 
#define EPSILON_V   1.0e-5
 
#define MAX_ITER   100
 
#define B_0(T)   (1.0-2.0*(T)+(T)*(T))
 
#define B_1(T)   (2.0*(1.0-(T))*(T))
 
#define B_2(T)   ((T)*(T))
 
#define dB_0(T)   (-2.0+2.0*(T))
 
#define dB_1(T)   (2.0-4.0*(T))
 
#define dB_2(T)   (2.0*(T))
 
#define swap(VAL1, VAL2, TMP)   {(TMP) = (VAL1); (VAL1) = (VAL2); (VAL2) = (TMP);}
 
#define copy_vec(DEST, SRC)   {(DEST).x = (SRC).x; (DEST).y = (SRC).y; (DEST).z = (SRC).z;}
 
#define size_vec(VEC)   ((VEC).x * (VEC).x + (VEC).y * (VEC).y + (VEC).z * (VEC).z)
 
#define dist_point(PNT1, PNT2)
 
#define aver_point(RES, PNT1, PNT2)
 
#define mul_vec(VEC, VALUE)   {(VEC).x *= (VALUE); (VEC).y *= (VALUE); (VEC).z *= (VALUE);}
 
#define div_vec(VEC, VALUE)   {(VEC).x /= (VALUE); (VEC).y /= (VALUE); (VEC).z /= (VALUE);}
 
#define add_vec(RES, VEC1, VEC2)
 
#define sub_vec(RES, VEC1, VEC2)
 
#define dot_product(VEC1, VEC2)   ((VEC1).x * (VEC2).x + (VEC1).y * (VEC2).y + (VEC1).z * (VEC2).z)
 
#define cross_product(RES, VEC1, VEC2)
 
#define array(MAT, ROWS, COLS, ROW, COL)   MAT[(ROW)*(COLS)+(COL)]
 
#define expand_ellipsoid(ELLIPSOID)
 
#define shrink_ellipsoid(ELLIPSOID)
 
#define expand_ellipse(ELLIPSE)
 
#define shrink_ellipse(ELLIPSE)
 

Enumerations

enum  meso3d::logic { meso3d::NO = 0, meso3d::YES = 1 }
 

Functions

static bool meso3d::check_point_inside_ellipsoid (point_rec *point, ellipsoid_rec *ellipsoid)
 (ellipsoid greater by epsilon) More...
 
static int meso3d::project_point_to_ellipsoid (point_rec *point, ellipsoid_rec *ellipsoid, point_rec *pnt, double *u_par, double *v_par)
 (exact) More...
 
static void meso3d::get_ellipsoid_point_octant (ellipsoid_rec *ellipsoid, int octant, double u, double v, point_rec *pnt)
 
static void meso3d::get_ellipsoid_point (ellipsoid_rec *ellipsoid, double u, double v, point_rec *pnt)
 
static double meso3d::get_ellipsoid_u_gradient (ellipsoid_rec *ellipsoid, double u, double v, point_rec *u_grad)
 
static double meso3d::get_ellipsoid_v_gradient (ellipsoid_rec *ellipsoid, double u, double v, point_rec *v_grad)
 
static void meso3d::transform_from_global_to_local (point_rec *global, point_rec *local, point_rec *origin, trans_matrix *trans)
 
static void meso3d::transform_from_local_to_global (point_rec *global, point_rec *local, point_rec *origin, trans_matrix *trans)
 
static void meso3d::invert_transformation (trans_matrix *trans)
 
static void meso3d::error_message (int exit_code, const char *format,...)
 
bool meso3d::isZero (double zero, double a)
 
void meso3d::check_ellipsoid_rec_consistency (meso3d::ellipsoid_rec &L)
 ADDED for muMech needs. More...
 
void meso3d::transfom_ellipsoid_rec (meso3d::ellipsoid_rec &L)
 ADDED for muMech needs. More...
 
int meso3d::check_ellipsoid_ellipsoid_overlap (ellipsoid_rec *ellipsoid1, ellipsoid_rec *ellipsoid2)
 

Variables

static double meso3d::epsilon = EPSILON
 

Macro Definition Documentation

#define add_vec (   RES,
  VEC1,
  VEC2 
)
Value:
{(RES).x = (VEC1).x + (VEC2).x; \
(RES).y = (VEC1).y + (VEC2).y; \
(RES).z = (VEC1).z + (VEC2).z;}

Definition at line 123 of file meso3d.cpp.

#define array (   MAT,
  ROWS,
  COLS,
  ROW,
  COL 
)    MAT[(ROW)*(COLS)+(COL)]
#define aver_point (   RES,
  PNT1,
  PNT2 
)
Value:
{(RES).x = ((PNT1).x + (PNT2).x) / 2.0; \
(RES).y = ((PNT1).y + (PNT2).y) / 2.0; \
(RES).z = ((PNT1).z + (PNT2).z) / 2.0;}

Definition at line 115 of file meso3d.cpp.

#define B_0 (   T)    (1.0-2.0*(T)+(T)*(T))
#define B_1 (   T)    (2.0*(1.0-(T))*(T))
#define B_2 (   T)    ((T)*(T))
#define copy_vec (   DEST,
  SRC 
)    {(DEST).x = (SRC).x; (DEST).y = (SRC).y; (DEST).z = (SRC).z;}
#define cross_product (   RES,
  VEC1,
  VEC2 
)
Value:
{(RES).x = (VEC1).y * (VEC2).z - (VEC1).z * (VEC2).y; \
(RES).y = (VEC1).z * (VEC2).x - (VEC1).x * (VEC2).z; \
(RES).z = (VEC1).x * (VEC2).y - (VEC1).y * (VEC2).x;}

Definition at line 134 of file meso3d.cpp.

Referenced by check_ellipsoid_rec_consistency(), and meso3d::project_point_to_ellipsoid().

#define dB_0 (   T)    (-2.0+2.0*(T))
#define dB_1 (   T)    (2.0-4.0*(T))
#define dB_2 (   T)    (2.0*(T))
#define dist_point (   PNT1,
  PNT2 
)
Value:
(((PNT1).x - (PNT2).x) * ((PNT1).x - (PNT2).x) + \
((PNT1).y - (PNT2).y) * ((PNT1).y - (PNT2).y) + \
((PNT1).z - (PNT2).z) * ((PNT1).z - (PNT2).z))

Definition at line 112 of file meso3d.cpp.

Referenced by meso3d::check_ellipsoid_ellipsoid_overlap().

#define div_vec (   VEC,
  VALUE 
)    {(VEC).x /= (VALUE); (VEC).y /= (VALUE); (VEC).z /= (VALUE);}

Definition at line 121 of file meso3d.cpp.

Referenced by check_ellipsoid_rec_consistency().

#define dot_product (   VEC1,
  VEC2 
)    ((VEC1).x * (VEC2).x + (VEC1).y * (VEC2).y + (VEC1).z * (VEC2).z)
#define EPSILON   1.0e-10
#define EPSILON_T   1.0e-5

Definition at line 89 of file meso3d.cpp.

#define EPSILON_U   1.0e-5
#define EPSILON_V   1.0e-5
#define expand_ellipse (   ELLIPSE)
Value:
{(ELLIPSE).max += epsilon; \
(ELLIPSE).min += epsilon;}
static double epsilon
Definition: meso3d.cpp:238

Definition at line 150 of file meso3d.cpp.

#define expand_ellipsoid (   ELLIPSOID)
Value:
{(ELLIPSOID).max += epsilon; \
(ELLIPSOID).min += epsilon; \
(ELLIPSOID).mid += epsilon;}
static double epsilon
Definition: meso3d.cpp:238

Definition at line 143 of file meso3d.cpp.

#define GENERAL_ERROR   1

Definition at line 79 of file meso3d.cpp.

Referenced by meso3d::project_point_to_ellipsoid().

#define INPUT_ERROR   6

Definition at line 84 of file meso3d.cpp.

Referenced by check_ellipsoid_rec_consistency().

#define MAX_ITER   100

Definition at line 95 of file meso3d.cpp.

Referenced by meso3d::project_point_to_ellipsoid().

#define mul_vec (   VEC,
  VALUE 
)    {(VEC).x *= (VALUE); (VEC).y *= (VALUE); (VEC).z *= (VALUE);}

Definition at line 119 of file meso3d.cpp.

#define NO_ERROR   -1

Definition at line 77 of file meso3d.cpp.

Referenced by meso3d::error_message().

#define shrink_ellipse (   ELLIPSE)
Value:
{(ELLIPSE).max -= epsilon; \
(ELLIPSE).min -= epsilon;}
static double epsilon
Definition: meso3d.cpp:238

Definition at line 152 of file meso3d.cpp.

#define shrink_ellipsoid (   ELLIPSOID)
Value:
{(ELLIPSOID).max -= epsilon; \
(ELLIPSOID).min -= epsilon; \
(ELLIPSOID).mid -= epsilon;}
static double epsilon
Definition: meso3d.cpp:238

Definition at line 146 of file meso3d.cpp.

#define size_vec (   VEC)    ((VEC).x * (VEC).x + (VEC).y * (VEC).y + (VEC).z * (VEC).z)
#define sub_vec (   RES,
  VEC1,
  VEC2 
)
Value:
{(RES).x = (VEC1).x - (VEC2).x; \
(RES).y = (VEC1).y - (VEC2).y; \
(RES).z = (VEC1).z - (VEC2).z;}

Definition at line 127 of file meso3d.cpp.

Referenced by check_ellipsoid_rec_consistency(), and meso3d::project_point_to_ellipsoid().

#define swap (   VAL1,
  VAL2,
  TMP 
)    {(TMP) = (VAL1); (VAL1) = (VAL2); (VAL2) = (TMP);}

Definition at line 107 of file meso3d.cpp.

Referenced by meso3d::invert_transformation().

#define WARNING   0

Definition at line 78 of file meso3d.cpp.

Referenced by check_ellipsoid_rec_consistency(), and meso3d::error_message().