NodeBuilder Class Reference

Kynema API: kynema::NodeBuilder Class Reference
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
kynema::NodeBuilder Class Reference

Builder class for constructing and configuring Node objects. More...

#include <node.hpp>

Public Member Functions

 NodeBuilder (Node &n)
 
 ~NodeBuilder ()=default
 
 NodeBuilder (const NodeBuilder &)=delete
 
 NodeBuilder (NodeBuilder &&)=delete
 
NodeBuilderoperator= (const NodeBuilder &)=delete
 
NodeBuilderoperator= (NodeBuilder &&)=delete
 
NodeBuilderSetPosition (const std::array< double, 7 > &p)
 
NodeBuilderSetPosition (double x, double y, double z, double w, double i, double j, double k)
 
NodeBuilderSetPosition (const std::array< double, 3 > &p)
 
NodeBuilderSetPosition (double x, double y, double z)
 
NodeBuilderSetOrientation (const std::array< double, 4 > &p)
 
NodeBuilderSetOrientation (double w, double i, double j, double k)
 
NodeBuilderSetDisplacement (const std::array< double, 7 > &p)
 
NodeBuilderSetDisplacement (double x, double y, double z, double w, double i, double j, double k)
 
NodeBuilderSetDisplacement (const std::array< double, 3 > &p)
 
NodeBuilderSetDisplacement (double x, double y, double z)
 
NodeBuilderSetVelocity (double x, double y, double z, double rx, double ry, double rz)
 
NodeBuilderSetVelocity (const std::array< double, 6 > &v)
 
NodeBuilderSetVelocity (double x, double y, double z)
 
NodeBuilderSetVelocity (const std::array< double, 3 > &v)
 
NodeBuilderSetAcceleration (double x, double y, double z, double rx, double ry, double rz)
 
NodeBuilderSetAcceleration (const std::array< double, 6 > &v)
 
NodeBuilderSetAcceleration (double x, double y, double z)
 
NodeBuilderSetAcceleration (const std::array< double, 3 > &v)
 
NodeBuilderSetElemLocation (double location)
 
size_t Build () const
 Build finalizes construction of node and returns the node's ID.
 

Detailed Description

Builder class for constructing and configuring Node objects.

NodeBuilder implements the builder pattern to provide a fluent interface for setting node properties. It allows for method chaining to configure multiple node properties in a single expression, making node creation more readable and maintainable.

The builder operates on a reference to an existing Node object and provides methods to set:

  • Position (initial position and orientation)
  • Displacement (from initial position)
  • Velocity (translational and rotational)
  • Acceleration (translational and rotational)
  • Element location (parametric position within an element)
Note
The builder holds a reference to the node being constructed and is not copyable or movable to prevent accidental misuse. All setter methods return a reference to the builder to enable method chaining.

Constructor & Destructor Documentation

◆ NodeBuilder() [1/3]

kynema::NodeBuilder::NodeBuilder ( Node n)
inlineexplicit

◆ ~NodeBuilder()

kynema::NodeBuilder::~NodeBuilder ( )
default

◆ NodeBuilder() [2/3]

kynema::NodeBuilder::NodeBuilder ( const NodeBuilder )
delete

◆ NodeBuilder() [3/3]

kynema::NodeBuilder::NodeBuilder ( NodeBuilder &&  )
delete

Member Function Documentation

◆ Build()

size_t kynema::NodeBuilder::Build ( ) const
inline

Build finalizes construction of node and returns the node's ID.

◆ operator=() [1/2]

NodeBuilder & kynema::NodeBuilder::operator= ( const NodeBuilder )
delete

◆ operator=() [2/2]

NodeBuilder & kynema::NodeBuilder::operator= ( NodeBuilder &&  )
delete

◆ SetAcceleration() [1/4]

NodeBuilder & kynema::NodeBuilder::SetAcceleration ( const std::array< double, 3 > &  v)
inline

◆ SetAcceleration() [2/4]

NodeBuilder & kynema::NodeBuilder::SetAcceleration ( const std::array< double, 6 > &  v)
inline

◆ SetAcceleration() [3/4]

NodeBuilder & kynema::NodeBuilder::SetAcceleration ( double  x,
double  y,
double  z 
)
inline

◆ SetAcceleration() [4/4]

NodeBuilder & kynema::NodeBuilder::SetAcceleration ( double  x,
double  y,
double  z,
double  rx,
double  ry,
double  rz 
)
inline

◆ SetDisplacement() [1/4]

NodeBuilder & kynema::NodeBuilder::SetDisplacement ( const std::array< double, 3 > &  p)
inline

◆ SetDisplacement() [2/4]

NodeBuilder & kynema::NodeBuilder::SetDisplacement ( const std::array< double, 7 > &  p)
inline

◆ SetDisplacement() [3/4]

NodeBuilder & kynema::NodeBuilder::SetDisplacement ( double  x,
double  y,
double  z 
)
inline

◆ SetDisplacement() [4/4]

NodeBuilder & kynema::NodeBuilder::SetDisplacement ( double  x,
double  y,
double  z,
double  w,
double  i,
double  j,
double  k 
)
inline

◆ SetElemLocation()

NodeBuilder & kynema::NodeBuilder::SetElemLocation ( double  location)
inline

◆ SetOrientation() [1/2]

NodeBuilder & kynema::NodeBuilder::SetOrientation ( const std::array< double, 4 > &  p)
inline

◆ SetOrientation() [2/2]

NodeBuilder & kynema::NodeBuilder::SetOrientation ( double  w,
double  i,
double  j,
double  k 
)
inline

◆ SetPosition() [1/4]

NodeBuilder & kynema::NodeBuilder::SetPosition ( const std::array< double, 3 > &  p)
inline

◆ SetPosition() [2/4]

NodeBuilder & kynema::NodeBuilder::SetPosition ( const std::array< double, 7 > &  p)
inline

◆ SetPosition() [3/4]

NodeBuilder & kynema::NodeBuilder::SetPosition ( double  x,
double  y,
double  z 
)
inline

◆ SetPosition() [4/4]

NodeBuilder & kynema::NodeBuilder::SetPosition ( double  x,
double  y,
double  z,
double  w,
double  i,
double  j,
double  k 
)
inline

◆ SetVelocity() [1/4]

NodeBuilder & kynema::NodeBuilder::SetVelocity ( const std::array< double, 3 > &  v)
inline

◆ SetVelocity() [2/4]

NodeBuilder & kynema::NodeBuilder::SetVelocity ( const std::array< double, 6 > &  v)
inline

◆ SetVelocity() [3/4]

NodeBuilder & kynema::NodeBuilder::SetVelocity ( double  x,
double  y,
double  z 
)
inline

◆ SetVelocity() [4/4]

NodeBuilder & kynema::NodeBuilder::SetVelocity ( double  x,
double  y,
double  z,
double  rx,
double  ry,
double  rz 
)
inline

The documentation for this class was generated from the following file:
  • /home/runner/work/kynema/kynema/kynema/src/model/node.hpp