19#define a_plane_c(x) a_cast_s(a_plane, x)
20#define a_plane_(_, x) a_cast_s(a_plane _, x)
24#if defined(__cplusplus)
31#if !defined A_HAVE_INLINE || defined(LIBA_PLANE_C)
34#define A_INTERN A_PUBLIC extern
64#if !defined A_HAVE_INLINE || defined(LIBA_PLANE_C)
67#define A_INTERN static A_INLINE
70#if defined(__cplusplus)
81#if defined(__cplusplus)
82 A_INLINE
a_point3 const &org()
const {
return orig; }
85 a_plane_set_org(
this, x, y, z);
87 A_INLINE
a_vector3 const &dir()
const {
return dir_; }
90 return a_plane_set_dir(
this, x, y, z);
94 return a_plane_set_uv(
this, &u, &v);
98 return a_plane_set_u(
this, &n, &u);
102 return a_plane_set_v(
this, &n, &v);
104 A_INLINE
a_vector3 const &u()
const {
return u_; }
105 A_INLINE
a_vector3 const &v()
const {
return v_; }
108 return a_plane_set(
this, &p, &n);
112 return a_plane_set3(
this, &p1, &p2, &p3);
116 a_plane_eval(
this, u, v, &res);
120 a_plane_parm(
this, &p, &u, &v);
124 return a_plane_proj(
this, &p, &res);
128 return a_plane_sdist(
this, &rhs);
132 return a_plane_dist(
this, &rhs);
136 return a_plane_int0(
this, &rhs, &u, &v);
140 return a_plane_int1(
this, &rhs, min, max, &w);
144 return a_plane_int2(
this, &rhs, &res);
146 A_INLINE
void rot2d(
a_real angle)
148 a_plane_rot2d(
this, angle);
153#if defined(LIBA_PLANE_C)
156#define A_INTERN A_INLINE
159#if defined(A_HAVE_INLINE) || defined(LIBA_PLANE_C)
185#if defined(LIBA_PLANE_C)
188#define A_INTERN static A_INLINE
double a_real
compiler built-in floating-point number type
Definition a.h:1012
instance structure for three-dimensional line
Definition line3.h:90
instance structure for three-dimensional plane
Definition plane.h:78
instance structure for three-dimensional point
Definition point3.h:193
instance structure for three-dimensional vector
Definition vector3.h:387