Triangular ship hull panel (face).
using flag_type = unsigned intusing triangle_type = vtb::geometry::Triangle< T, N >using vec = blitz::TinyVector< T, N >T padding[5]int _indexflag_type _flagsconstexpr const flag_type Above_zconstexpr const flag_type Above_yconstexpr const flag_type Above_xconstexpr const flag_type Waterlineconstexpr const flag_type Wetindex(int rhs) -> voidindex() const -> intdegenerate() const -> boolCheck if the area is nought.
above(int i, bool rhs) -> voidabove(int i) const -> boolwaterline(bool rhs) -> voidwaterline() const -> booldry(bool rhs) -> voiddry() const -> boolwet(bool rhs) -> voidwet() const -> boolunsetf(flag_type rhs) -> voidsetf(flag_type rhs) -> voidforce(const vec & rhs) -> voidforce() const -> const vec &Get the force applied to the centre of the panel in the direction of the normal.
area(T rhs) -> voidarea() const -> TGet surface area.
normal(const vec & rhs) -> voidnormal() const -> const vec &Get surface normal.
centre(const vec & rhs) -> voidcentre() const -> const vec &Get the centre of the panel.
triangle(const triangle_type & rhs) -> voidtriangle() const -> const triangle_type &Get panel face.
operator=(const Ship_hull_panel &) -> Ship_hull_panel &~Ship_hull_panel()Ship_hull_panel()Ship_hull_panel(const vec & centre, vec n, T area)Ship_hull_panel(const triangle_type & base)explicitabove_flag(int i) -> constexpr const flag_typetemplate <class T> clamp(const Grid< T, 3 > & grid_xyz, const std::vector< Ship_hull_panel< T, 3 >> & panels, Vector< int, 3 > min_shape, Vector< bool, 3 > power_of_two = Vector< bool, 3 >(false)) -> Grid< T, 3 >Determine minimum and maximum indices for calculating derivatives using panels and slice the grid.
template <class T> clamp_domain(const Grid< T, 3 > & grid_xyz, const std::vector< Ship_hull_panel< T, 3 >> & panels, Vector< int, 3 > min_shape, Vector< bool, 3 > power_of_two = Vector< bool, 3 >(false)) -> blitz::RectDomain< 3 >template <class T> intersect(const vtb::geometry::Triangle< T, 3 > & panel, const Vector< T, 3 > & water_level, std::vector< vtb::geometry::Triangle< T, 3 >> * wet_panels, std::vector< vtb::geometry::Triangle< T, 3 >> * dry_panels, std::vector< vtb::geometry::Line_segment< T, 3 >> * waterline) -> void