Fix Detail highlight position for rotated DPGI
- highlight position calculation was not taking into account rotation of DPGI due to RotationVector property.
This commit is contained in:
committed by
Yorik van Havre
parent
c1fdc42fd6
commit
bb0bbeef9a
@@ -207,12 +207,20 @@ App::DocumentObjectExecReturn *DrawViewDetail::execute(void)
|
||||
if (dpgi != nullptr) {
|
||||
viewAxis = dpgi->getViewAxis(shapeCenter, dirDetail);
|
||||
vaBase = TechDrawGeometry::getViewAxis(shapeCenter,dirDetail,false);
|
||||
if (!vaBase.Direction().IsEqual(viewAxis.Direction(), Precision::Angular())) {
|
||||
|
||||
Base::Vector3d vaDir(vaBase.Direction().X(),vaBase.Direction().Y(),vaBase.Direction().Z());
|
||||
Base::Vector3d vabDir(vaBase.Direction().X(),vaBase.Direction().Y(),vaBase.Direction().Z());
|
||||
double vaDot = vaDir.Dot(vabDir);
|
||||
|
||||
if (DrawUtil::fpCompare(vaDot,-1.0)) { //anti-parallel, flip
|
||||
myShape = TechDrawGeometry::rotateShape(myShape,
|
||||
viewAxis,
|
||||
180.0);
|
||||
}
|
||||
if (!vaBase.XDirection().IsEqual(viewAxis.XDirection(), Precision::Angular())) {
|
||||
Base::Vector3d vaxDir(vaBase.XDirection().X(),vaBase.XDirection().Y(),vaBase.XDirection().Z());
|
||||
Base::Vector3d vabxDir(vaBase.XDirection().X(),vaBase.XDirection().Y(),vaBase.XDirection().Z());
|
||||
double vaxDot = vaxDir.Dot(vabxDir);
|
||||
if (DrawUtil::fpCompare(vaxDot,-1.0)) {
|
||||
myShape = TechDrawGeometry::rotateShape(myShape,
|
||||
viewAxis,
|
||||
180.0);
|
||||
|
||||
Reference in New Issue
Block a user