# Learn the Shape Maker. Mathematical model.

Updated: Oct 9, 2020

The technology for designing the hull surface using this mathematical model is as follows. First, lines are introduced that form the spatial framework of the object. It can be a buttock in CL, a side line of a deck, knuckle lines, a line of a midship-frame. Then the surface is “pulled” onto this frame. After that, the lines and surfaces are adjusted to obtain the desired shape of the hull (the shape of the hull controlled by orthogonal sections of surfaces, inflection lines, lines of equal normal to the surface, etc.).

**Point.**

A point has three coordinates that determine its position in 3D space.

Different types of points are presented in the system depending on the topological connections:

**- A spatial point** is a point that does not have topological connections with any other elements,

**- A point on a line** - This is a point lying on a line with which it is connected topologically,

**- A point on a surface** - This is a point that always lies on a surface that is connected topologically.

**- The intersection point of two lines** is the point obtained as a result of the intersection of two lines. Such a point cannot be changed.

**- The point of intersection of a line and a surface** - This is the point obtained as a result of the intersection of a line and a surface. Such a point also cannot be edited.

**Line.**

The line is a smooth (twice continuously differentiable by parameter) parametric curve in 3-dimensional space. It is presented in the form of an inhomogeneous cubic polynomial B-spline. Such a curve is represented as a set of segments - Bezier sections, which are cubic parametric curves connected to each other at points called B-spline nodes. The number of Bezier segments of the curve is less than the number of its control points by 3.

The position of any point on the line is determined by its parameter, which varies monotonously and continuously along the curve.

The direction is defined for the line, that is, the beginning and the end are determined. The direction of the line is determined by its start and end points.

1 - Endpoint

2 - Control points of the B-spline,

3 - Segment of curve,

4 - Control polygon,

5 - B-spline node.

A B-spline is defined by a control polygon, which, by some rule, maps a curve to the following properties:

- the polyline must contain at least four control points of the B-spline;

- the start and end points of the curve coincide with the start and end points of the polygon;

- the tangent at the starting point of the curve is directed along the first segment of the polygon, at the end point - along the last;

- the curve tracks the shape of the polygon(in particular, a polygon with self-intersections corresponds to a curve with self-intersections; if all vertices of the polygon lie on one straight line, then the curve will coincide with this straight line);

- the curve is contained in the "convex hull" of the polygon, that is, the dimensions of the curve are obviously no more than the dimensions of the polygon;

- a change in the position of one of the vertices of the polygon leads to a change in no more than four segments of the curve;

- arcs and circles are approximated approximately, the maximum radial deviation from the true arc can be 0.1 mm.

From the user's point of view, the control polygonis a tool for correcting the shape of the line.

The line is based on 2 points. A line starting and ending at one point is not used and cannot be entered. The line changes shape when the position of the end points changes.

Different types of lines are presented in the system depending on the topological connections:

**- A space line** is a line that does not have topological connections with any surfaces;

**- A lines on surface** is a line projected to surface by some way and topologicaly lined to this surface. It means the line will folow the changes of surface shape.

**- A intersection line** is a line of intersection of two surfaces. Such line will be always on intersection of two surface and will follow changes of surfaces shapes.

**Surface.**

The surface element is a smooth parametric B-spline surface. Her math is similar to the math of a B-spline curve, corrected for the two-dimensional case.

The surface can be based on 2, 3 or 4 boundary lines forming a closed loop. Closedness is ensured if the corner point of the surface is common to two boundary lines. A surface changes shape when the shape of the boundary lines changes.

The shape of the surface is represented by lines of equal parameter and sections. The shape of the surface can be controlled by changing the shape of the boundary lines and the position of the nodes of the control grid of the surface.

The number of nodes of the control grid of the surface and their location is determined by the control polygons of boundary lines. If opposite boundary lines have the same number of control polygon nodes, then the surface grid along the corresponding direction will have the same number of control polygon nodes. Otherwise, the number of nodes of the control polygon of the surface along this direction can be increased, but no more than the sum of the nodes of the control grid of these lines.

1- Boundary lines, 2- Lines of equal surface parameter, 3- Control surface polyhedron, 4 - Corner points.

**Driver.**
The Shape Maker implements complex constructions, such as a surface of revolution, conjugation of lines with a radius, etc., and their automatic support during correction. The driver elements in structure are no different from ordinary elements. They have all the relevant topological dependencies and relationships among themselves. They can be used to build other elements (lines, surfaces, etc.), for object snap (geometric and topological), as the basic elements of fixation. Correction of the original driver elements or driver parameters leads to automatic rebuilding of the driver elements.

**References.**
As mentioned above, the line changes shape when the position of the end points changes, the surface changes shape when the boundary lines change. This dependency is implemented using direct and reverse links between elements. For example, a line has direct links to its end points, and these points are backward links to a line, a surface has direct links to boundary lines and corner points, and lines and points are backward links to a surface.