本文整理汇总了C++中VectorType::normalize方法的典型用法代码示例。如果您正苦于以下问题:C++ VectorType::normalize方法的具体用法?C++ VectorType::normalize怎么用?C++ VectorType::normalize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VectorType
的用法示例。
在下文中一共展示了VectorType::normalize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: domain_error
/**
* @brief
* Construct a plane with a point and a normal.
* @param p
* the point
* @param n
* the normal
* @throw std::domain_error
* if the normal vector is the zero vector
* @remark
* The plane normal is normalized if necessary.
* @remark
* Let \f$X\f$ be the point and \f$\vec{n}\f$ the unnormalized plane normal, then the plane equation is given by
* \f{align*}{
* \hat{n} \cdot P + d = 0, \hat{n}=\frac{\vec{n}}{|\vec{n}|}, d = -\left(\hat{n} \cdot X\right)
* \f}
* \f$X\f$ is on the plane as
* \f{align*}{
* &\hat{n} \cdot X + d\\
* =&\hat{n} \cdot X + -(\hat{n} \cdot X)\\
* =&\hat{n} \cdot X - \hat{n} \cdot X\\
* =&0
* \f}
*/
Plane3(const VectorType& p, const VectorType& n)
: _n(n), _d(0.0f) {
if (_n.normalize() == 0.0f) {
throw std::domain_error("normal vector is zero vector");
}
_d = -_n.dot(p);
}