23 Cone3(
const Line3<T>& inAxis, T inAngle, T inHeight )
66 const T coneAngle =
angle;
72 T angleX = std::atan2( cross( n,
X ).
length(), dot( n,
X ) );
75 if ( coneAngle + PI_F / 2.0 < angleX )
79 auto K = n * MR::dot(
X, n );
84 auto D = K + XK.normalized() * ( K.length() * std::tan( coneAngle ) );
85 auto normD = D.normalized();
87 return normD * dot( normD,
X ) +
center;
Base class for cone parameterization.
Definition MRCone3.h:14
const Vector3< T > & direction(void) const
main axis direction. It could be non normalized. For any cone point dot( point , direction ) >=0
Definition MRCone3.h:46
T angle
for any cone point dot( point , direction ) >=0
Definition MRCone3.h:93
T height
cone angle, main axis vs side
Definition MRCone3.h:94
Line3< T > axis
Definition MRCone3.h:91
Cone3()
Definition MRCone3.h:16
const Vector3< T > & center(void) const
now we use an apex as center of the cone.
Definition MRCone3.h:36
Vector3< T > & apex(void)
return cone apex position
Definition MRCone3.h:51
Cone3(const Line3< T > &inAxis, T inAngle, T inHeight)
Definition MRCone3.h:23
Vector3< T > & center(void)
now we use an apex as center of the cone.
Definition MRCone3.h:31
Vector3< T > & direction(void)
main axis direction. It could be non normalized. For any cone point dot( point , direction ) >=0
Definition MRCone3.h:41
const Vector3< T > & apex(void) const
return cone apex position
Definition MRCone3.h:56
Vector3< T > projectPoint(const Vector3< T > &point) const
Definition MRCone3.h:61
length
Definition MRObjectDimensionsEnum.h:17
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRVector3.h:33