79#if defined(__cplusplus)
82 a_point3_val(
this, &x_, &y_, &z_);
86 a_point3_set_val(
this, x_, y_, z_);
90 a_point3_pol(
this, &rho, &theta, &z_);
94 a_point3_set_pol(
this, rho, theta, z_);
98 a_point3_sph(
this, &rho, &theta, &alpha);
102 a_point3_set_sph(
this, rho, theta, alpha);
106 a_point3_add(
this, &rhs, &res);
110 a_point3_sub(
this, &rhs, &res);
114 a_point3_mul(
this, rhs, &res);
118 a_point3_div(
this, rhs, &res);
122 a_point3_pos(
this, &res);
126 a_point3_neg(
this, &res);
128 A_INLINE
a_real dist(
a_point3 const &rhs)
const {
return a_point3_dist(
this, &rhs); }
129 A_INLINE
a_real dist1(
a_point3 const &rhs)
const {
return a_point3_dist1(
this, &rhs); }
130 A_INLINE
a_real dist2(
a_point3 const &rhs)
const {
return a_point3_dist2(
this, &rhs); }
131 friend A_INLINE
void operator+=(
a_point3 &lhs,
a_vector3 const &rhs) { a_point3_add(&lhs, &rhs, &lhs); }
135 a_point3_add(&lhs, &rhs, &res);
138 friend A_INLINE
void operator-=(
a_point3 &lhs,
a_vector3 const &rhs) { a_point3_sub(&lhs, &rhs, &lhs); }
142 a_point3_sub(&lhs, &rhs, &res);
148 a_vector3_set(&res, &rhs, &lhs);
151 friend A_INLINE
void operator*=(
a_point3 &lhs,
a_real rhs) { a_point3_mul(&lhs, rhs, &lhs); }
155 a_point3_mul(&rhs, lhs, &res);
161 a_point3_mul(&lhs, rhs, &res);
164 friend A_INLINE
void operator/=(
a_point3 &lhs,
a_real rhs) { a_point3_div(&lhs, rhs, &lhs); }
168 a_point3_div(&lhs, rhs, &res);
174 a_point3_pos(&rhs, &res);
180 a_point3_neg(&rhs, &res);
212 a_real_cart2pol(ctx->x, ctx->y, rho, theta);
217 a_real_pol2cart(rho, theta, &ctx->x, &ctx->y);
222 a_real_cart2sph(ctx->x, ctx->y, ctx->z, rho, theta, alpha);
226 a_real_sph2cart(rho, theta, alpha, &ctx->x, &ctx->y, &ctx->z);