using triangle_array = std::vector< triangle_type >
using panel_type = Ship_hull_panel< T, N >
using grid_type = Grid< T, 4 >
using vertex_type = blitz::TinyVector< T, N >
using panel_array = std::vector< panel_type >
using waterline_type = vtb::geometry::Polyline< T, 3 >
using triangle_type = vtb::geometry::Triangle< T, N >
using ship_type = Ship< T >
waterline() const -> const waterline_type &

Waterline polyline (line segment array).

wetted_vertices_mask() const -> const mask_array &

Wetted panels mask.

solve(ship_type & ship, const grid_type & grid_txyz, Array< T, 2 > wavy_surface) -> voidvirtual

Determine underwater hull panels (faces) taking into account ship position and orientation.

ship
a ship

grid_txyz
four-dimensional grid

wavy_surface
wavy surface elevation three-dimensional array

Wetted_surface_solver()
~Wetted_surface_solver()virtual
dry_panels() const -> const panel_array &

Wetted ship hull faces.

solve(ship_type & ship, const grid_type & grid_txyz, Array2< vertex_type > wavy_surface) -> voidvirtual

Determine underwater hull panels (faces) for irregular grid.

dry_panels() -> panel_array &
wet_panels() const -> const panel_array &

Wetted ship hull faces.

all_panels() const -> const panel_array &

All ship hull faces.

wet_panels() -> panel_array &
all_panels() -> panel_array &
compute_centres(ship_type & ship) -> voidprotected
template <class T, int N, Policy P>
make_wetted_surface_solver() -> std::unique_ptr< Wetted_surface_solver< T, N > >
mask_array _wetted_vertices_mask
panel_array _wet_panels
panel_array _all_panels
waterline_type _waterline
panel_array _dry_panels