OmniSciDB  72c90bc290
vec3d.h File Reference

3D floating point vector functions. More...

Include dependency graph for vec3d.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Macros

#define Z_INDEX   2

#define Vec3d(variable_name)   double variable_name[3]

#define Vec3dArray(variable_name, size)   double variable_name[size][3]

## Functions

EXTENSION_NOINLINE bool _geoToVec3d (const GeoCoord(geo), Vec3d(v))

EXTENSION_NOINLINE double _pointSquareDist (const Vec3d(v1), const Vec3d(v2))

## Detailed Description

3D floating point vector functions.

Definition in file vec3d.h.

## Macro Definition Documentation

 #define Vec3d ( variable_name ) double variable_name[3]

Definition at line 29 of file vec3d.h.

Referenced by _geoToHex2d().

 #define Vec3dArray ( variable_name, size ) double variable_name[size][3]

Definition at line 30 of file vec3d.h.

 #define Z_INDEX   2

Definition at line 28 of file vec3d.h.

Referenced by _geoToVec3d(), and _pointSquareDist().

## Function Documentation

 EXTENSION_NOINLINE bool _geoToVec3d ( const GeoCoordgeo, Vec3d(v) )

Calculate the 3D coordinate on unit sphere from the latitude and longitude.

Parameters
 geo The latitude and longitude of the point. v The 3D coordinate of the point.

Definition at line 52 of file vec3d.hpp.

References LAT_INDEX, LON_INDEX, X_INDEX, Y_INDEX, and Z_INDEX.

Referenced by _geoToHex2d().

52  {
53  double r = cos(geo[LAT_INDEX]);
54
55  v[Z_INDEX] = sin(geo[LAT_INDEX]);
56  v[X_INDEX] = cos(geo[LON_INDEX]) * r;
57  v[Y_INDEX] = sin(geo[LON_INDEX]) * r;
58
59  return true;
60 }
#define Z_INDEX
Definition: vec3d.h:28
#define LAT_INDEX
Definition: h3api.h:92
#define X_INDEX
Definition: vec2d.h:26
#define LON_INDEX
Definition: h3api.h:93
#define Y_INDEX
Definition: vec2d.h:27

Here is the caller graph for this function:

 EXTENSION_NOINLINE double _pointSquareDist ( const Vec3dv1, const Vec3dv2 )

Calculate the square of the distance between two 3D coordinates.

Parameters
 v1 The first 3D coordinate. v2 The second 3D coordinate.
Returns
The square of the distance between the given points.

Definition at line 41 of file vec3d.hpp.

References _square(), X_INDEX, Y_INDEX, and Z_INDEX.

Referenced by _geoToHex2d().

41  {
42  return _square(v1[X_INDEX] - v2[X_INDEX]) + _square(v1[Y_INDEX] - v2[Y_INDEX]) +
43  _square(v1[Z_INDEX] - v2[Z_INDEX]);
44 }
#define Z_INDEX
Definition: vec3d.h:28
#define X_INDEX
Definition: vec2d.h:26
EXTENSION_INLINE double _square(double x)
Definition: vec3d.hpp:30
#define Y_INDEX
Definition: vec2d.h:27

Here is the call graph for this function:

Here is the caller graph for this function: