From 191ccdd7591981a70f3df59bb0bcd64332dd8d50 Mon Sep 17 00:00:00 2001 From: JackLee <809262979@qq.com> Date: Wed, 18 Feb 2026 21:49:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0OCCT=E5=BA=93=E5=B9=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0OpenGL=20ES=E7=9A=84OCCT=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- entry/build-profile.json5 | 1 - entry/oh-package-lock.json5 | 8 +- entry/oh-package.json5 | 2 +- .../include/AIS_AnimationAxisRotation.hxx | 49 + .../include/AIS_BaseAnimationObject.hxx | 45 + .../include/AIS_C0RegularityFilter.hxx | 50 + .../include/AIS_ConcentricRelation.hxx | 22 + .../include/AIS_ConnectedInteractive.hxx | 149 ++ .../include/AIS_DataMapOfShapeDrawer.hxx | 24 + .../include/AIS_EqualDistanceRelation.hxx | 22 + .../include/AIS_EqualRadiusRelation.hxx | 22 + .../include/AIS_InteractiveContext.hxx | 1686 ++++++++++++++++ .../include/AIS_MaxRadiusDimension.hxx | 22 + .../include/AIS_MinRadiusDimension.hxx | 22 + .../include/AIS_NArray1OfEntityOwner.hxx | 22 + .../include/AIS_NListOfEntityOwner.hxx | 24 + .../include/AIS_PerpendicularRelation.hxx | 22 + .../include/Adaptor3d_CurveOnSurface.hxx | 219 +++ .../include/Adaptor3d_HSurfaceTool.hxx | 294 +++ .../include/AdvApp2Var_ApproxF2var.hxx | 208 ++ .../include/AdvApp2Var_CriterionType.hxx | 31 + .../include/AdvApp2Var_SequenceOfNode.hxx | 25 + .../include/AdvApprox_ApproxAFunction.hxx | 200 ++ .../include/AdvApprox_ApproxAFunction.lxx | 121 ++ .../include/AdvApprox_DichoCutting.hxx | 45 + .../include/AdvApprox_SimpleApprox.hxx | 110 ++ .../include/AppDef_SmoothCriterion.hxx | 102 + .../include/AppDef_TheLeastSquares.hxx | 283 +++ .../include/AppParCurves_Constraint.hxx | 32 + .../include/AppParCurves_MultiCurve.hxx | 213 +++ .../include/AppParCurves_MultiPoint.hxx | 141 ++ .../include/AppParCurves_MultiPoint.lxx | 49 + .../include/ApproxInt_MultiLineTool.lxx | 185 ++ .../include/Approx_Array1OfAdHSurface.hxx | 25 + .../include/Approx_Array1OfGTrsf2d.hxx | 25 + .../include/Approx_HArray1OfGTrsf2d.hxx | 25 + .../include/Approx_MCurvesToBSpCurve.hxx | 55 + .../include/Approx_SweepApproximation.hxx | 240 +++ .../include/Approx_SweepApproximation.lxx | 167 ++ .../include/Aspect_DisplayConnection.hxx | 132 ++ .../include/Aspect_GradientBackground.hxx | 59 + .../include/Aspect_GradientFillMethod.hxx | 48 + .../include/Aspect_GraphicsLibrary.hxx | 24 + .../include/Aspect_PolygonOffsetMode.hxx | 32 + .../include/Aspect_RectangularGrid.hxx | 100 + .../include/Aspect_RenderingContext.hxx | 49 + .../include/Aspect_SequenceOfColor.hxx | 24 + .../include/Aspect_SkydomeBackground.hxx | 103 + .../include/Aspect_TrackedDevicePose.hxx | 40 + .../include/Aspect_TypeOfDeflection.hxx | 28 + .../include/Aspect_TypeOfDisplayText.hxx | 30 + .../include/Aspect_TypeOfFacingModel.hxx | 26 + .../include/Aspect_TypeOfStyleText.hxx | 32 + .../include/Aspect_XRAnalogActionData.hxx | 42 + .../include/Aspect_XRGenericAction.hxx | 45 + .../include/Aspect_XRHapticActionData.hxx | 41 + .../include/Aspect_XRPoseActionData.hxx | 37 + .../include/BOPAlgo_ArgumentAnalyzer.hxx | 147 ++ .../include/BOPAlgo_ArgumentAnalyzer.lxx | 62 + .../include/BOPAlgo_ListOfCheckResult.hxx | 22 + .../include/BOPAlgo_PArgumentAnalyzer.hxx | 21 + .../include/BOPAlgo_RemoveFeatures.hxx | 264 +++ .../include/BOPAlgo_SectionAttribute.hxx | 67 + .../include/BOPDS_CoupleOfPaveBlocks.hxx | 176 ++ .../include/BOPDS_MapOfCommonBlock.hxx | 24 + .../include/BOPDS_VectorOfFaceInfo.hxx | 23 + .../include/BOPDS_VectorOfIndexRange.hxx | 23 + .../include/BOPDS_VectorOfInterfEE.hxx | 23 + .../include/BOPDS_VectorOfInterfEF.hxx | 23 + .../include/BOPDS_VectorOfInterfEZ.hxx | 24 + .../include/BOPDS_VectorOfInterfFF.hxx | 23 + .../include/BOPDS_VectorOfInterfFZ.hxx | 24 + .../include/BOPDS_VectorOfInterfVE.hxx | 23 + .../include/BOPDS_VectorOfInterfVF.hxx | 23 + .../include/BOPDS_VectorOfInterfVV.hxx | 23 + .../include/BOPDS_VectorOfInterfVZ.hxx | 24 + .../include/BOPDS_VectorOfInterfZZ.hxx | 24 + .../include/BOPDS_VectorOfShapeInfo.hxx | 23 + .../include/BOPTools_ConnexityBlock.hxx | 66 + .../include/BOPTools_CoupleOfShape.hxx | 49 + .../include/BRepAdaptor_Array1OfCurve.hxx | 25 + .../include/BRepAlgoAPI_BuilderAlgo.hxx | 233 +++ .../include/BRepAlgoAPI_Defeaturing.hxx | 191 ++ .../include/BRepAlgo_FaceRestrictor.hxx | 90 + .../include/BRepAlgo_NormalProjection.hxx | 121 ++ .../include/BRepApprox_SurfaceTool.hxx | 174 ++ .../include/BRepApprox_SurfaceTool.lxx | 252 +++ .../include/BRepBlend_AppFuncRstRst.hxx | 56 + .../include/BRepBlend_ConstThroatInv.hxx | 22 + .../include/BRepBlend_CurvPointRadInv.hxx | 98 + .../include/BRepBlend_HCurve2dTool.hxx | 140 ++ .../include/BRepBlend_HCurve2dTool.lxx | 195 ++ .../include/BRepBlend_RstRstConstRad.hxx | 279 +++ .../include/BRepBlend_RstRstEvolRad.hxx | 284 +++ .../include/BRepBlend_SequenceOfLine.hxx | 25 + .../include/BRepBlend_SurfRstConstRad.hxx | 260 +++ .../include/BRepBlend_SurfRstEvolRad.hxx | 264 +++ .../include/BRepBuilderAPI_CellFilter.hxx | 23 + .../include/BRepBuilderAPI_Collect.hxx | 56 + .../include/BRepBuilderAPI_Command.hxx | 61 + .../include/BRepBuilderAPI_EdgeError.hxx | 55 + .../include/BRepBuilderAPI_FaceError.hxx | 42 + .../include/BRepBuilderAPI_FastSewing.hxx | 295 +++ .../include/BRepBuilderAPI_FindPlane.hxx | 76 + .../include/BRepBuilderAPI_GTransform.hxx | 106 ++ .../include/BRepBuilderAPI_MakeEdge.hxx | 355 ++++ .../include/BRepBuilderAPI_MakeFace.hxx | 296 +++ .../include/BRepBuilderAPI_MakeShape.hxx | 69 + .../include/BRepBuilderAPI_MakeShell.hxx | 118 ++ .../include/BRepBuilderAPI_MakeSolid.hxx | 127 ++ .../include/BRepBuilderAPI_MakeWire.hxx | 188 ++ .../include/BRepBuilderAPI_PipeError.hxx | 29 + .../include/BRepBuilderAPI_Transform.hxx | 97 + .../include/BRepBuilderAPI_WireError.hxx | 38 + .../include/BRepCheck_ListOfStatus.hxx | 28 + .../include/BRepClass3d_BndBoxTree.hxx | 141 ++ .../include/BRepClass3d_MapOfInter.hxx | 29 + .../include/BRepClass3d_SClassifier.hxx | 90 + .../include/BRepClass_FaceClassifier.hxx | 89 + .../include/BRepClass_FaceExplorer.hxx | 128 ++ .../include/BRepClass_FaceExplorer.lxx | 55 + .../include/BRepExtrema_DistanceSS.hxx | 133 ++ .../include/BRepExtrema_OverlapTool.hxx | 134 ++ .../include/BRepExtrema_SolutionElem.hxx | 144 ++ .../include/BRepExtrema_SupportType.hxx | 24 + .../include/BRepExtrema_TriangleSet.hxx | 132 ++ .../include/BRepFeat_MakeLinearForm.hxx | 134 ++ .../include/BRepFeat_MakeLinearForm.lxx | 43 + .../include/BRepFeat_PerfSelection.hxx | 39 + .../include/BRepFill_AdvancedEvolved.hxx | 122 ++ .../include/BRepFill_ApproxSeewing.hxx | 63 + .../include/BRepFill_CompatibleWires.hxx | 98 + .../include/BRepFill_CurveConstraint.hxx | 62 + .../include/BRepFill_EdgeOnSurfLaw.hxx | 48 + .../include/BRepFill_OffsetAncestors.hxx | 58 + .../include/BRepFill_TransitionStyle.hxx | 27 + .../include/BRepFill_TrimShellCorner.hxx | 98 + .../include/BRepFill_TrimSurfaceTool.hxx | 83 + .../include/BRepFill_TypeOfContact.hxx | 28 + .../include/BRepFilletAPI_MakeFillet.hxx | 403 ++++ .../include/BRepLib_PointCloudShape.hxx | 114 ++ .../include/BRepMAT2d_BisectingLocus.hxx | 145 ++ .../include/BRepMAT2d_LinkTopoBilo.hxx | 86 + .../include/BRepMesh_CircleInspector.hxx | 122 ++ .../include/BRepMesh_DegreeOfFreedom.hxx | 28 + .../include/BRepMesh_DiscretFactory.hxx | 102 + .../include/BRepMesh_IncrementalMesh.hxx | 137 ++ .../include/BRepMesh_MeshAlgoFactory.hxx | 41 + .../include/BRepMesh_PluginEntryType.hxx | 26 + .../include/BRepMesh_VertexInspector.hxx | 142 ++ .../include/BRepOffsetAPI_DraftAngle.hxx | 208 ++ .../include/BRepOffsetAPI_MakeDraft.hxx | 101 + .../include/BRepOffsetAPI_MakeOffset.hxx | 111 ++ .../include/BRepOffsetAPI_MakePipe.hxx | 92 + .../include/BRepOffsetAPI_MiddlePath.hxx | 57 + .../include/BRepOffset_SimpleOffset.hxx | 190 ++ .../include/BRepPreviewAPI_MakeBox.hxx | 57 + .../include/BRepPrimAPI_MakeCylinder.hxx | 101 + .../include/BRepPrimAPI_MakeOneAxis.hxx | 59 + .../include/BRepPrimAPI_MakeSphere.hxx | 150 ++ .../include/BRepTools_Modification.hxx | 156 ++ .../include/BRepTools_PurgeLocations.hxx | 54 + .../include/BRepTools_Substitution.hxx | 75 + .../include/BRepTools_WireExplorer.hxx | 110 ++ .../include/BRepTopAdaptor_FClass2d.hxx | 76 + .../include/BRepTopAdaptor_HVertex.hxx | 67 + .../include/BRepTopAdaptor_HVertex.lxx | 23 + .../include/BRepTopAdaptor_SeqOfPtr.hxx | 24 + .../include/BRepTopAdaptor_TopolTool.hxx | 148 ++ .../include/BRep_CurveOnClosedSurface.hxx | 97 + .../include/BRep_CurveOnClosedSurface.lxx | 37 + .../include/BRep_CurveRepresentation.hxx | 165 ++ .../include/BRep_CurveRepresentation.lxx | 35 + .../include/BRep_PointRepresentation.hxx | 100 + .../include/BRep_PointRepresentation.lxx | 55 + .../include/BVH_SpatialMedianBuilder.hxx | 40 + .../include/BinMDF_ReferenceDriver.hxx | 56 + .../include/BinMDF_TagSourceDriver.hxx | 55 + .../include/BinMDataStd_IntegerDriver.hxx | 56 + .../include/BinMDataStd_RealDriver.hxx | 56 + .../include/BinMDocStd_XLinkDriver.hxx | 57 + .../include/BinMFunction_ScopeDriver.hxx | 57 + .../include/BinMNaming_NamingDriver.hxx | 56 + .../include/BinMXCAFDoc_ColorDriver.hxx | 55 + .../include/BinMXCAFDoc_DatumDriver.hxx | 55 + .../include/BinMXCAFDoc_DimTolDriver.hxx | 55 + .../include/BinMXCAFDoc_NoteDriver.hxx | 51 + .../include/BinTObjDrivers_XYZDriver.hxx | 58 + .../include/BinTools_FormatVersion.hxx | 39 + .../include/BinTools_LocationSetPtr.hxx | 22 + .../include/Bisector_FunctionInter.hxx | 63 + .../include/BlendFunc_ConstThroatInv.hxx | 80 + .../include/BlendFunc_SectionShape.hxx | 28 + .../include/Blend_CurvPointFuncInv.hxx | 94 + .../include/Blend_SurfPointFuncInv.hxx | 95 + .../include/CDF_StoreSetNameStatus.hxx | 27 + .../include/CDF_SubComponentStatus.hxx | 28 + .../include/CDM_MetaDataLookUpTable.hxx | 29 + .../include/CPnts_UniformDeflection.hxx | 178 ++ .../include/CPnts_UniformDeflection.lxx | 60 + .../include/CSLib_DerivativeStatus.hxx | 52 + .../include/ChFi2d_ConstructionError.hxx | 41 + .../include/ChFiDS_FaceInterference.hxx | 83 + .../include/ChFiDS_FaceInterference.lxx | 141 ++ .../include/ChFiDS_SequenceOfSpine.hxx | 25 + .../include/ChFiDS_TypeOfConcavity.hxx | 30 + .../include/ChFiKPart_ComputeData_CS.hxx | 36 + .../include/Contap_TheSearchInside.hxx | 101 + .../include/Contap_TheSequenceOfLine.hxx | 25 + .../include/DEBREP_ConfigurationNode.hxx | 103 + .../include/DEBRepCascade_Provider.hxx | 22 + .../include/DEGLTF_ConfigurationNode.hxx | 118 ++ .../include/DEIGES_ConfigurationNode.hxx | 91 + .../include/DEOBJ_ConfigurationNode.hxx | 102 + .../include/DEPLY_ConfigurationNode.hxx | 109 ++ .../include/DESTEP_ConfigurationNode.hxx | 93 + .../include/DESTL_ConfigurationNode.hxx | 98 + .../include/DEVRML_ConfigurationNode.hxx | 111 ++ .../include/DEXCAFCascade_Provider.hxx | 22 + .../include/DEXCAF_ConfigurationNode.hxx | 100 + .../include/DE_ConfigurationContext.hxx | 157 ++ .../include/DsgPrs_AnglePresentation.hxx | 144 ++ .../include/DsgPrs_FixPresentation.hxx | 51 + .../include/DsgPrs_ParalPresentation.hxx | 72 + .../include/DsgPrs_SymbPresentation.hxx | 48 + .../include/Extrema_Array1OfPOnCurv.hxx | 25 + .../include/Extrema_Array1OfPOnSurf.hxx | 25 + .../include/Extrema_Array2OfPOnCurv.hxx | 25 + .../include/Extrema_Array2OfPOnSurf.hxx | 25 + .../include/Extrema_CCLocFOfLocECC.hxx | 164 ++ .../include/Extrema_CCLocFOfLocECC2d.hxx | 164 ++ .../include/Extrema_GenLocateExtCS.hxx | 80 + .../include/Extrema_GenLocateExtPS.hxx | 83 + .../include/Extrema_GenLocateExtSS.hxx | 80 + .../include/Extrema_HArray1OfPOnCurv.hxx | 25 + .../include/Extrema_HArray1OfPOnSurf.hxx | 25 + .../include/Extrema_HArray2OfPOnCurv.hxx | 26 + .../include/Extrema_HArray2OfPOnSurf.hxx | 26 + .../include/Extrema_HUBTreeOfSphere.hxx | 27 + .../include/Extrema_PCFOfEPCOfExtPC.hxx | 106 ++ .../include/FEmTool_HAssemblyTable.hxx | 26 + .../include/FEmTool_SeqOfLinConstr.hxx | 27 + .../include/FairCurve_AnalysisCode.hxx | 41 + .../include/FairCurve_EnergyOfBatten.hxx | 86 + .../include/FairCurve_EnergyOfBatten.lxx | 22 + .../include/Font_NListOfSystemFont.hxx | 29 + .../include/GCE2d_MakeArcOfEllipse.hxx | 79 + .../include/GCE2d_MakeArcOfHyperbola.hxx | 78 + .../include/GCE2d_MakeArcOfParabola.hxx | 78 + .../include/GCPnts_UniformAbscissa.hxx | 259 +++ .../include/GCPnts_UniformDeflection.hxx | 221 +++ .../include/GC_MakeTrimmedCylinder.hxx | 80 + .../include/GccEnt_Array1OfPosition.hxx | 25 + .../include/Geom2dGcc_Circ2d2TanOn.hxx | 212 +++ .../include/Geom2dGcc_Circ2d2TanRad.hxx | 218 +++ .../include/Geom2dGcc_Circ2d3TanIter.hxx | 223 +++ .../include/Geom2dGcc_Circ2dTanCen.hxx | 154 ++ .../include/Geom2dGcc_Circ2dTanOnRad.hxx | 208 ++ .../include/Geom2dGcc_FunctionTanObl.hxx | 60 + .../include/Geom2dGcc_Lin2d2TanIter.hxx | 114 ++ .../include/Geom2dGcc_QualifiedCurve.hxx | 105 + .../include/Geom2dHatch_Classifier.hxx | 111 ++ .../include/Geom2dHatch_Intersector.hxx | 87 + .../include/Geom2dHatch_Intersector.lxx | 81 + .../include/Geom2dLProp_CurAndInf2d.hxx | 75 + .../include/Geom2dLProp_Curve2dTool.hxx | 81 + .../include/Geom2dLProp_FuncCurExt.hxx | 57 + .../include/Geom2dLProp_FuncCurNul.hxx | 52 + .../include/Geom2dToIGES_Geom2dCurve.hxx | 63 + .../include/Geom2dToIGES_Geom2dPoint.hxx | 57 + .../include/GeomAPI_PointsToBSpline.hxx | 170 ++ .../include/GeomConvert_ApproxCurve.hxx | 97 + .../include/GeomFill_BSplineCurves.hxx | 113 ++ .../include/GeomFill_BSplineCurves.lxx | 25 + .../include/GeomFill_BoundWithSurf.hxx | 111 ++ .../include/GeomFill_CoonsAlgPatch.hxx | 87 + .../include/GeomFill_CorrectedFrenet.hxx | 169 ++ .../include/GeomFill_DraftTrihedron.hxx | 106 ++ .../include/GeomFill_EvolvedSection.hxx | 178 ++ .../include/GeomFill_FunctionDraft.hxx | 98 + .../include/GeomFill_FunctionGuide.hxx | 121 ++ .../include/GeomFill_HSequenceOfAx2.hxx | 26 + .../include/GeomFill_LocationDraft.hxx | 196 ++ .../include/GeomFill_LocationGuide.hxx | 233 +++ .../include/GeomFill_SequenceOfAx2.hxx | 25 + .../include/GeomFill_SequenceOfTrsf.hxx | 25 + .../include/GeomFill_SweepFunction.hxx | 184 ++ .../include/GeomFill_UniformSection.hxx | 177 ++ .../include/GeomInt_LineConstructor.hxx | 69 + .../include/GeomInt_LineConstructor.lxx | 83 + .../include/GeomLib_IsPlanarSurface.hxx | 48 + .../include/GeomPlate_Array1OfHCurve.hxx | 25 + .../include/GeomPlate_SequenceOfAij.hxx | 25 + .../include/GeomToIGES_GeomSurface.hxx | 231 +++ .../include/GeomToStep_MakeDirection.hxx | 55 + .../include/GeomToStep_MakeEllipse.hxx | 59 + .../include/GeomToStep_MakeHyperbola.hxx | 52 + .../include/GeomToStep_MakeParabola.hxx | 52 + .../include/GeomToStep_MakePolyline.hxx | 52 + .../include/GeomToStep_MakeSurface.hxx | 49 + .../include/Geom_CylindricalSurface.hxx | 259 +++ .../include/Geom_ElementarySurface.hxx | 132 ++ .../include/Geom_OsculatingSurface.hxx | 113 ++ .../include/Geom_SurfaceOfRevolution.hxx | 337 ++++ .../include/Geom_UndefinedDerivative.hxx | 38 + .../include/Geom_VectorWithMagnitude.hxx | 145 ++ .../include/Graphic3d_ArrayOfPoints.hxx | 57 + .../include/Graphic3d_AspectLine3d.hxx | 64 + .../include/Graphic3d_AspectMarker3d.hxx | 83 + .../include/Graphic3d_AspectText3d.hxx | 121 ++ .../include/Graphic3d_AttribBuffer.hxx | 88 + .../include/Graphic3d_CappingFlags.hxx | 30 + .../include/Graphic3d_CubeMapOrder.hxx | 156 ++ .../include/Graphic3d_CubeMapPacked.hxx | 77 + .../include/Graphic3d_DiagnosticInfo.hxx | 39 + .../include/Graphic3d_FrameStatsData.hxx | 163 ++ .../include/Graphic3d_GraphicDriver.hxx | 166 ++ .../include/Graphic3d_MapOfStructure.hxx | 24 + .../include/Graphic3d_MaterialAspect.hxx | 299 +++ .../include/Graphic3d_MediaTexture.hxx | 52 + .../include/Graphic3d_NameOfMaterial.hxx | 84 + .../include/Graphic3d_PolygonOffset.hxx | 46 + .../include/Graphic3d_RenderingMode.hxx | 29 + .../include/Graphic3d_ShaderManager.hxx | 245 +++ .../include/Graphic3d_ShaderObject.hxx | 126 ++ .../include/Graphic3d_ShaderProgram.hxx | 286 +++ .../include/Graphic3d_ShaderVariable.hxx | 177 ++ .../include/Graphic3d_ShaderVariable.lxx | 60 + .../include/Graphic3d_Texture2Dplane.hxx | 134 ++ .../include/Graphic3d_TextureParams.hxx | 154 ++ .../include/Graphic3d_TextureSetBits.hxx | 31 + .../include/Graphic3d_TransModeFlags.hxx | 48 + .../include/Graphic3d_TransformPers.hxx | 732 +++++++ .../include/Graphic3d_TransformUtils.hxx | 484 +++++ .../include/Graphic3d_TypeOfAnswer.hxx | 33 + .../include/Graphic3d_TypeOfMaterial.hxx | 28 + .../include/Graphic3d_TypeOfTexture.hxx | 46 + .../include/Graphic3d_ViewAffinity.hxx | 69 + .../include/Graphic3d_ZLayerSettings.hxx | 226 +++ .../include/HLRAlgo_HArray1OfPHDat.hxx | 25 + .../include/HLRAlgo_HArray1OfPINod.hxx | 25 + .../include/HLRAlgo_HArray1OfPISeg.hxx | 25 + .../include/HLRAlgo_HArray1OfTData.hxx | 25 + .../include/HLRAlgo_InterferenceList.hxx | 26 + .../include/HLRAlgo_PolyHidingData.hxx | 73 + .../include/HLRAlgo_PolyInternalData.hxx | 115 ++ .../include/HLRAlgo_PolyInternalData.lxx | 155 ++ .../include/HLRAlgo_PolyInternalNode.hxx | 73 + .../include/HLRBRep_PolyHLRToShape.hxx | 127 ++ .../include/HLRBRep_PolyHLRToShape.lxx | 197 ++ .../include/HLRBRep_SeqOfShapeBounds.hxx | 25 + .../include/HLRTopoBRep_FaceIsoLiner.hxx | 61 + .../include/HLRTopoBRep_ListOfVData.hxx | 26 + .../include/HatchGen_PointOnElement.hxx | 75 + .../include/HatchGen_PointOnElement.lxx | 35 + .../include/HatchGen_PointOnHatching.hxx | 92 + .../include/HatchGen_PointsOnElement.hxx | 25 + .../include/HeaderSection_FileName.hxx | 98 + .../include/HeaderSection_FileSchema.hxx | 56 + .../include/HeaderSection_Protocol.hxx | 50 + .../include/IFGraph_ExternalSources.hxx | 62 + .../include/IFGraph_StrongComponants.hxx | 48 + .../include/IFGraph_SubPartsIterator.hxx | 164 ++ .../include/IFSelect_GeneralModifier.hxx | 117 ++ .../include/IFSelect_HSeqOfSelection.hxx | 25 + .../include/IFSelect_ModifEditForm.hxx | 61 + .../include/IFSelect_SelectAnyList.hxx | 138 ++ .../include/IFSelect_SelectAnyType.hxx | 53 + .../include/IFSelect_SelectCombine.hxx | 83 + .../include/IFSelect_SelectControl.hxx | 75 + .../include/IFSelect_SelectExplore.hxx | 99 + .../include/IFSelect_SelectExtract.hxx | 96 + .../include/IFSelect_SelectPointed.hxx | 130 ++ .../include/IFSelect_SelectRootComps.hxx | 73 + .../include/IFSelect_SelectSharing.hxx | 56 + .../include/IFSelect_SelectSignature.hxx | 120 ++ .../include/IFSelect_SessionDumper.hxx | 103 + .../include/IFSelect_ShareOutResult.hxx | 168 ++ .../include/IFSelect_SignatureList.hxx | 151 ++ .../include/IFSelect_TSeqOfDispatch.hxx | 25 + .../include/IFSelect_TSeqOfSelection.hxx | 25 + .../include/IGESAppli_Array1OfFlow.hxx | 25 + .../include/IGESAppli_Array1OfNode.hxx | 25 + .../include/IGESAppli_ElementResults.hxx | 172 ++ .../include/IGESAppli_FiniteElement.hxx | 72 + .../include/IGESAppli_FlowLineSpec.hxx | 62 + .../include/IGESAppli_GeneralModule.hxx | 89 + .../include/IGESAppli_HArray1OfFlow.hxx | 26 + .../include/IGESAppli_HArray1OfNode.hxx | 25 + .../include/IGESAppli_LevelFunction.hxx | 69 + .../include/IGESAppli_LineWidening.hxx | 101 + .../include/IGESAppli_NodalResults.hxx | 109 ++ .../include/IGESAppli_PWBDrilledHole.hxx | 73 + .../include/IGESAppli_SpecificModule.hxx | 58 + .../include/IGESAppli_ToolPartNumber.hxx | 88 + .../include/IGESAppli_ToolPinNumber.hxx | 88 + .../include/IGESAppli_ToolPipingFlow.hxx | 88 + .../include/IGESBasic_AssocGroupType.hxx | 66 + .../include/IGESBasic_GeneralModule.hxx | 89 + .../include/IGESBasic_OrderedGroup.hxx | 46 + .../include/IGESBasic_SingleParent.hxx | 73 + .../include/IGESBasic_SpecificModule.hxx | 59 + .../include/IGESBasic_SubfigureDef.hxx | 78 + .../include/IGESBasic_ToolHierarchy.hxx | 88 + .../include/IGESCAFControl_Provider.hxx | 22 + .../include/IGESControl_ActorWrite.hxx | 54 + .../include/IGESControl_Controller.hxx | 84 + .../include/IGESControl_IGESBoundary.hxx | 75 + .../include/IGESConvGeom_GeomBuilder.hxx | 134 ++ .../include/IGESData_Array1OfDirPart.hxx | 25 + .../include/IGESData_DefaultGeneral.hxx | 80 + .../include/IGESData_DefaultSpecific.hxx | 53 + .../include/IGESData_FileRecognizer.hxx | 79 + .../include/IGESData_GeneralModule.hxx | 165 ++ .../include/IGESData_GlobalSection.hxx | 282 +++ .../include/IGESData_IGESReaderData.hxx | 166 ++ .../include/IGESData_IGESReaderTool.hxx | 129 ++ .../include/IGESData_LevelListEntity.hxx | 50 + .../include/IGESData_LineFontEntity.hxx | 39 + .../include/IGESData_NodeOfWriterLib.hxx | 62 + .../include/IGESData_ReadWriteModule.hxx | 106 ++ .../include/IGESData_SpecificModule.hxx | 74 + .../include/IGESData_UndefinedEntity.hxx | 113 ++ .../include/IGESData_ViewKindEntity.hxx | 55 + .../include/IGESDefs_AttributeTable.hxx | 117 ++ .../include/IGESDefs_GeneralModule.hxx | 87 + .../include/IGESDefs_ReadWriteModule.hxx | 64 + .../include/IGESDefs_SpecificModule.hxx | 52 + .../include/IGESDefs_ToolGenericData.hxx | 84 + .../include/IGESDefs_ToolTabularData.hxx | 84 + .../include/IGESDefs_ToolUnitsData.hxx | 84 + .../include/IGESDimen_BasicDimension.hxx | 73 + .../include/IGESDimen_CurveDimension.hxx | 104 + .../include/IGESDimen_DimensionUnits.hxx | 103 + .../include/IGESDimen_GeneralLabel.hxx | 65 + .../include/IGESDimen_GeneralModule.hxx | 87 + .../include/IGESDimen_GeneralSymbol.hxx | 86 + .../include/IGESDimen_NewGeneralNote.hxx | 289 +++ .../include/IGESDimen_PointDimension.hxx | 80 + .../include/IGESDimen_SectionedArea.hxx | 105 + .../include/IGESDimen_SpecificModule.hxx | 61 + .../include/IGESDimen_ToolCenterLine.hxx | 88 + .../include/IGESDimen_ToolFlagNote.hxx | 84 + .../include/IGESDraw_GeneralModule.hxx | 110 ++ .../include/IGESDraw_PerspectiveView.hxx | 159 ++ .../include/IGESDraw_ReadWriteModule.hxx | 64 + .../include/IGESDraw_SpecificModule.hxx | 59 + .../include/IGESGeom_BSplineSurface.hxx | 192 ++ .../include/IGESGeom_BoundedSurface.hxx | 75 + .../include/IGESGeom_CompositeCurve.hxx | 59 + .../include/IGESGeom_CurveOnSurface.hxx | 90 + .../include/IGESGeom_GeneralModule.hxx | 88 + .../include/IGESGeom_OffsetSurface.hxx | 76 + .../include/IGESGeom_ReadWriteModule.hxx | 64 + .../include/IGESGeom_SpecificModule.hxx | 59 + .../include/IGESGeom_SplineSurface.hxx | 129 ++ .../include/IGESGeom_ToolCircularArc.hxx | 84 + .../include/IGESGeom_ToolCopiousData.hxx | 84 + .../include/IGESGeom_ToolDirection.hxx | 84 + .../include/IGESGeom_ToolOffsetCurve.hxx | 88 + .../include/IGESGeom_ToolSplineCurve.hxx | 84 + .../include/IGESGeom_TrimmedSurface.hxx | 93 + .../include/IGESGraph_Array1OfColor.hxx | 25 + .../include/IGESGraph_DrawingUnits.hxx | 72 + .../include/IGESGraph_GeneralModule.hxx | 87 + .../include/IGESGraph_HArray1OfColor.hxx | 25 + .../include/IGESGraph_SpecificModule.hxx | 60 + .../include/IGESGraph_ToolHighLight.hxx | 88 + .../include/IGESSelect_AutoCorrect.hxx | 77 + .../include/IGESSelect_ComputeStatus.hxx | 64 + .../include/IGESSelect_EditDirPart.hxx | 73 + .../include/IGESSelect_FileModifier.hxx | 55 + .../include/IGESSelect_FloatFormat.hxx | 105 + .../include/IGESSelect_IGESTypeForm.hxx | 65 + .../include/IGESSelect_ModelModifier.hxx | 73 + .../include/IGESSelect_RebuildGroups.hxx | 64 + .../include/IGESSelect_RemoveCurves.hxx | 59 + .../include/IGESSelect_SelectFaces.hxx | 66 + .../include/IGESSelect_SelectPCurves.hxx | 65 + .../include/IGESSelect_SetVersion5.hxx | 62 + .../include/IGESSelect_WorkLibrary.hxx | 74 + .../include/IGESSolid_Array1OfFace.hxx | 25 + .../include/IGESSolid_Array1OfLoop.hxx | 25 + .../include/IGESSolid_Array1OfShell.hxx | 25 + .../include/IGESSolid_ConicalSurface.hxx | 87 + .../include/IGESSolid_GeneralModule.hxx | 87 + .../include/IGESSolid_HArray1OfFace.hxx | 25 + .../include/IGESSolid_HArray1OfLoop.hxx | 25 + .../include/IGESSolid_HArray1OfShell.hxx | 25 + .../include/IGESSolid_ManifoldSolid.hxx | 81 + .../include/IGESSolid_PlaneSurface.hxx | 72 + .../include/IGESSolid_SolidAssembly.hxx | 82 + .../include/IGESSolid_SolidInstance.hxx | 62 + .../include/IGESSolid_SpecificModule.hxx | 52 + .../include/IGESSolid_ToolCylinder.hxx | 84 + .../include/IGESSolid_ToolEdgeList.hxx | 84 + .../include/IGESSolid_ToolEllipsoid.hxx | 84 + .../include/IGESSolid_ToolVertexList.hxx | 84 + .../include/IGESToBRep_AlgoContainer.hxx | 50 + .../include/IGESToBRep_AlgoContainer.lxx | 36 + .../include/IGESToBRep_BasicSurface.hxx | 101 + .../include/IGESToBRep_IGESBoundary.hxx | 170 ++ .../include/IGESToBRep_IGESBoundary.lxx | 30 + .../include/IGESToBRep_ToolContainer.hxx | 44 + .../include/IGESToBRep_TopoSurface.hxx | 102 + .../include/IMeshData_ParametersList.hxx | 48 + .../include/IMeshTools_MeshAlgoType.hxx | 29 + .../include/IMeshTools_MeshBuilder.hxx | 66 + .../include/IMeshTools_ModelBuilder.hxx | 72 + .../include/IMeshTools_ShapeExplorer.hxx | 40 + .../include/IMeshTools_ShapeVisitor.hxx | 45 + .../include/Image_CompressedFormat.hxx | 35 + .../include/Image_CompressedPixMap.hxx | 114 ++ .../include/Image_SupportedFormats.hxx | 62 + .../include/IntAna2d_AnaIntersection.hxx | 137 ++ .../include/IntAna2d_AnaIntersection.lxx | 81 + .../include/IntCurveSurface_HInter.hxx | 209 ++ .../include/IntCurve_IntConicConic.hxx | 330 ++++ .../include/IntCurve_IntConicConic.lxx | 198 ++ .../include/IntImp_ComputeTangence.hxx | 28 + .../include/IntPatch_LineConstructor.hxx | 52 + .../include/IntPatch_PolyhedronTool.hxx | 82 + .../include/IntPatch_PolyhedronTool.lxx | 62 + .../include/IntPatch_SequenceOfLine.hxx | 25 + .../include/IntPatch_SequenceOfPoint.hxx | 25 + .../include/IntPatch_SpecialPoints.hxx | 163 ++ .../include/IntPatch_TheSearchInside.hxx | 100 + .../include/IntPatch_TheSurfFunction.hxx | 123 ++ .../include/IntPolyh_ArrayOfPoints.hxx | 24 + .../include/IntPolyh_ListOfCouples.hxx | 25 + .../include/IntSurf_SequenceOfCouple.hxx | 25 + .../include/IntTools_Array1OfRange.hxx | 24 + .../include/IntTools_Array1OfRoots.hxx | 24 + .../include/IntTools_BaseRangeSample.hxx | 41 + .../include/IntTools_CArray1OfReal.hxx | 24 + .../include/IntTools_MarkedRangeSet.hxx | 134 ++ .../include/IntTools_SequenceOfRoots.hxx | 24 + .../include/IntWalk_StatusDeflection.hxx | 30 + .../include/IntWalk_VectorOfInteger.hxx | 27 + .../include/Interface_CheckFailure.hxx | 38 + .../include/Interface_CheckIterator.hxx | 211 ++ .../include/Interface_EntityCluster.hxx | 116 ++ .../include/Interface_EntityIterator.hxx | 102 + .../include/Interface_FileParameter.hxx | 78 + .../include/Interface_FileReaderData.hxx | 221 +++ .../include/Interface_FileReaderTool.hxx | 206 ++ .../include/Interface_GeneralModule.hxx | 220 +++ .../include/Interface_GraphContent.hxx | 80 + .../include/Interface_InterfaceError.hxx | 38 + .../include/Interface_InterfaceModel.hxx | 442 +++++ .../include/Interface_ReaderModule.hxx | 81 + .../include/Interface_ReportEntity.hxx | 112 ++ .../include/Interface_ValueInterpret.hxx | 24 + .../include/Interface_ValueSatisfies.hxx | 21 + .../include/Intf_SeqOfSectionPoint.hxx | 25 + .../include/Intrv_SequenceOfInterval.hxx | 25 + .../include/LDOM_LDOMImplementation.hxx | 36 + .../include/LProp_SequenceOfCIType.hxx | 25 + .../include/Law_BSplineKnotSplitting.hxx | 80 + .../include/Law_ListIteratorOfLaws.hxx | 19 + .../include/LocOpe_DataMapOfShapePnt.hxx | 28 + .../include/LocOpe_FindEdgesInFace.hxx | 58 + .../include/LocOpe_FindEdgesInFace.lxx | 74 + .../include/LocOpe_SequenceOfPntFace.hxx | 25 + .../include/MAT2d_Array2OfConnexion.hxx | 25 + .../include/MAT_DataMapOfIntegerArc.hxx | 28 + .../include/MAT_DataMapOfIntegerNode.hxx | 28 + .../include/MAT_SequenceOfBasicElt.hxx | 25 + .../include/MeshVS_BuilderPriority.hxx | 32 + .../include/MeshVS_DisplayModeFlags.hxx | 44 + .../include/MeshVS_DrawerAttribute.hxx | 78 + .../include/MeshVS_MeshEntityOwner.hxx | 81 + .../include/MeshVS_SensitiveSegment.hxx | 34 + .../include/MeshVS_VectorPrsBuilder.hxx | 127 ++ .../include/Message_AttributeMeter.hxx | 103 + .../include/Message_AttributeObject.hxx | 46 + .../include/Message_AttributeStream.hxx | 45 + .../include/Message_CompositeAlerts.hxx | 83 + .../include/Message_PrinterOStream.hxx | 88 + .../include/Message_PrinterSystemLog.hxx | 50 + .../include/Message_PrinterToReport.hxx | 73 + .../include/Message_ProgressSentry.hxx | 59 + .../include/MoniTool_DataMapOfTimer.hxx | 30 + .../include/MoniTool_TransientElem.hxx | 70 + .../include/MoniTool_ValueInterpret.hxx | 27 + .../include/MoniTool_ValueSatisfies.hxx | 23 + .../include/NCollection_AccAllocator.hxx | 211 ++ .../include/NCollection_AliasedArray.hxx | 366 ++++ .../include/NCollection_BaseSequence.hxx | 172 ++ .../include/NCollection_CellFilter.hxx | 554 ++++++ .../include/NCollection_DefineAlloc.hxx | 42 + .../include/NCollection_DefineHasher.hxx | 31 + .../include/NCollection_DynamicArray.hxx | 427 +++++ .../include/NCollection_IncAllocator.hxx | 150 ++ .../include/NCollection_IndexedMap.hxx | 506 +++++ .../include/NCollection_LocalArray.hxx | 73 + .../include/NCollection_OccAllocator.hxx | 202 ++ .../include/NCollection_SparseArray.hxx | 219 +++ .../include/NCollection_StlIterator.hxx | 201 ++ .../include/NCollection_UBTreeFiller.hxx | 226 +++ .../include/NCollection_UtfIterator.hxx | 248 +++ .../include/NCollection_UtfIterator.lxx | 342 ++++ .../include/NLPlate_HGPPConstraint.hxx | 99 + .../include/NLPlate_HPG0Constraint.hxx | 62 + .../include/NLPlate_HPG0G1Constraint.hxx | 57 + .../include/NLPlate_HPG0G2Constraint.hxx | 54 + .../include/NLPlate_HPG0G3Constraint.hxx | 56 + .../include/NLPlate_HPG1Constraint.hxx | 62 + .../include/NLPlate_HPG2Constraint.hxx | 50 + .../include/NLPlate_HPG3Constraint.hxx | 54 + .../include/OSD_Exception_CTRL_BREAK.hxx | 35 + .../include/OSD_FileSystemSelector.hxx | 76 + .../include/OpenGl_ArbSamplerObject.hxx | 42 + .../include/OpenGl_AspectsTextureSet.hxx | 75 + .../include/OpenGl_BackgroundArray.hxx | 110 ++ .../include/OpenGl_ClippingIterator.hxx | 73 + .../include/OpenGl_StructureShadow.hxx | 46 + .../include/OpenGl_TextureBufferArb.hxx | 23 + .../include/PCDM_BaseDriverPointer.hxx | 27 + .../include/PCDM_ReferenceIterator.hxx | 71 + .../include/PCDM_SequenceOfDocument.hxx | 25 + .../include/PCDM_SequenceOfReference.hxx | 25 + .../include/Plate_FreeGtoCConstraint.hxx | 80 + .../include/Plate_FreeGtoCConstraint.lxx | 37 + .../include/Plate_PinpointConstraint.hxx | 58 + .../include/Plate_PinpointConstraint.lxx | 35 + .../include/Poly_HArray1OfTriangle.hxx | 25 + .../include/Poly_ListOfTriangulation.hxx | 27 + .../include/ProjLib_HProjectedCurve.hxx | 25 + .../include/ProjLib_ProjectOnPlane.hxx | 219 +++ .../include/ProjLib_ProjectOnSurface.hxx | 58 + .../include/ProjLib_ProjectedCurve.hxx | 240 +++ .../include/Prs3d_PresentationShadow.hxx | 50 + .../include/Prs3d_TypeOfLinePicking.hxx | 26 + .../include/PrsDim_Chamf2dDimension.hxx | 79 + .../include/PrsDim_Chamf3dDimension.hxx | 75 + .../include/PrsDim_DiameterDimension.hxx | 168 ++ .../include/PrsDim_IdenticRelation.hxx | 157 ++ .../include/PrsDim_KindOfDimension.hxx | 40 + .../include/PrsDim_LengthDimension.hxx | 246 +++ .../include/PrsDim_MidPointRelation.hxx | 100 + .../include/PrsDim_OffsetDimension.hxx | 80 + .../include/PrsDim_ParallelRelation.hxx | 72 + .../include/PrsDim_RadiusDimension.hxx | 150 ++ .../include/PrsDim_SymmetricRelation.hxx | 81 + .../include/PrsDim_TangentRelation.hxx | 77 + .../include/PrsMgr_PresentableObject.hxx | 632 ++++++ .../include/Quantity_Array1OfColor.hxx | 25 + .../include/Quantity_HArray1OfColor.hxx | 25 + .../include/RWGltf_ConfigurationNode.hxx | 22 + .../include/RWGltf_DracoParameters.hxx | 44 + .../include/RWGltf_GltfMaterialMap.hxx | 111 ++ .../include/RWGltf_GltfOStreamWriter.hxx | 34 + .../include/RWGltf_GltfPrimArrayData.hxx | 50 + .../include/RWGltf_GltfPrimitiveMode.hxx | 32 + .../include/RWGltf_GltfRootElement.hxx | 70 + .../include/RWGltf_GltfSceneNodeMap.hxx | 40 + .../include/RWGltf_WriterTrsfFormat.hxx | 32 + .../include/RWMesh_CoordinateSystem.hxx | 40 + .../include/RWObj_ConfigurationNode.hxx | 22 + .../include/RWObj_ObjWriterContext.hxx | 96 + .../include/RWPly_ConfigurationNode.hxx | 22 + .../include/RWPly_PlyWriterContext.hxx | 139 ++ .../include/RWStl_ConfigurationNode.hxx | 22 + .../include/Resource_ConvertUnicode.hxx | 31 + .../include/Resource_LexicalCompare.hxx | 42 + .../include/Resource_NoSuchResource.hxx | 38 + .../include/STEPCAFControl_Provider.hxx | 22 + .../include/STEPConstruct_Assembly.hxx | 86 + .../include/STEPConstruct_ExternRefs.hxx | 137 ++ .../include/STEPControl_ActorWrite.hxx | 129 ++ .../include/STEPControl_Controller.hxx | 77 + .../include/STEPSelections_Counter.hxx | 86 + .../include/STEPSelections_Counter.lxx | 65 + .../include/Select3D_BVHIndexBuffer.hxx | 94 + .../include/Select3D_EntitySequence.hxx | 24 + .../include/Select3D_SensitiveCircle.hxx | 87 + .../include/Select3D_SensitiveCurve.hxx | 73 + .../include/Select3D_SensitiveEntity.hxx | 124 ++ .../include/Select3D_SensitiveFace.hxx | 92 + .../include/Select3D_SensitiveGroup.hxx | 185 ++ .../include/Select3D_SensitivePoint.hxx | 67 + .../include/Select3D_SensitivePoly.hxx | 159 ++ .../include/Select3D_SensitiveSphere.hxx | 72 + .../include/Select3D_SensitiveWire.hxx | 109 ++ .../include/SelectBasics_EntityOwner.hxx | 22 + .../include/SelectBasics_PickResult.hxx | 111 ++ .../include/SelectMgr_BVHThreadPool.hxx | 163 ++ .../include/SelectMgr_FrustumBuilder.hxx | 76 + .../include/SelectMgr_ListOfFilter.hxx | 26 + .../include/SelectMgr_SelectionType.hxx | 26 + .../include/SelectMgr_SortCriterion.hxx | 140 ++ .../include/SelectMgr_ToleranceMap.hxx | 68 + .../include/SelectMgr_TypeOfUpdate.hxx | 31 + .../include/SelectMgr_ViewClipRange.hxx | 126 ++ .../include/SelectMgr_ViewerSelector.hxx | 421 ++++ .../include/ShapeAlgo_AlgoContainer.hxx | 147 ++ .../include/ShapeAlgo_AlgoContainer.lxx | 36 + .../include/ShapeAlgo_ToolContainer.hxx | 49 + .../include/ShapeAnalysis_BoxBndTree.hxx | 112 ++ .../include/ShapeAnalysis_FreeBounds.hxx | 178 ++ .../include/ShapeAnalysis_FreeBounds.lxx | 38 + .../include/ShapeAnalysis_WireOrder.hxx | 184 ++ .../include/ShapeAnalysis_WireVertex.hxx | 172 ++ .../include/ShapeCustom_Modification.hxx | 55 + .../include/ShapeExtend_ComplexCurve.hxx | 125 ++ .../include/ShapeExtend_ComplexCurve.lxx | 85 + .../include/ShapeFix_FixSmallSolid.hxx | 75 + .../include/ShapeFix_ShapeTolerance.hxx | 66 + .../include/ShapePersistent_Geom2d.hxx | 153 ++ .../include/ShapePersistent_HArray1.hxx | 70 + .../include/ShapePersistent_HArray2.hxx | 47 + .../include/ShapePersistent_TopoDS.hxx | 166 ++ .../include/ShapeProcess_OperLibrary.hxx | 71 + .../include/ShapeProcess_UOperator.hxx | 51 + .../include/ShapeUpgrade_EdgeDivide.hxx | 84 + .../include/ShapeUpgrade_EdgeDivide.lxx | 64 + .../include/ShapeUpgrade_FaceDivide.hxx | 129 ++ .../include/ShapeUpgrade_ShapeDivide.hxx | 140 ++ .../include/ShapeUpgrade_ShellSewing.hxx | 63 + .../include/ShapeUpgrade_SplitCurve.hxx | 85 + .../include/ShapeUpgrade_WireDivide.hxx | 160 ++ .../include/Standard_CLocaleSentry.hxx | 106 ++ .../include/Standard_CStringHasher.hxx | 43 + .../include/Standard_DefineException.hxx | 75 + .../include/Standard_DimensionError.hxx | 38 + .../include/Standard_HandlerStatus.hxx | 27 + .../include/Standard_ImmutableObject.hxx | 38 + .../include/Standard_LicenseNotFound.hxx | 38 + .../include/Standard_MultiplyDefined.hxx | 38 + .../include/Standard_NegativeValue.hxx | 38 + .../include/Standard_NotImplemented.hxx | 38 + .../include/Standard_PErrorHandler.hxx | 23 + .../include/Standard_PExtCharacter.hxx | 21 + .../include/Standard_PrimitiveTypes.hxx | 30 + .../include/Standard_ReadLineBuffer.hxx | 309 +++ .../include/Standard_WarningsDisable.hxx | 49 + .../include/Standard_WarningsRestore.hxx | 36 + .../include/StdFail_UndefinedValue.hxx | 38 + .../include/StdLPersistent_Document.hxx | 42 + .../include/StdLPersistent_Function.hxx | 58 + .../include/StdLPersistent_HArray1.hxx | 195 ++ .../include/StdLPersistent_HArray2.hxx | 202 ++ .../include/StdLPersistent_HString.hxx | 66 + .../include/StdLPersistent_NamedData.hxx | 104 + .../include/StdLPersistent_TreeNode.hxx | 54 + .../include/StdLPersistent_Variable.hxx | 62 + .../include/StdObjMgt_SharedObject.hxx | 166 ++ .../include/StdPrs_BRepTextBuilder.hxx | 51 + .../include/StdPrs_DeflectionCurve.hxx | 155 ++ .../include/StdPrs_WFRestrictedFace.hxx | 88 + .../include/StepAP203_ApprovedItem.hxx | 100 + .../include/StepAP203_CertifiedItem.hxx | 50 + .../include/StepAP203_ChangeRequest.hxx | 55 + .../include/StepAP203_ClassifiedItem.hxx | 55 + .../include/StepAP203_ContractedItem.hxx | 50 + .../include/StepAP203_DateTimeItem.hxx | 90 + .../include/StepAP203_SpecifiedItem.hxx | 55 + .../include/StepAP203_StartRequest.hxx | 55 + .../include/StepAP214_ApprovalItem.hxx | 154 ++ .../include/StepAP214_RepItemGroup.hxx | 58 + .../include/StepBasic_ActionMethod.hxx | 83 + .../include/StepBasic_AheadOrBehind.hxx | 27 + .../include/StepBasic_ApprovalRole.hxx | 49 + .../include/StepBasic_ApprovalStatus.hxx | 49 + .../include/StepBasic_Array1OfPerson.hxx | 25 + .../include/StepBasic_CalendarDate.hxx | 56 + .../include/StepBasic_Certification.hxx | 70 + .../include/StepBasic_ContractType.hxx | 53 + .../include/StepBasic_DateAssignment.hxx | 53 + .../include/StepBasic_DateTimeRole.hxx | 49 + .../include/StepBasic_DateTimeSelect.hxx | 59 + .../include/StepBasic_DesignContext.hxx | 41 + .../include/StepBasic_DocumentFile.hxx | 63 + .../include/StepBasic_DocumentType.hxx | 48 + .../include/StepBasic_ExternalSource.hxx | 51 + .../include/StepBasic_NameAssignment.hxx | 52 + .../include/StepBasic_Organization.hxx | 68 + .../include/StepBasic_PlaneAngleUnit.hxx | 41 + .../include/StepBasic_ProductContext.hxx | 52 + .../include/StepBasic_SolidAngleUnit.hxx | 41 + .../include/StepData_Array1OfField.hxx | 25 + .../include/StepData_ConfParameters.hxx | 22 + .../include/StepData_DefaultGeneral.hxx | 73 + .../include/StepData_FileRecognizer.hxx | 79 + .../include/StepData_FreeFormEntity.hxx | 103 + .../include/StepData_GeneralModule.hxx | 70 + .../include/StepData_HArray1OfField.hxx | 25 + .../include/StepData_NodeOfWriterLib.hxx | 62 + .../include/StepData_ReadWriteModule.hxx | 123 ++ .../include/StepData_SelectArrReal.hxx | 47 + .../include/StepData_StepReaderData.hxx | 484 +++++ .../include/StepData_StepReaderTool.hxx | 102 + .../include/StepData_UndefinedEntity.hxx | 101 + .../include/StepDimTol_AreaUnitType.hxx | 26 + .../include/StepDimTol_CommonDatum.hxx | 63 + .../include/StepDimTol_DatumFeature.hxx | 41 + .../include/StepDimTol_DatumSystem.hxx | 81 + .../include/StepDimTol_DatumTarget.hxx | 58 + .../include/StepDimTol_ToleranceZone.hxx | 98 + .../include/StepElement_ElementOrder.hxx | 24 + .../include/StepFEA_DegreeOfFreedom.hxx | 71 + .../include/StepFEA_FeaAreaDensity.hxx | 54 + .../include/StepFEA_FeaMassDensity.hxx | 54 + .../include/StepFEA_NodeDefinition.hxx | 41 + .../include/StepFEA_NodeWithVector.hxx | 41 + .../include/StepFEA_UnspecifiedValue.hxx | 22 + .../include/StepGeom_Array1OfCurve.hxx | 25 + .../include/StepGeom_Axis1Placement.hxx | 60 + .../include/StepGeom_Axis2Placement.hxx | 54 + .../include/StepGeom_BSplineSurface.hxx | 100 + .../include/StepGeom_BezierSurface.hxx | 41 + .../include/StepGeom_BoundaryCurve.hxx | 41 + .../include/StepGeom_BoundedSurface.hxx | 41 + .../include/StepGeom_CartesianPoint.hxx | 66 + .../include/StepGeom_CompositeCurve.hxx | 66 + .../include/StepGeom_ConicalSurface.hxx | 58 + .../include/StepGeom_CurveOnSurface.hxx | 59 + .../include/StepGeom_HArray1OfCurve.hxx | 26 + .../include/StepGeom_OffsetCurve3d.hxx | 70 + .../include/StepGeom_OffsetSurface.hxx | 64 + .../include/StepGeom_OrientedSurface.hxx | 54 + .../include/StepGeom_PcurveOrSurface.hxx | 54 + .../include/StepGeom_PointOnSurface.hxx | 64 + .../include/StepGeom_SurfaceBoundary.hxx | 55 + .../include/StepGeom_SurfaceReplica.hxx | 59 + .../include/StepGeom_ToroidalSurface.hxx | 58 + .../include/StepGeom_TransitionCode.hxx | 28 + .../include/StepGeom_TrimmingMember.hxx | 48 + .../include/StepGeom_TrimmingSelect.hxx | 66 + .../include/StepGeom_UniformSurface.hxx | 41 + .../include/StepKinematics_GearPair.hxx | 87 + .../include/StepKinematics_PairValue.hxx | 48 + .../include/StepKinematics_ScrewPair.hxx | 59 + .../include/StepRepr_DataEnvironment.hxx | 70 + .../include/StepRepr_ParallelOffset.hxx | 56 + .../include/StepRepr_PerpendicularTo.hxx | 35 + .../include/StepRepr_ProductConcept.hxx | 84 + .../include/StepRepr_Representation.hxx | 70 + .../include/StepRepr_ShapeDefinition.hxx | 59 + .../include/StepRepr_Transformation.hxx | 55 + .../include/StepSelect_FileModifier.hxx | 55 + .../include/StepSelect_FloatFormat.hxx | 105 + .../include/StepSelect_ModelModifier.hxx | 74 + .../include/StepSelect_WorkLibrary.hxx | 101 + .../include/StepShape_AdvancedFace.hxx | 41 + .../include/StepShape_AngleRelator.hxx | 27 + .../include/StepShape_AngularSize.hxx | 56 + .../include/StepShape_Array1OfEdge.hxx | 25 + .../include/StepShape_Array1OfFace.hxx | 25 + .../include/StepShape_Array1OfShell.hxx | 25 + .../include/StepShape_BooleanOperand.hxx | 76 + .../include/StepShape_BooleanResult.hxx | 63 + .../include/StepShape_BoxedHalfSpace.hxx | 54 + .../include/StepShape_BrepWithVoids.hxx | 60 + .../include/StepShape_ClosedShell.hxx | 41 + .../include/StepShape_CsgPrimitive.hxx | 74 + .../include/StepShape_FaceOuterBound.hxx | 41 + .../include/StepShape_FaceSurface.hxx | 59 + .../include/StepShape_FacetedBrep.hxx | 41 + .../include/StepShape_GeometricSet.hxx | 56 + .../include/StepShape_HArray1OfEdge.hxx | 25 + .../include/StepShape_HArray1OfFace.hxx | 25 + .../include/StepShape_HArray1OfShell.hxx | 26 + .../include/StepShape_HalfSpaceSolid.hxx | 57 + .../include/StepShape_LimitsAndFits.hxx | 66 + .../include/StepShape_LoopAndPath.hxx | 72 + .../include/StepShape_OrientedEdge.hxx | 68 + .../include/StepShape_OrientedFace.hxx | 70 + .../include/StepShape_OrientedPath.hxx | 71 + .../include/StepShape_SolidReplica.hxx | 59 + .../include/StepShape_SurfaceModel.hxx | 50 + .../include/StepShape_SweptAreaSolid.hxx | 51 + .../include/StepShape_SweptFaceSolid.hxx | 51 + .../include/StepShape_ToleranceValue.hxx | 53 + .../include/StepShape_TypeQualifier.hxx | 48 + .../include/StepShape_ValueQualifier.hxx | 58 + .../include/StepShape_VertexPoint.hxx | 51 + .../include/StepToTopoDS_DataMapOfRI.hxx | 29 + .../include/StepToTopoDS_PointPair.hxx | 71 + .../include/StepVisual_AreaOrView.hxx | 54 + .../include/StepVisual_CameraImage.hxx | 41 + .../include/StepVisual_CameraModel.hxx | 41 + .../include/StepVisual_CameraModelD2.hxx | 58 + .../include/StepVisual_CameraModelD3.hxx | 60 + .../include/StepVisual_CameraUsage.hxx | 41 + .../include/StepVisual_CompositeText.hxx | 57 + .../include/StepVisual_CurveStyle.hxx | 70 + .../include/StepVisual_EdgeOrCurve.hxx | 52 + .../include/StepVisual_FaceOrSurface.hxx | 52 + .../include/StepVisual_FillAreaStyle.hxx | 62 + .../include/StepVisual_FontSelect.hxx | 54 + .../include/StepVisual_Invisibility.hxx | 55 + .../include/StepVisual_InvisibleItem.hxx | 60 + .../include/StepVisual_LayeredItem.hxx | 54 + .../include/StepVisual_MarkerMember.hxx | 59 + .../include/StepVisual_MarkerSelect.hxx | 57 + .../include/StepVisual_MarkerType.hxx | 31 + .../include/StepVisual_PlanarExtent.hxx | 57 + .../include/StepVisual_PointStyle.hxx | 70 + .../include/StepVisual_PresentedItem.hxx | 38 + .../include/StepVisual_StyledItem.hxx | 75 + .../include/StepVisual_SurfaceSide.hxx | 27 + .../include/StepVisual_TextLiteral.hxx | 76 + .../include/StepVisual_ViewVolume.hxx | 99 + .../include/Storage_ArrayOfCallBack.hxx | 25 + .../include/Storage_ArrayOfSchema.hxx | 25 + .../include/Storage_DefaultCallBack.hxx | 52 + .../include/Storage_HArrayOfCallBack.hxx | 25 + .../include/Storage_HArrayOfSchema.hxx | 25 + .../include/Storage_MapOfCallBack.hxx | 29 + .../include/Storage_StreamModeError.hxx | 38 + .../include/Storage_StreamReadError.hxx | 38 + .../include/Storage_StreamWriteError.hxx | 38 + .../include/Storage_TypedCallBack.hxx | 61 + .../include/Sweep_NumShapeIterator.hxx | 63 + .../include/Sweep_NumShapeIterator.lxx | 45 + .../include/TColGeom2d_Array1OfCurve.hxx | 25 + .../include/TColGeom_Array1OfCurve.hxx | 25 + .../include/TColGeom_Array1OfSurface.hxx | 25 + .../include/TColGeom_Array2OfSurface.hxx | 25 + .../include/TColGeom_HArray1OfCurve.hxx | 25 + .../include/TColGeom_SequenceOfCurve.hxx | 25 + .../include/TColStd_Array1OfBoolean.hxx | 22 + .../include/TColStd_Array1OfInteger.hxx | 23 + .../include/TColStd_Array2OfBoolean.hxx | 22 + .../include/TColStd_Array2OfInteger.hxx | 23 + .../include/TColStd_HArray1OfBoolean.hxx | 23 + .../include/TColStd_HArray1OfByte.hxx | 23 + .../include/TColStd_HArray1OfInteger.hxx | 24 + .../include/TColStd_HArray1OfReal.hxx | 23 + .../include/TColStd_HArray2OfBoolean.hxx | 24 + .../include/TColStd_HArray2OfInteger.hxx | 24 + .../include/TColStd_HArray2OfReal.hxx | 23 + .../include/TColStd_HSequenceOfReal.hxx | 23 + .../include/TColStd_IndexedMapOfReal.hxx | 22 + .../include/TColStd_ListOfInteger.hxx | 24 + .../include/TColStd_ListOfTransient.hxx | 25 + .../include/TColStd_MapOfAsciiString.hxx | 24 + .../include/TColStd_MapOfTransient.hxx | 24 + .../include/TColStd_SequenceOfReal.hxx | 22 + .../include/TColgp_Array1OfCirc2d.hxx | 25 + .../include/TColgp_Array2OfCirc2d.hxx | 25 + .../include/TColgp_HArray1OfCirc2d.hxx | 26 + .../include/TColgp_HArray1OfDir2d.hxx | 26 + .../include/TColgp_HArray1OfLin2d.hxx | 26 + .../include/TColgp_HArray1OfPnt2d.hxx | 26 + .../include/TColgp_HArray1OfVec2d.hxx | 26 + .../include/TColgp_HArray2OfCirc2d.hxx | 26 + .../include/TColgp_HArray2OfDir2d.hxx | 26 + .../include/TColgp_HArray2OfLin2d.hxx | 26 + .../include/TColgp_HArray2OfPnt2d.hxx | 26 + .../include/TColgp_HArray2OfVec2d.hxx | 26 + .../include/TColgp_HSequenceOfDir.hxx | 26 + .../include/TColgp_HSequenceOfDir2d.hxx | 26 + .../include/TColgp_HSequenceOfPnt.hxx | 26 + .../include/TColgp_HSequenceOfPnt2d.hxx | 26 + .../include/TColgp_HSequenceOfVec.hxx | 26 + .../include/TColgp_HSequenceOfVec2d.hxx | 26 + .../include/TColgp_HSequenceOfXYZ.hxx | 26 + .../include/TColgp_SequenceOfDir2d.hxx | 25 + .../include/TColgp_SequenceOfPnt2d.hxx | 25 + .../include/TColgp_SequenceOfVec2d.hxx | 25 + .../include/TCollection_AsciiString.hxx | 712 +++++++ .../include/TCollection_AsciiString.lxx | 127 ++ .../include/TCollection_HAsciiString.hxx | 497 +++++ .../include/TCollection_HAsciiString.lxx | 77 + .../include/TDF_AttributeDeltaList.hxx | 25 + .../include/TDF_AttributeDoubleMap.hxx | 27 + .../include/TDF_AttributeIndexedMap.hxx | 24 + .../include/TDF_AttributeIterator.hxx | 95 + .../include/TDF_AttributeSequence.hxx | 24 + .../include/TDF_DeltaOnModification.hxx | 48 + .../include/TDF_ListIteratorOfIDList.hxx | 19 + .../include/TDF_MapIteratorOfIDMap.hxx | 19 + .../include/TDataStd_BooleanArray.hxx | 112 ++ .../include/TDataStd_ExtStringArray.hxx | 147 ++ .../include/TDataStd_ExtStringList.hxx | 122 ++ .../include/TDataStd_GenericEmpty.hxx | 47 + .../include/TDataStd_HLabelArray1.hxx | 26 + .../include/TDataStd_IntPackedMap.hxx | 112 ++ .../include/TDataStd_IntegerArray.hxx | 145 ++ .../include/TDataStd_ReferenceArray.hxx | 116 ++ .../include/TDataStd_ReferenceList.hxx | 125 ++ .../include/TDataXtd_Array1OfTrsf.hxx | 24 + .../include/TDataXtd_ConstraintEnum.hxx | 52 + .../include/TDataXtd_GeometryEnum.hxx | 32 + .../include/TDataXtd_HArray1OfTrsf.hxx | 25 + .../include/TDataXtd_Presentation.hxx | 182 ++ .../include/TDataXtd_Triangulation.hxx | 155 ++ .../include/TDocStd_ApplicationDelta.hxx | 53 + .../include/TDocStd_ApplicationDelta.lxx | 44 + .../include/TDocStd_CompoundDelta.hxx | 46 + .../include/TDocStd_FormatVersion.hxx | 92 + .../include/TDocStd_XLinkIterator.hxx | 63 + .../include/TDocStd_XLinkIterator.lxx | 30 + .../include/TFunction_DriverTable.hxx | 81 + .../include/TNaming_DeltaOnRemoval.hxx | 47 + .../include/TNaming_ListOfMapOfShape.hxx | 26 + .../include/TNaming_ListOfNamedShape.hxx | 27 + .../include/TNaming_MapOfNamedShape.hxx | 26 + .../include/TNaming_NewShapeIterator.hxx | 89 + .../include/TNaming_NewShapeIterator.lxx | 25 + .../include/TNaming_OldShapeIterator.hxx | 88 + .../include/TNaming_OldShapeIterator.lxx | 25 + .../include/TNaming_TranslateTool.hxx | 76 + .../include/TObj_OcafObjectIterator.hxx | 65 + .../include/TObj_ReferenceIterator.hxx | 63 + .../include/TObj_SequenceIterator.hxx | 82 + .../include/TObj_SequenceOfIterator.hxx | 26 + .../include/TObj_SequenceOfObject.hxx | 29 + .../include/TPrsStd_AISPresentation.hxx | 232 +++ .../include/TPrsStd_ConstraintDriver.hxx | 52 + .../include/TPrsStd_ConstraintTools.hxx | 139 ++ .../include/TPrsStd_GeometryDriver.hxx | 52 + .../include/TPrsStd_NamedShapeDriver.hxx | 52 + .../include/TShort_Array1OfShortReal.hxx | 22 + .../include/TShort_Array2OfShortReal.hxx | 22 + .../include/TopBas_TestInterference.hxx | 89 + .../include/TopClass_Classifier2d.lxx | 71 + .../include/TopClass_FaceClassifier.lxx | 47 + .../include/TopOpeBRepBuild_Builder.hxx | 906 +++++++++ .../include/TopOpeBRepBuild_Builder1.hxx | 199 ++ .../include/TopOpeBRepBuild_FuseFace.hxx | 87 + .../include/TopOpeBRepBuild_FuseFace.lxx | 131 ++ .../include/TopOpeBRepBuild_GIter.hxx | 58 + .../include/TopOpeBRepBuild_GTool.hxx | 65 + .../include/TopOpeBRepBuild_GTopo.hxx | 131 ++ .../include/TopOpeBRepBuild_HBuilder.hxx | 198 ++ .../include/TopOpeBRepBuild_LoopEnum.hxx | 27 + .../include/TopOpeBRepBuild_LoopSet.hxx | 57 + .../include/TopOpeBRepBuild_PBuilder.hxx | 23 + .../include/TopOpeBRepBuild_PGTopo.hxx | 23 + .../include/TopOpeBRepBuild_PaveSet.hxx | 79 + .../include/TopOpeBRepBuild_ShapeSet.hxx | 193 ++ .../include/TopOpeBRepBuild_Tools.hxx | 167 ++ .../include/TopOpeBRepBuild_Tools2d.hxx | 45 + .../include/TopOpeBRepBuild_define.hxx | 62 + .../include/TopOpeBRepBuild_kpresu.hxx | 42 + .../include/TopOpeBRepDS_Association.hxx | 58 + .../include/TopOpeBRepDS_BuildTool.hxx | 217 +++ .../include/TopOpeBRepDS_CheckStatus.hxx | 26 + .../include/TopOpeBRepDS_CurveData.hxx | 43 + .../include/TopOpeBRepDS_Explorer.hxx | 75 + .../include/TopOpeBRepDS_GapFiller.hxx | 93 + .../include/TopOpeBRepDS_MapOfCurve.hxx | 28 + .../include/TopOpeBRepDS_MapOfPoint.hxx | 28 + .../include/TopOpeBRepDS_PointData.hxx | 53 + .../include/TopOpeBRepDS_ShapeData.hxx | 59 + .../include/TopOpeBRepDS_SurfaceData.hxx | 42 + .../include/TopOpeBRepDS_Transition.hxx | 127 ++ .../include/TopOpeBRepTool_BoxSort.hxx | 91 + .../include/TopOpeBRepTool_CLASSI.hxx | 69 + .../include/TopOpeBRepTool_CORRISO.hxx | 135 ++ .../include/TopOpeBRepTool_CurveTool.hxx | 83 + .../include/TopOpeBRepTool_EXPORT.hxx | 24 + .../include/TopOpeBRepTool_FuseEdges.hxx | 119 ++ .../include/TopOpeBRepTool_GEOMETRY.hxx | 59 + .../include/TopOpeBRepTool_GeomTool.hxx | 91 + .../include/TopOpeBRepTool_HBoxTool.hxx | 76 + .../include/TopOpeBRepTool_PROJECT.hxx | 102 + .../include/TopOpeBRepTool_ShapeTool.hxx | 133 ++ .../include/TopOpeBRepTool_TOPOLOGY.hxx | 285 +++ .../include/TopOpeBRepTool_connexity.hxx | 70 + .../include/TopOpeBRepTool_define.hxx | 44 + .../include/TopOpeBRepTool_defineG.hxx | 35 + .../include/TopOpeBRepTool_mkTondgE.hxx | 75 + .../include/TopOpeBRep_EdgesFiller.hxx | 108 ++ .../include/TopOpeBRep_FacesFiller.hxx | 313 +++ .../include/TopOpeBRep_ListOfBipoint.hxx | 26 + .../include/TopOpeBRep_PFacesFiller.hxx | 23 + .../include/TopOpeBRep_PLineInter.hxx | 23 + .../include/TopOpeBRep_PointGeomTool.hxx | 50 + .../include/TopOpeBRep_ShapeScanner.hxx | 72 + .../include/TopOpeBRep_TypeLineCurve.hxx | 33 + .../include/TopOpeBRep_VPointInter.hxx | 200 ++ .../include/TopOpeBRep_VPointInter.lxx | 288 +++ .../include/TopOpeBRep_WPointInter.hxx | 58 + .../include/TopTools_Array1OfShape.hxx | 25 + .../include/TopTools_Array2OfShape.hxx | 25 + .../include/TopTools_FormatVersion.hxx | 37 + .../include/TopTools_HArray1OfShape.hxx | 26 + .../include/TopTools_HArray2OfShape.hxx | 26 + .../include/TopTools_LocationSetPtr.hxx | 23 + .../include/TopTools_SequenceOfShape.hxx | 25 + .../include/TopTools_ShapeMapHasher.hxx | 41 + .../include/TopTrans_CurveTransition.hxx | 114 ++ .../include/TopoDSToStep_FacetedTool.hxx | 39 + .../include/TopoDS_AlertAttribute.hxx | 60 + .../include/TopoDS_AlertWithShape.hxx | 61 + .../include/TransferBRep_ShapeBinder.hxx | 75 + .../include/TransferBRep_ShapeInfo.hxx | 46 + .../include/TransferBRep_ShapeMapper.hxx | 66 + .../include/Transfer_ActorDispatch.hxx | 86 + .../include/Transfer_DispatchControl.hxx | 71 + .../include/Transfer_FinderProcess.hxx | 83 + .../include/Transfer_MapContainer.hxx | 47 + .../include/Transfer_MultipleBinder.hxx | 91 + .../include/Transfer_ResultFromModel.hxx | 170 ++ .../include/Transfer_StatusResult.hxx | 28 + .../include/Transfer_TransferFailure.hxx | 38 + .../include/Transfer_TransferInput.hxx | 83 + .../include/Transfer_TransferOutput.hxx | 123 ++ .../include/Transfer_TransientMapper.hxx | 64 + .../include/UnitsMethods_LengthUnit.hxx | 33 + .../include/Units_QuantitiesSequence.hxx | 25 + .../include/Units_UnitsDictionary.hxx | 67 + .../include/Units_UnitsDictionary.lxx | 75 + .../include/V3d_StereoDumpOptions.hxx | 30 + .../include/V3d_TypeOfOrientation.hxx | 83 + .../include/V3d_TypeOfShadingModel.hxx | 26 + .../include/V3d_TypeOfVisualization.hxx | 28 + .../include/VrmlConverter_HLRShape.hxx | 57 + .../include/VrmlConverter_IsoAspect.hxx | 57 + .../include/VrmlConverter_LineAspect.hxx | 62 + .../include/VrmlConverter_Projector.hxx | 93 + .../include/VrmlConverter_WFShape.hxx | 50 + .../include/VrmlData_ImageTexture.hxx | 82 + .../include/VrmlData_IndexedFaceSet.hxx | 353 ++++ .../include/VrmlData_IndexedLineSet.hxx | 210 ++ .../include/VrmlData_ShapeConvert.hxx | 146 ++ .../include/Vrml_ConfigurationNode.hxx | 22 + .../include/Vrml_DirectionalLight.hxx | 72 + .../include/Vrml_OrthographicCamera.hxx | 70 + .../include/Vrml_PerspectiveCamera.hxx | 69 + .../include/Vrml_Texture2Transform.hxx | 79 + .../include/Vrml_TextureCoordinate2.hxx | 62 + .../include/Vrml_TransformSeparator.hxx | 46 + .../include/WNT_ClassDefinitionError.hxx | 38 + .../include/XCAFDimTolObjects_Tool.hxx | 73 + .../include/XCAFDoc_AssemblyGraph.hxx | 186 ++ .../include/XCAFDoc_AssemblyItemId.hxx | 102 + .../include/XCAFDoc_AssemblyItemRef.hxx | 154 ++ .../include/XCAFDoc_AssemblyIterator.hxx | 70 + .../include/XCAFDoc_GeomTolerance.hxx | 65 + .../include/XCAFDoc_VisMaterialPBR.hxx | 96 + .../include/XCAFDoc_VisMaterialTool.hxx | 148 ++ .../include/XCAFPrs_DocumentExplorer.hxx | 182 ++ .../include/XCAFView_ProjectionType.hxx | 27 + .../include/XSAlgo_ShapeProcessor.hxx | 206 ++ .../include/XSControl_TransferReader.hxx | 389 ++++ .../include/XSControl_TransferWriter.hxx | 134 ++ .../include/XSControl_WorkSession.hxx | 207 ++ .../include/XmlLDrivers_NamespaceDef.hxx | 45 + .../include/XmlMDF_ReferenceDriver.hxx | 56 + .../include/XmlMDF_TagSourceDriver.hxx | 56 + .../include/XmlMDF_TypeADriverMap.hxx | 27 + .../include/XmlMDataStd_RealDriver.hxx | 56 + .../include/XmlMDocStd_XLinkDriver.hxx | 56 + .../include/XmlMFunction_ScopeDriver.hxx | 56 + .../include/XmlMNaming_NamingDriver.hxx | 53 + .../include/XmlMXCAFDoc_ColorDriver.hxx | 56 + .../include/XmlMXCAFDoc_DatumDriver.hxx | 56 + .../include/XmlMXCAFDoc_DimTolDriver.hxx | 56 + .../include/XmlMXCAFDoc_NoteDriver.hxx | 52 + .../include/XmlTObjDrivers_XYZDriver.hxx | 63 + .../include/math_EigenValuesSearcher.hxx | 65 + .../include/math_GaussSetIntegration.hxx | 62 + .../include/math_GaussSetIntegration.lxx | 27 + .../include/math_MultipleVarFunction.hxx | 62 + .../include/math_NewtonFunctionRoot.hxx | 111 ++ .../include/math_NewtonFunctionRoot.lxx | 50 + entry/src/main/cpp/CMakeLists.txt | 64 +- entry/src/main/cpp/EGLCore/EGLCore.cpp | 74 + entry/src/main/cpp/EGLCore/EGLCore.h | 29 + entry/src/main/cpp/OCCTRender/OCCTRender.cpp | 94 + entry/src/main/cpp/OCCTRender/OCCTRender.h | 44 + .../cpp/OCCTRenderThread/OCCTRenderThread.cpp | 73 + .../cpp/OCCTRenderThread/OCCTRenderThread.h | 45 + entry/src/main/cpp/common/common.h | 21 - entry/src/main/cpp/manager/plugin_manager.cpp | 220 --- entry/src/main/cpp/manager/plugin_manager.h | 36 - entry/src/main/cpp/napi_init.cpp | 195 +- entry/src/main/cpp/render/egl_core.cpp | 613 ------ entry/src/main/cpp/render/egl_core.h | 50 - entry/src/main/cpp/render/plugin_render.cpp | 70 - entry/src/main/cpp/render/plugin_render.h | 38 - entry/src/main/cpp/types/libentry/Index.d.ts | 10 - entry/src/main/cpp/types/libocct/Index.d.ts | 0 .../{libentry => libocct}/oh-package.json5 | 2 +- entry/src/main/ets/pages/Index.ets | 1 - entry/src/main/ets/pages/modelView.ets | 83 +- entry/src/main/ets/pages/modelViewTab.ets | 2 +- entry/src/main/resources/rawfile/model.step | 1694 +++++++++++++++++ 1184 files changed, 99793 insertions(+), 1214 deletions(-) create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AIS_AnimationAxisRotation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AIS_BaseAnimationObject.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AIS_C0RegularityFilter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AIS_ConcentricRelation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AIS_ConnectedInteractive.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AIS_DataMapOfShapeDrawer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AIS_EqualDistanceRelation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AIS_EqualRadiusRelation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AIS_InteractiveContext.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AIS_MaxRadiusDimension.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AIS_MinRadiusDimension.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AIS_NArray1OfEntityOwner.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AIS_NListOfEntityOwner.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AIS_PerpendicularRelation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Adaptor3d_CurveOnSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Adaptor3d_HSurfaceTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AdvApp2Var_ApproxF2var.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AdvApp2Var_CriterionType.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AdvApp2Var_SequenceOfNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_ApproxAFunction.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_ApproxAFunction.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_DichoCutting.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_SimpleApprox.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AppDef_SmoothCriterion.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AppDef_TheLeastSquares.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_Constraint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_MultiCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_MultiPoint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_MultiPoint.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ApproxInt_MultiLineTool.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Approx_Array1OfAdHSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Approx_Array1OfGTrsf2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Approx_HArray1OfGTrsf2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Approx_MCurvesToBSpCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Approx_SweepApproximation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Approx_SweepApproximation.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_DisplayConnection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_GradientBackground.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_GradientFillMethod.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_GraphicsLibrary.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_PolygonOffsetMode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_RectangularGrid.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_RenderingContext.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_SequenceOfColor.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_SkydomeBackground.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TrackedDevicePose.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfDeflection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfDisplayText.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfFacingModel.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfStyleText.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRAnalogActionData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRGenericAction.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRHapticActionData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRPoseActionData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_ArgumentAnalyzer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_ArgumentAnalyzer.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_ListOfCheckResult.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_PArgumentAnalyzer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_RemoveFeatures.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_SectionAttribute.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_CoupleOfPaveBlocks.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_MapOfCommonBlock.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfFaceInfo.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfIndexRange.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfEE.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfEF.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfEZ.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfFF.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfFZ.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVE.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVF.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVV.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVZ.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfZZ.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfShapeInfo.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPTools_ConnexityBlock.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BOPTools_CoupleOfShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepAdaptor_Array1OfCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgoAPI_BuilderAlgo.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgoAPI_Defeaturing.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgo_FaceRestrictor.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgo_NormalProjection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepApprox_SurfaceTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepApprox_SurfaceTool.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_AppFuncRstRst.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_ConstThroatInv.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_CurvPointRadInv.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_HCurve2dTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_HCurve2dTool.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_RstRstConstRad.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_RstRstEvolRad.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_SequenceOfLine.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_SurfRstConstRad.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_SurfRstEvolRad.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_CellFilter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_Collect.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_Command.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_EdgeError.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_FaceError.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_FastSewing.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_FindPlane.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_GTransform.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeEdge.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeFace.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeShell.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeSolid.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeWire.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_PipeError.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_Transform.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_WireError.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepCheck_ListOfStatus.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepClass3d_BndBoxTree.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepClass3d_MapOfInter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepClass3d_SClassifier.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepClass_FaceClassifier.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepClass_FaceExplorer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepClass_FaceExplorer.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_DistanceSS.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_OverlapTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_SolutionElem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_SupportType.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_TriangleSet.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepFeat_MakeLinearForm.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepFeat_MakeLinearForm.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepFeat_PerfSelection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_AdvancedEvolved.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_ApproxSeewing.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_CompatibleWires.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_CurveConstraint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_EdgeOnSurfLaw.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_OffsetAncestors.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TransitionStyle.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TrimShellCorner.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TrimSurfaceTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TypeOfContact.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepFilletAPI_MakeFillet.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepLib_PointCloudShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepMAT2d_BisectingLocus.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepMAT2d_LinkTopoBilo.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepMesh_CircleInspector.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepMesh_DegreeOfFreedom.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepMesh_DiscretFactory.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepMesh_IncrementalMesh.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepMesh_MeshAlgoFactory.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepMesh_PluginEntryType.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepMesh_VertexInspector.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepOffsetAPI_DraftAngle.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepOffsetAPI_MakeDraft.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepOffsetAPI_MakeOffset.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepOffsetAPI_MakePipe.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepOffsetAPI_MiddlePath.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepOffset_SimpleOffset.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepPreviewAPI_MakeBox.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepPrimAPI_MakeCylinder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepPrimAPI_MakeOneAxis.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepPrimAPI_MakeSphere.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepTools_Modification.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepTools_PurgeLocations.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepTools_Substitution.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepTools_WireExplorer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepTopAdaptor_FClass2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepTopAdaptor_HVertex.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepTopAdaptor_HVertex.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepTopAdaptor_SeqOfPtr.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRepTopAdaptor_TopolTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRep_CurveOnClosedSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRep_CurveOnClosedSurface.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRep_CurveRepresentation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRep_CurveRepresentation.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRep_PointRepresentation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BRep_PointRepresentation.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BVH_SpatialMedianBuilder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BinMDF_ReferenceDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BinMDF_TagSourceDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BinMDataStd_IntegerDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BinMDataStd_RealDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BinMDocStd_XLinkDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BinMFunction_ScopeDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BinMNaming_NamingDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BinMXCAFDoc_ColorDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BinMXCAFDoc_DatumDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BinMXCAFDoc_DimTolDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BinMXCAFDoc_NoteDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BinTObjDrivers_XYZDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BinTools_FormatVersion.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BinTools_LocationSetPtr.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Bisector_FunctionInter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BlendFunc_ConstThroatInv.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/BlendFunc_SectionShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Blend_CurvPointFuncInv.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Blend_SurfPointFuncInv.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/CDF_StoreSetNameStatus.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/CDF_SubComponentStatus.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/CDM_MetaDataLookUpTable.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/CPnts_UniformDeflection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/CPnts_UniformDeflection.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/CSLib_DerivativeStatus.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ChFi2d_ConstructionError.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ChFiDS_FaceInterference.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ChFiDS_FaceInterference.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ChFiDS_SequenceOfSpine.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ChFiDS_TypeOfConcavity.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ChFiKPart_ComputeData_CS.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Contap_TheSearchInside.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Contap_TheSequenceOfLine.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DEBREP_ConfigurationNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DEBRepCascade_Provider.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DEGLTF_ConfigurationNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DEIGES_ConfigurationNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DEOBJ_ConfigurationNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DEPLY_ConfigurationNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DESTEP_ConfigurationNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DESTL_ConfigurationNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DEVRML_ConfigurationNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DEXCAFCascade_Provider.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DEXCAF_ConfigurationNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DE_ConfigurationContext.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DsgPrs_AnglePresentation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DsgPrs_FixPresentation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DsgPrs_ParalPresentation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/DsgPrs_SymbPresentation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_Array1OfPOnCurv.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_Array1OfPOnSurf.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_Array2OfPOnCurv.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_Array2OfPOnSurf.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_CCLocFOfLocECC.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_CCLocFOfLocECC2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_GenLocateExtCS.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_GenLocateExtPS.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_GenLocateExtSS.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_HArray1OfPOnCurv.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_HArray1OfPOnSurf.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_HArray2OfPOnCurv.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_HArray2OfPOnSurf.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_HUBTreeOfSphere.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Extrema_PCFOfEPCOfExtPC.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/FEmTool_HAssemblyTable.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/FEmTool_SeqOfLinConstr.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/FairCurve_AnalysisCode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/FairCurve_EnergyOfBatten.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/FairCurve_EnergyOfBatten.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Font_NListOfSystemFont.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GCE2d_MakeArcOfEllipse.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GCE2d_MakeArcOfHyperbola.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GCE2d_MakeArcOfParabola.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GCPnts_UniformAbscissa.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GCPnts_UniformDeflection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GC_MakeTrimmedCylinder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GccEnt_Array1OfPosition.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dGcc_Circ2d2TanOn.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dGcc_Circ2d2TanRad.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dGcc_Circ2d3TanIter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dGcc_Circ2dTanCen.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dGcc_Circ2dTanOnRad.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dGcc_FunctionTanObl.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dGcc_Lin2d2TanIter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dGcc_QualifiedCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dHatch_Classifier.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dHatch_Intersector.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dHatch_Intersector.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dLProp_CurAndInf2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dLProp_Curve2dTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dLProp_FuncCurExt.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dLProp_FuncCurNul.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dToIGES_Geom2dCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom2dToIGES_Geom2dPoint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomAPI_PointsToBSpline.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomConvert_ApproxCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_BSplineCurves.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_BSplineCurves.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_BoundWithSurf.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_CoonsAlgPatch.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_CorrectedFrenet.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_DraftTrihedron.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_EvolvedSection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_FunctionDraft.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_FunctionGuide.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_HSequenceOfAx2.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_LocationDraft.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_LocationGuide.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_SequenceOfAx2.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_SequenceOfTrsf.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_SweepFunction.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomFill_UniformSection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomInt_LineConstructor.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomInt_LineConstructor.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomLib_IsPlanarSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomPlate_Array1OfHCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomPlate_SequenceOfAij.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomToIGES_GeomSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomToStep_MakeDirection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomToStep_MakeEllipse.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomToStep_MakeHyperbola.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomToStep_MakeParabola.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomToStep_MakePolyline.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/GeomToStep_MakeSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom_CylindricalSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom_ElementarySurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom_OsculatingSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom_SurfaceOfRevolution.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom_UndefinedDerivative.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Geom_VectorWithMagnitude.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_ArrayOfPoints.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_AspectLine3d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_AspectMarker3d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_AspectText3d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_AttribBuffer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_CappingFlags.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_CubeMapOrder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_CubeMapPacked.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_DiagnosticInfo.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_FrameStatsData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_GraphicDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_MapOfStructure.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_MaterialAspect.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_MediaTexture.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_NameOfMaterial.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_PolygonOffset.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_RenderingMode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_ShaderManager.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_ShaderObject.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_ShaderProgram.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_ShaderVariable.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_ShaderVariable.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_Texture2Dplane.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_TextureParams.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_TextureSetBits.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_TransModeFlags.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_TransformPers.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_TransformUtils.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_TypeOfAnswer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_TypeOfMaterial.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_TypeOfTexture.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_ViewAffinity.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Graphic3d_ZLayerSettings.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HLRAlgo_HArray1OfPHDat.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HLRAlgo_HArray1OfPINod.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HLRAlgo_HArray1OfPISeg.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HLRAlgo_HArray1OfTData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HLRAlgo_InterferenceList.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HLRAlgo_PolyHidingData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HLRAlgo_PolyInternalData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HLRAlgo_PolyInternalData.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HLRAlgo_PolyInternalNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HLRBRep_PolyHLRToShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HLRBRep_PolyHLRToShape.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HLRBRep_SeqOfShapeBounds.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HLRTopoBRep_FaceIsoLiner.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HLRTopoBRep_ListOfVData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HatchGen_PointOnElement.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HatchGen_PointOnElement.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HatchGen_PointOnHatching.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HatchGen_PointsOnElement.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HeaderSection_FileName.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HeaderSection_FileSchema.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/HeaderSection_Protocol.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFGraph_ExternalSources.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFGraph_StrongComponants.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFGraph_SubPartsIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_GeneralModifier.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_HSeqOfSelection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_ModifEditForm.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_SelectAnyList.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_SelectAnyType.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_SelectCombine.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_SelectControl.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_SelectExplore.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_SelectExtract.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_SelectPointed.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_SelectRootComps.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_SelectSharing.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_SelectSignature.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_SessionDumper.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_ShareOutResult.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_SignatureList.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_TSeqOfDispatch.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IFSelect_TSeqOfSelection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_Array1OfFlow.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_Array1OfNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_ElementResults.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_FiniteElement.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_FlowLineSpec.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_GeneralModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_HArray1OfFlow.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_HArray1OfNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_LevelFunction.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_LineWidening.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_NodalResults.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_PWBDrilledHole.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_SpecificModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_ToolPartNumber.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_ToolPinNumber.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESAppli_ToolPipingFlow.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESBasic_AssocGroupType.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESBasic_GeneralModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESBasic_OrderedGroup.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESBasic_SingleParent.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESBasic_SpecificModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESBasic_SubfigureDef.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESBasic_ToolHierarchy.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESCAFControl_Provider.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESControl_ActorWrite.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESControl_Controller.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESControl_IGESBoundary.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESConvGeom_GeomBuilder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_Array1OfDirPart.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_DefaultGeneral.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_DefaultSpecific.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_FileRecognizer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_GeneralModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_GlobalSection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_IGESReaderData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_IGESReaderTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_LevelListEntity.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_LineFontEntity.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_NodeOfWriterLib.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_ReadWriteModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_SpecificModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_UndefinedEntity.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESData_ViewKindEntity.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDefs_AttributeTable.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDefs_GeneralModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDefs_ReadWriteModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDefs_SpecificModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDefs_ToolGenericData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDefs_ToolTabularData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDefs_ToolUnitsData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDimen_BasicDimension.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDimen_CurveDimension.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDimen_DimensionUnits.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDimen_GeneralLabel.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDimen_GeneralModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDimen_GeneralSymbol.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDimen_NewGeneralNote.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDimen_PointDimension.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDimen_SectionedArea.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDimen_SpecificModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDimen_ToolCenterLine.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDimen_ToolFlagNote.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDraw_GeneralModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDraw_PerspectiveView.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDraw_ReadWriteModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESDraw_SpecificModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_BSplineSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_BoundedSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_CompositeCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_CurveOnSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_GeneralModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_OffsetSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_ReadWriteModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_SpecificModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_SplineSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_ToolCircularArc.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_ToolCopiousData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_ToolDirection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_ToolOffsetCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_ToolSplineCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGeom_TrimmedSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGraph_Array1OfColor.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGraph_DrawingUnits.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGraph_GeneralModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGraph_HArray1OfColor.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGraph_SpecificModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESGraph_ToolHighLight.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSelect_AutoCorrect.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSelect_ComputeStatus.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSelect_EditDirPart.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSelect_FileModifier.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSelect_FloatFormat.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSelect_IGESTypeForm.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSelect_ModelModifier.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSelect_RebuildGroups.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSelect_RemoveCurves.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSelect_SelectFaces.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSelect_SelectPCurves.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSelect_SetVersion5.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSelect_WorkLibrary.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_Array1OfFace.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_Array1OfLoop.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_Array1OfShell.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_ConicalSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_GeneralModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_HArray1OfFace.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_HArray1OfLoop.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_HArray1OfShell.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_ManifoldSolid.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_PlaneSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_SolidAssembly.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_SolidInstance.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_SpecificModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_ToolCylinder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_ToolEdgeList.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_ToolEllipsoid.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESSolid_ToolVertexList.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESToBRep_AlgoContainer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESToBRep_AlgoContainer.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESToBRep_BasicSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESToBRep_IGESBoundary.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESToBRep_IGESBoundary.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESToBRep_ToolContainer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IGESToBRep_TopoSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IMeshData_ParametersList.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IMeshTools_MeshAlgoType.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IMeshTools_MeshBuilder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IMeshTools_ModelBuilder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IMeshTools_ShapeExplorer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IMeshTools_ShapeVisitor.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Image_CompressedFormat.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Image_CompressedPixMap.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Image_SupportedFormats.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntAna2d_AnaIntersection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntAna2d_AnaIntersection.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntCurveSurface_HInter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntCurve_IntConicConic.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntCurve_IntConicConic.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntImp_ComputeTangence.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntPatch_LineConstructor.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntPatch_PolyhedronTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntPatch_PolyhedronTool.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntPatch_SequenceOfLine.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntPatch_SequenceOfPoint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntPatch_SpecialPoints.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntPatch_TheSearchInside.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntPatch_TheSurfFunction.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntPolyh_ArrayOfPoints.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntPolyh_ListOfCouples.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntSurf_SequenceOfCouple.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntTools_Array1OfRange.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntTools_Array1OfRoots.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntTools_BaseRangeSample.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntTools_CArray1OfReal.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntTools_MarkedRangeSet.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntTools_SequenceOfRoots.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntWalk_StatusDeflection.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/IntWalk_VectorOfInteger.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_CheckFailure.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_CheckIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_EntityCluster.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_EntityIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_FileParameter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_FileReaderData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_FileReaderTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_GeneralModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_GraphContent.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_InterfaceError.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_InterfaceModel.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_ReaderModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_ReportEntity.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_ValueInterpret.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Interface_ValueSatisfies.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Intf_SeqOfSectionPoint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Intrv_SequenceOfInterval.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/LDOM_LDOMImplementation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/LProp_SequenceOfCIType.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Law_BSplineKnotSplitting.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Law_ListIteratorOfLaws.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/LocOpe_DataMapOfShapePnt.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/LocOpe_FindEdgesInFace.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/LocOpe_FindEdgesInFace.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/LocOpe_SequenceOfPntFace.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/MAT2d_Array2OfConnexion.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/MAT_DataMapOfIntegerArc.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/MAT_DataMapOfIntegerNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/MAT_SequenceOfBasicElt.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/MeshVS_BuilderPriority.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/MeshVS_DisplayModeFlags.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/MeshVS_DrawerAttribute.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/MeshVS_MeshEntityOwner.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/MeshVS_SensitiveSegment.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/MeshVS_VectorPrsBuilder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Message_AttributeMeter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Message_AttributeObject.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Message_AttributeStream.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Message_CompositeAlerts.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Message_PrinterOStream.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Message_PrinterSystemLog.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Message_PrinterToReport.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Message_ProgressSentry.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/MoniTool_DataMapOfTimer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/MoniTool_TransientElem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/MoniTool_ValueInterpret.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/MoniTool_ValueSatisfies.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_AccAllocator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_AliasedArray.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_BaseSequence.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_CellFilter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_DefineAlloc.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_DefineHasher.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_DynamicArray.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_IncAllocator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_IndexedMap.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_LocalArray.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_OccAllocator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_SparseArray.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_StlIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_UBTreeFiller.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_UtfIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NCollection_UtfIterator.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NLPlate_HGPPConstraint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NLPlate_HPG0Constraint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NLPlate_HPG0G1Constraint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NLPlate_HPG0G2Constraint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NLPlate_HPG0G3Constraint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NLPlate_HPG1Constraint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NLPlate_HPG2Constraint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/NLPlate_HPG3Constraint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/OSD_Exception_CTRL_BREAK.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/OSD_FileSystemSelector.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/OpenGl_ArbSamplerObject.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/OpenGl_AspectsTextureSet.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/OpenGl_BackgroundArray.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/OpenGl_ClippingIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/OpenGl_StructureShadow.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/OpenGl_TextureBufferArb.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PCDM_BaseDriverPointer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PCDM_ReferenceIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PCDM_SequenceOfDocument.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PCDM_SequenceOfReference.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Plate_FreeGtoCConstraint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Plate_FreeGtoCConstraint.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Plate_PinpointConstraint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Plate_PinpointConstraint.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Poly_HArray1OfTriangle.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Poly_ListOfTriangulation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ProjLib_HProjectedCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ProjLib_ProjectOnPlane.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ProjLib_ProjectOnSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ProjLib_ProjectedCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Prs3d_PresentationShadow.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Prs3d_TypeOfLinePicking.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PrsDim_Chamf2dDimension.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PrsDim_Chamf3dDimension.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PrsDim_DiameterDimension.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PrsDim_IdenticRelation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PrsDim_KindOfDimension.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PrsDim_LengthDimension.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PrsDim_MidPointRelation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PrsDim_OffsetDimension.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PrsDim_ParallelRelation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PrsDim_RadiusDimension.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PrsDim_SymmetricRelation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PrsDim_TangentRelation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/PrsMgr_PresentableObject.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Quantity_Array1OfColor.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Quantity_HArray1OfColor.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWGltf_ConfigurationNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWGltf_DracoParameters.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWGltf_GltfMaterialMap.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWGltf_GltfOStreamWriter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWGltf_GltfPrimArrayData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWGltf_GltfPrimitiveMode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWGltf_GltfRootElement.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWGltf_GltfSceneNodeMap.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWGltf_WriterTrsfFormat.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWMesh_CoordinateSystem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWObj_ConfigurationNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWObj_ObjWriterContext.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWPly_ConfigurationNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWPly_PlyWriterContext.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/RWStl_ConfigurationNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Resource_ConvertUnicode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Resource_LexicalCompare.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Resource_NoSuchResource.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/STEPCAFControl_Provider.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/STEPConstruct_Assembly.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/STEPConstruct_ExternRefs.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/STEPControl_ActorWrite.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/STEPControl_Controller.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/STEPSelections_Counter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/STEPSelections_Counter.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Select3D_BVHIndexBuffer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Select3D_EntitySequence.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Select3D_SensitiveCircle.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Select3D_SensitiveCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Select3D_SensitiveEntity.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Select3D_SensitiveFace.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Select3D_SensitiveGroup.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Select3D_SensitivePoint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Select3D_SensitivePoly.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Select3D_SensitiveSphere.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Select3D_SensitiveWire.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/SelectBasics_EntityOwner.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/SelectBasics_PickResult.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/SelectMgr_BVHThreadPool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/SelectMgr_FrustumBuilder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/SelectMgr_ListOfFilter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/SelectMgr_SelectionType.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/SelectMgr_SortCriterion.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/SelectMgr_ToleranceMap.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/SelectMgr_TypeOfUpdate.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/SelectMgr_ViewClipRange.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/SelectMgr_ViewerSelector.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeAlgo_AlgoContainer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeAlgo_AlgoContainer.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeAlgo_ToolContainer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeAnalysis_BoxBndTree.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeAnalysis_FreeBounds.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeAnalysis_FreeBounds.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeAnalysis_WireOrder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeAnalysis_WireVertex.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeCustom_Modification.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeExtend_ComplexCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeExtend_ComplexCurve.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeFix_FixSmallSolid.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeFix_ShapeTolerance.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapePersistent_Geom2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapePersistent_HArray1.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapePersistent_HArray2.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapePersistent_TopoDS.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeProcess_OperLibrary.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeProcess_UOperator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeUpgrade_EdgeDivide.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeUpgrade_EdgeDivide.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeUpgrade_FaceDivide.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeUpgrade_ShapeDivide.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeUpgrade_ShellSewing.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeUpgrade_SplitCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/ShapeUpgrade_WireDivide.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_CLocaleSentry.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_CStringHasher.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_DefineException.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_DimensionError.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_HandlerStatus.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_ImmutableObject.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_LicenseNotFound.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_MultiplyDefined.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_NegativeValue.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_NotImplemented.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_PErrorHandler.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_PExtCharacter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_PrimitiveTypes.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_ReadLineBuffer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_WarningsDisable.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Standard_WarningsRestore.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StdFail_UndefinedValue.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StdLPersistent_Document.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StdLPersistent_Function.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StdLPersistent_HArray1.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StdLPersistent_HArray2.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StdLPersistent_HString.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StdLPersistent_NamedData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StdLPersistent_TreeNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StdLPersistent_Variable.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StdObjMgt_SharedObject.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StdPrs_BRepTextBuilder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StdPrs_DeflectionCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StdPrs_WFRestrictedFace.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepAP203_ApprovedItem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepAP203_CertifiedItem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepAP203_ChangeRequest.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepAP203_ClassifiedItem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepAP203_ContractedItem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepAP203_DateTimeItem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepAP203_SpecifiedItem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepAP203_StartRequest.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepAP214_ApprovalItem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepAP214_RepItemGroup.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_ActionMethod.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_AheadOrBehind.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_ApprovalRole.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_ApprovalStatus.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_Array1OfPerson.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_CalendarDate.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_Certification.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_ContractType.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_DateAssignment.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_DateTimeRole.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_DateTimeSelect.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_DesignContext.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_DocumentFile.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_DocumentType.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_ExternalSource.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_NameAssignment.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_Organization.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_PlaneAngleUnit.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_ProductContext.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepBasic_SolidAngleUnit.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepData_Array1OfField.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepData_ConfParameters.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepData_DefaultGeneral.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepData_FileRecognizer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepData_FreeFormEntity.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepData_GeneralModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepData_HArray1OfField.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepData_NodeOfWriterLib.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepData_ReadWriteModule.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepData_SelectArrReal.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepData_StepReaderData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepData_StepReaderTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepData_UndefinedEntity.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepDimTol_AreaUnitType.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepDimTol_CommonDatum.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepDimTol_DatumFeature.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepDimTol_DatumSystem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepDimTol_DatumTarget.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepDimTol_ToleranceZone.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepElement_ElementOrder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepFEA_DegreeOfFreedom.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepFEA_FeaAreaDensity.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepFEA_FeaMassDensity.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepFEA_NodeDefinition.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepFEA_NodeWithVector.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepFEA_UnspecifiedValue.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_Array1OfCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_Axis1Placement.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_Axis2Placement.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_BSplineSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_BezierSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_BoundaryCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_BoundedSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_CartesianPoint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_CompositeCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_ConicalSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_CurveOnSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_HArray1OfCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_OffsetCurve3d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_OffsetSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_OrientedSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_PcurveOrSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_PointOnSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_SurfaceBoundary.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_SurfaceReplica.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_ToroidalSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_TransitionCode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_TrimmingMember.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_TrimmingSelect.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepGeom_UniformSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepKinematics_GearPair.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepKinematics_PairValue.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepKinematics_ScrewPair.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepRepr_DataEnvironment.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepRepr_ParallelOffset.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepRepr_PerpendicularTo.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepRepr_ProductConcept.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepRepr_Representation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepRepr_ShapeDefinition.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepRepr_Transformation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepSelect_FileModifier.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepSelect_FloatFormat.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepSelect_ModelModifier.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepSelect_WorkLibrary.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_AdvancedFace.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_AngleRelator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_AngularSize.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_Array1OfEdge.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_Array1OfFace.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_Array1OfShell.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_BooleanOperand.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_BooleanResult.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_BoxedHalfSpace.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_BrepWithVoids.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_ClosedShell.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_CsgPrimitive.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_FaceOuterBound.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_FaceSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_FacetedBrep.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_GeometricSet.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_HArray1OfEdge.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_HArray1OfFace.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_HArray1OfShell.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_HalfSpaceSolid.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_LimitsAndFits.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_LoopAndPath.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_OrientedEdge.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_OrientedFace.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_OrientedPath.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_SolidReplica.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_SurfaceModel.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_SweptAreaSolid.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_SweptFaceSolid.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_ToleranceValue.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_TypeQualifier.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_ValueQualifier.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepShape_VertexPoint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepToTopoDS_DataMapOfRI.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepToTopoDS_PointPair.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_AreaOrView.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_CameraImage.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_CameraModel.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_CameraModelD2.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_CameraModelD3.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_CameraUsage.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_CompositeText.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_CurveStyle.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_EdgeOrCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_FaceOrSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_FillAreaStyle.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_FontSelect.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_Invisibility.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_InvisibleItem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_LayeredItem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_MarkerMember.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_MarkerSelect.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_MarkerType.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_PlanarExtent.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_PointStyle.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_PresentedItem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_StyledItem.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_SurfaceSide.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_TextLiteral.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/StepVisual_ViewVolume.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Storage_ArrayOfCallBack.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Storage_ArrayOfSchema.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Storage_DefaultCallBack.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Storage_HArrayOfCallBack.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Storage_HArrayOfSchema.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Storage_MapOfCallBack.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Storage_StreamModeError.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Storage_StreamReadError.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Storage_StreamWriteError.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Storage_TypedCallBack.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Sweep_NumShapeIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Sweep_NumShapeIterator.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColGeom2d_Array1OfCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColGeom_Array1OfCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColGeom_Array1OfSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColGeom_Array2OfSurface.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColGeom_HArray1OfCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColGeom_SequenceOfCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_Array1OfBoolean.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_Array1OfInteger.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_Array2OfBoolean.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_Array2OfInteger.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_HArray1OfBoolean.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_HArray1OfByte.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_HArray1OfInteger.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_HArray1OfReal.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_HArray2OfBoolean.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_HArray2OfInteger.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_HArray2OfReal.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_HSequenceOfReal.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_IndexedMapOfReal.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_ListOfInteger.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_ListOfTransient.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_MapOfAsciiString.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_MapOfTransient.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColStd_SequenceOfReal.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_Array1OfCirc2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_Array2OfCirc2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HArray1OfCirc2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HArray1OfDir2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HArray1OfLin2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HArray1OfPnt2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HArray1OfVec2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HArray2OfCirc2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HArray2OfDir2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HArray2OfLin2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HArray2OfPnt2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HArray2OfVec2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HSequenceOfDir.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HSequenceOfDir2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HSequenceOfPnt.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HSequenceOfPnt2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HSequenceOfVec.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HSequenceOfVec2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_HSequenceOfXYZ.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_SequenceOfDir2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_SequenceOfPnt2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TColgp_SequenceOfVec2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TCollection_AsciiString.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TCollection_AsciiString.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TCollection_HAsciiString.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TCollection_HAsciiString.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDF_AttributeDeltaList.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDF_AttributeDoubleMap.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDF_AttributeIndexedMap.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDF_AttributeIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDF_AttributeSequence.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDF_DeltaOnModification.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDF_ListIteratorOfIDList.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDF_MapIteratorOfIDMap.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataStd_BooleanArray.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataStd_ExtStringArray.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataStd_ExtStringList.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataStd_GenericEmpty.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataStd_HLabelArray1.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataStd_IntPackedMap.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataStd_IntegerArray.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataStd_ReferenceArray.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataStd_ReferenceList.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataXtd_Array1OfTrsf.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataXtd_ConstraintEnum.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataXtd_GeometryEnum.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataXtd_HArray1OfTrsf.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataXtd_Presentation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDataXtd_Triangulation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDocStd_ApplicationDelta.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDocStd_ApplicationDelta.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDocStd_CompoundDelta.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDocStd_FormatVersion.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDocStd_XLinkIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TDocStd_XLinkIterator.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TFunction_DriverTable.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TNaming_DeltaOnRemoval.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TNaming_ListOfMapOfShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TNaming_ListOfNamedShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TNaming_MapOfNamedShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TNaming_NewShapeIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TNaming_NewShapeIterator.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TNaming_OldShapeIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TNaming_OldShapeIterator.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TNaming_TranslateTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TObj_OcafObjectIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TObj_ReferenceIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TObj_SequenceIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TObj_SequenceOfIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TObj_SequenceOfObject.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TPrsStd_AISPresentation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TPrsStd_ConstraintDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TPrsStd_ConstraintTools.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TPrsStd_GeometryDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TPrsStd_NamedShapeDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TShort_Array1OfShortReal.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TShort_Array2OfShortReal.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopBas_TestInterference.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopClass_Classifier2d.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopClass_FaceClassifier.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_Builder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_Builder1.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_FuseFace.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_FuseFace.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_GIter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_GTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_GTopo.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_HBuilder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_LoopEnum.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_LoopSet.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_PBuilder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_PGTopo.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_PaveSet.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_ShapeSet.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_Tools.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_Tools2d.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_define.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepBuild_kpresu.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepDS_Association.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepDS_BuildTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepDS_CheckStatus.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepDS_CurveData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepDS_Explorer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepDS_GapFiller.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepDS_MapOfCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepDS_MapOfPoint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepDS_PointData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepDS_ShapeData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepDS_SurfaceData.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepDS_Transition.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_BoxSort.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_CLASSI.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_CORRISO.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_CurveTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_EXPORT.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_FuseEdges.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_GEOMETRY.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_GeomTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_HBoxTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_PROJECT.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_ShapeTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_TOPOLOGY.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_connexity.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_define.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_defineG.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRepTool_mkTondgE.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRep_EdgesFiller.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRep_FacesFiller.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRep_ListOfBipoint.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRep_PFacesFiller.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRep_PLineInter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRep_PointGeomTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRep_ShapeScanner.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRep_TypeLineCurve.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRep_VPointInter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRep_VPointInter.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopOpeBRep_WPointInter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopTools_Array1OfShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopTools_Array2OfShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopTools_FormatVersion.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopTools_HArray1OfShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopTools_HArray2OfShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopTools_LocationSetPtr.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopTools_SequenceOfShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopTools_ShapeMapHasher.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopTrans_CurveTransition.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopoDSToStep_FacetedTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopoDS_AlertAttribute.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TopoDS_AlertWithShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TransferBRep_ShapeBinder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TransferBRep_ShapeInfo.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/TransferBRep_ShapeMapper.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Transfer_ActorDispatch.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Transfer_DispatchControl.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Transfer_FinderProcess.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Transfer_MapContainer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Transfer_MultipleBinder.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Transfer_ResultFromModel.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Transfer_StatusResult.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Transfer_TransferFailure.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Transfer_TransferInput.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Transfer_TransferOutput.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Transfer_TransientMapper.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/UnitsMethods_LengthUnit.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Units_QuantitiesSequence.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Units_UnitsDictionary.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Units_UnitsDictionary.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/V3d_StereoDumpOptions.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/V3d_TypeOfOrientation.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/V3d_TypeOfShadingModel.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/V3d_TypeOfVisualization.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/VrmlConverter_HLRShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/VrmlConverter_IsoAspect.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/VrmlConverter_LineAspect.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/VrmlConverter_Projector.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/VrmlConverter_WFShape.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/VrmlData_ImageTexture.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/VrmlData_IndexedFaceSet.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/VrmlData_IndexedLineSet.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/VrmlData_ShapeConvert.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Vrml_ConfigurationNode.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Vrml_DirectionalLight.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Vrml_OrthographicCamera.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Vrml_PerspectiveCamera.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Vrml_Texture2Transform.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Vrml_TextureCoordinate2.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/Vrml_TransformSeparator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/WNT_ClassDefinitionError.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XCAFDimTolObjects_Tool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XCAFDoc_AssemblyGraph.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XCAFDoc_AssemblyItemId.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XCAFDoc_AssemblyItemRef.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XCAFDoc_AssemblyIterator.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XCAFDoc_GeomTolerance.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XCAFDoc_VisMaterialPBR.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XCAFDoc_VisMaterialTool.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XCAFPrs_DocumentExplorer.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XCAFView_ProjectionType.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XSAlgo_ShapeProcessor.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XSControl_TransferReader.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XSControl_TransferWriter.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XSControl_WorkSession.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XmlLDrivers_NamespaceDef.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XmlMDF_ReferenceDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XmlMDF_TagSourceDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XmlMDF_TypeADriverMap.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XmlMDataStd_RealDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XmlMDocStd_XLinkDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XmlMFunction_ScopeDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XmlMNaming_NamingDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XmlMXCAFDoc_ColorDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XmlMXCAFDoc_DatumDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XmlMXCAFDoc_DimTolDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XmlMXCAFDoc_NoteDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/XmlTObjDrivers_XYZDriver.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/math_EigenValuesSearcher.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/math_GaussSetIntegration.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/math_GaussSetIntegration.lxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/math_MultipleVarFunction.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/math_NewtonFunctionRoot.hxx create mode 100644 entry/src/main/cpp/3rdparty/opencascade/include/math_NewtonFunctionRoot.lxx create mode 100644 entry/src/main/cpp/EGLCore/EGLCore.cpp create mode 100644 entry/src/main/cpp/EGLCore/EGLCore.h create mode 100644 entry/src/main/cpp/OCCTRender/OCCTRender.cpp create mode 100644 entry/src/main/cpp/OCCTRender/OCCTRender.h create mode 100644 entry/src/main/cpp/OCCTRenderThread/OCCTRenderThread.cpp create mode 100644 entry/src/main/cpp/OCCTRenderThread/OCCTRenderThread.h delete mode 100644 entry/src/main/cpp/common/common.h delete mode 100644 entry/src/main/cpp/manager/plugin_manager.cpp delete mode 100644 entry/src/main/cpp/manager/plugin_manager.h delete mode 100644 entry/src/main/cpp/render/egl_core.cpp delete mode 100644 entry/src/main/cpp/render/egl_core.h delete mode 100644 entry/src/main/cpp/render/plugin_render.cpp delete mode 100644 entry/src/main/cpp/render/plugin_render.h delete mode 100644 entry/src/main/cpp/types/libentry/Index.d.ts create mode 100644 entry/src/main/cpp/types/libocct/Index.d.ts rename entry/src/main/cpp/types/{libentry => libocct}/oh-package.json5 (80%) create mode 100644 entry/src/main/resources/rawfile/model.step diff --git a/entry/build-profile.json5 b/entry/build-profile.json5 index 1f1e4af6..ed6d2641 100644 --- a/entry/build-profile.json5 +++ b/entry/build-profile.json5 @@ -11,7 +11,6 @@ "arguments": "", "cppFlags": "", "abiFilters": [ - "arm64-v8a", "x86_64" ] } diff --git a/entry/oh-package-lock.json5 b/entry/oh-package-lock.json5 index 7c36300c..7cf15593 100644 --- a/entry/oh-package-lock.json5 +++ b/entry/oh-package-lock.json5 @@ -6,13 +6,13 @@ "lockfileVersion": 3, "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", "specifiers": { - "libentry.so@src/main/cpp/types/libentry": "libentry.so@src/main/cpp/types/libentry" + "libocct.so@src/main/cpp/types/libocct": "libocct.so@src/main/cpp/types/libocct" }, "packages": { - "libentry.so@src/main/cpp/types/libentry": { - "name": "libentry.so", + "libocct.so@src/main/cpp/types/libocct": { + "name": "libocct.so", "version": "1.0.0", - "resolved": "src/main/cpp/types/libentry", + "resolved": "src/main/cpp/types/libocct", "registryType": "local" } } diff --git a/entry/oh-package.json5 b/entry/oh-package.json5 index 54cb0662..eb987ec4 100644 --- a/entry/oh-package.json5 +++ b/entry/oh-package.json5 @@ -6,6 +6,6 @@ "author": "", "license": "", "dependencies": { - "libentry.so": "file:./src/main/cpp/types/libentry" + "libocct.so": "file:./src/main/cpp/types/libocct" } } \ No newline at end of file diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AIS_AnimationAxisRotation.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_AnimationAxisRotation.hxx new file mode 100644 index 00000000..6e1659b1 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_AnimationAxisRotation.hxx @@ -0,0 +1,49 @@ +// Copyright (c) 2023 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AIS_AnimationAxisRotation_HeaderFile +#define _AIS_AnimationAxisRotation_HeaderFile + +#include "AIS_BaseAnimationObject.hxx" +#include "gp_TrsfNLerp.hxx" + +//! Animation defining object transformation. +class AIS_AnimationAxisRotation : public AIS_BaseAnimationObject +{ + DEFINE_STANDARD_RTTIEXT(AIS_AnimationAxisRotation, AIS_BaseAnimationObject) +public: + //! Constructor with initialization. + //! @param[in] theAnimationName animation identifier + //! @param[in] theContext interactive context where object have been displayed + //! @param[in] theObject object to apply rotation + //! @param[in] theAxis rotation axis + //! @param[in] theAngleStart rotation angle at the start of animation + //! @param[in] theAngleEnd rotation angle at the end of animation + Standard_EXPORT AIS_AnimationAxisRotation(const TCollection_AsciiString& theAnimationName, + const Handle(AIS_InteractiveContext)& theContext, + const Handle(AIS_InteractiveObject)& theObject, + const gp_Ax1& theAxis, + const Standard_Real theAngleStart, + const Standard_Real theAngleEnd); + +protected: + //! Update the progress. + Standard_EXPORT virtual void update(const AIS_AnimationProgress& theProgress) Standard_OVERRIDE; + +private: + gp_Ax1 myRotAxis; //!< rotation axis + Standard_Real myAngleStart; //!< start angle for rotation + Standard_Real myAngleEnd; //!< end angle for rotation +}; + +#endif // _AIS_AnimationAxisRotation_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AIS_BaseAnimationObject.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_BaseAnimationObject.hxx new file mode 100644 index 00000000..9528a86e --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_BaseAnimationObject.hxx @@ -0,0 +1,45 @@ +// Copyright (c) 2023 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AIS_BaseAnimationObject_HeaderFile +#define _AIS_BaseAnimationObject_HeaderFile + +#include "AIS_Animation.hxx" +#include "AIS_InteractiveContext.hxx" + +//! Animation defining object transformation. +class AIS_BaseAnimationObject : public AIS_Animation +{ + DEFINE_STANDARD_RTTIEXT(AIS_BaseAnimationObject, AIS_Animation) +protected: + //! Constructor with initialization. + //! @param[in] theAnimationName animation identifier + //! @param[in] theContext interactive context where object have been displayed + //! @param[in] theObject object to apply local transformation + Standard_EXPORT AIS_BaseAnimationObject(const TCollection_AsciiString& theAnimationName, + const Handle(AIS_InteractiveContext)& theContext, + const Handle(AIS_InteractiveObject)& theObject); + + //! Update the transformation. + Standard_EXPORT void updateTrsf(const gp_Trsf& theTrsf); + +private: + //! Invalidate the viewer for proper update. + Standard_EXPORT void invalidateViewer(); + +protected: + Handle(AIS_InteractiveContext) myContext; //!< context where object is displayed + Handle(AIS_InteractiveObject) myObject; //!< presentation object to set location +}; + +#endif // _AIS_BaseAnimationObject_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AIS_C0RegularityFilter.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_C0RegularityFilter.hxx new file mode 100644 index 00000000..7494f2de --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_C0RegularityFilter.hxx @@ -0,0 +1,50 @@ +// Created on: 1998-02-04 +// Created by: Julia GERASIMOVA +// Copyright (c) 1998-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AIS_C0RegularityFilter_HeaderFile +#define _AIS_C0RegularityFilter_HeaderFile + +#include "Standard.hxx" + +#include "TopTools_MapOfShape.hxx" +#include "SelectMgr_Filter.hxx" +#include "TopAbs_ShapeEnum.hxx" +class TopoDS_Shape; +class SelectMgr_EntityOwner; + +class AIS_C0RegularityFilter; +DEFINE_STANDARD_HANDLE(AIS_C0RegularityFilter, SelectMgr_Filter) + +class AIS_C0RegularityFilter : public SelectMgr_Filter +{ + +public: + Standard_EXPORT AIS_C0RegularityFilter(const TopoDS_Shape& aShape); + + Standard_EXPORT virtual Standard_Boolean ActsOn(const TopAbs_ShapeEnum aType) const + Standard_OVERRIDE; + + Standard_EXPORT virtual Standard_Boolean IsOk(const Handle(SelectMgr_EntityOwner)& EO) const + Standard_OVERRIDE; + + DEFINE_STANDARD_RTTIEXT(AIS_C0RegularityFilter, SelectMgr_Filter) + +protected: +private: + TopTools_MapOfShape myMapOfEdges; +}; + +#endif // _AIS_C0RegularityFilter_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AIS_ConcentricRelation.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_ConcentricRelation.hxx new file mode 100644 index 00000000..4e01c852 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_ConcentricRelation.hxx @@ -0,0 +1,22 @@ +// Copyright (c) 2020 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AIS_ConcentricRelation_HeaderFile +#define _AIS_ConcentricRelation_HeaderFile + +#include "PrsDim_ConcentricRelation.hxx" + +Standard_DEPRECATED("Alias to moved class") +typedef PrsDim_ConcentricRelation AIS_ConcentricRelation; + +#endif // _AIS_ConcentricRelation_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AIS_ConnectedInteractive.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_ConnectedInteractive.hxx new file mode 100644 index 00000000..2a627309 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_ConnectedInteractive.hxx @@ -0,0 +1,149 @@ +// Created on: 1997-01-08 +// Created by: Robert COUBLANC +// Copyright (c) 1997-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AIS_ConnectedInteractive_HeaderFile +#define _AIS_ConnectedInteractive_HeaderFile + +#include "AIS_InteractiveObject.hxx" +#include "AIS_KindOfInteractive.hxx" +#include "TopoDS_Shape.hxx" + +//! Creates an arbitrary located instance of another Interactive Object, +//! which serves as a reference. +//! This allows you to use the Connected Interactive +//! Object without having to recalculate presentation, +//! selection or graphic structure. These are deduced +//! from your reference object. +//! The relation between the connected interactive object +//! and its source is generally one of geometric transformation. +//! AIS_ConnectedInteractive class supports selection mode 0 for any InteractiveObject and +//! all standard modes if its reference based on AIS_Shape. +//! Descendants may redefine ComputeSelection() though. +//! Also ConnectedInteractive will handle HLR if its reference based on AIS_Shape. +class AIS_ConnectedInteractive : public AIS_InteractiveObject +{ + DEFINE_STANDARD_RTTIEXT(AIS_ConnectedInteractive, AIS_InteractiveObject) +public: + //! Disconnects the previous view and sets highlight + //! mode to 0. This highlights the wireframe presentation + //! aTypeOfPresentation3d. + //! Top_AllView deactivates hidden line removal. + Standard_EXPORT AIS_ConnectedInteractive( + const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d = PrsMgr_TOP_AllView); + + //! Returns KOI_Object + virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE + { + return AIS_KindOfInteractive_Object; + } + + //! Returns 0 + virtual Standard_Integer Signature() const Standard_OVERRIDE { return 0; } + + //! Establishes the connection between the Connected + //! Interactive Object, anotherIobj, and its reference. + void Connect(const Handle(AIS_InteractiveObject)& theAnotherObj) + { + connect(theAnotherObj, Handle(TopLoc_Datum3D)()); + } + + //! Establishes the connection between the Connected + //! Interactive Object, anotherIobj, and its reference. + //! Locates instance in aLocation. + void Connect(const Handle(AIS_InteractiveObject)& theAnotherObj, const gp_Trsf& theLocation) + { + connect(theAnotherObj, new TopLoc_Datum3D(theLocation)); + } + + //! Establishes the connection between the Connected + //! Interactive Object, anotherIobj, and its reference. + //! Locates instance in aLocation. + void Connect(const Handle(AIS_InteractiveObject)& theAnotherObj, + const Handle(TopLoc_Datum3D)& theLocation) + { + connect(theAnotherObj, theLocation); + } + + //! Returns true if there is a connection established + //! between the presentation and its source reference. + Standard_Boolean HasConnection() const { return !myReference.IsNull(); } + + //! Returns the connection with the reference Interactive Object. + const Handle(AIS_InteractiveObject)& ConnectedTo() const { return myReference; } + + //! Clears the connection with a source reference. The + //! presentation will no longer be displayed. + //! Warning Must be done before deleting the presentation. + Standard_EXPORT void Disconnect(); + + //! Informs the graphic context that the interactive Object + //! may be decomposed into sub-shapes for dynamic selection. + virtual Standard_Boolean AcceptShapeDecomposition() const Standard_OVERRIDE + { + return !myReference.IsNull() && myReference->AcceptShapeDecomposition(); + } + + //! Return true if reference presentation accepts specified display mode. + virtual Standard_Boolean AcceptDisplayMode(const Standard_Integer theMode) const Standard_OVERRIDE + { + return myReference.IsNull() || myReference->AcceptDisplayMode(theMode); + } + +protected: + //! Calculates the view aPresentation and its updates. + //! The latter are managed by aPresentationManager. + //! The display mode aMode is 0 by default. + //! this method is redefined virtual; + //! when the instance is connected to another + //! InteractiveObject,this method doesn't + //! compute anything, but just uses the + //! presentation of this last object, with + //! a transformation if there's one stored. + Standard_EXPORT virtual void Compute(const Handle(PrsMgr_PresentationManager)& thePrsMgr, + const Handle(Prs3d_Presentation)& theprs, + const Standard_Integer theMode) Standard_OVERRIDE; + + //! Computes the presentation according to a point of view. + Standard_EXPORT virtual void computeHLR(const Handle(Graphic3d_Camera)& theProjector, + const Handle(TopLoc_Datum3D)& theTrsf, + const Handle(Prs3d_Presentation)& thePrs) + Standard_OVERRIDE; + + //! Generates sensitive entities by copying + //! them from myReference selection, creates and sets an entity + //! owner for this entities and adds them to theSelection + Standard_EXPORT virtual void ComputeSelection(const Handle(SelectMgr_Selection)& theSelection, + const Standard_Integer theMode) Standard_OVERRIDE; + + //! Generates sensitive entities by copying + //! them from myReference sub shapes selection, creates and sets an entity + //! owner for this entities and adds them to theSelection + Standard_EXPORT void computeSubShapeSelection(const Handle(SelectMgr_Selection)& theSelection, + const Standard_Integer theMode); + + Standard_EXPORT void updateShape(const Standard_Boolean WithLocation = Standard_True); + + Standard_EXPORT void connect(const Handle(AIS_InteractiveObject)& theAnotherObj, + const Handle(TopLoc_Datum3D)& theLocation); + +protected: + Handle(AIS_InteractiveObject) myReference; + TopoDS_Shape myShape; +}; + +DEFINE_STANDARD_HANDLE(AIS_ConnectedInteractive, AIS_InteractiveObject) + +#endif // _AIS_ConnectedInteractive_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AIS_DataMapOfShapeDrawer.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_DataMapOfShapeDrawer.hxx new file mode 100644 index 00000000..e9ea4964 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_DataMapOfShapeDrawer.hxx @@ -0,0 +1,24 @@ +// Copyright (c) 2016 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AIS_DataMapOfShapeDrawer_HeaderFile +#define _AIS_DataMapOfShapeDrawer_HeaderFile + +#include "AIS_ColoredDrawer.hxx" +#include "NCollection_DataMap.hxx" +#include "TopTools_ShapeMapHasher.hxx" + +typedef NCollection_DataMap + AIS_DataMapOfShapeDrawer; + +#endif // _AIS_DataMapOfShapeDrawer_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AIS_EqualDistanceRelation.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_EqualDistanceRelation.hxx new file mode 100644 index 00000000..b4a3cdf1 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_EqualDistanceRelation.hxx @@ -0,0 +1,22 @@ +// Copyright (c) 2020 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AIS_EqualDistanceRelation_HeaderFile +#define _AIS_EqualDistanceRelation_HeaderFile + +#include "PrsDim_EqualDistanceRelation.hxx" + +Standard_DEPRECATED("Deprecated alias to moved class") +typedef PrsDim_EqualDistanceRelation AIS_EqualDistanceRelation; + +#endif // _AIS_EqualDistanceRelation_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AIS_EqualRadiusRelation.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_EqualRadiusRelation.hxx new file mode 100644 index 00000000..01511ef1 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_EqualRadiusRelation.hxx @@ -0,0 +1,22 @@ +// Copyright (c) 2020 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AIS_EqualRadiusRelation_HeaderFile +#define _AIS_EqualRadiusRelation_HeaderFile + +#include "PrsDim_EqualRadiusRelation.hxx" + +Standard_DEPRECATED("Deprecated alias to moved class") +typedef PrsDim_EqualRadiusRelation AIS_EqualRadiusRelation; + +#endif // _AIS_EqualRadiusRelation_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AIS_InteractiveContext.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_InteractiveContext.hxx new file mode 100644 index 00000000..9a23f07c --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_InteractiveContext.hxx @@ -0,0 +1,1686 @@ +// Created on: 1996-12-18 +// Created by: Robert COUBLANC +// Copyright (c) 1996-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AIS_InteractiveContext_HeaderFile +#define _AIS_InteractiveContext_HeaderFile + +#include "AIS_DataMapOfIOStatus.hxx" +#include "AIS_DisplayMode.hxx" +#include "AIS_DisplayStatus.hxx" +#include "AIS_KindOfInteractive.hxx" +#include "AIS_ListOfInteractive.hxx" +#include "AIS_Selection.hxx" +#include "AIS_SelectionModesConcurrency.hxx" +#include "AIS_SelectionScheme.hxx" +#include "AIS_StatusOfDetection.hxx" +#include "AIS_StatusOfPick.hxx" +#include "AIS_TypeOfIso.hxx" +#include "Aspect_TypeOfFacingModel.hxx" +#include "Graphic3d_Vec2.hxx" +#include "Prs3d_Drawer.hxx" +#include "Prs3d_TypeOfHighlight.hxx" +#include "PrsMgr_PresentationManager.hxx" +#include "SelectMgr_AndOrFilter.hxx" +#include "SelectMgr_IndexedMapOfOwner.hxx" +#include "SelectMgr_ListOfFilter.hxx" +#include "SelectMgr_PickingStrategy.hxx" +#include "SelectMgr_SelectionManager.hxx" +#include "StdSelect_ViewerSelector3d.hxx" +#include "TCollection_AsciiString.hxx" +#include "TColgp_Array1OfPnt2d.hxx" +#include "TColStd_ListOfInteger.hxx" +#include "TColStd_SequenceOfInteger.hxx" +#include "Quantity_Color.hxx" + +class V3d_Viewer; +class V3d_View; +class TopLoc_Location; +class TCollection_ExtendedString; +class Prs3d_LineAspect; +class Prs3d_BasicAspect; +class TopoDS_Shape; +class SelectMgr_Filter; + +//! The Interactive Context allows you to manage graphic behavior and selection of Interactive +//! Objects in one or more viewers. Class methods make this highly transparent. It is essential to +//! remember that an Interactive Object which is already known by the Interactive Context must be +//! modified using Context methods. You can only directly call the methods available for an +//! Interactive Object if it has not been loaded into an Interactive Context. +//! +//! Each selectable object must specify the selection mode that is +//! responsible for selection of object as a whole (global selection mode). +//! Interactive context itself supports decomposed object selection with selection filters support. +//! By default, global selection mode is equal to 0, but it might be redefined if needed. +class AIS_InteractiveContext : public Standard_Transient +{ + DEFINE_STANDARD_RTTIEXT(AIS_InteractiveContext, Standard_Transient) +public: //! @name object display management + //! Constructs the interactive context object defined by the principal viewer MainViewer. + Standard_EXPORT AIS_InteractiveContext(const Handle(V3d_Viewer)& MainViewer); + + //! Destructor. + Standard_EXPORT virtual ~AIS_InteractiveContext(); + + //! Returns the display status of the entity anIobj. + //! This will be one of the following: + //! - AIS_DS_Displayed displayed in main viewer + //! - AIS_DS_Erased hidden in main viewer + //! - AIS_DS_Temporary temporarily displayed + //! - AIS_DS_None nowhere displayed. + Standard_EXPORT PrsMgr_DisplayStatus + DisplayStatus(const Handle(AIS_InteractiveObject)& anIobj) const; + + //! Returns the status of the Interactive Context for the view of the Interactive Object. + Standard_EXPORT void Status(const Handle(AIS_InteractiveObject)& anObj, + TCollection_ExtendedString& astatus) const; + + //! Returns true if Object is displayed in the interactive context. + Standard_EXPORT Standard_Boolean IsDisplayed(const Handle(AIS_InteractiveObject)& anIobj) const; + + Standard_EXPORT Standard_Boolean IsDisplayed(const Handle(AIS_InteractiveObject)& aniobj, + const Standard_Integer aMode) const; + + //! Enable or disable automatic activation of default selection mode while displaying the object. + void SetAutoActivateSelection(const Standard_Boolean theIsAuto) + { + myIsAutoActivateSelMode = theIsAuto; + } + + //! Manages displaying the new object should also automatically activate default selection mode; + //! TRUE by default. + Standard_Boolean GetAutoActivateSelection() const { return myIsAutoActivateSelMode; } + + //! Displays the object in this Context using default Display Mode. + //! This will be the object's default display mode, if there is one. Otherwise, it will be the + //! context mode. The Interactive Object's default selection mode is activated if + //! GetAutoActivateSelection() is TRUE. In general, this is 0. + Standard_EXPORT void Display(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer); + + //! Sets status, display mode and selection mode for specified Object + //! If theSelectionMode equals -1, theIObj will not be activated: it will be displayed but will + //! not be selectable. + Standard_EXPORT void Display( + const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Integer theDispMode, + const Standard_Integer theSelectionMode, + const Standard_Boolean theToUpdateViewer, + const PrsMgr_DisplayStatus theDispStatus = PrsMgr_DisplayStatus_None); + + //! Allows you to load the Interactive Object with a given selection mode, + //! and/or with the desired decomposition option, whether the object is visualized or not. + //! The loaded objects will be selectable but displayable in highlighting only when detected by + //! the Selector. + Standard_EXPORT void Load(const Handle(AIS_InteractiveObject)& theObj, + const Standard_Integer theSelectionMode = -1); + + //! Hides the object. The object's presentations are simply flagged as invisible and therefore + //! excluded from redrawing. To show hidden objects, use Display(). + Standard_EXPORT void Erase(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer); + + //! Hides all objects. The object's presentations are simply flagged as invisible and therefore + //! excluded from redrawing. To show all hidden objects, use DisplayAll(). + Standard_EXPORT void EraseAll(const Standard_Boolean theToUpdateViewer); + + //! Displays all hidden objects. + Standard_EXPORT void DisplayAll(const Standard_Boolean theToUpdateViewer); + + //! Hides selected objects. The object's presentations are simply flagged as invisible and + //! therefore excluded from redrawing. To show hidden objects, use Display(). + Standard_EXPORT void EraseSelected(const Standard_Boolean theToUpdateViewer); + + //! Displays current objects. + Standard_EXPORT void DisplaySelected(const Standard_Boolean theToUpdateViewer); + + //! Empties the graphic presentation of the mode indexed by aMode. + //! Warning! Removes theIObj. theIObj is still active if it was previously activated. + void ClearPrs(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Integer theMode, + const Standard_Boolean theToUpdateViewer) + { + ClearGlobalPrs(theIObj, theMode, theToUpdateViewer); + } + + //! Removes Object from every viewer. + Standard_EXPORT void Remove(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer); + + //! Removes all the objects from Context. + Standard_EXPORT void RemoveAll(const Standard_Boolean theToUpdateViewer); + + //! Recomputes the seen parts presentation of the Object. + //! If theAllModes equals true, all presentations are present in the object even if unseen. + Standard_EXPORT void Redisplay(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer, + const Standard_Boolean theAllModes = Standard_False); + + //! Recomputes the Prs/Selection of displayed objects of a given type and a given signature. + //! if signature = -1 doesn't take signature criterion. + Standard_EXPORT void Redisplay(const AIS_KindOfInteractive theTypeOfObject, + const Standard_Integer theSignature, + const Standard_Boolean theToUpdateViewer); + + //! Recomputes the displayed presentations, flags the others. + //! Doesn't update presentations. + Standard_EXPORT void RecomputePrsOnly(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer, + const Standard_Boolean theAllModes = Standard_False); + + //! Recomputes the active selections, flags the others. + //! Doesn't update presentations. + Standard_EXPORT void RecomputeSelectionOnly(const Handle(AIS_InteractiveObject)& anIObj); + + //! Updates displayed interactive object by checking and recomputing its flagged as "to be + //! recomputed" presentation and selection structures. This method does not force any + //! recomputation on its own. The method recomputes selections even if they are loaded without + //! activation in particular selector. + Standard_EXPORT void Update(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theUpdateViewer); + +public: //! @name highlighting management + //! Returns default highlight style settings (could be overridden by PrsMgr_PresentableObject). + //! + //! Tip: although highlighting style is defined by Prs3d_Drawer, + //! only a small set of properties derived from it's base class Graphic3d_PresentationAttributes + //! will be actually used in most cases. + //! + //! Default highlight style for all types is Aspect_TOHM_COLOR. Other defaults: + //! - Prs3d_TypeOfHighlight_Dynamic + //! * Color: Quantity_NOC_CYAN1; + //! * Layer: Graphic3d_ZLayerId_Top, + //! object highlighting is drawn on top of main scene within Immediate Layers, + //! so that V3d_View::RedrawImmediate() will be enough to see update; + //! - Prs3d_TypeOfHighlight_LocalDynamic + //! * Color: Quantity_NOC_CYAN1; + //! * Layer: Graphic3d_ZLayerId_Topmost, + //! object parts highlighting is drawn on top of main scene within Immediate Layers + //! with depth cleared (even overlapped geometry will be revealed); + //! - Prs3d_TypeOfHighlight_Selected + //! * Color: Quantity_NOC_GRAY80; + //! * Layer: Graphic3d_ZLayerId_UNKNOWN, + //! object highlighting is drawn on top of main scene within the same layer + //! as object itself (e.g. Graphic3d_ZLayerId_Default by default) and increased + //! priority. + //! + //! @param[in] theStyleType highlight style to modify + //! @return drawer associated to specified highlight type + //! + //! @sa MoveTo() using Prs3d_TypeOfHighlight_Dynamic and Prs3d_TypeOfHighlight_LocalDynamic types + //! @sa SelectDetected() using Prs3d_TypeOfHighlight_Selected and + //! Prs3d_TypeOfHighlight_LocalSelected types + //! @sa PrsMgr_PresentableObject::DynamicHilightAttributes() overriding + //! Prs3d_TypeOfHighlight_Dynamic and Prs3d_TypeOfHighlight_LocalDynamic defaults on object level + //! @sa PrsMgr_PresentableObject::HilightAttributes() overriding Prs3d_TypeOfHighlight_Selected + //! and Prs3d_TypeOfHighlight_LocalSelected defaults on object level + const Handle(Prs3d_Drawer)& HighlightStyle(const Prs3d_TypeOfHighlight theStyleType) const + { + return myStyles[theStyleType]; + } + + //! Setup highlight style settings. + //! Tip: it is better modifying existing style returned by method HighlightStyle() + //! instead of creating a new Prs3d_Drawer to avoid unexpected results due misconfiguration. + //! + //! If a new highlight style is created, its presentation Zlayer should be checked, + //! otherwise highlighting might not work as expected. + void SetHighlightStyle(const Prs3d_TypeOfHighlight theStyleType, + const Handle(Prs3d_Drawer)& theStyle) + { + myStyles[theStyleType] = theStyle; + if (theStyleType == Prs3d_TypeOfHighlight_None) + { + myDefaultDrawer = theStyle; + } + } + + //! Returns current dynamic highlight style settings corresponding to + //! Prs3d_TypeOfHighlight_Dynamic. This is just a short-cut to + //! HighlightStyle(Prs3d_TypeOfHighlight_Dynamic). + const Handle(Prs3d_Drawer)& HighlightStyle() const + { + return myStyles[Prs3d_TypeOfHighlight_Dynamic]; + } + + //! Setup the style of dynamic highlighting corrsponding to Prs3d_TypeOfHighlight_Selected. + //! This is just a short-cut to SetHighlightStyle(Prs3d_TypeOfHighlight_Dynamic,theStyle). + void SetHighlightStyle(const Handle(Prs3d_Drawer)& theStyle) + { + myStyles[Prs3d_TypeOfHighlight_Dynamic] = theStyle; + } + + //! Returns current selection style settings corrsponding to Prs3d_TypeOfHighlight_Selected. + //! This is just a short-cut to HighlightStyle(Prs3d_TypeOfHighlight_Selected). + const Handle(Prs3d_Drawer)& SelectionStyle() const + { + return myStyles[Prs3d_TypeOfHighlight_Selected]; + } + + //! Setup the style of selection highlighting. + //! This is just a short-cut to SetHighlightStyle(Prs3d_TypeOfHighlight_Selected,theStyle). + void SetSelectionStyle(const Handle(Prs3d_Drawer)& theStyle) + { + myStyles[Prs3d_TypeOfHighlight_Selected] = theStyle; + } + + //! Returns highlight style of the object if it is marked as highlighted via global status + //! @param[in] theObj the object to check + Standard_EXPORT Standard_Boolean HighlightStyle(const Handle(AIS_InteractiveObject)& theObj, + Handle(Prs3d_Drawer)& theStyle) const; + + //! Returns highlight style of the owner if it is selected + //! @param[in] theOwner the owner to check + Standard_EXPORT Standard_Boolean HighlightStyle(const Handle(SelectMgr_EntityOwner)& theOwner, + Handle(Prs3d_Drawer)& theStyle) const; + + //! Returns true if the object is marked as highlighted via its global status + //! @param[in] theObj the object to check + Standard_EXPORT Standard_Boolean IsHilighted(const Handle(AIS_InteractiveObject)& theObj) const; + + //! Returns true if the owner is marked as selected + //! @param[in] theOwner the owner to check + Standard_EXPORT Standard_Boolean IsHilighted(const Handle(SelectMgr_EntityOwner)& theOwner) const; + + //! Changes the color of all the lines of the object in view. + Standard_EXPORT void HilightWithColor(const Handle(AIS_InteractiveObject)& theObj, + const Handle(Prs3d_Drawer)& theStyle, + const Standard_Boolean theToUpdateViewer); + + //! Removes hilighting from the Object. + Standard_EXPORT void Unhilight(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer); + +public: //! @name object presence management (View affinity, Layer, Priority) + //! Returns the display priority of the Object. + Standard_EXPORT Graphic3d_DisplayPriority + DisplayPriority(const Handle(AIS_InteractiveObject)& theIObj) const; + + //! Sets the display priority of the seen parts presentation of the Object. + Standard_EXPORT void SetDisplayPriority(const Handle(AIS_InteractiveObject)& theIObj, + const Graphic3d_DisplayPriority thePriority); + + Standard_DEPRECATED("Deprecated since OCCT7.7, Graphic3d_DisplayPriority should be passed " + "instead of integer number to SetDisplayPriority()") + + void SetDisplayPriority(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Integer thePriority) + { + SetDisplayPriority(theIObj, (Graphic3d_DisplayPriority)thePriority); + } + + //! Get Z layer id set for displayed interactive object. + Standard_EXPORT Graphic3d_ZLayerId GetZLayer(const Handle(AIS_InteractiveObject)& theIObj) const; + + //! Set Z layer id for interactive object. + //! The Z layers can be used to display temporarily presentations of some object in front of the + //! other objects in the scene. The ids for Z layers are generated by V3d_Viewer. + Standard_EXPORT void SetZLayer(const Handle(AIS_InteractiveObject)& theIObj, + const Graphic3d_ZLayerId theLayerId); + + //! Setup object visibility in specified view. + //! Has no effect if object is not displayed in this context. + Standard_EXPORT void SetViewAffinity(const Handle(AIS_InteractiveObject)& theIObj, + const Handle(V3d_View)& theView, + const Standard_Boolean theIsVisible); + +public: //! @name Display Mode management + //! Returns the Display Mode setting to be used by default. + Standard_Integer DisplayMode() const { return myDefaultDrawer->DisplayMode(); } + + //! Sets the display mode of seen Interactive Objects (which have no overridden Display Mode). + Standard_EXPORT void SetDisplayMode(const Standard_Integer theMode, + const Standard_Boolean theToUpdateViewer); + + //! Sets the display mode of seen Interactive Objects. + //! theMode provides the display mode index of the entity theIObj. + Standard_EXPORT void SetDisplayMode(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Integer theMode, + const Standard_Boolean theToUpdateViewer); + + //! Unsets the display mode of seen Interactive Objects. + Standard_EXPORT void UnsetDisplayMode(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer); + +public: //! @name object local transformation management + //! Puts the location on the initial graphic representation and the selection for the Object. + Standard_EXPORT void SetLocation(const Handle(AIS_InteractiveObject)& theObject, + const TopLoc_Location& theLocation); + + //! Puts the Object back into its initial position. + Standard_EXPORT void ResetLocation(const Handle(AIS_InteractiveObject)& theObject); + + //! Returns true if the Object has a location. + Standard_EXPORT Standard_Boolean + HasLocation(const Handle(AIS_InteractiveObject)& theObject) const; + + //! Returns the location of the Object. + Standard_EXPORT TopLoc_Location Location(const Handle(AIS_InteractiveObject)& theObject) const; + + //! Sets transform persistence. + Standard_EXPORT void SetTransformPersistence(const Handle(AIS_InteractiveObject)& theObject, + const Handle(Graphic3d_TransformPers)& theTrsfPers); + +public: //! @name mouse picking logic (detection and dynamic highlighting of entities under cursor) + //! Setup pixel tolerance for MoveTo() operation. + //! @sa MoveTo(). + Standard_EXPORT void SetPixelTolerance(const Standard_Integer thePrecision = 2); + + //! Returns the pixel tolerance, default is 2. + //! Pixel Tolerance extends sensitivity within MoveTo() operation (picking by point) + //! and can be adjusted by application based on user input precision (e.g. screen pixel density, + //! input device precision, etc.). + Standard_EXPORT Standard_Integer PixelTolerance() const; + + //! Allows to manage sensitivity of a particular selection of interactive object theObject + //! and changes previous sensitivity value of all sensitive entities in selection with theMode + //! to the given theNewSensitivity. + Standard_EXPORT void SetSelectionSensitivity(const Handle(AIS_InteractiveObject)& theObject, + const Standard_Integer theMode, + const Standard_Integer theNewSensitivity); + + //! Returns last active View (argument of MoveTo()/Select() methods). + Standard_EXPORT Handle(V3d_View) LastActiveView() const; + + //! Relays mouse position in pixels theXPix and theYPix to the interactive context selectors. + //! This is done by the view theView passing this position to the main viewer and updating it. + //! If theToRedrawOnUpdate is set to false, callee should call RedrawImmediate() to highlight + //! detected object. + //! @sa PickingStrategy() + //! @sa HighlightStyle() defining default dynamic highlight styles of detected owners + //! (Prs3d_TypeOfHighlight_Dynamic and Prs3d_TypeOfHighlight_LocalDynamic) + //! @sa PrsMgr_PresentableObject::DynamicHilightAttributes() defining per-object dynamic highlight + //! style of detected owners (overrides defaults) + Standard_EXPORT AIS_StatusOfDetection MoveTo(const Standard_Integer theXPix, + const Standard_Integer theYPix, + const Handle(V3d_View)& theView, + const Standard_Boolean theToRedrawOnUpdate); + + //! Relays axis theAxis to the interactive context selectors. + //! This is done by the view theView passing this axis to the main viewer and updating it. + //! If theToRedrawOnUpdate is set to false, callee should call RedrawImmediate() to highlight + //! detected object. + //! @sa PickingStrategy() + Standard_EXPORT AIS_StatusOfDetection MoveTo(const gp_Ax1& theAxis, + const Handle(V3d_View)& theView, + const Standard_Boolean theToRedrawOnUpdate); + + //! Clears the list of entities detected by MoveTo() and resets dynamic highlighting. + //! @param theToRedrawImmediate if TRUE, the main Viewer will be redrawn on update + //! @return TRUE if viewer needs to be updated (e.g. there were actually dynamically highlighted + //! entities) + Standard_EXPORT Standard_Boolean + ClearDetected(Standard_Boolean theToRedrawImmediate = Standard_False); + + //! Returns true if there is a mouse-detected entity in context. + //! @sa DetectedOwner(), HasNextDetected(), HilightPreviousDetected(), HilightNextDetected(). + Standard_Boolean HasDetected() const { return !myLastPicked.IsNull(); } + + //! Returns the owner of the detected sensitive primitive which is currently dynamically + //! highlighted. WARNING! This method is irrelevant to + //! InitDetected()/MoreDetected()/NextDetected(). + //! @sa HasDetected(), HasNextDetected(), HilightPreviousDetected(), HilightNextDetected(). + const Handle(SelectMgr_EntityOwner)& DetectedOwner() const { return myLastPicked; } + + //! Returns the interactive objects last detected in context. + //! In general this is just a wrapper for + //! Handle(AIS_InteractiveObject)::DownCast(DetectedOwner()->Selectable()). + //! @sa DetectedOwner() + Handle(AIS_InteractiveObject) DetectedInteractive() const + { + return Handle(AIS_InteractiveObject)::DownCast(myLastPicked->Selectable()); + } + + //! Returns true if there is a detected shape in local context. + //! @sa HasDetected(), DetectedShape() + Standard_DEPRECATED( + "Local Context is deprecated - local selection should be used without Local Context") + Standard_EXPORT Standard_Boolean HasDetectedShape() const; + + //! Returns the shape detected in local context. + //! @sa DetectedOwner() + Standard_DEPRECATED( + "Local Context is deprecated - local selection should be used without Local Context") + Standard_EXPORT const TopoDS_Shape& DetectedShape() const; + + //! returns True if other entities were detected in the last mouse detection + //! @sa HilightPreviousDetected(), HilightNextDetected(). + Standard_Boolean HasNextDetected() const + { + return !myDetectedSeq.IsEmpty() && myCurHighlighted <= myDetectedSeq.Upper(); + } + + //! If more than 1 object is detected by the selector, only the "best" owner is hilighted at the + //! mouse position. This Method allows the user to hilight one after another the other detected + //! entities. If The method select is called, the selected entity will be the hilighted one! + //! WARNING: Loop Method. When all the detected entities have been hilighted, the next call will + //! hilight the first one again. + //! @return the Rank of hilighted entity + //! @sa HasNextDetected(), HilightPreviousDetected(). + Standard_EXPORT Standard_Integer + HilightNextDetected(const Handle(V3d_View)& theView, + const Standard_Boolean theToRedrawImmediate = Standard_True); + + //! Same as previous methods in reverse direction. + //! @sa HasNextDetected(), HilightNextDetected(). + Standard_EXPORT Standard_Integer + HilightPreviousDetected(const Handle(V3d_View)& theView, + const Standard_Boolean theToRedrawImmediate = Standard_True); + +public: //! @name iteration through detected entities + //! Initialization for iteration through mouse-detected objects in + //! interactive context or in local context if it is opened. + //! @sa DetectedCurrentOwner(), MoreDetected(), NextDetected(). + void InitDetected() + { + if (!myDetectedSeq.IsEmpty()) + { + myCurDetected = myDetectedSeq.Lower(); + } + } + + //! Return TRUE if there is more mouse-detected objects after the current one + //! during iteration through mouse-detected interactive objects. + //! @sa DetectedCurrentOwner(), InitDetected(), NextDetected(). + Standard_Boolean MoreDetected() const + { + return myCurDetected >= myDetectedSeq.Lower() && myCurDetected <= myDetectedSeq.Upper(); + } + + //! Gets next current object during iteration through mouse-detected interactive objects. + //! @sa DetectedCurrentOwner(), InitDetected(), MoreDetected(). + void NextDetected() { ++myCurDetected; } + + //! Returns the owner from detected list pointed by current iterator position. + //! WARNING! This method is irrelevant to DetectedOwner() which returns last picked Owner + //! regardless of iterator position! + //! @sa InitDetected(), MoreDetected(), NextDetected(). + Standard_EXPORT Handle(SelectMgr_EntityOwner) DetectedCurrentOwner() const; + +public: //! @name Selection management + //! Adds object in the selection. + Standard_EXPORT AIS_StatusOfPick AddSelect(const Handle(SelectMgr_EntityOwner)& theObject); + + //! Adds object in the selection. + AIS_StatusOfPick AddSelect(const Handle(AIS_InteractiveObject)& theObject) + { + return AddSelect(theObject->GlobalSelOwner()); + } + + //! Selects objects within the bounding rectangle. + //! Viewer should be explicitly redrawn after selection. + //! @param[in] thePntMin rectangle lower point (in pixels) + //! @param[in] thePntMax rectangle upper point (in pixels) + //! @param[in] theView active view where rectangle is defined + //! @param[in] theSelScheme selection scheme + //! @return picking status + //! @sa StdSelect_ViewerSelector3d::AllowOverlapDetection() + Standard_EXPORT AIS_StatusOfPick + SelectRectangle(const Graphic3d_Vec2i& thePntMin, + const Graphic3d_Vec2i& thePntMax, + const Handle(V3d_View)& theView, + const AIS_SelectionScheme theSelScheme = AIS_SelectionScheme_Replace); + + //! Select everything found in the polygon defined by bounding polyline. + //! Viewer should be explicitly redrawn after selection. + //! @param[in] thePolyline polyline defining polygon bounds (in pixels) + //! @param[in] theView active view where polyline is defined + //! @param[in] theSelScheme selection scheme + //! @return picking status + Standard_EXPORT AIS_StatusOfPick + SelectPolygon(const TColgp_Array1OfPnt2d& thePolyline, + const Handle(V3d_View)& theView, + const AIS_SelectionScheme theSelScheme = AIS_SelectionScheme_Replace); + + //! Selects the topmost object picked by the point in the view, + //! Viewer should be explicitly redrawn after selection. + //! @param[in] thePnt point pixel coordinates within the view + //! @param[in] theView active view where point is defined + //! @param[in] theSelScheme selection scheme + //! @return picking status + Standard_EXPORT AIS_StatusOfPick + SelectPoint(const Graphic3d_Vec2i& thePnt, + const Handle(V3d_View)& theView, + const AIS_SelectionScheme theSelScheme = AIS_SelectionScheme_Replace); + + //! Select and hilights the previous detected via AIS_InteractiveContext::MoveTo() method; + //! unhilights the previous picked. + //! Viewer should be explicitly redrawn after selection. + //! @param[in] theSelScheme selection scheme + //! @return picking status + //! + //! @sa HighlightStyle() defining default highlight styles of selected owners + //! (Prs3d_TypeOfHighlight_Selected and Prs3d_TypeOfHighlight_LocalSelected) + //! @sa PrsMgr_PresentableObject::HilightAttributes() defining per-object highlight style of + //! selected owners (overrides defaults) + Standard_EXPORT AIS_StatusOfPick + SelectDetected(const AIS_SelectionScheme theSelScheme = AIS_SelectionScheme_Replace); + + //! Returns bounding box of selected objects. + 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 + //! @param theSelScheme selection scheme + //! @return picking status + Standard_EXPORT AIS_StatusOfPick Select(const AIS_NArray1OfEntityOwner& theOwners, + const AIS_SelectionScheme theSelScheme); + + //! Fits the view correspondingly to the bounds of selected objects. + //! Infinite objects are ignored if infinite state of AIS_InteractiveObject is set to true. + Standard_EXPORT void FitSelected(const Handle(V3d_View)& theView, + const Standard_Real theMargin, + const Standard_Boolean theToUpdate); + + //! Fits the view correspondingly to the bounds of selected objects. + //! Infinite objects are ignored if infinite state of AIS_InteractiveObject is set to true. + Standard_EXPORT void FitSelected(const Handle(V3d_View)& theView); + + //! Return value specified whether selected object must be hilighted when mouse cursor is moved + //! above it + //! @sa MoveTo() + Standard_Boolean ToHilightSelected() const { return myToHilightSelected; } + + //! Specify whether selected object must be hilighted when mouse cursor is moved above it (in + //! MoveTo method). By default this value is false and selected object is not hilighted in this + //! case. + //! @sa MoveTo() + void SetToHilightSelected(const Standard_Boolean toHilight) { myToHilightSelected = toHilight; } + + //! Returns true if the automatic highlight mode is active; TRUE by default. + //! @sa MoveTo(), Select(), HilightWithColor(), Unhilight() + Standard_Boolean AutomaticHilight() const { return myAutoHilight; } + + //! Sets the highlighting status of detected and selected entities. + //! This function allows you to disconnect the automatic mode. + //! + //! MoveTo() will fill the list of detected entities + //! and Select() will set selected state to detected objects regardless of this flag, + //! but with disabled AutomaticHiligh() their highlighting state will be left unaffected, + //! so that application will be able performing custom highlighting in a different way, if needed. + //! + //! This API should be distinguished from SelectMgr_SelectableObject::SetAutoHilight() + //! that is used to implement custom highlighting logic for a specific interactive object class. + //! + //! @sa MoveTo(), Select(), HilightWithColor(), Unhilight() + void SetAutomaticHilight(Standard_Boolean theStatus) { myAutoHilight = theStatus; } + + //! Unhighlights previously selected owners and marks them as not selected. + //! Marks owner given as selected and highlights it. + //! Performs selection filters check. + Standard_EXPORT void SetSelected(const Handle(SelectMgr_EntityOwner)& theOwners, + const Standard_Boolean theToUpdateViewer); + + //! Puts the interactive object aniObj in the list of selected objects. + //! Performs selection filters check. + Standard_EXPORT void SetSelected(const Handle(AIS_InteractiveObject)& theObject, + const Standard_Boolean theToUpdateViewer); + + //! Allows to highlight or unhighlight the owner given depending on its selection status + Standard_EXPORT void AddOrRemoveSelected(const Handle(AIS_InteractiveObject)& theObject, + const Standard_Boolean theToUpdateViewer); + + //! Updates Selected state of specified owner without calling HilightSelected(). + //! Has no effect if Selected state is not changed, and redirects to AddOrRemoveSelected() + //! otherwise. + //! @param theOwner owner object to set selected state + //! @param theIsSelected new selected state + //! @return TRUE if Selected state has been changed + Standard_EXPORT Standard_Boolean SetSelectedState(const Handle(SelectMgr_EntityOwner)& theOwner, + const Standard_Boolean theIsSelected); + + //! Highlights selected objects. + Standard_EXPORT void HilightSelected(const Standard_Boolean theToUpdateViewer); + + //! Removes highlighting from selected objects. + Standard_EXPORT void UnhilightSelected(const Standard_Boolean theToUpdateViewer); + + //! Updates the list of selected objects: + //! i.e. highlights the newly selected ones and unhighlights previously selected objects. + //! @sa HilightSelected(). + void UpdateSelected(Standard_Boolean theToUpdateViewer) { HilightSelected(theToUpdateViewer); } + + //! Empties previous selected objects in order to get the selected objects detected by the + //! selector using UpdateSelected. + Standard_EXPORT void ClearSelected(const Standard_Boolean theToUpdateViewer); + + //! Allows to highlight or unhighlight the owner given depending on its selection status + Standard_EXPORT void AddOrRemoveSelected(const Handle(SelectMgr_EntityOwner)& theOwner, + const Standard_Boolean theToUpdateViewer); + + //! Returns true is the owner given is selected + Standard_Boolean IsSelected(const Handle(SelectMgr_EntityOwner)& theOwner) const + { + return !theOwner.IsNull() && theOwner->IsSelected(); + } + + //! Returns true is the object given is selected + Standard_EXPORT Standard_Boolean IsSelected(const Handle(AIS_InteractiveObject)& theObj) const; + + //! Returns the first selected object in the list of current selected. + Standard_EXPORT Handle(AIS_InteractiveObject) FirstSelectedObject() const; + + //! Count a number of selected entities using InitSelected()+MoreSelected()+NextSelected() + //! iterator. + //! @sa SelectedOwner(), InitSelected(), MoreSelected(), NextSelected(). + Standard_Integer NbSelected() { return mySelection->Extent(); } + + //! Initializes a scan of the selected objects. + //! @sa SelectedOwner(), MoreSelected(), NextSelected(). + void InitSelected() { mySelection->Init(); } + + //! Returns true if there is another object found by the scan of the list of selected objects. + //! @sa SelectedOwner(), InitSelected(), NextSelected(). + Standard_Boolean MoreSelected() const { return mySelection->More(); } + + //! Continues the scan to the next object in the list of selected objects. + //! @sa SelectedOwner(), InitSelected(), MoreSelected(). + void NextSelected() { mySelection->Next(); } + + //! Returns the owner of the selected entity. + //! @sa InitSelected(), MoreSelected(), NextSelected(). + Handle(SelectMgr_EntityOwner) SelectedOwner() const + { + return !mySelection->More() ? Handle(SelectMgr_EntityOwner)() : mySelection->Value(); + } + + //! Return Handle(AIS_InteractiveObject)::DownCast (SelectedOwner()->Selectable()). + //! @sa SelectedOwner(). + Handle(AIS_InteractiveObject) SelectedInteractive() const + { + return !mySelection->More() + ? Handle(AIS_InteractiveObject)() + : Handle(AIS_InteractiveObject)::DownCast(mySelection->Value()->Selectable()); + } + + //! Returns TRUE if the interactive context has a shape selected. + //! @sa SelectedShape(). + Standard_EXPORT Standard_Boolean HasSelectedShape() const; + + //! Returns the selected shape. + //! Basically it is just a shape returned stored by StdSelect_BRepOwner with graphic + //! transformation being applied: + //! @code + //! const Handle(StdSelect_BRepOwner) aBRepOwner = Handle(StdSelect_BRepOwner)::DownCast + //! (SelectedOwner()); TopoDS_Shape aSelShape = aBRepOwner->Shape(); TopoDS_Shape + //! aLocatedShape = aSelShape.Located (aBRepOwner->Location() * aSelShape.Location()); + //! @endcode + //! @sa SelectedOwner(), HasSelectedShape(). + Standard_EXPORT TopoDS_Shape SelectedShape() const; + + //! Returns SelectedInteractive()->HasOwner(). + //! @sa SelectedOwner(). + Standard_Boolean HasApplicative() const { return SelectedInteractive()->HasOwner(); } + + //! Returns SelectedInteractive()->GetOwner(). + //! @sa SelectedOwner(). + Handle(Standard_Transient) Applicative() const { return SelectedInteractive()->GetOwner(); } + +public: //! @name immediate mode rendering + //! initializes the list of presentations to be displayed + //! returns False if no local context is opened. + Standard_EXPORT Standard_Boolean BeginImmediateDraw(); + + //! returns True if has been stored in the list. + Standard_EXPORT Standard_Boolean ImmediateAdd(const Handle(AIS_InteractiveObject)& theObj, + const Standard_Integer theMode = 0); + + //! returns True if the immediate display has been done. + Standard_EXPORT Standard_Boolean EndImmediateDraw(const Handle(V3d_View)& theView); + + //! Uses the First Active View of Main Viewer! + //! returns True if the immediate display has been done. + Standard_EXPORT Standard_Boolean EndImmediateDraw(); + + Standard_EXPORT Standard_Boolean IsImmediateModeOn() const; + + //! Redraws immediate structures in all views of the viewer given taking into account its + //! visibility. + void RedrawImmediate(const Handle(V3d_Viewer)& theViewer) + { + myMainPM->RedrawImmediate(theViewer); + } + +public: //! @name management of active Selection Modes + //! Activates or deactivates the selection mode for specified object. + //! Has no effect if selection mode was already active/deactivated. + //! @param theObj object to activate/deactivate selection mode + //! @param theMode selection mode to activate/deactivate; + //! deactivation of -1 selection mode will effectively deactivate all + //! selection modes; activation of -1 selection mode with + //! AIS_SelectionModesConcurrency_Single will deactivate all selection + //! modes, and will has no effect otherwise + //! @param theToActivate activation/deactivation flag + //! @param theConcurrency specifies how to handle already activated selection modes; + //! default value (AIS_SelectionModesConcurrency_Multiple) means active + //! selection modes should be left as is, + //! AIS_SelectionModesConcurrency_Single can be used if only one selection + //! mode is expected to be active and + //! AIS_SelectionModesConcurrency_GlobalOrLocal can be used if either + //! AIS_InteractiveObject::GlobalSelectionMode() or any combination of Local + //! selection modes is acceptable; this value is considered only if + //! theToActivate set to TRUE + //! @param theIsForce when set to TRUE, the display status will be ignored while activating + //! selection mode + Standard_EXPORT void SetSelectionModeActive( + const Handle(AIS_InteractiveObject)& theObj, + const Standard_Integer theMode, + const Standard_Boolean theToActivate, + const AIS_SelectionModesConcurrency theConcurrency = AIS_SelectionModesConcurrency_Multiple, + const Standard_Boolean theIsForce = Standard_False); + + //! Activates the selection mode aMode whose index is given, for the given interactive entity + //! anIobj. + void Activate(const Handle(AIS_InteractiveObject)& theObj, + const Standard_Integer theMode = 0, + const Standard_Boolean theIsForce = Standard_False) + { + SetSelectionModeActive(theObj, + theMode, + Standard_True, + AIS_SelectionModesConcurrency_GlobalOrLocal, + theIsForce); + } + + //! Activates the given selection mode for the all displayed objects. + Standard_EXPORT void Activate(const Standard_Integer theMode, + const Standard_Boolean theIsForce = Standard_False); + + //! Deactivates all the activated selection modes of an object. + void Deactivate(const Handle(AIS_InteractiveObject)& theObj) + { + SetSelectionModeActive(theObj, -1, Standard_False, AIS_SelectionModesConcurrency_Single); + } + + //! Deactivates all the activated selection modes of the interactive object anIobj with a given + //! selection mode aMode. + void Deactivate(const Handle(AIS_InteractiveObject)& theObj, const Standard_Integer theMode) + { + SetSelectionModeActive(theObj, theMode, Standard_False); + } + + //! Deactivates the given selection mode for all displayed objects. + Standard_EXPORT void Deactivate(const Standard_Integer theMode); + + //! Deactivates all the activated selection mode at all displayed objects. + Standard_EXPORT void Deactivate(); + + //! Returns the list of activated selection modes. + Standard_EXPORT void ActivatedModes(const Handle(AIS_InteractiveObject)& anIobj, + TColStd_ListOfInteger& theList) const; + + //! Returns a collection containing all entity owners created for the interactive object in + //! specified selection mode (in all active modes if the Mode == -1) + Standard_EXPORT void EntityOwners(Handle(SelectMgr_IndexedMapOfOwner)& theOwners, + const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Integer theMode = -1) const; + +public: //! @name Selection Filters management + //! @return the context selection filter type. + SelectMgr_FilterType FilterType() const { return myFilters->FilterType(); } + + //! Sets the context selection filter type. + //! SelectMgr_TypeFilter_OR selection filter is used by default. + //! @param theFilterType the filter type. + void SetFilterType(const SelectMgr_FilterType theFilterType) + { + myFilters->SetFilterType(theFilterType); + } + + //! Returns the list of filters active in a local context. + const SelectMgr_ListOfFilter& Filters() const { return myFilters->StoredFilters(); } + + //! @return the context selection global context filter. + const Handle(SelectMgr_AndOrFilter)& GlobalFilter() const { return myFilters; } + + //! Allows you to add the filter. + void AddFilter(const Handle(SelectMgr_Filter)& theFilter) { myFilters->Add(theFilter); } + + //! Removes a filter from context. + void RemoveFilter(const Handle(SelectMgr_Filter)& theFilter) { myFilters->Remove(theFilter); } + + //! Remove all filters from context. + void RemoveFilters() { myFilters->Clear(); } + + //! Return picking strategy; SelectMgr_PickingStrategy_FirstAcceptable by default. + //! @sa MoveTo(), Filters() + SelectMgr_PickingStrategy PickingStrategy() const { return myPickingStrategy; } + + //! Setup picking strategy - which entities detected by picking line will be accepted, considering + //! Selection Filters. By default (SelectMgr_PickingStrategy_FirstAcceptable), Selection Filters + //! reduce the list of entities so that the context accepts topmost in remaining. + //! + //! This means that entities behind non-selectable (by filters) parts can be picked by user. + //! If this behavior is undesirable, and user wants that non-selectable (by filters) parts + //! should remain an obstacle for picking, SelectMgr_PickingStrategy_OnlyTopmost can be set + //! instead. + //! + //! Notice, that since Selection Manager operates only objects registered in it, + //! SelectMgr_PickingStrategy_OnlyTopmost will NOT prevent picking entities behind + //! visible by unregistered in Selection Manager presentations (e.g. deactivated). + //! Hence, SelectMgr_PickingStrategy_OnlyTopmost changes behavior only with Selection Filters + //! enabled. + void SetPickingStrategy(const SelectMgr_PickingStrategy theStrategy) + { + myPickingStrategy = theStrategy; + } + +public: //! @name common properties + //! Returns the default attribute manager. + //! This contains all the color and line attributes which can be used by interactive objects which + //! do not have their own attributes. + const Handle(Prs3d_Drawer)& DefaultDrawer() const { return myDefaultDrawer; } + + //! Sets the default attribute manager; should be set at context creation time. + //! Warning - this setter doesn't update links to the default drawer of already displayed objects! + void SetDefaultDrawer(const Handle(Prs3d_Drawer)& theDrawer) + { + myDefaultDrawer = theDrawer; + myStyles[Prs3d_TypeOfHighlight_None] = myDefaultDrawer; + } + + //! Returns the current viewer. + const Handle(V3d_Viewer)& CurrentViewer() const { return myMainVwr; } + + const Handle(SelectMgr_SelectionManager)& SelectionManager() const { return mgrSelector; } + + const Handle(PrsMgr_PresentationManager)& MainPrsMgr() const { return myMainPM; } + + const Handle(StdSelect_ViewerSelector3d)& MainSelector() const { return mgrSelector->Selector(); } + + //! Updates the current viewer. + Standard_EXPORT void UpdateCurrentViewer(); + + //! Returns the list of displayed objects of a particular Type WhichKind and Signature + //! WhichSignature. By Default, WhichSignature equals -1. This means that there is a check on type + //! only. + Standard_EXPORT void DisplayedObjects(AIS_ListOfInteractive& aListOfIO) const; + + //! gives the list of displayed objects of a particular Type and signature. + //! by Default, = -1 means control only on . + Standard_EXPORT void DisplayedObjects(const AIS_KindOfInteractive theWhichKind, + const Standard_Integer theWhichSignature, + AIS_ListOfInteractive& theListOfIO) const; + + //! Returns the list theListOfIO of erased objects (hidden objects) particular Type WhichKind and + //! Signature WhichSignature. By Default, WhichSignature equals 1. This means that there is a + //! check on type only. + Standard_EXPORT void ErasedObjects(AIS_ListOfInteractive& theListOfIO) const; + + //! gives the list of erased objects (hidden objects) + //! Type and signature by Default, = -1 means control only on . + Standard_EXPORT void ErasedObjects(const AIS_KindOfInteractive theWhichKind, + const Standard_Integer theWhichSignature, + AIS_ListOfInteractive& theListOfIO) const; + + //! Returns the list theListOfIO of objects with indicated display status particular Type + //! WhichKind and Signature WhichSignature. By Default, WhichSignature equals 1. This means that + //! there is a check on type only. + Standard_EXPORT void ObjectsByDisplayStatus(const PrsMgr_DisplayStatus theStatus, + AIS_ListOfInteractive& theListOfIO) const; + + //! gives the list of objects with indicated display status + //! Type and signature by Default, = -1 means control only on . + Standard_EXPORT void ObjectsByDisplayStatus(const AIS_KindOfInteractive WhichKind, + const Standard_Integer WhichSignature, + const PrsMgr_DisplayStatus theStatus, + AIS_ListOfInteractive& theListOfIO) const; + + //! fills with objects of a particular Type and Signature with no consideration of + //! display status. by Default, = -1 means control only on . if + //! = AIS_KindOfInteractive_None and = -1, all the objects are put + //! into the list. + Standard_EXPORT void ObjectsInside( + AIS_ListOfInteractive& aListOfIO, + const AIS_KindOfInteractive WhichKind = AIS_KindOfInteractive_None, + const Standard_Integer WhichSignature = -1) const; + + //! Create iterator through all objects registered in context. + AIS_DataMapIteratorOfDataMapOfIOStatus ObjectIterator() const + { + return AIS_DataMapIteratorOfDataMapOfIOStatus(myObjects); + } + + //! Rebuilds 1st level of BVH selection forcibly + Standard_EXPORT void RebuildSelectionStructs(); + + //! Disconnects theObjToDisconnect from theAssembly and removes dependent selection structures + Standard_EXPORT void Disconnect(const Handle(AIS_InteractiveObject)& theAssembly, + const Handle(AIS_InteractiveObject)& theObjToDisconnect = NULL); + + //! Query objects visible or hidden in specified view due to affinity mask. + Standard_EXPORT void ObjectsForView( + AIS_ListOfInteractive& theListOfIO, + const Handle(V3d_View)& theView, + const Standard_Boolean theIsVisibleInView, + const PrsMgr_DisplayStatus theStatus = PrsMgr_DisplayStatus_None) const; + + //! Return rotation gravity point. + Standard_EXPORT virtual gp_Pnt GravityPoint(const Handle(V3d_View)& theView) const; + +public: //! @name debug visualization + //! Visualization of sensitives - for debugging purposes! + Standard_EXPORT void DisplayActiveSensitive(const Handle(V3d_View)& aView); + + //! Clear visualization of sensitives. + Standard_EXPORT void ClearActiveSensitive(const Handle(V3d_View)& aView); + + //! Visualization of sensitives - for debugging purposes! + Standard_EXPORT void DisplayActiveSensitive(const Handle(AIS_InteractiveObject)& anObject, + const Handle(V3d_View)& aView); + +public: //! @name common object display attributes + //! Sets the graphic attributes of the interactive object, such as visualization mode, color, and + //! material. + Standard_EXPORT void SetLocalAttributes(const Handle(AIS_InteractiveObject)& theIObj, + const Handle(Prs3d_Drawer)& theDrawer, + const Standard_Boolean theToUpdateViewer); + + //! Removes the settings for local attributes of the Object and returns to defaults. + Standard_EXPORT void UnsetLocalAttributes(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer); + + //! change the current facing model apply on polygons for SetColor(), SetTransparency(), + //! SetMaterial() methods default facing model is Aspect_TOFM_TWO_SIDE. This mean that attributes + //! is applying both on the front and back face. + Standard_EXPORT void SetCurrentFacingModel( + const Handle(AIS_InteractiveObject)& aniobj, + const Aspect_TypeOfFacingModel aModel = Aspect_TOFM_BOTH_SIDE); + + //! Returns true if a view of the Interactive Object has color. + Standard_EXPORT Standard_Boolean HasColor(const Handle(AIS_InteractiveObject)& aniobj) const; + + //! Returns the color of the Object in the interactive context. + Standard_EXPORT void Color(const Handle(AIS_InteractiveObject)& aniobj, + Quantity_Color& acolor) const; + + //! Sets the color of the selected entity. + Standard_EXPORT void SetColor(const Handle(AIS_InteractiveObject)& theIObj, + const Quantity_Color& theColor, + const Standard_Boolean theToUpdateViewer); + + //! Removes the color selection for the selected entity. + Standard_EXPORT void UnsetColor(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer); + + //! Returns the width of the Interactive Object in the interactive context. + Standard_EXPORT virtual Standard_Real Width(const Handle(AIS_InteractiveObject)& aniobj) const; + + //! Sets the width of the Object. + Standard_EXPORT virtual void SetWidth(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Real theValue, + const Standard_Boolean theToUpdateViewer); + + //! Removes the width setting of the Object. + Standard_EXPORT virtual void UnsetWidth(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer); + + //! Provides the type of material setting for the view of the Object. + Standard_EXPORT void SetMaterial(const Handle(AIS_InteractiveObject)& theIObj, + const Graphic3d_MaterialAspect& theMaterial, + const Standard_Boolean theToUpdateViewer); + + //! Removes the type of material setting for viewing the Object. + Standard_EXPORT void UnsetMaterial(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer); + + //! Provides the transparency settings for viewing the Object. + //! The transparency value aValue may be between 0.0, opaque, and 1.0, fully transparent. + Standard_EXPORT void SetTransparency(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Real theValue, + const Standard_Boolean theToUpdateViewer); + + //! Removes the transparency settings for viewing the Object. + Standard_EXPORT void UnsetTransparency(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer); + + //! Sets up polygon offsets for the given AIS_InteractiveObject. + //! It simply calls AIS_InteractiveObject::SetPolygonOffsets(). + Standard_EXPORT void SetPolygonOffsets(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Integer theMode, + const Standard_ShortReal theFactor, + const Standard_ShortReal theUnits, + const Standard_Boolean theToUpdateViewer); + + //! Simply calls AIS_InteractiveObject::HasPolygonOffsets(). + Standard_EXPORT Standard_Boolean + HasPolygonOffsets(const Handle(AIS_InteractiveObject)& anObj) const; + + //! Retrieves current polygon offsets settings for Object. + Standard_EXPORT void PolygonOffsets(const Handle(AIS_InteractiveObject)& anObj, + Standard_Integer& aMode, + Standard_ShortReal& aFactor, + Standard_ShortReal& aUnits) const; + +public: //! @name trihedron display attributes + //! Sets the size aSize of the trihedron. + //! Is used to change the default value 100 mm for display of trihedra. + //! Use of this function in one of your own interactive objects requires a call to the Compute + //! function of the new class. This will recalculate the presentation for every trihedron + //! displayed. + Standard_EXPORT void SetTrihedronSize(const Standard_Real theSize, + const Standard_Boolean theToUpdateViewer); + + //! returns the current value of trihedron size. + Standard_EXPORT Standard_Real TrihedronSize() const; + +public: //! @name plane display attributes + //! Sets the plane size defined by the length in the X direction XSize and that in the Y direction + //! YSize. + Standard_EXPORT void SetPlaneSize(const Standard_Real theSizeX, + const Standard_Real theSizeY, + const Standard_Boolean theToUpdateViewer); + + //! Sets the plane size aSize. + Standard_EXPORT void SetPlaneSize(const Standard_Real theSize, + const Standard_Boolean theToUpdateViewer); + + //! Returns true if the length in the X direction XSize is the same as that in the Y direction + //! YSize. + Standard_EXPORT Standard_Boolean PlaneSize(Standard_Real& XSize, Standard_Real& YSize) const; + +public: //! @name tessellation deviation properties for automatic triangulation + //! Sets the deviation coefficient theCoefficient. + //! Drawings of curves or patches are made with respect to a maximal chordal deviation. + //! A Deviation coefficient is used in the shading display mode. + //! The shape is seen decomposed into triangles. + //! These are used to calculate reflection of light from the surface of the object. + //! The triangles are formed from chords of the curves in the shape. + //! The deviation coefficient theCoefficient gives the highest value of the angle with which a + //! chord can deviate from a tangent to a curve. If this limit is reached, a new triangle is + //! begun. This deviation is absolute and is set through the method: SetMaximalChordialDeviation. + //! The default value is 0.001. + //! In drawing shapes, however, you are allowed to ask for a relative deviation. + //! This deviation will be: SizeOfObject * DeviationCoefficient. + Standard_EXPORT void SetDeviationCoefficient(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Real theCoefficient, + const Standard_Boolean theToUpdateViewer); + + Standard_EXPORT void SetDeviationAngle(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Real theAngle, + const Standard_Boolean theToUpdateViewer); + + //! Calls the AIS_Shape SetAngleAndDeviation to set both Angle and Deviation coefficients + Standard_EXPORT void SetAngleAndDeviation(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Real theAngle, + const Standard_Boolean theToUpdateViewer); + + //! Sets the deviation coefficient theCoefficient. + //! Drawings of curves or patches are made with respect to a maximal chordal deviation. + //! A Deviation coefficient is used in the shading display mode. + //! The shape is seen decomposed into triangles. + //! These are used to calculate reflection of light from the surface of the object. + //! The triangles are formed from chords of the curves in the shape. + //! The deviation coefficient theCoefficient gives the highest value of the angle with which a + //! chord can deviate from a tangent to a curve. If this limit is reached, a new triangle is + //! begun. This deviation is absolute and is set through the method: SetMaximalChordialDeviation. + //! The default value is 0.001. + //! In drawing shapes, however, you are allowed to ask for a relative deviation. + //! This deviation will be: SizeOfObject * DeviationCoefficient. + void SetDeviationCoefficient(const Standard_Real theCoefficient) + { + myDefaultDrawer->SetDeviationCoefficient(theCoefficient); + } + + //! Returns the deviation coefficient. + //! Drawings of curves or patches are made with respect to a maximal chordal deviation. + //! A Deviation coefficient is used in the shading display mode. + //! The shape is seen decomposed into triangles. + //! These are used to calculate reflection of light from the surface of the object. + //! The triangles are formed from chords of the curves in the shape. + //! The deviation coefficient gives the highest value of the angle with which a chord can deviate + //! from a tangent to a curve. If this limit is reached, a new triangle is begun. This deviation + //! is absolute and is set through Prs3d_Drawer::SetMaximalChordialDeviation. The default value is + //! 0.001. In drawing shapes, however, you are allowed to ask for a relative deviation. This + //! deviation will be: SizeOfObject * DeviationCoefficient. + Standard_Real DeviationCoefficient() const { return myDefaultDrawer->DeviationCoefficient(); } + + //! default 20 degrees + void SetDeviationAngle(const Standard_Real theAngle) + { + myDefaultDrawer->SetDeviationAngle(theAngle); + } + + Standard_Real DeviationAngle() const { return myDefaultDrawer->DeviationAngle(); } + +public: //! @name HLR (Hidden Line Removal) display attributes + //! Initializes hidden line aspect in the default drawing tool, or Drawer. + //! The default values are: + //! Color: Quantity_NOC_YELLOW + //! Type of line: Aspect_TOL_DASH + //! Width: 1. + const Handle(Prs3d_LineAspect)& HiddenLineAspect() const + { + return myDefaultDrawer->HiddenLineAspect(); + } + + //! Sets the hidden line aspect anAspect. + //! Aspect defines display attributes for hidden lines in HLR projections. + void SetHiddenLineAspect(const Handle(Prs3d_LineAspect)& theAspect) const + { + myDefaultDrawer->SetHiddenLineAspect(theAspect); + } + + //! returns Standard_True if the hidden lines are to be drawn. + //! By default the hidden lines are not drawn. + Standard_Boolean DrawHiddenLine() const { return myDefaultDrawer->DrawHiddenLine(); } + + void EnableDrawHiddenLine() const { myDefaultDrawer->EnableDrawHiddenLine(); } + + void DisableDrawHiddenLine() const { myDefaultDrawer->DisableDrawHiddenLine(); } + +public: //! @name iso-line display attributes + //! Sets the number of U and V isoparameters displayed. + Standard_EXPORT void SetIsoNumber(const Standard_Integer NbIsos, + const AIS_TypeOfIso WhichIsos = AIS_TOI_Both); + + //! Returns the number of U and V isoparameters displayed. + Standard_EXPORT Standard_Integer IsoNumber(const AIS_TypeOfIso WhichIsos = AIS_TOI_Both); + + //! Returns True if drawing isoparameters on planes is enabled. + void IsoOnPlane(const Standard_Boolean theToSwitchOn) + { + myDefaultDrawer->SetIsoOnPlane(theToSwitchOn); + } + + //! Returns True if drawing isoparameters on planes is enabled. + //! if = False, + Standard_Boolean IsoOnPlane() const { return myDefaultDrawer->IsoOnPlane(); } + + //! Enables or disables on-triangulation build for isolines for a particular object. + //! In case if on-triangulation builder is disabled, default on-plane builder will compute + //! isolines for the object given. + Standard_EXPORT void IsoOnTriangulation(const Standard_Boolean theIsEnabled, + const Handle(AIS_InteractiveObject)& theObject); + + //! Enables or disables on-triangulation build for isolines for default drawer. + //! In case if on-triangulation builder is disabled, default on-plane builder will compute + //! isolines for the object given. + void IsoOnTriangulation(const Standard_Boolean theToSwitchOn) + { + myDefaultDrawer->SetIsoOnTriangulation(theToSwitchOn); + } + + //! Returns true if drawing isolines on triangulation algorithm is enabled. + Standard_Boolean IsoOnTriangulation() const { return myDefaultDrawer->IsoOnTriangulation(); } + + //! @name obsolete methods +public: + Standard_DEPRECATED("Deprecated method Display() with obsolete argument " + "theToAllowDecomposition") + + void Display(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Integer theDispMode, + const Standard_Integer theSelectionMode, + const Standard_Boolean theToUpdateViewer, + const Standard_Boolean theToAllowDecomposition, + const PrsMgr_DisplayStatus theDispStatus = PrsMgr_DisplayStatus_None) + { + (void)theToAllowDecomposition; + Display(theIObj, theDispMode, theSelectionMode, theToUpdateViewer, theDispStatus); + } + + Standard_DEPRECATED("Deprecated method Load() with obsolete last argument " + "theToAllowDecomposition") + + void Load(const Handle(AIS_InteractiveObject)& theObj, + Standard_Integer theSelectionMode, + Standard_Boolean) + { + Load(theObj, theSelectionMode); + } + + //! Updates the display in the viewer to take dynamic detection into account. + //! On dynamic detection by the mouse cursor, sensitive primitives are highlighted. + //! The highlight color of entities detected by mouse movement is white by default. + Standard_DEPRECATED("Deprecated method Hilight()") + + void Hilight(const Handle(AIS_InteractiveObject)& theObj, + const Standard_Boolean theIsToUpdateViewer) + { + return HilightWithColor(theObj, myStyles[Prs3d_TypeOfHighlight_Dynamic], theIsToUpdateViewer); + } + + //! Sets the graphic basic aspect to the current presentation of ALL selected objects. + Standard_DEPRECATED( + "Deprecated method - presentation attributes should be assigned directly to object") + Standard_EXPORT void SetSelectedAspect(const Handle(Prs3d_BasicAspect)& theAspect, + const Standard_Boolean theToUpdateViewer); + + //! Selects everything found in the bounding rectangle defined by the pixel minima and maxima, + //! XPMin, YPMin, XPMax, and YPMax in the view. The objects detected are passed to the main + //! viewer, which is then updated. + Standard_DEPRECATED("This method is deprecated - SelectRectangle() taking " + "AIS_SelectionScheme_Replace should be called instead") + Standard_EXPORT AIS_StatusOfPick Select(const Standard_Integer theXPMin, + const Standard_Integer theYPMin, + const Standard_Integer theXPMax, + const Standard_Integer theYPMax, + const Handle(V3d_View)& theView, + const Standard_Boolean theToUpdateViewer); + + //! polyline selection; clears the previous picked list + Standard_DEPRECATED("This method is deprecated - SelectPolygon() taking " + "AIS_SelectionScheme_Replace should be called instead") + Standard_EXPORT AIS_StatusOfPick Select(const TColgp_Array1OfPnt2d& thePolyline, + const Handle(V3d_View)& theView, + const Standard_Boolean theToUpdateViewer); + + //! Stores and hilights the previous detected; Unhilights the previous picked. + //! @sa MoveTo(). + Standard_DEPRECATED("This method is deprecated - SelectDetected() taking " + "AIS_SelectionScheme_Replace should be called instead") + Standard_EXPORT AIS_StatusOfPick Select(const Standard_Boolean theToUpdateViewer); + + //! Adds the last detected to the list of previous picked. + //! If the last detected was already declared as picked, removes it from the Picked List. + //! @sa MoveTo(). + Standard_DEPRECATED("This method is deprecated - SelectDetected() taking AIS_SelectionScheme_XOR " + "should be called instead") + Standard_EXPORT AIS_StatusOfPick ShiftSelect(const Standard_Boolean theToUpdateViewer); + + //! Adds the last detected to the list of previous picked. + //! If the last detected was already declared as picked, removes it from the Picked List. + Standard_DEPRECATED("This method is deprecated - SelectPolygon() taking AIS_SelectionScheme_XOR " + "should be called instead") + Standard_EXPORT AIS_StatusOfPick ShiftSelect(const TColgp_Array1OfPnt2d& thePolyline, + const Handle(V3d_View)& theView, + const Standard_Boolean theToUpdateViewer); + + //! Rectangle of selection; adds new detected entities into the picked list, + //! removes the detected entities that were already stored. + Standard_DEPRECATED("This method is deprecated - SelectRectangle() taking " + "AIS_SelectionScheme_XOR should be called instead") + Standard_EXPORT AIS_StatusOfPick ShiftSelect(const Standard_Integer theXPMin, + const Standard_Integer theYPMin, + const Standard_Integer theXPMax, + const Standard_Integer theYPMax, + const Handle(V3d_View)& theView, + const Standard_Boolean theToUpdateViewer); + +public: + //! Updates the view of the current object in open context. + //! Objects selected when there is no open local context are called current objects; those + //! selected in open local context, selected objects. + Standard_DEPRECATED("Local Context is deprecated - local selection should be used without Local " + "Context") + + void SetCurrentObject(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer) + { + SetSelected(theIObj, theToUpdateViewer); + } + + //! Allows to add or remove the object given to the list of current and highlight/unhighlight it + //! correspondingly. Is valid for global context only; for local context use method + //! AddOrRemoveSelected. Since this method makes sense only for neutral point selection of a whole + //! object, if 0 selection of the object is empty this method simply does nothing. + Standard_DEPRECATED("Local Context is deprecated - local selection should be used without Local " + "Context") + + void AddOrRemoveCurrentObject(const Handle(AIS_InteractiveObject)& theObj, + const Standard_Boolean theIsToUpdateViewer) + { + AddOrRemoveSelected(theObj, theIsToUpdateViewer); + } + + //! Updates the list of current objects, i.e. hilights new current objects, removes hilighting + //! from former current objects. Objects selected when there is no open local context are called + //! current objects; those selected in open local context, selected objects. + Standard_DEPRECATED("Local Context is deprecated - local selection should be used without Local " + "Context") + + void UpdateCurrent() { UpdateSelected(Standard_True); } + + //! Returns true if there is a non-null interactive object in Neutral Point. + //! Objects selected when there is no open local context are called current objects; + //! those selected in open local context, selected objects. + Standard_DEPRECATED( + "Local Context is deprecated - local selection should be used without Local Context") + + Standard_Boolean IsCurrent(const Handle(AIS_InteractiveObject)& theObject) const + { + return IsSelected(theObject); + } + + //! Initializes a scan of the current selected objects in Neutral Point. + //! Objects selected when there is no open local context are called current objects; those + //! selected in open local context, selected objects. + Standard_DEPRECATED("Local Context is deprecated - local selection should be used without Local " + "Context") + + void InitCurrent() { InitSelected(); } + + //! Returns true if there is another object found by the scan of the list of current objects. + //! Objects selected when there is no open local context are called current objects; those + //! selected in open local context, selected objects. + Standard_DEPRECATED( + "Local Context is deprecated - local selection should be used without Local Context") + + Standard_Boolean MoreCurrent() const { return MoreSelected(); } + + //! Continues the scan to the next object in the list of current objects. + //! Objects selected when there is no open local context are called current objects; those + //! selected in open local context, selected objects. + Standard_DEPRECATED("Local Context is deprecated - local selection should be used without Local " + "Context") + + void NextCurrent() { NextSelected(); } + + //! Returns the current interactive object. + //! Objects selected when there is no open local context are called current objects; those + //! selected in open local context, selected objects. + Standard_DEPRECATED( + "Local Context is deprecated - local selection should be used without Local Context") + + Handle(AIS_InteractiveObject) Current() const { return SelectedInteractive(); } + + Standard_DEPRECATED( + "Local Context is deprecated - local selection should be used without Local Context") + + Standard_Integer NbCurrents() { return NbSelected(); } + + //! Highlights current objects. + //! Objects selected when there is no open local context are called current objects; those + //! selected in open local context, selected objects. + Standard_DEPRECATED("Local Context is deprecated - local selection should be used without Local " + "Context") + + void HilightCurrents(const Standard_Boolean theToUpdateViewer) + { + HilightSelected(theToUpdateViewer); + } + + //! Removes highlighting from current objects. + //! Objects selected when there is no open local context are called current objects; those + //! selected in open local context, selected objects. + Standard_DEPRECATED("Local Context is deprecated - local selection should be used without Local " + "Context") + + void UnhilightCurrents(const Standard_Boolean theToUpdateViewer) + { + UnhilightSelected(theToUpdateViewer); + } + + //! Empties previous current objects in order to get the current objects detected by the selector + //! using UpdateCurrent. Objects selected when there is no open local context are called current + //! objects; those selected in open local context, selected objects. + Standard_DEPRECATED("Local Context is deprecated - local selection should be used without Local " + "Context") + + void ClearCurrents(const Standard_Boolean theToUpdateViewer) { ClearSelected(theToUpdateViewer); } + + //! @return current mouse-detected shape or empty (null) shape, if current interactive object + //! is not a shape (AIS_Shape) or there is no current mouse-detected interactive object at all. + //! @sa DetectedCurrentOwner(), InitDetected(), MoreDetected(), NextDetected(). + Standard_DEPRECATED( + "Local Context is deprecated - ::DetectedCurrentOwner() should be called instead") + Standard_EXPORT const TopoDS_Shape& DetectedCurrentShape() const; + + //! @return current mouse-detected interactive object or null object, if there is no currently + //! detected interactives + //! @sa DetectedCurrentOwner(), InitDetected(), MoreDetected(), NextDetected(). + Standard_DEPRECATED( + "Local Context is deprecated - ::DetectedCurrentOwner() should be called instead") + Standard_EXPORT Handle(AIS_InteractiveObject) DetectedCurrentObject() const; + +public: //! @name sub-intensity management (deprecated) + //! Sub-intensity allows temporary highlighting of particular objects with specified color in a + //! manner of selection highlight, but without actual selection (e.g., global status and owner's + //! selection state will not be updated). The method returns the color of such highlighting. By + //! default, it is Quantity_NOC_GRAY40. + const Quantity_Color& SubIntensityColor() const + { + return myStyles[Prs3d_TypeOfHighlight_SubIntensity]->Color(); + } + + //! Sub-intensity allows temporary highlighting of particular objects with specified color in a + //! manner of selection highlight, but without actual selection (e.g., global status and owner's + //! selection state will not be updated). The method sets up the color for such highlighting. By + //! default, this is Quantity_NOC_GRAY40. + void SetSubIntensityColor(const Quantity_Color& theColor) + { + myStyles[Prs3d_TypeOfHighlight_SubIntensity]->SetColor(theColor); + } + + //! Highlights, and removes highlights from, the displayed object which is displayed at Neutral + //! Point with subintensity color. Available only for active local context. There is no effect if + //! there is no local context. If a local context is open, the presentation of the Interactive + //! Object activates the selection mode. + Standard_EXPORT void SubIntensityOn(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer); + + //! Removes the subintensity option for the entity. + //! If a local context is open, the presentation of the Interactive Object activates the selection + //! mode. + Standard_EXPORT void SubIntensityOff(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer); + + //! Returns selection instance + const Handle(AIS_Selection)& Selection() const { return mySelection; } + + //! Sets selection instance to manipulate a container of selected owners + //! @param theSelection an instance of the selection + void SetSelection(const Handle(AIS_Selection)& theSelection) { mySelection = theSelection; } + + //! Dumps the content of me into the stream + Standard_EXPORT virtual void DumpJson(Standard_OStream& theOStream, + Standard_Integer theDepth = -1) const; + +protected: //! @name internal methods + Standard_EXPORT void GetDefModes(const Handle(AIS_InteractiveObject)& anIobj, + Standard_Integer& Dmode, + Standard_Integer& HiMod, + Standard_Integer& SelMode) const; + + Standard_EXPORT void EraseGlobal(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer); + + Standard_EXPORT void ClearGlobal(const Handle(AIS_InteractiveObject)& theIObj, + const Standard_Boolean theToUpdateViewer); + + Standard_EXPORT void ClearGlobalPrs(const Handle(AIS_InteractiveObject)& theObj, + const Standard_Integer theMode, + const Standard_Boolean theToUpdateViewer); + + Standard_EXPORT void InitAttributes(); + + //! Highlights detected objects. + //! If theToRedrawOnUpdate is set to false, callee should call RedrawImmediate() to update view. + Standard_EXPORT AIS_StatusOfDetection moveTo(const Handle(V3d_View)& theView, + const Standard_Boolean theToRedrawOnUpdate); + + //! Returns True if the object is detected. + Standard_EXPORT Standard_Boolean isDetected(const Handle(AIS_InteractiveObject)& theObject); + + //! Helper function to unhighlight all entity owners currently highlighted with seleciton color. + Standard_EXPORT void unselectOwners(const Handle(AIS_InteractiveObject)& theObject); + + //! Helper function that highlights the owner given with without + //! performing AutoHighlight checks, e.g. is used for dynamic highlight. + Standard_EXPORT void highlightWithColor(const Handle(SelectMgr_EntityOwner)& theOwner, + const Handle(V3d_Viewer)& theViewer = NULL); + + //! Helper function that highlights the owner given with with check + //! for AutoHighlight, e.g. is used for selection. + Standard_EXPORT void highlightSelected(const Handle(SelectMgr_EntityOwner)& theOwner); + + //! Helper function that highlights the owners with check for AutoHighlight, e.g. is used for + //! selection. + //! @param[in] theOwners list of owners to highlight + //! @param[in] theStyle highlight style to apply or NULL to apply selection style + Standard_EXPORT void highlightOwners(const AIS_NListOfEntityOwner& theOwners, + const Handle(Prs3d_Drawer)& theStyle); + + //! Helper function that highlights global owner of the object given with with check + //! for AutoHighlight, e.g. is used for selection. + //! If global owner is null, it simply highlights the whole object + Standard_EXPORT void highlightGlobal(const Handle(AIS_InteractiveObject)& theObj, + const Handle(Prs3d_Drawer)& theStyle, + const Standard_Integer theDispMode); + + //! Helper function that unhighlights all owners that are stored in current AIS_Selection. + //! The function updates global status and selection state of owner and interactive object. + //! If the parameter is set to true, interactive objects with + //! sub-intensity switched on in AIS_GlobalStatus will be highlighted with context's sub-intensity + //! color. + Standard_EXPORT void unhighlightSelected( + const Standard_Boolean theIsToHilightSubIntensity = Standard_False); + + //! Helper function that unhighlights the owners with check + //! for AutoHighlight, e.g. is used for selection. + Standard_EXPORT void unhighlightOwners( + const AIS_NListOfEntityOwner& theOwners, + const Standard_Boolean theIsToHilightSubIntensity = Standard_False); + + //! Helper function that unhighlights global selection owner of given interactive. + //! The function does not perform any updates of global or owner status + Standard_EXPORT void unhighlightGlobal(const Handle(AIS_InteractiveObject)& theObj); + + //! Helper function that turns on sub-intensity in global status and highlights + //! given objects with sub-intensity color + //! @param[in] theObject the object. If NULL is given, than sub-intensity will be turned on for + //! all inveractive objects of the context + //! @param[in] theDispMode display mode. If -1 is given, sub-intensity will be turned on for + //! all display modes in global status's list of modes + //! @param[in] theIsDisplayedOnly is true if sub-intensity should be applied only to objects with + //! status AIS_DS_Displayed + Standard_EXPORT void turnOnSubintensity( + const Handle(AIS_InteractiveObject)& theObject = NULL, + const Standard_Integer theDispMode = -1, + const Standard_Boolean theIsDisplayedOnly = Standard_True) const; + + //! Helper function that highlights the object with sub-intensity color without any checks + //! @param[in] theObject the object that will be highlighted + //! @param[in] theMode display mode + Standard_EXPORT void highlightWithSubintensity(const Handle(AIS_InteractiveObject)& theObject, + const Standard_Integer theMode) const; + + //! Helper function that highlights the owner with sub-intensity color without any checks + //! @param[in] theOwner the owner that will be highlighted + //! @param[in] theMode display mode + Standard_EXPORT void highlightWithSubintensity(const Handle(SelectMgr_EntityOwner)& theOwner, + const Standard_Integer theMode) const; + + //! Helper function that returns correct dynamic highlight style for the object: + //! if custom style is defined via object's highlight drawer, it will be used. Otherwise, + //! dynamic highlight style of interactive context will be returned. + //! @param[in] theObj the object to check + const Handle(Prs3d_Drawer)& getHiStyle(const Handle(AIS_InteractiveObject)& theObj, + const Handle(SelectMgr_EntityOwner)& theOwner) const + { + const Handle(Prs3d_Drawer)& aHiDrawer = theObj->DynamicHilightAttributes(); + if (!aHiDrawer.IsNull()) + { + return aHiDrawer; + } + + return myStyles[!theOwner.IsNull() && theOwner->ComesFromDecomposition() + ? Prs3d_TypeOfHighlight_LocalDynamic + : Prs3d_TypeOfHighlight_Dynamic]; + } + + //! Return TRUE if highlight style of owner requires full viewer redraw. + Standard_EXPORT Standard_Boolean isSlowHiStyle(const Handle(SelectMgr_EntityOwner)& theOwner, + const Handle(V3d_Viewer)& theViewer) const; + + //! Helper function that returns correct selection style for the object: + //! if custom style is defined via object's highlight drawer, it will be used. Otherwise, + //! selection style of interactive context will be returned. + //! @param[in] theObj the object to check + const Handle(Prs3d_Drawer)& getSelStyle(const Handle(AIS_InteractiveObject)& theObj, + const Handle(SelectMgr_EntityOwner)& theOwner) const + { + const Handle(Prs3d_Drawer)& aHiDrawer = theObj->HilightAttributes(); + if (!aHiDrawer.IsNull()) + { + return aHiDrawer; + } + + return myStyles[!theOwner.IsNull() && theOwner->ComesFromDecomposition() + ? Prs3d_TypeOfHighlight_LocalSelected + : Prs3d_TypeOfHighlight_Selected]; + } + + //! Assign the context to the object or throw exception if object was already assigned to another + //! context. + Standard_EXPORT void setContextToObject(const Handle(AIS_InteractiveObject)& theObj); + + //! Return display mode for highlighting. + Standard_Integer getHilightMode(const Handle(AIS_InteractiveObject)& theObj, + const Handle(Prs3d_Drawer)& theStyle, + const Standard_Integer theDispMode) const + { + if (!theStyle.IsNull() && theStyle->DisplayMode() != -1 + && theObj->AcceptDisplayMode(theStyle->DisplayMode())) + { + return theStyle->DisplayMode(); + } + else if (theDispMode != -1) + { + return theDispMode; + } + else if (theObj->HasDisplayMode()) + { + return theObj->DisplayMode(); + } + return myDefaultDrawer->DisplayMode(); + } + + //! Removes dynamic highlight draw + void clearDynamicHighlight() const + { + if (myLastPicked.IsNull()) + return; + + myLastPicked->Selectable()->ClearDynamicHighlight(myMainPM); + } + + //! Bind/Unbind status to object and its children + //! @param[in] theIObj the object to change status + //! @param[in] theStatus status, if NULL, unbind object + Standard_EXPORT void setObjectStatus(const Handle(AIS_InteractiveObject)& theIObj, + const PrsMgr_DisplayStatus theStatus, + const Standard_Integer theDispyMode, + const Standard_Integer theSelectionMode); + +protected: //! @name internal fields + AIS_DataMapOfIOStatus myObjects; + Handle(SelectMgr_SelectionManager) mgrSelector; + Handle(PrsMgr_PresentationManager) myMainPM; + Handle(V3d_Viewer) myMainVwr; + V3d_View* myLastActiveView; + Handle(SelectMgr_EntityOwner) myLastPicked; + Standard_Boolean myToHilightSelected; + Handle(AIS_Selection) mySelection; + Handle(SelectMgr_AndOrFilter) myFilters; //!< context filter (the content active filters + //! can be applied with AND or OR operation) + Handle(Prs3d_Drawer) myDefaultDrawer; + Handle(Prs3d_Drawer) myStyles[Prs3d_TypeOfHighlight_NB]; + TColStd_SequenceOfInteger myDetectedSeq; + Standard_Integer myCurDetected; + Standard_Integer myCurHighlighted; + SelectMgr_PickingStrategy myPickingStrategy; //!< picking strategy to be applied within MoveTo() + Standard_Boolean myAutoHilight; + Standard_Boolean myIsAutoActivateSelMode; +}; + +DEFINE_STANDARD_HANDLE(AIS_InteractiveContext, Standard_Transient) + +#endif // _AIS_InteractiveContext_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AIS_MaxRadiusDimension.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_MaxRadiusDimension.hxx new file mode 100644 index 00000000..25c4bd52 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_MaxRadiusDimension.hxx @@ -0,0 +1,22 @@ +// Copyright (c) 2020 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AIS_MaxRadiusDimension_HeaderFile +#define _AIS_MaxRadiusDimension_HeaderFile + +#include "PrsDim_MaxRadiusDimension.hxx" + +Standard_DEPRECATED("Deprecated alias to moved class") +typedef PrsDim_MaxRadiusDimension AIS_MaxRadiusDimension; + +#endif // _AIS_MaxRadiusDimension_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AIS_MinRadiusDimension.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_MinRadiusDimension.hxx new file mode 100644 index 00000000..c1d075b8 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_MinRadiusDimension.hxx @@ -0,0 +1,22 @@ +// Copyright (c) 2020 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AIS_MinRadiusDimension_HeaderFile +#define _AIS_MinRadiusDimension_HeaderFile + +#include "PrsDim_MinRadiusDimension.hxx" + +Standard_DEPRECATED("Deprecated alias to moved class") +typedef PrsDim_MinRadiusDimension AIS_MinRadiusDimension; + +#endif // _AIS_MinRadiusDimension_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AIS_NArray1OfEntityOwner.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_NArray1OfEntityOwner.hxx new file mode 100644 index 00000000..117bda57 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_NArray1OfEntityOwner.hxx @@ -0,0 +1,22 @@ +// Copyright (c) 2020 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AIS_NArray1OfEntityOwner_HeaderFile +#define _AIS_NArray1OfEntityOwner_HeaderFile + +#include "NCollection_Array1.hxx" +#include "SelectMgr_EntityOwner.hxx" + +typedef NCollection_Array1 AIS_NArray1OfEntityOwner; + +#endif // _AIS_NArray1OfEntityOwner_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AIS_NListOfEntityOwner.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_NListOfEntityOwner.hxx new file mode 100644 index 00000000..2e138088 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_NListOfEntityOwner.hxx @@ -0,0 +1,24 @@ +// Created on: 2003-05-04 +// Created by: Alexander Grigoriev (a-grigoriev@opencascade.com) +// Copyright (c) 2003-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AIS_NListTransient_HeaderFile +#define _AIS_NListTransient_HeaderFile + +#include "SelectMgr_EntityOwner.hxx" +#include "NCollection_List.hxx" + +typedef NCollection_List AIS_NListOfEntityOwner; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AIS_PerpendicularRelation.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_PerpendicularRelation.hxx new file mode 100644 index 00000000..2cdb607d --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AIS_PerpendicularRelation.hxx @@ -0,0 +1,22 @@ +// Copyright (c) 2020 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AIS_PerpendicularRelation_HeaderFile +#define _AIS_PerpendicularRelation_HeaderFile + +#include "PrsDim_PerpendicularRelation.hxx" + +Standard_DEPRECATED("Deprecated alias to moved class") +typedef PrsDim_PerpendicularRelation AIS_PerpendicularRelation; + +#endif // _AIS_PerpendicularRelation_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Adaptor3d_CurveOnSurface.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Adaptor3d_CurveOnSurface.hxx new file mode 100644 index 00000000..b51ea329 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Adaptor3d_CurveOnSurface.hxx @@ -0,0 +1,219 @@ +// Created on: 1993-02-22 +// Created by: Modelistation +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Adaptor3d_CurveOnSurface_HeaderFile +#define _Adaptor3d_CurveOnSurface_HeaderFile + +#include "Adaptor2d_Curve2d.hxx" +#include "Adaptor3d_Surface.hxx" +#include "GeomAbs_CurveType.hxx" +#include "GeomAbs_Shape.hxx" +#include "TColStd_Array1OfReal.hxx" +#include "TColStd_HSequenceOfReal.hxx" + +DEFINE_STANDARD_HANDLE(Adaptor3d_CurveOnSurface, Adaptor3d_Curve) + +//! An interface between the services provided by a curve +//! lying on a surface from the package Geom and those +//! required of the curve by algorithms which use it. The +//! curve is defined as a 2D curve from the Geom2d +//! package, in the parametric space of the surface. +class Adaptor3d_CurveOnSurface : public Adaptor3d_Curve +{ + DEFINE_STANDARD_RTTIEXT(Adaptor3d_CurveOnSurface, Adaptor3d_Curve) +public: + Standard_EXPORT Adaptor3d_CurveOnSurface(); + + Standard_EXPORT Adaptor3d_CurveOnSurface(const Handle(Adaptor3d_Surface)& S); + + //! Creates a CurveOnSurface from the 2d curve and + //! the surface . + Standard_EXPORT Adaptor3d_CurveOnSurface(const Handle(Adaptor2d_Curve2d)& C, + const Handle(Adaptor3d_Surface)& S); + + //! Shallow copy of adaptor + Standard_EXPORT virtual Handle(Adaptor3d_Curve) ShallowCopy() const Standard_OVERRIDE; + + //! Changes the surface. + Standard_EXPORT void Load(const Handle(Adaptor3d_Surface)& S); + + //! Changes the 2d curve. + Standard_EXPORT void Load(const Handle(Adaptor2d_Curve2d)& C); + + //! Load both curve and surface. + Standard_EXPORT void Load(const Handle(Adaptor2d_Curve2d)& C, const Handle(Adaptor3d_Surface)& S); + + Standard_EXPORT const Handle(Adaptor2d_Curve2d)& GetCurve() const; + + Standard_EXPORT const Handle(Adaptor3d_Surface)& GetSurface() const; + + Standard_EXPORT Handle(Adaptor2d_Curve2d)& ChangeCurve(); + + Standard_EXPORT Handle(Adaptor3d_Surface)& ChangeSurface(); + + Standard_EXPORT Standard_Real FirstParameter() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real LastParameter() const Standard_OVERRIDE; + + Standard_EXPORT GeomAbs_Shape Continuity() const Standard_OVERRIDE; + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(me) >= + Standard_EXPORT Standard_Integer NbIntervals(const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! + //! The array must provide enough room to accommodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT void Intervals(TColStd_Array1OfReal& T, + const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Returns a curve equivalent of between + //! parameters and . is used to + //! test for 3d points confusion. + //! If >= + Standard_EXPORT Handle(Adaptor3d_Curve) Trim(const Standard_Real First, + const Standard_Real Last, + const Standard_Real Tol) const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsClosed() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsPeriodic() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real Period() const Standard_OVERRIDE; + + //! Computes the point of parameter U on the curve. + Standard_EXPORT gp_Pnt Value(const Standard_Real U) const Standard_OVERRIDE; + + //! Computes the point of parameter U on the curve. + Standard_EXPORT void D0(const Standard_Real U, gp_Pnt& P) const Standard_OVERRIDE; + + //! Computes the point of parameter U on the curve with its + //! first derivative. + //! Raised if the continuity of the current interval + //! is not C1. + Standard_EXPORT void D1(const Standard_Real U, gp_Pnt& P, gp_Vec& V) const Standard_OVERRIDE; + + //! Returns the point P of parameter U, the first and second + //! derivatives V1 and V2. + //! Raised if the continuity of the current interval + //! is not C2. + Standard_EXPORT void D2(const Standard_Real U, + gp_Pnt& P, + gp_Vec& V1, + gp_Vec& V2) const Standard_OVERRIDE; + + //! Returns the point P of parameter U, the first, the second + //! and the third derivative. + //! Raised if the continuity of the current interval + //! is not C3. + Standard_EXPORT void D3(const Standard_Real U, + gp_Pnt& P, + gp_Vec& V1, + gp_Vec& V2, + gp_Vec& V3) const Standard_OVERRIDE; + + //! The returned vector gives the value of the derivative for the + //! order of derivation N. + //! Raised if the continuity of the current interval + //! is not CN. + //! Raised if N < 1. + Standard_EXPORT gp_Vec DN(const Standard_Real U, + const Standard_Integer N) const Standard_OVERRIDE; + + //! Returns the parametric resolution corresponding + //! to the real space resolution . + Standard_EXPORT Standard_Real Resolution(const Standard_Real R3d) const Standard_OVERRIDE; + + //! Returns the type of the curve in the current + //! interval : Line, Circle, Ellipse, Hyperbola, + //! Parabola, BezierCurve, BSplineCurve, OtherCurve. + Standard_EXPORT GeomAbs_CurveType GetType() const Standard_OVERRIDE; + + Standard_EXPORT gp_Lin Line() const Standard_OVERRIDE; + + Standard_EXPORT gp_Circ Circle() const Standard_OVERRIDE; + + Standard_EXPORT gp_Elips Ellipse() const Standard_OVERRIDE; + + Standard_EXPORT gp_Hypr Hyperbola() const Standard_OVERRIDE; + + Standard_EXPORT gp_Parab Parabola() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer Degree() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer NbPoles() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer NbKnots() const Standard_OVERRIDE; + + Standard_EXPORT Handle(Geom_BezierCurve) Bezier() const Standard_OVERRIDE; + + Standard_EXPORT Handle(Geom_BSplineCurve) BSpline() const Standard_OVERRIDE; + +private: + Standard_EXPORT void EvalKPart(); + + //! Evaluates myFirstSurf and myLastSurf + //! for trimming the curve on surface. + //! Following methods output left-bottom and right-top points + //! of located part on surface + //! for trimming the curve on surface. + Standard_EXPORT void EvalFirstLastSurf(); + + Standard_EXPORT void LocatePart(const gp_Pnt2d& UV, + const gp_Vec2d& DUV, + const Handle(Adaptor3d_Surface)& S, + gp_Pnt2d& LeftBot, + gp_Pnt2d& RightTop) const; + + Standard_EXPORT Standard_Boolean LocatePart_RevExt(const gp_Pnt2d& UV, + const gp_Vec2d& DUV, + const Handle(Adaptor3d_Surface)& S, + gp_Pnt2d& LeftBot, + gp_Pnt2d& RightTop) const; + + Standard_EXPORT Standard_Boolean LocatePart_Offset(const gp_Pnt2d& UV, + const gp_Vec2d& DUV, + const Handle(Adaptor3d_Surface)& S, + gp_Pnt2d& LeftBot, + gp_Pnt2d& RightTop) const; + + //! Extracts the numbers of knots which equal + //! the point and checks derivative components + //! by zero equivalence. + Standard_EXPORT void FindBounds(const TColStd_Array1OfReal& Arr, + const Standard_Real XYComp, + const Standard_Real DUVComp, + Standard_Integer& Bnd1, + Standard_Integer& Bnd2, + Standard_Boolean& DerIsNull) const; + +private: + Handle(Adaptor3d_Surface) mySurface; + Handle(Adaptor2d_Curve2d) myCurve; + GeomAbs_CurveType myType; + gp_Circ myCirc; + gp_Lin myLin; + Handle(Adaptor3d_Surface) myFirstSurf; + Handle(Adaptor3d_Surface) myLastSurf; + Handle(TColStd_HSequenceOfReal) myIntervals; + GeomAbs_Shape myIntCont; +}; + +#endif // _Adaptor3d_CurveOnSurface_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Adaptor3d_HSurfaceTool.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Adaptor3d_HSurfaceTool.hxx new file mode 100644 index 00000000..8a44cc3c --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Adaptor3d_HSurfaceTool.hxx @@ -0,0 +1,294 @@ +// Created on: 1993-07-02 +// Created by: Laurent BUCHARD +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Adaptor3d_HSurfaceTool_HeaderFile +#define _Adaptor3d_HSurfaceTool_HeaderFile + +#include "Adaptor3d_Surface.hxx" +#include "Adaptor3d_Curve.hxx" +#include "Geom_BezierSurface.hxx" +#include "Geom_BSplineSurface.hxx" +#include "GeomAbs_Shape.hxx" +#include "GeomAbs_SurfaceType.hxx" +#include "gp_Ax1.hxx" +#include "gp_Dir.hxx" +#include "gp_Cylinder.hxx" +#include "gp_Cone.hxx" +#include "gp_Pln.hxx" +#include "gp_Pnt.hxx" +#include "gp_Sphere.hxx" +#include "gp_Torus.hxx" +#include "gp_Vec.hxx" +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" +#include "TColStd_Array1OfReal.hxx" + +class Adaptor3d_HSurfaceTool +{ +public: + DEFINE_STANDARD_ALLOC + + static Standard_Real FirstUParameter(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->FirstUParameter(); + } + + static Standard_Real FirstVParameter(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->FirstVParameter(); + } + + static Standard_Real LastUParameter(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->LastUParameter(); + } + + static Standard_Real LastVParameter(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->LastVParameter(); + } + + static Standard_Integer NbUIntervals(const Handle(Adaptor3d_Surface)& theSurf, + const GeomAbs_Shape theSh) + { + return theSurf->NbUIntervals(theSh); + } + + static Standard_Integer NbVIntervals(const Handle(Adaptor3d_Surface)& theSurf, + const GeomAbs_Shape theSh) + { + return theSurf->NbVIntervals(theSh); + } + + static void UIntervals(const Handle(Adaptor3d_Surface)& theSurf, + TColStd_Array1OfReal& theTab, + const GeomAbs_Shape theSh) + { + theSurf->UIntervals(theTab, theSh); + } + + static void VIntervals(const Handle(Adaptor3d_Surface)& theSurf, + TColStd_Array1OfReal& theTab, + const GeomAbs_Shape theSh) + { + theSurf->VIntervals(theTab, theSh); + } + + //! If >= + static Handle(Adaptor3d_Surface) UTrim(const Handle(Adaptor3d_Surface)& theSurf, + const Standard_Real theFirst, + const Standard_Real theLast, + const Standard_Real theTol) + { + return theSurf->UTrim(theFirst, theLast, theTol); + } + + //! If >= + static Handle(Adaptor3d_Surface) VTrim(const Handle(Adaptor3d_Surface)& theSurf, + const Standard_Real theFirst, + const Standard_Real theLast, + const Standard_Real theTol) + { + return theSurf->VTrim(theFirst, theLast, theTol); + } + + static Standard_Boolean IsUClosed(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->IsUClosed(); + } + + static Standard_Boolean IsVClosed(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->IsVClosed(); + } + + static Standard_Boolean IsUPeriodic(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->IsUPeriodic(); + } + + static Standard_Real UPeriod(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->UPeriod(); + } + + static Standard_Boolean IsVPeriodic(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->IsVPeriodic(); + } + + static Standard_Real VPeriod(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->VPeriod(); + } + + static gp_Pnt Value(const Handle(Adaptor3d_Surface)& theSurf, + const Standard_Real theU, + const Standard_Real theV) + { + return theSurf->Value(theU, theV); + } + + static void D0(const Handle(Adaptor3d_Surface)& theSurf, + const Standard_Real theU, + const Standard_Real theV, + gp_Pnt& thePnt) + { + theSurf->D0(theU, theV, thePnt); + } + + static void D1(const Handle(Adaptor3d_Surface)& theSurf, + const Standard_Real theU, + const Standard_Real theV, + gp_Pnt& thePnt, + gp_Vec& theD1U, + gp_Vec& theD1V) + { + theSurf->D1(theU, theV, thePnt, theD1U, theD1V); + } + + static void D2(const Handle(Adaptor3d_Surface)& theSurf, + const Standard_Real theU, + const Standard_Real theV, + gp_Pnt& thePnt, + gp_Vec& theD1U, + gp_Vec& theD1V, + gp_Vec& theD2U, + gp_Vec& theD2V, + gp_Vec& theD2UV) + { + theSurf->D2(theU, theV, thePnt, theD1U, theD1V, theD2U, theD2V, theD2UV); + } + + static void D3(const Handle(Adaptor3d_Surface)& theSurf, + const Standard_Real theU, + const Standard_Real theV, + gp_Pnt& thePnt, + gp_Vec& theD1U, + gp_Vec& theD1V, + gp_Vec& theD2U, + gp_Vec& theD2V, + gp_Vec& theD2UV, + gp_Vec& theD3U, + gp_Vec& theD3V, + gp_Vec& theD3UUV, + gp_Vec& theD3UVV) + { + theSurf->D3(theU, + theV, + thePnt, + theD1U, + theD1V, + theD2U, + theD2V, + theD2UV, + theD3U, + theD3V, + theD3UUV, + theD3UVV); + } + + static gp_Vec DN(const Handle(Adaptor3d_Surface)& theSurf, + const Standard_Real theU, + const Standard_Real theV, + const Standard_Integer theNU, + const Standard_Integer theNV) + { + return theSurf->DN(theU, theV, theNU, theNV); + } + + static Standard_Real UResolution(const Handle(Adaptor3d_Surface)& theSurf, + const Standard_Real theR3d) + { + return theSurf->UResolution(theR3d); + } + + static Standard_Real VResolution(const Handle(Adaptor3d_Surface)& theSurf, + const Standard_Real theR3d) + { + return theSurf->VResolution(theR3d); + } + + static GeomAbs_SurfaceType GetType(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->GetType(); + } + + static gp_Pln Plane(const Handle(Adaptor3d_Surface)& theSurf) { return theSurf->Plane(); } + + static gp_Cylinder Cylinder(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->Cylinder(); + } + + static gp_Cone Cone(const Handle(Adaptor3d_Surface)& theSurf) { return theSurf->Cone(); } + + static gp_Torus Torus(const Handle(Adaptor3d_Surface)& theSurf) { return theSurf->Torus(); } + + static gp_Sphere Sphere(const Handle(Adaptor3d_Surface)& theSurf) { return theSurf->Sphere(); } + + static Handle(Geom_BezierSurface) Bezier(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->Bezier(); + } + + static Handle(Geom_BSplineSurface) BSpline(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->BSpline(); + } + + static gp_Ax1 AxeOfRevolution(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->AxeOfRevolution(); + } + + static gp_Dir Direction(const Handle(Adaptor3d_Surface)& theSurf) { return theSurf->Direction(); } + + static Handle(Adaptor3d_Curve) BasisCurve(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->BasisCurve(); + } + + static Handle(Adaptor3d_Surface) BasisSurface(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->BasisSurface(); + } + + static Standard_Real OffsetValue(const Handle(Adaptor3d_Surface)& theSurf) + { + return theSurf->OffsetValue(); + } + + Standard_EXPORT static Standard_Boolean IsSurfG1( + const Handle(Adaptor3d_Surface)& theSurf, + const Standard_Boolean theAlongU, + const Standard_Real theAngTol = Precision::Angular()); + + Standard_EXPORT static Standard_Integer NbSamplesU(const Handle(Adaptor3d_Surface)& S); + + Standard_EXPORT static Standard_Integer NbSamplesV(const Handle(Adaptor3d_Surface)& S); + + Standard_EXPORT static Standard_Integer NbSamplesU(const Handle(Adaptor3d_Surface)& S, + const Standard_Real u1, + const Standard_Real u2); + + Standard_EXPORT static Standard_Integer NbSamplesV(const Handle(Adaptor3d_Surface)&, + const Standard_Real v1, + const Standard_Real v2); +}; + +#endif // _Adaptor3d_HSurfaceTool_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AdvApp2Var_ApproxF2var.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AdvApp2Var_ApproxF2var.hxx new file mode 100644 index 00000000..0a78068d --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AdvApp2Var_ApproxF2var.hxx @@ -0,0 +1,208 @@ +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +// AdvApp2Var_ApproxF2var.hxx +/*--------------------------------------------------------------- +| description de la macro et du prototype des routines +| de l'approximation a deux variables +| a utiliser dans AdvApp2Var +|--------------------------------------------------------------*/ +#ifndef AdvApp2Var_ApproxF2var_HeaderFile +#define AdvApp2Var_ApproxF2var_HeaderFile + +#include "Standard_Macro.hxx" +#include "AdvApp2Var_Data_f2c.hxx" +#include "AdvApp2Var_EvaluatorFunc2Var.hxx" + +// +class AdvApp2Var_ApproxF2var +{ +public: + Standard_EXPORT static int mma2fnc_(integer* ndimen, + integer* nbsesp, + integer* ndimse, + doublereal* uvfonc, + const AdvApp2Var_EvaluatorFunc2Var& foncnp, + doublereal* tconst, + integer* isofav, + integer* nbroot, + doublereal* rootlg, + integer* iordre, + integer* ideriv, + integer* ndgjac, + integer* nbcrmx, + integer* ncflim, + doublereal* epsapr, + integer* ncoeff, + doublereal* courbe, + integer* nbcrbe, + doublereal* somtab, + doublereal* diftab, + doublereal* contr1, + doublereal* contr2, + doublereal* tabdec, + doublereal* errmax, + doublereal* errmoy, + integer* iercod); + + Standard_EXPORT static int mma2roo_(integer* nbpntu, + integer* nbpntv, + doublereal* urootl, + doublereal* vrootl); + + Standard_EXPORT static int mma2jmx_(integer* ndgjac, integer* iordre, doublereal* xjacmx); + + Standard_EXPORT static int mmapptt_(const integer*, + const integer*, + const integer*, + doublereal*, + integer*); + + Standard_EXPORT static int mma2cdi_(integer* ndimen, + integer* nbpntu, + doublereal* urootl, + integer* nbpntv, + doublereal* vrootl, + integer* iordru, + integer* iordrv, + doublereal* contr1, + doublereal* contr2, + doublereal* contr3, + doublereal* contr4, + doublereal* sotbu1, + doublereal* sotbu2, + doublereal* ditbu1, + doublereal* ditbu2, + doublereal* sotbv1, + doublereal* sotbv2, + doublereal* ditbv1, + doublereal* ditbv2, + doublereal* sosotb, + doublereal* soditb, + doublereal* disotb, + doublereal* diditb, + integer* iercod); + + Standard_EXPORT static int mma2ds1_(integer* ndimen, + doublereal* uintfn, + doublereal* vintfn, + const AdvApp2Var_EvaluatorFunc2Var& foncnp, + integer* nbpntu, + integer* nbpntv, + doublereal* urootb, + doublereal* vrootb, + integer* isofav, + doublereal* sosotb, + doublereal* disotb, + doublereal* soditb, + doublereal* diditb, + doublereal* fpntab, + doublereal* ttable, + integer* iercod); + + Standard_EXPORT static int mma2ce1_(integer* numdec, + integer* ndimen, + integer* nbsesp, + integer* ndimse, + integer* ndminu, + integer* ndminv, + integer* ndguli, + integer* ndgvli, + integer* ndjacu, + integer* ndjacv, + integer* iordru, + integer* iordrv, + integer* nbpntu, + integer* nbpntv, + doublereal* epsapr, + doublereal* sosotb, + doublereal* disotb, + doublereal* soditb, + doublereal* diditb, + doublereal* patjac, + doublereal* errmax, + doublereal* errmoy, + integer* ndegpu, + integer* ndegpv, + integer* itydec, + integer* iercod); + + Standard_EXPORT static int mma2can_(const integer*, + const integer*, + const integer*, + const integer*, + const integer*, + const integer*, + const integer*, + const doublereal*, + doublereal*, + doublereal*, + integer*); + + Standard_EXPORT static int mma1her_(const integer*, doublereal*, integer*); + + Standard_EXPORT static int mma2ac2_(const integer*, + const integer*, + const integer*, + const integer*, + const integer*, + const integer*, + const doublereal*, + const integer*, + const doublereal*, + const doublereal*, + doublereal*); + + Standard_EXPORT static int mma2ac3_(const integer*, + const integer*, + const integer*, + const integer*, + const integer*, + const integer*, + const doublereal*, + const integer*, + const doublereal*, + const doublereal*, + doublereal*); + + Standard_EXPORT static int mma2ac1_(const integer*, + const integer*, + const integer*, + const integer*, + const integer*, + const doublereal*, + const doublereal*, + const doublereal*, + const doublereal*, + const doublereal*, + const doublereal*, + doublereal*); + + Standard_EXPORT static int mma2fx6_(integer* ncfmxu, + integer* ncfmxv, + integer* ndimen, + integer* nbsesp, + integer* ndimse, + integer* nbupat, + integer* nbvpat, + integer* iordru, + integer* iordrv, + doublereal* epsapr, + doublereal* epsfro, + doublereal* patcan, + doublereal* errmax, + integer* ncoefu, + integer* ncoefv); +}; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AdvApp2Var_CriterionType.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AdvApp2Var_CriterionType.hxx new file mode 100644 index 00000000..89e13400 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AdvApp2Var_CriterionType.hxx @@ -0,0 +1,31 @@ +// Created on: 1996-03-05 +// Created by: Joelle CHAUVET +// Copyright (c) 1996-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AdvApp2Var_CriterionType_HeaderFile +#define _AdvApp2Var_CriterionType_HeaderFile + +//! influence of the criterion on cutting process +//! cutting when criterion is not satisfied +//! deactivation of the compute of the error max +//! cutting when error max is not good or if error +//! max is good and criterion is not satisfied +enum AdvApp2Var_CriterionType +{ + AdvApp2Var_Absolute, + AdvApp2Var_Relative +}; + +#endif // _AdvApp2Var_CriterionType_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AdvApp2Var_SequenceOfNode.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AdvApp2Var_SequenceOfNode.hxx new file mode 100644 index 00000000..e77f39cd --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AdvApp2Var_SequenceOfNode.hxx @@ -0,0 +1,25 @@ +// Created on: 1996-03-05 +// Created by: Joelle CHAUVET +// Copyright (c) 1996-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef AdvApp2Var_SequenceOfNode_HeaderFile +#define AdvApp2Var_SequenceOfNode_HeaderFile + +#include "AdvApp2Var_Node.hxx" +#include "NCollection_Sequence.hxx" + +typedef NCollection_Sequence AdvApp2Var_SequenceOfNode; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_ApproxAFunction.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_ApproxAFunction.hxx new file mode 100644 index 00000000..f0127854 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_ApproxAFunction.hxx @@ -0,0 +1,200 @@ +// Created on: 1995-05-29 +// Created by: Xavier BENVENISTE +// Copyright (c) 1995-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AdvApprox_ApproxAFunction_HeaderFile +#define _AdvApprox_ApproxAFunction_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "Standard_Integer.hxx" +#include "TColStd_HArray1OfReal.hxx" +#include "Standard_Real.hxx" +#include "GeomAbs_Shape.hxx" +#include "Standard_Boolean.hxx" +#include "TColStd_HArray2OfReal.hxx" +#include "TColgp_HArray2OfPnt2d.hxx" +#include "TColgp_HArray2OfPnt.hxx" +#include "TColStd_HArray1OfInteger.hxx" +#include "AdvApprox_EvaluatorFunction.hxx" +#include "TColStd_Array1OfInteger.hxx" +#include "TColStd_Array1OfReal.hxx" +#include "TColgp_Array1OfPnt2d.hxx" +#include "TColgp_Array1OfPnt.hxx" +#include "Standard_OStream.hxx" +class AdvApprox_Cutting; + +//! this approximate a given function +class AdvApprox_ApproxAFunction +{ +public: + DEFINE_STANDARD_ALLOC + + //! Constructs approximator tool. + //! + //! Warning: + //! the Func should be valid reference to object of type + //! inherited from class EvaluatorFunction from Approx + //! with life time longer than that of the approximator tool; + //! + //! the result should be formatted in the following way : + //! <--Num1DSS--> <--2 * Num2DSS--> <--3 * Num3DSS--> + //! R[0] .... R[Num1DSS]..... R[Dimension-1] + //! + //! the order in which each Subspace appears should be consistent + //! with the tolerances given in the create function and the + //! results will be given in that order as well that is : + //! Curve2d(n) will correspond to the nth entry + //! described by Num2DSS, Curve(n) will correspond to + //! the nth entry described by Num3DSS + //! The same type of schema applies to the Poles1d, Poles2d and + //! Poles. + Standard_EXPORT AdvApprox_ApproxAFunction(const Standard_Integer Num1DSS, + const Standard_Integer Num2DSS, + const Standard_Integer Num3DSS, + const Handle(TColStd_HArray1OfReal)& OneDTol, + const Handle(TColStd_HArray1OfReal)& TwoDTol, + const Handle(TColStd_HArray1OfReal)& ThreeDTol, + const Standard_Real First, + const Standard_Real Last, + const GeomAbs_Shape Continuity, + const Standard_Integer MaxDeg, + const Standard_Integer MaxSeg, + const AdvApprox_EvaluatorFunction& Func); + + //! Approximation with user methode of cutting + Standard_EXPORT AdvApprox_ApproxAFunction(const Standard_Integer Num1DSS, + const Standard_Integer Num2DSS, + const Standard_Integer Num3DSS, + const Handle(TColStd_HArray1OfReal)& OneDTol, + const Handle(TColStd_HArray1OfReal)& TwoDTol, + const Handle(TColStd_HArray1OfReal)& ThreeDTol, + const Standard_Real First, + const Standard_Real Last, + const GeomAbs_Shape Continuity, + const Standard_Integer MaxDeg, + const Standard_Integer MaxSeg, + const AdvApprox_EvaluatorFunction& Func, + const AdvApprox_Cutting& CutTool); + + Standard_EXPORT static void Approximation(const Standard_Integer TotalDimension, + const Standard_Integer TotalNumSS, + const TColStd_Array1OfInteger& LocalDimension, + const Standard_Real First, + const Standard_Real Last, + AdvApprox_EvaluatorFunction& Evaluator, + const AdvApprox_Cutting& CutTool, + const Standard_Integer ContinuityOrder, + const Standard_Integer NumMaxCoeffs, + const Standard_Integer MaxSegments, + const TColStd_Array1OfReal& TolerancesArray, + const Standard_Integer code_precis, + Standard_Integer& NumCurves, + TColStd_Array1OfInteger& NumCoeffPerCurveArray, + TColStd_Array1OfReal& LocalCoefficientArray, + TColStd_Array1OfReal& IntervalsArray, + TColStd_Array1OfReal& ErrorMaxArray, + TColStd_Array1OfReal& AverageErrorArray, + Standard_Integer& ErrorCode); + + Standard_Boolean IsDone() const; + + Standard_Boolean HasResult() const; + + //! returns the poles from the algorithms as is + Handle(TColStd_HArray2OfReal) Poles1d() const; + + //! returns the poles from the algorithms as is + Handle(TColgp_HArray2OfPnt2d) Poles2d() const; + + //! -- returns the poles from the algorithms as is + Handle(TColgp_HArray2OfPnt) Poles() const; + + //! as the name says + Standard_EXPORT Standard_Integer NbPoles() const; + + //! returns the poles at Index from the 1d subspace + Standard_EXPORT void Poles1d(const Standard_Integer Index, TColStd_Array1OfReal& P) const; + + //! returns the poles at Index from the 2d subspace + Standard_EXPORT void Poles2d(const Standard_Integer Index, TColgp_Array1OfPnt2d& P) const; + + //! returns the poles at Index from the 3d subspace + Standard_EXPORT void Poles(const Standard_Integer Index, TColgp_Array1OfPnt& P) const; + + Standard_Integer Degree() const; + + Standard_Integer NbKnots() const; + + Standard_Integer NumSubSpaces(const Standard_Integer Dimension) const; + + Handle(TColStd_HArray1OfReal) Knots() const; + + Handle(TColStd_HArray1OfInteger) Multiplicities() const; + + //! returns the error as is in the algorithms + Standard_EXPORT Handle(TColStd_HArray1OfReal) MaxError(const Standard_Integer Dimension) const; + + //! returns the error as is in the algorithms + Standard_EXPORT Handle(TColStd_HArray1OfReal) AverageError( + const Standard_Integer Dimension) const; + + Standard_EXPORT Standard_Real MaxError(const Standard_Integer Dimension, + const Standard_Integer Index) const; + + Standard_EXPORT Standard_Real AverageError(const Standard_Integer Dimension, + const Standard_Integer Index) const; + + //! display information on approximation. + Standard_EXPORT void Dump(Standard_OStream& o) const; + +protected: +private: + Standard_EXPORT void Perform(const Standard_Integer Num1DSS, + const Standard_Integer Num2DSS, + const Standard_Integer Num3DSS, + const AdvApprox_Cutting& CutTool); + + Standard_Integer myNumSubSpaces[3]; + Handle(TColStd_HArray1OfReal) my1DTolerances; + Handle(TColStd_HArray1OfReal) my2DTolerances; + Handle(TColStd_HArray1OfReal) my3DTolerances; + Standard_Real myFirst; + Standard_Real myLast; + GeomAbs_Shape myContinuity; + Standard_Integer myMaxDegree; + Standard_Integer myMaxSegments; + Standard_Boolean myDone; + Standard_Boolean myHasResult; + Handle(TColStd_HArray2OfReal) my1DPoles; + Handle(TColgp_HArray2OfPnt2d) my2DPoles; + Handle(TColgp_HArray2OfPnt) my3DPoles; + Handle(TColStd_HArray1OfReal) myKnots; + Handle(TColStd_HArray1OfInteger) myMults; + Standard_Integer myDegree; + Standard_Address myEvaluator; + Handle(TColStd_HArray1OfReal) my1DMaxError; + Handle(TColStd_HArray1OfReal) my1DAverageError; + Handle(TColStd_HArray1OfReal) my2DMaxError; + Handle(TColStd_HArray1OfReal) my2DAverageError; + Handle(TColStd_HArray1OfReal) my3DMaxError; + Handle(TColStd_HArray1OfReal) my3DAverageError; +}; + +#include "AdvApprox_ApproxAFunction.lxx" + +#endif // _AdvApprox_ApproxAFunction_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_ApproxAFunction.lxx b/entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_ApproxAFunction.lxx new file mode 100644 index 00000000..d075245d --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_ApproxAFunction.lxx @@ -0,0 +1,121 @@ +// Created on: 1995-05-31 +// Created by: Xavier BENVENISTE +// Copyright (c) 1995-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#include "Standard_ConstructionError.hxx" +#include "TColStd_HArray1OfReal.hxx" +#include "TColStd_HArray1OfInteger.hxx" + +//======================================================================= +// function : IsDone +// purpose : +//======================================================================= + +inline Standard_Boolean AdvApprox_ApproxAFunction::HasResult() const +{ + return myHasResult; +} + +//======================================================================= +// function : IsDone +// purpose : +//======================================================================= + +inline Standard_Boolean AdvApprox_ApproxAFunction::IsDone() const +{ + return myDone; +} + +//======================================================================= +// function : Poles1d +// purpose : +//======================================================================= +inline Handle(TColStd_HArray2OfReal) AdvApprox_ApproxAFunction::Poles1d() const +{ + return my1DPoles; +} + +//======================================================================= +// function : Poles2d +// purpose : +//======================================================================= +inline Handle(TColgp_HArray2OfPnt2d) AdvApprox_ApproxAFunction::Poles2d() const +{ + return my2DPoles; +} + +//======================================================================= +// function : Poles +// purpose : +//======================================================================= +inline Handle(TColgp_HArray2OfPnt) AdvApprox_ApproxAFunction::Poles() const +{ + return my3DPoles; +} + +//======================================================================= +// function : Degree +// purpose : +//======================================================================= + +inline Standard_Integer AdvApprox_ApproxAFunction::Degree() const +{ + return myDegree; +} + +//======================================================================= +// function : NbKnots +// purpose : +//======================================================================= + +inline Standard_Integer AdvApprox_ApproxAFunction::NbKnots() const +{ + return myKnots->Length(); +} + +//======================================================================= +// function : Knots +// purpose : +//======================================================================= + +inline Handle(TColStd_HArray1OfReal) AdvApprox_ApproxAFunction::Knots() const + +{ + return myKnots; +} + +//======================================================================= +// function : Multiplicities +// purpose : +//======================================================================= + +inline Handle(TColStd_HArray1OfInteger) AdvApprox_ApproxAFunction::Multiplicities() const + +{ + return myMults; +} + +//======================================================================= +// function : NumSubSpaces +// purpose : +//======================================================================= + +inline Standard_Integer AdvApprox_ApproxAFunction::NumSubSpaces( + const Standard_Integer Dimension) const +{ + if (Dimension < 1 || Dimension > 3) + throw Standard_ConstructionError(); + return myNumSubSpaces[Dimension - 1]; +} diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_DichoCutting.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_DichoCutting.hxx new file mode 100644 index 00000000..edfbbff8 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_DichoCutting.hxx @@ -0,0 +1,45 @@ +// Created on: 1996-04-05 +// Created by: Joelle CHAUVET +// Copyright (c) 1996-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AdvApprox_DichoCutting_HeaderFile +#define _AdvApprox_DichoCutting_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "AdvApprox_Cutting.hxx" +#include "Standard_Boolean.hxx" +#include "Standard_Real.hxx" + +//! if Cutting is necessary in [a,b], we cut at (a+b) / 2. +class AdvApprox_DichoCutting : public AdvApprox_Cutting +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT AdvApprox_DichoCutting(); + + Standard_EXPORT virtual Standard_Boolean Value(const Standard_Real a, + const Standard_Real b, + Standard_Real& cuttingvalue) const + Standard_OVERRIDE; + +protected: +private: +}; + +#endif // _AdvApprox_DichoCutting_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_SimpleApprox.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_SimpleApprox.hxx new file mode 100644 index 00000000..d62e2293 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AdvApprox_SimpleApprox.hxx @@ -0,0 +1,110 @@ +// Created on: 1996-10-14 +// Created by: Jeannine PANTIATICI +// Copyright (c) 1996-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AdvApprox_SimpleApprox_HeaderFile +#define _AdvApprox_SimpleApprox_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "Standard_Integer.hxx" +#include "TColStd_HArray1OfReal.hxx" +#include "TColStd_HArray2OfReal.hxx" +#include "GeomAbs_Shape.hxx" +#include "AdvApprox_EvaluatorFunction.hxx" +#include "TColStd_Array1OfInteger.hxx" +#include "TColStd_Array1OfReal.hxx" +#include "Standard_OStream.hxx" +class PLib_JacobiPolynomial; + +//! Approximate a function on an interval [First,Last] +//! The result is a simple polynomial whose degree is as low as +//! possible to satisfy the required tolerance and the +//! maximum degree. The maximum error and the averrage error +//! resulting from approximating the function by the polynomial are computed +class AdvApprox_SimpleApprox +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT AdvApprox_SimpleApprox(const Standard_Integer TotalDimension, + const Standard_Integer TotalNumSS, + const GeomAbs_Shape Continuity, + const Standard_Integer WorkDegree, + const Standard_Integer NbGaussPoints, + const Handle(PLib_JacobiPolynomial)& JacobiBase, + const AdvApprox_EvaluatorFunction& Func); + + //! Constructs approximator tool. + //! + //! Warning: + //! the Func should be valid reference to object of type + //! inherited from class EvaluatorFunction from Approx + //! with life time longer than that of the approximator tool; + Standard_EXPORT void Perform(const TColStd_Array1OfInteger& LocalDimension, + const TColStd_Array1OfReal& LocalTolerancesArray, + const Standard_Real First, + const Standard_Real Last, + const Standard_Integer MaxDegree); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT Standard_Integer Degree() const; + + //! returns the coefficients in the Jacobi Base + Standard_EXPORT Handle(TColStd_HArray1OfReal) Coefficients() const; + + //! returns the constraints at First + Standard_EXPORT Handle(TColStd_HArray2OfReal) FirstConstr() const; + + //! returns the constraints at Last + Standard_EXPORT Handle(TColStd_HArray2OfReal) LastConstr() const; + + Standard_EXPORT Handle(TColStd_HArray1OfReal) SomTab() const; + + Standard_EXPORT Handle(TColStd_HArray1OfReal) DifTab() const; + + Standard_EXPORT Standard_Real MaxError(const Standard_Integer Index) const; + + Standard_EXPORT Standard_Real AverageError(const Standard_Integer Index) const; + + //! display information on approximation + Standard_EXPORT void Dump(Standard_OStream& o) const; + +protected: +private: + Standard_Integer myTotalNumSS; + Standard_Integer myTotalDimension; + Standard_Integer myNbGaussPoints; + Standard_Integer myWorkDegree; + Standard_Integer myNivConstr; + Handle(PLib_JacobiPolynomial) myJacPol; + Handle(TColStd_HArray1OfReal) myTabPoints; + Handle(TColStd_HArray2OfReal) myTabWeights; + Standard_Address myEvaluator; + Standard_Integer myDegree; + Handle(TColStd_HArray1OfReal) myCoeff; + Handle(TColStd_HArray2OfReal) myFirstConstr; + Handle(TColStd_HArray2OfReal) myLastConstr; + Handle(TColStd_HArray1OfReal) mySomTab; + Handle(TColStd_HArray1OfReal) myDifTab; + Handle(TColStd_HArray1OfReal) myMaxError; + Handle(TColStd_HArray1OfReal) myAverageError; + Standard_Boolean done; +}; + +#endif // _AdvApprox_SimpleApprox_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AppDef_SmoothCriterion.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AppDef_SmoothCriterion.hxx new file mode 100644 index 00000000..86329b40 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AppDef_SmoothCriterion.hxx @@ -0,0 +1,102 @@ +// Created on: 1997-09-11 +// Created by: Philippe MANGIN +// Copyright (c) 1997-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AppDef_SmoothCriterion_HeaderFile +#define _AppDef_SmoothCriterion_HeaderFile + +#include "Standard.hxx" + +#include "Standard_Transient.hxx" +#include "TColStd_HArray1OfReal.hxx" +#include "Standard_Real.hxx" +#include "FEmTool_HAssemblyTable.hxx" +#include "TColStd_HArray2OfInteger.hxx" +#include "Standard_Integer.hxx" +#include "math_Vector.hxx" +#include "TColStd_Array1OfReal.hxx" +class FEmTool_Curve; +class math_Matrix; + +class AppDef_SmoothCriterion; +DEFINE_STANDARD_HANDLE(AppDef_SmoothCriterion, Standard_Transient) + +//! defined criterion to smooth points in curve +class AppDef_SmoothCriterion : public Standard_Transient +{ + +public: + Standard_EXPORT virtual void SetParameters(const Handle(TColStd_HArray1OfReal)& Parameters) = 0; + + Standard_EXPORT virtual void SetCurve(const Handle(FEmTool_Curve)& C) = 0; + + Standard_EXPORT virtual void GetCurve(Handle(FEmTool_Curve)& C) const = 0; + + Standard_EXPORT virtual void SetEstimation(const Standard_Real E1, + const Standard_Real E2, + const Standard_Real E3) = 0; + + Standard_EXPORT virtual Standard_Real& EstLength() = 0; + + Standard_EXPORT virtual void GetEstimation(Standard_Real& E1, + Standard_Real& E2, + Standard_Real& E3) const = 0; + + Standard_EXPORT virtual Handle(FEmTool_HAssemblyTable) AssemblyTable() const = 0; + + Standard_EXPORT virtual Handle(TColStd_HArray2OfInteger) DependenceTable() const = 0; + + Standard_EXPORT virtual Standard_Integer QualityValues(const Standard_Real J1min, + const Standard_Real J2min, + const Standard_Real J3min, + Standard_Real& J1, + Standard_Real& J2, + Standard_Real& J3) = 0; + + Standard_EXPORT virtual void ErrorValues(Standard_Real& MaxError, + Standard_Real& QuadraticError, + Standard_Real& AverageError) = 0; + + Standard_EXPORT virtual void Hessian(const Standard_Integer Element, + const Standard_Integer Dimension1, + const Standard_Integer Dimension2, + math_Matrix& H) = 0; + + Standard_EXPORT virtual void Gradient(const Standard_Integer Element, + const Standard_Integer Dimension, + math_Vector& G) = 0; + + //! Convert the assembly Vector in an Curve; + Standard_EXPORT virtual void InputVector(const math_Vector& X, + const Handle(FEmTool_HAssemblyTable)& AssTable) = 0; + + Standard_EXPORT virtual void SetWeight(const Standard_Real QuadraticWeight, + const Standard_Real QualityWeight, + const Standard_Real percentJ1, + const Standard_Real percentJ2, + const Standard_Real percentJ3) = 0; + + Standard_EXPORT virtual void GetWeight(Standard_Real& QuadraticWeight, + Standard_Real& QualityWeight) const = 0; + + Standard_EXPORT virtual void SetWeight(const TColStd_Array1OfReal& Weight) = 0; + + DEFINE_STANDARD_RTTIEXT(AppDef_SmoothCriterion, Standard_Transient) + +protected: +private: +}; + +#endif // _AppDef_SmoothCriterion_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AppDef_TheLeastSquares.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AppDef_TheLeastSquares.hxx new file mode 100644 index 00000000..0465989f --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AppDef_TheLeastSquares.hxx @@ -0,0 +1,283 @@ +// Created on: 1991-12-02 +// Created by: Laurent PAINNOT +// Copyright (c) 1991-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AppDef_TheLeastSquares_HeaderFile +#define _AppDef_TheLeastSquares_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "AppParCurves_Constraint.hxx" +#include "AppParCurves_MultiBSpCurve.hxx" +#include "TColStd_HArray1OfReal.hxx" +#include "TColStd_HArray1OfInteger.hxx" +#include "math_Matrix.hxx" +#include "math_Vector.hxx" +#include "math_IntegerVector.hxx" +#include "Standard_Real.hxx" +#include "Standard_Integer.hxx" +#include "TColStd_Array1OfReal.hxx" +#include "TColStd_Array1OfInteger.hxx" +class StdFail_NotDone; +class Standard_OutOfRange; +class Standard_DimensionError; +class Standard_NoSuchObject; +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppParCurves_MultiCurve; +class AppParCurves_MultiBSpCurve; +class math_Matrix; + +class AppDef_TheLeastSquares +{ +public: + DEFINE_STANDARD_ALLOC + + //! given a MultiLine, this algorithm computes the least + //! square resolution using the Householder-QR method. + //! If the first and/or the last point is a constraint + //! point, the value of the tangency or curvature is + //! computed in the resolution. + //! NbPol is the number of control points wanted + //! for the approximating curves. + //! The system to solve is the following: + //! A X = B. + //! Where A is the Bernstein matrix computed with the + //! parameters, B the points coordinates and X the poles + //! solutions. + //! The matrix A is the same for each coordinate x, y and z + //! and is also the same for each MultiLine point because + //! they are approximated in parallel(so with the same + //! parameter, only the vector B changes). + Standard_EXPORT AppDef_TheLeastSquares(const AppDef_MultiLine& SSP, + const Standard_Integer FirstPoint, + const Standard_Integer LastPoint, + const AppParCurves_Constraint FirstCons, + const AppParCurves_Constraint LastCons, + const math_Vector& Parameters, + const Standard_Integer NbPol); + + //! Initializes the fields of the object. + Standard_EXPORT AppDef_TheLeastSquares(const AppDef_MultiLine& SSP, + const Standard_Integer FirstPoint, + const Standard_Integer LastPoint, + const AppParCurves_Constraint FirstCons, + const AppParCurves_Constraint LastCons, + const Standard_Integer NbPol); + + //! given a MultiLine, this algorithm computes the least + //! square resolution using the Householder-QR method. + //! If the first and/or the last point is a constraint + //! point, the value of the tangency or curvature is + //! computed in the resolution. + //! Deg is the degree wanted for the approximating curves. + //! The system to solve is the following: + //! A X = B. + //! Where A is the BSpline functions matrix computed with + //! , B the points coordinates and X the poles + //! solutions. + //! The matrix A is the same for each coordinate x, y and z + //! and is also the same for each MultiLine point because + //! they are approximated in parallel(so with the same + //! parameter, only the vector B changes). + Standard_EXPORT AppDef_TheLeastSquares(const AppDef_MultiLine& SSP, + const TColStd_Array1OfReal& Knots, + const TColStd_Array1OfInteger& Mults, + const Standard_Integer FirstPoint, + const Standard_Integer LastPoint, + const AppParCurves_Constraint FirstCons, + const AppParCurves_Constraint LastCons, + const math_Vector& Parameters, + const Standard_Integer NbPol); + + //! Initializes the fields of the object. + Standard_EXPORT AppDef_TheLeastSquares(const AppDef_MultiLine& SSP, + const TColStd_Array1OfReal& Knots, + const TColStd_Array1OfInteger& Mults, + const Standard_Integer FirstPoint, + const Standard_Integer LastPoint, + const AppParCurves_Constraint FirstCons, + const AppParCurves_Constraint LastCons, + const Standard_Integer NbPol); + + //! Is used after having initialized the fields. + //! The case "CurvaturePoint" is not treated in this method. + Standard_EXPORT void Perform(const math_Vector& Parameters); + + //! Is used after having initialized the fields. + Standard_EXPORT void Perform(const math_Vector& Parameters, + const Standard_Real l1, + const Standard_Real l2); + + //! Is used after having initialized the fields. + //! is the tangent vector at the first point. + //! is the tangent vector at the last point. + Standard_EXPORT void Perform(const math_Vector& Parameters, + const math_Vector& V1t, + const math_Vector& V2t, + const Standard_Real l1, + const Standard_Real l2); + + //! Is used after having initialized the fields. + //! is the tangent vector at the first point. + //! is the tangent vector at the last point. + //! is the tangent vector at the first point. + //! is the tangent vector at the last point. + Standard_EXPORT void Perform(const math_Vector& Parameters, + const math_Vector& V1t, + const math_Vector& V2t, + const math_Vector& V1c, + const math_Vector& V2c, + const Standard_Real l1, + const Standard_Real l2); + + //! returns True if all has been correctly done. + Standard_EXPORT Standard_Boolean IsDone() const; + + //! returns the result of the approximation, i.e. all the + //! Curves. + //! An exception is raised if NotDone. + Standard_EXPORT AppParCurves_MultiCurve BezierValue(); + + //! returns the result of the approximation, i.e. all the + //! Curves. + //! An exception is raised if NotDone. + Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue(); + + //! returns the function matrix used to approximate the + //! set. + Standard_EXPORT const math_Matrix& FunctionMatrix() const; + + //! returns the derivative function matrix used + //! to approximate the set. + Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const; + + //! returns the maximum errors between the MultiLine + //! and the approximation curves. F is the sum of the square + //! distances. Grad is the derivative vector of the + //! function F. + Standard_EXPORT void ErrorGradient(math_Vector& Grad, + Standard_Real& F, + Standard_Real& MaxE3d, + Standard_Real& MaxE2d); + + //! returns the distances between the points of the + //! multiline and the approximation curves. + Standard_EXPORT const math_Matrix& Distance(); + + //! returns the maximum errors between the MultiLine + //! and the approximation curves. F is the sum of the square + //! distances. + Standard_EXPORT void Error(Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + //! returns the value (P2 - P1)/ V1 if the first point + //! was a tangency point. + Standard_EXPORT Standard_Real FirstLambda() const; + + //! returns the value (PN - PN-1)/ VN if the last point + //! was a tangency point. + Standard_EXPORT Standard_Real LastLambda() const; + + //! returns the matrix of points value. + Standard_EXPORT const math_Matrix& Points() const; + + //! returns the matrix of resulting control points value. + Standard_EXPORT const math_Matrix& Poles() const; + + //! Returns the indexes of the first non null values of + //! A and DA. + //! The values are non null from Index(ieme point) +1 + //! to Index(ieme point) + degree +1. + Standard_EXPORT const math_IntegerVector& KIndex() const; + +protected: + //! is used by the constructors above. + Standard_EXPORT void Init(const AppDef_MultiLine& SSP, + const Standard_Integer FirstPoint, + const Standard_Integer LastPoint); + + //! returns the number of second member columns. + //! Is used internally to initialize the fields. + Standard_EXPORT Standard_Integer NbBColumns(const AppDef_MultiLine& SSP) const; + + //! returns the first point being fitted. + Standard_EXPORT Standard_Integer TheFirstPoint(const AppParCurves_Constraint FirstCons, + const Standard_Integer FirstPoint) const; + + //! returns the last point being fitted. + Standard_EXPORT Standard_Integer TheLastPoint(const AppParCurves_Constraint LastCons, + const Standard_Integer LastPoint) const; + + //! Affects the fields in the case of a constraint point. + Standard_EXPORT void Affect(const AppDef_MultiLine& SSP, + const Standard_Integer Index, + AppParCurves_Constraint& Cons, + math_Vector& Vt, + math_Vector& Vc); + + Standard_EXPORT void ComputeFunction(const math_Vector& Parameters); + + Standard_EXPORT void SearchIndex(math_IntegerVector& Index); + + //! computes internal matrixes for the resolution + Standard_EXPORT void MakeTAA(math_Vector& TheA, math_Vector& TheB); + + //! computes internal matrixes for the resolution + Standard_EXPORT void MakeTAA(math_Vector& TheA); + + //! computes internal matrixes for the resolution + Standard_EXPORT void MakeTAA(math_Vector& TheA, math_Matrix& TheB); + +private: + AppParCurves_Constraint FirstConstraint; + AppParCurves_Constraint LastConstraint; + AppParCurves_MultiBSpCurve SCU; + Handle(TColStd_HArray1OfReal) myknots; + Handle(TColStd_HArray1OfInteger) mymults; + math_Matrix mypoles; + math_Matrix A; + math_Matrix DA; + math_Matrix B2; + math_Matrix mypoints; + math_Vector Vflatknots; + math_Vector Vec1t; + math_Vector Vec1c; + math_Vector Vec2t; + math_Vector Vec2c; + math_Matrix theError; + math_IntegerVector myindex; + Standard_Real lambda1; + Standard_Real lambda2; + Standard_Integer FirstP; + Standard_Integer LastP; + Standard_Integer Nlignes; + Standard_Integer Ninc; + Standard_Integer NA; + Standard_Integer myfirstp; + Standard_Integer mylastp; + Standard_Integer resinit; + Standard_Integer resfin; + Standard_Integer nbP2d; + Standard_Integer nbP; + Standard_Integer nbpoles; + Standard_Integer deg; + Standard_Boolean done; + Standard_Boolean iscalculated; + Standard_Boolean isready; +}; + +#endif // _AppDef_TheLeastSquares_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_Constraint.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_Constraint.hxx new file mode 100644 index 00000000..f77c092c --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_Constraint.hxx @@ -0,0 +1,32 @@ +// Created on: 1991-04-11 +// Created by: Laurent PAINNOT +// Copyright (c) 1991-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AppParCurves_Constraint_HeaderFile +#define _AppParCurves_Constraint_HeaderFile + +//! - NoConstraint: this point has no constraints. +//! - PassPoint: the approximation curve passes through this point. +//! - TangencyPoint: this point has a tangency constraint. +//! - CurvaturePoint: this point has a curvature constraint. +enum AppParCurves_Constraint +{ + AppParCurves_NoConstraint, + AppParCurves_PassPoint, + AppParCurves_TangencyPoint, + AppParCurves_CurvaturePoint +}; + +#endif // _AppParCurves_Constraint_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_MultiCurve.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_MultiCurve.hxx new file mode 100644 index 00000000..bf3206eb --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_MultiCurve.hxx @@ -0,0 +1,213 @@ +// Created on: 1991-12-02 +// Created by: Laurent PAINNOT +// Copyright (c) 1991-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AppParCurves_MultiCurve_HeaderFile +#define _AppParCurves_MultiCurve_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "AppParCurves_HArray1OfMultiPoint.hxx" +#include "Standard_Integer.hxx" +#include "AppParCurves_Array1OfMultiPoint.hxx" +#include "TColgp_Array1OfPnt.hxx" +#include "TColgp_Array1OfPnt2d.hxx" +#include "Standard_Real.hxx" +#include "Standard_OStream.hxx" +class AppParCurves_MultiPoint; +class gp_Pnt; +class gp_Pnt2d; +class gp_Vec; +class gp_Vec2d; + +//! This class describes a MultiCurve approximating a Multiline. +//! As a Multiline is a set of n lines, a MultiCurve is a set +//! of n curves. These curves are Bezier curves. +//! A MultiCurve is composed of m MultiPoint. +//! The approximating degree of these n curves is the same for +//! each one. +//! +//! Example of a MultiCurve composed of MultiPoints: +//! +//! P1______P2_____P3______P4________........_____PNbMPoints +//! +//! Q1______Q2_____Q3______Q4________........_____QNbMPoints +//! . . +//! . . +//! . . +//! R1______R2_____R3______R4________........_____RNbMPoints +//! +//! Pi, Qi, ..., Ri are points of dimension 2 or 3. +//! +//! (Pi, Qi, ...Ri), i= 1,...NbPoles are MultiPoints. +//! each MultiPoint has got NbPol Poles. +class AppParCurves_MultiCurve +{ +public: + DEFINE_STANDARD_ALLOC + + //! returns an indefinite MultiCurve. + Standard_EXPORT AppParCurves_MultiCurve(); + + //! creates a MultiCurve, describing Bezier curves all + //! containing the same number of MultiPoint. + //! An exception is raised if Degree < 0. + Standard_EXPORT AppParCurves_MultiCurve(const Standard_Integer NbPol); + + //! creates a MultiCurve, describing Bezier curves all + //! containing the same number of MultiPoint. + //! Each MultiPoint must have NbCurves Poles. + Standard_EXPORT AppParCurves_MultiCurve(const AppParCurves_Array1OfMultiPoint& tabMU); + Standard_EXPORT virtual ~AppParCurves_MultiCurve(); + + //! The number of poles of the MultiCurve + //! will be set to . + Standard_EXPORT void SetNbPoles(const Standard_Integer nbPoles); + + //! sets the MultiPoint of range Index to the value + //! . + //! An exception is raised if Index <0 or Index >NbMPoint. + Standard_EXPORT void SetValue(const Standard_Integer Index, + const AppParCurves_MultiPoint& MPoint); + + //! Returns the number of curves resulting from the + //! approximation of a MultiLine. + Standard_EXPORT Standard_Integer NbCurves() const; + + //! Returns the number of poles on curves resulting from the approximation of a MultiLine. + Standard_EXPORT virtual Standard_Integer NbPoles() const; + + //! returns the degree of the curves. + Standard_EXPORT virtual Standard_Integer Degree() const; + + //! returns the dimension of the CuIndex curve. + //! An exception is raised if CuIndex<0 or CuIndex>NbCurves. + Standard_EXPORT Standard_Integer Dimension(const Standard_Integer CuIndex) const; + + //! returns the Pole array of the curve of range CuIndex. + //! An exception is raised if the dimension of the curve + //! is 2d. + Standard_EXPORT void Curve(const Standard_Integer CuIndex, TColgp_Array1OfPnt& TabPnt) const; + + //! returns the Pole array of the curve of range CuIndex. + //! An exception is raised if the dimension of the curve + //! is 3d. + Standard_EXPORT void Curve(const Standard_Integer CuIndex, TColgp_Array1OfPnt2d& TabPnt) const; + + //! returns the Index MultiPoint. + //! An exception is raised if Index <0 or Index >Degree+1. + Standard_EXPORT const AppParCurves_MultiPoint& Value(const Standard_Integer Index) const; + + //! returns the Nieme pole of the CuIndex curve. + //! the curve must be a 3D curve. + Standard_EXPORT const gp_Pnt& Pole(const Standard_Integer CuIndex, + const Standard_Integer Nieme) const; + + //! returns the Nieme pole of the CuIndex curve. + //! the curve must be a 2D curve. + Standard_EXPORT const gp_Pnt2d& Pole2d(const Standard_Integer CuIndex, + const Standard_Integer Nieme) const; + + //! Applies a transformation to the curve of range + //! . + //! newx = x + dx*oldx + //! newy = y + dy*oldy for all points of the curve. + //! newz = z + dz*oldz + Standard_EXPORT void Transform(const Standard_Integer CuIndex, + const Standard_Real x, + const Standard_Real dx, + const Standard_Real y, + const Standard_Real dy, + const Standard_Real z, + const Standard_Real dz); + + //! Applies a transformation to the Curve of range + //! . + //! newx = x + dx*oldx + //! newy = y + dy*oldy for all points of the curve. + Standard_EXPORT void Transform2d(const Standard_Integer CuIndex, + const Standard_Real x, + const Standard_Real dx, + const Standard_Real y, + const Standard_Real dy); + + //! returns the value of the point with a parameter U + //! on the Bezier curve number CuIndex. + //! An exception is raised if CuIndex <0 or > NbCurves. + //! An exception is raised if the curve dimension is 2d. + Standard_EXPORT virtual void Value(const Standard_Integer CuIndex, + const Standard_Real U, + gp_Pnt& Pt) const; + + //! returns the value of the point with a parameter U + //! on the Bezier curve number CuIndex. + //! An exception is raised if CuIndex <0 or > NbCurves. + //! An exception is raised if the curve dimension is 3d. + Standard_EXPORT virtual void Value(const Standard_Integer CuIndex, + const Standard_Real U, + gp_Pnt2d& Pt) const; + + //! returns the value of the point with a parameter U + //! on the Bezier curve number CuIndex. + //! An exception is raised if CuIndex <0 or > NbCurves. + //! An exception is raised if the curve dimension is 3d. + Standard_EXPORT virtual void D1(const Standard_Integer CuIndex, + const Standard_Real U, + gp_Pnt& Pt, + gp_Vec& V1) const; + + //! returns the value of the point with a parameter U + //! on the Bezier curve number CuIndex. + //! An exception is raised if CuIndex <0 or > NbCurves. + //! An exception is raised if the curve dimension is 2d. + Standard_EXPORT virtual void D1(const Standard_Integer CuIndex, + const Standard_Real U, + gp_Pnt2d& Pt, + gp_Vec2d& V1) const; + + //! returns the value of the point with a parameter U + //! on the Bezier curve number CuIndex. + //! An exception is raised if CuIndex <0 or > NbCurves. + //! An exception is raised if the curve dimension is 3d. + Standard_EXPORT virtual void D2(const Standard_Integer CuIndex, + const Standard_Real U, + gp_Pnt& Pt, + gp_Vec& V1, + gp_Vec& V2) const; + + //! returns the value of the point with a parameter U + //! on the Bezier curve number CuIndex. + //! An exception is raised if CuIndex <0 or > NbCurves. + //! An exception is raised if the curve dimension is 2d. + Standard_EXPORT virtual void D2(const Standard_Integer CuIndex, + const Standard_Real U, + gp_Pnt2d& Pt, + gp_Vec2d& V1, + gp_Vec2d& V2) const; + + //! Prints on the stream o information on the current + //! state of the object. + //! Is used to redefine the operator <<. + Standard_EXPORT virtual void Dump(Standard_OStream& o) const; + +protected: + Handle(AppParCurves_HArray1OfMultiPoint) tabPoint; + +private: +}; + +#endif // _AppParCurves_MultiCurve_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_MultiPoint.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_MultiPoint.hxx new file mode 100644 index 00000000..82d09b95 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_MultiPoint.hxx @@ -0,0 +1,141 @@ +// Created on: 1991-12-02 +// Created by: Laurent PAINNOT +// Copyright (c) 1991-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _AppParCurves_MultiPoint_HeaderFile +#define _AppParCurves_MultiPoint_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "Standard_Integer.hxx" +#include "TColgp_Array1OfPnt.hxx" +#include "TColgp_Array1OfPnt2d.hxx" +#include "Standard_Real.hxx" +#include "Standard_OStream.hxx" +class Standard_Transient; +class gp_Pnt; +class gp_Pnt2d; + +//! This class describes Points composing a MultiPoint. +//! These points can be 2D or 3D. The user must first give the +//! 3D Points and then the 2D Points. +//! They are Poles of a Bezier Curve. +//! This class is used either to define data input or +//! results when performing the approximation of several lines in parallel. +class AppParCurves_MultiPoint +{ +public: + DEFINE_STANDARD_ALLOC + + //! creates an indefinite MultiPoint. + Standard_EXPORT AppParCurves_MultiPoint(); + + //! constructs a set of Points used to approximate a + //! Multiline. + //! These Points can be of 2 or 3 dimensions. + //! Points will be initialized with SetPoint and SetPoint2d. + //! NbPoints is the number of 3D Points. + //! NbPoints2d is the number of 2D Points. + Standard_EXPORT AppParCurves_MultiPoint(const Standard_Integer NbPoints, + const Standard_Integer NbPoints2d); + + //! creates a MultiPoint only composed of 3D points. + Standard_EXPORT AppParCurves_MultiPoint(const TColgp_Array1OfPnt& tabP); + + //! creates a MultiPoint only composed of 2D points. + Standard_EXPORT AppParCurves_MultiPoint(const TColgp_Array1OfPnt2d& tabP2d); + + //! constructs a set of Points used to approximate a + //! Multiline. + //! These Points can be of 2 or 3 dimensions. + //! Points will be initialized with SetPoint and SetPoint2d. + //! NbPoints is the total number of Points. + Standard_EXPORT AppParCurves_MultiPoint(const TColgp_Array1OfPnt& tabP, + const TColgp_Array1OfPnt2d& tabP2d); + Standard_EXPORT virtual ~AppParCurves_MultiPoint(); + + //! the 3d Point of range Index of this MultiPoint is + //! set to . + //! An exception is raised if Index < 0 or + //! Index > number of 3d Points. + Standard_EXPORT void SetPoint(const Standard_Integer Index, const gp_Pnt& Point); + + //! returns the 3d Point of range Index. + //! An exception is raised if Index < 0 or + //! Index < number of 3d Points. + Standard_EXPORT const gp_Pnt& Point(const Standard_Integer Index) const; + + //! The 2d Point of range Index is set to . + //! An exception is raised if Index > 3d Points or + //! Index > total number of Points. + Standard_EXPORT void SetPoint2d(const Standard_Integer Index, const gp_Pnt2d& Point); + + //! returns the 2d Point of range Index. + //! An exception is raised if index <= number of + //! 3d Points or Index > total number of Points. + Standard_EXPORT const gp_Pnt2d& Point2d(const Standard_Integer Index) const; + + //! returns the dimension of the point of range Index. + //! An exception is raised if Index <0 or Index > NbCurves. + Standard_Integer Dimension(const Standard_Integer Index) const; + + //! returns the number of points of dimension 3D. + Standard_Integer NbPoints() const; + + //! returns the number of points of dimension 2D. + Standard_Integer NbPoints2d() const; + + //! Applies a transformation to the curve of range + //! . + //! newx = x + dx*oldx + //! newy = y + dy*oldy for all points of the curve. + //! newz = z + dz*oldz + Standard_EXPORT void Transform(const Standard_Integer CuIndex, + const Standard_Real x, + const Standard_Real dx, + const Standard_Real y, + const Standard_Real dy, + const Standard_Real z, + const Standard_Real dz); + + //! Applies a transformation to the Curve of range + //! . + //! newx = x + dx*oldx + //! newy = y + dy*oldy for all points of the curve. + Standard_EXPORT void Transform2d(const Standard_Integer CuIndex, + const Standard_Real x, + const Standard_Real dx, + const Standard_Real y, + const Standard_Real dy); + + //! Prints on the stream o information on the current + //! state of the object. + //! Is used to redefine the operator <<. + Standard_EXPORT virtual void Dump(Standard_OStream& o) const; + +protected: + Handle(Standard_Transient) ttabPoint; + Handle(Standard_Transient) ttabPoint2d; + Standard_Integer nbP; + Standard_Integer nbP2d; + +private: +}; + +#include "AppParCurves_MultiPoint.lxx" + +#endif // _AppParCurves_MultiPoint_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_MultiPoint.lxx b/entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_MultiPoint.lxx new file mode 100644 index 00000000..48e7b30a --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/AppParCurves_MultiPoint.lxx @@ -0,0 +1,49 @@ +// Copyright (c) 1995-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#include "Standard_OutOfRange.hxx" +#include "gp_Pnt.hxx" +#include "gp_Pnt2d.hxx" + +inline Standard_OStream& operator<<(Standard_OStream& o, const AppParCurves_MultiPoint& M) +{ + M.Dump(o); + return o; +} + +inline Standard_Integer AppParCurves_MultiPoint::NbPoints() const +{ + return nbP; +} + +inline Standard_Integer AppParCurves_MultiPoint::NbPoints2d() const +{ + return nbP2d; +} + +inline Standard_Integer AppParCurves_MultiPoint::Dimension(const Standard_Integer Index) const +{ + if (Index < 0 || Index > (nbP + nbP2d)) + { + throw Standard_OutOfRange(); + } + if (Index <= nbP) + { + return 3; + } + else + { + return 2; + } +} diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/ApproxInt_MultiLineTool.lxx b/entry/src/main/cpp/3rdparty/opencascade/include/ApproxInt_MultiLineTool.lxx new file mode 100644 index 00000000..6b3b40b9 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/ApproxInt_MultiLineTool.lxx @@ -0,0 +1,185 @@ +// Created on: 1993-03-30 +// Created by: Laurent BUCHARD +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#include TheMultiLine_hxx + +#include "TColgp_Array1OfPnt.hxx" +#include "TColgp_Array1OfPnt2d.hxx" +#include "TColgp_Array1OfVec.hxx" +#include "TColgp_Array1OfVec2d.hxx" + +#include "Approx_Status.hxx" + +//================================================================================================= + +inline Standard_Integer ApproxInt_MultiLineTool::NbP2d(const TheMultiLine& ML) +{ + return (ML.NbP2d()); +} + +//================================================================================================= + +inline Standard_Integer ApproxInt_MultiLineTool::NbP3d(const TheMultiLine& ML) +{ + return (ML.NbP3d()); +} + +//================================================================================================= + +inline Standard_Integer ApproxInt_MultiLineTool::FirstPoint(const TheMultiLine& ML) +{ + return (ML.FirstPoint()); +} + +//================================================================================================= + +inline Standard_Integer ApproxInt_MultiLineTool::LastPoint(const TheMultiLine& ML) +{ + return (ML.LastPoint()); +} + +//================================================================================================= + +inline void ApproxInt_MultiLineTool::Value(const TheMultiLine& ML, + const Standard_Integer Index, + TColgp_Array1OfPnt& TabPnt) +{ + ML.Value(Index, TabPnt); +} + +//================================================================================================= + +inline void ApproxInt_MultiLineTool::Value(const TheMultiLine& ML, + const Standard_Integer Index, + TColgp_Array1OfPnt2d& TabPnt2d) +{ + ML.Value(Index, TabPnt2d); +} + +//================================================================================================= + +inline void ApproxInt_MultiLineTool::Value(const TheMultiLine& ML, + const Standard_Integer Index, + TColgp_Array1OfPnt& TabPnt, + TColgp_Array1OfPnt2d& TabPnt2d) +{ + ML.Value(Index, TabPnt, TabPnt2d); +} + +//================================================================================================= + +inline Standard_Boolean ApproxInt_MultiLineTool::Tangency(const TheMultiLine& ML, + const Standard_Integer Index, + TColgp_Array1OfVec& TabVec) +{ + return (ML.Tangency(Index, TabVec)); +} + +//================================================================================================= + +inline Standard_Boolean ApproxInt_MultiLineTool::Tangency(const TheMultiLine& ML, + const Standard_Integer Index, + TColgp_Array1OfVec2d& TabVec2d) +{ + return (ML.Tangency(Index, TabVec2d)); +} + +//================================================================================================= + +inline Standard_Boolean ApproxInt_MultiLineTool::Tangency(const TheMultiLine& ML, + const Standard_Integer Index, + TColgp_Array1OfVec& TabVec, + TColgp_Array1OfVec2d& TabVec2d) +{ + return (ML.Tangency(Index, TabVec, TabVec2d)); +} + +//================================================================================================= + +inline Standard_Boolean ApproxInt_MultiLineTool::Curvature(const TheMultiLine& // ML + , + const Standard_Integer // Index + , + TColgp_Array1OfVec&) +{ // TabVec + return Standard_False; +} + +//================================================================================================= + +inline Standard_Boolean ApproxInt_MultiLineTool::Curvature(const TheMultiLine& // ML + , + const Standard_Integer // Index + , + TColgp_Array1OfVec2d&) +{ // TabVec2d + return Standard_False; +} + +//================================================================================================= + +inline Standard_Boolean ApproxInt_MultiLineTool::Curvature(const TheMultiLine& // ML + , + const Standard_Integer // Index + , + TColgp_Array1OfVec& // TabVec + , + TColgp_Array1OfVec2d&) +{ // TabVec2d + return Standard_False; +} + +//================================================================================================= + +inline Approx_Status ApproxInt_MultiLineTool::WhatStatus(const TheMultiLine& ML, + const Standard_Integer, + const Standard_Integer) +{ + //-- PointsAdded, + //-- NoPointsAdded, + //-- NoApproximation + //-- Approx_PointsAdded + return (ML.WhatStatus()); +} + +//================================================================================================= + +inline TheMultiLine ApproxInt_MultiLineTool::MakeMLBetween(const TheMultiLine& ML, + const Standard_Integer I1, + const Standard_Integer I2, + const Standard_Integer NbPMin) +{ + + return (ML.MakeMLBetween(I1, I2, NbPMin)); +} + +//================================================================================================= + +inline Standard_Boolean ApproxInt_MultiLineTool::MakeMLOneMorePoint(const TheMultiLine& ML, + const Standard_Integer I1, + const Standard_Integer I2, + const Standard_Integer indbad, + TheMultiLine& OtherLine) +{ + return (ML.MakeMLOneMorePoint(I1, I2, indbad, OtherLine)); +} + +inline void ApproxInt_MultiLineTool::Dump(const TheMultiLine& ML) +{ + ML.Dump(); +} + +//================================================================================================= diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Approx_Array1OfAdHSurface.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Approx_Array1OfAdHSurface.hxx new file mode 100644 index 00000000..34c170d0 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Approx_Array1OfAdHSurface.hxx @@ -0,0 +1,25 @@ +// Created on: 1993-01-26 +// Created by: Laurent PAINNOT +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef Approx_Array1OfAdHSurface_HeaderFile +#define Approx_Array1OfAdHSurface_HeaderFile + +#include "Adaptor3d_Surface.hxx" +#include "NCollection_Array1.hxx" + +typedef NCollection_Array1 Approx_Array1OfAdHSurface; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Approx_Array1OfGTrsf2d.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Approx_Array1OfGTrsf2d.hxx new file mode 100644 index 00000000..21f07a32 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Approx_Array1OfGTrsf2d.hxx @@ -0,0 +1,25 @@ +// Created on: 1993-01-26 +// Created by: Laurent PAINNOT +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef Approx_Array1OfGTrsf2d_HeaderFile +#define Approx_Array1OfGTrsf2d_HeaderFile + +#include "NCollection_Array1.hxx" +#include "gp_GTrsf2d.hxx" + +typedef NCollection_Array1 Approx_Array1OfGTrsf2d; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Approx_HArray1OfGTrsf2d.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Approx_HArray1OfGTrsf2d.hxx new file mode 100644 index 00000000..ae9c263c --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Approx_HArray1OfGTrsf2d.hxx @@ -0,0 +1,25 @@ +// Created on: 1993-01-26 +// Created by: Laurent PAINNOT +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef Approx_HArray1OfGTrsf2d_HeaderFile +#define Approx_HArray1OfGTrsf2d_HeaderFile + +#include "Approx_Array1OfGTrsf2d.hxx" +#include "NCollection_DefineHArray1.hxx" + +DEFINE_HARRAY1(Approx_HArray1OfGTrsf2d, Approx_Array1OfGTrsf2d) + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Approx_MCurvesToBSpCurve.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Approx_MCurvesToBSpCurve.hxx new file mode 100644 index 00000000..35911c0a --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Approx_MCurvesToBSpCurve.hxx @@ -0,0 +1,55 @@ +// Created on: 1994-02-21 +// Created by: Laurent PAINNOT +// Copyright (c) 1994-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Approx_MCurvesToBSpCurve_HeaderFile +#define _Approx_MCurvesToBSpCurve_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" + +#include "AppParCurves_MultiBSpCurve.hxx" +#include "AppParCurves_SequenceOfMultiCurve.hxx" +class AppParCurves_MultiCurve; + +class Approx_MCurvesToBSpCurve +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT Approx_MCurvesToBSpCurve(); + + Standard_EXPORT void Reset(); + + Standard_EXPORT void Append(const AppParCurves_MultiCurve& MC); + + Standard_EXPORT void Perform(); + + Standard_EXPORT void Perform(const AppParCurves_SequenceOfMultiCurve& TheSeq); + + //! return the composite MultiCurves as a MultiBSpCurve. + Standard_EXPORT const AppParCurves_MultiBSpCurve& Value() const; + + //! return the composite MultiCurves as a MultiBSpCurve. + Standard_EXPORT const AppParCurves_MultiBSpCurve& ChangeValue(); + +protected: +private: + AppParCurves_MultiBSpCurve mySpline; + Standard_Boolean myDone; + AppParCurves_SequenceOfMultiCurve myCurves; +}; + +#endif // _Approx_MCurvesToBSpCurve_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Approx_SweepApproximation.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Approx_SweepApproximation.hxx new file mode 100644 index 00000000..caaca5f3 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Approx_SweepApproximation.hxx @@ -0,0 +1,240 @@ +// Created on: 1997-06-24 +// Created by: Philippe MANGIN +// Copyright (c) 1997-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Approx_SweepApproximation_HeaderFile +#define _Approx_SweepApproximation_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "AdvApprox_EvaluatorFunction.hxx" +#include "Approx_HArray1OfGTrsf2d.hxx" +#include "GeomAbs_Shape.hxx" +#include "Standard_Integer.hxx" +#include "Standard_OStream.hxx" +#include "TColStd_Array1OfInteger.hxx" +#include "TColStd_Array1OfReal.hxx" +#include "TColStd_Array2OfReal.hxx" +#include "TColStd_HArray1OfInteger.hxx" +#include "TColStd_HArray1OfReal.hxx" +#include "TColStd_HArray2OfReal.hxx" +#include "TColgp_Array1OfPnt2d.hxx" +#include "TColgp_Array2OfPnt.hxx" +#include "TColgp_HArray1OfPnt.hxx" +#include "TColgp_HArray1OfPnt2d.hxx" +#include "TColgp_HArray1OfVec.hxx" +#include "TColgp_HArray1OfVec2d.hxx" +#include "TColgp_HArray2OfPnt.hxx" +#include "TColgp_SequenceOfArray1OfPnt2d.hxx" +#include "gp_Vec.hxx" +class Approx_SweepFunction; +class AdvApprox_Cutting; + +//! Approximation of an Surface S(u,v) +//! (and eventually associate 2d Curves) defined +//! by section's law. +//! +//! This surface is defined by a function F(u, v) +//! where Ft(u) = F(u, t) is a bspline curve. +//! To use this algorithme, you have to implement Ft(u) +//! as a derivative class of Approx_SweepFunction. +//! This algorithm can be used by blending, sweeping... +class Approx_SweepApproximation +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT Approx_SweepApproximation(const Handle(Approx_SweepFunction)& Func); + + //! Perform the Approximation + //! [First, Last] : Approx_SweepApproximation.cdl + //! Tol3d : Tolerance to surface approximation + //! Tol2d : Tolerance used to perform curve approximation + //! Normally the 2d curve are approximated with a + //! tolerance given by the resolution on support surfaces, + //! but if this tolerance is too large Tol2d is used. + //! TolAngular : Tolerance (in radian) to control the angle + //! between tangents on the section law and + //! tangent of iso-v on approximated surface + //! Continuity : The continuity in v waiting on the surface + //! Degmax : The maximum degree in v required on the surface + //! Segmax : The maximum number of span in v required on + //! the surface + //! Warning : The continuity ci can be obtained only if Ft is Ci + Standard_EXPORT void Perform(const Standard_Real First, + const Standard_Real Last, + const Standard_Real Tol3d, + const Standard_Real BoundTol, + const Standard_Real Tol2d, + const Standard_Real TolAngular, + const GeomAbs_Shape Continuity = GeomAbs_C0, + const Standard_Integer Degmax = 11, + const Standard_Integer Segmax = 50); + + //! The EvaluatorFunction from AdvApprox; + Standard_EXPORT Standard_Integer Eval(const Standard_Real Parameter, + const Standard_Integer DerivativeRequest, + const Standard_Real First, + const Standard_Real Last, + Standard_Real& Result); + + //! returns if we have an result + Standard_Boolean IsDone() const; + + Standard_EXPORT void SurfShape(Standard_Integer& UDegree, + Standard_Integer& VDegree, + Standard_Integer& NbUPoles, + Standard_Integer& NbVPoles, + Standard_Integer& NbUKnots, + Standard_Integer& NbVKnots) const; + + Standard_EXPORT void Surface(TColgp_Array2OfPnt& TPoles, + TColStd_Array2OfReal& TWeights, + TColStd_Array1OfReal& TUKnots, + TColStd_Array1OfReal& TVKnots, + TColStd_Array1OfInteger& TUMults, + TColStd_Array1OfInteger& TVMults) const; + + Standard_Integer UDegree() const; + + Standard_Integer VDegree() const; + + const TColgp_Array2OfPnt& SurfPoles() const; + + const TColStd_Array2OfReal& SurfWeights() const; + + const TColStd_Array1OfReal& SurfUKnots() const; + + const TColStd_Array1OfReal& SurfVKnots() const; + + const TColStd_Array1OfInteger& SurfUMults() const; + + const TColStd_Array1OfInteger& SurfVMults() const; + + //! returns the maximum error in the surface approximation. + Standard_EXPORT Standard_Real MaxErrorOnSurf() const; + + //! returns the average error in the surface approximation. + Standard_EXPORT Standard_Real AverageErrorOnSurf() const; + + Standard_Integer NbCurves2d() const; + + Standard_EXPORT void Curves2dShape(Standard_Integer& Degree, + Standard_Integer& NbPoles, + Standard_Integer& NbKnots) const; + + Standard_EXPORT void Curve2d(const Standard_Integer Index, + TColgp_Array1OfPnt2d& TPoles, + TColStd_Array1OfReal& TKnots, + TColStd_Array1OfInteger& TMults) const; + + Standard_Integer Curves2dDegree() const; + + const TColgp_Array1OfPnt2d& Curve2dPoles(const Standard_Integer Index) const; + + const TColStd_Array1OfReal& Curves2dKnots() const; + + const TColStd_Array1OfInteger& Curves2dMults() const; + + //! returns the maximum error of the + //! 2d curve approximation. + Standard_EXPORT Standard_Real Max2dError(const Standard_Integer Index) const; + + //! returns the average error of the + //! 2d curve approximation. + Standard_EXPORT Standard_Real Average2dError(const Standard_Integer Index) const; + + //! returns the maximum 3d error of the + //! 2d curve approximation on the Surface. + Standard_EXPORT Standard_Real TolCurveOnSurf(const Standard_Integer Index) const; + + //! display information on approximation. + Standard_EXPORT void Dump(Standard_OStream& o) const; + +protected: +private: + Standard_EXPORT void Approximation(const Handle(TColStd_HArray1OfReal)& OneDTol, + const Handle(TColStd_HArray1OfReal)& TwoDTol, + const Handle(TColStd_HArray1OfReal)& ThreeDTol, + const Standard_Real BounTol, + const Standard_Real First, + const Standard_Real Last, + const GeomAbs_Shape Continuity, + const Standard_Integer Degmax, + const Standard_Integer Segmax, + const AdvApprox_EvaluatorFunction& TheApproxFunction, + const AdvApprox_Cutting& TheCuttingTool); + + Standard_EXPORT Standard_Boolean D0(const Standard_Real Param, + const Standard_Real First, + const Standard_Real Last, + Standard_Real& Result); + + Standard_EXPORT Standard_Boolean D1(const Standard_Real Param, + const Standard_Real First, + const Standard_Real Last, + Standard_Real& Result); + + Standard_EXPORT Standard_Boolean D2(const Standard_Real Param, + const Standard_Real First, + const Standard_Real Last, + Standard_Real& Result); + + Handle(Approx_SweepFunction) myFunc; + Standard_Boolean done; + Standard_Integer Num1DSS; + Standard_Integer Num2DSS; + Standard_Integer Num3DSS; + Standard_Integer udeg; + Standard_Integer vdeg; + Standard_Integer deg2d; + Handle(TColgp_HArray2OfPnt) tabPoles; + Handle(TColStd_HArray2OfReal) tabWeights; + Handle(TColStd_HArray1OfReal) tabUKnots; + Handle(TColStd_HArray1OfReal) tabVKnots; + Handle(TColStd_HArray1OfReal) tab2dKnots; + Handle(TColStd_HArray1OfInteger) tabUMults; + Handle(TColStd_HArray1OfInteger) tabVMults; + Handle(TColStd_HArray1OfInteger) tab2dMults; + TColgp_SequenceOfArray1OfPnt2d seqPoles2d; + Handle(TColStd_HArray1OfReal) MError1d; + Handle(TColStd_HArray1OfReal) tab2dError; + Handle(TColStd_HArray1OfReal) MError3d; + Handle(TColStd_HArray1OfReal) AError1d; + Handle(TColStd_HArray1OfReal) Ave2dError; + Handle(TColStd_HArray1OfReal) AError3d; + Handle(Approx_HArray1OfGTrsf2d) AAffin; + Handle(TColStd_HArray1OfReal) COnSurfErr; + gp_Vec Translation; + Handle(TColgp_HArray1OfPnt) myPoles; + Handle(TColgp_HArray1OfPnt2d) myPoles2d; + Handle(TColStd_HArray1OfReal) myWeigths; + Handle(TColgp_HArray1OfVec) myDPoles; + Handle(TColgp_HArray1OfVec) myD2Poles; + Handle(TColgp_HArray1OfVec2d) myDPoles2d; + Handle(TColgp_HArray1OfVec2d) myD2Poles2d; + Handle(TColStd_HArray1OfReal) myDWeigths; + Handle(TColStd_HArray1OfReal) myD2Weigths; + Standard_Integer myOrder; + Standard_Real myParam; + Standard_Real first; + Standard_Real last; +}; + +#include "Approx_SweepApproximation.lxx" + +#endif // _Approx_SweepApproximation_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Approx_SweepApproximation.lxx b/entry/src/main/cpp/3rdparty/opencascade/include/Approx_SweepApproximation.lxx new file mode 100644 index 00000000..a9beccfd --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Approx_SweepApproximation.lxx @@ -0,0 +1,167 @@ +// Created on: 1997-06-26 +// Created by: Philippe MANGIN +// Copyright (c) 1997-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#include "StdFail_NotDone.hxx" +#include "TColStd_HArray1OfInteger.hxx" +#include "TColStd_HArray1OfReal.hxx" +#include "TColStd_HArray2OfReal.hxx" +#include "TColgp_HArray1OfPnt2d.hxx" +#include "TColgp_HArray2OfPnt.hxx" + +inline Standard_Boolean Approx_SweepApproximation::IsDone() const +{ + return done; +} + +inline Standard_Integer Approx_SweepApproximation::UDegree() const +{ + if (!done) + { + throw StdFail_NotDone(" Approx_SweepApproximation"); + } + return udeg; +} + +inline Standard_Integer Approx_SweepApproximation::VDegree() const +{ + if (!done) + { + throw StdFail_NotDone(" Approx_SweepApproximation"); + } + return vdeg; +} + +inline const TColgp_Array2OfPnt& Approx_SweepApproximation::SurfPoles() const +{ + if (!done) + { + throw StdFail_NotDone(" Approx_SweepApproximation"); + } + return tabPoles->Array2(); +} + +inline const TColStd_Array2OfReal& Approx_SweepApproximation::SurfWeights() const +{ + if (!done) + { + throw StdFail_NotDone(" Approx_SweepApproximation"); + } + return tabWeights->Array2(); +} + +inline const TColStd_Array1OfReal& Approx_SweepApproximation::SurfUKnots() const +{ + if (!done) + { + throw StdFail_NotDone(" Approx_SweepApproximation"); + } + return tabUKnots->Array1(); +} + +inline const TColStd_Array1OfReal& Approx_SweepApproximation::SurfVKnots() const +{ + if (!done) + { + throw StdFail_NotDone(" Approx_SweepApproximation"); + } + return tabVKnots->Array1(); +} + +inline const TColStd_Array1OfInteger& Approx_SweepApproximation::SurfUMults() const +{ + if (!done) + { + throw StdFail_NotDone(" Approx_SweepApproximation"); + } + return tabUMults->Array1(); +} + +inline const TColStd_Array1OfInteger& Approx_SweepApproximation::SurfVMults() const +{ + if (!done) + { + throw StdFail_NotDone(" Approx_SweepApproximation"); + } + return tabVMults->Array1(); +} + +inline Standard_Integer Approx_SweepApproximation::NbCurves2d() const +{ + if (!done) + { + throw StdFail_NotDone(" Approx_SweepApproximation"); + } + return Num2DSS; +} + +inline Standard_Integer Approx_SweepApproximation::Curves2dDegree() const +{ + if (!done) + { + throw StdFail_NotDone(" Approx_SweepApproximation"); + } + if (seqPoles2d.Length() == 0) + { + throw Standard_DomainError(); + } + return deg2d; +} + +inline const TColgp_Array1OfPnt2d& Approx_SweepApproximation::Curve2dPoles( + const Standard_Integer Index) const +{ + if (!done) + { + throw StdFail_NotDone(" Approx_SweepApproximation"); + } + if (seqPoles2d.Length() == 0) + { + throw Standard_DomainError(); + } + return seqPoles2d(Index)->Array1(); +} + +inline const TColStd_Array1OfReal& Approx_SweepApproximation::Curves2dKnots() const +{ + if (!done) + { + throw StdFail_NotDone(" Approx_SweepApproximation"); + } + if (seqPoles2d.Length() == 0) + { + throw Standard_DomainError(); + } + return tab2dKnots->Array1(); +} + +inline const TColStd_Array1OfInteger& Approx_SweepApproximation::Curves2dMults() const +{ + if (!done) + { + throw StdFail_NotDone(" Approx_SweepApproximation"); + } + if (seqPoles2d.Length() == 0) + { + throw Standard_DomainError(); + } + return tab2dMults->Array1(); +} + +/* +inline void Approx_SweepApproximation::TolReached(Standard_Real& Tol3d,Standard_Real& Tol2d) const +{ + +}*/ diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_DisplayConnection.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_DisplayConnection.hxx new file mode 100644 index 00000000..f6205b1b --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_DisplayConnection.hxx @@ -0,0 +1,132 @@ +// Copyright (c) 2013-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef Aspect_DisplayConnection_HeaderFile +#define Aspect_DisplayConnection_HeaderFile + +#include "Standard_Transient.hxx" +#include "Aspect_XAtom.hxx" +#include "Aspect_FBConfig.hxx" + +#include "TCollection_AsciiString.hxx" +#include "NCollection_DataMap.hxx" + +struct Aspect_XDisplay; +struct Aspect_XVisualInfo; + +//! This class creates and provides connection with X server. +//! Raises exception if can not connect to X server. +//! On Windows and Mac OS X (in case when Cocoa used) platforms this class does nothing. +//! WARNING: Do not close display connection manually! +class Aspect_DisplayConnection : public Standard_Transient +{ + DEFINE_STANDARD_RTTIEXT(Aspect_DisplayConnection, Standard_Transient) +public: + //! Default constructor. Creates connection with display name taken from "DISPLAY" environment + //! variable + Standard_EXPORT Aspect_DisplayConnection(); + + //! Destructor. Close opened connection. + Standard_EXPORT virtual ~Aspect_DisplayConnection(); + + //! Constructor. Creates connection with display specified in theDisplayName. + //! Display name should be in format "hostname:number" or "hostname:number.screen_number", where: + //! hostname - Specifies the name of the host machine on which the display is physically + //! attached. number - Specifies the number of the display server on that host machine. + //! screen_number - Specifies the screen to be used on that server. Optional variable. + Standard_EXPORT Aspect_DisplayConnection(const TCollection_AsciiString& theDisplayName); + + //! Constructor wrapping existing Display instance. + //! WARNING! it is a responsibility of application to keep this pointer + //! valid while Aspect_DisplayConnection is alive and to close Display when it is no more needed. + Standard_EXPORT Aspect_DisplayConnection(Aspect_XDisplay* theDisplay); + + //! @return pointer to Display structure that serves as the connection to the X server. + Aspect_XDisplay* GetDisplayAspect() { return myDisplay; } + + //! @return TRUE if X Display has been allocated by this class + Standard_Boolean IsOwnDisplay() const { return myIsOwnDisplay; } + + //! @return identifier(atom) for custom named property associated with windows that use current + //! connection to X server. + uint64_t GetAtom(const Aspect_XAtom theAtom) const { return myAtoms.Find(theAtom); } + + //! @return display name for this connection. + const TCollection_AsciiString& GetDisplayName() { return myDisplayName; } + + //! Open connection with display specified in myDisplayName class field + //! or takes theDisplay parameter when it is not NULL. + //! WARNING! When external Display is specified, it is a responsibility of application + //! to keep this pointer valid while Aspect_DisplayConnection is alive + //! and to close Display when it is no more needed. + //! @param theDisplay external pointer to allocated Display, or NULL if new connection should be + //! created + Standard_EXPORT void Init(Aspect_XDisplay* theDisplay); + + //! Return default window visual or NULL when undefined. + Aspect_XVisualInfo* GetDefaultVisualInfo() const { return myDefVisualInfo; } + + //! @return native Window FB config (GLXFBConfig on Xlib) + Aspect_FBConfig GetDefaultFBConfig() const { return myDefFBConfig; } + + //! Set default window visual; the visual will be deallocated using XFree(). + Standard_EXPORT void SetDefaultVisualInfo(Aspect_XVisualInfo* theVisual, + Aspect_FBConfig theFBConfig); + +#ifdef X_PROTOCOL + //! Constructor wrapping existing Display instance. + //! WARNING! it is a responsibility of application to keep this pointer + //! valid while Aspect_DisplayConnection is alive and to close Display when it is no more needed. + Aspect_DisplayConnection(Display* theDisplay) + : Aspect_DisplayConnection((Aspect_XDisplay*)theDisplay) + { + } + + //! @return pointer to Display structure that serves as the connection to the X server. + Display* GetDisplay() { return (Display*)myDisplay; } + + //! Return default window visual or NULL when undefined. + XVisualInfo* GetDefaultVisualInfoX() const { return (XVisualInfo*)myDefVisualInfo; } + + //! Set default window visual; the visual will be deallocated using XFree(). + void SetDefaultVisualInfo(XVisualInfo* theVisual, Aspect_FBConfig theFBConfig) + { + SetDefaultVisualInfo((Aspect_XVisualInfo*)theVisual, theFBConfig); + } + + //! @return identifier(atom) for custom named property associated with windows that use current + //! connection to X server. + Atom GetAtomX(const Aspect_XAtom theAtom) const { return (Atom)GetAtom(theAtom); } + + //! Open connection with display specified in myDisplayName class field + //! or takes theDisplay parameter when it is not NULL. + void Init(Display* theDisplay) { Init((Aspect_XDisplay*)theDisplay); } +#endif + +private: + Aspect_XDisplay* myDisplay; + Aspect_XVisualInfo* myDefVisualInfo; + Aspect_FBConfig myDefFBConfig; + NCollection_DataMap myAtoms; + TCollection_AsciiString myDisplayName; + Standard_Boolean myIsOwnDisplay; + +private: + //! To protect the connection from closing copying allowed only through the handles. + Aspect_DisplayConnection(const Aspect_DisplayConnection&); + Aspect_DisplayConnection& operator=(const Aspect_DisplayConnection&); +}; + +DEFINE_STANDARD_HANDLE(Aspect_DisplayConnection, Standard_Transient) + +#endif // _Aspect_DisplayConnection_H__ diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_GradientBackground.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_GradientBackground.hxx new file mode 100644 index 00000000..8e3cc006 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_GradientBackground.hxx @@ -0,0 +1,59 @@ +// Created on: 2010-05-21 +// Created by: PAUL SUPRYATKIN +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Aspect_GradientBackground_HeaderFile +#define _Aspect_GradientBackground_HeaderFile + +#include "Aspect_GradientFillMethod.hxx" +#include "Aspect_Background.hxx" + +//! This class allows the definition of a window gradient background. +class Aspect_GradientBackground : public Aspect_Background +{ +public: + DEFINE_STANDARD_ALLOC + + //! Creates a window gradient background. + //! Default color is Quantity_NOC_BLACK. + //! Default fill method is Aspect_GradientFillMethod_None. + Standard_EXPORT Aspect_GradientBackground(); + + //! Creates a window gradient background with two colours. + Standard_EXPORT Aspect_GradientBackground( + const Quantity_Color& theColor1, + const Quantity_Color& theColor2, + const Aspect_GradientFillMethod theMethod = Aspect_GradientFillMethod_Horizontal); + + //! Modifies the colours of the window gradient background. + Standard_EXPORT void SetColors( + const Quantity_Color& theColor1, + const Quantity_Color& theColor2, + const Aspect_GradientFillMethod theMethod = Aspect_GradientFillMethod_Horizontal); + + //! Returns colours of the window gradient background. + Standard_EXPORT void Colors(Quantity_Color& theColor1, Quantity_Color& theColor2) const; + + //! Returns the current gradient background fill mode. + Standard_EXPORT Aspect_GradientFillMethod BgGradientFillMethod() const; + + //! Dumps the content of me into the stream + Standard_EXPORT void DumpJson(Standard_OStream& theOStream, Standard_Integer theDepth = -1) const; + +private: + Quantity_Color MyColor2; + Aspect_GradientFillMethod MyGradientMethod; +}; + +#endif // _Aspect_GradientBackground_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_GradientFillMethod.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_GradientFillMethod.hxx new file mode 100644 index 00000000..1cbc6f10 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_GradientFillMethod.hxx @@ -0,0 +1,48 @@ +// Created by: NW,JPB,CAL +// Copyright (c) 1991-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Aspect_GradientFillMethod_HeaderFile +#define _Aspect_GradientFillMethod_HeaderFile + +//! Defines the fill methods to write gradient background in a window. +enum Aspect_GradientFillMethod +{ + Aspect_GradientFillMethod_None, //!< fill method not specified + Aspect_GradientFillMethod_Horizontal, //!< gradient directed from left (Color1) to right (Color2) + Aspect_GradientFillMethod_Vertical, //!< gradient directed from top (Color1) to bottom (Color2) + Aspect_GradientFillMethod_Diagonal1, //!< gradient directed from upper left corner (Color1) to + //!< lower right (Color2) + Aspect_GradientFillMethod_Diagonal2, //!< gradient directed from upper right corner (Color1) to + //!< lower left (Color2) + Aspect_GradientFillMethod_Corner1, //!< highlights upper left corner with Color1 + Aspect_GradientFillMethod_Corner2, //!< highlights upper right corner with Color1 + Aspect_GradientFillMethod_Corner3, //!< highlights lower right corner with Color1 + Aspect_GradientFillMethod_Corner4, //!< highlights lower left corner with Color1 + Aspect_GradientFillMethod_Elliptical, //!< gradient directed from center (Color1) in all + //!< directions forming an elliptic shape (Color2) + + // obsolete aliases + Aspect_GFM_NONE = Aspect_GradientFillMethod_None, + Aspect_GFM_HOR = Aspect_GradientFillMethod_Horizontal, + Aspect_GFM_VER = Aspect_GradientFillMethod_Vertical, + Aspect_GFM_DIAG1 = Aspect_GradientFillMethod_Diagonal1, + Aspect_GFM_DIAG2 = Aspect_GradientFillMethod_Diagonal2, + Aspect_GFM_CORNER1 = Aspect_GradientFillMethod_Corner1, + Aspect_GFM_CORNER2 = Aspect_GradientFillMethod_Corner2, + Aspect_GFM_CORNER3 = Aspect_GradientFillMethod_Corner3, + Aspect_GFM_CORNER4 = Aspect_GradientFillMethod_Corner4 +}; + +#endif // _Aspect_GradientFillMethod_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_GraphicsLibrary.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_GraphicsLibrary.hxx new file mode 100644 index 00000000..45c59e8f --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_GraphicsLibrary.hxx @@ -0,0 +1,24 @@ +// Copyright (c) 2020 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Aspect_GraphicsLibrary_HeaderFile +#define _Aspect_GraphicsLibrary_HeaderFile + +//! Graphics API enumeration. +enum Aspect_GraphicsLibrary +{ + Aspect_GraphicsLibrary_OpenGL, + Aspect_GraphicsLibrary_OpenGLES, +}; + +#endif // _Aspect_GraphicsLibrary_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_PolygonOffsetMode.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_PolygonOffsetMode.hxx new file mode 100644 index 00000000..526654d1 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_PolygonOffsetMode.hxx @@ -0,0 +1,32 @@ +// Created on: 2004-03-22 +// Created by: Sergey ANIKIN +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef Aspect_PolygonOffsetMode_HeaderFile +#define Aspect_PolygonOffsetMode_HeaderFile + +// Enumeration for polygon offset modes + +typedef enum +{ + Aspect_POM_Off = 0x00, /* all polygon offset modes disabled */ + Aspect_POM_Fill = 0x01, /* GL_POLYGON_OFFSET_FILL enabled (shaded polygons) */ + Aspect_POM_Line = 0x02, /* GL_POLYGON_OFFSET_LINE enabled (polygons as outlines) */ + Aspect_POM_Point = 0x04, /* GL_POLYGON_OFFSET_POINT enabled (polygons as vertices)*/ + Aspect_POM_All = Aspect_POM_Fill | Aspect_POM_Line | Aspect_POM_Point, + Aspect_POM_None = 0x08, /* do not change current polygon offset mode */ + Aspect_POM_Mask = Aspect_POM_All | Aspect_POM_None +} Aspect_PolygonOffsetMode; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_RectangularGrid.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_RectangularGrid.hxx new file mode 100644 index 00000000..abda4158 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_RectangularGrid.hxx @@ -0,0 +1,100 @@ +// Created on: 1995-03-02 +// Created by: Jean-Louis Frenkel +// Copyright (c) 1995-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Aspect_RectangularGrid_HeaderFile +#define _Aspect_RectangularGrid_HeaderFile + +#include "Standard.hxx" + +#include "Aspect_Grid.hxx" + +class Aspect_RectangularGrid : public Aspect_Grid +{ + DEFINE_STANDARD_RTTIEXT(Aspect_RectangularGrid, Aspect_Grid) +public: + //! creates a new grid. By default this grid is not + //! active. + //! The first angle is given relatively to the horizontal. + //! The second angle is given relatively to the vertical. + Standard_EXPORT Aspect_RectangularGrid(const Standard_Real aXStep, + const Standard_Real aYStep, + const Standard_Real anXOrigin = 0, + const Standard_Real anYOrigin = 0, + const Standard_Real aFirstAngle = 0, + const Standard_Real aSecondAngle = 0, + const Standard_Real aRotationAngle = 0); + + //! defines the x step of the grid. + Standard_EXPORT void SetXStep(const Standard_Real aStep); + + //! defines the y step of the grid. + Standard_EXPORT void SetYStep(const Standard_Real aStep); + + //! defines the angle of the second network + //! the fist angle is given relatively to the horizontal. + //! the second angle is given relatively to the vertical. + Standard_EXPORT void SetAngle(const Standard_Real anAngle1, const Standard_Real anAngle2); + + Standard_EXPORT void SetGridValues(const Standard_Real XOrigin, + const Standard_Real YOrigin, + const Standard_Real XStep, + const Standard_Real YStep, + const Standard_Real RotationAngle); + + //! returns the point of the grid the closest to the point X,Y + Standard_EXPORT virtual void Compute(const Standard_Real X, + const Standard_Real Y, + Standard_Real& gridX, + Standard_Real& gridY) const Standard_OVERRIDE; + + //! returns the x step of the grid. + Standard_EXPORT Standard_Real XStep() const; + + //! returns the x step of the grid. + Standard_EXPORT Standard_Real YStep() const; + + //! returns the x Angle of the grid, relatively to the horizontal. + Standard_EXPORT Standard_Real FirstAngle() const; + + //! returns the y Angle of the grid, relatively to the vertical. + Standard_EXPORT Standard_Real SecondAngle() const; + + Standard_EXPORT virtual void Init() Standard_OVERRIDE; + + //! Dumps the content of me into the stream + Standard_EXPORT virtual void DumpJson(Standard_OStream& theOStream, + Standard_Integer theDepth = -1) const Standard_OVERRIDE; + +private: + Standard_EXPORT Standard_Boolean CheckAngle(const Standard_Real alpha, + const Standard_Real beta) const; + +private: + Standard_Real myXStep; + Standard_Real myYStep; + Standard_Real myFirstAngle; + Standard_Real mySecondAngle; + Standard_Real a1; + Standard_Real b1; + Standard_Real c1; + Standard_Real a2; + Standard_Real b2; + Standard_Real c2; +}; + +DEFINE_STANDARD_HANDLE(Aspect_RectangularGrid, Aspect_Grid) + +#endif // _Aspect_RectangularGrid_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_RenderingContext.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_RenderingContext.hxx new file mode 100644 index 00000000..b111f174 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_RenderingContext.hxx @@ -0,0 +1,49 @@ +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +/*============================================================================*/ +/*==== Title: Aspect_RenderingContext.hxx */ +/*==== Role: The header file of primitive type "RenderingContext" from package*/ +/*==== "V3d" */ +/*==== Implementation: This is a primitive type implemented with typedef */ +/*============================================================================*/ +// To manage 2D or 3D graphic context + +#ifndef _Aspect_RenderingContext_HeaderFile +#define _Aspect_RenderingContext_HeaderFile + +#include "Standard_Macro.hxx" + +#if defined(__APPLE__) && !defined(HAVE_XLIB) + #import + #if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE + #ifdef __OBJC__ +@class EAGLContext; + #else +struct EAGLContext; + #endif +typedef EAGLContext* Aspect_RenderingContext; + #else + #ifdef __OBJC__ +@class NSOpenGLContext; + #else +struct NSOpenGLContext; + #endif +Standard_DISABLE_DEPRECATION_WARNINGS typedef NSOpenGLContext* Aspect_RenderingContext; +Standard_ENABLE_DEPRECATION_WARNINGS + #endif +#else +typedef void* Aspect_RenderingContext; // GLXContext under UNIX +#endif + +#endif /* _Aspect_RenderingContext_HeaderFile */ diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_SequenceOfColor.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_SequenceOfColor.hxx new file mode 100644 index 00000000..a4800452 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_SequenceOfColor.hxx @@ -0,0 +1,24 @@ +// Created by: NW,JPB,CAL +// Copyright (c) 1991-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef Aspect_SequenceOfColor_HeaderFile +#define Aspect_SequenceOfColor_HeaderFile + +#include "Quantity_Color.hxx" +#include "NCollection_Sequence.hxx" + +typedef NCollection_Sequence Aspect_SequenceOfColor; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_SkydomeBackground.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_SkydomeBackground.hxx new file mode 100644 index 00000000..878e90eb --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_SkydomeBackground.hxx @@ -0,0 +1,103 @@ +// Created on: 2021-10-14 +// Created by: Artem CHESNOKOV +// Copyright (c) 2021 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Aspect_SkydomeBackground_Header +#define _Aspect_SkydomeBackground_Header + +#include "gp_Dir.hxx" +#include "Graphic3d_Vec3.hxx" +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +//! This class allows the definition of a window skydome background. +class Aspect_SkydomeBackground +{ +public: + DEFINE_STANDARD_ALLOC + + //! Creates a window skydome background. + //! By default skydome is initialized with sun at its zenith (0.0, 1.0, 0.0), + //! average clody (0.2), zero time parameter, zero fogginess, 512x512 texture size. + Standard_EXPORT Aspect_SkydomeBackground(); + + //! Creates a window skydome background with given parameters. + //! @param[in] theSunDirection direction to the sun (moon). Sun direction with negative Y + //! component + //! represents moon with (-X, -Y, -Z) direction. + //! @param[in] theCloudiness cloud intensity, 0.0 means no clouds at all and 1.0 - high clody. + //! @param[in] theTime time parameter of simulation. Might be tweaked to slightly change + //! appearance. + //! @param[in] theFogginess fog intensity, 0.0 means no fog and 1.0 - high fogginess + //! @param[in] theSize size of cubemap side in pixels. + Standard_EXPORT Aspect_SkydomeBackground(const gp_Dir& theSunDirection, + Standard_ShortReal theCloudiness, + Standard_ShortReal theTime, + Standard_ShortReal theFogginess, + Standard_Integer theSize); + + //! Destructor. + Standard_EXPORT ~Aspect_SkydomeBackground(); + + //! Get sun direction. By default this value is (0, 1, 0) + //! Sun direction with negative Y component represents moon with (-X, -Y, -Z) direction. + const gp_Dir& SunDirection() const { return mySunDirection; } + + //! Get cloud intensity. By default this value is 0.2 + //! 0.0 means no clouds at all and 1.0 - high clody. + Standard_ShortReal Cloudiness() const { return myCloudiness; } + + //! Get time of cloud simulation. By default this value is 0.0 + //! This value might be tweaked to slightly change appearance of clouds. + Standard_ShortReal TimeParameter() const { return myTime; } + + //! Get fog intensity. By default this value is 0.0 + //! 0.0 means no fog and 1.0 - high fogginess + Standard_ShortReal Fogginess() const { return myFogginess; } + + //! Get size of cubemap. By default this value is 512 + Standard_Integer Size() const { return mySize; } + + //! Set sun direction. By default this value is (0, 1, 0) + //! Sun direction with negative Y component represents moon with (-X, -Y, -Z) direction. + void SetSunDirection(const gp_Dir& theSunDirection) { mySunDirection = theSunDirection; } + + //! Set cloud intensity. By default this value is 0.2 + //! 0.0 means no clouds at all and 1.0 - high clody. + Standard_EXPORT void SetCloudiness(Standard_ShortReal theCloudiness); + + //! Set time of cloud simulation. By default this value is 0.0 + //! This value might be tweaked to slightly change appearance of clouds. + void SetTimeParameter(Standard_ShortReal theTime) { myTime = theTime; } + + //! Set fog intensity. By default this value is 0.0 + //! 0.0 means no fog and 1.0 - high fogginess + Standard_EXPORT void SetFogginess(Standard_ShortReal theFogginess); + + //! Set size of cubemap. By default this value is 512 + Standard_EXPORT void SetSize(Standard_Integer theSize); + + //! Dumps the content of me into the stream + Standard_EXPORT void DumpJson(Standard_OStream& theOStream, Standard_Integer theDepth = -1) const; + +private: + gp_Dir mySunDirection; //!< Sun (moon) light direction. + Standard_ShortReal myCloudiness; //!< Cloud intensity. + Standard_ShortReal myTime; //!< Simulation time parameter. + Standard_ShortReal myFogginess; //!< Fog intensity + Standard_Integer mySize; //!< Size of cubemap in pixels +}; + +#endif // _Aspect_SkydomeBackground_Header diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TrackedDevicePose.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TrackedDevicePose.hxx new file mode 100644 index 00000000..c7334364 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TrackedDevicePose.hxx @@ -0,0 +1,40 @@ +// Copyright (c) 2020 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Aspect_TrackedDevicePose_HeaderFile +#define _Aspect_TrackedDevicePose_HeaderFile + +#include "gp_Trsf.hxx" +#include "NCollection_Array1.hxx" + +//! Describes a single pose for a tracked object (for XR). +struct Aspect_TrackedDevicePose +{ + gp_Trsf Orientation; //!< device to absolute transformation + gp_Vec Velocity; //!< velocity in tracker space in m/s + gp_Vec AngularVelocity; //!< angular velocity in radians/s + bool IsValidPose; //!< indicates valid pose + bool IsConnectedDevice; //!< indicates connected state + + //! Empty constructor. + Aspect_TrackedDevicePose() + : IsValidPose(false), + IsConnectedDevice(false) + { + } +}; + +//! Array of tracked poses. +typedef NCollection_Array1 Aspect_TrackedDevicePoseArray; + +#endif // _Aspect_TrackedDevicePose_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfDeflection.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfDeflection.hxx new file mode 100644 index 00000000..1a4edd0c --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfDeflection.hxx @@ -0,0 +1,28 @@ +// Created by: NW,JPB,CAL +// Copyright (c) 1991-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Aspect_TypeOfDeflection_HeaderFile +#define _Aspect_TypeOfDeflection_HeaderFile + +//! Defines if the maximal chordial deflection used when +//! drawing an object is absolute or relative to the size +//! of the object. +enum Aspect_TypeOfDeflection +{ + Aspect_TOD_RELATIVE, + Aspect_TOD_ABSOLUTE +}; + +#endif // _Aspect_TypeOfDeflection_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfDisplayText.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfDisplayText.hxx new file mode 100644 index 00000000..a7caefd9 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfDisplayText.hxx @@ -0,0 +1,30 @@ +// Created by: NW,JPB,CAL +// Copyright (c) 1991-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Aspect_TypeOfDisplayText_HeaderFile +#define _Aspect_TypeOfDisplayText_HeaderFile + +//! Define the display type of the text. +enum Aspect_TypeOfDisplayText +{ + Aspect_TODT_NORMAL, //!< default display, text only + Aspect_TODT_SUBTITLE, //!< there is a subtitle under the text + Aspect_TODT_DEKALE, //!< the text is displayed with a 3D style + Aspect_TODT_BLEND, //!< the text is displayed in XOR + Aspect_TODT_DIMENSION, //!< dimension line under text will be invisible + Aspect_TODT_SHADOW //!< the text will have a shadow at the right-bottom corner +}; + +#endif // _Aspect_TypeOfDisplayText_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfFacingModel.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfFacingModel.hxx new file mode 100644 index 00000000..17a5cab4 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfFacingModel.hxx @@ -0,0 +1,26 @@ +// Created by: NW,JPB,CAL +// Copyright (c) 1991-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Aspect_TypeOfFacingModel_HeaderFile +#define _Aspect_TypeOfFacingModel_HeaderFile + +enum Aspect_TypeOfFacingModel +{ + Aspect_TOFM_BOTH_SIDE, + Aspect_TOFM_BACK_SIDE, + Aspect_TOFM_FRONT_SIDE +}; + +#endif // _Aspect_TypeOfFacingModel_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfStyleText.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfStyleText.hxx new file mode 100644 index 00000000..f4901dd8 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_TypeOfStyleText.hxx @@ -0,0 +1,32 @@ +// Created by: NW,JPB,CAL +// Copyright (c) 1991-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Aspect_TypeOfStyleText_HeaderFile +#define _Aspect_TypeOfStyleText_HeaderFile + +//! Define the style of the text. +//! +//! TOST_NORMAL Default text. The text is displayed like any other graphic object. +//! This text can be hidden by another object that is nearest from the +//! point of view. +//! TOST_ANNOTATION The text is always visible. The texte is displayed +//! over the other object according to the priority. +enum Aspect_TypeOfStyleText +{ + Aspect_TOST_NORMAL, + Aspect_TOST_ANNOTATION +}; + +#endif // _Aspect_TypeOfStyleText_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRAnalogActionData.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRAnalogActionData.hxx new file mode 100644 index 00000000..e9d0457c --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRAnalogActionData.hxx @@ -0,0 +1,42 @@ +// Copyright (c) 2020 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Aspect_XRAnalogActionData_HeaderFile +#define _Aspect_XRAnalogActionData_HeaderFile + +#include "NCollection_Vec3.hxx" + +//! Analog input XR action data. +struct Aspect_XRAnalogActionData +{ + uint64_t ActiveOrigin; //!< The origin that caused this action's current state + // clang-format off + float UpdateTime; //!< Time relative to now when this event happened. Will be negative to indicate a past time + NCollection_Vec3 VecXYZ; //!< the current state of this action + NCollection_Vec3 DeltaXYZ; //!< deltas since the previous update + bool IsActive; //!< whether or not this action is currently available to be bound in the active action set + // clang-format on + + //! Return TRUE if delta is non-zero. + bool IsChanged() { return !DeltaXYZ.IsEqual(NCollection_Vec3(0.0f, 0.0f, 0.0f)); } + + //! Empty constructor. + Aspect_XRAnalogActionData() + : ActiveOrigin(0), + UpdateTime(0.0f), + IsActive(false) + { + } +}; + +#endif // _Aspect_XRAnalogActionData_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRGenericAction.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRGenericAction.hxx new file mode 100644 index 00000000..1e18195f --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRGenericAction.hxx @@ -0,0 +1,45 @@ +// Copyright (c) 2020 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Aspect_XRGenericAction_HeaderFile +#define _Aspect_XRGenericAction_HeaderFile + +//! Generic XR action. +enum Aspect_XRGenericAction +{ + Aspect_XRGenericAction_IsHeadsetOn, //!< headset is on/off head + Aspect_XRGenericAction_InputAppMenu, //!< application menu button pressed/released + Aspect_XRGenericAction_InputSysMenu, //!< system menu button pressed/released + Aspect_XRGenericAction_InputTriggerPull, //!< trigger squeezing [0..1], 1 to click + Aspect_XRGenericAction_InputTriggerClick, //!< trigger clicked/released + Aspect_XRGenericAction_InputGripClick, //!< grip state on/off + Aspect_XRGenericAction_InputTrackPadPosition, //!< trackpad 2D position [-1,+1] with X and Y axes + Aspect_XRGenericAction_InputTrackPadTouch, //!< trackpad touched/untouched + Aspect_XRGenericAction_InputTrackPadClick, //!< trackpad clicked/released + Aspect_XRGenericAction_InputThumbstickPosition, //!< thumbstick 2D position [-1,+1] with X and Y + //!< axes + Aspect_XRGenericAction_InputThumbstickTouch, //!< thumbstick touched/untouched + Aspect_XRGenericAction_InputThumbstickClick, //!< thumbstick clicked/released + Aspect_XRGenericAction_InputPoseBase, //!< base position of hand + Aspect_XRGenericAction_InputPoseFront, //!< front position of hand + Aspect_XRGenericAction_InputPoseHandGrip, //!< position of main handgrip + Aspect_XRGenericAction_InputPoseFingerTip, //!< position of main fingertip + Aspect_XRGenericAction_OutputHaptic //!< haptic output (vibration) +}; + +enum +{ + Aspect_XRGenericAction_NB = Aspect_XRGenericAction_OutputHaptic + 1 +}; + +#endif // _Aspect_XRGenericAction_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRHapticActionData.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRHapticActionData.hxx new file mode 100644 index 00000000..4b612fab --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRHapticActionData.hxx @@ -0,0 +1,41 @@ +// Copyright (c) 2020 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Aspect_XRHapticActionData_HeaderFile +#define _Aspect_XRHapticActionData_HeaderFile + +//! Haptic output XR action data. +struct Aspect_XRHapticActionData +{ + float Delay; //!< delay in seconds before start + float Duration; //!< duration in seconds + float Frequency; //!< vibration frequency + float Amplitude; //!< vibration amplitude + + //! Return TRUE if data is not empty. + bool IsValid() const + { + return Duration > 0.0f && Amplitude > 0.0f && Frequency > 0.0f && Delay >= 0.0f; + } + + //! Empty constructor. + Aspect_XRHapticActionData() + : Delay(0.0f), + Duration(0.0f), + Frequency(0.0f), + Amplitude(0.0f) + { + } +}; + +#endif // _Aspect_XRHapticActionData_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRPoseActionData.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRPoseActionData.hxx new file mode 100644 index 00000000..2362a87b --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/Aspect_XRPoseActionData.hxx @@ -0,0 +1,37 @@ +// Copyright (c) 2020 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _Aspect_XRPoseActionData_HeaderFile +#define _Aspect_XRPoseActionData_HeaderFile + +#include "Aspect_TrackedDevicePose.hxx" +#include "Standard_TypeDef.hxx" + +//! Pose input XR action data. +struct Aspect_XRPoseActionData +{ + Aspect_TrackedDevicePose Pose; //!< pose state + uint64_t ActiveOrigin; //!< The origin that caused this action's current state + // clang-format off + bool IsActive; //!< whether or not this action is currently available to be bound in the active action set + // clang-format on + + //! Empty constructor. + Aspect_XRPoseActionData() + : ActiveOrigin(0), + IsActive(false) + { + } +}; + +#endif // _Aspect_XRPoseActionData_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_ArgumentAnalyzer.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_ArgumentAnalyzer.hxx new file mode 100644 index 00000000..c2718ac5 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_ArgumentAnalyzer.hxx @@ -0,0 +1,147 @@ +// Created on: 2004-09-03 +// Created by: Oleg FEDYAEV +// Copyright (c) 2004-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BOPAlgo_ArgumentAnalyzer_HeaderFile +#define _BOPAlgo_ArgumentAnalyzer_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "TopoDS_Shape.hxx" +#include "BOPAlgo_Algo.hxx" +#include "BOPAlgo_Operation.hxx" +#include "BOPAlgo_ListOfCheckResult.hxx" +#include "TopAbs_ShapeEnum.hxx" + +//! check the validity of argument(s) for Boolean Operations +class BOPAlgo_ArgumentAnalyzer : public BOPAlgo_Algo +{ +public: + DEFINE_STANDARD_ALLOC + + //! empty constructor + Standard_EXPORT BOPAlgo_ArgumentAnalyzer(); + Standard_EXPORT virtual ~BOPAlgo_ArgumentAnalyzer(); + + //! sets object shape + Standard_EXPORT void SetShape1(const TopoDS_Shape& TheShape); + + //! sets tool shape + Standard_EXPORT void SetShape2(const TopoDS_Shape& TheShape); + + //! returns object shape; + Standard_EXPORT const TopoDS_Shape& GetShape1() const; + + //! returns tool shape + Standard_EXPORT const TopoDS_Shape& GetShape2() const; + + //! returns ref + Standard_EXPORT BOPAlgo_Operation& OperationType(); + + //! returns ref + Standard_EXPORT Standard_Boolean& StopOnFirstFaulty(); + + //! Returns (modifiable) mode + //! that means checking types of shapes. + Standard_Boolean& ArgumentTypeMode(); + + //! Returns (modifiable) mode that means + //! checking of self-intersection of shapes. + Standard_Boolean& SelfInterMode(); + + //! Returns (modifiable) mode that means + //! checking of small edges. + Standard_Boolean& SmallEdgeMode(); + + //! Returns (modifiable) mode that means + //! checking of possibility to split or rebuild faces. + Standard_Boolean& RebuildFaceMode(); + + //! Returns (modifiable) mode that means + //! checking of tangency between subshapes. + Standard_Boolean& TangentMode(); + + //! Returns (modifiable) mode that means + //! checking of problem of merging vertices. + Standard_Boolean& MergeVertexMode(); + + //! Returns (modifiable) mode that means + //! checking of problem of merging edges. + Standard_Boolean& MergeEdgeMode(); + + //! Returns (modifiable) mode that means + //! checking of problem of continuity of the shape. + Standard_Boolean& ContinuityMode(); + + //! Returns (modifiable) mode that means + //! checking of problem of invalid curve on surface. + Standard_Boolean& CurveOnSurfaceMode(); + + //! performs analysis + Standard_EXPORT void Perform(const Message_ProgressRange& theRange = Message_ProgressRange()); + + //! result of test + Standard_EXPORT Standard_Boolean HasFaulty() const; + + //! returns a result of test + Standard_EXPORT const BOPAlgo_ListOfCheckResult& GetCheckResult() const; + +protected: + //! Prepares data; + Standard_EXPORT void Prepare(); + + Standard_EXPORT void TestTypes(); + + Standard_EXPORT void TestSelfInterferences(const Message_ProgressRange& theRange); + + Standard_EXPORT void TestSmallEdge(); + + Standard_EXPORT void TestRebuildFace(); + + Standard_EXPORT void TestTangent(); + + Standard_EXPORT void TestMergeSubShapes(const TopAbs_ShapeEnum theType); + + Standard_EXPORT void TestMergeVertex(); + + Standard_EXPORT void TestMergeEdge(); + + Standard_EXPORT void TestContinuity(); + + Standard_EXPORT void TestCurveOnSurface(); + +private: + TopoDS_Shape myShape1; + TopoDS_Shape myShape2; + Standard_Boolean myStopOnFirst; + BOPAlgo_Operation myOperation; + Standard_Boolean myArgumentTypeMode; + Standard_Boolean mySelfInterMode; + Standard_Boolean mySmallEdgeMode; + Standard_Boolean myRebuildFaceMode; + Standard_Boolean myTangentMode; + Standard_Boolean myMergeVertexMode; + Standard_Boolean myMergeEdgeMode; + Standard_Boolean myContinuityMode; + Standard_Boolean myCurveOnSurfaceMode; + Standard_Boolean myEmpty1; + Standard_Boolean myEmpty2; + BOPAlgo_ListOfCheckResult myResult; +}; + +#include "BOPAlgo_ArgumentAnalyzer.lxx" + +#endif // _BOPAlgo_ArgumentAnalyzer_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_ArgumentAnalyzer.lxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_ArgumentAnalyzer.lxx new file mode 100644 index 00000000..7005d6f2 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_ArgumentAnalyzer.lxx @@ -0,0 +1,62 @@ +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +inline Standard_Boolean& BOPAlgo_ArgumentAnalyzer::ArgumentTypeMode() +{ + return myArgumentTypeMode; +} + +inline Standard_Boolean& BOPAlgo_ArgumentAnalyzer::SelfInterMode() +{ + return mySelfInterMode; +} + +inline Standard_Boolean& BOPAlgo_ArgumentAnalyzer::SmallEdgeMode() +{ + return mySmallEdgeMode; +} + +inline Standard_Boolean& BOPAlgo_ArgumentAnalyzer::RebuildFaceMode() +{ + return myRebuildFaceMode; +} + +inline Standard_Boolean& BOPAlgo_ArgumentAnalyzer::TangentMode() +{ + return myTangentMode; +} + +inline Standard_Boolean& BOPAlgo_ArgumentAnalyzer::MergeVertexMode() +{ + return myMergeVertexMode; +} + +inline Standard_Boolean& BOPAlgo_ArgumentAnalyzer::MergeEdgeMode() +{ + return myMergeEdgeMode; +} + +inline Standard_Boolean& BOPAlgo_ArgumentAnalyzer::ContinuityMode() +{ + return myContinuityMode; +} + +inline Standard_Boolean& BOPAlgo_ArgumentAnalyzer::CurveOnSurfaceMode() +{ + return myCurveOnSurfaceMode; +} + +// inline Standard_Boolean& BOPAlgo_ArgumentAnalyzer::MergeFaceMode() +// { +// return myMergeFaceMode; +// } diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_ListOfCheckResult.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_ListOfCheckResult.hxx new file mode 100644 index 00000000..d2be42b9 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_ListOfCheckResult.hxx @@ -0,0 +1,22 @@ +// Copyright (c) 20010-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPAlgo_ListOfCheckResult_HeaderFile +#define BOPAlgo_ListOfCheckResult_HeaderFile + +#include "BOPAlgo_CheckResult.hxx" + +typedef NCollection_List BOPAlgo_ListOfCheckResult; +typedef BOPAlgo_ListOfCheckResult::Iterator BOPAlgo_ListIteratorOfListOfCheckResult; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_PArgumentAnalyzer.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_PArgumentAnalyzer.hxx new file mode 100644 index 00000000..03298443 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_PArgumentAnalyzer.hxx @@ -0,0 +1,21 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BOPAlgo_PArgumentAnalyzer_HeaderFile +#define _BOPAlgo_PArgumentAnalyzer_HeaderFile + +class BOPAlgo_ArgumentAnalyzer; +typedef BOPAlgo_ArgumentAnalyzer* BOPAlgo_PArgumentAnalyzer; + +#endif // _BOPAlgo_PArgumentAnalyzer_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_RemoveFeatures.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_RemoveFeatures.hxx new file mode 100644 index 00000000..d0ef062d --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_RemoveFeatures.hxx @@ -0,0 +1,264 @@ +// Created by: Eugeny MALTCHIKOV +// Copyright (c) 2018 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BOPAlgo_RemoveFeatures_HeaderFile +#define _BOPAlgo_RemoveFeatures_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "BOPAlgo_BuilderShape.hxx" +#include "BRepTools_History.hxx" +#include "TopoDS_Shape.hxx" +#include "TopTools_IndexedDataMapOfShapeListOfShape.hxx" +#include "TopTools_IndexedMapOfShape.hxx" +#include "TopTools_ListOfShape.hxx" +#include "TopTools_MapOfShape.hxx" + +//! The RemoveFeatures algorithm is intended for reconstruction of +//! the shape by removal of the unwanted parts from it. These parts can +//! be holes, protrusions, spikes, fillets etc. +//! The shape itself is not modified, the new shape is built in +//! the result. +//! +//! Currently, only the shapes of type SOLID, COMPSOLID, and +//! COMPOUND of Solids are supported. And only the FACEs can be +//! removed from the shape. +//! +//! On the input the algorithm accepts the shape itself and the +//! faces which have to be removed. It does not matter how the faces +//! are given. It could be the separate faces or the collections of faces. +//! The faces should belong to the initial shape, and those that +//! do not belong will be ignored. +//! Before reconstructing the shape, the algorithm will sort all +//! the given faces on the connected blocks (features). +//! +//! The features will be removed from the shape one by one. +//! It will allow removing all possible features even if there +//! were problems with the removal of some of them. +//! +//! The removed feature is filled by the extension of the faces adjacent +//! to the feature. In general, the algorithm of removing of the single +//! feature from the shape looks as follows: +//! - Find the faces adjacent to the feature; +//! - Extend the adjacent faces to cover the feature; +//! - Trim the extended faces by the bounds of original face +//! (except for bounds common with the feature), so it will cover +//! the feature only; +//! - Rebuild the solids with reconstructed adjacent faces +//! avoiding the faces from the feature. +//! +//! If the removal is successful, the result is overwritten with the +//! new shape and the next feature is treated. Otherwise, the warning +//! will be given. +//! +//! The algorithm has the following options: +//! - History support; +//! +//! and the options available from base class: +//! - Error/Warning reporting system; +//! - Parallel processing mode. +//! +//! Please note that the other options of the base class are not supported +//! here and will have no effect. +//! +//! History support allows tracking modification of the input shape +//! in terms of Modified, IsDeleted and Generated. The history is +//! available through the methods of the history tool *BRepTools_History*, +//! which can be accessed here through the method *History()*. +//! By default, the history is collected, but it is possible to disable it +//! using the method *SetToFillHistory(false)*; +//! +//! Error/Warning reporting system - allows obtaining the extended overview +//! of the Errors/Warnings occurred during the operation. As soon as any error +//! appears the algorithm stops working. The warnings allow continuing the job, +//! informing the user that something went wrong. +//! The algorithm returns the following errors/warnings: +//! - *BOPAlgo_AlertTooFewArguments* - the error alert is given if the input +//! shape does not contain any solids; +//! - *BOPAlgo_AlertUnsupportedType* - the warning alert is given if the input +//! shape contains not only solids, but also other shapes; +//! - *BOPAlgo_AlertNoFacesToRemove* - the error alert is given in case +//! there are no faces to remove from the shape (nothing to do); +//! - *BOPAlgo_AlertUnableToRemoveTheFeature* - the warning alert is given to +//! inform the user the removal of the feature is not possible. The algorithm +//! will still try to remove the other features; +//! - *BOPAlgo_AlertRemoveFeaturesFailed* - the error alert is given in case if +//! the operation was aborted by the unknown reason. +//! +//! Parallel processing mode - allows running the algorithm in parallel mode +//! obtaining the result faster. +//! +//! The algorithm has certain limitations: +//! - Intersection of the connected faces adjacent to the feature should not be empty. +//! It means, that such faces should not be tangent to each other. +//! If the intersection of the adjacent faces will be empty, the algorithm will +//! be unable to trim the faces correctly and, most likely, the feature will not be removed. +//! - The algorithm does not process the INTERNAL parts of the solids, they are simply +//! removed during reconstruction. +//! +//! Note that for successful removal of the feature, the extended faces adjacent +//! to the feature should cover the feature completely, otherwise the solids will +//! not be rebuild. +//! +//! Here is the example of usage of the algorithm: +//! ~~~~ +//! TopoDS_Shape aSolid = ...; // Input shape to remove the features from +//! TopTools_ListOfShape aFaces = ...; // Faces to remove from the shape +//! Standard_Boolean bRunParallel = ...; // Parallel processing mode +//! Standard_Boolean isHistoryNeeded = ...; // History support +//! +//! BOPAlgo_RemoveFeatures aRF; // Feature removal algorithm +//! aRF.SetShape(aSolid); // Set the shape +//! aRF.AddFacesToRemove(aFaces); // Add faces to remove +//! aRF.SetRunParallel(bRunParallel); // Define the processing mode (parallel or single) +//! aRF.SetToFillHistory(isHistoryNeeded); // Define whether to track the shapes modifications +//! aRF.Perform(); // Perform the operation +//! if (aRF.HasErrors()) // Check for the errors +//! { +//! // error treatment +//! return; +//! } +//! if (aRF.HasWarnings()) // Check for the warnings +//! { +//! // warnings treatment +//! } +//! const TopoDS_Shape& aResult = aRF.Shape(); // Result shape +//! ~~~~ +//! +//! The algorithm preserves the type of the input shape in the result shape. Thus, +//! if the input shape is a COMPSOLID, the resulting solids will also be put into a COMPSOLID. +//! +//! When all possible features are removed, the shape is simplified by +//! removing extra edges and vertices, created during operation, from the result shape. +//! +class BOPAlgo_RemoveFeatures : public BOPAlgo_BuilderShape +{ +public: + DEFINE_STANDARD_ALLOC + +public: //! @name Constructors + //! Empty constructor + BOPAlgo_RemoveFeatures() + : BOPAlgo_BuilderShape() + { + } + +public: //! @name Setting input data for the algorithm + //! Sets the shape for processing. + //! @param[in] theShape The shape to remove the faces from. + //! It should either be the SOLID, COMPSOLID or COMPOUND of Solids. + void SetShape(const TopoDS_Shape& theShape) { myInputShape = theShape; } + + //! Returns the input shape + const TopoDS_Shape& InputShape() const { return myInputShape; } + + //! Adds the face to remove from the input shape. + //! @param[in] theFace The shape to extract the faces for removal. + void AddFaceToRemove(const TopoDS_Shape& theFace) { myFacesToRemove.Append(theFace); } + + //! Adds the faces to remove from the input shape. + //! @param[in] theFaces The list of shapes to extract the faces for removal. + void AddFacesToRemove(const TopTools_ListOfShape& theFaces) + { + TopTools_ListIteratorOfListOfShape it(theFaces); + for (; it.More(); it.Next()) + myFacesToRemove.Append(it.Value()); + } + + //! Returns the list of faces which have been requested for removal + //! from the input shape. + const TopTools_ListOfShape& FacesToRemove() const { return myFacesToRemove; } + +public: //! @name Performing the operation + //! Performs the operation + Standard_EXPORT virtual void Perform( + const Message_ProgressRange& theRange = Message_ProgressRange()) Standard_OVERRIDE; + +public: //! @name Clearing the contents of the algorithm + //! Clears the contents of the algorithm from previous run, + //! allowing reusing it for following removals. + virtual void Clear() Standard_OVERRIDE + { + BOPAlgo_BuilderShape::Clear(); + myInputShape.Nullify(); + myShape.Nullify(); + myFacesToRemove.Clear(); + myFeatures.Clear(); + myInputsMap.Clear(); + } + +protected: //! @name Protected methods performing the removal + //! Checks the input data on validity for the algorithm: + //! - The input shape must be either a SOLID, COMPSOLID or COMPOUND of Solids. + //! If the input shape is not a solid, the method looks for the solids + //! in and uses only them. All other shapes are simply removed. + //! If no solids were found, the Error of unsupported type is returned. + Standard_EXPORT virtual void CheckData() Standard_OVERRIDE; + + //! Prepares the faces to remove: + //! - Gets only faces contained in the input solids; + //! - Builds connected blocks of faces creating separate features to remove. + Standard_EXPORT void PrepareFeatures(const Message_ProgressRange& theRange); + + //! Removes the features and fills the created gaps by extension of the adjacent faces. + //! Processes each feature separately. + Standard_EXPORT void RemoveFeatures(const Message_ProgressRange& theRange); + + //! Remove the single feature from the shape. + //! @param[in] theFeature The feature to remove; + //! @param[in] theSolids The solids to be reconstructed after feature removal; + //! @param[in] theFeatureFacesMap The map of feature faces; + //! @param[in] theHasAdjacentFaces Shows whether the adjacent faces have been + //! found for the feature or not; + //! @param[in] theAdjFaces The reconstructed adjacent faces covering the feature; + //! @param[in] theAdjFacesHistory The history of the adjacent faces reconstruction; + //! @param[in] theSolidsHistoryNeeded Defines whether the history of solids + //! modifications should be tracked or not. + Standard_EXPORT void RemoveFeature(const TopoDS_Shape& theFeature, + const TopTools_IndexedMapOfShape& theSolids, + const TopTools_MapOfShape& theFeatureFacesMap, + const Standard_Boolean theHasAdjacentFaces, + const TopTools_IndexedDataMapOfShapeListOfShape& theAdjFaces, + const Handle(BRepTools_History)& theAdjFacesHistory, + const Standard_Boolean theSolidsHistoryNeeded, + const Message_ProgressRange& theRange); + + //! Updates history with the removed features + Standard_EXPORT void UpdateHistory(const Message_ProgressRange& theRange); + + //! Simplifies the result by removing extra edges and vertices created + //! during removal of the features. + Standard_EXPORT void SimplifyResult(const Message_ProgressRange& theRange); + + //! Post treatment - restore the type of the initial shape + Standard_EXPORT void PostTreat(); + + //! Filling steps for constant operations + Standard_EXPORT void fillPIConstants(const Standard_Real theWhole, + BOPAlgo_PISteps& theSteps) const Standard_OVERRIDE; + +protected: //! @name Fields + // Inputs + TopoDS_Shape myInputShape; //!< Input shape + TopTools_ListOfShape myFacesToRemove; //!< Faces to remove + + // Intermediate + TopTools_ListOfShape myFeatures; //!< List of not connected features to remove + //! (each feature is a compound of faces) + TopTools_IndexedMapOfShape myInputsMap; //!< Map of all sub-shapes of the input shape +}; + +#endif // _BOPAlgo_RemoveFeatures_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_SectionAttribute.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_SectionAttribute.hxx new file mode 100644 index 00000000..6e7fe922 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPAlgo_SectionAttribute.hxx @@ -0,0 +1,67 @@ +// Created on: 2002-03-04 +// Created by: Michael KLOKOV +// Copyright (c) 2002-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BOPAlgo_SectionAttribute_HeaderFile +#define _BOPAlgo_SectionAttribute_HeaderFile + +//! Class is a container of the flags used +//! by intersection algorithm +class BOPAlgo_SectionAttribute +{ +public: + //! Default constructor + BOPAlgo_SectionAttribute() + : myApproximation(Standard_True), + myPCurve1(Standard_True), + myPCurve2(Standard_True) + { + } + + //! Constructor + BOPAlgo_SectionAttribute(const Standard_Boolean theAproximation, + const Standard_Boolean thePCurveOnS1, + const Standard_Boolean thePCurveOnS2) + : myApproximation(theAproximation), + myPCurve1(thePCurveOnS1), + myPCurve2(thePCurveOnS2) + { + } + + //! Sets the Approximation flag + void Approximation(const Standard_Boolean theApprox) { myApproximation = theApprox; } + + //! Sets the PCurveOnS1 flag + void PCurveOnS1(const Standard_Boolean thePCurveOnS1) { myPCurve1 = thePCurveOnS1; } + + //! Sets the PCurveOnS2 flag + void PCurveOnS2(const Standard_Boolean thePCurveOnS2) { myPCurve2 = thePCurveOnS2; } + + //! Returns the Approximation flag + Standard_Boolean Approximation() const { return myApproximation; } + + //! Returns the PCurveOnS1 flag + Standard_Boolean PCurveOnS1() const { return myPCurve1; } + + //! Returns the PCurveOnS2 flag + Standard_Boolean PCurveOnS2() const { return myPCurve2; } + +protected: +private: + Standard_Boolean myApproximation; + Standard_Boolean myPCurve1; + Standard_Boolean myPCurve2; +}; + +#endif // _BOPAlgo_SectionAttribute_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_CoupleOfPaveBlocks.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_CoupleOfPaveBlocks.hxx new file mode 100644 index 00000000..70027901 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_CoupleOfPaveBlocks.hxx @@ -0,0 +1,176 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_CoupleOfPaveBlocks_HeaderFile +#define BOPDS_CoupleOfPaveBlocks_HeaderFile + +#include "BOPDS_PaveBlock.hxx" + +/** + * The Class BOPDS_CoupleOfPaveBlocks is to store + * the information about two pave blocks + * and some satellite information + * + */ +//======================================================================= +// class : BOPDS_CoupleOfPaveBlocks +// purpose : +//======================================================================= +class BOPDS_CoupleOfPaveBlocks +{ +public: + /** + * Constructor + */ + BOPDS_CoupleOfPaveBlocks() + : myIndexInterf(-1), + myIndex(-1), + myTolerance(0) + { + } + + // + /** + * Constructor + * @param thePB1 + * first pave block + * @param thePB2 + * secondt pave block + */ + BOPDS_CoupleOfPaveBlocks(const Handle(BOPDS_PaveBlock)& thePB1, + const Handle(BOPDS_PaveBlock)& thePB2) + : myIndexInterf(-1), + myIndex(-1), + myTolerance(0) + { + SetPaveBlocks(thePB1, thePB2); + } + + // + /** + * Destructor + */ + ~BOPDS_CoupleOfPaveBlocks() {} + + // + /** + * Sets an index + * @param theIndex + * index + */ + void SetIndex(const Standard_Integer theIndex) { myIndex = theIndex; } + + // + /** + * Returns the index + * @return + * index + */ + Standard_Integer Index() const { return myIndex; } + + // + /** + * Sets an index of an interference + * @param theIndex + * index of an interference + */ + void SetIndexInterf(const Standard_Integer theIndex) { myIndexInterf = theIndex; } + + // + /** + * Returns the index of an interference + * @return + * index of an interference + */ + Standard_Integer IndexInterf() const { return myIndexInterf; } + + // + /** + * Sets pave blocks + * @param thePB1 + * first pave block + * @param thePB2 + * secondt pave block + */ + void SetPaveBlocks(const Handle(BOPDS_PaveBlock)& thePB1, const Handle(BOPDS_PaveBlock)& thePB2) + { + myPB[0] = thePB1; + myPB[1] = thePB2; + } + + // + /** + * Returns pave blocks + * @param thePB1 + * the first pave block + * @param thePB2 + * the second pave block + */ + void PaveBlocks(Handle(BOPDS_PaveBlock)& thePB1, Handle(BOPDS_PaveBlock)& thePB2) const + { + thePB1 = myPB[0]; + thePB2 = myPB[1]; + } + + // + /** + * Sets the first pave block + * @param thePB + * the first pave block + */ + void SetPaveBlock1(const Handle(BOPDS_PaveBlock)& thePB) { myPB[0] = thePB; } + + /** + * Returns the first pave block + * @return + * the first pave block + */ + const Handle(BOPDS_PaveBlock)& PaveBlock1() const { return myPB[0]; } + + // + /** + * Sets the second pave block + * @param thePB + * the second pave block + */ + void SetPaveBlock2(const Handle(BOPDS_PaveBlock)& thePB) { myPB[1] = thePB; } + + // + /** + * Returns the second pave block + * @return + * the second pave block + */ + const Handle(BOPDS_PaveBlock)& PaveBlock2() const { return myPB[1]; } + + /** + * Sets the tolerance associated with this couple + */ + void SetTolerance(const Standard_Real theTol) { myTolerance = theTol; } + + // + /** + * Returns the tolerance associated with this couple + */ + Standard_Real Tolerance() const { return myTolerance; } + +protected: + Standard_Integer myIndexInterf; + Standard_Integer myIndex; + Handle(BOPDS_PaveBlock) myPB[2]; + Standard_Real myTolerance; +}; + +// +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_MapOfCommonBlock.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_MapOfCommonBlock.hxx new file mode 100644 index 00000000..17fc8d29 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_MapOfCommonBlock.hxx @@ -0,0 +1,24 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_MapOfCommonBlock_HeaderFile +#define BOPDS_MapOfCommonBlock_HeaderFile + +#include "NCollection_Map.hxx" +#include "BOPDS_CommonBlock.hxx" + +typedef NCollection_Map BOPDS_MapOfCommonBlock; +typedef BOPDS_MapOfCommonBlock::Iterator BOPDS_MapIteratorOfMapOfCommonBlock; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfFaceInfo.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfFaceInfo.hxx new file mode 100644 index 00000000..3d822576 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfFaceInfo.hxx @@ -0,0 +1,23 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_VectorOfFaceInfo_HeaderFile +#define BOPDS_VectorOfFaceInfo_HeaderFile + +#include "NCollection_Vector.hxx" +#include "BOPDS_FaceInfo.hxx" + +typedef NCollection_Vector BOPDS_VectorOfFaceInfo; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfIndexRange.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfIndexRange.hxx new file mode 100644 index 00000000..ef4e4b55 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfIndexRange.hxx @@ -0,0 +1,23 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_VectorOfIndexRange_HeaderFile +#define BOPDS_VectorOfIndexRange_HeaderFile + +#include "NCollection_Vector.hxx" +#include "BOPDS_IndexRange.hxx" + +typedef NCollection_Vector BOPDS_VectorOfIndexRange; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfEE.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfEE.hxx new file mode 100644 index 00000000..9cc6f56c --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfEE.hxx @@ -0,0 +1,23 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_VectorOfInterfEE_HeaderFile +#define BOPDS_VectorOfInterfEE_HeaderFile + +#include "NCollection_Vector.hxx" +#include "BOPDS_Interf.hxx" + +typedef NCollection_Vector BOPDS_VectorOfInterfEE; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfEF.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfEF.hxx new file mode 100644 index 00000000..7d5d7bf8 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfEF.hxx @@ -0,0 +1,23 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_VectorOfInterfEF_HeaderFile +#define BOPDS_VectorOfInterfEF_HeaderFile + +#include "NCollection_Vector.hxx" +#include "BOPDS_Interf.hxx" + +typedef NCollection_Vector BOPDS_VectorOfInterfEF; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfEZ.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfEZ.hxx new file mode 100644 index 00000000..5624a4ec --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfEZ.hxx @@ -0,0 +1,24 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2012 OPEN CASCADE SAS +// +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_VectorOfInterfEZ_HeaderFile +#define BOPDS_VectorOfInterfEZ_HeaderFile + +#include "NCollection_Vector.hxx" +#include "BOPDS_Interf.hxx" + +typedef NCollection_Vector BOPDS_VectorOfInterfEZ; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfFF.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfFF.hxx new file mode 100644 index 00000000..1926151d --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfFF.hxx @@ -0,0 +1,23 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_VectorOfInterfFF_HeaderFile +#define BOPDS_VectorOfInterfFF_HeaderFile + +#include "NCollection_Vector.hxx" +#include "BOPDS_Interf.hxx" + +typedef NCollection_Vector BOPDS_VectorOfInterfFF; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfFZ.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfFZ.hxx new file mode 100644 index 00000000..16552cbe --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfFZ.hxx @@ -0,0 +1,24 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2012 OPEN CASCADE SAS +// +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_VectorOfInterfFZ_HeaderFile +#define BOPDS_VectorOfInterfFZ_HeaderFile + +#include "NCollection_Vector.hxx" +#include "BOPDS_Interf.hxx" + +typedef NCollection_Vector BOPDS_VectorOfInterfFZ; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVE.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVE.hxx new file mode 100644 index 00000000..6328763b --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVE.hxx @@ -0,0 +1,23 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_VectorOfInterfVE_HeaderFile +#define BOPDS_VectorOfInterfVE_HeaderFile + +#include "NCollection_Vector.hxx" +#include "BOPDS_Interf.hxx" + +typedef NCollection_Vector BOPDS_VectorOfInterfVE; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVF.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVF.hxx new file mode 100644 index 00000000..1665b84d --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVF.hxx @@ -0,0 +1,23 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_VectorOfInterfVF_HeaderFile +#define BOPDS_VectorOfInterfVF_HeaderFile + +#include "NCollection_Vector.hxx" +#include "BOPDS_Interf.hxx" + +typedef NCollection_Vector BOPDS_VectorOfInterfVF; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVV.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVV.hxx new file mode 100644 index 00000000..ffa24bf2 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVV.hxx @@ -0,0 +1,23 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_VectorOfInterfVV_HeaderFile +#define BOPDS_VectorOfInterfVV_HeaderFile + +#include "NCollection_Vector.hxx" +#include "BOPDS_Interf.hxx" + +typedef NCollection_Vector BOPDS_VectorOfInterfVV; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVZ.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVZ.hxx new file mode 100644 index 00000000..541c78ae --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfVZ.hxx @@ -0,0 +1,24 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2012 OPEN CASCADE SAS +// +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_VectorOfInterfVZ_HeaderFile +#define BOPDS_VectorOfInterfVZ_HeaderFile + +#include "NCollection_Vector.hxx" +#include "BOPDS_Interf.hxx" + +typedef NCollection_Vector BOPDS_VectorOfInterfVZ; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfZZ.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfZZ.hxx new file mode 100644 index 00000000..b5f63a25 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfInterfZZ.hxx @@ -0,0 +1,24 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2012 OPEN CASCADE SAS +// +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_VectorOfInterfZZ_HeaderFile +#define BOPDS_VectorOfInterfZZ_HeaderFile + +#include "NCollection_Vector.hxx" +#include "BOPDS_Interf.hxx" + +typedef NCollection_Vector BOPDS_VectorOfInterfZZ; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfShapeInfo.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfShapeInfo.hxx new file mode 100644 index 00000000..68c29f21 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPDS_VectorOfShapeInfo.hxx @@ -0,0 +1,23 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPDS_VectorOfShapeInfo_HeaderFile +#define BOPDS_VectorOfShapeInfo_HeaderFile + +#include "NCollection_Vector.hxx" +#include "BOPDS_ShapeInfo.hxx" + +typedef NCollection_Vector BOPDS_VectorOfShapeInfo; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPTools_ConnexityBlock.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPTools_ConnexityBlock.hxx new file mode 100644 index 00000000..70ca4f6e --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPTools_ConnexityBlock.hxx @@ -0,0 +1,66 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPTools_ConnexityBlock_HeaderFile +#define BOPTools_ConnexityBlock_HeaderFile + +#include "NCollection_BaseAllocator.hxx" +#include "TopTools_ListOfShape.hxx" + +//======================================================================= +// class : ConnexityBlock +// purpose : +//======================================================================= +class BOPTools_ConnexityBlock +{ +public: + BOPTools_ConnexityBlock() + : myAllocator(NCollection_BaseAllocator::CommonBaseAllocator()), + myRegular(Standard_True), + myShapes(myAllocator), + myLoops(myAllocator) {}; + // + BOPTools_ConnexityBlock(const Handle(NCollection_BaseAllocator)& theAllocator) + : myAllocator(theAllocator), + myRegular(Standard_True), + myShapes(myAllocator), + myLoops(myAllocator) {}; + + // + const TopTools_ListOfShape& Shapes() const { return myShapes; }; + + // + TopTools_ListOfShape& ChangeShapes() { return myShapes; }; + + // + void SetRegular(const Standard_Boolean theFlag) { myRegular = theFlag; } + + // + Standard_Boolean IsRegular() const { return myRegular; } + + // + const TopTools_ListOfShape& Loops() const { return myLoops; }; + + // + TopTools_ListOfShape& ChangeLoops() { return myLoops; }; + + // +protected: + Handle(NCollection_BaseAllocator) myAllocator; + Standard_Boolean myRegular; + TopTools_ListOfShape myShapes; + TopTools_ListOfShape myLoops; +}; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BOPTools_CoupleOfShape.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BOPTools_CoupleOfShape.hxx new file mode 100644 index 00000000..cbbfb51e --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BOPTools_CoupleOfShape.hxx @@ -0,0 +1,49 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BOPTools_CoupleOfShape_HeaderFile +#define BOPTools_CoupleOfShape_HeaderFile + +#include "TopoDS_Shape.hxx" + +//======================================================================= +// class : +// purpose : +//======================================================================= +class BOPTools_CoupleOfShape +{ +public: + BOPTools_CoupleOfShape() {}; + // + ~BOPTools_CoupleOfShape() {}; + + // + void SetShape1(const TopoDS_Shape& theShape) { myShape1 = theShape; } + + // + const TopoDS_Shape& Shape1() const { return myShape1; } + + // + void SetShape2(const TopoDS_Shape& theShape) { myShape2 = theShape; } + + // + const TopoDS_Shape& Shape2() const { return myShape2; } + + // +protected: + TopoDS_Shape myShape1; + TopoDS_Shape myShape2; +}; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepAdaptor_Array1OfCurve.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepAdaptor_Array1OfCurve.hxx new file mode 100644 index 00000000..8a3f6c7d --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepAdaptor_Array1OfCurve.hxx @@ -0,0 +1,25 @@ +// Created on: 1993-02-19 +// Created by: Remi LEQUETTE +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BRepAdaptor_Array1OfCurve_HeaderFile +#define BRepAdaptor_Array1OfCurve_HeaderFile + +#include "BRepAdaptor_Curve.hxx" +#include "NCollection_Array1.hxx" + +typedef NCollection_Array1 BRepAdaptor_Array1OfCurve; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgoAPI_BuilderAlgo.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgoAPI_BuilderAlgo.hxx new file mode 100644 index 00000000..a0b99133 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgoAPI_BuilderAlgo.hxx @@ -0,0 +1,233 @@ +// Created by: Peter KURNEV +// Copyright (c) 2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepAlgoAPI_BuilderAlgo_HeaderFile +#define _BRepAlgoAPI_BuilderAlgo_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "BOPAlgo_GlueEnum.hxx" +#include "BOPAlgo_PPaveFiller.hxx" +#include "BOPAlgo_PBuilder.hxx" +#include "BRepAlgoAPI_Algo.hxx" +#include "BRepTools_History.hxx" +#include "Precision.hxx" +#include "Standard_Real.hxx" +#include "TopTools_ListOfShape.hxx" + +//! The class contains API level of the General Fuse algorithm.
+//! +//! Additionally to the options defined in the base class, the algorithm has +//! the following options:
+//! - *Safe processing mode* - allows to avoid modification of the input +//! shapes during the operation (by default it is off); +//! - *Gluing options* - allows to speed up the calculation of the intersections +//! on the special cases, in which some sub-shapes are coinciding. +//! - *Disabling the check for inverted solids* - Disables/Enables the check of the input solids +//! for inverted status (holes in the space). The default value is TRUE, +//! i.e. the check is performed. Setting this flag to FALSE for inverted +//! solids, most likely will lead to incorrect results. +//! - *Disabling history collection* - allows disabling the collection of the history +//! of shapes modifications during the operation. +//! +//! It returns the following Error statuses:
+//! - 0 - in case of success;
+//! - *BOPAlgo_AlertTooFewArguments* - in case there are no enough arguments to perform the +//! operation;
+//! - *BOPAlgo_AlertIntersectionFailed* - in case the intersection of the arguments has failed;
+//! - *BOPAlgo_AlertBuilderFailed* - in case building of the result shape has failed.
+//! +//! Warnings statuses from underlying DS Filler and Builder algorithms +//! are collected in the report. +//! +//! The class provides possibility to simplify the resulting shape by unification +//! of the tangential edges and faces. It is performed by the method *SimplifyResult*. +//! See description of this method for more details. +//! +class BRepAlgoAPI_BuilderAlgo : public BRepAlgoAPI_Algo +{ +public: + DEFINE_STANDARD_ALLOC + +public: //! @name Constructors + //! Empty constructor + Standard_EXPORT BRepAlgoAPI_BuilderAlgo(); + Standard_EXPORT virtual ~BRepAlgoAPI_BuilderAlgo(); + + //! Constructor with prepared Filler object + Standard_EXPORT BRepAlgoAPI_BuilderAlgo(const BOPAlgo_PaveFiller& thePF); + +public: //! @name Setting/Getting data for the algorithm + //! Sets the arguments + void SetArguments(const TopTools_ListOfShape& theLS) { myArguments = theLS; } + + //! Gets the arguments + const TopTools_ListOfShape& Arguments() const { return myArguments; } + +public: //! @name Setting options + //! Sets the flag that defines the mode of treatment. + //! In non-destructive mode the argument shapes are not modified. Instead + //! a copy of a sub-shape is created in the result if it is needed to be updated. + void SetNonDestructive(const Standard_Boolean theFlag) { myNonDestructive = theFlag; } + + //! Returns the flag that defines the mode of treatment. + //! In non-destructive mode the argument shapes are not modified. Instead + //! a copy of a sub-shape is created in the result if it is needed to be updated. + Standard_Boolean NonDestructive() const { return myNonDestructive; } + + //! Sets the glue option for the algorithm, + //! which allows increasing performance of the intersection + //! of the input shapes. + void SetGlue(const BOPAlgo_GlueEnum theGlue) { myGlue = theGlue; } + + //! Returns the glue option of the algorithm + BOPAlgo_GlueEnum Glue() const { return myGlue; } + + //! Enables/Disables the check of the input solids for inverted status + void SetCheckInverted(const Standard_Boolean theCheck) { myCheckInverted = theCheck; } + + //! Returns the flag defining whether the check for input solids on inverted status + //! should be performed or not. + Standard_Boolean CheckInverted() const { return myCheckInverted; } + +public: //! @name Performing the operation + //! Performs the algorithm + Standard_EXPORT virtual void Build( + const Message_ProgressRange& theRange = Message_ProgressRange()) Standard_OVERRIDE; + +public: //! @name Result simplification + //! Simplification of the result shape is performed by the means of + //! *ShapeUpgrade_UnifySameDomain* algorithm. The result of the operation will + //! be overwritten with the simplified result. + //! + //! The simplification is performed without creation of the Internal shapes, + //! i.e. shapes connections will never be broken. + //! + //! Simplification is performed on the whole result shape. Thus, if the input + //! shapes contained connected tangent edges or faces unmodified during the operation + //! they will also be unified. + //! + //! After simplification, the History of result simplification is merged into the main + //! history of operation. So, it is taken into account when asking for Modified, + //! Generated and Deleted shapes. + //! + //! Some options of the main operation are passed into the Unifier: + //! - Fuzzy tolerance of the operation is given to the Unifier as the linear tolerance. + //! - Non destructive mode here controls the safe input mode in Unifier. + //! + //! @param theUnifyEdges Controls the edges unification. TRUE by default. + //! @param theUnifyFaces Controls the faces unification. TRUE by default. + //! @param theAngularTol Angular criteria for tangency of edges and faces. + //! Precision::Angular() by default. + Standard_EXPORT void SimplifyResult(const Standard_Boolean theUnifyEdges = Standard_True, + const Standard_Boolean theUnifyFaces = Standard_True, + const Standard_Real theAngularTol = Precision::Angular()); + +public: //! @name History support + //! Returns the shapes modified from the shape . + //! If any, the list will contain only those splits of the + //! given shape, contained in the result. + Standard_EXPORT virtual const TopTools_ListOfShape& Modified(const TopoDS_Shape& theS) + Standard_OVERRIDE; + + //! Returns the list of shapes generated from the shape . + //! In frames of Boolean Operations algorithms only Edges and Faces + //! could have Generated elements, as only they produce new elements + //! during intersection: + //! - Edges can generate new vertices; + //! - Faces can generate new edges and vertices. + Standard_EXPORT virtual const TopTools_ListOfShape& Generated(const TopoDS_Shape& theS) + Standard_OVERRIDE; + + //! Checks if the shape has been completely removed from the result, + //! i.e. the result does not contain the shape itself and any of its splits. + //! Returns TRUE if the shape has been deleted. + Standard_EXPORT virtual Standard_Boolean IsDeleted(const TopoDS_Shape& aS) Standard_OVERRIDE; + + //! Returns true if any of the input shapes has been modified during operation. + Standard_EXPORT virtual Standard_Boolean HasModified() const; + + //! Returns true if any of the input shapes has generated shapes during operation. + Standard_EXPORT virtual Standard_Boolean HasGenerated() const; + + //! Returns true if any of the input shapes has been deleted during operation. + //! Normally, General Fuse operation should not have Deleted elements, + //! but all derived operation can have. + Standard_EXPORT virtual Standard_Boolean HasDeleted() const; + +public: //! @name Enabling/Disabling the history collection. + //! Allows disabling the history collection + void SetToFillHistory(const Standard_Boolean theHistFlag) { myFillHistory = theHistFlag; } + + //! Returns flag of history availability + Standard_Boolean HasHistory() const { return myFillHistory; } + +public: //! @name Getting the section edges + //! Returns a list of section edges. + //! The edges represent the result of intersection between arguments of operation. + Standard_EXPORT const TopTools_ListOfShape& SectionEdges(); + +public: //! @name Getting tools performing the job + //! Returns the Intersection tool + const BOPAlgo_PPaveFiller& DSFiller() const { return myDSFiller; } + + //! Returns the Building tool + const BOPAlgo_PBuilder& Builder() const { return myBuilder; } + + //! History tool + Handle(BRepTools_History) History() const { return myFillHistory ? myHistory : NULL; } + +protected: //! @name Setting options to the Intersection tool + //! Sets options (available in child classes) for the intersection tool. + //! Here it does nothing. + virtual void SetAttributes() {} + +protected: //! @name Protected methods for shapes intersection and building result + //! Intersects the given shapes with the intersection tool + Standard_EXPORT void IntersectShapes(const TopTools_ListOfShape& theArgs, + const Message_ProgressRange& theRange); + + //! Builds the resulting shape + Standard_EXPORT void BuildResult(const Message_ProgressRange& theRange = Message_ProgressRange()); + +protected: //! @name Clearing the contents of the algorithm + //! Clears the algorithm from previous runs + Standard_EXPORT virtual void Clear() Standard_OVERRIDE; + +protected: //! @name Fields + // Inputs + TopTools_ListOfShape myArguments; //!< Arguments of the operation + + // Options + Standard_Boolean myNonDestructive; //!< Non-destructive mode management + BOPAlgo_GlueEnum myGlue; //!< Gluing mode management + Standard_Boolean myCheckInverted; //!< Check for inverted solids management + Standard_Boolean myFillHistory; //!< Controls the history collection + + // Tools + Standard_Boolean myIsIntersectionNeeded; //!< Flag to control whether the intersection + //! of arguments should be performed or not + BOPAlgo_PPaveFiller myDSFiller; //!< Intersection tool performs intersection of the + //! argument shapes. + BOPAlgo_PBuilder myBuilder; //!< Building tool performs construction of the result + //! basing on the results of intersection + Handle(BRepTools_History) myHistory; //!< General History tool, containing all History of + //! shapes modifications during the operation + //! (including result simplification) + Handle(BRepTools_History) mySimplifierHistory; //!< History of result shape simplification +}; + +#endif // _BRepAlgoAPI_BuilderAlgo_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgoAPI_Defeaturing.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgoAPI_Defeaturing.hxx new file mode 100644 index 00000000..084fc856 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgoAPI_Defeaturing.hxx @@ -0,0 +1,191 @@ +// Created by: Eugeny MALTCHIKOV +// Copyright (c) 2018 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepAlgoAPI_Defeaturing_HeaderFile +#define _BRepAlgoAPI_Defeaturing_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "BOPAlgo_RemoveFeatures.hxx" +#include "BRepAlgoAPI_Algo.hxx" + +//! The BRepAlgoAPI_Defeaturing algorithm is the API algorithm intended for +//! removal of the unwanted parts from the shape. The unwanted parts +//! (or features) can be holes, protrusions, gaps, chamfers, fillets etc. +//! The shape itself is not modified, the new shape is built as the result. +//! +//! The actual removal of the features from the shape is performed by +//! the low-level *BOPAlgo_RemoveFeatures* tool. So the defeaturing algorithm +//! has the same options, input data requirements, limitations as the +//! low-level algorithm. +//! +//! Input data +//! +//! Currently, only the shapes of type SOLID, COMPSOLID, and COMPOUND of Solids +//! are supported. And only the FACEs can be removed from the shape. +//! +//! On the input the algorithm accepts the shape itself and the +//! features which have to be removed. It does not matter how the features +//! are given. It could be the separate faces or the collections +//! of faces. The faces should belong to the initial shape, and those that +//! do not belong will be ignored. +//! +//! Options +//! +//! The algorithm has the following options: +//! - History support; +//! +//! and the options available from base class: +//! - Error/Warning reporting system; +//! - Parallel processing mode. +//! +//! Please note that the other options of the base class are not supported +//! here and will have no effect. +//! +//! For the details on the available options please refer to the description +//! of *BOPAlgo_RemoveFeatures* algorithm. +//! +//! Limitations +//! +//! The defeaturing algorithm has the same limitations as *BOPAlgo_RemoveFeatures* +//! algorithm. +//! +//! Example +//! +//! Here is the example of usage of the algorithm: +//! ~~~~ +//! TopoDS_Shape aSolid = ...; // Input shape to remove the features from +//! TopTools_ListOfShape aFeatures = ...; // Features to remove from the shape +//! Standard_Boolean bRunParallel = ...; // Parallel processing mode +//! Standard_Boolean isHistoryNeeded = ...; // History support +//! +//! BRepAlgoAPI_Defeaturing aDF; // De-Featuring algorithm +//! aDF.SetShape(aSolid); // Set the shape +//! aDF.AddFacesToRemove(aFaces); // Add faces to remove +//! aDF.SetRunParallel(bRunParallel); // Define the processing mode (parallel or single) +//! aDF.SetToFillHistory(isHistoryNeeded); // Define whether to track the shapes modifications +//! aDF.Build(); // Perform the operation +//! if (!aDF.IsDone()) // Check for the errors +//! { +//! // error treatment +//! Standard_SStream aSStream; +//! aDF.DumpErrors(aSStream); +//! return; +//! } +//! if (aDF.HasWarnings()) // Check for the warnings +//! { +//! // warnings treatment +//! Standard_SStream aSStream; +//! aDF.DumpWarnings(aSStream); +//! } +//! const TopoDS_Shape& aResult = aDF.Shape(); // Result shape +//! ~~~~ +//! +//! The algorithm preserves the type of the input shape in the result shape. Thus, +//! if the input shape is a COMPSOLID, the resulting solids will also be put into a COMPSOLID. +//! +class BRepAlgoAPI_Defeaturing : public BRepAlgoAPI_Algo +{ +public: + DEFINE_STANDARD_ALLOC + +public: //! @name Constructors + //! Empty constructor + BRepAlgoAPI_Defeaturing() + : BRepAlgoAPI_Algo(), + myFillHistory(Standard_True) + { + } + +public: //! @name Setting input data for the algorithm + //! Sets the shape for processing. + //! @param[in] theShape The shape to remove the features from. + //! It should either be the SOLID, COMPSOLID or COMPOUND of Solids. + void SetShape(const TopoDS_Shape& theShape) { myInputShape = theShape; } + + //! Returns the input shape + const TopoDS_Shape& InputShape() const { return myInputShape; } + + //! Adds the features to remove from the input shape. + //! @param[in] theFace The shape to extract the faces for removal. + void AddFaceToRemove(const TopoDS_Shape& theFace) { myFacesToRemove.Append(theFace); } + + //! Adds the faces to remove from the input shape. + //! @param[in] theFaces The list of shapes to extract the faces for removal. + void AddFacesToRemove(const TopTools_ListOfShape& theFaces) + { + TopTools_ListIteratorOfListOfShape it(theFaces); + for (; it.More(); it.Next()) + myFacesToRemove.Append(it.Value()); + } + + //! Returns the list of faces which have been requested for removal + //! from the input shape. + const TopTools_ListOfShape& FacesToRemove() const { return myFacesToRemove; } + +public: //! @name Performing the operation + //! Performs the operation + Standard_EXPORT virtual void Build( + const Message_ProgressRange& theRange = Message_ProgressRange()) Standard_OVERRIDE; + +public: //! @name History Methods + //! Defines whether to track the modification of the shapes or not. + void SetToFillHistory(const Standard_Boolean theFlag) { myFillHistory = theFlag; } + + //! Returns whether the history was requested or not. + Standard_Boolean HasHistory() const { return myFillHistory; } + + //! Returns the list of shapes modified from the shape during the operation. + Standard_EXPORT virtual const TopTools_ListOfShape& Modified(const TopoDS_Shape& theS) + Standard_OVERRIDE; + + //! Returns the list of shapes generated from the shape during the operation. + Standard_EXPORT virtual const TopTools_ListOfShape& Generated(const TopoDS_Shape& theS) + Standard_OVERRIDE; + + //! Returns true if the shape has been deleted during the operation. + //! It means that the shape has no any trace in the result. + //! Otherwise it returns false. + Standard_EXPORT virtual Standard_Boolean IsDeleted(const TopoDS_Shape& theS) Standard_OVERRIDE; + + //! Returns true if any of the input shapes has been modified during operation. + Standard_EXPORT virtual Standard_Boolean HasModified() const; + + //! Returns true if any of the input shapes has generated shapes during operation. + Standard_EXPORT virtual Standard_Boolean HasGenerated() const; + + //! Returns true if any of the input shapes has been deleted during operation. + Standard_EXPORT virtual Standard_Boolean HasDeleted() const; + + //! Returns the History of shapes modifications + Handle(BRepTools_History) History() { return myFeatureRemovalTool.History(); } + +protected: //! @name Setting the algorithm into default state + virtual void Clear() Standard_OVERRIDE + { + BRepAlgoAPI_Algo::Clear(); + myFeatureRemovalTool.Clear(); + } + +protected: //! @name Fields + TopoDS_Shape myInputShape; //!< Input shape to remove the features from + TopTools_ListOfShape myFacesToRemove; //!< Features to remove from the shape + Standard_Boolean myFillHistory; //!< Defines whether to track the history of + //! shapes modifications or not (true by default) + BOPAlgo_RemoveFeatures myFeatureRemovalTool; //!< Tool for the features removal +}; + +#endif // _BRepAlgoAPI_Defeaturing_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgo_FaceRestrictor.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgo_FaceRestrictor.hxx new file mode 100644 index 00000000..4af46dba --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgo_FaceRestrictor.hxx @@ -0,0 +1,90 @@ +// Created on: 1995-09-01 +// Created by: Yves FRICAUD +// Copyright (c) 1995-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepAlgo_FaceRestrictor_HeaderFile +#define _BRepAlgo_FaceRestrictor_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" + +#include "TopoDS_Face.hxx" +#include "TopTools_DataMapOfShapeListOfShape.hxx" +class TopoDS_Wire; + +//! Builds all the faces limited with a set of non +//! jointing and planars wires. if +//! is false The Wires must have +//! correct orientations. Sinon orientation des wires +//! de telle sorte que les faces ne soient pas infinies +//! et qu'elles soient disjointes. +class BRepAlgo_FaceRestrictor +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepAlgo_FaceRestrictor(); + + //! the surface of will be the surface of each new + //! faces built. + //! is used to update pcurves on edges if necessary. + //! See Add(). + Standard_EXPORT void Init(const TopoDS_Face& F, + const Standard_Boolean Proj = Standard_False, + const Standard_Boolean ControlOrientation = Standard_False); + + //! Add the wire to the set of wires. + //! + //! Warning: + //! The Wires must be closed. + //! + //! The edges of can be modified if they don't have + //! pcurves on the surface of . In this case + //! if is false the first pcurve of the edge + //! is positioned on . + //! if is True, the Pcurve On is the + //! projection of the curve 3d on . + Standard_EXPORT void Add(TopoDS_Wire& W); + + //! Removes all the Wires + Standard_EXPORT void Clear(); + + //! Evaluate all the faces limited by the set of Wires. + Standard_EXPORT void Perform(); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT Standard_Boolean More() const; + + Standard_EXPORT void Next(); + + Standard_EXPORT TopoDS_Face Current() const; + +protected: +private: + //! Evaluate all the faces limited by the set of Wires. + Standard_EXPORT void PerformWithCorrection(); + + Standard_Boolean myDone; + Standard_Boolean modeProj; + TopoDS_Face myFace; + TopTools_ListOfShape wires; + TopTools_ListOfShape faces; + Standard_Boolean myCorrection; + TopTools_DataMapOfShapeListOfShape keyIsIn; + TopTools_DataMapOfShapeListOfShape keyContains; +}; + +#endif // _BRepAlgo_FaceRestrictor_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgo_NormalProjection.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgo_NormalProjection.hxx new file mode 100644 index 00000000..3b3aeedb --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepAlgo_NormalProjection.hxx @@ -0,0 +1,121 @@ +// Created on: 1997-10-13 +// Created by: Roman BORISOV +// Copyright (c) 1997-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepAlgo_NormalProjection_HeaderFile +#define _BRepAlgo_NormalProjection_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" + +#include "TopoDS_Shape.hxx" +#include "GeomAbs_Shape.hxx" +#include "Standard_Integer.hxx" +#include "TopTools_DataMapOfShapeShape.hxx" +#include "TopTools_DataMapOfShapeListOfShape.hxx" +#include "TopTools_ListOfShape.hxx" +class TopoDS_Edge; +class Adaptor3d_Curve; + +//! This class makes the projection of a wire on a +//! shape. +class BRepAlgo_NormalProjection +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepAlgo_NormalProjection(); + + Standard_EXPORT BRepAlgo_NormalProjection(const TopoDS_Shape& S); + + Standard_EXPORT void Init(const TopoDS_Shape& S); + + //! Add an edge or a wire to the list of shape to project + Standard_EXPORT void Add(const TopoDS_Shape& ToProj); + + //! Set the parameters used for computation + //! Tol3d is the required tolerance between the 3d projected + //! curve and its 2d representation + //! InternalContinuity is the order of constraints + //! used for approximation. + //! MaxDeg and MaxSeg are the maximum degree and the maximum + //! number of segment for BSpline resulting of an approximation. + Standard_EXPORT void SetParams(const Standard_Real Tol3D, + const Standard_Real Tol2D, + const GeomAbs_Shape InternalContinuity, + const Standard_Integer MaxDegree, + const Standard_Integer MaxSeg); + + //! Set the parameters used for computation + //! in their default values + Standard_EXPORT void SetDefaultParams(); + + //! Sets the maximum distance between target shape and + //! shape to project. If this condition is not satisfied then + //! corresponding part of solution is discarded. + //! if MaxDist < 0 then this method does not affect the algorithm + Standard_EXPORT void SetMaxDistance(const Standard_Real MaxDist); + + //! if With3d = Standard_False the 3dcurve is not computed + //! the initial 3dcurve is kept to build the resulting edges. + Standard_EXPORT void Compute3d(const Standard_Boolean With3d = Standard_True); + + //! Manage limitation of projected edges. + Standard_EXPORT void SetLimit(const Standard_Boolean FaceBoundaries = Standard_True); + + //! Builds the result as a compound. + Standard_EXPORT void Build(); + + Standard_EXPORT Standard_Boolean IsDone() const; + + //! returns the result + Standard_EXPORT const TopoDS_Shape& Projection() const; + + //! For a resulting edge, returns the corresponding initial edge. + Standard_EXPORT const TopoDS_Shape& Ancestor(const TopoDS_Edge& E) const; + + //! For a projected edge, returns the corresponding initial face. + Standard_EXPORT const TopoDS_Shape& Couple(const TopoDS_Edge& E) const; + + //! Returns the list of shapes generated from the + //! shape . + Standard_EXPORT const TopTools_ListOfShape& Generated(const TopoDS_Shape& S); + + Standard_EXPORT Standard_Boolean IsElementary(const Adaptor3d_Curve& C) const; + + //! build the result as a list of wire if possible in -- + //! a first returns a wire only if there is only a wire. + Standard_EXPORT Standard_Boolean BuildWire(TopTools_ListOfShape& Liste) const; + +protected: +private: + TopoDS_Shape myShape; + Standard_Boolean myIsDone; + Standard_Real myTol3d; + Standard_Real myTol2d; + Standard_Real myMaxDist; + Standard_Boolean myWith3d; + GeomAbs_Shape myContinuity; + Standard_Integer myMaxDegree; + Standard_Integer myMaxSeg; + Standard_Boolean myFaceBounds; + TopoDS_Shape myToProj; + TopTools_DataMapOfShapeShape myAncestorMap; + TopTools_DataMapOfShapeShape myCorresp; + TopTools_DataMapOfShapeListOfShape myDescendants; + TopoDS_Shape myRes; +}; + +#endif // _BRepAlgo_NormalProjection_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepApprox_SurfaceTool.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepApprox_SurfaceTool.hxx new file mode 100644 index 00000000..124e11ba --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepApprox_SurfaceTool.hxx @@ -0,0 +1,174 @@ +// Created on: 1995-07-20 +// Created by: Modelistation +// Copyright (c) 1995-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepApprox_SurfaceTool_HeaderFile +#define _BRepApprox_SurfaceTool_HeaderFile + +#include "BRepAdaptor_Surface.hxx" +#include "GeomAbs_Shape.hxx" +#include "TColStd_Array1OfReal.hxx" +#include "gp_Pnt.hxx" +#include "gp_Vec.hxx" +#include "GeomAbs_SurfaceType.hxx" +#include "gp_Pln.hxx" +#include "gp_Cylinder.hxx" +#include "gp_Cone.hxx" +#include "gp_Torus.hxx" +#include "gp_Sphere.hxx" +#include "gp_Ax1.hxx" +#include "gp_Dir.hxx" + +class Geom_BezierSurface; +class Geom_BSplineSurface; + +class BRepApprox_SurfaceTool +{ +public: + DEFINE_STANDARD_ALLOC + + static Standard_Real FirstUParameter(const BRepAdaptor_Surface& S); + + static Standard_Real FirstVParameter(const BRepAdaptor_Surface& S); + + static Standard_Real LastUParameter(const BRepAdaptor_Surface& S); + + static Standard_Real LastVParameter(const BRepAdaptor_Surface& S); + + static Standard_Integer NbUIntervals(const BRepAdaptor_Surface& S, const GeomAbs_Shape Sh); + + static Standard_Integer NbVIntervals(const BRepAdaptor_Surface& S, const GeomAbs_Shape Sh); + + static void UIntervals(const BRepAdaptor_Surface& S, + TColStd_Array1OfReal& T, + const GeomAbs_Shape Sh); + + static void VIntervals(const BRepAdaptor_Surface& S, + TColStd_Array1OfReal& T, + const GeomAbs_Shape Sh); + + //! If >= + static Handle(Adaptor3d_Surface) UTrim(const BRepAdaptor_Surface& S, + const Standard_Real First, + const Standard_Real Last, + const Standard_Real Tol); + + //! If >= + static Handle(Adaptor3d_Surface) VTrim(const BRepAdaptor_Surface& S, + const Standard_Real First, + const Standard_Real Last, + const Standard_Real Tol); + + static Standard_Boolean IsUClosed(const BRepAdaptor_Surface& S); + + static Standard_Boolean IsVClosed(const BRepAdaptor_Surface& S); + + static Standard_Boolean IsUPeriodic(const BRepAdaptor_Surface& S); + + static Standard_Real UPeriod(const BRepAdaptor_Surface& S); + + static Standard_Boolean IsVPeriodic(const BRepAdaptor_Surface& S); + + static Standard_Real VPeriod(const BRepAdaptor_Surface& S); + + static gp_Pnt Value(const BRepAdaptor_Surface& S, const Standard_Real u, const Standard_Real v); + + static void D0(const BRepAdaptor_Surface& S, + const Standard_Real u, + const Standard_Real v, + gp_Pnt& P); + + static void D1(const BRepAdaptor_Surface& S, + const Standard_Real u, + const Standard_Real v, + gp_Pnt& P, + gp_Vec& D1u, + gp_Vec& D1v); + + static void D2(const BRepAdaptor_Surface& S, + const Standard_Real u, + const Standard_Real v, + gp_Pnt& P, + gp_Vec& D1U, + gp_Vec& D1V, + gp_Vec& D2U, + gp_Vec& D2V, + gp_Vec& D2UV); + + static void D3(const BRepAdaptor_Surface& S, + const Standard_Real u, + const Standard_Real v, + gp_Pnt& P, + gp_Vec& D1U, + gp_Vec& D1V, + gp_Vec& D2U, + gp_Vec& D2V, + gp_Vec& D2UV, + gp_Vec& D3U, + gp_Vec& D3V, + gp_Vec& D3UUV, + gp_Vec& D3UVV); + + static gp_Vec DN(const BRepAdaptor_Surface& S, + const Standard_Real u, + const Standard_Real v, + const Standard_Integer Nu, + const Standard_Integer Nv); + + static Standard_Real UResolution(const BRepAdaptor_Surface& S, const Standard_Real R3d); + + static Standard_Real VResolution(const BRepAdaptor_Surface& S, const Standard_Real R3d); + + static GeomAbs_SurfaceType GetType(const BRepAdaptor_Surface& S); + + static gp_Pln Plane(const BRepAdaptor_Surface& S); + + static gp_Cylinder Cylinder(const BRepAdaptor_Surface& S); + + static gp_Cone Cone(const BRepAdaptor_Surface& S); + + static gp_Torus Torus(const BRepAdaptor_Surface& S); + + static gp_Sphere Sphere(const BRepAdaptor_Surface& S); + + static Handle(Geom_BezierSurface) Bezier(const BRepAdaptor_Surface& S); + + static Handle(Geom_BSplineSurface) BSpline(const BRepAdaptor_Surface& S); + + static gp_Ax1 AxeOfRevolution(const BRepAdaptor_Surface& S); + + static gp_Dir Direction(const BRepAdaptor_Surface& S); + + static Handle(Adaptor3d_Curve) BasisCurve(const BRepAdaptor_Surface& S); + + Standard_EXPORT static Standard_Integer NbSamplesU(const BRepAdaptor_Surface& S); + + Standard_EXPORT static Standard_Integer NbSamplesV(const BRepAdaptor_Surface& S); + + Standard_EXPORT static Standard_Integer NbSamplesU(const BRepAdaptor_Surface& S, + const Standard_Real u1, + const Standard_Real u2); + + Standard_EXPORT static Standard_Integer NbSamplesV(const BRepAdaptor_Surface& S, + const Standard_Real v1, + const Standard_Real v2); + +protected: +private: +}; + +#include "BRepApprox_SurfaceTool.lxx" + +#endif // _BRepApprox_SurfaceTool_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepApprox_SurfaceTool.lxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepApprox_SurfaceTool.lxx new file mode 100644 index 00000000..e88775f7 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepApprox_SurfaceTool.lxx @@ -0,0 +1,252 @@ +// Created on: 1995-07-20 +// Created by: Modelistation +// Copyright (c) 1995-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#include "gp_Pnt.hxx" +#include "gp_Vec.hxx" +#include "gp_Pln.hxx" +#include "gp_Cylinder.hxx" +#include "gp_Cone.hxx" +#include "gp_Torus.hxx" +#include "gp_Sphere.hxx" +#include "gp_Ax1.hxx" +#include "gp_Dir.hxx" +#include "Geom_BezierSurface.hxx" +#include "Geom_BSplineSurface.hxx" +#include "Adaptor3d_Surface.hxx" +#include "Adaptor3d_Curve.hxx" + +inline Standard_Real BRepApprox_SurfaceTool::FirstUParameter(const BRepAdaptor_Surface& Surf) +{ + return Surf.FirstUParameter(); +} + +inline Standard_Real BRepApprox_SurfaceTool::FirstVParameter(const BRepAdaptor_Surface& Surf) +{ + return Surf.FirstVParameter(); +} + +inline Standard_Real BRepApprox_SurfaceTool::LastUParameter(const BRepAdaptor_Surface& Surf) +{ + return Surf.LastUParameter(); +} + +inline Standard_Real BRepApprox_SurfaceTool::LastVParameter(const BRepAdaptor_Surface& Surf) +{ + return Surf.LastVParameter(); +} + +inline Standard_Integer BRepApprox_SurfaceTool::NbUIntervals(const BRepAdaptor_Surface& Surf, + const GeomAbs_Shape S) +{ + return Surf.NbUIntervals(S); +} + +inline Standard_Integer BRepApprox_SurfaceTool::NbVIntervals(const BRepAdaptor_Surface& Surf, + const GeomAbs_Shape S) +{ + return Surf.NbVIntervals(S); +} + +inline void BRepApprox_SurfaceTool::UIntervals(const BRepAdaptor_Surface& Surf, + TColStd_Array1OfReal& Tab, + const GeomAbs_Shape S) +{ + Surf.UIntervals(Tab, S); +} + +inline void BRepApprox_SurfaceTool::VIntervals(const BRepAdaptor_Surface& Surf, + TColStd_Array1OfReal& Tab, + const GeomAbs_Shape S) +{ + Surf.VIntervals(Tab, S); +} + +inline Handle(Adaptor3d_Surface) BRepApprox_SurfaceTool::UTrim(const BRepAdaptor_Surface& Surf, + const Standard_Real F, + const Standard_Real L, + const Standard_Real Tol) +{ + return Surf.UTrim(F, L, Tol); +} + +inline Handle(Adaptor3d_Surface) BRepApprox_SurfaceTool::VTrim(const BRepAdaptor_Surface& Surf, + const Standard_Real F, + const Standard_Real L, + const Standard_Real Tol) +{ + return Surf.VTrim(F, L, Tol); +} + +inline Standard_Boolean BRepApprox_SurfaceTool::IsUClosed(const BRepAdaptor_Surface& S) +{ + return S.IsUClosed(); +} + +inline Standard_Boolean BRepApprox_SurfaceTool::IsVClosed(const BRepAdaptor_Surface& S) +{ + return S.IsVClosed(); +} + +inline Standard_Boolean BRepApprox_SurfaceTool::IsUPeriodic(const BRepAdaptor_Surface& S) +{ + return S.IsUPeriodic(); +} + +inline Standard_Real BRepApprox_SurfaceTool::UPeriod(const BRepAdaptor_Surface& S) +{ + return S.UPeriod(); +} + +inline Standard_Boolean BRepApprox_SurfaceTool::IsVPeriodic(const BRepAdaptor_Surface& S) +{ + return S.IsVPeriodic(); +} + +inline Standard_Real BRepApprox_SurfaceTool::VPeriod(const BRepAdaptor_Surface& S) +{ + return S.VPeriod(); +} + +inline gp_Pnt BRepApprox_SurfaceTool::Value(const BRepAdaptor_Surface& S, + const Standard_Real U, + const Standard_Real V) +{ + return S.Value(U, V); +} + +inline void BRepApprox_SurfaceTool::D0(const BRepAdaptor_Surface& S, + const Standard_Real U, + const Standard_Real V, + gp_Pnt& P) +{ + S.D0(U, V, P); +} + +inline void BRepApprox_SurfaceTool::D1(const BRepAdaptor_Surface& S, + const Standard_Real U, + const Standard_Real V, + gp_Pnt& P, + gp_Vec& D1U, + gp_Vec& D1V) +{ + S.D1(U, V, P, D1U, D1V); +} + +inline void BRepApprox_SurfaceTool::D2(const BRepAdaptor_Surface& S, + const Standard_Real U, + const Standard_Real V, + gp_Pnt& P, + gp_Vec& D1U, + gp_Vec& D1V, + gp_Vec& D2U, + gp_Vec& D2V, + gp_Vec& D2UV) +{ + S.D2(U, V, P, D1U, D1V, D2U, D2V, D2UV); +} + +inline void BRepApprox_SurfaceTool::D3(const BRepAdaptor_Surface& S, + const Standard_Real U, + const Standard_Real V, + gp_Pnt& P, + gp_Vec& D1U, + gp_Vec& D1V, + gp_Vec& D2U, + gp_Vec& D2V, + gp_Vec& D2UV, + gp_Vec& D3U, + gp_Vec& D3V, + gp_Vec& D3UUV, + gp_Vec& D3UVV) +{ + S.D3(U, V, P, D1U, D1V, D2U, D2V, D2UV, D3U, D3V, D3UUV, D3UVV); +} + +inline gp_Vec BRepApprox_SurfaceTool::DN(const BRepAdaptor_Surface& S, + const Standard_Real U, + const Standard_Real V, + const Standard_Integer Nu, + const Standard_Integer Nv) +{ + return S.DN(U, V, Nu, Nv); +} + +inline Standard_Real BRepApprox_SurfaceTool::UResolution(const BRepAdaptor_Surface& S, + const Standard_Real R3d) +{ + return S.UResolution(R3d); +} + +inline Standard_Real BRepApprox_SurfaceTool::VResolution(const BRepAdaptor_Surface& S, + const Standard_Real R3d) +{ + return S.VResolution(R3d); +} + +inline GeomAbs_SurfaceType BRepApprox_SurfaceTool::GetType(const BRepAdaptor_Surface& S) +{ + return S.GetType(); +} + +inline gp_Pln BRepApprox_SurfaceTool::Plane(const BRepAdaptor_Surface& S) +{ + return S.Plane(); +} + +inline gp_Cylinder BRepApprox_SurfaceTool::Cylinder(const BRepAdaptor_Surface& S) +{ + return S.Cylinder(); +} + +inline gp_Cone BRepApprox_SurfaceTool::Cone(const BRepAdaptor_Surface& S) +{ + return S.Cone(); +} + +inline gp_Sphere BRepApprox_SurfaceTool::Sphere(const BRepAdaptor_Surface& S) +{ + return S.Sphere(); +} + +inline gp_Torus BRepApprox_SurfaceTool::Torus(const BRepAdaptor_Surface& S) +{ + return S.Torus(); +} + +inline Handle(Geom_BezierSurface) BRepApprox_SurfaceTool::Bezier(const BRepAdaptor_Surface& S) +{ + return (S.Bezier()); +} + +inline Handle(Geom_BSplineSurface) BRepApprox_SurfaceTool::BSpline(const BRepAdaptor_Surface& S) +{ + return (S.BSpline()); +} + +inline gp_Ax1 BRepApprox_SurfaceTool::AxeOfRevolution(const BRepAdaptor_Surface& S) +{ + return (S.AxeOfRevolution()); +} + +inline gp_Dir BRepApprox_SurfaceTool::Direction(const BRepAdaptor_Surface& S) +{ + return (S.Direction()); +} + +inline Handle(Adaptor3d_Curve) BRepApprox_SurfaceTool::BasisCurve(const BRepAdaptor_Surface& S) +{ + return (S.BasisCurve()); +} diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_AppFuncRstRst.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_AppFuncRstRst.hxx new file mode 100644 index 00000000..097de290 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_AppFuncRstRst.hxx @@ -0,0 +1,56 @@ +// Created on: 1998-05-12 +// Created by: Philippe NOUAILLE +// Copyright (c) 1998-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBlend_AppFuncRstRst_HeaderFile +#define _BRepBlend_AppFuncRstRst_HeaderFile + +#include "Standard.hxx" +#include "Standard_Type.hxx" + +#include "BRepBlend_AppFuncRoot.hxx" +#include "math_Vector.hxx" +class BRepBlend_Line; +class Blend_RstRstFunction; +class Blend_AppFunction; +class Blend_Point; + +class BRepBlend_AppFuncRstRst; +DEFINE_STANDARD_HANDLE(BRepBlend_AppFuncRstRst, BRepBlend_AppFuncRoot) + +//! Function to approximate by AppSurface for Edge/Face (Curve/Curve contact). +class BRepBlend_AppFuncRstRst : public BRepBlend_AppFuncRoot +{ + +public: + Standard_EXPORT BRepBlend_AppFuncRstRst(Handle(BRepBlend_Line)& Line, + Blend_RstRstFunction& Func, + const Standard_Real Tol3d, + const Standard_Real Tol2d); + + Standard_EXPORT void Point(const Blend_AppFunction& Func, + const Standard_Real Param, + const math_Vector& Sol, + Blend_Point& Pnt) const Standard_OVERRIDE; + + Standard_EXPORT void Vec(math_Vector& Sol, const Blend_Point& Pnt) const Standard_OVERRIDE; + + DEFINE_STANDARD_RTTIEXT(BRepBlend_AppFuncRstRst, BRepBlend_AppFuncRoot) + +protected: +private: +}; + +#endif // _BRepBlend_AppFuncRstRst_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_ConstThroatInv.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_ConstThroatInv.hxx new file mode 100644 index 00000000..5c35e7fb --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_ConstThroatInv.hxx @@ -0,0 +1,22 @@ +// Created by: Julia GERASIMOVA +// Copyright (c) 2015 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBlend_ConstThroatInv_HeaderFile +#define _BRepBlend_ConstThroatInv_HeaderFile + +#include "BlendFunc_ConstThroatInv.hxx" + +typedef BlendFunc_ConstThroatInv BRepBlend_ConstThroatInv; + +#endif // _BRepBlend_ConstThroatInv_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_CurvPointRadInv.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_CurvPointRadInv.hxx new file mode 100644 index 00000000..92640500 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_CurvPointRadInv.hxx @@ -0,0 +1,98 @@ +// Created on: 1997-02-12 +// Created by: Laurent BOURESCHE +// Copyright (c) 1997-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBlend_CurvPointRadInv_HeaderFile +#define _BRepBlend_CurvPointRadInv_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "gp_Pnt.hxx" +#include "Standard_Integer.hxx" +#include "Blend_CurvPointFuncInv.hxx" +#include "math_Vector.hxx" + +class math_Matrix; + +//! Function of reframing between a point and a curve. +//! valid in cases of constant and progressive radius. +//! This function is used to find a solution on a done +//! point of the curve 1 when using RstRstConsRad or +//! CSConstRad... +//! The vector used in Value, Values and Derivatives +//! methods has to be the vector of the parametric +//! coordinates w, U where w is the parameter on the +//! guide line, U are the parametric coordinates of a +//! point on the partner curve 2. +class BRepBlend_CurvPointRadInv : public Blend_CurvPointFuncInv +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepBlend_CurvPointRadInv(const Handle(Adaptor3d_Curve)& C1, + const Handle(Adaptor3d_Curve)& C2); + + Standard_EXPORT void Set(const Standard_Integer Choix); + + //! returns 2. + Standard_EXPORT Standard_Integer NbEquations() const; + + //! computes the values of the Functions for the + //! variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Value(const math_Vector& X, math_Vector& F); + + //! returns the values of the derivatives for the + //! variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Derivatives(const math_Vector& X, math_Matrix& D); + + //! returns the values of the functions and the derivatives + //! for the variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Values(const math_Vector& X, math_Vector& F, math_Matrix& D); + + //! Set the Point on which a solution has to be found. + Standard_EXPORT void Set(const gp_Pnt& P); + + //! Returns in the vector Tolerance the parametric tolerance + //! for each of the 3 variables; + //! Tol is the tolerance used in 3d space. + Standard_EXPORT void GetTolerance(math_Vector& Tolerance, const Standard_Real Tol) const; + + //! Returns in the vector InfBound the lowest values allowed + //! for each of the 3 variables. + //! Returns in the vector SupBound the greatest values allowed + //! for each of the 3 variables. + Standard_EXPORT void GetBounds(math_Vector& InfBound, math_Vector& SupBound) const; + + //! Returns Standard_True if Sol is a zero of the function. + //! Tol is the tolerance used in 3d space. + Standard_EXPORT Standard_Boolean IsSolution(const math_Vector& Sol, const Standard_Real Tol); + +protected: +private: + Handle(Adaptor3d_Curve) curv1; + Handle(Adaptor3d_Curve) curv2; + gp_Pnt point; + Standard_Integer choix; +}; + +#endif // _BRepBlend_CurvPointRadInv_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_HCurve2dTool.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_HCurve2dTool.hxx new file mode 100644 index 00000000..ffbfc9fd --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_HCurve2dTool.hxx @@ -0,0 +1,140 @@ +// Created on: 1995-07-17 +// Created by: Laurent BUCHARD +// Copyright (c) 1995-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBlend_HCurve2dTool_HeaderFile +#define _BRepBlend_HCurve2dTool_HeaderFile + +#include "Adaptor2d_Curve2d.hxx" +#include "GeomAbs_CurveType.hxx" +#include "GeomAbs_Shape.hxx" +#include "gp_Lin2d.hxx" +#include "gp_Circ2d.hxx" +#include "gp_Elips2d.hxx" +#include "gp_Parab2d.hxx" +#include "gp_Pnt2d.hxx" +#include "gp_Vec2d.hxx" +#include "gp_Hypr2d.hxx" +#include "TColStd_Array1OfReal.hxx" + +class BRepBlend_HCurve2dTool +{ +public: + DEFINE_STANDARD_ALLOC + + static Standard_Real FirstParameter(const Handle(Adaptor2d_Curve2d)& C); + + static Standard_Real LastParameter(const Handle(Adaptor2d_Curve2d)& C); + + static GeomAbs_Shape Continuity(const Handle(Adaptor2d_Curve2d)& C); + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(myclass) >= + static Standard_Integer NbIntervals(const Handle(Adaptor2d_Curve2d)& C, const GeomAbs_Shape S); + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! + //! The array must provide enough room to accommodate + //! for the parameters. i.e. T.Length() > NbIntervals() + static void Intervals(const Handle(Adaptor2d_Curve2d)& C, + TColStd_Array1OfReal& T, + const GeomAbs_Shape S); + + static Standard_Boolean IsClosed(const Handle(Adaptor2d_Curve2d)& C); + + static Standard_Boolean IsPeriodic(const Handle(Adaptor2d_Curve2d)& C); + + static Standard_Real Period(const Handle(Adaptor2d_Curve2d)& C); + + //! Computes the point of parameter U on the curve. + static gp_Pnt2d Value(const Handle(Adaptor2d_Curve2d)& C, const Standard_Real U); + + //! Computes the point of parameter U on the curve. + static void D0(const Handle(Adaptor2d_Curve2d)& C, const Standard_Real U, gp_Pnt2d& P); + + //! Computes the point of parameter U on the curve with its + //! first derivative. + //! Raised if the continuity of the current interval + //! is not C1. + static void D1(const Handle(Adaptor2d_Curve2d)& C, + const Standard_Real U, + gp_Pnt2d& P, + gp_Vec2d& V); + + //! Returns the point P of parameter U, the first and second + //! derivatives V1 and V2. + //! Raised if the continuity of the current interval + //! is not C2. + static void D2(const Handle(Adaptor2d_Curve2d)& C, + const Standard_Real U, + gp_Pnt2d& P, + gp_Vec2d& V1, + gp_Vec2d& V2); + + //! Returns the point P of parameter U, the first, the second + //! and the third derivative. + //! Raised if the continuity of the current interval + //! is not C3. + static void D3(const Handle(Adaptor2d_Curve2d)& C, + const Standard_Real U, + gp_Pnt2d& P, + gp_Vec2d& V1, + gp_Vec2d& V2, + gp_Vec2d& V3); + + //! The returned vector gives the value of the derivative for the + //! order of derivation N. + //! Raised if the continuity of the current interval + //! is not CN. + //! Raised if N < 1. + static gp_Vec2d DN(const Handle(Adaptor2d_Curve2d)& C, + const Standard_Real U, + const Standard_Integer N); + + //! Returns the parametric resolution corresponding + //! to the real space resolution . + static Standard_Real Resolution(const Handle(Adaptor2d_Curve2d)& C, const Standard_Real R3d); + + //! Returns the type of the curve in the current + //! interval : Line, Circle, Ellipse, Hyperbola, + //! Parabola, BezierCurve, BSplineCurve, OtherCurve. + static GeomAbs_CurveType GetType(const Handle(Adaptor2d_Curve2d)& C); + + static gp_Lin2d Line(const Handle(Adaptor2d_Curve2d)& C); + + static gp_Circ2d Circle(const Handle(Adaptor2d_Curve2d)& C); + + static gp_Elips2d Ellipse(const Handle(Adaptor2d_Curve2d)& C); + + static gp_Hypr2d Hyperbola(const Handle(Adaptor2d_Curve2d)& C); + + static gp_Parab2d Parabola(const Handle(Adaptor2d_Curve2d)& C); + + static Handle(Geom2d_BezierCurve) Bezier(const Handle(Adaptor2d_Curve2d)& C); + + static Handle(Geom2d_BSplineCurve) BSpline(const Handle(Adaptor2d_Curve2d)& C); + + Standard_EXPORT static Standard_Integer NbSamples(const Handle(Adaptor2d_Curve2d)& C, + const Standard_Real U0, + const Standard_Real U1); + +protected: +private: +}; + +#include "BRepBlend_HCurve2dTool.lxx" + +#endif // _BRepBlend_HCurve2dTool_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_HCurve2dTool.lxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_HCurve2dTool.lxx new file mode 100644 index 00000000..62cf191b --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_HCurve2dTool.lxx @@ -0,0 +1,195 @@ +// Created on: 1992-10-22 +// Created by: Laurent BUCHARD +// Copyright (c) 1992-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#include "GeomAbs_CurveType.hxx" +#include "GeomAbs_Shape.hxx" + +#include "gp_Vec2d.hxx" +#include "gp_Lin2d.hxx" +#include "gp_Circ2d.hxx" +#include "gp_Elips2d.hxx" +#include "gp_Parab2d.hxx" +#include "gp_Hypr2d.hxx" + +#include "Geom2d_BezierCurve.hxx" +#include "Geom2d_BSplineCurve.hxx" + +#include "TColStd_Array1OfReal.hxx" + +//============================================================ +inline Standard_Real BRepBlend_HCurve2dTool::FirstParameter(const Handle(Adaptor2d_Curve2d)& C) +{ + return (C->FirstParameter()); +} + +//============================================================ +inline Standard_Real BRepBlend_HCurve2dTool::LastParameter(const Handle(Adaptor2d_Curve2d)& C) +{ + return (C->LastParameter()); +} + +//============================================================ +inline GeomAbs_Shape BRepBlend_HCurve2dTool::Continuity(const Handle(Adaptor2d_Curve2d)& C) +{ + return (C->Continuity()); +} + +//============================================================ +inline Standard_Integer BRepBlend_HCurve2dTool::NbIntervals(const Handle(Adaptor2d_Curve2d)& C, + const GeomAbs_Shape Sh) +{ + return (C->NbIntervals(Sh)); +} + +//============================================================ +inline void BRepBlend_HCurve2dTool::Intervals(const Handle(Adaptor2d_Curve2d)& C, + TColStd_Array1OfReal& Tab, + const GeomAbs_Shape Sh) +{ + C->Intervals(Tab, Sh); +} + +//============================================================ +inline Standard_Boolean BRepBlend_HCurve2dTool::IsClosed(const Handle(Adaptor2d_Curve2d)& C) +{ + return (C->IsClosed()); +} + +//============================================================ +inline Standard_Boolean BRepBlend_HCurve2dTool::IsPeriodic(const Handle(Adaptor2d_Curve2d)& C) +{ + return (C->IsPeriodic()); +} + +//============================================================ +inline Standard_Real BRepBlend_HCurve2dTool::Period(const Handle(Adaptor2d_Curve2d)& C) +{ + return (C->Period()); +} + +//============================================================ +inline gp_Pnt2d BRepBlend_HCurve2dTool::Value(const Handle(Adaptor2d_Curve2d)& C, + const Standard_Real U) +{ + return (C->Value(U)); +} + +//============================================================ +inline void BRepBlend_HCurve2dTool::D0(const Handle(Adaptor2d_Curve2d)& C, + const Standard_Real U, + gp_Pnt2d& P) +{ + C->D0(U, P); +} + +//============================================================ +inline void BRepBlend_HCurve2dTool::D1(const Handle(Adaptor2d_Curve2d)& C, + const Standard_Real U, + gp_Pnt2d& P, + gp_Vec2d& T) +{ + C->D1(U, P, T); +} + +//============================================================ +inline void BRepBlend_HCurve2dTool::D2(const Handle(Adaptor2d_Curve2d)& C, + const Standard_Real U, + gp_Pnt2d& P, + gp_Vec2d& T, + gp_Vec2d& N) +{ + + C->D2(U, P, T, N); +} + +//============================================================ +inline void BRepBlend_HCurve2dTool::D3(const Handle(Adaptor2d_Curve2d)& C, + const Standard_Real U, + gp_Pnt2d& P, + gp_Vec2d& V1, + gp_Vec2d& V2, + gp_Vec2d& V3) +{ + + C->D3(U, P, V1, V2, V3); +} + +//============================================================ +inline gp_Vec2d BRepBlend_HCurve2dTool::DN(const Handle(Adaptor2d_Curve2d)& C, + const Standard_Real U, + const Standard_Integer N) +{ + + return (C->DN(U, N)); +} + +//============================================================ +inline Standard_Real BRepBlend_HCurve2dTool::Resolution(const Handle(Adaptor2d_Curve2d)& C, + const Standard_Real R3d) +{ + return (C->Resolution(R3d)); +} + +//============================================================ +inline GeomAbs_CurveType BRepBlend_HCurve2dTool::GetType(const Handle(Adaptor2d_Curve2d)& C) +{ + return (C->GetType()); +} + +//============================================================ +inline gp_Lin2d BRepBlend_HCurve2dTool::Line(const Handle(Adaptor2d_Curve2d)& C) +{ + return (C->Line()); +} + +//============================================================ +inline gp_Circ2d BRepBlend_HCurve2dTool::Circle(const Handle(Adaptor2d_Curve2d)& C) +{ + return (C->Circle()); +} + +//============================================================ +inline gp_Elips2d BRepBlend_HCurve2dTool::Ellipse(const Handle(Adaptor2d_Curve2d)& C) +{ + return (C->Ellipse()); +} + +//============================================================ +inline gp_Parab2d BRepBlend_HCurve2dTool::Parabola(const Handle(Adaptor2d_Curve2d)& C) +{ + return (C->Parabola()); +} + +//============================================================ +inline gp_Hypr2d BRepBlend_HCurve2dTool::Hyperbola(const Handle(Adaptor2d_Curve2d)& C) +{ + return (C->Hyperbola()); +} + +//============================================================ +inline Handle(Geom2d_BezierCurve) BRepBlend_HCurve2dTool::Bezier(const Handle(Adaptor2d_Curve2d)& C) +{ + return (C->Bezier()); +} + +//============================================================ +inline Handle(Geom2d_BSplineCurve) BRepBlend_HCurve2dTool::BSpline( + const Handle(Adaptor2d_Curve2d)& C) +{ + return (C->BSpline()); +} + +//============================================================ diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_RstRstConstRad.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_RstRstConstRad.hxx new file mode 100644 index 00000000..4a630507 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_RstRstConstRad.hxx @@ -0,0 +1,279 @@ +// Created on: 1997-02-06 +// Created by: Laurent BOURESCHE +// Copyright (c) 1997-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBlend_RstRstConstRad_HeaderFile +#define _BRepBlend_RstRstConstRad_HeaderFile + +#include "Adaptor3d_Surface.hxx" +#include "Adaptor3d_CurveOnSurface.hxx" +#include "gp_Pnt.hxx" +#include "gp_Pnt2d.hxx" +#include "gp_Vec.hxx" +#include "gp_Vec2d.hxx" +#include "BlendFunc_SectionShape.hxx" +#include "Convert_ParameterisationType.hxx" +#include "Blend_RstRstFunction.hxx" +#include "math_Vector.hxx" +#include "Blend_DecrochStatus.hxx" +#include "TColStd_Array1OfReal.hxx" +#include "GeomAbs_Shape.hxx" +#include "TColStd_Array1OfInteger.hxx" +#include "TColgp_Array1OfPnt.hxx" +#include "TColgp_Array1OfVec.hxx" +#include "TColgp_Array1OfPnt2d.hxx" +#include "TColgp_Array1OfVec2d.hxx" + +class math_Matrix; +class gp_Circ; +class Blend_Point; + +//! Copy of CSConstRad with a pcurve on surface +//! as support. +class BRepBlend_RstRstConstRad : public Blend_RstRstFunction +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepBlend_RstRstConstRad(const Handle(Adaptor3d_Surface)& Surf1, + const Handle(Adaptor2d_Curve2d)& Rst1, + const Handle(Adaptor3d_Surface)& Surf2, + const Handle(Adaptor2d_Curve2d)& Rst2, + const Handle(Adaptor3d_Curve)& CGuide); + + //! Returns 2. + Standard_EXPORT Standard_Integer NbVariables() const Standard_OVERRIDE; + + //! Returns 2. + Standard_EXPORT Standard_Integer NbEquations() const Standard_OVERRIDE; + + //! computes the values of the Functions for the + //! variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Value(const math_Vector& X, math_Vector& F) Standard_OVERRIDE; + + //! returns the values of the derivatives for the + //! variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Derivatives(const math_Vector& X, + math_Matrix& D) Standard_OVERRIDE; + + //! returns the values of the functions and the derivatives + //! for the variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Values(const math_Vector& X, + math_Vector& F, + math_Matrix& D) Standard_OVERRIDE; + + Standard_EXPORT void Set(const Handle(Adaptor3d_Surface)& SurfRef1, + const Handle(Adaptor2d_Curve2d)& RstRef1, + const Handle(Adaptor3d_Surface)& SurfRef2, + const Handle(Adaptor2d_Curve2d)& RstRef2); + + Standard_EXPORT void Set(const Standard_Real Param) Standard_OVERRIDE; + + //! Sets the bounds of the parametric interval on + //! the guide line. + //! This determines the derivatives in these values if the + //! function is not Cn. + Standard_EXPORT void Set(const Standard_Real First, const Standard_Real Last) Standard_OVERRIDE; + + Standard_EXPORT void GetTolerance(math_Vector& Tolerance, + const Standard_Real Tol) const Standard_OVERRIDE; + + Standard_EXPORT void GetBounds(math_Vector& InfBound, + math_Vector& SupBound) const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsSolution(const math_Vector& Sol, + const Standard_Real Tol) Standard_OVERRIDE; + + //! Returns the minimal Distance between two + //! extremities of calculated sections. + Standard_EXPORT virtual Standard_Real GetMinimalDistance() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Pnt& PointOnRst1() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Pnt& PointOnRst2() const Standard_OVERRIDE; + + //! Returns U,V coordinates of the point on the surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst1() const Standard_OVERRIDE; + + //! Returns U,V coordinates of the point on the curve on + //! surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst2() const Standard_OVERRIDE; + + //! Returns parameter of the point on the curve. + Standard_EXPORT Standard_Real ParameterOnRst1() const Standard_OVERRIDE; + + //! Returns parameter of the point on the curve. + Standard_EXPORT Standard_Real ParameterOnRst2() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsTangencyPoint() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec& TangentOnRst1() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnRst1() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec& TangentOnRst2() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnRst2() const Standard_OVERRIDE; + + //! Permet d ' implementer un critere de decrochage + //! specifique a la fonction. + Standard_EXPORT Blend_DecrochStatus Decroch(const math_Vector& Sol, + gp_Vec& NRst1, + gp_Vec& TgRst1, + gp_Vec& NRst2, + gp_Vec& TgRst2) const Standard_OVERRIDE; + + Standard_EXPORT void Set(const Standard_Real Radius, const Standard_Integer Choix); + + //! Sets the type of section generation for the + //! approximations. + Standard_EXPORT void Set(const BlendFunc_SectionShape TypeSection); + + //! Give the center of circle define by PtRst1, PtRst2 and + //! radius ray. + Standard_EXPORT Standard_Boolean CenterCircleRst1Rst2(const gp_Pnt& PtRst1, + const gp_Pnt& PtRst2, + const gp_Vec& np, + gp_Pnt& Center, + gp_Vec& VdMed) const; + + Standard_EXPORT void Section(const Standard_Real Param, + const Standard_Real U, + const Standard_Real V, + Standard_Real& Pdeb, + Standard_Real& Pfin, + gp_Circ& C); + + //! Returns if the section is rational + Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE; + + //! Returns the length of the maximum section + Standard_EXPORT Standard_Real GetSectionSize() const Standard_OVERRIDE; + + //! Compute the minimal value of weight for each poles + //! of all sections. + Standard_EXPORT void GetMinimalWeight(TColStd_Array1OfReal& Weigths) const Standard_OVERRIDE; + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(me) >= + Standard_EXPORT Standard_Integer NbIntervals(const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! The array must provide enough room to accommodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT void Intervals(TColStd_Array1OfReal& T, + const GeomAbs_Shape S) const Standard_OVERRIDE; + + Standard_EXPORT void GetShape(Standard_Integer& NbPoles, + Standard_Integer& NbKnots, + Standard_Integer& Degree, + Standard_Integer& NbPoles2d) Standard_OVERRIDE; + + //! Returns the tolerance to reach in approximation + //! to respect + //! BoundTol error at the Boundary + //! AngleTol tangent error at the Boundary + //! SurfTol error inside the surface. + Standard_EXPORT void GetTolerance(const Standard_Real BoundTol, + const Standard_Real SurfTol, + const Standard_Real AngleTol, + math_Vector& Tol3d, + math_Vector& Tol1D) const Standard_OVERRIDE; + + Standard_EXPORT void Knots(TColStd_Array1OfReal& TKnots) Standard_OVERRIDE; + + Standard_EXPORT void Mults(TColStd_Array1OfInteger& TMults) Standard_OVERRIDE; + + //! Used for the first and last section + Standard_EXPORT Standard_Boolean Section(const Blend_Point& P, + TColgp_Array1OfPnt& Poles, + TColgp_Array1OfVec& DPoles, + TColgp_Array1OfPnt2d& Poles2d, + TColgp_Array1OfVec2d& DPoles2d, + TColStd_Array1OfReal& Weigths, + TColStd_Array1OfReal& DWeigths) Standard_OVERRIDE; + + Standard_EXPORT void Section(const Blend_Point& P, + TColgp_Array1OfPnt& Poles, + TColgp_Array1OfPnt2d& Poles2d, + TColStd_Array1OfReal& Weigths) Standard_OVERRIDE; + + //! Used for the first and last section + //! The method returns Standard_True if the derivatives + //! are computed, otherwise it returns Standard_False. + Standard_EXPORT Standard_Boolean Section(const Blend_Point& P, + TColgp_Array1OfPnt& Poles, + TColgp_Array1OfVec& DPoles, + TColgp_Array1OfVec& D2Poles, + TColgp_Array1OfPnt2d& Poles2d, + TColgp_Array1OfVec2d& DPoles2d, + TColgp_Array1OfVec2d& D2Poles2d, + TColStd_Array1OfReal& Weigths, + TColStd_Array1OfReal& DWeigths, + TColStd_Array1OfReal& D2Weigths) Standard_OVERRIDE; + + Standard_EXPORT void Resolution(const Standard_Integer IC2d, + const Standard_Real Tol, + Standard_Real& TolU, + Standard_Real& TolV) const Standard_OVERRIDE; + +protected: +private: + Handle(Adaptor3d_Surface) surf1; + Handle(Adaptor3d_Surface) surf2; + Handle(Adaptor2d_Curve2d) rst1; + Handle(Adaptor2d_Curve2d) rst2; + Adaptor3d_CurveOnSurface cons1; + Adaptor3d_CurveOnSurface cons2; + Handle(Adaptor3d_Curve) guide; + Handle(Adaptor3d_Curve) tguide; + gp_Pnt ptrst1; + gp_Pnt ptrst2; + gp_Pnt2d pt2drst1; + gp_Pnt2d pt2drst2; + Standard_Real prmrst1; + Standard_Real prmrst2; + Standard_Boolean istangent; + gp_Vec tgrst1; + gp_Vec2d tg2drst1; + gp_Vec tgrst2; + gp_Vec2d tg2drst2; + Standard_Real ray; + Standard_Integer choix; + gp_Pnt ptgui; + gp_Vec d1gui; + gp_Vec d2gui; + gp_Vec nplan; + Standard_Real normtg; + Standard_Real theD; + Handle(Adaptor3d_Surface) surfref1; + Handle(Adaptor2d_Curve2d) rstref1; + Handle(Adaptor3d_Surface) surfref2; + Handle(Adaptor2d_Curve2d) rstref2; + Standard_Real maxang; + Standard_Real minang; + Standard_Real distmin; + BlendFunc_SectionShape mySShape; + Convert_ParameterisationType myTConv; +}; + +#endif // _BRepBlend_RstRstConstRad_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_RstRstEvolRad.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_RstRstEvolRad.hxx new file mode 100644 index 00000000..b4bdae3e --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_RstRstEvolRad.hxx @@ -0,0 +1,284 @@ +// Created on: 1997-02-06 +// Created by: Laurent BOURESCHE +// Copyright (c) 1997-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBlend_RstRstEvolRad_HeaderFile +#define _BRepBlend_RstRstEvolRad_HeaderFile + +#include "Adaptor3d_CurveOnSurface.hxx" +#include "Adaptor3d_Surface.hxx" +#include "gp_Pnt.hxx" +#include "gp_Pnt2d.hxx" +#include "gp_Vec.hxx" +#include "gp_Vec2d.hxx" +#include "BlendFunc_SectionShape.hxx" +#include "Convert_ParameterisationType.hxx" +#include "Blend_RstRstFunction.hxx" +#include "math_Vector.hxx" +#include "Blend_DecrochStatus.hxx" +#include "TColStd_Array1OfReal.hxx" +#include "GeomAbs_Shape.hxx" +#include "TColStd_Array1OfInteger.hxx" +#include "TColgp_Array1OfPnt.hxx" +#include "TColgp_Array1OfVec.hxx" +#include "TColgp_Array1OfPnt2d.hxx" +#include "TColgp_Array1OfVec2d.hxx" + +class Law_Function; +class math_Matrix; +class gp_Circ; +class Blend_Point; + +//! Function to approximate by AppSurface for +//! Edge/Edge and evolutif radius +class BRepBlend_RstRstEvolRad : public Blend_RstRstFunction +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepBlend_RstRstEvolRad(const Handle(Adaptor3d_Surface)& Surf1, + const Handle(Adaptor2d_Curve2d)& Rst1, + const Handle(Adaptor3d_Surface)& Surf2, + const Handle(Adaptor2d_Curve2d)& Rst2, + const Handle(Adaptor3d_Curve)& CGuide, + const Handle(Law_Function)& Evol); + + //! Returns 2. + Standard_EXPORT Standard_Integer NbVariables() const Standard_OVERRIDE; + + //! Returns 2. + Standard_EXPORT Standard_Integer NbEquations() const Standard_OVERRIDE; + + //! computes the values of the Functions for the + //! variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Value(const math_Vector& X, math_Vector& F) Standard_OVERRIDE; + + //! returns the values of the derivatives for the + //! variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Derivatives(const math_Vector& X, + math_Matrix& D) Standard_OVERRIDE; + + //! returns the values of the functions and the derivatives + //! for the variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Values(const math_Vector& X, + math_Vector& F, + math_Matrix& D) Standard_OVERRIDE; + + Standard_EXPORT void Set(const Handle(Adaptor3d_Surface)& SurfRef1, + const Handle(Adaptor2d_Curve2d)& RstRef1, + const Handle(Adaptor3d_Surface)& SurfRef2, + const Handle(Adaptor2d_Curve2d)& RstRef2); + + Standard_EXPORT void Set(const Standard_Real Param) Standard_OVERRIDE; + + //! Sets the bounds of the parametric interval on + //! the guide line. + //! This determines the derivatives in these values if the + //! function is not Cn. + Standard_EXPORT void Set(const Standard_Real First, const Standard_Real Last) Standard_OVERRIDE; + + Standard_EXPORT void GetTolerance(math_Vector& Tolerance, + const Standard_Real Tol) const Standard_OVERRIDE; + + Standard_EXPORT void GetBounds(math_Vector& InfBound, + math_Vector& SupBound) const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsSolution(const math_Vector& Sol, + const Standard_Real Tol) Standard_OVERRIDE; + + //! Returns the minimal Distance between two + //! extremities of calculated sections. + Standard_EXPORT virtual Standard_Real GetMinimalDistance() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Pnt& PointOnRst1() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Pnt& PointOnRst2() const Standard_OVERRIDE; + + //! Returns U,V coordinates of the point on the surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst1() const Standard_OVERRIDE; + + //! Returns U,V coordinates of the point on the curve on + //! surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst2() const Standard_OVERRIDE; + + //! Returns parameter of the point on the curve. + Standard_EXPORT Standard_Real ParameterOnRst1() const Standard_OVERRIDE; + + //! Returns parameter of the point on the curve. + Standard_EXPORT Standard_Real ParameterOnRst2() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsTangencyPoint() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec& TangentOnRst1() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnRst1() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec& TangentOnRst2() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnRst2() const Standard_OVERRIDE; + + //! Enables implementation of a criterion of decrochage + //! specific to the function. + Standard_EXPORT Blend_DecrochStatus Decroch(const math_Vector& Sol, + gp_Vec& NRst1, + gp_Vec& TgRst1, + gp_Vec& NRst2, + gp_Vec& TgRst2) const Standard_OVERRIDE; + + Standard_EXPORT void Set(const Standard_Integer Choix); + + //! Sets the type of section generation for the + //! approximations. + Standard_EXPORT void Set(const BlendFunc_SectionShape TypeSection); + + //! Gives the center of circle defined by PtRst1, PtRst2 and + //! radius ray. + Standard_EXPORT Standard_Boolean CenterCircleRst1Rst2(const gp_Pnt& PtRst1, + const gp_Pnt& PtRst2, + const gp_Vec& np, + gp_Pnt& Center, + gp_Vec& VdMed) const; + + Standard_EXPORT void Section(const Standard_Real Param, + const Standard_Real U, + const Standard_Real V, + Standard_Real& Pdeb, + Standard_Real& Pfin, + gp_Circ& C); + + //! Returns if the section is rational + Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE; + + //! Returns the length of the maximum section + Standard_EXPORT Standard_Real GetSectionSize() const Standard_OVERRIDE; + + //! Compute the minimal value of weight for each poles + //! of all sections. + Standard_EXPORT void GetMinimalWeight(TColStd_Array1OfReal& Weigths) const Standard_OVERRIDE; + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(me) >= + Standard_EXPORT Standard_Integer NbIntervals(const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! The array must provide enough room to accommodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT void Intervals(TColStd_Array1OfReal& T, + const GeomAbs_Shape S) const Standard_OVERRIDE; + + Standard_EXPORT void GetShape(Standard_Integer& NbPoles, + Standard_Integer& NbKnots, + Standard_Integer& Degree, + Standard_Integer& NbPoles2d) Standard_OVERRIDE; + + //! Returns the tolerance to reach in approximation + //! to respect + //! BoundTol error at the Boundary + //! AngleTol tangent error at the Boundary + //! SurfTol error inside the surface. + Standard_EXPORT void GetTolerance(const Standard_Real BoundTol, + const Standard_Real SurfTol, + const Standard_Real AngleTol, + math_Vector& Tol3d, + math_Vector& Tol1D) const Standard_OVERRIDE; + + Standard_EXPORT void Knots(TColStd_Array1OfReal& TKnots) Standard_OVERRIDE; + + Standard_EXPORT void Mults(TColStd_Array1OfInteger& TMults) Standard_OVERRIDE; + + //! Used for the first and last section + Standard_EXPORT Standard_Boolean Section(const Blend_Point& P, + TColgp_Array1OfPnt& Poles, + TColgp_Array1OfVec& DPoles, + TColgp_Array1OfPnt2d& Poles2d, + TColgp_Array1OfVec2d& DPoles2d, + TColStd_Array1OfReal& Weigths, + TColStd_Array1OfReal& DWeigths) Standard_OVERRIDE; + + Standard_EXPORT void Section(const Blend_Point& P, + TColgp_Array1OfPnt& Poles, + TColgp_Array1OfPnt2d& Poles2d, + TColStd_Array1OfReal& Weigths) Standard_OVERRIDE; + + //! Used for the first and last section + //! The method returns Standard_True if the derivatives + //! are computed, otherwise it returns Standard_False. + Standard_EXPORT Standard_Boolean Section(const Blend_Point& P, + TColgp_Array1OfPnt& Poles, + TColgp_Array1OfVec& DPoles, + TColgp_Array1OfVec& D2Poles, + TColgp_Array1OfPnt2d& Poles2d, + TColgp_Array1OfVec2d& DPoles2d, + TColgp_Array1OfVec2d& D2Poles2d, + TColStd_Array1OfReal& Weigths, + TColStd_Array1OfReal& DWeigths, + TColStd_Array1OfReal& D2Weigths) Standard_OVERRIDE; + + Standard_EXPORT void Resolution(const Standard_Integer IC2d, + const Standard_Real Tol, + Standard_Real& TolU, + Standard_Real& TolV) const Standard_OVERRIDE; + +protected: +private: + Handle(Adaptor3d_Surface) surf1; + Handle(Adaptor3d_Surface) surf2; + Handle(Adaptor2d_Curve2d) rst1; + Handle(Adaptor2d_Curve2d) rst2; + Adaptor3d_CurveOnSurface cons1; + Adaptor3d_CurveOnSurface cons2; + Handle(Adaptor3d_Curve) guide; + Handle(Adaptor3d_Curve) tguide; + gp_Pnt ptrst1; + gp_Pnt ptrst2; + gp_Pnt2d pt2drst1; + gp_Pnt2d pt2drst2; + Standard_Real prmrst1; + Standard_Real prmrst2; + Standard_Boolean istangent; + gp_Vec tgrst1; + gp_Vec2d tg2drst1; + gp_Vec tgrst2; + gp_Vec2d tg2drst2; + Standard_Real ray; + Standard_Real dray; + Standard_Integer choix; + gp_Pnt ptgui; + gp_Vec d1gui; + gp_Vec d2gui; + gp_Vec nplan; + Standard_Real normtg; + Standard_Real theD; + Handle(Adaptor3d_Surface) surfref1; + Handle(Adaptor2d_Curve2d) rstref1; + Handle(Adaptor3d_Surface) surfref2; + Handle(Adaptor2d_Curve2d) rstref2; + Standard_Real maxang; + Standard_Real minang; + Standard_Real distmin; + BlendFunc_SectionShape mySShape; + Convert_ParameterisationType myTConv; + Handle(Law_Function) tevol; + Handle(Law_Function) fevol; +}; + +#endif // _BRepBlend_RstRstEvolRad_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_SequenceOfLine.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_SequenceOfLine.hxx new file mode 100644 index 00000000..c906e81b --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_SequenceOfLine.hxx @@ -0,0 +1,25 @@ +// Created on: 1993-12-06 +// Created by: Jacques GOUSSARD +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BRepBlend_SequenceOfLine_HeaderFile +#define BRepBlend_SequenceOfLine_HeaderFile + +#include "BRepBlend_Line.hxx" +#include "NCollection_Sequence.hxx" + +typedef NCollection_Sequence BRepBlend_SequenceOfLine; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_SurfRstConstRad.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_SurfRstConstRad.hxx new file mode 100644 index 00000000..0811cffd --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_SurfRstConstRad.hxx @@ -0,0 +1,260 @@ +// Created on: 1997-02-06 +// Created by: Laurent BOURESCHE +// Copyright (c) 1997-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBlend_SurfRstConstRad_HeaderFile +#define _BRepBlend_SurfRstConstRad_HeaderFile + +#include "Adaptor3d_Surface.hxx" +#include "Adaptor3d_CurveOnSurface.hxx" +#include "gp_Pnt.hxx" +#include "gp_Pnt2d.hxx" +#include "gp_Vec.hxx" +#include "gp_Vec2d.hxx" +#include "BlendFunc_SectionShape.hxx" +#include "Convert_ParameterisationType.hxx" +#include "Blend_SurfRstFunction.hxx" +#include "math_Vector.hxx" +#include "TColStd_Array1OfReal.hxx" +#include "GeomAbs_Shape.hxx" +#include "TColStd_Array1OfInteger.hxx" +#include "TColgp_Array1OfPnt.hxx" +#include "TColgp_Array1OfVec.hxx" +#include "TColgp_Array1OfPnt2d.hxx" +#include "TColgp_Array1OfVec2d.hxx" + +class math_Matrix; +class gp_Circ; +class Blend_Point; + +//! Copy of CSConstRad with pcurve on surface +//! as support. +class BRepBlend_SurfRstConstRad : public Blend_SurfRstFunction +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepBlend_SurfRstConstRad(const Handle(Adaptor3d_Surface)& Surf, + const Handle(Adaptor3d_Surface)& SurfRst, + const Handle(Adaptor2d_Curve2d)& Rst, + const Handle(Adaptor3d_Curve)& CGuide); + + //! Returns 3. + Standard_EXPORT Standard_Integer NbVariables() const Standard_OVERRIDE; + + //! Returns 3. + Standard_EXPORT Standard_Integer NbEquations() const Standard_OVERRIDE; + + //! computes the values of the Functions for the + //! variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Value(const math_Vector& X, math_Vector& F) Standard_OVERRIDE; + + //! returns the values of the derivatives for the + //! variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Derivatives(const math_Vector& X, + math_Matrix& D) Standard_OVERRIDE; + + //! returns the values of the functions and the derivatives + //! for the variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Values(const math_Vector& X, + math_Vector& F, + math_Matrix& D) Standard_OVERRIDE; + + Standard_EXPORT void Set(const Handle(Adaptor3d_Surface)& SurfRef, + const Handle(Adaptor2d_Curve2d)& RstRef); + + Standard_EXPORT void Set(const Standard_Real Param) Standard_OVERRIDE; + + //! Sets the bounds of the parametric interval on + //! the guide line. + //! This determines the derivatives in these values if the + //! function is not Cn. + Standard_EXPORT void Set(const Standard_Real First, const Standard_Real Last) Standard_OVERRIDE; + + Standard_EXPORT void GetTolerance(math_Vector& Tolerance, + const Standard_Real Tol) const Standard_OVERRIDE; + + Standard_EXPORT void GetBounds(math_Vector& InfBound, + math_Vector& SupBound) const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsSolution(const math_Vector& Sol, + const Standard_Real Tol) Standard_OVERRIDE; + + //! Returns the minimal Distance between two + //! extremities of calculated sections. + Standard_EXPORT virtual Standard_Real GetMinimalDistance() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Pnt& PointOnS() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Pnt& PointOnRst() const Standard_OVERRIDE; + + //! Returns U,V coordinates of the point on the surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnS() const Standard_OVERRIDE; + + //! Returns U,V coordinates of the point on the curve on + //! surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst() const Standard_OVERRIDE; + + //! Returns parameter of the point on the curve. + Standard_EXPORT Standard_Real ParameterOnRst() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsTangencyPoint() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec& TangentOnS() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnS() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec& TangentOnRst() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnRst() const Standard_OVERRIDE; + + //! Enables implementation of a criterion of decrochage + //! specific to the function. + //! Warning: Can be called without previous call of issolution + //! but the values calculated can be senseless. + Standard_EXPORT Standard_Boolean Decroch(const math_Vector& Sol, + gp_Vec& NS, + gp_Vec& TgS) const Standard_OVERRIDE; + + Standard_EXPORT void Set(const Standard_Real Radius, const Standard_Integer Choix); + + //! Sets the type of section generation for the + //! approximations. + Standard_EXPORT void Set(const BlendFunc_SectionShape TypeSection); + + Standard_EXPORT void Section(const Standard_Real Param, + const Standard_Real U, + const Standard_Real V, + const Standard_Real W, + Standard_Real& Pdeb, + Standard_Real& Pfin, + gp_Circ& C); + + //! Returns if the section is rational + Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE; + + //! Returns the length of the maximum section + Standard_EXPORT Standard_Real GetSectionSize() const Standard_OVERRIDE; + + //! Compute the minimal value of weight for each poles + //! of all sections. + Standard_EXPORT void GetMinimalWeight(TColStd_Array1OfReal& Weigths) const Standard_OVERRIDE; + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(me) >= + Standard_EXPORT Standard_Integer NbIntervals(const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! The array must provide enough room to accommodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT void Intervals(TColStd_Array1OfReal& T, + const GeomAbs_Shape S) const Standard_OVERRIDE; + + Standard_EXPORT void GetShape(Standard_Integer& NbPoles, + Standard_Integer& NbKnots, + Standard_Integer& Degree, + Standard_Integer& NbPoles2d) Standard_OVERRIDE; + + //! Returns the tolerance to reach in approximation + //! to respect + //! BoundTol error at the Boundary + //! AngleTol tangent error at the Boundary + //! SurfTol error inside the surface. + Standard_EXPORT void GetTolerance(const Standard_Real BoundTol, + const Standard_Real SurfTol, + const Standard_Real AngleTol, + math_Vector& Tol3d, + math_Vector& Tol1D) const Standard_OVERRIDE; + + Standard_EXPORT void Knots(TColStd_Array1OfReal& TKnots) Standard_OVERRIDE; + + Standard_EXPORT void Mults(TColStd_Array1OfInteger& TMults) Standard_OVERRIDE; + + //! Used for the first and last section + Standard_EXPORT Standard_Boolean Section(const Blend_Point& P, + TColgp_Array1OfPnt& Poles, + TColgp_Array1OfVec& DPoles, + TColgp_Array1OfPnt2d& Poles2d, + TColgp_Array1OfVec2d& DPoles2d, + TColStd_Array1OfReal& Weigths, + TColStd_Array1OfReal& DWeigths) Standard_OVERRIDE; + + //! Used for the first and last section + //! The method returns Standard_True if the derivatives + //! are computed, otherwise it returns Standard_False. + Standard_EXPORT Standard_Boolean Section(const Blend_Point& P, + TColgp_Array1OfPnt& Poles, + TColgp_Array1OfVec& DPoles, + TColgp_Array1OfVec& D2Poles, + TColgp_Array1OfPnt2d& Poles2d, + TColgp_Array1OfVec2d& DPoles2d, + TColgp_Array1OfVec2d& D2Poles2d, + TColStd_Array1OfReal& Weigths, + TColStd_Array1OfReal& DWeigths, + TColStd_Array1OfReal& D2Weigths) Standard_OVERRIDE; + + Standard_EXPORT void Section(const Blend_Point& P, + TColgp_Array1OfPnt& Poles, + TColgp_Array1OfPnt2d& Poles2d, + TColStd_Array1OfReal& Weigths) Standard_OVERRIDE; + + Standard_EXPORT void Resolution(const Standard_Integer IC2d, + const Standard_Real Tol, + Standard_Real& TolU, + Standard_Real& TolV) const Standard_OVERRIDE; + +protected: +private: + Handle(Adaptor3d_Surface) surf; + Handle(Adaptor3d_Surface) surfrst; + Handle(Adaptor2d_Curve2d) rst; + Adaptor3d_CurveOnSurface cons; + Handle(Adaptor3d_Curve) guide; + Handle(Adaptor3d_Curve) tguide; + gp_Pnt pts; + gp_Pnt ptrst; + gp_Pnt2d pt2ds; + gp_Pnt2d pt2drst; + Standard_Real prmrst; + Standard_Boolean istangent; + gp_Vec tgs; + gp_Vec2d tg2ds; + gp_Vec tgrst; + gp_Vec2d tg2drst; + Standard_Real ray; + Standard_Integer choix; + gp_Pnt ptgui; + gp_Vec d1gui; + gp_Vec d2gui; + gp_Vec nplan; + Standard_Real normtg; + Standard_Real theD; + Handle(Adaptor3d_Surface) surfref; + Handle(Adaptor2d_Curve2d) rstref; + Standard_Real maxang; + Standard_Real minang; + Standard_Real distmin; + BlendFunc_SectionShape mySShape; + Convert_ParameterisationType myTConv; +}; + +#endif // _BRepBlend_SurfRstConstRad_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_SurfRstEvolRad.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_SurfRstEvolRad.hxx new file mode 100644 index 00000000..d308a3ce --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBlend_SurfRstEvolRad.hxx @@ -0,0 +1,264 @@ +// Created on: 1997-07-28 +// Created by: Jerome LEMONIER +// Copyright (c) 1997-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBlend_SurfRstEvolRad_HeaderFile +#define _BRepBlend_SurfRstEvolRad_HeaderFile + +#include "Adaptor3d_CurveOnSurface.hxx" +#include "Adaptor3d_Surface.hxx" +#include "gp_Pnt.hxx" +#include "gp_Pnt2d.hxx" +#include "gp_Vec.hxx" +#include "gp_Vec2d.hxx" +#include "BlendFunc_SectionShape.hxx" +#include "Convert_ParameterisationType.hxx" +#include "Blend_SurfRstFunction.hxx" +#include "math_Vector.hxx" +#include "TColStd_Array1OfReal.hxx" +#include "GeomAbs_Shape.hxx" +#include "TColStd_Array1OfInteger.hxx" +#include "TColgp_Array1OfPnt.hxx" +#include "TColgp_Array1OfVec.hxx" +#include "TColgp_Array1OfPnt2d.hxx" +#include "TColgp_Array1OfVec2d.hxx" + +class Law_Function; +class math_Matrix; +class gp_Circ; +class Blend_Point; + +//! Function to approximate by AppSurface for +//! Edge/Face and evolutif radius +class BRepBlend_SurfRstEvolRad : public Blend_SurfRstFunction +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepBlend_SurfRstEvolRad(const Handle(Adaptor3d_Surface)& Surf, + const Handle(Adaptor3d_Surface)& SurfRst, + const Handle(Adaptor2d_Curve2d)& Rst, + const Handle(Adaptor3d_Curve)& CGuide, + const Handle(Law_Function)& Evol); + + //! Returns 3. + Standard_EXPORT Standard_Integer NbVariables() const Standard_OVERRIDE; + + //! Returns 3. + Standard_EXPORT Standard_Integer NbEquations() const Standard_OVERRIDE; + + //! computes the values of the Functions for the + //! variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Value(const math_Vector& X, math_Vector& F) Standard_OVERRIDE; + + //! returns the values of the derivatives for the + //! variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Derivatives(const math_Vector& X, + math_Matrix& D) Standard_OVERRIDE; + + //! returns the values of the functions and the derivatives + //! for the variable . + //! Returns True if the computation was done successfully, + //! False otherwise. + Standard_EXPORT Standard_Boolean Values(const math_Vector& X, + math_Vector& F, + math_Matrix& D) Standard_OVERRIDE; + + Standard_EXPORT void Set(const Handle(Adaptor3d_Surface)& SurfRef, + const Handle(Adaptor2d_Curve2d)& RstRef); + + Standard_EXPORT void Set(const Standard_Real Param) Standard_OVERRIDE; + + //! Sets the bounds of the parametric interval on + //! the guide line. + //! This determines the derivatives in these values if the + //! function is not Cn. + Standard_EXPORT void Set(const Standard_Real First, const Standard_Real Last) Standard_OVERRIDE; + + Standard_EXPORT void GetTolerance(math_Vector& Tolerance, + const Standard_Real Tol) const Standard_OVERRIDE; + + Standard_EXPORT void GetBounds(math_Vector& InfBound, + math_Vector& SupBound) const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsSolution(const math_Vector& Sol, + const Standard_Real Tol) Standard_OVERRIDE; + + //! Returns the minimal Distance between two + //! extremities of calculated sections. + Standard_EXPORT virtual Standard_Real GetMinimalDistance() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Pnt& PointOnS() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Pnt& PointOnRst() const Standard_OVERRIDE; + + //! Returns U,V coordinates of the point on the surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnS() const Standard_OVERRIDE; + + //! Returns U,V coordinates of the point on the curve on + //! surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst() const Standard_OVERRIDE; + + //! Returns parameter of the point on the curve. + Standard_EXPORT Standard_Real ParameterOnRst() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsTangencyPoint() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec& TangentOnS() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnS() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec& TangentOnRst() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnRst() const Standard_OVERRIDE; + + //! Permet d ' implementer un critere de decrochage + //! specifique a la fonction. + Standard_EXPORT Standard_Boolean Decroch(const math_Vector& Sol, + gp_Vec& NS, + gp_Vec& TgS) const Standard_OVERRIDE; + + Standard_EXPORT void Set(const Standard_Integer Choix); + + //! Sets the type of section generation for the + //! approximations. + Standard_EXPORT void Set(const BlendFunc_SectionShape TypeSection); + + Standard_EXPORT void Section(const Standard_Real Param, + const Standard_Real U, + const Standard_Real V, + const Standard_Real W, + Standard_Real& Pdeb, + Standard_Real& Pfin, + gp_Circ& C); + + //! Returns if the section is rational + Standard_EXPORT Standard_Boolean IsRational() const Standard_OVERRIDE; + + //! Returns the length of the maximum section + Standard_EXPORT Standard_Real GetSectionSize() const Standard_OVERRIDE; + + //! Compute the minimal value of weight for each poles + //! of all sections. + Standard_EXPORT void GetMinimalWeight(TColStd_Array1OfReal& Weigths) const Standard_OVERRIDE; + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(me) >= + Standard_EXPORT Standard_Integer NbIntervals(const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! The array must provide enough room to accommodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT void Intervals(TColStd_Array1OfReal& T, + const GeomAbs_Shape S) const Standard_OVERRIDE; + + Standard_EXPORT void GetShape(Standard_Integer& NbPoles, + Standard_Integer& NbKnots, + Standard_Integer& Degree, + Standard_Integer& NbPoles2d) Standard_OVERRIDE; + + //! Returns the tolerance to reach in approximation + //! to respect + //! BoundTol error at the Boundary + //! AngleTol tangent error at the Boundary + //! SurfTol error inside the surface. + Standard_EXPORT void GetTolerance(const Standard_Real BoundTol, + const Standard_Real SurfTol, + const Standard_Real AngleTol, + math_Vector& Tol3d, + math_Vector& Tol1D) const Standard_OVERRIDE; + + Standard_EXPORT void Knots(TColStd_Array1OfReal& TKnots) Standard_OVERRIDE; + + Standard_EXPORT void Mults(TColStd_Array1OfInteger& TMults) Standard_OVERRIDE; + + //! Used for the first and last section + Standard_EXPORT Standard_Boolean Section(const Blend_Point& P, + TColgp_Array1OfPnt& Poles, + TColgp_Array1OfVec& DPoles, + TColgp_Array1OfPnt2d& Poles2d, + TColgp_Array1OfVec2d& DPoles2d, + TColStd_Array1OfReal& Weigths, + TColStd_Array1OfReal& DWeigths) Standard_OVERRIDE; + + //! Used for the first and last section + //! The method returns Standard_True if the derivatives + //! are computed, otherwise it returns Standard_False. + Standard_EXPORT Standard_Boolean Section(const Blend_Point& P, + TColgp_Array1OfPnt& Poles, + TColgp_Array1OfVec& DPoles, + TColgp_Array1OfVec& D2Poles, + TColgp_Array1OfPnt2d& Poles2d, + TColgp_Array1OfVec2d& DPoles2d, + TColgp_Array1OfVec2d& D2Poles2d, + TColStd_Array1OfReal& Weigths, + TColStd_Array1OfReal& DWeigths, + TColStd_Array1OfReal& D2Weigths) Standard_OVERRIDE; + + Standard_EXPORT void Section(const Blend_Point& P, + TColgp_Array1OfPnt& Poles, + TColgp_Array1OfPnt2d& Poles2d, + TColStd_Array1OfReal& Weigths) Standard_OVERRIDE; + + Standard_EXPORT void Resolution(const Standard_Integer IC2d, + const Standard_Real Tol, + Standard_Real& TolU, + Standard_Real& TolV) const Standard_OVERRIDE; + +protected: +private: + Handle(Adaptor3d_Surface) surf; + Handle(Adaptor3d_Surface) surfrst; + Handle(Adaptor2d_Curve2d) rst; + Adaptor3d_CurveOnSurface cons; + Handle(Adaptor3d_Curve) guide; + Handle(Adaptor3d_Curve) tguide; + gp_Pnt pts; + gp_Pnt ptrst; + gp_Pnt2d pt2ds; + gp_Pnt2d pt2drst; + Standard_Real prmrst; + Standard_Boolean istangent; + gp_Vec tgs; + gp_Vec2d tg2ds; + gp_Vec tgrst; + gp_Vec2d tg2drst; + Standard_Real ray; + Standard_Real dray; + Standard_Integer choix; + gp_Pnt ptgui; + gp_Vec d1gui; + gp_Vec d2gui; + gp_Vec nplan; + Standard_Real normtg; + Standard_Real theD; + Handle(Adaptor3d_Surface) surfref; + Handle(Adaptor2d_Curve2d) rstref; + Standard_Real maxang; + Standard_Real minang; + Standard_Real distmin; + BlendFunc_SectionShape mySShape; + Convert_ParameterisationType myTConv; + Handle(Law_Function) tevol; + Handle(Law_Function) fevol; + Standard_Real sg1; +}; + +#endif // _BRepBlend_SurfRstEvolRad_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_CellFilter.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_CellFilter.hxx new file mode 100644 index 00000000..bb13b449 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_CellFilter.hxx @@ -0,0 +1,23 @@ +// Created on: 2011-11-24 +// Created by: ANNA MASALSKAYA +// Copyright (c) 2011-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_CellFilter_HeaderFile +#define _BRepBuilderAPI_CellFilter_HeaderFile + +#include "BRepBuilderAPI_VertexInspector.hxx" + +typedef NCollection_CellFilter BRepBuilderAPI_CellFilter; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_Collect.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_Collect.hxx new file mode 100644 index 00000000..5fb144f9 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_Collect.hxx @@ -0,0 +1,56 @@ +// Created on: 1996-04-09 +// Created by: Yves FRICAUD +// Copyright (c) 1996-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_Collect_HeaderFile +#define _BRepBuilderAPI_Collect_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "TopoDS_Shape.hxx" +#include "TopTools_MapOfShape.hxx" +#include "TopTools_DataMapOfShapeListOfShape.hxx" +class BRepBuilderAPI_MakeShape; + +class BRepBuilderAPI_Collect +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepBuilderAPI_Collect(); + + Standard_EXPORT void Add(const TopoDS_Shape& SI, BRepBuilderAPI_MakeShape& MKS); + + Standard_EXPORT void AddGenerated(const TopoDS_Shape& S, const TopoDS_Shape& Gen); + + Standard_EXPORT void AddModif(const TopoDS_Shape& S, const TopoDS_Shape& Mod); + + Standard_EXPORT void Filter(const TopoDS_Shape& SF); + + Standard_EXPORT const TopTools_DataMapOfShapeListOfShape& Modification() const; + + Standard_EXPORT const TopTools_DataMapOfShapeListOfShape& Generated() const; + +protected: +private: + TopoDS_Shape myInitialShape; + TopTools_MapOfShape myDeleted; + TopTools_DataMapOfShapeListOfShape myMod; + TopTools_DataMapOfShapeListOfShape myGen; +}; + +#endif // _BRepBuilderAPI_Collect_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_Command.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_Command.hxx new file mode 100644 index 00000000..9570b334 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_Command.hxx @@ -0,0 +1,61 @@ +// Created on: 1993-07-21 +// Created by: Remi LEQUETTE +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_Command_HeaderFile +#define _BRepBuilderAPI_Command_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "Standard_Boolean.hxx" + +//! Root class for all commands in BRepBuilderAPI. +//! +//! Provides : +//! +//! * Managements of the notDone flag. +//! +//! * Catching of exceptions (not implemented). +//! +//! * Logging (not implemented). +class BRepBuilderAPI_Command +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT virtual ~BRepBuilderAPI_Command(); + + Standard_EXPORT virtual Standard_Boolean IsDone() const; + + //! Raises NotDone if done is false. + Standard_EXPORT void Check() const; + +protected: + //! Set done to False. + Standard_EXPORT BRepBuilderAPI_Command(); + + //! Set done to true. + Standard_EXPORT void Done(); + + //! Set done to false. + Standard_EXPORT void NotDone(); + +private: + Standard_Boolean myDone; +}; + +#endif // _BRepBuilderAPI_Command_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_EdgeError.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_EdgeError.hxx new file mode 100644 index 00000000..77dc41ca --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_EdgeError.hxx @@ -0,0 +1,55 @@ +// Created on: 1993-07-06 +// Created by: Remi LEQUETTE +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_EdgeError_HeaderFile +#define _BRepBuilderAPI_EdgeError_HeaderFile + +//! Indicates the outcome of the +//! construction of an edge, i.e. whether it has been successful or +//! not, as explained below: +//! - BRepBuilderAPI_EdgeDone No error occurred; The edge is +//! correctly built. +//! - BRepBuilderAPI_PointProjectionFailed No parameters were given but +//! the projection of the 3D points on the curve failed. This +//! happens when the point distance to the curve is greater than +//! the precision value. +//! - BRepBuilderAPI_ParameterOutOfRange +//! The given parameters are not in the parametric range +//! C->FirstParameter(), C->LastParameter() +//! - BRepBuilderAPI_DifferentPointsOnClosedCurve +//! The two vertices or points are the extremities of a closed +//! curve but have different locations. +//! - BRepBuilderAPI_PointWithInfiniteParameter +//! A finite coordinate point was associated with an infinite +//! parameter (see the Precision package for a definition of infinite values). +//! - BRepBuilderAPI_DifferentsPointAndParameter +//! The distance between the 3D point and the point evaluated +//! on the curve with the parameter is greater than the precision. +//! - BRepBuilderAPI_LineThroughIdenticPoints +//! Two identical points were given to define a line (construction +//! of an edge without curve); gp::Resolution is used for the confusion test. +enum BRepBuilderAPI_EdgeError +{ + BRepBuilderAPI_EdgeDone, + BRepBuilderAPI_PointProjectionFailed, + BRepBuilderAPI_ParameterOutOfRange, + BRepBuilderAPI_DifferentPointsOnClosedCurve, + BRepBuilderAPI_PointWithInfiniteParameter, + BRepBuilderAPI_DifferentsPointAndParameter, + BRepBuilderAPI_LineThroughIdenticPoints +}; + +#endif // _BRepBuilderAPI_EdgeError_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_FaceError.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_FaceError.hxx new file mode 100644 index 00000000..709699a2 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_FaceError.hxx @@ -0,0 +1,42 @@ +// Created on: 1993-07-06 +// Created by: Remi LEQUETTE +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_FaceError_HeaderFile +#define _BRepBuilderAPI_FaceError_HeaderFile + +//! Indicates the outcome of the +//! construction of a face, i.e. whether it has been successful or +//! not, as explained below: +//! - BRepBuilderAPI_FaceDone No error occurred. The face is +//! correctly built. +//! - BRepBuilderAPI_NoFace No initialization of the +//! algorithm; only an empty constructor was used. +//! - BRepBuilderAPI_NotPlanar +//! No surface was given and the wire was not planar. +//! - BRepBuilderAPI_CurveProjectionFailed +//! Not used so far. +//! - BRepBuilderAPI_ParametersOutOfRange +//! The parameters given to limit the surface are out of its bounds. +enum BRepBuilderAPI_FaceError +{ + BRepBuilderAPI_FaceDone, + BRepBuilderAPI_NoFace, + BRepBuilderAPI_NotPlanar, + BRepBuilderAPI_CurveProjectionFailed, + BRepBuilderAPI_ParametersOutOfRange +}; + +#endif // _BRepBuilderAPI_FaceError_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_FastSewing.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_FastSewing.hxx new file mode 100644 index 00000000..3c0be576 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_FastSewing.hxx @@ -0,0 +1,295 @@ +//! Created on: 2015-04-24 +//! Created by: NIKOLAI BUKHALOV +//! Copyright (c) 2015 OPEN CASCADE SAS +//! +//! This file is part of Open CASCADE Technology software library. +//! +//! This library is free software; you can redistribute it and/or modify it under +//! the terms of the GNU Lesser General Public License version 2.1 as published +//! by the Free Software Foundation, with special exception defined in the file +//! OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +//! distribution for complete text of the license and disclaimer of any warranty. +//! +//! Alternatively, this file may be used under the terms of Open CASCADE +//! commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_FastSewing_HeaderFile +#define _BRepBuilderAPI_FastSewing_HeaderFile + +#include "Standard_Transient.hxx" +#include "BRep_Builder.hxx" + +#include "NCollection_List.hxx" +#include "NCollection_Sequence.hxx" +#include "NCollection_Vector.hxx" +#include "NCollection_CellFilter.hxx" + +#include "TopoDS_Edge.hxx" +#include "TopoDS_Face.hxx" +#include "TopoDS_Vertex.hxx" +#include "TopoDS_Wire.hxx" + +//! This class performs fast sewing of surfaces (faces). It supposes +//! that all surfaces are finite and are naturally restricted by their bounds. +//! Moreover, it supposes that stitched together surfaces have the same parameterization +//! along common boundaries, therefore it does not perform time-consuming check for +//! SameParameter property of edges. +//! +//! For sewing, use this function as following: +//! - set tolerance value (default tolerance is 1.E-06) +//! - add all necessary surfaces (faces) +//! - check status if adding is correctly completed. +//! - compute -> Perform +//! - retrieve the error status if any +//! - retrieve the resulted shape +class BRepBuilderAPI_FastSewing : public Standard_Transient +{ +public: + typedef unsigned int FS_VARStatuses; + + //! Enumeration of result statuses + // ATTENTION!!! If you add new status, please + // describe it in GetStatuses() method + enum FS_Statuses + { + FS_OK = 0x00000000, + FS_Degenerated = 0x00000001, + FS_FindVertexError = 0x00000002, + FS_FindEdgeError = 0x00000004, + FS_FaceWithNullSurface = 0x00000008, + FS_NotNaturalBoundsFace = 0x00000010, + FS_InfiniteSurface = 0x00000020, + FS_EmptyInput = 0x00000040, + FS_Exception = 0x00000080 + }; + + //! Creates an object with tolerance of connexity + Standard_EXPORT BRepBuilderAPI_FastSewing(const Standard_Real theTolerance = 1.0e-06); + + //! Adds faces of a shape + Standard_EXPORT Standard_Boolean Add(const TopoDS_Shape& theShape); + + //! Adds a surface + Standard_EXPORT Standard_Boolean Add(const Handle(Geom_Surface)& theSurface); + + //! Compute resulted shape + Standard_EXPORT void Perform(void); + + //! Sets tolerance + void SetTolerance(const Standard_Real theToler) { myTolerance = theToler; } + + //! Returns tolerance + Standard_Real GetTolerance() const { return myTolerance; } + + //! Returns resulted shape + const TopoDS_Shape& GetResult() const { return myResShape; } + + //! Returns list of statuses. Print message if theOS != 0 + Standard_EXPORT FS_VARStatuses GetStatuses(Standard_OStream* const theOS = 0); + + DEFINE_STANDARD_RTTIEXT(BRepBuilderAPI_FastSewing, Standard_Transient) + +protected: + class NodeInspector; + + Standard_EXPORT void FindVertexes(const Standard_Integer theSurfID, + NCollection_CellFilter& theCells); + Standard_EXPORT void FindEdges(const Standard_Integer theSurfID); + Standard_EXPORT void UpdateEdgeInfo(const Standard_Integer theIDPrevVertex, + const Standard_Integer theIDCurrVertex, + const Standard_Integer theFaceID, + const Standard_Integer theIDCurvOnFace); + Standard_EXPORT void CreateNewEdge(const Standard_Integer theIDPrevVertex, + const Standard_Integer theIDCurrVertex, + const Standard_Integer theFaceID, + const Standard_Integer theIDCurvOnFace); + + Standard_EXPORT Standard_Real Compute3DRange(); + + //! Sets status. Returns numeric value of the status set + FS_VARStatuses SetStatus(FS_Statuses theStatus) + { + const FS_VARStatuses aStatusID = (FS_VARStatuses)(theStatus); + myStatusList |= aStatusID; + return aStatusID; + } + + class FS_Edge; + + // Classes FS_Vertex, FS_Face and FS_Edge keep information about + // relations between resulted members (e.g. which faces share this vertex? etc.) + + //! The struct corresponding to a vertex + struct FS_Vertex + { + public: + FS_Vertex() + : myID(-1) {}; + + //! Creates topological member (vertex) + void CreateTopologicalVertex(const Standard_Real theToler) + { + BRep_Builder aBuilder; + aBuilder.MakeVertex(myTopoVert, myPnt, theToler); + } + + //! Geometry point of this Vertex + gp_Pnt myPnt; + TopoDS_Vertex myTopoVert; + + //! List of faces and edges which share this vertex + NCollection_List myFaces; + NCollection_List myEdges; + + //! Identifies the place of this Vertex in + //! BRepBuilderAPI_FastSewing::myVertexVec list + Standard_Integer myID; + }; + + //! The struct corresponding to an face + struct FS_Face + { + FS_Face() + : myID(-1) + { + for (Standard_Integer i = 0; i < 4; i++) + { + myVertices[i] = -1; + myEdges[i] = -1; + } + }; + + //! Creates topological members (wire and face) + void CreateTopologicalWire(const NCollection_Vector& theEdgeVec, + const Standard_Real theToler); + void CreateTopologicalFace(); + + //! Sets vertex + void SetVertex(const Standard_Integer thePlaceID, const Standard_Integer theVertID) + { + Standard_RangeError_Raise_if((thePlaceID < 0) || (thePlaceID > 3), + "FS_Face::SetVertex(): OUT of Range"); + + myVertices[thePlaceID] = theVertID; + } + + //! Sets edge + void SetEdge(const Standard_Integer thePlaceID, const Standard_Integer theEdgeID) + { + Standard_RangeError_Raise_if((thePlaceID < 0) || (thePlaceID > 3), + "FS_Face::SetEdge(): OUT of Range"); + + myEdges[thePlaceID] = theEdgeID; + } + + TopoDS_Face mySrcFace; + TopoDS_Wire myWire; + TopoDS_Face myRetFace; + + //! myEdges[i] number of the edge in myEdgeVec + //! (i==0) <-> (V=Vf); (i==1) <-> (U=Ul); + //! (i==2) <-> (V=Vl); (i==3) <-> (U=Uf) + Standard_Integer myEdges[4]; + //! myVertices[i] is Start point of myEdges[i] + Standard_Integer myVertices[4]; + + //! Identifies the place of this Face in + //! BRepBuilderAPI_FastSewing::myFaceVec list + Standard_Integer myID; + }; + + //! The struct corresponding to a edge + class FS_Edge + { + public: + FS_Edge() + : myID(-1) + { + myVertices[0] = -1; + myVertices[1] = -1; + } + + FS_Edge(const Standard_Integer theIDVert1, const Standard_Integer theIDVert2) + : myID(-1) + { + myVertices[0] = theIDVert1; + myVertices[1] = theIDVert2; + }; + + //! Creates topological member (TopoDS_Edge) + void CreateTopologicalEdge(const NCollection_Vector& theVertexVec, + const NCollection_Vector& theFaceVec, + const Standard_Real theTol); + + //! Sets vertex + void SetVertex(const Standard_Integer thePlaceID, const Standard_Integer theVertID) + { + Standard_RangeError_Raise_if((thePlaceID < 0) || (thePlaceID > 1), + "FS_Face::SetVertex(): OUT of Range"); + + myVertices[thePlaceID] = theVertID; + } + + Standard_Boolean IsDegenerated() const { return (myVertices[0] == myVertices[1]); } + + //! List of faces which are shared with this edge + //! Value is the index of this shape in myFaceVec array + NCollection_Sequence myFaces; + + //! Identifies the place of this Edge in + //! BRepBuilderAPI_FastSewing::myEdgeVec list + Standard_Integer myID; + + TopoDS_Edge myTopoEdge; + + private: + //! Index of the vertex in myVertexVec array + Standard_Integer myVertices[2]; + }; + + //! This inspector will find a node nearest to the given point + //! not far than on the given tolerance + class NodeInspector : public NCollection_CellFilter_InspectorXYZ + { + public: + typedef Standard_Integer Target; + + NodeInspector(const NCollection_Vector& theVec, + const gp_Pnt& thePnt, + const Standard_Real theTol); + + Standard_EXPORT NCollection_CellFilter_Action Inspect(const Target theId); + + Target GetResult() { return myResID; } + + private: + NodeInspector& operator=(const NodeInspector&); + const NCollection_Vector& myVecOfVertexes; + gp_Pnt myPoint; + Standard_Real mySQToler; + Target myResID; + Standard_Boolean myIsFindingEnable; + }; + +private: + TopoDS_Shape myResShape; + + // myFaceVec, myVertexVec and myEdgeVec lists are filled only once!!!!! + + //! Vector of faces + NCollection_Vector myFaceVec; + //! Vector of Vertices + NCollection_Vector myVertexVec; + //! Vector of edges + NCollection_Vector myEdgeVec; + + //! Tolerance + Standard_Real myTolerance; + + //! Bits of computation status + FS_VARStatuses myStatusList; +}; + +DEFINE_STANDARD_HANDLE(BRepBuilderAPI_FastSewing, Standard_Transient) + +#endif // _BRepBuilderAPI_FastSewing_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_FindPlane.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_FindPlane.hxx new file mode 100644 index 00000000..93d14c8e --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_FindPlane.hxx @@ -0,0 +1,76 @@ +// Created on: 1995-11-02 +// Created by: Jing Cheng MEI +// Copyright (c) 1995-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_FindPlane_HeaderFile +#define _BRepBuilderAPI_FindPlane_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +class Geom_Plane; +class TopoDS_Shape; + +//! Describes functions to find the plane in which the edges +//! of a given shape are located. +//! A FindPlane object provides a framework for: +//! - extracting the edges of a given shape, +//! - implementing the construction algorithm, and +//! - consulting the result. +class BRepBuilderAPI_FindPlane +{ +public: + DEFINE_STANDARD_ALLOC + + //! Initializes an empty algorithm. The function Init is then used to define the shape. + Standard_EXPORT BRepBuilderAPI_FindPlane(); + + //! Constructs the plane containing the edges of the shape S. + //! A plane is built only if all the edges are within a distance + //! of less than or equal to tolerance from a planar surface. + //! This tolerance value is equal to the larger of the following two values: + //! - Tol, where the default value is negative, or + //! - the largest of the tolerance values assigned to the individual edges of S. + //! Use the function Found to verify that a plane is built. + //! The resulting plane is then retrieved using the function Plane. + Standard_EXPORT BRepBuilderAPI_FindPlane(const TopoDS_Shape& S, const Standard_Real Tol = -1); + + //! Constructs the plane containing the edges of the shape S. + //! A plane is built only if all the edges are within a distance + //! of less than or equal to tolerance from a planar surface. + //! This tolerance value is equal to the larger of the following two values: + //! - Tol, where the default value is negative, or + //! - the largest of the tolerance values assigned to the individual edges of S. + //! Use the function Found to verify that a plane is built. + //! The resulting plane is then retrieved using the function Plane. + Standard_EXPORT void Init(const TopoDS_Shape& S, const Standard_Real Tol = -1); + + //! Returns true if a plane containing the edges of the + //! shape is found and built. Use the function Plane to consult the result. + Standard_EXPORT Standard_Boolean Found() const; + + //! Returns the plane containing the edges of the shape. + //! Warning + //! Use the function Found to verify that the plane is built. If + //! a plane is not found, Plane returns a null handle. + Standard_EXPORT Handle(Geom_Plane) Plane() const; + +protected: +private: + Handle(Geom_Plane) myPlane; +}; + +#endif // _BRepBuilderAPI_FindPlane_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_GTransform.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_GTransform.hxx new file mode 100644 index 00000000..64285b0b --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_GTransform.hxx @@ -0,0 +1,106 @@ +// Created on: 1996-12-30 +// Created by: Stagiaire Mary FABIEN +// Copyright (c) 1996-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_GTransform_HeaderFile +#define _BRepBuilderAPI_GTransform_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" + +#include "gp_GTrsf.hxx" +#include "BRepBuilderAPI_Collect.hxx" +#include "BRepBuilderAPI_ModifyShape.hxx" +#include "TopTools_ListOfShape.hxx" +class TopoDS_Shape; + +//! Geometric transformation on a shape. +//! The transformation to be applied is defined as a gp_GTrsf +//! transformation. It may be: +//! - a transformation equivalent to a gp_Trsf transformation, the +//! most common case: you should , however, use a BRepAPI_Transform +//! object to perform this kind of transformation; or +//! - an affinity, or +//! - more generally, any type of point transformation which may +//! be defined by a three row, four column matrix of transformation. +//! In the last two cases, the underlying geometry of the +//! following shapes may change: +//! - a curve which supports an edge of the shape, or +//! - a surface which supports a face of the shape; +//! For example, a circle may be transformed into an ellipse when +//! applying an affinity transformation. +//! The transformation is applied to: +//! - all the curves which support edges of the shape, and +//! - all the surfaces which support faces of the shape. +//! A GTransform object provides a framework for: +//! - defining the geometric transformation to be applied, +//! - implementing the transformation algorithm, and +//! - consulting the result. +class BRepBuilderAPI_GTransform : public BRepBuilderAPI_ModifyShape +{ +public: + DEFINE_STANDARD_ALLOC + + //! Constructs a framework for applying the geometric + //! transformation T to a shape. Use the function + //! Perform to define the shape to transform. + Standard_EXPORT BRepBuilderAPI_GTransform(const gp_GTrsf& T); + + //! Constructs a framework for applying the geometric + //! transformation T to a shape, and applies it to the shape S. + //! - If the transformation T is direct and isometric (i.e. if + //! the determinant of the vectorial part of T is equal to + //! 1.), and if Copy equals false (default value), the + //! resulting shape is the same as the original but with + //! a new location assigned to it. + //! - In all other cases, the transformation is applied to + //! a duplicate of S. + //! Use the function Shape to access the result. + //! Note: the constructed framework can be reused to + //! apply the same geometric transformation to other + //! shapes: just specify them with the function Perform. + Standard_EXPORT BRepBuilderAPI_GTransform(const TopoDS_Shape& S, + const gp_GTrsf& T, + const Standard_Boolean Copy = Standard_False); + + //! Applies the geometric transformation defined at the + //! time of construction of this framework to the shape S. + //! - If the transformation T is direct and isometric (i.e. if + //! the determinant of the vectorial part of T is equal to + //! 1.), and if Copy equals false (default value), the + //! resulting shape is the same as the original but with + //! a new location assigned to it. + //! - In all other cases, the transformation is applied to a duplicate of S. + //! Use the function Shape to access the result. + //! Note: this framework can be reused to apply the same + //! geometric transformation to other shapes: just specify + //! them by calling the function Perform again. + Standard_EXPORT void Perform(const TopoDS_Shape& S, const Standard_Boolean Copy = Standard_False); + + //! Returns the list of shapes modified from the shape + //! . + Standard_EXPORT virtual const TopTools_ListOfShape& Modified(const TopoDS_Shape& S) + Standard_OVERRIDE; + + //! Returns the modified shape corresponding to . + Standard_EXPORT virtual TopoDS_Shape ModifiedShape(const TopoDS_Shape& S) const Standard_OVERRIDE; + +protected: +private: + gp_GTrsf myGTrsf; + BRepBuilderAPI_Collect myHist; +}; + +#endif // _BRepBuilderAPI_GTransform_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeEdge.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeEdge.hxx new file mode 100644 index 00000000..4a30028c --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeEdge.hxx @@ -0,0 +1,355 @@ +// Created on: 1993-07-06 +// Created by: Remi LEQUETTE +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_MakeEdge_HeaderFile +#define _BRepBuilderAPI_MakeEdge_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "BRepLib_MakeEdge.hxx" +#include "BRepBuilderAPI_MakeShape.hxx" +#include "Standard_Real.hxx" +#include "BRepBuilderAPI_EdgeError.hxx" +class TopoDS_Vertex; +class gp_Pnt; +class gp_Lin; +class gp_Circ; +class gp_Elips; +class gp_Hypr; +class gp_Parab; +class Geom_Curve; +class Geom2d_Curve; +class Geom_Surface; +class TopoDS_Edge; + +//! Provides methods to build edges. +//! +//! The methods have the following syntax, where +//! TheCurve is one of Lin, Circ, ... +//! +//! Create(C : TheCurve) +//! +//! Makes an edge on the whole curve. Add vertices +//! on finite curves. +//! +//! Create(C : TheCurve; p1,p2 : Real) +//! +//! Make an edge on the curve between parameters p1 +//! and p2. if p2 < p1 the edge will be REVERSED. If +//! p1 or p2 is infinite the curve will be open in +//! that direction. Vertices are created for finite +//! values of p1 and p2. +//! +//! Create(C : TheCurve; P1, P2 : Pnt from gp) +//! +//! Make an edge on the curve between the points P1 +//! and P2. The points are projected on the curve +//! and the previous method is used. An error is +//! raised if the points are not on the curve. +//! +//! Create(C : TheCurve; V1, V2 : Vertex from TopoDS) +//! +//! Make an edge on the curve between the vertices +//! V1 and V2. Same as the previous but no vertices +//! are created. If a vertex is Null the curve will +//! be open in this direction. +class BRepBuilderAPI_MakeEdge : public BRepBuilderAPI_MakeShape +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepBuilderAPI_MakeEdge(); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Lin& L); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Lin& L, + const Standard_Real p1, + const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Lin& L, const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Lin& L, + const TopoDS_Vertex& V1, + const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Circ& L); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Circ& L, + const Standard_Real p1, + const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Circ& L, const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Circ& L, + const TopoDS_Vertex& V1, + const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Elips& L); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Elips& L, + const Standard_Real p1, + const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Elips& L, const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Elips& L, + const TopoDS_Vertex& V1, + const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Hypr& L); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Hypr& L, + const Standard_Real p1, + const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Hypr& L, const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Hypr& L, + const TopoDS_Vertex& V1, + const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Parab& L); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Parab& L, + const Standard_Real p1, + const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Parab& L, const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const gp_Parab& L, + const TopoDS_Vertex& V1, + const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L, + const Standard_Real p1, + const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L, + const gp_Pnt& P1, + const gp_Pnt& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L, + const TopoDS_Vertex& V1, + const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L, + const gp_Pnt& P1, + const gp_Pnt& P2, + const Standard_Real p1, + const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom_Curve)& L, + const TopoDS_Vertex& V1, + const TopoDS_Vertex& V2, + const Standard_Real p1, + const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L, + const Handle(Geom_Surface)& S); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L, + const Handle(Geom_Surface)& S, + const Standard_Real p1, + const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L, + const Handle(Geom_Surface)& S, + const gp_Pnt& P1, + const gp_Pnt& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L, + const Handle(Geom_Surface)& S, + const TopoDS_Vertex& V1, + const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L, + const Handle(Geom_Surface)& S, + const gp_Pnt& P1, + const gp_Pnt& P2, + const Standard_Real p1, + const Standard_Real p2); + + //! The general method to directly create an edge is to give + //! - a 3D curve C as the support (geometric domain) of the edge, + //! - two vertices V1 and V2 to limit the curve (definition of the restriction of + //! the edge), and + //! - two real values p1 and p2 which are the parameters for the vertices V1 and V2 + //! on the curve. + //! The curve may be defined as a 2d curve in the parametric space of a surface: a + //! pcurve. The surface on which the edge is built is then kept at the level of the edge. + //! The default tolerance will be associated with this edge. + //! Rules applied to the arguments: + //! For the curve: + //! - The curve must not be a 'null handle'. + //! - If the curve is a trimmed curve the basis curve is used. + //! For the vertices: + //! - Vertices may be null shapes. When V1 or V2 is null the edge is open in the + //! corresponding direction and the parameter value p1 or p2 must be infinite + //! (remember that Precision::Infinite() defines an infinite value). + //! - The two vertices must be identical if they have the same 3D location. + //! Identical vertices are used in particular when the curve is closed. + //! For the parameters: + //! - The parameters must be in the parametric range of the curve (or the basis + //! curve if the curve is trimmed). If this condition is not satisfied the edge is not + //! built, and the Error function will return BRepAPI_ParameterOutOfRange. + //! - Parameter values must not be equal. If this condition is not satisfied (i.e. + //! if | p1 - p2 | ) the edge is not built, and the Error function will return + //! BRepAPI_LineThroughIdenticPoints. + //! Parameter values are expected to be given in increasing order: + //! C->FirstParameter() + //! - If the parameter values are given in decreasing order the vertices are switched, + //! i.e. the "first vertex" is on the point of parameter p2 and the "second vertex" is + //! on the point of parameter p1. In such a case, to keep the original intent of the + //! construction, the edge will be oriented "reversed". + //! - On a periodic curve the parameter values p1 and p2 are adjusted by adding or + //! subtracting the period to obtain p1 in the parametric range of the curve, and p2] + //! such that [ p1 , where Period is the period of the curve. + //! - A parameter value may be infinite. The edge is open in the corresponding + //! direction. However the corresponding vertex must be a null shape. If this condition + //! is not satisfied the edge is not built, and the Error function will return + //! BRepAPI_PointWithInfiniteParameter. + //! - The distance between the vertex and the point evaluated on the curve with the + //! parameter, must be lower than the precision of the vertex. If this condition is not + //! satisfied the edge is not built, and the Error function will return + //! BRepAPI_DifferentsPointAndParameter. + //! Other edge constructions + //! - The parameter values can be omitted, they will be computed by projecting the + //! vertices on the curve. Note that projection is the only way to evaluate the + //! parameter values of the vertices on the curve: vertices must be given on the curve, + //! i.e. the distance from a vertex to the curve must be less than or equal to the + //! precision of the vertex. If this condition is not satisfied the edge is not built, + //! and the Error function will return BRepAPI_PointProjectionFailed. + //! - 3D points can be given in place of vertices. Vertices will be created from the + //! points (with the default topological precision Precision::Confusion()). + //! Note: + //! - Giving vertices is useful when creating a connected edge. + //! - If the parameter values correspond to the extremities of a closed curve, + //! points must be identical, or at least coincident. If this condition is not + //! satisfied the edge is not built, and the Error function will return + //! BRepAPI_DifferentPointsOnClosedCurve. + //! - The vertices or points can be omitted if the parameter values are given. The + //! points will be computed from the parameters on the curve. + //! The vertices or points and the parameter values can be omitted. The first and last + //! parameters of the curve will then be used. + //! + //! Auxiliary methods + Standard_EXPORT BRepBuilderAPI_MakeEdge(const Handle(Geom2d_Curve)& L, + const Handle(Geom_Surface)& S, + const TopoDS_Vertex& V1, + const TopoDS_Vertex& V2, + const Standard_Real p1, + const Standard_Real p2); + + Standard_EXPORT void Init(const Handle(Geom_Curve)& C); + + Standard_EXPORT void Init(const Handle(Geom_Curve)& C, + const Standard_Real p1, + const Standard_Real p2); + + Standard_EXPORT void Init(const Handle(Geom_Curve)& C, const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT void Init(const Handle(Geom_Curve)& C, + const TopoDS_Vertex& V1, + const TopoDS_Vertex& V2); + + Standard_EXPORT void Init(const Handle(Geom_Curve)& C, + const gp_Pnt& P1, + const gp_Pnt& P2, + const Standard_Real p1, + const Standard_Real p2); + + Standard_EXPORT void Init(const Handle(Geom_Curve)& C, + const TopoDS_Vertex& V1, + const TopoDS_Vertex& V2, + const Standard_Real p1, + const Standard_Real p2); + + Standard_EXPORT void Init(const Handle(Geom2d_Curve)& C, const Handle(Geom_Surface)& S); + + Standard_EXPORT void Init(const Handle(Geom2d_Curve)& C, + const Handle(Geom_Surface)& S, + const Standard_Real p1, + const Standard_Real p2); + + Standard_EXPORT void Init(const Handle(Geom2d_Curve)& C, + const Handle(Geom_Surface)& S, + const gp_Pnt& P1, + const gp_Pnt& P2); + + Standard_EXPORT void Init(const Handle(Geom2d_Curve)& C, + const Handle(Geom_Surface)& S, + const TopoDS_Vertex& V1, + const TopoDS_Vertex& V2); + + Standard_EXPORT void Init(const Handle(Geom2d_Curve)& C, + const Handle(Geom_Surface)& S, + const gp_Pnt& P1, + const gp_Pnt& P2, + const Standard_Real p1, + const Standard_Real p2); + + //! Defines or redefines the arguments for the construction of an edge. + //! This function is currently used after the empty constructor BRepAPI_MakeEdge(). + Standard_EXPORT void Init(const Handle(Geom2d_Curve)& C, + const Handle(Geom_Surface)& S, + const TopoDS_Vertex& V1, + const TopoDS_Vertex& V2, + const Standard_Real p1, + const Standard_Real p2); + + //! Returns true if the edge is built. + Standard_EXPORT virtual Standard_Boolean IsDone() const Standard_OVERRIDE; + + //! Returns the construction status + //! - BRepBuilderAPI_EdgeDone if the edge is built, or + //! - another value of the BRepBuilderAPI_EdgeError + //! enumeration indicating the reason of construction failure. + Standard_EXPORT BRepBuilderAPI_EdgeError Error() const; + + //! Returns the constructed edge. + //! Exceptions StdFail_NotDone if the edge is not built. + Standard_EXPORT const TopoDS_Edge& Edge(); + Standard_EXPORT operator TopoDS_Edge(); + + //! Returns the first vertex of the edge. May be Null. + Standard_EXPORT const TopoDS_Vertex& Vertex1() const; + + //! Returns the second vertex of the edge. May be Null. + //! + //! Warning + //! The returned vertex in each function corresponds respectively to + //! - the lowest, or + //! - the highest parameter on the curve along which the edge is built. + //! It does not correspond to the first or second vertex + //! given at the time of the construction, if the edge is oriented reversed. + //! Exceptions + //! StdFail_NotDone if the edge is not built. + Standard_EXPORT const TopoDS_Vertex& Vertex2() const; + +protected: +private: + BRepLib_MakeEdge myMakeEdge; +}; + +#endif // _BRepBuilderAPI_MakeEdge_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeFace.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeFace.hxx new file mode 100644 index 00000000..4e9011fd --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeFace.hxx @@ -0,0 +1,296 @@ +// Created on: 1993-07-12 +// Created by: Remi LEQUETTE +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_MakeFace_HeaderFile +#define _BRepBuilderAPI_MakeFace_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "BRepLib_MakeFace.hxx" +#include "BRepBuilderAPI_MakeShape.hxx" +#include "Standard_Real.hxx" +#include "BRepBuilderAPI_FaceError.hxx" +class TopoDS_Face; +class gp_Pln; +class gp_Cylinder; +class gp_Cone; +class gp_Sphere; +class gp_Torus; +class Geom_Surface; +class TopoDS_Wire; + +//! Provides methods to build faces. +//! +//! A face may be built : +//! +//! * From a surface. +//! +//! - Elementary surface from gp. +//! +//! - Surface from Geom. +//! +//! * From a surface and U,V values. +//! +//! * From a wire. +//! +//! - Find the surface automatically if possible. +//! +//! * From a surface and a wire. +//! +//! - A flag Inside is given, when this flag is True +//! the wire is oriented to bound a finite area on +//! the surface. +//! +//! * From a face and a wire. +//! +//! - The new wire is a perforation. +class BRepBuilderAPI_MakeFace : public BRepBuilderAPI_MakeShape +{ +public: + DEFINE_STANDARD_ALLOC + + //! Not done. + Standard_EXPORT BRepBuilderAPI_MakeFace(); + + //! Load a face. useful to add wires. + Standard_EXPORT BRepBuilderAPI_MakeFace(const TopoDS_Face& F); + + //! Make a face from a plane. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Pln& P); + + //! Make a face from a cylinder. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Cylinder& C); + + //! Make a face from a cone. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Cone& C); + + //! Make a face from a sphere. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Sphere& S); + + //! Make a face from a torus. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Torus& C); + + //! Make a face from a Surface. Accepts tolerance value (TolDegen) + //! for resolution of degenerated edges. + Standard_EXPORT BRepBuilderAPI_MakeFace(const Handle(Geom_Surface)& S, + const Standard_Real TolDegen); + + //! Make a face from a plane. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Pln& P, + const Standard_Real UMin, + const Standard_Real UMax, + const Standard_Real VMin, + const Standard_Real VMax); + + //! Make a face from a cylinder. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Cylinder& C, + const Standard_Real UMin, + const Standard_Real UMax, + const Standard_Real VMin, + const Standard_Real VMax); + + //! Make a face from a cone. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Cone& C, + const Standard_Real UMin, + const Standard_Real UMax, + const Standard_Real VMin, + const Standard_Real VMax); + + //! Make a face from a sphere. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Sphere& S, + const Standard_Real UMin, + const Standard_Real UMax, + const Standard_Real VMin, + const Standard_Real VMax); + + //! Make a face from a torus. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Torus& C, + const Standard_Real UMin, + const Standard_Real UMax, + const Standard_Real VMin, + const Standard_Real VMax); + + //! Make a face from a Surface. Accepts tolerance value (TolDegen) + //! for resolution of degenerated edges. + Standard_EXPORT BRepBuilderAPI_MakeFace(const Handle(Geom_Surface)& S, + const Standard_Real UMin, + const Standard_Real UMax, + const Standard_Real VMin, + const Standard_Real VMax, + const Standard_Real TolDegen); + + //! Find a surface from the wire and make a face. + //! if is true, the computed surface will be + //! a plane. If it is not possible to find a plane, the + //! flag NotDone will be set. + Standard_EXPORT BRepBuilderAPI_MakeFace(const TopoDS_Wire& W, + const Standard_Boolean OnlyPlane = Standard_False); + + //! Make a face from a plane and a wire. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Pln& P, + const TopoDS_Wire& W, + const Standard_Boolean Inside = Standard_True); + + //! Make a face from a cylinder and a wire. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Cylinder& C, + const TopoDS_Wire& W, + const Standard_Boolean Inside = Standard_True); + + //! Make a face from a cone and a wire. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Cone& C, + const TopoDS_Wire& W, + const Standard_Boolean Inside = Standard_True); + + //! Make a face from a sphere and a wire. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Sphere& S, + const TopoDS_Wire& W, + const Standard_Boolean Inside = Standard_True); + + //! Make a face from a torus and a wire. + Standard_EXPORT BRepBuilderAPI_MakeFace(const gp_Torus& C, + const TopoDS_Wire& W, + const Standard_Boolean Inside = Standard_True); + + //! Make a face from a Surface and a wire. + //! If the surface S is not plane, + //! it must contain pcurves for all edges in W, + //! otherwise the wrong shape will be created. + Standard_EXPORT BRepBuilderAPI_MakeFace(const Handle(Geom_Surface)& S, + const TopoDS_Wire& W, + const Standard_Boolean Inside = Standard_True); + + //! Adds the wire in the face + //! A general method to create a face is to give + //! - a surface S as the support (the geometric domain) of the face, + //! - and a wire W to bound it. + //! The bounds of the face can also be defined by four parameter values + //! umin, umax, vmin, vmax which determine isoparametric limitations on + //! the parametric space of the surface. In this way, a patch is + //! defined. The parameter values are optional. If they are omitted, the + //! natural bounds of the surface are used. A wire is automatically + //! built using the defined bounds. Up to four edges and four vertices + //! are created with this wire (no edge is created when the + //! corresponding parameter value is infinite). + //! Wires can then be added using the function Add to define other + //! restrictions on the face. These restrictions represent holes. More + //! than one wire may be added by this way, provided that the wires do + //! not cross each other and that they define only one area on the + //! surface. (Be careful, however, as this is not checked). + //! Forbidden addition of wires + //! Note that in this schema, the third case is valid if edges of the + //! wire W are declared internal to the face. As a result, these edges + //! are no longer bounds of the face. + //! A default tolerance (Precision::Confusion()) is given to the face, + //! this tolerance may be increased during construction of the face + //! using various algorithms. + //! Rules applied to the arguments + //! For the surface: + //! - The surface must not be a 'null handle'. + //! - If the surface is a trimmed surface, the basis surface is used. + //! - For the wire: the wire is composed of connected edges, each + //! edge having a parametric curve description in the parametric + //! domain of the surface; in other words, as a pcurve. + //! For the parameters: + //! - The parameter values must be in the parametric range of the + //! surface (or the basis surface, if the surface is trimmed). If this + //! condition is not satisfied, the face is not built, and the Error + //! function will return BRepBuilderAPI_ParametersOutOfRange. + //! - The bounding parameters p1 and p2 are adjusted on a periodic + //! surface in a given parametric direction by adding or subtracting + //! the period to obtain p1 in the parametric range of the surface and + //! such p2, that p2 - p1 <= Period, where Period is the period of the + //! surface in this parametric direction. + //! - A parameter value may be infinite. There will be no edge and + //! no vertex in the corresponding direction. + Standard_EXPORT BRepBuilderAPI_MakeFace(const TopoDS_Face& F, const TopoDS_Wire& W); + + //! Initializes (or reinitializes) the + //! construction of a face by creating a new object which is a copy of + //! the face F, in order to add wires to it, using the function Add. + //! Note: this complete copy of the geometry is only required if you + //! want to work on the geometries of the two faces independently. + Standard_EXPORT void Init(const TopoDS_Face& F); + + //! Initializes (or reinitializes) the construction of a face on + //! the surface S. If Bound is true, a wire is + //! automatically created from the natural bounds of the + //! surface S and added to the face in order to bound it. If + //! Bound is false, no wire is added. This option is used + //! when real bounds are known. These will be added to + //! the face after this initialization, using the function Add. + //! TolDegen parameter is used for resolution of degenerated edges + //! if calculation of natural bounds is turned on. + Standard_EXPORT void Init(const Handle(Geom_Surface)& S, + const Standard_Boolean Bound, + const Standard_Real TolDegen); + + //! Initializes (or reinitializes) the construction of a face on + //! the surface S, limited in the u parametric direction by + //! the two parameter values UMin and UMax and in the + //! v parametric direction by the two parameter values VMin and VMax. + //! Warning + //! Error returns: + //! - BRepBuilderAPI_ParametersOutOfRange + //! when the parameters given are outside the bounds of the + //! surface or the basis surface of a trimmed surface. + //! TolDegen parameter is used for resolution of degenerated edges. + Standard_EXPORT void Init(const Handle(Geom_Surface)& S, + const Standard_Real UMin, + const Standard_Real UMax, + const Standard_Real VMin, + const Standard_Real VMax, + const Standard_Real TolDegen); + + //! Adds the wire W to the constructed face as a hole. + //! Warning + //! W must not cross the other bounds of the face, and all + //! the bounds must define only one area on the surface. + //! (Be careful, however, as this is not checked.) + //! Example + //! // a cylinder + //! gp_Cylinder C = ..; + //! // a wire + //! TopoDS_Wire W = ...; + //! BRepBuilderAPI_MakeFace MF(C); + //! MF.Add(W); + //! TopoDS_Face F = MF; + Standard_EXPORT void Add(const TopoDS_Wire& W); + + //! Returns true if this algorithm has a valid face. + Standard_EXPORT virtual Standard_Boolean IsDone() const Standard_OVERRIDE; + + //! Returns the construction status + //! BRepBuilderAPI_FaceDone if the face is built, or + //! - another value of the BRepBuilderAPI_FaceError + //! enumeration indicating why the construction failed, in + //! particular when the given parameters are outside the + //! bounds of the surface. + Standard_EXPORT BRepBuilderAPI_FaceError Error() const; + + //! Returns the constructed face. + //! Exceptions + //! StdFail_NotDone if no face is built. + Standard_EXPORT const TopoDS_Face& Face() const; + Standard_EXPORT operator TopoDS_Face() const; + +protected: +private: + BRepLib_MakeFace myMakeFace; +}; + +#endif // _BRepBuilderAPI_MakeFace_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeShape.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeShape.hxx new file mode 100644 index 00000000..33410752 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeShape.hxx @@ -0,0 +1,69 @@ +// Created on: 1993-07-21 +// Created by: Remi LEQUETTE +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_MakeShape_HeaderFile +#define _BRepBuilderAPI_MakeShape_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "TopoDS_Shape.hxx" +#include "TopTools_ListOfShape.hxx" +#include "BRepBuilderAPI_Command.hxx" +#include "Message_ProgressRange.hxx" + +//! This is the root class for all shape +//! constructions. It stores the result. +//! +//! It provides deferred methods to trace the history +//! of sub-shapes. +class BRepBuilderAPI_MakeShape : public BRepBuilderAPI_Command +{ +public: + DEFINE_STANDARD_ALLOC + + //! This is called by Shape(). It does nothing but + //! may be redefined. + Standard_EXPORT virtual void Build( + const Message_ProgressRange& theRange = Message_ProgressRange()); + + //! Returns a shape built by the shape construction algorithm. + //! Raises exception StdFail_NotDone if the shape was not built. + Standard_EXPORT virtual const TopoDS_Shape& Shape(); + Standard_EXPORT operator TopoDS_Shape(); + + //! Returns the list of shapes generated from the + //! shape . + Standard_EXPORT virtual const TopTools_ListOfShape& Generated(const TopoDS_Shape& S); + + //! Returns the list of shapes modified from the shape + //! . + Standard_EXPORT virtual const TopTools_ListOfShape& Modified(const TopoDS_Shape& S); + + //! Returns true if the shape S has been deleted. + Standard_EXPORT virtual Standard_Boolean IsDeleted(const TopoDS_Shape& S); + +protected: + Standard_EXPORT BRepBuilderAPI_MakeShape(); + + TopoDS_Shape myShape; + TopTools_ListOfShape myGenerated; + +private: +}; + +#endif // _BRepBuilderAPI_MakeShape_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeShell.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeShell.hxx new file mode 100644 index 00000000..2451a461 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeShell.hxx @@ -0,0 +1,118 @@ +// Created on: 1994-02-16 +// Created by: Remi LEQUETTE +// Copyright (c) 1994-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_MakeShell_HeaderFile +#define _BRepBuilderAPI_MakeShell_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "BRepLib_MakeShell.hxx" +#include "BRepBuilderAPI_MakeShape.hxx" +#include "Standard_Real.hxx" +#include "BRepBuilderAPI_ShellError.hxx" +class Geom_Surface; +class TopoDS_Shell; + +//! Describes functions to build a +//! shape corresponding to the skin of a surface. +//! Note that the term shell in the class name has the same definition +//! as that of a shell in STEP, in other words the skin of a shape, +//! and not a solid model defined by surface and thickness. If you want +//! to build the second sort of shell, you must use +//! BRepOffsetAPI_MakeOffsetShape. A shell is made of a series of +//! faces connected by their common edges. +//! If the underlying surface of a face is not C2 continuous and +//! the flag Segment is True, MakeShell breaks the surface down into +//! several faces which are all C2 continuous and which are +//! connected along the non-regular curves on the surface. +//! The resulting shell contains all these faces. +//! Construction of a Shell from a non-C2 continuous Surface +//! A MakeShell object provides a framework for: +//! - defining the construction of a shell, +//! - implementing the construction algorithm, and +//! - consulting the result. +//! Warning +//! The connected C2 faces in the shell resulting from a decomposition of +//! the surface are not sewn. For a sewn result, you need to use +//! BRepOffsetAPI_Sewing. For a shell with thickness, you need to use +//! BRepOffsetAPI_MakeOffsetShape. +class BRepBuilderAPI_MakeShell : public BRepBuilderAPI_MakeShape +{ +public: + DEFINE_STANDARD_ALLOC + + //! Constructs an empty shell framework. The Init + //! function is used to define the construction arguments. + //! Warning + //! The function Error will return + //! BRepBuilderAPI_EmptyShell if it is called before the function Init. + Standard_EXPORT BRepBuilderAPI_MakeShell(); + + //! Constructs a shell from the surface S. + Standard_EXPORT BRepBuilderAPI_MakeShell(const Handle(Geom_Surface)& S, + const Standard_Boolean Segment = Standard_False); + + //! Constructs a shell from the surface S, + //! limited in the u parametric direction by the two + //! parameter values UMin and UMax, and limited in the v + //! parametric direction by the two parameter values VMin and VMax. + Standard_EXPORT BRepBuilderAPI_MakeShell(const Handle(Geom_Surface)& S, + const Standard_Real UMin, + const Standard_Real UMax, + const Standard_Real VMin, + const Standard_Real VMax, + const Standard_Boolean Segment = Standard_False); + + //! Defines or redefines the arguments + //! for the construction of a shell. The construction is initialized + //! with the surface S, limited in the u parametric direction by the + //! two parameter values UMin and UMax, and in the v parametric + //! direction by the two parameter values VMin and VMax. + //! Warning + //! The function Error returns: + //! - BRepBuilderAPI_ShellParametersOutOfRange + //! when the given parameters are outside the bounds of the + //! surface or the basis surface if S is trimmed + Standard_EXPORT void Init(const Handle(Geom_Surface)& S, + const Standard_Real UMin, + const Standard_Real UMax, + const Standard_Real VMin, + const Standard_Real VMax, + const Standard_Boolean Segment = Standard_False); + + //! Returns true if the shell is built. + Standard_EXPORT virtual Standard_Boolean IsDone() const Standard_OVERRIDE; + + //! Returns the construction status: + //! - BRepBuilderAPI_ShellDone if the shell is built, or + //! - another value of the BRepBuilderAPI_ShellError + //! enumeration indicating why the construction failed. + //! This is frequently BRepBuilderAPI_ShellParametersOutOfRange + //! indicating that the given parameters are outside the bounds of the surface. + Standard_EXPORT BRepBuilderAPI_ShellError Error() const; + + //! Returns the new Shell. + Standard_EXPORT const TopoDS_Shell& Shell() const; + Standard_EXPORT operator TopoDS_Shell() const; + +protected: +private: + BRepLib_MakeShell myMakeShell; +}; + +#endif // _BRepBuilderAPI_MakeShell_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeSolid.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeSolid.hxx new file mode 100644 index 00000000..3bbd26e6 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeSolid.hxx @@ -0,0 +1,127 @@ +// Created on: 1993-07-21 +// Created by: Remi LEQUETTE +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_MakeSolid_HeaderFile +#define _BRepBuilderAPI_MakeSolid_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "BRepLib_MakeSolid.hxx" +#include "BRepBuilderAPI_MakeShape.hxx" +class TopoDS_CompSolid; +class TopoDS_Shell; +class TopoDS_Solid; +class TopoDS_Shape; + +//! Describes functions to build a solid from shells. +//! A solid is made of one shell, or a series of shells, which +//! do not intersect each other. One of these shells +//! constitutes the outside skin of the solid. It may be closed +//! (a finite solid) or open (an infinite solid). Other shells +//! form hollows (cavities) in these previous ones. Each +//! must bound a closed volume. +//! A MakeSolid object provides a framework for: +//! - defining and implementing the construction of a solid, and +//! - consulting the result. +class BRepBuilderAPI_MakeSolid : public BRepBuilderAPI_MakeShape +{ +public: + DEFINE_STANDARD_ALLOC + + //! Initializes the construction of a solid. An empty solid is + //! considered to cover the whole space. The Add function + //! is used to define shells to bound it. + Standard_EXPORT BRepBuilderAPI_MakeSolid(); + + //! Make a solid from a CompSolid. + Standard_EXPORT BRepBuilderAPI_MakeSolid(const TopoDS_CompSolid& S); + + //! Make a solid from a shell. + Standard_EXPORT BRepBuilderAPI_MakeSolid(const TopoDS_Shell& S); + + //! Make a solid from two shells. + Standard_EXPORT BRepBuilderAPI_MakeSolid(const TopoDS_Shell& S1, const TopoDS_Shell& S2); + + //! Make a solid from three shells. + //! Constructs a solid + //! - covering the whole space, or + //! - from shell S, or + //! - from two shells S1 and S2, or + //! - from three shells S1, S2 and S3, or + //! Warning + //! No check is done to verify the conditions of coherence + //! of the resulting solid. In particular, S1, S2 (and S3) must + //! not intersect each other. + //! Besides, after all shells have been added using the Add + //! function, one of these shells should constitute the outside + //! skin of the solid; it may be closed (a finite solid) or open + //! (an infinite solid). Other shells form hollows (cavities) in + //! these previous ones. Each must bound a closed volume. + Standard_EXPORT BRepBuilderAPI_MakeSolid(const TopoDS_Shell& S1, + const TopoDS_Shell& S2, + const TopoDS_Shell& S3); + + //! Make a solid from a solid. useful for adding later. + Standard_EXPORT BRepBuilderAPI_MakeSolid(const TopoDS_Solid& So); + + //! Add a shell to a solid. + //! + //! Constructs a solid: + //! - from the solid So, to which shells can be added, or + //! - by adding the shell S to the solid So. + //! Warning + //! No check is done to verify the conditions of coherence + //! of the resulting solid. In particular S must not intersect the solid S0. + //! Besides, after all shells have been added using the Add + //! function, one of these shells should constitute the outside + //! skin of the solid. It may be closed (a finite solid) or open + //! (an infinite solid). Other shells form hollows (cavities) in + //! the previous ones. Each must bound a closed volume. + Standard_EXPORT BRepBuilderAPI_MakeSolid(const TopoDS_Solid& So, const TopoDS_Shell& S); + + //! Adds the shell to the current solid. + //! Warning + //! No check is done to verify the conditions of coherence + //! of the resulting solid. In particular, S must not intersect + //! other shells of the solid under construction. + //! Besides, after all shells have been added, one of + //! these shells should constitute the outside skin of the + //! solid. It may be closed (a finite solid) or open (an + //! infinite solid). Other shells form hollows (cavities) in + //! these previous ones. Each must bound a closed volume. + Standard_EXPORT void Add(const TopoDS_Shell& S); + + //! Returns true if the solid is built. + //! For this class, a solid under construction is always valid. + //! If no shell has been added, it could be a whole-space + //! solid. However, no check was done to verify the + //! conditions of coherence of the resulting solid. + Standard_EXPORT virtual Standard_Boolean IsDone() const Standard_OVERRIDE; + + //! Returns the new Solid. + Standard_EXPORT const TopoDS_Solid& Solid(); + Standard_EXPORT operator TopoDS_Solid(); + + Standard_EXPORT virtual Standard_Boolean IsDeleted(const TopoDS_Shape& S) Standard_OVERRIDE; + +protected: +private: + BRepLib_MakeSolid myMakeSolid; +}; + +#endif // _BRepBuilderAPI_MakeSolid_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeWire.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeWire.hxx new file mode 100644 index 00000000..51fab096 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_MakeWire.hxx @@ -0,0 +1,188 @@ +// Created on: 1993-07-08 +// Created by: Remi LEQUETTE +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_MakeWire_HeaderFile +#define _BRepBuilderAPI_MakeWire_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "BRepLib_MakeWire.hxx" +#include "BRepBuilderAPI_MakeShape.hxx" +#include "TopTools_ListOfShape.hxx" +#include "BRepBuilderAPI_WireError.hxx" +class TopoDS_Edge; +class TopoDS_Wire; +class TopoDS_Vertex; + +//! Describes functions to build wires from edges. A wire can +//! be built from any number of edges. +//! To build a wire you first initialize the construction, then +//! add edges in sequence. An unlimited number of edges +//! can be added. The initialization of construction is done with: +//! - no edge (an empty wire), or +//! - edges of an existing wire, or +//! - up to four connectable edges. +//! In order to be added to a wire under construction, an +//! edge (unless it is the first one) must satisfy the following +//! condition: one of its vertices must be geometrically +//! coincident with one of the vertices of the wire (provided +//! that the highest tolerance factor is assigned to the two +//! vertices). It could also be the same vertex. +//! - The given edge is shared by the wire if it contains: +//! - two vertices, identical to two vertices of the wire +//! under construction (a general case of the wire closure), or +//! - one vertex, identical to a vertex of the wire under +//! construction; the other vertex not being +//! geometrically coincident with another vertex of the wire. +//! - In other cases, when one of the vertices of the edge +//! is simply geometrically coincident with a vertex of the +//! wire under construction (provided that the highest +//! tolerance factor is assigned to the two vertices), the +//! given edge is first copied and the coincident vertex is +//! replaced in this new edge, by the coincident vertex of the wire. +//! Note: it is possible to build non manifold wires using this construction tool. +//! A MakeWire object provides a framework for: +//! - initializing the construction of a wire, +//! - adding edges to the wire under construction, and +//! - consulting the result. +class BRepBuilderAPI_MakeWire : public BRepBuilderAPI_MakeShape +{ +public: + DEFINE_STANDARD_ALLOC + + //! Constructs an empty wire framework, to which edges + //! are added using the Add function. + //! As soon as the wire contains one edge, it can return + //! with the use of the function Wire. + //! Warning + //! The function Error will return + //! BRepBuilderAPI_EmptyWire if it is called before at + //! least one edge is added to the wire under construction. + Standard_EXPORT BRepBuilderAPI_MakeWire(); + + //! Make a Wire from an edge. + Standard_EXPORT BRepBuilderAPI_MakeWire(const TopoDS_Edge& E); + + //! Make a Wire from two edges. + Standard_EXPORT BRepBuilderAPI_MakeWire(const TopoDS_Edge& E1, const TopoDS_Edge& E2); + + //! Make a Wire from three edges. + Standard_EXPORT BRepBuilderAPI_MakeWire(const TopoDS_Edge& E1, + const TopoDS_Edge& E2, + const TopoDS_Edge& E3); + + //! Make a Wire from four edges. + //! Constructs a wire + //! - from the TopoDS_Wire W composed of the edge E, or + //! - from edge E, or + //! - from two edges E1 and E2, or + //! - from three edges E1, E2 and E3, or + //! - from four edges E1, E2, E3 and E4. + //! Further edges can be added using the function Add. + //! Given edges are added in a sequence. Each of them + //! must be connectable to the wire under construction, + //! and so must satisfy the following condition (unless it is + //! the first edge of the wire): one of its vertices must be + //! geometrically coincident with one of the vertices of the + //! wire (provided that the highest tolerance factor is + //! assigned to the two vertices). It could also be the same vertex. + //! Warning + //! If an edge is not connectable to the wire under + //! construction it is not added. The function Error will + //! return BRepBuilderAPI_DisconnectedWire, the + //! function IsDone will return false and the function Wire + //! will raise an error, until a new connectable edge is added. + Standard_EXPORT BRepBuilderAPI_MakeWire(const TopoDS_Edge& E1, + const TopoDS_Edge& E2, + const TopoDS_Edge& E3, + const TopoDS_Edge& E4); + + //! Make a Wire from a Wire. useful for adding later. + Standard_EXPORT BRepBuilderAPI_MakeWire(const TopoDS_Wire& W); + + //! Add an edge to a wire. + Standard_EXPORT BRepBuilderAPI_MakeWire(const TopoDS_Wire& W, const TopoDS_Edge& E); + + //! Adds the edge E to the wire under construction. + //! E must be connectable to the wire under construction, and, unless it + //! is the first edge of the wire, must satisfy the following + //! condition: one of its vertices must be geometrically coincident + //! with one of the vertices of the wire (provided that the highest + //! tolerance factor is assigned to the two vertices). It could also + //! be the same vertex. + //! Warning + //! If E is not connectable to the wire under construction it is not + //! added. The function Error will return + //! BRepBuilderAPI_DisconnectedWire, the function IsDone will return + //! false and the function Wire will raise an error, until a new + //! connectable edge is added. + Standard_EXPORT void Add(const TopoDS_Edge& E); + + //! Add the edges of to the current wire. + Standard_EXPORT void Add(const TopoDS_Wire& W); + + //! Adds the edges of to the current wire. The + //! edges are not to be consecutive. But they are to + //! be all connected geometrically or topologically. + //! If some of them are not connected the Status give + //! DisconnectedWire but the "Maker" is Done() and you + //! can get the partial result. (ie connected to the + //! first edgeof the list ) + Standard_EXPORT void Add(const TopTools_ListOfShape& L); + + //! Returns true if this algorithm contains a valid wire. + //! IsDone returns false if: + //! - there are no edges in the wire, or + //! - the last edge which you tried to add was not connectable. + Standard_EXPORT virtual Standard_Boolean IsDone() const Standard_OVERRIDE; + + //! Returns the construction status + //! - BRepBuilderAPI_WireDone if the wire is built, or + //! - another value of the BRepBuilderAPI_WireError + //! enumeration indicating why the construction failed. + Standard_EXPORT BRepBuilderAPI_WireError Error() const; + + //! Returns the constructed wire; or the part of the wire + //! under construction already built. + //! Exceptions StdFail_NotDone if a wire is not built. + Standard_EXPORT const TopoDS_Wire& Wire(); + Standard_EXPORT operator TopoDS_Wire(); + + //! Returns the last edge added to the wire under construction. + //! Warning + //! - This edge can be different from the original one (the + //! argument of the function Add, for instance,) + //! - A null edge is returned if there are no edges in the + //! wire under construction, or if the last edge which you + //! tried to add was not connectable.. + Standard_EXPORT const TopoDS_Edge& Edge() const; + + //! Returns the last vertex of the last edge added to the + //! wire under construction. + //! Warning + //! A null vertex is returned if there are no edges in the wire + //! under construction, or if the last edge which you tried to + //! add was not connectableR + Standard_EXPORT const TopoDS_Vertex& Vertex() const; + +protected: +private: + BRepLib_MakeWire myMakeWire; +}; + +#endif // _BRepBuilderAPI_MakeWire_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_PipeError.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_PipeError.hxx new file mode 100644 index 00000000..82e9551a --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_PipeError.hxx @@ -0,0 +1,29 @@ +// Created on: 1993-07-06 +// Created by: Remi LEQUETTE +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_PipeError_HeaderFile +#define _BRepBuilderAPI_PipeError_HeaderFile + +//! Errors that can occur at (shell)pipe construction. +enum BRepBuilderAPI_PipeError +{ + BRepBuilderAPI_PipeDone, + BRepBuilderAPI_PipeNotDone, + BRepBuilderAPI_PlaneNotIntersectGuide, + BRepBuilderAPI_ImpossibleContact +}; + +#endif // _BRepBuilderAPI_PipeError_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_Transform.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_Transform.hxx new file mode 100644 index 00000000..26e4518c --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_Transform.hxx @@ -0,0 +1,97 @@ +// Created on: 1994-12-09 +// Created by: Jacques GOUSSARD +// Copyright (c) 1994-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_Transform_HeaderFile +#define _BRepBuilderAPI_Transform_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "gp_Trsf.hxx" +#include "BRepBuilderAPI_ModifyShape.hxx" +#include "TopTools_ListOfShape.hxx" +class TopoDS_Shape; + +//! Geometric transformation on a shape. +//! The transformation to be applied is defined as a +//! gp_Trsf transformation, i.e. a transformation which does +//! not modify the underlying geometry of shapes. +//! The transformation is applied to: +//! - all curves which support edges of a shape, and +//! - all surfaces which support its faces. +//! A Transform object provides a framework for: +//! - defining the geometric transformation to be applied, +//! - implementing the transformation algorithm, and +//! - consulting the results. +class BRepBuilderAPI_Transform : public BRepBuilderAPI_ModifyShape +{ +public: + DEFINE_STANDARD_ALLOC + + //! Constructs a framework for applying the geometric + //! transformation T to a shape. Use the function Perform + //! to define the shape to transform. + Standard_EXPORT BRepBuilderAPI_Transform(const gp_Trsf& T); + + //! Creates a transformation from the gp_Trsf , and + //! applies it to the shape . If the transformation + //! is direct and isometric (determinant = 1) and + //! = Standard_False, the resulting shape is + //! on which a new location has been set. + //! Otherwise, the transformation is applied on a + //! duplication of . + //! If is true, the triangulation will be copied, + //! and the copy will be assigned to the result shape. + Standard_EXPORT BRepBuilderAPI_Transform(const TopoDS_Shape& theShape, + const gp_Trsf& theTrsf, + const Standard_Boolean theCopyGeom = Standard_False, + const Standard_Boolean theCopyMesh = Standard_False); + + //! Applies the geometric transformation defined at the + //! time of construction of this framework to the shape S. + //! - If the transformation T is direct and isometric, in + //! other words, if the determinant of the vectorial part + //! of T is equal to 1., and if theCopyGeom equals false (the + //! default value), the resulting shape is the same as + //! the original but with a new location assigned to it. + //! - In all other cases, the transformation is applied to a duplicate of theShape. + //! - If theCopyMesh is true, the triangulation will be copied, + //! and the copy will be assigned to the result shape. + //! Use the function Shape to access the result. + //! Note: this framework can be reused to apply the same + //! geometric transformation to other shapes. You only + //! need to specify them by calling the function Perform again. + Standard_EXPORT void Perform(const TopoDS_Shape& theShape, + const Standard_Boolean theCopyGeom = Standard_False, + const Standard_Boolean theCopyMesh = Standard_False); + + //! Returns the modified shape corresponding to . + Standard_EXPORT virtual TopoDS_Shape ModifiedShape(const TopoDS_Shape& S) const Standard_OVERRIDE; + + //! Returns the list of shapes modified from the shape + //! . + Standard_EXPORT virtual const TopTools_ListOfShape& Modified(const TopoDS_Shape& S) + Standard_OVERRIDE; + +protected: +private: + gp_Trsf myTrsf; + TopLoc_Location myLocation; + Standard_Boolean myUseModif; +}; + +#endif // _BRepBuilderAPI_Transform_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_WireError.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_WireError.hxx new file mode 100644 index 00000000..e0a5c407 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepBuilderAPI_WireError.hxx @@ -0,0 +1,38 @@ +// Created on: 1993-07-06 +// Created by: Remi LEQUETTE +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepBuilderAPI_WireError_HeaderFile +#define _BRepBuilderAPI_WireError_HeaderFile + +//! Indicates the outcome of wire +//! construction, i.e. whether it is successful or not, as explained below: +//! - BRepBuilderAPI_WireDone No +//! error occurred. The wire is correctly built. +//! - BRepBuilderAPI_EmptyWire No +//! initialization of the algorithm. Only an empty constructor was used. +//! - BRepBuilderAPI_DisconnectedWire +//! The last edge which you attempted to add was not connected to the wire. +//! - BRepBuilderAPI_NonManifoldWire +//! The wire with some singularity. +enum BRepBuilderAPI_WireError +{ + BRepBuilderAPI_WireDone, + BRepBuilderAPI_EmptyWire, + BRepBuilderAPI_DisconnectedWire, + BRepBuilderAPI_NonManifoldWire +}; + +#endif // _BRepBuilderAPI_WireError_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepCheck_ListOfStatus.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepCheck_ListOfStatus.hxx new file mode 100644 index 00000000..5ac79027 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepCheck_ListOfStatus.hxx @@ -0,0 +1,28 @@ +// Created on: 1995-12-06 +// Created by: Jacques GOUSSARD +// Copyright (c) 1995-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BRepCheck_ListOfStatus_HeaderFile +#define BRepCheck_ListOfStatus_HeaderFile + +#include "BRepCheck_Status.hxx" +#include "NCollection_List.hxx" +#include "NCollection_Shared.hxx" + +typedef NCollection_List BRepCheck_ListOfStatus; +typedef NCollection_List::Iterator BRepCheck_ListIteratorOfListOfStatus; +typedef NCollection_Shared BRepCheck_HListOfStatus; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass3d_BndBoxTree.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass3d_BndBoxTree.hxx new file mode 100644 index 00000000..98759710 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass3d_BndBoxTree.hxx @@ -0,0 +1,141 @@ +// Copyright (c) 1994-1999 Matra Datavision +// Copyright (c) 1999-2016 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepClass3d_BndBoxTree_HeaderFile +#define _BRepClass3d_BndBoxTree_HeaderFile + +#include "NCollection_Sequence.hxx" +#include "NCollection_UBTreeFiller.hxx" +#include "NCollection_UBTree.hxx" +#include "TopTools_IndexedMapOfShape.hxx" +#include "TopoDS_Edge.hxx" +#include "TopoDS_Vertex.hxx" +#include "Geom_Line.hxx" +#include "Bnd_Box.hxx" +#include "GeomAdaptor_Curve.hxx" +#include "Precision.hxx" + +// Typedef to reduce code complexity. +typedef NCollection_UBTree BRepClass3d_BndBoxTree; + +// Class representing tree selector for point object. +class BRepClass3d_BndBoxTreeSelectorPoint : public BRepClass3d_BndBoxTree::Selector +{ +public: + BRepClass3d_BndBoxTreeSelectorPoint(const TopTools_IndexedMapOfShape& theMapOfShape) + : BRepClass3d_BndBoxTreeSelectorPoint::Selector(), + myMapOfShape(theMapOfShape) + { + } + + Standard_Boolean Reject(const Bnd_Box& theBox) const { return (theBox.IsOut(myP)); } + + Standard_Boolean Accept(const Standard_Integer& theObj); + + // Sets current point for boxes-point collisions. + void SetCurrentPoint(const gp_Pnt& theP) { myP = theP; } + +private: + BRepClass3d_BndBoxTreeSelectorPoint(const BRepClass3d_BndBoxTreeSelectorPoint&); + BRepClass3d_BndBoxTreeSelectorPoint& operator=(const BRepClass3d_BndBoxTreeSelectorPoint&); + +private: + const TopTools_IndexedMapOfShape& myMapOfShape; // shapes (vertices + edges) + gp_Pnt myP; +}; + +// Class representing tree selector for line object. +class BRepClass3d_BndBoxTreeSelectorLine : public BRepClass3d_BndBoxTree::Selector +{ +public: + struct EdgeParam + { + TopoDS_Edge myE; + Standard_Real myParam; // par on myE + Standard_Real myLParam; // par on line + }; + + struct VertParam + { + TopoDS_Vertex myV; + Standard_Real myLParam; // par on line + }; + +public: + BRepClass3d_BndBoxTreeSelectorLine(const TopTools_IndexedMapOfShape& theMapOfShape) + : BRepClass3d_BndBoxTreeSelectorLine::Selector(), + myMapOfShape(theMapOfShape), + myIsValid(Standard_True) + { + } + + Standard_Boolean Reject(const Bnd_Box& theBox) const { return (theBox.IsOut(myL)); } + + Standard_Boolean Accept(const Standard_Integer& theObj); + + // Sets current line for boxes-line collisions + void SetCurrentLine(const gp_Lin& theL, const Standard_Real theMaxParam) + { + myL = theL; + myLC.Load(new Geom_Line(theL), -Precision::PConfusion(), theMaxParam); + } + + void GetEdgeParam(const Standard_Integer i, + TopoDS_Edge& theOutE, + Standard_Real& theOutParam, + Standard_Real& outLParam) const + { + const EdgeParam& EP = myEP.Value(i); + theOutE = EP.myE; + theOutParam = EP.myParam; + outLParam = EP.myLParam; + } + + void GetVertParam(const Standard_Integer i, + TopoDS_Vertex& theOutV, + Standard_Real& outLParam) const + { + const VertParam& VP = myVP.Value(i); + theOutV = VP.myV; + outLParam = VP.myLParam; + } + + Standard_Integer GetNbEdgeParam() const { return myEP.Length(); } + + Standard_Integer GetNbVertParam() const { return myVP.Length(); } + + void ClearResults() + { + myEP.Clear(); + myVP.Clear(); + myIsValid = Standard_True; + } + + //! Returns TRUE if correct classification is possible + Standard_Boolean IsCorrect() const { return myIsValid; } + +private: + BRepClass3d_BndBoxTreeSelectorLine(const BRepClass3d_BndBoxTreeSelectorLine&); + BRepClass3d_BndBoxTreeSelectorLine& operator=(const BRepClass3d_BndBoxTreeSelectorLine&); + +private: + const TopTools_IndexedMapOfShape& myMapOfShape; // shapes (vertices + edges) + gp_Lin myL; + NCollection_Sequence myEP; // output result (edge vs line) + NCollection_Sequence myVP; // output result (vertex vs line) + GeomAdaptor_Curve myLC; + Standard_Boolean myIsValid; +}; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass3d_MapOfInter.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass3d_MapOfInter.hxx new file mode 100644 index 00000000..221b830d --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass3d_MapOfInter.hxx @@ -0,0 +1,29 @@ +// Created on: 1994-04-18 +// Created by: Laurent BUCHARD +// Copyright (c) 1994-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef BRepClass3d_MapOfInter_HeaderFile +#define BRepClass3d_MapOfInter_HeaderFile + +#include "TopoDS_Shape.hxx" +#include "TopTools_ShapeMapHasher.hxx" +#include "NCollection_DataMap.hxx" + +typedef NCollection_DataMap + BRepClass3d_MapOfInter; +typedef NCollection_DataMap::Iterator + BRepClass3d_DataMapIteratorOfMapOfInter; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass3d_SClassifier.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass3d_SClassifier.hxx new file mode 100644 index 00000000..93db8965 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass3d_SClassifier.hxx @@ -0,0 +1,90 @@ +// Created on: 1996-07-15 +// Created by: Laurent BUCHARD +// Copyright (c) 1996-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepClass3d_SClassifier_HeaderFile +#define _BRepClass3d_SClassifier_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" + +#include "TopoDS_Face.hxx" +#include "Standard_Integer.hxx" +#include "TopAbs_State.hxx" +class BRepClass3d_SolidExplorer; +class gp_Pnt; + +//! Provides an algorithm to classify a point in a solid. +class BRepClass3d_SClassifier +{ +public: + DEFINE_STANDARD_ALLOC + + //! Empty constructor. + Standard_EXPORT BRepClass3d_SClassifier(); + + //! Constructor to classify the point P with the + //! tolerance Tol on the solid S. + Standard_EXPORT BRepClass3d_SClassifier(BRepClass3d_SolidExplorer& S, + const gp_Pnt& P, + const Standard_Real Tol); + + //! Classify the point P with the + //! tolerance Tol on the solid S. + Standard_EXPORT void Perform(BRepClass3d_SolidExplorer& S, + const gp_Pnt& P, + const Standard_Real Tol); + + //! Classify an infinite point with the + //! tolerance Tol on the solid S. + Standard_EXPORT void PerformInfinitePoint(BRepClass3d_SolidExplorer& S, const Standard_Real Tol); + + //! Returns True if the classification has been + //! computed by rejection. + //! The State is then OUT. + Standard_EXPORT Standard_Boolean Rejected() const; + + //! Returns the result of the classification. + Standard_EXPORT TopAbs_State State() const; + + //! Returns True when the point is a point of a face. + Standard_EXPORT Standard_Boolean IsOnAFace() const; + + //! Returns the face used to determine the + //! classification. When the state is ON, this is the + //! face containing the point. + //! + //! When Rejected() returns True, Face() has no signification. + Standard_EXPORT TopoDS_Face Face() const; + +protected: + Standard_EXPORT void ForceIn(); + + Standard_EXPORT void ForceOut(); + +private: + TopoDS_Face myFace; + + //! This variable stores information about algorithm internal state. + //! Type of this variable differs from TopAbs_State since it contains + //! additional information about error status. + //! 1 - Error inside of the algorithm. + //! 2 - ON. + //! 3 - IN. + //! 4 - OUT. + Standard_Integer myState; +}; + +#endif // _BRepClass3d_SClassifier_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass_FaceClassifier.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass_FaceClassifier.hxx new file mode 100644 index 00000000..2aa53193 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass_FaceClassifier.hxx @@ -0,0 +1,89 @@ +// Created on: 1993-05-28 +// Created by: Modelistation +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepClass_FaceClassifier_HeaderFile +#define _BRepClass_FaceClassifier_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "BRepClass_FClassifier.hxx" +class BRepClass_FaceExplorer; +class gp_Pnt2d; +class TopoDS_Face; +class gp_Pnt; + +//! Provides Constructors with a Face. +class BRepClass_FaceClassifier : public BRepClass_FClassifier +{ +public: + DEFINE_STANDARD_ALLOC + + //! Empty constructor, undefined algorithm. + Standard_EXPORT BRepClass_FaceClassifier(); + + //! Creates an algorithm to classify the Point P with + //! Tolerance on the face described by . + Standard_EXPORT BRepClass_FaceClassifier(BRepClass_FaceExplorer& F, + const gp_Pnt2d& P, + const Standard_Real Tol); + + //! Creates an algorithm to classify the Point P with + //! Tolerance on the face . + //! Recommended to use Bnd_Box if the number of edges > 10 + //! and the geometry is mostly spline + Standard_EXPORT BRepClass_FaceClassifier(const TopoDS_Face& theF, + const gp_Pnt2d& theP, + const Standard_Real theTol, + const Standard_Boolean theUseBndBox = Standard_False, + const Standard_Real theGapCheckTol = 0.1); + + //! Classify the Point P with Tolerance on the + //! face described by . + //! Recommended to use Bnd_Box if the number of edges > 10 + //! and the geometry is mostly spline + Standard_EXPORT void Perform(const TopoDS_Face& theF, + const gp_Pnt2d& theP, + const Standard_Real theTol, + const Standard_Boolean theUseBndBox = Standard_False, + const Standard_Real theGapCheckTol = 0.1); + + //! Creates an algorithm to classify the Point P with + //! Tolerance on the face . + //! Recommended to use Bnd_Box if the number of edges > 10 + //! and the geometry is mostly spline + Standard_EXPORT BRepClass_FaceClassifier(const TopoDS_Face& theF, + const gp_Pnt& theP, + const Standard_Real theTol, + const Standard_Boolean theUseBndBox = Standard_False, + const Standard_Real theGapCheckTol = 0.1); + + //! Classify the Point P with Tolerance on the + //! face described by . + //! Recommended to use Bnd_Box if the number of edges > 10 + //! and the geometry is mostly spline + Standard_EXPORT void Perform(const TopoDS_Face& theF, + const gp_Pnt& theP, + const Standard_Real theTol, + const Standard_Boolean theUseBndBox = Standard_False, + const Standard_Real theGapCheckTol = 0.1); + +protected: +private: +}; + +#endif // _BRepClass_FaceClassifier_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass_FaceExplorer.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass_FaceExplorer.hxx new file mode 100644 index 00000000..ddea565b --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass_FaceExplorer.hxx @@ -0,0 +1,128 @@ +// Created on: 1992-11-19 +// Created by: Remi LEQUETTE +// Copyright (c) 1992-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepClass_FaceExplorer_HeaderFile +#define _BRepClass_FaceExplorer_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "TopTools_IndexedDataMapOfShapeListOfShape.hxx" + +#include "TopAbs_Orientation.hxx" +#include "TopoDS_Face.hxx" +#include "TopExp_Explorer.hxx" +#include "Standard_Integer.hxx" +class gp_Pnt2d; +class gp_Lin2d; +class BRepClass_Edge; + +//! Provide an exploration of a BRep Face for the +//! classification. Return UV edges. +class BRepClass_FaceExplorer +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepClass_FaceExplorer(const TopoDS_Face& F); + + //! Checks the point and change its coords if it is located too far + //! from the bounding box of the face. New Coordinates of the point + //! will be on the line between the point and the center of the + //! bounding box. Returns True if point was not changed. + Standard_EXPORT Standard_Boolean CheckPoint(gp_Pnt2d& thePoint); + + //! Should return True if the point is outside a + //! bounding volume of the face. + Standard_EXPORT Standard_Boolean Reject(const gp_Pnt2d& P) const; + + //! Returns in , a segment having at least + //! one intersection with the face boundary to + //! compute intersections. + Standard_EXPORT Standard_Boolean Segment(const gp_Pnt2d& P, gp_Lin2d& L, Standard_Real& Par); + + //! Returns in , a segment having at least + //! one intersection with the face boundary to + //! compute intersections. Each call gives another segment. + Standard_EXPORT Standard_Boolean OtherSegment(const gp_Pnt2d& P, gp_Lin2d& L, Standard_Real& Par); + + //! Starts an exploration of the wires. + Standard_EXPORT void InitWires(); + + //! Returns True if there is a current wire. + Standard_Boolean MoreWires() const; + + //! Sets the explorer to the next wire. + void NextWire(); + + //! Returns True if the wire bounding volume does not + //! intersect the segment. + Standard_EXPORT Standard_Boolean RejectWire(const gp_Lin2d& L, const Standard_Real Par) const; + + //! Starts an exploration of the edges of the current + //! wire. + Standard_EXPORT void InitEdges(); + + //! Returns True if there is a current edge. + Standard_Boolean MoreEdges() const; + + //! Sets the explorer to the next edge. + void NextEdge(); + + //! Returns True if the edge bounding volume does not + //! intersect the segment. + Standard_EXPORT Standard_Boolean RejectEdge(const gp_Lin2d& L, const Standard_Real Par) const; + + //! Current edge in current wire and its orientation. + Standard_EXPORT void CurrentEdge(BRepClass_Edge& E, TopAbs_Orientation& Or) const; + + //! Returns the maximum tolerance + Standard_Real MaxTolerance() const { return myMaxTolerance; } + + //! Sets the maximum tolerance at + //! which to start checking in the intersector + void SetMaxTolerance(const Standard_Real theValue) { myMaxTolerance = theValue; } + + //! Returns true if we are using boxes + //! in the intersector + Standard_Boolean UseBndBox() const { return myUseBndBox; } + + //! Sets the status of whether we are + //! using boxes or not + void SetUseBndBox(const Standard_Boolean theValue) { myUseBndBox = theValue; } + +protected: + //! Computes UV bounds of a face + Standard_EXPORT void ComputeFaceBounds(); + +private: + TopoDS_Face myFace; + TopExp_Explorer myWExplorer; + TopExp_Explorer myEExplorer; + Standard_Integer myCurEdgeInd; + Standard_Real myCurEdgePar; + Standard_Real myMaxTolerance; + Standard_Boolean myUseBndBox; + TopTools_IndexedDataMapOfShapeListOfShape myMapVE; + + Standard_Real myUMin; + Standard_Real myUMax; + Standard_Real myVMin; + Standard_Real myVMax; +}; + +#include "BRepClass_FaceExplorer.lxx" + +#endif // _BRepClass_FaceExplorer_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass_FaceExplorer.lxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass_FaceExplorer.lxx new file mode 100644 index 00000000..d47873b8 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepClass_FaceExplorer.lxx @@ -0,0 +1,55 @@ +// Created on: 1993-01-25 +// Created by: Remi LEQUETTE +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +//======================================================================= +// function : MoreWires +// purpose : +//======================================================================= + +inline Standard_Boolean BRepClass_FaceExplorer::MoreWires() const +{ + return myWExplorer.More(); +} + +//======================================================================= +// function : NextWire +// purpose : +//======================================================================= + +inline void BRepClass_FaceExplorer::NextWire() +{ + myWExplorer.Next(); +} + +//======================================================================= +// function : MoreEdges +// purpose : +//======================================================================= + +inline Standard_Boolean BRepClass_FaceExplorer::MoreEdges() const +{ + return myEExplorer.More(); +} + +//======================================================================= +// function : NextEdge +// purpose : +//======================================================================= + +inline void BRepClass_FaceExplorer::NextEdge() +{ + myEExplorer.Next(); +} diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_DistanceSS.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_DistanceSS.hxx new file mode 100644 index 00000000..b48f4655 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_DistanceSS.hxx @@ -0,0 +1,133 @@ +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepExtrema_DistanceSS_HeaderFile +#define _BRepExtrema_DistanceSS_HeaderFile + +#include "BRepExtrema_SeqOfSolution.hxx" +#include "Extrema_ExtFlag.hxx" +#include "Extrema_ExtAlgo.hxx" +#include "Precision.hxx" +#include "Standard_DefineAlloc.hxx" + +class TopoDS_Shape; +class Bnd_Box; +class TopoDS_Vertex; +class TopoDS_Edge; +class TopoDS_Face; + +//! This class allows to compute minimum distance between two brep shapes +//! (face edge vertex) and is used in DistShapeShape class. +class BRepExtrema_DistanceSS +{ +public: + DEFINE_STANDARD_ALLOC + +public: //! @name Constructor from two shapes + //! Computes the distance between two Shapes (face edge vertex). + //! @param theS1 - First shape + //! @param theS2 - Second shape + //! @param theBox1 - Bounding box of first shape + //! @param theBox2 - Bounding box of second shape + //! @param theDstRef - Initial distance between the shapes to start with + //! @param theDeflection - Maximum deviation of extreme distances from the minimum + //! one (default is Precision::Confusion()). + //! @param theExtFlag - Specifies which extrema solutions to look for + //! (default is MINMAX, applied only to point-face extrema) + //! @param theExtAlgo - Specifies which extrema algorithm is to be used + //! (default is Grad algo, applied only to point-face extrema) + BRepExtrema_DistanceSS(const TopoDS_Shape& theS1, + const TopoDS_Shape& theS2, + const Bnd_Box& theBox1, + const Bnd_Box& theBox2, + const Standard_Real theDstRef, + const Standard_Real theDeflection = Precision::Confusion(), + const Extrema_ExtFlag theExtFlag = Extrema_ExtFlag_MINMAX, + const Extrema_ExtAlgo theExtAlgo = Extrema_ExtAlgo_Grad) + : myDstRef(theDstRef), + myModif(Standard_False), + myEps(theDeflection), + myFlag(theExtFlag), + myAlgo(theExtAlgo) + { + Perform(theS1, theS2, theBox1, theBox2); + } + +public: //! @name Results + //! Returns true if the distance has been computed, false otherwise. + Standard_Boolean IsDone() const { return myModif; } + + //! Returns the distance value. + Standard_Real DistValue() const { return myDstRef; } + + //! Returns the list of solutions on the first shape. + const BRepExtrema_SeqOfSolution& Seq1Value() const { return mySeqSolShape1; } + + //! Returns the list of solutions on the second shape. + const BRepExtrema_SeqOfSolution& Seq2Value() const { return mySeqSolShape2; } + +private: //! @name private methods performing the search + //! Computes the distance between two Shapes (face edge vertex). + //! General method to sort out the shape types and call the specific method. + Standard_EXPORT void Perform(const TopoDS_Shape& theS1, + const TopoDS_Shape& theS2, + const Bnd_Box& theBox1, + const Bnd_Box& theBox2); + + //! Computes the distance between two vertices. + void Perform(const TopoDS_Vertex& S1, + const TopoDS_Vertex& S2, + BRepExtrema_SeqOfSolution& theSeqSolShape1, + BRepExtrema_SeqOfSolution& theSeqSolShape2); + + //! Computes the minimum distance between a vertex and an edge. + void Perform(const TopoDS_Vertex& theS1, + const TopoDS_Edge& theS2, + BRepExtrema_SeqOfSolution& theSeqSolShape1, + BRepExtrema_SeqOfSolution& theSeqSolShape2); + + //! Computes the minimum distance between a vertex and a face. + void Perform(const TopoDS_Vertex& theS1, + const TopoDS_Face& theS2, + BRepExtrema_SeqOfSolution& theSeqSolShape1, + BRepExtrema_SeqOfSolution& theSeqSolShape2); + + //! Computes the minimum distance between two edges. + void Perform(const TopoDS_Edge& theS1, + const TopoDS_Edge& theS2, + BRepExtrema_SeqOfSolution& theSeqSolShape1, + BRepExtrema_SeqOfSolution& theSeqSolShape2); + + //! Computes the minimum distance between an edge and a face. + void Perform(const TopoDS_Edge& theS1, + const TopoDS_Face& theS2, + BRepExtrema_SeqOfSolution& theSeqSolShape1, + BRepExtrema_SeqOfSolution& theSeqSolShape2); + + //! Computes the minimum distance between two faces. + void Perform(const TopoDS_Face& theS1, + const TopoDS_Face& theS2, + BRepExtrema_SeqOfSolution& theSeqSolShape1, + BRepExtrema_SeqOfSolution& theSeqSolShape2); + +private: //! @name Fields + BRepExtrema_SeqOfSolution mySeqSolShape1; //!< Solutions on the first shape + BRepExtrema_SeqOfSolution mySeqSolShape2; //!< Solutions on the second shape + Standard_Real myDstRef; //!< The minimal distance found + Standard_Boolean myModif; //!< Flag indicating whether the solution was improved or not + Standard_Real myEps; //!< Deflection + Extrema_ExtFlag myFlag; //!< Extrema flag indicating what solutions to look for + Extrema_ExtAlgo myAlgo; //!< Extrema algo to be used to look for solutions +}; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_OverlapTool.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_OverlapTool.hxx new file mode 100644 index 00000000..f7c18225 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_OverlapTool.hxx @@ -0,0 +1,134 @@ +// Created on: 2015-04-26 +// Created by: Denis BOGOLEPOV +// Copyright (c) 2015 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepExtrema_OverlapTool_HeaderFile +#define _BRepExtrema_OverlapTool_HeaderFile + +#include "BRepExtrema_TriangleSet.hxx" +#include "BRepExtrema_ElementFilter.hxx" +#include "BRepExtrema_MapOfIntegerPackedMapOfInteger.hxx" +#include "BVH_Traverse.hxx" + +//! Enables storing of individual overlapped triangles (useful for debug). +// #define OVERLAP_TOOL_OUTPUT_TRIANGLES + +//! Tool class for for detection of overlapping of two BVH primitive sets. +//! This tool is not intended to be used independently, and is integrated +//! in other classes, implementing algorithms based on shape tessellation +//! (BRepExtrema_ShapeProximity and BRepExtrema_SelfIntersection). +//! +//! Note that input element sets may correspond to different shapes or to +//! the same shape. In first case, tessellations of two given shapes will +//! be tested for intersection (or overlapping, if tolerance is not zero). +//! In second case, tessellation of single shape will be tested for self- +//! intersections. Please note that algorithm results are approximate and +//! depend greatly on the quality of input tessellation(s). +class BRepExtrema_OverlapTool : public BVH_PairTraverse +{ +public: + //! Creates new uninitialized overlap tool. + BRepExtrema_OverlapTool(); + + //! Creates new overlap tool for the given element sets. + BRepExtrema_OverlapTool(const Handle(BRepExtrema_TriangleSet)& theSet1, + const Handle(BRepExtrema_TriangleSet)& theSet2); + +public: + //! Loads the given element sets into the overlap tool. + void LoadTriangleSets(const Handle(BRepExtrema_TriangleSet)& theSet1, + const Handle(BRepExtrema_TriangleSet)& theSet2); + + //! Performs searching of overlapped mesh elements. + void Perform(const Standard_Real theTolerance = 0.0); + + //! Is overlap test completed? + Standard_Boolean IsDone() const { return myIsDone; } + + //! Marks test results as outdated. + void MarkDirty() { myIsDone = Standard_False; } + + //! Returns set of overlapped sub-shapes of 1st shape (currently only faces are detected). + const BRepExtrema_MapOfIntegerPackedMapOfInteger& OverlapSubShapes1() const + { + return myOverlapSubShapes1; + } + + //! Returns set of overlapped sub-shapes of 2nd shape (currently only faces are detected). + const BRepExtrema_MapOfIntegerPackedMapOfInteger& OverlapSubShapes2() const + { + return myOverlapSubShapes2; + } + +#ifdef OVERLAP_TOOL_OUTPUT_TRIANGLES + //! Returns set of overlapped triangles from the 1st shape (for debug). + const TColStd_PackedMapOfInteger& OverlapTriangles1() const { return myOverlapTriangles1; } + + //! Returns set of overlapped triangles from the 2nd shape (for debug). + const TColStd_PackedMapOfInteger& OverlapTriangles2() const { return myOverlapTriangles2; } +#endif + + //! Sets filtering tool for preliminary checking pairs of mesh elements. + void SetElementFilter(BRepExtrema_ElementFilter* theFilter) { myFilter = theFilter; } + +public: //! @name Reject/Accept implementations + //! Defines the rules for node rejection by bounding box + Standard_EXPORT virtual Standard_Boolean RejectNode(const BVH_Vec3d& theCornerMin1, + const BVH_Vec3d& theCornerMax1, + const BVH_Vec3d& theCornerMin2, + const BVH_Vec3d& theCornerMax2, + Standard_Real&) const Standard_OVERRIDE; + //! Defines the rules for leaf acceptance + Standard_EXPORT virtual Standard_Boolean Accept(const Standard_Integer theLeaf1, + const Standard_Integer theLeaf2) + Standard_OVERRIDE; + +protected: + //! Performs narrow-phase of overlap test (exact intersection). + void intersectTrianglesExact(const Standard_Integer theTrgIdx1, + const Standard_Integer theTrgIdx2); + + //! Performs narrow-phase of overlap test (intersection with non-zero tolerance). + void intersectTrianglesToler(const Standard_Integer theTrgIdx1, + const Standard_Integer theTrgIdx2, + const Standard_Real theToler); + +private: + //! Set of all mesh elements (triangles) of the 1st shape. + Handle(BRepExtrema_TriangleSet) mySet1; + //! Set of all mesh elements (triangles) of the 2nd shape. + Handle(BRepExtrema_TriangleSet) mySet2; + + //! Filter for preliminary checking pairs of mesh elements. + BRepExtrema_ElementFilter* myFilter; + + //! Resulted set of overlapped sub-shapes of 1st shape (only faces). + BRepExtrema_MapOfIntegerPackedMapOfInteger myOverlapSubShapes1; + //! Resulted set of overlapped sub-shapes of 2nd shape (only faces). + BRepExtrema_MapOfIntegerPackedMapOfInteger myOverlapSubShapes2; + +#ifdef OVERLAP_TOOL_OUTPUT_TRIANGLES + //! Set of overlapped elements from the 1st shape (only triangles). + TColStd_PackedMapOfInteger myOverlapTriangles1; + //! Set of overlapped elements from the 2nd shape (only triangles). + TColStd_PackedMapOfInteger myOverlapTriangles2; +#endif + + //! Is overlap test test completed? + Standard_Boolean myIsDone; + + Standard_Real myTolerance; +}; + +#endif // _BRepExtrema_OverlapTool_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_SolutionElem.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_SolutionElem.hxx new file mode 100644 index 00000000..cf9e0eb7 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_SolutionElem.hxx @@ -0,0 +1,144 @@ +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepExtrema_SolutionElem_HeaderFile +#define _BRepExtrema_SolutionElem_HeaderFile + +#include "gp_Pnt.hxx" +#include "BRepExtrema_SupportType.hxx" +#include "TopoDS_Vertex.hxx" +#include "TopoDS_Edge.hxx" +#include "TopoDS_Face.hxx" + +//! This class is used to store information relative to the minimum distance between two shapes. +class BRepExtrema_SolutionElem +{ +public: + DEFINE_STANDARD_ALLOC + + //! Empty constructor + BRepExtrema_SolutionElem() + : myDist(0.0), + myPoint(0.0, 0.0, 0.0), + mySupType(BRepExtrema_IsVertex), + myPar1(0.0), + myPar2(0.0) + { + } + + //! This constructor is used when the solution of a distance is a Vertex. + //! The different initialized fields are: + //! @param theDist the distance + //! @param thePoint the solution point + //! @param theSolType the type of solution + //! @param theVertex and the Vertex + BRepExtrema_SolutionElem(const Standard_Real theDist, + const gp_Pnt& thePoint, + const BRepExtrema_SupportType theSolType, + const TopoDS_Vertex& theVertex) + : myDist(theDist), + myPoint(thePoint), + mySupType(theSolType), + myVertex(theVertex), + myPar1(0.0), + myPar2(0.0) + { + } + + //! This constructor is used when the solution of distance is on an Edge. + //! The different initialized fields are: + //! @param theDist the distance + //! @param thePoint the solution point + //! @param theSolType the type of solution + //! @param theEdge the Edge + //! @param theParam the parameter to locate the solution + BRepExtrema_SolutionElem(const Standard_Real theDist, + const gp_Pnt& thePoint, + const BRepExtrema_SupportType theSolType, + const TopoDS_Edge& theEdge, + const Standard_Real theParam) + : myDist(theDist), + myPoint(thePoint), + mySupType(theSolType), + myEdge(theEdge), + myPar1(theParam), + myPar2(0.0) + { + } + + //! This constructor is used when the solution of distance is in a Face. + //! The different initialized fields are: + //! @param theDist the distance + //! @param thePoint the solution point + //! @param theSolType the type of solution + //! @param theFace the Face + //! @param theU U parameter to locate the solution + //! @param theV V parameter to locate the solution + BRepExtrema_SolutionElem(const Standard_Real theDist, + const gp_Pnt& thePoint, + const BRepExtrema_SupportType theSolType, + const TopoDS_Face& theFace, + const Standard_Real theU, + const Standard_Real theV) + : myDist(theDist), + myPoint(thePoint), + mySupType(theSolType), + myFace(theFace), + myPar1(theU), + myPar2(theV) + { + } + + //! Returns the value of the minimum distance. + Standard_Real Dist() const { return myDist; } + + //! Returns the solution point. + const gp_Pnt& Point() const { return myPoint; } + + //! Returns the Support type: + //! IsVertex => The solution is a vertex. + //! IsOnEdge => The solution belongs to an Edge. + //! IsInFace => The solution is inside a Face. + BRepExtrema_SupportType SupportKind() const { return mySupType; } + + //! Returns the vertex if the solution is a Vertex. + const TopoDS_Vertex& Vertex() const { return myVertex; } + + //! Returns the vertex if the solution is an Edge. + const TopoDS_Edge& Edge() const { return myEdge; } + + //! Returns the vertex if the solution is an Face. + const TopoDS_Face& Face() const { return myFace; } + + //! Returns the parameter value if the solution is on Edge. + void EdgeParameter(Standard_Real& theParam) const { theParam = myPar1; } + + //! Returns the parameters U and V if the solution is in a Face. + void FaceParameter(Standard_Real& theU, Standard_Real& theV) const + { + theU = myPar1; + theV = myPar2; + } + +private: + Standard_Real myDist; + gp_Pnt myPoint; + BRepExtrema_SupportType mySupType; + TopoDS_Vertex myVertex; + TopoDS_Edge myEdge; + TopoDS_Face myFace; + Standard_Real myPar1; + Standard_Real myPar2; +}; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_SupportType.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_SupportType.hxx new file mode 100644 index 00000000..cdbbc708 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_SupportType.hxx @@ -0,0 +1,24 @@ +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepExtrema_SupportType_HeaderFile +#define _BRepExtrema_SupportType_HeaderFile + +enum BRepExtrema_SupportType +{ + BRepExtrema_IsVertex, + BRepExtrema_IsOnEdge, + BRepExtrema_IsInFace +}; + +#endif diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_TriangleSet.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_TriangleSet.hxx new file mode 100644 index 00000000..7fe176be --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepExtrema_TriangleSet.hxx @@ -0,0 +1,132 @@ +// Created on: 2014-10-20 +// Created by: Denis BOGOLEPOV +// Copyright (c) 2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepExtrema_TriangleSet_HeaderFile +#define _BRepExtrema_TriangleSet_HeaderFile + +#include "BVH_PrimitiveSet3d.hxx" +#include "TColgp_Array1OfPnt.hxx" +#include "TColStd_DataMapOfIntegerInteger.hxx" +#include "TopoDS_Edge.hxx" +#include "TopoDS_Face.hxx" + +//! List of shapes and their IDs for collision detection. +typedef NCollection_Vector BRepExtrema_ShapeList; + +//! Triangle set corresponding to specific face. +class BRepExtrema_TriangleSet : public BVH_PrimitiveSet3d +{ +public: + //! Creates empty triangle set. + Standard_EXPORT BRepExtrema_TriangleSet(); + + //! Creates triangle set from the given face. + Standard_EXPORT BRepExtrema_TriangleSet(const BRepExtrema_ShapeList& theFaces); + + //! Releases resources of triangle set. + Standard_EXPORT ~BRepExtrema_TriangleSet(); + +public: //! @name methods implementing BVH set interface + //! Returns total number of triangles. + Standard_EXPORT Standard_Integer Size() const Standard_OVERRIDE; + + //! Returns AABB of the given triangle. + Standard_EXPORT BVH_Box Box(const Standard_Integer theIndex) const + Standard_OVERRIDE; + + //! Make inherited method Box() visible to avoid CLang warning + using BVH_PrimitiveSet3d::Box; + + //! Returns centroid position along specified axis. + Standard_EXPORT Standard_Real Center(const Standard_Integer theIndex, + const Standard_Integer theAxis) const Standard_OVERRIDE; + + //! Swaps indices of two specified triangles. + Standard_EXPORT void Swap(const Standard_Integer theIndex1, + const Standard_Integer theIndex2) Standard_OVERRIDE; + +public: + //! Clears triangle set data. + Standard_EXPORT void Clear(); + + //! Initializes triangle set. + Standard_EXPORT Standard_Boolean Init(const BRepExtrema_ShapeList& theShapes); + + //! Returns all vertices. + Standard_EXPORT const BVH_Array3d& GetVertices() const { return myVertexArray; } + + //! Returns vertices of the given triangle. + Standard_EXPORT void GetVertices(const Standard_Integer theIndex, + BVH_Vec3d& theVertex1, + BVH_Vec3d& theVertex2, + BVH_Vec3d& theVertex3) const; + + //! Returns vertex indices of the given triangle. + Standard_EXPORT void GetVtxIndices(const Standard_Integer theIndex, + NCollection_Array1& theVtxIndices) const; + + //! Returns face ID of the given triangle. + Standard_EXPORT Standard_Integer GetFaceID(const Standard_Integer theIndex) const; + + //! Returns shape ID of the given vertex index. + Standard_EXPORT Standard_Integer GetShapeIDOfVtx(const Standard_Integer theIndex) const; + + //! Returns vertex index in tringulation of the shape, which vertex belongs, + //! with the given vtx ID in whole set. + Standard_EXPORT Standard_Integer GetVtxIdxInShape(const Standard_Integer theIndex) const; + + //! Returns triangle index (before swapping) in tringulation of the shape, which triangle belongs, + //! with the given trg ID in whole set (after swapping). + Standard_EXPORT Standard_Integer GetTrgIdxInShape(const Standard_Integer theIndex) const; + +private: + //! Initializes triangle set from the face + Standard_Boolean initFace(const TopoDS_Face& theFace, const Standard_Integer theIndex); + + //! Initializes polygon from the edge + Standard_Boolean initEdge(const TopoDS_Edge& theEdge, const Standard_Integer theIndex); + + //! Initializes nodes + void initNodes(const TColgp_Array1OfPnt& theNodes, + const gp_Trsf& theTrsf, + const Standard_Integer theIndex); + +protected: + //! Array of vertex indices. + BVH_Array4i myTriangles; + + //! Array of vertex coordinates. + BVH_Array3d myVertexArray; + + //! Vector of shapes' indices where index of item corresponds to index of vertex, + //! belonging to this shape. + NCollection_Vector myShapeIdxOfVtxVec; + + //! Vector of vertexes' number belonging to shape which index corresponds item's index. + NCollection_Vector myNumVtxInShapeVec; + + //! Vector of triangles' number belonging to shape which index corresponds item's index. + NCollection_Vector myNumTrgInShapeVec; + + //! Map of triangles' indices after (key) and before (value) swapping. + TColStd_DataMapOfIntegerInteger myTrgIdxMap; + +public: + DEFINE_STANDARD_RTTIEXT(BRepExtrema_TriangleSet, BVH_PrimitiveSet3d) +}; + +DEFINE_STANDARD_HANDLE(BRepExtrema_TriangleSet, BVH_PrimitiveSet3d) + +#endif // _BRepExtrema_TriangleSet_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepFeat_MakeLinearForm.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFeat_MakeLinearForm.hxx new file mode 100644 index 00000000..b94534da --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFeat_MakeLinearForm.hxx @@ -0,0 +1,134 @@ +// Created on: 1997-04-14 +// Created by: Olga PILLOT +// Copyright (c) 1997-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepFeat_MakeLinearForm_HeaderFile +#define _BRepFeat_MakeLinearForm_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "gp_Vec.hxx" +#include "TopTools_DataMapOfShapeListOfShape.hxx" +#include "TopTools_ListOfShape.hxx" +#include "BRepFeat_RibSlot.hxx" +#include "Standard_Integer.hxx" +class Geom_Curve; +class Geom_Plane; +class TopoDS_Shape; +class TopoDS_Wire; +class TopoDS_Edge; +class TopoDS_Face; +class gp_Pnt; + +//! Builds a rib or a groove along a developable, planar surface. +//! The semantics of mechanical features is built around +//! giving thickness to a contour. This thickness can either +//! be symmetrical - on one side of the contour - or +//! dissymmetrical - on both sides. As in the semantics of +//! form features, the thickness is defined by construction of +//! shapes in specific contexts. +//! The development contexts differ, however, in case of +//! mechanical features. Here they include extrusion: +//! - to a limiting face of the basis shape +//! - to or from a limiting plane +//! - to a height. +class BRepFeat_MakeLinearForm : public BRepFeat_RibSlot +{ +public: + DEFINE_STANDARD_ALLOC + + //! initializes the linear form class + BRepFeat_MakeLinearForm(); + + //! contour W, a shape Sbase and a + //! plane P are initialized to serve as the basic + //! elements in the construction of the rib or groove. + //! Direction and Direction1 give The vectors for + //! defining the direction(s) in which thickness will be built up. + //! Fuse offers a choice between: + //! - removing matter with a Boolean cut using the + //! setting 0 in case of the groove + //! - adding matter with Boolean fusion using the + //! setting 1 in case of the rib. + BRepFeat_MakeLinearForm(const TopoDS_Shape& Sbase, + const TopoDS_Wire& W, + const Handle(Geom_Plane)& P, + const gp_Vec& Direction, + const gp_Vec& Direction1, + const Standard_Integer Fuse, + const Standard_Boolean Modify); + + //! Initializes this construction algorithm. + //! A contour W, a shape Sbase and a plane P are + //! initialized to serve as the basic elements in the + //! construction of the rib or groove. The vectors for + //! defining the direction(s) in which thickness will be built + //! up are given by Direction and Direction1. + //! Fuse offers a choice between: + //! - removing matter with a Boolean cut using the setting + //! 0 in case of the groove + //! - adding matter with Boolean fusion using the setting 1 + //! in case of the rib. + Standard_EXPORT void Init(const TopoDS_Shape& Sbase, + const TopoDS_Wire& W, + const Handle(Geom_Plane)& P, + const gp_Vec& Direction, + const gp_Vec& Direction1, + const Standard_Integer Fuse, + const Standard_Boolean Modify); + + //! Indicates that the edge will slide on the face + //! . + //! Raises ConstructionError if the face does not belong to the + //! basis shape, or the edge to the prismed shape. + Standard_EXPORT void Add(const TopoDS_Edge& E, const TopoDS_Face& OnFace); + + //! Performs a prism from the wire to the plane along the + //! basis shape Sbase. Reconstructs the feature topologically. + Standard_EXPORT void Perform(); + + //! Limits construction of the linear form feature by using + //! one of the following three semantics: + //! - from a limiting plane + //! - to a limiting plane + //! - from one limiting plane to another. + //! The setting is provided by a flag, flag, which can be set + //! to from and/or until. The third semantic possibility above + //! is selected by showing both from and until at the same time. + Standard_EXPORT void TransformShapeFU(const Standard_Integer flag); + + Standard_EXPORT Standard_Boolean Propagate(TopTools_ListOfShape& L, + const TopoDS_Face& F, + const gp_Pnt& FPoint, + const gp_Pnt& LPoint, + Standard_Boolean& falseside); + +protected: +private: + Handle(Geom_Curve) myCrv; + gp_Vec myDir; + gp_Vec myDir1; + Handle(Geom_Plane) myPln; + Standard_Real myBnd; + TopTools_DataMapOfShapeListOfShape mySlface; + TopTools_ListOfShape myListOfEdges; + Standard_Real myTol; +}; + +#include "BRepFeat_MakeLinearForm.lxx" + +#endif // _BRepFeat_MakeLinearForm_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepFeat_MakeLinearForm.lxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFeat_MakeLinearForm.lxx new file mode 100644 index 00000000..6b4400af --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFeat_MakeLinearForm.lxx @@ -0,0 +1,43 @@ +// Created on: 1997-04-15 +// Created by: Olga PILLOT +// Copyright (c) 1997-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +//======================================================================= +// function : BRepFeat_MakeLinearForm +// purpose : +//======================================================================= + +inline BRepFeat_MakeLinearForm::BRepFeat_MakeLinearForm() + : myBnd(0.0), + myTol(0.0) +{ +} + +//======================================================================= +// function : BRepFeat_MakePrism +// purpose : +//======================================================================= + +inline BRepFeat_MakeLinearForm::BRepFeat_MakeLinearForm(const TopoDS_Shape& Sbase, + const TopoDS_Wire& W, + const Handle(Geom_Plane)& P, + const gp_Vec& Direc, + const gp_Vec& Direc1, + const Standard_Integer Fuse, + const Standard_Boolean Modify) + +{ + Init(Sbase, W, P, Direc, Direc1, Fuse, Modify); +} diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepFeat_PerfSelection.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFeat_PerfSelection.hxx new file mode 100644 index 00000000..5b5fbdf1 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFeat_PerfSelection.hxx @@ -0,0 +1,39 @@ +// Created on: 1995-06-13 +// Created by: Jacques GOUSSARD +// Copyright (c) 1995-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepFeat_PerfSelection_HeaderFile +#define _BRepFeat_PerfSelection_HeaderFile + +//! To declare the type of selection semantics for local operation Perform methods +//! - NoSelection +//! - SelectionFU - selection of a face up to which a +//! local operation will be performed +//! - SelectionU - selection of a point up to which a +//! local operation will be performed +//! - SelectionSh - selection of a shape on which a +//! local operation will be performed +//! - SelectionShU - selection of a shape up to which a +//! local operation will be performed. +enum BRepFeat_PerfSelection +{ + BRepFeat_NoSelection, + BRepFeat_SelectionFU, + BRepFeat_SelectionU, + BRepFeat_SelectionSh, + BRepFeat_SelectionShU +}; + +#endif // _BRepFeat_PerfSelection_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_AdvancedEvolved.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_AdvancedEvolved.hxx new file mode 100644 index 00000000..b99fd8c9 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_AdvancedEvolved.hxx @@ -0,0 +1,122 @@ +// Created on: 2018-03-14 +// Created by: Nikolai BUKHALOV +// Copyright (c) 1999-2018 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepFill_AdvancedEvolved_HeaderFile +#define _BRepFill_AdvancedEvolved_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "TopoDS_Compound.hxx" +#include "TopoDS_Wire.hxx" +#include "TopTools_IndexedMapOfShape.hxx" +#include "TopTools_ListOfShape.hxx" + +class BOPAlgo_MakerVolume; +class TopoDS_Face; + +//! Constructs an evolved volume from a spine (wire or face) +//! and a profile ( wire). +class BRepFill_AdvancedEvolved +{ +public: + DEFINE_STANDARD_ALLOC; + + //! Constructor + Standard_EXPORT BRepFill_AdvancedEvolved() + : myErrorStatus(BRepFill_AdvancedEvolved_Empty), + myFuzzyValue(0.0), + myIsParallel(Standard_True), + myDebugShapesPath("C:\\Temp") + { + } + + Standard_EXPORT void Perform(const TopoDS_Wire& theSpine, + const TopoDS_Wire& theProfile, + const Standard_Real theTolerance, + const Standard_Boolean theSolidReq = Standard_True); + + Standard_Boolean IsDone(unsigned int* theErrorCode = 0) const + { + if (theErrorCode) + *theErrorCode = myErrorStatus; + + return (myErrorStatus == BRepFill_AdvancedEvolved_OK); + } + + //! returns the resulting shape. + const TopoDS_Shape& Shape() const { return myResult; } + + //! Sets directory where the debug shapes will be saved + void SetTemporaryDirectory(const Standard_CString& thePath) { myDebugShapesPath = thePath; } + + //! Sets/Unsets computation in parallel mode + void SetParallelMode(const Standard_Boolean theVal) { myIsParallel = theVal; } + +protected: + Standard_EXPORT void PerformSweep(); + + Standard_EXPORT void GetLids(); + + Standard_EXPORT void BuildSolid(); + + Standard_EXPORT void RemoveExcessSolids(const TopTools_ListOfShape& theLSplits, + const TopoDS_Shape& theShape, + TopTools_ListOfShape& theArgsList, + BOPAlgo_MakerVolume& theMV); + + Standard_EXPORT void ExtractOuterSolid(TopoDS_Shape& theShape, TopTools_ListOfShape& theArgsList); + + Standard_EXPORT void GetSpineAndProfile(const TopoDS_Wire& theSpine, + const TopoDS_Wire& theProfile); + + Standard_EXPORT void UnifyShape(); + + Standard_EXPORT Standard_Boolean PerformBoolean(const TopTools_ListOfShape& theArgsList, + TopoDS_Shape& theResult) const; + + Standard_EXPORT Standard_Boolean + CheckSingularityAndAdd(const TopoDS_Face& theF, + const Standard_Real theFuzzyToler, + TopTools_ListOfShape& theListOfFaces, + TopTools_ListOfShape& theListOfSplits) const; + + Standard_EXPORT Standard_Boolean IsLid(const TopoDS_Face& theF, + const TopTools_IndexedMapOfShape& theMapOfLids) const; + +private: + enum + { + BRepFill_AdvancedEvolved_Empty = 0, + BRepFill_AdvancedEvolved_NotPlanarSpine, + BRepFill_AdvancedEvolved_SweepError, + BRepFill_AdvancedEvolved_NoLids, + BRepFill_AdvancedEvolved_NotSolid, + BRepFill_AdvancedEvolved_NotVolume, + BRepFill_AdvancedEvolved_OK = UINT_MAX + } myErrorStatus; + + TopoDS_Wire mySpine; + TopoDS_Wire myProfile; + TopoDS_Shape myPipeShell; + TopoDS_Compound myTopBottom; // Lids can be split on several faces + TopoDS_Shape myResult; + Standard_Real myFuzzyValue; + Standard_Boolean myIsParallel; + Standard_CString myDebugShapesPath; +}; + +#endif // _BRepFill_AdvancedEvolved_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_ApproxSeewing.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_ApproxSeewing.hxx new file mode 100644 index 00000000..73238675 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_ApproxSeewing.hxx @@ -0,0 +1,63 @@ +// Created on: 1995-09-21 +// Created by: Bruno DUMORTIER +// Copyright (c) 1995-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepFill_ApproxSeewing_HeaderFile +#define _BRepFill_ApproxSeewing_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "BRepFill_MultiLine.hxx" +class Geom_Curve; +class Geom2d_Curve; + +//! Evaluate the 3dCurve and the PCurves described in a MultiLine from BRepFill. +//! The parametrization of those curves is not imposed by the Bissectrice. +//! The parametrization is given approximately by the abscissa of the curve3d. +class BRepFill_ApproxSeewing +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepFill_ApproxSeewing(); + + Standard_EXPORT BRepFill_ApproxSeewing(const BRepFill_MultiLine& ML); + + Standard_EXPORT void Perform(const BRepFill_MultiLine& ML); + + Standard_EXPORT Standard_Boolean IsDone() const; + + //! returns the approximation of the 3d Curve + Standard_EXPORT const Handle(Geom_Curve)& Curve() const; + + //! returns the approximation of the PCurve on the + //! first face of the MultiLine + Standard_EXPORT const Handle(Geom2d_Curve)& CurveOnF1() const; + + //! returns the approximation of the PCurve on the + //! first face of the MultiLine + Standard_EXPORT const Handle(Geom2d_Curve)& CurveOnF2() const; + +private: + BRepFill_MultiLine myML; + Standard_Boolean myIsDone; + Handle(Geom_Curve) myCurve; + Handle(Geom2d_Curve) myPCurve1; + Handle(Geom2d_Curve) myPCurve2; +}; + +#endif // _BRepFill_ApproxSeewing_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_CompatibleWires.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_CompatibleWires.hxx new file mode 100644 index 00000000..6057d59c --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_CompatibleWires.hxx @@ -0,0 +1,98 @@ +// Created on: 1998-07-02 +// Created by: Joelle CHAUVET +// Copyright (c) 1998-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepFill_CompatibleWires_HeaderFile +#define _BRepFill_CompatibleWires_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" + +#include "BRepFill_ThruSectionErrorStatus.hxx" +#include "TopTools_SequenceOfShape.hxx" +#include "TopTools_DataMapOfShapeListOfShape.hxx" +#include "TopTools_ListOfShape.hxx" +class TopoDS_Edge; + +//! Constructs a sequence of Wires (with good orientation +//! and origin) agreed each other so that the surface passing +//! through these sections is not twisted +class BRepFill_CompatibleWires +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepFill_CompatibleWires(); + + Standard_EXPORT BRepFill_CompatibleWires(const TopTools_SequenceOfShape& Sections); + + Standard_EXPORT void Init(const TopTools_SequenceOfShape& Sections); + + Standard_EXPORT void SetPercent(const Standard_Real percent = 0.01); + + //! Performs CompatibleWires According to the orientation + //! and the origin of each other + Standard_EXPORT void Perform(const Standard_Boolean WithRotation = Standard_True); + + Standard_EXPORT Standard_Boolean IsDone() const; + + BRepFill_ThruSectionErrorStatus GetStatus() const { return myStatus; } + + //! returns the generated sequence. + Standard_EXPORT const TopTools_SequenceOfShape& Shape() const; + + //! Returns the shapes created from a subshape + //! of a section. + Standard_EXPORT const TopTools_ListOfShape& GeneratedShapes(const TopoDS_Edge& SubSection) const; + + Standard_EXPORT const TopTools_DataMapOfShapeListOfShape& Generated() const; + + Standard_EXPORT Standard_Boolean IsDegeneratedFirstSection() const; + + Standard_EXPORT Standard_Boolean IsDegeneratedLastSection() const; + +protected: +private: + //! Insert cutting points on closed wires to have same + //! number of edges. The sequence of shapes must + //! be a sequence of wires. + Standard_EXPORT void SameNumberByPolarMethod(const Standard_Boolean WithRotation = Standard_True); + + //! Insert cutting points on open wires to have same + //! number of edges. The sequence of shapes must + //! be a sequence of wires. + Standard_EXPORT void SameNumberByACR(const Standard_Boolean report); + + //! Computes origins and orientation on closed wires to + //! avoid twisted results. The sequence of shapes must + //! be a sequence of wires. must be true + //! if SameNumberByPolarMethod was used before. + Standard_EXPORT void ComputeOrigin(const Standard_Boolean polar); + + //! Computes origins and orientation on open wires to + //! avoid twisted results. The sequence of shapes must + //! be a sequence of wires. + Standard_EXPORT void SearchOrigin(); + + TopTools_SequenceOfShape myInit; + TopTools_SequenceOfShape myWork; + Standard_Real myPercent; + Standard_Boolean myDegen1; + Standard_Boolean myDegen2; + BRepFill_ThruSectionErrorStatus myStatus; + TopTools_DataMapOfShapeListOfShape myMap; +}; + +#endif // _BRepFill_CompatibleWires_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_CurveConstraint.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_CurveConstraint.hxx new file mode 100644 index 00000000..fbb41fdf --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_CurveConstraint.hxx @@ -0,0 +1,62 @@ +// Created on: 1997-10-31 +// Created by: Joelle CHAUVET +// Copyright (c) 1997-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepFill_CurveConstraint_HeaderFile +#define _BRepFill_CurveConstraint_HeaderFile + +#include "Standard.hxx" +#include "Standard_Type.hxx" + +#include "GeomPlate_CurveConstraint.hxx" +#include "Standard_Integer.hxx" + +class BRepFill_CurveConstraint; +DEFINE_STANDARD_HANDLE(BRepFill_CurveConstraint, GeomPlate_CurveConstraint) + +//! same as CurveConstraint from GeomPlate +//! with BRepAdaptor_Surface instead of +//! GeomAdaptor_Surface +class BRepFill_CurveConstraint : public GeomPlate_CurveConstraint +{ + +public: + //! Create a constraint + //! Order is the order of the constraint. The possible values for order are -1,0,1,2. + //! Order i means constraints Gi + //! Npt is the number of points associated with the constraint. + //! TolDist is the maximum error to satisfy for G0 constraints + //! TolAng is the maximum error to satisfy for G1 constraints + //! TolCurv is the maximum error to satisfy for G2 constraints + //! These errors can be replaced by laws of criterion. + Standard_EXPORT BRepFill_CurveConstraint(const Handle(Adaptor3d_CurveOnSurface)& Boundary, + const Standard_Integer Order, + const Standard_Integer NPt = 10, + const Standard_Real TolDist = 0.0001, + const Standard_Real TolAng = 0.01, + const Standard_Real TolCurv = 0.1); + + Standard_EXPORT BRepFill_CurveConstraint(const Handle(Adaptor3d_Curve)& Boundary, + const Standard_Integer Tang, + const Standard_Integer NPt = 10, + const Standard_Real TolDist = 0.0001); + + DEFINE_STANDARD_RTTIEXT(BRepFill_CurveConstraint, GeomPlate_CurveConstraint) + +protected: +private: +}; + +#endif // _BRepFill_CurveConstraint_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_EdgeOnSurfLaw.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_EdgeOnSurfLaw.hxx new file mode 100644 index 00000000..922eb7ac --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_EdgeOnSurfLaw.hxx @@ -0,0 +1,48 @@ +// Created on: 1998-07-27 +// Created by: Philippe MANGIN +// Copyright (c) 1998-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepFill_EdgeOnSurfLaw_HeaderFile +#define _BRepFill_EdgeOnSurfLaw_HeaderFile + +#include "Standard.hxx" + +#include "BRepFill_LocationLaw.hxx" +class TopoDS_Wire; +class TopoDS_Shape; + +class BRepFill_EdgeOnSurfLaw; +DEFINE_STANDARD_HANDLE(BRepFill_EdgeOnSurfLaw, BRepFill_LocationLaw) + +//! Build Location Law, with a Wire and a Surface. +class BRepFill_EdgeOnSurfLaw : public BRepFill_LocationLaw +{ + +public: + Standard_EXPORT BRepFill_EdgeOnSurfLaw(const TopoDS_Wire& Path, const TopoDS_Shape& Surf); + + //! returns if one Edge of do not have + //! representation on . In this case it is + //! impossible to use this object. + Standard_EXPORT Standard_Boolean HasResult() const; + + DEFINE_STANDARD_RTTIEXT(BRepFill_EdgeOnSurfLaw, BRepFill_LocationLaw) + +protected: +private: + Standard_Boolean hasresult; +}; + +#endif // _BRepFill_EdgeOnSurfLaw_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_OffsetAncestors.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_OffsetAncestors.hxx new file mode 100644 index 00000000..8f8c2c7e --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_OffsetAncestors.hxx @@ -0,0 +1,58 @@ +// Created on: 1995-09-01 +// Created by: Bruno DUMORTIER +// Copyright (c) 1995-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepFill_OffsetAncestors_HeaderFile +#define _BRepFill_OffsetAncestors_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "Standard_Boolean.hxx" +#include "TopTools_DataMapOfShapeShape.hxx" +class BRepFill_OffsetWire; +class TopoDS_Edge; +class TopoDS_Shape; + +//! this class is used to find the generating shapes +//! of an OffsetWire. +class BRepFill_OffsetAncestors +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepFill_OffsetAncestors(); + + Standard_EXPORT BRepFill_OffsetAncestors(BRepFill_OffsetWire& Paral); + + Standard_EXPORT void Perform(BRepFill_OffsetWire& Paral); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT Standard_Boolean HasAncestor(const TopoDS_Edge& S1) const; + + //! may return a Null Shape if S1 is not a subShape + //! of ; + //! if Perform is not done. + Standard_EXPORT const TopoDS_Shape& Ancestor(const TopoDS_Edge& S1) const; + +protected: +private: + Standard_Boolean myIsPerform; + TopTools_DataMapOfShapeShape myMap; +}; + +#endif // _BRepFill_OffsetAncestors_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TransitionStyle.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TransitionStyle.hxx new file mode 100644 index 00000000..c699eadb --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TransitionStyle.hxx @@ -0,0 +1,27 @@ +// Created on: 1994-03-03 +// Created by: Joelle CHAUVET +// Copyright (c) 1994-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepFill_TransitionStyle_HeaderFile +#define _BRepFill_TransitionStyle_HeaderFile + +enum BRepFill_TransitionStyle +{ + BRepFill_Modified, + BRepFill_Right, + BRepFill_Round +}; + +#endif // _BRepFill_TransitionStyle_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TrimShellCorner.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TrimShellCorner.hxx new file mode 100644 index 00000000..05ef2416 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TrimShellCorner.hxx @@ -0,0 +1,98 @@ +// Created on: 2003-10-21 +// Created by: Mikhail KLOKOV +// Copyright (c) 2003-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepFill_TrimShellCorner_HeaderFile +#define _BRepFill_TrimShellCorner_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "BRepFill_TransitionStyle.hxx" +#include "gp_Ax2.hxx" +#include "TopoDS_Shape.hxx" +#include "TopTools_HArray2OfShape.hxx" +#include "TopTools_HArray1OfShape.hxx" +#include "TopTools_DataMapOfShapeListOfShape.hxx" +#include "TopTools_ListOfShape.hxx" +#include "BOPDS_PDS.hxx" + +//! Trims sets of faces in the corner to make proper parts of pipe +class BRepFill_TrimShellCorner +{ +public: + DEFINE_STANDARD_ALLOC + + //! 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_Vec& theIntPointCrossDir); + + Standard_EXPORT void AddBounds(const Handle(TopTools_HArray2OfShape)& Bounds); + + Standard_EXPORT void AddUEdges(const Handle(TopTools_HArray2OfShape)& theUEdges); + + Standard_EXPORT void AddVEdges(const Handle(TopTools_HArray2OfShape)& theVEdges, + const Standard_Integer theIndex); + + Standard_EXPORT void Perform(); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT Standard_Boolean HasSection() const; + + Standard_EXPORT void Modified(const TopoDS_Shape& S, TopTools_ListOfShape& theModified); + +protected: +private: + Standard_Boolean MakeFacesSec(const Standard_Integer theIndex, + const BOPDS_PDS& theDS, + const Standard_Integer theFaceIndex1, + const Standard_Integer theFaceIndex2, + const Standard_Integer theSSInterfIndex); + + Standard_Boolean MakeFacesNonSec(const Standard_Integer theIndex, + const BOPDS_PDS& theDS, + const Standard_Integer theFaceIndex1, + const Standard_Integer theFaceIndex2); + + Standard_Boolean ChooseSection(const TopoDS_Shape& Comp, + const TopoDS_Vertex& theFirstVertex, + const TopoDS_Vertex& theLastVertex, + TopoDS_Shape& resWire, + gp_Pln& resPlane, + Standard_Boolean& IsSingular); + + BRepFill_TransitionStyle myTransition; + gp_Ax2 myAxeOfBisPlane; + gp_Vec myIntPointCrossDir; + TopoDS_Shape myShape1; + TopoDS_Shape myShape2; + Handle(TopTools_HArray2OfShape) myBounds; + Handle(TopTools_HArray2OfShape) myUEdges; + Handle(TopTools_HArray1OfShape) myVEdges; + Handle(TopTools_HArray2OfShape) myFaces; + Standard_Boolean myDone; + Standard_Boolean myHasSection; + TopTools_DataMapOfShapeListOfShape myHistMap; +}; + +#endif // _BRepFill_TrimShellCorner_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TrimSurfaceTool.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TrimSurfaceTool.hxx new file mode 100644 index 00000000..b3c5edc1 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TrimSurfaceTool.hxx @@ -0,0 +1,83 @@ +// Created on: 1994-10-21 +// Created by: Bruno DUMORTIER +// Copyright (c) 1994-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepFill_TrimSurfaceTool_HeaderFile +#define _BRepFill_TrimSurfaceTool_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "TopoDS_Face.hxx" +#include "TopoDS_Edge.hxx" +#include "TColgp_SequenceOfPnt.hxx" +#include "GeomAbs_Shape.hxx" +class Geom2d_Curve; +class gp_Pnt2d; +class Geom_Curve; + +//! Compute the Pcurves and the 3d curves resulting +//! of the trimming of a face by an extruded surface. +class BRepFill_TrimSurfaceTool +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepFill_TrimSurfaceTool(const Handle(Geom2d_Curve)& Bis, + const TopoDS_Face& Face1, + const TopoDS_Face& Face2, + const TopoDS_Edge& Edge1, + const TopoDS_Edge& Edge2, + const Standard_Boolean Inv1, + const Standard_Boolean Inv2); + + //! Intersect with the projection of the edges + //! and returns the intersecting parameters + //! on Bis and on the edges + //! P.X() : Parameter on Bis + //! P.Y() : Parameter on EdgeOnF1 + //! P.Z() : Parameter on EdgeOnF2 + //! raises if is not a edge of Face1 or Face2. + Standard_EXPORT void IntersectWith(const TopoDS_Edge& EdgeOnF1, + const TopoDS_Edge& EdgeOnF2, + TColgp_SequenceOfPnt& Points) const; + + //! returns True if the Line (P, DZ) intersect the Faces + Standard_EXPORT Standard_Boolean IsOnFace(const gp_Pnt2d& Point) const; + + //! returns the parameter of the point on the + //! Edge , assuming that the point is on the edge. + Standard_EXPORT Standard_Real ProjOn(const gp_Pnt2d& Point, const TopoDS_Edge& Edge) const; + + Standard_EXPORT void Project(const Standard_Real U1, + const Standard_Real U2, + Handle(Geom_Curve)& Curve, + Handle(Geom2d_Curve)& PCurve1, + Handle(Geom2d_Curve)& PCurve2, + GeomAbs_Shape& myCont) const; + +protected: +private: + TopoDS_Face myFace1; + TopoDS_Face myFace2; + TopoDS_Edge myEdge1; + TopoDS_Edge myEdge2; + Standard_Boolean myInv1; + Standard_Boolean myInv2; + Handle(Geom2d_Curve) myBis; +}; + +#endif // _BRepFill_TrimSurfaceTool_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TypeOfContact.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TypeOfContact.hxx new file mode 100644 index 00000000..18b45fd0 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFill_TypeOfContact.hxx @@ -0,0 +1,28 @@ +// Created on: 1994-03-03 +// Created by: Joelle CHAUVET +// Copyright (c) 1994-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepFill_TypeOfContact_HeaderFile +#define _BRepFill_TypeOfContact_HeaderFile + +//! A pair of bound shapes with the result. +enum BRepFill_TypeOfContact +{ + BRepFill_NoContact, + BRepFill_Contact, + BRepFill_ContactOnBorder +}; + +#endif // _BRepFill_TypeOfContact_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepFilletAPI_MakeFillet.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFilletAPI_MakeFillet.hxx new file mode 100644 index 00000000..374f1c48 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepFilletAPI_MakeFillet.hxx @@ -0,0 +1,403 @@ +// Created on: 1994-06-17 +// Created by: Modeling +// Copyright (c) 1994-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepFilletAPI_MakeFillet_HeaderFile +#define _BRepFilletAPI_MakeFillet_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "ChFi3d_FilBuilder.hxx" +#include "TopTools_MapOfShape.hxx" +#include "BRepFilletAPI_LocalOperation.hxx" +#include "ChFi3d_FilletShape.hxx" +#include "Standard_Real.hxx" +#include "GeomAbs_Shape.hxx" +#include "TColgp_Array1OfPnt2d.hxx" +#include "Standard_Integer.hxx" +#include "TopTools_ListOfShape.hxx" +#include "ChFiDS_SecHArray1.hxx" +#include "ChFiDS_ErrorStatus.hxx" +class TopoDS_Shape; +class TopoDS_Edge; +class Law_Function; +class TopoDS_Vertex; +class TopOpeBRepBuild_HBuilder; +class Geom_Surface; + +//! Describes functions to build fillets on the broken edges of a shell or solid. +//! A MakeFillet object provides a framework for: +//! - initializing the construction algorithm with a given shape, +//! - acquiring the data characterizing the fillets, +//! - building the fillets and constructing the resulting shape, and +//! - consulting the result. +class BRepFilletAPI_MakeFillet : public BRepFilletAPI_LocalOperation +{ +public: + DEFINE_STANDARD_ALLOC + + //! Initializes the computation of the fillets. + //! sets the type of fillet surface. The + //! default value is ChFi3d_Rational (classical nurbs + //! representation of circles). ChFi3d_QuasiAngular + //! corresponds to a nurbs representation of circles + //! which parameterisation matches the circle one. + //! ChFi3d_Polynomial corresponds to a polynomial + //! representation of circles. + Standard_EXPORT BRepFilletAPI_MakeFillet(const TopoDS_Shape& S, + const ChFi3d_FilletShape FShape = ChFi3d_Rational); + + Standard_EXPORT void SetParams(const Standard_Real Tang, + const Standard_Real Tesp, + const Standard_Real T2d, + const Standard_Real TApp3d, + const Standard_Real TolApp2d, + const Standard_Real Fleche); + + //! Changes the parameters of continiuity + //! InternalContinuity to produce fillet'surfaces with + //! an continuity Ci (i=0,1 or 2). + //! By defaultInternalContinuity = GeomAbs_C1. + //! AngularTolerance is the G1 tolerance between fillet + //! and support'faces. + Standard_EXPORT void SetContinuity(const GeomAbs_Shape InternalContinuity, + const Standard_Real AngularTolerance); + + //! Adds a fillet contour in the builder (builds a + //! contour of tangent edges). + //! The Radius must be set after. + Standard_EXPORT void Add(const TopoDS_Edge& E) Standard_OVERRIDE; + + //! Adds a fillet description in the builder + //! - builds a contour of tangent edges, + //! - sets the radius. + Standard_EXPORT void Add(const Standard_Real Radius, const TopoDS_Edge& E); + + //! Adds a fillet description in the builder + //! - builds a contour of tangent edges, + //! - sets a linear radius evolution law between + //! the first and last vertex of the spine. + Standard_EXPORT void Add(const Standard_Real R1, const Standard_Real R2, const TopoDS_Edge& E); + + //! Adds a fillet description in the builder + //! - builds a contour of tangent edges, + //! - sest the radius evolution law. + Standard_EXPORT void Add(const Handle(Law_Function)& L, const TopoDS_Edge& E); + + //! Adds a fillet description in the builder + //! - builds a contour of tangent edges, + //! - sets the radius evolution law interpolating the values + //! given in the array UandR : + //! + //! p2d.X() = relative parameter on the spine [0,1] + //! p2d.Y() = value of the radius. + Standard_EXPORT void Add(const TColgp_Array1OfPnt2d& UandR, const TopoDS_Edge& E); + + //! Sets the parameters of the fillet + //! along the contour of index IC generated using the Add function + //! in the internal data structure of + //! this algorithm, where Radius is the radius of the fillet. + Standard_EXPORT void SetRadius(const Standard_Real Radius, + const Standard_Integer IC, + const Standard_Integer IinC); + + //! Sets the parameters of the fillet + //! along the contour of index IC generated using the Add function + //! in the internal data structure of this algorithm, where the radius of the + //! fillet evolves according to a linear evolution law defined + //! from R1 to R2, between the first and last vertices of the contour of index IC. + Standard_EXPORT void SetRadius(const Standard_Real R1, + const Standard_Real R2, + const Standard_Integer IC, + const Standard_Integer IinC); + + //! Sets the parameters of the fillet + //! along the contour of index IC generated using the Add function + //! in the internal data structure of this algorithm, where the radius of the + //! fillet evolves according to the evolution law L, between the + //! first and last vertices of the contour of index IC. + Standard_EXPORT void SetRadius(const Handle(Law_Function)& L, + const Standard_Integer IC, + const Standard_Integer IinC); + + //! Sets the parameters of the fillet + //! along the contour of index IC generated using the Add function + //! in the internal data structure of this algorithm, + //! where the radius of the fillet evolves according to the evolution law + //! which interpolates the set of parameter and radius pairs given + //! in the array UandR as follows: + //! - the X coordinate of a point in UandR defines a + //! relative parameter on the contour (i.e. a parameter between 0 and 1), + //! - the Y coordinate of a point in UandR gives the + //! corresponding value of the radius, and the radius evolves + //! between the first and last vertices of the contour of index IC. + Standard_EXPORT void SetRadius(const TColgp_Array1OfPnt2d& UandR, + const Standard_Integer IC, + const Standard_Integer IinC); + + //! Erases the radius information on the contour of index + //! IC in the internal data structure of this algorithm. + //! Use the SetRadius function to reset this data. + //! Warning + //! Nothing is done if IC is outside the bounds of the table of contours. + Standard_EXPORT void ResetContour(const Standard_Integer IC) Standard_OVERRIDE; + + //! Returns true if the radius of the fillet along the contour of index IC + //! in the internal data structure of this algorithm is constant, + //! Warning + //! False is returned if IC is outside the bounds of the table + //! of contours or if E does not belong to the contour of index IC. + Standard_EXPORT Standard_Boolean IsConstant(const Standard_Integer IC); + + //! Returns the radius of the fillet along the contour of index IC in the + //! internal data structure of this algorithm + //! Warning + //! - Use this function only if the radius is constant. + //! - -1. is returned if IC is outside the bounds of the + //! table of contours or if E does not belong to the contour of index IC. + Standard_EXPORT Standard_Real Radius(const Standard_Integer IC); + + //! Returns true if the radius of the fillet along the edge E of the + //! contour of index IC in the internal data structure of + //! this algorithm is constant. + //! Warning + //! False is returned if IC is outside the bounds of the table + //! of contours or if E does not belong to the contour of index IC. + Standard_EXPORT Standard_Boolean IsConstant(const Standard_Integer IC, const TopoDS_Edge& E); + + //! Returns the radius of the fillet along the edge E of the contour of index + //! IC in the internal data structure of this algorithm. + //! Warning + //! - Use this function only if the radius is constant. + //! - -1 is returned if IC is outside the bounds of the + //! table of contours or if E does not belong to the contour of index IC. + Standard_EXPORT Standard_Real Radius(const Standard_Integer IC, const TopoDS_Edge& E); + + //! Assigns Radius as the radius of the fillet on the edge E + Standard_EXPORT void SetRadius(const Standard_Real Radius, + const Standard_Integer IC, + const TopoDS_Edge& E); + + Standard_EXPORT void SetRadius(const Standard_Real Radius, + const Standard_Integer IC, + const TopoDS_Vertex& V); + + Standard_EXPORT Standard_Boolean GetBounds(const Standard_Integer IC, + const TopoDS_Edge& E, + Standard_Real& F, + Standard_Real& L); + + Standard_EXPORT Handle(Law_Function) GetLaw(const Standard_Integer IC, const TopoDS_Edge& E); + + Standard_EXPORT void SetLaw(const Standard_Integer IC, + const TopoDS_Edge& E, + const Handle(Law_Function)& L); + + //! Assigns FShape as the type of fillet shape built by this algorithm. + Standard_EXPORT void SetFilletShape(const ChFi3d_FilletShape FShape); + + //! Returns the type of fillet shape built by this algorithm. + Standard_EXPORT ChFi3d_FilletShape GetFilletShape() const; + + //! Returns the number of contours generated using the + //! Add function in the internal data structure of this algorithm. + Standard_EXPORT Standard_Integer NbContours() const Standard_OVERRIDE; + + //! Returns the index of the contour in the internal data + //! structure of this algorithm which contains the edge E of the shape. + //! This function returns 0 if the edge E does not belong to any contour. + //! Warning + //! This index can change if a contour is removed from the + //! internal data structure of this algorithm using the function Remove. + Standard_EXPORT Standard_Integer Contour(const TopoDS_Edge& E) const Standard_OVERRIDE; + + //! Returns the number of edges in the contour of index I in + //! the internal data structure of this algorithm. + //! Warning + //! Returns 0 if I is outside the bounds of the table of contours. + Standard_EXPORT Standard_Integer NbEdges(const Standard_Integer I) const Standard_OVERRIDE; + + //! Returns the edge of index J in the contour of index I in + //! the internal data structure of this algorithm. + //! Warning + //! Returns a null shape if: + //! - I is outside the bounds of the table of contours, or + //! - J is outside the bounds of the table of edges of the index I contour. + Standard_EXPORT const TopoDS_Edge& Edge(const Standard_Integer I, + const Standard_Integer J) const Standard_OVERRIDE; + + //! Removes the contour in the internal data structure of + //! this algorithm which contains the edge E of the shape. + //! Warning + //! Nothing is done if the edge E does not belong to the + //! contour in the internal data structure of this algorithm. + Standard_EXPORT void Remove(const TopoDS_Edge& E) Standard_OVERRIDE; + + //! Returns the length of the contour of index IC in the + //! internal data structure of this algorithm. + //! Warning + //! Returns -1. if IC is outside the bounds of the table of contours. + Standard_EXPORT Standard_Real Length(const Standard_Integer IC) const Standard_OVERRIDE; + + //! Returns the first vertex of the contour of index IC + //! in the internal data structure of this algorithm. + //! Warning + //! Returns a null shape if IC is outside the bounds of the table of contours. + Standard_EXPORT TopoDS_Vertex FirstVertex(const Standard_Integer IC) const Standard_OVERRIDE; + + //! Returns the last vertex of the contour of index IC + //! in the internal data structure of this algorithm. + //! Warning + //! Returns a null shape if IC is outside the bounds of the table of contours. + Standard_EXPORT TopoDS_Vertex LastVertex(const Standard_Integer IC) const Standard_OVERRIDE; + + //! Returns the curvilinear abscissa of the vertex V on the + //! contour of index IC in the internal data structure of this algorithm. + //! Warning + //! Returns -1. if: + //! - IC is outside the bounds of the table of contours, or + //! - V is not on the contour of index IC. + Standard_EXPORT Standard_Real Abscissa(const Standard_Integer IC, + const TopoDS_Vertex& V) const Standard_OVERRIDE; + + //! Returns the relative curvilinear abscissa (i.e. between 0 + //! and 1) of the vertex V on the contour of index IC in the + //! internal data structure of this algorithm. + //! Warning + //! Returns -1. if: + //! - IC is outside the bounds of the table of contours, or + //! - V is not on the contour of index IC. + Standard_EXPORT Standard_Real RelativeAbscissa(const Standard_Integer IC, + const TopoDS_Vertex& V) const Standard_OVERRIDE; + + //! Returns true if the contour of index IC in the internal + //! data structure of this algorithm is closed and tangential + //! at the point of closure. + //! Warning + //! Returns false if IC is outside the bounds of the table of contours. + Standard_EXPORT Standard_Boolean + ClosedAndTangent(const Standard_Integer IC) const Standard_OVERRIDE; + + //! Returns true if the contour of index IC in the internal + //! data structure of this algorithm is closed. + //! Warning + //! Returns false if IC is outside the bounds of the table of contours. + Standard_EXPORT Standard_Boolean Closed(const Standard_Integer IC) const Standard_OVERRIDE; + + //! Builds the fillets on all the contours in the internal data + //! structure of this algorithm and constructs the resulting shape. + //! Use the function IsDone to verify that the filleted shape + //! is built. Use the function Shape to retrieve the filleted shape. + //! Warning + //! The construction of fillets implements highly complex + //! construction algorithms. Consequently, there may be + //! instances where the algorithm fails, for example if the + //! data defining the radius of the fillet is not compatible + //! with the geometry of the initial shape. There is no initial + //! analysis of errors and they only become evident at the + //! construction stage. + //! Additionally, in the current software release, the + //! following cases are not handled: + //! - the end point of the contour is the point of + //! intersection of 4 or more edges of the shape, or + //! - the intersection of the fillet with a face which limits + //! the contour is not fully contained in this face. + Standard_EXPORT virtual void Build( + const Message_ProgressRange& theRange = Message_ProgressRange()) Standard_OVERRIDE; + + //! Reinitializes this algorithm, thus canceling the effects of the Build function. + //! This function allows modifications to be made to the + //! contours and fillet parameters in order to rebuild the shape. + Standard_EXPORT void Reset() Standard_OVERRIDE; + + //! Returns the internal topology building algorithm. + Standard_EXPORT Handle(TopOpeBRepBuild_HBuilder) Builder() const; + + //! Returns the list of shapes generated from the + //! shape . + Standard_EXPORT virtual const TopTools_ListOfShape& Generated(const TopoDS_Shape& EorV) + Standard_OVERRIDE; + + //! Returns the list of shapes modified from the shape + //! . + Standard_EXPORT virtual const TopTools_ListOfShape& Modified(const TopoDS_Shape& F) + Standard_OVERRIDE; + + Standard_EXPORT virtual Standard_Boolean IsDeleted(const TopoDS_Shape& F) Standard_OVERRIDE; + + //! returns the number of surfaces + //! after the shape creation. + Standard_EXPORT Standard_Integer NbSurfaces() const; + + //! Return the faces created for surface . + Standard_EXPORT const TopTools_ListOfShape& NewFaces(const Standard_Integer I); + + Standard_EXPORT void Simulate(const Standard_Integer IC) Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer NbSurf(const Standard_Integer IC) const Standard_OVERRIDE; + + Standard_EXPORT Handle(ChFiDS_SecHArray1) Sect(const Standard_Integer IC, + const Standard_Integer IS) const Standard_OVERRIDE; + + //! Returns the number of contours where the computation + //! of the fillet failed + Standard_EXPORT Standard_Integer NbFaultyContours() const; + + //! for each I in [1.. NbFaultyContours] returns the index IC of + //! the contour where the computation of the fillet failed. + //! the method NbEdges(IC) gives the number of edges in the contour IC + //! the method Edge(IC,ie) gives the edge number ie of the contour IC + Standard_EXPORT Standard_Integer FaultyContour(const Standard_Integer I) const; + + //! returns the number of surfaces which have been + //! computed on the contour IC + Standard_EXPORT Standard_Integer NbComputedSurfaces(const Standard_Integer IC) const; + + //! returns the surface number IS concerning the contour IC + Standard_EXPORT Handle(Geom_Surface) ComputedSurface(const Standard_Integer IC, + const Standard_Integer IS) const; + + //! returns the number of vertices where the computation failed + Standard_EXPORT Standard_Integer NbFaultyVertices() const; + + //! returns the vertex where the computation failed + Standard_EXPORT TopoDS_Vertex FaultyVertex(const Standard_Integer IV) const; + + //! returns true if a part of the result has been computed + //! if the filling in a corner failed a shape with a hole is returned + Standard_EXPORT Standard_Boolean HasResult() const; + + //! if (HasResult()) returns the partial result + Standard_EXPORT TopoDS_Shape BadShape() const; + + //! returns the status concerning the contour IC in case of error + //! ChFiDS_Ok : the computation is Ok + //! ChFiDS_StartsolFailure : the computation can't start, perhaps the + //! the radius is too big + //! ChFiDS_TwistedSurface : the computation failed because of a twisted + //! surface + //! ChFiDS_WalkingFailure : there is a problem in the walking + //! ChFiDS_Error: other error different from above + Standard_EXPORT ChFiDS_ErrorStatus StripeStatus(const Standard_Integer IC) const; + +protected: +private: + ChFi3d_FilBuilder myBuilder; + TopTools_MapOfShape myMap; +}; + +#endif // _BRepFilletAPI_MakeFillet_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepLib_PointCloudShape.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepLib_PointCloudShape.hxx new file mode 100644 index 00000000..bd29188f --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepLib_PointCloudShape.hxx @@ -0,0 +1,114 @@ +// Copyright (c) 2021 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepLib_PointCloudShape_HeaderFile +#define _BRepLib_PointCloudShape_HeaderFile + +#include "TopTools_DataMapOfShapeInteger.hxx" +#include "TopTools_DataMapOfShapeReal.hxx" +#include "Quantity_Color.hxx" +#include "Precision.hxx" + +//! This tool is intended to get points from shape with specified distance from shape along normal. +//! Can be used to simulation of points obtained in result of laser scan of shape. +//! There are 2 ways for generation points by shape: +//! 1. Generation points with specified density +//! 2. Generation points using triangulation Nodes +//! Generation of points by density using the GeneratePointsByDensity() function is not thread safe. +class BRepLib_PointCloudShape +{ +public: + DEFINE_STANDARD_ALLOC + + //! Constructor initialized by shape + Standard_EXPORT BRepLib_PointCloudShape(const TopoDS_Shape& theShape = TopoDS_Shape(), + const Standard_Real theTol = Precision::Confusion()); + + //! Virtual destructor + Standard_EXPORT virtual ~BRepLib_PointCloudShape(); + + //! Return loaded shape. + const TopoDS_Shape& Shape() const { return myShape; } + + //! Set shape. + void SetShape(const TopoDS_Shape& theShape) { myShape = theShape; } + + //! Return tolerance. + Standard_Real Tolerance() const { return myTol; } + + //! Set tolerance. + void SetTolerance(Standard_Real theTol) { myTol = theTol; } + + //! Returns value of the distance to define deflection of points from shape along normal to shape; + //! 0.0 by default. + Standard_Real GetDistance() const { return myDist; } + + //! Sets value of the distance to define deflection of points from shape along normal to shape. + //! Negative values of theDist parameter are ignored. + void SetDistance(const Standard_Real theDist) { myDist = theDist; } + + //! Returns size of the point cloud for specified density. + Standard_EXPORT Standard_Integer NbPointsByDensity(const Standard_Real theDensity = 0.0); + + //! Returns size of the point cloud for using triangulation. + Standard_EXPORT Standard_Integer NbPointsByTriangulation() const; + + //! Computes points with specified density for initial shape. + //! If parameter Density is equal to 0 then density will be computed automatically by criterion: + //! - 10 points per minimal unreduced face area. + //! + //! Note: this function should not be called from concurrent threads without external lock. + Standard_EXPORT Standard_Boolean GeneratePointsByDensity(const Standard_Real theDensity = 0.0); + + //! Get points from triangulation existing in the shape. + Standard_EXPORT Standard_Boolean GeneratePointsByTriangulation(); + +protected: + //! Compute area of the specified face. + Standard_EXPORT Standard_Real faceArea(const TopoDS_Shape& theShape); + + //! Computes default density points per face. + Standard_EXPORT Standard_Real computeDensity(); + + //! Adds points to face in accordance with the specified density randomly in the specified range + //! [0, Dist]. + Standard_EXPORT Standard_Boolean addDensityPoints(const TopoDS_Shape& theFace); + + //! Adds points to face by nodes of the existing triangulation randomly in the specified range [0, + //! Dist]. + Standard_EXPORT Standard_Boolean addTriangulationPoints(const TopoDS_Shape& theFace); + +protected: + //! Method to clear maps. + Standard_EXPORT virtual void clear(); + + //! Method to add point, normal to surface in this point and face for which point computed. + //! @param[in] thePoint 3D point on the surface + //! @param[in] theNorm surface normal at this point + //! @param[in] theUV surface UV parameters + //! @param[in] theFace surface (face) definition + Standard_EXPORT virtual void addPoint(const gp_Pnt& thePoint, + const gp_Vec& theNorm, + const gp_Pnt2d& theUV, + const TopoDS_Shape& theFace) = 0; + +protected: + TopoDS_Shape myShape; + Standard_Real myDist; + Standard_Real myTol; + TopTools_DataMapOfShapeReal myFaceArea; + TopTools_DataMapOfShapeInteger myFacePoints; + Standard_Integer myNbPoints; +}; + +#endif // _BRepLib_PointCloudShape_HeaderFile diff --git a/entry/src/main/cpp/3rdparty/opencascade/include/BRepMAT2d_BisectingLocus.hxx b/entry/src/main/cpp/3rdparty/opencascade/include/BRepMAT2d_BisectingLocus.hxx new file mode 100644 index 00000000..c4dc6075 --- /dev/null +++ b/entry/src/main/cpp/3rdparty/opencascade/include/BRepMAT2d_BisectingLocus.hxx @@ -0,0 +1,145 @@ +// Created on: 1993-07-06 +// Created by: Yves FRICAUD +// Copyright (c) 1993-1999 Matra Datavision +// Copyright (c) 1999-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BRepMAT2d_BisectingLocus_HeaderFile +#define _BRepMAT2d_BisectingLocus_HeaderFile + +#include "Standard.hxx" +#include "Standard_DefineAlloc.hxx" +#include "Standard_Handle.hxx" + +#include "MAT2d_Tool2d.hxx" +#include "MAT2d_DataMapOfBiIntInteger.hxx" +#include "Standard_Integer.hxx" +#include "MAT_Side.hxx" +#include "GeomAbs_JoinType.hxx" +#include "MAT_DataMapOfIntegerBasicElt.hxx" +class MAT_Graph; +class BRepMAT2d_Explorer; +class MAT_BasicElt; +class Geom2d_Geometry; +class gp_Pnt2d; +class MAT_Node; +class Bisector_Bisec; +class MAT_Arc; + +//! BisectingLocus generates and contains the Bisecting_Locus +//! of a set of lines from Geom2d, defined by . +//! +//! If the set of lines contains closed lines: +//! ------------------------------------------ +//! These lines cut the plane in areas. +//! One map can be computed for each area. +//! +//! Bisecting locus computes a map in an area. +//! The area is defined by a side (MAT_Left,MAT_Right) +//! on one of the closed lines. +//! +//! If the set of lines contains only open lines: +//! -------------------------------------------- +//! the map recovers all the plane. +//! +//! Warning: Assume the orientation of the closed lines are +//! compatible. +//! +//! Assume the explo contains only lines located in the +//! area where the bisecting locus will be computed. +//! +//! Assume a line don't cross itself or an other line. +//! +//! Remark: +//! the curves coming from the explorer can be +//! decomposed in different parts. It the case for the +//! curves other than circles or lines. +//! +//! The map of bisecting locus is described by a graph. +//! - The BasicsElements correspond to elements on +//! the figure described by the Explorer from BRepMAT2d. +//! - The Arcs correspond to the bisectors. +//! - The Nodes are the extremities of the arcs. +class BRepMAT2d_BisectingLocus +{ +public: + DEFINE_STANDARD_ALLOC + + Standard_EXPORT BRepMAT2d_BisectingLocus(); + + //! Computation of the Bisector_Locus in a set of Lines + //! defined in . + //! The bisecting locus are computed on the side