63 const T coneAngle =
angle;
69 T angleX = std::atan2( cross( n,
X ).
length(), dot( n,
X ) );
72 if ( coneAngle + PI_F / 2.0 < angleX )
76 auto K = n * MR::dot(
X, n );
81 auto D = K + XK.normalized() * ( K.length() * std::tan( coneAngle ) );
82 auto normD = D.normalized();
84 return normD * dot( normD,
X ) +
center;
length
Definition MRObjectDimensionsEnum.h:14
const Vector3< T > & direction(void) const
Definition MRCone3.h:43
T angle
Definition MRCone3.h:90
T height
Definition MRCone3.h:91
Line3< T > axis
Definition MRCone3.h:88
Cone3()
Definition MRCone3.h:13
const Vector3< T > & center(void) const
Definition MRCone3.h:33
Vector3< T > & apex(void)
Definition MRCone3.h:48
Cone3(const Line3< T > &inAxis, T inAngle, T inHeight)
Definition MRCone3.h:20
Vector3< T > & center(void)
Definition MRCone3.h:28
Vector3< T > & direction(void)
Definition MRCone3.h:38
const Vector3< T > & apex(void) const
Definition MRCone3.h:53
Vector3< T > projectPoint(const Vector3< T > &point) const
Definition MRCone3.h:58
Definition MRCameraOrientationPlugin.h:8
Definition MRMesh/MRVector3.h:19