Merge pull request #248 from wanqing0421/multiRotatingAxis

fix the bug about line initial
This commit is contained in:
PhasicFlow
2025-10-15 08:51:23 +03:30
committed by GitHub
3 changed files with 10 additions and 5 deletions

View File

@ -58,6 +58,6 @@ createInteraction(pFlow::cfModels::limitedLinearNormalRolling, pFlow::conveyorBe
createInteraction(pFlow::cfModels::nonLimitedLinearNormalRolling,pFlow::conveyorBeltMotionGeometry); createInteraction(pFlow::cfModels::nonLimitedLinearNormalRolling,pFlow::conveyorBeltMotionGeometry);
// multiRotationAxisMotionGeometry // multiRotationAxisMotionGeometry
//createInteraction(pFlow::cfModels::limitedLinearNormalRolling, pFlow::multiRotationAxisMotionGeometry); createInteraction(pFlow::cfModels::limitedLinearNormalRolling, pFlow::multiRotationAxisMotionGeometry);
//createInteraction(pFlow::cfModels::nonLimitedLinearNormalRolling,pFlow::multiRotationAxisMotionGeometry); createInteraction(pFlow::cfModels::nonLimitedLinearNormalRolling,pFlow::multiRotationAxisMotionGeometry);

View File

@ -58,5 +58,5 @@ createInteraction(pFlow::cfModels::limitedNonLinearNormalRolling, pFlow::conveyo
createInteraction(pFlow::cfModels::nonLimitedNonLinearNormalRolling,pFlow::conveyorBeltMotionGeometry); createInteraction(pFlow::cfModels::nonLimitedNonLinearNormalRolling,pFlow::conveyorBeltMotionGeometry);
// multiRotationAxisMotionGeometry // multiRotationAxisMotionGeometry
//createInteraction(pFlow::cfModels::limitedNonLinearNormalRolling, pFlow::multiRotationAxisMotionGeometry); createInteraction(pFlow::cfModels::limitedNonLinearNormalRolling, pFlow::multiRotationAxisMotionGeometry);
//createInteraction(pFlow::cfModels::nonLimitedNonLinearNormalRolling,pFlow::multiRotationAxisMotionGeometry); createInteraction(pFlow::cfModels::nonLimitedNonLinearNormalRolling,pFlow::multiRotationAxisMotionGeometry);

View File

@ -50,6 +50,7 @@ public:
//// - Constructors //// - Constructors
FUNCTION_HD FUNCTION_HD
line() line()
: v21_(1, 0, 0), p1_(0, 0, 0)
{} {}
FUNCTION_HD FUNCTION_HD
@ -86,6 +87,10 @@ public:
void set(const realx3 &lp1, const realx3 &lp2) void set(const realx3 &lp1, const realx3 &lp2)
{ {
v21_ = lp2 - lp1; v21_ = lp2 - lp1;
if(v21_.length() < verySmallValue)
{
v21_ = realx3(1, 0, 0);
}
p1_ = lp1; p1_ = lp1;
} }
@ -121,7 +126,7 @@ public:
real projectNormalizedLength(realx3 p) const real projectNormalizedLength(realx3 p) const
{ {
realx3 w = p - p1_; realx3 w = p - p1_;
return dot(w,v21_) / dot(v21_,v21_); return dot(w, v21_) / dot(v21_, v21_);
} }
//// - IO operation //// - IO operation