mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-29 14:00:49 +03:00
Compare commits
19 Commits
CR32833
...
IR-2022-06
Author | SHA1 | Date | |
---|---|---|---|
|
24e4b3c83b | ||
|
10a19b2a75 | ||
|
d30f25e6b1 | ||
|
cec41bb93d | ||
|
e9c43fee29 | ||
|
812afe4edb | ||
|
48e4aad412 | ||
|
23c56fc66a | ||
|
795c0d5d73 | ||
|
fbf9efb8d5 | ||
|
9b9aac4a7b | ||
|
86d6c284c2 | ||
|
84d39c06fa | ||
|
df69c26472 | ||
|
b56df3a60a | ||
|
dcbd679c8b | ||
|
b9280b8b27 | ||
|
2052b04e5b | ||
|
6036998511 |
@@ -119,6 +119,8 @@ android-g++ {
|
||||
# VS2015, vc141
|
||||
} else:equals(aMsvcVer, 16.0){
|
||||
# VS2019, vc142
|
||||
} else:equals(aMsvcVer, 17.0){
|
||||
# VS2022, vc143
|
||||
} else {
|
||||
warning (Unknown msvc version. "$$MY_COMPILER" is used)
|
||||
}
|
||||
|
@@ -23,6 +23,8 @@ if "%VCVER%" == "vc8" (
|
||||
call "%VS141COMNTOOLS%/vsvars32.bat" > nul
|
||||
) else if "%VCVER%" == "vc142" (
|
||||
call "%VS142COMNTOOLS%/vsvars32.bat" > nul
|
||||
) else if "%VCVER%" == "vc143" (
|
||||
call "%VS143COMNTOOLS%/vsvars32.bat" > nul
|
||||
) else (
|
||||
echo Error: wrong VS identifier
|
||||
exit /B
|
||||
|
@@ -74,6 +74,10 @@ if not "%DevEnvDir%" == "" (
|
||||
for /f "usebackq delims=" %%i in (`vswhere.exe -version "[16.0,16.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
|
||||
set "DevEnvDir=%%i\Common7\IDE\"
|
||||
)
|
||||
) else if /I "%VCFMT%" == "vc143" (
|
||||
for /f "usebackq delims=" %%i in (`vswhere.exe -version "[17.0,17.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
|
||||
set "DevEnvDir=%%i\Common7\IDE\"
|
||||
)
|
||||
) else if /I "%VCFMT%" == "gcc" (
|
||||
rem MinGW
|
||||
) else (
|
||||
@@ -107,6 +111,11 @@ if /I "%VCFMT%" == "vc9" (
|
||||
set "VCVARS=%%i\VC\Auxiliary\Build\vcvarsall.bat"
|
||||
)
|
||||
set "VCPlatformToolSet=v142"
|
||||
) else if /I "%VCFMT%" == "vc143" (
|
||||
for /f "usebackq delims=" %%i in (`vswhere.exe -version "[17.0,17.99]" -latest -requires Microsoft.VisualStudio.Workload.%VCPROP% -property installationPath`) do (
|
||||
set "VCVARS=%%i\VC\Auxiliary\Build\vcvarsall.bat"
|
||||
)
|
||||
set "VCPlatformToolSet=v142"
|
||||
) else if /I "%VCFMT%" == "gcc" (
|
||||
rem MinGW
|
||||
) else (
|
||||
@@ -126,6 +135,7 @@ if ["%ARCH%"] == ["64"] set VCARCH=amd64
|
||||
|
||||
if /I ["%1"] == ["vc141"] set "VCVER=vc14"
|
||||
if /I ["%1"] == ["vc142"] set "VCVER=vc14"
|
||||
if /I ["%1"] == ["vc143"] set "VCVER=vc14"
|
||||
|
||||
if exist "%CASROOT%\custom.bat" (
|
||||
call "%CASROOT%\custom.bat" %VCVER% %ARCH% %CASDEB%
|
||||
|
@@ -7,6 +7,7 @@ if exist "%~dp0custom.bat" (
|
||||
call "@INSTALL_DIR_ABSOLUTE@\@INSTALL_DIR_SCRIPT@\env.bat" %1 %2 %3
|
||||
if /I ["%1"] == ["vc141"] set "VCVER=vc141"
|
||||
if /I ["%1"] == ["vc142"] set "VCVER=vc142"
|
||||
if /I ["%1"] == ["vc143"] set "VCVER=vc143"
|
||||
set "BIN_DIR=win%ARCH%\%VCVER%\bind"
|
||||
set "LIB_DIR=win%ARCH%\%VCVER%\libd"
|
||||
|
||||
|
@@ -23,6 +23,8 @@ if "%VCVER%" == "vc8" (
|
||||
call "%VS141COMNTOOLS%/vsvars32.bat" > nul
|
||||
) else if "%VCVER%" == "vc142" (
|
||||
call "%VS142COMNTOOLS%/vsvars32.bat" > nul
|
||||
) else if "%VCVER%" == "vc143" (
|
||||
call "%VS143COMNTOOLS%/vsvars32.bat" > nul
|
||||
) else (
|
||||
echo Error: wrong VS identifier
|
||||
exit /B
|
||||
|
@@ -324,6 +324,7 @@ The environment is defined in the file *custom.sh* (on Linux and macOS) or *cust
|
||||
| vc141-uwp | 2017 (15) | UWP (Universal Windows Platform) | vc14-uwp |
|
||||
| vc142 | 2019 (16) | Desktop (Windows API) | vc14 |
|
||||
| vc142-uwp | 2019 (16) | UWP (Universal Windows Platform) | vc14-uwp |
|
||||
| vc143 | 2022 (17) | Desktop (Windows API) | vc14 |
|
||||
|
||||
Alternatively, you can launch **genconf**, a GUI tool allowing to configure build options interactively.
|
||||
That tool will analyze your environment and propose you to choose available options:
|
||||
|
@@ -462,7 +462,7 @@ To run any Open CASCADE Technology application you need to set the environment v
|
||||
|
||||
You can define the environment variables with env.bat script located in the
|
||||
$CASROOT folder. This script accepts two arguments to be used:
|
||||
the version of Visual Studio (vc12 -- vc142) and the architecture (win32 or win64).
|
||||
the version of Visual Studio (vc12 -- vc143) and the architecture (win32 or win64).
|
||||
|
||||
The additional environment settings necessary for compiling OCCT libraries and samples
|
||||
by Microsoft Visual Studio can be set using script custom.bat located in the same folder.
|
||||
|
@@ -94,6 +94,7 @@ The types of STEP representation entities that are recognized are:
|
||||
* geometrically_bounded_wireframe_shape_representation
|
||||
* geometrically_bounded_surface_shape_representation
|
||||
* hybrid representations (shape_representation containing models of different type)
|
||||
* tessellated_shape_representation
|
||||
|
||||
@subsubsection occt_step_2_2_3 Topological entities
|
||||
The types of STEP topological entities that can be translated are:
|
||||
@@ -112,6 +113,7 @@ The types of STEP geometrical entities that can be translated are:
|
||||
* directions
|
||||
* curves
|
||||
* surfaces
|
||||
* triangulations
|
||||
|
||||
For further information see 2.4 Mapping STEP entities to Open CASCADE Technology shapes.
|
||||
|
||||
@@ -337,7 +339,7 @@ Specifies preferred type of representation of the shape of the product, in case
|
||||
* 4 (GBSSR) -- Prefer GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION
|
||||
* 5 (FBSR) -- Prefer FACETTED_BREP_SHAPE_REPRESENTATION
|
||||
* 6 (EBWSR) -- Prefer EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION
|
||||
* 7 (GBWSR) -- Prefer GEOMETRICALLY_BOUNDED_WIREFRAME _SHAPE_REPRESENTATION
|
||||
* 7 (GBWSR) -- Prefer GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION
|
||||
|
||||
When this option is not equal to 1, for products with multiple representations the representation having a type closest to the selected one in this list will be translated.
|
||||
|
||||
@@ -447,6 +449,34 @@ of for each of the two "AXIS2_PLACEMENT_3D" entities referenced by it. as follow
|
||||
}
|
||||
~~~~
|
||||
|
||||
<h4>read.step.tessellated:</h4>
|
||||
|
||||
Boolean flag regulating translation of entities that define tessellated geometry:
|
||||
|
||||
* TESSELLATED_SHAPE_REPRESENTATION
|
||||
* TESSELLATED_SHELL
|
||||
* TESSELLATED_SOLID
|
||||
* TRIANGULATED_FACE
|
||||
* COMPLEX_TRIANGULATED_FACE
|
||||
|
||||
Tesselated geometry is attached to shapes as objects of <i>Poly_Triangulation</i> type using STEP links.
|
||||
|
||||
* 0 (Off) -- do not translate
|
||||
* 1 (On) -- translate
|
||||
* 2 (OnNoBRep) - tessellation is read only for entities for which there is no BRep representation
|
||||
|
||||
Read this parameter with:
|
||||
~~~~{.cpp}
|
||||
Standard_Integer ic = Interface_Static::IVal("read.step.tessellated");
|
||||
~~~~
|
||||
|
||||
Modify this parameter with:
|
||||
~~~~{.cpp}
|
||||
if(!Interface_Static::SetIVal("read.step.tessellated",1))
|
||||
.. error ..
|
||||
~~~~
|
||||
Default value is 0 (On).
|
||||
|
||||
@subsubsection occt_step_2_3_4 Performing the STEP file translation
|
||||
|
||||
Perform the translation according to what you want to translate. You can choose either root entities (all or selected by the number of root), or select any entity by its number in the STEP file. There is a limited set of types of entities that can be used as starting entities for translation. Only the following entities are recognized as transferable:
|
||||
@@ -464,6 +494,11 @@ Perform the translation according to what you want to translate. You can choose
|
||||
* subtypes of face_surface (including advanced_face)
|
||||
* subtypes of shape_representation_relationship
|
||||
* context_dependent_shape_representation
|
||||
* tessellated_shape_representation
|
||||
* tessellated_shell
|
||||
* tessellated_solid
|
||||
* triangulated_face
|
||||
* complex_triangulated_face
|
||||
|
||||
The following methods are used for translation:
|
||||
|
||||
@@ -683,6 +718,10 @@ Not all entities defining the assembly structure in the STEP file are translated
|
||||
| | quasi_uniform_surface | Geom_BSplineSurface | |
|
||||
| | rectangular_composite_surface | TopoDS_Compound | Contains *TopoDS_Faces* |
|
||||
| | curve_bounded_surface | TopoDS_Face | |
|
||||
| Tessellations | tessellated_shell | TopoDS_Shell | |
|
||||
| | tessellated_solid | TopoDS_Solid | |
|
||||
| | triangulated_face | TopoDS_Face | Contains *Poly_Triangulation* |
|
||||
| | complex_triangulated_face | TopoDS_Face | Contains *Poly_Triangulation* |
|
||||
|
||||
|
||||
@subsection occt_step_2_5 Tolerance management
|
||||
@@ -745,6 +784,7 @@ The following default tolerances are used when creating shapes and how they are
|
||||
* *StepToTopoDS_TranslatePolyLoop* constructs *TopoDS_Edges* in *TopoDS_Wire* with help of class *StepToTopoDS_TranslateEdge*. Their tolerances are not modified inside this method.
|
||||
* *StepToTopoDS_TranslateFace* constructs *TopoDS_Face* with the initial value of tolerance. *TopoDS_Wire* on *TopoDS_Face* is constructed with the help of classes *StepToTopoDS_TranslatePolyLoop, StepToTopoDS_TranslateEdgeLoop* or *StepToTopoDS_TranslateVertexLoop*.
|
||||
* *StepToTopoDS_TranslateShell* calls *StepToTopoDS_TranslateFace::Init* for each face. This class does not modify the tolerance value.
|
||||
* *StepToTopoDS_TranslateSolid* calls *StepToTopoDS_TranslateFace::Init* for each face. This class does not modify the tolerance value.
|
||||
* *StepToTopoDS_TranslateCompositeCurve* constructs *TopoDS_Edges* in *TopoDS_Wire* with help of class *BRepAPI_MakeEdge* and have a tolerance 10-7. Pcurves from a STEP file are translated if they are present and if *read.surfacecurve.mode* is not -3. The connection between segments of a composite curve (edges in the wire) is provided by calling method *ShapeFix_Wire::FixConnected()\** with a precision equal to the initial value of tolerance.
|
||||
* *StepToTopoDS_TranslateCurveBoundedSurface* constructs *TopoDS_Face* with tolerance *Precision::Confusion()*. *TopoDS_Wire* on *TopoDS_Face* is constructed with the help of class *StepToTopoDS_TranslateCompositeCurve*. Missing pcurves are computed using projection algorithm with the help of method *ShapeFix_Face::FixPcurves()*. For resulting face method *ShapeFix::SameParameter()* is called. It calls standard *BRepLib::SameParameter* for each edge in each wire, which can either increase or decrease the tolerances of the edges and vertices. *SameParameter* writes the tolerance corresponding to the real deviation of pcurves from 3D curve which can be less or greater than the tolerance in a STEP file.
|
||||
* *StepToTopoDS_Builder* a high level class. Its methods perform translation with the help of the classes listed above. If the value of *read.maxprecision.mode* is set to 1 then the tolerance of subshapes of the resulting shape is limited by 0 and *read.maxprecision.val*. Else this class does not change the tolerance value.
|
||||
@@ -971,6 +1011,34 @@ if(!Interface_Static::SetIVal("write.step.vertex.mode",1))
|
||||
~~~~
|
||||
Default value is 0.
|
||||
|
||||
<h4>write.step.tessellated:</h4>
|
||||
|
||||
Boolean flag regulating writing of entities that define tessellated geometry:
|
||||
|
||||
* TESSELLATED_SHAPE_REPRESENTATION
|
||||
* TESSELLATED_SHELL
|
||||
* TESSELLATED_SOLID
|
||||
* TRIANGULATED_FACE
|
||||
|
||||
Tesselated geometry is taken as objects of <i>Poly_Triangulation type</i> from the active <i>TopoDS_Face</i> triangulation.
|
||||
|
||||
* 0 (Off) -- do not write
|
||||
* 1 (On) -- write
|
||||
* 2 (OnNoBRep) - tessellation is written only for entities for which there is no BRep representation
|
||||
|
||||
Read this parameter with:
|
||||
~~~~{.cpp}
|
||||
Standard_Integer ic = Interface_Static::IVal("write.step.tessellated");
|
||||
~~~~
|
||||
|
||||
Modify this parameter with:
|
||||
~~~~{.cpp}
|
||||
if(!Interface_Static::SetIVal("write.step.tessellated",1))
|
||||
.. error ..
|
||||
~~~~
|
||||
|
||||
Default value is 2 (OnNoBep).
|
||||
|
||||
@subsubsection occt_step_3_3_3 Performing the Open CASCADE Technology shape translation
|
||||
An OCCT shape can be translated to STEP using one of the following models (shape_representations):
|
||||
* manifold_solid_brep (advanced_brep_shape_representation)
|
||||
@@ -1094,6 +1162,7 @@ The table below describes STEP entities, which are created when the assembly str
|
||||
| | Geom_ToroidalSurface | toroidal_surface or degenerate_toroidal_surface | *degenerate_toroidal_surface* is produced if the minor radius is greater then the major one |
|
||||
| | Geom_BezierSurface | b_spline_surface_with_knots | |
|
||||
| | Geom_BsplineSurface | b_spline_surface_with_knots or rational_b_spline_surface | *rational_b_spline_surface* is produced if *Geom_BSplineSurface* is a rational Bspline |
|
||||
| Triangulations | Poly_Triangulation | *triangulated_face* is produced for face active triangulation | |
|
||||
|
||||
|
||||
@subsection occt_step_3_5 Tolerance management
|
||||
|
@@ -7,6 +7,7 @@ if exist "%~dp0custom.bat" (
|
||||
call "%CASROOT%\env.bat" %1 %2 %3
|
||||
if /I ["%1"] == ["vc141"] set "VCVER=vc141"
|
||||
if /I ["%1"] == ["vc142"] set "VCVER=vc142"
|
||||
if /I ["%1"] == ["vc143"] set "VCVER=vc143"
|
||||
set "BIN_DIR=win%ARCH%\%VCVER%\bind"
|
||||
set "LIB_DIR=win%ARCH%\%VCVER%\libd"
|
||||
|
||||
|
@@ -362,7 +362,7 @@ void AIS_InteractiveContext::ObjectsForView (AIS_ListOfInteractive& theListOfIO
|
||||
continue;
|
||||
}
|
||||
|
||||
Handle(Graphic3d_ViewAffinity) anAffinity = myMainVwr->StructureManager()->ObjectAffinity (anObjIter.Key());
|
||||
Handle(Graphic3d_ViewAffinity) anAffinity = anObjIter.Key()->ViewAffinity();
|
||||
const Standard_Boolean isVisible = anAffinity->IsVisible (aViewId);
|
||||
if (isVisible == theIsVisibleInView)
|
||||
{
|
||||
@@ -402,17 +402,9 @@ void AIS_InteractiveContext::SetViewAffinity (const Handle(AIS_InteractiveObject
|
||||
return;
|
||||
}
|
||||
|
||||
Handle(Graphic3d_ViewAffinity) anAffinity = myMainVwr->StructureManager()->ObjectAffinity (theIObj);
|
||||
Handle(Graphic3d_ViewAffinity) anAffinity = theIObj->ViewAffinity();
|
||||
Handle(Graphic3d_CView) aViewImpl = theView->View();
|
||||
anAffinity->SetVisible (aViewImpl->Identification(), theIsVisible == Standard_True);
|
||||
if (theIsVisible)
|
||||
{
|
||||
theView->View()->ChangeHiddenObjects()->Remove (theIObj.get());
|
||||
}
|
||||
else
|
||||
{
|
||||
theView->View()->ChangeHiddenObjects()->Add (theIObj.get());
|
||||
}
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
@@ -445,7 +437,8 @@ void AIS_InteractiveContext::Display (const Handle(AIS_InteractiveObject)& theIO
|
||||
if (!myObjects.IsBound (theIObj))
|
||||
{
|
||||
setObjectStatus (theIObj, PrsMgr_DisplayStatus_Displayed, theDispMode, theSelectionMode);
|
||||
myMainVwr->StructureManager()->RegisterObject (theIObj);
|
||||
theIObj->ViewAffinity()->SetVisible (true); // reset view affinity mask
|
||||
myMainVwr->StructureManager()->RegisterObject (theIObj, theIObj->ViewAffinity());
|
||||
myMainPM->Display(theIObj, theDispMode);
|
||||
if (theSelectionMode != -1)
|
||||
{
|
||||
@@ -521,7 +514,8 @@ void AIS_InteractiveContext::Load (const Handle(AIS_InteractiveObject)& theIObj,
|
||||
Standard_Integer aDispMode, aHiMod, aSelModeDef;
|
||||
GetDefModes (theIObj, aDispMode, aHiMod, aSelModeDef);
|
||||
setObjectStatus (theIObj, PrsMgr_DisplayStatus_Erased, aDispMode, theSelMode != -1 ? theSelMode : aSelModeDef);
|
||||
myMainVwr->StructureManager()->RegisterObject (theIObj);
|
||||
theIObj->ViewAffinity()->SetVisible (true); // reset view affinity mask
|
||||
myMainVwr->StructureManager()->RegisterObject (theIObj, theIObj->ViewAffinity());
|
||||
}
|
||||
|
||||
// Register theIObj in the selection manager to prepare further activation of selection
|
||||
@@ -1900,13 +1894,9 @@ void AIS_InteractiveContext::ClearGlobal (const Handle(AIS_InteractiveObject)& t
|
||||
mgrSelector->Remove (anObj);
|
||||
|
||||
setObjectStatus (theIObj, PrsMgr_DisplayStatus_None, -1, -1);
|
||||
theIObj->ViewAffinity()->SetVisible (true); // reset view affinity mask
|
||||
myMainVwr->StructureManager()->UnregisterObject (theIObj);
|
||||
|
||||
for (V3d_ListOfViewIterator aDefViewIter (myMainVwr->DefinedViewIterator()); aDefViewIter.More(); aDefViewIter.Next())
|
||||
{
|
||||
aDefViewIter.Value()->View()->ChangeHiddenObjects()->Remove (theIObj.get());
|
||||
}
|
||||
|
||||
if (!myLastPicked.IsNull())
|
||||
{
|
||||
if (myLastPicked->IsSameSelectable (theIObj))
|
||||
@@ -2214,10 +2204,11 @@ void AIS_InteractiveContext::FitSelected (const Handle(V3d_View)& theView)
|
||||
//function : BoundingBoxOfSelection
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Bnd_Box AIS_InteractiveContext::BoundingBoxOfSelection() const
|
||||
Bnd_Box AIS_InteractiveContext::BoundingBoxOfSelection (const Handle(V3d_View)& theView) const
|
||||
{
|
||||
Bnd_Box aBndSelected;
|
||||
AIS_MapOfObjectOwners anObjectOwnerMap;
|
||||
const Standard_Integer aViewId = !theView.IsNull() ? theView->View()->Identification() : -1;
|
||||
for (AIS_NListOfEntityOwner::Iterator aSelIter (mySelection->Objects()); aSelIter.More(); aSelIter.Next())
|
||||
{
|
||||
const Handle(SelectMgr_EntityOwner)& anOwner = aSelIter.Value();
|
||||
@@ -2227,6 +2218,13 @@ Bnd_Box AIS_InteractiveContext::BoundingBoxOfSelection() const
|
||||
continue;
|
||||
}
|
||||
|
||||
Handle(Graphic3d_ViewAffinity) anAffinity = anObj->ViewAffinity();
|
||||
const Standard_Boolean isVisible = aViewId == -1 || anAffinity->IsVisible (aViewId);
|
||||
if (!isVisible)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (anOwner == anObj->GlobalSelOwner())
|
||||
{
|
||||
Bnd_Box aTmpBnd;
|
||||
@@ -2264,7 +2262,7 @@ void AIS_InteractiveContext::FitSelected (const Handle(V3d_View)& theView,
|
||||
const Standard_Real theMargin,
|
||||
const Standard_Boolean theToUpdate)
|
||||
{
|
||||
Bnd_Box aBndSelected = BoundingBoxOfSelection();
|
||||
Bnd_Box aBndSelected = BoundingBoxOfSelection (theView);
|
||||
if (!aBndSelected.IsVoid())
|
||||
{
|
||||
theView->FitAll (aBndSelected, theMargin, theToUpdate);
|
||||
@@ -2674,12 +2672,10 @@ AIS_StatusOfDetection AIS_InteractiveContext::moveTo (const Handle(V3d_View)& th
|
||||
myDetectedSeq.Clear();
|
||||
myLastActiveView = theView.get();
|
||||
|
||||
// preliminaires
|
||||
// preliminaries
|
||||
AIS_StatusOfDetection aStatus = AIS_SOD_Nothing;
|
||||
Standard_Boolean toUpdateViewer = Standard_False;
|
||||
|
||||
myFilters->SetDisabledObjects (theView->View()->HiddenObjects());
|
||||
|
||||
// filling of myAISDetectedSeq sequence storing information about detected AIS objects
|
||||
// (the objects must be AIS_Shapes)
|
||||
const Standard_Integer aDetectedNb = MainSelector()->NbPicked();
|
||||
|
@@ -502,7 +502,10 @@ public: //! @name Selection management
|
||||
Standard_EXPORT AIS_StatusOfPick SelectDetected (const AIS_SelectionScheme theSelScheme = AIS_SelectionScheme_Replace);
|
||||
|
||||
//! Returns bounding box of selected objects.
|
||||
Standard_EXPORT Bnd_Box BoundingBoxOfSelection() const;
|
||||
Standard_EXPORT Bnd_Box BoundingBoxOfSelection (const Handle(V3d_View)& theView) const;
|
||||
|
||||
Standard_DEPRECATED ("BoundingBoxOfSelection() should be called with View argument")
|
||||
Bnd_Box BoundingBoxOfSelection() const { return BoundingBoxOfSelection (Handle(V3d_View)()); }
|
||||
|
||||
//! Sets list of owner selected/deselected using specified selection scheme.
|
||||
//! @param theOwners owners to change selection state
|
||||
|
@@ -1071,7 +1071,7 @@ void AIS_Manipulator::HilightOwnerWithColor (const Handle(PrsMgr_PresentationMan
|
||||
return;
|
||||
}
|
||||
|
||||
aPresentation->CStructure()->ViewAffinity = thePM->StructureManager()->ObjectAffinity (Handle(Standard_Transient) (this));
|
||||
aPresentation->CStructure()->ViewAffinity = myViewAffinity;
|
||||
|
||||
if (anOwner->Mode() == AIS_MM_TranslationPlane)
|
||||
{
|
||||
|
@@ -1969,7 +1969,7 @@ gp_Pnt AIS_ViewController::GravityPoint (const Handle(AIS_InteractiveContext)& t
|
||||
void AIS_ViewController::FitAllAuto (const Handle(AIS_InteractiveContext)& theCtx,
|
||||
const Handle(V3d_View)& theView)
|
||||
{
|
||||
const Bnd_Box aBoxSel = theCtx->BoundingBoxOfSelection();
|
||||
const Bnd_Box aBoxSel = theCtx->BoundingBoxOfSelection (theView);
|
||||
const double aFitMargin = 0.01;
|
||||
if (aBoxSel.IsVoid())
|
||||
{
|
||||
|
@@ -859,7 +859,7 @@ Standard_Boolean AIS_ViewCube::HasAnimation() const
|
||||
void AIS_ViewCube::viewFitAll (const Handle(V3d_View)& theView,
|
||||
const Handle(Graphic3d_Camera)& theCamera)
|
||||
{
|
||||
Bnd_Box aBndBox = myToFitSelected ? GetContext()->BoundingBoxOfSelection() : theView->View()->MinMaxValues();
|
||||
Bnd_Box aBndBox = myToFitSelected ? GetContext()->BoundingBoxOfSelection (theView) : theView->View()->MinMaxValues();
|
||||
if (aBndBox.IsVoid()
|
||||
&& myToFitSelected)
|
||||
{
|
||||
@@ -1016,7 +1016,7 @@ void AIS_ViewCube::HilightOwnerWithColor (const Handle(PrsMgr_PresentationManage
|
||||
|
||||
Handle(Prs3d_Presentation) aHiPrs = GetHilightPresentation (thePrsMgr);
|
||||
aHiPrs->Clear();
|
||||
aHiPrs->CStructure()->ViewAffinity = thePrsMgr->StructureManager()->ObjectAffinity (Handle(Standard_Transient)(this));
|
||||
aHiPrs->CStructure()->ViewAffinity = myViewAffinity;
|
||||
aHiPrs->SetTransformPersistence (TransformPersistence());
|
||||
aHiPrs->SetZLayer (aLayer);
|
||||
|
||||
|
@@ -526,6 +526,8 @@ void Approx_SameParameter::Build(const Standard_Real Tolerance)
|
||||
}
|
||||
myDone = Standard_True;
|
||||
}
|
||||
|
||||
myCurveOnSurface = Handle(Adaptor3d_CurveOnSurface)::DownCast(aData.myCOnS.ShallowCopy());
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
|
@@ -81,6 +81,21 @@ public:
|
||||
return myCurve2d;
|
||||
}
|
||||
|
||||
//! Returns the 3D curve that has the same parameter as
|
||||
//! the 3D curve once evaluated on the surface up to the
|
||||
//! specified tolerance.
|
||||
Handle(Adaptor3d_Curve) Curve3d() const
|
||||
{
|
||||
return myC3d;
|
||||
}
|
||||
|
||||
//! Returns the 3D curve on surface that has the same parameter as
|
||||
//! the 3D curve up to the specified tolerance.
|
||||
Handle(Adaptor3d_CurveOnSurface) CurveOnSurface() const
|
||||
{
|
||||
return myCurveOnSurface;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
//! Internal data structure to unify access to the most actively used data.
|
||||
@@ -176,6 +191,7 @@ private:
|
||||
Handle(Adaptor2d_Curve2d) myHCurve2d;
|
||||
Handle(Adaptor3d_Curve) myC3d;
|
||||
Handle(Adaptor3d_Surface) mySurf;
|
||||
Handle(Adaptor3d_CurveOnSurface) myCurveOnSurface;
|
||||
};
|
||||
|
||||
#endif // _Approx_SameParameter_HeaderFile
|
||||
|
@@ -31,13 +31,11 @@
|
||||
#include <BRepCheck_ListOfStatus.hxx>
|
||||
#include <BRepCheck_Wire.hxx>
|
||||
#include <BRepTools_WireExplorer.hxx>
|
||||
#include <BRepTools.hxx>
|
||||
#include <ElCLib.hxx>
|
||||
#include <Geom2d_Curve.hxx>
|
||||
#include <Geom2dAdaptor_Curve.hxx>
|
||||
#include <Geom2dInt_GInter.hxx>
|
||||
#include <Geom_Curve.hxx>
|
||||
#include <Geom_RectangularTrimmedSurface.hxx>
|
||||
#include <gp_Lin.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
@@ -116,11 +114,6 @@ static Standard_Boolean GetPnt2d(const TopoDS_Vertex &theVertex,
|
||||
const TopoDS_Edge &theEdge,
|
||||
const TopoDS_Face &theFace,
|
||||
gp_Pnt2d &aPnt);
|
||||
|
||||
static void DefinePeriods(const TopoDS_Face& theFace,
|
||||
Standard_Real& theUperiod,
|
||||
Standard_Real& theVperiod);
|
||||
|
||||
// Modified by Sergey KHROMOV - Wed May 22 10:44:08 2002 End
|
||||
|
||||
//=======================================================================
|
||||
@@ -426,24 +419,12 @@ Standard_Boolean IsDistanceIn2DTolerance (const BRepAdaptor_Surface& aFaceSurfac
|
||||
const gp_Pnt2d& thePnt,
|
||||
const gp_Pnt2d& thePntRef,
|
||||
const Standard_Real aTol3d,
|
||||
const Standard_Boolean theIsOnSingularity,
|
||||
#ifdef OCCT_DEBUG
|
||||
const Standard_Boolean PrintWarnings = Standard_True)
|
||||
#else
|
||||
const Standard_Boolean = Standard_True)
|
||||
#endif
|
||||
{
|
||||
gp_Pnt aP;
|
||||
gp_Vec aDU, aDV;
|
||||
Standard_Real um = (thePnt.X() + thePntRef.X()) / 2.;
|
||||
Standard_Real vm = (thePnt.Y() + thePntRef.Y()) / 2.;
|
||||
aFaceSurface.D1(um, vm, aP, aDU, aDV);
|
||||
Standard_Real aMDU = aDU.Magnitude();
|
||||
Standard_Real aMDV = aDV.Magnitude();
|
||||
if (!theIsOnSingularity ||
|
||||
(aMDU > Precision::Confusion() && aMDV > Precision::Confusion()))
|
||||
return Standard_True; //we are not in singularity
|
||||
|
||||
Standard_Real dumax = 0.01 * (aFaceSurface.LastUParameter() - aFaceSurface.FirstUParameter());
|
||||
Standard_Real dvmax = 0.01 * (aFaceSurface.LastVParameter() - aFaceSurface.FirstVParameter());
|
||||
Standard_Real dumin = Abs(thePnt.X() - thePntRef.X());
|
||||
@@ -472,17 +453,17 @@ Standard_Boolean IsDistanceIn2DTolerance (const BRepAdaptor_Surface& aFaceSurfac
|
||||
#endif
|
||||
dumax = aFaceSurface.UResolution(aTol3d);
|
||||
dvmax = aFaceSurface.VResolution(aTol3d);
|
||||
//gp_Pnt aP;
|
||||
//gp_Vec aDU, aDV;
|
||||
//Standard_Real um = (thePnt.X() + thePntRef.X()) / 2.;
|
||||
//Standard_Real vm = (thePnt.Y() + thePntRef.Y()) / 2.;
|
||||
//aFaceSurface.D1(um, vm, aP, aDU, aDV);
|
||||
//Standard_Real aMDU = aDU.Magnitude();
|
||||
gp_Pnt aP;
|
||||
gp_Vec aDU, aDV;
|
||||
Standard_Real um = (thePnt.X() + thePntRef.X()) / 2.;
|
||||
Standard_Real vm = (thePnt.Y() + thePntRef.Y()) / 2.;
|
||||
aFaceSurface.D1(um, vm, aP, aDU, aDV);
|
||||
Standard_Real aMDU = aDU.Magnitude();
|
||||
if (aMDU > Precision::Confusion())
|
||||
{
|
||||
dumax = Max((aTol3d / aMDU), dumax);
|
||||
}
|
||||
//Standard_Real aMDV = aDV.Magnitude();
|
||||
Standard_Real aMDV = aDV.Magnitude();
|
||||
if (aMDV > Precision::Confusion())
|
||||
{
|
||||
dvmax = Max((aTol3d / aMDV), dvmax);
|
||||
@@ -695,14 +676,7 @@ BRepCheck_Status BRepCheck_Wire::Closed2d(const TopoDS_Face& theFace,
|
||||
gp_Pnt aPntRef = BRep_Tool::Pnt(aFirstVertex);
|
||||
gp_Pnt aPnt = BRep_Tool::Pnt(aWireExp.CurrentVertex());
|
||||
|
||||
Standard_Real aUperiod = 0., aVperiod = 0.;
|
||||
DefinePeriods (theFace, aUperiod, aVperiod);
|
||||
|
||||
if ((aUperiod != 0. && Abs(aP_first.X() - aP_last.X()) > aUperiod/2) ||
|
||||
(aVperiod != 0. && Abs(aP_first.Y() - aP_last.Y()) > aVperiod/2))
|
||||
aClosedStat = BRepCheck_NotClosed;
|
||||
|
||||
if (!(IsDistanceIn2DTolerance(aFaceSurface, aP_first, aP_last, aTol3d, Standard_True)))
|
||||
if (!(IsDistanceIn2DTolerance(aFaceSurface, aP_first, aP_last, aTol3d)))
|
||||
aClosedStat = BRepCheck_NotClosed;
|
||||
|
||||
if(!IsDistanceIn3DTolerance(aPntRef, aPnt, aTol3d))
|
||||
@@ -1736,24 +1710,10 @@ void ChoixUV(const TopoDS_Vertex& theVertex,
|
||||
if (aVOrientation != anEdgOrientation)
|
||||
aDerRef.Reverse();
|
||||
|
||||
//Check if there is a seam edge in the list
|
||||
Standard_Real aUperiod = 0., aVperiod = 0.;
|
||||
DefinePeriods (theFace, aUperiod, aVperiod);
|
||||
Standard_Boolean anIsOnSingularity = Standard_False;
|
||||
for (It.Initialize(theLOfShape); It.More(); It.Next())
|
||||
{
|
||||
TopoDS_Edge anEdge = TopoDS::Edge (It.Value());
|
||||
if (BRep_Tool::Degenerated (anEdge))
|
||||
{
|
||||
anIsOnSingularity = Standard_True;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
It.Initialize(theLOfShape);
|
||||
|
||||
for (; It.More(); It.Next())
|
||||
{
|
||||
{
|
||||
anIndex++;
|
||||
const TopoDS_Edge& anE=TopoDS::Edge(It.Value());
|
||||
C2d = BRep_Tool::CurveOnSurface(anE, theFace, aFirstParam, aLastParam);
|
||||
@@ -1764,11 +1724,7 @@ void ChoixUV(const TopoDS_Vertex& theVertex,
|
||||
aParam =(aVOrientation != anE.Orientation()) ? aFirstParam : aLastParam;
|
||||
aPnt = aCA.Value(aParam);
|
||||
|
||||
if ((aUperiod != 0. && Abs(aPnt.X() - aPntRef.X()) > aUperiod/2) ||
|
||||
(aVperiod != 0. && Abs(aPnt.Y() - aPntRef.Y()) > aVperiod/2))
|
||||
continue;
|
||||
|
||||
if(!IsDistanceIn2DTolerance(aFaceSurface, aPnt, aPntRef, aTol3d, anIsOnSingularity, Standard_False))
|
||||
if(!IsDistanceIn2DTolerance(aFaceSurface, aPnt, aPntRef, aTol3d, Standard_False))
|
||||
continue;
|
||||
|
||||
CurveDirForParameter(aCA, aParam, aPnt, aDer);
|
||||
@@ -1787,22 +1743,22 @@ void ChoixUV(const TopoDS_Vertex& theVertex,
|
||||
anAngle += 2.*M_PI;
|
||||
|
||||
if ( theFace.Orientation() == TopAbs_FORWARD )
|
||||
{
|
||||
if ( anAngle < aMinAngle )
|
||||
{
|
||||
if ( anAngle < aMinAngle )
|
||||
{
|
||||
anIndMin = anIndex;
|
||||
aMinAngle = anAngle;
|
||||
}
|
||||
}
|
||||
}
|
||||
else //theFace.Orientation() != TopAbs_FORWARD
|
||||
{
|
||||
if ( anAngle > aMaxAngle )
|
||||
{
|
||||
if ( anAngle > aMaxAngle )
|
||||
{
|
||||
anIndMin = anIndex;
|
||||
aMaxAngle = anAngle;
|
||||
}
|
||||
}
|
||||
}
|
||||
}//end of for
|
||||
}//end of for
|
||||
|
||||
// Update edge
|
||||
if (anIndMin == 0)
|
||||
@@ -1814,7 +1770,7 @@ void ChoixUV(const TopoDS_Vertex& theVertex,
|
||||
if(anEFound.IsNull() || BRep_Tool::Degenerated(theEdge) ||
|
||||
BRep_Tool::Degenerated(anEFound))
|
||||
IsFound = Standard_False; //bad
|
||||
else if (!IsDistanceIn2DTolerance(aFaceSurface, aPnt, aPntRef, aTol3d, Standard_True))
|
||||
else if (!IsDistanceIn2DTolerance(aFaceSurface, aPnt, aPntRef, aTol3d))
|
||||
IsFound = Standard_False; //bad
|
||||
else
|
||||
// clousureness in 3D
|
||||
@@ -2003,20 +1959,3 @@ static Standard_Boolean IsClosed2dForPeriodicFace
|
||||
return Standard_True;
|
||||
}
|
||||
// Modified by Sergey KHROMOV - Thu Jun 20 10:58:05 2002 End
|
||||
|
||||
void DefinePeriods(const TopoDS_Face& theFace,
|
||||
Standard_Real& theUperiod,
|
||||
Standard_Real& theVperiod)
|
||||
{
|
||||
theUperiod = theVperiod = 0.;
|
||||
|
||||
Handle(Geom_Surface) aSurf = BRep_Tool::Surface (theFace);
|
||||
if (aSurf->IsKind(STANDARD_TYPE(Geom_RectangularTrimmedSurface)))
|
||||
aSurf = (Handle(Geom_RectangularTrimmedSurface)::DownCast(aSurf))->BasisSurface();
|
||||
Standard_Real aUmin, aUmax, aVmin, aVmax;
|
||||
aSurf->Bounds (aUmin, aUmax, aVmin, aVmax);
|
||||
if (aSurf->IsUClosed())
|
||||
theUperiod = aUmax - aUmin;
|
||||
if (aSurf->IsVClosed())
|
||||
theVperiod = aVmax - aVmin;
|
||||
}
|
||||
|
@@ -81,7 +81,7 @@ void BRepExtrema_ExtCF::Perform(const TopoDS_Edge& E, const TopoDS_Face& F2)
|
||||
|
||||
BRepAdaptor_Curve Curv(E);
|
||||
Handle(BRepAdaptor_Curve) HC = new BRepAdaptor_Curve(Curv);
|
||||
myExtCS.Perform(HC->Curve(), U1, U2);
|
||||
myExtCS.Perform(*HC, U1, U2);
|
||||
|
||||
if(!myExtCS.IsDone())
|
||||
return;
|
||||
|
@@ -987,8 +987,8 @@ Standard_Integer SensOfPrism(const Handle(Geom_Curve) C,
|
||||
ASI1.Perform(scur);
|
||||
Standard_Integer sens = 1;
|
||||
if(ASI1.IsDone() && ASI1.NbPoints(1) >= 1) {
|
||||
if(ASI1.Point(1, 1).Parameter() < 0. &&
|
||||
ASI1.Point(1, ASI1.NbPoints(1)).Parameter() < 0.) {
|
||||
if(ASI1.Point(1, 1).Parameter() + Precision::Confusion() < 0. &&
|
||||
ASI1.Point(1, ASI1.NbPoints(1)).Parameter() + Precision::Confusion() < 0.) {
|
||||
sens = -1;
|
||||
}
|
||||
}
|
||||
|
@@ -85,6 +85,7 @@
|
||||
#include <TopTools_HArray2OfShape.hxx>
|
||||
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
|
||||
#include <TopTools_ListOfShape.hxx>
|
||||
#include <GeomLib_CheckCurveOnSurface.hxx>
|
||||
|
||||
#include <stdio.h>
|
||||
//#include <BRepFill_TrimCorner.hxx>
|
||||
@@ -289,6 +290,34 @@ static Standard_Boolean CheckSameParameter
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : CheckSameParameterExact
|
||||
//purpose : Check a posteriori that sameparameter has worked correctly
|
||||
// with exact calculation method of edge tolerance
|
||||
//=======================================================================
|
||||
static Standard_Boolean CheckSameParameterExact
|
||||
(const Handle(Adaptor3d_Curve)& C3d,
|
||||
const Handle(Adaptor3d_CurveOnSurface)& curveOnSurface,
|
||||
const Standard_Real tol3d,
|
||||
Standard_Real& tolreached)
|
||||
{
|
||||
GeomLib_CheckCurveOnSurface aCheckCurveOnSurface(C3d);
|
||||
aCheckCurveOnSurface.SetParallel(Standard_False);
|
||||
aCheckCurveOnSurface.Perform(curveOnSurface);
|
||||
|
||||
tolreached = aCheckCurveOnSurface.MaxDistance();
|
||||
|
||||
if (tolreached > tol3d) {
|
||||
return Standard_False;
|
||||
}
|
||||
else
|
||||
{
|
||||
tolreached = Max(tolreached, Precision::Confusion());
|
||||
tolreached *= 1.05;
|
||||
}
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : SameParameter
|
||||
//purpose : Encapsulation of Sameparameter
|
||||
@@ -340,8 +369,10 @@ static Standard_Boolean SameParameter(TopoDS_Edge& E,
|
||||
return Standard_False;
|
||||
}
|
||||
|
||||
ResTol = sp.TolReached();
|
||||
if(ResTol > tolreached ){
|
||||
Handle(Adaptor3d_Curve) curve3d = sp.Curve3d();
|
||||
Handle(Adaptor3d_CurveOnSurface) curveOnSurface = sp.CurveOnSurface();
|
||||
|
||||
if (!CheckSameParameterExact(curve3d, curveOnSurface, tol3d, ResTol) && ResTol > tolreached) {
|
||||
#ifdef OCCT_DEBUG
|
||||
std::cout<<"SameParameter : Tolerance not reached!"<<std::endl;
|
||||
std::cout<<"tol visee : "<<tol3d<<" tol obtained : "<<ResTol<<std::endl;
|
||||
@@ -3253,7 +3284,7 @@ TopoDS_Shape BRepFill_Sweep::Tape(const Standard_Integer Index) const
|
||||
|
||||
Tang = T1 + T2; //Average direction
|
||||
gp_Dir NormalOfBisPlane = Tang;
|
||||
|
||||
gp_Vec anIntersectPointCrossDirection = T1.Crossed(T2);
|
||||
if (isTangent) {
|
||||
Sortant -= Tang.Dot(Tang)*Tang;
|
||||
}
|
||||
@@ -3300,7 +3331,7 @@ TopoDS_Shape BRepFill_Sweep::Tape(const Standard_Integer Index) const
|
||||
}
|
||||
}
|
||||
|
||||
BRepFill_TrimShellCorner aTrim(aFaces, Transition, AxeOfBisPlane);
|
||||
BRepFill_TrimShellCorner aTrim(aFaces, Transition, AxeOfBisPlane, anIntersectPointCrossDirection);
|
||||
aTrim.AddBounds(Bounds);
|
||||
aTrim.AddUEdges(aUEdges);
|
||||
aTrim.AddVEdges(myVEdges, Index);
|
||||
|
@@ -76,12 +76,14 @@ static Standard_Boolean FindCommonVertex(const TopoDS_Edge& theFirstEdge,
|
||||
static Standard_Boolean FindCommonVertex(const BOPDS_PDS& theDS,
|
||||
const Standard_Integer theEIndex1,
|
||||
const Standard_Integer theEIndex2,
|
||||
const gp_Vec& theCrossDirection,
|
||||
TopoDS_Vertex& theCommonVertex,
|
||||
Standard_Real& theParamOnE1,
|
||||
Standard_Real& theParamOnE2);
|
||||
|
||||
static Standard_Boolean SplitUEdges(const Handle(TopTools_HArray2OfShape)& theUEdges,
|
||||
const BOPDS_PDS& theDS,
|
||||
const gp_Vec& theCrossDirection,
|
||||
TopTools_DataMapOfShapeListOfShape& theHistMap);
|
||||
|
||||
static void StoreVedgeInHistMap(const Handle(TopTools_HArray1OfShape)& theVEdges,
|
||||
@@ -194,9 +196,11 @@ static void UpdateSectionEdge(TopoDS_Edge& theEdge,
|
||||
// ===========================================================================================
|
||||
BRepFill_TrimShellCorner::BRepFill_TrimShellCorner(const Handle(TopTools_HArray2OfShape)& theFaces,
|
||||
const BRepFill_TransitionStyle theTransition,
|
||||
const gp_Ax2& theAxeOfBisPlane) :
|
||||
const gp_Ax2& theAxeOfBisPlane,
|
||||
const gp_Vec& theIntPointCrossDir) :
|
||||
myTransition(theTransition),
|
||||
myAxeOfBisPlane(theAxeOfBisPlane),
|
||||
myIntPointCrossDir(theIntPointCrossDir),
|
||||
myDone(Standard_False),
|
||||
myHasSection(Standard_False)
|
||||
{
|
||||
@@ -309,7 +313,7 @@ void BRepFill_TrimShellCorner::Perform()
|
||||
BOPDS_VectorOfInterfFF& aFFs = theDS->InterfFF();
|
||||
Standard_Integer aNbFFs = aFFs.Length();
|
||||
|
||||
if(!SplitUEdges(myUEdges, theDS, myHistMap)) {
|
||||
if(!SplitUEdges(myUEdges, theDS, myIntPointCrossDir, myHistMap)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -425,7 +429,7 @@ BRepFill_TrimShellCorner::MakeFacesNonSec(const Standard_Integer
|
||||
Standard_Real apar1 = 0., apar2 = 0.;
|
||||
|
||||
Standard_Boolean bvertexfound =
|
||||
FindCommonVertex(theDS, anIndex1, anIndex2, aCommonVertex, apar1, apar2);
|
||||
FindCommonVertex(theDS, anIndex1, anIndex2, myIntPointCrossDir, aCommonVertex, apar1, apar2);
|
||||
// search common vertex between bounds. end
|
||||
|
||||
Handle(BRepTools_ReShape) aSubstitutor = new BRepTools_ReShape();
|
||||
@@ -697,9 +701,9 @@ BRepFill_TrimShellCorner::MakeFacesSec(const Standard_Integer
|
||||
|
||||
TopoDS_Vertex FirstVertex, LastVertex;
|
||||
Standard_Real ParamOnLeftE1, ParamOnLeftE2, ParamOnRightE1, ParamOnRightE2;
|
||||
FindCommonVertex(theDS, IndexOfLeftE1, IndexOfLeftE2,
|
||||
FindCommonVertex(theDS, IndexOfLeftE1, IndexOfLeftE2, myIntPointCrossDir,
|
||||
FirstVertex, ParamOnLeftE1, ParamOnLeftE2);
|
||||
FindCommonVertex(theDS, IndexOfRightE1, IndexOfRightE2,
|
||||
FindCommonVertex(theDS, IndexOfRightE1, IndexOfRightE2, myIntPointCrossDir,
|
||||
LastVertex, ParamOnRightE1, ParamOnRightE2);
|
||||
|
||||
TopoDS_Shape SecWire;
|
||||
@@ -1079,7 +1083,8 @@ Standard_Boolean BRepFill_TrimShellCorner::ChooseSection(const TopoDS_Shape& Com
|
||||
// purpose:
|
||||
// ------------------------------------------------------------------------------------------
|
||||
Standard_Boolean SplitUEdges(const Handle(TopTools_HArray2OfShape)& theUEdges,
|
||||
const BOPDS_PDS& theDS,
|
||||
const BOPDS_PDS& theDS,
|
||||
const gp_Vec& theCrossDirection,
|
||||
TopTools_DataMapOfShapeListOfShape& theHistMap) {
|
||||
|
||||
const BOPDS_VectorOfInterfVV& aVVs = theDS->InterfVV();
|
||||
@@ -1105,7 +1110,7 @@ Standard_Boolean SplitUEdges(const Handle(TopTools_HArray2OfShape)& theUEdge
|
||||
TopoDS_Vertex aCommonVertex;
|
||||
Standard_Real apar1 = 0., apar2 = 0.;
|
||||
Standard_Boolean bvertexfound =
|
||||
FindCommonVertex(theDS, anEIndex1, anEIndex2, aCommonVertex, apar1, apar2);
|
||||
FindCommonVertex(theDS, anEIndex1, anEIndex2, theCrossDirection, aCommonVertex, apar1, apar2);
|
||||
//
|
||||
if(!bvertexfound) {
|
||||
TopoDS_Vertex V1 = TopExp::LastVertex(TopoDS::Edge(aE1));
|
||||
@@ -1217,6 +1222,7 @@ void FindFreeVertices(const TopoDS_Shape& theShape,
|
||||
Standard_Boolean FindCommonVertex(const BOPDS_PDS& theDS,
|
||||
const Standard_Integer theEIndex1,
|
||||
const Standard_Integer theEIndex2,
|
||||
const gp_Vec& theCrossDirection,
|
||||
TopoDS_Vertex& theCommonVertex,
|
||||
Standard_Real& theParamOnE1,
|
||||
Standard_Real& theParamOnE2) {
|
||||
@@ -1227,6 +1233,10 @@ Standard_Boolean FindCommonVertex(const BOPDS_PDS& theDS,
|
||||
TopoDS_Vertex aCommonVertex;
|
||||
Standard_Integer eeit = 0;
|
||||
|
||||
TopoDS_Edge theE1 = TopoDS::Edge(theDS->Shape(theEIndex1));
|
||||
TopoDS_Edge theE2 = TopoDS::Edge(theDS->Shape(theEIndex2));
|
||||
BRepAdaptor_Curve aBC1(theE1), aBC2(theE2);
|
||||
|
||||
Standard_Integer aNbEEs;
|
||||
aNbEEs = aEEs.Length();
|
||||
for(eeit = 0; eeit < aNbEEs; ++eeit) {
|
||||
@@ -1247,10 +1257,21 @@ Standard_Boolean FindCommonVertex(const BOPDS_PDS& theDS,
|
||||
IntTools_Tools::VertexParameters(aCP, theParamOnE1, theParamOnE2);
|
||||
else
|
||||
IntTools_Tools::VertexParameters(aCP, theParamOnE2, theParamOnE1);
|
||||
|
||||
//
|
||||
bvertexfound = Standard_True;
|
||||
break;
|
||||
|
||||
gp_Pnt aPt;
|
||||
gp_Vec aDirOnE1, aDirOnE2;
|
||||
gp_Dir aIntersectPointCrossDir;
|
||||
|
||||
// intersect point aDirOnE1.cross(aDirOnE2) should same direction with path theCrossDirection
|
||||
aBC1.D1(theParamOnE1, aPt, aDirOnE1);
|
||||
aBC2.D1(theParamOnE2, aPt, aDirOnE2);
|
||||
aIntersectPointCrossDir = aDirOnE1.Crossed(aDirOnE2);
|
||||
|
||||
if (aIntersectPointCrossDir.Dot(theCrossDirection) > Precision::SquareConfusion())
|
||||
{
|
||||
bvertexfound = Standard_True;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -41,9 +41,12 @@ public:
|
||||
//! Constructor: takes faces to intersect,
|
||||
//! type of transition (it can be RightCorner or RoundCorner)
|
||||
//! and axis of bisector plane
|
||||
//! theIntersectPointCrossDirection : prev path direction at the origin point of theAxeOfBisPlane
|
||||
//! cross next path direction at the origin point of theAxeOfBisPlane. used when EE has more than one vertices
|
||||
Standard_EXPORT BRepFill_TrimShellCorner(const Handle(TopTools_HArray2OfShape)& theFaces,
|
||||
const BRepFill_TransitionStyle theTransition,
|
||||
const gp_Ax2& theAxeOfBisPlane);
|
||||
const gp_Ax2& theAxeOfBisPlane,
|
||||
const gp_Vec& theIntPointCrossDir);
|
||||
|
||||
Standard_EXPORT void AddBounds (const Handle(TopTools_HArray2OfShape)& Bounds);
|
||||
|
||||
@@ -92,6 +95,7 @@ private:
|
||||
|
||||
BRepFill_TransitionStyle myTransition;
|
||||
gp_Ax2 myAxeOfBisPlane;
|
||||
gp_Vec myIntPointCrossDir;
|
||||
TopoDS_Shape myShape1;
|
||||
TopoDS_Shape myShape2;
|
||||
Handle(TopTools_HArray2OfShape) myBounds;
|
||||
|
@@ -57,6 +57,7 @@ static BRepOffsetAPI_ThruSections* Generator = 0;
|
||||
#include <Geom_Circle.hxx>
|
||||
#include <gp_Ax2.hxx>
|
||||
#include <Message.hxx>
|
||||
#include <ShapeUpgrade_UnifySameDomain.hxx>
|
||||
|
||||
//=======================================================================
|
||||
// prism
|
||||
@@ -533,16 +534,50 @@ Standard_Integer thrusections(Draw_Interpretor&, Standard_Integer n, const char*
|
||||
//=======================================================================
|
||||
// mksweep
|
||||
//=======================================================================
|
||||
static Standard_Integer mksweep(Draw_Interpretor&,
|
||||
static Standard_Integer mksweep(Draw_Interpretor& di,
|
||||
Standard_Integer n, const char** a)
|
||||
{
|
||||
if (n != 2) return 1;
|
||||
if (n != 2 && n != 5) return 1;
|
||||
TopoDS_Shape Spine = DBRep::Get(a[1], TopAbs_WIRE);
|
||||
if (Spine.IsNull()) return 1;
|
||||
if (Sweep != 0) {
|
||||
delete Sweep;
|
||||
Sweep = 0;
|
||||
}
|
||||
|
||||
if (n > 2 && n <= 5)
|
||||
{
|
||||
if (!strcmp(a[2], "-C"))
|
||||
{
|
||||
ShapeUpgrade_UnifySameDomain aUnif(Spine, Standard_True, Standard_False, Standard_True);
|
||||
|
||||
Standard_Real anAngTol = 5.;
|
||||
Standard_Real aLinTol = 0.1;
|
||||
|
||||
if (n == 5)
|
||||
{
|
||||
anAngTol = Draw::Atof(a[3]);
|
||||
aLinTol = Draw::Atof(a[4]);
|
||||
}
|
||||
|
||||
aUnif.SetAngularTolerance(anAngTol * M_PI / 180.);
|
||||
aUnif.SetLinearTolerance(aLinTol);
|
||||
aUnif.Build();
|
||||
Spine = aUnif.Shape();
|
||||
if (BRepTest_Objects::IsHistoryNeeded())
|
||||
{
|
||||
BRepTest_Objects::SetHistory(aUnif.History());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
di << "To correct input spine use 'mksweep wire -C [AngTol LinTol]'\n";
|
||||
di << "By default, AngTol = 5, LinTol = 0.1";
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Sweep = new BRepOffsetAPI_MakePipeShell(TopoDS::Wire(Spine));
|
||||
return 0;
|
||||
}
|
||||
@@ -1010,7 +1045,9 @@ void BRepTest::SweepCommands(Draw_Interpretor& theCommands)
|
||||
"\t\t-safe option allows to prevent the modifying of input shapes",
|
||||
__FILE__, thrusections, g);
|
||||
|
||||
theCommands.Add("mksweep", "mksweep wire",
|
||||
theCommands.Add("mksweep", "mksweep wire [-C [AngTol LinTol]]\n"
|
||||
"\t\tthe option -C correct input spine by merging smooth connected neighboring edges\n"
|
||||
"\t\tthe AngTol is in degrees",
|
||||
__FILE__, mksweep, g);
|
||||
|
||||
theCommands.Add("setsweep", "setsweep no args to get help",
|
||||
|
@@ -54,29 +54,6 @@ static Standard_Real GetNextParamOnPC(const Handle(Geom2d_Curve)& aPC,
|
||||
const Standard_Real& tolV,
|
||||
const Standard_Boolean& reverse);
|
||||
|
||||
static Standard_Real LocalUresol (const TopoDS_Vertex& theVertex,
|
||||
const TopoDS_Face& theFace,
|
||||
const gp_Pnt2d& theP2d1,
|
||||
const gp_Pnt2d& theP2d2)
|
||||
{
|
||||
Standard_Real aResol = -1;
|
||||
|
||||
BRepAdaptor_Surface aBAsurf (theFace, Standard_False);
|
||||
if (aBAsurf.GetType() == GeomAbs_Sphere)
|
||||
{
|
||||
Standard_Real aRadius = aBAsurf.Sphere().Radius();
|
||||
Standard_Real aVmid = (theP2d1.Y() + theP2d2.Y())/2.;
|
||||
Standard_Real aLocalRad = aRadius * Cos(aVmid);
|
||||
if (aLocalRad > Precision::Confusion())
|
||||
{
|
||||
Standard_Real aTolVertex = BRep_Tool::Tolerance (theVertex);
|
||||
aResol = aTolVertex / aLocalRad;
|
||||
}
|
||||
}
|
||||
|
||||
return aResol;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : BRepTools_WireExplorer
|
||||
//purpose :
|
||||
@@ -559,56 +536,56 @@ void BRepTools_WireExplorer::Next()
|
||||
it.Initialize(l);
|
||||
while( it.More() )
|
||||
{
|
||||
const TopoDS_Edge& E = TopoDS::Edge(it.Value());
|
||||
if( E.IsSame(myEdge) )
|
||||
const TopoDS_Edge& E = TopoDS::Edge(it.Value());
|
||||
if( E.IsSame(myEdge) )
|
||||
{
|
||||
it.Next();
|
||||
k++;
|
||||
continue;
|
||||
}
|
||||
|
||||
TopoDS_Vertex aVert1, aVert2;
|
||||
TopExp::Vertices (E, aVert1, aVert2, Standard_True);
|
||||
if( aVert1.IsNull() || aVert2.IsNull() )
|
||||
{
|
||||
it.Next();
|
||||
k++;
|
||||
continue;
|
||||
}
|
||||
|
||||
TopoDS_Vertex aVert1, aVert2;
|
||||
TopExp::Vertices (E, aVert1, aVert2, Standard_True);
|
||||
if( aVert1.IsNull() || aVert2.IsNull() )
|
||||
|
||||
aPCurve = BRep_Tool::CurveOnSurface (E, myFace, dfFPar, dfLPar);
|
||||
if( aPCurve.IsNull() )
|
||||
{
|
||||
it.Next();
|
||||
k++;
|
||||
continue;
|
||||
}
|
||||
|
||||
aPCurve = BRep_Tool::CurveOnSurface (E, myFace, dfFPar, dfLPar);
|
||||
if( aPCurve.IsNull() )
|
||||
{
|
||||
it.Next();
|
||||
k++;
|
||||
continue;
|
||||
}
|
||||
|
||||
gp_Pnt2d aPEb, aPEe;
|
||||
if( aVert1.IsSame(aVert2) == isDegenerated )
|
||||
{
|
||||
if( E.Orientation() == TopAbs_REVERSED )
|
||||
aPCurve->D0(dfLPar, aPEb);
|
||||
else
|
||||
aPCurve->D0(dfFPar, aPEb);
|
||||
|
||||
if( Abs(dfLPar-dfFPar) > Precision::PConfusion() )
|
||||
{
|
||||
isrevese = ( E.Orientation() == TopAbs_REVERSED );
|
||||
isrevese = !isrevese;
|
||||
Standard_Real aEPm = GetNextParamOnPC(aPCurve,aPEb,dfFPar,dfLPar,myTolU,myTolV,isrevese);
|
||||
|
||||
aPCurve->D0 (aEPm, aPEe);
|
||||
|
||||
gp_Pnt2d aPEb, aPEe;
|
||||
if( aVert1.IsSame(aVert2) == isDegenerated )
|
||||
{
|
||||
if( E.Orientation() == TopAbs_REVERSED )
|
||||
aPCurve->D0(dfLPar, aPEb);
|
||||
else
|
||||
aPCurve->D0(dfFPar, aPEb);
|
||||
|
||||
if( Abs(dfLPar-dfFPar) > Precision::PConfusion() )
|
||||
{
|
||||
isrevese = ( E.Orientation() == TopAbs_REVERSED );
|
||||
isrevese = !isrevese;
|
||||
Standard_Real aEPm = GetNextParamOnPC(aPCurve,aPEb,dfFPar,dfLPar,myTolU,myTolV,isrevese);
|
||||
|
||||
aPCurve->D0 (aEPm, aPEe);
|
||||
if(aPEb.SquareDistance(aPEe) <= gp::Resolution())
|
||||
{
|
||||
//seems to be very short curve
|
||||
gp_Vec2d aD;
|
||||
aPCurve->D1(aEPm, aPEe, aD);
|
||||
if( E.Orientation() == TopAbs_REVERSED )
|
||||
if( E.Orientation() == TopAbs_REVERSED )
|
||||
aPEe.SetXY(aPEb.XY()-aD.XY());
|
||||
else
|
||||
else
|
||||
aPEe.SetXY(aPEb.XY()+aD.XY());
|
||||
|
||||
|
||||
if(aPEb.SquareDistance(aPEe) <= gp::Resolution())
|
||||
{
|
||||
it.Next();
|
||||
@@ -616,39 +593,35 @@ void BRepTools_WireExplorer::Next()
|
||||
continue;
|
||||
}
|
||||
}
|
||||
gp_Vec2d anEDir(aPEb, aPEe);
|
||||
dfCurAngle = Abs( anEDir.Angle(anERefDir) );
|
||||
}
|
||||
|
||||
if( dfCurAngle <= dfMinAngle )
|
||||
{
|
||||
Standard_Real d = PRef.SquareDistance(aPEb);
|
||||
if( d <= Precision::PConfusion() )
|
||||
d = 0.;
|
||||
//jgv
|
||||
Standard_Real aLocalUresol = LocalUresol (myVertex, myFace, PRef, aPEb);
|
||||
aLocalUresol = Max (aLocalUresol, myTolU);
|
||||
/////
|
||||
if( Abs(aPEb.X()-PRef.X()) < aLocalUresol && Abs(aPEb.Y()-PRef.Y()) < myTolV )
|
||||
{
|
||||
if( d <= dmin )
|
||||
{
|
||||
dfMinAngle = dfCurAngle;
|
||||
kMin = k;
|
||||
dmin = d;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
it.Next();
|
||||
k++;
|
||||
gp_Vec2d anEDir(aPEb, aPEe);
|
||||
dfCurAngle = Abs( anEDir.Angle(anERefDir) );
|
||||
}
|
||||
|
||||
if( dfCurAngle <= dfMinAngle )
|
||||
{
|
||||
Standard_Real d = PRef.SquareDistance(aPEb);
|
||||
if( d <= Precision::PConfusion() )
|
||||
d = 0.;
|
||||
if( Abs(aPEb.X()-PRef.X()) < myTolU && Abs(aPEb.Y()-PRef.Y()) < myTolV )
|
||||
{
|
||||
if( d <= dmin )
|
||||
{
|
||||
dfMinAngle = dfCurAngle;
|
||||
kMin = k;
|
||||
dmin = d;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
it.Next();
|
||||
k++;
|
||||
}// while it
|
||||
|
||||
if( kMin == 0 )
|
||||
{
|
||||
isDegenerated = Standard_False;
|
||||
k = 1;
|
||||
dmin = RealLast();
|
||||
isDegenerated = Standard_False;
|
||||
k = 1;
|
||||
dmin = RealLast();
|
||||
}
|
||||
else
|
||||
break;
|
||||
|
@@ -732,10 +732,13 @@ Standard_Boolean ChFi3d_IsInFront(TopOpeBRepDS_DataStructure& DStr,
|
||||
if(fd1->IndexOfS1() == fd2->IndexOfS1()) {
|
||||
jf1 = 1; jf2 = 1;
|
||||
face = TopoDS::Face(DStr.Shape(fd1->Index(jf1)));
|
||||
if (face.IsNull()) throw Standard_NullObject("ChFi3d_IsInFront : Trying to check orientation of NULL face");
|
||||
OrSave1 = cd1->Orientation(jf1);
|
||||
Or = OrFace1 = face.Orientation();
|
||||
OrSave2 = cd2->Orientation(jf2);
|
||||
OrFace2 = DStr.Shape(fd2->Index(jf2)).Orientation();
|
||||
const TopoDS_Shape& shape2 = DStr.Shape(fd2->Index(jf2));
|
||||
if (shape2.IsNull()) throw Standard_NullObject("ChFi3d_IsInFront : Trying to check orientation of NULL shape");
|
||||
OrFace2 = shape2.Orientation();
|
||||
visavis = Standard_True;
|
||||
sameside = ChFi3d::SameSide(Or,OrSave1,OrSave2,OrFace1,OrFace2);
|
||||
// The parameters of the other side are not used for orientation. This would raise problems
|
||||
@@ -753,10 +756,13 @@ Standard_Boolean ChFi3d_IsInFront(TopOpeBRepDS_DataStructure& DStr,
|
||||
if(fd1->IndexOfS2() == fd2->IndexOfS1()) {
|
||||
jf1 = 2; jf2 = 1;
|
||||
face = TopoDS::Face(DStr.Shape(fd1->Index(jf1)));
|
||||
if (face.IsNull()) throw Standard_NullObject("ChFi3d_IsInFront : Trying to check orientation of NULL face");
|
||||
OrSave1 = cd1->Orientation(jf1);
|
||||
Or = OrFace1 = face.Orientation();
|
||||
OrSave2 = cd2->Orientation(jf2);
|
||||
OrFace2 = DStr.Shape(fd2->Index(jf2)).Orientation();
|
||||
const TopoDS_Shape& shape2 = DStr.Shape(fd2->Index(jf2));
|
||||
if (shape2.IsNull()) throw Standard_NullObject("ChFi3d_IsInFront : Trying to check orientation of NULL shape");
|
||||
OrFace2 = shape2.Orientation();
|
||||
visavis = Standard_True;
|
||||
sameside = ChFi3d::SameSide(Or,OrSave1,OrSave2,OrFace1,OrFace2);
|
||||
// The parameters of the other side are not used for orientation. This would raise problems
|
||||
@@ -786,10 +792,13 @@ Standard_Boolean ChFi3d_IsInFront(TopOpeBRepDS_DataStructure& DStr,
|
||||
if(fd1->IndexOfS1() == fd2->IndexOfS2()) {
|
||||
jf1 = 1; jf2 = 2;
|
||||
face = TopoDS::Face(DStr.Shape(fd1->Index(jf1)));
|
||||
if (face.IsNull()) throw Standard_NullObject("ChFi3d_IsInFront : Trying to check orientation of NULL face");
|
||||
OrSave1 = cd1->Orientation(jf1);
|
||||
Or = OrFace1 = face.Orientation();
|
||||
OrSave2 = cd2->Orientation(jf2);
|
||||
OrFace2 = DStr.Shape(fd2->Index(jf2)).Orientation();
|
||||
const TopoDS_Shape& shape2 = DStr.Shape(fd2->Index(jf2));
|
||||
if (shape2.IsNull()) throw Standard_NullObject("ChFi3d_IsInFront : Trying to check orientation of NULL shape");
|
||||
OrFace2 = shape2.Orientation();
|
||||
visavis = Standard_True;
|
||||
sameside = ChFi3d::SameSide(Or,OrSave1,OrSave2,OrFace1,OrFace2);
|
||||
// The parameters of the other side are not used for orientation.
|
||||
@@ -819,10 +828,13 @@ Standard_Boolean ChFi3d_IsInFront(TopOpeBRepDS_DataStructure& DStr,
|
||||
if(fd1->IndexOfS2() == fd2->IndexOfS2()) {
|
||||
jf1 = 2; jf2 = 2;
|
||||
face = TopoDS::Face(DStr.Shape(fd1->Index(jf1)));
|
||||
if (face.IsNull()) throw Standard_NullObject("ChFi3d_IsInFront : Trying to check orientation of NULL face");
|
||||
OrSave1 = cd1->Orientation(jf1);
|
||||
Or = OrFace1 = face.Orientation();
|
||||
OrSave2 = cd2->Orientation(jf2);
|
||||
OrFace2 = DStr.Shape(fd2->Index(jf2)).Orientation();
|
||||
const TopoDS_Shape& shape2 = DStr.Shape(fd2->Index(jf2));
|
||||
if (shape2.IsNull()) throw Standard_NullObject("ChFi3d_IsInFront : Trying to check orientation of NULL shape");
|
||||
OrFace2 = shape2.Orientation();
|
||||
visavis = Standard_True;
|
||||
sameside = ChFi3d::SameSide(Or,OrSave1,OrSave2,OrFace1,OrFace2);
|
||||
// The parameters of the other side are not used for orientation.
|
||||
|
@@ -1645,6 +1645,13 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
|
||||
}
|
||||
if (compoint1 && compoint2) {
|
||||
SeqFil.Remove(num);
|
||||
num = ChFi3d_IndexOfSurfData(Vtx,stripe,sens);
|
||||
if (isfirst) {
|
||||
num1=num+1;
|
||||
}
|
||||
else {
|
||||
num1=num-1;
|
||||
}
|
||||
reg1=Standard_False; reg2=Standard_False;
|
||||
}
|
||||
}
|
||||
@@ -2115,6 +2122,9 @@ void ChFi3d_Builder::PerformIntersectionAtEnd(const Standard_Integer Index)
|
||||
F=Face[nb-1];
|
||||
if (!prolface[nb-1]) faceprol[nb-1]=F;
|
||||
}
|
||||
|
||||
if (F.IsNull()) throw Standard_NullObject("IntersectionAtEnd : Trying to intersect with NULL face");
|
||||
|
||||
Sfacemoins1=BRep_Tool::Surface(F);
|
||||
Handle(Geom_Curve) cint;
|
||||
Handle(Geom2d_Curve) C2dint1, C2dint2,cface,cfacemoins1;
|
||||
|
@@ -436,15 +436,6 @@ void Cocoa_Window::InvalidateContent (const Handle(Aspect_DisplayConnection)& )
|
||||
return;
|
||||
}
|
||||
|
||||
if ([NSThread isMainThread])
|
||||
{
|
||||
#if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
|
||||
[myHView setNeedsDisplay];
|
||||
#else
|
||||
[myHView setNeedsDisplay: YES];
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
[myHView performSelectorOnMainThread: @selector(invalidateContentOcct:)
|
||||
withObject: NULL
|
||||
|
@@ -36,7 +36,6 @@ Graphic3d_CView::Graphic3d_CView (const Handle(Graphic3d_StructureManager)& theM
|
||||
//
|
||||
myStructureManager (theMgr),
|
||||
myCamera (new Graphic3d_Camera()),
|
||||
myHiddenObjects (new Graphic3d_NMapOfTransient()),
|
||||
myIsInComputedMode (Standard_False),
|
||||
myIsActive (Standard_False),
|
||||
myIsRemoved (Standard_False),
|
||||
|
@@ -134,12 +134,6 @@ public:
|
||||
//! Returns number of displayed structures in the view.
|
||||
virtual Standard_Integer NumberOfDisplayedStructures() const { return myStructsDisplayed.Extent(); }
|
||||
|
||||
//! Returns map of objects hidden within this specific view (not viewer-wise).
|
||||
const Handle(Graphic3d_NMapOfTransient)& HiddenObjects() const { return myHiddenObjects; }
|
||||
|
||||
//! Returns map of objects hidden within this specific view (not viewer-wise).
|
||||
Handle(Graphic3d_NMapOfTransient)& ChangeHiddenObjects() { return myHiddenObjects; }
|
||||
|
||||
//! Returns Standard_True in case if the structure with the given <theStructId> is
|
||||
//! in list of structures to be computed and stores computed struct to <theComputedStruct>.
|
||||
Standard_EXPORT Standard_Boolean IsComputed (const Standard_Integer theStructId,
|
||||
@@ -649,7 +643,6 @@ protected:
|
||||
Graphic3d_SequenceOfStructure myStructsToCompute;
|
||||
Graphic3d_SequenceOfStructure myStructsComputed;
|
||||
Graphic3d_MapOfStructure myStructsDisplayed;
|
||||
Handle(Graphic3d_NMapOfTransient) myHiddenObjects;
|
||||
Standard_Boolean myIsInComputedMode;
|
||||
Standard_Boolean myIsActive;
|
||||
Standard_Boolean myIsRemoved;
|
||||
|
@@ -182,29 +182,45 @@ void Graphic3d_StructureManager::RecomputeStructures (const NCollection_Map<Grap
|
||||
}
|
||||
}
|
||||
|
||||
Handle(Graphic3d_ViewAffinity) Graphic3d_StructureManager::RegisterObject (const Handle(Standard_Transient)& theObject)
|
||||
// ========================================================================
|
||||
// function : RegisterObject
|
||||
// purpose :
|
||||
// ========================================================================
|
||||
void Graphic3d_StructureManager::RegisterObject (const Handle(Standard_Transient)& theObject,
|
||||
const Handle(Graphic3d_ViewAffinity)& theAffinity)
|
||||
{
|
||||
Handle(Graphic3d_ViewAffinity) aResult;
|
||||
if (myRegisteredObjects.Find (theObject.operator->(), aResult))
|
||||
if (myRegisteredObjects.Find (theObject.operator->(), aResult)
|
||||
&& aResult == theAffinity)
|
||||
{
|
||||
return aResult;
|
||||
return;
|
||||
}
|
||||
|
||||
aResult = new Graphic3d_ViewAffinity();
|
||||
myRegisteredObjects.Bind (theObject.operator->(), aResult);
|
||||
return aResult;
|
||||
myRegisteredObjects.Bind (theObject.operator->(), theAffinity);
|
||||
}
|
||||
|
||||
// ========================================================================
|
||||
// function : UnregisterObject
|
||||
// purpose :
|
||||
// ========================================================================
|
||||
void Graphic3d_StructureManager::UnregisterObject (const Handle(Standard_Transient)& theObject)
|
||||
{
|
||||
myRegisteredObjects.UnBind (theObject.operator->());
|
||||
}
|
||||
|
||||
Handle(Graphic3d_ViewAffinity) Graphic3d_StructureManager::ObjectAffinity (const Handle(Standard_Transient)& theObject) const
|
||||
// ========================================================================
|
||||
// function : ObjectAffinity
|
||||
// purpose :
|
||||
// ========================================================================
|
||||
const Handle(Graphic3d_ViewAffinity)& Graphic3d_StructureManager::ObjectAffinity (const Handle(Standard_Transient)& theObject) const
|
||||
{
|
||||
Handle(Graphic3d_ViewAffinity) aResult;
|
||||
myRegisteredObjects.Find (theObject.operator->(), aResult);
|
||||
return aResult;
|
||||
const Handle(Graphic3d_ViewAffinity)* aResult = myRegisteredObjects.Seek (theObject.operator->());
|
||||
if (aResult == nullptr)
|
||||
{
|
||||
static const Handle(Graphic3d_ViewAffinity) aDummy;
|
||||
return aDummy;
|
||||
}
|
||||
return *aResult;
|
||||
}
|
||||
|
||||
// ========================================================================
|
||||
|
@@ -151,11 +151,12 @@ public:
|
||||
//! Recomputes all structures from theStructures.
|
||||
Standard_EXPORT void RecomputeStructures (const NCollection_Map<Graphic3d_Structure*>& theStructures);
|
||||
|
||||
Standard_EXPORT Handle(Graphic3d_ViewAffinity) RegisterObject (const Handle(Standard_Transient)& theObject);
|
||||
Standard_EXPORT void RegisterObject (const Handle(Standard_Transient)& theObject,
|
||||
const Handle(Graphic3d_ViewAffinity)& theAffinity);
|
||||
|
||||
Standard_EXPORT void UnregisterObject (const Handle(Standard_Transient)& theObject);
|
||||
|
||||
Standard_EXPORT Handle(Graphic3d_ViewAffinity) ObjectAffinity (const Handle(Standard_Transient)& theObject) const;
|
||||
Standard_EXPORT const Handle(Graphic3d_ViewAffinity)& ObjectAffinity (const Handle(Standard_Transient)& theObject) const;
|
||||
|
||||
//! Returns TRUE if Device Lost flag has been set and presentation data should be reuploaded onto graphics driver.
|
||||
Standard_Boolean IsDeviceLost() const { return myDeviceLostFlag; }
|
||||
|
@@ -16,11 +16,7 @@
|
||||
#ifndef _IMeshData_Edge_HeaderFile
|
||||
#define _IMeshData_Edge_HeaderFile
|
||||
|
||||
#include <IMeshData_TessellatedShape.hxx>
|
||||
#include <IMeshData_StatusOwner.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <TopoDS_Edge.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
#include <IMeshData_Curve.hxx>
|
||||
#include <IMeshData_PCurve.hxx>
|
||||
#include <IMeshData_Types.hxx>
|
||||
|
@@ -19,7 +19,6 @@
|
||||
#include <IMeshData_TessellatedShape.hxx>
|
||||
#include <IMeshData_StatusOwner.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
#include <IMeshData_Status.hxx>
|
||||
#include <IMeshData_Types.hxx>
|
||||
|
@@ -17,8 +17,6 @@
|
||||
#define _IMeshData_ParametersListArrayAdaptor_HeaderFile
|
||||
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <IMeshData_ParametersList.hxx>
|
||||
|
||||
//! Auxiliary tool representing adaptor interface for child classes of
|
||||
//! IMeshData_ParametersList to be used in tools working on NCollection_Array structure.
|
||||
|
@@ -16,7 +16,6 @@
|
||||
#ifndef _IMeshData_Shape_HeaderFile
|
||||
#define _IMeshData_Shape_HeaderFile
|
||||
|
||||
#include <Standard_Type.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
|
||||
//! Interface class representing model with associated TopoDS_Shape.
|
||||
|
@@ -17,8 +17,6 @@
|
||||
#define _IMeshData_StatusOwner_HeaderFile
|
||||
|
||||
#include <IMeshData_Status.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
//! Extension interface class providing status functionality.
|
||||
class IMeshData_StatusOwner
|
||||
|
@@ -16,8 +16,6 @@
|
||||
#ifndef _IMeshData_Types_HeaderFile
|
||||
#define _IMeshData_Types_HeaderFile
|
||||
|
||||
#include <NCollection_DataMap.hxx>
|
||||
#include <NCollection_Vector.hxx>
|
||||
#include <NCollection_Sequence.hxx>
|
||||
#include <NCollection_List.hxx>
|
||||
#include <NCollection_Shared.hxx>
|
||||
@@ -26,16 +24,13 @@
|
||||
#include <NCollection_DefineAlloc.hxx>
|
||||
#include <NCollection_StdAllocator.hxx>
|
||||
#include <IMeshData_ParametersListArrayAdaptor.hxx>
|
||||
#include <TColStd_PackedMapOfInteger.hxx>
|
||||
#include <TColStd_MapIteratorOfPackedMapOfInteger.hxx>
|
||||
#include <Precision.hxx>
|
||||
#include <NCollection_EBTree.hxx>
|
||||
#include <Bnd_Box2d.hxx>
|
||||
#include <NCollection_CellFilter.hxx>
|
||||
#include <NCollection_IndexedDataMap.hxx>
|
||||
#include <NCollection_UBTreeFiller.hxx>
|
||||
#include <NCollection_IndexedMap.hxx>
|
||||
#include <BRepMesh_OrientedEdge.hxx>
|
||||
#include <BRepMesh_Vertex.hxx>
|
||||
#include <Bnd_B2d.hxx>
|
||||
#include <BRepMesh_Circle.hxx>
|
||||
@@ -45,7 +40,6 @@
|
||||
|
||||
#include <memory>
|
||||
#include <queue>
|
||||
#include <list>
|
||||
|
||||
class IMeshData_Shape;
|
||||
class IMeshData_Face;
|
||||
|
@@ -16,7 +16,6 @@
|
||||
#ifndef _IMeshTools_Context_HeaderFile
|
||||
#define _IMeshTools_Context_HeaderFile
|
||||
|
||||
#include <IMeshData_Shape.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <IMeshTools_ModelBuilder.hxx>
|
||||
#include <IMeshData_Model.hxx>
|
||||
|
@@ -17,7 +17,6 @@
|
||||
#define _IMeshTools_MeshAlgo_HeaderFile
|
||||
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <IMeshData_Types.hxx>
|
||||
#include <Message_ProgressRange.hxx>
|
||||
|
||||
|
@@ -17,7 +17,6 @@
|
||||
#define _IMeshTools_MeshAlgoFactory_HeaderFile
|
||||
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <GeomAbs_SurfaceType.hxx>
|
||||
#include <IMeshTools_MeshAlgo.hxx>
|
||||
|
||||
|
@@ -16,7 +16,6 @@
|
||||
#ifndef _IMeshTools_MeshBuilder_HeaderFile
|
||||
#define _IMeshTools_MeshBuilder_HeaderFile
|
||||
|
||||
#include <Message_Algorithm.hxx>
|
||||
#include <IMeshTools_Context.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <Message_ProgressRange.hxx>
|
||||
|
@@ -16,10 +16,7 @@
|
||||
#ifndef _IMeshTools_ModelAlgo_HeaderFile
|
||||
#define _IMeshTools_ModelAlgo_HeaderFile
|
||||
|
||||
#include <Standard_ErrorHandler.hxx>
|
||||
#include <Standard_Failure.hxx>
|
||||
#include <Standard_Transient.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <Message_ProgressRange.hxx>
|
||||
|
||||
class IMeshData_Model;
|
||||
|
@@ -20,7 +20,6 @@
|
||||
#include <Standard_ErrorHandler.hxx>
|
||||
#include <Standard_Failure.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#include <IMeshData_Model.hxx>
|
||||
|
||||
struct IMeshTools_Parameters;
|
||||
|
@@ -16,14 +16,11 @@
|
||||
#include <IMeshTools_ShapeExplorer.hxx>
|
||||
#include <TopExp.hxx>
|
||||
#include <TopExp_Explorer.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
#include <TopoDS_Edge.hxx>
|
||||
#include <TopTools_ListOfShape.hxx>
|
||||
#include <BRepLib.hxx>
|
||||
#include <BRep_Tool.hxx>
|
||||
#include <TopTools_MapOfShape.hxx>
|
||||
#include <Geom_Surface.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(IMeshTools_ShapeExplorer, IMeshData_Shape)
|
||||
|
||||
|
@@ -114,7 +114,7 @@ void IVtkOCC_ViewerSelector::Pick (const Standard_Integer theXPix,
|
||||
|
||||
mySelectingVolumeMgr.BuildSelectingVolume();
|
||||
|
||||
TraverseSensitives();
|
||||
TraverseSensitives (-1);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@@ -160,7 +160,7 @@ void IVtkOCC_ViewerSelector::Pick (const Standard_Integer theXMin,
|
||||
|
||||
mySelectingVolumeMgr.BuildSelectingVolume();
|
||||
|
||||
TraverseSensitives();
|
||||
TraverseSensitives (-1);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
@@ -207,7 +207,7 @@ void IVtkOCC_ViewerSelector::Pick (double** thePoly,
|
||||
|
||||
mySelectingVolumeMgr.BuildSelectingVolume();
|
||||
|
||||
TraverseSensitives();
|
||||
TraverseSensitives (-1);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
|
@@ -19,14 +19,14 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <GeomAbs_SurfaceType.hxx>
|
||||
#include <gp_Ax3.hxx>
|
||||
#include <gp_Cone.hxx>
|
||||
#include <gp_Cylinder.hxx>
|
||||
#include <TColStd_ListOfReal.hxx>
|
||||
|
||||
class gp_Cone;
|
||||
class gp_Cylinder;
|
||||
|
||||
//! Definition of a parametric Curve which is the result
|
||||
//! of the intersection between two quadrics.
|
||||
class IntAna_Curve
|
||||
|
@@ -18,14 +18,12 @@
|
||||
#endif
|
||||
|
||||
|
||||
#include <gp.hxx>
|
||||
#include <gp_Pln.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <IntAna_Int3Pln.hxx>
|
||||
#include <math_Gauss.hxx>
|
||||
#include <math_Matrix.hxx>
|
||||
#include <math_Vector.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
IntAna_Int3Pln::IntAna_Int3Pln()
|
||||
|
@@ -19,9 +19,7 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
class gp_Pln;
|
||||
|
||||
|
@@ -24,7 +24,6 @@
|
||||
|
||||
|
||||
#include <ElCLib.hxx>
|
||||
#include <gp_Ax3.hxx>
|
||||
#include <gp_Circ.hxx>
|
||||
#include <gp_Circ2d.hxx>
|
||||
#include <gp_Elips.hxx>
|
||||
@@ -43,9 +42,6 @@
|
||||
#include <IntAna_ResultType.hxx>
|
||||
#include <math_DirectPolynomialRoots.hxx>
|
||||
#include <math_TrigonometricFunctionRoots.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
static Standard_Real PIpPI = M_PI + M_PI;
|
||||
//=============================================================================
|
||||
|
@@ -19,12 +19,9 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class gp_Lin;
|
||||
class IntAna_Quadric;
|
||||
class gp_Circ;
|
||||
|
@@ -25,9 +25,6 @@
|
||||
#include <gp_Trsf.hxx>
|
||||
#include <IntAna_IntLinTorus.hxx>
|
||||
#include <math_DirectPolynomialRoots.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
|
||||
IntAna_IntLinTorus::IntAna_IntLinTorus ()
|
||||
: done(Standard_False),
|
||||
|
@@ -19,12 +19,9 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class gp_Lin;
|
||||
class gp_Torus;
|
||||
|
||||
|
@@ -34,7 +34,6 @@
|
||||
#include <gp_Cone.hxx>
|
||||
#include <gp_Cylinder.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <IntAna_Curve.hxx>
|
||||
#include <IntAna_IntQuadQuad.hxx>
|
||||
#include <IntAna_Quadric.hxx>
|
||||
#include <math_TrigonometricFunctionRoots.hxx>
|
||||
|
@@ -19,13 +19,10 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <IntAna_Curve.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class gp_Cylinder;
|
||||
class IntAna_Quadric;
|
||||
class gp_Cone;
|
||||
|
@@ -27,7 +27,6 @@
|
||||
|
||||
#include <ElCLib.hxx>
|
||||
#include <ElSLib.hxx>
|
||||
#include <gp.hxx>
|
||||
#include <gp_Circ.hxx>
|
||||
#include <gp_Cone.hxx>
|
||||
#include <gp_Cylinder.hxx>
|
||||
|
@@ -19,14 +19,11 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <IntAna_ResultType.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Dir.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class gp_Pln;
|
||||
class gp_Cylinder;
|
||||
class gp_Sphere;
|
||||
|
@@ -21,12 +21,7 @@
|
||||
|
||||
|
||||
#include <gp_Ax3.hxx>
|
||||
#include <gp_Cone.hxx>
|
||||
#include <gp_Cylinder.hxx>
|
||||
#include <gp_Pln.hxx>
|
||||
#include <gp_Sphere.hxx>
|
||||
#include <gp_Trsf.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <IntAna_Quadric.hxx>
|
||||
#include <ElSLib.hxx>
|
||||
|
||||
|
@@ -17,8 +17,13 @@
|
||||
#ifndef _IntAna_Quadric_HeaderFile
|
||||
#define _IntAna_Quadric_HeaderFile
|
||||
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <NCollection_List.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
|
||||
class gp_Cone;
|
||||
class gp_Cylinder;
|
||||
class gp_Pln;
|
||||
class gp_Sphere;
|
||||
|
||||
//! This class provides a description of Quadrics by their
|
||||
//! Coefficients in natural coordinate system.
|
||||
|
@@ -20,8 +20,6 @@
|
||||
#include <gp_Parab2d.hxx>
|
||||
#include <IntAna2d_AnaIntersection.hxx>
|
||||
#include <IntAna2d_Conic.hxx>
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
IntAna2d_AnaIntersection::IntAna2d_AnaIntersection ()
|
||||
|
@@ -19,9 +19,7 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
class gp_Lin2d;
|
||||
|
@@ -14,14 +14,10 @@
|
||||
|
||||
|
||||
#include <gp_Circ2d.hxx>
|
||||
#include <gp_Elips2d.hxx>
|
||||
#include <gp_Hypr2d.hxx>
|
||||
#include <gp_Lin2d.hxx>
|
||||
#include <gp_Parab2d.hxx>
|
||||
#include <IntAna2d_AnaIntersection.hxx>
|
||||
#include <IntAna2d_Conic.hxx>
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
void IntAna2d_AnaIntersection::Perform (const gp_Lin2d& L1,
|
||||
|
@@ -14,15 +14,10 @@
|
||||
|
||||
|
||||
#include <gp_Circ2d.hxx>
|
||||
#include <gp_Elips2d.hxx>
|
||||
#include <gp_Hypr2d.hxx>
|
||||
#include <gp_Lin2d.hxx>
|
||||
#include <gp_Parab2d.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <IntAna2d_AnaIntersection.hxx>
|
||||
#include <IntAna2d_Conic.hxx>
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
void IntAna2d_AnaIntersection::Perform (const gp_Circ2d& C1,
|
||||
|
@@ -15,15 +15,10 @@
|
||||
|
||||
#include <ElCLib.hxx>
|
||||
#include <gp_Circ2d.hxx>
|
||||
#include <gp_Elips2d.hxx>
|
||||
#include <gp_Hypr2d.hxx>
|
||||
#include <gp_Lin2d.hxx>
|
||||
#include <gp_Parab2d.hxx>
|
||||
#include <IntAna2d_AnaIntersection.hxx>
|
||||
#include <IntAna2d_Conic.hxx>
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : Perform
|
||||
|
@@ -16,15 +16,11 @@
|
||||
//============================================================================
|
||||
|
||||
#include <gp_Circ2d.hxx>
|
||||
#include <gp_Elips2d.hxx>
|
||||
#include <gp_Hypr2d.hxx>
|
||||
#include <gp_Lin2d.hxx>
|
||||
#include <gp_Parab2d.hxx>
|
||||
#include <IntAna2d_AnaIntersection.hxx>
|
||||
#include <IntAna2d_Conic.hxx>
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
#include <IntAna2d_Outils.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
void IntAna2d_AnaIntersection::Perform (const gp_Lin2d& L,
|
||||
|
@@ -16,15 +16,10 @@
|
||||
//============================================================================
|
||||
|
||||
#include <gp_Circ2d.hxx>
|
||||
#include <gp_Elips2d.hxx>
|
||||
#include <gp_Hypr2d.hxx>
|
||||
#include <gp_Lin2d.hxx>
|
||||
#include <gp_Parab2d.hxx>
|
||||
#include <IntAna2d_AnaIntersection.hxx>
|
||||
#include <IntAna2d_Conic.hxx>
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
#include <IntAna2d_Outils.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
void IntAna2d_AnaIntersection::Perform(const gp_Circ2d& Circle,
|
||||
|
@@ -17,14 +17,10 @@
|
||||
|
||||
#include <gp_Circ2d.hxx>
|
||||
#include <gp_Elips2d.hxx>
|
||||
#include <gp_Hypr2d.hxx>
|
||||
#include <gp_Lin2d.hxx>
|
||||
#include <gp_Parab2d.hxx>
|
||||
#include <IntAna2d_AnaIntersection.hxx>
|
||||
#include <IntAna2d_Conic.hxx>
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
#include <IntAna2d_Outils.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
void IntAna2d_AnaIntersection::Perform(const gp_Elips2d& Elips,
|
||||
|
@@ -16,15 +16,11 @@
|
||||
//============================================================================
|
||||
|
||||
#include <gp_Circ2d.hxx>
|
||||
#include <gp_Elips2d.hxx>
|
||||
#include <gp_Hypr2d.hxx>
|
||||
#include <gp_Lin2d.hxx>
|
||||
#include <gp_Parab2d.hxx>
|
||||
#include <IntAna2d_AnaIntersection.hxx>
|
||||
#include <IntAna2d_Conic.hxx>
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
#include <IntAna2d_Outils.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
void IntAna2d_AnaIntersection::Perform(const gp_Parab2d& P,
|
||||
|
@@ -16,15 +16,11 @@
|
||||
//============================================================================
|
||||
|
||||
#include <gp_Circ2d.hxx>
|
||||
#include <gp_Elips2d.hxx>
|
||||
#include <gp_Hypr2d.hxx>
|
||||
#include <gp_Lin2d.hxx>
|
||||
#include <gp_Parab2d.hxx>
|
||||
#include <IntAna2d_AnaIntersection.hxx>
|
||||
#include <IntAna2d_Conic.hxx>
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
#include <IntAna2d_Outils.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
// -----------------------------------------------------------------
|
||||
|
@@ -13,7 +13,6 @@
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <gp_Ax2d.hxx>
|
||||
#include <gp_Circ2d.hxx>
|
||||
#include <gp_Elips2d.hxx>
|
||||
#include <gp_Hypr2d.hxx>
|
||||
|
@@ -19,9 +19,7 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
class gp_Circ2d;
|
||||
class gp_Lin2d;
|
||||
class gp_Parab2d;
|
||||
|
@@ -15,12 +15,10 @@
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
|
||||
IntAna2d_IntPoint::IntAna2d_IntPoint (const Standard_Real X, const Standard_Real Y,
|
||||
const Standard_Real U1,const Standard_Real U2):
|
||||
const Standard_Real U1,const Standard_Real U2):
|
||||
myu1(U1),myu2(U2),myp(X,Y),myimplicit(Standard_False)
|
||||
{
|
||||
}
|
||||
|
@@ -21,7 +21,6 @@
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
|
||||
|
@@ -18,10 +18,8 @@
|
||||
#ifndef IntAna2d_Outils_HeaderFile
|
||||
#define IntAna2d_Outils_HeaderFile
|
||||
|
||||
#include <math_DirectPolynomialRoots.hxx>
|
||||
#include <math_TrigonometricFunctionRoots.hxx>
|
||||
#include <IntAna2d_IntPoint.hxx>
|
||||
#include <gp_Ax2d.hxx>
|
||||
|
||||
class MyDirectPolynomialRoots {
|
||||
public:
|
||||
|
@@ -19,9 +19,7 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <gp_Ax22d.hxx>
|
||||
#include <GeomAbs_CurveType.hxx>
|
||||
#include <gp_Trsf2d.hxx>
|
||||
|
@@ -17,7 +17,6 @@
|
||||
// Modified: OFV Thu Nov 6 17:03:52 2003
|
||||
|
||||
#include <ElCLib.hxx>
|
||||
#include <gp.hxx>
|
||||
#include <gp_Circ2d.hxx>
|
||||
#include <gp_Elips2d.hxx>
|
||||
#include <gp_Hypr2d.hxx>
|
||||
@@ -31,7 +30,6 @@
|
||||
#include <IntCurve_PConic.hxx>
|
||||
#include <IntRes2d_Domain.hxx>
|
||||
#include <Precision.hxx>
|
||||
#include <Standard_ConstructionError.hxx>
|
||||
|
||||
//=======================================================================
|
||||
// Perform() for
|
||||
|
@@ -19,11 +19,9 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <IntCurve_IntImpConicParConic.hxx>
|
||||
#include <IntRes2d_Intersection.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class gp_Lin2d;
|
||||
class IntRes2d_Domain;
|
||||
class gp_Circ2d;
|
||||
|
@@ -20,22 +20,17 @@
|
||||
#include <gp.hxx>
|
||||
#include <gp_Circ2d.hxx>
|
||||
#include <gp_Elips2d.hxx>
|
||||
#include <gp_Hypr2d.hxx>
|
||||
#include <gp_Lin2d.hxx>
|
||||
#include <gp_Parab2d.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <IntCurve_IConicTool.hxx>
|
||||
#include <IntCurve_IntConicConic.hxx>
|
||||
#include <IntCurve_IntConicConic_Tool.hxx>
|
||||
#include <IntCurve_PConic.hxx>
|
||||
#include <IntImpParGen.hxx>
|
||||
#include <IntRes2d_Domain.hxx>
|
||||
#include <IntRes2d_IntersectionPoint.hxx>
|
||||
#include <IntRes2d_IntersectionSegment.hxx>
|
||||
#include <IntRes2d_TypeTrans.hxx>
|
||||
#include <Precision.hxx>
|
||||
#include <Standard_ConstructionError.hxx>
|
||||
#include <Extrema_ExtElC2d.hxx>
|
||||
|
||||
Standard_Boolean Affichage=Standard_False;
|
||||
|
@@ -19,14 +19,10 @@
|
||||
|
||||
|
||||
#include <IntCurve_IntImpConicParConic.hxx>
|
||||
#include <IntCurve_IConicTool.hxx>
|
||||
#include <IntCurve_PConic.hxx>
|
||||
// #include <IntCurve_IConicPConicTool.hxx>
|
||||
#include <IntRes2d_Domain.hxx>
|
||||
#include <IntRes2d_Transition.hxx>
|
||||
#include <IntRes2d_Position.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <gp.hxx>
|
||||
|
||||
|
||||
static Standard_Real PIpPI = M_PI + M_PI;
|
||||
|
@@ -22,8 +22,6 @@
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <IntRes2d_Intersection.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
class Standard_ConstructionError;
|
||||
class IntCurve_IConicTool;
|
||||
|
@@ -21,11 +21,9 @@
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Address.hxx>
|
||||
#include <IntCurve_IConicTool.hxx>
|
||||
#include <math_FunctionWithDerivative.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class IntCurve_IConicTool;
|
||||
class IntCurve_PConic;
|
||||
class IntCurve_PConicTool;
|
||||
|
@@ -15,7 +15,6 @@
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <gp_Ax22d.hxx>
|
||||
#include <gp_Circ2d.hxx>
|
||||
#include <gp_Elips2d.hxx>
|
||||
#include <gp_Hypr2d.hxx>
|
||||
|
@@ -19,10 +19,8 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <gp_Ax22d.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <GeomAbs_CurveType.hxx>
|
||||
class gp_Elips2d;
|
||||
|
@@ -19,9 +19,7 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
class IntCurve_PConic;
|
||||
class gp_Pnt2d;
|
||||
|
@@ -19,9 +19,7 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
class IntCurve_PConic;
|
||||
class gp_Pnt2d;
|
||||
|
||||
|
@@ -19,7 +19,6 @@
|
||||
#include <IntCurveSurface_IntersectionPoint.hxx>
|
||||
#include <IntCurveSurface_IntersectionSegment.hxx>
|
||||
#include <IntCurveSurface_TransitionOnCurve.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <StdFail_NotDone.hxx>
|
||||
|
||||
#define PARAMEQUAL(a,b) (Abs((a)-(b))< (1e-8))
|
||||
|
@@ -24,8 +24,6 @@
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <IntCurveSurface_SequenceOfPnt.hxx>
|
||||
#include <IntCurveSurface_SequenceOfSeg.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class IntCurveSurface_IntersectionPoint;
|
||||
class IntCurveSurface_IntersectionSegment;
|
||||
|
||||
|
@@ -15,7 +15,6 @@
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <IntCurveSurface_IntersectionPoint.hxx>
|
||||
|
||||
//================================================================================
|
||||
|
@@ -22,7 +22,6 @@
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <IntCurveSurface_TransitionOnCurve.hxx>
|
||||
|
||||
|
||||
|
@@ -15,7 +15,6 @@
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <IntCurveSurface_IntersectionPoint.hxx>
|
||||
#include <IntCurveSurface_IntersectionSegment.hxx>
|
||||
|
||||
IntCurveSurface_IntersectionSegment::IntCurveSurface_IntersectionSegment()
|
||||
|
@@ -22,12 +22,7 @@
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <GeomAbs_CurveType.hxx>
|
||||
#include <gp_Lin.hxx>
|
||||
#include <gp_Circ.hxx>
|
||||
#include <gp_Elips.hxx>
|
||||
#include <gp_Hypr.hxx>
|
||||
#include <gp_Parab.hxx>
|
||||
#include <TColStd_HArray1OfReal.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class Standard_NoSuchObject;
|
||||
|
@@ -22,10 +22,8 @@
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Intf_Interference.hxx>
|
||||
#include <Intf_Array1OfLin.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
class IntCurveSurface_ThePolygonOfHInter;
|
||||
class IntCurveSurface_ThePolygonToolOfHInter;
|
||||
class IntCurveSurface_ThePolyhedronOfHInter;
|
||||
|
@@ -19,10 +19,7 @@
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Standard_DefineAlloc.hxx>
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class gp_Pnt;
|
||||
|
@@ -18,7 +18,6 @@
|
||||
#define _IntCurveSurface_ThePolyhedronOfHInter_HeaderFile
|
||||
|
||||
#include <Adaptor3d_Surface.hxx>
|
||||
#include <Bnd_Box.hxx>
|
||||
#include <Bnd_HArray1OfBox.hxx>
|
||||
#include <TColStd_Array1OfReal.hxx>
|
||||
|
||||
|
@@ -22,9 +22,7 @@
|
||||
#include <Standard_Handle.hxx>
|
||||
|
||||
#include <Bnd_HArray1OfBox.hxx>
|
||||
#include <Standard_Real.hxx>
|
||||
#include <Standard_Integer.hxx>
|
||||
#include <Standard_Boolean.hxx>
|
||||
class Standard_OutOfRange;
|
||||
class IntCurveSurface_ThePolyhedronOfHInter;
|
||||
class Bnd_Box;
|
||||
|
@@ -23,22 +23,17 @@
|
||||
#include <Bnd_BoundSortBox.hxx>
|
||||
#include <Bnd_Box.hxx>
|
||||
#include <BRepAdaptor_Surface.hxx>
|
||||
#include <BRepClass_FaceClassifier.hxx>
|
||||
#include <BRepTopAdaptor_TopolTool.hxx>
|
||||
#include <Geom_Line.hxx>
|
||||
#include <GeomAdaptor_Curve.hxx>
|
||||
#include <gp_Lin.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <IntCurveSurface_HInter.hxx>
|
||||
#include <IntCurveSurface_IntersectionPoint.hxx>
|
||||
#include <IntCurveSurface_SequenceOfPnt.hxx>
|
||||
#include <IntCurveSurface_TheHCurveTool.hxx>
|
||||
#include <IntCurveSurface_ThePolygonOfHInter.hxx>
|
||||
#include <IntCurveSurface_ThePolyhedronOfHInter.hxx>
|
||||
#include <IntCurveSurface_ThePolyhedronToolOfHInter.hxx>
|
||||
#include <Intf_Tool.hxx>
|
||||
#include <TopAbs.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
#include <BRep_Tool.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
|
@@ -18,13 +18,8 @@
|
||||
|
||||
#include <Adaptor3d_Curve.hxx>
|
||||
#include <Bnd_BoundSortBox.hxx>
|
||||
#include <Bnd_HArray1OfBox.hxx>
|
||||
#include <ElCLib.hxx>
|
||||
#include <gp_Lin.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <IntCurvesFace_Intersector.hxx>
|
||||
#include <TColStd_ListIteratorOfListOfInteger.hxx>
|
||||
#include <TColStd_ListOfInteger.hxx>
|
||||
#include <TopExp_Explorer.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
|
@@ -16,9 +16,6 @@
|
||||
|
||||
#include <IntImpParGen.hxx>
|
||||
|
||||
#include <gp.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <IntImpParGen_Tool.hxx>
|
||||
#include <IntRes2d_Domain.hxx>
|
||||
#include <IntRes2d_Position.hxx>
|
||||
|
@@ -18,9 +18,7 @@
|
||||
#define IntImpParGen_Tool_HeaderFile
|
||||
|
||||
#include <IntRes2d_Domain.hxx>
|
||||
#include <IntRes2d_Position.hxx>
|
||||
#include <IntRes2d_Transition.hxx>
|
||||
#include <gp_Vec2d.hxx>
|
||||
#include <gp_Pnt2d.hxx>
|
||||
|
||||
Standard_Real NormalizeOnDomain(Standard_Real&,const IntRes2d_Domain&);
|
||||
|
@@ -16,12 +16,8 @@
|
||||
|
||||
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <IntAna_Curve.hxx>
|
||||
#include <IntPatch_ALine.hxx>
|
||||
#include <IntPatch_Point.hxx>
|
||||
#include <Standard_DomainError.hxx>
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#include <Standard_Type.hxx>
|
||||
|
||||
IMPLEMENT_STANDARD_RTTIEXT(IntPatch_ALine,IntPatch_Line)
|
||||
|
@@ -15,9 +15,6 @@
|
||||
// commercial license or contractual agreement.
|
||||
|
||||
|
||||
#include <Adaptor2d_Curve2d.hxx>
|
||||
#include <Adaptor3d_Surface.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <IntPatch_ArcFunction.hxx>
|
||||
#include <IntPatch_HInterTool.hxx>
|
||||
#include <IntSurf_Quadric.hxx>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user