Warnings on vc14 were eliminated
[occt.git] / src / Select3D / Select3D_SensitivePoint.cxx
CommitLineData
b311480e 1// Created on: 1995-03-10
2// Created by: Mister rmi
3// Copyright (c) 1995-1999 Matra Datavision
973c2be1 4// Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5//
973c2be1 6// This file is part of Open CASCADE Technology software library.
b311480e 7//
d5f74e42 8// This library is free software; you can redistribute it and/or modify it under
9// the terms of the GNU Lesser General Public License version 2.1 as published
973c2be1 10// by the Free Software Foundation, with special exception defined in the file
11// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12// distribution for complete text of the license and disclaimer of any warranty.
b311480e 13//
973c2be1 14// Alternatively, this file may be used under the terms of Open CASCADE
15// commercial license or contractual agreement.
7fd59977 16
f751596e 17#include <Select3D_SensitivePoint.hxx>
7fd59977 18
f751596e 19#include <TopLoc_Location.hxx>
7fd59977 20
7fd59977 21
92efcf78 22IMPLEMENT_STANDARD_RTTIEXT(Select3D_SensitivePoint,Select3D_SensitiveEntity)
23
7fd59977 24//==================================================
f751596e 25// Function: Creation
7fd59977 26// Purpose :
27//==================================================
f751596e 28Select3D_SensitivePoint::Select3D_SensitivePoint (const Handle(SelectBasics_EntityOwner)& theOwner,
29 const gp_Pnt& thePoint)
30: Select3D_SensitiveEntity (theOwner)
7fd59977 31{
3bf9a45f 32 SetSensitivityFactor (12);
f751596e 33 myPoint = thePoint;
7fd59977 34}
35
7fd59977 36//==================================================
ac04d101 37// Function: Matches
7fd59977 38// Purpose :
39//==================================================
f751596e 40Standard_Boolean Select3D_SensitivePoint::Matches (SelectBasics_SelectingVolumeManager& theMgr,
41 SelectBasics_PickResult& thePickResult)
7fd59977 42{
f751596e 43 Standard_Real aDepth = RealLast();
44 Standard_Real aDistToCOG = RealLast();
2157d6ac 45 if (!theMgr.Overlaps (myPoint, aDepth))
46 {
47 thePickResult = SelectBasics_PickResult (aDepth, aDistToCOG);
48 return Standard_False;
49 }
4269bd1b 50
2157d6ac 51 aDistToCOG = aDepth;
f751596e 52 thePickResult = SelectBasics_PickResult (aDepth, aDistToCOG);
2157d6ac 53 return Standard_True;
7fd59977 54}
55
7fd59977 56//=======================================================================
f751596e 57//function : Point
aec37c15 58//purpose :
7fd59977 59//=======================================================================
f751596e 60gp_Pnt Select3D_SensitivePoint::Point() const
aec37c15 61{
f751596e 62 return myPoint;
7fd59977 63}
64
7fd59977 65//=======================================================================
f751596e 66//function : GetConnected
aec37c15 67//purpose :
7fd59977 68//=======================================================================
f751596e 69Handle(Select3D_SensitiveEntity) Select3D_SensitivePoint::GetConnected()
70{
71 Handle(Select3D_SensitivePoint) aNewEntity = new Select3D_SensitivePoint (myOwnerId, myPoint);
72 return aNewEntity;
73}
7fd59977 74
75//=======================================================================
f751596e 76// function : CenterOfGeometry
77// purpose : Returns center of point. If location transformation
78// is set, it will be applied
7fd59977 79//=======================================================================
f751596e 80gp_Pnt Select3D_SensitivePoint::CenterOfGeometry() const
7fd59977 81{
f751596e 82 return myPoint;
7fd59977 83}
84
7fd59977 85//=======================================================================
f751596e 86// function : BoundingBox
87// purpose : Returns bounding box of the point. If location
88// transformation is set, it will be applied
7fd59977 89//=======================================================================
f751596e 90Select3D_BndBox3d Select3D_SensitivePoint::BoundingBox()
7fd59977 91{
f751596e 92 return Select3D_BndBox3d (SelectMgr_Vec3 (myPoint.X(), myPoint.Y(), myPoint.Z()),
93 SelectMgr_Vec3 (myPoint.X(), myPoint.Y(), myPoint.Z()));
7fd59977 94}
95
96//=======================================================================
f751596e 97// function : NbSubElements
98// purpose : Returns the amount of sub-entities in sensitive
7fd59977 99//=======================================================================
f751596e 100Standard_Integer Select3D_SensitivePoint::NbSubElements()
7fd59977 101{
f751596e 102 return 1;
7fd59977 103}