1 #ifndef SimTK_SIMBODY_CABLE_SPAN_H_ 
    2 #define SimTK_SIMBODY_CABLE_SPAN_H_ 
  117 class MultibodySystem;
 
  118 class CableSubsystem;
 
  119 class CableSubsystemTestHelper;
 
  198         const 
Vec3& originStation,
 
  200         const 
Vec3& terminationStation);
 
  230         const 
Vec3& contactPointHint_S);
 
  233     int getNumObstacles() const;
 
  260     void setOriginStation(const 
Vec3& originStation);
 
  264     Vec3 getTerminationStation() const;
 
  268     void setTerminationStation(const 
Vec3& terminationStation);
 
  286     void setObstacleMobilizedBodyIndex(
 
  303     void setObstacleTransformSurfaceToBody(
 
  316     void setObstacleContactGeometry(
 
  332     void setObstacleContactPointHint(
 
  334         Vec3 contactPointHint_S);
 
  345     Real getCurveSegmentAccuracy() const;
 
  351     void setCurveSegmentAccuracy(
Real accuracy);
 
  355     int getSolverMaxIterations() const;
 
  359     void setSolverMaxIterations(
int maxIterations);
 
  365     int getNumSolverIterations(const 
State& state) const;
 
  373     Real getSmoothnessTolerance() const;
 
  378     void setSmoothnessTolerance(
Real tolerance);
 
  411     void applyBodyForces(
 
  428     void calcDecorativePathPoints(
 
  430         const std::function<
void(
Vec3 point_G)>& sink) const;
 
  478     Real calcCurveSegmentArcLength(
 
  501     void calcCurveSegmentResampledPoints(
 
  505         const std::function<
void(
Vec3 point_G)>& sink) const;
 
  513     const Impl& getImpl()
 const 
  523     std::shared_ptr<Impl> m_impl;
 
  525     friend CableSubsystem;
 
  528     friend CableSubsystemTestHelper;
 
  564     const Impl& getImpl() 
const;
 
  567     friend CableSubsystemTestHelper;
 
  606     CableSubsystemTestHelper();
 
  607     ~CableSubsystemTestHelper() noexcept;
 
  608     CableSubsystemTestHelper(const CableSubsystemTestHelper&);
 
  609     CableSubsystemTestHelper& operator=(const CableSubsystemTestHelper&);
 
  610     CableSubsystemTestHelper(CableSubsystemTestHelper&&) noexcept = default;
 
  611     CableSubsystemTestHelper& operator=(CableSubsystemTestHelper&&) noexcept =
 
  621     void testCurrentPath(
 
  624         std::ostream& testReport) const;
 
  629     std::unique_ptr<Impl> m_impl;
 
This defines the MobilizedBody class, which associates a new body (the "child", "outboard",...
 
#define SimTK_PIMPL_DOWNCAST(Derived, Parent)
Similar to the above but for private implementation abstract classes, that is, abstract class hierarc...
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:594
 
Every Simbody header and source file should include this header before any other Simbody header.
 
#define SimTK_SIMBODY_EXPORT
Definition: Simbody/include/simbody/internal/common.h:68
 
This is a unique integer type for quickly identifying specific cables for fast lookup purposes.
 
This is a unique integer type for identifying obstacles comprising a particular CableSpan.
 
This class represents the path of a frictionless cable from an origin point fixed to a body,...
Definition: CableSpan.h:167
 
CableSpan()
Construct a new cable that can be configured later.
 
~CableSpan() noexcept=default
Delete the cable if this handle was the last reference to it.
 
This subsystem manages cables spanning between two points in a system.
Definition: CableSpan.h:541
 
int getNumCables() const
Get the number of cables being managed by this subsystem.
 
const CableSpan & getCable(CableSpanIndex ix) const
Get const access to a particular cable.
 
CableSpan & updCable(CableSpanIndex ix)
Get writeable access to a particular cable.
 
const MultibodySystem & getMultibodySystem() const
 
CableSubsystem(MultibodySystem &)
 
This is for arrays indexed by mobilized body number within a subsystem (typically the SimbodyMatterSu...
 
The job of the MultibodySystem class is to coordinate the activities of various subsystems which can ...
Definition: MultibodySystem.h:48
 
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition: State.h:280
 
A Subsystem is expected to be part of a larger System and to have interdependencies with other subsys...
Definition: Subsystem.h:55
 
This is the vector class intended to appear in user code for large, variable size column vectors.
Definition: Vector_.h:50
 
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
 
CableSpanAlgorithm
Definition: CableSpan.h:44
 
@ Scholz2015
This is the original algorithm as described in:
 
@ MinimumLength
The Minimal length algorithm finds the optimal path by minimizing the total cable length directly,...
 
SimTK_Real Real
This is the default compiled-in floating point type for SimTK, either float or double.
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:607
 
SimTK_DEFINE_UNIQUE_INDEX_TYPE(AssemblyConditionIndex)