87 #ifndef Foam_sixDoFRigidBodyMotionAxisConstraint_H 88 #define Foam_sixDoFRigidBodyMotionAxisConstraint_H 98 namespace sixDoFRigidBodyMotionConstraints
107 public sixDoFRigidBodyMotionConstraint
118 autoPtr<Function1<scalar>> maxCWThetaPtr_;
121 autoPtr<Function1<scalar>> maxCCWThetaPtr_;
132 label rotationSector(
const vector& oldDir,
const vector& newDir)
const;
136 bool calcDir(
const vector& fm,
const bool rotationSector)
const;
169 virtual ~axis() =
default;
Six degree of freedom motion for a rigid body.
const sixDoFRigidBodyMotion & motion() const noexcept
Return const access to motion.
virtual void write(Ostream &) const
Write.
virtual autoPtr< sixDoFRigidBodyMotionConstraint > clone() const
Construct and return a clone.
TypeName("axis")
Runtime type information.
const word & name() const
Return the name.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Base class for defining constraints for sixDoF motions.
A class for handling words, derived from Foam::string.
virtual bool read(const dictionary &sDoFRBMCCoeff)
Update properties from given dictionary.
Accumulates point constraints through successive applications of the applyConstraint function...
An Ostream is an abstract base class for all output systems (streams, files, token lists...
axis(const word &name, const dictionary &sDoFRBMCDict, const sixDoFRigidBodyMotion &motion)
Construct from components.
virtual void constrainTranslation(pointConstraint &) const
Apply and accumulate translational constraints.
virtual ~axis()=default
Destructor.
void operator=(const sixDoFRigidBodyMotionConstraint &)=delete
No copy assignment.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
virtual void constrainRotation(pointConstraint &) const
Apply and accumulate rotational constraints.