mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-16 10:08:36 +03:00
0030805: Visualization, StdSelect_BRepSelectionTool - empty sensitivity from polygon-only Edge
StdSelect_BRepSelectionTool::GetEdgeSensitive() now takes polygon points before creating curve Adaptor.
This commit is contained in:
parent
841aa8c47b
commit
e05d8d90c0
@ -443,6 +443,15 @@ void StdSelect_BRepSelectionTool::GetEdgeSensitive (const TopoDS_Shape& theShape
|
|||||||
Handle(Select3D_SensitiveEntity)& theSensitive)
|
Handle(Select3D_SensitiveEntity)& theSensitive)
|
||||||
{
|
{
|
||||||
const TopoDS_Edge& anEdge = TopoDS::Edge (theShape);
|
const TopoDS_Edge& anEdge = TopoDS::Edge (theShape);
|
||||||
|
// try to get points from existing polygons
|
||||||
|
Handle(TColgp_HArray1OfPnt) aPoints = GetPointsFromPolygon (anEdge);
|
||||||
|
if (!aPoints.IsNull()
|
||||||
|
&& !aPoints->IsEmpty())
|
||||||
|
{
|
||||||
|
theSensitive = new Select3D_SensitiveCurve (theOwner, aPoints);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
BRepAdaptor_Curve cu3d;
|
BRepAdaptor_Curve cu3d;
|
||||||
try {
|
try {
|
||||||
OCC_CATCH_SIGNALS
|
OCC_CATCH_SIGNALS
|
||||||
@ -451,14 +460,6 @@ void StdSelect_BRepSelectionTool::GetEdgeSensitive (const TopoDS_Shape& theShape
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// try to get points from existing polygons
|
|
||||||
Handle(TColgp_HArray1OfPnt) aPoints = GetPointsFromPolygon (anEdge);
|
|
||||||
if (!aPoints.IsNull() && aPoints->Length() > 0)
|
|
||||||
{
|
|
||||||
theSensitive = new Select3D_SensitiveCurve (theOwner, aPoints);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Standard_Real aParamFirst = cu3d.FirstParameter();
|
Standard_Real aParamFirst = cu3d.FirstParameter();
|
||||||
Standard_Real aParamLast = cu3d.LastParameter();
|
Standard_Real aParamLast = cu3d.LastParameter();
|
||||||
switch (cu3d.GetType())
|
switch (cu3d.GetType())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user