本文整理汇总了C++中Cylinder::position方法的典型用法代码示例。如果您正苦于以下问题:C++ Cylinder::position方法的具体用法?C++ Cylinder::position怎么用?C++ Cylinder::position使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cylinder
的用法示例。
在下文中一共展示了Cylinder::position方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: add
inline typename Cylinder<T>::position_type
random_position(Cylinder<T> const& shape, Trng& rng)
{
// -1 < rng() < 1. See for example CylindricalSurface.hpp.
return add(shape.position(),
multiply(shape.unit_z(), rng() * shape.half_length()));
}
示例2: make_pair
inline std::pair<typename Cylinder<T_>::position_type,
typename Cylinder<T_>::length_type>
projected_point(Cylinder<T_> const& obj,
typename Cylinder<T_>::position_type const& pos)
{
typedef typename Cylinder<T_>::length_type length_type;
// The projection lies on the z-axis.
std::pair<length_type, length_type> r_z(to_internal(obj, pos));
return std::make_pair(
add(obj.position(), multiply(obj.unit_z(), r_z.second)),
r_z.first);
}
示例3: pos_vector
inline std::pair<typename Cylinder<T_>::length_type,
typename Cylinder<T_>::length_type>
to_internal(Cylinder<T_> const& obj, typename Cylinder<T_>::position_type const& pos)
{
// Return pos relative to position of cylinder.
typedef typename Cylinder<T_>::position_type position_type;
typedef typename Cylinder<T_>::length_type length_type;
const position_type pos_vector(subtract(pos, obj.position()));
// z can be < 0
const length_type z(dot_product(pos_vector, obj.unit_z()));
// r is always >= 0
const length_type r(length(pos_vector - multiply(obj.unit_z(), z)));
return std::make_pair(r, z);
}
示例4:
bool operator==(const Cylinder& rhs) const
{
return position_ == rhs.position() && radius_ == rhs.radius() && unit_z_ == rhs.unit_z() && half_length_ == rhs.half_length();
}