From 42cf5bc1cacbc83b1bf8639227311ad726522ace Mon Sep 17 00:00:00 2001 From: abv Date: Sun, 12 Jul 2015 07:42:38 +0300 Subject: [PATCH] 0024002: Overall code and build procedure refactoring -- automatic Automatic upgrade of OCCT code by command "occt_upgrade . -nocdl": - WOK-generated header files from inc and sources from drv are moved to src - CDL files removed - All packages are converted to nocdlpack --- adm/UDLIST | 702 ++-- src/AIS/AIS.cdl | 706 ---- src/AIS/AIS.cxx | 37 +- src/AIS/AIS.hxx | 380 ++ src/AIS/AIS_AttributeFilter.cdl | 104 - src/AIS/AIS_AttributeFilter.cxx | 5 +- src/AIS/AIS_AttributeFilter.hxx | 129 + src/AIS/AIS_Axis.cdl | 187 - src/AIS/AIS_Axis.cxx | 33 +- src/AIS/AIS_Axis.hxx | 175 + src/AIS/AIS_BadEdgeFilter.cdl | 57 - src/AIS/AIS_BadEdgeFilter.cxx | 14 +- src/AIS/AIS_BadEdgeFilter.hxx | 86 + src/AIS/AIS_C0RegularityFilter.cdl | 42 - src/AIS/AIS_C0RegularityFilter.cxx | 19 +- src/AIS/AIS_C0RegularityFilter.hxx | 71 + src/AIS/AIS_Chamf2dDimension.cdl | 114 - src/AIS/AIS_Chamf2dDimension.cxx | 60 +- src/AIS/AIS_Chamf2dDimension.hxx | 114 + src/AIS/AIS_Chamf3dDimension.cdl | 110 - src/AIS/AIS_Chamf3dDimension.cxx | 59 +- src/AIS/AIS_Chamf3dDimension.hxx | 113 + src/AIS/AIS_Circle.cdl | 166 - src/AIS/AIS_Circle.cxx | 25 +- src/AIS/AIS_Circle.hxx | 155 + src/AIS/AIS_ClearMode.hxx | 35 + src/AIS/AIS_ConcentricRelation.cdl | 101 - src/AIS/AIS_ConcentricRelation.cxx | 41 +- src/AIS/AIS_ConcentricRelation.hxx | 107 + src/AIS/AIS_ConnectStatus.hxx | 38 + src/AIS/AIS_ConnectedInteractive.cdl | 173 - src/AIS/AIS_ConnectedInteractive.cxx | 45 +- src/AIS/AIS_ConnectedInteractive.hxx | 167 + src/AIS/AIS_DimensionOwner.cdl | 78 - src/AIS/AIS_DimensionOwner.cxx | 8 +- src/AIS/AIS_DimensionOwner.hxx | 95 + src/AIS/AIS_DimensionSelectionMode.hxx | 28 + src/AIS/AIS_DisplayMode.hxx | 31 + src/AIS/AIS_DisplaySpecialSymbol.hxx | 28 + src/AIS/AIS_DisplayStatus.hxx | 36 + src/AIS/AIS_EllipseRadiusDimension.cdl | 86 - src/AIS/AIS_EllipseRadiusDimension.cxx | 43 +- src/AIS/AIS_EllipseRadiusDimension.hxx | 94 + src/AIS/AIS_EqualDistanceRelation.cdl | 195 - src/AIS/AIS_EqualDistanceRelation.cxx | 44 +- src/AIS/AIS_EqualDistanceRelation.hxx | 148 + src/AIS/AIS_EqualRadiusRelation.cdl | 82 - src/AIS/AIS_EqualRadiusRelation.cxx | 32 +- src/AIS/AIS_EqualRadiusRelation.hxx | 94 + src/AIS/AIS_ExclusionFilter.cdl | 121 - src/AIS/AIS_ExclusionFilter.cxx | 12 +- src/AIS/AIS_ExclusionFilter.hxx | 121 + src/AIS/AIS_FixRelation.cdl | 195 - src/AIS/AIS_FixRelation.cxx | 66 +- src/AIS/AIS_FixRelation.hxx | 151 + src/AIS/AIS_GlobalStatus.cdl | 113 - src/AIS/AIS_GlobalStatus.cxx | 4 +- src/AIS/AIS_GlobalStatus.hxx | 124 + src/AIS/AIS_GraphicTool.cdl | 67 - src/AIS/AIS_GraphicTool.cxx | 17 +- src/AIS/AIS_GraphicTool.hxx | 80 + src/AIS/AIS_IdenticRelation.cdl | 214 -- src/AIS/AIS_IdenticRelation.cxx | 37 +- src/AIS/AIS_IdenticRelation.hxx | 154 + src/AIS/AIS_InteractiveContext.cdl | 2089 ----------- src/AIS/AIS_InteractiveContext.cxx | 59 +- src/AIS/AIS_InteractiveContext.hxx | 1656 +++++++++ src/AIS/AIS_InteractiveContext_1.cxx | 50 +- src/AIS/AIS_InteractiveContext_2.cxx | 37 +- src/AIS/AIS_InteractiveContext_3.cxx | 23 +- src/AIS/AIS_InteractiveObject.cdl | 626 ---- src/AIS/AIS_InteractiveObject.cxx | 32 +- src/AIS/AIS_InteractiveObject.hxx | 546 +++ src/AIS/AIS_KindOfDimension.hxx | 40 + src/AIS/AIS_KindOfInteractive.hxx | 44 + src/AIS/AIS_KindOfSurface.hxx | 33 + src/AIS/AIS_KindOfUnit.hxx | 33 + src/AIS/AIS_Line.cdl | 150 - src/AIS/AIS_Line.cxx | 32 +- src/AIS/AIS_Line.hxx | 145 + src/AIS/AIS_LocalContext.cdl | 601 --- src/AIS/AIS_LocalContext.cxx | 34 +- src/AIS/AIS_LocalContext.hxx | 432 +++ src/AIS/AIS_LocalContext_1.cxx | 50 +- src/AIS/AIS_LocalStatus.cdl | 105 - src/AIS/AIS_LocalStatus.cxx | 6 +- src/AIS/AIS_LocalStatus.hxx | 122 + src/AIS/AIS_MaxRadiusDimension.cdl | 120 - src/AIS/AIS_MaxRadiusDimension.cxx | 65 +- src/AIS/AIS_MaxRadiusDimension.hxx | 105 + src/AIS/AIS_MidPointRelation.cdl | 134 - src/AIS/AIS_MidPointRelation.cxx | 60 +- src/AIS/AIS_MidPointRelation.hxx | 131 + src/AIS/AIS_MinRadiusDimension.cdl | 121 - src/AIS/AIS_MinRadiusDimension.cxx | 67 +- src/AIS/AIS_MinRadiusDimension.hxx | 104 + src/AIS/AIS_MultipleConnectedInteractive.cdl | 138 - src/AIS/AIS_MultipleConnectedInteractive.cxx | 17 +- src/AIS/AIS_MultipleConnectedInteractive.hxx | 133 + src/AIS/AIS_OffsetDimension.cdl | 119 - src/AIS/AIS_OffsetDimension.cxx | 36 +- src/AIS/AIS_OffsetDimension.hxx | 121 + src/AIS/AIS_PToContext.hxx | 23 + src/AIS/AIS_ParallelRelation.cdl | 115 - src/AIS/AIS_ParallelRelation.cxx | 65 +- src/AIS/AIS_ParallelRelation.hxx | 113 + src/AIS/AIS_PerpendicularRelation.cdl | 105 - src/AIS/AIS_PerpendicularRelation.cxx | 41 +- src/AIS/AIS_PerpendicularRelation.hxx | 106 + src/AIS/AIS_Plane.cdl | 258 -- src/AIS/AIS_Plane.cxx | 53 +- src/AIS/AIS_Plane.hxx | 218 ++ src/AIS/AIS_PlaneTrihedron.cdl | 149 - src/AIS/AIS_PlaneTrihedron.cxx | 39 +- src/AIS/AIS_PlaneTrihedron.hxx | 154 + src/AIS/AIS_Point.cdl | 124 - src/AIS/AIS_Point.cxx | 26 +- src/AIS/AIS_Point.hxx | 137 + src/AIS/AIS_Relation.cdl | 286 -- src/AIS/AIS_Relation.cxx | 43 +- src/AIS/AIS_Relation.hxx | 253 ++ src/AIS/AIS_SelectStatus.hxx | 28 + src/AIS/AIS_Selection.cdl | 160 - src/AIS/AIS_Selection.cxx | 14 +- src/AIS/AIS_Selection.hxx | 149 + src/AIS/AIS_Shape.cdl | 313 -- src/AIS/AIS_Shape.cxx | 75 +- src/AIS/AIS_Shape.hxx | 289 ++ src/AIS/AIS_SignatureFilter.cdl | 72 - src/AIS/AIS_SignatureFilter.cxx | 4 +- src/AIS/AIS_SignatureFilter.hxx | 100 + src/AIS/AIS_StandardDatum.hxx | 33 + src/AIS/AIS_StatusOfDetection.hxx | 32 + src/AIS/AIS_StatusOfPick.hxx | 30 + src/AIS/AIS_SymmetricRelation.cdl | 123 - src/AIS/AIS_SymmetricRelation.cxx | 50 +- src/AIS/AIS_SymmetricRelation.hxx | 123 + src/AIS/AIS_TangentRelation.cdl | 114 - src/AIS/AIS_TangentRelation.cxx | 57 +- src/AIS/AIS_TangentRelation.hxx | 119 + src/AIS/AIS_Triangulation.cdl | 102 - src/AIS/AIS_Triangulation.hxx | 103 + src/AIS/AIS_Trihedron.cdl | 211 -- src/AIS/AIS_Trihedron.cxx | 50 +- src/AIS/AIS_Trihedron.hxx | 210 ++ src/AIS/AIS_TypeFilter.cdl | 60 - src/AIS/AIS_TypeFilter.cxx | 5 +- src/AIS/AIS_TypeFilter.hxx | 93 + src/AIS/AIS_TypeOfAttribute.hxx | 40 + src/AIS/AIS_TypeOfAxis.hxx | 29 + src/AIS/AIS_TypeOfDist.hxx | 28 + src/AIS/AIS_TypeOfIso.hxx | 28 + src/AIS/AIS_TypeOfPlane.hxx | 29 + src/AIS/FILES | 202 +- src/APIHeaderSection/APIHeaderSection.cdl | 30 - .../APIHeaderSection_EditHeader.cdl | 38 - .../APIHeaderSection_EditHeader.cxx | 10 +- .../APIHeaderSection_EditHeader.hxx | 78 + .../APIHeaderSection_MakeHeader.cdl | 168 - .../APIHeaderSection_MakeHeader.cxx | 24 +- .../APIHeaderSection_MakeHeader.hxx | 203 + src/APIHeaderSection/FILES | 4 + src/Adaptor2d/Adaptor2d.cdl | 168 - src/Adaptor2d/Adaptor2d_Curve2d.cdl | 234 -- src/Adaptor2d/Adaptor2d_Curve2d.cxx | 18 +- src/Adaptor2d/Adaptor2d_Curve2d.hxx | 180 + src/Adaptor2d/Adaptor2d_Curve2dPtr.hxx | 23 + src/Adaptor2d/Adaptor2d_GenHCurve2d.cdl | 78 - src/Adaptor2d/Adaptor2d_HCurve2d.cdl | 215 -- src/Adaptor2d/Adaptor2d_HCurve2d.cxx | 12 +- src/Adaptor2d/Adaptor2d_HCurve2d.hxx | 148 + src/Adaptor2d/Adaptor2d_HLine2d.hxx | 87 + src/Adaptor2d/Adaptor2d_HLine2d_0.cxx | 42 + src/Adaptor2d/Adaptor2d_Line2d.cdl | 207 -- src/Adaptor2d/Adaptor2d_Line2d.cxx | 21 +- src/Adaptor2d/Adaptor2d_Line2d.hxx | 158 + src/Adaptor2d/FILES | 12 + src/Adaptor3d/Adaptor3d.cdl | 213 -- src/Adaptor3d/Adaptor3d_Curve.cdl | 250 -- src/Adaptor3d/Adaptor3d_Curve.cxx | 17 +- src/Adaptor3d/Adaptor3d_Curve.hxx | 179 + src/Adaptor3d/Adaptor3d_CurveOnSurface.cdl | 330 -- src/Adaptor3d/Adaptor3d_CurveOnSurface.cxx | 50 +- src/Adaptor3d/Adaptor3d_CurveOnSurface.hxx | 236 ++ src/Adaptor3d/Adaptor3d_CurveOnSurfacePtr.hxx | 23 + src/Adaptor3d/Adaptor3d_CurvePtr.hxx | 23 + src/Adaptor3d/Adaptor3d_GenHCurve.cdl | 85 - src/Adaptor3d/Adaptor3d_GenHSurface.cdl | 80 - src/Adaptor3d/Adaptor3d_HCurve.cdl | 223 -- src/Adaptor3d/Adaptor3d_HCurve.cxx | 11 +- src/Adaptor3d/Adaptor3d_HCurve.hxx | 161 + src/Adaptor3d/Adaptor3d_HCurveOnSurface.hxx | 89 + src/Adaptor3d/Adaptor3d_HCurveOnSurface_0.cxx | 42 + src/Adaptor3d/Adaptor3d_HIsoCurve.hxx | 89 + src/Adaptor3d/Adaptor3d_HIsoCurve_0.cxx | 42 + src/Adaptor3d/Adaptor3d_HOffsetCurve.hxx | 87 + src/Adaptor3d/Adaptor3d_HOffsetCurve_0.cxx | 42 + src/Adaptor3d/Adaptor3d_HSurface.cdl | 240 -- src/Adaptor3d/Adaptor3d_HSurface.cxx | 13 +- src/Adaptor3d/Adaptor3d_HSurface.hxx | 188 + .../Adaptor3d_HSurfaceOfLinearExtrusion.hxx | 87 + .../Adaptor3d_HSurfaceOfLinearExtrusion_0.cxx | 42 + .../Adaptor3d_HSurfaceOfRevolution.hxx | 87 + .../Adaptor3d_HSurfaceOfRevolution_0.cxx | 42 + src/Adaptor3d/Adaptor3d_HSurfaceTool.cdl | 245 -- src/Adaptor3d/Adaptor3d_HSurfaceTool.cxx | 11 +- src/Adaptor3d/Adaptor3d_HSurfaceTool.hxx | 165 + src/Adaptor3d/Adaptor3d_HVertex.cdl | 79 - src/Adaptor3d/Adaptor3d_HVertex.cxx | 9 +- src/Adaptor3d/Adaptor3d_HVertex.hxx | 83 + src/Adaptor3d/Adaptor3d_InterFunc.cdl | 72 - src/Adaptor3d/Adaptor3d_InterFunc.cxx | 4 +- src/Adaptor3d/Adaptor3d_InterFunc.hxx | 91 + src/Adaptor3d/Adaptor3d_IsoCurve.cdl | 300 -- src/Adaptor3d/Adaptor3d_IsoCurve.cxx | 31 +- src/Adaptor3d/Adaptor3d_IsoCurve.hxx | 215 ++ src/Adaptor3d/Adaptor3d_OffsetCurve.cdl | 277 -- src/Adaptor3d/Adaptor3d_OffsetCurve.cxx | 26 +- src/Adaptor3d/Adaptor3d_OffsetCurve.hxx | 205 + src/Adaptor3d/Adaptor3d_Surface.cdl | 326 -- src/Adaptor3d/Adaptor3d_Surface.cxx | 20 +- src/Adaptor3d/Adaptor3d_Surface.hxx | 233 ++ .../Adaptor3d_SurfaceOfLinearExtrusion.cdl | 332 -- .../Adaptor3d_SurfaceOfLinearExtrusion.cxx | 22 +- .../Adaptor3d_SurfaceOfLinearExtrusion.hxx | 238 ++ .../Adaptor3d_SurfaceOfRevolution.cdl | 357 -- .../Adaptor3d_SurfaceOfRevolution.cxx | 20 +- .../Adaptor3d_SurfaceOfRevolution.hxx | 258 ++ src/Adaptor3d/Adaptor3d_SurfacePtr.hxx | 23 + src/Adaptor3d/Adaptor3d_TopolTool.cdl | 282 -- src/Adaptor3d/Adaptor3d_TopolTool.cxx | 15 +- src/Adaptor3d/Adaptor3d_TopolTool.hxx | 198 + src/Adaptor3d/FILES | 48 + src/AdvApp2Var/AdvApp2Var.cdl | 187 - src/AdvApp2Var/AdvApp2Var_ApproxAFunc2Var.cdl | 426 --- src/AdvApp2Var/AdvApp2Var_ApproxAFunc2Var.hxx | 251 ++ src/AdvApp2Var/AdvApp2Var_Context.cdl | 69 - src/AdvApp2Var/AdvApp2Var_Context.cxx | 5 +- src/AdvApp2Var/AdvApp2Var_Context.hxx | 123 + src/AdvApp2Var/AdvApp2Var_Criterion.cdl | 48 - src/AdvApp2Var/AdvApp2Var_Criterion.cxx | 4 +- src/AdvApp2Var/AdvApp2Var_Criterion.hxx | 80 + .../AdvApp2Var_CriterionRepartition.hxx | 31 + src/AdvApp2Var/AdvApp2Var_CriterionType.hxx | 29 + src/AdvApp2Var/AdvApp2Var_Framework.cdl | 99 - src/AdvApp2Var/AdvApp2Var_Framework.hxx | 103 + src/AdvApp2Var/AdvApp2Var_Iso.cdl | 92 - src/AdvApp2Var/AdvApp2Var_Iso.cxx | 14 +- src/AdvApp2Var/AdvApp2Var_Iso.hxx | 144 + src/AdvApp2Var/AdvApp2Var_Network.cdl | 67 - src/AdvApp2Var/AdvApp2Var_Network.cxx | 5 +- src/AdvApp2Var/AdvApp2Var_Network.hxx | 104 + src/AdvApp2Var/AdvApp2Var_Node.cdl | 57 - src/AdvApp2Var/AdvApp2Var_Node.cxx | 7 +- src/AdvApp2Var/AdvApp2Var_Node.hxx | 94 + src/AdvApp2Var/AdvApp2Var_Patch.cdl | 112 - src/AdvApp2Var/AdvApp2Var_Patch.cxx | 22 +- src/AdvApp2Var/AdvApp2Var_Patch.hxx | 151 + src/AdvApp2Var/FILES | 37 +- src/AdvApprox/AdvApprox.cdl | 51 - src/AdvApprox/AdvApprox_ApproxAFunction.cdl | 277 -- src/AdvApprox/AdvApprox_ApproxAFunction.cxx | 43 +- src/AdvApprox/AdvApprox_ApproxAFunction.hxx | 178 + src/AdvApprox/AdvApprox_Cutting.cdl | 31 - src/AdvApprox/AdvApprox_Cutting.cxx | 3 +- src/AdvApprox/AdvApprox_Cutting.hxx | 64 + src/AdvApprox/AdvApprox_DichoCutting.cdl | 31 - src/AdvApprox/AdvApprox_DichoCutting.cxx | 3 +- src/AdvApprox/AdvApprox_DichoCutting.hxx | 65 + src/AdvApprox/AdvApprox_PrefAndRec.cdl | 53 - src/AdvApprox/AdvApprox_PrefAndRec.cxx | 3 +- src/AdvApprox/AdvApprox_PrefAndRec.hxx | 79 + src/AdvApprox/AdvApprox_PrefCutting.cdl | 69 - src/AdvApprox/AdvApprox_PrefCutting.cxx | 3 +- src/AdvApprox/AdvApprox_PrefCutting.hxx | 68 + src/AdvApprox/AdvApprox_SimpleApprox.cdl | 123 - src/AdvApprox/AdvApprox_SimpleApprox.cxx | 16 +- src/AdvApprox/AdvApprox_SimpleApprox.hxx | 127 + src/AdvApprox/FILES | 13 + src/AppBlend/AppBlend.cdl | 27 - src/AppBlend/AppBlend_AppSurf.cdl | 342 -- src/AppBlend/AppBlend_Approx.cdl | 202 - src/AppBlend/AppBlend_Approx.cxx | 6 +- src/AppBlend/AppBlend_Approx.hxx | 109 + src/AppBlend/FILES | 4 + src/AppCont/AppCont.cdl | 50 - src/AppCont/FILES | 4 +- src/AppDef/AppDef.cdl | 101 - ...t_BFGSOfMyBSplGradientOfBSplineCompute.hxx | 74 + ...BFGSOfMyBSplGradientOfBSplineCompute_0.cxx | 40 + ...nctionOfMyBSplGradientOfBSplineCompute.hxx | 140 + ...tionOfMyBSplGradientOfBSplineCompute_0.cxx | 35 + ...SquareOfMyBSplGradientOfBSplineCompute.hxx | 175 + ...uareOfMyBSplGradientOfBSplineCompute_0.cxx | 37 + src/AppDef/AppDef_BSplineCompute.hxx | 167 + src/AppDef/AppDef_BSplineCompute_0.cxx | 73 + src/AppDef/AppDef_Compute.hxx | 155 + src/AppDef/AppDef_Compute_0.cxx | 55 + ...Def_Gradient_BFGSOfMyGradientOfCompute.hxx | 75 + ...f_Gradient_BFGSOfMyGradientOfCompute_0.cxx | 43 + ...nt_BFGSOfMyGradientbisOfBSplineCompute.hxx | 75 + ..._BFGSOfMyGradientbisOfBSplineCompute_0.cxx | 43 + .../AppDef_Gradient_BFGSOfTheGradient.hxx | 75 + .../AppDef_Gradient_BFGSOfTheGradient_0.cxx | 43 + src/AppDef/AppDef_LinearCriteria.cdl | 130 - src/AppDef/AppDef_LinearCriteria.cxx | 30 +- src/AppDef/AppDef_LinearCriteria.hxx | 125 + src/AppDef/AppDef_MultiLine.cdl | 161 - src/AppDef/AppDef_MultiLine.cxx | 7 +- src/AppDef/AppDef_MultiLine.hxx | 142 + src/AppDef/AppDef_MultiPointConstraint.cdl | 293 -- src/AppDef/AppDef_MultiPointConstraint.cxx | 9 +- src/AppDef/AppDef_MultiPointConstraint.hxx | 211 ++ .../AppDef_MyBSplGradientOfBSplineCompute.hxx | 100 + ...ppDef_MyBSplGradientOfBSplineCompute_0.cxx | 42 + src/AppDef/AppDef_MyGradientOfCompute.hxx | 92 + src/AppDef/AppDef_MyGradientOfCompute_0.cxx | 45 + .../AppDef_MyGradientbisOfBSplineCompute.hxx | 92 + ...AppDef_MyGradientbisOfBSplineCompute_0.cxx | 45 + src/AppDef/AppDef_MyLineTool.cdl | 122 - src/AppDef/AppDef_MyLineTool.cxx | 3 +- src/AppDef/AppDef_MyLineTool.hxx | 122 + ...ppDef_ParFunctionOfMyGradientOfCompute.hxx | 125 + ...Def_ParFunctionOfMyGradientOfCompute_0.cxx | 37 + ...unctionOfMyGradientbisOfBSplineCompute.hxx | 125 + ...ctionOfMyGradientbisOfBSplineCompute_0.cxx | 37 + .../AppDef_ParFunctionOfTheGradient.hxx | 125 + .../AppDef_ParFunctionOfTheGradient_0.cxx | 37 + ...ef_ParLeastSquareOfMyGradientOfCompute.hxx | 175 + ..._ParLeastSquareOfMyGradientOfCompute_0.cxx | 37 + ...tSquareOfMyGradientbisOfBSplineCompute.hxx | 175 + ...quareOfMyGradientbisOfBSplineCompute_0.cxx | 37 + .../AppDef_ParLeastSquareOfTheGradient.hxx | 175 + .../AppDef_ParLeastSquareOfTheGradient_0.cxx | 37 + ...Def_ResConstraintOfMyGradientOfCompute.hxx | 100 + ...f_ResConstraintOfMyGradientOfCompute_0.cxx | 33 + ...straintOfMyGradientbisOfBSplineCompute.hxx | 100 + ...raintOfMyGradientbisOfBSplineCompute_0.cxx | 33 + .../AppDef_ResConstraintOfTheGradient.hxx | 100 + .../AppDef_ResConstraintOfTheGradient_0.cxx | 33 + src/AppDef/AppDef_SmoothCriterion.cdl | 109 - src/AppDef/AppDef_SmoothCriterion.cxx | 8 +- src/AppDef/AppDef_SmoothCriterion.hxx | 103 + src/AppDef/AppDef_TheFunction.hxx | 125 + src/AppDef/AppDef_TheFunction_0.cxx | 37 + src/AppDef/AppDef_TheGradient.hxx | 92 + src/AppDef/AppDef_TheGradient_0.cxx | 45 + src/AppDef/AppDef_TheLeastSquares.hxx | 175 + src/AppDef/AppDef_TheLeastSquares_0.cxx | 37 + src/AppDef/AppDef_TheResol.hxx | 100 + src/AppDef/AppDef_TheResol_0.cxx | 33 + src/AppDef/AppDef_Variational.cdl | 441 --- src/AppDef/AppDef_Variational.cxx | 15 +- src/AppDef/AppDef_Variational.hxx | 307 ++ src/AppDef/FILES | 60 + src/AppParCurves/AppParCurves.cdl | 117 - src/AppParCurves/AppParCurves.cxx | 7 +- src/AppParCurves/AppParCurves.hxx | 107 + src/AppParCurves/AppParCurves_BSpFunction.cdl | 221 -- src/AppParCurves/AppParCurves_BSpGradient.cdl | 185 - src/AppParCurves/AppParCurves_Constraint.hxx | 33 + .../AppParCurves_ConstraintCouple.cdl | 65 - .../AppParCurves_ConstraintCouple.cxx | 3 +- .../AppParCurves_ConstraintCouple.hxx | 81 + src/AppParCurves/AppParCurves_Function.cdl | 177 - src/AppParCurves/AppParCurves_Gradient.cdl | 154 - src/AppParCurves/AppParCurves_LeastSquare.cdl | 390 -- .../AppParCurves_MultiBSpCurve.cdl | 215 -- .../AppParCurves_MultiBSpCurve.cxx | 17 +- .../AppParCurves_MultiBSpCurve.hxx | 175 + src/AppParCurves/AppParCurves_MultiCurve.cdl | 286 -- src/AppParCurves/AppParCurves_MultiCurve.cxx | 17 +- src/AppParCurves/AppParCurves_MultiCurve.hxx | 206 + src/AppParCurves/AppParCurves_MultiPoint.cdl | 185 - src/AppParCurves/AppParCurves_MultiPoint.cxx | 10 +- src/AppParCurves/AppParCurves_MultiPoint.hxx | 151 + .../AppParCurves_ResolConstraint.cdl | 140 - src/AppParCurves/FILES | 32 +- src/AppStd/AppStd.cdl | 26 - src/AppStd/AppStd_Application.cdl | 42 - src/AppStd/AppStd_Application.cxx | 5 +- src/AppStd/AppStd_Application.hxx | 73 + src/AppStd/FILES | 2 + src/AppStdL/AppStdL.cdl | 26 - src/AppStdL/AppStdL_Application.cdl | 42 - src/AppStdL/AppStdL_Application.cxx | 5 +- src/AppStdL/AppStdL_Application.hxx | 73 + src/AppStdL/FILES | 2 + src/Approx/Approx.cdl | 130 - src/Approx/Approx_BSplComputeLine.cdl | 318 -- src/Approx/Approx_ComputeCLine.cdl | 160 - src/Approx/Approx_ComputeLine.cdl | 284 -- src/Approx/Approx_Curve2d.cdl | 55 - src/Approx/Approx_Curve2d.cxx | 10 +- src/Approx/Approx_Curve2d.hxx | 80 + src/Approx/Approx_Curve3d.cdl | 62 - src/Approx/Approx_Curve3d.cxx | 18 +- src/Approx/Approx_Curve3d.hxx | 92 + src/Approx/Approx_CurveOnSurface.cdl | 79 - src/Approx/Approx_CurveOnSurface.cxx | 32 +- src/Approx/Approx_CurveOnSurface.hxx | 92 + src/Approx/Approx_CurvilinearParameter.cdl | 124 - src/Approx/Approx_CurvilinearParameter.cxx | 37 +- src/Approx/Approx_CurvilinearParameter.hxx | 122 + src/Approx/Approx_CurvlinFunc.cdl | 160 - src/Approx/Approx_CurvlinFunc.cxx | 15 +- src/Approx/Approx_CurvlinFunc.hxx | 156 + src/Approx/Approx_FitAndDivide.hxx | 109 + src/Approx/Approx_FitAndDivide2d.hxx | 109 + src/Approx/Approx_FitAndDivide2d_0.cxx | 27 + src/Approx/Approx_FitAndDivide_0.cxx | 27 + src/Approx/Approx_MCurvesToBSpCurve.cdl | 68 - src/Approx/Approx_MCurvesToBSpCurve.cxx | 16 +- src/Approx/Approx_MCurvesToBSpCurve.hxx | 81 + src/Approx/Approx_ParametrizationType.hxx | 28 + src/Approx/Approx_SameParameter.cdl | 115 - src/Approx/Approx_SameParameter.cxx | 25 +- src/Approx/Approx_SameParameter.hxx | 105 + src/Approx/Approx_Status.hxx | 28 + src/Approx/Approx_SweepApproximation.cdl | 373 -- src/Approx/Approx_SweepApproximation.cxx | 16 +- src/Approx/Approx_SweepApproximation.hxx | 220 ++ src/Approx/Approx_SweepFunction.cdl | 203 - src/Approx/Approx_SweepFunction.cxx | 7 +- src/Approx/Approx_SweepFunction.hxx | 154 + src/Approx/FILES | 33 +- src/ApproxInt/ApproxInt.cdl | 38 - src/ApproxInt/ApproxInt_Approx.cdl | 179 - src/ApproxInt/ApproxInt_ImpPrmSvSurfaces.cdl | 95 - src/ApproxInt/ApproxInt_MultiLine.cdl | 151 - src/ApproxInt/ApproxInt_MultiLineTool.cdl | 134 - src/ApproxInt/ApproxInt_PrmPrmSvSurfaces.cdl | 87 - src/ApproxInt/ApproxInt_SvSurfaces.cdl | 59 - src/ApproxInt/ApproxInt_SvSurfaces.cxx | 6 +- src/ApproxInt/ApproxInt_SvSurfaces.hxx | 74 + src/ApproxInt/FILES | 8 +- src/Aspect/Aspect.cdl | 529 --- src/Aspect/Aspect_AspectFillArea.cdl | 210 -- src/Aspect/Aspect_AspectFillArea.cxx | 23 +- src/Aspect/Aspect_AspectFillArea.hxx | 158 + .../Aspect_AspectFillAreaDefinitionError.hxx | 36 + src/Aspect/Aspect_AspectLine.cdl | 125 - src/Aspect/Aspect_AspectLine.cxx | 20 +- src/Aspect/Aspect_AspectLine.hxx | 100 + .../Aspect_AspectLineDefinitionError.hxx | 36 + src/Aspect/Aspect_AspectMarker.cdl | 128 - src/Aspect/Aspect_AspectMarker.cxx | 20 +- src/Aspect/Aspect_AspectMarker.hxx | 106 + .../Aspect_AspectMarkerDefinitionError.hxx | 36 + src/Aspect/Aspect_Background.cdl | 76 - src/Aspect/Aspect_Background.cxx | 16 +- src/Aspect/Aspect_Background.hxx | 74 + src/Aspect/Aspect_BadAccess.hxx | 36 + src/Aspect/Aspect_CMPLRS.edl | 27 - src/Aspect/Aspect_CircularGrid.cdl | 95 - src/Aspect/Aspect_CircularGrid.cxx | 6 +- src/Aspect/Aspect_CircularGrid.hxx | 94 + src/Aspect/Aspect_ColorScale.cdl | 338 -- src/Aspect/Aspect_ColorScale.cxx | 9 +- src/Aspect/Aspect_ColorScale.hxx | 302 ++ ...spect_DisplayConnectionDefinitionError.hxx | 36 + src/Aspect/Aspect_DriverDefinitionError.hxx | 36 + src/Aspect/Aspect_FillMethod.hxx | 29 + src/Aspect/Aspect_GenId.cdl | 79 - src/Aspect/Aspect_GenId.cxx | 4 +- src/Aspect/Aspect_GenId.hxx | 95 + src/Aspect/Aspect_GradientBackground.cdl | 89 - src/Aspect/Aspect_GradientBackground.hxx | 80 + src/Aspect/Aspect_GradientFillMethod.hxx | 34 + .../Aspect_GraphicDeviceDefinitionError.hxx | 36 + src/Aspect/Aspect_Grid.cdl | 174 - src/Aspect/Aspect_Grid.cxx | 4 +- src/Aspect/Aspect_Grid.hxx | 146 + src/Aspect/Aspect_GridDrawMode.hxx | 28 + src/Aspect/Aspect_GridType.hxx | 26 + src/Aspect/Aspect_HatchStyle.hxx | 49 + src/Aspect/Aspect_IdentDefinitionError.hxx | 36 + src/Aspect/Aspect_InteriorStyle.hxx | 38 + src/Aspect/Aspect_PrintAlgo.hxx | 43 + src/Aspect/Aspect_RectangularGrid.cdl | 122 - src/Aspect/Aspect_RectangularGrid.cxx | 7 +- src/Aspect/Aspect_RectangularGrid.hxx | 114 + src/Aspect/Aspect_TypeOfColorScaleData.hxx | 26 + .../Aspect_TypeOfColorScaleOrientation.hxx | 28 + .../Aspect_TypeOfColorScalePosition.hxx | 28 + src/Aspect/Aspect_TypeOfConstraint.hxx | 28 + src/Aspect/Aspect_TypeOfDeflection.hxx | 28 + src/Aspect/Aspect_TypeOfDisplayText.hxx | 35 + src/Aspect/Aspect_TypeOfDrawMode.hxx | 28 + src/Aspect/Aspect_TypeOfEdge.hxx | 29 + src/Aspect/Aspect_TypeOfFacingModel.hxx | 27 + src/Aspect/Aspect_TypeOfHighlightMethod.hxx | 31 + src/Aspect/Aspect_TypeOfLayer.hxx | 31 + src/Aspect/Aspect_TypeOfLine.hxx | 35 + src/Aspect/Aspect_TypeOfMarker.hxx | 53 + src/Aspect/Aspect_TypeOfPrimitive.hxx | 32 + src/Aspect/Aspect_TypeOfResize.hxx | 35 + src/Aspect/Aspect_TypeOfStyleText.hxx | 32 + src/Aspect/Aspect_TypeOfTriedronEcho.hxx | 52 + src/Aspect/Aspect_TypeOfTriedronPosition.hxx | 46 + src/Aspect/Aspect_TypeOfUpdate.hxx | 29 + src/Aspect/Aspect_WOKSteps.edl | 15 - src/Aspect/Aspect_WidthOfLine.hxx | 35 + src/Aspect/Aspect_Window.cdl | 175 - src/Aspect/Aspect_Window.cxx | 21 +- src/Aspect/Aspect_Window.hxx | 146 + src/Aspect/Aspect_WindowDefinitionError.hxx | 36 + src/Aspect/Aspect_WindowError.hxx | 36 + src/Aspect/Aspect_XAtom.hxx | 27 + src/Aspect/FILES | 81 +- src/BOPAlgo/BOPAlgo.cdl | 93 - src/BOPAlgo/BOPAlgo_Algo.cdl | 87 - src/BOPAlgo/BOPAlgo_Algo.cxx | 6 +- src/BOPAlgo/BOPAlgo_Algo.hxx | 103 + src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cdl | 213 -- src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cxx | 71 +- src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.hxx | 186 + src/BOPAlgo/BOPAlgo_BOP.cdl | 109 - src/BOPAlgo/BOPAlgo_BOP.cxx | 37 +- src/BOPAlgo/BOPAlgo_BOP.hxx | 111 + src/BOPAlgo/BOPAlgo_Builder.cdl | 248 -- src/BOPAlgo/BOPAlgo_Builder.cxx | 14 +- src/BOPAlgo/BOPAlgo_Builder.hxx | 181 + src/BOPAlgo/BOPAlgo_BuilderArea.cdl | 79 - src/BOPAlgo/BOPAlgo_BuilderArea.cxx | 5 +- src/BOPAlgo/BOPAlgo_BuilderArea.hxx | 92 + src/BOPAlgo/BOPAlgo_BuilderFace.cdl | 83 - src/BOPAlgo/BOPAlgo_BuilderFace.cxx | 78 +- src/BOPAlgo/BOPAlgo_BuilderFace.hxx | 101 + src/BOPAlgo/BOPAlgo_BuilderShape.cdl | 108 - src/BOPAlgo/BOPAlgo_BuilderShape.cxx | 5 +- src/BOPAlgo/BOPAlgo_BuilderShape.hxx | 110 + src/BOPAlgo/BOPAlgo_BuilderSolid.cdl | 76 - src/BOPAlgo/BOPAlgo_BuilderSolid.cxx | 88 +- src/BOPAlgo/BOPAlgo_BuilderSolid.hxx | 95 + src/BOPAlgo/BOPAlgo_Builder_1.cxx | 20 +- src/BOPAlgo/BOPAlgo_Builder_2.cxx | 59 +- src/BOPAlgo/BOPAlgo_Builder_4.cxx | 13 +- src/BOPAlgo/BOPAlgo_CheckResult.cdl | 115 - src/BOPAlgo/BOPAlgo_CheckResult.cxx | 4 +- src/BOPAlgo/BOPAlgo_CheckResult.hxx | 128 + src/BOPAlgo/BOPAlgo_CheckStatus.hxx | 35 + src/BOPAlgo/BOPAlgo_CheckerSI.cdl | 82 - src/BOPAlgo/BOPAlgo_CheckerSI.cxx | 28 +- src/BOPAlgo/BOPAlgo_CheckerSI.hxx | 102 + src/BOPAlgo/BOPAlgo_MakerVolume.cdl | 218 -- src/BOPAlgo/BOPAlgo_MakerVolume.cxx | 24 +- src/BOPAlgo/BOPAlgo_MakerVolume.hxx | 214 ++ src/BOPAlgo/BOPAlgo_Operation.hxx | 29 + src/BOPAlgo/BOPAlgo_PArgumentAnalyzer.hxx | 21 + src/BOPAlgo/BOPAlgo_PBOP.hxx | 21 + src/BOPAlgo/BOPAlgo_PBuilder.hxx | 21 + src/BOPAlgo/BOPAlgo_PPaveFiller.hxx | 21 + src/BOPAlgo/BOPAlgo_PSection.hxx | 21 + src/BOPAlgo/BOPAlgo_PWireEdgeSet.hxx | 21 + src/BOPAlgo/BOPAlgo_PaveFiller.cdl | 486 --- src/BOPAlgo/BOPAlgo_PaveFiller.cxx | 19 +- src/BOPAlgo/BOPAlgo_PaveFiller.hxx | 300 ++ src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx | 29 +- src/BOPAlgo/BOPAlgo_PaveFiller_10.cxx | 24 +- src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx | 27 +- src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx | 77 +- src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx | 40 +- src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx | 62 +- src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx | 117 +- src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx | 66 +- src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx | 44 +- src/BOPAlgo/BOPAlgo_PaveFiller_9.cxx | 25 +- src/BOPAlgo/BOPAlgo_Section.cdl | 75 - src/BOPAlgo/BOPAlgo_Section.cxx | 44 +- src/BOPAlgo/BOPAlgo_Section.hxx | 88 + src/BOPAlgo/BOPAlgo_SectionAttribute.cdl | 71 - src/BOPAlgo/BOPAlgo_SectionAttribute.cxx | 4 +- src/BOPAlgo/BOPAlgo_SectionAttribute.hxx | 90 + src/BOPAlgo/BOPAlgo_ShellSplitter.cdl | 73 - src/BOPAlgo/BOPAlgo_ShellSplitter.cxx | 29 +- src/BOPAlgo/BOPAlgo_ShellSplitter.hxx | 91 + src/BOPAlgo/BOPAlgo_Tools.cdl | 74 - src/BOPAlgo/BOPAlgo_Tools.cxx | 12 +- src/BOPAlgo/BOPAlgo_Tools.hxx | 78 + src/BOPAlgo/BOPAlgo_WireEdgeSet.cdl | 75 - src/BOPAlgo/BOPAlgo_WireEdgeSet.cxx | 5 +- src/BOPAlgo/BOPAlgo_WireEdgeSet.hxx | 86 + src/BOPAlgo/BOPAlgo_WireSplitter.cdl | 78 - src/BOPAlgo/BOPAlgo_WireSplitter.cxx | 28 +- src/BOPAlgo/BOPAlgo_WireSplitter.hxx | 92 + src/BOPAlgo/BOPAlgo_WireSplitter_1.cxx | 57 +- src/BOPAlgo/FILES | 61 +- src/BOPCol/BOPCol.cdl | 54 - src/BOPCol/FILES | 56 +- src/BOPDS/BOPDS.cdl | 119 - src/BOPDS/BOPDS_CommonBlock.cdl | 174 - src/BOPDS/BOPDS_CommonBlock.cxx | 5 +- src/BOPDS/BOPDS_CommonBlock.hxx | 170 + src/BOPDS/BOPDS_Curve.cdl | 152 - src/BOPDS/BOPDS_Curve.cxx | 6 +- src/BOPDS/BOPDS_Curve.hxx | 150 + src/BOPDS/BOPDS_DS.cdl | 686 ---- src/BOPDS/BOPDS_DS.cxx | 70 +- src/BOPDS/BOPDS_DS.hxx | 516 +++ src/BOPDS/BOPDS_FaceInfo.cdl | 198 - src/BOPDS/BOPDS_FaceInfo.cxx | 3 +- src/BOPDS/BOPDS_FaceInfo.hxx | 179 + src/BOPDS/BOPDS_IndexRange.cdl | 94 - src/BOPDS/BOPDS_IndexRange.cxx | 5 +- src/BOPDS/BOPDS_IndexRange.hxx | 106 + src/BOPDS/BOPDS_Iterator.cdl | 133 - src/BOPDS/BOPDS_Iterator.cxx | 24 +- src/BOPDS/BOPDS_Iterator.hxx | 144 + src/BOPDS/BOPDS_IteratorSI.cdl | 61 - src/BOPDS/BOPDS_IteratorSI.cxx | 40 +- src/BOPDS/BOPDS_IteratorSI.hxx | 90 + src/BOPDS/BOPDS_PDS.hxx | 21 + src/BOPDS/BOPDS_PIterator.hxx | 21 + src/BOPDS/BOPDS_PIteratorSI.hxx | 21 + src/BOPDS/BOPDS_PassKey.cdl | 154 - src/BOPDS/BOPDS_PassKey.cxx | 4 +- src/BOPDS/BOPDS_PassKey.hxx | 144 + src/BOPDS/BOPDS_PassKeyBoolean.cdl | 53 - src/BOPDS/BOPDS_PassKeyBoolean.cxx | 3 +- src/BOPDS/BOPDS_PassKeyBoolean.hxx | 75 + src/BOPDS/BOPDS_PassKeyMapHasher.cdl | 40 - src/BOPDS/BOPDS_PassKeyMapHasher.cxx | 3 +- src/BOPDS/BOPDS_PassKeyMapHasher.hxx | 66 + src/BOPDS/BOPDS_Pave.cdl | 93 - src/BOPDS/BOPDS_Pave.cxx | 4 +- src/BOPDS/BOPDS_Pave.hxx | 116 + src/BOPDS/BOPDS_PaveBlock.cdl | 247 -- src/BOPDS/BOPDS_PaveBlock.cxx | 10 +- src/BOPDS/BOPDS_PaveBlock.hxx | 229 ++ src/BOPDS/BOPDS_PaveMapHasher.cdl | 37 - src/BOPDS/BOPDS_PaveMapHasher.cxx | 3 +- src/BOPDS/BOPDS_PaveMapHasher.hxx | 63 + src/BOPDS/BOPDS_Point.cdl | 98 - src/BOPDS/BOPDS_Point.cxx | 5 +- src/BOPDS/BOPDS_Point.hxx | 112 + src/BOPDS/BOPDS_ShapeInfo.cdl | 195 - src/BOPDS/BOPDS_ShapeInfo.cxx | 6 +- src/BOPDS/BOPDS_ShapeInfo.hxx | 180 + src/BOPDS/BOPDS_SubIterator.cdl | 134 - src/BOPDS/BOPDS_SubIterator.cxx | 31 +- src/BOPDS/BOPDS_SubIterator.hxx | 143 + src/BOPDS/BOPDS_Tools.cdl | 62 - src/BOPDS/BOPDS_Tools.cxx | 3 +- src/BOPDS/BOPDS_Tools.hxx | 83 + src/BOPDS/FILES | 109 +- src/BOPTest/BOPTest.cdl | 46 - src/BOPTest/BOPTest.cxx | 9 +- src/BOPTest/BOPTest.hxx | 81 + src/BOPTest/BOPTest_APICommands.cxx | 23 +- src/BOPTest/BOPTest_BOPCommands.cxx | 61 +- src/BOPTest/BOPTest_CheckCommands.cxx | 45 +- src/BOPTest/BOPTest_DrawableShape.cdl | 60 - src/BOPTest/BOPTest_DrawableShape.cxx | 47 +- src/BOPTest/BOPTest_DrawableShape.hxx | 77 + src/BOPTest/BOPTest_LowCommands.cxx | 35 +- src/BOPTest/BOPTest_ObjCommands.cxx | 14 +- src/BOPTest/BOPTest_Objects.cdl | 81 - src/BOPTest/BOPTest_Objects.cxx | 6 +- src/BOPTest/BOPTest_Objects.hxx | 94 + src/BOPTest/BOPTest_OptionCommands.cxx | 10 +- src/BOPTest/BOPTest_PartitionCommands.cxx | 30 +- src/BOPTest/BOPTest_TolerCommands.cxx | 59 +- src/BOPTest/FILES | 14 +- src/BOPTools/BOPTools.cdl | 78 - src/BOPTools/BOPTools.cxx | 6 +- src/BOPTools/BOPTools.hxx | 82 + src/BOPTools/BOPTools_AlgoTools.cdl | 472 --- src/BOPTools/BOPTools_AlgoTools.cxx | 83 +- src/BOPTools/BOPTools_AlgoTools.hxx | 302 ++ src/BOPTools/BOPTools_AlgoTools2D.cdl | 218 -- src/BOPTools/BOPTools_AlgoTools2D.cxx | 88 +- src/BOPTools/BOPTools_AlgoTools2D.hxx | 172 + src/BOPTools/BOPTools_AlgoTools3D.cdl | 193 - src/BOPTools/BOPTools_AlgoTools3D.cxx | 89 +- src/BOPTools/BOPTools_AlgoTools3D.hxx | 151 + src/BOPTools/BOPTools_AlgoTools_1.cxx | 103 +- src/BOPTools/BOPTools_AlgoTools_2.cxx | 30 +- src/BOPTools/BOPTools_EdgeSet.cdl | 76 - src/BOPTools/BOPTools_EdgeSet.cxx | 5 +- src/BOPTools/BOPTools_EdgeSet.hxx | 87 + src/BOPTools/BOPTools_Set.cdl | 71 - src/BOPTools/BOPTools_Set.cxx | 9 +- src/BOPTools/BOPTools_Set.hxx | 91 + src/BOPTools/BOPTools_SetMapHasher.cdl | 39 - src/BOPTools/BOPTools_SetMapHasher.cxx | 4 +- src/BOPTools/BOPTools_SetMapHasher.hxx | 63 + src/BOPTools/BOPTools_ShapeSet.cdl | 93 - src/BOPTools/BOPTools_ShapeSet.cxx | 5 +- src/BOPTools/BOPTools_ShapeSet.hxx | 100 + src/BOPTools/FILES | 30 +- src/BRep/BRep.cdl | 135 - src/BRep/BRep_Builder.cdl | 565 --- src/BRep/BRep_Builder.cxx | 43 +- src/BRep/BRep_Builder.hxx | 275 ++ src/BRep/BRep_Curve3D.cdl | 54 - src/BRep/BRep_Curve3D.cxx | 9 +- src/BRep/BRep_Curve3D.hxx | 81 + src/BRep/BRep_CurveOn2Surfaces.cdl | 79 - src/BRep/BRep_CurveOn2Surfaces.cxx | 9 +- src/BRep/BRep_CurveOn2Surfaces.hxx | 96 + src/BRep/BRep_CurveOnClosedSurface.cdl | 108 - src/BRep/BRep_CurveOnClosedSurface.cxx | 12 +- src/BRep/BRep_CurveOnClosedSurface.hxx | 109 + src/BRep/BRep_CurveOnSurface.cdl | 84 - src/BRep/BRep_CurveOnSurface.cxx | 12 +- src/BRep/BRep_CurveOnSurface.hxx | 102 + src/BRep/BRep_CurveRepresentation.cdl | 295 -- src/BRep/BRep_CurveRepresentation.cxx | 15 +- src/BRep/BRep_CurveRepresentation.hxx | 174 + src/BRep/BRep_GCurve.cdl | 70 - src/BRep/BRep_GCurve.cxx | 7 +- src/BRep/BRep_GCurve.hxx | 88 + src/BRep/BRep_PointOnCurve.cdl | 54 - src/BRep/BRep_PointOnCurve.cxx | 6 +- src/BRep/BRep_PointOnCurve.hxx | 75 + src/BRep/BRep_PointOnCurveOnSurface.cdl | 57 - src/BRep/BRep_PointOnCurveOnSurface.cxx | 7 +- src/BRep/BRep_PointOnCurveOnSurface.hxx | 77 + src/BRep/BRep_PointOnSurface.cdl | 49 - src/BRep/BRep_PointOnSurface.cxx | 6 +- src/BRep/BRep_PointOnSurface.hxx | 74 + src/BRep/BRep_PointRepresentation.cdl | 154 - src/BRep/BRep_PointRepresentation.cxx | 10 +- src/BRep/BRep_PointRepresentation.hxx | 115 + src/BRep/BRep_PointsOnSurface.cdl | 43 - src/BRep/BRep_PointsOnSurface.cxx | 6 +- src/BRep/BRep_PointsOnSurface.hxx | 69 + src/BRep/BRep_Polygon3D.cdl | 59 - src/BRep/BRep_Polygon3D.cxx | 8 +- src/BRep/BRep_Polygon3D.hxx | 77 + src/BRep/BRep_PolygonOnClosedSurface.cdl | 59 - src/BRep/BRep_PolygonOnClosedSurface.cxx | 9 +- src/BRep/BRep_PolygonOnClosedSurface.hxx | 78 + .../BRep_PolygonOnClosedTriangulation.cdl | 64 - .../BRep_PolygonOnClosedTriangulation.cxx | 9 +- .../BRep_PolygonOnClosedTriangulation.hxx | 78 + src/BRep/BRep_PolygonOnSurface.cdl | 78 - src/BRep/BRep_PolygonOnSurface.cxx | 10 +- src/BRep/BRep_PolygonOnSurface.hxx | 87 + src/BRep/BRep_PolygonOnTriangulation.cdl | 69 - src/BRep/BRep_PolygonOnTriangulation.cxx | 9 +- src/BRep/BRep_PolygonOnTriangulation.hxx | 86 + src/BRep/BRep_TEdge.cdl | 94 - src/BRep/BRep_TEdge.cxx | 13 +- src/BRep/BRep_TEdge.hxx | 111 + src/BRep/BRep_TFace.cdl | 100 - src/BRep/BRep_TFace.cxx | 9 +- src/BRep/BRep_TFace.hxx | 120 + src/BRep/BRep_TVertex.cdl | 75 - src/BRep/BRep_TVertex.cxx | 7 +- src/BRep/BRep_TVertex.hxx | 92 + src/BRep/BRep_Tool.cdl | 609 --- src/BRep/BRep_Tool.cxx | 66 +- src/BRep/BRep_Tool.hxx | 267 ++ src/BRep/FILES | 55 +- src/BRepAdaptor/BRepAdaptor.cdl | 75 - src/BRepAdaptor/BRepAdaptor_CompCurve.cdl | 277 -- src/BRepAdaptor/BRepAdaptor_CompCurve.cxx | 27 +- src/BRepAdaptor/BRepAdaptor_CompCurve.hxx | 217 ++ src/BRepAdaptor/BRepAdaptor_Curve.cdl | 302 -- src/BRepAdaptor/BRepAdaptor_Curve.cxx | 28 +- src/BRepAdaptor/BRepAdaptor_Curve.hxx | 250 ++ src/BRepAdaptor/BRepAdaptor_Curve2d.cdl | 71 - src/BRepAdaptor/BRepAdaptor_Curve2d.cxx | 7 +- src/BRepAdaptor/BRepAdaptor_Curve2d.hxx | 89 + src/BRepAdaptor/BRepAdaptor_HCompCurve.hxx | 89 + src/BRepAdaptor/BRepAdaptor_HCompCurve_0.cxx | 42 + src/BRepAdaptor/BRepAdaptor_HCurve.hxx | 89 + src/BRepAdaptor/BRepAdaptor_HCurve2d.hxx | 87 + src/BRepAdaptor/BRepAdaptor_HCurve2d_0.cxx | 42 + src/BRepAdaptor/BRepAdaptor_HCurve_0.cxx | 42 + src/BRepAdaptor/BRepAdaptor_HSurface.hxx | 87 + src/BRepAdaptor/BRepAdaptor_HSurface_0.cxx | 42 + src/BRepAdaptor/BRepAdaptor_Surface.cdl | 416 --- src/BRepAdaptor/BRepAdaptor_Surface.cxx | 27 +- src/BRepAdaptor/BRepAdaptor_Surface.hxx | 277 ++ src/BRepAdaptor/FILES | 17 + src/BRepAlgo/BRepAlgo.cdl | 150 - src/BRepAlgo/BRepAlgo.cxx | 40 +- src/BRepAlgo/BRepAlgo.hxx | 130 + src/BRepAlgo/BRepAlgo_1.cxx | 17 +- src/BRepAlgo/BRepAlgo_AsDes.cdl | 101 - src/BRepAlgo/BRepAlgo_AsDes.cxx | 7 +- src/BRepAlgo/BRepAlgo_AsDes.hxx | 105 + src/BRepAlgo/BRepAlgo_BooleanOperation.cdl | 114 - src/BRepAlgo/BRepAlgo_BooleanOperation.cxx | 41 +- src/BRepAlgo/BRepAlgo_BooleanOperation.hxx | 110 + src/BRepAlgo/BRepAlgo_BooleanOperations.cdl | 138 - src/BRepAlgo/BRepAlgo_BooleanOperations.cxx | 25 +- src/BRepAlgo/BRepAlgo_BooleanOperations.hxx | 143 + src/BRepAlgo/BRepAlgo_CheckStatus.hxx | 27 + src/BRepAlgo/BRepAlgo_Common.cdl | 33 - src/BRepAlgo/BRepAlgo_Common.cxx | 4 +- src/BRepAlgo/BRepAlgo_Common.hxx | 67 + src/BRepAlgo/BRepAlgo_Cut.cdl | 32 - src/BRepAlgo/BRepAlgo_Cut.cxx | 5 +- src/BRepAlgo/BRepAlgo_Cut.hxx | 67 + src/BRepAlgo/BRepAlgo_DSAccess.cdl | 354 -- src/BRepAlgo/BRepAlgo_DSAccess.cxx | 44 +- src/BRepAlgo/BRepAlgo_DSAccess.hxx | 237 ++ src/BRepAlgo/BRepAlgo_EdgeConnector.cdl | 81 - src/BRepAlgo/BRepAlgo_EdgeConnector.cxx | 17 +- src/BRepAlgo/BRepAlgo_EdgeConnector.hxx | 101 + src/BRepAlgo/BRepAlgo_FaceRestrictor.cdl | 100 - src/BRepAlgo/BRepAlgo_FaceRestrictor.cxx | 26 +- src/BRepAlgo/BRepAlgo_FaceRestrictor.hxx | 114 + src/BRepAlgo/BRepAlgo_Fuse.cdl | 34 - src/BRepAlgo/BRepAlgo_Fuse.cxx | 4 +- src/BRepAlgo/BRepAlgo_Fuse.hxx | 67 + src/BRepAlgo/BRepAlgo_Image.cdl | 134 - src/BRepAlgo/BRepAlgo_Image.cxx | 8 +- src/BRepAlgo/BRepAlgo_Image.hxx | 117 + src/BRepAlgo/BRepAlgo_Loop.cdl | 105 - src/BRepAlgo/BRepAlgo_Loop.cxx | 33 +- src/BRepAlgo/BRepAlgo_Loop.hxx | 115 + src/BRepAlgo/BRepAlgo_NormalProjection.cdl | 168 - src/BRepAlgo/BRepAlgo_NormalProjection.cxx | 51 +- src/BRepAlgo/BRepAlgo_NormalProjection.hxx | 146 + src/BRepAlgo/BRepAlgo_Section.cdl | 349 -- src/BRepAlgo/BRepAlgo_Section.cxx | 21 +- src/BRepAlgo/BRepAlgo_Section.hxx | 354 ++ src/BRepAlgo/BRepAlgo_Tool.cdl | 39 - src/BRepAlgo/BRepAlgo_Tool.cxx | 15 +- src/BRepAlgo/BRepAlgo_Tool.hxx | 67 + src/BRepAlgo/FILES | 35 +- src/BRepAlgoAPI/BRepAlgoAPI.cdl | 114 - src/BRepAlgoAPI/BRepAlgoAPI_Algo.cdl | 86 - src/BRepAlgoAPI/BRepAlgoAPI_Algo.cxx | 6 +- src/BRepAlgoAPI/BRepAlgoAPI_Algo.hxx | 104 + .../BRepAlgoAPI_BooleanOperation.cdl | 193 - .../BRepAlgoAPI_BooleanOperation.cxx | 45 +- .../BRepAlgoAPI_BooleanOperation.hxx | 168 + src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cdl | 115 - src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx | 5 +- src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.hxx | 121 + src/BRepAlgoAPI/BRepAlgoAPI_Check.cdl | 135 - src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx | 4 +- src/BRepAlgoAPI/BRepAlgoAPI_Check.hxx | 140 + src/BRepAlgoAPI/BRepAlgoAPI_Common.cdl | 59 - src/BRepAlgoAPI/BRepAlgoAPI_Common.cxx | 4 +- src/BRepAlgoAPI/BRepAlgoAPI_Common.hxx | 85 + src/BRepAlgoAPI/BRepAlgoAPI_Cut.cdl | 59 - src/BRepAlgoAPI/BRepAlgoAPI_Cut.cxx | 4 +- src/BRepAlgoAPI/BRepAlgoAPI_Cut.hxx | 86 + src/BRepAlgoAPI/BRepAlgoAPI_Fuse.cdl | 58 - src/BRepAlgoAPI/BRepAlgoAPI_Fuse.cxx | 4 +- src/BRepAlgoAPI/BRepAlgoAPI_Fuse.hxx | 85 + src/BRepAlgoAPI/BRepAlgoAPI_Section.cdl | 293 -- src/BRepAlgoAPI/BRepAlgoAPI_Section.cxx | 25 +- src/BRepAlgoAPI/BRepAlgoAPI_Section.hxx | 226 ++ src/BRepAlgoAPI/FILES | 16 + src/BRepApprox/BRepApprox.cdl | 50 - src/BRepApprox/BRepApprox_Approx.hxx | 128 + src/BRepApprox/BRepApprox_ApproxLine.cdl | 53 - src/BRepApprox/BRepApprox_ApproxLine.cxx | 8 +- src/BRepApprox/BRepApprox_ApproxLine.hxx | 77 + src/BRepApprox/BRepApprox_Approx_0.cxx | 86 + ...MyBSplGradientOfTheComputeLineOfApprox.hxx | 74 + ...BSplGradientOfTheComputeLineOfApprox_0.cxx | 40 + ...MyBSplGradientOfTheComputeLineOfApprox.hxx | 140 + ...BSplGradientOfTheComputeLineOfApprox_0.cxx | 35 + ...MyBSplGradientOfTheComputeLineOfApprox.hxx | 175 + ...BSplGradientOfTheComputeLineOfApprox_0.cxx | 37 + ...GradientOfTheComputeLineBezierOfApprox.hxx | 75 + ...adientOfTheComputeLineBezierOfApprox_0.cxx | 43 + ...fMyGradientbisOfTheComputeLineOfApprox.hxx | 75 + ...yGradientbisOfTheComputeLineOfApprox_0.cxx | 43 + ...MyBSplGradientOfTheComputeLineOfApprox.hxx | 100 + ...BSplGradientOfTheComputeLineOfApprox_0.cxx | 42 + ...GradientOfTheComputeLineBezierOfApprox.hxx | 92 + ...adientOfTheComputeLineBezierOfApprox_0.cxx | 45 + ..._MyGradientbisOfTheComputeLineOfApprox.hxx | 92 + ...yGradientbisOfTheComputeLineOfApprox_0.cxx | 45 + ...GradientOfTheComputeLineBezierOfApprox.hxx | 125 + ...adientOfTheComputeLineBezierOfApprox_0.cxx | 37 + ...fMyGradientbisOfTheComputeLineOfApprox.hxx | 125 + ...yGradientbisOfTheComputeLineOfApprox_0.cxx | 37 + ...GradientOfTheComputeLineBezierOfApprox.hxx | 175 + ...adientOfTheComputeLineBezierOfApprox_0.cxx | 37 + ...fMyGradientbisOfTheComputeLineOfApprox.hxx | 175 + ...yGradientbisOfTheComputeLineOfApprox_0.cxx | 37 + ...GradientOfTheComputeLineBezierOfApprox.hxx | 100 + ...adientOfTheComputeLineBezierOfApprox_0.cxx | 33 + ...fMyGradientbisOfTheComputeLineOfApprox.hxx | 100 + ...yGradientbisOfTheComputeLineOfApprox_0.cxx | 33 + src/BRepApprox/BRepApprox_SurfaceTool.cdl | 239 -- src/BRepApprox/BRepApprox_SurfaceTool.cxx | 12 +- src/BRepApprox/BRepApprox_SurfaceTool.hxx | 162 + ...RepApprox_TheComputeLineBezierOfApprox.hxx | 155 + ...pApprox_TheComputeLineBezierOfApprox_0.cxx | 55 + .../BRepApprox_TheComputeLineOfApprox.hxx | 167 + .../BRepApprox_TheComputeLineOfApprox_0.cxx | 73 + ...fTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx | 142 + ...heInt2SOfThePrmPrmSvSurfacesOfApprox_0.cxx | 33 + ...BRepApprox_TheImpPrmSvSurfacesOfApprox.hxx | 106 + ...epApprox_TheImpPrmSvSurfacesOfApprox_0.cxx | 46 + ..._TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx | 142 + ...heInt2SOfThePrmPrmSvSurfacesOfApprox_0.cxx | 41 + .../BRepApprox_TheMultiLineOfApprox.hxx | 119 + .../BRepApprox_TheMultiLineOfApprox_0.cxx | 31 + .../BRepApprox_TheMultiLineToolOfApprox.hxx | 112 + .../BRepApprox_TheMultiLineToolOfApprox_0.cxx | 30 + ...BRepApprox_ThePrmPrmSvSurfacesOfApprox.hxx | 102 + ...epApprox_ThePrmPrmSvSurfacesOfApprox_0.cxx | 45 + ...erImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx | 151 + ...ImpFuncOfTheImpPrmSvSurfacesOfApprox_0.cxx | 41 + src/BRepApprox/FILES | 53 + src/BRepBlend/BRepBlend.cdl | 137 - src/BRepBlend/BRepBlend_AppFunc.cdl | 50 - src/BRepBlend/BRepBlend_AppFunc.cxx | 9 +- src/BRepBlend/BRepBlend_AppFunc.hxx | 73 + src/BRepBlend/BRepBlend_AppFuncRoot.cdl | 260 -- src/BRepBlend/BRepBlend_AppFuncRoot.cxx | 12 +- src/BRepBlend/BRepBlend_AppFuncRoot.hxx | 171 + src/BRepBlend/BRepBlend_AppFuncRst.cdl | 49 - src/BRepBlend/BRepBlend_AppFuncRst.cxx | 9 +- src/BRepBlend/BRepBlend_AppFuncRst.hxx | 72 + src/BRepBlend/BRepBlend_AppFuncRstRst.cdl | 49 - src/BRepBlend/BRepBlend_AppFuncRstRst.cxx | 9 +- src/BRepBlend/BRepBlend_AppFuncRstRst.hxx | 72 + src/BRepBlend/BRepBlend_AppSurf.hxx | 180 + src/BRepBlend/BRepBlend_AppSurf_0.cxx | 34 + src/BRepBlend/BRepBlend_AppSurface.cdl | 250 -- src/BRepBlend/BRepBlend_AppSurface.cxx | 9 +- src/BRepBlend/BRepBlend_AppSurface.hxx | 133 + src/BRepBlend/BRepBlend_BlendTool.cdl | 115 - src/BRepBlend/BRepBlend_BlendTool.cxx | 17 +- src/BRepBlend/BRepBlend_BlendTool.hxx | 105 + src/BRepBlend/BRepBlend_CSCircular.hxx | 25 + src/BRepBlend/BRepBlend_CSConstRad.hxx | 25 + src/BRepBlend/BRepBlend_CSWalking.hxx | 188 + src/BRepBlend/BRepBlend_CSWalking_0.cxx | 73 + src/BRepBlend/BRepBlend_ChAsym.hxx | 25 + src/BRepBlend/BRepBlend_ChAsymInv.hxx | 25 + src/BRepBlend/BRepBlend_ChamfInv.hxx | 25 + src/BRepBlend/BRepBlend_Chamfer.hxx | 25 + src/BRepBlend/BRepBlend_ConstRad.hxx | 25 + src/BRepBlend/BRepBlend_ConstRadInv.hxx | 25 + src/BRepBlend/BRepBlend_CurvPointRadInv.cdl | 97 - src/BRepBlend/BRepBlend_CurvPointRadInv.cxx | 7 +- src/BRepBlend/BRepBlend_CurvPointRadInv.hxx | 122 + src/BRepBlend/BRepBlend_EvolRad.hxx | 25 + src/BRepBlend/BRepBlend_EvolRadInv.hxx | 25 + src/BRepBlend/BRepBlend_Extremity.cdl | 237 -- src/BRepBlend/BRepBlend_Extremity.cxx | 10 +- src/BRepBlend/BRepBlend_Extremity.hxx | 155 + src/BRepBlend/BRepBlend_HCurve2dTool.cdl | 236 -- src/BRepBlend/BRepBlend_HCurve2dTool.cxx | 14 +- src/BRepBlend/BRepBlend_HCurve2dTool.hxx | 161 + src/BRepBlend/BRepBlend_HCurveTool.cdl | 236 -- src/BRepBlend/BRepBlend_HCurveTool.cxx | 14 +- src/BRepBlend/BRepBlend_HCurveTool.hxx | 161 + src/BRepBlend/BRepBlend_Line.cdl | 236 -- src/BRepBlend/BRepBlend_Line.cxx | 7 +- src/BRepBlend/BRepBlend_Line.hxx | 150 + src/BRepBlend/BRepBlend_PointOnRst.cdl | 117 - src/BRepBlend/BRepBlend_PointOnRst.cxx | 6 +- src/BRepBlend/BRepBlend_PointOnRst.hxx | 98 + src/BRepBlend/BRepBlend_RstRstConstRad.cdl | 346 -- src/BRepBlend/BRepBlend_RstRstConstRad.cxx | 22 +- src/BRepBlend/BRepBlend_RstRstConstRad.hxx | 258 ++ src/BRepBlend/BRepBlend_RstRstEvolRad.cdl | 351 -- src/BRepBlend/BRepBlend_RstRstEvolRad.cxx | 25 +- src/BRepBlend/BRepBlend_RstRstEvolRad.hxx | 262 ++ src/BRepBlend/BRepBlend_RstRstLineBuilder.cdl | 273 -- src/BRepBlend/BRepBlend_RstRstLineBuilder.cxx | 25 +- src/BRepBlend/BRepBlend_RstRstLineBuilder.hxx | 167 + src/BRepBlend/BRepBlend_Ruled.hxx | 25 + src/BRepBlend/BRepBlend_RuledInv.hxx | 25 + .../BRepBlend_SurfCurvConstRadInv.cdl | 107 - .../BRepBlend_SurfCurvConstRadInv.cxx | 8 +- .../BRepBlend_SurfCurvConstRadInv.hxx | 125 + .../BRepBlend_SurfCurvEvolRadInv.cdl | 111 - .../BRepBlend_SurfCurvEvolRadInv.cxx | 8 +- .../BRepBlend_SurfCurvEvolRadInv.hxx | 128 + .../BRepBlend_SurfPointConstRadInv.cdl | 98 - .../BRepBlend_SurfPointConstRadInv.cxx | 8 +- .../BRepBlend_SurfPointConstRadInv.hxx | 123 + .../BRepBlend_SurfPointEvolRadInv.cdl | 102 - .../BRepBlend_SurfPointEvolRadInv.cxx | 7 +- .../BRepBlend_SurfPointEvolRadInv.hxx | 126 + src/BRepBlend/BRepBlend_SurfRstConstRad.cdl | 312 -- src/BRepBlend/BRepBlend_SurfRstConstRad.cxx | 22 +- src/BRepBlend/BRepBlend_SurfRstConstRad.hxx | 247 ++ src/BRepBlend/BRepBlend_SurfRstEvolRad.cdl | 317 -- src/BRepBlend/BRepBlend_SurfRstEvolRad.cxx | 25 +- src/BRepBlend/BRepBlend_SurfRstEvolRad.hxx | 250 ++ .../BRepBlend_SurfRstLineBuilder.cdl | 249 -- .../BRepBlend_SurfRstLineBuilder.cxx | 26 +- .../BRepBlend_SurfRstLineBuilder.hxx | 163 + src/BRepBlend/BRepBlend_Walking.hxx | 233 ++ src/BRepBlend/BRepBlend_Walking_0.cxx | 74 + src/BRepBlend/FILES | 73 +- src/BRepBndLib/BRepBndLib.cdl | 76 - src/BRepBndLib/BRepBndLib.cxx | 34 +- src/BRepBndLib/BRepBndLib.hxx | 94 + src/BRepBndLib/FILES | 2 + src/BRepBuilderAPI/BRepBuilderAPI.cdl | 320 -- src/BRepBuilderAPI/BRepBuilderAPI.cxx | 15 +- src/BRepBuilderAPI/BRepBuilderAPI.hxx | 165 + src/BRepBuilderAPI/BRepBuilderAPI_Collect.cdl | 58 - src/BRepBuilderAPI/BRepBuilderAPI_Collect.cxx | 11 +- src/BRepBuilderAPI/BRepBuilderAPI_Collect.hxx | 80 + src/BRepBuilderAPI/BRepBuilderAPI_Command.cdl | 63 - src/BRepBuilderAPI/BRepBuilderAPI_Command.cxx | 5 +- src/BRepBuilderAPI/BRepBuilderAPI_Command.hxx | 85 + src/BRepBuilderAPI/BRepBuilderAPI_Copy.cdl | 58 - src/BRepBuilderAPI/BRepBuilderAPI_Copy.cxx | 13 +- src/BRepBuilderAPI/BRepBuilderAPI_Copy.hxx | 82 + .../BRepBuilderAPI_EdgeError.hxx | 55 + .../BRepBuilderAPI_FaceError.hxx | 42 + .../BRepBuilderAPI_FindPlane.cdl | 80 - .../BRepBuilderAPI_FindPlane.cxx | 37 +- .../BRepBuilderAPI_FindPlane.hxx | 101 + .../BRepBuilderAPI_GTransform.cdl | 126 - .../BRepBuilderAPI_GTransform.cxx | 16 +- .../BRepBuilderAPI_GTransform.hxx | 129 + .../BRepBuilderAPI_MakeEdge.cdl | 434 --- .../BRepBuilderAPI_MakeEdge.cxx | 16 +- .../BRepBuilderAPI_MakeEdge.hxx | 295 ++ .../BRepBuilderAPI_MakeEdge2d.cdl | 292 -- .../BRepBuilderAPI_MakeEdge2d.cxx | 13 +- .../BRepBuilderAPI_MakeEdge2d.hxx | 185 + .../BRepBuilderAPI_MakeFace.cdl | 331 -- .../BRepBuilderAPI_MakeFace.cxx | 12 +- .../BRepBuilderAPI_MakeFace.hxx | 271 ++ .../BRepBuilderAPI_MakePolygon.cdl | 207 -- .../BRepBuilderAPI_MakePolygon.cxx | 9 +- .../BRepBuilderAPI_MakePolygon.hxx | 198 + .../BRepBuilderAPI_MakeShape.cdl | 96 - .../BRepBuilderAPI_MakeShape.cxx | 10 +- .../BRepBuilderAPI_MakeShape.hxx | 94 + .../BRepBuilderAPI_MakeShell.cdl | 135 - .../BRepBuilderAPI_MakeShell.cxx | 6 +- .../BRepBuilderAPI_MakeShell.hxx | 131 + .../BRepBuilderAPI_MakeSolid.cdl | 168 - .../BRepBuilderAPI_MakeSolid.cxx | 10 +- .../BRepBuilderAPI_MakeSolid.hxx | 149 + .../BRepBuilderAPI_MakeVertex.cdl | 53 - .../BRepBuilderAPI_MakeVertex.cxx | 8 +- .../BRepBuilderAPI_MakeVertex.hxx | 80 + .../BRepBuilderAPI_MakeWire.cdl | 225 -- .../BRepBuilderAPI_MakeWire.cxx | 7 +- .../BRepBuilderAPI_MakeWire.hxx | 207 ++ .../BRepBuilderAPI_ModifyShape.cdl | 135 - .../BRepBuilderAPI_ModifyShape.cxx | 7 +- .../BRepBuilderAPI_ModifyShape.hxx | 125 + .../BRepBuilderAPI_NurbsConvert.cdl | 66 - .../BRepBuilderAPI_NurbsConvert.cxx | 14 +- .../BRepBuilderAPI_NurbsConvert.hxx | 91 + .../BRepBuilderAPI_PipeError.hxx | 29 + src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cdl | 559 --- src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cxx | 41 +- src/BRepBuilderAPI/BRepBuilderAPI_Sewing.hxx | 382 ++ .../BRepBuilderAPI_ShapeModification.hxx | 37 + .../BRepBuilderAPI_ShellError.hxx | 37 + .../BRepBuilderAPI_Transform.cdl | 105 - .../BRepBuilderAPI_Transform.cxx | 7 +- .../BRepBuilderAPI_Transform.hxx | 113 + .../BRepBuilderAPI_TransitionMode.hxx | 28 + .../BRepBuilderAPI_WireError.hxx | 38 + src/BRepBuilderAPI/FILES | 52 +- src/BRepCheck/BRepCheck.cdl | 148 - src/BRepCheck/BRepCheck.cxx | 12 +- src/BRepCheck/BRepCheck.hxx | 87 + src/BRepCheck/BRepCheck_Analyzer.cdl | 174 - src/BRepCheck/BRepCheck_Analyzer.cxx | 26 +- src/BRepCheck/BRepCheck_Analyzer.hxx | 165 + src/BRepCheck/BRepCheck_Edge.cdl | 77 - src/BRepCheck/BRepCheck_Edge.cxx | 69 +- src/BRepCheck/BRepCheck_Edge.hxx | 90 + src/BRepCheck/BRepCheck_Face.cdl | 105 - src/BRepCheck/BRepCheck_Face.cxx | 68 +- src/BRepCheck/BRepCheck_Face.hxx | 97 + src/BRepCheck/BRepCheck_Result.cdl | 128 - src/BRepCheck/BRepCheck_Result.cxx | 8 +- src/BRepCheck/BRepCheck_Result.hxx | 104 + src/BRepCheck/BRepCheck_Shell.cdl | 88 - src/BRepCheck/BRepCheck_Shell.cxx | 29 +- src/BRepCheck/BRepCheck_Shell.hxx | 98 + src/BRepCheck/BRepCheck_Solid.cdl | 70 - src/BRepCheck/BRepCheck_Solid.cxx | 42 +- src/BRepCheck/BRepCheck_Solid.hxx | 94 + src/BRepCheck/BRepCheck_Status.hxx | 62 + src/BRepCheck/BRepCheck_Vertex.cdl | 45 - src/BRepCheck/BRepCheck_Vertex.cxx | 38 +- src/BRepCheck/BRepCheck_Vertex.hxx | 72 + src/BRepCheck/BRepCheck_Wire.cdl | 142 - src/BRepCheck/BRepCheck_Wire.cxx | 84 +- src/BRepCheck/BRepCheck_Wire.hxx | 141 + src/BRepCheck/FILES | 29 +- src/BRepClass/BRepClass.cdl | 55 - src/BRepClass/BRepClass_Edge.cdl | 49 - src/BRepClass/BRepClass_Edge.cxx | 5 +- src/BRepClass/BRepClass_Edge.hxx | 76 + .../BRepClass_FClass2dOfFClassifier.hxx | 109 + .../BRepClass_FClass2dOfFClassifier_0.cxx | 32 + src/BRepClass/BRepClass_FClassifier.hxx | 114 + src/BRepClass/BRepClass_FClassifier_0.cxx | 38 + src/BRepClass/BRepClass_FaceClassifier.cdl | 68 - src/BRepClass/BRepClass_FaceClassifier.cxx | 12 +- src/BRepClass/BRepClass_FaceClassifier.hxx | 86 + src/BRepClass/BRepClass_FaceExplorer.cdl | 118 - src/BRepClass/BRepClass_FaceExplorer.cxx | 10 +- src/BRepClass/BRepClass_FaceExplorer.hxx | 120 + .../BRepClass_FacePassiveClassifier.hxx | 109 + .../BRepClass_FacePassiveClassifier_0.cxx | 32 + src/BRepClass/BRepClass_Intersector.cdl | 47 - src/BRepClass/BRepClass_Intersector.cxx | 25 +- src/BRepClass/BRepClass_Intersector.hxx | 73 + src/BRepClass/FILES | 16 + src/BRepClass3d/BRepClass3d.cdl | 58 - src/BRepClass3d/BRepClass3d.cxx | 17 +- src/BRepClass3d/BRepClass3d.hxx | 74 + src/BRepClass3d/BRepClass3d_Intersector3d.cdl | 146 - src/BRepClass3d/BRepClass3d_Intersector3d.cxx | 21 +- src/BRepClass3d/BRepClass3d_Intersector3d.hxx | 127 + src/BRepClass3d/BRepClass3d_SClassifier.cdl | 96 - src/BRepClass3d/BRepClass3d_SClassifier.cxx | 25 +- src/BRepClass3d/BRepClass3d_SClassifier.hxx | 105 + .../BRepClass3d_SolidClassifier.cdl | 80 - .../BRepClass3d_SolidClassifier.cxx | 6 +- .../BRepClass3d_SolidClassifier.hxx | 94 + src/BRepClass3d/BRepClass3d_SolidExplorer.cdl | 219 -- src/BRepClass3d/BRepClass3d_SolidExplorer.cxx | 49 +- src/BRepClass3d/BRepClass3d_SolidExplorer.hxx | 178 + .../BRepClass3d_SolidPassiveClassifier.hxx | 99 + .../BRepClass3d_SolidPassiveClassifier_0.cxx | 30 + src/BRepClass3d/FILES | 15 +- src/BRepExtrema/BRepExtrema.cdl | 111 - .../BRepExtrema_UnCompatibleShape.hxx | 37 + src/BRepExtrema/FILES | 35 +- src/BRepFeat/BRepFeat.cdl | 230 -- src/BRepFeat/BRepFeat.cxx | 70 +- src/BRepFeat/BRepFeat.hxx | 157 + src/BRepFeat/BRepFeat_Builder.cdl | 144 - src/BRepFeat/BRepFeat_Builder.cxx | 43 +- src/BRepFeat/BRepFeat_Builder.hxx | 143 + src/BRepFeat/BRepFeat_Form.cdl | 256 -- src/BRepFeat/BRepFeat_Form.cxx | 72 +- src/BRepFeat/BRepFeat_Form.hxx | 207 ++ src/BRepFeat/BRepFeat_Gluer.cdl | 156 - src/BRepFeat/BRepFeat_Gluer.cxx | 7 +- src/BRepFeat/BRepFeat_Gluer.hxx | 128 + src/BRepFeat/BRepFeat_MakeCylindricalHole.cdl | 158 - src/BRepFeat/BRepFeat_MakeCylindricalHole.cxx | 32 +- src/BRepFeat/BRepFeat_MakeCylindricalHole.hxx | 131 + src/BRepFeat/BRepFeat_MakeDPrism.cdl | 190 - src/BRepFeat/BRepFeat_MakeDPrism.cxx | 91 +- src/BRepFeat/BRepFeat_MakeDPrism.hxx | 165 + src/BRepFeat/BRepFeat_MakeLinearForm.cdl | 152 - src/BRepFeat/BRepFeat_MakeLinearForm.cxx | 129 +- src/BRepFeat/BRepFeat_MakeLinearForm.hxx | 143 + src/BRepFeat/BRepFeat_MakePipe.cdl | 143 - src/BRepFeat/BRepFeat_MakePipe.cxx | 53 +- src/BRepFeat/BRepFeat_MakePipe.hxx | 138 + src/BRepFeat/BRepFeat_MakePrism.cdl | 174 - src/BRepFeat/BRepFeat_MakePrism.cxx | 78 +- src/BRepFeat/BRepFeat_MakePrism.hxx | 164 + src/BRepFeat/BRepFeat_MakeRevol.cdl | 129 - src/BRepFeat/BRepFeat_MakeRevol.cxx | 84 +- src/BRepFeat/BRepFeat_MakeRevol.hxx | 120 + src/BRepFeat/BRepFeat_MakeRevolutionForm.cdl | 143 - src/BRepFeat/BRepFeat_MakeRevolutionForm.cxx | 157 +- src/BRepFeat/BRepFeat_MakeRevolutionForm.hxx | 130 + src/BRepFeat/BRepFeat_PerfSelection.hxx | 39 + src/BRepFeat/BRepFeat_RibSlot.cdl | 299 -- src/BRepFeat/BRepFeat_RibSlot.cxx | 119 +- src/BRepFeat/BRepFeat_RibSlot.hxx | 191 + src/BRepFeat/BRepFeat_SplitShape.cdl | 168 - src/BRepFeat/BRepFeat_SplitShape.cxx | 14 +- src/BRepFeat/BRepFeat_SplitShape.hxx | 136 + src/BRepFeat/BRepFeat_Status.hxx | 28 + src/BRepFeat/BRepFeat_StatusError.hxx | 53 + src/BRepFeat/FILES | 40 + src/BRepFill/BRepFill.cdl | 229 -- src/BRepFill/BRepFill.cxx | 85 +- src/BRepFill/BRepFill.hxx | 148 + src/BRepFill/BRepFill_ACRLaw.cdl | 39 - src/BRepFill/BRepFill_ACRLaw.cxx | 23 +- src/BRepFill/BRepFill_ACRLaw.hxx | 67 + src/BRepFill/BRepFill_ApproxSeewing.cdl | 82 - src/BRepFill/BRepFill_ApproxSeewing.cxx | 15 +- src/BRepFill/BRepFill_ApproxSeewing.hxx | 90 + src/BRepFill/BRepFill_CompatibleWires.cdl | 128 - src/BRepFill/BRepFill_CompatibleWires.cxx | 64 +- src/BRepFill/BRepFill_CompatibleWires.hxx | 118 + src/BRepFill/BRepFill_ComputeCLine.hxx | 109 + src/BRepFill/BRepFill_ComputeCLine_0.cxx | 27 + src/BRepFill/BRepFill_CurveConstraint.cdl | 71 - src/BRepFill/BRepFill_CurveConstraint.cxx | 26 +- src/BRepFill/BRepFill_CurveConstraint.hxx | 78 + src/BRepFill/BRepFill_Draft.cdl | 134 - src/BRepFill/BRepFill_Draft.cxx | 97 +- src/BRepFill/BRepFill_Draft.hxx | 123 + src/BRepFill/BRepFill_DraftLaw.cdl | 37 - src/BRepFill/BRepFill_DraftLaw.cxx | 13 +- src/BRepFill/BRepFill_DraftLaw.hxx | 67 + src/BRepFill/BRepFill_Edge3DLaw.cdl | 30 - src/BRepFill/BRepFill_Edge3DLaw.cxx | 19 +- src/BRepFill/BRepFill_Edge3DLaw.hxx | 63 + src/BRepFill/BRepFill_EdgeFaceAndOrder.cdl | 42 - src/BRepFill/BRepFill_EdgeFaceAndOrder.cxx | 6 +- src/BRepFill/BRepFill_EdgeFaceAndOrder.hxx | 71 + src/BRepFill/BRepFill_EdgeOnSurfLaw.cdl | 40 - src/BRepFill/BRepFill_EdgeOnSurfLaw.cxx | 32 +- src/BRepFill/BRepFill_EdgeOnSurfLaw.hxx | 70 + src/BRepFill/BRepFill_Evolved.cdl | 265 -- src/BRepFill/BRepFill_Evolved.cxx | 143 +- src/BRepFill/BRepFill_Evolved.hxx | 177 + src/BRepFill/BRepFill_FaceAndOrder.cdl | 44 - src/BRepFill/BRepFill_FaceAndOrder.cxx | 5 +- src/BRepFill/BRepFill_FaceAndOrder.hxx | 68 + src/BRepFill/BRepFill_Filling.cdl | 275 -- src/BRepFill/BRepFill_Filling.cxx | 79 +- src/BRepFill/BRepFill_Filling.hxx | 236 ++ src/BRepFill/BRepFill_Generator.cdl | 87 - src/BRepFill/BRepFill_Generator.cxx | 79 +- src/BRepFill/BRepFill_Generator.hxx | 87 + src/BRepFill/BRepFill_LocationLaw.cdl | 173 - src/BRepFill/BRepFill_LocationLaw.cxx | 35 +- src/BRepFill/BRepFill_LocationLaw.hxx | 166 + src/BRepFill/BRepFill_NSections.cdl | 97 - src/BRepFill/BRepFill_NSections.cxx | 56 +- src/BRepFill/BRepFill_NSections.hxx | 103 + src/BRepFill/BRepFill_OffsetAncestors.cdl | 63 - src/BRepFill/BRepFill_OffsetAncestors.cxx | 7 +- src/BRepFill/BRepFill_OffsetAncestors.hxx | 81 + src/BRepFill/BRepFill_OffsetWire.cdl | 157 - src/BRepFill/BRepFill_OffsetWire.cxx | 110 +- src/BRepFill/BRepFill_OffsetWire.hxx | 139 + src/BRepFill/BRepFill_Pipe.cdl | 193 - src/BRepFill/BRepFill_Pipe.cxx | 73 +- src/BRepFill/BRepFill_Pipe.hxx | 159 + src/BRepFill/BRepFill_PipeShell.cdl | 329 -- src/BRepFill/BRepFill_PipeShell.cxx | 89 +- src/BRepFill/BRepFill_PipeShell.hxx | 244 ++ src/BRepFill/BRepFill_Section.cdl | 66 - src/BRepFill/BRepFill_Section.cxx | 8 +- src/BRepFill/BRepFill_Section.hxx | 85 + src/BRepFill/BRepFill_SectionLaw.cdl | 86 - src/BRepFill/BRepFill_SectionLaw.cxx | 26 +- src/BRepFill/BRepFill_SectionLaw.hxx | 101 + src/BRepFill/BRepFill_SectionPlacement.cdl | 61 - src/BRepFill/BRepFill_SectionPlacement.cxx | 35 +- src/BRepFill/BRepFill_SectionPlacement.hxx | 82 + src/BRepFill/BRepFill_ShapeLaw.cdl | 96 - src/BRepFill/BRepFill_ShapeLaw.cxx | 32 +- src/BRepFill/BRepFill_ShapeLaw.hxx | 106 + src/BRepFill/BRepFill_Sweep.cdl | 204 - src/BRepFill/BRepFill_Sweep.cxx | 148 +- src/BRepFill/BRepFill_Sweep.hxx | 177 + src/BRepFill/BRepFill_TransitionStyle.hxx | 28 + src/BRepFill/BRepFill_TrimEdgeTool.cdl | 70 - src/BRepFill/BRepFill_TrimEdgeTool.cxx | 26 +- src/BRepFill/BRepFill_TrimEdgeTool.hxx | 88 + src/BRepFill/BRepFill_TrimShellCorner.cdl | 67 - src/BRepFill/BRepFill_TrimShellCorner.cxx | 76 +- src/BRepFill/BRepFill_TrimShellCorner.hxx | 97 + src/BRepFill/BRepFill_TrimSurfaceTool.cdl | 93 - src/BRepFill/BRepFill_TrimSurfaceTool.cxx | 49 +- src/BRepFill/BRepFill_TrimSurfaceTool.hxx | 97 + src/BRepFill/BRepFill_TypeOfContact.hxx | 28 + src/BRepFill/FILES | 93 +- src/BRepFilletAPI/BRepFilletAPI.cdl | 45 - .../BRepFilletAPI_LocalOperation.cdl | 143 - .../BRepFilletAPI_LocalOperation.cxx | 5 +- .../BRepFilletAPI_LocalOperation.hxx | 124 + .../BRepFilletAPI_MakeChamfer.cdl | 397 -- .../BRepFilletAPI_MakeChamfer.cxx | 15 +- .../BRepFilletAPI_MakeChamfer.hxx | 292 ++ .../BRepFilletAPI_MakeFillet.cdl | 536 --- .../BRepFilletAPI_MakeFillet.cxx | 22 +- .../BRepFilletAPI_MakeFillet.hxx | 394 ++ .../BRepFilletAPI_MakeFillet2d.cdl | 332 -- .../BRepFilletAPI_MakeFillet2d.cxx | 8 +- .../BRepFilletAPI_MakeFillet2d.hxx | 310 ++ src/BRepFilletAPI/FILES | 9 + src/BRepGProp/BRepGProp.cdl | 232 -- src/BRepGProp/BRepGProp.hxx | 227 ++ src/BRepGProp/BRepGProp_Cinert.cdl | 46 - src/BRepGProp/BRepGProp_Cinert.cxx | 6 +- src/BRepGProp/BRepGProp_Cinert.hxx | 74 + src/BRepGProp/BRepGProp_Domain.cdl | 70 - src/BRepGProp/BRepGProp_Domain.cxx | 6 +- src/BRepGProp/BRepGProp_Domain.hxx | 88 + src/BRepGProp/BRepGProp_EdgeTool.cdl | 81 - src/BRepGProp/BRepGProp_EdgeTool.cxx | 11 +- src/BRepGProp/BRepGProp_EdgeTool.hxx | 105 + src/BRepGProp/BRepGProp_Face.cdl | 176 - src/BRepGProp/BRepGProp_Face.cxx | 25 +- src/BRepGProp/BRepGProp_Face.hxx | 177 + src/BRepGProp/BRepGProp_Sinert.cdl | 62 - src/BRepGProp/BRepGProp_Sinert.cxx | 8 +- src/BRepGProp/BRepGProp_Sinert.hxx | 96 + src/BRepGProp/BRepGProp_TFunction.cdl | 126 - src/BRepGProp/BRepGProp_TFunction.cxx | 7 +- src/BRepGProp/BRepGProp_TFunction.hxx | 139 + src/BRepGProp/BRepGProp_UFunction.cdl | 129 - src/BRepGProp/BRepGProp_UFunction.cxx | 7 +- src/BRepGProp/BRepGProp_UFunction.hxx | 138 + src/BRepGProp/BRepGProp_Vinert.cdl | 195 - src/BRepGProp/BRepGProp_Vinert.cxx | 7 +- src/BRepGProp/BRepGProp_Vinert.hxx | 227 ++ src/BRepGProp/BRepGProp_VinertGK.cdl | 244 -- src/BRepGProp/BRepGProp_VinertGK.cxx | 14 +- src/BRepGProp/BRepGProp_VinertGK.hxx | 171 + src/BRepGProp/FILES | 27 +- .../BRepIntCurveSurface.cdl | 83 - .../BRepIntCurveSurface_Inter.cdl | 178 - .../BRepIntCurveSurface_Inter.cxx | 25 +- .../BRepIntCurveSurface_Inter.hxx | 167 + src/BRepIntCurveSurface/FILES | 2 + src/BRepLProp/BRepLProp.cdl | 59 - src/BRepLProp/BRepLProp.cxx | 9 +- src/BRepLProp/BRepLProp.hxx | 80 + src/BRepLProp/BRepLProp_CLProps.hxx | 113 + src/BRepLProp/BRepLProp_CLProps_0.cxx | 43 + src/BRepLProp/BRepLProp_CurveTool.cdl | 61 - src/BRepLProp/BRepLProp_CurveTool.cxx | 7 +- src/BRepLProp/BRepLProp_CurveTool.hxx | 91 + src/BRepLProp/BRepLProp_SLProps.hxx | 147 + src/BRepLProp/BRepLProp_SLProps_0.cxx | 37 + src/BRepLProp/BRepLProp_SurfaceTool.cdl | 51 - src/BRepLProp/BRepLProp_SurfaceTool.cxx | 7 +- src/BRepLProp/BRepLProp_SurfaceTool.hxx | 84 + src/BRepLProp/FILES | 10 + src/BRepLib/BRepLib.cdl | 324 -- src/BRepLib/BRepLib.cxx | 113 +- src/BRepLib/BRepLib.hxx | 219 ++ src/BRepLib/BRepLib_CheckCurveOnSurface.cdl | 175 - src/BRepLib/BRepLib_CheckCurveOnSurface.cxx | 40 +- src/BRepLib/BRepLib_CheckCurveOnSurface.hxx | 158 + src/BRepLib/BRepLib_Command.cdl | 64 - src/BRepLib/BRepLib_Command.cxx | 5 +- src/BRepLib/BRepLib_Command.hxx | 85 + src/BRepLib/BRepLib_EdgeError.hxx | 33 + src/BRepLib/BRepLib_FaceError.hxx | 32 + src/BRepLib/BRepLib_FindSurface.cdl | 109 - src/BRepLib/BRepLib_FindSurface.cxx | 57 +- src/BRepLib/BRepLib_FindSurface.hxx | 122 + src/BRepLib/BRepLib_FuseEdges.cdl | 148 - src/BRepLib/BRepLib_FuseEdges.cxx | 91 +- src/BRepLib/BRepLib_FuseEdges.hxx | 149 + src/BRepLib/BRepLib_MakeEdge.cdl | 356 -- src/BRepLib/BRepLib_MakeEdge.cxx | 36 +- src/BRepLib/BRepLib_MakeEdge.hxx | 212 ++ src/BRepLib/BRepLib_MakeEdge2d.cdl | 289 -- src/BRepLib/BRepLib_MakeEdge2d.cxx | 32 +- src/BRepLib/BRepLib_MakeEdge2d.hxx | 184 + src/BRepLib/BRepLib_MakeFace.cdl | 276 -- src/BRepLib/BRepLib_MakeFace.cxx | 55 +- src/BRepLib/BRepLib_MakeFace.hxx | 202 + src/BRepLib/BRepLib_MakePolygon.cdl | 132 - src/BRepLib/BRepLib_MakePolygon.cxx | 15 +- src/BRepLib/BRepLib_MakePolygon.hxx | 119 + src/BRepLib/BRepLib_MakeShape.cdl | 112 - src/BRepLib/BRepLib_MakeShape.cxx | 8 +- src/BRepLib/BRepLib_MakeShape.hxx | 105 + src/BRepLib/BRepLib_MakeShell.cdl | 89 - src/BRepLib/BRepLib_MakeShell.cxx | 29 +- src/BRepLib/BRepLib_MakeShell.hxx | 86 + src/BRepLib/BRepLib_MakeSolid.cdl | 120 - src/BRepLib/BRepLib_MakeSolid.cxx | 14 +- src/BRepLib/BRepLib_MakeSolid.hxx | 98 + src/BRepLib/BRepLib_MakeVertex.cdl | 36 - src/BRepLib/BRepLib_MakeVertex.cxx | 8 +- src/BRepLib/BRepLib_MakeVertex.hxx | 65 + src/BRepLib/BRepLib_MakeWire.cdl | 187 - src/BRepLib/BRepLib_MakeWire.cxx | 23 +- src/BRepLib/BRepLib_MakeWire.hxx | 159 + src/BRepLib/BRepLib_MakeWire_1.cxx | 31 +- src/BRepLib/BRepLib_ShapeModification.hxx | 30 + src/BRepLib/BRepLib_ShellError.hxx | 29 + src/BRepLib/BRepLib_WireError.hxx | 30 + src/BRepLib/FILES | 34 + src/BRepMAT2d/BRepMAT2d.cdl | 55 - src/BRepMAT2d/BRepMAT2d_BisectingLocus.cdl | 166 - src/BRepMAT2d/BRepMAT2d_BisectingLocus.cxx | 42 +- src/BRepMAT2d/BRepMAT2d_BisectingLocus.hxx | 158 + src/BRepMAT2d/BRepMAT2d_Explorer.cdl | 155 - src/BRepMAT2d/BRepMAT2d_Explorer.cxx | 58 +- src/BRepMAT2d/BRepMAT2d_Explorer.hxx | 141 + src/BRepMAT2d/BRepMAT2d_LinkTopoBilo.cdl | 106 - src/BRepMAT2d/BRepMAT2d_LinkTopoBilo.cxx | 41 +- src/BRepMAT2d/BRepMAT2d_LinkTopoBilo.hxx | 106 + src/BRepMAT2d/FILES | 10 +- src/BRepMesh/BRepMesh_CMPLRS.edl | 22 - src/BRepMesh/FILES | 89 +- src/BRepOffset/BRepOffset.cdl | 131 - src/BRepOffset/BRepOffset.cxx | 26 +- src/BRepOffset/BRepOffset.hxx | 86 + src/BRepOffset/BRepOffset_Analyse.cdl | 137 - src/BRepOffset/BRepOffset_Analyse.cxx | 36 +- src/BRepOffset/BRepOffset_Analyse.hxx | 121 + src/BRepOffset/BRepOffset_Error.hxx | 31 + src/BRepOffset/BRepOffset_Inter2d.cdl | 56 - src/BRepOffset/BRepOffset_Inter2d.cxx | 96 +- src/BRepOffset/BRepOffset_Inter2d.hxx | 71 + src/BRepOffset/BRepOffset_Inter3d.cdl | 124 - src/BRepOffset/BRepOffset_Inter3d.cxx | 29 +- src/BRepOffset/BRepOffset_Inter3d.hxx | 105 + src/BRepOffset/BRepOffset_Interval.cdl | 62 - src/BRepOffset/BRepOffset_Interval.cxx | 4 +- src/BRepOffset/BRepOffset_Interval.hxx | 79 + src/BRepOffset/BRepOffset_MakeLoops.cdl | 48 - src/BRepOffset/BRepOffset_MakeLoops.cxx | 19 +- src/BRepOffset/BRepOffset_MakeLoops.hxx | 72 + src/BRepOffset/BRepOffset_MakeOffset.cdl | 228 -- src/BRepOffset/BRepOffset_MakeOffset.cxx | 160 +- src/BRepOffset/BRepOffset_MakeOffset.hxx | 174 + src/BRepOffset/BRepOffset_Mode.hxx | 35 + src/BRepOffset/BRepOffset_Offset.cdl | 182 - src/BRepOffset/BRepOffset_Offset.cxx | 85 +- src/BRepOffset/BRepOffset_Offset.hxx | 128 + src/BRepOffset/BRepOffset_Status.hxx | 33 + src/BRepOffset/BRepOffset_Tool.cdl | 180 - src/BRepOffset/BRepOffset_Tool.cxx | 179 +- src/BRepOffset/BRepOffset_Tool.hxx | 146 + src/BRepOffset/BRepOffset_Type.hxx | 30 + src/BRepOffset/FILES | 34 +- src/BRepOffsetAPI/BRepOffsetAPI.cdl | 99 - .../BRepOffsetAPI_DraftAngle.cdl | 273 -- .../BRepOffsetAPI_DraftAngle.cxx | 65 +- .../BRepOffsetAPI_DraftAngle.hxx | 212 ++ .../BRepOffsetAPI_FindContigousEdges.cdl | 170 - .../BRepOffsetAPI_FindContigousEdges.cxx | 8 +- .../BRepOffsetAPI_FindContigousEdges.hxx | 184 + src/BRepOffsetAPI/BRepOffsetAPI_MakeDraft.cdl | 128 - src/BRepOffsetAPI/BRepOffsetAPI_MakeDraft.cxx | 8 +- src/BRepOffsetAPI/BRepOffsetAPI_MakeDraft.hxx | 118 + .../BRepOffsetAPI_MakeEvolved.cdl | 130 - .../BRepOffsetAPI_MakeEvolved.cxx | 9 +- .../BRepOffsetAPI_MakeEvolved.hxx | 133 + .../BRepOffsetAPI_MakeFilling.cdl | 256 -- .../BRepOffsetAPI_MakeFilling.cxx | 9 +- .../BRepOffsetAPI_MakeFilling.hxx | 243 ++ .../BRepOffsetAPI_MakeOffset.cdl | 115 - .../BRepOffsetAPI_MakeOffset.cxx | 23 +- .../BRepOffsetAPI_MakeOffset.hxx | 119 + .../BRepOffsetAPI_MakeOffsetShape.cdl | 149 - .../BRepOffsetAPI_MakeOffsetShape.cxx | 6 +- .../BRepOffsetAPI_MakeOffsetShape.hxx | 144 + src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cdl | 102 - src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cxx | 14 +- src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.hxx | 110 + .../BRepOffsetAPI_MakePipeShell.cdl | 362 -- .../BRepOffsetAPI_MakePipeShell.cxx | 10 +- .../BRepOffsetAPI_MakePipeShell.hxx | 312 ++ .../BRepOffsetAPI_MakeThickSolid.cdl | 112 - .../BRepOffsetAPI_MakeThickSolid.cxx | 8 +- .../BRepOffsetAPI_MakeThickSolid.hxx | 127 + .../BRepOffsetAPI_MiddlePath.cdl | 63 - .../BRepOffsetAPI_MiddlePath.cxx | 75 +- .../BRepOffsetAPI_MiddlePath.hxx | 79 + .../BRepOffsetAPI_NormalProjection.cdl | 169 - .../BRepOffsetAPI_NormalProjection.cxx | 8 +- .../BRepOffsetAPI_NormalProjection.hxx | 159 + src/BRepOffsetAPI/BRepOffsetAPI_Sewing.hxx | 25 + .../BRepOffsetAPI_ThruSections.cdl | 213 -- .../BRepOffsetAPI_ThruSections.cxx | 81 +- .../BRepOffsetAPI_ThruSections.hxx | 188 + src/BRepOffsetAPI/FILES | 27 + src/BRepPrim/BRepPrim.cdl | 73 - src/BRepPrim/BRepPrim_Builder.cdl | 175 - src/BRepPrim/BRepPrim_Builder.cxx | 30 +- src/BRepPrim/BRepPrim_Builder.hxx | 165 + src/BRepPrim/BRepPrim_Cone.cdl | 102 - src/BRepPrim/BRepPrim_Cone.cxx | 13 +- src/BRepPrim/BRepPrim_Cone.hxx | 113 + src/BRepPrim/BRepPrim_Cylinder.cdl | 85 - src/BRepPrim/BRepPrim_Cylinder.cxx | 13 +- src/BRepPrim/BRepPrim_Cylinder.hxx | 99 + src/BRepPrim/BRepPrim_Direction.hxx | 31 + src/BRepPrim/BRepPrim_FaceBuilder.cdl | 93 - src/BRepPrim/BRepPrim_FaceBuilder.cxx | 17 +- src/BRepPrim/BRepPrim_FaceBuilder.hxx | 103 + src/BRepPrim/BRepPrim_GWedge.cdl | 307 -- src/BRepPrim/BRepPrim_GWedge.cxx | 28 +- src/BRepPrim/BRepPrim_GWedge.hxx | 240 ++ src/BRepPrim/BRepPrim_OneAxis.cdl | 491 --- src/BRepPrim/BRepPrim_OneAxis.cxx | 25 +- src/BRepPrim/BRepPrim_OneAxis.hxx | 319 ++ src/BRepPrim/BRepPrim_Revolution.cdl | 76 - src/BRepPrim/BRepPrim_Revolution.cxx | 12 +- src/BRepPrim/BRepPrim_Revolution.hxx | 97 + src/BRepPrim/BRepPrim_Sphere.cdl | 62 - src/BRepPrim/BRepPrim_Sphere.cxx | 14 +- src/BRepPrim/BRepPrim_Sphere.hxx | 83 + src/BRepPrim/BRepPrim_Torus.cdl | 63 - src/BRepPrim/BRepPrim_Torus.cxx | 16 +- src/BRepPrim/BRepPrim_Torus.hxx | 85 + src/BRepPrim/BRepPrim_Wedge.cdl | 72 - src/BRepPrim/BRepPrim_Wedge.cxx | 6 +- src/BRepPrim/BRepPrim_Wedge.hxx | 96 + src/BRepPrim/FILES | 22 + src/BRepPrimAPI/BRepPrimAPI.cdl | 137 - src/BRepPrimAPI/BRepPrimAPI_MakeBox.cdl | 149 - src/BRepPrimAPI/BRepPrimAPI_MakeBox.cxx | 15 +- src/BRepPrimAPI/BRepPrimAPI_MakeBox.hxx | 131 + src/BRepPrimAPI/BRepPrimAPI_MakeCone.cdl | 112 - src/BRepPrimAPI/BRepPrimAPI_MakeCone.cxx | 12 +- src/BRepPrimAPI/BRepPrimAPI_MakeCone.hxx | 121 + src/BRepPrimAPI/BRepPrimAPI_MakeCylinder.cdl | 105 - src/BRepPrimAPI/BRepPrimAPI_MakeCylinder.cxx | 10 +- src/BRepPrimAPI/BRepPrimAPI_MakeCylinder.hxx | 113 + src/BRepPrimAPI/BRepPrimAPI_MakeHalfSpace.cdl | 72 - src/BRepPrimAPI/BRepPrimAPI_MakeHalfSpace.cxx | 10 +- src/BRepPrimAPI/BRepPrimAPI_MakeHalfSpace.hxx | 84 + src/BRepPrimAPI/BRepPrimAPI_MakeOneAxis.cdl | 67 - src/BRepPrimAPI/BRepPrimAPI_MakeOneAxis.cxx | 8 +- src/BRepPrimAPI/BRepPrimAPI_MakeOneAxis.hxx | 83 + src/BRepPrimAPI/BRepPrimAPI_MakePrism.cdl | 137 - src/BRepPrimAPI/BRepPrimAPI_MakePrism.cxx | 7 +- src/BRepPrimAPI/BRepPrimAPI_MakePrism.hxx | 123 + src/BRepPrimAPI/BRepPrimAPI_MakeRevol.cdl | 154 - src/BRepPrimAPI/BRepPrimAPI_MakeRevol.cxx | 8 +- src/BRepPrimAPI/BRepPrimAPI_MakeRevol.hxx | 133 + .../BRepPrimAPI_MakeRevolution.cdl | 114 - .../BRepPrimAPI_MakeRevolution.cxx | 10 +- .../BRepPrimAPI_MakeRevolution.hxx | 108 + src/BRepPrimAPI/BRepPrimAPI_MakeSphere.cdl | 145 - src/BRepPrimAPI/BRepPrimAPI_MakeSphere.cxx | 11 +- src/BRepPrimAPI/BRepPrimAPI_MakeSphere.hxx | 121 + src/BRepPrimAPI/BRepPrimAPI_MakeSweep.cdl | 49 - src/BRepPrimAPI/BRepPrimAPI_MakeSweep.cxx | 4 +- src/BRepPrimAPI/BRepPrimAPI_MakeSweep.hxx | 80 + src/BRepPrimAPI/BRepPrimAPI_MakeTorus.cdl | 129 - src/BRepPrimAPI/BRepPrimAPI_MakeTorus.cxx | 8 +- src/BRepPrimAPI/BRepPrimAPI_MakeTorus.hxx | 120 + src/BRepPrimAPI/BRepPrimAPI_MakeWedge.cdl | 110 - src/BRepPrimAPI/BRepPrimAPI_MakeWedge.cxx | 11 +- src/BRepPrimAPI/BRepPrimAPI_MakeWedge.hxx | 97 + src/BRepPrimAPI/FILES | 24 + src/BRepProj/BRepProj.cdl | 39 - src/BRepProj/BRepProj_Projection.cdl | 102 - src/BRepProj/BRepProj_Projection.cxx | 39 +- src/BRepProj/BRepProj_Projection.hxx | 106 + src/BRepProj/FILES | 3 + src/BRepSweep/BRepSweep.cdl | 66 - src/BRepSweep/BRepSweep_Builder.cdl | 83 - src/BRepSweep/BRepSweep_Builder.cxx | 6 +- src/BRepSweep/BRepSweep_Builder.hxx | 90 + src/BRepSweep/BRepSweep_Iterator.cdl | 75 - src/BRepSweep/BRepSweep_Iterator.cxx | 7 +- src/BRepSweep/BRepSweep_Iterator.hxx | 85 + .../BRepSweep_NumLinearRegularSweep.cdl | 351 -- .../BRepSweep_NumLinearRegularSweep.cxx | 25 +- .../BRepSweep_NumLinearRegularSweep.hxx | 239 ++ src/BRepSweep/BRepSweep_Prism.cdl | 115 - src/BRepSweep/BRepSweep_Prism.cxx | 13 +- src/BRepSweep/BRepSweep_Prism.hxx | 115 + src/BRepSweep/BRepSweep_Revol.cdl | 121 - src/BRepSweep/BRepSweep_Revol.cxx | 12 +- src/BRepSweep/BRepSweep_Revol.hxx | 117 + src/BRepSweep/BRepSweep_Rotation.cdl | 224 -- src/BRepSweep/BRepSweep_Rotation.cxx | 61 +- src/BRepSweep/BRepSweep_Rotation.hxx | 169 + src/BRepSweep/BRepSweep_Tool.cdl | 75 - src/BRepSweep/BRepSweep_Tool.cxx | 6 +- src/BRepSweep/BRepSweep_Tool.hxx | 88 + src/BRepSweep/BRepSweep_Translation.cdl | 215 -- src/BRepSweep/BRepSweep_Translation.cxx | 53 +- src/BRepSweep/BRepSweep_Translation.hxx | 161 + src/BRepSweep/BRepSweep_Trsf.cdl | 246 -- src/BRepSweep/BRepSweep_Trsf.cxx | 19 +- src/BRepSweep/BRepSweep_Trsf.hxx | 173 + src/BRepSweep/FILES | 20 + src/BRepTest/BRepTest.cdl | 101 - src/BRepTest/BRepTest.cxx | 6 +- src/BRepTest/BRepTest.hxx | 124 + src/BRepTest/FILES | 12 +- src/BRepToIGES/BRepToIGES.cdl | 39 - src/BRepToIGES/BRepToIGES_BREntity.cdl | 132 - src/BRepToIGES/BRepToIGES_BREntity.cxx | 30 +- src/BRepToIGES/BRepToIGES_BREntity.hxx | 142 + src/BRepToIGES/BRepToIGES_BRShell.cdl | 65 - src/BRepToIGES/BRepToIGES_BRShell.cxx | 49 +- src/BRepToIGES/BRepToIGES_BRShell.hxx | 84 + src/BRepToIGES/BRepToIGES_BRSolid.cdl | 75 - src/BRepToIGES/BRepToIGES_BRSolid.cxx | 24 +- src/BRepToIGES/BRepToIGES_BRSolid.hxx | 89 + src/BRepToIGES/BRepToIGES_BRWire.cdl | 167 - src/BRepToIGES/BRepToIGES_BRWire.cxx | 67 +- src/BRepToIGES/BRepToIGES_BRWire.hxx | 147 + src/BRepToIGES/FILES | 8 + src/BRepToIGESBRep/BRepToIGESBRep.cdl | 55 - src/BRepToIGESBRep/BRepToIGESBRep_Entity.cdl | 173 - src/BRepToIGESBRep/BRepToIGESBRep_Entity.cxx | 97 +- src/BRepToIGESBRep/BRepToIGESBRep_Entity.hxx | 146 + src/BRepToIGESBRep/FILES | 2 + src/BRepTools/BRepTools.cdl | 238 -- src/BRepTools/BRepTools.cxx | 70 +- src/BRepTools/BRepTools.hxx | 234 ++ src/BRepTools/BRepTools_GTrsfModification.cdl | 160 - src/BRepTools/BRepTools_GTrsfModification.cxx | 35 +- src/BRepTools/BRepTools_GTrsfModification.hxx | 132 + src/BRepTools/BRepTools_Modification.cdl | 160 - src/BRepTools/BRepTools_Modification.cxx | 12 +- src/BRepTools/BRepTools_Modification.hxx | 130 + src/BRepTools/BRepTools_Modifier.cdl | 97 - src/BRepTools/BRepTools_Modifier.cxx | 19 +- src/BRepTools/BRepTools_Modifier.hxx | 96 + .../BRepTools_NurbsConvertModification.cdl | 157 - .../BRepTools_NurbsConvertModification.cxx | 77 +- .../BRepTools_NurbsConvertModification.hxx | 131 + src/BRepTools/BRepTools_Quilt.cdl | 110 - src/BRepTools/BRepTools_Quilt.cxx | 30 +- src/BRepTools/BRepTools_Quilt.hxx | 125 + src/BRepTools/BRepTools_ReShape.cdl | 134 - src/BRepTools/BRepTools_ReShape.cxx | 31 +- src/BRepTools/BRepTools_ReShape.hxx | 154 + src/BRepTools/BRepTools_ShapeSet.cdl | 160 - src/BRepTools/BRepTools_ShapeSet.cxx | 64 +- src/BRepTools/BRepTools_ShapeSet.hxx | 162 + src/BRepTools/BRepTools_Substitution.cdl | 84 - src/BRepTools/BRepTools_Substitution.cxx | 12 +- src/BRepTools/BRepTools_Substitution.hxx | 99 + src/BRepTools/BRepTools_TrsfModification.cdl | 164 - src/BRepTools/BRepTools_TrsfModification.cxx | 29 +- src/BRepTools/BRepTools_TrsfModification.hxx | 136 + src/BRepTools/BRepTools_WireExplorer.cdl | 116 - src/BRepTools/BRepTools_WireExplorer.cxx | 32 +- src/BRepTools/BRepTools_WireExplorer.hxx | 126 + src/BRepTools/FILES | 25 +- src/BRepTopAdaptor/BRepTopAdaptor.cdl | 64 - .../BRepTopAdaptor_FClass2d.cdl | 77 - .../BRepTopAdaptor_FClass2d.cxx | 30 +- .../BRepTopAdaptor_FClass2d.hxx | 100 + src/BRepTopAdaptor/BRepTopAdaptor_HVertex.cdl | 90 - src/BRepTopAdaptor/BRepTopAdaptor_HVertex.cxx | 11 +- src/BRepTopAdaptor/BRepTopAdaptor_HVertex.hxx | 88 + .../BRepTopAdaptor_SeqOfPtr.hxx | 25 + src/BRepTopAdaptor/BRepTopAdaptor_Tool.cdl | 70 - src/BRepTopAdaptor/BRepTopAdaptor_Tool.cxx | 8 +- src/BRepTopAdaptor/BRepTopAdaptor_Tool.hxx | 87 + .../BRepTopAdaptor_TopolTool.cdl | 239 -- .../BRepTopAdaptor_TopolTool.cxx | 30 +- .../BRepTopAdaptor_TopolTool.hxx | 166 + src/BRepTopAdaptor/FILES | 12 +- src/BSplCLib/BSplCLib.cdl | 2486 ------------- src/BSplCLib/BSplCLib.cxx | 9 +- src/BSplCLib/BSplCLib.hxx | 1484 ++++++++ src/BSplCLib/BSplCLib_3.cxx | 9 +- src/BSplCLib/BSplCLib_KnotDistribution.hxx | 31 + src/BSplCLib/BSplCLib_MultDistribution.hxx | 38 + src/BSplCLib/FILES | 9 +- src/BSplSLib/BSplSLib.cdl | 714 ---- src/BSplSLib/BSplSLib.cxx | 16 +- src/BSplSLib/BSplSLib.hxx | 437 +++ src/BSplSLib/FILES | 7 +- src/BVH/FILES | 10 +- src/BiTgte/BiTgte.cdl | 63 - src/BiTgte/BiTgte_Blend.cdl | 357 -- src/BiTgte/BiTgte_Blend.cxx | 111 +- src/BiTgte/BiTgte_Blend.hxx | 228 ++ src/BiTgte/BiTgte_ContactType.hxx | 31 + src/BiTgte/BiTgte_CurveOnEdge.cdl | 241 -- src/BiTgte/BiTgte_CurveOnEdge.cxx | 23 +- src/BiTgte/BiTgte_CurveOnEdge.hxx | 188 + src/BiTgte/BiTgte_CurveOnVertex.cdl | 238 -- src/BiTgte/BiTgte_CurveOnVertex.cxx | 19 +- src/BiTgte/BiTgte_CurveOnVertex.hxx | 184 + src/BiTgte/BiTgte_HCurveOnEdge.hxx | 89 + src/BiTgte/BiTgte_HCurveOnEdge_0.cxx | 42 + src/BiTgte/BiTgte_HCurveOnVertex.hxx | 89 + src/BiTgte/BiTgte_HCurveOnVertex_0.cxx | 42 + src/BiTgte/FILES | 13 +- src/BinDrivers/BinDrivers.cdl | 45 - src/BinDrivers/BinDrivers.cxx | 18 +- src/BinDrivers/BinDrivers.hxx | 73 + .../BinDrivers_DocumentRetrievalDriver.cdl | 47 - .../BinDrivers_DocumentRetrievalDriver.cxx | 16 +- .../BinDrivers_DocumentRetrievalDriver.hxx | 76 + .../BinDrivers_DocumentStorageDriver.cdl | 41 - .../BinDrivers_DocumentStorageDriver.cxx | 13 +- .../BinDrivers_DocumentStorageDriver.hxx | 70 + src/BinDrivers/FILES | 6 + src/BinLDrivers/BinLDrivers.cdl | 47 - src/BinLDrivers/BinLDrivers.cxx | 20 +- src/BinLDrivers/BinLDrivers.hxx | 75 + .../BinLDrivers_DocumentRetrievalDriver.cdl | 127 - .../BinLDrivers_DocumentRetrievalDriver.cxx | 18 +- .../BinLDrivers_DocumentRetrievalDriver.hxx | 127 + .../BinLDrivers_DocumentSection.cdl | 80 - .../BinLDrivers_DocumentSection.hxx | 103 + .../BinLDrivers_DocumentStorageDriver.cdl | 113 - .../BinLDrivers_DocumentStorageDriver.cxx | 12 +- .../BinLDrivers_DocumentStorageDriver.hxx | 120 + src/BinLDrivers/FILES | 8 + src/BinMDF/BinMDF.cdl | 67 - src/BinMDF/BinMDF.cxx | 6 +- src/BinMDF/BinMDF.hxx | 84 + src/BinMDF/BinMDF_ADriver.cdl | 75 - src/BinMDF/BinMDF_ADriver.cxx | 10 +- src/BinMDF/BinMDF_ADriver.hxx | 97 + src/BinMDF/BinMDF_ADriverTable.cdl | 72 - src/BinMDF/BinMDF_ADriverTable.cxx | 11 +- src/BinMDF/BinMDF_ADriverTable.hxx | 99 + src/BinMDF/BinMDF_ReferenceDriver.cdl | 44 - src/BinMDF/BinMDF_ReferenceDriver.cxx | 8 +- src/BinMDF/BinMDF_ReferenceDriver.hxx | 72 + src/BinMDF/BinMDF_StringIdMap.hxx | 24 + src/BinMDF/BinMDF_TagSourceDriver.cdl | 43 - src/BinMDF/BinMDF_TagSourceDriver.cxx | 8 +- src/BinMDF/BinMDF_TagSourceDriver.hxx | 72 + src/BinMDF/FILES | 17 +- src/BinMDataStd/BinMDataStd.cdl | 97 - src/BinMDataStd/BinMDataStd.cxx | 45 +- src/BinMDataStd/BinMDataStd.hxx | 118 + .../BinMDataStd_AsciiStringDriver.cdl | 44 - .../BinMDataStd_AsciiStringDriver.cxx | 12 +- .../BinMDataStd_AsciiStringDriver.hxx | 74 + .../BinMDataStd_BooleanArrayDriver.cdl | 44 - .../BinMDataStd_BooleanArrayDriver.cxx | 11 +- .../BinMDataStd_BooleanArrayDriver.hxx | 72 + .../BinMDataStd_BooleanListDriver.cdl | 44 - .../BinMDataStd_BooleanListDriver.cxx | 9 +- .../BinMDataStd_BooleanListDriver.hxx | 72 + .../BinMDataStd_ByteArrayDriver.cdl | 44 - .../BinMDataStd_ByteArrayDriver.cxx | 14 +- .../BinMDataStd_ByteArrayDriver.hxx | 72 + src/BinMDataStd/BinMDataStd_CommentDriver.cdl | 42 - src/BinMDataStd/BinMDataStd_CommentDriver.cxx | 8 +- src/BinMDataStd/BinMDataStd_CommentDriver.hxx | 72 + .../BinMDataStd_DirectoryDriver.cdl | 45 - .../BinMDataStd_DirectoryDriver.cxx | 12 +- .../BinMDataStd_DirectoryDriver.hxx | 72 + .../BinMDataStd_ExpressionDriver.cdl | 42 - .../BinMDataStd_ExpressionDriver.cxx | 7 +- .../BinMDataStd_ExpressionDriver.hxx | 72 + .../BinMDataStd_ExtStringArrayDriver.cdl | 44 - .../BinMDataStd_ExtStringArrayDriver.cxx | 12 +- .../BinMDataStd_ExtStringArrayDriver.hxx | 72 + .../BinMDataStd_ExtStringListDriver.cdl | 44 - .../BinMDataStd_ExtStringListDriver.cxx | 9 +- .../BinMDataStd_ExtStringListDriver.hxx | 72 + .../BinMDataStd_IntPackedMapDriver.cdl | 43 - .../BinMDataStd_IntPackedMapDriver.cxx | 20 +- .../BinMDataStd_IntPackedMapDriver.hxx | 74 + .../BinMDataStd_IntegerArrayDriver.cdl | 44 - .../BinMDataStd_IntegerArrayDriver.cxx | 12 +- .../BinMDataStd_IntegerArrayDriver.hxx | 72 + src/BinMDataStd/BinMDataStd_IntegerDriver.cdl | 44 - src/BinMDataStd/BinMDataStd_IntegerDriver.cxx | 8 +- src/BinMDataStd/BinMDataStd_IntegerDriver.hxx | 72 + .../BinMDataStd_IntegerListDriver.cdl | 44 - .../BinMDataStd_IntegerListDriver.cxx | 9 +- .../BinMDataStd_IntegerListDriver.hxx | 72 + src/BinMDataStd/BinMDataStd_NameDriver.cdl | 44 - src/BinMDataStd/BinMDataStd_NameDriver.cxx | 8 +- src/BinMDataStd/BinMDataStd_NameDriver.hxx | 74 + .../BinMDataStd_NamedDataDriver.cdl | 45 - .../BinMDataStd_NamedDataDriver.cxx | 30 +- .../BinMDataStd_NamedDataDriver.hxx | 72 + .../BinMDataStd_NoteBookDriver.cdl | 45 - .../BinMDataStd_NoteBookDriver.cxx | 12 +- .../BinMDataStd_NoteBookDriver.hxx | 72 + .../BinMDataStd_RealArrayDriver.cdl | 44 - .../BinMDataStd_RealArrayDriver.cxx | 12 +- .../BinMDataStd_RealArrayDriver.hxx | 72 + src/BinMDataStd/BinMDataStd_RealDriver.cdl | 44 - src/BinMDataStd/BinMDataStd_RealDriver.cxx | 8 +- src/BinMDataStd/BinMDataStd_RealDriver.hxx | 72 + .../BinMDataStd_RealListDriver.cdl | 44 - .../BinMDataStd_RealListDriver.cxx | 9 +- .../BinMDataStd_RealListDriver.hxx | 72 + .../BinMDataStd_ReferenceArrayDriver.cdl | 44 - .../BinMDataStd_ReferenceArrayDriver.cxx | 7 +- .../BinMDataStd_ReferenceArrayDriver.hxx | 72 + .../BinMDataStd_ReferenceListDriver.cdl | 44 - .../BinMDataStd_ReferenceListDriver.cxx | 9 +- .../BinMDataStd_ReferenceListDriver.hxx | 72 + .../BinMDataStd_RelationDriver.cdl | 42 - .../BinMDataStd_RelationDriver.cxx | 7 +- .../BinMDataStd_RelationDriver.hxx | 72 + src/BinMDataStd/BinMDataStd_TickDriver.cdl | 49 - src/BinMDataStd/BinMDataStd_TickDriver.cxx | 10 +- src/BinMDataStd/BinMDataStd_TickDriver.hxx | 72 + .../BinMDataStd_TreeNodeDriver.cdl | 42 - .../BinMDataStd_TreeNodeDriver.cxx | 10 +- .../BinMDataStd_TreeNodeDriver.hxx | 72 + .../BinMDataStd_UAttributeDriver.cdl | 42 - .../BinMDataStd_UAttributeDriver.cxx | 8 +- .../BinMDataStd_UAttributeDriver.hxx | 72 + .../BinMDataStd_VariableDriver.cdl | 42 - .../BinMDataStd_VariableDriver.cxx | 9 +- .../BinMDataStd_VariableDriver.hxx | 72 + src/BinMDataStd/FILES | 54 + src/BinMDataXtd/BinMDataXtd.cdl | 56 - src/BinMDataXtd/BinMDataXtd.cxx | 12 +- src/BinMDataXtd/BinMDataXtd.hxx | 82 + src/BinMDataXtd/BinMDataXtd_AxisDriver.cdl | 49 - src/BinMDataXtd/BinMDataXtd_AxisDriver.cxx | 12 +- src/BinMDataXtd/BinMDataXtd_AxisDriver.hxx | 72 + .../BinMDataXtd_ConstraintDriver.cdl | 44 - .../BinMDataXtd_ConstraintDriver.cxx | 9 +- .../BinMDataXtd_ConstraintDriver.hxx | 72 + .../BinMDataXtd_GeometryDriver.cdl | 44 - .../BinMDataXtd_GeometryDriver.cxx | 6 +- .../BinMDataXtd_GeometryDriver.hxx | 72 + .../BinMDataXtd_PatternStdDriver.cdl | 44 - .../BinMDataXtd_PatternStdDriver.cxx | 9 +- .../BinMDataXtd_PatternStdDriver.hxx | 72 + .../BinMDataXtd_PlacementDriver.cdl | 48 - .../BinMDataXtd_PlacementDriver.cxx | 12 +- .../BinMDataXtd_PlacementDriver.hxx | 72 + src/BinMDataXtd/BinMDataXtd_PlaneDriver.cdl | 47 - src/BinMDataXtd/BinMDataXtd_PlaneDriver.cxx | 12 +- src/BinMDataXtd/BinMDataXtd_PlaneDriver.hxx | 72 + src/BinMDataXtd/BinMDataXtd_PointDriver.cdl | 47 - src/BinMDataXtd/BinMDataXtd_PointDriver.cxx | 12 +- src/BinMDataXtd/BinMDataXtd_PointDriver.hxx | 72 + src/BinMDataXtd/BinMDataXtd_ShapeDriver.cdl | 47 - src/BinMDataXtd/BinMDataXtd_ShapeDriver.cxx | 12 +- src/BinMDataXtd/BinMDataXtd_ShapeDriver.hxx | 72 + src/BinMDataXtd/FILES | 18 + src/BinMDocStd/BinMDocStd.cdl | 35 - src/BinMDocStd/BinMDocStd.cxx | 6 +- src/BinMDocStd/BinMDocStd.hxx | 63 + src/BinMDocStd/BinMDocStd_XLinkDriver.cdl | 44 - src/BinMDocStd/BinMDocStd_XLinkDriver.cxx | 12 +- src/BinMDocStd/BinMDocStd_XLinkDriver.hxx | 72 + src/BinMDocStd/FILES | 4 + src/BinMFunction/BinMFunction.cdl | 35 - src/BinMFunction/BinMFunction.cxx | 6 +- src/BinMFunction/BinMFunction.hxx | 67 + .../BinMFunction_FunctionDriver.cdl | 45 - .../BinMFunction_FunctionDriver.cxx | 12 +- .../BinMFunction_FunctionDriver.hxx | 72 + .../BinMFunction_GraphNodeDriver.cdl | 47 - .../BinMFunction_GraphNodeDriver.cxx | 11 +- .../BinMFunction_GraphNodeDriver.hxx | 72 + src/BinMFunction/BinMFunction_ScopeDriver.cdl | 47 - src/BinMFunction/BinMFunction_ScopeDriver.cxx | 13 +- src/BinMFunction/BinMFunction_ScopeDriver.hxx | 72 + src/BinMFunction/FILES | 8 + src/BinMNaming/BinMNaming.cdl | 41 - src/BinMNaming/BinMNaming.cxx | 4 +- src/BinMNaming/BinMNaming.hxx | 70 + .../BinMNaming_NamedShapeDriver.cdl | 77 - .../BinMNaming_NamedShapeDriver.cxx | 21 +- .../BinMNaming_NamedShapeDriver.hxx | 104 + src/BinMNaming/BinMNaming_NamingDriver.cdl | 45 - src/BinMNaming/BinMNaming_NamingDriver.cxx | 26 +- src/BinMNaming/BinMNaming_NamingDriver.hxx | 72 + src/BinMNaming/FILES | 7 + src/BinMPrsStd/BinMPrsStd.cdl | 37 - src/BinMPrsStd/BinMPrsStd.cxx | 6 +- src/BinMPrsStd/BinMPrsStd.hxx | 65 + .../BinMPrsStd_AISPresentationDriver.cdl | 44 - .../BinMPrsStd_AISPresentationDriver.cxx | 12 +- .../BinMPrsStd_AISPresentationDriver.hxx | 72 + src/BinMPrsStd/BinMPrsStd_PositionDriver.cdl | 43 - src/BinMPrsStd/BinMPrsStd_PositionDriver.cxx | 8 +- src/BinMPrsStd/BinMPrsStd_PositionDriver.hxx | 72 + src/BinMPrsStd/FILES | 6 + src/BinMXCAFDoc/BinMXCAFDoc.cdl | 53 - src/BinMXCAFDoc/BinMXCAFDoc.cxx | 22 +- src/BinMXCAFDoc/BinMXCAFDoc.hxx | 91 + src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.cdl | 42 - src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.cxx | 7 +- src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.hxx | 72 + .../BinMXCAFDoc_CentroidDriver.cdl | 42 - .../BinMXCAFDoc_CentroidDriver.cxx | 7 +- .../BinMXCAFDoc_CentroidDriver.hxx | 72 + src/BinMXCAFDoc/BinMXCAFDoc_ColorDriver.cdl | 42 - src/BinMXCAFDoc/BinMXCAFDoc_ColorDriver.cxx | 7 +- src/BinMXCAFDoc/BinMXCAFDoc_ColorDriver.hxx | 72 + .../BinMXCAFDoc_ColorToolDriver.cdl | 43 - .../BinMXCAFDoc_ColorToolDriver.cxx | 7 +- .../BinMXCAFDoc_ColorToolDriver.hxx | 72 + src/BinMXCAFDoc/BinMXCAFDoc_DatumDriver.cdl | 42 - src/BinMXCAFDoc/BinMXCAFDoc_DatumDriver.cxx | 8 +- src/BinMXCAFDoc/BinMXCAFDoc_DatumDriver.hxx | 72 + src/BinMXCAFDoc/BinMXCAFDoc_DimTolDriver.cdl | 42 - src/BinMXCAFDoc/BinMXCAFDoc_DimTolDriver.cxx | 8 +- src/BinMXCAFDoc/BinMXCAFDoc_DimTolDriver.hxx | 72 + .../BinMXCAFDoc_DimTolToolDriver.cdl | 42 - .../BinMXCAFDoc_DimTolToolDriver.cxx | 7 +- .../BinMXCAFDoc_DimTolToolDriver.hxx | 72 + .../BinMXCAFDoc_DocumentToolDriver.cdl | 43 - .../BinMXCAFDoc_DocumentToolDriver.cxx | 7 +- .../BinMXCAFDoc_DocumentToolDriver.hxx | 72 + .../BinMXCAFDoc_GraphNodeDriver.cdl | 42 - .../BinMXCAFDoc_GraphNodeDriver.cxx | 7 +- .../BinMXCAFDoc_GraphNodeDriver.hxx | 72 + .../BinMXCAFDoc_LayerToolDriver.cdl | 43 - .../BinMXCAFDoc_LayerToolDriver.cxx | 7 +- .../BinMXCAFDoc_LayerToolDriver.hxx | 72 + .../BinMXCAFDoc_LocationDriver.cdl | 59 - .../BinMXCAFDoc_LocationDriver.cxx | 21 +- .../BinMXCAFDoc_LocationDriver.hxx | 83 + .../BinMXCAFDoc_MaterialDriver.cdl | 42 - .../BinMXCAFDoc_MaterialDriver.cxx | 8 +- .../BinMXCAFDoc_MaterialDriver.hxx | 72 + .../BinMXCAFDoc_MaterialToolDriver.cdl | 42 - .../BinMXCAFDoc_MaterialToolDriver.cxx | 7 +- .../BinMXCAFDoc_MaterialToolDriver.hxx | 72 + .../BinMXCAFDoc_ShapeToolDriver.cdl | 43 - .../BinMXCAFDoc_ShapeToolDriver.cxx | 7 +- .../BinMXCAFDoc_ShapeToolDriver.hxx | 72 + src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.cdl | 42 - src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.cxx | 7 +- src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.hxx | 72 + src/BinMXCAFDoc/FILES | 33 + src/BinObjMgt/BinObjMgt.cdl | 44 - src/BinObjMgt/BinObjMgt_Persistent.cdl | 405 -- src/BinObjMgt/BinObjMgt_Persistent.cxx | 12 +- src/BinObjMgt/BinObjMgt_Persistent.hxx | 372 ++ src/BinObjMgt/BinObjMgt_RRelocationTable.hxx | 24 + src/BinObjMgt/BinObjMgt_SRelocationTable.hxx | 24 + src/BinObjMgt/FILES | 7 +- src/BinTools/BinTools.cdl | 70 - src/BinTools/BinTools.cxx | 4 +- src/BinTools/BinTools.hxx | 88 + src/BinTools/BinTools_Curve2dSet.cdl | 88 - src/BinTools/BinTools_Curve2dSet.cxx | 35 +- src/BinTools/BinTools_Curve2dSet.hxx | 98 + src/BinTools/BinTools_CurveSet.cdl | 84 - src/BinTools/BinTools_CurveSet.cxx | 30 +- src/BinTools/BinTools_CurveSet.hxx | 96 + src/BinTools/BinTools_LocationSet.cdl | 78 - src/BinTools/BinTools_LocationSet.cxx | 5 +- src/BinTools/BinTools_LocationSet.hxx | 95 + src/BinTools/BinTools_LocationSetPtr.hxx | 22 + src/BinTools/BinTools_ShapeSet.cdl | 208 -- src/BinTools/BinTools_ShapeSet.cxx | 58 +- src/BinTools/BinTools_ShapeSet.hxx | 206 + src/BinTools/BinTools_SurfaceSet.cdl | 84 - src/BinTools/BinTools_SurfaceSet.cxx | 37 +- src/BinTools/BinTools_SurfaceSet.hxx | 96 + src/BinTools/FILES | 13 + src/BinXCAFDrivers/BinXCAFDrivers.cdl | 33 - src/BinXCAFDrivers/BinXCAFDrivers.cxx | 14 +- src/BinXCAFDrivers/BinXCAFDrivers.hxx | 69 + ...BinXCAFDrivers_DocumentRetrievalDriver.cdl | 32 - ...BinXCAFDrivers_DocumentRetrievalDriver.cxx | 6 +- ...BinXCAFDrivers_DocumentRetrievalDriver.hxx | 65 + .../BinXCAFDrivers_DocumentStorageDriver.cdl | 32 - .../BinXCAFDrivers_DocumentStorageDriver.cxx | 6 +- .../BinXCAFDrivers_DocumentStorageDriver.hxx | 65 + src/BinXCAFDrivers/FILES | 6 + src/Bisector/Bisector.cdl | 61 - src/Bisector/Bisector.cxx | 4 +- src/Bisector/Bisector.hxx | 83 + src/Bisector/Bisector_Bisec.cdl | 129 - src/Bisector/Bisector_Bisec.cxx | 22 +- src/Bisector/Bisector_Bisec.hxx | 113 + src/Bisector/Bisector_BisecAna.cdl | 222 -- src/Bisector/Bisector_BisecAna.cxx | 42 +- src/Bisector/Bisector_BisecAna.hxx | 172 + src/Bisector/Bisector_BisecCC.cdl | 308 -- src/Bisector/Bisector_BisecCC.cxx | 35 +- src/Bisector/Bisector_BisecCC.hxx | 251 ++ src/Bisector/Bisector_BisecPC.cdl | 270 -- src/Bisector/Bisector_BisecPC.cxx | 29 +- src/Bisector/Bisector_BisecPC.hxx | 217 ++ src/Bisector/Bisector_Curve.cdl | 57 - src/Bisector/Bisector_Curve.cxx | 5 +- src/Bisector/Bisector_Curve.hxx | 82 + src/Bisector/Bisector_FunctionH.cdl | 56 - src/Bisector/Bisector_FunctionH.cxx | 5 +- src/Bisector/Bisector_FunctionH.hxx | 81 + src/Bisector/Bisector_FunctionInter.cdl | 63 - src/Bisector/Bisector_FunctionInter.cxx | 8 +- src/Bisector/Bisector_FunctionInter.hxx | 81 + src/Bisector/Bisector_Inter.cdl | 89 - src/Bisector/Bisector_Inter.cxx | 22 +- src/Bisector/Bisector_Inter.hxx | 91 + src/Bisector/Bisector_PointOnBis.cdl | 77 - src/Bisector/Bisector_PointOnBis.cxx | 3 +- src/Bisector/Bisector_PointOnBis.hxx | 97 + src/Bisector/Bisector_PolyBis.cdl | 61 - src/Bisector/Bisector_PolyBis.cxx | 7 +- src/Bisector/Bisector_PolyBis.hxx | 83 + src/Bisector/FILES | 22 + src/Blend/Blend.cdl | 86 - src/Blend/Blend_AppFunction.cdl | 266 -- src/Blend/Blend_AppFunction.cxx | 7 +- src/Blend/Blend_AppFunction.hxx | 194 + src/Blend/Blend_CSFunction.cdl | 336 -- src/Blend/Blend_CSFunction.cxx | 10 +- src/Blend/Blend_CSFunction.hxx | 199 + src/Blend/Blend_CSWalking.cdl | 191 - src/Blend/Blend_CurvPointFuncInv.cdl | 100 - src/Blend/Blend_CurvPointFuncInv.cxx | 6 +- src/Blend/Blend_CurvPointFuncInv.hxx | 114 + src/Blend/Blend_DecrochStatus.hxx | 29 + src/Blend/Blend_FuncInv.cdl | 120 - src/Blend/Blend_FuncInv.cxx | 5 +- src/Blend/Blend_FuncInv.hxx | 118 + src/Blend/Blend_Function.cdl | 333 -- src/Blend/Blend_Function.cxx | 9 +- src/Blend/Blend_Function.hxx | 200 + src/Blend/Blend_Point.cdl | 354 -- src/Blend/Blend_Point.cxx | 7 +- src/Blend/Blend_Point.hxx | 197 + src/Blend/Blend_RstRstFunction.cdl | 325 -- src/Blend/Blend_RstRstFunction.cxx | 10 +- src/Blend/Blend_RstRstFunction.hxx | 233 ++ src/Blend/Blend_Status.hxx | 33 + src/Blend/Blend_SurfCurvFuncInv.cdl | 101 - src/Blend/Blend_SurfCurvFuncInv.cxx | 6 +- src/Blend/Blend_SurfCurvFuncInv.hxx | 116 + src/Blend/Blend_SurfPointFuncInv.cdl | 100 - src/Blend/Blend_SurfPointFuncInv.cxx | 6 +- src/Blend/Blend_SurfPointFuncInv.hxx | 115 + src/Blend/Blend_SurfRstFunction.cdl | 314 -- src/Blend/Blend_SurfRstFunction.cxx | 10 +- src/Blend/Blend_SurfRstFunction.hxx | 227 ++ src/Blend/Blend_Walking.cdl | 302 -- src/Blend/FILES | 35 +- src/BlendFunc/BlendFunc.cdl | 96 - src/BlendFunc/BlendFunc.cxx | 25 +- src/BlendFunc/BlendFunc.hxx | 113 + src/BlendFunc/BlendFunc_CSCircular.cdl | 353 -- src/BlendFunc/BlendFunc_CSCircular.cxx | 24 +- src/BlendFunc/BlendFunc_CSCircular.hxx | 234 ++ src/BlendFunc/BlendFunc_CSConstRad.cdl | 333 -- src/BlendFunc/BlendFunc_CSConstRad.cxx | 23 +- src/BlendFunc/BlendFunc_CSConstRad.hxx | 221 ++ src/BlendFunc/BlendFunc_ChAsym.cdl | 280 -- src/BlendFunc/BlendFunc_ChAsym.cxx | 15 +- src/BlendFunc/BlendFunc_ChAsym.hxx | 219 ++ src/BlendFunc/BlendFunc_ChAsymInv.cdl | 125 - src/BlendFunc/BlendFunc_ChAsymInv.cxx | 8 +- src/BlendFunc/BlendFunc_ChAsymInv.hxx | 117 + src/BlendFunc/BlendFunc_ChamfInv.cdl | 110 - src/BlendFunc/BlendFunc_ChamfInv.cxx | 8 +- src/BlendFunc/BlendFunc_ChamfInv.hxx | 108 + src/BlendFunc/BlendFunc_Chamfer.cdl | 299 -- src/BlendFunc/BlendFunc_Chamfer.cxx | 12 +- src/BlendFunc/BlendFunc_Chamfer.hxx | 195 + src/BlendFunc/BlendFunc_ConstRad.cdl | 322 -- src/BlendFunc/BlendFunc_ConstRad.cxx | 24 +- src/BlendFunc/BlendFunc_ConstRad.hxx | 273 ++ src/BlendFunc/BlendFunc_ConstRadInv.cdl | 108 - src/BlendFunc/BlendFunc_ConstRadInv.cxx | 8 +- src/BlendFunc/BlendFunc_ConstRadInv.hxx | 107 + src/BlendFunc/BlendFunc_Corde.cdl | 152 - src/BlendFunc/BlendFunc_Corde.cxx | 15 +- src/BlendFunc/BlendFunc_Corde.hxx | 134 + src/BlendFunc/BlendFunc_EvolRad.cdl | 323 -- src/BlendFunc/BlendFunc_EvolRad.cxx | 28 +- src/BlendFunc/BlendFunc_EvolRad.hxx | 277 ++ src/BlendFunc/BlendFunc_EvolRadInv.cdl | 110 - src/BlendFunc/BlendFunc_EvolRadInv.cxx | 10 +- src/BlendFunc/BlendFunc_EvolRadInv.hxx | 109 + src/BlendFunc/BlendFunc_Ruled.cdl | 308 -- src/BlendFunc/BlendFunc_Ruled.cxx | 16 +- src/BlendFunc/BlendFunc_Ruled.hxx | 204 + src/BlendFunc/BlendFunc_RuledInv.cdl | 103 - src/BlendFunc/BlendFunc_RuledInv.cxx | 6 +- src/BlendFunc/BlendFunc_RuledInv.hxx | 102 + src/BlendFunc/BlendFunc_SectionShape.hxx | 29 + src/BlendFunc/BlendFunc_Tensor.cdl | 70 - src/BlendFunc/BlendFunc_Tensor.cxx | 8 +- src/BlendFunc/BlendFunc_Tensor.hxx | 97 + src/BlendFunc/FILES | 32 + src/Bnd/Bnd.cdl | 100 - src/Bnd/Bnd_B2d.hxx | 121 + src/Bnd/Bnd_B2d_0.cxx | 30 + src/Bnd/Bnd_B2f.hxx | 122 + src/Bnd/Bnd_B2f_0.cxx | 30 + src/Bnd/Bnd_B2x.cdl | 151 - src/Bnd/Bnd_B3d.hxx | 122 + src/Bnd/Bnd_B3d_0.cxx | 31 + src/Bnd/Bnd_B3f.hxx | 123 + src/Bnd/Bnd_B3f_0.cxx | 31 + src/Bnd/Bnd_B3x.cdl | 160 - src/Bnd/Bnd_BoundSortBox.cdl | 142 - src/Bnd/Bnd_BoundSortBox.cxx | 18 +- src/Bnd/Bnd_BoundSortBox.hxx | 152 + src/Bnd/Bnd_BoundSortBox2d.cdl | 120 - src/Bnd/Bnd_BoundSortBox2d.cxx | 13 +- src/Bnd/Bnd_BoundSortBox2d.hxx | 134 + src/Bnd/Bnd_Box.cdl | 318 -- src/Bnd/Bnd_Box.cxx | 9 +- src/Bnd/Bnd_Box.hxx | 284 ++ src/Bnd/Bnd_Box2d.cdl | 240 -- src/Bnd/Bnd_Box2d.cxx | 12 +- src/Bnd/Bnd_Box2d.hxx | 217 ++ src/Bnd/Bnd_Sphere.cdl | 96 - src/Bnd/Bnd_Sphere.hxx | 118 + src/Bnd/FILES | 31 +- src/BndLib/BndLib.cdl | 190 - src/BndLib/BndLib.cxx | 23 +- src/BndLib/BndLib.hxx | 213 ++ src/BndLib/BndLib_Add2dCurve.cdl | 122 - src/BndLib/BndLib_Add2dCurve.cxx | 32 +- src/BndLib/BndLib_Add2dCurve.hxx | 141 + src/BndLib/BndLib_Add3dCurve.cdl | 89 - src/BndLib/BndLib_Add3dCurve.cxx | 25 +- src/BndLib/BndLib_Add3dCurve.hxx | 118 + src/BndLib/BndLib_AddSurface.cdl | 96 - src/BndLib/BndLib_AddSurface.cxx | 23 +- src/BndLib/BndLib_AddSurface.hxx | 125 + src/BndLib/FILES | 8 + src/CDF/CDF.cdl | 78 - src/CDF/CDF.cxx | 3 +- src/CDF/CDF.hxx | 83 + src/CDF/CDF_Application.cdl | 224 -- src/CDF/CDF_Application.cxx | 27 +- src/CDF/CDF_Application.hxx | 196 + src/CDF/CDF_Directory.cdl | 78 - src/CDF/CDF_Directory.cxx | 7 +- src/CDF/CDF_Directory.hxx | 93 + src/CDF/CDF_DirectoryIterator.cdl | 50 - src/CDF/CDF_DirectoryIterator.cxx | 7 +- src/CDF/CDF_DirectoryIterator.hxx | 79 + src/CDF/CDF_FWOSDriver.cdl | 68 - src/CDF/CDF_FWOSDriver.cxx | 16 +- src/CDF/CDF_FWOSDriver.hxx | 87 + src/CDF/CDF_MetaDataDriver.cdl | 147 - src/CDF/CDF_MetaDataDriver.cxx | 11 +- src/CDF/CDF_MetaDataDriver.hxx | 136 + src/CDF/CDF_MetaDataDriverError.hxx | 37 + src/CDF/CDF_MetaDataDriverFactory.cdl | 25 - src/CDF/CDF_MetaDataDriverFactory.cxx | 5 +- src/CDF/CDF_MetaDataDriverFactory.hxx | 62 + src/CDF/CDF_Session.cdl | 75 - src/CDF/CDF_Session.cxx | 17 +- src/CDF/CDF_Session.hxx | 94 + src/CDF/CDF_Store.cdl | 197 - src/CDF/CDF_Store.cxx | 17 +- src/CDF/CDF_Store.hxx | 198 + src/CDF/CDF_StoreList.cdl | 65 - src/CDF/CDF_StoreList.cxx | 25 +- src/CDF/CDF_StoreList.hxx | 90 + src/CDF/CDF_StoreSetNameStatus.hxx | 28 + src/CDF/CDF_SubComponentStatus.hxx | 29 + src/CDF/CDF_Timer.cdl | 35 - src/CDF/CDF_Timer.cxx | 5 +- src/CDF/CDF_Timer.hxx | 71 + src/CDF/CDF_TryStoreStatus.hxx | 29 + src/CDF/CDF_TypeOfActivation.hxx | 28 + src/CDF/FILES | 28 + src/CDM/CDM.cdl | 72 - src/CDM/CDM_Application.cdl | 74 - src/CDM/CDM_Application.cxx | 11 +- src/CDM/CDM_Application.hxx | 97 + src/CDM/CDM_COutMessageDriver.cdl | 22 - src/CDM/CDM_COutMessageDriver.cxx | 6 +- src/CDM/CDM_COutMessageDriver.hxx | 61 + src/CDM/CDM_CanCloseStatus.hxx | 30 + src/CDM/CDM_Document.cdl | 532 --- src/CDM/CDM_Document.cxx | 30 +- src/CDM/CDM_Document.hxx | 454 +++ src/CDM/CDM_DocumentPointer.hxx | 23 + src/CDM/CDM_MessageDriver.cdl | 24 - src/CDM/CDM_MessageDriver.cxx | 4 +- src/CDM/CDM_MessageDriver.hxx | 62 + src/CDM/CDM_MetaData.cdl | 120 - src/CDM/CDM_MetaData.cxx | 9 +- src/CDM/CDM_MetaData.hxx | 139 + src/CDM/CDM_NamesDirectory.hxx | 25 + src/CDM/CDM_NullMessageDriver.cdl | 27 - src/CDM/CDM_NullMessageDriver.cxx | 5 +- src/CDM/CDM_NullMessageDriver.hxx | 64 + src/CDM/CDM_Reference.cdl | 93 - src/CDM/CDM_Reference.cxx | 6 +- src/CDM/CDM_Reference.hxx | 113 + src/CDM/CDM_ReferenceIterator.cdl | 43 - src/CDM/CDM_ReferenceIterator.cxx | 5 +- src/CDM/CDM_ReferenceIterator.hxx | 75 + src/CDM/FILES | 35 +- src/CPnts/CPnts.cdl | 49 - src/CPnts/CPnts_AbscissaPoint.cdl | 200 - src/CPnts/CPnts_AbscissaPoint.cxx | 23 +- src/CPnts/CPnts_AbscissaPoint.hxx | 187 + src/CPnts/CPnts_MyGaussFunction.cdl | 45 - src/CPnts/CPnts_MyGaussFunction.cxx | 3 +- src/CPnts/CPnts_MyGaussFunction.hxx | 74 + src/CPnts/CPnts_MyRootFunction.cdl | 69 - src/CPnts/CPnts_MyRootFunction.cxx | 6 +- src/CPnts/CPnts_MyRootFunction.hxx | 93 + src/CPnts/CPnts_UniformDeflection.cdl | 191 - src/CPnts/CPnts_UniformDeflection.cxx | 16 +- src/CPnts/CPnts_UniformDeflection.hxx | 175 + src/CPnts/FILES | 13 +- src/CSLib/CSLib.cdl | 195 - src/CSLib/CSLib.cxx | 10 +- src/CSLib/CSLib.hxx | 152 + src/CSLib/CSLib_Class2d.cdl | 70 - src/CSLib/CSLib_Class2d.cxx | 3 +- src/CSLib/CSLib_Class2d.hxx | 95 + src/CSLib/CSLib_DerivativeStatus.hxx | 53 + src/CSLib/CSLib_NormalPolyDef.cdl | 50 - src/CSLib/CSLib_NormalPolyDef.cxx | 3 +- src/CSLib/CSLib_NormalPolyDef.hxx | 83 + src/CSLib/CSLib_NormalStatus.hxx | 49 + src/CSLib/FILES | 10 +- src/ChFi2d/ChFi2d.cdl | 121 - src/ChFi2d/ChFi2d.cxx | 10 +- src/ChFi2d/ChFi2d.hxx | 86 + src/ChFi2d/ChFi2d_Builder.cdl | 295 -- src/ChFi2d/ChFi2d_Builder.cxx | 46 +- src/ChFi2d/ChFi2d_Builder.hxx | 236 ++ src/ChFi2d/ChFi2d_Builder_0.cxx | 39 +- src/ChFi2d/ChFi2d_ConstructionError.hxx | 45 + src/ChFi2d/FILES | 18 +- src/ChFi3d/ChFi3d.cdl | 115 - src/ChFi3d/ChFi3d.cxx | 17 +- src/ChFi3d/ChFi3d.hxx | 96 + src/ChFi3d/ChFi3d_Builder.cdl | 981 ----- src/ChFi3d/ChFi3d_Builder.cxx | 82 +- src/ChFi3d/ChFi3d_Builder.hxx | 369 ++ src/ChFi3d/ChFi3d_Builder_1.cxx | 80 +- src/ChFi3d/ChFi3d_Builder_2.cxx | 140 +- src/ChFi3d/ChFi3d_Builder_6.cxx | 124 +- src/ChFi3d/ChFi3d_Builder_C1.cxx | 177 +- src/ChFi3d/ChFi3d_Builder_C2.cxx | 119 +- src/ChFi3d/ChFi3d_Builder_CnCrn.cxx | 121 +- src/ChFi3d/ChFi3d_Builder_NotImp.cxx | 36 +- src/ChFi3d/ChFi3d_Builder_SpKP.cxx | 83 +- src/ChFi3d/ChFi3d_CMPLRS.edl | 29 - src/ChFi3d/ChFi3d_ChBuilder.cdl | 461 --- src/ChFi3d/ChFi3d_ChBuilder.cxx | 66 +- src/ChFi3d/ChFi3d_ChBuilder.hxx | 211 ++ src/ChFi3d/ChFi3d_ChBuilder_C2.cxx | 18 +- src/ChFi3d/ChFi3d_ChBuilder_C3.cxx | 98 +- src/ChFi3d/ChFi3d_FilBuilder.cdl | 475 --- src/ChFi3d/ChFi3d_FilBuilder.cxx | 61 +- src/ChFi3d/ChFi3d_FilBuilder.hxx | 193 + src/ChFi3d/ChFi3d_FilBuilder_C2.cxx | 123 +- src/ChFi3d/ChFi3d_FilBuilder_C3.cxx | 126 +- src/ChFi3d/ChFi3d_FilletShape.hxx | 37 + src/ChFi3d/ChFi3d_SearchSing.cdl | 54 - src/ChFi3d/ChFi3d_SearchSing.cxx | 3 +- src/ChFi3d/ChFi3d_SearchSing.hxx | 84 + src/ChFi3d/FILES | 20 +- src/ChFiDS/ChFiDS.cdl | 109 - src/ChFiDS/ChFiDS_ChamfMethod.hxx | 28 + src/ChFiDS/ChFiDS_ChamfSpine.cdl | 58 - src/ChFiDS/ChFiDS_ChamfSpine.cxx | 5 +- src/ChFiDS/ChFiDS_ChamfSpine.hxx | 87 + src/ChFiDS/ChFiDS_CircSection.cdl | 52 - src/ChFiDS/ChFiDS_CircSection.cxx | 6 +- src/ChFiDS/ChFiDS_CircSection.hxx | 76 + src/ChFiDS/ChFiDS_CommonPoint.cdl | 229 -- src/ChFiDS/ChFiDS_CommonPoint.cxx | 10 +- src/ChFiDS/ChFiDS_CommonPoint.hxx | 153 + src/ChFiDS/ChFiDS_ElSpine.cdl | 213 -- src/ChFiDS/ChFiDS_ElSpine.cxx | 22 +- src/ChFiDS/ChFiDS_ElSpine.hxx | 187 + src/ChFiDS/ChFiDS_ErrorStatus.hxx | 30 + src/ChFiDS/ChFiDS_FaceInterference.cdl | 88 - src/ChFiDS/ChFiDS_FaceInterference.cxx | 5 +- src/ChFiDS/ChFiDS_FaceInterference.hxx | 101 + src/ChFiDS/ChFiDS_FilSpine.cdl | 143 - src/ChFiDS/ChFiDS_FilSpine.cxx | 25 +- src/ChFiDS/ChFiDS_FilSpine.hxx | 134 + src/ChFiDS/ChFiDS_HElSpine.hxx | 89 + src/ChFiDS/ChFiDS_HElSpine_0.cxx | 42 + src/ChFiDS/ChFiDS_Map.cdl | 57 - src/ChFiDS/ChFiDS_Map.cxx | 5 +- src/ChFiDS/ChFiDS_Map.hxx | 85 + src/ChFiDS/ChFiDS_Regul.cdl | 54 - src/ChFiDS/ChFiDS_Regul.cxx | 4 +- src/ChFiDS/ChFiDS_Regul.hxx | 80 + src/ChFiDS/ChFiDS_Spine.cdl | 366 -- src/ChFiDS/ChFiDS_Spine.cxx | 20 +- src/ChFiDS/ChFiDS_Spine.hxx | 281 ++ src/ChFiDS/ChFiDS_State.hxx | 42 + src/ChFiDS/ChFiDS_Stripe.cdl | 273 -- src/ChFiDS/ChFiDS_Stripe.cxx | 6 +- src/ChFiDS/ChFiDS_Stripe.hxx | 196 + src/ChFiDS/ChFiDS_StripeMap.cdl | 64 - src/ChFiDS/ChFiDS_StripeMap.cxx | 6 +- src/ChFiDS/ChFiDS_StripeMap.hxx | 86 + src/ChFiDS/ChFiDS_SurfData.cdl | 233 -- src/ChFiDS/ChFiDS_SurfData.cxx | 8 +- src/ChFiDS/ChFiDS_SurfData.hxx | 207 ++ src/ChFiDS/FILES | 53 +- src/ChFiKPart/ChFiKPart.cdl | 49 - src/ChFiKPart/ChFiKPart_ComputeData.cdl | 80 - src/ChFiKPart/ChFiKPart_ComputeData.cxx | 106 +- src/ChFiKPart/ChFiKPart_ComputeData.hxx | 86 + .../ChFiKPart_ComputeData_ChAsymPlnCon.cxx | 38 +- .../ChFiKPart_ComputeData_ChAsymPlnCyl.cxx | 50 +- .../ChFiKPart_ComputeData_ChAsymPlnPln.cxx | 36 +- .../ChFiKPart_ComputeData_ChPlnCon.cxx | 39 +- .../ChFiKPart_ComputeData_ChPlnCyl.cxx | 50 +- .../ChFiKPart_ComputeData_ChPlnPln.cxx | 36 +- .../ChFiKPart_ComputeData_FilPlnCon.cxx | 46 +- .../ChFiKPart_ComputeData_FilPlnCyl.cxx | 48 +- .../ChFiKPart_ComputeData_FilPlnPln.cxx | 40 +- .../ChFiKPart_ComputeData_Rotule.cxx | 42 +- .../ChFiKPart_ComputeData_Sphere.cxx | 31 +- src/ChFiKPart/FILES | 44 +- src/Cocoa/FILES | 2 +- src/Contap/Contap.cdl | 95 - src/Contap/Contap_ArcFunction.cdl | 133 - src/Contap/Contap_ArcFunction.cxx | 9 +- src/Contap/Contap_ArcFunction.hxx | 110 + src/Contap/Contap_ContAna.cdl | 166 - src/Contap/Contap_ContAna.cxx | 13 +- src/Contap/Contap_ContAna.hxx | 119 + src/Contap/Contap_Contour.cdl | 208 -- src/Contap/Contap_Contour.cxx | 40 +- src/Contap/Contap_Contour.hxx | 135 + src/Contap/Contap_HContTool.cdl | 196 - src/Contap/Contap_HContTool.cxx | 7 +- src/Contap/Contap_HContTool.hxx | 149 + src/Contap/Contap_HCurve2dTool.cdl | 234 -- src/Contap/Contap_HCurve2dTool.cxx | 11 +- src/Contap/Contap_HCurve2dTool.hxx | 161 + src/Contap/Contap_IType.hxx | 29 + src/Contap/Contap_Line.cdl | 213 -- src/Contap/Contap_Line.cxx | 11 +- src/Contap/Contap_Line.hxx | 130 + src/Contap/Contap_Point.cdl | 271 -- src/Contap/Contap_Point.cxx | 8 +- src/Contap/Contap_Point.hxx | 159 + ...nceNodeOfSequenceOfIWLineOfTheIWalking.hxx | 82 + ...eNodeOfSequenceOfIWLineOfTheIWalking_0.cxx | 41 + ...ceNodeOfSequenceOfPathPointOfTheSearch.hxx | 83 + ...NodeOfSequenceOfPathPointOfTheSearch_0.cxx | 41 + ...enceNodeOfSequenceOfSegmentOfTheSearch.hxx | 83 + ...ceNodeOfSequenceOfSegmentOfTheSearch_0.cxx | 41 + .../Contap_SequenceOfIWLineOfTheIWalking.hxx | 134 + ...Contap_SequenceOfIWLineOfTheIWalking_0.cxx | 33 + .../Contap_SequenceOfPathPointOfTheSearch.hxx | 134 + ...ontap_SequenceOfPathPointOfTheSearch_0.cxx | 33 + .../Contap_SequenceOfSegmentOfTheSearch.hxx | 134 + .../Contap_SequenceOfSegmentOfTheSearch_0.cxx | 33 + src/Contap/Contap_SurfFunction.cdl | 233 -- src/Contap/Contap_SurfFunction.cxx | 14 +- src/Contap/Contap_SurfFunction.hxx | 152 + src/Contap/Contap_SurfProps.cdl | 56 - src/Contap/Contap_SurfProps.cxx | 8 +- src/Contap/Contap_SurfProps.hxx | 74 + src/Contap/Contap_TFunction.hxx | 29 + src/Contap/Contap_TheIWLineOfTheIWalking.hxx | 151 + .../Contap_TheIWLineOfTheIWalking_0.cxx | 43 + src/Contap/Contap_TheIWalking.hxx | 209 ++ src/Contap/Contap_TheIWalking_0.cxx | 66 + src/Contap/Contap_ThePathPointOfTheSearch.hxx | 105 + .../Contap_ThePathPointOfTheSearch_0.cxx | 32 + src/Contap/Contap_TheSearch.hxx | 168 + src/Contap/Contap_TheSearchInside.hxx | 112 + src/Contap/Contap_TheSearchInside_0.cxx | 43 + src/Contap/Contap_TheSearch_0.cxx | 72 + src/Contap/Contap_TheSegmentOfTheSearch.hxx | 101 + src/Contap/Contap_TheSegmentOfTheSearch_0.cxx | 34 + src/Contap/FILES | 53 +- src/Convert/Convert.cdl | 149 - src/Convert/Convert_CircleToBSplineCurve.cdl | 65 - src/Convert/Convert_CircleToBSplineCurve.cxx | 21 +- src/Convert/Convert_CircleToBSplineCurve.hxx | 88 + ...ert_CompBezierCurves2dToBSplineCurve2d.cdl | 193 - ...ert_CompBezierCurves2dToBSplineCurve2d.cxx | 11 +- ...ert_CompBezierCurves2dToBSplineCurve2d.hxx | 205 + ...Convert_CompBezierCurvesToBSplineCurve.cdl | 194 - ...Convert_CompBezierCurvesToBSplineCurve.cxx | 12 +- ...Convert_CompBezierCurvesToBSplineCurve.hxx | 211 ++ src/Convert/Convert_CompPolynomialToPoles.cdl | 159 - src/Convert/Convert_CompPolynomialToPoles.cxx | 15 +- src/Convert/Convert_CompPolynomialToPoles.hxx | 150 + src/Convert/Convert_ConeToBSplineSurface.cdl | 64 - src/Convert/Convert_ConeToBSplineSurface.cxx | 5 +- src/Convert/Convert_ConeToBSplineSurface.hxx | 88 + src/Convert/Convert_ConicToBSplineCurve.cdl | 172 - src/Convert/Convert_ConicToBSplineCurve.cxx | 27 +- src/Convert/Convert_ConicToBSplineCurve.hxx | 147 + .../Convert_CylinderToBSplineSurface.cdl | 63 - .../Convert_CylinderToBSplineSurface.cxx | 6 +- .../Convert_CylinderToBSplineSurface.hxx | 86 + ...vert_ElementarySurfaceToBSplineSurface.cdl | 170 - ...vert_ElementarySurfaceToBSplineSurface.cxx | 8 +- ...vert_ElementarySurfaceToBSplineSurface.hxx | 172 + src/Convert/Convert_EllipseToBSplineCurve.cdl | 59 - src/Convert/Convert_EllipseToBSplineCurve.cxx | 22 +- src/Convert/Convert_EllipseToBSplineCurve.hxx | 84 + src/Convert/Convert_GridPolynomialToPoles.cdl | 168 - src/Convert/Convert_GridPolynomialToPoles.cxx | 13 +- src/Convert/Convert_GridPolynomialToPoles.hxx | 137 + .../Convert_HyperbolaToBSplineCurve.cdl | 43 - .../Convert_HyperbolaToBSplineCurve.cxx | 15 +- .../Convert_HyperbolaToBSplineCurve.hxx | 76 + .../Convert_ParabolaToBSplineCurve.cdl | 42 - .../Convert_ParabolaToBSplineCurve.cxx | 11 +- .../Convert_ParabolaToBSplineCurve.hxx | 75 + src/Convert/Convert_ParameterisationType.hxx | 96 + .../Convert_SequenceOfArray1OfPoles2d.hxx | 25 + .../Convert_SphereToBSplineSurface.cdl | 75 - .../Convert_SphereToBSplineSurface.cxx | 5 +- .../Convert_SphereToBSplineSurface.hxx | 95 + src/Convert/Convert_TorusToBSplineSurface.cdl | 72 - src/Convert/Convert_TorusToBSplineSurface.cxx | 5 +- src/Convert/Convert_TorusToBSplineSurface.hxx | 93 + src/Convert/FILES | 32 +- src/DBRep/DBRep.cdl | 118 - src/DBRep/DBRep.cxx | 49 +- src/DBRep/DBRep.hxx | 117 + src/DBRep/DBRep_DrawableShape.cdl | 159 - src/DBRep/DBRep_DrawableShape.cxx | 75 +- src/DBRep/DBRep_DrawableShape.hxx | 155 + src/DBRep/DBRep_Edge.cdl | 49 - src/DBRep/DBRep_Edge.cxx | 7 +- src/DBRep/DBRep_Edge.hxx | 76 + src/DBRep/DBRep_Face.cdl | 75 - src/DBRep/DBRep_Face.cxx | 7 +- src/DBRep/DBRep_Face.hxx | 90 + src/DBRep/DBRep_HideData.cdl | 82 - src/DBRep/DBRep_HideData.cxx | 9 +- src/DBRep/DBRep_HideData.hxx | 106 + src/DBRep/DBRep_IsoBuilder.cdl | 73 - src/DBRep/DBRep_IsoBuilder.cxx | 15 +- src/DBRep/DBRep_IsoBuilder.hxx | 85 + src/DBRep/FILES | 22 +- src/DDF/DDF.cdl | 123 - src/DDF/DDF.cxx | 15 +- src/DDF/DDF.hxx | 108 + src/DDF/DDF_Browser.cdl | 110 - src/DDF/DDF_Browser.cxx | 27 +- src/DDF/DDF_Browser.hxx | 114 + src/DDF/DDF_Data.cdl | 69 - src/DDF/DDF_Data.cxx | 19 +- src/DDF/DDF_Data.hxx | 78 + src/DDF/DDF_Transaction.cdl | 86 - src/DDF/DDF_Transaction.cxx | 12 +- src/DDF/DDF_Transaction.hxx | 103 + src/DDF/FILES | 18 +- src/DDataStd/DDataStd.cdl | 79 - src/DDataStd/DDataStd.cxx | 13 +- src/DDataStd/DDataStd.hxx | 101 + src/DDataStd/DDataStd_DrawDriver.cdl | 91 - src/DDataStd/DDataStd_DrawDriver.cxx | 72 +- src/DDataStd/DDataStd_DrawDriver.hxx | 92 + src/DDataStd/DDataStd_DrawPresentation.cdl | 126 - src/DDataStd/DDataStd_DrawPresentation.cxx | 13 +- src/DDataStd/DDataStd_DrawPresentation.hxx | 125 + src/DDataStd/DDataStd_TreeBrowser.cdl | 80 - src/DDataStd/DDataStd_TreeBrowser.cxx | 17 +- src/DDataStd/DDataStd_TreeBrowser.hxx | 96 + src/DDataStd/DDataStd_TreeCommands.cxx | 25 +- src/DDataStd/FILES | 21 +- src/DDocStd/DDocStd.cdl | 101 - src/DDocStd/DDocStd.cxx | 20 +- src/DDocStd/DDocStd.hxx | 103 + src/DDocStd/DDocStd_DrawDocument.cdl | 53 - src/DDocStd/DDocStd_DrawDocument.cxx | 13 +- src/DDocStd/DDocStd_DrawDocument.hxx | 79 + src/DDocStd/FILES | 8 +- src/DNaming/DNaming.cdl | 181 - src/DNaming/DNaming.cxx | 76 +- src/DNaming/DNaming.hxx | 166 + .../DNaming_BooleanOperationDriver.cdl | 69 - .../DNaming_BooleanOperationDriver.cxx | 58 +- .../DNaming_BooleanOperationDriver.hxx | 93 + src/DNaming/DNaming_BoxDriver.cdl | 58 - src/DNaming/DNaming_BoxDriver.cxx | 25 +- src/DNaming/DNaming_BoxDriver.hxx | 88 + src/DNaming/DNaming_CylinderDriver.cdl | 61 - src/DNaming/DNaming_CylinderDriver.cxx | 36 +- src/DNaming/DNaming_CylinderDriver.hxx | 88 + src/DNaming/DNaming_FilletDriver.cdl | 63 - src/DNaming/DNaming_FilletDriver.cxx | 37 +- src/DNaming/DNaming_FilletDriver.hxx | 89 + src/DNaming/DNaming_Line3DDriver.cdl | 63 - src/DNaming/DNaming_Line3DDriver.cxx | 56 +- src/DNaming/DNaming_Line3DDriver.hxx | 90 + src/DNaming/DNaming_PointDriver.cdl | 56 - src/DNaming/DNaming_PointDriver.cxx | 31 +- src/DNaming/DNaming_PointDriver.hxx | 84 + src/DNaming/DNaming_PrismDriver.cdl | 63 - src/DNaming/DNaming_PrismDriver.cxx | 59 +- src/DNaming/DNaming_PrismDriver.hxx | 89 + src/DNaming/DNaming_RevolutionDriver.cdl | 62 - src/DNaming/DNaming_RevolutionDriver.cxx | 68 +- src/DNaming/DNaming_RevolutionDriver.hxx | 89 + src/DNaming/DNaming_SelectionDriver.cdl | 57 - src/DNaming/DNaming_SelectionDriver.cxx | 16 +- src/DNaming/DNaming_SelectionDriver.hxx | 84 + src/DNaming/DNaming_SphereDriver.cdl | 63 - src/DNaming/DNaming_SphereDriver.cxx | 40 +- src/DNaming/DNaming_SphereDriver.hxx | 88 + src/DNaming/DNaming_TransformationDriver.cdl | 63 - src/DNaming/DNaming_TransformationDriver.cxx | 58 +- src/DNaming/DNaming_TransformationDriver.hxx | 89 + src/DNaming/FILES | 32 +- src/DPrsStd/DPrsStd.cdl | 51 - src/DPrsStd/DPrsStd.cxx | 24 +- src/DPrsStd/DPrsStd.hxx | 76 + src/DPrsStd/FILES | 2 + src/DRAWEXE/DRAWEXE.cdl | 21 - src/DRAWEXE/DRAWEXE_LINK.edl | 19 - src/DRAWEXE/FILES | 2 +- src/Dico/Dico.cdl | 34 - src/Dico/Dico_Dictionary.cdl | 325 -- src/Dico/Dico_DictionaryOfInteger.hxx | 143 + src/Dico/Dico_DictionaryOfInteger_0.cxx | 47 + src/Dico/Dico_DictionaryOfTransient.hxx | 144 + src/Dico/Dico_DictionaryOfTransient_0.cxx | 48 + .../Dico_IteratorOfDictionaryOfInteger.hxx | 90 + .../Dico_IteratorOfDictionaryOfInteger_0.cxx | 36 + .../Dico_IteratorOfDictionaryOfTransient.hxx | 91 + ...Dico_IteratorOfDictionaryOfTransient_0.cxx | 37 + .../Dico_StackItemOfDictionaryOfInteger.hxx | 74 + .../Dico_StackItemOfDictionaryOfInteger_0.cxx | 45 + .../Dico_StackItemOfDictionaryOfTransient.hxx | 74 + ...ico_StackItemOfDictionaryOfTransient_0.cxx | 46 + src/Dico/FILES | 15 + src/Draft/Draft.cdl | 89 - src/Draft/Draft.cxx | 17 +- src/Draft/Draft.hxx | 77 + src/Draft/Draft_EdgeInfo.cdl | 158 - src/Draft/Draft_EdgeInfo.cxx | 10 +- src/Draft/Draft_EdgeInfo.hxx | 114 + src/Draft/Draft_ErrorStatus.hxx | 29 + src/Draft/Draft_FaceInfo.cdl | 111 - src/Draft/Draft_FaceInfo.cxx | 9 +- src/Draft/Draft_FaceInfo.hxx | 93 + src/Draft/Draft_Modification.cdl | 331 -- src/Draft/Draft_Modification.cxx | 62 +- src/Draft/Draft_Modification.hxx | 207 ++ src/Draft/Draft_Modification_1.cxx | 143 +- src/Draft/Draft_VertexInfo.cdl | 101 - src/Draft/Draft_VertexInfo.cxx | 7 +- src/Draft/Draft_VertexInfo.hxx | 91 + src/Draft/FILES | 19 +- src/Draw/Draw.cdl | 203 - src/Draw/Draw.cxx | 27 +- src/Draw/Draw.hxx | 172 + src/Draw/Draw_Axis2D.cdl | 45 - src/Draw/Draw_Axis2D.cxx | 10 +- src/Draw/Draw_Axis2D.hxx | 77 + src/Draw/Draw_Axis3D.cdl | 45 - src/Draw/Draw_Axis3D.cxx | 10 +- src/Draw/Draw_Axis3D.hxx | 77 + src/Draw/Draw_BasicCommands.cxx | 23 +- src/Draw/Draw_Box.cdl | 52 - src/Draw/Draw_Box.cxx | 8 +- src/Draw/Draw_Box.hxx | 79 + src/Draw/Draw_CMPLRS.edl | 19 - src/Draw/Draw_Chronometer.cdl | 55 - src/Draw/Draw_Chronometer.cxx | 8 +- src/Draw/Draw_Chronometer.hxx | 82 + src/Draw/Draw_Circle2D.cdl | 41 - src/Draw/Draw_Circle2D.cxx | 8 +- src/Draw/Draw_Circle2D.hxx | 73 + src/Draw/Draw_Circle3D.cdl | 41 - src/Draw/Draw_Circle3D.cxx | 8 +- src/Draw/Draw_Circle3D.hxx | 73 + src/Draw/Draw_Color.cdl | 39 - src/Draw/Draw_Color.cxx | 3 +- src/Draw/Draw_Color.hxx | 65 + src/Draw/Draw_ColorKind.hxx | 40 + src/Draw/Draw_Commands.cxx | 5 +- src/Draw/Draw_Display.cdl | 141 - src/Draw/Draw_Display.cxx | 8 +- src/Draw/Draw_Display.hxx | 144 + src/Draw/Draw_Drawable2D.cdl | 30 - src/Draw/Draw_Drawable2D.cxx | 4 +- src/Draw/Draw_Drawable2D.hxx | 63 + src/Draw/Draw_Drawable3D.cdl | 91 - src/Draw/Draw_Drawable3D.cxx | 6 +- src/Draw/Draw_Drawable3D.hxx | 109 + src/Draw/Draw_Failure.hxx | 37 + src/Draw/Draw_GraphicCommands.cxx | 13 +- src/Draw/Draw_Grid.cdl | 92 - src/Draw/Draw_Grid.cxx | 11 +- src/Draw/Draw_Grid.hxx | 88 + src/Draw/Draw_Marker2D.cdl | 51 - src/Draw/Draw_Marker2D.cxx | 8 +- src/Draw/Draw_Marker2D.hxx | 84 + src/Draw/Draw_Marker3D.cdl | 53 - src/Draw/Draw_Marker3D.cxx | 8 +- src/Draw/Draw_Marker3D.hxx | 86 + src/Draw/Draw_MarkerShape.hxx | 32 + src/Draw/Draw_Number.cdl | 54 - src/Draw/Draw_Number.cxx | 7 +- src/Draw/Draw_Number.hxx | 84 + src/Draw/Draw_Printer.cdl | 60 - src/Draw/Draw_Printer.cxx | 4 +- src/Draw/Draw_Printer.hxx | 88 + src/Draw/Draw_ProgressIndicator.cdl | 88 - src/Draw/Draw_ProgressIndicator.cxx | 14 +- src/Draw/Draw_ProgressIndicator.hxx | 115 + src/Draw/Draw_Segment2D.cdl | 59 - src/Draw/Draw_Segment2D.cxx | 8 +- src/Draw/Draw_Segment2D.hxx | 85 + src/Draw/Draw_Segment3D.cdl | 52 - src/Draw/Draw_Segment3D.cxx | 8 +- src/Draw/Draw_Segment3D.hxx | 79 + src/Draw/Draw_Text2D.cdl | 47 - src/Draw/Draw_Text2D.cxx | 7 +- src/Draw/Draw_Text2D.hxx | 80 + src/Draw/Draw_Text3D.cdl | 47 - src/Draw/Draw_Text3D.cxx | 8 +- src/Draw/Draw_Text3D.hxx | 80 + src/Draw/Draw_UnitCommands.cxx | 11 +- src/Draw/Draw_VariableCommands.cxx | 20 +- src/Draw/FILES | 90 +- src/DrawDim/DrawDim.cdl | 81 - src/DrawDim/DrawDim.cxx | 30 +- src/DrawDim/DrawDim.hxx | 115 + src/DrawDim/DrawDim_Angle.cdl | 48 - src/DrawDim/DrawDim_Angle.cxx | 23 +- src/DrawDim/DrawDim_Angle.hxx | 76 + src/DrawDim/DrawDim_Dimension.cdl | 51 - src/DrawDim/DrawDim_Dimension.cxx | 11 +- src/DrawDim/DrawDim_Dimension.hxx | 82 + src/DrawDim/DrawDim_Distance.cdl | 49 - src/DrawDim/DrawDim_Distance.cxx | 22 +- src/DrawDim/DrawDim_Distance.hxx | 78 + src/DrawDim/DrawDim_PlanarAngle.cdl | 52 - src/DrawDim/DrawDim_PlanarAngle.cxx | 49 +- src/DrawDim/DrawDim_PlanarAngle.hxx | 80 + src/DrawDim/DrawDim_PlanarDiameter.cdl | 42 - src/DrawDim/DrawDim_PlanarDiameter.cxx | 17 +- src/DrawDim/DrawDim_PlanarDiameter.hxx | 70 + src/DrawDim/DrawDim_PlanarDimension.cdl | 55 - src/DrawDim/DrawDim_PlanarDimension.cxx | 9 +- src/DrawDim/DrawDim_PlanarDimension.hxx | 66 + src/DrawDim/DrawDim_PlanarDistance.cdl | 53 - src/DrawDim/DrawDim_PlanarDistance.cxx | 20 +- src/DrawDim/DrawDim_PlanarDistance.hxx | 78 + src/DrawDim/DrawDim_PlanarRadius.cdl | 42 - src/DrawDim/DrawDim_PlanarRadius.cxx | 18 +- src/DrawDim/DrawDim_PlanarRadius.hxx | 70 + src/DrawDim/DrawDim_Radius.cdl | 41 - src/DrawDim/DrawDim_Radius.cxx | 18 +- src/DrawDim/DrawDim_Radius.hxx | 71 + src/DrawDim/FILES | 21 +- src/DrawFairCurve/DrawFairCurve.cdl | 27 - src/DrawFairCurve/DrawFairCurve_Batten.cdl | 44 - src/DrawFairCurve/DrawFairCurve_Batten.cxx | 8 +- src/DrawFairCurve/DrawFairCurve_Batten.hxx | 90 + .../DrawFairCurve_MinimalVariation.cdl | 35 - .../DrawFairCurve_MinimalVariation.cxx | 5 +- .../DrawFairCurve_MinimalVariation.hxx | 74 + src/DrawFairCurve/FILES | 4 + src/DrawResources/FILES | 12 +- src/DrawTrSurf/DrawTrSurf.cdl | 191 - src/DrawTrSurf/DrawTrSurf.cxx | 59 +- src/DrawTrSurf/DrawTrSurf.hxx | 215 ++ src/DrawTrSurf/DrawTrSurf_BSplineCurve.cdl | 147 - src/DrawTrSurf/DrawTrSurf_BSplineCurve.cxx | 10 +- src/DrawTrSurf/DrawTrSurf_BSplineCurve.hxx | 124 + src/DrawTrSurf/DrawTrSurf_BSplineCurve2d.cdl | 116 - src/DrawTrSurf/DrawTrSurf_BSplineCurve2d.cxx | 8 +- src/DrawTrSurf/DrawTrSurf_BSplineCurve2d.hxx | 116 + src/DrawTrSurf/DrawTrSurf_BSplineSurface.cdl | 165 - src/DrawTrSurf/DrawTrSurf_BSplineSurface.cxx | 14 +- src/DrawTrSurf/DrawTrSurf_BSplineSurface.hxx | 138 + src/DrawTrSurf/DrawTrSurf_BezierCurve.cdl | 91 - src/DrawTrSurf/DrawTrSurf_BezierCurve.cxx | 7 +- src/DrawTrSurf/DrawTrSurf_BezierCurve.hxx | 98 + src/DrawTrSurf/DrawTrSurf_BezierCurve2d.cdl | 89 - src/DrawTrSurf/DrawTrSurf_BezierCurve2d.cxx | 7 +- src/DrawTrSurf/DrawTrSurf_BezierCurve2d.hxx | 98 + src/DrawTrSurf/DrawTrSurf_BezierSurface.cdl | 84 - src/DrawTrSurf/DrawTrSurf_BezierSurface.cxx | 7 +- src/DrawTrSurf/DrawTrSurf_BezierSurface.hxx | 92 + src/DrawTrSurf/DrawTrSurf_Curve.cdl | 119 - src/DrawTrSurf/DrawTrSurf_Curve.cxx | 15 +- src/DrawTrSurf/DrawTrSurf_Curve.hxx | 117 + src/DrawTrSurf/DrawTrSurf_Curve2d.cdl | 122 - src/DrawTrSurf/DrawTrSurf_Curve2d.cxx | 15 +- src/DrawTrSurf/DrawTrSurf_Curve2d.hxx | 116 + src/DrawTrSurf/DrawTrSurf_Drawable.cdl | 88 - src/DrawTrSurf/DrawTrSurf_Drawable.cxx | 18 +- src/DrawTrSurf/DrawTrSurf_Drawable.hxx | 103 + src/DrawTrSurf/DrawTrSurf_Point.cdl | 93 - src/DrawTrSurf/DrawTrSurf_Point.cxx | 10 +- src/DrawTrSurf/DrawTrSurf_Point.hxx | 108 + src/DrawTrSurf/DrawTrSurf_Polygon2D.cdl | 62 - src/DrawTrSurf/DrawTrSurf_Polygon2D.cxx | 10 +- src/DrawTrSurf/DrawTrSurf_Polygon2D.hxx | 89 + src/DrawTrSurf/DrawTrSurf_Polygon3D.cdl | 62 - src/DrawTrSurf/DrawTrSurf_Polygon3D.cxx | 11 +- src/DrawTrSurf/DrawTrSurf_Polygon3D.hxx | 89 + src/DrawTrSurf/DrawTrSurf_Surface.cdl | 119 - src/DrawTrSurf/DrawTrSurf_Surface.cxx | 13 +- src/DrawTrSurf/DrawTrSurf_Surface.hxx | 119 + src/DrawTrSurf/DrawTrSurf_Triangulation.cdl | 71 - src/DrawTrSurf/DrawTrSurf_Triangulation.cxx | 19 +- src/DrawTrSurf/DrawTrSurf_Triangulation.hxx | 99 + src/DrawTrSurf/DrawTrSurf_Triangulation2D.cdl | 62 - src/DrawTrSurf/DrawTrSurf_Triangulation2D.cxx | 17 +- src/DrawTrSurf/DrawTrSurf_Triangulation2D.hxx | 88 + src/DrawTrSurf/FILES | 42 + src/DsgPrs/DsgPrs.cdl | 179 - src/DsgPrs/DsgPrs.cxx | 52 +- src/DsgPrs/DsgPrs.hxx | 137 + src/DsgPrs/DsgPrs_AnglePresentation.cdl | 140 - src/DsgPrs/DsgPrs_AnglePresentation.cxx | 51 +- src/DsgPrs/DsgPrs_AnglePresentation.hxx | 102 + src/DsgPrs/DsgPrs_ArrowSide.hxx | 35 + src/DsgPrs/DsgPrs_Chamf2dPresentation.cdl | 65 - src/DsgPrs/DsgPrs_Chamf2dPresentation.cxx | 16 +- src/DsgPrs/DsgPrs_Chamf2dPresentation.hxx | 81 + src/DsgPrs/DsgPrs_ConcentricPresentation.cdl | 47 - src/DsgPrs/DsgPrs_ConcentricPresentation.cxx | 19 +- src/DsgPrs/DsgPrs_ConcentricPresentation.hxx | 71 + src/DsgPrs/DsgPrs_DiameterPresentation.cdl | 69 - src/DsgPrs/DsgPrs_DiameterPresentation.cxx | 39 +- src/DsgPrs/DsgPrs_DiameterPresentation.hxx | 86 + .../DsgPrs_EllipseRadiusPresentation.cdl | 74 - .../DsgPrs_EllipseRadiusPresentation.cxx | 45 +- .../DsgPrs_EllipseRadiusPresentation.hxx | 78 + .../DsgPrs_EqualDistancePresentation.cdl | 70 - .../DsgPrs_EqualDistancePresentation.cxx | 25 +- .../DsgPrs_EqualDistancePresentation.hxx | 81 + src/DsgPrs/DsgPrs_EqualRadiusPresentation.cdl | 44 - src/DsgPrs/DsgPrs_EqualRadiusPresentation.cxx | 19 +- src/DsgPrs/DsgPrs_EqualRadiusPresentation.hxx | 71 + .../DsgPrs_FilletRadiusPresentation.cdl | 52 - .../DsgPrs_FilletRadiusPresentation.cxx | 46 +- .../DsgPrs_FilletRadiusPresentation.hxx | 72 + src/DsgPrs/DsgPrs_FixPresentation.cdl | 45 - src/DsgPrs/DsgPrs_FixPresentation.cxx | 29 +- src/DsgPrs/DsgPrs_FixPresentation.hxx | 69 + src/DsgPrs/DsgPrs_IdenticPresentation.cdl | 104 - src/DsgPrs/DsgPrs_IdenticPresentation.cxx | 31 +- src/DsgPrs/DsgPrs_IdenticPresentation.hxx | 95 + src/DsgPrs/DsgPrs_LengthPresentation.cdl | 124 - src/DsgPrs/DsgPrs_LengthPresentation.cxx | 42 +- src/DsgPrs/DsgPrs_LengthPresentation.hxx | 124 + src/DsgPrs/DsgPrs_MidPointPresentation.cdl | 74 - src/DsgPrs/DsgPrs_MidPointPresentation.cxx | 31 +- src/DsgPrs/DsgPrs_MidPointPresentation.hxx | 79 + src/DsgPrs/DsgPrs_OffsetPresentation.cdl | 57 - src/DsgPrs/DsgPrs_OffsetPresentation.cxx | 43 +- src/DsgPrs/DsgPrs_OffsetPresentation.hxx | 77 + src/DsgPrs/DsgPrs_ParalPresentation.cdl | 62 - src/DsgPrs/DsgPrs_ParalPresentation.cxx | 20 +- src/DsgPrs/DsgPrs_ParalPresentation.hxx | 84 + src/DsgPrs/DsgPrs_PerpenPresentation.cdl | 48 - src/DsgPrs/DsgPrs_PerpenPresentation.cxx | 25 +- src/DsgPrs/DsgPrs_PerpenPresentation.hxx | 72 + src/DsgPrs/DsgPrs_RadiusPresentation.cdl | 93 - src/DsgPrs/DsgPrs_RadiusPresentation.cxx | 37 +- src/DsgPrs/DsgPrs_RadiusPresentation.hxx | 104 + src/DsgPrs/DsgPrs_ShadedPlanePresentation.cdl | 42 - src/DsgPrs/DsgPrs_ShadedPlanePresentation.cxx | 15 +- src/DsgPrs/DsgPrs_ShadedPlanePresentation.hxx | 66 + src/DsgPrs/DsgPrs_ShapeDirPresentation.cdl | 41 - src/DsgPrs/DsgPrs_ShapeDirPresentation.cxx | 41 +- src/DsgPrs/DsgPrs_ShapeDirPresentation.hxx | 71 + src/DsgPrs/DsgPrs_SymbPresentation.cdl | 35 - src/DsgPrs/DsgPrs_SymbPresentation.cxx | 15 +- src/DsgPrs/DsgPrs_SymbPresentation.hxx | 67 + src/DsgPrs/DsgPrs_SymmetricPresentation.cdl | 81 - src/DsgPrs/DsgPrs_SymmetricPresentation.cxx | 48 +- src/DsgPrs/DsgPrs_SymmetricPresentation.hxx | 88 + src/DsgPrs/DsgPrs_TangentPresentation.cdl | 37 - src/DsgPrs/DsgPrs_TangentPresentation.cxx | 16 +- src/DsgPrs/DsgPrs_TangentPresentation.hxx | 68 + src/DsgPrs/DsgPrs_XYZAxisPresentation.cdl | 66 - src/DsgPrs/DsgPrs_XYZAxisPresentation.cxx | 17 +- src/DsgPrs/DsgPrs_XYZAxisPresentation.hxx | 79 + src/DsgPrs/DsgPrs_XYZPlanePresentation.cdl | 39 - src/DsgPrs/DsgPrs_XYZPlanePresentation.cxx | 15 +- src/DsgPrs/DsgPrs_XYZPlanePresentation.hxx | 66 + src/DsgPrs/FILES | 51 +- src/ElCLib/ElCLib.cdl | 600 --- src/ElCLib/ElCLib.cxx | 23 +- src/ElCLib/ElCLib.hxx | 473 +++ src/ElCLib/FILES | 3 + src/ElSLib/ElSLib.cdl | 416 --- src/ElSLib/ElSLib.cxx | 15 +- src/ElSLib/ElSLib.hxx | 337 ++ src/ElSLib/FILES | 3 + src/Expr/Expr.cdl | 118 - src/Expr/Expr.hxx | 175 + src/Expr/Expr_Absolute.cdl | 71 - src/Expr/Expr_Absolute.cxx | 17 +- src/Expr/Expr_Absolute.hxx | 97 + src/Expr/Expr_ArcCosine.cdl | 71 - src/Expr/Expr_ArcCosine.cxx | 19 +- src/Expr/Expr_ArcCosine.hxx | 97 + src/Expr/Expr_ArcSine.cdl | 71 - src/Expr/Expr_ArcSine.cxx | 17 +- src/Expr/Expr_ArcSine.hxx | 97 + src/Expr/Expr_ArcTangent.cdl | 71 - src/Expr/Expr_ArcTangent.cxx | 17 +- src/Expr/Expr_ArcTangent.hxx | 97 + src/Expr/Expr_ArgCosh.cdl | 71 - src/Expr/Expr_ArgCosh.cxx | 17 +- src/Expr/Expr_ArgCosh.hxx | 97 + src/Expr/Expr_ArgSinh.cdl | 71 - src/Expr/Expr_ArgSinh.cxx | 17 +- src/Expr/Expr_ArgSinh.hxx | 97 + src/Expr/Expr_ArgTanh.cdl | 72 - src/Expr/Expr_ArgTanh.cxx | 19 +- src/Expr/Expr_ArgTanh.hxx | 97 + src/Expr/Expr_BinaryExpression.cdl | 112 - src/Expr/Expr_BinaryExpression.cxx | 9 +- src/Expr/Expr_BinaryExpression.hxx | 112 + src/Expr/Expr_BinaryFunction.cdl | 86 - src/Expr/Expr_BinaryFunction.cxx | 20 +- src/Expr/Expr_BinaryFunction.hxx | 105 + src/Expr/Expr_Cosh.cdl | 71 - src/Expr/Expr_Cosh.cxx | 17 +- src/Expr/Expr_Cosh.hxx | 97 + src/Expr/Expr_Cosine.cdl | 71 - src/Expr/Expr_Cosine.cxx | 17 +- src/Expr/Expr_Cosine.hxx | 97 + src/Expr/Expr_Difference.cdl | 79 - src/Expr/Expr_Difference.cxx | 15 +- src/Expr/Expr_Difference.hxx | 103 + src/Expr/Expr_Different.cdl | 57 - src/Expr/Expr_Different.cxx | 7 +- src/Expr/Expr_Different.hxx | 85 + src/Expr/Expr_Division.cdl | 71 - src/Expr/Expr_Division.cxx | 18 +- src/Expr/Expr_Division.hxx | 97 + src/Expr/Expr_Equal.cdl | 56 - src/Expr/Expr_Equal.cxx | 7 +- src/Expr/Expr_Equal.hxx | 84 + src/Expr/Expr_Exponential.cdl | 71 - src/Expr/Expr_Exponential.cxx | 15 +- src/Expr/Expr_Exponential.hxx | 97 + src/Expr/Expr_Exponentiate.cdl | 71 - src/Expr/Expr_Exponentiate.cxx | 19 +- src/Expr/Expr_Exponentiate.hxx | 97 + src/Expr/Expr_ExprFailure.hxx | 37 + src/Expr/Expr_FunctionDerivative.cdl | 125 - src/Expr/Expr_FunctionDerivative.cxx | 15 +- src/Expr/Expr_FunctionDerivative.hxx | 128 + src/Expr/Expr_GeneralExpression.cdl | 158 - src/Expr/Expr_GeneralExpression.cxx | 8 +- src/Expr/Expr_GeneralExpression.hxx | 140 + src/Expr/Expr_GeneralFunction.cdl | 98 - src/Expr/Expr_GeneralFunction.cxx | 9 +- src/Expr/Expr_GeneralFunction.hxx | 101 + src/Expr/Expr_GeneralRelation.cdl | 107 - src/Expr/Expr_GeneralRelation.cxx | 8 +- src/Expr/Expr_GeneralRelation.hxx | 106 + src/Expr/Expr_GreaterThan.cdl | 56 - src/Expr/Expr_GreaterThan.cxx | 10 +- src/Expr/Expr_GreaterThan.hxx | 84 + src/Expr/Expr_GreaterThanOrEqual.cdl | 56 - src/Expr/Expr_GreaterThanOrEqual.cxx | 10 +- src/Expr/Expr_GreaterThanOrEqual.hxx | 84 + src/Expr/Expr_InvalidAssignment.hxx | 37 + src/Expr/Expr_InvalidFunction.hxx | 37 + src/Expr/Expr_InvalidOperand.hxx | 37 + src/Expr/Expr_LessThan.cdl | 56 - src/Expr/Expr_LessThan.cxx | 10 +- src/Expr/Expr_LessThan.hxx | 84 + src/Expr/Expr_LessThanOrEqual.cdl | 56 - src/Expr/Expr_LessThanOrEqual.cxx | 10 +- src/Expr/Expr_LessThanOrEqual.hxx | 84 + src/Expr/Expr_LogOf10.cdl | 71 - src/Expr/Expr_LogOf10.cxx | 15 +- src/Expr/Expr_LogOf10.hxx | 97 + src/Expr/Expr_LogOfe.cdl | 71 - src/Expr/Expr_LogOfe.cxx | 13 +- src/Expr/Expr_LogOfe.hxx | 97 + src/Expr/Expr_NamedConstant.cdl | 109 - src/Expr/Expr_NamedConstant.cxx | 7 +- src/Expr/Expr_NamedConstant.hxx | 119 + src/Expr/Expr_NamedExpression.cdl | 62 - src/Expr/Expr_NamedExpression.cxx | 7 +- src/Expr/Expr_NamedExpression.hxx | 84 + src/Expr/Expr_NamedFunction.cdl | 121 - src/Expr/Expr_NamedFunction.cxx | 17 +- src/Expr/Expr_NamedFunction.hxx | 125 + src/Expr/Expr_NamedUnknown.cdl | 133 - src/Expr/Expr_NamedUnknown.cxx | 13 +- src/Expr/Expr_NamedUnknown.hxx | 132 + src/Expr/Expr_NotAssigned.hxx | 37 + src/Expr/Expr_NotEvaluable.hxx | 37 + src/Expr/Expr_NumericValue.cdl | 121 - src/Expr/Expr_NumericValue.cxx | 10 +- src/Expr/Expr_NumericValue.hxx | 126 + src/Expr/Expr_PolyExpression.cdl | 113 - src/Expr/Expr_PolyExpression.cxx | 10 +- src/Expr/Expr_PolyExpression.hxx | 117 + src/Expr/Expr_PolyFunction.cdl | 85 - src/Expr/Expr_PolyFunction.cxx | 17 +- src/Expr/Expr_PolyFunction.hxx | 105 + src/Expr/Expr_Product.cdl | 76 - src/Expr/Expr_Product.cxx | 18 +- src/Expr/Expr_Product.hxx | 101 + src/Expr/Expr_RUIterator.cdl | 57 - src/Expr/Expr_RUIterator.cxx | 13 +- src/Expr/Expr_RUIterator.hxx | 79 + src/Expr/Expr_RelationIterator.cdl | 56 - src/Expr/Expr_RelationIterator.cxx | 8 +- src/Expr/Expr_RelationIterator.hxx | 78 + src/Expr/Expr_Sign.cdl | 71 - src/Expr/Expr_Sign.cxx | 11 +- src/Expr/Expr_Sign.hxx | 97 + src/Expr/Expr_Sine.cdl | 71 - src/Expr/Expr_Sine.cxx | 15 +- src/Expr/Expr_Sine.hxx | 97 + src/Expr/Expr_SingleRelation.cdl | 86 - src/Expr/Expr_SingleRelation.cxx | 7 +- src/Expr/Expr_SingleRelation.hxx | 99 + src/Expr/Expr_Sinh.cdl | 71 - src/Expr/Expr_Sinh.cxx | 15 +- src/Expr/Expr_Sinh.hxx | 97 + src/Expr/Expr_Square.cdl | 71 - src/Expr/Expr_Square.cxx | 19 +- src/Expr/Expr_Square.hxx | 97 + src/Expr/Expr_SquareRoot.cdl | 71 - src/Expr/Expr_SquareRoot.cxx | 17 +- src/Expr/Expr_SquareRoot.hxx | 97 + src/Expr/Expr_Sum.cdl | 84 - src/Expr/Expr_Sum.cxx | 13 +- src/Expr/Expr_Sum.hxx | 107 + src/Expr/Expr_SystemRelation.cdl | 103 - src/Expr/Expr_SystemRelation.cxx | 11 +- src/Expr/Expr_SystemRelation.hxx | 116 + src/Expr/Expr_Tangent.cdl | 71 - src/Expr/Expr_Tangent.cxx | 15 +- src/Expr/Expr_Tangent.hxx | 97 + src/Expr/Expr_Tanh.cdl | 71 - src/Expr/Expr_Tanh.cxx | 15 +- src/Expr/Expr_Tanh.hxx | 97 + src/Expr/Expr_UnaryExpression.cdl | 91 - src/Expr/Expr_UnaryExpression.cxx | 8 +- src/Expr/Expr_UnaryExpression.hxx | 101 + src/Expr/Expr_UnaryFunction.cdl | 86 - src/Expr/Expr_UnaryFunction.cxx | 20 +- src/Expr/Expr_UnaryFunction.hxx | 105 + src/Expr/Expr_UnaryMinus.cdl | 79 - src/Expr/Expr_UnaryMinus.cxx | 11 +- src/Expr/Expr_UnaryMinus.hxx | 103 + src/Expr/Expr_UnknownIterator.cdl | 56 - src/Expr/Expr_UnknownIterator.cxx | 8 +- src/Expr/Expr_UnknownIterator.hxx | 77 + src/Expr/FILES | 123 +- src/ExprIntrp/ExprIntrp.cdl | 60 - src/ExprIntrp/ExprIntrp.cxx | 9 +- src/ExprIntrp/ExprIntrp.hxx | 74 + src/ExprIntrp/ExprIntrp.tab.c | 2060 ++++++++++ src/ExprIntrp/ExprIntrp.tab.h | 98 + src/ExprIntrp/ExprIntrp_Analysis.cdl | 116 - src/ExprIntrp/ExprIntrp_Analysis.cxx | 10 +- src/ExprIntrp/ExprIntrp_Analysis.hxx | 119 + src/ExprIntrp/ExprIntrp_GenExp.cdl | 63 - src/ExprIntrp/ExprIntrp_GenExp.cxx | 6 +- src/ExprIntrp/ExprIntrp_GenExp.hxx | 84 + src/ExprIntrp/ExprIntrp_GenFct.cdl | 50 - src/ExprIntrp/ExprIntrp_GenFct.cxx | 6 +- src/ExprIntrp/ExprIntrp_GenFct.hxx | 73 + src/ExprIntrp/ExprIntrp_GenRel.cdl | 61 - src/ExprIntrp/ExprIntrp_GenRel.cxx | 6 +- src/ExprIntrp/ExprIntrp_GenRel.hxx | 82 + src/ExprIntrp/ExprIntrp_Generator.cdl | 73 - src/ExprIntrp/ExprIntrp_Generator.cxx | 8 +- src/ExprIntrp/ExprIntrp_Generator.hxx | 87 + src/ExprIntrp/ExprIntrp_SyntaxError.hxx | 37 + src/ExprIntrp/FILES | 32 +- src/ExprIntrp/lex.ExprIntrp.c | 3304 +++++++++++++++++ src/Extrema/Extrema.cdl | 274 -- src/Extrema/Extrema_CCLocFOfLocECC.hxx | 178 + src/Extrema/Extrema_CCLocFOfLocECC2d.hxx | 178 + src/Extrema/Extrema_CCLocFOfLocECC2d_0.cxx | 55 + src/Extrema/Extrema_CCLocFOfLocECC_0.cxx | 55 + src/Extrema/Extrema_Curve2dTool.cdl | 172 - src/Extrema/Extrema_Curve2dTool.cxx | 8 +- src/Extrema/Extrema_Curve2dTool.hxx | 153 + src/Extrema/Extrema_CurveLocator.cdl | 48 - src/Extrema/Extrema_CurveTool.cdl | 144 - src/Extrema/Extrema_CurveTool.cxx | 9 +- src/Extrema/Extrema_CurveTool.hxx | 135 + src/Extrema/Extrema_ECC.hxx | 102 + src/Extrema/Extrema_ECC2d.hxx | 102 + src/Extrema/Extrema_ECC2d_0.cxx | 49 + src/Extrema/Extrema_ECC_0.cxx | 49 + src/Extrema/Extrema_ELPCOfLocateExtPC.hxx | 122 + src/Extrema/Extrema_ELPCOfLocateExtPC2d.hxx | 122 + src/Extrema/Extrema_ELPCOfLocateExtPC2d_0.cxx | 55 + src/Extrema/Extrema_ELPCOfLocateExtPC_0.cxx | 55 + .../Extrema_EPCOfELPCOfLocateExtPC.hxx | 105 + .../Extrema_EPCOfELPCOfLocateExtPC2d.hxx | 105 + .../Extrema_EPCOfELPCOfLocateExtPC2d_0.cxx | 50 + .../Extrema_EPCOfELPCOfLocateExtPC_0.cxx | 50 + src/Extrema/Extrema_EPCOfExtPC.hxx | 105 + src/Extrema/Extrema_EPCOfExtPC2d.hxx | 105 + src/Extrema/Extrema_EPCOfExtPC2d_0.cxx | 50 + src/Extrema/Extrema_EPCOfExtPC_0.cxx | 50 + src/Extrema/Extrema_ElementType.hxx | 29 + src/Extrema/Extrema_ExtAlgo.hxx | 27 + src/Extrema/Extrema_ExtCC.cdl | 161 - src/Extrema/Extrema_ExtCC.cxx | 41 +- src/Extrema/Extrema_ExtCC.hxx | 137 + src/Extrema/Extrema_ExtCC2d.cdl | 159 - src/Extrema/Extrema_ExtCC2d.cxx | 34 +- src/Extrema/Extrema_ExtCC2d.hxx | 131 + src/Extrema/Extrema_ExtCS.cdl | 145 - src/Extrema/Extrema_ExtCS.cxx | 39 +- src/Extrema/Extrema_ExtCS.hxx | 129 + src/Extrema/Extrema_ExtElC.cdl | 145 - src/Extrema/Extrema_ExtElC.cxx | 36 +- src/Extrema/Extrema_ExtElC.hxx | 156 + src/Extrema/Extrema_ExtElC2d.cdl | 143 - src/Extrema/Extrema_ExtElC2d.cxx | 21 +- src/Extrema/Extrema_ExtElC2d.hxx | 156 + src/Extrema/Extrema_ExtElCS.cdl | 169 - src/Extrema/Extrema_ExtElCS.cxx | 30 +- src/Extrema/Extrema_ExtElCS.hxx | 168 + src/Extrema/Extrema_ExtElSS.cdl | 134 - src/Extrema/Extrema_ExtElSS.cxx | 15 +- src/Extrema/Extrema_ExtElSS.hxx | 133 + src/Extrema/Extrema_ExtFlag.hxx | 28 + src/Extrema/Extrema_ExtPC.hxx | 122 + src/Extrema/Extrema_ExtPC2d.hxx | 122 + src/Extrema/Extrema_ExtPC2d_0.cxx | 55 + src/Extrema/Extrema_ExtPC_0.cxx | 55 + src/Extrema/Extrema_ExtPElC.cdl | 150 - src/Extrema/Extrema_ExtPElC.cxx | 18 +- src/Extrema/Extrema_ExtPElC.hxx | 152 + src/Extrema/Extrema_ExtPElC2d.cdl | 155 - src/Extrema/Extrema_ExtPElC2d.cxx | 20 +- src/Extrema/Extrema_ExtPElC2d.hxx | 152 + src/Extrema/Extrema_ExtPElS.cdl | 112 - src/Extrema/Extrema_ExtPElS.cxx | 17 +- src/Extrema/Extrema_ExtPElS.hxx | 126 + src/Extrema/Extrema_ExtPExtS.cdl | 122 - src/Extrema/Extrema_ExtPExtS.hxx | 122 + src/Extrema/Extrema_ExtPRevS.cdl | 105 - src/Extrema/Extrema_ExtPRevS.cxx | 9 +- src/Extrema/Extrema_ExtPRevS.hxx | 109 + src/Extrema/Extrema_ExtPS.cdl | 174 - src/Extrema/Extrema_ExtPS.cxx | 30 +- src/Extrema/Extrema_ExtPS.hxx | 163 + src/Extrema/Extrema_ExtSS.cdl | 127 - src/Extrema/Extrema_ExtSS.cxx | 21 +- src/Extrema/Extrema_ExtSS.hxx | 123 + src/Extrema/Extrema_FuncExtCC.cdl | 131 - src/Extrema/Extrema_FuncExtCS.cdl | 116 - src/Extrema/Extrema_FuncExtCS.cxx | 20 +- src/Extrema/Extrema_FuncExtCS.hxx | 126 + src/Extrema/Extrema_FuncExtPC.cdl | 124 - src/Extrema/Extrema_FuncExtPS.cdl | 121 - src/Extrema/Extrema_FuncExtPS.cxx | 13 +- src/Extrema/Extrema_FuncExtPS.hxx | 135 + src/Extrema/Extrema_FuncExtSS.cdl | 110 - src/Extrema/Extrema_FuncExtSS.cxx | 19 +- src/Extrema/Extrema_FuncExtSS.hxx | 121 + src/Extrema/Extrema_GExtPC.cdl | 156 - src/Extrema/Extrema_GLocateExtPC.cdl | 138 - src/Extrema/Extrema_GenExtCC.cdl | 112 - src/Extrema/Extrema_GenExtCS.cdl | 157 - src/Extrema/Extrema_GenExtCS.cxx | 8 +- src/Extrema/Extrema_GenExtCS.hxx | 142 + src/Extrema/Extrema_GenExtPC.cdl | 152 - src/Extrema/Extrema_GenExtPS.cdl | 183 - src/Extrema/Extrema_GenExtPS.cxx | 51 +- src/Extrema/Extrema_GenExtPS.hxx | 171 + src/Extrema/Extrema_GenExtSS.cdl | 149 - src/Extrema/Extrema_GenExtSS.cxx | 11 +- src/Extrema/Extrema_GenExtSS.hxx | 139 + src/Extrema/Extrema_GenLocateExtCC.cdl | 75 - src/Extrema/Extrema_GenLocateExtCS.cdl | 85 - src/Extrema/Extrema_GenLocateExtCS.cxx | 11 +- src/Extrema/Extrema_GenLocateExtCS.hxx | 97 + src/Extrema/Extrema_GenLocateExtPC.cdl | 112 - src/Extrema/Extrema_GenLocateExtPS.cdl | 68 - src/Extrema/Extrema_GenLocateExtPS.cxx | 10 +- src/Extrema/Extrema_GenLocateExtPS.hxx | 89 + src/Extrema/Extrema_GenLocateExtSS.cdl | 82 - src/Extrema/Extrema_GenLocateExtSS.cxx | 9 +- src/Extrema/Extrema_GenLocateExtSS.hxx | 94 + src/Extrema/Extrema_LocECC.hxx | 81 + src/Extrema/Extrema_LocECC2d.hxx | 81 + src/Extrema/Extrema_LocECC2d_0.cxx | 53 + src/Extrema/Extrema_LocECC_0.cxx | 53 + src/Extrema/Extrema_LocEPCOfLocateExtPC.hxx | 93 + src/Extrema/Extrema_LocEPCOfLocateExtPC2d.hxx | 93 + .../Extrema_LocEPCOfLocateExtPC2d_0.cxx | 50 + src/Extrema/Extrema_LocEPCOfLocateExtPC_0.cxx | 50 + src/Extrema/Extrema_LocateExtCC.cdl | 68 - src/Extrema/Extrema_LocateExtCC.cxx | 10 +- src/Extrema/Extrema_LocateExtCC.hxx | 88 + src/Extrema/Extrema_LocateExtCC2d.cdl | 69 - src/Extrema/Extrema_LocateExtCC2d.hxx | 88 + src/Extrema/Extrema_LocateExtPC.hxx | 108 + src/Extrema/Extrema_LocateExtPC2d.hxx | 108 + src/Extrema/Extrema_LocateExtPC2d_0.cxx | 62 + src/Extrema/Extrema_LocateExtPC_0.cxx | 62 + .../Extrema_PCFOfEPCOfELPCOfLocateExtPC.hxx | 118 + .../Extrema_PCFOfEPCOfELPCOfLocateExtPC2d.hxx | 118 + ...xtrema_PCFOfEPCOfELPCOfLocateExtPC2d_0.cxx | 51 + .../Extrema_PCFOfEPCOfELPCOfLocateExtPC_0.cxx | 51 + src/Extrema/Extrema_PCFOfEPCOfExtPC.hxx | 118 + src/Extrema/Extrema_PCFOfEPCOfExtPC2d.hxx | 118 + src/Extrema/Extrema_PCFOfEPCOfExtPC2d_0.cxx | 51 + src/Extrema/Extrema_PCFOfEPCOfExtPC_0.cxx | 51 + .../Extrema_PCLocFOfLocEPCOfLocateExtPC.hxx | 118 + .../Extrema_PCLocFOfLocEPCOfLocateExtPC2d.hxx | 118 + ...xtrema_PCLocFOfLocEPCOfLocateExtPC2d_0.cxx | 51 + .../Extrema_PCLocFOfLocEPCOfLocateExtPC_0.cxx | 51 + src/Extrema/Extrema_POnCurv.hxx | 81 + src/Extrema/Extrema_POnCurv2d.hxx | 81 + src/Extrema/Extrema_POnCurv2d_0.cxx | 27 + src/Extrema/Extrema_POnCurv_0.cxx | 27 + src/Extrema/Extrema_POnSurf.cdl | 55 - src/Extrema/Extrema_POnSurf.cxx | 4 +- src/Extrema/Extrema_POnSurf.hxx | 81 + src/Extrema/Extrema_POnSurfParams.cdl | 76 - src/Extrema/Extrema_POnSurfParams.cxx | 4 +- src/Extrema/Extrema_POnSurfParams.hxx | 96 + src/Extrema/Extrema_Point.cdl | 48 - ...ema_SeqPCOfPCFOfEPCOfELPCOfLocateExtPC.hxx | 134 + ...a_SeqPCOfPCFOfEPCOfELPCOfLocateExtPC2d.hxx | 134 + ...SeqPCOfPCFOfEPCOfELPCOfLocateExtPC2d_0.cxx | 33 + ...a_SeqPCOfPCFOfEPCOfELPCOfLocateExtPC_0.cxx | 33 + .../Extrema_SeqPCOfPCFOfEPCOfExtPC.hxx | 134 + .../Extrema_SeqPCOfPCFOfEPCOfExtPC2d.hxx | 134 + .../Extrema_SeqPCOfPCFOfEPCOfExtPC2d_0.cxx | 33 + .../Extrema_SeqPCOfPCFOfEPCOfExtPC_0.cxx | 33 + ...ema_SeqPCOfPCLocFOfLocEPCOfLocateExtPC.hxx | 134 + ...a_SeqPCOfPCLocFOfLocEPCOfLocateExtPC2d.hxx | 134 + ...SeqPCOfPCLocFOfLocEPCOfLocateExtPC2d_0.cxx | 33 + ...a_SeqPCOfPCLocFOfLocEPCOfLocateExtPC_0.cxx | 33 + .../Extrema_SeqPOnCOfCCLocFOfLocECC.hxx | 134 + .../Extrema_SeqPOnCOfCCLocFOfLocECC2d.hxx | 134 + .../Extrema_SeqPOnCOfCCLocFOfLocECC2d_0.cxx | 33 + .../Extrema_SeqPOnCOfCCLocFOfLocECC_0.cxx | 33 + ...deOfSeqPCOfPCFOfEPCOfELPCOfLocateExtPC.hxx | 83 + ...OfSeqPCOfPCFOfEPCOfELPCOfLocateExtPC2d.hxx | 83 + ...SeqPCOfPCFOfEPCOfELPCOfLocateExtPC2d_0.cxx | 41 + ...OfSeqPCOfPCFOfEPCOfELPCOfLocateExtPC_0.cxx | 41 + ...a_SequenceNodeOfSeqPCOfPCFOfEPCOfExtPC.hxx | 83 + ...SequenceNodeOfSeqPCOfPCFOfEPCOfExtPC2d.hxx | 83 + ...quenceNodeOfSeqPCOfPCFOfEPCOfExtPC2d_0.cxx | 41 + ...SequenceNodeOfSeqPCOfPCFOfEPCOfExtPC_0.cxx | 41 + ...deOfSeqPCOfPCLocFOfLocEPCOfLocateExtPC.hxx | 83 + ...OfSeqPCOfPCLocFOfLocEPCOfLocateExtPC2d.hxx | 83 + ...SeqPCOfPCLocFOfLocEPCOfLocateExtPC2d_0.cxx | 41 + ...OfSeqPCOfPCLocFOfLocEPCOfLocateExtPC_0.cxx | 41 + ..._SequenceNodeOfSeqPOnCOfCCLocFOfLocECC.hxx | 83 + ...equenceNodeOfSeqPOnCOfCCLocFOfLocECC2d.hxx | 83 + ...uenceNodeOfSeqPOnCOfCCLocFOfLocECC2d_0.cxx | 41 + ...equenceNodeOfSeqPOnCOfCCLocFOfLocECC_0.cxx | 41 + src/Extrema/FILES | 179 +- src/FEmTool/FEmTool.cdl | 66 - src/FEmTool/FEmTool_Assembly.cdl | 95 - src/FEmTool/FEmTool_Assembly.cxx | 9 +- src/FEmTool/FEmTool_Assembly.hxx | 111 + src/FEmTool/FEmTool_Curve.cdl | 105 - src/FEmTool/FEmTool_Curve.cxx | 8 +- src/FEmTool/FEmTool_Curve.hxx | 119 + src/FEmTool/FEmTool_ElementaryCriterion.cdl | 75 - src/FEmTool/FEmTool_ElementaryCriterion.cxx | 7 +- src/FEmTool/FEmTool_ElementaryCriterion.hxx | 92 + src/FEmTool/FEmTool_ElementsOfRefMatrix.cdl | 72 - src/FEmTool/FEmTool_ElementsOfRefMatrix.cxx | 5 +- src/FEmTool/FEmTool_ElementsOfRefMatrix.hxx | 90 + src/FEmTool/FEmTool_LinearFlexion.cdl | 59 - src/FEmTool/FEmTool_LinearFlexion.cxx | 21 +- src/FEmTool/FEmTool_LinearFlexion.hxx | 80 + src/FEmTool/FEmTool_LinearJerk.cdl | 68 - src/FEmTool/FEmTool_LinearJerk.cxx | 22 +- src/FEmTool/FEmTool_LinearJerk.hxx | 80 + src/FEmTool/FEmTool_LinearTension.cdl | 59 - src/FEmTool/FEmTool_LinearTension.cxx | 21 +- src/FEmTool/FEmTool_LinearTension.hxx | 80 + src/FEmTool/FEmTool_ProfileMatrix.cdl | 95 - src/FEmTool/FEmTool_ProfileMatrix.cxx | 8 +- src/FEmTool/FEmTool_ProfileMatrix.hxx | 110 + src/FEmTool/FEmTool_SparseMatrix.cdl | 77 - src/FEmTool/FEmTool_SparseMatrix.cxx | 5 +- src/FEmTool/FEmTool_SparseMatrix.hxx | 90 + src/FEmTool/FILES | 20 +- src/FSD/FILES | 8 +- src/FSD/FSD.cdl | 32 - src/FSD/FSD_BinaryFile.cdl | 323 -- src/FSD/FSD_BinaryFile.cxx | 10 +- src/FSD/FSD_BinaryFile.hxx | 300 ++ src/FSD/FSD_CmpFile.cdl | 329 -- src/FSD/FSD_CmpFile.cxx | 13 +- src/FSD/FSD_CmpFile.hxx | 304 ++ src/FSD/FSD_File.cdl | 343 -- src/FSD/FSD_File.cxx | 10 +- src/FSD/FSD_File.hxx | 320 ++ src/FWOSDriver/FILES | 4 + src/FWOSDriver/FWOSDriver.cdl | 31 - src/FWOSDriver/FWOSDriver.cxx | 6 +- src/FWOSDriver/FWOSDriver.hxx | 64 + src/FWOSDriver/FWOSDriver_DriverFactory.cdl | 27 - src/FWOSDriver/FWOSDriver_DriverFactory.cxx | 5 +- src/FWOSDriver/FWOSDriver_DriverFactory.hxx | 64 + src/FairCurve/FILES | 30 + src/FairCurve/FairCurve.cdl | 59 - src/FairCurve/FairCurve_AnalysisCode.hxx | 42 + src/FairCurve/FairCurve_Batten.cdl | 307 -- src/FairCurve/FairCurve_Batten.cxx | 9 +- src/FairCurve/FairCurve_Batten.hxx | 290 ++ src/FairCurve/FairCurve_BattenLaw.cdl | 55 - src/FairCurve/FairCurve_BattenLaw.cxx | 3 +- src/FairCurve/FairCurve_BattenLaw.hxx | 83 + .../FairCurve_DistributionOfEnergy.cdl | 66 - .../FairCurve_DistributionOfEnergy.cxx | 3 +- .../FairCurve_DistributionOfEnergy.hxx | 78 + .../FairCurve_DistributionOfJerk.cdl | 48 - .../FairCurve_DistributionOfJerk.cxx | 11 +- .../FairCurve_DistributionOfJerk.hxx | 74 + .../FairCurve_DistributionOfSagging.cdl | 49 - .../FairCurve_DistributionOfSagging.cxx | 11 +- .../FairCurve_DistributionOfSagging.hxx | 74 + .../FairCurve_DistributionOfTension.cdl | 57 - .../FairCurve_DistributionOfTension.cxx | 10 +- .../FairCurve_DistributionOfTension.hxx | 81 + src/FairCurve/FairCurve_Energy.cdl | 141 - src/FairCurve/FairCurve_Energy.cxx | 6 +- src/FairCurve/FairCurve_Energy.hxx | 134 + src/FairCurve/FairCurve_EnergyOfBatten.cdl | 82 - src/FairCurve/FairCurve_EnergyOfBatten.cxx | 5 +- src/FairCurve/FairCurve_EnergyOfBatten.hxx | 94 + src/FairCurve/FairCurve_EnergyOfMVC.cdl | 90 - src/FairCurve/FairCurve_EnergyOfMVC.cxx | 6 +- src/FairCurve/FairCurve_EnergyOfMVC.hxx | 98 + src/FairCurve/FairCurve_MinimalVariation.cdl | 142 - src/FairCurve/FairCurve_MinimalVariation.cxx | 11 +- src/FairCurve/FairCurve_MinimalVariation.hxx | 147 + src/FairCurve/FairCurve_Newton.cdl | 54 - src/FairCurve/FairCurve_Newton.cxx | 4 +- src/FairCurve/FairCurve_Newton.hxx | 80 + src/FilletSurf/FILES | 7 + src/FilletSurf/FilletSurf.cdl | 106 - src/FilletSurf/FilletSurf_Builder.cdl | 215 -- src/FilletSurf/FilletSurf_Builder.cxx | 16 +- src/FilletSurf/FilletSurf_Builder.hxx | 162 + src/FilletSurf/FilletSurf_ErrorTypeStatus.hxx | 31 + src/FilletSurf/FilletSurf_InternalBuilder.cdl | 285 -- src/FilletSurf/FilletSurf_InternalBuilder.cxx | 78 +- src/FilletSurf/FilletSurf_InternalBuilder.hxx | 154 + src/FilletSurf/FilletSurf_StatusDone.hxx | 28 + src/FilletSurf/FilletSurf_StatusType.hxx | 28 + src/Font/FILES | 13 +- src/Font/Font.cdl | 36 - src/Font/Font_FontAspect.hxx | 28 + src/Font/Font_FontMgr.cdl | 103 - src/Font/Font_FontMgr.cxx | 7 +- src/Font/Font_FontMgr.hxx | 102 + src/Font/Font_SystemFont.cdl | 71 - src/Font/Font_SystemFont.cxx | 4 +- src/Font/Font_SystemFont.hxx | 100 + src/GC/FILES | 39 + src/GC/GC.cdl | 85 - src/GC/GC_MakeArcOfCircle.cdl | 105 - src/GC/GC_MakeArcOfCircle.cxx | 13 +- src/GC/GC_MakeArcOfCircle.hxx | 117 + src/GC/GC_MakeArcOfEllipse.cdl | 77 - src/GC/GC_MakeArcOfEllipse.cxx | 8 +- src/GC/GC_MakeArcOfEllipse.hxx | 94 + src/GC/GC_MakeArcOfHyperbola.cdl | 74 - src/GC/GC_MakeArcOfHyperbola.cxx | 8 +- src/GC/GC_MakeArcOfHyperbola.hxx | 92 + src/GC/GC_MakeArcOfParabola.cdl | 70 - src/GC/GC_MakeArcOfParabola.cxx | 8 +- src/GC/GC_MakeArcOfParabola.hxx | 89 + src/GC/GC_MakeCircle.cdl | 111 - src/GC/GC_MakeCircle.cxx | 9 +- src/GC/GC_MakeCircle.hxx | 128 + src/GC/GC_MakeConicalSurface.cdl | 138 - src/GC/GC_MakeConicalSurface.cxx | 11 +- src/GC/GC_MakeConicalSurface.hxx | 152 + src/GC/GC_MakeCylindricalSurface.cdl | 123 - src/GC/GC_MakeCylindricalSurface.cxx | 9 +- src/GC/GC_MakeCylindricalSurface.hxx | 140 + src/GC/GC_MakeEllipse.cdl | 82 - src/GC/GC_MakeEllipse.cxx | 7 +- src/GC/GC_MakeEllipse.hxx | 106 + src/GC/GC_MakeHyperbola.cdl | 91 - src/GC/GC_MakeHyperbola.cxx | 7 +- src/GC/GC_MakeHyperbola.hxx | 116 + src/GC/GC_MakeLine.cdl | 84 - src/GC/GC_MakeLine.cxx | 9 +- src/GC/GC_MakeLine.hxx | 104 + src/GC/GC_MakeMirror.cdl | 71 - src/GC/GC_MakeMirror.cxx | 10 +- src/GC/GC_MakeMirror.hxx | 91 + src/GC/GC_MakePlane.cdl | 109 - src/GC/GC_MakePlane.cxx | 14 +- src/GC/GC_MakePlane.hxx | 129 + src/GC/GC_MakeRotation.cdl | 60 - src/GC/GC_MakeRotation.cxx | 8 +- src/GC/GC_MakeRotation.hxx | 84 + src/GC/GC_MakeScale.cdl | 53 - src/GC/GC_MakeScale.cxx | 5 +- src/GC/GC_MakeScale.hxx | 77 + src/GC/GC_MakeSegment.cdl | 74 - src/GC/GC_MakeSegment.cxx | 8 +- src/GC/GC_MakeSegment.hxx | 95 + src/GC/GC_MakeTranslation.cdl | 54 - src/GC/GC_MakeTranslation.cxx | 6 +- src/GC/GC_MakeTranslation.hxx | 78 + src/GC/GC_MakeTrimmedCone.cdl | 81 - src/GC/GC_MakeTrimmedCone.cxx | 9 +- src/GC/GC_MakeTrimmedCone.hxx | 104 + src/GC/GC_MakeTrimmedCylinder.cdl | 103 - src/GC/GC_MakeTrimmedCylinder.cxx | 13 +- src/GC/GC_MakeTrimmedCylinder.hxx | 122 + src/GC/GC_Root.cdl | 47 - src/GC/GC_Root.cxx | 3 +- src/GC/GC_Root.hxx | 72 + src/GCE2d/FILES | 31 + src/GCE2d/GCE2d.cdl | 74 - src/GCE2d/GCE2d_MakeArcOfCircle.cdl | 92 - src/GCE2d/GCE2d_MakeArcOfCircle.cxx | 15 +- src/GCE2d/GCE2d_MakeArcOfCircle.hxx | 102 + src/GCE2d/GCE2d_MakeArcOfEllipse.cdl | 78 - src/GCE2d/GCE2d_MakeArcOfEllipse.cxx | 8 +- src/GCE2d/GCE2d_MakeArcOfEllipse.hxx | 94 + src/GCE2d/GCE2d_MakeArcOfHyperbola.cdl | 77 - src/GCE2d/GCE2d_MakeArcOfHyperbola.cxx | 10 +- src/GCE2d/GCE2d_MakeArcOfHyperbola.hxx | 93 + src/GCE2d/GCE2d_MakeArcOfParabola.cdl | 77 - src/GCE2d/GCE2d_MakeArcOfParabola.cxx | 8 +- src/GCE2d/GCE2d_MakeArcOfParabola.hxx | 93 + src/GCE2d/GCE2d_MakeCircle.cdl | 115 - src/GCE2d/GCE2d_MakeCircle.cxx | 7 +- src/GCE2d/GCE2d_MakeCircle.hxx | 131 + src/GCE2d/GCE2d_MakeEllipse.cdl | 96 - src/GCE2d/GCE2d_MakeEllipse.cxx | 8 +- src/GCE2d/GCE2d_MakeEllipse.hxx | 116 + src/GCE2d/GCE2d_MakeHyperbola.cdl | 116 - src/GCE2d/GCE2d_MakeHyperbola.cxx | 8 +- src/GCE2d/GCE2d_MakeHyperbola.hxx | 136 + src/GCE2d/GCE2d_MakeLine.cdl | 84 - src/GCE2d/GCE2d_MakeLine.cxx | 9 +- src/GCE2d/GCE2d_MakeLine.hxx | 104 + src/GCE2d/GCE2d_MakeMirror.cdl | 63 - src/GCE2d/GCE2d_MakeMirror.cxx | 9 +- src/GCE2d/GCE2d_MakeMirror.hxx | 83 + src/GCE2d/GCE2d_MakeParabola.cdl | 112 - src/GCE2d/GCE2d_MakeParabola.cxx | 8 +- src/GCE2d/GCE2d_MakeParabola.hxx | 134 + src/GCE2d/GCE2d_MakeRotation.cdl | 50 - src/GCE2d/GCE2d_MakeRotation.cxx | 6 +- src/GCE2d/GCE2d_MakeRotation.hxx | 73 + src/GCE2d/GCE2d_MakeScale.cdl | 52 - src/GCE2d/GCE2d_MakeScale.cxx | 6 +- src/GCE2d/GCE2d_MakeScale.hxx | 76 + src/GCE2d/GCE2d_MakeSegment.cdl | 90 - src/GCE2d/GCE2d_MakeSegment.cxx | 11 +- src/GCE2d/GCE2d_MakeSegment.hxx | 109 + src/GCE2d/GCE2d_MakeTranslation.cdl | 55 - src/GCE2d/GCE2d_MakeTranslation.cxx | 7 +- src/GCE2d/GCE2d_MakeTranslation.hxx | 78 + src/GCE2d/GCE2d_Root.cdl | 47 - src/GCE2d/GCE2d_Root.cxx | 3 +- src/GCE2d/GCE2d_Root.hxx | 71 + src/GCPnts/FILES | 24 +- src/GCPnts/GCPnts.cdl | 55 - src/GCPnts/GCPnts_AbscissaPoint.cdl | 175 - src/GCPnts/GCPnts_AbscissaPoint.cxx | 7 +- src/GCPnts/GCPnts_AbscissaPoint.hxx | 164 + src/GCPnts/GCPnts_AbscissaType.hxx | 28 + src/GCPnts/GCPnts_DeflectionType.hxx | 29 + src/GCPnts/GCPnts_QuasiUniformAbscissa.cdl | 180 - src/GCPnts/GCPnts_QuasiUniformAbscissa.hxx | 172 + src/GCPnts/GCPnts_QuasiUniformDeflection.cdl | 271 -- src/GCPnts/GCPnts_QuasiUniformDeflection.cxx | 19 +- src/GCPnts/GCPnts_QuasiUniformDeflection.hxx | 262 ++ src/GCPnts/GCPnts_TangentialDeflection.cdl | 240 -- src/GCPnts/GCPnts_TangentialDeflection.cxx | 7 +- src/GCPnts/GCPnts_TangentialDeflection.hxx | 160 + src/GCPnts/GCPnts_UniformAbscissa.cdl | 208 -- src/GCPnts/GCPnts_UniformAbscissa.hxx | 163 + src/GCPnts/GCPnts_UniformDeflection.cdl | 261 -- src/GCPnts/GCPnts_UniformDeflection.cxx | 15 +- src/GCPnts/GCPnts_UniformDeflection.hxx | 211 ++ src/GProp/FILES | 19 + src/GProp/GProp.cdl | 114 - src/GProp/GProp.cxx | 8 +- src/GProp/GProp.hxx | 104 + src/GProp/GProp_CelGProps.cdl | 48 - src/GProp/GProp_CelGProps.cxx | 15 +- src/GProp/GProp_CelGProps.hxx | 80 + src/GProp/GProp_EquaType.hxx | 30 + src/GProp/GProp_GProps.cdl | 283 -- src/GProp/GProp_GProps.cxx | 16 +- src/GProp/GProp_GProps.hxx | 285 ++ src/GProp/GProp_PEquation.cdl | 145 - src/GProp/GProp_PEquation.cxx | 10 +- src/GProp/GProp_PEquation.hxx | 164 + src/GProp/GProp_PGProps.cdl | 182 - src/GProp/GProp_PGProps.cxx | 9 +- src/GProp/GProp_PGProps.hxx | 180 + src/GProp/GProp_PrincipalProps.cdl | 183 - src/GProp/GProp_PrincipalProps.cxx | 5 +- src/GProp/GProp_PrincipalProps.hxx | 200 + src/GProp/GProp_SelGProps.cdl | 60 - src/GProp/GProp_SelGProps.cxx | 14 +- src/GProp/GProp_SelGProps.hxx | 86 + src/GProp/GProp_UndefinedAxis.hxx | 37 + src/GProp/GProp_ValueType.hxx | 36 + src/GProp/GProp_VelGProps.cdl | 65 - src/GProp/GProp_VelGProps.cxx | 13 +- src/GProp/GProp_VelGProps.hxx | 87 + src/GccAna/FILES | 32 +- src/GccAna/GccAna.cdl | 68 - src/GccAna/GccAna_Circ2d2TanOn.cdl | 360 -- src/GccAna/GccAna_Circ2d2TanOn.cxx | 28 +- src/GccAna/GccAna_Circ2d2TanOn.hxx | 250 ++ src/GccAna/GccAna_Circ2d2TanOn_1.cxx | 22 +- src/GccAna/GccAna_Circ2d2TanOn_10.cxx | 22 +- src/GccAna/GccAna_Circ2d2TanOn_11.cxx | 16 +- src/GccAna/GccAna_Circ2d2TanOn_2.cxx | 17 +- src/GccAna/GccAna_Circ2d2TanOn_3.cxx | 26 +- src/GccAna/GccAna_Circ2d2TanOn_4.cxx | 25 +- src/GccAna/GccAna_Circ2d2TanOn_5.cxx | 13 +- src/GccAna/GccAna_Circ2d2TanOn_6.cxx | 22 +- src/GccAna/GccAna_Circ2d2TanOn_7.cxx | 21 +- src/GccAna/GccAna_Circ2d2TanOn_8.cxx | 29 +- src/GccAna/GccAna_Circ2d2TanOn_9.cxx | 17 +- src/GccAna/GccAna_Circ2d2TanRad.cdl | 276 -- src/GccAna/GccAna_Circ2d2TanRad.cxx | 10 +- src/GccAna/GccAna_Circ2d2TanRad.hxx | 201 + src/GccAna/GccAna_Circ2d2TanRad_1.cxx | 12 +- src/GccAna/GccAna_Circ2d2TanRad_2.cxx | 13 +- src/GccAna/GccAna_Circ2d2TanRad_3.cxx | 15 +- src/GccAna/GccAna_Circ2d2TanRad_4.cxx | 19 +- src/GccAna/GccAna_Circ2d2TanRad_5.cxx | 13 +- src/GccAna/GccAna_Circ2d3Tan.cdl | 369 -- src/GccAna/GccAna_Circ2d3Tan.cxx | 29 +- src/GccAna/GccAna_Circ2d3Tan.hxx | 250 ++ src/GccAna/GccAna_Circ2d3Tan_1.cxx | 25 +- src/GccAna/GccAna_Circ2d3Tan_2.cxx | 24 +- src/GccAna/GccAna_Circ2d3Tan_3.cxx | 19 +- src/GccAna/GccAna_Circ2d3Tan_4.cxx | 25 +- src/GccAna/GccAna_Circ2d3Tan_5.cxx | 25 +- src/GccAna/GccAna_Circ2d3Tan_6.cxx | 24 +- src/GccAna/GccAna_Circ2d3Tan_7.cxx | 26 +- src/GccAna/GccAna_Circ2d3Tan_8.cxx | 23 +- src/GccAna/GccAna_Circ2d3Tan_9.cxx | 18 +- src/GccAna/GccAna_Circ2dBisec.cdl | 94 - src/GccAna/GccAna_Circ2dBisec.cxx | 30 +- src/GccAna/GccAna_Circ2dBisec.hxx | 96 + src/GccAna/GccAna_Circ2dTanCen.cdl | 196 - src/GccAna/GccAna_Circ2dTanCen.cxx | 14 +- src/GccAna/GccAna_Circ2dTanCen.hxx | 176 + src/GccAna/GccAna_Circ2dTanOnRad.cdl | 271 -- src/GccAna/GccAna_Circ2dTanOnRad.cxx | 15 +- src/GccAna/GccAna_Circ2dTanOnRad.hxx | 217 ++ src/GccAna/GccAna_Circ2dTanOnRad_1.cxx | 15 +- src/GccAna/GccAna_Circ2dTanOnRad_2.cxx | 12 +- src/GccAna/GccAna_Circ2dTanOnRad_3.cxx | 13 +- src/GccAna/GccAna_Circ2dTanOnRad_4.cxx | 13 +- src/GccAna/GccAna_Circ2dTanOnRad_5.cxx | 12 +- src/GccAna/GccAna_CircLin2dBisec.cdl | 83 - src/GccAna/GccAna_CircLin2dBisec.cxx | 17 +- src/GccAna/GccAna_CircLin2dBisec.hxx | 96 + src/GccAna/GccAna_CircPnt2dBisec.cdl | 101 - src/GccAna/GccAna_CircPnt2dBisec.cxx | 17 +- src/GccAna/GccAna_CircPnt2dBisec.hxx | 108 + src/GccAna/GccAna_Lin2d2Tan.cdl | 208 -- src/GccAna/GccAna_Lin2d2Tan.cxx | 13 +- src/GccAna/GccAna_Lin2d2Tan.hxx | 172 + src/GccAna/GccAna_Lin2dBisec.cdl | 145 - src/GccAna/GccAna_Lin2dBisec.cxx | 16 +- src/GccAna/GccAna_Lin2dBisec.hxx | 131 + src/GccAna/GccAna_Lin2dTanObl.cdl | 177 - src/GccAna/GccAna_Lin2dTanObl.cxx | 15 +- src/GccAna/GccAna_Lin2dTanObl.hxx | 151 + src/GccAna/GccAna_Lin2dTanPar.cdl | 151 - src/GccAna/GccAna_Lin2dTanPar.cxx | 15 +- src/GccAna/GccAna_Lin2dTanPar.hxx | 143 + src/GccAna/GccAna_Lin2dTanPer.cdl | 204 - src/GccAna/GccAna_Lin2dTanPer.cxx | 18 +- src/GccAna/GccAna_Lin2dTanPer.hxx | 172 + src/GccAna/GccAna_LinPnt2dBisec.cdl | 64 - src/GccAna/GccAna_LinPnt2dBisec.cxx | 17 +- src/GccAna/GccAna_LinPnt2dBisec.hxx | 84 + src/GccAna/GccAna_NoSolution.hxx | 37 + src/GccAna/GccAna_Pnt2dBisec.cdl | 70 - src/GccAna/GccAna_Pnt2dBisec.cxx | 12 +- src/GccAna/GccAna_Pnt2dBisec.hxx | 86 + src/GccEnt/FILES | 8 + src/GccEnt/GccEnt.cdl | 119 - src/GccEnt/GccEnt.cxx | 6 +- src/GccEnt/GccEnt.hxx | 124 + src/GccEnt/GccEnt_BadQualifier.hxx | 37 + src/GccEnt/GccEnt_Position.hxx | 44 + src/GccEnt/GccEnt_QualifiedCirc.cdl | 92 - src/GccEnt/GccEnt_QualifiedCirc.cxx | 3 +- src/GccEnt/GccEnt_QualifiedCirc.hxx | 107 + src/GccEnt/GccEnt_QualifiedLin.cdl | 88 - src/GccEnt/GccEnt_QualifiedLin.cxx | 4 +- src/GccEnt/GccEnt_QualifiedLin.hxx | 104 + src/GccInt/FILES | 15 + src/GccInt/GccInt.cdl | 46 - src/GccInt/GccInt_BCirc.cdl | 47 - src/GccInt/GccInt_BCirc.cxx | 6 +- src/GccInt/GccInt_BCirc.hxx | 73 + src/GccInt/GccInt_BElips.cdl | 47 - src/GccInt/GccInt_BElips.cxx | 6 +- src/GccInt/GccInt_BElips.hxx | 74 + src/GccInt/GccInt_BHyper.cdl | 47 - src/GccInt/GccInt_BHyper.cxx | 6 +- src/GccInt/GccInt_BHyper.hxx | 74 + src/GccInt/GccInt_BLine.cdl | 45 - src/GccInt/GccInt_BLine.cxx | 6 +- src/GccInt/GccInt_BLine.hxx | 73 + src/GccInt/GccInt_BParab.cdl | 46 - src/GccInt/GccInt_BParab.cxx | 6 +- src/GccInt/GccInt_BParab.hxx | 73 + src/GccInt/GccInt_BPoint.cdl | 45 - src/GccInt/GccInt_BPoint.cxx | 6 +- src/GccInt/GccInt_BPoint.hxx | 72 + src/GccInt/GccInt_Bisec.cdl | 98 - src/GccInt/GccInt_Bisec.cxx | 5 +- src/GccInt/GccInt_Bisec.hxx | 113 + src/GccInt/GccInt_IType.hxx | 31 + src/Geom/FILES | 82 +- src/Geom/Geom.cdl | 132 - src/Geom/Geom_Axis1Placement.cdl | 76 - src/Geom/Geom_Axis1Placement.cxx | 9 +- src/Geom/Geom_Axis1Placement.hxx | 102 + src/Geom/Geom_Axis2Placement.cdl | 158 - src/Geom/Geom_Axis2Placement.cxx | 10 +- src/Geom/Geom_Axis2Placement.hxx | 159 + src/Geom/Geom_AxisPlacement.cdl | 112 - src/Geom/Geom_AxisPlacement.cxx | 8 +- src/Geom/Geom_AxisPlacement.hxx | 135 + src/Geom/Geom_BSplineCurve.cdl | 1029 ----- src/Geom/Geom_BSplineCurve.cxx | 20 +- src/Geom/Geom_BSplineCurve.hxx | 835 +++++ src/Geom/Geom_BSplineCurve_1.cxx | 16 +- src/Geom/Geom_BSplineSurface.cdl | 1454 -------- src/Geom/Geom_BSplineSurface.cxx | 19 +- src/Geom/Geom_BSplineSurface.hxx | 1190 ++++++ src/Geom/Geom_BSplineSurface_1.cxx | 28 +- src/Geom/Geom_BezierCurve.cdl | 437 --- src/Geom/Geom_BezierCurve.cxx | 13 +- src/Geom/Geom_BezierCurve.hxx | 375 ++ src/Geom/Geom_BezierSurface.cdl | 740 ---- src/Geom/Geom_BezierSurface.cxx | 20 +- src/Geom/Geom_BezierSurface.hxx | 623 ++++ src/Geom/Geom_BoundedCurve.cdl | 51 - src/Geom/Geom_BoundedCurve.cxx | 5 +- src/Geom/Geom_BoundedCurve.hxx | 80 + src/Geom/Geom_BoundedSurface.cdl | 52 - src/Geom/Geom_BoundedSurface.cxx | 4 +- src/Geom/Geom_BoundedSurface.hxx | 83 + src/Geom/Geom_CartesianPoint.cdl | 95 - src/Geom/Geom_CartesianPoint.cxx | 7 +- src/Geom/Geom_CartesianPoint.hxx | 111 + src/Geom/Geom_Circle.cdl | 182 - src/Geom/Geom_Circle.cxx | 14 +- src/Geom/Geom_Circle.hxx | 185 + src/Geom/Geom_Conic.cdl | 150 - src/Geom/Geom_Conic.cxx | 10 +- src/Geom/Geom_Conic.hxx | 163 + src/Geom/Geom_ConicalSurface.cdl | 308 -- src/Geom/Geom_ConicalSurface.cxx | 32 +- src/Geom/Geom_ConicalSurface.hxx | 307 ++ src/Geom/Geom_Curve.cdl | 267 -- src/Geom/Geom_Curve.cxx | 11 +- src/Geom/Geom_Curve.hxx | 251 ++ src/Geom/Geom_CylindricalSurface.cdl | 235 -- src/Geom/Geom_CylindricalSurface.cxx | 30 +- src/Geom/Geom_CylindricalSurface.hxx | 239 ++ src/Geom/Geom_Direction.cdl | 136 - src/Geom/Geom_Direction.cxx | 8 +- src/Geom/Geom_Direction.hxx | 144 + src/Geom/Geom_ElementarySurface.cdl | 152 - src/Geom/Geom_ElementarySurface.cxx | 8 +- src/Geom/Geom_ElementarySurface.hxx | 166 + src/Geom/Geom_Ellipse.cdl | 260 -- src/Geom/Geom_Ellipse.cxx | 13 +- src/Geom/Geom_Ellipse.hxx | 248 ++ src/Geom/Geom_Geometry.cdl | 153 - src/Geom/Geom_Geometry.cxx | 9 +- src/Geom/Geom_Geometry.hxx | 144 + src/Geom/Geom_Hyperbola.cdl | 318 -- src/Geom/Geom_Hyperbola.cxx | 18 +- src/Geom/Geom_Hyperbola.hxx | 304 ++ src/Geom/Geom_Line.cdl | 210 -- src/Geom/Geom_Line.cxx | 17 +- src/Geom/Geom_Line.hxx | 206 + src/Geom/Geom_OffsetCurve.cdl | 372 -- src/Geom/Geom_OffsetCurve.cxx | 29 +- src/Geom/Geom_OffsetCurve.hxx | 328 ++ src/Geom/Geom_OffsetSurface.cdl | 507 --- src/Geom/Geom_OffsetSurface.cxx | 76 +- src/Geom/Geom_OffsetSurface.hxx | 442 +++ src/Geom/Geom_OsculatingSurface.cdl | 115 - src/Geom/Geom_OsculatingSurface.cxx | 26 +- src/Geom/Geom_OsculatingSurface.hxx | 114 + src/Geom/Geom_Parabola.cdl | 250 -- src/Geom/Geom_Parabola.cxx | 12 +- src/Geom/Geom_Parabola.hxx | 250 ++ src/Geom/Geom_Plane.cdl | 245 -- src/Geom/Geom_Plane.cxx | 26 +- src/Geom/Geom_Plane.hxx | 244 ++ src/Geom/Geom_Point.cdl | 64 - src/Geom/Geom_Point.cxx | 5 +- src/Geom/Geom_Point.hxx | 85 + src/Geom/Geom_RectangularTrimmedSurface.cdl | 375 -- src/Geom/Geom_RectangularTrimmedSurface.cxx | 41 +- src/Geom/Geom_RectangularTrimmedSurface.hxx | 342 ++ src/Geom/Geom_SphericalSurface.cdl | 240 -- src/Geom/Geom_SphericalSurface.cxx | 14 +- src/Geom/Geom_SphericalSurface.hxx | 248 ++ src/Geom/Geom_Surface.cdl | 329 -- src/Geom/Geom_Surface.cxx | 13 +- src/Geom/Geom_Surface.hxx | 303 ++ src/Geom/Geom_SurfaceOfLinearExtrusion.cdl | 302 -- src/Geom/Geom_SurfaceOfLinearExtrusion.cxx | 37 +- src/Geom/Geom_SurfaceOfLinearExtrusion.hxx | 292 ++ src/Geom/Geom_SurfaceOfRevolution.cdl | 358 -- src/Geom/Geom_SurfaceOfRevolution.cxx | 23 +- src/Geom/Geom_SurfaceOfRevolution.hxx | 343 ++ src/Geom/Geom_SweptSurface.cdl | 68 - src/Geom/Geom_SweptSurface.cxx | 7 +- src/Geom/Geom_SweptSurface.hxx | 94 + src/Geom/Geom_ToroidalSurface.cdl | 276 -- src/Geom/Geom_ToroidalSurface.cxx | 16 +- src/Geom/Geom_ToroidalSurface.hxx | 273 ++ src/Geom/Geom_Transformation.cdl | 260 -- src/Geom/Geom_Transformation.cxx | 12 +- src/Geom/Geom_Transformation.hxx | 253 ++ src/Geom/Geom_TrimmedCurve.cdl | 307 -- src/Geom/Geom_TrimmedCurve.cxx | 24 +- src/Geom/Geom_TrimmedCurve.hxx | 281 ++ src/Geom/Geom_UndefinedDerivative.hxx | 37 + src/Geom/Geom_UndefinedValue.hxx | 37 + src/Geom/Geom_Vector.cdl | 165 - src/Geom/Geom_Vector.cxx | 8 +- src/Geom/Geom_Vector.hxx | 161 + src/Geom/Geom_VectorWithMagnitude.cdl | 171 - src/Geom/Geom_VectorWithMagnitude.cxx | 10 +- src/Geom/Geom_VectorWithMagnitude.hxx | 168 + src/Geom2d/FILES | 42 + src/Geom2d/Geom2d.cdl | 91 - src/Geom2d/Geom2d_AxisPlacement.cdl | 109 - src/Geom2d/Geom2d_AxisPlacement.cxx | 9 +- src/Geom2d/Geom2d_AxisPlacement.hxx | 128 + src/Geom2d/Geom2d_BSplineCurve.cdl | 1033 ------ src/Geom2d/Geom2d_BSplineCurve.cxx | 18 +- src/Geom2d/Geom2d_BSplineCurve.hxx | 861 +++++ src/Geom2d/Geom2d_BSplineCurve_1.cxx | 16 +- src/Geom2d/Geom2d_BezierCurve.cdl | 419 --- src/Geom2d/Geom2d_BezierCurve.cxx | 13 +- src/Geom2d/Geom2d_BezierCurve.hxx | 361 ++ src/Geom2d/Geom2d_BoundedCurve.cdl | 55 - src/Geom2d/Geom2d_BoundedCurve.cxx | 5 +- src/Geom2d/Geom2d_BoundedCurve.hxx | 87 + src/Geom2d/Geom2d_CartesianPoint.cdl | 87 - src/Geom2d/Geom2d_CartesianPoint.cxx | 7 +- src/Geom2d/Geom2d_CartesianPoint.hxx | 103 + src/Geom2d/Geom2d_Circle.cdl | 180 - src/Geom2d/Geom2d_Circle.cxx | 14 +- src/Geom2d/Geom2d_Circle.hxx | 182 + src/Geom2d/Geom2d_Conic.cdl | 142 - src/Geom2d/Geom2d_Conic.cxx | 9 +- src/Geom2d/Geom2d_Conic.hxx | 151 + src/Geom2d/Geom2d_Curve.cdl | 263 -- src/Geom2d/Geom2d_Curve.cxx | 11 +- src/Geom2d/Geom2d_Curve.hxx | 250 ++ src/Geom2d/Geom2d_Direction.cdl | 103 - src/Geom2d/Geom2d_Direction.cxx | 8 +- src/Geom2d/Geom2d_Direction.hxx | 122 + src/Geom2d/Geom2d_Ellipse.cdl | 282 -- src/Geom2d/Geom2d_Ellipse.cxx | 15 +- src/Geom2d/Geom2d_Ellipse.hxx | 269 ++ src/Geom2d/Geom2d_Geometry.cdl | 129 - src/Geom2d/Geom2d_Geometry.cxx | 8 +- src/Geom2d/Geom2d_Geometry.hxx | 136 + src/Geom2d/Geom2d_Hyperbola.cdl | 335 -- src/Geom2d/Geom2d_Hyperbola.cxx | 14 +- src/Geom2d/Geom2d_Hyperbola.hxx | 322 ++ src/Geom2d/Geom2d_Line.cdl | 205 - src/Geom2d/Geom2d_Line.cxx | 12 +- src/Geom2d/Geom2d_Line.hxx | 208 ++ src/Geom2d/Geom2d_OffsetCurve.cdl | 357 -- src/Geom2d/Geom2d_OffsetCurve.cxx | 29 +- src/Geom2d/Geom2d_OffsetCurve.hxx | 325 ++ src/Geom2d/Geom2d_Parabola.cdl | 232 -- src/Geom2d/Geom2d_Parabola.cxx | 14 +- src/Geom2d/Geom2d_Parabola.hxx | 232 ++ src/Geom2d/Geom2d_Point.cdl | 58 - src/Geom2d/Geom2d_Point.cxx | 5 +- src/Geom2d/Geom2d_Point.hxx | 82 + src/Geom2d/Geom2d_Transformation.cdl | 239 -- src/Geom2d/Geom2d_Transformation.cxx | 9 +- src/Geom2d/Geom2d_Transformation.hxx | 243 ++ src/Geom2d/Geom2d_TrimmedCurve.cdl | 296 -- src/Geom2d/Geom2d_TrimmedCurve.cxx | 26 +- src/Geom2d/Geom2d_TrimmedCurve.hxx | 285 ++ src/Geom2d/Geom2d_UndefinedDerivative.hxx | 37 + src/Geom2d/Geom2d_UndefinedValue.hxx | 37 + src/Geom2d/Geom2d_Vector.cdl | 93 - src/Geom2d/Geom2d_Vector.cxx | 7 +- src/Geom2d/Geom2d_Vector.hxx | 107 + src/Geom2d/Geom2d_VectorWithMagnitude.cdl | 158 - src/Geom2d/Geom2d_VectorWithMagnitude.cxx | 9 +- src/Geom2d/Geom2d_VectorWithMagnitude.hxx | 185 + src/Geom2dAPI/FILES | 13 + src/Geom2dAPI/Geom2dAPI.cdl | 107 - src/Geom2dAPI/Geom2dAPI_ExtremaCurveCurve.cdl | 182 - src/Geom2dAPI/Geom2dAPI_ExtremaCurveCurve.cxx | 14 +- src/Geom2dAPI/Geom2dAPI_ExtremaCurveCurve.hxx | 159 + src/Geom2dAPI/Geom2dAPI_InterCurveCurve.cdl | 182 - src/Geom2dAPI/Geom2dAPI_InterCurveCurve.cxx | 12 +- src/Geom2dAPI/Geom2dAPI_InterCurveCurve.hxx | 166 + src/Geom2dAPI/Geom2dAPI_Interpolate.cdl | 158 - src/Geom2dAPI/Geom2dAPI_Interpolate.cxx | 11 +- src/Geom2dAPI/Geom2dAPI_Interpolate.hxx | 141 + src/Geom2dAPI/Geom2dAPI_PointsToBSpline.cdl | 262 -- src/Geom2dAPI/Geom2dAPI_PointsToBSpline.cxx | 17 +- src/Geom2dAPI/Geom2dAPI_PointsToBSpline.hxx | 199 + .../Geom2dAPI_ProjectPointOnCurve.cdl | 191 - .../Geom2dAPI_ProjectPointOnCurve.cxx | 9 +- .../Geom2dAPI_ProjectPointOnCurve.hxx | 157 + src/Geom2dAdaptor/FILES | 9 + src/Geom2dAdaptor/Geom2dAdaptor.cdl | 58 - src/Geom2dAdaptor/Geom2dAdaptor.cxx | 19 +- src/Geom2dAdaptor/Geom2dAdaptor.hxx | 73 + src/Geom2dAdaptor/Geom2dAdaptor_Curve.cdl | 320 -- src/Geom2dAdaptor/Geom2dAdaptor_Curve.cxx | 51 +- src/Geom2dAdaptor/Geom2dAdaptor_Curve.hxx | 250 ++ src/Geom2dAdaptor/Geom2dAdaptor_GHCurve.hxx | 87 + src/Geom2dAdaptor/Geom2dAdaptor_GHCurve_0.cxx | 42 + src/Geom2dAdaptor/Geom2dAdaptor_HCurve.cdl | 43 - src/Geom2dAdaptor/Geom2dAdaptor_HCurve.cxx | 8 +- src/Geom2dAdaptor/Geom2dAdaptor_HCurve.hxx | 74 + src/Geom2dConvert/FILES | 10 + src/Geom2dConvert/Geom2dConvert.cdl | 267 -- src/Geom2dConvert/Geom2dConvert.cxx | 69 +- src/Geom2dConvert/Geom2dConvert.hxx | 253 ++ .../Geom2dConvert_ApproxCurve.cdl | 93 - .../Geom2dConvert_ApproxCurve.cxx | 18 +- .../Geom2dConvert_ApproxCurve.hxx | 113 + ...eom2dConvert_BSplineCurveKnotSplitting.cdl | 120 - ...eom2dConvert_BSplineCurveKnotSplitting.cxx | 7 +- ...eom2dConvert_BSplineCurveKnotSplitting.hxx | 135 + ...eom2dConvert_BSplineCurveToBezierCurve.cdl | 129 - ...eom2dConvert_BSplineCurveToBezierCurve.cxx | 10 +- ...eom2dConvert_BSplineCurveToBezierCurve.hxx | 144 + .../Geom2dConvert_CompCurveToBSplineCurve.cdl | 70 - .../Geom2dConvert_CompCurveToBSplineCurve.cxx | 13 +- .../Geom2dConvert_CompCurveToBSplineCurve.hxx | 88 + src/Geom2dGcc/FILES | 56 + src/Geom2dGcc/Geom2dGcc.cdl | 175 - src/Geom2dGcc/Geom2dGcc.cxx | 4 +- src/Geom2dGcc/Geom2dGcc.hxx | 190 + src/Geom2dGcc/Geom2dGcc_Circ2d2TanOn.cdl | 291 -- src/Geom2dGcc/Geom2dGcc_Circ2d2TanOn.cxx | 20 +- src/Geom2dGcc/Geom2dGcc_Circ2d2TanOn.hxx | 215 ++ src/Geom2dGcc/Geom2dGcc_Circ2d2TanOnGeo.cdl | 293 -- src/Geom2dGcc/Geom2dGcc_Circ2d2TanOnGeo.cxx | 22 +- src/Geom2dGcc/Geom2dGcc_Circ2d2TanOnGeo.hxx | 212 ++ src/Geom2dGcc/Geom2dGcc_Circ2d2TanOnIter.cdl | 346 -- src/Geom2dGcc/Geom2dGcc_Circ2d2TanOnIter.cxx | 23 +- src/Geom2dGcc/Geom2dGcc_Circ2d2TanOnIter.hxx | 230 ++ src/Geom2dGcc/Geom2dGcc_Circ2d2TanRad.cdl | 287 -- src/Geom2dGcc/Geom2dGcc_Circ2d2TanRad.cxx | 18 +- src/Geom2dGcc/Geom2dGcc_Circ2d2TanRad.hxx | 229 ++ src/Geom2dGcc/Geom2dGcc_Circ2d2TanRadGeo.cdl | 261 -- src/Geom2dGcc/Geom2dGcc_Circ2d2TanRadGeo.cxx | 23 +- src/Geom2dGcc/Geom2dGcc_Circ2d2TanRadGeo.hxx | 195 + src/Geom2dGcc/Geom2dGcc_Circ2d3Tan.cdl | 319 -- src/Geom2dGcc/Geom2dGcc_Circ2d3Tan.cxx | 19 +- src/Geom2dGcc/Geom2dGcc_Circ2d3Tan.hxx | 227 ++ src/Geom2dGcc/Geom2dGcc_Circ2d3TanIter.cdl | 315 -- src/Geom2dGcc/Geom2dGcc_Circ2d3TanIter.cxx | 23 +- src/Geom2dGcc/Geom2dGcc_Circ2d3TanIter.hxx | 188 + src/Geom2dGcc/Geom2dGcc_Circ2dTanCen.cdl | 198 - src/Geom2dGcc/Geom2dGcc_Circ2dTanCen.cxx | 17 +- src/Geom2dGcc/Geom2dGcc_Circ2dTanCen.hxx | 176 + src/Geom2dGcc/Geom2dGcc_Circ2dTanCenGeo.cdl | 150 - src/Geom2dGcc/Geom2dGcc_Circ2dTanCenGeo.cxx | 20 +- src/Geom2dGcc/Geom2dGcc_Circ2dTanCenGeo.hxx | 134 + src/Geom2dGcc/Geom2dGcc_Circ2dTanOnRad.cdl | 256 -- src/Geom2dGcc/Geom2dGcc_Circ2dTanOnRad.cxx | 19 +- src/Geom2dGcc/Geom2dGcc_Circ2dTanOnRad.hxx | 225 ++ src/Geom2dGcc/Geom2dGcc_Circ2dTanOnRadGeo.cdl | 267 -- src/Geom2dGcc/Geom2dGcc_Circ2dTanOnRadGeo.cxx | 33 +- src/Geom2dGcc/Geom2dGcc_Circ2dTanOnRadGeo.hxx | 205 + src/Geom2dGcc/Geom2dGcc_CurveTool.cdl | 55 - src/Geom2dGcc/Geom2dGcc_CurveTool.cxx | 9 +- src/Geom2dGcc/Geom2dGcc_CurveTool.hxx | 78 + src/Geom2dGcc/Geom2dGcc_CurveToolGeo.cdl | 127 - src/Geom2dGcc/Geom2dGcc_CurveToolGeo.cxx | 29 +- src/Geom2dGcc/Geom2dGcc_CurveToolGeo.hxx | 126 + src/Geom2dGcc/Geom2dGcc_FunctionTanCirCu.cdl | 63 - src/Geom2dGcc/Geom2dGcc_FunctionTanCirCu.cxx | 12 +- src/Geom2dGcc/Geom2dGcc_FunctionTanCirCu.hxx | 86 + src/Geom2dGcc/Geom2dGcc_FunctionTanCuCu.cdl | 88 - src/Geom2dGcc/Geom2dGcc_FunctionTanCuCu.cxx | 11 +- src/Geom2dGcc/Geom2dGcc_FunctionTanCuCu.hxx | 103 + src/Geom2dGcc/Geom2dGcc_FunctionTanCuCuCu.cdl | 114 - src/Geom2dGcc/Geom2dGcc_FunctionTanCuCuCu.cxx | 13 +- src/Geom2dGcc/Geom2dGcc_FunctionTanCuCuCu.hxx | 117 + .../Geom2dGcc_FunctionTanCuCuOnCu.cdl | 156 - .../Geom2dGcc_FunctionTanCuCuOnCu.cxx | 11 +- .../Geom2dGcc_FunctionTanCuCuOnCu.hxx | 127 + src/Geom2dGcc/Geom2dGcc_FunctionTanCuPnt.cdl | 63 - src/Geom2dGcc/Geom2dGcc_FunctionTanCuPnt.cxx | 11 +- src/Geom2dGcc/Geom2dGcc_FunctionTanCuPnt.hxx | 86 + src/Geom2dGcc/Geom2dGcc_FunctionTanObl.cdl | 60 - src/Geom2dGcc/Geom2dGcc_FunctionTanObl.cxx | 8 +- src/Geom2dGcc/Geom2dGcc_FunctionTanObl.hxx | 84 + src/Geom2dGcc/Geom2dGcc_IsParallel.hxx | 37 + src/Geom2dGcc/Geom2dGcc_Lin2d2Tan.cdl | 239 -- src/Geom2dGcc/Geom2dGcc_Lin2d2Tan.cxx | 18 +- src/Geom2dGcc/Geom2dGcc_Lin2d2Tan.hxx | 182 + src/Geom2dGcc/Geom2dGcc_Lin2d2TanIter.cdl | 164 - src/Geom2dGcc/Geom2dGcc_Lin2d2TanIter.cxx | 29 +- src/Geom2dGcc/Geom2dGcc_Lin2d2TanIter.hxx | 129 + src/Geom2dGcc/Geom2dGcc_Lin2dTanObl.cdl | 225 -- src/Geom2dGcc/Geom2dGcc_Lin2dTanObl.cxx | 19 +- src/Geom2dGcc/Geom2dGcc_Lin2dTanObl.hxx | 179 + src/Geom2dGcc/Geom2dGcc_Lin2dTanOblIter.cdl | 136 - src/Geom2dGcc/Geom2dGcc_Lin2dTanOblIter.cxx | 25 +- src/Geom2dGcc/Geom2dGcc_Lin2dTanOblIter.hxx | 103 + src/Geom2dGcc/Geom2dGcc_QCurve.cdl | 64 - src/Geom2dGcc/Geom2dGcc_QCurve.cxx | 5 +- src/Geom2dGcc/Geom2dGcc_QCurve.hxx | 85 + src/Geom2dGcc/Geom2dGcc_QualifiedCurve.cdl | 116 - src/Geom2dGcc/Geom2dGcc_QualifiedCurve.cxx | 4 +- src/Geom2dGcc/Geom2dGcc_QualifiedCurve.hxx | 127 + src/Geom2dGcc/Geom2dGcc_Type1.hxx | 31 + src/Geom2dGcc/Geom2dGcc_Type2.hxx | 37 + src/Geom2dGcc/Geom2dGcc_Type3.hxx | 27 + src/Geom2dHatch/FILES | 20 +- src/Geom2dHatch/Geom2dHatch.cdl | 52 - src/Geom2dHatch/Geom2dHatch_Classifier.hxx | 114 + src/Geom2dHatch/Geom2dHatch_Classifier_0.cxx | 38 + src/Geom2dHatch/Geom2dHatch_Element.cdl | 85 - src/Geom2dHatch/Geom2dHatch_Element.cxx | 3 +- src/Geom2dHatch/Geom2dHatch_Element.hxx | 82 + src/Geom2dHatch/Geom2dHatch_Elements.cdl | 147 - src/Geom2dHatch/Geom2dHatch_Elements.cxx | 16 +- src/Geom2dHatch/Geom2dHatch_Elements.hxx | 126 + .../Geom2dHatch_FClass2dOfClassifier.hxx | 109 + .../Geom2dHatch_FClass2dOfClassifier_0.cxx | 32 + src/Geom2dHatch/Geom2dHatch_Hatcher.cdl | 491 --- src/Geom2dHatch/Geom2dHatch_Hatcher.cxx | 14 +- src/Geom2dHatch/Geom2dHatch_Hatcher.hxx | 221 ++ src/Geom2dHatch/Geom2dHatch_Hatching.cdl | 257 -- src/Geom2dHatch/Geom2dHatch_Hatching.cxx | 8 +- src/Geom2dHatch/Geom2dHatch_Hatching.hxx | 165 + src/Geom2dHatch/Geom2dHatch_Intersector.cdl | 137 - src/Geom2dHatch/Geom2dHatch_Intersector.cxx | 10 +- src/Geom2dHatch/Geom2dHatch_Intersector.hxx | 104 + src/Geom2dInt/FILES | 33 + src/Geom2dInt/Geom2dInt.cdl | 38 - ...ctionPointOfTheIntPCurvePCurveOfGInter.hxx | 92 + ...ionPointOfTheIntPCurvePCurveOfGInter_0.cxx | 42 + src/Geom2dInt/Geom2dInt_GInter.hxx | 197 + src/Geom2dInt/Geom2dInt_GInter_0.cxx | 74 + src/Geom2dInt/Geom2dInt_Geom2dCurveTool.cdl | 178 - src/Geom2dInt/Geom2dInt_Geom2dCurveTool.cxx | 11 +- src/Geom2dInt/Geom2dInt_Geom2dCurveTool.hxx | 140 + .../Geom2dInt_IntConicCurveOfGInter.hxx | 111 + .../Geom2dInt_IntConicCurveOfGInter_0.cxx | 43 + ...eIntersectorOfTheIntConicCurveOfGInter.hxx | 75 + ...ntersectorOfTheIntConicCurveOfGInter_0.cxx | 33 + ...FOfTheLocateExtPCOfTheProjPCurOfGInter.hxx | 118 + ...fTheLocateExtPCOfTheProjPCurOfGInter_0.cxx | 51 + ...FOfTheLocateExtPCOfTheProjPCurOfGInter.hxx | 134 + ...fTheLocateExtPCOfTheProjPCurOfGInter_0.cxx | 33 + ...FOfTheLocateExtPCOfTheProjPCurOfGInter.hxx | 83 + ...fTheLocateExtPCOfTheProjPCurOfGInter_0.cxx | 41 + ...t_TheCurveLocatorOfTheProjPCurOfGInter.hxx | 69 + ...TheCurveLocatorOfTheProjPCurOfGInter_0.cxx | 40 + ...eenPCurvesOfTheIntPCurvePCurveOfGInter.hxx | 79 + ...nPCurvesOfTheIntPCurvePCurveOfGInter_0.cxx | 31 + .../Geom2dInt_TheIntConicCurveOfGInter.hxx | 128 + .../Geom2dInt_TheIntConicCurveOfGInter_0.cxx | 50 + .../Geom2dInt_TheIntPCurvePCurveOfGInter.hxx | 83 + ...Geom2dInt_TheIntPCurvePCurveOfGInter_0.cxx | 43 + ...eIntersectorOfTheIntConicCurveOfGInter.hxx | 81 + ...ntersectorOfTheIntConicCurveOfGInter_0.cxx | 42 + ...nt_TheLocateExtPCOfTheProjPCurOfGInter.hxx | 93 + ..._TheLocateExtPCOfTheProjPCurOfGInter_0.cxx | 50 + ...ePolygon2dOfTheIntPCurvePCurveOfGInter.hxx | 118 + ...olygon2dOfTheIntPCurvePCurveOfGInter_0.cxx | 34 + .../Geom2dInt_TheProjPCurOfGInter.hxx | 68 + .../Geom2dInt_TheProjPCurOfGInter_0.cxx | 42 + src/Geom2dLProp/FILES | 12 + src/Geom2dLProp/Geom2dLProp.cdl | 49 - src/Geom2dLProp/Geom2dLProp_CLProps2d.hxx | 112 + src/Geom2dLProp/Geom2dLProp_CLProps2d_0.cxx | 43 + src/Geom2dLProp/Geom2dLProp_CurAndInf2d.cdl | 69 - src/Geom2dLProp/Geom2dLProp_CurAndInf2d.cxx | 12 +- src/Geom2dLProp/Geom2dLProp_CurAndInf2d.hxx | 98 + src/Geom2dLProp/Geom2dLProp_Curve2dTool.cdl | 63 - src/Geom2dLProp/Geom2dLProp_Curve2dTool.cxx | 5 +- src/Geom2dLProp/Geom2dLProp_Curve2dTool.hxx | 91 + src/Geom2dLProp/Geom2dLProp_FuncCurExt.cdl | 52 - src/Geom2dLProp/Geom2dLProp_FuncCurExt.cxx | 6 +- src/Geom2dLProp/Geom2dLProp_FuncCurExt.hxx | 79 + src/Geom2dLProp/Geom2dLProp_FuncCurNul.cdl | 47 - src/Geom2dLProp/Geom2dLProp_FuncCurNul.cxx | 6 +- src/Geom2dLProp/Geom2dLProp_FuncCurNul.hxx | 74 + .../Geom2dLProp_NumericCurInf2d.cdl | 67 - .../Geom2dLProp_NumericCurInf2d.cxx | 9 +- .../Geom2dLProp_NumericCurInf2d.hxx | 82 + src/Geom2dToIGES/FILES | 8 + src/Geom2dToIGES/Geom2dToIGES.cdl | 36 - src/Geom2dToIGES/Geom2dToIGES_Geom2dCurve.cdl | 73 - src/Geom2dToIGES/Geom2dToIGES_Geom2dCurve.cxx | 31 +- src/Geom2dToIGES/Geom2dToIGES_Geom2dCurve.hxx | 85 + .../Geom2dToIGES_Geom2dEntity.cdl | 61 - .../Geom2dToIGES_Geom2dEntity.cxx | 7 +- .../Geom2dToIGES_Geom2dEntity.hxx | 81 + src/Geom2dToIGES/Geom2dToIGES_Geom2dPoint.cdl | 57 - src/Geom2dToIGES/Geom2dToIGES_Geom2dPoint.cxx | 11 +- src/Geom2dToIGES/Geom2dToIGES_Geom2dPoint.hxx | 79 + .../Geom2dToIGES_Geom2dVector.cdl | 64 - .../Geom2dToIGES_Geom2dVector.cxx | 9 +- .../Geom2dToIGES_Geom2dVector.hxx | 82 + src/GeomAPI/FILES | 28 + src/GeomAPI/GeomAPI.cdl | 146 - src/GeomAPI/GeomAPI.cxx | 34 +- src/GeomAPI/GeomAPI.hxx | 134 + src/GeomAPI/GeomAPI_ExtremaCurveCurve.cdl | 243 -- src/GeomAPI/GeomAPI_ExtremaCurveCurve.cxx | 13 +- src/GeomAPI/GeomAPI_ExtremaCurveCurve.hxx | 203 + src/GeomAPI/GeomAPI_ExtremaCurveSurface.cdl | 215 -- src/GeomAPI/GeomAPI_ExtremaCurveSurface.cxx | 15 +- src/GeomAPI/GeomAPI_ExtremaCurveSurface.hxx | 180 + src/GeomAPI/GeomAPI_ExtremaSurfaceSurface.cdl | 220 -- src/GeomAPI/GeomAPI_ExtremaSurfaceSurface.cxx | 14 +- src/GeomAPI/GeomAPI_ExtremaSurfaceSurface.hxx | 183 + src/GeomAPI/GeomAPI_IntCS.cdl | 139 - src/GeomAPI/GeomAPI_IntCS.cxx | 8 +- src/GeomAPI/GeomAPI_IntCS.hxx | 133 + src/GeomAPI/GeomAPI_IntSS.cdl | 105 - src/GeomAPI/GeomAPI_IntSS.cxx | 7 +- src/GeomAPI/GeomAPI_IntSS.hxx | 106 + src/GeomAPI/GeomAPI_Interpolate.cdl | 232 -- src/GeomAPI/GeomAPI_Interpolate.cxx | 11 +- src/GeomAPI/GeomAPI_Interpolate.hxx | 215 ++ src/GeomAPI/GeomAPI_PointsToBSpline.cdl | 201 - src/GeomAPI/GeomAPI_PointsToBSpline.cxx | 18 +- src/GeomAPI/GeomAPI_PointsToBSpline.hxx | 156 + .../GeomAPI_PointsToBSplineSurface.cdl | 266 -- .../GeomAPI_PointsToBSplineSurface.cxx | 26 +- .../GeomAPI_PointsToBSplineSurface.hxx | 205 + src/GeomAPI/GeomAPI_ProjectPointOnCurve.cdl | 202 - src/GeomAPI/GeomAPI_ProjectPointOnCurve.cxx | 8 +- src/GeomAPI/GeomAPI_ProjectPointOnCurve.hxx | 158 + src/GeomAPI/GeomAPI_ProjectPointOnSurf.cdl | 254 -- src/GeomAPI/GeomAPI_ProjectPointOnSurf.cxx | 8 +- src/GeomAPI/GeomAPI_ProjectPointOnSurf.hxx | 174 + src/GeomAbs/FILES | 9 + src/GeomAbs/GeomAbs.cdl | 130 - src/GeomAbs/GeomAbs_BSplKnotDistribution.hxx | 32 + src/GeomAbs/GeomAbs_CurveForm.hxx | 32 + src/GeomAbs/GeomAbs_CurveType.hxx | 34 + src/GeomAbs/GeomAbs_IsoType.hxx | 29 + src/GeomAbs/GeomAbs_JoinType.hxx | 30 + src/GeomAbs/GeomAbs_Shape.hxx | 59 + src/GeomAbs/GeomAbs_SurfaceForm.hxx | 35 + src/GeomAbs/GeomAbs_SurfaceType.hxx | 36 + src/GeomAbs/GeomAbs_UVSense.hxx | 34 + src/GeomAdaptor/FILES | 18 + src/GeomAdaptor/GeomAdaptor.cdl | 63 - src/GeomAdaptor/GeomAdaptor.cxx | 39 +- src/GeomAdaptor/GeomAdaptor.hxx | 84 + src/GeomAdaptor/GeomAdaptor_Curve.cdl | 361 -- src/GeomAdaptor/GeomAdaptor_Curve.cxx | 47 +- src/GeomAdaptor/GeomAdaptor_Curve.hxx | 289 ++ src/GeomAdaptor/GeomAdaptor_GHCurve.hxx | 89 + src/GeomAdaptor/GeomAdaptor_GHCurve_0.cxx | 42 + src/GeomAdaptor/GeomAdaptor_GHSurface.hxx | 87 + src/GeomAdaptor/GeomAdaptor_GHSurface_0.cxx | 42 + src/GeomAdaptor/GeomAdaptor_HCurve.cdl | 47 - src/GeomAdaptor/GeomAdaptor_HCurve.cxx | 7 +- src/GeomAdaptor/GeomAdaptor_HCurve.hxx | 75 + src/GeomAdaptor/GeomAdaptor_HSurface.cdl | 50 - src/GeomAdaptor/GeomAdaptor_HSurface.cxx | 7 +- src/GeomAdaptor/GeomAdaptor_HSurface.hxx | 76 + src/GeomAdaptor/GeomAdaptor_Surface.cdl | 407 -- src/GeomAdaptor/GeomAdaptor_Surface.cxx | 54 +- src/GeomAdaptor/GeomAdaptor_Surface.hxx | 281 ++ src/GeomConvert/FILES | 20 +- src/GeomConvert/GeomConvert.cdl | 413 --- src/GeomConvert/GeomConvert.cxx | 79 +- src/GeomConvert/GeomConvert.hxx | 355 ++ src/GeomConvert/GeomConvert_1.cxx | 65 +- src/GeomConvert/GeomConvert_ApproxCurve.cdl | 95 - src/GeomConvert/GeomConvert_ApproxCurve.cxx | 19 +- src/GeomConvert/GeomConvert_ApproxCurve.hxx | 115 + src/GeomConvert/GeomConvert_ApproxSurface.cdl | 117 - src/GeomConvert/GeomConvert_ApproxSurface.cxx | 12 +- src/GeomConvert/GeomConvert_ApproxSurface.hxx | 121 + .../GeomConvert_BSplineCurveKnotSplitting.cdl | 125 - .../GeomConvert_BSplineCurveKnotSplitting.cxx | 7 +- .../GeomConvert_BSplineCurveKnotSplitting.hxx | 135 + .../GeomConvert_BSplineCurveToBezierCurve.cdl | 119 - .../GeomConvert_BSplineCurveToBezierCurve.cxx | 10 +- .../GeomConvert_BSplineCurveToBezierCurve.hxx | 134 + ...eomConvert_BSplineSurfaceKnotSplitting.cdl | 168 - ...eomConvert_BSplineSurfaceKnotSplitting.cxx | 9 +- ...eomConvert_BSplineSurfaceKnotSplitting.hxx | 181 + ...mConvert_BSplineSurfaceToBezierSurface.cdl | 193 - ...mConvert_BSplineSurfaceToBezierSurface.cxx | 10 +- ...mConvert_BSplineSurfaceToBezierSurface.hxx | 202 + ...ert_CompBezierSurfacesToBSplineSurface.cdl | 323 -- ...ert_CompBezierSurfacesToBSplineSurface.cxx | 17 +- ...ert_CompBezierSurfacesToBSplineSurface.hxx | 314 ++ .../GeomConvert_CompCurveToBSplineCurve.cdl | 80 - .../GeomConvert_CompCurveToBSplineCurve.cxx | 15 +- .../GeomConvert_CompCurveToBSplineCurve.hxx | 89 + src/GeomFill/FILES | 132 +- src/GeomFill/GeomFill.cdl | 275 -- src/GeomFill/GeomFill.cxx | 31 +- src/GeomFill/GeomFill.hxx | 199 + src/GeomFill/GeomFill_AppSurf.hxx | 180 + src/GeomFill/GeomFill_AppSurf_0.cxx | 34 + src/GeomFill/GeomFill_AppSweep.hxx | 180 + src/GeomFill/GeomFill_AppSweep_0.cxx | 34 + src/GeomFill/GeomFill_ApproxStyle.hxx | 27 + src/GeomFill/GeomFill_BSplineCurves.cdl | 110 - src/GeomFill/GeomFill_BSplineCurves.cxx | 26 +- src/GeomFill/GeomFill_BSplineCurves.hxx | 117 + src/GeomFill/GeomFill_BezierCurves.cdl | 103 - src/GeomFill/GeomFill_BezierCurves.cxx | 15 +- src/GeomFill/GeomFill_BezierCurves.hxx | 114 + src/GeomFill/GeomFill_BoundWithSurf.cdl | 116 - src/GeomFill/GeomFill_BoundWithSurf.cxx | 16 +- src/GeomFill/GeomFill_BoundWithSurf.hxx | 125 + src/GeomFill/GeomFill_Boundary.cdl | 97 - src/GeomFill/GeomFill_Boundary.cxx | 6 +- src/GeomFill/GeomFill_Boundary.hxx | 100 + src/GeomFill/GeomFill_CircularBlendFunc.cdl | 237 -- src/GeomFill/GeomFill_CircularBlendFunc.cxx | 12 +- src/GeomFill/GeomFill_CircularBlendFunc.hxx | 173 + src/GeomFill/GeomFill_ConstantBiNormal.cdl | 131 - src/GeomFill/GeomFill_ConstantBiNormal.cxx | 11 +- src/GeomFill/GeomFill_ConstantBiNormal.hxx | 115 + src/GeomFill/GeomFill_ConstrainedFilling.cdl | 261 -- src/GeomFill/GeomFill_ConstrainedFilling.cxx | 30 +- src/GeomFill/GeomFill_ConstrainedFilling.hxx | 213 ++ src/GeomFill/GeomFill_Coons.cdl | 42 - src/GeomFill/GeomFill_Coons.cxx | 3 +- src/GeomFill/GeomFill_Coons.hxx | 70 + src/GeomFill/GeomFill_CoonsAlgPatch.cdl | 104 - src/GeomFill/GeomFill_CoonsAlgPatch.cxx | 11 +- src/GeomFill/GeomFill_CoonsAlgPatch.hxx | 106 + src/GeomFill/GeomFill_CornerState.cdl | 48 - src/GeomFill/GeomFill_CornerState.cxx | 5 +- src/GeomFill/GeomFill_CornerState.hxx | 90 + src/GeomFill/GeomFill_CorrectedFrenet.cdl | 193 - src/GeomFill/GeomFill_CorrectedFrenet.cxx | 42 +- src/GeomFill/GeomFill_CorrectedFrenet.hxx | 156 + src/GeomFill/GeomFill_CurveAndTrihedron.cdl | 214 -- src/GeomFill/GeomFill_CurveAndTrihedron.cxx | 14 +- src/GeomFill/GeomFill_CurveAndTrihedron.hxx | 164 + src/GeomFill/GeomFill_Curved.cdl | 77 - src/GeomFill/GeomFill_Curved.cxx | 8 +- src/GeomFill/GeomFill_Curved.hxx | 86 + src/GeomFill/GeomFill_Darboux.cdl | 127 - src/GeomFill/GeomFill_Darboux.cxx | 18 +- src/GeomFill/GeomFill_Darboux.hxx | 107 + src/GeomFill/GeomFill_DegeneratedBound.cdl | 61 - src/GeomFill/GeomFill_DegeneratedBound.cxx | 7 +- src/GeomFill/GeomFill_DegeneratedBound.hxx | 83 + src/GeomFill/GeomFill_DiscreteTrihedron.cdl | 149 - src/GeomFill/GeomFill_DiscreteTrihedron.cxx | 14 +- src/GeomFill/GeomFill_DiscreteTrihedron.hxx | 127 + src/GeomFill/GeomFill_DraftTrihedron.cdl | 130 - src/GeomFill/GeomFill_DraftTrihedron.cxx | 11 +- src/GeomFill/GeomFill_DraftTrihedron.hxx | 112 + src/GeomFill/GeomFill_EvolvedSection.cdl | 212 -- src/GeomFill/GeomFill_EvolvedSection.cxx | 24 +- src/GeomFill/GeomFill_EvolvedSection.hxx | 177 + src/GeomFill/GeomFill_Filling.cdl | 58 - src/GeomFill/GeomFill_Filling.cxx | 4 +- src/GeomFill/GeomFill_Filling.hxx | 79 + src/GeomFill/GeomFill_FillingStyle.hxx | 32 + src/GeomFill/GeomFill_Fixed.cdl | 120 - src/GeomFill/GeomFill_Fixed.cxx | 8 +- src/GeomFill/GeomFill_Fixed.hxx | 108 + src/GeomFill/GeomFill_Frenet.cdl | 204 - src/GeomFill/GeomFill_Frenet.cxx | 22 +- src/GeomFill/GeomFill_Frenet.hxx | 140 + src/GeomFill/GeomFill_FunctionDraft.cdl | 119 - src/GeomFill/GeomFill_FunctionDraft.cxx | 15 +- src/GeomFill/GeomFill_FunctionDraft.hxx | 111 + src/GeomFill/GeomFill_FunctionGuide.cdl | 141 - src/GeomFill/GeomFill_FunctionGuide.cxx | 31 +- src/GeomFill/GeomFill_FunctionGuide.hxx | 126 + src/GeomFill/GeomFill_Generator.cdl | 55 - src/GeomFill/GeomFill_Generator.cxx | 13 +- src/GeomFill/GeomFill_Generator.hxx | 78 + src/GeomFill/GeomFill_GuideTrihedronAC.cdl | 149 - src/GeomFill/GeomFill_GuideTrihedronAC.cxx | 24 +- src/GeomFill/GeomFill_GuideTrihedronAC.hxx | 126 + src/GeomFill/GeomFill_GuideTrihedronPlan.cdl | 168 - src/GeomFill/GeomFill_GuideTrihedronPlan.cxx | 33 +- src/GeomFill/GeomFill_GuideTrihedronPlan.hxx | 138 + src/GeomFill/GeomFill_Line.cdl | 46 - src/GeomFill/GeomFill_Line.cxx | 5 +- src/GeomFill/GeomFill_Line.hxx | 70 + src/GeomFill/GeomFill_LocFunction.cdl | 62 - src/GeomFill/GeomFill_LocFunction.cxx | 3 +- src/GeomFill/GeomFill_LocFunction.hxx | 85 + src/GeomFill/GeomFill_LocationDraft.cdl | 255 -- src/GeomFill/GeomFill_LocationDraft.cxx | 35 +- src/GeomFill/GeomFill_LocationDraft.hxx | 194 + src/GeomFill/GeomFill_LocationGuide.cdl | 305 -- src/GeomFill/GeomFill_LocationGuide.cxx | 72 +- src/GeomFill/GeomFill_LocationGuide.hxx | 223 ++ src/GeomFill/GeomFill_LocationLaw.cdl | 249 -- src/GeomFill/GeomFill_LocationLaw.cxx | 10 +- src/GeomFill/GeomFill_LocationLaw.hxx | 180 + src/GeomFill/GeomFill_NSections.cdl | 286 -- src/GeomFill/GeomFill_NSections.cxx | 43 +- src/GeomFill/GeomFill_NSections.hxx | 215 ++ src/GeomFill/GeomFill_Pipe.cdl | 380 -- src/GeomFill/GeomFill_Pipe.cxx | 90 +- src/GeomFill/GeomFill_Pipe.hxx | 304 ++ src/GeomFill/GeomFill_PipeError.hxx | 29 + src/GeomFill/GeomFill_PlanFunc.cdl | 77 - src/GeomFill/GeomFill_PlanFunc.cxx | 5 +- src/GeomFill/GeomFill_PlanFunc.hxx | 95 + src/GeomFill/GeomFill_PolynomialConvertor.cdl | 81 - src/GeomFill/GeomFill_PolynomialConvertor.cxx | 15 +- src/GeomFill/GeomFill_PolynomialConvertor.hxx | 82 + src/GeomFill/GeomFill_Profiler.cdl | 124 - src/GeomFill/GeomFill_Profiler.cxx | 11 +- src/GeomFill/GeomFill_Profiler.hxx | 118 + .../GeomFill_QuasiAngularConvertor.cdl | 88 - .../GeomFill_QuasiAngularConvertor.cxx | 16 +- .../GeomFill_QuasiAngularConvertor.hxx | 89 + src/GeomFill/GeomFill_SectionGenerator.cdl | 83 - src/GeomFill/GeomFill_SectionGenerator.cxx | 5 +- src/GeomFill/GeomFill_SectionGenerator.hxx | 92 + src/GeomFill/GeomFill_SectionLaw.cdl | 227 -- src/GeomFill/GeomFill_SectionLaw.cxx | 10 +- src/GeomFill/GeomFill_SectionLaw.hxx | 183 + src/GeomFill/GeomFill_SectionPlacement.cdl | 109 - src/GeomFill/GeomFill_SectionPlacement.cxx | 51 +- src/GeomFill/GeomFill_SectionPlacement.hxx | 125 + src/GeomFill/GeomFill_SimpleBound.cdl | 95 - src/GeomFill/GeomFill_SimpleBound.cxx | 11 +- src/GeomFill/GeomFill_SimpleBound.hxx | 115 + src/GeomFill/GeomFill_SnglrFunc.cdl | 134 - src/GeomFill/GeomFill_SnglrFunc.cxx | 10 +- src/GeomFill/GeomFill_SnglrFunc.hxx | 135 + src/GeomFill/GeomFill_Stretch.cdl | 42 - src/GeomFill/GeomFill_Stretch.cxx | 6 +- src/GeomFill/GeomFill_Stretch.hxx | 70 + src/GeomFill/GeomFill_Sweep.cdl | 200 - src/GeomFill/GeomFill_Sweep.cxx | 86 +- src/GeomFill/GeomFill_Sweep.hxx | 182 + src/GeomFill/GeomFill_SweepFunction.cdl | 216 -- src/GeomFill/GeomFill_SweepFunction.cxx | 11 +- src/GeomFill/GeomFill_SweepFunction.hxx | 166 + .../GeomFill_SweepSectionGenerator.cdl | 189 - .../GeomFill_SweepSectionGenerator.cxx | 30 +- .../GeomFill_SweepSectionGenerator.hxx | 142 + src/GeomFill/GeomFill_Tensor.cdl | 70 - src/GeomFill/GeomFill_Tensor.cxx | 5 +- src/GeomFill/GeomFill_Tensor.hxx | 97 + src/GeomFill/GeomFill_TgtField.cdl | 48 - src/GeomFill/GeomFill_TgtField.cxx | 7 +- src/GeomFill/GeomFill_TgtField.hxx | 80 + src/GeomFill/GeomFill_TgtOnCoons.cdl | 51 - src/GeomFill/GeomFill_TgtOnCoons.cxx | 7 +- src/GeomFill/GeomFill_TgtOnCoons.hxx | 80 + src/GeomFill/GeomFill_Trihedron.hxx | 35 + src/GeomFill/GeomFill_TrihedronLaw.cdl | 153 - src/GeomFill/GeomFill_TrihedronLaw.cxx | 6 +- src/GeomFill/GeomFill_TrihedronLaw.hxx | 126 + src/GeomFill/GeomFill_TrihedronWithGuide.cdl | 55 - src/GeomFill/GeomFill_TrihedronWithGuide.cxx | 7 +- src/GeomFill/GeomFill_TrihedronWithGuide.hxx | 76 + src/GeomFill/GeomFill_UniformSection.cdl | 212 -- src/GeomFill/GeomFill_UniformSection.cxx | 22 +- src/GeomFill/GeomFill_UniformSection.hxx | 175 + src/GeomInt/FILES | 62 +- src/GeomInt/GeomInt.cdl | 71 - src/GeomInt/GeomInt.hxx | 119 + ...BSplGradientOfTheComputeLineOfWLApprox.hxx | 74 + ...plGradientOfTheComputeLineOfWLApprox_0.cxx | 40 + ...BSplGradientOfTheComputeLineOfWLApprox.hxx | 140 + ...plGradientOfTheComputeLineOfWLApprox_0.cxx | 35 + ...BSplGradientOfTheComputeLineOfWLApprox.hxx | 175 + ...plGradientOfTheComputeLineOfWLApprox_0.cxx | 37 + ...adientOfTheComputeLineBezierOfWLApprox.hxx | 75 + ...ientOfTheComputeLineBezierOfWLApprox_0.cxx | 43 + ...yGradientbisOfTheComputeLineOfWLApprox.hxx | 75 + ...radientbisOfTheComputeLineOfWLApprox_0.cxx | 43 + src/GeomInt/GeomInt_IntSS.cdl | 251 -- src/GeomInt/GeomInt_IntSS.cxx | 14 +- src/GeomInt/GeomInt_IntSS.hxx | 153 + src/GeomInt/GeomInt_IntSS_1.cxx | 121 +- src/GeomInt/GeomInt_LineConstructor.cdl | 98 - src/GeomInt/GeomInt_LineConstructor.cxx | 35 +- src/GeomInt/GeomInt_LineConstructor.hxx | 101 + src/GeomInt/GeomInt_LineTool.cdl | 48 - src/GeomInt/GeomInt_LineTool.cxx | 9 +- src/GeomInt/GeomInt_LineTool.hxx | 69 + ...BSplGradientOfTheComputeLineOfWLApprox.hxx | 100 + ...plGradientOfTheComputeLineOfWLApprox_0.cxx | 42 + ...adientOfTheComputeLineBezierOfWLApprox.hxx | 92 + ...ientOfTheComputeLineBezierOfWLApprox_0.cxx | 45 + ...yGradientbisOfTheComputeLineOfWLApprox.hxx | 92 + ...radientbisOfTheComputeLineOfWLApprox_0.cxx | 45 + ...adientOfTheComputeLineBezierOfWLApprox.hxx | 125 + ...ientOfTheComputeLineBezierOfWLApprox_0.cxx | 37 + ...yGradientbisOfTheComputeLineOfWLApprox.hxx | 125 + ...radientbisOfTheComputeLineOfWLApprox_0.cxx | 37 + ...adientOfTheComputeLineBezierOfWLApprox.hxx | 175 + ...ientOfTheComputeLineBezierOfWLApprox_0.cxx | 37 + ...yGradientbisOfTheComputeLineOfWLApprox.hxx | 175 + ...radientbisOfTheComputeLineOfWLApprox_0.cxx | 37 + .../GeomInt_ParameterAndOrientation.cdl | 69 - .../GeomInt_ParameterAndOrientation.cxx | 2 +- .../GeomInt_ParameterAndOrientation.hxx | 76 + ...adientOfTheComputeLineBezierOfWLApprox.hxx | 100 + ...ientOfTheComputeLineBezierOfWLApprox_0.cxx | 33 + ...yGradientbisOfTheComputeLineOfWLApprox.hxx | 100 + ...radientbisOfTheComputeLineOfWLApprox_0.cxx | 33 + ...GeomInt_TheComputeLineBezierOfWLApprox.hxx | 155 + ...omInt_TheComputeLineBezierOfWLApprox_0.cxx | 55 + .../GeomInt_TheComputeLineOfWLApprox.hxx | 167 + .../GeomInt_TheComputeLineOfWLApprox_0.cxx | 73 + ...heInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx | 142 + ...Int2SOfThePrmPrmSvSurfacesOfWLApprox_0.cxx | 33 + .../GeomInt_TheImpPrmSvSurfacesOfWLApprox.hxx | 106 + ...eomInt_TheImpPrmSvSurfacesOfWLApprox_0.cxx | 46 + ...heInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx | 142 + ...Int2SOfThePrmPrmSvSurfacesOfWLApprox_0.cxx | 41 + .../GeomInt_TheMultiLineOfWLApprox.hxx | 119 + .../GeomInt_TheMultiLineOfWLApprox_0.cxx | 31 + .../GeomInt_TheMultiLineToolOfWLApprox.hxx | 112 + .../GeomInt_TheMultiLineToolOfWLApprox_0.cxx | 30 + .../GeomInt_ThePrmPrmSvSurfacesOfWLApprox.hxx | 102 + ...eomInt_ThePrmPrmSvSurfacesOfWLApprox_0.cxx | 45 + ...ImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx | 151 + ...pFuncOfTheImpPrmSvSurfacesOfWLApprox_0.cxx | 41 + src/GeomInt/GeomInt_WLApprox.hxx | 128 + src/GeomInt/GeomInt_WLApprox_0.cxx | 86 + src/GeomLProp/FILES | 10 + src/GeomLProp/GeomLProp.cdl | 67 - src/GeomLProp/GeomLProp.cxx | 10 +- src/GeomLProp/GeomLProp.hxx | 83 + src/GeomLProp/GeomLProp_CLProps.hxx | 112 + src/GeomLProp/GeomLProp_CLProps_0.cxx | 43 + src/GeomLProp/GeomLProp_CurveTool.cdl | 58 - src/GeomLProp/GeomLProp_CurveTool.cxx | 5 +- src/GeomLProp/GeomLProp_CurveTool.hxx | 91 + src/GeomLProp/GeomLProp_SLProps.hxx | 146 + src/GeomLProp/GeomLProp_SLProps_0.cxx | 37 + src/GeomLProp/GeomLProp_SurfaceTool.cdl | 49 - src/GeomLProp/GeomLProp_SurfaceTool.cxx | 6 +- src/GeomLProp/GeomLProp_SurfaceTool.hxx | 84 + src/GeomLib/FILES | 27 +- src/GeomLib/GeomLib.cdl | 293 -- src/GeomLib/GeomLib.cxx | 150 +- src/GeomLib/GeomLib.hxx | 222 ++ src/GeomLib/GeomLib_CMPLRS.edl | 32 - src/GeomLib/GeomLib_Check2dBSplineCurve.cdl | 74 - src/GeomLib/GeomLib_Check2dBSplineCurve.cxx | 9 +- src/GeomLib/GeomLib_Check2dBSplineCurve.hxx | 88 + src/GeomLib/GeomLib_CheckBSplineCurve.cdl | 75 - src/GeomLib/GeomLib_CheckBSplineCurve.cxx | 7 +- src/GeomLib/GeomLib_CheckBSplineCurve.hxx | 88 + src/GeomLib/GeomLib_DenominatorMultiplier.cdl | 80 - src/GeomLib/GeomLib_DenominatorMultiplier.cxx | 15 +- src/GeomLib/GeomLib_DenominatorMultiplier.hxx | 90 + .../GeomLib_DenominatorMultiplierPtr.hxx | 23 + src/GeomLib/GeomLib_Interpolate.cdl | 80 - src/GeomLib/GeomLib_Interpolate.cxx | 12 +- src/GeomLib/GeomLib_Interpolate.hxx | 88 + src/GeomLib/GeomLib_InterpolationErrors.hxx | 30 + src/GeomLib/GeomLib_IsPlanarSurface.cdl | 46 - src/GeomLib/GeomLib_IsPlanarSurface.cxx | 24 +- src/GeomLib/GeomLib_IsPlanarSurface.hxx | 73 + src/GeomLib/GeomLib_LogSample.cdl | 41 - src/GeomLib/GeomLib_LogSample.cxx | 3 +- src/GeomLib/GeomLib_LogSample.hxx | 70 + src/GeomLib/GeomLib_MakeCurvefromApprox.cdl | 125 - src/GeomLib/GeomLib_MakeCurvefromApprox.cxx | 18 +- src/GeomLib/GeomLib_MakeCurvefromApprox.hxx | 117 + src/GeomLib/GeomLib_PolyFunc.cdl | 57 - src/GeomLib/GeomLib_PolyFunc.cxx | 5 +- src/GeomLib/GeomLib_PolyFunc.hxx | 81 + src/GeomLib/GeomLib_Tool.cdl | 64 - src/GeomLib/GeomLib_Tool.cxx | 94 +- src/GeomLib/GeomLib_Tool.hxx | 85 + src/GeomPlate/FILES | 24 +- src/GeomPlate/GeomPlate.cdl | 94 - src/GeomPlate/GeomPlate_Aij.cdl | 40 - src/GeomPlate/GeomPlate_Aij.cxx | 5 +- src/GeomPlate/GeomPlate_Aij.hxx | 69 + src/GeomPlate/GeomPlate_BuildAveragePlane.cdl | 129 - src/GeomPlate/GeomPlate_BuildAveragePlane.cxx | 35 +- src/GeomPlate/GeomPlate_BuildAveragePlane.hxx | 124 + src/GeomPlate/GeomPlate_BuildPlateSurface.cdl | 344 -- src/GeomPlate/GeomPlate_BuildPlateSurface.cxx | 86 +- src/GeomPlate/GeomPlate_BuildPlateSurface.hxx | 281 ++ src/GeomPlate/GeomPlate_CurveConstraint.cdl | 220 -- src/GeomPlate/GeomPlate_CurveConstraint.cxx | 26 +- src/GeomPlate/GeomPlate_CurveConstraint.hxx | 202 + src/GeomPlate/GeomPlate_MakeApprox.cdl | 79 - src/GeomPlate/GeomPlate_MakeApprox.cxx | 32 +- src/GeomPlate/GeomPlate_MakeApprox.hxx | 99 + src/GeomPlate/GeomPlate_PlateG0Criterion.cdl | 48 - src/GeomPlate/GeomPlate_PlateG0Criterion.cxx | 17 +- src/GeomPlate/GeomPlate_PlateG0Criterion.hxx | 75 + src/GeomPlate/GeomPlate_PlateG1Criterion.cdl | 49 - src/GeomPlate/GeomPlate_PlateG1Criterion.cxx | 18 +- src/GeomPlate/GeomPlate_PlateG1Criterion.hxx | 75 + src/GeomPlate/GeomPlate_PointConstraint.cdl | 174 - src/GeomPlate/GeomPlate_PointConstraint.cxx | 19 +- src/GeomPlate/GeomPlate_PointConstraint.hxx | 185 + src/GeomPlate/GeomPlate_Surface.cdl | 312 -- src/GeomPlate/GeomPlate_Surface.cxx | 18 +- src/GeomPlate/GeomPlate_Surface.hxx | 296 ++ src/GeomProjLib/FILES | 2 + src/GeomProjLib/GeomProjLib.cdl | 145 - src/GeomProjLib/GeomProjLib.cxx | 60 +- src/GeomProjLib/GeomProjLib.hxx | 138 + src/GeomToIGES/FILES | 10 + src/GeomToIGES/GeomToIGES.cdl | 36 - src/GeomToIGES/GeomToIGES_GeomCurve.cdl | 152 - src/GeomToIGES/GeomToIGES_GeomCurve.cxx | 41 +- src/GeomToIGES/GeomToIGES_GeomCurve.hxx | 119 + src/GeomToIGES/GeomToIGES_GeomEntity.cdl | 61 - src/GeomToIGES/GeomToIGES_GeomEntity.cxx | 6 +- src/GeomToIGES/GeomToIGES_GeomEntity.hxx | 81 + src/GeomToIGES/GeomToIGES_GeomPoint.cdl | 57 - src/GeomToIGES/GeomToIGES_GeomPoint.cxx | 12 +- src/GeomToIGES/GeomToIGES_GeomPoint.hxx | 79 + src/GeomToIGES/GeomToIGES_GeomSurface.cdl | 276 -- src/GeomToIGES/GeomToIGES_GeomSurface.cxx | 70 +- src/GeomToIGES/GeomToIGES_GeomSurface.hxx | 159 + src/GeomToIGES/GeomToIGES_GeomVector.cdl | 63 - src/GeomToIGES/GeomToIGES_GeomVector.cxx | 14 +- src/GeomToIGES/GeomToIGES_GeomVector.hxx | 82 + src/GeomToStep/FILES | 67 +- src/GeomToStep/GeomToStep.cdl | 60 - .../GeomToStep_MakeAxis1Placement.cdl | 55 - .../GeomToStep_MakeAxis1Placement.cxx | 13 +- .../GeomToStep_MakeAxis1Placement.hxx | 78 + .../GeomToStep_MakeAxis2Placement2d.cdl | 51 - .../GeomToStep_MakeAxis2Placement2d.cxx | 13 +- .../GeomToStep_MakeAxis2Placement2d.hxx | 72 + .../GeomToStep_MakeAxis2Placement3d.cdl | 57 - .../GeomToStep_MakeAxis2Placement3d.cxx | 14 +- .../GeomToStep_MakeAxis2Placement3d.hxx | 80 + .../GeomToStep_MakeBSplineCurveWithKnots.cdl | 55 - .../GeomToStep_MakeBSplineCurveWithKnots.cxx | 17 +- .../GeomToStep_MakeBSplineCurveWithKnots.hxx | 73 + ...eCurveWithKnotsAndRationalBSplineCurve.cdl | 55 - ...eCurveWithKnotsAndRationalBSplineCurve.cxx | 17 +- ...eCurveWithKnotsAndRationalBSplineCurve.hxx | 73 + ...GeomToStep_MakeBSplineSurfaceWithKnots.cdl | 50 - ...GeomToStep_MakeBSplineSurfaceWithKnots.cxx | 16 +- ...GeomToStep_MakeBSplineSurfaceWithKnots.hxx | 70 + ...faceWithKnotsAndRationalBSplineSurface.cdl | 52 - ...faceWithKnotsAndRationalBSplineSurface.cxx | 15 +- ...faceWithKnotsAndRationalBSplineSurface.hxx | 70 + .../GeomToStep_MakeBoundedCurve.cdl | 50 - .../GeomToStep_MakeBoundedCurve.cxx | 21 +- .../GeomToStep_MakeBoundedCurve.hxx | 73 + .../GeomToStep_MakeBoundedSurface.cdl | 47 - .../GeomToStep_MakeBoundedSurface.cxx | 18 +- .../GeomToStep_MakeBoundedSurface.hxx | 70 + .../GeomToStep_MakeCartesianPoint.cdl | 54 - .../GeomToStep_MakeCartesianPoint.cxx | 12 +- .../GeomToStep_MakeCartesianPoint.hxx | 78 + src/GeomToStep/GeomToStep_MakeCircle.cdl | 52 - src/GeomToStep/GeomToStep_MakeCircle.cxx | 13 +- src/GeomToStep/GeomToStep_MakeCircle.hxx | 75 + src/GeomToStep/GeomToStep_MakeConic.cdl | 49 - src/GeomToStep/GeomToStep_MakeConic.cxx | 26 +- src/GeomToStep/GeomToStep_MakeConic.hxx | 72 + .../GeomToStep_MakeConicalSurface.cdl | 47 - .../GeomToStep_MakeConicalSurface.cxx | 11 +- .../GeomToStep_MakeConicalSurface.hxx | 69 + src/GeomToStep/GeomToStep_MakeCurve.cdl | 49 - src/GeomToStep/GeomToStep_MakeCurve.cxx | 46 +- src/GeomToStep/GeomToStep_MakeCurve.hxx | 72 + .../GeomToStep_MakeCylindricalSurface.cdl | 45 - .../GeomToStep_MakeCylindricalSurface.cxx | 8 +- .../GeomToStep_MakeCylindricalSurface.hxx | 69 + src/GeomToStep/GeomToStep_MakeDirection.cdl | 54 - src/GeomToStep/GeomToStep_MakeDirection.cxx | 12 +- src/GeomToStep/GeomToStep_MakeDirection.hxx | 78 + .../GeomToStep_MakeElementarySurface.cdl | 47 - .../GeomToStep_MakeElementarySurface.cxx | 28 +- .../GeomToStep_MakeElementarySurface.hxx | 70 + src/GeomToStep/GeomToStep_MakeEllipse.cdl | 52 - src/GeomToStep/GeomToStep_MakeEllipse.cxx | 14 +- src/GeomToStep/GeomToStep_MakeEllipse.hxx | 75 + src/GeomToStep/GeomToStep_MakeHyperbola.cdl | 48 - src/GeomToStep/GeomToStep_MakeHyperbola.cxx | 15 +- src/GeomToStep/GeomToStep_MakeHyperbola.hxx | 71 + src/GeomToStep/GeomToStep_MakeLine.cdl | 54 - src/GeomToStep/GeomToStep_MakeLine.cxx | 20 +- src/GeomToStep/GeomToStep_MakeLine.hxx | 78 + src/GeomToStep/GeomToStep_MakeParabola.cdl | 48 - src/GeomToStep/GeomToStep_MakeParabola.cxx | 15 +- src/GeomToStep/GeomToStep_MakeParabola.hxx | 71 + src/GeomToStep/GeomToStep_MakePlane.cdl | 48 - src/GeomToStep/GeomToStep_MakePlane.cxx | 12 +- src/GeomToStep/GeomToStep_MakePlane.hxx | 72 + src/GeomToStep/GeomToStep_MakePolyline.cdl | 46 - src/GeomToStep/GeomToStep_MakePolyline.cxx | 14 +- src/GeomToStep/GeomToStep_MakePolyline.hxx | 70 + ...omToStep_MakeRectangularTrimmedSurface.cdl | 50 - ...omToStep_MakeRectangularTrimmedSurface.cxx | 20 +- ...omToStep_MakeRectangularTrimmedSurface.hxx | 70 + .../GeomToStep_MakeSphericalSurface.cdl | 47 - .../GeomToStep_MakeSphericalSurface.cxx | 8 +- .../GeomToStep_MakeSphericalSurface.hxx | 69 + src/GeomToStep/GeomToStep_MakeSurface.cdl | 46 - src/GeomToStep/GeomToStep_MakeSurface.cxx | 25 +- src/GeomToStep/GeomToStep_MakeSurface.hxx | 69 + ...eomToStep_MakeSurfaceOfLinearExtrusion.cdl | 46 - ...eomToStep_MakeSurfaceOfLinearExtrusion.cxx | 12 +- ...eomToStep_MakeSurfaceOfLinearExtrusion.hxx | 69 + .../GeomToStep_MakeSurfaceOfRevolution.cdl | 46 - .../GeomToStep_MakeSurfaceOfRevolution.cxx | 10 +- .../GeomToStep_MakeSurfaceOfRevolution.hxx | 69 + .../GeomToStep_MakeSweptSurface.cdl | 47 - .../GeomToStep_MakeSweptSurface.cxx | 14 +- .../GeomToStep_MakeSweptSurface.hxx | 70 + .../GeomToStep_MakeToroidalSurface.cdl | 46 - .../GeomToStep_MakeToroidalSurface.cxx | 6 +- .../GeomToStep_MakeToroidalSurface.hxx | 69 + src/GeomToStep/GeomToStep_MakeVector.cdl | 54 - src/GeomToStep/GeomToStep_MakeVector.cxx | 12 +- src/GeomToStep/GeomToStep_MakeVector.hxx | 78 + src/GeomToStep/GeomToStep_Root.cdl | 33 - src/GeomToStep/GeomToStep_Root.cxx | 3 +- src/GeomToStep/GeomToStep_Root.hxx | 62 + src/GeomToStep/GeomToStep_WOKSteps.edl | 16 - src/GeomTools/FILES | 10 + src/GeomTools/GeomTools.cdl | 89 - src/GeomTools/GeomTools.cxx | 9 +- src/GeomTools/GeomTools.hxx | 113 + src/GeomTools/GeomTools_Curve2dSet.cdl | 98 - src/GeomTools/GeomTools_Curve2dSet.cxx | 38 +- src/GeomTools/GeomTools_Curve2dSet.hxx | 107 + src/GeomTools/GeomTools_CurveSet.cdl | 98 - src/GeomTools/GeomTools_CurveSet.cxx | 38 +- src/GeomTools/GeomTools_CurveSet.hxx | 107 + src/GeomTools/GeomTools_SurfaceSet.cdl | 98 - src/GeomTools/GeomTools_SurfaceSet.cxx | 46 +- src/GeomTools/GeomTools_SurfaceSet.hxx | 107 + .../GeomTools_UndefinedTypeHandler.cdl | 69 - .../GeomTools_UndefinedTypeHandler.cxx | 7 +- .../GeomTools_UndefinedTypeHandler.hxx | 80 + src/GeometryTest/FILES | 10 +- src/GeometryTest/GeometryTest.cdl | 72 - src/GeometryTest/GeometryTest.hxx | 99 + .../GeometryTest_FairCurveCommands.cxx | 10 +- .../GeometryTest_PolyCommands.cxx | 20 +- src/GeomliteTest/FILES | 6 +- src/GeomliteTest/GeomliteTest.cdl | 56 - src/GeomliteTest/GeomliteTest.hxx | 83 + src/Graphic3d/FILES | 196 +- src/Graphic3d/Graphic3d.cdl | 571 --- src/Graphic3d/Graphic3d.edl | 19 - src/Graphic3d/Graphic3d_ArrayOfPoints.cdl | 31 - src/Graphic3d/Graphic3d_ArrayOfPoints.cxx | 4 +- src/Graphic3d/Graphic3d_ArrayOfPoints.hxx | 66 + src/Graphic3d/Graphic3d_ArrayOfPolygons.cdl | 114 - src/Graphic3d/Graphic3d_ArrayOfPolygons.cxx | 4 +- src/Graphic3d/Graphic3d_ArrayOfPolygons.hxx | 144 + src/Graphic3d/Graphic3d_ArrayOfPolylines.cdl | 101 - src/Graphic3d/Graphic3d_ArrayOfPolylines.cxx | 4 +- src/Graphic3d/Graphic3d_ArrayOfPolylines.hxx | 133 + src/Graphic3d/Graphic3d_ArrayOfPrimitives.cdl | 662 ---- src/Graphic3d/Graphic3d_ArrayOfPrimitives.cxx | 21 +- src/Graphic3d/Graphic3d_ArrayOfPrimitives.hxx | 379 ++ .../Graphic3d_ArrayOfQuadrangleStrips.cdl | 74 - .../Graphic3d_ArrayOfQuadrangleStrips.cxx | 4 +- .../Graphic3d_ArrayOfQuadrangleStrips.hxx | 86 + .../Graphic3d_ArrayOfQuadrangles.cdl | 80 - .../Graphic3d_ArrayOfQuadrangles.cxx | 5 +- .../Graphic3d_ArrayOfQuadrangles.hxx | 104 + src/Graphic3d/Graphic3d_ArrayOfSegments.cdl | 56 - src/Graphic3d/Graphic3d_ArrayOfSegments.cxx | 4 +- src/Graphic3d/Graphic3d_ArrayOfSegments.hxx | 90 + .../Graphic3d_ArrayOfTriangleFans.cdl | 75 - .../Graphic3d_ArrayOfTriangleFans.cxx | 4 +- .../Graphic3d_ArrayOfTriangleFans.hxx | 86 + .../Graphic3d_ArrayOfTriangleStrips.cdl | 74 - .../Graphic3d_ArrayOfTriangleStrips.cxx | 4 +- .../Graphic3d_ArrayOfTriangleStrips.hxx | 105 + src/Graphic3d/Graphic3d_ArrayOfTriangles.cdl | 69 - src/Graphic3d/Graphic3d_ArrayOfTriangles.cxx | 4 +- src/Graphic3d/Graphic3d_ArrayOfTriangles.hxx | 101 + src/Graphic3d/Graphic3d_AspectFillArea3d.cdl | 304 -- src/Graphic3d/Graphic3d_AspectFillArea3d.cxx | 8 +- src/Graphic3d/Graphic3d_AspectFillArea3d.hxx | 205 + src/Graphic3d/Graphic3d_AspectLine3d.cdl | 82 - src/Graphic3d/Graphic3d_AspectLine3d.cxx | 16 +- src/Graphic3d/Graphic3d_AspectLine3d.hxx | 87 + src/Graphic3d/Graphic3d_AspectMarker3d.cdl | 120 - src/Graphic3d/Graphic3d_AspectMarker3d.cxx | 9 +- src/Graphic3d/Graphic3d_AspectMarker3d.hxx | 106 + src/Graphic3d/Graphic3d_AspectText3d.cdl | 298 -- src/Graphic3d/Graphic3d_AspectText3d.cxx | 32 +- src/Graphic3d/Graphic3d_AspectText3d.hxx | 177 + .../Graphic3d_AspectTextDefinitionError.hxx | 37 + src/Graphic3d/Graphic3d_CMPLRS.edl | 27 - src/Graphic3d/Graphic3d_CStructurePtr.hxx | 23 + src/Graphic3d/Graphic3d_CycleError.hxx | 37 + .../Graphic3d_DataStructureManager.cdl | 53 - .../Graphic3d_DataStructureManager.cxx | 15 +- .../Graphic3d_DataStructureManager.hxx | 70 + src/Graphic3d/Graphic3d_ExportFormat.hxx | 32 + src/Graphic3d/Graphic3d_GraphicDriver.cdl | 733 ---- src/Graphic3d/Graphic3d_GraphicDriver.cxx | 9 +- src/Graphic3d/Graphic3d_GraphicDriver.hxx | 409 ++ src/Graphic3d/Graphic3d_Group.cdl | 557 --- src/Graphic3d/Graphic3d_Group.cxx | 22 +- src/Graphic3d/Graphic3d_Group.hxx | 318 ++ src/Graphic3d/Graphic3d_GroupAspect.hxx | 33 + .../Graphic3d_GroupDefinitionError.hxx | 37 + .../Graphic3d_HorizontalTextAlignment.hxx | 29 + .../Graphic3d_InitialisationError.hxx | 37 + .../Graphic3d_LevelOfTextureAnisotropy.hxx | 30 + src/Graphic3d/Graphic3d_MaterialAspect.cdl | 522 --- src/Graphic3d/Graphic3d_MaterialAspect.cxx | 6 +- src/Graphic3d/Graphic3d_MaterialAspect.hxx | 316 ++ .../Graphic3d_MaterialDefinitionError.hxx | 37 + src/Graphic3d/Graphic3d_NameOfMaterial.hxx | 50 + src/Graphic3d/Graphic3d_NameOfTexture1D.hxx | 27 + src/Graphic3d/Graphic3d_NameOfTexture2D.hxx | 47 + src/Graphic3d/Graphic3d_NameOfTextureEnv.hxx | 34 + .../Graphic3d_NameOfTexturePlane.hxx | 29 + .../Graphic3d_PriorityDefinitionError.hxx | 37 + src/Graphic3d/Graphic3d_RenderingMode.hxx | 29 + src/Graphic3d/Graphic3d_SortType.hxx | 27 + src/Graphic3d/Graphic3d_Structure.cdl | 1030 ----- src/Graphic3d/Graphic3d_Structure.cxx | 30 +- src/Graphic3d/Graphic3d_Structure.hxx | 569 +++ .../Graphic3d_StructureDefinitionError.hxx | 37 + src/Graphic3d/Graphic3d_StructureManager.cdl | 508 --- src/Graphic3d/Graphic3d_StructureManager.cxx | 20 +- src/Graphic3d/Graphic3d_StructureManager.hxx | 280 ++ .../Graphic3d_StructureManagerPtr.hxx | 23 + src/Graphic3d/Graphic3d_StructurePtr.hxx | 23 + src/Graphic3d/Graphic3d_TextPath.hxx | 29 + src/Graphic3d/Graphic3d_Texture1D.cdl | 68 - src/Graphic3d/Graphic3d_Texture1D.cxx | 5 +- src/Graphic3d/Graphic3d_Texture1D.hxx | 85 + src/Graphic3d/Graphic3d_Texture1Dmanual.cdl | 41 - src/Graphic3d/Graphic3d_Texture1Dmanual.cxx | 5 +- src/Graphic3d/Graphic3d_Texture1Dmanual.hxx | 72 + src/Graphic3d/Graphic3d_Texture1Dsegment.cdl | 63 - src/Graphic3d/Graphic3d_Texture1Dsegment.cxx | 7 +- src/Graphic3d/Graphic3d_Texture1Dsegment.hxx | 89 + src/Graphic3d/Graphic3d_Texture2D.cdl | 67 - src/Graphic3d/Graphic3d_Texture2D.cxx | 5 +- src/Graphic3d/Graphic3d_Texture2D.hxx | 85 + src/Graphic3d/Graphic3d_Texture2Dmanual.cdl | 42 - src/Graphic3d/Graphic3d_Texture2Dmanual.cxx | 7 +- src/Graphic3d/Graphic3d_Texture2Dmanual.hxx | 73 + src/Graphic3d/Graphic3d_Texture2Dplane.cdl | 120 - src/Graphic3d/Graphic3d_Texture2Dplane.cxx | 7 +- src/Graphic3d/Graphic3d_Texture2Dplane.hxx | 145 + src/Graphic3d/Graphic3d_TextureEnv.cdl | 67 - src/Graphic3d/Graphic3d_TextureEnv.cxx | 7 +- src/Graphic3d/Graphic3d_TextureEnv.hxx | 87 + src/Graphic3d/Graphic3d_TextureMap.cdl | 98 - src/Graphic3d/Graphic3d_TextureMap.cxx | 5 +- src/Graphic3d/Graphic3d_TextureMap.hxx | 115 + src/Graphic3d/Graphic3d_TextureParams.cdl | 167 - src/Graphic3d/Graphic3d_TextureParams.cxx | 4 +- src/Graphic3d/Graphic3d_TextureParams.hxx | 143 + src/Graphic3d/Graphic3d_TextureRoot.cdl | 120 - src/Graphic3d/Graphic3d_TextureRoot.cxx | 10 +- src/Graphic3d/Graphic3d_TextureRoot.hxx | 134 + src/Graphic3d/Graphic3d_TransformError.hxx | 37 + src/Graphic3d/Graphic3d_TypeOfBackground.hxx | 28 + src/Graphic3d/Graphic3d_TypeOfComposition.hxx | 27 + src/Graphic3d/Graphic3d_TypeOfConnection.hxx | 27 + src/Graphic3d/Graphic3d_TypeOfMaterial.hxx | 27 + src/Graphic3d/Graphic3d_TypeOfPolygon.hxx | 29 + src/Graphic3d/Graphic3d_TypeOfPrimitive.hxx | 33 + .../Graphic3d_TypeOfPrimitiveArray.hxx | 35 + src/Graphic3d/Graphic3d_TypeOfReflection.hxx | 29 + src/Graphic3d/Graphic3d_TypeOfStructure.hxx | 30 + src/Graphic3d/Graphic3d_TypeOfTexture.hxx | 28 + .../Graphic3d_TypeOfTextureFilter.hxx | 29 + src/Graphic3d/Graphic3d_TypeOfTextureMode.hxx | 30 + src/Graphic3d/Graphic3d_Vector.cdl | 180 - src/Graphic3d/Graphic3d_Vector.cxx | 13 +- src/Graphic3d/Graphic3d_Vector.hxx | 120 + src/Graphic3d/Graphic3d_VectorError.hxx | 37 + .../Graphic3d_VerticalTextAlignment.hxx | 29 + src/Graphic3d/Graphic3d_WOKSteps.edl | 23 - src/HLRAlgo/FILES | 64 +- src/HLRAlgo/HLRAlgo.cdl | 154 - src/HLRAlgo/HLRAlgo.cxx | 3 +- src/HLRAlgo/HLRAlgo.hxx | 132 + src/HLRAlgo/HLRAlgo_BiPoint.cdl | 117 - src/HLRAlgo/HLRAlgo_BiPoint.cxx | 4 +- src/HLRAlgo/HLRAlgo_BiPoint.hxx | 102 + src/HLRAlgo/HLRAlgo_Coincidence.cdl | 64 - src/HLRAlgo/HLRAlgo_Coincidence.cxx | 4 +- src/HLRAlgo/HLRAlgo_Coincidence.hxx | 86 + src/HLRAlgo/HLRAlgo_EdgeIterator.cdl | 85 - src/HLRAlgo/HLRAlgo_EdgeIterator.cxx | 6 +- src/HLRAlgo/HLRAlgo_EdgeIterator.hxx | 98 + src/HLRAlgo/HLRAlgo_EdgeStatus.cdl | 127 - src/HLRAlgo/HLRAlgo_EdgeStatus.cxx | 6 +- src/HLRAlgo/HLRAlgo_EdgeStatus.hxx | 119 + src/HLRAlgo/HLRAlgo_EdgesBlock.cdl | 121 - src/HLRAlgo/HLRAlgo_EdgesBlock.cxx | 6 +- src/HLRAlgo/HLRAlgo_EdgesBlock.hxx | 113 + src/HLRAlgo/HLRAlgo_Interference.hxx | 108 + src/HLRAlgo/HLRAlgo_Interference_0.cxx | 30 + src/HLRAlgo/HLRAlgo_Intersection.cdl | 107 - src/HLRAlgo/HLRAlgo_Intersection.cxx | 4 +- src/HLRAlgo/HLRAlgo_Intersection.hxx | 104 + src/HLRAlgo/HLRAlgo_PolyAlgo.cdl | 95 - src/HLRAlgo/HLRAlgo_PolyAlgo.cxx | 12 +- src/HLRAlgo/HLRAlgo_PolyAlgo.hxx | 103 + src/HLRAlgo/HLRAlgo_PolyData.cdl | 103 - src/HLRAlgo/HLRAlgo_PolyData.cxx | 6 +- src/HLRAlgo/HLRAlgo_PolyData.hxx | 104 + src/HLRAlgo/HLRAlgo_PolyHidingData.cdl | 46 - src/HLRAlgo/HLRAlgo_PolyHidingData.cxx | 3 +- src/HLRAlgo/HLRAlgo_PolyHidingData.hxx | 71 + src/HLRAlgo/HLRAlgo_PolyInternalData.cdl | 138 - src/HLRAlgo/HLRAlgo_PolyInternalData.cxx | 6 +- src/HLRAlgo/HLRAlgo_PolyInternalData.hxx | 123 + src/HLRAlgo/HLRAlgo_PolyInternalNode.cdl | 40 - src/HLRAlgo/HLRAlgo_PolyInternalNode.cxx | 4 +- src/HLRAlgo/HLRAlgo_PolyInternalNode.hxx | 71 + src/HLRAlgo/HLRAlgo_PolyInternalSegment.cdl | 35 - src/HLRAlgo/HLRAlgo_PolyInternalSegment.cxx | 3 +- src/HLRAlgo/HLRAlgo_PolyInternalSegment.hxx | 65 + src/HLRAlgo/HLRAlgo_PolyShellData.cdl | 72 - src/HLRAlgo/HLRAlgo_PolyShellData.cxx | 7 +- src/HLRAlgo/HLRAlgo_PolyShellData.hxx | 86 + src/HLRAlgo/HLRAlgo_Projector.cdl | 160 - src/HLRAlgo/HLRAlgo_Projector.cxx | 15 +- src/HLRAlgo/HLRAlgo_Projector.hxx | 148 + src/HLRAlgo/HLRAlgo_TriangleData.cdl | 36 - src/HLRAlgo/HLRAlgo_TriangleData.cxx | 3 +- src/HLRAlgo/HLRAlgo_TriangleData.hxx | 65 + src/HLRAlgo/HLRAlgo_WiresBlock.cdl | 61 - src/HLRAlgo/HLRAlgo_WiresBlock.cxx | 7 +- src/HLRAlgo/HLRAlgo_WiresBlock.hxx | 84 + src/HLRAppli/FILES | 2 + src/HLRAppli/HLRAppli.cdl | 29 - src/HLRAppli/HLRAppli_ReflectLines.cdl | 55 - src/HLRAppli/HLRAppli_ReflectLines.hxx | 80 + src/HLRBRep/FILES | 142 +- src/HLRBRep/HLRBRep.cdl | 149 - src/HLRBRep/HLRBRep.cxx | 17 +- src/HLRBRep/HLRBRep.hxx | 184 + src/HLRBRep/HLRBRep_Algo.cdl | 91 - src/HLRBRep/HLRBRep_Algo.cxx | 7 +- src/HLRBRep/HLRBRep_Algo.hxx | 119 + src/HLRBRep/HLRBRep_AreaLimit.cdl | 100 - src/HLRBRep/HLRBRep_AreaLimit.cxx | 6 +- src/HLRBRep/HLRBRep_AreaLimit.hxx | 109 + src/HLRBRep/HLRBRep_BCurveTool.cdl | 251 -- src/HLRBRep/HLRBRep_BCurveTool.cxx | 17 +- src/HLRBRep/HLRBRep_BCurveTool.hxx | 174 + src/HLRBRep/HLRBRep_BSurfaceTool.cdl | 286 -- src/HLRBRep/HLRBRep_BSurfaceTool.cxx | 12 +- src/HLRBRep/HLRBRep_BSurfaceTool.hxx | 184 + src/HLRBRep/HLRBRep_BiPnt2D.cdl | 93 - src/HLRBRep/HLRBRep_BiPnt2D.cxx | 6 +- src/HLRBRep/HLRBRep_BiPnt2D.hxx | 96 + src/HLRBRep/HLRBRep_BiPoint.cdl | 93 - src/HLRBRep/HLRBRep_BiPoint.cxx | 6 +- src/HLRBRep/HLRBRep_BiPoint.hxx | 96 + src/HLRBRep/HLRBRep_CInter.hxx | 197 + src/HLRBRep/HLRBRep_CInter_0.cxx | 73 + src/HLRBRep/HLRBRep_CLProps.hxx | 112 + src/HLRBRep/HLRBRep_CLPropsATool.cdl | 85 - src/HLRBRep/HLRBRep_CLPropsATool.cxx | 5 +- src/HLRBRep/HLRBRep_CLPropsATool.hxx | 95 + src/HLRBRep/HLRBRep_CLProps_0.cxx | 42 + src/HLRBRep/HLRBRep_Curve.cdl | 358 -- src/HLRBRep/HLRBRep_Curve.cxx | 31 +- src/HLRBRep/HLRBRep_Curve.hxx | 241 ++ src/HLRBRep/HLRBRep_CurveTool.cdl | 247 -- src/HLRBRep/HLRBRep_CurveTool.cxx | 15 +- src/HLRBRep/HLRBRep_CurveTool.hxx | 176 + src/HLRBRep/HLRBRep_Data.cdl | 380 -- src/HLRBRep/HLRBRep_Data.cxx | 34 +- src/HLRBRep/HLRBRep_Data.hxx | 281 ++ src/HLRBRep/HLRBRep_EdgeBuilder.cdl | 177 - src/HLRBRep/HLRBRep_EdgeBuilder.cxx | 10 +- src/HLRBRep/HLRBRep_EdgeBuilder.hxx | 145 + src/HLRBRep/HLRBRep_EdgeData.cdl | 214 -- src/HLRBRep/HLRBRep_EdgeData.cxx | 7 +- src/HLRBRep/HLRBRep_EdgeData.hxx | 158 + src/HLRBRep/HLRBRep_EdgeFaceTool.cdl | 46 - src/HLRBRep/HLRBRep_EdgeFaceTool.cxx | 15 +- src/HLRBRep/HLRBRep_EdgeFaceTool.hxx | 69 + src/HLRBRep/HLRBRep_EdgeIList.cdl | 36 - src/HLRBRep/HLRBRep_EdgeIList.cxx | 8 +- src/HLRBRep/HLRBRep_EdgeIList.hxx | 66 + src/HLRBRep/HLRBRep_EdgeInterferenceTool.cdl | 114 - src/HLRBRep/HLRBRep_EdgeInterferenceTool.cxx | 9 +- src/HLRBRep/HLRBRep_EdgeInterferenceTool.hxx | 110 + ...ctionPointOfTheIntPCurvePCurveOfCInter.hxx | 92 + ...ionPointOfTheIntPCurvePCurveOfCInter_0.cxx | 41 + src/HLRBRep/HLRBRep_FaceData.cdl | 193 - src/HLRBRep/HLRBRep_FaceData.cxx | 9 +- src/HLRBRep/HLRBRep_FaceData.hxx | 153 + src/HLRBRep/HLRBRep_FaceIterator.cdl | 104 - src/HLRBRep/HLRBRep_FaceIterator.cxx | 8 +- src/HLRBRep/HLRBRep_FaceIterator.hxx | 105 + src/HLRBRep/HLRBRep_HLRToShape.cdl | 186 - src/HLRBRep/HLRBRep_HLRToShape.cxx | 15 +- src/HLRBRep/HLRBRep_HLRToShape.hxx | 146 + src/HLRBRep/HLRBRep_Hider.cdl | 48 - src/HLRBRep/HLRBRep_Hider.cxx | 11 +- src/HLRBRep/HLRBRep_Hider.hxx | 73 + src/HLRBRep/HLRBRep_IntConicCurveOfCInter.hxx | 111 + .../HLRBRep_IntConicCurveOfCInter_0.cxx | 42 + src/HLRBRep/HLRBRep_InterCSurf.hxx | 123 + src/HLRBRep/HLRBRep_InterCSurf_0.cxx | 71 + src/HLRBRep/HLRBRep_InternalAlgo.cdl | 179 - src/HLRBRep/HLRBRep_InternalAlgo.cxx | 19 +- src/HLRBRep/HLRBRep_InternalAlgo.hxx | 162 + src/HLRBRep/HLRBRep_Intersector.cdl | 137 - src/HLRBRep/HLRBRep_Intersector.cxx | 25 +- src/HLRBRep/HLRBRep_Intersector.hxx | 120 + src/HLRBRep/HLRBRep_LineTool.cdl | 284 -- src/HLRBRep/HLRBRep_LineTool.cxx | 11 +- src/HLRBRep/HLRBRep_LineTool.hxx | 188 + ...eIntersectorOfTheIntConicCurveOfCInter.hxx | 74 + ...ntersectorOfTheIntConicCurveOfCInter_0.cxx | 32 + ...FOfTheLocateExtPCOfTheProjPCurOfCInter.hxx | 117 + ...fTheLocateExtPCOfTheProjPCurOfCInter_0.cxx | 50 + src/HLRBRep/HLRBRep_PolyAlgo.cdl | 581 --- src/HLRBRep/HLRBRep_PolyAlgo.cxx | 44 +- src/HLRBRep/HLRBRep_PolyAlgo.hxx | 286 ++ src/HLRBRep/HLRBRep_PolyHLRToShape.cdl | 163 - src/HLRBRep/HLRBRep_PolyHLRToShape.cxx | 14 +- src/HLRBRep/HLRBRep_PolyHLRToShape.hxx | 147 + src/HLRBRep/HLRBRep_SLProps.hxx | 146 + src/HLRBRep/HLRBRep_SLPropsATool.cdl | 72 - src/HLRBRep/HLRBRep_SLPropsATool.cxx | 5 +- src/HLRBRep/HLRBRep_SLPropsATool.hxx | 87 + src/HLRBRep/HLRBRep_SLProps_0.cxx | 36 + ...FOfTheLocateExtPCOfTheProjPCurOfCInter.hxx | 134 + ...fTheLocateExtPCOfTheProjPCurOfCInter_0.cxx | 33 + ...FOfTheLocateExtPCOfTheProjPCurOfCInter.hxx | 83 + ...fTheLocateExtPCOfTheProjPCurOfCInter_0.cxx | 41 + src/HLRBRep/HLRBRep_ShapeBounds.cdl | 95 - src/HLRBRep/HLRBRep_ShapeBounds.cxx | 6 +- src/HLRBRep/HLRBRep_ShapeBounds.hxx | 101 + src/HLRBRep/HLRBRep_ShapeToHLR.cdl | 58 - src/HLRBRep/HLRBRep_ShapeToHLR.cxx | 21 +- src/HLRBRep/HLRBRep_ShapeToHLR.hxx | 75 + src/HLRBRep/HLRBRep_Surface.cdl | 299 -- src/HLRBRep/HLRBRep_Surface.cxx | 21 +- src/HLRBRep/HLRBRep_Surface.hxx | 202 + src/HLRBRep/HLRBRep_SurfaceTool.cdl | 221 -- src/HLRBRep/HLRBRep_SurfaceTool.cxx | 11 +- src/HLRBRep/HLRBRep_SurfaceTool.hxx | 166 + .../HLRBRep_TheCSFunctionOfInterCSurf.hxx | 94 + .../HLRBRep_TheCSFunctionOfInterCSurf_0.cxx | 37 + ...p_TheCurveLocatorOfTheProjPCurOfCInter.hxx | 69 + ...TheCurveLocatorOfTheProjPCurOfCInter_0.cxx | 39 + ...eenPCurvesOfTheIntPCurvePCurveOfCInter.hxx | 78 + ...nPCurvesOfTheIntPCurvePCurveOfCInter_0.cxx | 30 + src/HLRBRep/HLRBRep_TheExactInterCSurf.hxx | 94 + src/HLRBRep/HLRBRep_TheExactInterCSurf_0.cxx | 42 + .../HLRBRep_TheIntConicCurveOfCInter.hxx | 128 + .../HLRBRep_TheIntConicCurveOfCInter_0.cxx | 49 + .../HLRBRep_TheIntPCurvePCurveOfCInter.hxx | 83 + .../HLRBRep_TheIntPCurvePCurveOfCInter_0.cxx | 42 + .../HLRBRep_TheInterferenceOfInterCSurf.hxx | 106 + .../HLRBRep_TheInterferenceOfInterCSurf_0.cxx | 40 + ...eIntersectorOfTheIntConicCurveOfCInter.hxx | 81 + ...ntersectorOfTheIntConicCurveOfCInter_0.cxx | 41 + ...ep_TheLocateExtPCOfTheProjPCurOfCInter.hxx | 93 + ..._TheLocateExtPCOfTheProjPCurOfCInter_0.cxx | 49 + ...ePolygon2dOfTheIntPCurvePCurveOfCInter.hxx | 118 + ...olygon2dOfTheIntPCurvePCurveOfCInter_0.cxx | 33 + .../HLRBRep_ThePolygonOfInterCSurf.hxx | 124 + .../HLRBRep_ThePolygonOfInterCSurf_0.cxx | 33 + .../HLRBRep_ThePolygonToolOfInterCSurf.hxx | 95 + .../HLRBRep_ThePolygonToolOfInterCSurf_0.cxx | 34 + .../HLRBRep_ThePolyhedronOfInterCSurf.hxx | 170 + .../HLRBRep_ThePolyhedronOfInterCSurf_0.cxx | 33 + .../HLRBRep_ThePolyhedronToolOfInterCSurf.hxx | 94 + ...LRBRep_ThePolyhedronToolOfInterCSurf_0.cxx | 30 + src/HLRBRep/HLRBRep_TheProjPCurOfCInter.hxx | 68 + src/HLRBRep/HLRBRep_TheProjPCurOfCInter_0.cxx | 41 + .../HLRBRep_TheQuadCurvExactInterCSurf.hxx | 82 + .../HLRBRep_TheQuadCurvExactInterCSurf_0.cxx | 38 + ...adCurvFuncOfTheQuadCurvExactInterCSurf.hxx | 75 + ...CurvFuncOfTheQuadCurvExactInterCSurf_0.cxx | 33 + src/HLRBRep/HLRBRep_VertexList.cdl | 81 - src/HLRBRep/HLRBRep_VertexList.cxx | 8 +- src/HLRBRep/HLRBRep_VertexList.hxx | 101 + src/HLRTest/FILES | 16 + src/HLRTest/HLRTest.cdl | 68 - src/HLRTest/HLRTest.cxx | 20 +- src/HLRTest/HLRTest.hxx | 93 + src/HLRTest/HLRTest_DrawableEdgeTool.cdl | 69 - src/HLRTest/HLRTest_DrawableEdgeTool.cxx | 12 +- src/HLRTest/HLRTest_DrawableEdgeTool.hxx | 81 + src/HLRTest/HLRTest_DrawablePolyEdgeTool.cdl | 87 - src/HLRTest/HLRTest_DrawablePolyEdgeTool.cxx | 11 +- src/HLRTest/HLRTest_DrawablePolyEdgeTool.hxx | 98 + src/HLRTest/HLRTest_OutLiner.cdl | 53 - src/HLRTest/HLRTest_OutLiner.cxx | 9 +- src/HLRTest/HLRTest_OutLiner.hxx | 84 + src/HLRTest/HLRTest_Projector.cdl | 53 - src/HLRTest/HLRTest_Projector.cxx | 8 +- src/HLRTest/HLRTest_Projector.hxx | 84 + src/HLRTest/HLRTest_ShapeData.cdl | 84 - src/HLRTest/HLRTest_ShapeData.cxx | 6 +- src/HLRTest/HLRTest_ShapeData.hxx | 94 + src/HLRTopoBRep/FILES | 24 +- src/HLRTopoBRep/HLRTopoBRep.cdl | 66 - src/HLRTopoBRep/HLRTopoBRep_DSFiller.cdl | 78 - src/HLRTopoBRep/HLRTopoBRep_DSFiller.cxx | 59 +- src/HLRTopoBRep/HLRTopoBRep_DSFiller.hxx | 89 + src/HLRTopoBRep/HLRTopoBRep_Data.cdl | 259 -- src/HLRTopoBRep/HLRTopoBRep_Data.cxx | 12 +- src/HLRTopoBRep/HLRTopoBRep_Data.hxx | 171 + src/HLRTopoBRep/HLRTopoBRep_FaceData.cdl | 76 - src/HLRTopoBRep/HLRTopoBRep_FaceData.cxx | 4 +- src/HLRTopoBRep/HLRTopoBRep_FaceData.hxx | 77 + src/HLRTopoBRep/HLRTopoBRep_FaceIsoLiner.cdl | 54 - src/HLRTopoBRep/HLRTopoBRep_FaceIsoLiner.cxx | 35 +- src/HLRTopoBRep/HLRTopoBRep_FaceIsoLiner.hxx | 71 + src/HLRTopoBRep/HLRTopoBRep_OutLiner.cdl | 80 - src/HLRTopoBRep/HLRTopoBRep_OutLiner.cxx | 31 +- src/HLRTopoBRep/HLRTopoBRep_OutLiner.hxx | 94 + src/HLRTopoBRep/HLRTopoBRep_VData.cdl | 43 - src/HLRTopoBRep/HLRTopoBRep_VData.cxx | 5 +- src/HLRTopoBRep/HLRTopoBRep_VData.hxx | 71 + src/Hatch/FILES | 10 +- src/Hatch/Hatch.cdl | 54 - src/Hatch/Hatch_Hatcher.cdl | 237 -- src/Hatch/Hatch_Hatcher.cxx | 13 +- src/Hatch/Hatch_Hatcher.hxx | 191 + src/Hatch/Hatch_Line.cdl | 61 - src/Hatch/Hatch_Line.cxx | 6 +- src/Hatch/Hatch_Line.hxx | 83 + src/Hatch/Hatch_LineForm.hxx | 28 + src/Hatch/Hatch_Parameter.cdl | 50 - src/Hatch/Hatch_Parameter.cxx | 6 +- src/Hatch/Hatch_Parameter.hxx | 76 + src/HatchGen/FILES | 16 +- src/HatchGen/HatchGen.cdl | 65 - src/HatchGen/HatchGen_Domain.cdl | 161 - src/HatchGen/HatchGen_Domain.cxx | 6 +- src/HatchGen/HatchGen_Domain.hxx | 118 + src/HatchGen/HatchGen_ErrorStatus.hxx | 30 + src/HatchGen/HatchGen_IntersectionPoint.cdl | 188 - src/HatchGen/HatchGen_IntersectionPoint.cxx | 4 +- src/HatchGen/HatchGen_IntersectionPoint.hxx | 118 + src/HatchGen/HatchGen_IntersectionType.hxx | 30 + src/HatchGen/HatchGen_PointOnElement.cdl | 122 - src/HatchGen/HatchGen_PointOnElement.cxx | 5 +- src/HatchGen/HatchGen_PointOnElement.hxx | 98 + src/HatchGen/HatchGen_PointOnHatching.cdl | 174 - src/HatchGen/HatchGen_PointOnHatching.cxx | 6 +- src/HatchGen/HatchGen_PointOnHatching.hxx | 116 + src/HeaderSection/FILES | 12 + src/HeaderSection/HeaderSection.cdl | 45 - src/HeaderSection/HeaderSection.cxx | 4 +- src/HeaderSection/HeaderSection.hxx | 71 + .../HeaderSection_FileDescription.cdl | 48 - .../HeaderSection_FileDescription.cxx | 4 +- .../HeaderSection_FileDescription.hxx | 81 + src/HeaderSection/HeaderSection_FileName.cdl | 70 - src/HeaderSection/HeaderSection_FileName.cxx | 4 +- src/HeaderSection/HeaderSection_FileName.hxx | 110 + .../HeaderSection_FileSchema.cdl | 44 - .../HeaderSection_FileSchema.cxx | 4 +- .../HeaderSection_FileSchema.hxx | 76 + .../HeaderSection_HeaderRecognizer.cdl | 32 - .../HeaderSection_HeaderRecognizer.cxx | 8 +- .../HeaderSection_HeaderRecognizer.hxx | 66 + src/HeaderSection/HeaderSection_Protocol.cdl | 31 - src/HeaderSection/HeaderSection_Protocol.cxx | 6 +- src/HeaderSection/HeaderSection_Protocol.hxx | 70 + src/Hermit/FILES | 2 + src/Hermit/Hermit.cdl | 69 - src/Hermit/Hermit.cxx | 23 +- src/Hermit/Hermit.hxx | 89 + src/IFGraph/FILES | 22 + src/IFGraph/IFGraph.cdl | 42 - src/IFGraph/IFGraph_AllConnected.cdl | 58 - src/IFGraph/IFGraph_AllConnected.cxx | 7 +- src/IFGraph/IFGraph_AllConnected.hxx | 86 + src/IFGraph/IFGraph_AllShared.cdl | 57 - src/IFGraph/IFGraph_AllShared.cxx | 7 +- src/IFGraph/IFGraph_AllShared.hxx | 86 + src/IFGraph/IFGraph_Articulations.cdl | 60 - src/IFGraph/IFGraph_Articulations.cxx | 9 +- src/IFGraph/IFGraph_Articulations.hxx | 94 + src/IFGraph/IFGraph_Compare.cdl | 77 - src/IFGraph/IFGraph_Compare.cxx | 9 +- src/IFGraph/IFGraph_Compare.hxx | 107 + src/IFGraph/IFGraph_ConnectedComponants.cdl | 36 - src/IFGraph/IFGraph_ConnectedComponants.cxx | 10 +- src/IFGraph/IFGraph_ConnectedComponants.hxx | 69 + src/IFGraph/IFGraph_Cumulate.cdl | 71 - src/IFGraph/IFGraph_Cumulate.cxx | 9 +- src/IFGraph/IFGraph_Cumulate.hxx | 101 + src/IFGraph/IFGraph_Cycles.cdl | 39 - src/IFGraph/IFGraph_Cycles.cxx | 10 +- src/IFGraph/IFGraph_Cycles.hxx | 73 + src/IFGraph/IFGraph_ExternalSources.cdl | 53 - src/IFGraph/IFGraph_ExternalSources.cxx | 8 +- src/IFGraph/IFGraph_ExternalSources.hxx | 85 + src/IFGraph/IFGraph_SCRoots.cdl | 38 - src/IFGraph/IFGraph_SCRoots.cxx | 8 +- src/IFGraph/IFGraph_SCRoots.hxx | 72 + src/IFGraph/IFGraph_StrongComponants.cdl | 36 - src/IFGraph/IFGraph_StrongComponants.cxx | 5 +- src/IFGraph/IFGraph_StrongComponants.hxx | 69 + src/IFGraph/IFGraph_SubPartsIterator.cdl | 155 - src/IFGraph/IFGraph_SubPartsIterator.cxx | 14 +- src/IFGraph/IFGraph_SubPartsIterator.hxx | 188 + src/IFSelect/FILES | 167 +- src/IFSelect/IFSelect.cdl | 229 -- src/IFSelect/IFSelect.cxx | 7 +- src/IFSelect/IFSelect.hxx | 238 ++ src/IFSelect/IFSelect_Act.cdl | 82 - src/IFSelect/IFSelect_Act.cxx | 6 +- src/IFSelect/IFSelect_Act.hxx | 111 + src/IFSelect/IFSelect_Activator.cdl | 143 - src/IFSelect/IFSelect_Activator.cxx | 19 +- src/IFSelect/IFSelect_Activator.hxx | 162 + src/IFSelect/IFSelect_AppliedModifiers.cdl | 99 - src/IFSelect/IFSelect_AppliedModifiers.cxx | 4 +- src/IFSelect/IFSelect_AppliedModifiers.hxx | 133 + src/IFSelect/IFSelect_BasicDumper.cdl | 40 - src/IFSelect/IFSelect_BasicDumper.cxx | 41 +- src/IFSelect/IFSelect_BasicDumper.hxx | 76 + src/IFSelect/IFSelect_CheckCounter.cdl | 56 - src/IFSelect/IFSelect_CheckCounter.cxx | 13 +- src/IFSelect/IFSelect_CheckCounter.hxx | 87 + src/IFSelect/IFSelect_ContextModif.cdl | 205 - src/IFSelect/IFSelect_ContextModif.cxx | 17 +- src/IFSelect/IFSelect_ContextModif.hxx | 241 ++ src/IFSelect/IFSelect_ContextWrite.cdl | 157 - src/IFSelect/IFSelect_ContextWrite.cxx | 14 +- src/IFSelect/IFSelect_ContextWrite.hxx | 185 + src/IFSelect/IFSelect_DispGlobal.cdl | 47 - src/IFSelect/IFSelect_DispGlobal.cxx | 9 +- src/IFSelect/IFSelect_DispGlobal.hxx | 82 + src/IFSelect/IFSelect_DispPerCount.cdl | 67 - src/IFSelect/IFSelect_DispPerCount.cxx | 14 +- src/IFSelect/IFSelect_DispPerCount.hxx | 98 + src/IFSelect/IFSelect_DispPerFiles.cdl | 71 - src/IFSelect/IFSelect_DispPerFiles.cxx | 14 +- src/IFSelect/IFSelect_DispPerFiles.hxx | 102 + src/IFSelect/IFSelect_DispPerOne.cdl | 48 - src/IFSelect/IFSelect_DispPerOne.cxx | 14 +- src/IFSelect/IFSelect_DispPerOne.hxx | 83 + src/IFSelect/IFSelect_DispPerSignature.cdl | 65 - src/IFSelect/IFSelect_DispPerSignature.cxx | 16 +- src/IFSelect/IFSelect_DispPerSignature.hxx | 95 + src/IFSelect/IFSelect_Dispatch.cdl | 132 - src/IFSelect/IFSelect_Dispatch.cxx | 13 +- src/IFSelect/IFSelect_Dispatch.hxx | 163 + src/IFSelect/IFSelect_EditForm.cdl | 304 -- src/IFSelect/IFSelect_EditForm.cxx | 12 +- src/IFSelect/IFSelect_EditForm.hxx | 319 ++ src/IFSelect/IFSelect_EditValue.hxx | 37 + src/IFSelect/IFSelect_Editor.cdl | 178 - src/IFSelect/IFSelect_Editor.cxx | 16 +- src/IFSelect/IFSelect_Editor.hxx | 200 + src/IFSelect/IFSelect_FileModifier.cdl | 58 - src/IFSelect/IFSelect_Functions.cdl | 69 - src/IFSelect/IFSelect_Functions.cxx | 98 +- src/IFSelect/IFSelect_Functions.hxx | 102 + src/IFSelect/IFSelect_GeneralModifier.cdl | 106 - src/IFSelect/IFSelect_GeneralModifier.cxx | 7 +- src/IFSelect/IFSelect_GeneralModifier.hxx | 138 + src/IFSelect/IFSelect_GraphCounter.cdl | 52 - src/IFSelect/IFSelect_GraphCounter.cxx | 11 +- src/IFSelect/IFSelect_GraphCounter.hxx | 84 + src/IFSelect/IFSelect_IntParam.cdl | 69 - src/IFSelect/IFSelect_IntParam.cxx | 5 +- src/IFSelect/IFSelect_IntParam.hxx | 103 + src/IFSelect/IFSelect_ListEditor.cdl | 150 - src/IFSelect/IFSelect_ListEditor.cxx | 7 +- src/IFSelect/IFSelect_ListEditor.hxx | 173 + src/IFSelect/IFSelect_ModelCopier.cdl | 267 -- src/IFSelect/IFSelect_ModelCopier.cxx | 30 +- src/IFSelect/IFSelect_ModelCopier.hxx | 278 ++ src/IFSelect/IFSelect_ModelModifier.cdl | 72 - src/IFSelect/IFSelect_ModifEditForm.cdl | 46 - src/IFSelect/IFSelect_ModifEditForm.cxx | 10 +- src/IFSelect/IFSelect_ModifEditForm.hxx | 78 + src/IFSelect/IFSelect_ModifReorder.cdl | 50 - src/IFSelect/IFSelect_ModifReorder.cxx | 11 +- src/IFSelect/IFSelect_ModifReorder.hxx | 83 + src/IFSelect/IFSelect_Modifier.cdl | 51 - src/IFSelect/IFSelect_Modifier.cxx | 7 +- src/IFSelect/IFSelect_Modifier.hxx | 87 + src/IFSelect/IFSelect_PacketList.cdl | 103 - src/IFSelect/IFSelect_PacketList.cxx | 11 +- src/IFSelect/IFSelect_PacketList.hxx | 136 + src/IFSelect/IFSelect_ParamEditor.cdl | 74 - src/IFSelect/IFSelect_ParamEditor.cxx | 11 +- src/IFSelect/IFSelect_ParamEditor.hxx | 107 + src/IFSelect/IFSelect_PrintCount.hxx | 61 + src/IFSelect/IFSelect_PrintFail.hxx | 32 + src/IFSelect/IFSelect_RemainMode.hxx | 29 + src/IFSelect/IFSelect_ReturnStatus.hxx | 36 + src/IFSelect/IFSelect_SelectAnyList.cdl | 123 - src/IFSelect/IFSelect_SelectAnyList.cxx | 14 +- src/IFSelect/IFSelect_SelectAnyList.hxx | 156 + src/IFSelect/IFSelect_SelectAnyType.cdl | 36 - src/IFSelect/IFSelect_SelectAnyType.cxx | 5 +- src/IFSelect/IFSelect_SelectAnyType.hxx | 74 + src/IFSelect/IFSelect_SelectBase.cdl | 30 - src/IFSelect/IFSelect_SelectBase.cxx | 5 +- src/IFSelect/IFSelect_SelectBase.hxx | 65 + src/IFSelect/IFSelect_SelectCombine.cdl | 72 - src/IFSelect/IFSelect_SelectCombine.cxx | 7 +- src/IFSelect/IFSelect_SelectCombine.hxx | 105 + src/IFSelect/IFSelect_SelectControl.cdl | 68 - src/IFSelect/IFSelect_SelectControl.cxx | 6 +- src/IFSelect/IFSelect_SelectControl.hxx | 97 + src/IFSelect/IFSelect_SelectDeduct.cdl | 80 - src/IFSelect/IFSelect_SelectDeduct.cxx | 9 +- src/IFSelect/IFSelect_SelectDeduct.hxx | 111 + src/IFSelect/IFSelect_SelectDiff.cdl | 41 - src/IFSelect/IFSelect_SelectDiff.cxx | 8 +- src/IFSelect/IFSelect_SelectDiff.hxx | 77 + src/IFSelect/IFSelect_SelectEntityNumber.cdl | 49 - src/IFSelect/IFSelect_SelectEntityNumber.cxx | 9 +- src/IFSelect/IFSelect_SelectEntityNumber.hxx | 84 + src/IFSelect/IFSelect_SelectErrorEntities.cdl | 41 - src/IFSelect/IFSelect_SelectErrorEntities.cxx | 6 +- src/IFSelect/IFSelect_SelectErrorEntities.hxx | 78 + src/IFSelect/IFSelect_SelectExplore.cdl | 81 - src/IFSelect/IFSelect_SelectExplore.cxx | 11 +- src/IFSelect/IFSelect_SelectExplore.hxx | 116 + src/IFSelect/IFSelect_SelectExtract.cdl | 79 - src/IFSelect/IFSelect_SelectExtract.cxx | 8 +- src/IFSelect/IFSelect_SelectExtract.hxx | 111 + src/IFSelect/IFSelect_SelectFlag.cdl | 58 - src/IFSelect/IFSelect_SelectFlag.cxx | 8 +- src/IFSelect/IFSelect_SelectFlag.hxx | 96 + src/IFSelect/IFSelect_SelectInList.cdl | 51 - src/IFSelect/IFSelect_SelectInList.cxx | 9 +- src/IFSelect/IFSelect_SelectInList.hxx | 81 + .../IFSelect_SelectIncorrectEntities.cdl | 33 - .../IFSelect_SelectIncorrectEntities.cxx | 3 +- .../IFSelect_SelectIncorrectEntities.hxx | 67 + src/IFSelect/IFSelect_SelectIntersection.cdl | 36 - src/IFSelect/IFSelect_SelectIntersection.cxx | 8 +- src/IFSelect/IFSelect_SelectIntersection.hxx | 73 + src/IFSelect/IFSelect_SelectModelEntities.cdl | 40 - src/IFSelect/IFSelect_SelectModelEntities.cxx | 8 +- src/IFSelect/IFSelect_SelectModelEntities.hxx | 77 + src/IFSelect/IFSelect_SelectModelRoots.cdl | 38 - src/IFSelect/IFSelect_SelectModelRoots.cxx | 6 +- src/IFSelect/IFSelect_SelectModelRoots.hxx | 75 + src/IFSelect/IFSelect_SelectPointed.cdl | 117 - src/IFSelect/IFSelect_SelectPointed.cxx | 13 +- src/IFSelect/IFSelect_SelectPointed.hxx | 152 + src/IFSelect/IFSelect_SelectRange.cdl | 79 - src/IFSelect/IFSelect_SelectRange.cxx | 10 +- src/IFSelect/IFSelect_SelectRange.hxx | 112 + src/IFSelect/IFSelect_SelectRootComps.cdl | 53 - src/IFSelect/IFSelect_SelectRootComps.cxx | 12 +- src/IFSelect/IFSelect_SelectRootComps.hxx | 93 + src/IFSelect/IFSelect_SelectRoots.cdl | 46 - src/IFSelect/IFSelect_SelectRoots.cxx | 10 +- src/IFSelect/IFSelect_SelectRoots.hxx | 86 + src/IFSelect/IFSelect_SelectSent.cdl | 80 - src/IFSelect/IFSelect_SelectSent.cxx | 10 +- src/IFSelect/IFSelect_SelectSent.hxx | 115 + src/IFSelect/IFSelect_SelectShared.cdl | 36 - src/IFSelect/IFSelect_SelectShared.cxx | 7 +- src/IFSelect/IFSelect_SelectShared.hxx | 73 + src/IFSelect/IFSelect_SelectSharing.cdl | 38 - src/IFSelect/IFSelect_SelectSharing.cxx | 7 +- src/IFSelect/IFSelect_SelectSharing.hxx | 75 + src/IFSelect/IFSelect_SelectSignature.cdl | 104 - src/IFSelect/IFSelect_SelectSignature.cxx | 10 +- src/IFSelect/IFSelect_SelectSignature.hxx | 133 + src/IFSelect/IFSelect_SelectSignedShared.cdl | 65 - src/IFSelect/IFSelect_SelectSignedShared.cxx | 8 +- src/IFSelect/IFSelect_SelectSignedShared.hxx | 98 + src/IFSelect/IFSelect_SelectSignedSharing.cdl | 65 - src/IFSelect/IFSelect_SelectSignedSharing.cxx | 8 +- src/IFSelect/IFSelect_SelectSignedSharing.hxx | 98 + src/IFSelect/IFSelect_SelectSuite.cdl | 91 - src/IFSelect/IFSelect_SelectSuite.cxx | 14 +- src/IFSelect/IFSelect_SelectSuite.hxx | 125 + src/IFSelect/IFSelect_SelectType.cdl | 47 - src/IFSelect/IFSelect_SelectType.cxx | 6 +- src/IFSelect/IFSelect_SelectType.hxx | 80 + src/IFSelect/IFSelect_SelectUnion.cdl | 36 - src/IFSelect/IFSelect_SelectUnion.cxx | 8 +- src/IFSelect/IFSelect_SelectUnion.hxx | 73 + .../IFSelect_SelectUnknownEntities.cdl | 38 - .../IFSelect_SelectUnknownEntities.cxx | 6 +- .../IFSelect_SelectUnknownEntities.hxx | 75 + src/IFSelect/IFSelect_Selection.cdl | 68 - src/IFSelect/IFSelect_Selection.cxx | 10 +- src/IFSelect/IFSelect_Selection.hxx | 104 + src/IFSelect/IFSelect_SelectionIterator.cdl | 62 - src/IFSelect/IFSelect_SelectionIterator.cxx | 4 +- src/IFSelect/IFSelect_SelectionIterator.hxx | 93 + src/IFSelect/IFSelect_SessionDumper.cdl | 89 - src/IFSelect/IFSelect_SessionDumper.cxx | 10 +- src/IFSelect/IFSelect_SessionDumper.hxx | 121 + src/IFSelect/IFSelect_SessionFile.cdl | 279 -- src/IFSelect/IFSelect_SessionFile.cxx | 38 +- src/IFSelect/IFSelect_SessionFile.hxx | 308 ++ src/IFSelect/IFSelect_SessionPilot.cdl | 216 -- src/IFSelect/IFSelect_SessionPilot.cxx | 16 +- src/IFSelect/IFSelect_SessionPilot.hxx | 246 ++ src/IFSelect/IFSelect_ShareOut.cdl | 242 -- src/IFSelect/IFSelect_ShareOut.cxx | 15 +- src/IFSelect/IFSelect_ShareOut.hxx | 260 ++ src/IFSelect/IFSelect_ShareOutResult.cdl | 156 - src/IFSelect/IFSelect_ShareOutResult.cxx | 15 +- src/IFSelect/IFSelect_ShareOutResult.hxx | 188 + src/IFSelect/IFSelect_SignAncestor.cdl | 34 - src/IFSelect/IFSelect_SignAncestor.cxx | 8 +- src/IFSelect/IFSelect_SignAncestor.hxx | 67 + src/IFSelect/IFSelect_SignCategory.cdl | 33 - src/IFSelect/IFSelect_SignCategory.cxx | 7 +- src/IFSelect/IFSelect_SignCategory.hxx | 70 + src/IFSelect/IFSelect_SignCounter.cdl | 159 - src/IFSelect/IFSelect_SignCounter.cxx | 11 +- src/IFSelect/IFSelect_SignCounter.hxx | 187 + src/IFSelect/IFSelect_SignMultiple.cdl | 59 - src/IFSelect/IFSelect_SignMultiple.cxx | 9 +- src/IFSelect/IFSelect_SignMultiple.hxx | 95 + src/IFSelect/IFSelect_SignType.cdl | 41 - src/IFSelect/IFSelect_SignType.cxx | 7 +- src/IFSelect/IFSelect_SignType.hxx | 76 + src/IFSelect/IFSelect_SignValidity.cdl | 42 - src/IFSelect/IFSelect_SignValidity.cxx | 7 +- src/IFSelect/IFSelect_SignValidity.hxx | 78 + src/IFSelect/IFSelect_Signature.cdl | 105 - src/IFSelect/IFSelect_Signature.cxx | 8 +- src/IFSelect/IFSelect_Signature.hxx | 130 + src/IFSelect/IFSelect_SignatureList.cdl | 139 - src/IFSelect/IFSelect_SignatureList.cxx | 15 +- src/IFSelect/IFSelect_SignatureList.hxx | 171 + src/IFSelect/IFSelect_TransformStandard.cdl | 155 - src/IFSelect/IFSelect_TransformStandard.cxx | 24 +- src/IFSelect/IFSelect_TransformStandard.hxx | 180 + src/IFSelect/IFSelect_Transformer.cdl | 87 - src/IFSelect/IFSelect_Transformer.cxx | 9 +- src/IFSelect/IFSelect_Transformer.hxx | 123 + src/IFSelect/IFSelect_WorkLibrary.cdl | 132 - src/IFSelect/IFSelect_WorkLibrary.cxx | 14 +- src/IFSelect/IFSelect_WorkLibrary.hxx | 149 + src/IFSelect/IFSelect_WorkSession.cdl | 1167 ------ src/IFSelect/IFSelect_WorkSession.cxx | 105 +- src/IFSelect/IFSelect_WorkSession.hxx | 1116 ++++++ src/IGESAppli/FILES | 90 +- src/IGESAppli/IGESAppli.cdl | 127 - src/IGESAppli/IGESAppli.cxx | 13 +- src/IGESAppli/IGESAppli.hxx | 149 + src/IGESAppli/IGESAppli_DrilledHole.cdl | 93 - src/IGESAppli/IGESAppli_DrilledHole.cxx | 4 +- src/IGESAppli/IGESAppli_DrilledHole.hxx | 104 + src/IGESAppli/IGESAppli_ElementResults.cdl | 202 - src/IGESAppli/IGESAppli_ElementResults.cxx | 11 +- src/IGESAppli/IGESAppli_ElementResults.hxx | 175 + src/IGESAppli/IGESAppli_FiniteElement.cdl | 79 - src/IGESAppli/IGESAppli_FiniteElement.cxx | 8 +- src/IGESAppli/IGESAppli_FiniteElement.hxx | 92 + src/IGESAppli/IGESAppli_Flow.cdl | 157 - src/IGESAppli/IGESAppli_Flow.cxx | 9 +- src/IGESAppli/IGESAppli_Flow.hxx | 155 + src/IGESAppli/IGESAppli_FlowLineSpec.cdl | 66 - src/IGESAppli/IGESAppli_FlowLineSpec.cxx | 6 +- src/IGESAppli/IGESAppli_FlowLineSpec.hxx | 84 + src/IGESAppli/IGESAppli_GeneralModule.cdl | 62 - src/IGESAppli/IGESAppli_GeneralModule.cxx | 27 +- src/IGESAppli/IGESAppli_GeneralModule.hxx | 96 + src/IGESAppli/IGESAppli_LevelFunction.cdl | 72 - src/IGESAppli/IGESAppli_LevelFunction.cxx | 5 +- src/IGESAppli/IGESAppli_LevelFunction.hxx | 88 + .../IGESAppli_LevelToPWBLayerMap.cdl | 105 - .../IGESAppli_LevelToPWBLayerMap.cxx | 7 +- .../IGESAppli_LevelToPWBLayerMap.hxx | 108 + src/IGESAppli/IGESAppli_LineWidening.cdl | 107 - src/IGESAppli/IGESAppli_LineWidening.cxx | 4 +- src/IGESAppli/IGESAppli_LineWidening.hxx | 117 + src/IGESAppli/IGESAppli_NodalConstraint.cdl | 82 - src/IGESAppli/IGESAppli_NodalConstraint.cxx | 7 +- src/IGESAppli/IGESAppli_NodalConstraint.hxx | 95 + src/IGESAppli/IGESAppli_NodalDisplAndRot.cdl | 119 - src/IGESAppli/IGESAppli_NodalDisplAndRot.cxx | 10 +- src/IGESAppli/IGESAppli_NodalDisplAndRot.hxx | 123 + src/IGESAppli/IGESAppli_NodalResults.cdl | 123 - src/IGESAppli/IGESAppli_NodalResults.cxx | 7 +- src/IGESAppli/IGESAppli_NodalResults.hxx | 126 + src/IGESAppli/IGESAppli_Node.cdl | 75 - src/IGESAppli/IGESAppli_Node.cxx | 7 +- src/IGESAppli/IGESAppli_Node.hxx | 93 + src/IGESAppli/IGESAppli_PWBArtworkStackup.cdl | 82 - src/IGESAppli/IGESAppli_PWBArtworkStackup.cxx | 6 +- src/IGESAppli/IGESAppli_PWBArtworkStackup.hxx | 95 + src/IGESAppli/IGESAppli_PWBDrilledHole.cdl | 76 - src/IGESAppli/IGESAppli_PWBDrilledHole.cxx | 3 +- src/IGESAppli/IGESAppli_PWBDrilledHole.hxx | 91 + src/IGESAppli/IGESAppli_PartNumber.cdl | 85 - src/IGESAppli/IGESAppli_PartNumber.cxx | 5 +- src/IGESAppli/IGESAppli_PartNumber.hxx | 96 + src/IGESAppli/IGESAppli_PinNumber.cdl | 65 - src/IGESAppli/IGESAppli_PinNumber.cxx | 5 +- src/IGESAppli/IGESAppli_PinNumber.hxx | 82 + src/IGESAppli/IGESAppli_PipingFlow.cdl | 147 - src/IGESAppli/IGESAppli_PipingFlow.cxx | 9 +- src/IGESAppli/IGESAppli_PipingFlow.hxx | 147 + src/IGESAppli/IGESAppli_Protocol.cdl | 41 - src/IGESAppli/IGESAppli_Protocol.cxx | 32 +- src/IGESAppli/IGESAppli_Protocol.hxx | 78 + src/IGESAppli/IGESAppli_ReadWriteModule.cdl | 45 - src/IGESAppli/IGESAppli_ReadWriteModule.cxx | 23 +- src/IGESAppli/IGESAppli_ReadWriteModule.hxx | 79 + .../IGESAppli_ReferenceDesignator.cdl | 65 - .../IGESAppli_ReferenceDesignator.cxx | 5 +- .../IGESAppli_ReferenceDesignator.hxx | 82 + src/IGESAppli/IGESAppli_RegionRestriction.cdl | 78 - src/IGESAppli/IGESAppli_RegionRestriction.cxx | 4 +- src/IGESAppli/IGESAppli_RegionRestriction.hxx | 92 + src/IGESAppli/IGESAppli_SpecificModule.cdl | 37 - src/IGESAppli/IGESAppli_SpecificModule.cxx | 21 +- src/IGESAppli/IGESAppli_SpecificModule.hxx | 74 + src/IGESAppli/IGESAppli_ToolDrilledHole.cdl | 72 - src/IGESAppli/IGESAppli_ToolDrilledHole.cxx | 17 +- src/IGESAppli/IGESAppli_ToolDrilledHole.hxx | 102 + .../IGESAppli_ToolElementResults.cdl | 68 - .../IGESAppli_ToolElementResults.cxx | 31 +- .../IGESAppli_ToolElementResults.hxx | 97 + src/IGESAppli/IGESAppli_ToolFiniteElement.cdl | 68 - src/IGESAppli/IGESAppli_ToolFiniteElement.cxx | 21 +- src/IGESAppli/IGESAppli_ToolFiniteElement.hxx | 97 + src/IGESAppli/IGESAppli_ToolFlow.cdl | 72 - src/IGESAppli/IGESAppli_ToolFlow.cxx | 27 +- src/IGESAppli/IGESAppli_ToolFlow.hxx | 102 + src/IGESAppli/IGESAppli_ToolFlowLineSpec.cdl | 68 - src/IGESAppli/IGESAppli_ToolFlowLineSpec.cxx | 19 +- src/IGESAppli/IGESAppli_ToolFlowLineSpec.hxx | 97 + src/IGESAppli/IGESAppli_ToolLevelFunction.cdl | 72 - src/IGESAppli/IGESAppli_ToolLevelFunction.cxx | 19 +- src/IGESAppli/IGESAppli_ToolLevelFunction.hxx | 102 + .../IGESAppli_ToolLevelToPWBLayerMap.cdl | 68 - .../IGESAppli_ToolLevelToPWBLayerMap.cxx | 21 +- .../IGESAppli_ToolLevelToPWBLayerMap.hxx | 97 + src/IGESAppli/IGESAppli_ToolLineWidening.cdl | 72 - src/IGESAppli/IGESAppli_ToolLineWidening.cxx | 17 +- src/IGESAppli/IGESAppli_ToolLineWidening.hxx | 102 + .../IGESAppli_ToolNodalConstraint.cdl | 68 - .../IGESAppli_ToolNodalConstraint.cxx | 19 +- .../IGESAppli_ToolNodalConstraint.hxx | 97 + .../IGESAppli_ToolNodalDisplAndRot.cdl | 68 - .../IGESAppli_ToolNodalDisplAndRot.cxx | 27 +- .../IGESAppli_ToolNodalDisplAndRot.hxx | 97 + src/IGESAppli/IGESAppli_ToolNodalResults.cdl | 68 - src/IGESAppli/IGESAppli_ToolNodalResults.cxx | 23 +- src/IGESAppli/IGESAppli_ToolNodalResults.hxx | 97 + src/IGESAppli/IGESAppli_ToolNode.cdl | 68 - src/IGESAppli/IGESAppli_ToolNode.cxx | 17 +- src/IGESAppli/IGESAppli_ToolNode.hxx | 97 + .../IGESAppli_ToolPWBArtworkStackup.cdl | 68 - .../IGESAppli_ToolPWBArtworkStackup.cxx | 19 +- .../IGESAppli_ToolPWBArtworkStackup.hxx | 97 + .../IGESAppli_ToolPWBDrilledHole.cdl | 72 - .../IGESAppli_ToolPWBDrilledHole.cxx | 15 +- .../IGESAppli_ToolPWBDrilledHole.hxx | 102 + src/IGESAppli/IGESAppli_ToolPartNumber.cdl | 72 - src/IGESAppli/IGESAppli_ToolPartNumber.cxx | 19 +- src/IGESAppli/IGESAppli_ToolPartNumber.hxx | 102 + src/IGESAppli/IGESAppli_ToolPinNumber.cdl | 72 - src/IGESAppli/IGESAppli_ToolPinNumber.cxx | 21 +- src/IGESAppli/IGESAppli_ToolPinNumber.hxx | 102 + src/IGESAppli/IGESAppli_ToolPipingFlow.cdl | 72 - src/IGESAppli/IGESAppli_ToolPipingFlow.cxx | 27 +- src/IGESAppli/IGESAppli_ToolPipingFlow.hxx | 102 + .../IGESAppli_ToolReferenceDesignator.cdl | 72 - .../IGESAppli_ToolReferenceDesignator.cxx | 21 +- .../IGESAppli_ToolReferenceDesignator.hxx | 102 + .../IGESAppli_ToolRegionRestriction.cdl | 72 - .../IGESAppli_ToolRegionRestriction.cxx | 17 +- .../IGESAppli_ToolRegionRestriction.hxx | 102 + src/IGESBasic/FILES | 88 +- src/IGESBasic/IGESBasic.cdl | 127 - src/IGESBasic/IGESBasic.cxx | 12 +- src/IGESBasic/IGESBasic.hxx | 146 + src/IGESBasic/IGESBasic_AssocGroupType.cdl | 68 - src/IGESBasic/IGESBasic_AssocGroupType.cxx | 5 +- src/IGESBasic/IGESBasic_AssocGroupType.hxx | 85 + src/IGESBasic/IGESBasic_ExternalRefFile.cdl | 54 - src/IGESBasic/IGESBasic_ExternalRefFile.cxx | 5 +- src/IGESBasic/IGESBasic_ExternalRefFile.hxx | 73 + .../IGESBasic_ExternalRefFileIndex.cdl | 77 - .../IGESBasic_ExternalRefFileIndex.cxx | 8 +- .../IGESBasic_ExternalRefFileIndex.hxx | 93 + .../IGESBasic_ExternalRefFileName.cdl | 66 - .../IGESBasic_ExternalRefFileName.cxx | 5 +- .../IGESBasic_ExternalRefFileName.hxx | 85 + .../IGESBasic_ExternalRefLibName.cdl | 63 - .../IGESBasic_ExternalRefLibName.cxx | 5 +- .../IGESBasic_ExternalRefLibName.hxx | 81 + src/IGESBasic/IGESBasic_ExternalRefName.cdl | 55 - src/IGESBasic/IGESBasic_ExternalRefName.cxx | 5 +- src/IGESBasic/IGESBasic_ExternalRefName.hxx | 74 + .../IGESBasic_ExternalReferenceFile.cdl | 62 - .../IGESBasic_ExternalReferenceFile.cxx | 6 +- .../IGESBasic_ExternalReferenceFile.hxx | 80 + src/IGESBasic/IGESBasic_GeneralModule.cdl | 62 - src/IGESBasic/IGESBasic_GeneralModule.cxx | 23 +- src/IGESBasic/IGESBasic_GeneralModule.hxx | 96 + src/IGESBasic/IGESBasic_Group.cdl | 111 - src/IGESBasic/IGESBasic_Group.cxx | 7 +- src/IGESBasic/IGESBasic_Group.hxx | 121 + src/IGESBasic/IGESBasic_GroupWithoutBackP.cdl | 48 - src/IGESBasic/IGESBasic_GroupWithoutBackP.cxx | 5 +- src/IGESBasic/IGESBasic_GroupWithoutBackP.hxx | 66 + ...IGESBasic_HArray1OfHArray1OfIGESEntity.hxx | 75 + ...ESBasic_HArray1OfHArray1OfIGESEntity_0.cxx | 38 + .../IGESBasic_HArray1OfHArray1OfInteger.hxx | 75 + .../IGESBasic_HArray1OfHArray1OfInteger_0.cxx | 38 + .../IGESBasic_HArray1OfHArray1OfReal.hxx | 75 + .../IGESBasic_HArray1OfHArray1OfReal_0.cxx | 38 + .../IGESBasic_HArray1OfHArray1OfXY.hxx | 75 + .../IGESBasic_HArray1OfHArray1OfXYZ.hxx | 75 + .../IGESBasic_HArray1OfHArray1OfXYZ_0.cxx | 38 + .../IGESBasic_HArray1OfHArray1OfXY_0.cxx | 38 + src/IGESBasic/IGESBasic_Hierarchy.cdl | 97 - src/IGESBasic/IGESBasic_Hierarchy.cxx | 3 +- src/IGESBasic/IGESBasic_Hierarchy.hxx | 110 + src/IGESBasic/IGESBasic_Name.cdl | 59 - src/IGESBasic/IGESBasic_Name.cxx | 5 +- src/IGESBasic/IGESBasic_Name.hxx | 78 + src/IGESBasic/IGESBasic_OrderedGroup.cdl | 50 - src/IGESBasic/IGESBasic_OrderedGroup.cxx | 5 +- src/IGESBasic/IGESBasic_OrderedGroup.hxx | 68 + .../IGESBasic_OrderedGroupWithoutBackP.cdl | 49 - .../IGESBasic_OrderedGroupWithoutBackP.cxx | 5 +- .../IGESBasic_OrderedGroupWithoutBackP.hxx | 67 + src/IGESBasic/IGESBasic_Protocol.cdl | 41 - src/IGESBasic/IGESBasic_Protocol.cxx | 7 +- src/IGESBasic/IGESBasic_Protocol.hxx | 78 + src/IGESBasic/IGESBasic_ReadWriteModule.cdl | 45 - src/IGESBasic/IGESBasic_ReadWriteModule.cxx | 19 +- src/IGESBasic/IGESBasic_ReadWriteModule.hxx | 79 + src/IGESBasic/IGESBasic_SingleParent.cdl | 79 - src/IGESBasic/IGESBasic_SingleParent.cxx | 6 +- src/IGESBasic/IGESBasic_SingleParent.hxx | 92 + src/IGESBasic/IGESBasic_SingularSubfigure.cdl | 83 - src/IGESBasic/IGESBasic_SingularSubfigure.cxx | 6 +- src/IGESBasic/IGESBasic_SingularSubfigure.hxx | 98 + src/IGESBasic/IGESBasic_SpecificModule.cdl | 39 - src/IGESBasic/IGESBasic_SpecificModule.cxx | 15 +- src/IGESBasic/IGESBasic_SpecificModule.hxx | 75 + src/IGESBasic/IGESBasic_SubfigureDef.cdl | 86 - src/IGESBasic/IGESBasic_SubfigureDef.cxx | 8 +- src/IGESBasic/IGESBasic_SubfigureDef.hxx | 99 + .../IGESBasic_ToolAssocGroupType.cdl | 72 - .../IGESBasic_ToolAssocGroupType.cxx | 19 +- .../IGESBasic_ToolAssocGroupType.hxx | 102 + .../IGESBasic_ToolExternalRefFile.cdl | 68 - .../IGESBasic_ToolExternalRefFile.cxx | 19 +- .../IGESBasic_ToolExternalRefFile.hxx | 97 + .../IGESBasic_ToolExternalRefFileIndex.cdl | 68 - .../IGESBasic_ToolExternalRefFileIndex.cxx | 23 +- .../IGESBasic_ToolExternalRefFileIndex.hxx | 97 + .../IGESBasic_ToolExternalRefFileName.cdl | 68 - .../IGESBasic_ToolExternalRefFileName.cxx | 19 +- .../IGESBasic_ToolExternalRefFileName.hxx | 97 + .../IGESBasic_ToolExternalRefLibName.cdl | 68 - .../IGESBasic_ToolExternalRefLibName.cxx | 19 +- .../IGESBasic_ToolExternalRefLibName.hxx | 97 + .../IGESBasic_ToolExternalRefName.cdl | 68 - .../IGESBasic_ToolExternalRefName.cxx | 19 +- .../IGESBasic_ToolExternalRefName.hxx | 97 + .../IGESBasic_ToolExternalReferenceFile.cdl | 68 - .../IGESBasic_ToolExternalReferenceFile.cxx | 19 +- .../IGESBasic_ToolExternalReferenceFile.hxx | 97 + src/IGESBasic/IGESBasic_ToolGroup.cdl | 72 - src/IGESBasic/IGESBasic_ToolGroup.cxx | 25 +- src/IGESBasic/IGESBasic_ToolGroup.hxx | 102 + .../IGESBasic_ToolGroupWithoutBackP.cdl | 72 - .../IGESBasic_ToolGroupWithoutBackP.cxx | 24 +- .../IGESBasic_ToolGroupWithoutBackP.hxx | 102 + src/IGESBasic/IGESBasic_ToolHierarchy.cdl | 72 - src/IGESBasic/IGESBasic_ToolHierarchy.cxx | 15 +- src/IGESBasic/IGESBasic_ToolHierarchy.hxx | 102 + src/IGESBasic/IGESBasic_ToolName.cdl | 72 - src/IGESBasic/IGESBasic_ToolName.cxx | 19 +- src/IGESBasic/IGESBasic_ToolName.hxx | 102 + src/IGESBasic/IGESBasic_ToolOrderedGroup.cdl | 72 - src/IGESBasic/IGESBasic_ToolOrderedGroup.cxx | 21 +- src/IGESBasic/IGESBasic_ToolOrderedGroup.hxx | 102 + ...IGESBasic_ToolOrderedGroupWithoutBackP.cdl | 72 - ...IGESBasic_ToolOrderedGroupWithoutBackP.cxx | 21 +- ...IGESBasic_ToolOrderedGroupWithoutBackP.hxx | 102 + src/IGESBasic/IGESBasic_ToolSingleParent.cdl | 72 - src/IGESBasic/IGESBasic_ToolSingleParent.cxx | 26 +- src/IGESBasic/IGESBasic_ToolSingleParent.hxx | 102 + .../IGESBasic_ToolSingularSubfigure.cdl | 68 - .../IGESBasic_ToolSingularSubfigure.cxx | 24 +- .../IGESBasic_ToolSingularSubfigure.hxx | 97 + src/IGESBasic/IGESBasic_ToolSubfigureDef.cdl | 68 - src/IGESBasic/IGESBasic_ToolSubfigureDef.cxx | 25 +- src/IGESBasic/IGESBasic_ToolSubfigureDef.hxx | 97 + src/IGESCAFControl/FILES | 6 + src/IGESCAFControl/IGESCAFControl.cdl | 48 - src/IGESCAFControl/IGESCAFControl.cxx | 5 +- src/IGESCAFControl/IGESCAFControl.hxx | 71 + src/IGESCAFControl/IGESCAFControl_Reader.cdl | 107 - src/IGESCAFControl/IGESCAFControl_Reader.cxx | 43 +- src/IGESCAFControl/IGESCAFControl_Reader.hxx | 127 + src/IGESCAFControl/IGESCAFControl_Writer.cdl | 125 - src/IGESCAFControl/IGESCAFControl_Writer.cxx | 55 +- src/IGESCAFControl/IGESCAFControl_Writer.hxx | 142 + src/IGESControl/FILES | 15 + src/IGESControl/IGESControl.cdl | 45 - src/IGESControl/IGESControl_ActorWrite.cdl | 43 - src/IGESControl/IGESControl_ActorWrite.cxx | 21 +- src/IGESControl/IGESControl_ActorWrite.hxx | 74 + src/IGESControl/IGESControl_AlgoContainer.cdl | 25 - src/IGESControl/IGESControl_AlgoContainer.cxx | 5 +- src/IGESControl/IGESControl_AlgoContainer.hxx | 61 + src/IGESControl/IGESControl_Controller.cdl | 75 - src/IGESControl/IGESControl_Controller.cxx | 75 +- src/IGESControl/IGESControl_Controller.hxx | 99 + src/IGESControl/IGESControl_IGESBoundary.cdl | 65 - src/IGESControl/IGESControl_IGESBoundary.cxx | 37 +- src/IGESControl/IGESControl_IGESBoundary.hxx | 84 + src/IGESControl/IGESControl_Reader.cdl | 101 - src/IGESControl/IGESControl_Reader.cxx | 63 +- src/IGESControl/IGESControl_Reader.hxx | 125 + src/IGESControl/IGESControl_ToolContainer.cdl | 32 - src/IGESControl/IGESControl_ToolContainer.cxx | 6 +- src/IGESControl/IGESControl_ToolContainer.hxx | 65 + src/IGESControl/IGESControl_Writer.cdl | 107 - src/IGESControl/IGESControl_Writer.cxx | 42 +- src/IGESControl/IGESControl_Writer.hxx | 144 + src/IGESConvGeom/FILES | 4 + src/IGESConvGeom/IGESConvGeom.cdl | 96 - src/IGESConvGeom/IGESConvGeom.cxx | 19 +- src/IGESConvGeom/IGESConvGeom.hxx | 118 + src/IGESConvGeom/IGESConvGeom_GeomBuilder.cdl | 119 - src/IGESConvGeom/IGESConvGeom_GeomBuilder.cxx | 18 +- src/IGESConvGeom/IGESConvGeom_GeomBuilder.hxx | 154 + src/IGESData/FILES | 87 +- src/IGESData/IGESData.cdl | 146 - src/IGESData/IGESData.cxx | 18 +- src/IGESData/IGESData.hxx | 143 + src/IGESData/IGESData_BasicEditor.cdl | 129 - src/IGESData/IGESData_BasicEditor.cxx | 35 +- src/IGESData/IGESData_BasicEditor.hxx | 163 + src/IGESData/IGESData_ColorEntity.cdl | 24 - src/IGESData/IGESData_ColorEntity.cxx | 5 +- src/IGESData/IGESData_ColorEntity.hxx | 60 + src/IGESData/IGESData_DefList.hxx | 45 + src/IGESData/IGESData_DefSwitch.cdl | 51 - src/IGESData/IGESData_DefSwitch.cxx | 5 +- src/IGESData/IGESData_DefSwitch.hxx | 82 + src/IGESData/IGESData_DefType.hxx | 46 + src/IGESData/IGESData_DefaultGeneral.cdl | 57 - src/IGESData/IGESData_DefaultGeneral.cxx | 23 +- src/IGESData/IGESData_DefaultGeneral.hxx | 91 + src/IGESData/IGESData_DefaultSpecific.cdl | 35 - src/IGESData/IGESData_DefaultSpecific.cxx | 15 +- src/IGESData/IGESData_DefaultSpecific.hxx | 71 + src/IGESData/IGESData_DirChecker.cdl | 164 - src/IGESData/IGESData_DirChecker.cxx | 22 +- src/IGESData/IGESData_DirChecker.hxx | 195 + src/IGESData/IGESData_DirPart.cdl | 51 - src/IGESData/IGESData_DirPart.cxx | 6 +- src/IGESData/IGESData_DirPart.hxx | 80 + src/IGESData/IGESData_FileProtocol.cdl | 46 - src/IGESData/IGESData_FileProtocol.cxx | 5 +- src/IGESData/IGESData_FileProtocol.hxx | 80 + src/IGESData/IGESData_FileRecognizer.hxx | 80 + src/IGESData/IGESData_FileRecognizer_0.cxx | 44 + src/IGESData/IGESData_FreeFormatEntity.cdl | 137 - src/IGESData/IGESData_FreeFormatEntity.cxx | 16 +- src/IGESData/IGESData_FreeFormatEntity.hxx | 159 + src/IGESData/IGESData_GeneralModule.cdl | 126 - src/IGESData/IGESData_GeneralModule.cxx | 26 +- src/IGESData/IGESData_GeneralModule.hxx | 145 + .../IGESData_GlobalNodeOfSpecificLib.hxx | 77 + .../IGESData_GlobalNodeOfSpecificLib_0.cxx | 54 + .../IGESData_GlobalNodeOfWriterLib.hxx | 77 + .../IGESData_GlobalNodeOfWriterLib_0.cxx | 54 + src/IGESData/IGESData_GlobalSection.cdl | 249 -- src/IGESData/IGESData_GlobalSection.cxx | 29 +- src/IGESData/IGESData_GlobalSection.hxx | 290 ++ src/IGESData/IGESData_IGESDumper.cdl | 99 - src/IGESData/IGESData_IGESDumper.cxx | 24 +- src/IGESData/IGESData_IGESDumper.hxx | 96 + src/IGESData/IGESData_IGESEntity.cdl | 371 -- src/IGESData/IGESData_IGESEntity.cxx | 25 +- src/IGESData/IGESData_IGESEntity.hxx | 404 ++ src/IGESData/IGESData_IGESModel.cdl | 151 - src/IGESData/IGESData_IGESModel.cxx | 19 +- src/IGESData/IGESData_IGESModel.hxx | 187 + src/IGESData/IGESData_IGESReaderData.cdl | 113 - src/IGESData/IGESData_IGESReaderData.cxx | 15 +- src/IGESData/IGESData_IGESReaderData.hxx | 146 + src/IGESData/IGESData_IGESReaderTool.cdl | 109 - src/IGESData/IGESData_IGESReaderTool.cxx | 34 +- src/IGESData/IGESData_IGESReaderTool.hxx | 138 + src/IGESData/IGESData_IGESType.cdl | 48 - src/IGESData/IGESData_IGESType.cxx | 3 +- src/IGESData/IGESData_IGESType.hxx | 82 + src/IGESData/IGESData_IGESWriter.cdl | 204 - src/IGESData/IGESData_IGESWriter.cxx | 45 +- src/IGESData/IGESData_IGESWriter.hxx | 229 ++ src/IGESData/IGESData_LabelDisplayEntity.cdl | 24 - src/IGESData/IGESData_LabelDisplayEntity.cxx | 5 +- src/IGESData/IGESData_LabelDisplayEntity.hxx | 60 + src/IGESData/IGESData_LevelListEntity.cdl | 39 - src/IGESData/IGESData_LevelListEntity.cxx | 6 +- src/IGESData/IGESData_LevelListEntity.hxx | 73 + src/IGESData/IGESData_LineFontEntity.cdl | 24 - src/IGESData/IGESData_LineFontEntity.cxx | 5 +- src/IGESData/IGESData_LineFontEntity.hxx | 60 + src/IGESData/IGESData_NameEntity.cdl | 30 - src/IGESData/IGESData_NameEntity.cxx | 6 +- src/IGESData/IGESData_NameEntity.hxx | 65 + src/IGESData/IGESData_NodeOfSpecificLib.hxx | 76 + src/IGESData/IGESData_NodeOfSpecificLib_0.cxx | 54 + src/IGESData/IGESData_NodeOfWriterLib.hxx | 76 + src/IGESData/IGESData_NodeOfWriterLib_0.cxx | 54 + src/IGESData/IGESData_ParamCursor.cdl | 140 - src/IGESData/IGESData_ParamCursor.cxx | 5 +- src/IGESData/IGESData_ParamCursor.hxx | 158 + src/IGESData/IGESData_ParamReader.cdl | 490 --- src/IGESData/IGESData_ParamReader.cxx | 20 +- src/IGESData/IGESData_ParamReader.hxx | 418 +++ src/IGESData/IGESData_Protocol.cdl | 54 - src/IGESData/IGESData_Protocol.cxx | 13 +- src/IGESData/IGESData_Protocol.hxx | 92 + src/IGESData/IGESData_ReadStage.hxx | 30 + src/IGESData/IGESData_ReadWriteModule.cdl | 84 - src/IGESData/IGESData_ReadWriteModule.cxx | 15 +- src/IGESData/IGESData_ReadWriteModule.hxx | 116 + src/IGESData/IGESData_SingleParentEntity.cdl | 40 - src/IGESData/IGESData_SingleParentEntity.cxx | 7 +- src/IGESData/IGESData_SingleParentEntity.hxx | 73 + src/IGESData/IGESData_SpecificLib.hxx | 92 + src/IGESData/IGESData_SpecificLib_0.cxx | 45 + src/IGESData/IGESData_SpecificModule.cdl | 56 - src/IGESData/IGESData_SpecificModule.cxx | 6 +- src/IGESData/IGESData_SpecificModule.hxx | 91 + src/IGESData/IGESData_Status.hxx | 29 + src/IGESData/IGESData_ToolLocation.cdl | 165 - src/IGESData/IGESData_ToolLocation.cxx | 25 +- src/IGESData/IGESData_ToolLocation.hxx | 182 + src/IGESData/IGESData_TransfEntity.cdl | 33 - src/IGESData/IGESData_TransfEntity.cxx | 6 +- src/IGESData/IGESData_TransfEntity.hxx | 68 + src/IGESData/IGESData_UndefinedEntity.cdl | 96 - src/IGESData/IGESData_UndefinedEntity.cxx | 26 +- src/IGESData/IGESData_UndefinedEntity.hxx | 131 + src/IGESData/IGESData_ViewKindEntity.cdl | 43 - src/IGESData/IGESData_ViewKindEntity.cxx | 6 +- src/IGESData/IGESData_ViewKindEntity.hxx | 77 + src/IGESData/IGESData_WriterLib.hxx | 92 + src/IGESData/IGESData_WriterLib_0.cxx | 45 + src/IGESDefs/FILES | 40 + src/IGESDefs/IGESDefs.cdl | 83 - src/IGESDefs/IGESDefs.cxx | 12 +- src/IGESDefs/IGESDefs.hxx | 103 + src/IGESDefs/IGESDefs_AssociativityDef.cdl | 111 - src/IGESDefs/IGESDefs_AssociativityDef.cxx | 7 +- src/IGESDefs/IGESDefs_AssociativityDef.hxx | 117 + src/IGESDefs/IGESDefs_AttributeDef.cdl | 168 - src/IGESDefs/IGESDefs_AttributeDef.cxx | 19 +- src/IGESDefs/IGESDefs_AttributeDef.hxx | 147 + src/IGESDefs/IGESDefs_AttributeTable.cdl | 140 - src/IGESDefs/IGESDefs_AttributeTable.cxx | 20 +- src/IGESDefs/IGESDefs_AttributeTable.hxx | 129 + src/IGESDefs/IGESDefs_GeneralModule.cdl | 60 - src/IGESDefs/IGESDefs_GeneralModule.cxx | 21 +- src/IGESDefs/IGESDefs_GeneralModule.hxx | 94 + src/IGESDefs/IGESDefs_GenericData.cdl | 134 - src/IGESDefs/IGESDefs_GenericData.cxx | 13 +- src/IGESDefs/IGESDefs_GenericData.hxx | 129 + ..._HArray1OfHArray1OfTextDisplayTemplate.hxx | 75 + ...Array1OfHArray1OfTextDisplayTemplate_0.cxx | 38 + src/IGESDefs/IGESDefs_MacroDef.cdl | 84 - src/IGESDefs/IGESDefs_MacroDef.cxx | 6 +- src/IGESDefs/IGESDefs_MacroDef.hxx | 95 + src/IGESDefs/IGESDefs_Protocol.cdl | 41 - src/IGESDefs/IGESDefs_Protocol.cxx | 17 +- src/IGESDefs/IGESDefs_Protocol.hxx | 78 + src/IGESDefs/IGESDefs_ReadWriteModule.cdl | 45 - src/IGESDefs/IGESDefs_ReadWriteModule.cxx | 17 +- src/IGESDefs/IGESDefs_ReadWriteModule.hxx | 79 + src/IGESDefs/IGESDefs_SpecificModule.cdl | 32 - src/IGESDefs/IGESDefs_SpecificModule.cxx | 15 +- src/IGESDefs/IGESDefs_SpecificModule.hxx | 69 + src/IGESDefs/IGESDefs_TabularData.cdl | 133 - src/IGESDefs/IGESDefs_TabularData.cxx | 7 +- src/IGESDefs/IGESDefs_TabularData.hxx | 122 + .../IGESDefs_ToolAssociativityDef.cdl | 68 - .../IGESDefs_ToolAssociativityDef.cxx | 19 +- .../IGESDefs_ToolAssociativityDef.hxx | 97 + src/IGESDefs/IGESDefs_ToolAttributeDef.cdl | 68 - src/IGESDefs/IGESDefs_ToolAttributeDef.cxx | 35 +- src/IGESDefs/IGESDefs_ToolAttributeDef.hxx | 97 + src/IGESDefs/IGESDefs_ToolAttributeTable.cdl | 68 - src/IGESDefs/IGESDefs_ToolAttributeTable.cxx | 27 +- src/IGESDefs/IGESDefs_ToolAttributeTable.hxx | 97 + src/IGESDefs/IGESDefs_ToolGenericData.cdl | 68 - src/IGESDefs/IGESDefs_ToolGenericData.cxx | 29 +- src/IGESDefs/IGESDefs_ToolGenericData.hxx | 97 + src/IGESDefs/IGESDefs_ToolMacroDef.cdl | 68 - src/IGESDefs/IGESDefs_ToolMacroDef.cxx | 19 +- src/IGESDefs/IGESDefs_ToolMacroDef.hxx | 97 + src/IGESDefs/IGESDefs_ToolTabularData.cdl | 68 - src/IGESDefs/IGESDefs_ToolTabularData.cxx | 21 +- src/IGESDefs/IGESDefs_ToolTabularData.hxx | 97 + src/IGESDefs/IGESDefs_ToolUnitsData.cdl | 68 - src/IGESDefs/IGESDefs_ToolUnitsData.cxx | 21 +- src/IGESDefs/IGESDefs_ToolUnitsData.hxx | 97 + src/IGESDefs/IGESDefs_UnitsData.cdl | 86 - src/IGESDefs/IGESDefs_UnitsData.cxx | 7 +- src/IGESDefs/IGESDefs_UnitsData.hxx | 98 + src/IGESDimen/FILES | 106 +- src/IGESDimen/IGESDimen.cdl | 134 - src/IGESDimen/IGESDimen.cxx | 14 +- src/IGESDimen/IGESDimen.hxx | 166 + src/IGESDimen/IGESDimen_AngularDimension.cdl | 117 - src/IGESDimen/IGESDimen_AngularDimension.cxx | 11 +- src/IGESDimen/IGESDimen_AngularDimension.hxx | 122 + src/IGESDimen/IGESDimen_BasicDimension.cdl | 85 - src/IGESDimen/IGESDimen_BasicDimension.cxx | 6 +- src/IGESDimen/IGESDimen_BasicDimension.hxx | 90 + src/IGESDimen/IGESDimen_CenterLine.cdl | 95 - src/IGESDimen/IGESDimen_CenterLine.cxx | 10 +- src/IGESDimen/IGESDimen_CenterLine.hxx | 103 + src/IGESDimen/IGESDimen_CurveDimension.cdl | 115 - src/IGESDimen/IGESDimen_CurveDimension.cxx | 12 +- src/IGESDimen/IGESDimen_CurveDimension.hxx | 121 + src/IGESDimen/IGESDimen_DiameterDimension.cdl | 90 - src/IGESDimen/IGESDimen_DiameterDimension.cxx | 10 +- src/IGESDimen/IGESDimen_DiameterDimension.hxx | 100 + .../IGESDimen_DimensionDisplayData.cdl | 195 - .../IGESDimen_DimensionDisplayData.cxx | 7 +- .../IGESDimen_DimensionDisplayData.hxx | 139 + .../IGESDimen_DimensionTolerance.cdl | 132 - .../IGESDimen_DimensionTolerance.cxx | 3 +- .../IGESDimen_DimensionTolerance.hxx | 137 + src/IGESDimen/IGESDimen_DimensionUnits.cdl | 111 - src/IGESDimen/IGESDimen_DimensionUnits.cxx | 5 +- src/IGESDimen/IGESDimen_DimensionUnits.hxx | 118 + .../IGESDimen_DimensionedGeometry.cdl | 79 - .../IGESDimen_DimensionedGeometry.cxx | 6 +- .../IGESDimen_DimensionedGeometry.hxx | 87 + src/IGESDimen/IGESDimen_FlagNote.cdl | 116 - src/IGESDimen/IGESDimen_FlagNote.cxx | 11 +- src/IGESDimen/IGESDimen_FlagNote.hxx | 123 + src/IGESDimen/IGESDimen_GeneralLabel.cdl | 73 - src/IGESDimen/IGESDimen_GeneralLabel.cxx | 7 +- src/IGESDimen/IGESDimen_GeneralLabel.hxx | 86 + src/IGESDimen/IGESDimen_GeneralModule.cdl | 60 - src/IGESDimen/IGESDimen_GeneralModule.cxx | 25 +- src/IGESDimen/IGESDimen_GeneralModule.hxx | 94 + src/IGESDimen/IGESDimen_GeneralNote.cdl | 191 - src/IGESDimen/IGESDimen_GeneralNote.cxx | 10 +- src/IGESDimen/IGESDimen_GeneralNote.hxx | 175 + src/IGESDimen/IGESDimen_GeneralSymbol.cdl | 94 - src/IGESDimen/IGESDimen_GeneralSymbol.cxx | 7 +- src/IGESDimen/IGESDimen_GeneralSymbol.hxx | 107 + src/IGESDimen/IGESDimen_LeaderArrow.cdl | 111 - src/IGESDimen/IGESDimen_LeaderArrow.cxx | 9 +- src/IGESDimen/IGESDimen_LeaderArrow.hxx | 117 + src/IGESDimen/IGESDimen_LinearDimension.cdl | 103 - src/IGESDimen/IGESDimen_LinearDimension.cxx | 7 +- src/IGESDimen/IGESDimen_LinearDimension.hxx | 111 + .../IGESDimen_NewDimensionedGeometry.cdl | 124 - .../IGESDimen_NewDimensionedGeometry.cxx | 10 +- .../IGESDimen_NewDimensionedGeometry.hxx | 126 + src/IGESDimen/IGESDimen_NewGeneralNote.cdl | 339 -- src/IGESDimen/IGESDimen_NewGeneralNote.cxx | 10 +- src/IGESDimen/IGESDimen_NewGeneralNote.hxx | 289 ++ src/IGESDimen/IGESDimen_OrdinateDimension.cdl | 87 - src/IGESDimen/IGESDimen_OrdinateDimension.cxx | 7 +- src/IGESDimen/IGESDimen_OrdinateDimension.hxx | 91 + src/IGESDimen/IGESDimen_PointDimension.cdl | 89 - src/IGESDimen/IGESDimen_PointDimension.cxx | 8 +- src/IGESDimen/IGESDimen_PointDimension.hxx | 99 + src/IGESDimen/IGESDimen_Protocol.cdl | 41 - src/IGESDimen/IGESDimen_Protocol.cxx | 29 +- src/IGESDimen/IGESDimen_Protocol.hxx | 78 + src/IGESDimen/IGESDimen_RadiusDimension.cdl | 96 - src/IGESDimen/IGESDimen_RadiusDimension.cxx | 9 +- src/IGESDimen/IGESDimen_RadiusDimension.hxx | 103 + src/IGESDimen/IGESDimen_ReadWriteModule.cdl | 45 - src/IGESDimen/IGESDimen_ReadWriteModule.cxx | 21 +- src/IGESDimen/IGESDimen_ReadWriteModule.hxx | 79 + src/IGESDimen/IGESDimen_Section.cdl | 93 - src/IGESDimen/IGESDimen_Section.cxx | 9 +- src/IGESDimen/IGESDimen_Section.hxx | 99 + src/IGESDimen/IGESDimen_SectionedArea.cdl | 125 - src/IGESDimen/IGESDimen_SectionedArea.cxx | 10 +- src/IGESDimen/IGESDimen_SectionedArea.hxx | 125 + src/IGESDimen/IGESDimen_SpecificModule.cdl | 40 - src/IGESDimen/IGESDimen_SpecificModule.cxx | 19 +- src/IGESDimen/IGESDimen_SpecificModule.hxx | 77 + .../IGESDimen_ToolAngularDimension.cdl | 68 - .../IGESDimen_ToolAngularDimension.cxx | 21 +- .../IGESDimen_ToolAngularDimension.hxx | 97 + .../IGESDimen_ToolBasicDimension.cdl | 72 - .../IGESDimen_ToolBasicDimension.cxx | 19 +- .../IGESDimen_ToolBasicDimension.hxx | 102 + src/IGESDimen/IGESDimen_ToolCenterLine.cdl | 72 - src/IGESDimen/IGESDimen_ToolCenterLine.cxx | 23 +- src/IGESDimen/IGESDimen_ToolCenterLine.hxx | 102 + .../IGESDimen_ToolCurveDimension.cdl | 68 - .../IGESDimen_ToolCurveDimension.cxx | 17 +- .../IGESDimen_ToolCurveDimension.hxx | 97 + .../IGESDimen_ToolDiameterDimension.cdl | 68 - .../IGESDimen_ToolDiameterDimension.cxx | 21 +- .../IGESDimen_ToolDiameterDimension.hxx | 97 + .../IGESDimen_ToolDimensionDisplayData.cdl | 72 - .../IGESDimen_ToolDimensionDisplayData.cxx | 19 +- .../IGESDimen_ToolDimensionDisplayData.hxx | 102 + .../IGESDimen_ToolDimensionTolerance.cdl | 72 - .../IGESDimen_ToolDimensionTolerance.cxx | 15 +- .../IGESDimen_ToolDimensionTolerance.hxx | 102 + .../IGESDimen_ToolDimensionUnits.cdl | 72 - .../IGESDimen_ToolDimensionUnits.cxx | 19 +- .../IGESDimen_ToolDimensionUnits.hxx | 102 + .../IGESDimen_ToolDimensionedGeometry.cdl | 72 - .../IGESDimen_ToolDimensionedGeometry.cxx | 21 +- .../IGESDimen_ToolDimensionedGeometry.hxx | 102 + src/IGESDimen/IGESDimen_ToolFlagNote.cdl | 68 - src/IGESDimen/IGESDimen_ToolFlagNote.cxx | 21 +- src/IGESDimen/IGESDimen_ToolFlagNote.hxx | 97 + src/IGESDimen/IGESDimen_ToolGeneralLabel.cdl | 68 - src/IGESDimen/IGESDimen_ToolGeneralLabel.cxx | 19 +- src/IGESDimen/IGESDimen_ToolGeneralLabel.hxx | 97 + src/IGESDimen/IGESDimen_ToolGeneralNote.cdl | 68 - src/IGESDimen/IGESDimen_ToolGeneralNote.cxx | 33 +- src/IGESDimen/IGESDimen_ToolGeneralNote.hxx | 97 + src/IGESDimen/IGESDimen_ToolGeneralSymbol.cdl | 68 - src/IGESDimen/IGESDimen_ToolGeneralSymbol.cxx | 23 +- src/IGESDimen/IGESDimen_ToolGeneralSymbol.hxx | 97 + src/IGESDimen/IGESDimen_ToolLeaderArrow.cdl | 68 - src/IGESDimen/IGESDimen_ToolLeaderArrow.cxx | 21 +- src/IGESDimen/IGESDimen_ToolLeaderArrow.hxx | 97 + .../IGESDimen_ToolLinearDimension.cdl | 68 - .../IGESDimen_ToolLinearDimension.cxx | 15 +- .../IGESDimen_ToolLinearDimension.hxx | 97 + .../IGESDimen_ToolNewDimensionedGeometry.cdl | 72 - .../IGESDimen_ToolNewDimensionedGeometry.cxx | 27 +- .../IGESDimen_ToolNewDimensionedGeometry.hxx | 102 + .../IGESDimen_ToolNewGeneralNote.cdl | 68 - .../IGESDimen_ToolNewGeneralNote.cxx | 29 +- .../IGESDimen_ToolNewGeneralNote.hxx | 97 + .../IGESDimen_ToolOrdinateDimension.cdl | 68 - .../IGESDimen_ToolOrdinateDimension.cxx | 17 +- .../IGESDimen_ToolOrdinateDimension.hxx | 97 + .../IGESDimen_ToolPointDimension.cdl | 68 - .../IGESDimen_ToolPointDimension.cxx | 17 +- .../IGESDimen_ToolPointDimension.hxx | 97 + .../IGESDimen_ToolRadiusDimension.cdl | 68 - .../IGESDimen_ToolRadiusDimension.cxx | 21 +- .../IGESDimen_ToolRadiusDimension.hxx | 97 + src/IGESDimen/IGESDimen_ToolSection.cdl | 72 - src/IGESDimen/IGESDimen_ToolSection.cxx | 23 +- src/IGESDimen/IGESDimen_ToolSection.hxx | 102 + src/IGESDimen/IGESDimen_ToolSectionedArea.cdl | 68 - src/IGESDimen/IGESDimen_ToolSectionedArea.cxx | 23 +- src/IGESDimen/IGESDimen_ToolSectionedArea.hxx | 97 + src/IGESDimen/IGESDimen_ToolWitnessLine.cdl | 72 - src/IGESDimen/IGESDimen_ToolWitnessLine.cxx | 23 +- src/IGESDimen/IGESDimen_ToolWitnessLine.hxx | 102 + src/IGESDimen/IGESDimen_WitnessLine.cdl | 89 - src/IGESDimen/IGESDimen_WitnessLine.cxx | 10 +- src/IGESDimen/IGESDimen_WitnessLine.hxx | 96 + src/IGESDraw/FILES | 66 + src/IGESDraw/IGESDraw.cdl | 109 - src/IGESDraw/IGESDraw.cxx | 12 +- src/IGESDraw/IGESDraw.hxx | 130 + src/IGESDraw/IGESDraw_CircArraySubfigure.cdl | 139 - src/IGESDraw/IGESDraw_CircArraySubfigure.cxx | 10 +- src/IGESDraw/IGESDraw_CircArraySubfigure.hxx | 137 + src/IGESDraw/IGESDraw_ConnectPoint.cdl | 190 - src/IGESDraw/IGESDraw_ConnectPoint.cxx | 9 +- src/IGESDraw/IGESDraw_ConnectPoint.hxx | 181 + src/IGESDraw/IGESDraw_Drawing.cdl | 120 - src/IGESDraw/IGESDraw_Drawing.cxx | 17 +- src/IGESDraw/IGESDraw_Drawing.hxx | 126 + src/IGESDraw/IGESDraw_DrawingWithRotation.cdl | 129 - src/IGESDraw/IGESDraw_DrawingWithRotation.cxx | 17 +- src/IGESDraw/IGESDraw_DrawingWithRotation.hxx | 131 + src/IGESDraw/IGESDraw_GeneralModule.cdl | 79 - src/IGESDraw/IGESDraw_GeneralModule.cxx | 25 +- src/IGESDraw/IGESDraw_GeneralModule.hxx | 109 + src/IGESDraw/IGESDraw_LabelDisplay.cdl | 124 - src/IGESDraw/IGESDraw_LabelDisplay.cxx | 12 +- src/IGESDraw/IGESDraw_LabelDisplay.hxx | 124 + src/IGESDraw/IGESDraw_NetworkSubfigure.cdl | 136 - src/IGESDraw/IGESDraw_NetworkSubfigure.cxx | 12 +- src/IGESDraw/IGESDraw_NetworkSubfigure.hxx | 134 + src/IGESDraw/IGESDraw_NetworkSubfigureDef.cdl | 152 - src/IGESDraw/IGESDraw_NetworkSubfigureDef.cxx | 9 +- src/IGESDraw/IGESDraw_NetworkSubfigureDef.hxx | 149 + src/IGESDraw/IGESDraw_PerspectiveView.cdl | 188 - src/IGESDraw/IGESDraw_PerspectiveView.cxx | 11 +- src/IGESDraw/IGESDraw_PerspectiveView.hxx | 173 + src/IGESDraw/IGESDraw_Planar.cdl | 87 - src/IGESDraw/IGESDraw_Planar.cxx | 7 +- src/IGESDraw/IGESDraw_Planar.hxx | 100 + src/IGESDraw/IGESDraw_Protocol.cdl | 41 - src/IGESDraw/IGESDraw_Protocol.cxx | 10 +- src/IGESDraw/IGESDraw_Protocol.hxx | 78 + src/IGESDraw/IGESDraw_ReadWriteModule.cdl | 45 - src/IGESDraw/IGESDraw_ReadWriteModule.cxx | 21 +- src/IGESDraw/IGESDraw_ReadWriteModule.hxx | 79 + src/IGESDraw/IGESDraw_RectArraySubfigure.cdl | 150 - src/IGESDraw/IGESDraw_RectArraySubfigure.cxx | 10 +- src/IGESDraw/IGESDraw_RectArraySubfigure.hxx | 145 + .../IGESDraw_SegmentedViewsVisible.cdl | 176 - .../IGESDraw_SegmentedViewsVisible.cxx | 9 +- .../IGESDraw_SegmentedViewsVisible.hxx | 165 + src/IGESDraw/IGESDraw_SpecificModule.cdl | 38 - src/IGESDraw/IGESDraw_SpecificModule.cxx | 19 +- src/IGESDraw/IGESDraw_SpecificModule.hxx | 75 + .../IGESDraw_ToolCircArraySubfigure.cdl | 68 - .../IGESDraw_ToolCircArraySubfigure.cxx | 21 +- .../IGESDraw_ToolCircArraySubfigure.hxx | 97 + src/IGESDraw/IGESDraw_ToolConnectPoint.cdl | 68 - src/IGESDraw/IGESDraw_ToolConnectPoint.cxx | 23 +- src/IGESDraw/IGESDraw_ToolConnectPoint.hxx | 97 + src/IGESDraw/IGESDraw_ToolDrawing.cdl | 72 - src/IGESDraw/IGESDraw_ToolDrawing.cxx | 32 +- src/IGESDraw/IGESDraw_ToolDrawing.hxx | 102 + .../IGESDraw_ToolDrawingWithRotation.cdl | 72 - .../IGESDraw_ToolDrawingWithRotation.cxx | 31 +- .../IGESDraw_ToolDrawingWithRotation.hxx | 102 + src/IGESDraw/IGESDraw_ToolLabelDisplay.cdl | 68 - src/IGESDraw/IGESDraw_ToolLabelDisplay.cxx | 29 +- src/IGESDraw/IGESDraw_ToolLabelDisplay.hxx | 97 + .../IGESDraw_ToolNetworkSubfigure.cdl | 68 - .../IGESDraw_ToolNetworkSubfigure.cxx | 23 +- .../IGESDraw_ToolNetworkSubfigure.hxx | 97 + .../IGESDraw_ToolNetworkSubfigureDef.cdl | 68 - .../IGESDraw_ToolNetworkSubfigureDef.cxx | 25 +- .../IGESDraw_ToolNetworkSubfigureDef.hxx | 97 + src/IGESDraw/IGESDraw_ToolPerspectiveView.cdl | 68 - src/IGESDraw/IGESDraw_ToolPerspectiveView.cxx | 23 +- src/IGESDraw/IGESDraw_ToolPerspectiveView.hxx | 97 + src/IGESDraw/IGESDraw_ToolPlanar.cdl | 72 - src/IGESDraw/IGESDraw_ToolPlanar.cxx | 21 +- src/IGESDraw/IGESDraw_ToolPlanar.hxx | 102 + .../IGESDraw_ToolRectArraySubfigure.cdl | 68 - .../IGESDraw_ToolRectArraySubfigure.cxx | 23 +- .../IGESDraw_ToolRectArraySubfigure.hxx | 97 + .../IGESDraw_ToolSegmentedViewsVisible.cdl | 68 - .../IGESDraw_ToolSegmentedViewsVisible.cxx | 25 +- .../IGESDraw_ToolSegmentedViewsVisible.hxx | 97 + src/IGESDraw/IGESDraw_ToolView.cdl | 68 - src/IGESDraw/IGESDraw_ToolView.cxx | 15 +- src/IGESDraw/IGESDraw_ToolView.hxx | 97 + src/IGESDraw/IGESDraw_ToolViewsVisible.cdl | 89 - src/IGESDraw/IGESDraw_ToolViewsVisible.cxx | 23 +- src/IGESDraw/IGESDraw_ToolViewsVisible.hxx | 116 + .../IGESDraw_ToolViewsVisibleWithAttr.cdl | 89 - .../IGESDraw_ToolViewsVisibleWithAttr.cxx | 29 +- .../IGESDraw_ToolViewsVisibleWithAttr.hxx | 117 + src/IGESDraw/IGESDraw_View.cdl | 151 - src/IGESDraw/IGESDraw_View.cxx | 8 +- src/IGESDraw/IGESDraw_View.hxx | 153 + src/IGESDraw/IGESDraw_ViewsVisible.cdl | 91 - src/IGESDraw/IGESDraw_ViewsVisible.cxx | 7 +- src/IGESDraw/IGESDraw_ViewsVisible.hxx | 103 + .../IGESDraw_ViewsVisibleWithAttr.cdl | 163 - .../IGESDraw_ViewsVisibleWithAttr.cxx | 10 +- .../IGESDraw_ViewsVisibleWithAttr.hxx | 154 + src/IGESFile/FILES | 2 +- src/IGESGeom/FILES | 102 + src/IGESGeom/IGESGeom.cdl | 133 - src/IGESGeom/IGESGeom.cxx | 12 +- src/IGESGeom/IGESGeom.hxx | 164 + src/IGESGeom/IGESGeom_BSplineCurve.cdl | 159 - src/IGESGeom/IGESGeom_BSplineCurve.cxx | 9 +- src/IGESGeom/IGESGeom_BSplineCurve.hxx | 163 + src/IGESGeom/IGESGeom_BSplineSurface.cdl | 192 - src/IGESGeom/IGESGeom_BSplineSurface.cxx | 8 +- src/IGESGeom/IGESGeom_BSplineSurface.hxx | 197 + src/IGESGeom/IGESGeom_Boundary.cdl | 128 - src/IGESGeom/IGESGeom_Boundary.cxx | 8 +- src/IGESGeom/IGESGeom_Boundary.hxx | 136 + src/IGESGeom/IGESGeom_BoundedSurface.cdl | 81 - src/IGESGeom/IGESGeom_BoundedSurface.cxx | 7 +- src/IGESGeom/IGESGeom_BoundedSurface.hxx | 96 + src/IGESGeom/IGESGeom_CircularArc.cdl | 105 - src/IGESGeom/IGESGeom_CircularArc.cxx | 8 +- src/IGESGeom/IGESGeom_CircularArc.hxx | 124 + src/IGESGeom/IGESGeom_CompositeCurve.cdl | 66 - src/IGESGeom/IGESGeom_CompositeCurve.cxx | 6 +- src/IGESGeom/IGESGeom_CompositeCurve.hxx | 82 + src/IGESGeom/IGESGeom_ConicArc.cdl | 152 - src/IGESGeom/IGESGeom_ConicArc.cxx | 8 +- src/IGESGeom/IGESGeom_ConicArc.hxx | 163 + src/IGESGeom/IGESGeom_CopiousData.cdl | 127 - src/IGESGeom/IGESGeom_CopiousData.cxx | 10 +- src/IGESGeom/IGESGeom_CopiousData.hxx | 134 + src/IGESGeom/IGESGeom_CurveOnSurface.cdl | 93 - src/IGESGeom/IGESGeom_CurveOnSurface.cxx | 5 +- src/IGESGeom/IGESGeom_CurveOnSurface.hxx | 108 + src/IGESGeom/IGESGeom_Direction.cdl | 60 - src/IGESGeom/IGESGeom_Direction.cxx | 6 +- src/IGESGeom/IGESGeom_Direction.hxx | 80 + src/IGESGeom/IGESGeom_Flash.cdl | 104 - src/IGESGeom/IGESGeom_Flash.cxx | 10 +- src/IGESGeom/IGESGeom_Flash.hxx | 120 + src/IGESGeom/IGESGeom_GeneralModule.cdl | 61 - src/IGESGeom/IGESGeom_GeneralModule.cxx | 31 +- src/IGESGeom/IGESGeom_GeneralModule.hxx | 95 + src/IGESGeom/IGESGeom_Line.cdl | 80 - src/IGESGeom/IGESGeom_Line.cxx | 6 +- src/IGESGeom/IGESGeom_Line.hxx | 100 + src/IGESGeom/IGESGeom_OffsetCurve.cdl | 168 - src/IGESGeom/IGESGeom_OffsetCurve.cxx | 7 +- src/IGESGeom/IGESGeom_OffsetCurve.hxx | 173 + src/IGESGeom/IGESGeom_OffsetSurface.cdl | 79 - src/IGESGeom/IGESGeom_OffsetSurface.cxx | 7 +- src/IGESGeom/IGESGeom_OffsetSurface.hxx | 97 + src/IGESGeom/IGESGeom_Plane.cdl | 109 - src/IGESGeom/IGESGeom_Plane.cxx | 7 +- src/IGESGeom/IGESGeom_Plane.hxx | 117 + src/IGESGeom/IGESGeom_Point.cdl | 65 - src/IGESGeom/IGESGeom_Point.cxx | 7 +- src/IGESGeom/IGESGeom_Point.hxx | 87 + src/IGESGeom/IGESGeom_Protocol.cdl | 41 - src/IGESGeom/IGESGeom_Protocol.cxx | 13 +- src/IGESGeom/IGESGeom_Protocol.hxx | 78 + src/IGESGeom/IGESGeom_ReadWriteModule.cdl | 45 - src/IGESGeom/IGESGeom_ReadWriteModule.cxx | 27 +- src/IGESGeom/IGESGeom_ReadWriteModule.hxx | 79 + src/IGESGeom/IGESGeom_RuledSurface.cdl | 95 - src/IGESGeom/IGESGeom_RuledSurface.cxx | 5 +- src/IGESGeom/IGESGeom_RuledSurface.hxx | 109 + src/IGESGeom/IGESGeom_SpecificModule.cdl | 38 - src/IGESGeom/IGESGeom_SpecificModule.cxx | 25 +- src/IGESGeom/IGESGeom_SpecificModule.hxx | 75 + src/IGESGeom/IGESGeom_SplineCurve.cdl | 178 - src/IGESGeom/IGESGeom_SplineCurve.cxx | 6 +- src/IGESGeom/IGESGeom_SplineCurve.hxx | 157 + src/IGESGeom/IGESGeom_SplineSurface.cdl | 143 - src/IGESGeom/IGESGeom_SplineSurface.cxx | 6 +- src/IGESGeom/IGESGeom_SplineSurface.hxx | 142 + src/IGESGeom/IGESGeom_SurfaceOfRevolution.cdl | 81 - src/IGESGeom/IGESGeom_SurfaceOfRevolution.cxx | 6 +- src/IGESGeom/IGESGeom_SurfaceOfRevolution.hxx | 92 + src/IGESGeom/IGESGeom_TabulatedCylinder.cdl | 74 - src/IGESGeom/IGESGeom_TabulatedCylinder.cxx | 7 +- src/IGESGeom/IGESGeom_TabulatedCylinder.hxx | 92 + src/IGESGeom/IGESGeom_ToolBSplineCurve.cdl | 68 - src/IGESGeom/IGESGeom_ToolBSplineCurve.cxx | 25 +- src/IGESGeom/IGESGeom_ToolBSplineCurve.hxx | 97 + src/IGESGeom/IGESGeom_ToolBSplineSurface.cdl | 68 - src/IGESGeom/IGESGeom_ToolBSplineSurface.cxx | 27 +- src/IGESGeom/IGESGeom_ToolBSplineSurface.hxx | 97 + src/IGESGeom/IGESGeom_ToolBoundary.cdl | 72 - src/IGESGeom/IGESGeom_ToolBoundary.cxx | 30 +- src/IGESGeom/IGESGeom_ToolBoundary.hxx | 102 + src/IGESGeom/IGESGeom_ToolBoundedSurface.cdl | 68 - src/IGESGeom/IGESGeom_ToolBoundedSurface.cxx | 24 +- src/IGESGeom/IGESGeom_ToolBoundedSurface.hxx | 97 + src/IGESGeom/IGESGeom_ToolCircularArc.cdl | 68 - src/IGESGeom/IGESGeom_ToolCircularArc.cxx | 25 +- src/IGESGeom/IGESGeom_ToolCircularArc.hxx | 97 + src/IGESGeom/IGESGeom_ToolCompositeCurve.cdl | 68 - src/IGESGeom/IGESGeom_ToolCompositeCurve.cxx | 23 +- src/IGESGeom/IGESGeom_ToolCompositeCurve.hxx | 97 + src/IGESGeom/IGESGeom_ToolConicArc.cdl | 72 - src/IGESGeom/IGESGeom_ToolConicArc.cxx | 28 +- src/IGESGeom/IGESGeom_ToolConicArc.hxx | 102 + src/IGESGeom/IGESGeom_ToolCopiousData.cdl | 68 - src/IGESGeom/IGESGeom_ToolCopiousData.cxx | 25 +- src/IGESGeom/IGESGeom_ToolCopiousData.hxx | 97 + src/IGESGeom/IGESGeom_ToolCurveOnSurface.cdl | 72 - src/IGESGeom/IGESGeom_ToolCurveOnSurface.cxx | 22 +- src/IGESGeom/IGESGeom_ToolCurveOnSurface.hxx | 102 + src/IGESGeom/IGESGeom_ToolDirection.cdl | 68 - src/IGESGeom/IGESGeom_ToolDirection.cxx | 19 +- src/IGESGeom/IGESGeom_ToolDirection.hxx | 97 + src/IGESGeom/IGESGeom_ToolFlash.cdl | 72 - src/IGESGeom/IGESGeom_ToolFlash.cxx | 21 +- src/IGESGeom/IGESGeom_ToolFlash.hxx | 102 + src/IGESGeom/IGESGeom_ToolLine.cdl | 68 - src/IGESGeom/IGESGeom_ToolLine.cxx | 21 +- src/IGESGeom/IGESGeom_ToolLine.hxx | 97 + src/IGESGeom/IGESGeom_ToolOffsetCurve.cdl | 72 - src/IGESGeom/IGESGeom_ToolOffsetCurve.cxx | 26 +- src/IGESGeom/IGESGeom_ToolOffsetCurve.hxx | 102 + src/IGESGeom/IGESGeom_ToolOffsetSurface.cdl | 68 - src/IGESGeom/IGESGeom_ToolOffsetSurface.cxx | 25 +- src/IGESGeom/IGESGeom_ToolOffsetSurface.hxx | 97 + src/IGESGeom/IGESGeom_ToolPlane.cdl | 68 - src/IGESGeom/IGESGeom_ToolPlane.cxx | 30 +- src/IGESGeom/IGESGeom_ToolPlane.hxx | 97 + src/IGESGeom/IGESGeom_ToolPoint.cdl | 68 - src/IGESGeom/IGESGeom_ToolPoint.cxx | 25 +- src/IGESGeom/IGESGeom_ToolPoint.hxx | 97 + src/IGESGeom/IGESGeom_ToolRuledSurface.cdl | 68 - src/IGESGeom/IGESGeom_ToolRuledSurface.cxx | 22 +- src/IGESGeom/IGESGeom_ToolRuledSurface.hxx | 97 + src/IGESGeom/IGESGeom_ToolSplineCurve.cdl | 68 - src/IGESGeom/IGESGeom_ToolSplineCurve.cxx | 25 +- src/IGESGeom/IGESGeom_ToolSplineCurve.hxx | 97 + src/IGESGeom/IGESGeom_ToolSplineSurface.cdl | 68 - src/IGESGeom/IGESGeom_ToolSplineSurface.cxx | 22 +- src/IGESGeom/IGESGeom_ToolSplineSurface.hxx | 97 + .../IGESGeom_ToolSurfaceOfRevolution.cdl | 68 - .../IGESGeom_ToolSurfaceOfRevolution.cxx | 22 +- .../IGESGeom_ToolSurfaceOfRevolution.hxx | 97 + .../IGESGeom_ToolTabulatedCylinder.cdl | 68 - .../IGESGeom_ToolTabulatedCylinder.cxx | 26 +- .../IGESGeom_ToolTabulatedCylinder.hxx | 97 + .../IGESGeom_ToolTransformationMatrix.cdl | 72 - .../IGESGeom_ToolTransformationMatrix.cxx | 24 +- .../IGESGeom_ToolTransformationMatrix.hxx | 102 + src/IGESGeom/IGESGeom_ToolTrimmedSurface.cdl | 68 - src/IGESGeom/IGESGeom_ToolTrimmedSurface.cxx | 24 +- src/IGESGeom/IGESGeom_ToolTrimmedSurface.hxx | 97 + .../IGESGeom_TransformationMatrix.cdl | 77 - .../IGESGeom_TransformationMatrix.cxx | 6 +- .../IGESGeom_TransformationMatrix.hxx | 94 + src/IGESGeom/IGESGeom_TrimmedSurface.cdl | 112 - src/IGESGeom/IGESGeom_TrimmedSurface.cxx | 7 +- src/IGESGeom/IGESGeom_TrimmedSurface.hxx | 114 + src/IGESGraph/FILES | 66 + src/IGESGraph/IGESGraph.cdl | 107 - src/IGESGraph/IGESGraph.cxx | 12 +- src/IGESGraph/IGESGraph.hxx | 130 + src/IGESGraph/IGESGraph_Color.cdl | 106 - src/IGESGraph/IGESGraph_Color.cxx | 5 +- src/IGESGraph/IGESGraph_Color.hxx | 95 + src/IGESGraph/IGESGraph_DefinitionLevel.cdl | 68 - src/IGESGraph/IGESGraph_DefinitionLevel.cxx | 5 +- src/IGESGraph/IGESGraph_DefinitionLevel.hxx | 85 + src/IGESGraph/IGESGraph_DrawingSize.cdl | 75 - src/IGESGraph/IGESGraph_DrawingSize.cxx | 3 +- src/IGESGraph/IGESGraph_DrawingSize.hxx | 87 + src/IGESGraph/IGESGraph_DrawingUnits.cdl | 79 - src/IGESGraph/IGESGraph_DrawingUnits.cxx | 5 +- src/IGESGraph/IGESGraph_DrawingUnits.hxx | 91 + src/IGESGraph/IGESGraph_GeneralModule.cdl | 60 - src/IGESGraph/IGESGraph_GeneralModule.cxx | 25 +- src/IGESGraph/IGESGraph_GeneralModule.hxx | 94 + src/IGESGraph/IGESGraph_HighLight.cdl | 69 - src/IGESGraph/IGESGraph_HighLight.cxx | 3 +- src/IGESGraph/IGESGraph_HighLight.hxx | 85 + .../IGESGraph_IntercharacterSpacing.cdl | 66 - .../IGESGraph_IntercharacterSpacing.cxx | 3 +- .../IGESGraph_IntercharacterSpacing.hxx | 82 + .../IGESGraph_LineFontDefPattern.cdl | 89 - .../IGESGraph_LineFontDefPattern.cxx | 6 +- .../IGESGraph_LineFontDefPattern.hxx | 104 + .../IGESGraph_LineFontDefTemplate.cdl | 96 - .../IGESGraph_LineFontDefTemplate.cxx | 5 +- .../IGESGraph_LineFontDefTemplate.hxx | 106 + .../IGESGraph_LineFontPredefined.cdl | 68 - .../IGESGraph_LineFontPredefined.cxx | 3 +- .../IGESGraph_LineFontPredefined.hxx | 81 + src/IGESGraph/IGESGraph_NominalSize.cdl | 85 - src/IGESGraph/IGESGraph_NominalSize.cxx | 5 +- src/IGESGraph/IGESGraph_NominalSize.hxx | 97 + src/IGESGraph/IGESGraph_Pick.cdl | 71 - src/IGESGraph/IGESGraph_Pick.cxx | 3 +- src/IGESGraph/IGESGraph_Pick.hxx | 85 + src/IGESGraph/IGESGraph_Protocol.cdl | 41 - src/IGESGraph/IGESGraph_Protocol.cxx | 21 +- src/IGESGraph/IGESGraph_Protocol.hxx | 78 + src/IGESGraph/IGESGraph_ReadWriteModule.cdl | 45 - src/IGESGraph/IGESGraph_ReadWriteModule.cxx | 21 +- src/IGESGraph/IGESGraph_ReadWriteModule.hxx | 79 + src/IGESGraph/IGESGraph_SpecificModule.cdl | 39 - src/IGESGraph/IGESGraph_SpecificModule.cxx | 19 +- src/IGESGraph/IGESGraph_SpecificModule.hxx | 76 + .../IGESGraph_TextDisplayTemplate.cdl | 178 - .../IGESGraph_TextDisplayTemplate.cxx | 7 +- .../IGESGraph_TextDisplayTemplate.hxx | 152 + src/IGESGraph/IGESGraph_TextFontDef.cdl | 178 - src/IGESGraph/IGESGraph_TextFontDef.cxx | 8 +- src/IGESGraph/IGESGraph_TextFontDef.hxx | 148 + src/IGESGraph/IGESGraph_ToolColor.cdl | 68 - src/IGESGraph/IGESGraph_ToolColor.cxx | 19 +- src/IGESGraph/IGESGraph_ToolColor.hxx | 97 + .../IGESGraph_ToolDefinitionLevel.cdl | 68 - .../IGESGraph_ToolDefinitionLevel.cxx | 19 +- .../IGESGraph_ToolDefinitionLevel.hxx | 97 + src/IGESGraph/IGESGraph_ToolDrawingSize.cdl | 72 - src/IGESGraph/IGESGraph_ToolDrawingSize.cxx | 15 +- src/IGESGraph/IGESGraph_ToolDrawingSize.hxx | 102 + src/IGESGraph/IGESGraph_ToolDrawingUnits.cdl | 72 - src/IGESGraph/IGESGraph_ToolDrawingUnits.cxx | 19 +- src/IGESGraph/IGESGraph_ToolDrawingUnits.hxx | 102 + src/IGESGraph/IGESGraph_ToolHighLight.cdl | 72 - src/IGESGraph/IGESGraph_ToolHighLight.cxx | 15 +- src/IGESGraph/IGESGraph_ToolHighLight.hxx | 102 + .../IGESGraph_ToolIntercharacterSpacing.cdl | 72 - .../IGESGraph_ToolIntercharacterSpacing.cxx | 15 +- .../IGESGraph_ToolIntercharacterSpacing.hxx | 102 + .../IGESGraph_ToolLineFontDefPattern.cdl | 68 - .../IGESGraph_ToolLineFontDefPattern.cxx | 19 +- .../IGESGraph_ToolLineFontDefPattern.hxx | 97 + .../IGESGraph_ToolLineFontDefTemplate.cdl | 68 - .../IGESGraph_ToolLineFontDefTemplate.cxx | 17 +- .../IGESGraph_ToolLineFontDefTemplate.hxx | 97 + .../IGESGraph_ToolLineFontPredefined.cdl | 72 - .../IGESGraph_ToolLineFontPredefined.cxx | 15 +- .../IGESGraph_ToolLineFontPredefined.hxx | 102 + src/IGESGraph/IGESGraph_ToolNominalSize.cdl | 72 - src/IGESGraph/IGESGraph_ToolNominalSize.cxx | 19 +- src/IGESGraph/IGESGraph_ToolNominalSize.hxx | 102 + src/IGESGraph/IGESGraph_ToolPick.cdl | 72 - src/IGESGraph/IGESGraph_ToolPick.cxx | 15 +- src/IGESGraph/IGESGraph_ToolPick.hxx | 102 + .../IGESGraph_ToolTextDisplayTemplate.cdl | 68 - .../IGESGraph_ToolTextDisplayTemplate.cxx | 23 +- .../IGESGraph_ToolTextDisplayTemplate.hxx | 97 + src/IGESGraph/IGESGraph_ToolTextFontDef.cdl | 68 - src/IGESGraph/IGESGraph_ToolTextFontDef.cxx | 27 +- src/IGESGraph/IGESGraph_ToolTextFontDef.hxx | 97 + .../IGESGraph_ToolUniformRectGrid.cdl | 72 - .../IGESGraph_ToolUniformRectGrid.cxx | 19 +- .../IGESGraph_ToolUniformRectGrid.hxx | 102 + src/IGESGraph/IGESGraph_UniformRectGrid.cdl | 124 - src/IGESGraph/IGESGraph_UniformRectGrid.cxx | 7 +- src/IGESGraph/IGESGraph_UniformRectGrid.hxx | 123 + src/IGESSelect/FILES | 94 + src/IGESSelect/IGESSelect.cdl | 109 - src/IGESSelect/IGESSelect.cxx | 12 +- src/IGESSelect/IGESSelect.hxx | 169 + src/IGESSelect/IGESSelect_Activator.cdl | 36 - src/IGESSelect/IGESSelect_Activator.cxx | 77 +- src/IGESSelect/IGESSelect_Activator.hxx | 72 + src/IGESSelect/IGESSelect_AddFileComment.cdl | 65 - src/IGESSelect/IGESSelect_AddFileComment.cxx | 10 +- src/IGESSelect/IGESSelect_AddFileComment.hxx | 99 + src/IGESSelect/IGESSelect_AddGroup.cdl | 39 - src/IGESSelect/IGESSelect_AddGroup.cxx | 14 +- src/IGESSelect/IGESSelect_AddGroup.hxx | 74 + src/IGESSelect/IGESSelect_AutoCorrect.cdl | 61 - src/IGESSelect/IGESSelect_AutoCorrect.cxx | 10 +- src/IGESSelect/IGESSelect_AutoCorrect.hxx | 95 + src/IGESSelect/IGESSelect_ChangeLevelList.cdl | 87 - src/IGESSelect/IGESSelect_ChangeLevelList.cxx | 16 +- src/IGESSelect/IGESSelect_ChangeLevelList.hxx | 120 + .../IGESSelect_ChangeLevelNumber.cdl | 78 - .../IGESSelect_ChangeLevelNumber.cxx | 16 +- .../IGESSelect_ChangeLevelNumber.hxx | 111 + src/IGESSelect/IGESSelect_ComputeStatus.cdl | 48 - src/IGESSelect/IGESSelect_ComputeStatus.cxx | 11 +- src/IGESSelect/IGESSelect_ComputeStatus.hxx | 82 + .../IGESSelect_CounterOfLevelNumber.cdl | 83 - .../IGESSelect_CounterOfLevelNumber.cxx | 12 +- .../IGESSelect_CounterOfLevelNumber.hxx | 116 + src/IGESSelect/IGESSelect_DispPerDrawing.cdl | 54 - src/IGESSelect/IGESSelect_DispPerDrawing.cxx | 13 +- src/IGESSelect/IGESSelect_DispPerDrawing.hxx | 88 + .../IGESSelect_DispPerSingleView.cdl | 55 - .../IGESSelect_DispPerSingleView.cxx | 12 +- .../IGESSelect_DispPerSingleView.hxx | 88 + src/IGESSelect/IGESSelect_Dumper.cdl | 40 - src/IGESSelect/IGESSelect_Dumper.cxx | 47 +- src/IGESSelect/IGESSelect_Dumper.hxx | 76 + src/IGESSelect/IGESSelect_EditDirPart.cdl | 46 - src/IGESSelect/IGESSelect_EditDirPart.cxx | 28 +- src/IGESSelect/IGESSelect_EditDirPart.hxx | 81 + src/IGESSelect/IGESSelect_EditHeader.cdl | 46 - src/IGESSelect/IGESSelect_EditHeader.cxx | 17 +- src/IGESSelect/IGESSelect_EditHeader.hxx | 81 + src/IGESSelect/IGESSelect_FileModifier.hxx | 65 + src/IGESSelect/IGESSelect_FileModifier_0.cxx | 39 + src/IGESSelect/IGESSelect_FloatFormat.cdl | 92 - src/IGESSelect/IGESSelect_FloatFormat.cxx | 11 +- src/IGESSelect/IGESSelect_FloatFormat.hxx | 121 + src/IGESSelect/IGESSelect_IGESName.cdl | 36 - src/IGESSelect/IGESSelect_IGESName.cxx | 8 +- src/IGESSelect/IGESSelect_IGESName.hxx | 73 + src/IGESSelect/IGESSelect_IGESTypeForm.cdl | 44 - src/IGESSelect/IGESSelect_IGESTypeForm.cxx | 9 +- src/IGESSelect/IGESSelect_IGESTypeForm.hxx | 79 + src/IGESSelect/IGESSelect_ModelModifier.hxx | 74 + src/IGESSelect/IGESSelect_ModelModifier_0.cxx | 47 + src/IGESSelect/IGESSelect_RebuildDrawings.cdl | 47 - src/IGESSelect/IGESSelect_RebuildDrawings.cxx | 26 +- src/IGESSelect/IGESSelect_RebuildDrawings.hxx | 82 + src/IGESSelect/IGESSelect_RebuildGroups.cdl | 47 - src/IGESSelect/IGESSelect_RebuildGroups.cxx | 16 +- src/IGESSelect/IGESSelect_RebuildGroups.hxx | 82 + src/IGESSelect/IGESSelect_RemoveCurves.cdl | 45 - src/IGESSelect/IGESSelect_RemoveCurves.cxx | 22 +- src/IGESSelect/IGESSelect_RemoveCurves.hxx | 78 + src/IGESSelect/IGESSelect_SelectBasicGeom.cdl | 71 - src/IGESSelect/IGESSelect_SelectBasicGeom.cxx | 27 +- src/IGESSelect/IGESSelect_SelectBasicGeom.hxx | 104 + .../IGESSelect_SelectBypassGroup.cdl | 48 - .../IGESSelect_SelectBypassGroup.cxx | 12 +- .../IGESSelect_SelectBypassGroup.hxx | 84 + .../IGESSelect_SelectBypassSubfigure.cdl | 54 - .../IGESSelect_SelectBypassSubfigure.cxx | 20 +- .../IGESSelect_SelectBypassSubfigure.hxx | 90 + .../IGESSelect_SelectDrawingFrom.cdl | 44 - .../IGESSelect_SelectDrawingFrom.cxx | 14 +- .../IGESSelect_SelectDrawingFrom.hxx | 80 + src/IGESSelect/IGESSelect_SelectFaces.cdl | 48 - src/IGESSelect/IGESSelect_SelectFaces.cxx | 14 +- src/IGESSelect/IGESSelect_SelectFaces.hxx | 83 + .../IGESSelect_SelectFromDrawing.cdl | 40 - .../IGESSelect_SelectFromDrawing.cxx | 8 +- .../IGESSelect_SelectFromDrawing.hxx | 76 + .../IGESSelect_SelectFromSingleView.cdl | 40 - .../IGESSelect_SelectFromSingleView.cxx | 10 +- .../IGESSelect_SelectFromSingleView.hxx | 76 + .../IGESSelect_SelectLevelNumber.cdl | 58 - .../IGESSelect_SelectLevelNumber.cxx | 12 +- .../IGESSelect_SelectLevelNumber.hxx | 94 + src/IGESSelect/IGESSelect_SelectName.cdl | 53 - src/IGESSelect/IGESSelect_SelectName.cxx | 11 +- src/IGESSelect/IGESSelect_SelectName.hxx | 88 + src/IGESSelect/IGESSelect_SelectPCurves.cdl | 47 - src/IGESSelect/IGESSelect_SelectPCurves.cxx | 21 +- src/IGESSelect/IGESSelect_SelectPCurves.hxx | 82 + .../IGESSelect_SelectSingleViewFrom.cdl | 44 - .../IGESSelect_SelectSingleViewFrom.cxx | 14 +- .../IGESSelect_SelectSingleViewFrom.hxx | 80 + .../IGESSelect_SelectSubordinate.cdl | 54 - .../IGESSelect_SelectSubordinate.cxx | 9 +- .../IGESSelect_SelectSubordinate.hxx | 89 + .../IGESSelect_SelectVisibleStatus.cdl | 38 - .../IGESSelect_SelectVisibleStatus.cxx | 9 +- .../IGESSelect_SelectVisibleStatus.hxx | 75 + .../IGESSelect_SetGlobalParameter.cdl | 66 - .../IGESSelect_SetGlobalParameter.cxx | 16 +- .../IGESSelect_SetGlobalParameter.hxx | 99 + src/IGESSelect/IGESSelect_SetLabel.cdl | 50 - src/IGESSelect/IGESSelect_SetLabel.cxx | 10 +- src/IGESSelect/IGESSelect_SetLabel.hxx | 84 + src/IGESSelect/IGESSelect_SetVersion5.cdl | 45 - src/IGESSelect/IGESSelect_SetVersion5.cxx | 10 +- src/IGESSelect/IGESSelect_SetVersion5.hxx | 80 + src/IGESSelect/IGESSelect_SignColor.cdl | 47 - src/IGESSelect/IGESSelect_SignColor.cxx | 10 +- src/IGESSelect/IGESSelect_SignColor.hxx | 82 + src/IGESSelect/IGESSelect_SignLevelNumber.cdl | 43 - src/IGESSelect/IGESSelect_SignLevelNumber.cxx | 10 +- src/IGESSelect/IGESSelect_SignLevelNumber.hxx | 78 + src/IGESSelect/IGESSelect_SignStatus.cdl | 48 - src/IGESSelect/IGESSelect_SignStatus.cxx | 10 +- src/IGESSelect/IGESSelect_SignStatus.hxx | 85 + src/IGESSelect/IGESSelect_SplineToBSpline.cdl | 72 - src/IGESSelect/IGESSelect_SplineToBSpline.cxx | 15 +- src/IGESSelect/IGESSelect_SplineToBSpline.hxx | 107 + .../IGESSelect_UpdateCreationDate.cdl | 43 - .../IGESSelect_UpdateCreationDate.cxx | 14 +- .../IGESSelect_UpdateCreationDate.hxx | 78 + src/IGESSelect/IGESSelect_UpdateFileName.cdl | 45 - src/IGESSelect/IGESSelect_UpdateFileName.cxx | 11 +- src/IGESSelect/IGESSelect_UpdateFileName.hxx | 80 + .../IGESSelect_UpdateLastChange.cdl | 46 - .../IGESSelect_UpdateLastChange.cxx | 14 +- .../IGESSelect_UpdateLastChange.hxx | 81 + src/IGESSelect/IGESSelect_ViewSorter.cdl | 115 - src/IGESSelect/IGESSelect_ViewSorter.cxx | 11 +- src/IGESSelect/IGESSelect_ViewSorter.hxx | 150 + src/IGESSelect/IGESSelect_WorkLibrary.cdl | 62 - src/IGESSelect/IGESSelect_WorkLibrary.cxx | 42 +- src/IGESSelect/IGESSelect_WorkLibrary.hxx | 90 + src/IGESSolid/FILES | 113 +- src/IGESSolid/IGESSolid.cdl | 140 - src/IGESSolid/IGESSolid.cxx | 12 +- src/IGESSolid/IGESSolid.hxx | 170 + src/IGESSolid/IGESSolid_Block.cdl | 116 - src/IGESSolid/IGESSolid_Block.cxx | 7 +- src/IGESSolid/IGESSolid_Block.hxx | 124 + src/IGESSolid/IGESSolid_BooleanTree.cdl | 85 - src/IGESSolid/IGESSolid_BooleanTree.cxx | 6 +- src/IGESSolid/IGESSolid_BooleanTree.hxx | 97 + src/IGESSolid/IGESSolid_CMPLRS.edl | 28 - src/IGESSolid/IGESSolid_ConeFrustum.cdl | 106 - src/IGESSolid/IGESSolid_ConeFrustum.cxx | 7 +- src/IGESSolid/IGESSolid_ConeFrustum.hxx | 109 + src/IGESSolid/IGESSolid_ConicalSurface.cdl | 102 - src/IGESSolid/IGESSolid_ConicalSurface.cxx | 6 +- src/IGESSolid/IGESSolid_ConicalSurface.hxx | 105 + src/IGESSolid/IGESSolid_Cylinder.cdl | 91 - src/IGESSolid/IGESSolid_Cylinder.cxx | 7 +- src/IGESSolid/IGESSolid_Cylinder.hxx | 99 + .../IGESSolid_CylindricalSurface.cdl | 89 - .../IGESSolid_CylindricalSurface.cxx | 6 +- .../IGESSolid_CylindricalSurface.hxx | 95 + src/IGESSolid/IGESSolid_EdgeList.cdl | 114 - src/IGESSolid/IGESSolid_EdgeList.cxx | 8 +- src/IGESSolid/IGESSolid_EdgeList.hxx | 117 + src/IGESSolid/IGESSolid_Ellipsoid.cdl | 122 - src/IGESSolid/IGESSolid_Ellipsoid.cxx | 7 +- src/IGESSolid/IGESSolid_Ellipsoid.hxx | 128 + src/IGESSolid/IGESSolid_Face.cdl | 79 - src/IGESSolid/IGESSolid_Face.cxx | 7 +- src/IGESSolid/IGESSolid_Face.hxx | 91 + src/IGESSolid/IGESSolid_GeneralModule.cdl | 60 - src/IGESSolid/IGESSolid_GeneralModule.cxx | 25 +- src/IGESSolid/IGESSolid_GeneralModule.hxx | 94 + src/IGESSolid/IGESSolid_Loop.cdl | 153 - src/IGESSolid/IGESSolid_Loop.cxx | 9 +- src/IGESSolid/IGESSolid_Loop.hxx | 138 + src/IGESSolid/IGESSolid_ManifoldSolid.cdl | 93 - src/IGESSolid/IGESSolid_ManifoldSolid.cxx | 7 +- src/IGESSolid/IGESSolid_ManifoldSolid.hxx | 102 + src/IGESSolid/IGESSolid_PlaneSurface.cdl | 82 - src/IGESSolid/IGESSolid_PlaneSurface.cxx | 6 +- src/IGESSolid/IGESSolid_PlaneSurface.hxx | 91 + src/IGESSolid/IGESSolid_Protocol.cdl | 41 - src/IGESSolid/IGESSolid_Protocol.cxx | 32 +- src/IGESSolid/IGESSolid_Protocol.hxx | 78 + src/IGESSolid/IGESSolid_ReadWriteModule.cdl | 45 - src/IGESSolid/IGESSolid_ReadWriteModule.cxx | 21 +- src/IGESSolid/IGESSolid_ReadWriteModule.hxx | 79 + src/IGESSolid/IGESSolid_RightAngularWedge.cdl | 123 - src/IGESSolid/IGESSolid_RightAngularWedge.cxx | 7 +- src/IGESSolid/IGESSolid_RightAngularWedge.hxx | 129 + src/IGESSolid/IGESSolid_SelectedComponent.cdl | 72 - src/IGESSolid/IGESSolid_SelectedComponent.cxx | 7 +- src/IGESSolid/IGESSolid_SelectedComponent.hxx | 86 + src/IGESSolid/IGESSolid_Shell.cdl | 89 - src/IGESSolid/IGESSolid_Shell.cxx | 7 +- src/IGESSolid/IGESSolid_Shell.hxx | 101 + src/IGESSolid/IGESSolid_SolidAssembly.cdl | 92 - src/IGESSolid/IGESSolid_SolidAssembly.cxx | 8 +- src/IGESSolid/IGESSolid_SolidAssembly.hxx | 105 + src/IGESSolid/IGESSolid_SolidInstance.cdl | 67 - src/IGESSolid/IGESSolid_SolidInstance.cxx | 5 +- src/IGESSolid/IGESSolid_SolidInstance.hxx | 85 + .../IGESSolid_SolidOfLinearExtrusion.cdl | 80 - .../IGESSolid_SolidOfLinearExtrusion.cxx | 7 +- .../IGESSolid_SolidOfLinearExtrusion.hxx | 92 + src/IGESSolid/IGESSolid_SolidOfRevolution.cdl | 105 - src/IGESSolid/IGESSolid_SolidOfRevolution.cxx | 8 +- src/IGESSolid/IGESSolid_SolidOfRevolution.hxx | 113 + src/IGESSolid/IGESSolid_SpecificModule.cdl | 32 - src/IGESSolid/IGESSolid_SpecificModule.cxx | 19 +- src/IGESSolid/IGESSolid_SpecificModule.hxx | 69 + src/IGESSolid/IGESSolid_Sphere.cdl | 69 - src/IGESSolid/IGESSolid_Sphere.cxx | 6 +- src/IGESSolid/IGESSolid_Sphere.hxx | 84 + src/IGESSolid/IGESSolid_SphericalSurface.cdl | 98 - src/IGESSolid/IGESSolid_SphericalSurface.cxx | 7 +- src/IGESSolid/IGESSolid_SphericalSurface.hxx | 105 + src/IGESSolid/IGESSolid_ToolBlock.cdl | 68 - src/IGESSolid/IGESSolid_ToolBlock.cxx | 21 +- src/IGESSolid/IGESSolid_ToolBlock.hxx | 97 + src/IGESSolid/IGESSolid_ToolBooleanTree.cdl | 68 - src/IGESSolid/IGESSolid_ToolBooleanTree.cxx | 23 +- src/IGESSolid/IGESSolid_ToolBooleanTree.hxx | 97 + src/IGESSolid/IGESSolid_ToolConeFrustum.cdl | 68 - src/IGESSolid/IGESSolid_ToolConeFrustum.cxx | 21 +- src/IGESSolid/IGESSolid_ToolConeFrustum.hxx | 97 + .../IGESSolid_ToolConicalSurface.cdl | 68 - .../IGESSolid_ToolConicalSurface.cxx | 17 +- .../IGESSolid_ToolConicalSurface.hxx | 97 + src/IGESSolid/IGESSolid_ToolCylinder.cdl | 68 - src/IGESSolid/IGESSolid_ToolCylinder.cxx | 19 +- src/IGESSolid/IGESSolid_ToolCylinder.hxx | 97 + .../IGESSolid_ToolCylindricalSurface.cdl | 68 - .../IGESSolid_ToolCylindricalSurface.cxx | 17 +- .../IGESSolid_ToolCylindricalSurface.hxx | 97 + src/IGESSolid/IGESSolid_ToolEdgeList.cdl | 68 - src/IGESSolid/IGESSolid_ToolEdgeList.cxx | 30 +- src/IGESSolid/IGESSolid_ToolEdgeList.hxx | 97 + src/IGESSolid/IGESSolid_ToolEllipsoid.cdl | 68 - src/IGESSolid/IGESSolid_ToolEllipsoid.cxx | 21 +- src/IGESSolid/IGESSolid_ToolEllipsoid.hxx | 97 + src/IGESSolid/IGESSolid_ToolFace.cdl | 68 - src/IGESSolid/IGESSolid_ToolFace.cxx | 26 +- src/IGESSolid/IGESSolid_ToolFace.hxx | 97 + src/IGESSolid/IGESSolid_ToolLoop.cdl | 68 - src/IGESSolid/IGESSolid_ToolLoop.cxx | 32 +- src/IGESSolid/IGESSolid_ToolLoop.hxx | 97 + src/IGESSolid/IGESSolid_ToolManifoldSolid.cdl | 68 - src/IGESSolid/IGESSolid_ToolManifoldSolid.cxx | 25 +- src/IGESSolid/IGESSolid_ToolManifoldSolid.hxx | 97 + src/IGESSolid/IGESSolid_ToolPlaneSurface.cdl | 68 - src/IGESSolid/IGESSolid_ToolPlaneSurface.cxx | 23 +- src/IGESSolid/IGESSolid_ToolPlaneSurface.hxx | 97 + .../IGESSolid_ToolRightAngularWedge.cdl | 68 - .../IGESSolid_ToolRightAngularWedge.cxx | 21 +- .../IGESSolid_ToolRightAngularWedge.hxx | 97 + .../IGESSolid_ToolSelectedComponent.cdl | 68 - .../IGESSolid_ToolSelectedComponent.cxx | 21 +- .../IGESSolid_ToolSelectedComponent.hxx | 97 + src/IGESSolid/IGESSolid_ToolShell.cdl | 68 - src/IGESSolid/IGESSolid_ToolShell.cxx | 26 +- src/IGESSolid/IGESSolid_ToolShell.hxx | 97 + src/IGESSolid/IGESSolid_ToolSolidAssembly.cdl | 68 - src/IGESSolid/IGESSolid_ToolSolidAssembly.cxx | 23 +- src/IGESSolid/IGESSolid_ToolSolidAssembly.hxx | 97 + src/IGESSolid/IGESSolid_ToolSolidInstance.cdl | 68 - src/IGESSolid/IGESSolid_ToolSolidInstance.cxx | 15 +- src/IGESSolid/IGESSolid_ToolSolidInstance.hxx | 97 + .../IGESSolid_ToolSolidOfLinearExtrusion.cdl | 68 - .../IGESSolid_ToolSolidOfLinearExtrusion.cxx | 19 +- .../IGESSolid_ToolSolidOfLinearExtrusion.hxx | 97 + .../IGESSolid_ToolSolidOfRevolution.cdl | 68 - .../IGESSolid_ToolSolidOfRevolution.cxx | 23 +- .../IGESSolid_ToolSolidOfRevolution.hxx | 97 + src/IGESSolid/IGESSolid_ToolSphere.cdl | 68 - src/IGESSolid/IGESSolid_ToolSphere.cxx | 19 +- src/IGESSolid/IGESSolid_ToolSphere.hxx | 97 + .../IGESSolid_ToolSphericalSurface.cdl | 68 - .../IGESSolid_ToolSphericalSurface.cxx | 17 +- .../IGESSolid_ToolSphericalSurface.hxx | 97 + .../IGESSolid_ToolToroidalSurface.cdl | 68 - .../IGESSolid_ToolToroidalSurface.cxx | 15 +- .../IGESSolid_ToolToroidalSurface.hxx | 97 + src/IGESSolid/IGESSolid_ToolTorus.cdl | 68 - src/IGESSolid/IGESSolid_ToolTorus.cxx | 21 +- src/IGESSolid/IGESSolid_ToolTorus.hxx | 97 + src/IGESSolid/IGESSolid_ToolVertexList.cdl | 68 - src/IGESSolid/IGESSolid_ToolVertexList.cxx | 25 +- src/IGESSolid/IGESSolid_ToolVertexList.hxx | 97 + src/IGESSolid/IGESSolid_TopoBuilder.cdl | 199 - src/IGESSolid/IGESSolid_TopoBuilder.cxx | 28 +- src/IGESSolid/IGESSolid_TopoBuilder.hxx | 220 ++ src/IGESSolid/IGESSolid_ToroidalSurface.cdl | 104 - src/IGESSolid/IGESSolid_ToroidalSurface.cxx | 7 +- src/IGESSolid/IGESSolid_ToroidalSurface.hxx | 108 + src/IGESSolid/IGESSolid_Torus.cdl | 93 - src/IGESSolid/IGESSolid_Torus.cxx | 7 +- src/IGESSolid/IGESSolid_Torus.hxx | 100 + src/IGESSolid/IGESSolid_VertexList.cdl | 67 - src/IGESSolid/IGESSolid_VertexList.cxx | 6 +- src/IGESSolid/IGESSolid_VertexList.hxx | 82 + src/IGESToBRep/FILES | 27 + src/IGESToBRep/IGESToBRep.cdl | 131 - src/IGESToBRep/IGESToBRep.cxx | 83 +- src/IGESToBRep/IGESToBRep.hxx | 142 + src/IGESToBRep/IGESToBRep_Actor.cdl | 57 - src/IGESToBRep/IGESToBRep_Actor.cxx | 28 +- src/IGESToBRep/IGESToBRep_Actor.hxx | 93 + src/IGESToBRep/IGESToBRep_AlgoContainer.cdl | 42 - src/IGESToBRep/IGESToBRep_AlgoContainer.cxx | 6 +- src/IGESToBRep/IGESToBRep_AlgoContainer.hxx | 70 + src/IGESToBRep/IGESToBRep_BRepEntity.cdl | 99 - src/IGESToBRep/IGESToBRep_BRepEntity.cxx | 66 +- src/IGESToBRep/IGESToBRep_BRepEntity.hxx | 109 + src/IGESToBRep/IGESToBRep_BasicCurve.cdl | 145 - src/IGESToBRep/IGESToBRep_BasicCurve.cxx | 62 +- src/IGESToBRep/IGESToBRep_BasicCurve.hxx | 134 + src/IGESToBRep/IGESToBRep_BasicSurface.cdl | 112 - src/IGESToBRep/IGESToBRep_BasicSurface.cxx | 75 +- src/IGESToBRep/IGESToBRep_BasicSurface.hxx | 124 + src/IGESToBRep/IGESToBRep_CurveAndSurface.cdl | 245 -- src/IGESToBRep/IGESToBRep_CurveAndSurface.cxx | 53 +- src/IGESToBRep/IGESToBRep_CurveAndSurface.hxx | 235 ++ src/IGESToBRep/IGESToBRep_IGESBoundary.cdl | 160 - src/IGESToBRep/IGESToBRep_IGESBoundary.cxx | 25 +- src/IGESToBRep/IGESToBRep_IGESBoundary.hxx | 160 + src/IGESToBRep/IGESToBRep_Reader.cdl | 108 - src/IGESToBRep/IGESToBRep_Reader.cxx | 60 +- src/IGESToBRep/IGESToBRep_Reader.hxx | 138 + src/IGESToBRep/IGESToBRep_ToolContainer.cdl | 32 - src/IGESToBRep/IGESToBRep_ToolContainer.cxx | 6 +- src/IGESToBRep/IGESToBRep_ToolContainer.hxx | 65 + src/IGESToBRep/IGESToBRep_TopoCurve.cdl | 198 - src/IGESToBRep/IGESToBRep_TopoCurve.cxx | 86 +- src/IGESToBRep/IGESToBRep_TopoCurve.hxx | 155 + src/IGESToBRep/IGESToBRep_TopoSurface.cdl | 126 - src/IGESToBRep/IGESToBRep_TopoSurface.cxx | 167 +- src/IGESToBRep/IGESToBRep_TopoSurface.hxx | 115 + src/IVtk/FILES | 12 +- src/IVtkDraw/FILES | 6 +- src/IVtkOCC/FILES | 10 +- src/IVtkTools/FILES | 12 +- src/IVtkVTK/FILES | 4 +- src/IVtkVTK/IVtkVTK_CMPLRS.edl | 11 - src/Image/FILES | 12 +- src/Image/Image.cdl | 42 - src/IntAna/FILES | 22 +- src/IntAna/IntAna.cdl | 77 - src/IntAna/IntAna_Curve.cdl | 241 -- src/IntAna/IntAna_Curve.cxx | 14 +- src/IntAna/IntAna_Curve.hxx | 156 + src/IntAna/IntAna_Int3Pln.cdl | 97 - src/IntAna/IntAna_Int3Pln.cxx | 11 +- src/IntAna/IntAna_Int3Pln.hxx | 90 + src/IntAna/IntAna_IntConicQuad.cdl | 362 -- src/IntAna/IntAna_IntConicQuad.cxx | 31 +- src/IntAna/IntAna_IntConicQuad.hxx | 206 + src/IntAna/IntAna_IntLinTorus.cdl | 136 - src/IntAna/IntAna_IntLinTorus.cxx | 16 +- src/IntAna/IntAna_IntLinTorus.hxx | 98 + src/IntAna/IntAna_IntQuadQuad.cdl | 316 -- src/IntAna/IntAna_IntQuadQuad.cxx | 15 +- src/IntAna/IntAna_IntQuadQuad.hxx | 165 + src/IntAna/IntAna_QuadQuadGeo.cdl | 474 --- src/IntAna/IntAna_QuadQuadGeo.cxx | 37 +- src/IntAna/IntAna_QuadQuadGeo.hxx | 288 ++ src/IntAna/IntAna_Quadric.cdl | 133 - src/IntAna/IntAna_Quadric.cxx | 13 +- src/IntAna/IntAna_Quadric.hxx | 114 + src/IntAna/IntAna_ResultType.hxx | 35 + src/IntAna2d/FILES | 8 + src/IntAna2d/IntAna2d.cdl | 40 - src/IntAna2d/IntAna2d_AnaIntersection.cdl | 280 -- src/IntAna2d/IntAna2d_AnaIntersection.cxx | 9 +- src/IntAna2d/IntAna2d_AnaIntersection.hxx | 163 + src/IntAna2d/IntAna2d_AnaIntersection_1.cxx | 11 +- src/IntAna2d/IntAna2d_AnaIntersection_2.cxx | 11 +- src/IntAna2d/IntAna2d_AnaIntersection_3.cxx | 12 +- src/IntAna2d/IntAna2d_AnaIntersection_4.cxx | 12 +- src/IntAna2d/IntAna2d_AnaIntersection_5.cxx | 11 +- src/IntAna2d/IntAna2d_AnaIntersection_6.cxx | 11 +- src/IntAna2d/IntAna2d_AnaIntersection_7.cxx | 11 +- src/IntAna2d/IntAna2d_AnaIntersection_8.cxx | 12 +- src/IntAna2d/IntAna2d_Conic.cdl | 112 - src/IntAna2d/IntAna2d_Conic.cxx | 9 +- src/IntAna2d/IntAna2d_Conic.hxx | 103 + src/IntAna2d/IntAna2d_IntPoint.cdl | 115 - src/IntAna2d/IntAna2d_IntPoint.cxx | 4 +- src/IntAna2d/IntAna2d_IntPoint.hxx | 102 + src/IntCurve/FILES | 32 +- src/IntCurve/IntCurve.cdl | 109 - .../IntCurve_DistBetweenPCurvesGen.cdl | 110 - src/IntCurve/IntCurve_IConicTool.cdl | 109 - src/IntCurve/IntCurve_IConicTool.cxx | 11 +- src/IntCurve/IntCurve_IConicTool.hxx | 111 + src/IntCurve/IntCurve_IntConicConic.cdl | 400 -- src/IntCurve/IntCurve_IntConicConic.cxx | 22 +- src/IntCurve/IntCurve_IntConicConic.hxx | 204 + src/IntCurve/IntCurve_IntConicConic_1.cxx | 27 +- src/IntCurve/IntCurve_IntConicCurveGen.cdl | 183 - src/IntCurve/IntCurve_IntCurveCurveGen.cdl | 263 -- src/IntCurve/IntCurve_IntImpConicParConic.hxx | 81 + .../IntCurve_IntImpConicParConic_0.cxx | 42 + src/IntCurve/IntCurve_IntPolyPolyGen.cdl | 172 - ...urve_MyImpParToolOfIntImpConicParConic.hxx | 75 + ...ve_MyImpParToolOfIntImpConicParConic_0.cxx | 33 + src/IntCurve/IntCurve_PConic.cdl | 102 - src/IntCurve/IntCurve_PConic.cxx | 9 +- src/IntCurve/IntCurve_PConic.hxx | 112 + src/IntCurve/IntCurve_PConicTool.cdl | 75 - src/IntCurve/IntCurve_PConicTool.cxx | 6 +- src/IntCurve/IntCurve_PConicTool.hxx | 75 + src/IntCurve/IntCurve_Polygon2dGen.cdl | 150 - src/IntCurve/IntCurve_ProjPCurGen.cdl | 94 - src/IntCurve/IntCurve_ProjectOnPConicTool.cdl | 63 - src/IntCurve/IntCurve_ProjectOnPConicTool.cxx | 5 +- src/IntCurve/IntCurve_ProjectOnPConicTool.hxx | 87 + .../IntCurve_UserIntConicCurveGen.cdl | 257 -- src/IntCurveSurface/FILES | 43 + src/IntCurveSurface/IntCurveSurface.cdl | 127 - .../IntCurveSurface_HCurveTool.cdl | 236 -- .../IntCurveSurface_HInter.hxx | 124 + .../IntCurveSurface_HInter_0.cxx | 73 + src/IntCurveSurface/IntCurveSurface_Inter.cdl | 290 -- .../IntCurveSurface_Intersection.cdl | 120 - .../IntCurveSurface_Intersection.cxx | 4 +- .../IntCurveSurface_Intersection.hxx | 123 + .../IntCurveSurface_IntersectionPoint.cdl | 106 - .../IntCurveSurface_IntersectionPoint.cxx | 3 +- .../IntCurveSurface_IntersectionPoint.hxx | 98 + .../IntCurveSurface_IntersectionSegment.cdl | 77 - .../IntCurveSurface_IntersectionSegment.cxx | 3 +- .../IntCurveSurface_IntersectionSegment.hxx | 81 + .../IntCurveSurface_Polygon.cdl | 174 - .../IntCurveSurface_PolygonTool.cdl | 76 - .../IntCurveSurface_Polyhedron.cdl | 286 -- .../IntCurveSurface_PolyhedronTool.cdl | 133 - ...IntCurveSurface_QuadricCurveExactInter.cdl | 95 - .../IntCurveSurface_QuadricCurveFunc.cdl | 84 - .../IntCurveSurface_TheCSFunctionOfHInter.hxx | 93 + ...ntCurveSurface_TheCSFunctionOfHInter_0.cxx | 38 + .../IntCurveSurface_TheExactHInter.hxx | 94 + .../IntCurveSurface_TheExactHInter_0.cxx | 43 + .../IntCurveSurface_TheHCurveTool.hxx | 138 + .../IntCurveSurface_TheHCurveTool_0.cxx | 34 + ...ntCurveSurface_TheInterferenceOfHInter.hxx | 106 + ...CurveSurface_TheInterferenceOfHInter_0.cxx | 40 + .../IntCurveSurface_ThePolygonOfHInter.hxx | 124 + .../IntCurveSurface_ThePolygonOfHInter_0.cxx | 33 + ...IntCurveSurface_ThePolygonToolOfHInter.hxx | 95 + ...tCurveSurface_ThePolygonToolOfHInter_0.cxx | 34 + .../IntCurveSurface_ThePolyhedronOfHInter.hxx | 171 + ...ntCurveSurface_ThePolyhedronOfHInter_0.cxx | 34 + ...CurveSurface_ThePolyhedronToolOfHInter.hxx | 94 + ...rveSurface_ThePolyhedronToolOfHInter_0.cxx | 30 + ...IntCurveSurface_TheQuadCurvExactHInter.hxx | 82 + ...tCurveSurface_TheQuadCurvExactHInter_0.cxx | 39 + ...heQuadCurvFuncOfTheQuadCurvExactHInter.hxx | 74 + ...QuadCurvFuncOfTheQuadCurvExactHInter_0.cxx | 33 + .../IntCurveSurface_TransitionOnCurve.hxx | 45 + src/IntCurvesFace/FILES | 6 + src/IntCurvesFace/IntCurvesFace.cdl | 59 - .../IntCurvesFace_Intersector.cdl | 201 - .../IntCurvesFace_Intersector.cxx | 44 +- .../IntCurvesFace_Intersector.hxx | 159 + .../IntCurvesFace_ShapeIntersector.cdl | 183 - .../IntCurvesFace_ShapeIntersector.cxx | 15 +- .../IntCurvesFace_ShapeIntersector.hxx | 154 + src/IntImp/FILES | 9 + src/IntImp/IntImp.cdl | 39 - src/IntImp/IntImp_ConstIsoparametric.hxx | 29 + src/IntImp/IntImp_Int2S.cdl | 255 -- src/IntImp/IntImp_IntCS.cdl | 135 - src/IntImp/IntImp_ZerCSParFunc.cdl | 83 - src/IntImp/IntImp_ZerImpFunc.cdl | 205 - src/IntImp/IntImp_ZerParFunc.cdl | 187 - src/IntImpParGen/FILES | 7 +- src/IntImpParGen/IntImpParGen.cdl | 74 - src/IntImpParGen/IntImpParGen.cxx | 16 +- src/IntImpParGen/IntImpParGen.hxx | 88 + src/IntImpParGen/IntImpParGen_ImpParTool.cdl | 75 - src/IntImpParGen/IntImpParGen_ImpTool.cdl | 94 - src/IntImpParGen/IntImpParGen_ImpTool.cxx | 5 +- src/IntImpParGen/IntImpParGen_ImpTool.hxx | 82 + src/IntImpParGen/IntImpParGen_Intersector.cdl | 139 - src/IntPatch/FILES | 98 +- src/IntPatch/IntPatch.cdl | 155 - src/IntPatch/IntPatch_ALine.cdl | 273 -- src/IntPatch/IntPatch_ALine.cxx | 10 +- src/IntPatch/IntPatch_ALine.hxx | 167 + src/IntPatch/IntPatch_ALineToWLine.cdl | 90 - src/IntPatch/IntPatch_ALineToWLine.cxx | 34 +- src/IntPatch/IntPatch_ALineToWLine.hxx | 102 + src/IntPatch/IntPatch_ArcFunction.cdl | 113 - src/IntPatch/IntPatch_ArcFunction.cxx | 7 +- src/IntPatch/IntPatch_ArcFunction.hxx | 100 + src/IntPatch/IntPatch_CSFunction.cdl | 89 - src/IntPatch/IntPatch_CSFunction.cxx | 10 +- src/IntPatch/IntPatch_CSFunction.hxx | 96 + src/IntPatch/IntPatch_CurvIntSurf.hxx | 94 + src/IntPatch/IntPatch_CurvIntSurf_0.cxx | 43 + src/IntPatch/IntPatch_GLine.cdl | 369 -- src/IntPatch/IntPatch_GLine.cxx | 12 +- src/IntPatch/IntPatch_GLine.hxx | 207 ++ src/IntPatch/IntPatch_HCurve2dTool.cdl | 234 -- src/IntPatch/IntPatch_HCurve2dTool.cxx | 14 +- src/IntPatch/IntPatch_HCurve2dTool.hxx | 161 + src/IntPatch/IntPatch_HInterTool.cdl | 222 -- src/IntPatch/IntPatch_HInterTool.cxx | 17 +- src/IntPatch/IntPatch_HInterTool.hxx | 164 + src/IntPatch/IntPatch_IType.hxx | 33 + src/IntPatch/IntPatch_ImpImpIntersection.cdl | 198 - src/IntPatch/IntPatch_ImpImpIntersection.cxx | 51 +- src/IntPatch/IntPatch_ImpImpIntersection.hxx | 130 + src/IntPatch/IntPatch_ImpPrmIntersection.cdl | 165 - src/IntPatch/IntPatch_ImpPrmIntersection.cxx | 35 +- src/IntPatch/IntPatch_ImpPrmIntersection.hxx | 113 + .../IntPatch_InterferencePolyhedron.cdl | 109 - .../IntPatch_InterferencePolyhedron.cxx | 28 +- .../IntPatch_InterferencePolyhedron.hxx | 108 + src/IntPatch/IntPatch_Intersection.cdl | 307 -- src/IntPatch/IntPatch_Intersection.cxx | 21 +- src/IntPatch/IntPatch_Intersection.hxx | 189 + src/IntPatch/IntPatch_Line.cdl | 225 -- src/IntPatch/IntPatch_Line.cxx | 5 +- src/IntPatch/IntPatch_Line.hxx | 160 + src/IntPatch/IntPatch_LineConstructor.cdl | 79 - src/IntPatch/IntPatch_LineConstructor.cxx | 11 +- src/IntPatch/IntPatch_LineConstructor.hxx | 74 + src/IntPatch/IntPatch_Point.cdl | 446 --- src/IntPatch/IntPatch_Point.cxx | 10 +- src/IntPatch/IntPatch_Point.hxx | 246 ++ src/IntPatch/IntPatch_PointLine.cdl | 75 - src/IntPatch/IntPatch_PointLine.cxx | 6 +- src/IntPatch/IntPatch_PointLine.hxx | 88 + src/IntPatch/IntPatch_PolyArc.cdl | 64 - src/IntPatch/IntPatch_PolyArc.cxx | 5 +- src/IntPatch/IntPatch_PolyArc.hxx | 87 + src/IntPatch/IntPatch_PolyLine.cdl | 60 - src/IntPatch/IntPatch_PolyLine.cxx | 6 +- src/IntPatch/IntPatch_PolyLine.hxx | 87 + src/IntPatch/IntPatch_Polygo.cdl | 62 - src/IntPatch/IntPatch_Polygo.cxx | 6 +- src/IntPatch/IntPatch_Polygo.hxx | 83 + src/IntPatch/IntPatch_Polyhedron.cdl | 253 -- src/IntPatch/IntPatch_Polyhedron.cxx | 17 +- src/IntPatch/IntPatch_Polyhedron.hxx | 174 + src/IntPatch/IntPatch_PolyhedronTool.cdl | 98 - src/IntPatch/IntPatch_PolyhedronTool.cxx | 7 +- src/IntPatch/IntPatch_PolyhedronTool.hxx | 95 + src/IntPatch/IntPatch_PrmPrmIntersection.cdl | 360 -- src/IntPatch/IntPatch_PrmPrmIntersection.cxx | 36 +- src/IntPatch/IntPatch_PrmPrmIntersection.hxx | 171 + .../IntPatch_PrmPrmIntersection_T3Bits.cdl | 49 - .../IntPatch_PrmPrmIntersection_T3Bits.cxx | 3 +- .../IntPatch_PrmPrmIntersection_T3Bits.hxx | 80 + src/IntPatch/IntPatch_RLine.cdl | 326 -- src/IntPatch/IntPatch_RLine.cxx | 8 +- src/IntPatch/IntPatch_RLine.hxx | 180 + src/IntPatch/IntPatch_RstInt.cdl | 44 - src/IntPatch/IntPatch_RstInt.cxx | 33 +- src/IntPatch/IntPatch_RstInt.hxx | 66 + src/IntPatch/IntPatch_SearchPnt.hxx | 25 + ...nceNodeOfSequenceOfIWLineOfTheIWalking.hxx | 82 + ...eNodeOfSequenceOfIWLineOfTheIWalking_0.cxx | 41 + ...odeOfSequenceOfPathPointOfTheSOnBounds.hxx | 83 + ...eOfSequenceOfPathPointOfTheSOnBounds_0.cxx | 41 + ...eNodeOfSequenceOfSegmentOfTheSOnBounds.hxx | 83 + ...odeOfSequenceOfSegmentOfTheSOnBounds_0.cxx | 41 + ...IntPatch_SequenceOfIWLineOfTheIWalking.hxx | 134 + ...tPatch_SequenceOfIWLineOfTheIWalking_0.cxx | 33 + ...atch_SequenceOfPathPointOfTheSOnBounds.hxx | 134 + ...ch_SequenceOfPathPointOfTheSOnBounds_0.cxx | 33 + ...tPatch_SequenceOfSegmentOfTheSOnBounds.hxx | 134 + ...atch_SequenceOfSegmentOfTheSOnBounds_0.cxx | 33 + .../IntPatch_TheIWLineOfTheIWalking.hxx | 151 + .../IntPatch_TheIWLineOfTheIWalking_0.cxx | 43 + src/IntPatch/IntPatch_TheIWalking.hxx | 209 ++ src/IntPatch/IntPatch_TheIWalking_0.cxx | 66 + .../IntPatch_ThePathPointOfTheSOnBounds.hxx | 105 + .../IntPatch_ThePathPointOfTheSOnBounds_0.cxx | 32 + src/IntPatch/IntPatch_TheSOnBounds.hxx | 168 + src/IntPatch/IntPatch_TheSOnBounds_0.cxx | 72 + src/IntPatch/IntPatch_TheSearchInside.hxx | 112 + src/IntPatch/IntPatch_TheSearchInside_0.cxx | 43 + .../IntPatch_TheSegmentOfTheSOnBounds.hxx | 101 + .../IntPatch_TheSegmentOfTheSOnBounds_0.cxx | 34 + src/IntPatch/IntPatch_TheSurfFunction.hxx | 151 + src/IntPatch/IntPatch_TheSurfFunction_0.cxx | 41 + src/IntPatch/IntPatch_WLine.cdl | 352 -- src/IntPatch/IntPatch_WLine.cxx | 12 +- src/IntPatch/IntPatch_WLine.hxx | 201 + src/IntPolyh/FILES | 21 +- src/IntPolyh/IntPolyh.cdl | 105 - src/IntPolyh/IntPolyh_Couple.cdl | 65 - src/IntPolyh/IntPolyh_Couple.cxx | 5 +- src/IntPolyh/IntPolyh_Couple.hxx | 83 + src/IntPolyh/IntPolyh_Edge.cdl | 81 - src/IntPolyh/IntPolyh_Edge.cxx | 5 +- src/IntPolyh/IntPolyh_Edge.hxx | 89 + src/IntPolyh/IntPolyh_Intersection.cdl | 231 -- src/IntPolyh/IntPolyh_Intersection.cxx | 7 +- src/IntPolyh/IntPolyh_Intersection.hxx | 148 + src/IntPolyh/IntPolyh_Intersection_1.cxx | 8 +- src/IntPolyh/IntPolyh_MaillageAffinage.cdl | 312 -- src/IntPolyh/IntPolyh_MaillageAffinage.cxx | 28 +- src/IntPolyh/IntPolyh_MaillageAffinage.hxx | 238 ++ src/IntPolyh/IntPolyh_PMaillageAffinage.hxx | 23 + src/IntPolyh/IntPolyh_Point.cdl | 142 - src/IntPolyh/IntPolyh_Point.cxx | 6 +- src/IntPolyh/IntPolyh_Point.hxx | 146 + src/IntPolyh/IntPolyh_SectionLine.cdl | 83 - src/IntPolyh/IntPolyh_SectionLine.cxx | 8 +- src/IntPolyh/IntPolyh_SectionLine.hxx | 101 + src/IntPolyh/IntPolyh_StartPoint.cdl | 153 - src/IntPolyh/IntPolyh_StartPoint.cxx | 8 +- src/IntPolyh/IntPolyh_StartPoint.hxx | 143 + src/IntPolyh/IntPolyh_Triangle.cdl | 209 -- src/IntPolyh/IntPolyh_Triangle.cxx | 15 +- src/IntPolyh/IntPolyh_Triangle.hxx | 156 + src/IntRes2d/FILES | 18 + src/IntRes2d/IntRes2d.cdl | 58 - src/IntRes2d/IntRes2d_Domain.cdl | 266 -- src/IntRes2d/IntRes2d_Domain.cxx | 4 +- src/IntRes2d/IntRes2d_Domain.hxx | 156 + src/IntRes2d/IntRes2d_Intersection.cdl | 196 - src/IntRes2d/IntRes2d_Intersection.cxx | 11 +- src/IntRes2d/IntRes2d_Intersection.hxx | 126 + src/IntRes2d/IntRes2d_IntersectionPoint.cdl | 127 - src/IntRes2d/IntRes2d_IntersectionPoint.cxx | 5 +- src/IntRes2d/IntRes2d_IntersectionPoint.hxx | 104 + src/IntRes2d/IntRes2d_IntersectionSegment.cdl | 158 - src/IntRes2d/IntRes2d_IntersectionSegment.cxx | 5 +- src/IntRes2d/IntRes2d_IntersectionSegment.hxx | 110 + src/IntRes2d/IntRes2d_Position.hxx | 28 + src/IntRes2d/IntRes2d_Situation.hxx | 28 + src/IntRes2d/IntRes2d_Transition.cdl | 199 - src/IntRes2d/IntRes2d_Transition.cxx | 3 +- src/IntRes2d/IntRes2d_Transition.hxx | 134 + src/IntRes2d/IntRes2d_TypeTrans.hxx | 29 + src/IntStart/FILES | 10 + src/IntStart/IntStart.cdl | 48 - src/IntStart/IntStart_PathPoint.cdl | 127 - src/IntStart/IntStart_SITopolTool.cdl | 38 - src/IntStart/IntStart_SITopolTool.cxx | 5 +- src/IntStart/IntStart_SITopolTool.hxx | 66 + src/IntStart/IntStart_SearchInside.cdl | 105 - src/IntStart/IntStart_SearchOnBoundaries.cdl | 176 - src/IntStart/IntStart_Segment.cdl | 128 - src/IntSurf/FILES | 42 +- src/IntSurf/IntSurf.cdl | 86 - src/IntSurf/IntSurf.cxx | 6 +- src/IntSurf/IntSurf.hxx | 92 + src/IntSurf/IntSurf_Couple.cdl | 51 - src/IntSurf/IntSurf_Couple.cxx | 3 +- src/IntSurf/IntSurf_Couple.hxx | 71 + src/IntSurf/IntSurf_InteriorPoint.cdl | 124 - src/IntSurf/IntSurf_InteriorPoint.cxx | 5 +- src/IntSurf/IntSurf_InteriorPoint.hxx | 104 + src/IntSurf/IntSurf_InteriorPointTool.cdl | 72 - src/IntSurf/IntSurf_InteriorPointTool.cxx | 3 +- src/IntSurf/IntSurf_InteriorPointTool.hxx | 82 + src/IntSurf/IntSurf_LineOn2S.cdl | 144 - src/IntSurf/IntSurf_LineOn2S.cxx | 5 +- src/IntSurf/IntSurf_LineOn2S.hxx | 99 + src/IntSurf/IntSurf_PathPoint.cdl | 152 - src/IntSurf/IntSurf_PathPoint.cxx | 7 +- src/IntSurf/IntSurf_PathPoint.hxx | 106 + src/IntSurf/IntSurf_PathPointTool.cdl | 127 - src/IntSurf/IntSurf_PathPointTool.cxx | 6 +- src/IntSurf/IntSurf_PathPointTool.hxx | 109 + src/IntSurf/IntSurf_PntOn2S.cdl | 139 - src/IntSurf/IntSurf_PntOn2S.cxx | 3 +- src/IntSurf/IntSurf_PntOn2S.hxx | 109 + src/IntSurf/IntSurf_Quadric.cdl | 208 -- src/IntSurf/IntSurf_Quadric.cxx | 12 +- src/IntSurf/IntSurf_Quadric.hxx | 136 + src/IntSurf/IntSurf_QuadricTool.cdl | 66 - src/IntSurf/IntSurf_QuadricTool.cxx | 6 +- src/IntSurf/IntSurf_QuadricTool.hxx | 76 + src/IntSurf/IntSurf_Situation.hxx | 28 + src/IntSurf/IntSurf_Transition.cdl | 153 - src/IntSurf/IntSurf_Transition.cxx | 3 +- src/IntSurf/IntSurf_Transition.hxx | 117 + src/IntSurf/IntSurf_TypeTrans.hxx | 29 + src/IntTools/FILES | 95 +- src/IntTools/IntTools.cdl | 195 - src/IntTools/IntTools.cxx | 25 +- src/IntTools/IntTools.hxx | 138 + src/IntTools/IntTools_BaseRangeSample.cdl | 36 - src/IntTools/IntTools_BaseRangeSample.cxx | 3 +- src/IntTools/IntTools_BaseRangeSample.hxx | 67 + src/IntTools/IntTools_BeanFaceIntersector.cdl | 251 -- src/IntTools/IntTools_BeanFaceIntersector.cxx | 78 +- src/IntTools/IntTools_BeanFaceIntersector.hxx | 197 + src/IntTools/IntTools_CArray1.cdl | 141 - src/IntTools/IntTools_CArray1OfInteger.hxx | 114 + src/IntTools/IntTools_CArray1OfInteger_0.cxx | 28 + src/IntTools/IntTools_CArray1OfReal.hxx | 115 + src/IntTools/IntTools_CArray1OfReal_0.cxx | 28 + src/IntTools/IntTools_CommonPrt.cdl | 196 - src/IntTools/IntTools_CommonPrt.cxx | 5 +- src/IntTools/IntTools_CommonPrt.hxx | 184 + src/IntTools/IntTools_Context.cdl | 341 -- src/IntTools/IntTools_Context.cxx | 51 +- src/IntTools/IntTools_Context.hxx | 254 ++ src/IntTools/IntTools_Curve.cdl | 137 - src/IntTools/IntTools_Curve.cxx | 6 +- src/IntTools/IntTools_Curve.hxx | 129 + .../IntTools_CurveRangeLocalizeData.cdl | 57 - .../IntTools_CurveRangeLocalizeData.cxx | 7 +- .../IntTools_CurveRangeLocalizeData.hxx | 85 + src/IntTools/IntTools_CurveRangeSample.cdl | 51 - src/IntTools/IntTools_CurveRangeSample.cxx | 4 +- src/IntTools/IntTools_CurveRangeSample.hxx | 77 + .../IntTools_CurveRangeSampleMapHasher.cdl | 37 - .../IntTools_CurveRangeSampleMapHasher.cxx | 4 +- .../IntTools_CurveRangeSampleMapHasher.hxx | 69 + src/IntTools/IntTools_EdgeEdge.cdl | 244 -- src/IntTools/IntTools_EdgeEdge.cxx | 31 +- src/IntTools/IntTools_EdgeEdge.hxx | 194 + src/IntTools/IntTools_EdgeFace.cdl | 292 -- src/IntTools/IntTools_EdgeFace.cxx | 70 +- src/IntTools/IntTools_EdgeFace.hxx | 235 ++ src/IntTools/IntTools_FClass2d.cdl | 112 - src/IntTools/IntTools_FClass2d.cxx | 47 +- src/IntTools/IntTools_FClass2d.hxx | 120 + src/IntTools/IntTools_FaceFace.cdl | 180 - src/IntTools/IntTools_FaceFace.cxx | 161 +- src/IntTools/IntTools_FaceFace.hxx | 162 + src/IntTools/IntTools_MarkedRangeSet.cdl | 169 - src/IntTools/IntTools_MarkedRangeSet.cxx | 5 +- src/IntTools/IntTools_MarkedRangeSet.hxx | 164 + src/IntTools/IntTools_PntOn2Faces.cdl | 82 - src/IntTools/IntTools_PntOn2Faces.cxx | 4 +- src/IntTools/IntTools_PntOn2Faces.hxx | 94 + src/IntTools/IntTools_PntOnFace.cdl | 106 - src/IntTools/IntTools_PntOnFace.cxx | 6 +- src/IntTools/IntTools_PntOnFace.hxx | 112 + src/IntTools/IntTools_Range.cdl | 66 - src/IntTools/IntTools_Range.cxx | 4 +- src/IntTools/IntTools_Range.hxx | 88 + src/IntTools/IntTools_Root.cdl | 143 - src/IntTools/IntTools_Root.cxx | 3 +- src/IntTools/IntTools_Root.hxx | 148 + src/IntTools/IntTools_ShrunkRange.cdl | 95 - src/IntTools/IntTools_ShrunkRange.cxx | 24 +- src/IntTools/IntTools_ShrunkRange.hxx | 110 + .../IntTools_SurfaceRangeLocalizeData.cdl | 189 - .../IntTools_SurfaceRangeLocalizeData.cxx | 8 +- .../IntTools_SurfaceRangeLocalizeData.hxx | 173 + src/IntTools/IntTools_SurfaceRangeSample.cdl | 129 - src/IntTools/IntTools_SurfaceRangeSample.cxx | 5 +- src/IntTools/IntTools_SurfaceRangeSample.hxx | 123 + .../IntTools_SurfaceRangeSampleMapHasher.cdl | 34 - .../IntTools_SurfaceRangeSampleMapHasher.cxx | 4 +- .../IntTools_SurfaceRangeSampleMapHasher.hxx | 69 + src/IntTools/IntTools_Tools.cdl | 255 -- src/IntTools/IntTools_Tools.cxx | 65 +- src/IntTools/IntTools_Tools.hxx | 188 + src/IntTools/IntTools_TopolTool.cdl | 115 - src/IntTools/IntTools_TopolTool.cxx | 18 +- src/IntTools/IntTools_TopolTool.hxx | 119 + src/IntWalk/FILES | 12 + src/IntWalk/IntWalk.cdl | 66 - src/IntWalk/IntWalk_IWLine.cdl | 327 -- src/IntWalk/IntWalk_IWalking.cdl | 297 -- src/IntWalk/IntWalk_PWalking.cdl | 354 -- src/IntWalk/IntWalk_PWalking.cxx | 31 +- src/IntWalk/IntWalk_PWalking.hxx | 210 ++ src/IntWalk/IntWalk_StatusDeflection.hxx | 30 + src/IntWalk/IntWalk_TheFunctionOfTheInt2S.hxx | 142 + .../IntWalk_TheFunctionOfTheInt2S_0.cxx | 33 + src/IntWalk/IntWalk_TheInt2S.hxx | 142 + src/IntWalk/IntWalk_TheInt2S_0.cxx | 41 + src/Interface/FILES | 121 +- src/Interface/Interface.cdl | 153 - src/Interface/Interface_BitMap.cdl | 144 - src/Interface/Interface_BitMap.cxx | 5 +- src/Interface/Interface_BitMap.hxx | 173 + src/Interface/Interface_Category.cdl | 99 - src/Interface/Interface_Category.cxx | 10 +- src/Interface/Interface_Category.hxx | 134 + src/Interface/Interface_Check.cdl | 265 -- src/Interface/Interface_Check.cxx | 14 +- src/Interface/Interface_Check.hxx | 274 ++ src/Interface/Interface_CheckFailure.hxx | 37 + src/Interface/Interface_CheckIterator.cdl | 197 - src/Interface/Interface_CheckIterator.cxx | 9 +- src/Interface/Interface_CheckIterator.hxx | 222 ++ src/Interface/Interface_CheckStatus.hxx | 34 + src/Interface/Interface_CheckTool.cdl | 114 - src/Interface/Interface_CheckTool.cxx | 23 +- src/Interface/Interface_CheckTool.hxx | 148 + src/Interface/Interface_CopyControl.cdl | 48 - src/Interface/Interface_CopyControl.cxx | 6 +- src/Interface/Interface_CopyControl.hxx | 80 + src/Interface/Interface_CopyMap.cdl | 57 - src/Interface/Interface_CopyMap.cxx | 8 +- src/Interface/Interface_CopyMap.hxx | 88 + src/Interface/Interface_CopyTool.cdl | 212 -- src/Interface/Interface_CopyTool.cxx | 16 +- src/Interface/Interface_CopyTool.hxx | 226 ++ src/Interface/Interface_DataState.hxx | 32 + src/Interface/Interface_EntityCluster.cdl | 117 - src/Interface/Interface_EntityCluster.cxx | 13 +- src/Interface/Interface_EntityCluster.hxx | 135 + src/Interface/Interface_EntityIterator.cdl | 92 - src/Interface/Interface_EntityIterator.cxx | 9 +- src/Interface/Interface_EntityIterator.hxx | 124 + src/Interface/Interface_EntityList.cdl | 110 - src/Interface/Interface_EntityList.cxx | 10 +- src/Interface/Interface_EntityList.hxx | 128 + src/Interface/Interface_FileParameter.cdl | 68 - src/Interface/Interface_FileParameter.cxx | 4 +- src/Interface/Interface_FileParameter.hxx | 104 + src/Interface/Interface_FileReaderData.cdl | 208 -- src/Interface/Interface_FileReaderData.cxx | 13 +- src/Interface/Interface_FileReaderData.hxx | 229 ++ src/Interface/Interface_FileReaderTool.cdl | 203 - src/Interface/Interface_FileReaderTool.cxx | 22 +- src/Interface/Interface_FileReaderTool.hxx | 223 ++ src/Interface/Interface_FloatWriter.cdl | 105 - src/Interface/Interface_FloatWriter.cxx | 4 +- src/Interface/Interface_FloatWriter.hxx | 132 + src/Interface/Interface_GTool.cdl | 95 - src/Interface/Interface_GTool.cxx | 9 +- src/Interface/Interface_GTool.hxx | 129 + src/Interface/Interface_GeneralLib.hxx | 91 + src/Interface/Interface_GeneralLib_0.cxx | 44 + src/Interface/Interface_GeneralModule.cdl | 185 - src/Interface/Interface_GeneralModule.cxx | 10 +- src/Interface/Interface_GeneralModule.hxx | 207 ++ .../Interface_GlobalNodeOfGeneralLib.hxx | 77 + .../Interface_GlobalNodeOfGeneralLib_0.cxx | 54 + .../Interface_GlobalNodeOfReaderLib.hxx | 77 + .../Interface_GlobalNodeOfReaderLib_0.cxx | 54 + src/Interface/Interface_Graph.cdl | 272 -- src/Interface/Interface_Graph.cxx | 14 +- src/Interface/Interface_Graph.hxx | 272 ++ src/Interface/Interface_GraphContent.cdl | 70 - src/Interface/Interface_GraphContent.cxx | 8 +- src/Interface/Interface_GraphContent.hxx | 101 + src/Interface/Interface_HGraph.cdl | 71 - src/Interface/Interface_HGraph.cxx | 9 +- src/Interface/Interface_HGraph.hxx | 98 + src/Interface/Interface_IntList.cdl | 131 - src/Interface/Interface_IntList.cxx | 5 +- src/Interface/Interface_IntList.hxx | 164 + src/Interface/Interface_IntVal.cdl | 36 - src/Interface/Interface_IntVal.cxx | 4 +- src/Interface/Interface_IntVal.hxx | 67 + src/Interface/Interface_InterfaceError.hxx | 37 + src/Interface/Interface_InterfaceMismatch.hxx | 37 + src/Interface/Interface_InterfaceModel.cdl | 449 --- src/Interface/Interface_InterfaceModel.cxx | 31 +- src/Interface/Interface_InterfaceModel.hxx | 435 +++ src/Interface/Interface_JaggedArray.cdl | 47 - src/Interface/Interface_LineBuffer.cdl | 126 - src/Interface/Interface_LineBuffer.cxx | 10 +- src/Interface/Interface_LineBuffer.hxx | 147 + src/Interface/Interface_MSG.cdl | 224 -- src/Interface/Interface_MSG.cxx | 15 +- src/Interface/Interface_MSG.hxx | 248 ++ .../Interface_MapAsciiStringHasher.cdl | 32 - .../Interface_MapAsciiStringHasher.cxx | 4 +- .../Interface_MapAsciiStringHasher.hxx | 63 + src/Interface/Interface_NodeOfGeneralLib.hxx | 76 + .../Interface_NodeOfGeneralLib_0.cxx | 54 + src/Interface/Interface_NodeOfReaderLib.hxx | 76 + src/Interface/Interface_NodeOfReaderLib_0.cxx | 54 + src/Interface/Interface_ParamList.cdl | 78 - src/Interface/Interface_ParamList.cxx | 9 +- src/Interface/Interface_ParamList.hxx | 101 + src/Interface/Interface_ParamSet.cdl | 90 - src/Interface/Interface_ParamSet.cxx | 6 +- src/Interface/Interface_ParamSet.hxx | 118 + src/Interface/Interface_ParamType.hxx | 36 + src/Interface/Interface_Protocol.cdl | 108 - src/Interface/Interface_Protocol.cxx | 10 +- src/Interface/Interface_Protocol.hxx | 140 + src/Interface/Interface_ReaderLib.hxx | 91 + src/Interface/Interface_ReaderLib_0.cxx | 44 + src/Interface/Interface_ReaderModule.cdl | 66 - src/Interface/Interface_ReaderModule.cxx | 7 +- src/Interface/Interface_ReaderModule.hxx | 95 + src/Interface/Interface_Recognizer.cdl | 79 - src/Interface/Interface_ReportEntity.cdl | 103 - src/Interface/Interface_ReportEntity.cxx | 6 +- src/Interface/Interface_ReportEntity.hxx | 133 + src/Interface/Interface_STAT.cdl | 193 - src/Interface/Interface_STAT.cxx | 4 +- src/Interface/Interface_STAT.hxx | 219 ++ src/Interface/Interface_ShareFlags.cdl | 85 - src/Interface/Interface_ShareFlags.cxx | 15 +- src/Interface/Interface_ShareFlags.hxx | 117 + src/Interface/Interface_ShareTool.cdl | 112 - src/Interface/Interface_ShareTool.cxx | 16 +- src/Interface/Interface_ShareTool.hxx | 142 + src/Interface/Interface_SignLabel.cdl | 35 - src/Interface/Interface_SignLabel.cxx | 7 +- src/Interface/Interface_SignLabel.hxx | 71 + src/Interface/Interface_SignType.cdl | 47 - src/Interface/Interface_SignType.cxx | 6 +- src/Interface/Interface_SignType.hxx | 80 + src/Interface/Interface_Static.cdl | 288 -- src/Interface/Interface_Static.cxx | 12 +- src/Interface/Interface_Static.hxx | 304 ++ src/Interface/Interface_TypedValue.cdl | 89 - src/Interface/Interface_TypedValue.cxx | 15 +- src/Interface/Interface_TypedValue.hxx | 118 + src/Interface/Interface_UndefinedContent.cdl | 150 - src/Interface/Interface_UndefinedContent.cxx | 12 +- src/Interface/Interface_UndefinedContent.hxx | 161 + src/InterfaceGraphic/FILES | 2 +- src/Intf/FILES | 25 +- src/Intf/Intf.cdl | 100 - src/Intf/Intf.cxx | 6 +- src/Intf/Intf.hxx | 91 + src/Intf/Intf_Interference.cdl | 133 - src/Intf/Intf_Interference.cxx | 10 +- src/Intf/Intf_Interference.hxx | 122 + src/Intf/Intf_InterferencePolygon2d.cdl | 94 - src/Intf/Intf_InterferencePolygon2d.cxx | 8 +- src/Intf/Intf_InterferencePolygon2d.hxx | 97 + .../Intf_InterferencePolygonPolyhedron.cdl | 186 - src/Intf/Intf_PIType.hxx | 30 + src/Intf/Intf_Polygon2d.cdl | 54 - src/Intf/Intf_Polygon2d.cxx | 7 +- src/Intf/Intf_Polygon2d.hxx | 82 + src/Intf/Intf_SectionLine.cdl | 129 - src/Intf/Intf_SectionLine.cxx | 6 +- src/Intf/Intf_SectionLine.hxx | 118 + src/Intf/Intf_SectionPoint.cdl | 175 - src/Intf/Intf_SectionPoint.cxx | 4 +- src/Intf/Intf_SectionPoint.hxx | 140 + src/Intf/Intf_TangentZone.cdl | 169 - src/Intf/Intf_TangentZone.cxx | 5 +- src/Intf/Intf_TangentZone.hxx | 137 + src/Intf/Intf_Tool.cdl | 127 - src/Intf/Intf_Tool.cxx | 19 +- src/Intf/Intf_Tool.hxx | 105 + src/Intrv/FILES | 7 + src/Intrv/Intrv.cdl | 46 - src/Intrv/Intrv_Interval.cdl | 252 -- src/Intrv/Intrv_Interval.cxx | 5 +- src/Intrv/Intrv_Interval.hxx | 214 ++ src/Intrv/Intrv_Intervals.cdl | 81 - src/Intrv/Intrv_Intervals.cxx | 8 +- src/Intrv/Intrv_Intervals.hxx | 97 + src/Intrv/Intrv_Position.hxx | 38 + src/LDOM/FILES | 10 +- src/LProp/FILES | 10 + src/LProp/LProp.cdl | 72 - src/LProp/LProp_AnalyticCurInf.cdl | 35 - src/LProp/LProp_AnalyticCurInf.cxx | 5 +- src/LProp/LProp_AnalyticCurInf.hxx | 65 + src/LProp/LProp_BadContinuity.hxx | 37 + src/LProp/LProp_CIType.hxx | 32 + src/LProp/LProp_CLProps.cdl | 157 - src/LProp/LProp_CurAndInf.cdl | 76 - src/LProp/LProp_CurAndInf.cxx | 6 +- src/LProp/LProp_CurAndInf.hxx | 95 + src/LProp/LProp_NotDefined.hxx | 37 + src/LProp/LProp_SLProps.cdl | 224 -- src/LProp/LProp_Status.hxx | 29 + src/LProp3d/FILES | 8 + src/LProp3d/LProp3d.cdl | 44 - src/LProp3d/LProp3d_CLProps.hxx | 111 + src/LProp3d/LProp3d_CLProps_0.cxx | 42 + src/LProp3d/LProp3d_CurveTool.cdl | 62 - src/LProp3d/LProp3d_CurveTool.cxx | 7 +- src/LProp3d/LProp3d_CurveTool.hxx | 90 + src/LProp3d/LProp3d_SLProps.hxx | 145 + src/LProp3d/LProp3d_SLProps_0.cxx | 36 + src/LProp3d/LProp3d_SurfaceTool.cdl | 52 - src/LProp3d/LProp3d_SurfaceTool.cxx | 7 +- src/LProp3d/LProp3d_SurfaceTool.hxx | 83 + src/Law/FILES | 22 + src/Law/Law.cdl | 120 - src/Law/Law.cxx | 14 +- src/Law/Law.hxx | 132 + src/Law/Law_BSpFunc.cdl | 88 - src/Law/Law_BSpFunc.cxx | 9 +- src/Law/Law_BSpFunc.hxx | 109 + src/Law/Law_BSpline.cdl | 756 ---- src/Law/Law_BSpline.cxx | 13 +- src/Law/Law_BSpline.hxx | 578 +++ src/Law/Law_BSplineKnotSplitting.cdl | 96 - src/Law/Law_BSplineKnotSplitting.cxx | 9 +- src/Law/Law_BSplineKnotSplitting.hxx | 108 + src/Law/Law_Composite.cdl | 125 - src/Law/Law_Composite.cxx | 11 +- src/Law/Law_Composite.hxx | 136 + src/Law/Law_Constant.cdl | 76 - src/Law/Law_Constant.cxx | 6 +- src/Law/Law_Constant.hxx | 96 + src/Law/Law_Function.cdl | 88 - src/Law/Law_Function.cxx | 4 +- src/Law/Law_Function.hxx | 99 + src/Law/Law_Interpol.cdl | 79 - src/Law/Law_Interpol.cxx | 7 +- src/Law/Law_Interpol.hxx | 105 + src/Law/Law_Interpolate.cdl | 136 - src/Law/Law_Interpolate.cxx | 11 +- src/Law/Law_Interpolate.hxx | 119 + src/Law/Law_Linear.cdl | 90 - src/Law/Law_Linear.cxx | 6 +- src/Law/Law_Linear.hxx | 110 + src/Law/Law_S.cdl | 46 - src/Law/Law_S.cxx | 7 +- src/Law/Law_S.hxx | 80 + src/LibCtl/FILES | 2 - src/LibCtl/LibCtl.cdl | 84 - src/LibCtl/LibCtl_Library.cdl | 188 - src/LocOpe/FILES | 68 +- src/LocOpe/LocOpe.cdl | 140 - src/LocOpe/LocOpe.cxx | 22 +- src/LocOpe/LocOpe.hxx | 121 + src/LocOpe/LocOpe_BuildShape.cdl | 58 - src/LocOpe/LocOpe_BuildShape.cxx | 42 +- src/LocOpe/LocOpe_BuildShape.hxx | 74 + src/LocOpe/LocOpe_BuildWires.cdl | 74 - src/LocOpe/LocOpe_BuildWires.cxx | 23 +- src/LocOpe/LocOpe_BuildWires.hxx | 73 + src/LocOpe/LocOpe_CSIntersector.cdl | 210 -- src/LocOpe/LocOpe_CSIntersector.cxx | 19 +- src/LocOpe/LocOpe_CSIntersector.hxx | 167 + src/LocOpe/LocOpe_CurveShapeIntersector.cdl | 187 - src/LocOpe/LocOpe_CurveShapeIntersector.cxx | 14 +- src/LocOpe/LocOpe_CurveShapeIntersector.hxx | 151 + src/LocOpe/LocOpe_DPrism.cdl | 138 - src/LocOpe/LocOpe_DPrism.cxx | 70 +- src/LocOpe/LocOpe_DPrism.hxx | 110 + src/LocOpe/LocOpe_FindEdges.cdl | 99 - src/LocOpe/LocOpe_FindEdges.cxx | 31 +- src/LocOpe/LocOpe_FindEdges.hxx | 89 + src/LocOpe/LocOpe_FindEdgesInFace.cdl | 89 - src/LocOpe/LocOpe_FindEdgesInFace.cxx | 33 +- src/LocOpe/LocOpe_FindEdgesInFace.hxx | 87 + src/LocOpe/LocOpe_GeneratedShape.cdl | 63 - src/LocOpe/LocOpe_GeneratedShape.cxx | 7 +- src/LocOpe/LocOpe_GeneratedShape.hxx | 79 + src/LocOpe/LocOpe_Generator.cdl | 126 - src/LocOpe/LocOpe_Generator.cxx | 70 +- src/LocOpe/LocOpe_Generator.hxx | 98 + src/LocOpe/LocOpe_GluedShape.cdl | 92 - src/LocOpe/LocOpe_GluedShape.cxx | 20 +- src/LocOpe/LocOpe_GluedShape.hxx | 94 + src/LocOpe/LocOpe_Gluer.cdl | 157 - src/LocOpe/LocOpe_Gluer.cxx | 48 +- src/LocOpe/LocOpe_Gluer.hxx | 113 + src/LocOpe/LocOpe_HBuilder.cdl | 46 - src/LocOpe/LocOpe_HBuilder.cxx | 5 +- src/LocOpe/LocOpe_HBuilder.hxx | 68 + src/LocOpe/LocOpe_LinearForm.cdl | 126 - src/LocOpe/LocOpe_LinearForm.cxx | 58 +- src/LocOpe/LocOpe_LinearForm.hxx | 101 + src/LocOpe/LocOpe_Operation.hxx | 28 + src/LocOpe/LocOpe_Pipe.cdl | 116 - src/LocOpe/LocOpe_Pipe.cxx | 57 +- src/LocOpe/LocOpe_Pipe.hxx | 95 + src/LocOpe/LocOpe_PntFace.cdl | 99 - src/LocOpe/LocOpe_PntFace.cxx | 5 +- src/LocOpe/LocOpe_PntFace.hxx | 89 + src/LocOpe/LocOpe_Prism.cdl | 124 - src/LocOpe/LocOpe_Prism.cxx | 33 +- src/LocOpe/LocOpe_Prism.hxx | 102 + src/LocOpe/LocOpe_Revol.cdl | 131 - src/LocOpe/LocOpe_Revol.cxx | 38 +- src/LocOpe/LocOpe_Revol.hxx | 104 + src/LocOpe/LocOpe_RevolutionForm.cdl | 110 - src/LocOpe/LocOpe_RevolutionForm.cxx | 37 +- src/LocOpe/LocOpe_RevolutionForm.hxx | 100 + src/LocOpe/LocOpe_SplitDrafts.cdl | 168 - src/LocOpe/LocOpe_SplitDrafts.cxx | 83 +- src/LocOpe/LocOpe_SplitDrafts.hxx | 127 + src/LocOpe/LocOpe_SplitShape.cdl | 161 - src/LocOpe/LocOpe_SplitShape.cxx | 58 +- src/LocOpe/LocOpe_SplitShape.hxx | 123 + src/LocOpe/LocOpe_Spliter.cdl | 127 - src/LocOpe/LocOpe_Spliter.cxx | 64 +- src/LocOpe/LocOpe_Spliter.hxx | 104 + src/LocOpe/LocOpe_WiresOnShape.cdl | 166 - src/LocOpe/LocOpe_WiresOnShape.cxx | 58 +- src/LocOpe/LocOpe_WiresOnShape.hxx | 136 + src/LocalAnalysis/FILES | 7 + src/LocalAnalysis/LocalAnalysis.cdl | 87 - src/LocalAnalysis/LocalAnalysis.cxx | 7 +- src/LocalAnalysis/LocalAnalysis.hxx | 78 + .../LocalAnalysis_CurveContinuity.cdl | 324 -- .../LocalAnalysis_CurveContinuity.cxx | 9 +- .../LocalAnalysis_CurveContinuity.hxx | 221 ++ .../LocalAnalysis_StatusErrorType.hxx | 30 + .../LocalAnalysis_SurfaceContinuity.cdl | 375 -- .../LocalAnalysis_SurfaceContinuity.cxx | 14 +- .../LocalAnalysis_SurfaceContinuity.hxx | 238 ++ src/MAT/FILES | 39 +- src/MAT/MAT.cdl | 81 - src/MAT/MAT_Arc.cdl | 147 - src/MAT/MAT_Arc.cxx | 6 +- src/MAT/MAT_Arc.hxx | 131 + src/MAT/MAT_BasicElt.cdl | 78 - src/MAT/MAT_BasicElt.cxx | 7 +- src/MAT/MAT_BasicElt.hxx | 92 + src/MAT/MAT_Bisector.cdl | 169 - src/MAT/MAT_Bisector.cxx | 7 +- src/MAT/MAT_Bisector.hxx | 136 + src/MAT/MAT_Edge.cdl | 88 - src/MAT/MAT_Edge.cxx | 5 +- src/MAT/MAT_Edge.hxx | 91 + src/MAT/MAT_Graph.cdl | 165 - src/MAT/MAT_Graph.cxx | 28 +- src/MAT/MAT_Graph.hxx | 143 + src/MAT/MAT_ListOfBisector.hxx | 139 + src/MAT/MAT_ListOfBisector_0.cxx | 42 + src/MAT/MAT_ListOfEdge.hxx | 139 + src/MAT/MAT_ListOfEdge_0.cxx | 42 + src/MAT/MAT_Node.cdl | 102 - src/MAT/MAT_Node.cxx | 6 +- src/MAT/MAT_Node.hxx | 103 + src/MAT/MAT_Side.hxx | 27 + src/MAT/MAT_TList.cdl | 214 -- src/MAT/MAT_TListNodeOfListOfBisector.hxx | 99 + src/MAT/MAT_TListNodeOfListOfBisector_0.cxx | 43 + src/MAT/MAT_TListNodeOfListOfEdge.hxx | 99 + src/MAT/MAT_TListNodeOfListOfEdge_0.cxx | 43 + src/MAT/MAT_Zone.cdl | 79 - src/MAT/MAT_Zone.cxx | 7 +- src/MAT/MAT_Zone.hxx | 95 + src/MAT2d/FILES | 43 +- src/MAT2d/MAT2d.cdl | 94 - src/MAT2d/MAT2d_BiInt.cdl | 45 - src/MAT2d/MAT2d_BiInt.cxx | 3 +- src/MAT2d/MAT2d_BiInt.hxx | 77 + src/MAT2d/MAT2d_Circuit.cdl | 144 - src/MAT2d/MAT2d_Circuit.cxx | 30 +- src/MAT2d/MAT2d_Circuit.hxx | 126 + src/MAT2d/MAT2d_Connexion.cdl | 141 - src/MAT2d/MAT2d_Connexion.cxx | 6 +- src/MAT2d/MAT2d_Connexion.hxx | 140 + src/MAT2d/MAT2d_CutCurve.cdl | 77 - src/MAT2d/MAT2d_CutCurve.cxx | 10 +- src/MAT2d/MAT2d_CutCurve.hxx | 95 + src/MAT2d/MAT2d_MapBiIntHasher.cdl | 36 - src/MAT2d/MAT2d_MapBiIntHasher.cxx | 4 +- src/MAT2d/MAT2d_MapBiIntHasher.hxx | 65 + src/MAT2d/MAT2d_Mat2d.cdl | 114 - src/MAT2d/MAT2d_Mat2d.cxx | 15 +- src/MAT2d/MAT2d_Mat2d.hxx | 115 + src/MAT2d/MAT2d_MiniPath.cdl | 133 - src/MAT2d/MAT2d_MiniPath.cxx | 21 +- src/MAT2d/MAT2d_MiniPath.hxx | 134 + src/MAT2d/MAT2d_SketchExplorer.cdl | 52 - src/MAT2d/MAT2d_SketchExplorer.hxx | 80 + src/MAT2d/MAT2d_Tool2d.cdl | 241 -- src/MAT2d/MAT2d_Tool2d.cxx | 52 +- src/MAT2d/MAT2d_Tool2d.hxx | 191 + src/MMgt/FILES | 2 + src/MMgt/MMgt.cdl | 28 - src/MMgt/MMgt_TShared.cdl | 55 - src/MMgt/MMgt_TShared.cxx | 5 +- src/MMgt/MMgt_TShared.hxx | 82 + src/MeshTest/FILES | 4 +- src/MeshTest/MeshTest.cdl | 36 - src/MeshTest/MeshTest.cxx | 113 +- src/MeshTest/MeshTest.hxx | 64 + src/MeshTest/MeshTest_PluginCommands.cxx | 44 +- src/MeshVS/FILES | 109 +- src/MeshVS/MeshVS.cdl | 221 -- src/MeshVS/MeshVS_ColorHasher.cdl | 28 - src/MeshVS/MeshVS_ColorHasher.cxx | 4 +- src/MeshVS/MeshVS_ColorHasher.hxx | 63 + src/MeshVS/MeshVS_DataSource.cdl | 219 -- src/MeshVS/MeshVS_DataSource.cxx | 11 +- src/MeshVS/MeshVS_DataSource.hxx | 208 ++ src/MeshVS/MeshVS_DataSource3D.cdl | 36 - src/MeshVS/MeshVS_DataSource3D.cxx | 4 +- src/MeshVS/MeshVS_DataSource3D.hxx | 71 + src/MeshVS/MeshVS_DeformedDataSource.cdl | 102 - src/MeshVS/MeshVS_DeformedDataSource.cxx | 6 +- src/MeshVS/MeshVS_DeformedDataSource.hxx | 119 + src/MeshVS/MeshVS_Drawer.cdl | 72 - src/MeshVS/MeshVS_Drawer.cxx | 7 +- src/MeshVS/MeshVS_Drawer.hxx | 118 + src/MeshVS/MeshVS_DrawerAttribute.hxx | 67 + .../MeshVS_ElementalColorPrsBuilder.cdl | 114 - .../MeshVS_ElementalColorPrsBuilder.cxx | 52 +- .../MeshVS_ElementalColorPrsBuilder.hxx | 120 + src/MeshVS/MeshVS_Mesh.cdl | 232 -- src/MeshVS/MeshVS_Mesh.cxx | 75 +- src/MeshVS/MeshVS_Mesh.hxx | 229 ++ src/MeshVS/MeshVS_MeshEntityOwner.cdl | 88 - src/MeshVS/MeshVS_MeshEntityOwner.cxx | 12 +- src/MeshVS/MeshVS_MeshEntityOwner.hxx | 104 + src/MeshVS/MeshVS_MeshOwner.cdl | 86 - src/MeshVS/MeshVS_MeshOwner.cxx | 11 +- src/MeshVS/MeshVS_MeshOwner.hxx | 105 + src/MeshVS/MeshVS_MeshPrsBuilder.cdl | 145 - src/MeshVS/MeshVS_MeshPrsBuilder.cxx | 60 +- src/MeshVS/MeshVS_MeshPrsBuilder.hxx | 113 + src/MeshVS/MeshVS_MeshPtr.hxx | 22 + src/MeshVS/MeshVS_MeshSelectionMethod.hxx | 28 + src/MeshVS/MeshVS_NodalColorPrsBuilder.cdl | 148 - src/MeshVS/MeshVS_NodalColorPrsBuilder.cxx | 64 +- src/MeshVS/MeshVS_NodalColorPrsBuilder.hxx | 153 + src/MeshVS/MeshVS_PrsBuilder.cdl | 138 - src/MeshVS/MeshVS_PrsBuilder.cxx | 10 +- src/MeshVS/MeshVS_PrsBuilder.hxx | 154 + src/MeshVS/MeshVS_TextPrsBuilder.cdl | 83 - src/MeshVS/MeshVS_TextPrsBuilder.cxx | 36 +- src/MeshVS/MeshVS_TextPrsBuilder.hxx | 93 + src/MeshVS/MeshVS_Tool.cdl | 63 - src/MeshVS/MeshVS_Tool.cxx | 11 +- src/MeshVS/MeshVS_Tool.hxx | 89 + src/MeshVS/MeshVS_VectorPrsBuilder.cdl | 134 - src/MeshVS/MeshVS_VectorPrsBuilder.cxx | 47 +- src/MeshVS/MeshVS_VectorPrsBuilder.hxx | 125 + src/Message/FILES | 35 +- src/Message/Message.cdl | 85 - src/Message/Message.cxx | 6 +- src/Message/Message.hxx | 94 + src/Message/Message_Algorithm.cdl | 232 -- src/Message/Message_Algorithm.cxx | 16 +- src/Message/Message_Algorithm.hxx | 226 ++ src/Message/Message_Gravity.hxx | 35 + src/Message/Message_Messenger.cdl | 107 - src/Message/Message_Messenger.cxx | 9 +- src/Message/Message_Messenger.hxx | 125 + src/Message/Message_Msg.cdl | 156 - src/Message/Message_Msg.hxx | 179 + src/Message/Message_MsgFile.cdl | 92 - src/Message/Message_MsgFile.hxx | 121 + src/Message/Message_Printer.cdl | 73 - src/Message/Message_Printer.cxx | 4 +- src/Message/Message_Printer.hxx | 94 + src/Message/Message_PrinterOStream.cdl | 91 - src/Message/Message_PrinterOStream.cxx | 8 +- src/Message/Message_PrinterOStream.hxx | 114 + src/Message/Message_ProgressIndicator.cdl | 190 - src/Message/Message_ProgressIndicator.cxx | 7 +- src/Message/Message_ProgressIndicator.hxx | 200 + src/Message/Message_ProgressScale.cdl | 116 - src/Message/Message_ProgressScale.cxx | 4 +- src/Message/Message_ProgressScale.hxx | 133 + src/Message/Message_ProgressSentry.cdl | 76 - src/Message/Message_ProgressSentry.cxx | 6 +- src/Message/Message_ProgressSentry.hxx | 104 + src/MoniTool/FILES | 54 +- src/MoniTool/MoniTool.cdl | 82 - src/MoniTool/MoniTool_AttrList.cdl | 129 - src/MoniTool/MoniTool_AttrList.cxx | 7 +- src/MoniTool/MoniTool_AttrList.hxx | 159 + src/MoniTool/MoniTool_CaseData.cdl | 286 -- src/MoniTool/MoniTool_CaseData.cxx | 29 +- src/MoniTool/MoniTool_CaseData.hxx | 316 ++ src/MoniTool/MoniTool_DataInfo.cdl | 35 - src/MoniTool/MoniTool_DataInfo.cxx | 4 +- src/MoniTool/MoniTool_DataInfo.hxx | 70 + src/MoniTool/MoniTool_ElemHasher.cdl | 40 - src/MoniTool/MoniTool_ElemHasher.cxx | 3 +- src/MoniTool/MoniTool_ElemHasher.hxx | 75 + src/MoniTool/MoniTool_Element.cdl | 66 - src/MoniTool/MoniTool_Element.cxx | 4 +- src/MoniTool/MoniTool_Element.hxx | 99 + src/MoniTool/MoniTool_IntVal.cdl | 36 - src/MoniTool/MoniTool_IntVal.cxx | 4 +- src/MoniTool/MoniTool_IntVal.hxx | 67 + src/MoniTool/MoniTool_MTHasher.cdl | 36 - src/MoniTool/MoniTool_MTHasher.hxx | 72 + src/MoniTool/MoniTool_OptValue.cdl | 109 - src/MoniTool/MoniTool_OptValue.cxx | 5 +- src/MoniTool/MoniTool_OptValue.hxx | 126 + src/MoniTool/MoniTool_Option.cdl | 144 - src/MoniTool/MoniTool_Option.cxx | 9 +- src/MoniTool/MoniTool_Option.hxx | 177 + src/MoniTool/MoniTool_Profile.cdl | 214 -- src/MoniTool/MoniTool_Profile.cxx | 12 +- src/MoniTool/MoniTool_Profile.hxx | 237 ++ src/MoniTool/MoniTool_RealVal.cdl | 36 - src/MoniTool/MoniTool_RealVal.cxx | 4 +- src/MoniTool/MoniTool_RealVal.hxx | 67 + src/MoniTool/MoniTool_SignShape.cdl | 36 - src/MoniTool/MoniTool_SignShape.cxx | 9 +- src/MoniTool/MoniTool_SignShape.hxx | 72 + src/MoniTool/MoniTool_SignText.cdl | 47 - src/MoniTool/MoniTool_SignText.cxx | 6 +- src/MoniTool/MoniTool_SignText.hxx | 82 + src/MoniTool/MoniTool_Stat.cdl | 104 - src/MoniTool/MoniTool_Stat.cxx | 7 +- src/MoniTool/MoniTool_Stat.hxx | 134 + src/MoniTool/MoniTool_Timer.cdl | 125 - src/MoniTool/MoniTool_Timer.cxx | 11 +- src/MoniTool/MoniTool_Timer.hxx | 145 + src/MoniTool/MoniTool_TimerSentry.cdl | 56 - src/MoniTool/MoniTool_TimerSentry.hxx | 80 + src/MoniTool/MoniTool_TransientElem.cdl | 61 - src/MoniTool/MoniTool_TransientElem.cxx | 7 +- src/MoniTool/MoniTool_TransientElem.hxx | 93 + src/MoniTool/MoniTool_TypedValue.cdl | 369 -- src/MoniTool/MoniTool_TypedValue.cxx | 16 +- src/MoniTool/MoniTool_TypedValue.hxx | 366 ++ src/MoniTool/MoniTool_ValueType.hxx | 36 + src/NCollection/FILES | 124 +- src/NLPlate/FILES | 20 +- src/NLPlate/NLPlate.cdl | 40 - src/NLPlate/NLPlate_HGPPConstraint.cdl | 151 - src/NLPlate/NLPlate_HGPPConstraint.cxx | 8 +- src/NLPlate/NLPlate_HGPPConstraint.hxx | 116 + src/NLPlate/NLPlate_HPG0Constraint.cdl | 74 - src/NLPlate/NLPlate_HPG0Constraint.cxx | 6 +- src/NLPlate/NLPlate_HPG0Constraint.hxx | 84 + src/NLPlate/NLPlate_HPG0G1Constraint.cdl | 62 - src/NLPlate/NLPlate_HPG0G1Constraint.cxx | 7 +- src/NLPlate/NLPlate_HPG0G1Constraint.hxx | 77 + src/NLPlate/NLPlate_HPG0G2Constraint.cdl | 44 - src/NLPlate/NLPlate_HPG0G2Constraint.cxx | 7 +- src/NLPlate/NLPlate_HPG0G2Constraint.hxx | 73 + src/NLPlate/NLPlate_HPG0G3Constraint.cdl | 46 - src/NLPlate/NLPlate_HPG0G3Constraint.cxx | 7 +- src/NLPlate/NLPlate_HPG0G3Constraint.hxx | 74 + src/NLPlate/NLPlate_HPG1Constraint.cdl | 80 - src/NLPlate/NLPlate_HPG1Constraint.cxx | 7 +- src/NLPlate/NLPlate_HPG1Constraint.hxx | 84 + src/NLPlate/NLPlate_HPG2Constraint.cdl | 44 - src/NLPlate/NLPlate_HPG2Constraint.cxx | 7 +- src/NLPlate/NLPlate_HPG2Constraint.hxx | 72 + src/NLPlate/NLPlate_HPG3Constraint.cdl | 46 - src/NLPlate/NLPlate_HPG3Constraint.cxx | 8 +- src/NLPlate/NLPlate_HPG3Constraint.hxx | 73 + src/NLPlate/NLPlate_NLPlate.cdl | 85 - src/NLPlate/NLPlate_NLPlate.cxx | 23 +- src/NLPlate/NLPlate_NLPlate.hxx | 105 + src/OS/FILES | 6 +- src/OSD/FILES | 110 +- src/OSD/OSD.cdl | 282 -- src/OSD/OSD.cxx | 6 +- src/OSD/OSD.hxx | 185 + src/OSD/OSD_CMPLRS.edl | 17 - src/OSD/OSD_Chronometer.cdl | 110 - src/OSD/OSD_Chronometer.cxx | 4 +- src/OSD/OSD_Chronometer.hxx | 121 + src/OSD/OSD_Directory.cdl | 55 - src/OSD/OSD_Directory.cxx | 9 +- src/OSD/OSD_Directory.hxx | 79 + src/OSD/OSD_DirectoryIterator.cdl | 97 - src/OSD/OSD_DirectoryIterator.cxx | 18 +- src/OSD/OSD_DirectoryIterator.hxx | 121 + src/OSD/OSD_Disk.cdl | 105 - src/OSD/OSD_Disk.cxx | 11 +- src/OSD/OSD_Disk.hxx | 123 + src/OSD/OSD_Environment.cdl | 103 - src/OSD/OSD_Environment.cxx | 15 +- src/OSD/OSD_Environment.hxx | 120 + src/OSD/OSD_EnvironmentIterator.cdl | 70 - src/OSD/OSD_EnvironmentIterator.cxx | 9 +- src/OSD/OSD_EnvironmentIterator.hxx | 99 + src/OSD/OSD_Error.cdl | 85 - src/OSD/OSD_Error.cxx | 8 +- src/OSD/OSD_Error.hxx | 91 + src/OSD/OSD_Exception.hxx | 35 + src/OSD/OSD_Exception_ACCESS_VIOLATION.hxx | 35 + .../OSD_Exception_ARRAY_BOUNDS_EXCEEDED.hxx | 35 + src/OSD/OSD_Exception_CTRL_BREAK.hxx | 35 + .../OSD_Exception_FLT_DENORMAL_OPERAND.hxx | 35 + src/OSD/OSD_Exception_FLT_DIVIDE_BY_ZERO.hxx | 35 + src/OSD/OSD_Exception_FLT_INEXACT_RESULT.hxx | 35 + .../OSD_Exception_FLT_INVALID_OPERATION.hxx | 35 + src/OSD/OSD_Exception_FLT_OVERFLOW.hxx | 35 + src/OSD/OSD_Exception_FLT_STACK_CHECK.hxx | 35 + src/OSD/OSD_Exception_FLT_UNDERFLOW.hxx | 35 + src/OSD/OSD_Exception_ILLEGAL_INSTRUCTION.hxx | 35 + src/OSD/OSD_Exception_INT_DIVIDE_BY_ZERO.hxx | 35 + src/OSD/OSD_Exception_INT_OVERFLOW.hxx | 35 + src/OSD/OSD_Exception_INVALID_DISPOSITION.hxx | 35 + src/OSD/OSD_Exception_IN_PAGE_ERROR.hxx | 35 + ...OSD_Exception_NONCONTINUABLE_EXCEPTION.hxx | 35 + src/OSD/OSD_Exception_PRIV_INSTRUCTION.hxx | 35 + src/OSD/OSD_Exception_STACK_OVERFLOW.hxx | 35 + src/OSD/OSD_Exception_STATUS_NO_MEMORY.hxx | 35 + src/OSD/OSD_File.cdl | 234 -- src/OSD/OSD_File.cxx | 12 +- src/OSD/OSD_File.hxx | 201 + src/OSD/OSD_FileIterator.cdl | 95 - src/OSD/OSD_FileIterator.cxx | 19 +- src/OSD/OSD_FileIterator.hxx | 121 + src/OSD/OSD_FileNode.cdl | 129 - src/OSD/OSD_FileNode.cxx | 18 +- src/OSD/OSD_FileNode.hxx | 134 + src/OSD/OSD_FromWhere.hxx | 26 + src/OSD/OSD_Host.cdl | 78 - src/OSD/OSD_Host.cxx | 9 +- src/OSD/OSD_Host.hxx | 103 + src/OSD/OSD_KindFile.hxx | 28 + src/OSD/OSD_LoadMode.hxx | 25 + src/OSD/OSD_LockType.hxx | 38 + src/OSD/OSD_OEMType.hxx | 36 + src/OSD/OSD_OSDError.hxx | 35 + src/OSD/OSD_OpenMode.hxx | 26 + src/OSD/OSD_Path.cdl | 284 -- src/OSD/OSD_Path.cxx | 9 +- src/OSD/OSD_Path.hxx | 250 ++ src/OSD/OSD_Printer.cdl | 66 - src/OSD/OSD_Printer.cxx | 18 +- src/OSD/OSD_Printer.hxx | 92 + src/OSD/OSD_Process.cdl | 94 - src/OSD/OSD_Process.cxx | 9 +- src/OSD/OSD_Process.hxx | 108 + src/OSD/OSD_Protection.cdl | 131 - src/OSD/OSD_Protection.cxx | 6 +- src/OSD/OSD_Protection.hxx | 143 + src/OSD/OSD_SIGBUS.hxx | 35 + src/OSD/OSD_SIGHUP.hxx | 35 + src/OSD/OSD_SIGILL.hxx | 35 + src/OSD/OSD_SIGINT.hxx | 35 + src/OSD/OSD_SIGKILL.hxx | 35 + src/OSD/OSD_SIGQUIT.hxx | 35 + src/OSD/OSD_SIGSEGV.hxx | 35 + src/OSD/OSD_SIGSYS.hxx | 35 + src/OSD/OSD_SharedLibrary.cdl | 114 - src/OSD/OSD_SharedLibrary.cxx | 10 +- src/OSD/OSD_SharedLibrary.hxx | 127 + src/OSD/OSD_Signal.hxx | 35 + src/OSD/OSD_SingleProtection.hxx | 43 + src/OSD/OSD_SysType.hxx | 41 + src/OSD/OSD_Thread.cdl | 108 - src/OSD/OSD_Thread.cxx | 4 +- src/OSD/OSD_Thread.hxx | 145 + src/OSD/OSD_Timer.cdl | 82 - src/OSD/OSD_Timer.cxx | 2 +- src/OSD/OSD_Timer.hxx | 102 + src/OSD/OSD_WhoAmI.hxx | 40 + src/OSD/OSD_signal.cxx | 3 +- src/OSD/OSD_signal_WNT.cxx | 3 +- src/OpenGl/FILES | 245 +- src/OpenGl/OpenGl_CMPLRS.edl | 25 - src/PCDM/FILES | 28 +- src/PCDM/PCDM.cdl | 111 - src/PCDM/PCDM.cxx | 21 +- src/PCDM/PCDM.hxx | 98 + src/PCDM/PCDM_BaseDriverPointer.hxx | 23 + src/PCDM/PCDM_Document.cdl | 23 - src/PCDM/PCDM_Document.cxx | 3 +- src/PCDM/PCDM_Document.hxx | 59 + src/PCDM/PCDM_DriverError.hxx | 37 + src/PCDM/PCDM_ReadWriter.cdl | 88 - src/PCDM/PCDM_ReadWriter.cxx | 18 +- src/PCDM/PCDM_ReadWriter.hxx | 102 + src/PCDM/PCDM_ReadWriter_1.cdl | 61 - src/PCDM/PCDM_ReadWriter_1.cxx | 29 +- src/PCDM/PCDM_ReadWriter_1.hxx | 90 + src/PCDM/PCDM_Reader.cdl | 49 - src/PCDM/PCDM_Reader.cxx | 7 +- src/PCDM/PCDM_Reader.hxx | 74 + src/PCDM/PCDM_ReaderStatus.hxx | 47 + src/PCDM/PCDM_Reference.cdl | 36 - src/PCDM/PCDM_Reference.cxx | 4 +- src/PCDM/PCDM_Reference.hxx | 73 + src/PCDM/PCDM_ReferenceIterator.cdl | 58 - src/PCDM/PCDM_ReferenceIterator.cxx | 16 +- src/PCDM/PCDM_ReferenceIterator.hxx | 87 + src/PCDM/PCDM_RetrievalDriver.cdl | 100 - src/PCDM/PCDM_RetrievalDriver.cxx | 29 +- src/PCDM/PCDM_RetrievalDriver.hxx | 108 + src/PCDM/PCDM_StorageDriver.cdl | 96 - src/PCDM/PCDM_StorageDriver.cxx | 27 +- src/PCDM/PCDM_StorageDriver.hxx | 117 + src/PCDM/PCDM_StoreStatus.hxx | 32 + src/PCDM/PCDM_TypeOfFileDriver.hxx | 28 + src/PCDM/PCDM_Writer.cdl | 28 - src/PCDM/PCDM_Writer.cxx | 7 +- src/PCDM/PCDM_Writer.hxx | 64 + src/PLib/FILES | 15 +- src/PLib/PLib.cdl | 494 --- src/PLib/PLib.cxx | 14 +- src/PLib/PLib.hxx | 359 ++ src/PLib/PLib_Base.cdl | 81 - src/PLib/PLib_Base.cxx | 4 +- src/PLib/PLib_Base.hxx | 92 + src/PLib/PLib_CMPLRS.edl | 25 - src/PLib/PLib_DoubleJacobiPolynomial.cdl | 79 - src/PLib/PLib_DoubleJacobiPolynomial.cxx | 6 +- src/PLib/PLib_DoubleJacobiPolynomial.hxx | 95 + src/PLib/PLib_HermitJacobi.cdl | 170 - src/PLib/PLib_HermitJacobi.cxx | 9 +- src/PLib/PLib_HermitJacobi.hxx | 148 + src/PLib/PLib_JacobiPolynomial.cdl | 222 -- src/PLib/PLib_JacobiPolynomial.cxx | 8 +- src/PLib/PLib_JacobiPolynomial.hxx | 183 + src/Plate/FILES | 43 +- src/Plate/Plate.cdl | 59 - src/Plate/Plate_D1.cdl | 44 - src/Plate/Plate_D1.cxx | 6 +- src/Plate/Plate_D1.hxx | 75 + src/Plate/Plate_D2.cdl | 35 - src/Plate/Plate_D2.cxx | 6 +- src/Plate/Plate_D2.hxx | 71 + src/Plate/Plate_D3.cdl | 36 - src/Plate/Plate_D3.cxx | 6 +- src/Plate/Plate_D3.hxx | 72 + src/Plate/Plate_FreeGtoCConstraint.cdl | 89 - src/Plate/Plate_FreeGtoCConstraint.cxx | 20 +- src/Plate/Plate_FreeGtoCConstraint.hxx | 89 + .../Plate_GlobalTranslationConstraint.cdl | 46 - .../Plate_GlobalTranslationConstraint.cxx | 4 +- .../Plate_GlobalTranslationConstraint.hxx | 66 + src/Plate/Plate_GtoCConstraint.cdl | 112 - src/Plate/Plate_GtoCConstraint.cxx | 13 +- src/Plate/Plate_GtoCConstraint.hxx | 92 + src/Plate/Plate_LineConstraint.cdl | 43 - src/Plate/Plate_LineConstraint.cxx | 6 +- src/Plate/Plate_LineConstraint.hxx | 68 + src/Plate/Plate_LinearScalarConstraint.cdl | 86 - src/Plate/Plate_LinearScalarConstraint.cxx | 7 +- src/Plate/Plate_LinearScalarConstraint.hxx | 95 + src/Plate/Plate_LinearXYZConstraint.cdl | 83 - src/Plate/Plate_LinearXYZConstraint.cxx | 5 +- src/Plate/Plate_LinearXYZConstraint.hxx | 94 + src/Plate/Plate_PinpointConstraint.cdl | 53 - src/Plate/Plate_PinpointConstraint.cxx | 5 +- src/Plate/Plate_PinpointConstraint.hxx | 79 + src/Plate/Plate_PlaneConstraint.cdl | 40 - src/Plate/Plate_PlaneConstraint.cxx | 7 +- src/Plate/Plate_PlaneConstraint.hxx | 68 + src/Plate/Plate_Plate.cdl | 154 - src/Plate/Plate_Plate.cxx | 19 +- src/Plate/Plate_Plate.hxx | 178 + src/Plate/Plate_SampledCurveConstraint.cdl | 47 - src/Plate/Plate_SampledCurveConstraint.cxx | 5 +- src/Plate/Plate_SampledCurveConstraint.hxx | 68 + src/Plugin/FILES | 5 +- src/Plugin/Plugin.cdl | 51 - src/Plugin/Plugin.cxx | 10 +- src/Plugin/Plugin.hxx | 76 + src/Plugin/Plugin_Failure.hxx | 37 + src/Poly/FILES | 42 +- src/Poly/Poly.cdl | 165 - src/Poly/Poly.cxx | 18 +- src/Poly/Poly.hxx | 156 + src/Poly/Poly_Connect.cdl | 142 - src/Poly/Poly_Connect.cxx | 7 +- src/Poly/Poly_Connect.hxx | 166 + src/Poly/Poly_Polygon2D.cdl | 79 - src/Poly/Poly_Polygon2D.cxx | 6 +- src/Poly/Poly_Polygon2D.hxx | 107 + src/Poly/Poly_Polygon3D.cdl | 95 - src/Poly/Poly_Polygon3D.cxx | 6 +- src/Poly/Poly_Polygon3D.hxx | 118 + src/Poly/Poly_PolygonOnTriangulation.cdl | 103 - src/Poly/Poly_PolygonOnTriangulation.cxx | 6 +- src/Poly/Poly_PolygonOnTriangulation.hxx | 128 + src/Poly/Poly_Triangle.cdl | 73 - src/Poly/Poly_Triangle.cxx | 5 +- src/Poly/Poly_Triangle.hxx | 100 + src/Poly/Poly_Triangulation.cdl | 190 - src/Poly/Poly_Triangulation.cxx | 8 +- src/Poly/Poly_Triangulation.hxx | 191 + src/Precision/FILES | 3 + src/Precision/Precision.cdl | 343 -- src/Precision/Precision.cxx | 2 +- src/Precision/Precision.hxx | 364 ++ src/ProjLib/FILES | 36 +- src/ProjLib/ProjLib.cdl | 194 - src/ProjLib/ProjLib.cxx | 28 +- src/ProjLib/ProjLib.hxx | 170 + src/ProjLib/ProjLib_CompProjectedCurve.cdl | 228 -- src/ProjLib/ProjLib_CompProjectedCurve.cxx | 28 +- src/ProjLib/ProjLib_CompProjectedCurve.hxx | 196 + src/ProjLib/ProjLib_ComputeApprox.cdl | 49 - src/ProjLib/ProjLib_ComputeApprox.hxx | 78 + .../ProjLib_ComputeApproxOnPolarSurface.cdl | 88 - .../ProjLib_ComputeApproxOnPolarSurface.hxx | 92 + src/ProjLib/ProjLib_Cone.cdl | 85 - src/ProjLib/ProjLib_Cone.cxx | 16 +- src/ProjLib/ProjLib_Cone.hxx | 91 + src/ProjLib/ProjLib_Cylinder.cdl | 89 - src/ProjLib/ProjLib_Cylinder.cxx | 17 +- src/ProjLib/ProjLib_Cylinder.hxx | 94 + src/ProjLib/ProjLib_HCompProjectedCurve.hxx | 87 + src/ProjLib/ProjLib_HCompProjectedCurve_0.cxx | 42 + src/ProjLib/ProjLib_HProjectedCurve.hxx | 87 + src/ProjLib/ProjLib_HProjectedCurve_0.cxx | 42 + src/ProjLib/ProjLib_Plane.cdl | 99 - src/ProjLib/ProjLib_Plane.cxx | 10 +- src/ProjLib/ProjLib_Plane.hxx | 100 + src/ProjLib/ProjLib_PrjFunc.cdl | 80 - src/ProjLib/ProjLib_PrjFunc.cxx | 10 +- src/ProjLib/ProjLib_PrjFunc.hxx | 103 + src/ProjLib/ProjLib_PrjResolve.cdl | 69 - src/ProjLib/ProjLib_PrjResolve.cxx | 11 +- src/ProjLib/ProjLib_PrjResolve.hxx | 90 + src/ProjLib/ProjLib_ProjectOnPlane.cdl | 312 -- src/ProjLib/ProjLib_ProjectOnPlane.hxx | 233 ++ src/ProjLib/ProjLib_ProjectOnSurface.cdl | 62 - src/ProjLib/ProjLib_ProjectOnSurface.cxx | 21 +- src/ProjLib/ProjLib_ProjectOnSurface.hxx | 88 + src/ProjLib/ProjLib_ProjectedCurve.cdl | 283 -- src/ProjLib/ProjLib_ProjectedCurve.hxx | 216 ++ src/ProjLib/ProjLib_Projector.cdl | 166 - src/ProjLib/ProjLib_Projector.cxx | 20 +- src/ProjLib/ProjLib_Projector.hxx | 144 + src/ProjLib/ProjLib_Sphere.cdl | 87 - src/ProjLib/ProjLib_Sphere.cxx | 19 +- src/ProjLib/ProjLib_Sphere.hxx | 93 + src/ProjLib/ProjLib_Torus.cdl | 81 - src/ProjLib/ProjLib_Torus.cxx | 14 +- src/ProjLib/ProjLib_Torus.hxx | 88 + src/Prs3d/FILES | 57 +- src/Prs3d/Prs3d.cdl | 163 - src/Prs3d/Prs3d.cxx | 4 +- src/Prs3d/Prs3d.hxx | 127 + src/Prs3d/Prs3d_Arrow.cdl | 59 - src/Prs3d/Prs3d_Arrow.cxx | 11 +- src/Prs3d/Prs3d_Arrow.hxx | 82 + src/Prs3d/Prs3d_ArrowAspect.cdl | 76 - src/Prs3d/Prs3d_ArrowAspect.cxx | 7 +- src/Prs3d/Prs3d_ArrowAspect.hxx | 102 + src/Prs3d/Prs3d_BasicAspect.cdl | 25 - src/Prs3d/Prs3d_BasicAspect.cxx | 4 +- src/Prs3d/Prs3d_BasicAspect.hxx | 60 + src/Prs3d/Prs3d_DatumAspect.cdl | 68 - src/Prs3d/Prs3d_DatumAspect.cxx | 5 +- src/Prs3d/Prs3d_DatumAspect.hxx | 107 + src/Prs3d/Prs3d_DimensionArrowOrientation.hxx | 32 + src/Prs3d/Prs3d_DimensionAspect.cdl | 160 - src/Prs3d/Prs3d_DimensionAspect.hxx | 167 + .../Prs3d_DimensionTextHorizontalPosition.hxx | 34 + .../Prs3d_DimensionTextVerticalPosition.hxx | 32 + src/Prs3d/Prs3d_InvalidAngle.hxx | 37 + src/Prs3d/Prs3d_IsoAspect.cdl | 62 - src/Prs3d/Prs3d_IsoAspect.cxx | 5 +- src/Prs3d/Prs3d_IsoAspect.hxx | 85 + src/Prs3d/Prs3d_LineAspect.cdl | 85 - src/Prs3d/Prs3d_LineAspect.cxx | 6 +- src/Prs3d/Prs3d_LineAspect.hxx | 104 + src/Prs3d/Prs3d_PlaneAspect.cdl | 105 - src/Prs3d/Prs3d_PlaneAspect.cxx | 5 +- src/Prs3d/Prs3d_PlaneAspect.hxx | 143 + src/Prs3d/Prs3d_PlaneSet.cdl | 47 - src/Prs3d/Prs3d_PlaneSet.cxx | 8 +- src/Prs3d/Prs3d_PlaneSet.hxx | 82 + src/Prs3d/Prs3d_PointAspect.cdl | 94 - src/Prs3d/Prs3d_PointAspect.cxx | 6 +- src/Prs3d/Prs3d_PointAspect.hxx | 103 + src/Prs3d/Prs3d_Presentation.cdl | 104 - src/Prs3d/Prs3d_Presentation.cxx | 30 +- src/Prs3d/Prs3d_Presentation.hxx | 116 + src/Prs3d/Prs3d_Projector.cdl | 55 - src/Prs3d/Prs3d_Projector.cxx | 10 +- src/Prs3d/Prs3d_Projector.hxx | 83 + src/Prs3d/Prs3d_Root.cdl | 39 - src/Prs3d/Prs3d_Root.cxx | 5 +- src/Prs3d/Prs3d_Root.hxx | 71 + src/Prs3d/Prs3d_ShadingAspect.cdl | 90 - src/Prs3d/Prs3d_ShadingAspect.cxx | 8 +- src/Prs3d/Prs3d_ShadingAspect.hxx | 105 + src/Prs3d/Prs3d_ShapeTool.cdl | 91 - src/Prs3d/Prs3d_ShapeTool.cxx | 33 +- src/Prs3d/Prs3d_ShapeTool.hxx | 129 + src/Prs3d/Prs3d_Text.cdl | 57 - src/Prs3d/Prs3d_Text.cxx | 8 +- src/Prs3d/Prs3d_Text.hxx | 85 + src/Prs3d/Prs3d_TextAspect.cdl | 123 - src/Prs3d/Prs3d_TextAspect.cxx | 7 +- src/Prs3d/Prs3d_TextAspect.hxx | 151 + src/Prs3d/Prs3d_TypeOfHLR.hxx | 33 + src/Prs3d/Prs3d_TypeOfLinePicking.hxx | 27 + src/Prs3d/Prs3d_VertexDrawMode.hxx | 31 + src/PrsMgr/FILES | 20 +- src/PrsMgr/PrsMgr.cdl | 71 - src/PrsMgr/PrsMgr_ModedPresentation.cdl | 43 - src/PrsMgr/PrsMgr_ModedPresentation.cxx | 4 +- src/PrsMgr/PrsMgr_ModedPresentation.hxx | 69 + src/PrsMgr/PrsMgr_PresentableObject.cdl | 353 -- src/PrsMgr/PrsMgr_PresentableObject.cxx | 17 +- src/PrsMgr/PrsMgr_PresentableObject.hxx | 302 ++ .../PrsMgr_PresentableObjectPointer.hxx | 23 + src/PrsMgr/PrsMgr_Presentation.cdl | 195 - src/PrsMgr/PrsMgr_Presentation.cxx | 17 +- src/PrsMgr/PrsMgr_Presentation.hxx | 155 + src/PrsMgr/PrsMgr_Presentation3d.hxx | 25 + src/PrsMgr/PrsMgr_PresentationManager.cdl | 262 -- src/PrsMgr/PrsMgr_PresentationManager.cxx | 13 +- src/PrsMgr/PrsMgr_PresentationManager.hxx | 191 + src/PrsMgr/PrsMgr_PresentationManager3d.hxx | 25 + src/PrsMgr/PrsMgr_PresentationPointer.hxx | 23 + src/PrsMgr/PrsMgr_Prs.cdl | 78 - src/PrsMgr/PrsMgr_Prs.cxx | 13 +- src/PrsMgr/PrsMgr_Prs.hxx | 89 + src/PrsMgr/PrsMgr_TypeOfPresentation3d.hxx | 32 + src/QABugs/FILES | 9 +- src/QABugs/QABugs.cdl | 50 - src/QABugs/QABugs.hxx | 101 + src/QABugs/QABugs_CMPLRS.edl | 24 - src/QABugs/QABugs_MyText.cdl | 46 - src/QABugs/QABugs_MyText.cxx | 17 +- src/QABugs/QABugs_MyText.hxx | 82 + src/QABugs/QABugs_PresentableObject.cdl | 36 - src/QABugs/QABugs_PresentableObject.cxx | 17 +- src/QABugs/QABugs_PresentableObject.hxx | 69 + src/QADNaming/FILES | 6 +- src/QADNaming/QADNaming.cdl | 73 - src/QADNaming/QADNaming.cxx | 22 +- src/QADNaming/QADNaming.hxx | 95 + src/QADraw/FILES | 3 +- src/QADraw/QADraw.cdl | 29 - src/QADraw/QADraw.hxx | 65 + src/QADraw/QADraw_CMPLRS.edl | 23 - src/QANCollection/FILES | 18 +- src/QANCollection/QANCollection.cdl | 39 - src/QANCollection/QANCollection.hxx | 67 + src/QANewBRepNaming/FILES | 42 + src/QANewBRepNaming/QANewBRepNaming.cdl | 155 - src/QANewBRepNaming/QANewBRepNaming.cxx | 13 +- src/QANewBRepNaming/QANewBRepNaming.hxx | 113 + .../QANewBRepNaming_BooleanOperation.cdl | 72 - .../QANewBRepNaming_BooleanOperation.cxx | 12 +- .../QANewBRepNaming_BooleanOperation.hxx | 89 + .../QANewBRepNaming_BooleanOperationFeat.cdl | 141 - .../QANewBRepNaming_BooleanOperationFeat.cxx | 59 +- .../QANewBRepNaming_BooleanOperationFeat.hxx | 140 + src/QANewBRepNaming/QANewBRepNaming_Box.cdl | 57 - src/QANewBRepNaming/QANewBRepNaming_Box.cxx | 8 +- src/QANewBRepNaming/QANewBRepNaming_Box.hxx | 88 + .../QANewBRepNaming_Chamfer.cdl | 52 - .../QANewBRepNaming_Chamfer.cxx | 11 +- .../QANewBRepNaming_Chamfer.hxx | 78 + .../QANewBRepNaming_Common.cdl | 33 - .../QANewBRepNaming_Common.cxx | 17 +- .../QANewBRepNaming_Common.hxx | 65 + src/QANewBRepNaming/QANewBRepNaming_Cut.cdl | 33 - src/QANewBRepNaming/QANewBRepNaming_Cut.cxx | 22 +- src/QANewBRepNaming/QANewBRepNaming_Cut.hxx | 65 + .../QANewBRepNaming_Cylinder.cdl | 68 - .../QANewBRepNaming_Cylinder.cxx | 8 +- .../QANewBRepNaming_Cylinder.hxx | 89 + .../QANewBRepNaming_Fillet.cdl | 74 - .../QANewBRepNaming_Fillet.cxx | 28 +- .../QANewBRepNaming_Fillet.hxx | 94 + src/QANewBRepNaming/QANewBRepNaming_Fuse.cdl | 47 - src/QANewBRepNaming/QANewBRepNaming_Fuse.cxx | 14 +- src/QANewBRepNaming/QANewBRepNaming_Fuse.hxx | 65 + .../QANewBRepNaming_Gluing.cdl | 115 - .../QANewBRepNaming_Gluing.cxx | 45 +- .../QANewBRepNaming_Gluing.hxx | 121 + .../QANewBRepNaming_ImportShape.cdl | 66 - .../QANewBRepNaming_ImportShape.cxx | 43 +- .../QANewBRepNaming_ImportShape.hxx | 92 + .../QANewBRepNaming_Intersection.cdl | 33 - .../QANewBRepNaming_Intersection.cxx | 11 +- .../QANewBRepNaming_Intersection.hxx | 65 + .../QANewBRepNaming_Limitation.cdl | 56 - .../QANewBRepNaming_Limitation.cxx | 27 +- .../QANewBRepNaming_Limitation.hxx | 82 + .../QANewBRepNaming_Loader.cdl | 157 - .../QANewBRepNaming_Loader.cxx | 28 +- .../QANewBRepNaming_Loader.hxx | 125 + .../QANewBRepNaming_LoaderParent.cdl | 35 - .../QANewBRepNaming_LoaderParent.cxx | 27 +- .../QANewBRepNaming_LoaderParent.hxx | 65 + src/QANewBRepNaming/QANewBRepNaming_Prism.cdl | 65 - src/QANewBRepNaming/QANewBRepNaming_Prism.cxx | 20 +- src/QANewBRepNaming/QANewBRepNaming_Prism.hxx | 88 + src/QANewBRepNaming/QANewBRepNaming_Revol.cdl | 62 - src/QANewBRepNaming/QANewBRepNaming_Revol.cxx | 25 +- src/QANewBRepNaming/QANewBRepNaming_Revol.hxx | 85 + .../QANewBRepNaming_Sphere.cdl | 74 - .../QANewBRepNaming_Sphere.cxx | 20 +- .../QANewBRepNaming_Sphere.hxx | 97 + .../QANewBRepNaming_TopNaming.cdl | 40 - .../QANewBRepNaming_TopNaming.cxx | 6 +- .../QANewBRepNaming_TopNaming.hxx | 68 + .../QANewBRepNaming_TypeOfPrimitive3D.hxx | 27 + src/QANewDBRepNaming/FILES | 4 +- src/QANewDBRepNaming/QANewDBRepNaming.cdl | 39 - src/QANewDBRepNaming/QANewDBRepNaming.cxx | 56 +- src/QANewDBRepNaming/QANewDBRepNaming.hxx | 64 + .../QANewDBRepNaming_FeatureCommands.cxx | 89 +- .../QANewDBRepNaming_PrimitiveCommands.cxx | 64 +- src/QANewModTopOpe/FILES | 19 +- src/QANewModTopOpe/QANewModTopOpe.cdl | 93 - src/QANewModTopOpe/QANewModTopOpe.cxx | 34 +- src/QANewModTopOpe/QANewModTopOpe.hxx | 111 + .../QANewModTopOpe_CommonPtr.hxx | 22 + src/QANewModTopOpe/QANewModTopOpe_CutPtr.hxx | 22 + src/QANewModTopOpe/QANewModTopOpe_Glue.cdl | 205 - src/QANewModTopOpe/QANewModTopOpe_Glue.cxx | 14 +- src/QANewModTopOpe/QANewModTopOpe_Glue.hxx | 163 + .../QANewModTopOpe_Glue_SDFaces.cxx | 30 +- .../QANewModTopOpe_Glue_shell.cxx | 33 +- .../QANewModTopOpe_Glue_util.cxx | 15 +- .../QANewModTopOpe_Glue_vertex.cxx | 19 +- .../QANewModTopOpe_Glue_wire.cxx | 51 +- .../QANewModTopOpe_Intersection.cdl | 63 - .../QANewModTopOpe_Intersection.cxx | 30 +- .../QANewModTopOpe_Intersection.hxx | 77 + .../QANewModTopOpe_Limitation.cdl | 113 - .../QANewModTopOpe_Limitation.cxx | 14 +- .../QANewModTopOpe_Limitation.hxx | 119 + .../QANewModTopOpe_ModeOfLimitation.hxx | 27 + .../QANewModTopOpe_ReShaper.cdl | 58 - .../QANewModTopOpe_ReShaper.cxx | 13 +- .../QANewModTopOpe_ReShaper.hxx | 83 + src/QANewModTopOpe/QANewModTopOpe_Tools.cdl | 85 - src/QANewModTopOpe/QANewModTopOpe_Tools.cxx | 48 +- src/QANewModTopOpe/QANewModTopOpe_Tools.hxx | 85 + src/Quantity/FILES | 101 +- src/Quantity/Quantity.cdl | 1295 ------- src/Quantity/Quantity_AbsorbedDose.hxx | 25 + src/Quantity/Quantity_Acceleration.hxx | 25 + src/Quantity/Quantity_AcousticIntensity.hxx | 25 + src/Quantity/Quantity_Activity.hxx | 25 + src/Quantity/Quantity_Admittance.hxx | 25 + src/Quantity/Quantity_AmountOfSubstance.hxx | 25 + src/Quantity/Quantity_AngularVelocity.hxx | 25 + src/Quantity/Quantity_Area.hxx | 25 + src/Quantity/Quantity_Capacitance.hxx | 25 + src/Quantity/Quantity_Coefficient.hxx | 25 + .../Quantity_CoefficientOfExpansion.hxx | 25 + src/Quantity/Quantity_Color.cdl | 368 -- src/Quantity/Quantity_Color.cxx | 16 +- src/Quantity/Quantity_Color.hxx | 278 ++ .../Quantity_ColorDefinitionError.hxx | 37 + src/Quantity/Quantity_Concentration.hxx | 25 + src/Quantity/Quantity_Conductivity.hxx | 25 + src/Quantity/Quantity_Constant.hxx | 25 + src/Quantity/Quantity_Consumption.hxx | 25 + src/Quantity/Quantity_Content.hxx | 25 + src/Quantity/Quantity_Convert.cdl | 172 - src/Quantity/Quantity_Convert.cxx | 5 +- src/Quantity/Quantity_Convert.hxx | 89 + src/Quantity/Quantity_Date.cdl | 167 - src/Quantity/Quantity_Date.cxx | 4 +- src/Quantity/Quantity_Date.hxx | 207 ++ src/Quantity/Quantity_DateDefinitionError.hxx | 37 + src/Quantity/Quantity_Density.hxx | 25 + src/Quantity/Quantity_DoseEquivalent.hxx | 25 + src/Quantity/Quantity_ElectricCapacitance.hxx | 25 + src/Quantity/Quantity_ElectricCharge.hxx | 25 + src/Quantity/Quantity_ElectricCurrent.hxx | 25 + .../Quantity_ElectricFieldStrength.hxx | 25 + src/Quantity/Quantity_ElectricPotential.hxx | 25 + src/Quantity/Quantity_Energy.hxx | 25 + src/Quantity/Quantity_Enthalpy.hxx | 25 + src/Quantity/Quantity_Entropy.hxx | 25 + src/Quantity/Quantity_Factor.hxx | 25 + src/Quantity/Quantity_Force.hxx | 25 + src/Quantity/Quantity_Frequency.hxx | 25 + src/Quantity/Quantity_Illuminance.hxx | 25 + src/Quantity/Quantity_Impedance.hxx | 25 + src/Quantity/Quantity_Index.hxx | 25 + src/Quantity/Quantity_Inductance.hxx | 25 + src/Quantity/Quantity_KinematicViscosity.hxx | 25 + src/Quantity/Quantity_KineticMoment.hxx | 25 + src/Quantity/Quantity_Length.hxx | 25 + src/Quantity/Quantity_Luminance.hxx | 25 + src/Quantity/Quantity_LuminousEfficacity.hxx | 25 + src/Quantity/Quantity_LuminousExposition.hxx | 25 + src/Quantity/Quantity_LuminousFlux.hxx | 25 + src/Quantity/Quantity_LuminousIntensity.hxx | 25 + .../Quantity_MagneticFieldStrength.hxx | 25 + src/Quantity/Quantity_MagneticFlux.hxx | 25 + src/Quantity/Quantity_MagneticFluxDensity.hxx | 25 + src/Quantity/Quantity_Mass.hxx | 25 + src/Quantity/Quantity_MassFlow.hxx | 25 + src/Quantity/Quantity_MolarConcentration.hxx | 25 + src/Quantity/Quantity_MolarMass.hxx | 25 + src/Quantity/Quantity_MolarVolume.hxx | 25 + src/Quantity/Quantity_Molarity.hxx | 25 + src/Quantity/Quantity_MomentOfAForce.hxx | 25 + src/Quantity/Quantity_MomentOfInertia.hxx | 25 + src/Quantity/Quantity_Momentum.hxx | 25 + src/Quantity/Quantity_NameOfColor.hxx | 542 +++ src/Quantity/Quantity_Normality.hxx | 25 + src/Quantity/Quantity_Parameter.hxx | 25 + src/Quantity/Quantity_Period.cdl | 129 - src/Quantity/Quantity_Period.cxx | 6 +- src/Quantity/Quantity_Period.hxx | 167 + .../Quantity_PeriodDefinitionError.hxx | 37 + src/Quantity/Quantity_PhysicalQuantity.hxx | 93 + src/Quantity/Quantity_PlaneAngle.hxx | 25 + src/Quantity/Quantity_Power.hxx | 25 + src/Quantity/Quantity_Pressure.hxx | 25 + src/Quantity/Quantity_Quotient.hxx | 25 + src/Quantity/Quantity_Rate.hxx | 25 + src/Quantity/Quantity_Ratio.hxx | 25 + src/Quantity/Quantity_Reluctance.hxx | 25 + src/Quantity/Quantity_Resistance.hxx | 25 + src/Quantity/Quantity_Resistivity.hxx | 25 + src/Quantity/Quantity_Scalaire.hxx | 25 + src/Quantity/Quantity_SolidAngle.hxx | 25 + src/Quantity/Quantity_SoundIntensity.hxx | 25 + .../Quantity_SpecificHeatCapacity.hxx | 25 + src/Quantity/Quantity_Speed.hxx | 25 + src/Quantity/Quantity_SurfaceTension.hxx | 25 + src/Quantity/Quantity_Temperature.hxx | 25 + src/Quantity/Quantity_ThermalConductivity.hxx | 25 + src/Quantity/Quantity_Torque.hxx | 25 + src/Quantity/Quantity_TypeOfColor.hxx | 35 + src/Quantity/Quantity_Velocity.hxx | 25 + src/Quantity/Quantity_Viscosity.hxx | 25 + src/Quantity/Quantity_Volume.hxx | 25 + src/Quantity/Quantity_VolumeFlow.hxx | 25 + src/Quantity/Quantity_Weight.hxx | 25 + src/Quantity/Quantity_Work.hxx | 25 + src/RWHeaderSection/FILES | 12 + src/RWHeaderSection/RWHeaderSection.cdl | 39 - src/RWHeaderSection/RWHeaderSection.cxx | 13 +- src/RWHeaderSection/RWHeaderSection.hxx | 70 + .../RWHeaderSection_GeneralModule.cdl | 50 - .../RWHeaderSection_GeneralModule.cxx | 31 +- .../RWHeaderSection_GeneralModule.hxx | 86 + .../RWHeaderSection_RWFileDescription.cdl | 35 - .../RWHeaderSection_RWFileDescription.cxx | 8 +- .../RWHeaderSection_RWFileDescription.hxx | 68 + .../RWHeaderSection_RWFileName.cdl | 35 - .../RWHeaderSection_RWFileName.cxx | 8 +- .../RWHeaderSection_RWFileName.hxx | 68 + .../RWHeaderSection_RWFileSchema.cdl | 35 - .../RWHeaderSection_RWFileSchema.cxx | 8 +- .../RWHeaderSection_RWFileSchema.hxx | 68 + .../RWHeaderSection_ReadWriteModule.cdl | 53 - .../RWHeaderSection_ReadWriteModule.cxx | 29 +- .../RWHeaderSection_ReadWriteModule.hxx | 88 + src/RWStepAP203/FILES | 22 + src/RWStepAP203/RWStepAP203.cdl | 40 - .../RWStepAP203_RWCcDesignApproval.cdl | 47 - .../RWStepAP203_RWCcDesignApproval.cxx | 10 +- .../RWStepAP203_RWCcDesignApproval.hxx | 75 + .../RWStepAP203_RWCcDesignCertification.cdl | 47 - .../RWStepAP203_RWCcDesignCertification.cxx | 10 +- .../RWStepAP203_RWCcDesignCertification.hxx | 75 + .../RWStepAP203_RWCcDesignContract.cdl | 47 - .../RWStepAP203_RWCcDesignContract.cxx | 10 +- .../RWStepAP203_RWCcDesignContract.hxx | 75 + ...pAP203_RWCcDesignDateAndTimeAssignment.cdl | 47 - ...pAP203_RWCcDesignDateAndTimeAssignment.cxx | 10 +- ...pAP203_RWCcDesignDateAndTimeAssignment.hxx | 75 + ...cDesignPersonAndOrganizationAssignment.cdl | 47 - ...cDesignPersonAndOrganizationAssignment.cxx | 8 +- ...cDesignPersonAndOrganizationAssignment.hxx | 75 + ...AP203_RWCcDesignSecurityClassification.cdl | 47 - ...AP203_RWCcDesignSecurityClassification.cxx | 10 +- ...AP203_RWCcDesignSecurityClassification.hxx | 75 + ...AP203_RWCcDesignSpecificationReference.cdl | 47 - ...AP203_RWCcDesignSpecificationReference.cxx | 8 +- ...AP203_RWCcDesignSpecificationReference.hxx | 75 + src/RWStepAP203/RWStepAP203_RWChange.cdl | 47 - src/RWStepAP203/RWStepAP203_RWChange.cxx | 8 +- src/RWStepAP203/RWStepAP203_RWChange.hxx | 75 + .../RWStepAP203_RWChangeRequest.cdl | 47 - .../RWStepAP203_RWChangeRequest.cxx | 10 +- .../RWStepAP203_RWChangeRequest.hxx | 75 + .../RWStepAP203_RWStartRequest.cdl | 47 - .../RWStepAP203_RWStartRequest.cxx | 8 +- .../RWStepAP203_RWStartRequest.hxx | 75 + src/RWStepAP203/RWStepAP203_RWStartWork.cdl | 47 - src/RWStepAP203/RWStepAP203_RWStartWork.cxx | 8 +- src/RWStepAP203/RWStepAP203_RWStartWork.hxx | 75 + src/RWStepAP214/FILES | 59 +- src/RWStepAP214/RWStepAP214.cdl | 67 - src/RWStepAP214/RWStepAP214.cxx | 14 +- src/RWStepAP214/RWStepAP214.hxx | 116 + src/RWStepAP214/RWStepAP214_CMPLRS.edl | 28 - src/RWStepAP214/RWStepAP214_GeneralModule.cdl | 58 - src/RWStepAP214/RWStepAP214_GeneralModule.cxx | 2246 ++++++----- src/RWStepAP214/RWStepAP214_GeneralModule.hxx | 92 + ...WStepAP214_RWAppliedApprovalAssignment.cdl | 40 - ...WStepAP214_RWAppliedApprovalAssignment.cxx | 15 +- ...WStepAP214_RWAppliedApprovalAssignment.hxx | 71 + ...epAP214_RWAppliedDateAndTimeAssignment.cdl | 43 - ...epAP214_RWAppliedDateAndTimeAssignment.cxx | 17 +- ...epAP214_RWAppliedDateAndTimeAssignment.hxx | 71 + .../RWStepAP214_RWAppliedDateAssignment.cdl | 41 - .../RWStepAP214_RWAppliedDateAssignment.cxx | 17 +- .../RWStepAP214_RWAppliedDateAssignment.hxx | 71 + ...RWStepAP214_RWAppliedDocumentReference.cdl | 39 - ...RWStepAP214_RWAppliedDocumentReference.cxx | 12 +- ...RWStepAP214_RWAppliedDocumentReference.hxx | 71 + ...ppliedExternalIdentificationAssignment.cdl | 46 - ...ppliedExternalIdentificationAssignment.cxx | 12 +- ...ppliedExternalIdentificationAssignment.hxx | 74 + .../RWStepAP214_RWAppliedGroupAssignment.cdl | 46 - .../RWStepAP214_RWAppliedGroupAssignment.cxx | 10 +- .../RWStepAP214_RWAppliedGroupAssignment.hxx | 74 + ...pAP214_RWAppliedOrganizationAssignment.cdl | 38 - ...pAP214_RWAppliedOrganizationAssignment.cxx | 15 +- ...pAP214_RWAppliedOrganizationAssignment.hxx | 71 + ...AppliedPersonAndOrganizationAssignment.cdl | 40 - ...AppliedPersonAndOrganizationAssignment.cxx | 15 +- ...AppliedPersonAndOrganizationAssignment.hxx | 71 + .../RWStepAP214_RWAppliedPresentedItem.cdl | 40 - .../RWStepAP214_RWAppliedPresentedItem.cxx | 13 +- .../RWStepAP214_RWAppliedPresentedItem.hxx | 71 + ...ppliedSecurityClassificationAssignment.cdl | 41 - ...ppliedSecurityClassificationAssignment.cxx | 15 +- ...ppliedSecurityClassificationAssignment.hxx | 71 + ...WAutoDesignActualDateAndTimeAssignment.cdl | 38 - ...WAutoDesignActualDateAndTimeAssignment.cxx | 17 +- ...WAutoDesignActualDateAndTimeAssignment.hxx | 71 + ...AP214_RWAutoDesignActualDateAssignment.cdl | 38 - ...AP214_RWAutoDesignActualDateAssignment.cxx | 17 +- ...AP214_RWAutoDesignActualDateAssignment.hxx | 71 + ...epAP214_RWAutoDesignApprovalAssignment.cdl | 38 - ...epAP214_RWAutoDesignApprovalAssignment.cxx | 15 +- ...epAP214_RWAutoDesignApprovalAssignment.hxx | 71 + ...14_RWAutoDesignDateAndPersonAssignment.cdl | 38 - ...14_RWAutoDesignDateAndPersonAssignment.cxx | 17 +- ...14_RWAutoDesignDateAndPersonAssignment.hxx | 71 + ...tepAP214_RWAutoDesignDocumentReference.cdl | 38 - ...tepAP214_RWAutoDesignDocumentReference.cxx | 12 +- ...tepAP214_RWAutoDesignDocumentReference.hxx | 71 + ...WStepAP214_RWAutoDesignGroupAssignment.cdl | 38 - ...WStepAP214_RWAutoDesignGroupAssignment.cxx | 15 +- ...WStepAP214_RWAutoDesignGroupAssignment.hxx | 71 + ...AutoDesignNominalDateAndTimeAssignment.cdl | 38 - ...AutoDesignNominalDateAndTimeAssignment.cxx | 17 +- ...AutoDesignNominalDateAndTimeAssignment.hxx | 71 + ...P214_RWAutoDesignNominalDateAssignment.cdl | 38 - ...P214_RWAutoDesignNominalDateAssignment.cxx | 17 +- ...P214_RWAutoDesignNominalDateAssignment.hxx | 71 + ...214_RWAutoDesignOrganizationAssignment.cdl | 38 - ...214_RWAutoDesignOrganizationAssignment.cxx | 17 +- ...214_RWAutoDesignOrganizationAssignment.hxx | 71 + ...oDesignPersonAndOrganizationAssignment.cdl | 38 - ...oDesignPersonAndOrganizationAssignment.cxx | 17 +- ...oDesignPersonAndOrganizationAssignment.hxx | 71 + .../RWStepAP214_RWAutoDesignPresentedItem.cdl | 38 - .../RWStepAP214_RWAutoDesignPresentedItem.cxx | 13 +- .../RWStepAP214_RWAutoDesignPresentedItem.hxx | 71 + ...DesignSecurityClassificationAssignment.cdl | 38 - ...DesignSecurityClassificationAssignment.cxx | 15 +- ...DesignSecurityClassificationAssignment.hxx | 71 + src/RWStepAP214/RWStepAP214_RWClass.cdl | 46 - src/RWStepAP214/RWStepAP214_RWClass.cxx | 8 +- src/RWStepAP214/RWStepAP214_RWClass.hxx | 74 + .../RWStepAP214_RWExternallyDefinedClass.cdl | 46 - .../RWStepAP214_RWExternallyDefinedClass.cxx | 8 +- .../RWStepAP214_RWExternallyDefinedClass.hxx | 74 + ...214_RWExternallyDefinedGeneralProperty.cdl | 46 - ...214_RWExternallyDefinedGeneralProperty.cxx | 8 +- ...214_RWExternallyDefinedGeneralProperty.hxx | 74 + .../RWStepAP214_RWRepItemGroup.cdl | 46 - .../RWStepAP214_RWRepItemGroup.cxx | 8 +- .../RWStepAP214_RWRepItemGroup.hxx | 74 + .../RWStepAP214_ReadWriteModule.cdl | 57 - .../RWStepAP214_ReadWriteModule.cxx | 18 +- .../RWStepAP214_ReadWriteModule.hxx | 90 + src/RWStepBasic/FILES | 230 ++ src/RWStepBasic/RWStepBasic.cdl | 174 - src/RWStepBasic/RWStepBasic_RWAction.cdl | 47 - src/RWStepBasic/RWStepBasic_RWAction.cxx | 8 +- src/RWStepBasic/RWStepBasic_RWAction.hxx | 75 + .../RWStepBasic_RWActionAssignment.cdl | 47 - .../RWStepBasic_RWActionAssignment.cxx | 8 +- .../RWStepBasic_RWActionAssignment.hxx | 75 + .../RWStepBasic_RWActionMethod.cdl | 47 - .../RWStepBasic_RWActionMethod.cxx | 8 +- .../RWStepBasic_RWActionMethod.hxx | 75 + .../RWStepBasic_RWActionRequestAssignment.cdl | 47 - .../RWStepBasic_RWActionRequestAssignment.cxx | 8 +- .../RWStepBasic_RWActionRequestAssignment.hxx | 75 + .../RWStepBasic_RWActionRequestSolution.cdl | 47 - .../RWStepBasic_RWActionRequestSolution.cxx | 8 +- .../RWStepBasic_RWActionRequestSolution.hxx | 75 + src/RWStepBasic/RWStepBasic_RWAddress.cdl | 35 - src/RWStepBasic/RWStepBasic_RWAddress.cxx | 6 +- src/RWStepBasic/RWStepBasic_RWAddress.hxx | 68 + .../RWStepBasic_RWApplicationContext.cdl | 35 - .../RWStepBasic_RWApplicationContext.cxx | 6 +- .../RWStepBasic_RWApplicationContext.hxx | 68 + ...WStepBasic_RWApplicationContextElement.cdl | 38 - ...WStepBasic_RWApplicationContextElement.cxx | 11 +- ...WStepBasic_RWApplicationContextElement.hxx | 71 + ...pBasic_RWApplicationProtocolDefinition.cdl | 38 - ...pBasic_RWApplicationProtocolDefinition.cxx | 11 +- ...pBasic_RWApplicationProtocolDefinition.hxx | 71 + src/RWStepBasic/RWStepBasic_RWApproval.cdl | 38 - src/RWStepBasic/RWStepBasic_RWApproval.cxx | 11 +- src/RWStepBasic/RWStepBasic_RWApproval.hxx | 71 + .../RWStepBasic_RWApprovalDateTime.cdl | 38 - .../RWStepBasic_RWApprovalDateTime.cxx | 13 +- .../RWStepBasic_RWApprovalDateTime.hxx | 71 + ...StepBasic_RWApprovalPersonOrganization.cdl | 38 - ...StepBasic_RWApprovalPersonOrganization.cxx | 15 +- ...StepBasic_RWApprovalPersonOrganization.hxx | 71 + .../RWStepBasic_RWApprovalRelationship.cdl | 38 - .../RWStepBasic_RWApprovalRelationship.cxx | 11 +- .../RWStepBasic_RWApprovalRelationship.hxx | 71 + .../RWStepBasic_RWApprovalRole.cdl | 35 - .../RWStepBasic_RWApprovalRole.cxx | 6 +- .../RWStepBasic_RWApprovalRole.hxx | 68 + .../RWStepBasic_RWApprovalStatus.cdl | 35 - .../RWStepBasic_RWApprovalStatus.cxx | 6 +- .../RWStepBasic_RWApprovalStatus.hxx | 68 + .../RWStepBasic_RWCalendarDate.cdl | 35 - .../RWStepBasic_RWCalendarDate.cxx | 6 +- .../RWStepBasic_RWCalendarDate.hxx | 68 + .../RWStepBasic_RWCertification.cdl | 47 - .../RWStepBasic_RWCertification.cxx | 8 +- .../RWStepBasic_RWCertification.hxx | 75 + .../RWStepBasic_RWCertificationAssignment.cdl | 47 - .../RWStepBasic_RWCertificationAssignment.cxx | 8 +- .../RWStepBasic_RWCertificationAssignment.hxx | 75 + .../RWStepBasic_RWCertificationType.cdl | 47 - .../RWStepBasic_RWCertificationType.cxx | 8 +- .../RWStepBasic_RWCertificationType.hxx | 75 + .../RWStepBasic_RWCharacterizedObject.cdl | 46 - .../RWStepBasic_RWCharacterizedObject.cxx | 8 +- .../RWStepBasic_RWCharacterizedObject.hxx | 74 + src/RWStepBasic/RWStepBasic_RWContract.cdl | 47 - src/RWStepBasic/RWStepBasic_RWContract.cxx | 8 +- src/RWStepBasic/RWStepBasic_RWContract.hxx | 75 + .../RWStepBasic_RWContractAssignment.cdl | 47 - .../RWStepBasic_RWContractAssignment.cxx | 8 +- .../RWStepBasic_RWContractAssignment.hxx | 75 + .../RWStepBasic_RWContractType.cdl | 47 - .../RWStepBasic_RWContractType.cxx | 8 +- .../RWStepBasic_RWContractType.hxx | 75 + .../RWStepBasic_RWConversionBasedUnit.cdl | 38 - .../RWStepBasic_RWConversionBasedUnit.cxx | 13 +- .../RWStepBasic_RWConversionBasedUnit.hxx | 71 + ...Basic_RWConversionBasedUnitAndAreaUnit.cdl | 40 - ...Basic_RWConversionBasedUnitAndAreaUnit.cxx | 10 +- ...Basic_RWConversionBasedUnitAndAreaUnit.hxx | 71 + ...sic_RWConversionBasedUnitAndLengthUnit.cdl | 38 - ...sic_RWConversionBasedUnitAndLengthUnit.cxx | 17 +- ...sic_RWConversionBasedUnitAndLengthUnit.hxx | 71 + ...Basic_RWConversionBasedUnitAndMassUnit.cdl | 38 - ...Basic_RWConversionBasedUnitAndMassUnit.cxx | 13 +- ...Basic_RWConversionBasedUnitAndMassUnit.hxx | 70 + ...RWConversionBasedUnitAndPlaneAngleUnit.cdl | 38 - ...RWConversionBasedUnitAndPlaneAngleUnit.cxx | 17 +- ...RWConversionBasedUnitAndPlaneAngleUnit.hxx | 71 + ...asic_RWConversionBasedUnitAndRatioUnit.cdl | 38 - ...asic_RWConversionBasedUnitAndRatioUnit.cxx | 17 +- ...asic_RWConversionBasedUnitAndRatioUnit.hxx | 71 + ...RWConversionBasedUnitAndSolidAngleUnit.cdl | 38 - ...RWConversionBasedUnitAndSolidAngleUnit.cxx | 17 +- ...RWConversionBasedUnitAndSolidAngleUnit.hxx | 71 + ...Basic_RWConversionBasedUnitAndTimeUnit.cdl | 38 - ...Basic_RWConversionBasedUnitAndTimeUnit.cxx | 17 +- ...Basic_RWConversionBasedUnitAndTimeUnit.hxx | 71 + ...sic_RWConversionBasedUnitAndVolumeUnit.cdl | 41 - ...sic_RWConversionBasedUnitAndVolumeUnit.cxx | 10 +- ...sic_RWConversionBasedUnitAndVolumeUnit.hxx | 71 + ...Basic_RWCoordinatedUniversalTimeOffset.cdl | 35 - ...Basic_RWCoordinatedUniversalTimeOffset.cxx | 9 +- ...Basic_RWCoordinatedUniversalTimeOffset.hxx | 68 + src/RWStepBasic/RWStepBasic_RWDate.cdl | 35 - src/RWStepBasic/RWStepBasic_RWDate.cxx | 6 +- src/RWStepBasic/RWStepBasic_RWDate.hxx | 68 + src/RWStepBasic/RWStepBasic_RWDateAndTime.cdl | 38 - src/RWStepBasic/RWStepBasic_RWDateAndTime.cxx | 13 +- src/RWStepBasic/RWStepBasic_RWDateAndTime.hxx | 71 + src/RWStepBasic/RWStepBasic_RWDateRole.cdl | 35 - src/RWStepBasic/RWStepBasic_RWDateRole.cxx | 6 +- src/RWStepBasic/RWStepBasic_RWDateRole.hxx | 68 + .../RWStepBasic_RWDateTimeRole.cdl | 35 - .../RWStepBasic_RWDateTimeRole.cxx | 6 +- .../RWStepBasic_RWDateTimeRole.hxx | 68 + src/RWStepBasic/RWStepBasic_RWDerivedUnit.cdl | 38 - src/RWStepBasic/RWStepBasic_RWDerivedUnit.cxx | 13 +- src/RWStepBasic/RWStepBasic_RWDerivedUnit.hxx | 71 + .../RWStepBasic_RWDerivedUnitElement.cdl | 38 - .../RWStepBasic_RWDerivedUnitElement.cxx | 11 +- .../RWStepBasic_RWDerivedUnitElement.hxx | 71 + .../RWStepBasic_RWDimensionalExponents.cdl | 35 - .../RWStepBasic_RWDimensionalExponents.cxx | 6 +- .../RWStepBasic_RWDimensionalExponents.hxx | 68 + src/RWStepBasic/RWStepBasic_RWDocument.cdl | 46 - src/RWStepBasic/RWStepBasic_RWDocument.cxx | 8 +- src/RWStepBasic/RWStepBasic_RWDocument.hxx | 74 + .../RWStepBasic_RWDocumentFile.cdl | 46 - .../RWStepBasic_RWDocumentFile.cxx | 8 +- .../RWStepBasic_RWDocumentFile.hxx | 74 + ...StepBasic_RWDocumentProductAssociation.cdl | 46 - ...StepBasic_RWDocumentProductAssociation.cxx | 8 +- ...StepBasic_RWDocumentProductAssociation.hxx | 74 + ...StepBasic_RWDocumentProductEquivalence.cdl | 46 - ...StepBasic_RWDocumentProductEquivalence.cxx | 8 +- ...StepBasic_RWDocumentProductEquivalence.hxx | 74 + .../RWStepBasic_RWDocumentRelationship.cdl | 38 - .../RWStepBasic_RWDocumentRelationship.cxx | 10 +- .../RWStepBasic_RWDocumentRelationship.hxx | 71 + ...StepBasic_RWDocumentRepresentationType.cdl | 46 - ...StepBasic_RWDocumentRepresentationType.cxx | 8 +- ...StepBasic_RWDocumentRepresentationType.hxx | 74 + .../RWStepBasic_RWDocumentType.cdl | 38 - .../RWStepBasic_RWDocumentType.cxx | 8 +- .../RWStepBasic_RWDocumentType.hxx | 71 + .../RWStepBasic_RWDocumentUsageConstraint.cdl | 38 - .../RWStepBasic_RWDocumentUsageConstraint.cxx | 9 +- .../RWStepBasic_RWDocumentUsageConstraint.hxx | 71 + src/RWStepBasic/RWStepBasic_RWEffectivity.cdl | 38 - src/RWStepBasic/RWStepBasic_RWEffectivity.cxx | 8 +- src/RWStepBasic/RWStepBasic_RWEffectivity.hxx | 71 + .../RWStepBasic_RWEffectivityAssignment.cdl | 46 - .../RWStepBasic_RWEffectivityAssignment.cxx | 8 +- .../RWStepBasic_RWEffectivityAssignment.hxx | 74 + src/RWStepBasic/RWStepBasic_RWEulerAngles.cdl | 46 - src/RWStepBasic/RWStepBasic_RWEulerAngles.cxx | 10 +- src/RWStepBasic/RWStepBasic_RWEulerAngles.hxx | 74 + ...sic_RWExternalIdentificationAssignment.cdl | 46 - ...sic_RWExternalIdentificationAssignment.cxx | 10 +- ...sic_RWExternalIdentificationAssignment.hxx | 74 + .../RWStepBasic_RWExternalSource.cdl | 46 - .../RWStepBasic_RWExternalSource.cxx | 8 +- .../RWStepBasic_RWExternalSource.hxx | 74 + .../RWStepBasic_RWExternallyDefinedItem.cdl | 46 - .../RWStepBasic_RWExternallyDefinedItem.cxx | 8 +- .../RWStepBasic_RWExternallyDefinedItem.hxx | 74 + .../RWStepBasic_RWGeneralProperty.cdl | 46 - .../RWStepBasic_RWGeneralProperty.cxx | 8 +- .../RWStepBasic_RWGeneralProperty.hxx | 74 + src/RWStepBasic/RWStepBasic_RWGroup.cdl | 46 - src/RWStepBasic/RWStepBasic_RWGroup.cxx | 8 +- src/RWStepBasic/RWStepBasic_RWGroup.hxx | 74 + .../RWStepBasic_RWGroupAssignment.cdl | 46 - .../RWStepBasic_RWGroupAssignment.cxx | 8 +- .../RWStepBasic_RWGroupAssignment.hxx | 74 + .../RWStepBasic_RWGroupRelationship.cdl | 46 - .../RWStepBasic_RWGroupRelationship.cxx | 8 +- .../RWStepBasic_RWGroupRelationship.hxx | 74 + ...RWStepBasic_RWIdentificationAssignment.cdl | 46 - ...RWStepBasic_RWIdentificationAssignment.cxx | 8 +- ...RWStepBasic_RWIdentificationAssignment.hxx | 74 + .../RWStepBasic_RWIdentificationRole.cdl | 46 - .../RWStepBasic_RWIdentificationRole.cxx | 8 +- .../RWStepBasic_RWIdentificationRole.hxx | 74 + .../RWStepBasic_RWLengthMeasureWithUnit.cdl | 38 - .../RWStepBasic_RWLengthMeasureWithUnit.cxx | 15 +- .../RWStepBasic_RWLengthMeasureWithUnit.hxx | 71 + src/RWStepBasic/RWStepBasic_RWLengthUnit.cdl | 38 - src/RWStepBasic/RWStepBasic_RWLengthUnit.cxx | 11 +- src/RWStepBasic/RWStepBasic_RWLengthUnit.hxx | 71 + src/RWStepBasic/RWStepBasic_RWLocalTime.cdl | 38 - src/RWStepBasic/RWStepBasic_RWLocalTime.cxx | 11 +- src/RWStepBasic/RWStepBasic_RWLocalTime.hxx | 71 + .../RWStepBasic_RWMassMeasureWithUnit.cdl | 38 - .../RWStepBasic_RWMassMeasureWithUnit.cxx | 13 +- .../RWStepBasic_RWMassMeasureWithUnit.hxx | 70 + src/RWStepBasic/RWStepBasic_RWMassUnit.cdl | 46 - src/RWStepBasic/RWStepBasic_RWMassUnit.cxx | 8 +- src/RWStepBasic/RWStepBasic_RWMassUnit.hxx | 74 + .../RWStepBasic_RWMeasureWithUnit.cdl | 38 - .../RWStepBasic_RWMeasureWithUnit.cxx | 14 +- .../RWStepBasic_RWMeasureWithUnit.hxx | 71 + .../RWStepBasic_RWMechanicalContext.cdl | 38 - .../RWStepBasic_RWMechanicalContext.cxx | 11 +- .../RWStepBasic_RWMechanicalContext.hxx | 71 + .../RWStepBasic_RWNameAssignment.cdl | 46 - .../RWStepBasic_RWNameAssignment.cxx | 8 +- .../RWStepBasic_RWNameAssignment.hxx | 74 + src/RWStepBasic/RWStepBasic_RWNamedUnit.cdl | 38 - src/RWStepBasic/RWStepBasic_RWNamedUnit.cxx | 11 +- src/RWStepBasic/RWStepBasic_RWNamedUnit.hxx | 71 + src/RWStepBasic/RWStepBasic_RWObjectRole.cdl | 46 - src/RWStepBasic/RWStepBasic_RWObjectRole.cxx | 8 +- src/RWStepBasic/RWStepBasic_RWObjectRole.hxx | 74 + src/RWStepBasic/RWStepBasic_RWOrdinalDate.cdl | 35 - src/RWStepBasic/RWStepBasic_RWOrdinalDate.cxx | 6 +- src/RWStepBasic/RWStepBasic_RWOrdinalDate.hxx | 68 + .../RWStepBasic_RWOrganization.cdl | 35 - .../RWStepBasic_RWOrganization.cxx | 6 +- .../RWStepBasic_RWOrganization.hxx | 68 + .../RWStepBasic_RWOrganizationRole.cdl | 35 - .../RWStepBasic_RWOrganizationRole.cxx | 6 +- .../RWStepBasic_RWOrganizationRole.hxx | 68 + .../RWStepBasic_RWOrganizationalAddress.cdl | 38 - .../RWStepBasic_RWOrganizationalAddress.cxx | 13 +- .../RWStepBasic_RWOrganizationalAddress.hxx | 71 + src/RWStepBasic/RWStepBasic_RWPerson.cdl | 35 - src/RWStepBasic/RWStepBasic_RWPerson.cxx | 8 +- src/RWStepBasic/RWStepBasic_RWPerson.hxx | 68 + .../RWStepBasic_RWPersonAndOrganization.cdl | 38 - .../RWStepBasic_RWPersonAndOrganization.cxx | 13 +- .../RWStepBasic_RWPersonAndOrganization.hxx | 71 + ...WStepBasic_RWPersonAndOrganizationRole.cdl | 35 - ...WStepBasic_RWPersonAndOrganizationRole.cxx | 6 +- ...WStepBasic_RWPersonAndOrganizationRole.hxx | 68 + .../RWStepBasic_RWPersonalAddress.cdl | 38 - .../RWStepBasic_RWPersonalAddress.cxx | 13 +- .../RWStepBasic_RWPersonalAddress.hxx | 71 + ...WStepBasic_RWPlaneAngleMeasureWithUnit.cdl | 38 - ...WStepBasic_RWPlaneAngleMeasureWithUnit.cxx | 15 +- ...WStepBasic_RWPlaneAngleMeasureWithUnit.hxx | 71 + .../RWStepBasic_RWPlaneAngleUnit.cdl | 38 - .../RWStepBasic_RWPlaneAngleUnit.cxx | 11 +- .../RWStepBasic_RWPlaneAngleUnit.hxx | 71 + src/RWStepBasic/RWStepBasic_RWProduct.cdl | 38 - src/RWStepBasic/RWStepBasic_RWProduct.cxx | 13 +- src/RWStepBasic/RWStepBasic_RWProduct.hxx | 71 + .../RWStepBasic_RWProductCategory.cdl | 35 - .../RWStepBasic_RWProductCategory.cxx | 6 +- .../RWStepBasic_RWProductCategory.hxx | 68 + ...tepBasic_RWProductCategoryRelationship.cdl | 47 - ...tepBasic_RWProductCategoryRelationship.cxx | 8 +- ...tepBasic_RWProductCategoryRelationship.hxx | 75 + .../RWStepBasic_RWProductConceptContext.cdl | 47 - .../RWStepBasic_RWProductConceptContext.cxx | 8 +- .../RWStepBasic_RWProductConceptContext.hxx | 75 + .../RWStepBasic_RWProductContext.cdl | 38 - .../RWStepBasic_RWProductContext.cxx | 11 +- .../RWStepBasic_RWProductContext.hxx | 71 + .../RWStepBasic_RWProductDefinition.cdl | 38 - .../RWStepBasic_RWProductDefinition.cxx | 13 +- .../RWStepBasic_RWProductDefinition.hxx | 71 + ...RWStepBasic_RWProductDefinitionContext.cdl | 38 - ...RWStepBasic_RWProductDefinitionContext.cxx | 11 +- ...RWStepBasic_RWProductDefinitionContext.hxx | 71 + ...epBasic_RWProductDefinitionEffectivity.cdl | 38 - ...epBasic_RWProductDefinitionEffectivity.cxx | 8 +- ...epBasic_RWProductDefinitionEffectivity.hxx | 71 + ...StepBasic_RWProductDefinitionFormation.cdl | 38 - ...StepBasic_RWProductDefinitionFormation.cxx | 11 +- ...StepBasic_RWProductDefinitionFormation.hxx | 71 + ...ProductDefinitionFormationRelationship.cdl | 46 - ...ProductDefinitionFormationRelationship.cxx | 8 +- ...ProductDefinitionFormationRelationship.hxx | 74 + ...DefinitionFormationWithSpecifiedSource.cdl | 38 - ...DefinitionFormationWithSpecifiedSource.cxx | 14 +- ...DefinitionFormationWithSpecifiedSource.hxx | 71 + ...pBasic_RWProductDefinitionRelationship.cdl | 46 - ...pBasic_RWProductDefinitionRelationship.cxx | 8 +- ...pBasic_RWProductDefinitionRelationship.hxx | 74 + ...oductDefinitionWithAssociatedDocuments.cdl | 38 - ...oductDefinitionWithAssociatedDocuments.cxx | 18 +- ...oductDefinitionWithAssociatedDocuments.hxx | 71 + ...pBasic_RWProductRelatedProductCategory.cdl | 38 - ...pBasic_RWProductRelatedProductCategory.cxx | 13 +- ...pBasic_RWProductRelatedProductCategory.hxx | 71 + src/RWStepBasic/RWStepBasic_RWProductType.cdl | 38 - src/RWStepBasic/RWStepBasic_RWProductType.cxx | 13 +- src/RWStepBasic/RWStepBasic_RWProductType.hxx | 71 + .../RWStepBasic_RWRatioMeasureWithUnit.cdl | 38 - .../RWStepBasic_RWRatioMeasureWithUnit.cxx | 13 +- .../RWStepBasic_RWRatioMeasureWithUnit.hxx | 71 + .../RWStepBasic_RWRoleAssociation.cdl | 46 - .../RWStepBasic_RWRoleAssociation.cxx | 8 +- .../RWStepBasic_RWRoleAssociation.hxx | 74 + .../RWStepBasic_RWSecurityClassification.cdl | 38 - .../RWStepBasic_RWSecurityClassification.cxx | 11 +- .../RWStepBasic_RWSecurityClassification.hxx | 71 + ...tepBasic_RWSecurityClassificationLevel.cdl | 35 - ...tepBasic_RWSecurityClassificationLevel.cxx | 6 +- ...tepBasic_RWSecurityClassificationLevel.hxx | 68 + src/RWStepBasic/RWStepBasic_RWSiUnit.cdl | 52 - src/RWStepBasic/RWStepBasic_RWSiUnit.cxx | 9 +- src/RWStepBasic/RWStepBasic_RWSiUnit.hxx | 81 + .../RWStepBasic_RWSiUnitAndAreaUnit.cdl | 38 - .../RWStepBasic_RWSiUnitAndAreaUnit.cxx | 10 +- .../RWStepBasic_RWSiUnitAndAreaUnit.hxx | 68 + .../RWStepBasic_RWSiUnitAndLengthUnit.cdl | 35 - .../RWStepBasic_RWSiUnitAndLengthUnit.cxx | 13 +- .../RWStepBasic_RWSiUnitAndLengthUnit.hxx | 68 + .../RWStepBasic_RWSiUnitAndMassUnit.cdl | 34 - .../RWStepBasic_RWSiUnitAndMassUnit.cxx | 15 +- .../RWStepBasic_RWSiUnitAndMassUnit.hxx | 67 + .../RWStepBasic_RWSiUnitAndPlaneAngleUnit.cdl | 36 - .../RWStepBasic_RWSiUnitAndPlaneAngleUnit.cxx | 14 +- .../RWStepBasic_RWSiUnitAndPlaneAngleUnit.hxx | 68 + .../RWStepBasic_RWSiUnitAndRatioUnit.cdl | 35 - .../RWStepBasic_RWSiUnitAndRatioUnit.cxx | 14 +- .../RWStepBasic_RWSiUnitAndRatioUnit.hxx | 68 + .../RWStepBasic_RWSiUnitAndSolidAngleUnit.cdl | 35 - .../RWStepBasic_RWSiUnitAndSolidAngleUnit.cxx | 14 +- .../RWStepBasic_RWSiUnitAndSolidAngleUnit.hxx | 68 + ...WSiUnitAndThermodynamicTemperatureUnit.cdl | 34 - ...WSiUnitAndThermodynamicTemperatureUnit.cxx | 15 +- ...WSiUnitAndThermodynamicTemperatureUnit.hxx | 67 + .../RWStepBasic_RWSiUnitAndTimeUnit.cdl | 35 - .../RWStepBasic_RWSiUnitAndTimeUnit.cxx | 15 +- .../RWStepBasic_RWSiUnitAndTimeUnit.hxx | 68 + .../RWStepBasic_RWSiUnitAndVolumeUnit.cdl | 37 - .../RWStepBasic_RWSiUnitAndVolumeUnit.cxx | 9 +- .../RWStepBasic_RWSiUnitAndVolumeUnit.hxx | 68 + ...WStepBasic_RWSolidAngleMeasureWithUnit.cdl | 38 - ...WStepBasic_RWSolidAngleMeasureWithUnit.cxx | 15 +- ...WStepBasic_RWSolidAngleMeasureWithUnit.hxx | 71 + .../RWStepBasic_RWSolidAngleUnit.cdl | 38 - .../RWStepBasic_RWSolidAngleUnit.cxx | 11 +- .../RWStepBasic_RWSolidAngleUnit.hxx | 71 + ...epBasic_RWThermodynamicTemperatureUnit.cdl | 46 - ...epBasic_RWThermodynamicTemperatureUnit.cxx | 8 +- ...epBasic_RWThermodynamicTemperatureUnit.hxx | 74 + ...StepBasic_RWUncertaintyMeasureWithUnit.cdl | 38 - ...StepBasic_RWUncertaintyMeasureWithUnit.cxx | 16 +- ...StepBasic_RWUncertaintyMeasureWithUnit.hxx | 71 + .../RWStepBasic_RWVersionedActionRequest.cdl | 47 - .../RWStepBasic_RWVersionedActionRequest.cxx | 8 +- .../RWStepBasic_RWVersionedActionRequest.hxx | 75 + .../RWStepBasic_RWWeekOfYearAndDayDate.cdl | 35 - .../RWStepBasic_RWWeekOfYearAndDayDate.cxx | 6 +- .../RWStepBasic_RWWeekOfYearAndDayDate.hxx | 68 + src/RWStepDimTol/FILES | 52 + src/RWStepDimTol/RWStepDimTol.cdl | 64 - .../RWStepDimTol_RWAngularityTolerance.cdl | 46 - .../RWStepDimTol_RWAngularityTolerance.cxx | 12 +- .../RWStepDimTol_RWAngularityTolerance.hxx | 74 + ...RWStepDimTol_RWCircularRunoutTolerance.cdl | 46 - ...RWStepDimTol_RWCircularRunoutTolerance.cxx | 12 +- ...RWStepDimTol_RWCircularRunoutTolerance.hxx | 74 + .../RWStepDimTol_RWCoaxialityTolerance.cdl | 46 - .../RWStepDimTol_RWCoaxialityTolerance.cxx | 12 +- .../RWStepDimTol_RWCoaxialityTolerance.hxx | 74 + .../RWStepDimTol_RWCommonDatum.cdl | 46 - .../RWStepDimTol_RWCommonDatum.cxx | 8 +- .../RWStepDimTol_RWCommonDatum.hxx | 74 + .../RWStepDimTol_RWConcentricityTolerance.cdl | 46 - .../RWStepDimTol_RWConcentricityTolerance.cxx | 12 +- .../RWStepDimTol_RWConcentricityTolerance.hxx | 74 + .../RWStepDimTol_RWCylindricityTolerance.cdl | 46 - .../RWStepDimTol_RWCylindricityTolerance.cxx | 8 +- .../RWStepDimTol_RWCylindricityTolerance.hxx | 74 + src/RWStepDimTol/RWStepDimTol_RWDatum.cdl | 46 - src/RWStepDimTol/RWStepDimTol_RWDatum.cxx | 8 +- src/RWStepDimTol/RWStepDimTol_RWDatum.hxx | 74 + .../RWStepDimTol_RWDatumFeature.cdl | 46 - .../RWStepDimTol_RWDatumFeature.cxx | 8 +- .../RWStepDimTol_RWDatumFeature.hxx | 74 + .../RWStepDimTol_RWDatumReference.cdl | 46 - .../RWStepDimTol_RWDatumReference.cxx | 8 +- .../RWStepDimTol_RWDatumReference.hxx | 74 + .../RWStepDimTol_RWDatumTarget.cdl | 46 - .../RWStepDimTol_RWDatumTarget.cxx | 8 +- .../RWStepDimTol_RWDatumTarget.hxx | 74 + .../RWStepDimTol_RWFlatnessTolerance.cdl | 46 - .../RWStepDimTol_RWFlatnessTolerance.cxx | 8 +- .../RWStepDimTol_RWFlatnessTolerance.hxx | 74 + ...ndGeoTolWthDatRefAndModGeoTolAndPosTol.cdl | 41 - ...ndGeoTolWthDatRefAndModGeoTolAndPosTol.cxx | 15 +- ...ndGeoTolWthDatRefAndModGeoTolAndPosTol.hxx | 70 + .../RWStepDimTol_RWGeometricTolerance.cdl | 46 - .../RWStepDimTol_RWGeometricTolerance.cxx | 8 +- .../RWStepDimTol_RWGeometricTolerance.hxx | 74 + ...imTol_RWGeometricToleranceRelationship.cdl | 46 - ...imTol_RWGeometricToleranceRelationship.cxx | 8 +- ...imTol_RWGeometricToleranceRelationship.hxx | 74 + ...RWGeometricToleranceWithDatumReference.cdl | 46 - ...RWGeometricToleranceWithDatumReference.cxx | 12 +- ...RWGeometricToleranceWithDatumReference.hxx | 74 + .../RWStepDimTol_RWLineProfileTolerance.cdl | 46 - .../RWStepDimTol_RWLineProfileTolerance.cxx | 8 +- .../RWStepDimTol_RWLineProfileTolerance.hxx | 74 + ...tepDimTol_RWModifiedGeometricTolerance.cdl | 46 - ...tepDimTol_RWModifiedGeometricTolerance.cxx | 8 +- ...tepDimTol_RWModifiedGeometricTolerance.hxx | 74 + .../RWStepDimTol_RWParallelismTolerance.cdl | 46 - .../RWStepDimTol_RWParallelismTolerance.cxx | 12 +- .../RWStepDimTol_RWParallelismTolerance.hxx | 74 + ...StepDimTol_RWPerpendicularityTolerance.cdl | 46 - ...StepDimTol_RWPerpendicularityTolerance.cxx | 12 +- ...StepDimTol_RWPerpendicularityTolerance.hxx | 74 + ...WStepDimTol_RWPlacedDatumTargetFeature.cdl | 46 - ...WStepDimTol_RWPlacedDatumTargetFeature.cxx | 8 +- ...WStepDimTol_RWPlacedDatumTargetFeature.hxx | 74 + .../RWStepDimTol_RWPositionTolerance.cdl | 46 - .../RWStepDimTol_RWPositionTolerance.cxx | 8 +- .../RWStepDimTol_RWPositionTolerance.hxx | 74 + .../RWStepDimTol_RWRoundnessTolerance.cdl | 46 - .../RWStepDimTol_RWRoundnessTolerance.cxx | 8 +- .../RWStepDimTol_RWRoundnessTolerance.hxx | 74 + .../RWStepDimTol_RWStraightnessTolerance.cdl | 46 - .../RWStepDimTol_RWStraightnessTolerance.cxx | 8 +- .../RWStepDimTol_RWStraightnessTolerance.hxx | 74 + ...RWStepDimTol_RWSurfaceProfileTolerance.cdl | 46 - ...RWStepDimTol_RWSurfaceProfileTolerance.cxx | 8 +- ...RWStepDimTol_RWSurfaceProfileTolerance.hxx | 74 + .../RWStepDimTol_RWSymmetryTolerance.cdl | 46 - .../RWStepDimTol_RWSymmetryTolerance.cxx | 12 +- .../RWStepDimTol_RWSymmetryTolerance.hxx | 74 + .../RWStepDimTol_RWTotalRunoutTolerance.cdl | 46 - .../RWStepDimTol_RWTotalRunoutTolerance.cxx | 12 +- .../RWStepDimTol_RWTotalRunoutTolerance.hxx | 74 + src/RWStepElement/FILES | 30 + src/RWStepElement/RWStepElement.cdl | 40 - ...ent_RWAnalysisItemWithinRepresentation.cdl | 46 - ...ent_RWAnalysisItemWithinRepresentation.cxx | 10 +- ...ent_RWAnalysisItemWithinRepresentation.hxx | 74 + ...StepElement_RWCurve3dElementDescriptor.cdl | 46 - ...StepElement_RWCurve3dElementDescriptor.cxx | 8 +- ...StepElement_RWCurve3dElementDescriptor.hxx | 74 + ...Element_RWCurveElementEndReleasePacket.cdl | 46 - ...Element_RWCurveElementEndReleasePacket.cxx | 8 +- ...Element_RWCurveElementEndReleasePacket.hxx | 74 + ...lement_RWCurveElementSectionDefinition.cdl | 46 - ...lement_RWCurveElementSectionDefinition.cxx | 8 +- ...lement_RWCurveElementSectionDefinition.hxx | 74 + ...WCurveElementSectionDerivedDefinitions.cdl | 46 - ...WCurveElementSectionDerivedDefinitions.cxx | 16 +- ...WCurveElementSectionDerivedDefinitions.hxx | 74 + .../RWStepElement_RWElementDescriptor.cdl | 46 - .../RWStepElement_RWElementDescriptor.cxx | 8 +- .../RWStepElement_RWElementDescriptor.hxx | 74 + .../RWStepElement_RWElementMaterial.cdl | 46 - .../RWStepElement_RWElementMaterial.cxx | 8 +- .../RWStepElement_RWElementMaterial.hxx | 74 + ...epElement_RWSurface3dElementDescriptor.cdl | 46 - ...epElement_RWSurface3dElementDescriptor.cxx | 8 +- ...epElement_RWSurface3dElementDescriptor.hxx | 74 + ...RWStepElement_RWSurfaceElementProperty.cdl | 46 - ...RWStepElement_RWSurfaceElementProperty.cxx | 8 +- ...RWStepElement_RWSurfaceElementProperty.hxx | 74 + .../RWStepElement_RWSurfaceSection.cdl | 46 - .../RWStepElement_RWSurfaceSection.cxx | 8 +- .../RWStepElement_RWSurfaceSection.hxx | 74 + .../RWStepElement_RWSurfaceSectionField.cdl | 46 - .../RWStepElement_RWSurfaceSectionField.cxx | 8 +- .../RWStepElement_RWSurfaceSectionField.hxx | 74 + ...pElement_RWSurfaceSectionFieldConstant.cdl | 46 - ...pElement_RWSurfaceSectionFieldConstant.cxx | 8 +- ...pElement_RWSurfaceSectionFieldConstant.hxx | 74 + ...epElement_RWSurfaceSectionFieldVarying.cdl | 46 - ...epElement_RWSurfaceSectionFieldVarying.cxx | 8 +- ...epElement_RWSurfaceSectionFieldVarying.hxx | 74 + .../RWStepElement_RWUniformSurfaceSection.cdl | 46 - .../RWStepElement_RWUniformSurfaceSection.cxx | 8 +- .../RWStepElement_RWUniformSurfaceSection.hxx | 74 + ...tepElement_RWVolume3dElementDescriptor.cdl | 46 - ...tepElement_RWVolume3dElementDescriptor.cxx | 8 +- ...tepElement_RWVolume3dElementDescriptor.hxx | 74 + src/RWStepFEA/FILES | 104 + src/RWStepFEA/RWStepFEA.cdl | 77 - ...WAlignedCurve3dElementCoordinateSystem.cdl | 46 - ...WAlignedCurve3dElementCoordinateSystem.cxx | 8 +- ...WAlignedCurve3dElementCoordinateSystem.hxx | 74 + ...lignedSurface3dElementCoordinateSystem.cdl | 46 - ...lignedSurface3dElementCoordinateSystem.cxx | 8 +- ...lignedSurface3dElementCoordinateSystem.hxx | 74 + ...bitraryVolume3dElementCoordinateSystem.cdl | 46 - ...bitraryVolume3dElementCoordinateSystem.cxx | 8 +- ...bitraryVolume3dElementCoordinateSystem.hxx | 74 + ...nstantSurface3dElementCoordinateSystem.cdl | 46 - ...nstantSurface3dElementCoordinateSystem.cxx | 8 +- ...nstantSurface3dElementCoordinateSystem.hxx | 74 + .../RWStepFEA_RWCurve3dElementProperty.cdl | 46 - .../RWStepFEA_RWCurve3dElementProperty.cxx | 14 +- .../RWStepFEA_RWCurve3dElementProperty.hxx | 74 + ...StepFEA_RWCurve3dElementRepresentation.cdl | 46 - ...StepFEA_RWCurve3dElementRepresentation.cxx | 20 +- ...StepFEA_RWCurve3dElementRepresentation.hxx | 74 + .../RWStepFEA_RWCurveElementEndOffset.cdl | 46 - .../RWStepFEA_RWCurveElementEndOffset.cxx | 10 +- .../RWStepFEA_RWCurveElementEndOffset.hxx | 74 + .../RWStepFEA_RWCurveElementEndRelease.cdl | 46 - .../RWStepFEA_RWCurveElementEndRelease.cxx | 10 +- .../RWStepFEA_RWCurveElementEndRelease.hxx | 74 + .../RWStepFEA_RWCurveElementInterval.cdl | 46 - .../RWStepFEA_RWCurveElementInterval.cxx | 10 +- .../RWStepFEA_RWCurveElementInterval.hxx | 74 + ...StepFEA_RWCurveElementIntervalConstant.cdl | 46 - ...StepFEA_RWCurveElementIntervalConstant.cxx | 10 +- ...StepFEA_RWCurveElementIntervalConstant.hxx | 74 + ..._RWCurveElementIntervalLinearlyVarying.cdl | 46 - ..._RWCurveElementIntervalLinearlyVarying.cxx | 12 +- ..._RWCurveElementIntervalLinearlyVarying.hxx | 74 + .../RWStepFEA_RWCurveElementLocation.cdl | 46 - .../RWStepFEA_RWCurveElementLocation.cxx | 8 +- .../RWStepFEA_RWCurveElementLocation.hxx | 74 + src/RWStepFEA/RWStepFEA_RWDummyNode.cdl | 46 - src/RWStepFEA/RWStepFEA_RWDummyNode.cxx | 12 +- src/RWStepFEA/RWStepFEA_RWDummyNode.hxx | 74 + ...StepFEA_RWElementGeometricRelationship.cdl | 46 - ...StepFEA_RWElementGeometricRelationship.cxx | 8 +- ...StepFEA_RWElementGeometricRelationship.hxx | 74 + src/RWStepFEA/RWStepFEA_RWElementGroup.cdl | 46 - src/RWStepFEA/RWStepFEA_RWElementGroup.cxx | 10 +- src/RWStepFEA/RWStepFEA_RWElementGroup.hxx | 74 + .../RWStepFEA_RWElementRepresentation.cdl | 46 - .../RWStepFEA_RWElementRepresentation.cxx | 12 +- .../RWStepFEA_RWElementRepresentation.hxx | 74 + src/RWStepFEA/RWStepFEA_RWFeaAreaDensity.cdl | 46 - src/RWStepFEA/RWStepFEA_RWFeaAreaDensity.cxx | 8 +- src/RWStepFEA/RWStepFEA_RWFeaAreaDensity.hxx | 74 + .../RWStepFEA_RWFeaAxis2Placement3d.cdl | 46 - .../RWStepFEA_RWFeaAxis2Placement3d.cxx | 8 +- .../RWStepFEA_RWFeaAxis2Placement3d.hxx | 74 + ...RWFeaCurveSectionGeometricRelationship.cdl | 46 - ...RWFeaCurveSectionGeometricRelationship.cxx | 10 +- ...RWFeaCurveSectionGeometricRelationship.hxx | 74 + src/RWStepFEA/RWStepFEA_RWFeaGroup.cdl | 46 - src/RWStepFEA/RWStepFEA_RWFeaGroup.cxx | 8 +- src/RWStepFEA/RWStepFEA_RWFeaGroup.hxx | 74 + .../RWStepFEA_RWFeaLinearElasticity.cdl | 46 - .../RWStepFEA_RWFeaLinearElasticity.cxx | 10 +- .../RWStepFEA_RWFeaLinearElasticity.hxx | 74 + src/RWStepFEA/RWStepFEA_RWFeaMassDensity.cdl | 46 - src/RWStepFEA/RWStepFEA_RWFeaMassDensity.cxx | 8 +- src/RWStepFEA/RWStepFEA_RWFeaMassDensity.hxx | 74 + ...EA_RWFeaMaterialPropertyRepresentation.cdl | 46 - ...EA_RWFeaMaterialPropertyRepresentation.cxx | 10 +- ...EA_RWFeaMaterialPropertyRepresentation.hxx | 74 + ...WFeaMaterialPropertyRepresentationItem.cdl | 46 - ...WFeaMaterialPropertyRepresentationItem.cxx | 8 +- ...WFeaMaterialPropertyRepresentationItem.hxx | 74 + src/RWStepFEA/RWStepFEA_RWFeaModel.cdl | 46 - src/RWStepFEA/RWStepFEA_RWFeaModel.cxx | 12 +- src/RWStepFEA/RWStepFEA_RWFeaModel.hxx | 74 + src/RWStepFEA/RWStepFEA_RWFeaModel3d.cdl | 46 - src/RWStepFEA/RWStepFEA_RWFeaModel3d.cxx | 12 +- src/RWStepFEA/RWStepFEA_RWFeaModel3d.hxx | 74 + .../RWStepFEA_RWFeaModelDefinition.cdl | 46 - .../RWStepFEA_RWFeaModelDefinition.cxx | 8 +- .../RWStepFEA_RWFeaModelDefinition.hxx | 74 + .../RWStepFEA_RWFeaMoistureAbsorption.cdl | 46 - .../RWStepFEA_RWFeaMoistureAbsorption.cxx | 8 +- .../RWStepFEA_RWFeaMoistureAbsorption.hxx | 74 + .../RWStepFEA_RWFeaParametricPoint.cdl | 46 - .../RWStepFEA_RWFeaParametricPoint.cxx | 10 +- .../RWStepFEA_RWFeaParametricPoint.hxx | 74 + .../RWStepFEA_RWFeaRepresentationItem.cdl | 46 - .../RWStepFEA_RWFeaRepresentationItem.cxx | 8 +- .../RWStepFEA_RWFeaRepresentationItem.hxx | 74 + ...antCoefficientOfLinearThermalExpansion.cdl | 46 - ...antCoefficientOfLinearThermalExpansion.cxx | 8 +- ...antCoefficientOfLinearThermalExpansion.hxx | 74 + .../RWStepFEA_RWFeaShellBendingStiffness.cdl | 46 - .../RWStepFEA_RWFeaShellBendingStiffness.cxx | 8 +- .../RWStepFEA_RWFeaShellBendingStiffness.hxx | 74 + ...aShellMembraneBendingCouplingStiffness.cdl | 46 - ...aShellMembraneBendingCouplingStiffness.cxx | 8 +- ...aShellMembraneBendingCouplingStiffness.hxx | 74 + .../RWStepFEA_RWFeaShellMembraneStiffness.cdl | 46 - .../RWStepFEA_RWFeaShellMembraneStiffness.cxx | 8 +- .../RWStepFEA_RWFeaShellMembraneStiffness.hxx | 74 + .../RWStepFEA_RWFeaShellShearStiffness.cdl | 46 - .../RWStepFEA_RWFeaShellShearStiffness.cxx | 8 +- .../RWStepFEA_RWFeaShellShearStiffness.hxx | 74 + ...FeaSurfaceSectionGeometricRelationship.cdl | 46 - ...FeaSurfaceSectionGeometricRelationship.cxx | 10 +- ...FeaSurfaceSectionGeometricRelationship.hxx | 74 + ...ialCoefficientOfLinearThermalExpansion.cdl | 46 - ...ialCoefficientOfLinearThermalExpansion.cxx | 8 +- ...ialCoefficientOfLinearThermalExpansion.hxx | 74 + .../RWStepFEA_RWFreedomAndCoefficient.cdl | 46 - .../RWStepFEA_RWFreedomAndCoefficient.cxx | 8 +- .../RWStepFEA_RWFreedomAndCoefficient.hxx | 74 + src/RWStepFEA/RWStepFEA_RWFreedomsList.cdl | 46 - src/RWStepFEA/RWStepFEA_RWFreedomsList.cxx | 10 +- src/RWStepFEA/RWStepFEA_RWFreedomsList.hxx | 74 + src/RWStepFEA/RWStepFEA_RWGeometricNode.cdl | 46 - src/RWStepFEA/RWStepFEA_RWGeometricNode.cxx | 12 +- src/RWStepFEA/RWStepFEA_RWGeometricNode.hxx | 74 + src/RWStepFEA/RWStepFEA_RWNode.cdl | 46 - src/RWStepFEA/RWStepFEA_RWNode.cxx | 12 +- src/RWStepFEA/RWStepFEA_RWNode.hxx | 74 + src/RWStepFEA/RWStepFEA_RWNodeDefinition.cdl | 46 - src/RWStepFEA/RWStepFEA_RWNodeDefinition.cxx | 8 +- src/RWStepFEA/RWStepFEA_RWNodeDefinition.hxx | 74 + src/RWStepFEA/RWStepFEA_RWNodeGroup.cdl | 46 - src/RWStepFEA/RWStepFEA_RWNodeGroup.cxx | 10 +- src/RWStepFEA/RWStepFEA_RWNodeGroup.hxx | 74 + .../RWStepFEA_RWNodeRepresentation.cdl | 46 - .../RWStepFEA_RWNodeRepresentation.cxx | 12 +- .../RWStepFEA_RWNodeRepresentation.hxx | 74 + src/RWStepFEA/RWStepFEA_RWNodeSet.cdl | 46 - src/RWStepFEA/RWStepFEA_RWNodeSet.cxx | 8 +- src/RWStepFEA/RWStepFEA_RWNodeSet.hxx | 74 + ...FEA_RWNodeWithSolutionCoordinateSystem.cdl | 46 - ...FEA_RWNodeWithSolutionCoordinateSystem.cxx | 12 +- ...FEA_RWNodeWithSolutionCoordinateSystem.hxx | 74 + src/RWStepFEA/RWStepFEA_RWNodeWithVector.cdl | 46 - src/RWStepFEA/RWStepFEA_RWNodeWithVector.cxx | 12 +- src/RWStepFEA/RWStepFEA_RWNodeWithVector.hxx | 74 + ...etricCurve3dElementCoordinateDirection.cdl | 46 - ...etricCurve3dElementCoordinateDirection.cxx | 8 +- ...etricCurve3dElementCoordinateDirection.hxx | 74 + ...rametricCurve3dElementCoordinateSystem.cdl | 46 - ...rametricCurve3dElementCoordinateSystem.cxx | 8 +- ...rametricCurve3dElementCoordinateSystem.hxx | 74 + ...metricSurface3dElementCoordinateSystem.cdl | 46 - ...metricSurface3dElementCoordinateSystem.cxx | 8 +- ...metricSurface3dElementCoordinateSystem.hxx | 74 + ...epFEA_RWSurface3dElementRepresentation.cdl | 46 - ...epFEA_RWSurface3dElementRepresentation.cxx | 20 +- ...epFEA_RWSurface3dElementRepresentation.hxx | 74 + ...tepFEA_RWVolume3dElementRepresentation.cdl | 46 - ...tepFEA_RWVolume3dElementRepresentation.cxx | 18 +- ...tepFEA_RWVolume3dElementRepresentation.hxx | 74 + src/RWStepGeom/FILES | 165 +- src/RWStepGeom/RWStepGeom.cdl | 121 - src/RWStepGeom/RWStepGeom_CMPLRS.edl | 28 - .../RWStepGeom_RWAxis1Placement.cdl | 38 - .../RWStepGeom_RWAxis1Placement.cxx | 13 +- .../RWStepGeom_RWAxis1Placement.hxx | 71 + .../RWStepGeom_RWAxis2Placement2d.cdl | 38 - .../RWStepGeom_RWAxis2Placement2d.cxx | 13 +- .../RWStepGeom_RWAxis2Placement2d.hxx | 71 + .../RWStepGeom_RWAxis2Placement3d.cdl | 38 - .../RWStepGeom_RWAxis2Placement3d.cxx | 13 +- .../RWStepGeom_RWAxis2Placement3d.hxx | 71 + src/RWStepGeom/RWStepGeom_RWBSplineCurve.cdl | 38 - src/RWStepGeom/RWStepGeom_RWBSplineCurve.cxx | 18 +- src/RWStepGeom/RWStepGeom_RWBSplineCurve.hxx | 71 + .../RWStepGeom_RWBSplineCurveWithKnots.cdl | 41 - .../RWStepGeom_RWBSplineCurveWithKnots.cxx | 25 +- .../RWStepGeom_RWBSplineCurveWithKnots.hxx | 75 + ...eCurveWithKnotsAndRationalBSplineCurve.cdl | 41 - ...eCurveWithKnotsAndRationalBSplineCurve.cxx | 32 +- ...eCurveWithKnotsAndRationalBSplineCurve.hxx | 75 + .../RWStepGeom_RWBSplineSurface.cdl | 38 - .../RWStepGeom_RWBSplineSurface.cxx | 18 +- .../RWStepGeom_RWBSplineSurface.hxx | 71 + .../RWStepGeom_RWBSplineSurfaceWithKnots.cdl | 41 - .../RWStepGeom_RWBSplineSurfaceWithKnots.cxx | 25 +- .../RWStepGeom_RWBSplineSurfaceWithKnots.hxx | 75 + ...faceWithKnotsAndRationalBSplineSurface.cdl | 41 - ...faceWithKnotsAndRationalBSplineSurface.cxx | 32 +- ...faceWithKnotsAndRationalBSplineSurface.hxx | 75 + src/RWStepGeom/RWStepGeom_RWBezierCurve.cdl | 38 - src/RWStepGeom/RWStepGeom_RWBezierCurve.cxx | 18 +- src/RWStepGeom/RWStepGeom_RWBezierCurve.hxx | 71 + ...m_RWBezierCurveAndRationalBSplineCurve.cdl | 38 - ...m_RWBezierCurveAndRationalBSplineCurve.cxx | 24 +- ...m_RWBezierCurveAndRationalBSplineCurve.hxx | 71 + src/RWStepGeom/RWStepGeom_RWBezierSurface.cdl | 38 - src/RWStepGeom/RWStepGeom_RWBezierSurface.cxx | 18 +- src/RWStepGeom/RWStepGeom_RWBezierSurface.hxx | 71 + ...BezierSurfaceAndRationalBSplineSurface.cdl | 38 - ...BezierSurfaceAndRationalBSplineSurface.cxx | 24 +- ...BezierSurfaceAndRationalBSplineSurface.hxx | 71 + src/RWStepGeom/RWStepGeom_RWBoundaryCurve.cdl | 38 - src/RWStepGeom/RWStepGeom_RWBoundaryCurve.cxx | 15 +- src/RWStepGeom/RWStepGeom_RWBoundaryCurve.hxx | 71 + src/RWStepGeom/RWStepGeom_RWBoundedCurve.cdl | 35 - src/RWStepGeom/RWStepGeom_RWBoundedCurve.cxx | 6 +- src/RWStepGeom/RWStepGeom_RWBoundedCurve.hxx | 68 + .../RWStepGeom_RWBoundedSurface.cdl | 35 - .../RWStepGeom_RWBoundedSurface.cxx | 6 +- .../RWStepGeom_RWBoundedSurface.hxx | 68 + .../RWStepGeom_RWCartesianPoint.cdl | 35 - .../RWStepGeom_RWCartesianPoint.cxx | 10 +- .../RWStepGeom_RWCartesianPoint.hxx | 68 + ...Geom_RWCartesianTransformationOperator.cdl | 38 - ...Geom_RWCartesianTransformationOperator.cxx | 13 +- ...Geom_RWCartesianTransformationOperator.hxx | 71 + ...om_RWCartesianTransformationOperator3d.cdl | 38 - ...om_RWCartesianTransformationOperator3d.cxx | 13 +- ...om_RWCartesianTransformationOperator3d.hxx | 71 + src/RWStepGeom/RWStepGeom_RWCircle.cdl | 38 - src/RWStepGeom/RWStepGeom_RWCircle.cxx | 11 +- src/RWStepGeom/RWStepGeom_RWCircle.hxx | 71 + .../RWStepGeom_RWCompositeCurve.cdl | 38 - .../RWStepGeom_RWCompositeCurve.cxx | 15 +- .../RWStepGeom_RWCompositeCurve.hxx | 71 + .../RWStepGeom_RWCompositeCurveOnSurface.cdl | 38 - .../RWStepGeom_RWCompositeCurveOnSurface.cxx | 15 +- .../RWStepGeom_RWCompositeCurveOnSurface.hxx | 71 + .../RWStepGeom_RWCompositeCurveSegment.cdl | 38 - .../RWStepGeom_RWCompositeCurveSegment.cxx | 14 +- .../RWStepGeom_RWCompositeCurveSegment.hxx | 71 + src/RWStepGeom/RWStepGeom_RWConic.cdl | 38 - src/RWStepGeom/RWStepGeom_RWConic.cxx | 11 +- src/RWStepGeom/RWStepGeom_RWConic.hxx | 71 + .../RWStepGeom_RWConicalSurface.cdl | 38 - .../RWStepGeom_RWConicalSurface.cxx | 11 +- .../RWStepGeom_RWConicalSurface.hxx | 71 + src/RWStepGeom/RWStepGeom_RWCurve.cdl | 35 - src/RWStepGeom/RWStepGeom_RWCurve.cxx | 6 +- src/RWStepGeom/RWStepGeom_RWCurve.hxx | 68 + .../RWStepGeom_RWCurveBoundedSurface.cdl | 47 - .../RWStepGeom_RWCurveBoundedSurface.cxx | 10 +- .../RWStepGeom_RWCurveBoundedSurface.hxx | 75 + src/RWStepGeom/RWStepGeom_RWCurveReplica.cdl | 38 - src/RWStepGeom/RWStepGeom_RWCurveReplica.cxx | 13 +- src/RWStepGeom/RWStepGeom_RWCurveReplica.hxx | 71 + .../RWStepGeom_RWCylindricalSurface.cdl | 38 - .../RWStepGeom_RWCylindricalSurface.cxx | 11 +- .../RWStepGeom_RWCylindricalSurface.hxx | 71 + .../RWStepGeom_RWDegeneratePcurve.cdl | 38 - .../RWStepGeom_RWDegeneratePcurve.cxx | 13 +- .../RWStepGeom_RWDegeneratePcurve.hxx | 71 + ...RWStepGeom_RWDegenerateToroidalSurface.cdl | 38 - ...RWStepGeom_RWDegenerateToroidalSurface.cxx | 11 +- ...RWStepGeom_RWDegenerateToroidalSurface.hxx | 71 + src/RWStepGeom/RWStepGeom_RWDirection.cdl | 38 - src/RWStepGeom/RWStepGeom_RWDirection.cxx | 9 +- src/RWStepGeom/RWStepGeom_RWDirection.hxx | 72 + .../RWStepGeom_RWElementarySurface.cdl | 38 - .../RWStepGeom_RWElementarySurface.cxx | 11 +- .../RWStepGeom_RWElementarySurface.hxx | 71 + src/RWStepGeom/RWStepGeom_RWEllipse.cdl | 41 - src/RWStepGeom/RWStepGeom_RWEllipse.cxx | 12 +- src/RWStepGeom/RWStepGeom_RWEllipse.hxx | 75 + ...RWStepGeom_RWEvaluatedDegeneratePcurve.cdl | 38 - ...RWStepGeom_RWEvaluatedDegeneratePcurve.cxx | 15 +- ...RWStepGeom_RWEvaluatedDegeneratePcurve.hxx | 71 + ...GlobUnitAssCtxAndGlobUncertaintyAssCtx.cdl | 44 - ...GlobUnitAssCtxAndGlobUncertaintyAssCtx.cxx | 19 +- ...GlobUnitAssCtxAndGlobUncertaintyAssCtx.hxx | 72 + ...pGeom_RWGeometricRepresentationContext.cdl | 35 - ...pGeom_RWGeometricRepresentationContext.cxx | 6 +- ...pGeom_RWGeometricRepresentationContext.hxx | 68 + ...ionContextAndGlobalUnitAssignedContext.cdl | 38 - ...ionContextAndGlobalUnitAssignedContext.cxx | 17 +- ...ionContextAndGlobalUnitAssignedContext.hxx | 71 + ...textAndParametricRepresentationContext.cdl | 38 - ...textAndParametricRepresentationContext.cxx | 10 +- ...textAndParametricRepresentationContext.hxx | 71 + ...StepGeom_RWGeometricRepresentationItem.cdl | 35 - ...StepGeom_RWGeometricRepresentationItem.cxx | 6 +- ...StepGeom_RWGeometricRepresentationItem.hxx | 68 + src/RWStepGeom/RWStepGeom_RWHyperbola.cdl | 38 - src/RWStepGeom/RWStepGeom_RWHyperbola.cxx | 11 +- src/RWStepGeom/RWStepGeom_RWHyperbola.hxx | 71 + .../RWStepGeom_RWIntersectionCurve.cdl | 38 - .../RWStepGeom_RWIntersectionCurve.cxx | 16 +- .../RWStepGeom_RWIntersectionCurve.hxx | 71 + src/RWStepGeom/RWStepGeom_RWLine.cdl | 38 - src/RWStepGeom/RWStepGeom_RWLine.cxx | 13 +- src/RWStepGeom/RWStepGeom_RWLine.hxx | 71 + src/RWStepGeom/RWStepGeom_RWOffsetCurve3d.cdl | 38 - src/RWStepGeom/RWStepGeom_RWOffsetCurve3d.cxx | 15 +- src/RWStepGeom/RWStepGeom_RWOffsetCurve3d.hxx | 71 + src/RWStepGeom/RWStepGeom_RWOffsetSurface.cdl | 38 - src/RWStepGeom/RWStepGeom_RWOffsetSurface.cxx | 13 +- src/RWStepGeom/RWStepGeom_RWOffsetSurface.hxx | 71 + .../RWStepGeom_RWOrientedSurface.cdl | 46 - .../RWStepGeom_RWOrientedSurface.cxx | 8 +- .../RWStepGeom_RWOrientedSurface.hxx | 74 + .../RWStepGeom_RWOuterBoundaryCurve.cdl | 38 - .../RWStepGeom_RWOuterBoundaryCurve.cxx | 15 +- .../RWStepGeom_RWOuterBoundaryCurve.hxx | 71 + src/RWStepGeom/RWStepGeom_RWParabola.cdl | 38 - src/RWStepGeom/RWStepGeom_RWParabola.cxx | 11 +- src/RWStepGeom/RWStepGeom_RWParabola.hxx | 71 + src/RWStepGeom/RWStepGeom_RWPcurve.cdl | 38 - src/RWStepGeom/RWStepGeom_RWPcurve.cxx | 13 +- src/RWStepGeom/RWStepGeom_RWPcurve.hxx | 71 + src/RWStepGeom/RWStepGeom_RWPlacement.cdl | 38 - src/RWStepGeom/RWStepGeom_RWPlacement.cxx | 11 +- src/RWStepGeom/RWStepGeom_RWPlacement.hxx | 71 + src/RWStepGeom/RWStepGeom_RWPlane.cdl | 38 - src/RWStepGeom/RWStepGeom_RWPlane.cxx | 11 +- src/RWStepGeom/RWStepGeom_RWPlane.hxx | 71 + src/RWStepGeom/RWStepGeom_RWPoint.cdl | 35 - src/RWStepGeom/RWStepGeom_RWPoint.cxx | 6 +- src/RWStepGeom/RWStepGeom_RWPoint.hxx | 68 + src/RWStepGeom/RWStepGeom_RWPointOnCurve.cdl | 38 - src/RWStepGeom/RWStepGeom_RWPointOnCurve.cxx | 11 +- src/RWStepGeom/RWStepGeom_RWPointOnCurve.hxx | 71 + .../RWStepGeom_RWPointOnSurface.cdl | 38 - .../RWStepGeom_RWPointOnSurface.cxx | 11 +- .../RWStepGeom_RWPointOnSurface.hxx | 71 + src/RWStepGeom/RWStepGeom_RWPointReplica.cdl | 38 - src/RWStepGeom/RWStepGeom_RWPointReplica.cxx | 13 +- src/RWStepGeom/RWStepGeom_RWPointReplica.hxx | 71 + src/RWStepGeom/RWStepGeom_RWPolyline.cdl | 38 - src/RWStepGeom/RWStepGeom_RWPolyline.cxx | 13 +- src/RWStepGeom/RWStepGeom_RWPolyline.hxx | 71 + .../RWStepGeom_RWQuasiUniformCurve.cdl | 38 - .../RWStepGeom_RWQuasiUniformCurve.cxx | 18 +- .../RWStepGeom_RWQuasiUniformCurve.hxx | 71 + ...asiUniformCurveAndRationalBSplineCurve.cdl | 38 - ...asiUniformCurveAndRationalBSplineCurve.cxx | 24 +- ...asiUniformCurveAndRationalBSplineCurve.hxx | 71 + .../RWStepGeom_RWQuasiUniformSurface.cdl | 38 - .../RWStepGeom_RWQuasiUniformSurface.cxx | 18 +- .../RWStepGeom_RWQuasiUniformSurface.hxx | 71 + ...niformSurfaceAndRationalBSplineSurface.cdl | 38 - ...niformSurfaceAndRationalBSplineSurface.cxx | 24 +- ...niformSurfaceAndRationalBSplineSurface.hxx | 71 + .../RWStepGeom_RWRationalBSplineCurve.cdl | 41 - .../RWStepGeom_RWRationalBSplineCurve.cxx | 21 +- .../RWStepGeom_RWRationalBSplineCurve.hxx | 75 + .../RWStepGeom_RWRationalBSplineSurface.cdl | 41 - .../RWStepGeom_RWRationalBSplineSurface.cxx | 21 +- .../RWStepGeom_RWRationalBSplineSurface.hxx | 75 + ...StepGeom_RWRectangularCompositeSurface.cdl | 38 - ...StepGeom_RWRectangularCompositeSurface.cxx | 13 +- ...StepGeom_RWRectangularCompositeSurface.hxx | 71 + ...RWStepGeom_RWRectangularTrimmedSurface.cdl | 38 - ...RWStepGeom_RWRectangularTrimmedSurface.cxx | 11 +- ...RWStepGeom_RWRectangularTrimmedSurface.hxx | 71 + ..._RWReparametrisedCompositeCurveSegment.cdl | 38 - ..._RWReparametrisedCompositeCurveSegment.cxx | 14 +- ..._RWReparametrisedCompositeCurveSegment.hxx | 71 + src/RWStepGeom/RWStepGeom_RWSeamCurve.cdl | 38 - src/RWStepGeom/RWStepGeom_RWSeamCurve.cxx | 14 +- src/RWStepGeom/RWStepGeom_RWSeamCurve.hxx | 71 + .../RWStepGeom_RWSphericalSurface.cdl | 38 - .../RWStepGeom_RWSphericalSurface.cxx | 11 +- .../RWStepGeom_RWSphericalSurface.hxx | 71 + src/RWStepGeom/RWStepGeom_RWSurface.cdl | 35 - src/RWStepGeom/RWStepGeom_RWSurface.cxx | 6 +- src/RWStepGeom/RWStepGeom_RWSurface.hxx | 68 + src/RWStepGeom/RWStepGeom_RWSurfaceCurve.cdl | 38 - src/RWStepGeom/RWStepGeom_RWSurfaceCurve.cxx | 14 +- src/RWStepGeom/RWStepGeom_RWSurfaceCurve.hxx | 71 + ...StepGeom_RWSurfaceCurveAndBoundedCurve.cdl | 39 - ...StepGeom_RWSurfaceCurveAndBoundedCurve.cxx | 16 +- ...StepGeom_RWSurfaceCurveAndBoundedCurve.hxx | 71 + .../RWStepGeom_RWSurfaceOfLinearExtrusion.cdl | 38 - .../RWStepGeom_RWSurfaceOfLinearExtrusion.cxx | 13 +- .../RWStepGeom_RWSurfaceOfLinearExtrusion.hxx | 71 + .../RWStepGeom_RWSurfaceOfRevolution.cdl | 38 - .../RWStepGeom_RWSurfaceOfRevolution.cxx | 13 +- .../RWStepGeom_RWSurfaceOfRevolution.hxx | 71 + src/RWStepGeom/RWStepGeom_RWSurfacePatch.cdl | 38 - src/RWStepGeom/RWStepGeom_RWSurfacePatch.cxx | 16 +- src/RWStepGeom/RWStepGeom_RWSurfacePatch.hxx | 71 + .../RWStepGeom_RWSurfaceReplica.cdl | 38 - .../RWStepGeom_RWSurfaceReplica.cxx | 13 +- .../RWStepGeom_RWSurfaceReplica.hxx | 71 + src/RWStepGeom/RWStepGeom_RWSweptSurface.cdl | 38 - src/RWStepGeom/RWStepGeom_RWSweptSurface.cxx | 11 +- src/RWStepGeom/RWStepGeom_RWSweptSurface.hxx | 71 + .../RWStepGeom_RWToroidalSurface.cdl | 41 - .../RWStepGeom_RWToroidalSurface.cxx | 12 +- .../RWStepGeom_RWToroidalSurface.hxx | 75 + src/RWStepGeom/RWStepGeom_RWTrimmedCurve.cdl | 38 - src/RWStepGeom/RWStepGeom_RWTrimmedCurve.cxx | 20 +- src/RWStepGeom/RWStepGeom_RWTrimmedCurve.hxx | 71 + src/RWStepGeom/RWStepGeom_RWUniformCurve.cdl | 38 - src/RWStepGeom/RWStepGeom_RWUniformCurve.cxx | 18 +- src/RWStepGeom/RWStepGeom_RWUniformCurve.hxx | 71 + ..._RWUniformCurveAndRationalBSplineCurve.cdl | 38 - ..._RWUniformCurveAndRationalBSplineCurve.cxx | 24 +- ..._RWUniformCurveAndRationalBSplineCurve.hxx | 71 + .../RWStepGeom_RWUniformSurface.cdl | 38 - .../RWStepGeom_RWUniformSurface.cxx | 18 +- .../RWStepGeom_RWUniformSurface.hxx | 71 + ...niformSurfaceAndRationalBSplineSurface.cdl | 38 - ...niformSurfaceAndRationalBSplineSurface.cxx | 24 +- ...niformSurfaceAndRationalBSplineSurface.hxx | 71 + src/RWStepGeom/RWStepGeom_RWVector.cdl | 41 - src/RWStepGeom/RWStepGeom_RWVector.cxx | 12 +- src/RWStepGeom/RWStepGeom_RWVector.hxx | 75 + src/RWStepRepr/FILES | 88 + src/RWStepRepr/RWStepRepr.cdl | 101 - .../RWStepRepr_RWAssemblyComponentUsage.cdl | 46 - .../RWStepRepr_RWAssemblyComponentUsage.cxx | 11 +- .../RWStepRepr_RWAssemblyComponentUsage.hxx | 74 + ...epr_RWAssemblyComponentUsageSubstitute.cdl | 38 - ...epr_RWAssemblyComponentUsageSubstitute.cxx | 11 +- ...epr_RWAssemblyComponentUsageSubstitute.hxx | 71 + .../RWStepRepr_RWCompositeShapeAspect.cdl | 46 - .../RWStepRepr_RWCompositeShapeAspect.cxx | 8 +- .../RWStepRepr_RWCompositeShapeAspect.hxx | 74 + ...WStepRepr_RWCompoundRepresentationItem.cdl | 40 - ...WStepRepr_RWCompoundRepresentationItem.cxx | 11 +- ...WStepRepr_RWCompoundRepresentationItem.hxx | 72 + .../RWStepRepr_RWConfigurationDesign.cdl | 47 - .../RWStepRepr_RWConfigurationDesign.cxx | 8 +- .../RWStepRepr_RWConfigurationDesign.hxx | 75 + .../RWStepRepr_RWConfigurationEffectivity.cdl | 47 - .../RWStepRepr_RWConfigurationEffectivity.cxx | 8 +- .../RWStepRepr_RWConfigurationEffectivity.hxx | 75 + .../RWStepRepr_RWConfigurationItem.cdl | 47 - .../RWStepRepr_RWConfigurationItem.cxx | 8 +- .../RWStepRepr_RWConfigurationItem.hxx | 75 + .../RWStepRepr_RWDataEnvironment.cdl | 46 - .../RWStepRepr_RWDataEnvironment.cxx | 8 +- .../RWStepRepr_RWDataEnvironment.hxx | 74 + ...WStepRepr_RWDefinitionalRepresentation.cdl | 38 - ...WStepRepr_RWDefinitionalRepresentation.cxx | 15 +- ...WStepRepr_RWDefinitionalRepresentation.hxx | 71 + .../RWStepRepr_RWDerivedShapeAspect.cdl | 46 - .../RWStepRepr_RWDerivedShapeAspect.cxx | 8 +- .../RWStepRepr_RWDerivedShapeAspect.hxx | 74 + ...epRepr_RWDescriptiveRepresentationItem.cdl | 35 - ...epRepr_RWDescriptiveRepresentationItem.cxx | 8 +- ...epRepr_RWDescriptiveRepresentationItem.hxx | 68 + src/RWStepRepr/RWStepRepr_RWExtension.cdl | 46 - src/RWStepRepr/RWStepRepr_RWExtension.cxx | 8 +- src/RWStepRepr/RWStepRepr_RWExtension.hxx | 74 + ...pr_RWFunctionallyDefinedTransformation.cdl | 35 - ...pr_RWFunctionallyDefinedTransformation.cxx | 6 +- ...pr_RWFunctionallyDefinedTransformation.hxx | 68 + ...epr_RWGlobalUncertaintyAssignedContext.cdl | 38 - ...epr_RWGlobalUncertaintyAssignedContext.cxx | 13 +- ...epr_RWGlobalUncertaintyAssignedContext.hxx | 71 + ...RWStepRepr_RWGlobalUnitAssignedContext.cdl | 38 - ...RWStepRepr_RWGlobalUnitAssignedContext.cxx | 13 +- ...RWStepRepr_RWGlobalUnitAssignedContext.hxx | 71 + ...RWStepRepr_RWItemDefinedTransformation.cdl | 38 - ...RWStepRepr_RWItemDefinedTransformation.cxx | 12 +- ...RWStepRepr_RWItemDefinedTransformation.hxx | 71 + .../RWStepRepr_RWMakeFromUsageOption.cdl | 46 - .../RWStepRepr_RWMakeFromUsageOption.cxx | 10 +- .../RWStepRepr_RWMakeFromUsageOption.hxx | 74 + src/RWStepRepr/RWStepRepr_RWMappedItem.cdl | 38 - src/RWStepRepr/RWStepRepr_RWMappedItem.cxx | 13 +- src/RWStepRepr/RWStepRepr_RWMappedItem.hxx | 71 + .../RWStepRepr_RWMaterialDesignation.cdl | 38 - .../RWStepRepr_RWMaterialDesignation.cxx | 11 +- .../RWStepRepr_RWMaterialDesignation.hxx | 71 + .../RWStepRepr_RWMaterialProperty.cdl | 46 - .../RWStepRepr_RWMaterialProperty.cxx | 8 +- .../RWStepRepr_RWMaterialProperty.hxx | 74 + ...pRepr_RWMaterialPropertyRepresentation.cdl | 46 - ...pRepr_RWMaterialPropertyRepresentation.cxx | 10 +- ...pRepr_RWMaterialPropertyRepresentation.hxx | 74 + ...RWStepRepr_RWMeasureRepresentationItem.cdl | 38 - ...RWStepRepr_RWMeasureRepresentationItem.cxx | 19 +- ...RWStepRepr_RWMeasureRepresentationItem.hxx | 71 + ...Repr_RWParametricRepresentationContext.cdl | 35 - ...Repr_RWParametricRepresentationContext.cxx | 6 +- ...Repr_RWParametricRepresentationContext.hxx | 68 + .../RWStepRepr_RWProductConcept.cdl | 47 - .../RWStepRepr_RWProductConcept.cxx | 8 +- .../RWStepRepr_RWProductConcept.hxx | 75 + .../RWStepRepr_RWProductDefinitionShape.cdl | 46 - .../RWStepRepr_RWProductDefinitionShape.cxx | 8 +- .../RWStepRepr_RWProductDefinitionShape.hxx | 74 + .../RWStepRepr_RWPropertyDefinition.cdl | 46 - .../RWStepRepr_RWPropertyDefinition.cxx | 8 +- .../RWStepRepr_RWPropertyDefinition.hxx | 74 + ...pRepr_RWPropertyDefinitionRelationship.cdl | 46 - ...pRepr_RWPropertyDefinitionRelationship.cxx | 8 +- ...pRepr_RWPropertyDefinitionRelationship.hxx | 74 + ...epr_RWPropertyDefinitionRepresentation.cdl | 46 - ...epr_RWPropertyDefinitionRepresentation.cxx | 8 +- ...epr_RWPropertyDefinitionRepresentation.hxx | 74 + ...epr_RWQuantifiedAssemblyComponentUsage.cdl | 46 - ...epr_RWQuantifiedAssemblyComponentUsage.cxx | 10 +- ...epr_RWQuantifiedAssemblyComponentUsage.hxx | 74 + ...epr_RWReprItemAndLengthMeasureWithUnit.cdl | 34 - ...epr_RWReprItemAndLengthMeasureWithUnit.cxx | 10 +- ...epr_RWReprItemAndLengthMeasureWithUnit.hxx | 67 + .../RWStepRepr_RWRepresentation.cdl | 38 - .../RWStepRepr_RWRepresentation.cxx | 15 +- .../RWStepRepr_RWRepresentation.hxx | 71 + .../RWStepRepr_RWRepresentationContext.cdl | 35 - .../RWStepRepr_RWRepresentationContext.cxx | 6 +- .../RWStepRepr_RWRepresentationContext.hxx | 68 + .../RWStepRepr_RWRepresentationItem.cdl | 35 - .../RWStepRepr_RWRepresentationItem.cxx | 6 +- .../RWStepRepr_RWRepresentationItem.hxx | 68 + .../RWStepRepr_RWRepresentationMap.cdl | 38 - .../RWStepRepr_RWRepresentationMap.cxx | 13 +- .../RWStepRepr_RWRepresentationMap.hxx | 71 + ...WStepRepr_RWRepresentationRelationship.cdl | 38 - ...WStepRepr_RWRepresentationRelationship.cxx | 11 +- ...WStepRepr_RWRepresentationRelationship.hxx | 71 + ...entationRelationshipWithTransformation.cdl | 38 - ...entationRelationshipWithTransformation.cxx | 13 +- ...entationRelationshipWithTransformation.hxx | 71 + src/RWStepRepr/RWStepRepr_RWShapeAspect.cdl | 38 - src/RWStepRepr/RWStepRepr_RWShapeAspect.cxx | 13 +- src/RWStepRepr/RWStepRepr_RWShapeAspect.hxx | 71 + ...Repr_RWShapeAspectDerivingRelationship.cdl | 46 - ...Repr_RWShapeAspectDerivingRelationship.cxx | 8 +- ...Repr_RWShapeAspectDerivingRelationship.hxx | 74 + .../RWStepRepr_RWShapeAspectRelationship.cdl | 46 - .../RWStepRepr_RWShapeAspectRelationship.cxx | 8 +- .../RWStepRepr_RWShapeAspectRelationship.hxx | 74 + .../RWStepRepr_RWShapeAspectTransition.cdl | 46 - .../RWStepRepr_RWShapeAspectTransition.cxx | 8 +- .../RWStepRepr_RWShapeAspectTransition.hxx | 74 + ...entationRelationshipWithTransformation.cdl | 38 - ...entationRelationshipWithTransformation.cxx | 13 +- ...entationRelationshipWithTransformation.hxx | 71 + ...pRepr_RWSpecifiedHigherUsageOccurrence.cdl | 46 - ...pRepr_RWSpecifiedHigherUsageOccurrence.cxx | 8 +- ...pRepr_RWSpecifiedHigherUsageOccurrence.hxx | 74 + ...WStepRepr_RWStructuralResponseProperty.cdl | 46 - ...WStepRepr_RWStructuralResponseProperty.cxx | 9 +- ...WStepRepr_RWStructuralResponseProperty.hxx | 74 + ...sponsePropertyDefinitionRepresentation.cdl | 46 - ...sponsePropertyDefinitionRepresentation.cxx | 8 +- ...sponsePropertyDefinitionRepresentation.hxx | 74 + src/RWStepShape/FILES | 180 + src/RWStepShape/RWStepShape.cdl | 144 - ...hape_RWAdvancedBrepShapeRepresentation.cdl | 38 - ...hape_RWAdvancedBrepShapeRepresentation.cxx | 15 +- ...hape_RWAdvancedBrepShapeRepresentation.hxx | 71 + .../RWStepShape_RWAdvancedFace.cdl | 38 - .../RWStepShape_RWAdvancedFace.cxx | 15 +- .../RWStepShape_RWAdvancedFace.hxx | 71 + .../RWStepShape_RWAngularLocation.cdl | 46 - .../RWStepShape_RWAngularLocation.cxx | 8 +- .../RWStepShape_RWAngularLocation.hxx | 74 + src/RWStepShape/RWStepShape_RWAngularSize.cdl | 46 - src/RWStepShape/RWStepShape_RWAngularSize.cxx | 8 +- src/RWStepShape/RWStepShape_RWAngularSize.hxx | 74 + src/RWStepShape/RWStepShape_RWBlock.cdl | 38 - src/RWStepShape/RWStepShape_RWBlock.cxx | 11 +- src/RWStepShape/RWStepShape_RWBlock.hxx | 71 + .../RWStepShape_RWBooleanResult.cdl | 38 - .../RWStepShape_RWBooleanResult.cxx | 16 +- .../RWStepShape_RWBooleanResult.hxx | 71 + src/RWStepShape/RWStepShape_RWBoxDomain.cdl | 38 - src/RWStepShape/RWStepShape_RWBoxDomain.cxx | 11 +- src/RWStepShape/RWStepShape_RWBoxDomain.hxx | 71 + .../RWStepShape_RWBoxedHalfSpace.cdl | 38 - .../RWStepShape_RWBoxedHalfSpace.cxx | 13 +- .../RWStepShape_RWBoxedHalfSpace.hxx | 71 + .../RWStepShape_RWBrepWithVoids.cdl | 41 - .../RWStepShape_RWBrepWithVoids.cxx | 17 +- .../RWStepShape_RWBrepWithVoids.hxx | 74 + src/RWStepShape/RWStepShape_RWClosedShell.cdl | 38 - src/RWStepShape/RWStepShape_RWClosedShell.cxx | 13 +- src/RWStepShape/RWStepShape_RWClosedShell.hxx | 71 + ...tepShape_RWCompoundShapeRepresentation.cdl | 46 - ...tepShape_RWCompoundShapeRepresentation.cxx | 10 +- ...tepShape_RWCompoundShapeRepresentation.hxx | 74 + .../RWStepShape_RWConnectedEdgeSet.cdl | 46 - .../RWStepShape_RWConnectedEdgeSet.cxx | 10 +- .../RWStepShape_RWConnectedEdgeSet.hxx | 74 + .../RWStepShape_RWConnectedFaceSet.cdl | 38 - .../RWStepShape_RWConnectedFaceSet.cxx | 13 +- .../RWStepShape_RWConnectedFaceSet.hxx | 71 + ...ape_RWConnectedFaceShapeRepresentation.cdl | 46 - ...ape_RWConnectedFaceShapeRepresentation.cxx | 10 +- ...ape_RWConnectedFaceShapeRepresentation.hxx | 74 + .../RWStepShape_RWConnectedFaceSubSet.cdl | 46 - .../RWStepShape_RWConnectedFaceSubSet.cxx | 12 +- .../RWStepShape_RWConnectedFaceSubSet.hxx | 74 + ..._RWContextDependentShapeRepresentation.cdl | 38 - ..._RWContextDependentShapeRepresentation.cxx | 17 +- ..._RWContextDependentShapeRepresentation.hxx | 71 + .../RWStepShape_RWCsgShapeRepresentation.cdl | 38 - .../RWStepShape_RWCsgShapeRepresentation.cxx | 15 +- .../RWStepShape_RWCsgShapeRepresentation.hxx | 71 + src/RWStepShape/RWStepShape_RWCsgSolid.cdl | 38 - src/RWStepShape/RWStepShape_RWCsgSolid.cxx | 13 +- src/RWStepShape/RWStepShape_RWCsgSolid.hxx | 71 + ...alRepresentationAndShapeRepresentation.cdl | 37 - ...alRepresentationAndShapeRepresentation.cxx | 10 +- ...alRepresentationAndShapeRepresentation.hxx | 70 + ...imensionalCharacteristicRepresentation.cdl | 46 - ...imensionalCharacteristicRepresentation.cxx | 8 +- ...imensionalCharacteristicRepresentation.hxx | 74 + .../RWStepShape_RWDimensionalLocation.cdl | 46 - .../RWStepShape_RWDimensionalLocation.cxx | 8 +- .../RWStepShape_RWDimensionalLocation.hxx | 74 + ...tepShape_RWDimensionalLocationWithPath.cdl | 46 - ...tepShape_RWDimensionalLocationWithPath.cxx | 8 +- ...tepShape_RWDimensionalLocationWithPath.hxx | 74 + .../RWStepShape_RWDimensionalSize.cdl | 46 - .../RWStepShape_RWDimensionalSize.cxx | 8 +- .../RWStepShape_RWDimensionalSize.hxx | 74 + .../RWStepShape_RWDimensionalSizeWithPath.cdl | 46 - .../RWStepShape_RWDimensionalSizeWithPath.cxx | 8 +- .../RWStepShape_RWDimensionalSizeWithPath.hxx | 74 + src/RWStepShape/RWStepShape_RWEdge.cdl | 38 - src/RWStepShape/RWStepShape_RWEdge.cxx | 11 +- src/RWStepShape/RWStepShape_RWEdge.hxx | 71 + .../RWStepShape_RWEdgeBasedWireframeModel.cdl | 46 - .../RWStepShape_RWEdgeBasedWireframeModel.cxx | 10 +- .../RWStepShape_RWEdgeBasedWireframeModel.hxx | 74 + ...WEdgeBasedWireframeShapeRepresentation.cdl | 46 - ...WEdgeBasedWireframeShapeRepresentation.cxx | 10 +- ...WEdgeBasedWireframeShapeRepresentation.hxx | 74 + src/RWStepShape/RWStepShape_RWEdgeCurve.cdl | 41 - src/RWStepShape/RWStepShape_RWEdgeCurve.cxx | 22 +- src/RWStepShape/RWStepShape_RWEdgeCurve.hxx | 75 + src/RWStepShape/RWStepShape_RWEdgeLoop.cdl | 41 - src/RWStepShape/RWStepShape_RWEdgeLoop.cxx | 8 +- src/RWStepShape/RWStepShape_RWEdgeLoop.hxx | 75 + .../RWStepShape_RWExtrudedAreaSolid.cdl | 38 - .../RWStepShape_RWExtrudedAreaSolid.cxx | 13 +- .../RWStepShape_RWExtrudedAreaSolid.hxx | 71 + .../RWStepShape_RWExtrudedFaceSolid.cdl | 39 - .../RWStepShape_RWExtrudedFaceSolid.cxx | 12 +- .../RWStepShape_RWExtrudedFaceSolid.hxx | 71 + src/RWStepShape/RWStepShape_RWFace.cdl | 38 - src/RWStepShape/RWStepShape_RWFace.cxx | 13 +- src/RWStepShape/RWStepShape_RWFace.hxx | 71 + .../RWStepShape_RWFaceBasedSurfaceModel.cdl | 46 - .../RWStepShape_RWFaceBasedSurfaceModel.cxx | 10 +- .../RWStepShape_RWFaceBasedSurfaceModel.hxx | 74 + src/RWStepShape/RWStepShape_RWFaceBound.cdl | 41 - src/RWStepShape/RWStepShape_RWFaceBound.cxx | 18 +- src/RWStepShape/RWStepShape_RWFaceBound.hxx | 75 + .../RWStepShape_RWFaceOuterBound.cdl | 38 - .../RWStepShape_RWFaceOuterBound.cxx | 11 +- .../RWStepShape_RWFaceOuterBound.hxx | 71 + src/RWStepShape/RWStepShape_RWFaceSurface.cdl | 38 - src/RWStepShape/RWStepShape_RWFaceSurface.cxx | 15 +- src/RWStepShape/RWStepShape_RWFaceSurface.hxx | 71 + src/RWStepShape/RWStepShape_RWFacetedBrep.cdl | 38 - src/RWStepShape/RWStepShape_RWFacetedBrep.cxx | 11 +- src/RWStepShape/RWStepShape_RWFacetedBrep.hxx | 71 + ...tepShape_RWFacetedBrepAndBrepWithVoids.cdl | 38 - ...tepShape_RWFacetedBrepAndBrepWithVoids.cxx | 17 +- ...tepShape_RWFacetedBrepAndBrepWithVoids.hxx | 71 + ...Shape_RWFacetedBrepShapeRepresentation.cdl | 38 - ...Shape_RWFacetedBrepShapeRepresentation.cxx | 15 +- ...Shape_RWFacetedBrepShapeRepresentation.hxx | 71 + .../RWStepShape_RWGeometricCurveSet.cdl | 38 - .../RWStepShape_RWGeometricCurveSet.cxx | 13 +- .../RWStepShape_RWGeometricCurveSet.hxx | 71 + .../RWStepShape_RWGeometricSet.cdl | 38 - .../RWStepShape_RWGeometricSet.cxx | 13 +- .../RWStepShape_RWGeometricSet.hxx | 71 + ...callyBoundedSurfaceShapeRepresentation.cdl | 38 - ...callyBoundedSurfaceShapeRepresentation.cxx | 15 +- ...callyBoundedSurfaceShapeRepresentation.hxx | 71 + ...llyBoundedWireframeShapeRepresentation.cdl | 38 - ...llyBoundedWireframeShapeRepresentation.cxx | 15 +- ...llyBoundedWireframeShapeRepresentation.hxx | 71 + .../RWStepShape_RWHalfSpaceSolid.cdl | 38 - .../RWStepShape_RWHalfSpaceSolid.cxx | 11 +- .../RWStepShape_RWHalfSpaceSolid.hxx | 71 + .../RWStepShape_RWLimitsAndFits.cdl | 35 - .../RWStepShape_RWLimitsAndFits.cxx | 6 +- .../RWStepShape_RWLimitsAndFits.hxx | 68 + src/RWStepShape/RWStepShape_RWLoop.cdl | 35 - src/RWStepShape/RWStepShape_RWLoop.cxx | 6 +- src/RWStepShape/RWStepShape_RWLoop.hxx | 68 + src/RWStepShape/RWStepShape_RWLoopAndPath.cdl | 38 - src/RWStepShape/RWStepShape_RWLoopAndPath.cxx | 17 +- src/RWStepShape/RWStepShape_RWLoopAndPath.hxx | 71 + .../RWStepShape_RWManifoldSolidBrep.cdl | 38 - .../RWStepShape_RWManifoldSolidBrep.cxx | 13 +- .../RWStepShape_RWManifoldSolidBrep.hxx | 71 + ...e_RWManifoldSurfaceShapeRepresentation.cdl | 38 - ...e_RWManifoldSurfaceShapeRepresentation.cxx | 15 +- ...e_RWManifoldSurfaceShapeRepresentation.hxx | 71 + .../RWStepShape_RWMeasureQualification.cdl | 38 - .../RWStepShape_RWMeasureQualification.cxx | 13 +- .../RWStepShape_RWMeasureQualification.hxx | 71 + ...tionItemAndQualifiedRepresentationItem.cdl | 38 - ...tionItemAndQualifiedRepresentationItem.cxx | 11 +- ...tionItemAndQualifiedRepresentationItem.hxx | 71 + ...WNonManifoldSurfaceShapeRepresentation.cdl | 46 - ...WNonManifoldSurfaceShapeRepresentation.cxx | 10 +- ...WNonManifoldSurfaceShapeRepresentation.hxx | 74 + src/RWStepShape/RWStepShape_RWOpenShell.cdl | 38 - src/RWStepShape/RWStepShape_RWOpenShell.cxx | 13 +- src/RWStepShape/RWStepShape_RWOpenShell.hxx | 71 + .../RWStepShape_RWOrientedClosedShell.cdl | 38 - .../RWStepShape_RWOrientedClosedShell.cxx | 15 +- .../RWStepShape_RWOrientedClosedShell.hxx | 71 + .../RWStepShape_RWOrientedEdge.cdl | 38 - .../RWStepShape_RWOrientedEdge.cxx | 13 +- .../RWStepShape_RWOrientedEdge.hxx | 71 + .../RWStepShape_RWOrientedFace.cdl | 38 - .../RWStepShape_RWOrientedFace.cxx | 15 +- .../RWStepShape_RWOrientedFace.hxx | 71 + .../RWStepShape_RWOrientedOpenShell.cdl | 38 - .../RWStepShape_RWOrientedOpenShell.cxx | 15 +- .../RWStepShape_RWOrientedOpenShell.hxx | 71 + .../RWStepShape_RWOrientedPath.cdl | 38 - .../RWStepShape_RWOrientedPath.cxx | 13 +- .../RWStepShape_RWOrientedPath.hxx | 71 + src/RWStepShape/RWStepShape_RWPath.cdl | 38 - src/RWStepShape/RWStepShape_RWPath.cxx | 13 +- src/RWStepShape/RWStepShape_RWPath.hxx | 71 + .../RWStepShape_RWPlusMinusTolerance.cdl | 38 - .../RWStepShape_RWPlusMinusTolerance.cxx | 11 +- .../RWStepShape_RWPlusMinusTolerance.hxx | 71 + .../RWStepShape_RWPointRepresentation.cdl | 46 - .../RWStepShape_RWPointRepresentation.cxx | 10 +- .../RWStepShape_RWPointRepresentation.hxx | 74 + src/RWStepShape/RWStepShape_RWPolyLoop.cdl | 38 - src/RWStepShape/RWStepShape_RWPolyLoop.cxx | 13 +- src/RWStepShape/RWStepShape_RWPolyLoop.hxx | 71 + .../RWStepShape_RWPrecisionQualifier.cdl | 35 - .../RWStepShape_RWPrecisionQualifier.cxx | 6 +- .../RWStepShape_RWPrecisionQualifier.hxx | 68 + ...tepShape_RWQualifiedRepresentationItem.cdl | 38 - ...tepShape_RWQualifiedRepresentationItem.cxx | 13 +- ...tepShape_RWQualifiedRepresentationItem.hxx | 71 + .../RWStepShape_RWRevolvedAreaSolid.cdl | 38 - .../RWStepShape_RWRevolvedAreaSolid.cxx | 13 +- .../RWStepShape_RWRevolvedAreaSolid.hxx | 71 + .../RWStepShape_RWRevolvedFaceSolid.cdl | 41 - .../RWStepShape_RWRevolvedFaceSolid.cxx | 12 +- .../RWStepShape_RWRevolvedFaceSolid.hxx | 71 + .../RWStepShape_RWRightAngularWedge.cdl | 38 - .../RWStepShape_RWRightAngularWedge.cxx | 11 +- .../RWStepShape_RWRightAngularWedge.hxx | 71 + .../RWStepShape_RWRightCircularCone.cdl | 38 - .../RWStepShape_RWRightCircularCone.cxx | 11 +- .../RWStepShape_RWRightCircularCone.hxx | 71 + .../RWStepShape_RWRightCircularCylinder.cdl | 38 - .../RWStepShape_RWRightCircularCylinder.cxx | 11 +- .../RWStepShape_RWRightCircularCylinder.hxx | 71 + src/RWStepShape/RWStepShape_RWSeamEdge.cdl | 46 - src/RWStepShape/RWStepShape_RWSeamEdge.cxx | 10 +- src/RWStepShape/RWStepShape_RWSeamEdge.hxx | 74 + ...pShape_RWShapeDefinitionRepresentation.cdl | 48 - ...pShape_RWShapeDefinitionRepresentation.cxx | 8 +- ...pShape_RWShapeDefinitionRepresentation.hxx | 75 + ...epShape_RWShapeDimensionRepresentation.cdl | 46 - ...epShape_RWShapeDimensionRepresentation.cxx | 10 +- ...epShape_RWShapeDimensionRepresentation.hxx | 74 + .../RWStepShape_RWShapeRepresentation.cdl | 38 - .../RWStepShape_RWShapeRepresentation.cxx | 15 +- .../RWStepShape_RWShapeRepresentation.hxx | 71 + ...pe_RWShapeRepresentationWithParameters.cdl | 46 - ...pe_RWShapeRepresentationWithParameters.cxx | 11 +- ...pe_RWShapeRepresentationWithParameters.hxx | 74 + .../RWStepShape_RWShellBasedSurfaceModel.cdl | 38 - .../RWStepShape_RWShellBasedSurfaceModel.cxx | 13 +- .../RWStepShape_RWShellBasedSurfaceModel.hxx | 71 + src/RWStepShape/RWStepShape_RWSolidModel.cdl | 35 - src/RWStepShape/RWStepShape_RWSolidModel.cxx | 6 +- src/RWStepShape/RWStepShape_RWSolidModel.hxx | 68 + .../RWStepShape_RWSolidReplica.cdl | 38 - .../RWStepShape_RWSolidReplica.cxx | 13 +- .../RWStepShape_RWSolidReplica.hxx | 71 + src/RWStepShape/RWStepShape_RWSphere.cdl | 38 - src/RWStepShape/RWStepShape_RWSphere.cxx | 11 +- src/RWStepShape/RWStepShape_RWSphere.hxx | 71 + src/RWStepShape/RWStepShape_RWSubedge.cdl | 46 - src/RWStepShape/RWStepShape_RWSubedge.cxx | 10 +- src/RWStepShape/RWStepShape_RWSubedge.hxx | 74 + src/RWStepShape/RWStepShape_RWSubface.cdl | 46 - src/RWStepShape/RWStepShape_RWSubface.cxx | 12 +- src/RWStepShape/RWStepShape_RWSubface.hxx | 74 + .../RWStepShape_RWSweptAreaSolid.cdl | 38 - .../RWStepShape_RWSweptAreaSolid.cxx | 11 +- .../RWStepShape_RWSweptAreaSolid.hxx | 71 + .../RWStepShape_RWSweptFaceSolid.cdl | 40 - .../RWStepShape_RWSweptFaceSolid.cxx | 11 +- .../RWStepShape_RWSweptFaceSolid.hxx | 71 + .../RWStepShape_RWToleranceValue.cdl | 38 - .../RWStepShape_RWToleranceValue.cxx | 9 +- .../RWStepShape_RWToleranceValue.hxx | 71 + ...pShape_RWTopologicalRepresentationItem.cdl | 35 - ...pShape_RWTopologicalRepresentationItem.cxx | 6 +- ...pShape_RWTopologicalRepresentationItem.hxx | 68 + src/RWStepShape/RWStepShape_RWTorus.cdl | 38 - src/RWStepShape/RWStepShape_RWTorus.cxx | 11 +- src/RWStepShape/RWStepShape_RWTorus.hxx | 71 + ...hape_RWTransitionalShapeRepresentation.cdl | 38 - ...hape_RWTransitionalShapeRepresentation.cxx | 15 +- ...hape_RWTransitionalShapeRepresentation.hxx | 71 + .../RWStepShape_RWTypeQualifier.cdl | 35 - .../RWStepShape_RWTypeQualifier.cxx | 6 +- .../RWStepShape_RWTypeQualifier.hxx | 68 + src/RWStepShape/RWStepShape_RWVertex.cdl | 35 - src/RWStepShape/RWStepShape_RWVertex.cxx | 6 +- src/RWStepShape/RWStepShape_RWVertex.hxx | 68 + src/RWStepShape/RWStepShape_RWVertexLoop.cdl | 38 - src/RWStepShape/RWStepShape_RWVertexLoop.cxx | 11 +- src/RWStepShape/RWStepShape_RWVertexLoop.hxx | 71 + src/RWStepShape/RWStepShape_RWVertexPoint.cdl | 38 - src/RWStepShape/RWStepShape_RWVertexPoint.cxx | 11 +- src/RWStepShape/RWStepShape_RWVertexPoint.hxx | 71 + src/RWStepVisual/FILES | 118 + src/RWStepVisual/RWStepVisual.cdl | 148 - src/RWStepVisual/RWStepVisual_RWAreaInSet.cdl | 38 - src/RWStepVisual/RWStepVisual_RWAreaInSet.cxx | 13 +- src/RWStepVisual/RWStepVisual_RWAreaInSet.hxx | 71 + .../RWStepVisual_RWBackgroundColour.cdl | 38 - .../RWStepVisual_RWBackgroundColour.cxx | 11 +- .../RWStepVisual_RWBackgroundColour.hxx | 71 + .../RWStepVisual_RWCameraImage.cdl | 38 - .../RWStepVisual_RWCameraImage.cxx | 13 +- .../RWStepVisual_RWCameraImage.hxx | 71 + .../RWStepVisual_RWCameraModel.cdl | 35 - .../RWStepVisual_RWCameraModel.cxx | 6 +- .../RWStepVisual_RWCameraModel.hxx | 68 + .../RWStepVisual_RWCameraModelD2.cdl | 38 - .../RWStepVisual_RWCameraModelD2.cxx | 11 +- .../RWStepVisual_RWCameraModelD2.hxx | 71 + .../RWStepVisual_RWCameraModelD3.cdl | 38 - .../RWStepVisual_RWCameraModelD3.cxx | 13 +- .../RWStepVisual_RWCameraModelD3.hxx | 71 + .../RWStepVisual_RWCameraUsage.cdl | 38 - .../RWStepVisual_RWCameraUsage.cxx | 13 +- .../RWStepVisual_RWCameraUsage.hxx | 71 + src/RWStepVisual/RWStepVisual_RWColour.cdl | 35 - src/RWStepVisual/RWStepVisual_RWColour.cxx | 6 +- src/RWStepVisual/RWStepVisual_RWColour.hxx | 68 + src/RWStepVisual/RWStepVisual_RWColourRgb.cdl | 35 - src/RWStepVisual/RWStepVisual_RWColourRgb.cxx | 6 +- src/RWStepVisual/RWStepVisual_RWColourRgb.hxx | 68 + .../RWStepVisual_RWColourSpecification.cdl | 35 - .../RWStepVisual_RWColourSpecification.cxx | 6 +- .../RWStepVisual_RWColourSpecification.hxx | 68 + .../RWStepVisual_RWCompositeText.cdl | 38 - .../RWStepVisual_RWCompositeText.cxx | 13 +- .../RWStepVisual_RWCompositeText.hxx | 71 + ...RWStepVisual_RWCompositeTextWithExtent.cdl | 38 - ...RWStepVisual_RWCompositeTextWithExtent.cxx | 15 +- ...RWStepVisual_RWCompositeTextWithExtent.hxx | 71 + ...pVisual_RWContextDependentInvisibility.cdl | 38 - ...pVisual_RWContextDependentInvisibility.cxx | 15 +- ...pVisual_RWContextDependentInvisibility.hxx | 71 + ...RWContextDependentOverRidingStyledItem.cdl | 38 - ...RWContextDependentOverRidingStyledItem.cxx | 21 +- ...RWContextDependentOverRidingStyledItem.hxx | 71 + .../RWStepVisual_RWCurveStyle.cdl | 38 - .../RWStepVisual_RWCurveStyle.cxx | 14 +- .../RWStepVisual_RWCurveStyle.hxx | 71 + .../RWStepVisual_RWCurveStyleFont.cdl | 38 - .../RWStepVisual_RWCurveStyleFont.cxx | 13 +- .../RWStepVisual_RWCurveStyleFont.hxx | 71 + .../RWStepVisual_RWCurveStyleFontPattern.cdl | 35 - .../RWStepVisual_RWCurveStyleFontPattern.cxx | 6 +- .../RWStepVisual_RWCurveStyleFontPattern.hxx | 68 + .../RWStepVisual_RWDraughtingModel.cdl | 46 - .../RWStepVisual_RWDraughtingModel.cxx | 10 +- .../RWStepVisual_RWDraughtingModel.hxx | 74 + ...tepVisual_RWDraughtingPreDefinedColour.cdl | 35 - ...tepVisual_RWDraughtingPreDefinedColour.cxx | 7 +- ...tepVisual_RWDraughtingPreDefinedColour.hxx | 68 + ...Visual_RWDraughtingPreDefinedCurveFont.cdl | 35 - ...Visual_RWDraughtingPreDefinedCurveFont.cxx | 6 +- ...Visual_RWDraughtingPreDefinedCurveFont.hxx | 68 + ...tepVisual_RWExternallyDefinedCurveFont.cdl | 46 - ...tepVisual_RWExternallyDefinedCurveFont.cxx | 8 +- ...tepVisual_RWExternallyDefinedCurveFont.hxx | 74 + .../RWStepVisual_RWFillAreaStyle.cdl | 38 - .../RWStepVisual_RWFillAreaStyle.cxx | 13 +- .../RWStepVisual_RWFillAreaStyle.hxx | 71 + .../RWStepVisual_RWFillAreaStyleColour.cdl | 38 - .../RWStepVisual_RWFillAreaStyleColour.cxx | 11 +- .../RWStepVisual_RWFillAreaStyleColour.hxx | 71 + .../RWStepVisual_RWInvisibility.cdl | 38 - .../RWStepVisual_RWInvisibility.cxx | 13 +- .../RWStepVisual_RWInvisibility.hxx | 71 + ...hanicalDesignGeometricPresentationArea.cdl | 38 - ...hanicalDesignGeometricPresentationArea.cxx | 15 +- ...hanicalDesignGeometricPresentationArea.hxx | 71 + ...ignGeometricPresentationRepresentation.cdl | 38 - ...ignGeometricPresentationRepresentation.cxx | 15 +- ...ignGeometricPresentationRepresentation.hxx | 71 + .../RWStepVisual_RWOverRidingStyledItem.cdl | 38 - .../RWStepVisual_RWOverRidingStyledItem.cxx | 17 +- .../RWStepVisual_RWOverRidingStyledItem.hxx | 71 + src/RWStepVisual/RWStepVisual_RWPlanarBox.cdl | 38 - src/RWStepVisual/RWStepVisual_RWPlanarBox.cxx | 11 +- src/RWStepVisual/RWStepVisual_RWPlanarBox.hxx | 71 + .../RWStepVisual_RWPlanarExtent.cdl | 35 - .../RWStepVisual_RWPlanarExtent.cxx | 6 +- .../RWStepVisual_RWPlanarExtent.hxx | 68 + .../RWStepVisual_RWPointStyle.cdl | 38 - .../RWStepVisual_RWPointStyle.cxx | 15 +- .../RWStepVisual_RWPointStyle.hxx | 71 + .../RWStepVisual_RWPreDefinedColour.cdl | 35 - .../RWStepVisual_RWPreDefinedColour.cxx | 6 +- .../RWStepVisual_RWPreDefinedColour.hxx | 68 + .../RWStepVisual_RWPreDefinedCurveFont.cdl | 35 - .../RWStepVisual_RWPreDefinedCurveFont.cxx | 6 +- .../RWStepVisual_RWPreDefinedCurveFont.hxx | 68 + .../RWStepVisual_RWPreDefinedItem.cdl | 35 - .../RWStepVisual_RWPreDefinedItem.cxx | 6 +- .../RWStepVisual_RWPreDefinedItem.hxx | 68 + .../RWStepVisual_RWPresentationArea.cdl | 38 - .../RWStepVisual_RWPresentationArea.cxx | 15 +- .../RWStepVisual_RWPresentationArea.hxx | 71 + ...epVisual_RWPresentationLayerAssignment.cdl | 38 - ...epVisual_RWPresentationLayerAssignment.cxx | 13 +- ...epVisual_RWPresentationLayerAssignment.hxx | 71 + .../RWStepVisual_RWPresentationLayerUsage.cdl | 38 - .../RWStepVisual_RWPresentationLayerUsage.cxx | 13 +- .../RWStepVisual_RWPresentationLayerUsage.hxx | 71 + ...tepVisual_RWPresentationRepresentation.cdl | 38 - ...tepVisual_RWPresentationRepresentation.cxx | 15 +- ...tepVisual_RWPresentationRepresentation.hxx | 71 + .../RWStepVisual_RWPresentationSet.cdl | 35 - .../RWStepVisual_RWPresentationSet.cxx | 6 +- .../RWStepVisual_RWPresentationSet.hxx | 68 + .../RWStepVisual_RWPresentationSize.cdl | 38 - .../RWStepVisual_RWPresentationSize.cxx | 13 +- .../RWStepVisual_RWPresentationSize.hxx | 71 + ...epVisual_RWPresentationStyleAssignment.cdl | 38 - ...epVisual_RWPresentationStyleAssignment.cxx | 13 +- ...epVisual_RWPresentationStyleAssignment.hxx | 71 + ...tepVisual_RWPresentationStyleByContext.cdl | 38 - ...tepVisual_RWPresentationStyleByContext.cxx | 15 +- ...tepVisual_RWPresentationStyleByContext.hxx | 71 + .../RWStepVisual_RWPresentationView.cdl | 38 - .../RWStepVisual_RWPresentationView.cxx | 15 +- .../RWStepVisual_RWPresentationView.hxx | 71 + ...epVisual_RWPresentedItemRepresentation.cdl | 38 - ...epVisual_RWPresentedItemRepresentation.cxx | 13 +- ...epVisual_RWPresentedItemRepresentation.hxx | 71 + .../RWStepVisual_RWStyledItem.cdl | 38 - .../RWStepVisual_RWStyledItem.cxx | 15 +- .../RWStepVisual_RWStyledItem.hxx | 71 + .../RWStepVisual_RWSurfaceSideStyle.cdl | 38 - .../RWStepVisual_RWSurfaceSideStyle.cxx | 13 +- .../RWStepVisual_RWSurfaceSideStyle.hxx | 71 + .../RWStepVisual_RWSurfaceStyleBoundary.cdl | 38 - .../RWStepVisual_RWSurfaceStyleBoundary.cxx | 11 +- .../RWStepVisual_RWSurfaceStyleBoundary.hxx | 71 + ...RWStepVisual_RWSurfaceStyleControlGrid.cdl | 38 - ...RWStepVisual_RWSurfaceStyleControlGrid.cxx | 11 +- ...RWStepVisual_RWSurfaceStyleControlGrid.hxx | 71 + .../RWStepVisual_RWSurfaceStyleFillArea.cdl | 38 - .../RWStepVisual_RWSurfaceStyleFillArea.cxx | 11 +- .../RWStepVisual_RWSurfaceStyleFillArea.hxx | 71 + ...StepVisual_RWSurfaceStyleParameterLine.cdl | 38 - ...StepVisual_RWSurfaceStyleParameterLine.cxx | 15 +- ...StepVisual_RWSurfaceStyleParameterLine.hxx | 71 + ...Visual_RWSurfaceStyleSegmentationCurve.cdl | 38 - ...Visual_RWSurfaceStyleSegmentationCurve.cxx | 11 +- ...Visual_RWSurfaceStyleSegmentationCurve.hxx | 71 + .../RWStepVisual_RWSurfaceStyleSilhouette.cdl | 38 - .../RWStepVisual_RWSurfaceStyleSilhouette.cxx | 11 +- .../RWStepVisual_RWSurfaceStyleSilhouette.hxx | 71 + .../RWStepVisual_RWSurfaceStyleUsage.cdl | 38 - .../RWStepVisual_RWSurfaceStyleUsage.cxx | 14 +- .../RWStepVisual_RWSurfaceStyleUsage.hxx | 71 + src/RWStepVisual/RWStepVisual_RWTemplate.cdl | 38 - src/RWStepVisual/RWStepVisual_RWTemplate.cxx | 15 +- src/RWStepVisual/RWStepVisual_RWTemplate.hxx | 71 + .../RWStepVisual_RWTemplateInstance.cdl | 38 - .../RWStepVisual_RWTemplateInstance.cxx | 13 +- .../RWStepVisual_RWTemplateInstance.hxx | 71 + .../RWStepVisual_RWTextLiteral.cdl | 38 - .../RWStepVisual_RWTextLiteral.cxx | 16 +- .../RWStepVisual_RWTextLiteral.hxx | 71 + src/RWStepVisual/RWStepVisual_RWTextStyle.cdl | 38 - src/RWStepVisual/RWStepVisual_RWTextStyle.cxx | 11 +- src/RWStepVisual/RWStepVisual_RWTextStyle.hxx | 71 + ...RWStepVisual_RWTextStyleForDefinedFont.cdl | 38 - ...RWStepVisual_RWTextStyleForDefinedFont.cxx | 11 +- ...RWStepVisual_RWTextStyleForDefinedFont.hxx | 71 + ...sual_RWTextStyleWithBoxCharacteristics.cdl | 38 - ...sual_RWTextStyleWithBoxCharacteristics.cxx | 15 +- ...sual_RWTextStyleWithBoxCharacteristics.hxx | 71 + .../RWStepVisual_RWViewVolume.cdl | 38 - .../RWStepVisual_RWViewVolume.cxx | 16 +- .../RWStepVisual_RWViewVolume.hxx | 71 + src/RWStl/FILES | 2 + src/RWStl/RWStl.cdl | 86 - src/RWStl/RWStl.cxx | 33 +- src/RWStl/RWStl.hxx | 103 + src/Resource/FILES | 17 +- src/Resource/Resource.cdl | 61 - src/Resource/Resource_CMPLRS.edl | 33 - src/Resource/Resource_FormatType.hxx | 34 + src/Resource/Resource_LexicalCompare.cdl | 29 - src/Resource/Resource_LexicalCompare.hxx | 64 + src/Resource/Resource_Manager.cdl | 267 -- src/Resource/Resource_Manager.cxx | 25 +- src/Resource/Resource_Manager.hxx | 138 + src/Resource/Resource_NoSuchResource.hxx | 37 + src/Resource/Resource_Unicode.cdl | 146 - src/Resource/Resource_Unicode.cxx | 4 +- src/Resource/Resource_Unicode.hxx | 145 + src/STEPCAFControl/FILES | 37 +- src/STEPCAFControl/STEPCAFControl.cdl | 80 - .../STEPCAFControl_ActorWrite.cdl | 50 - .../STEPCAFControl_ActorWrite.cxx | 6 +- .../STEPCAFControl_ActorWrite.hxx | 82 + .../STEPCAFControl_Controller.cdl | 36 - .../STEPCAFControl_Controller.cxx | 7 +- .../STEPCAFControl_Controller.hxx | 70 + .../STEPCAFControl_DictionaryOfExternFile.hxx | 143 + ...TEPCAFControl_DictionaryOfExternFile_0.cxx | 47 + .../STEPCAFControl_ExternFile.cdl | 81 - .../STEPCAFControl_ExternFile.cxx | 8 +- .../STEPCAFControl_ExternFile.hxx | 99 + ...ntrol_IteratorOfDictionaryOfExternFile.hxx | 90 + ...rol_IteratorOfDictionaryOfExternFile_0.cxx | 36 + src/STEPCAFControl/STEPCAFControl_Reader.cdl | 308 -- src/STEPCAFControl/STEPCAFControl_Reader.cxx | 269 +- src/STEPCAFControl/STEPCAFControl_Reader.hxx | 263 ++ ...trol_StackItemOfDictionaryOfExternFile.hxx | 73 + ...ol_StackItemOfDictionaryOfExternFile_0.cxx | 45 + src/STEPCAFControl/STEPCAFControl_Writer.cdl | 227 -- src/STEPCAFControl/STEPCAFControl_Writer.cxx | 260 +- src/STEPCAFControl/STEPCAFControl_Writer.hxx | 218 ++ src/STEPConstruct/FILES | 28 +- src/STEPConstruct/STEPConstruct.cdl | 100 - src/STEPConstruct/STEPConstruct.cxx | 18 +- src/STEPConstruct/STEPConstruct.hxx | 108 + .../STEPConstruct_AP203Context.cdl | 189 - .../STEPConstruct_AP203Context.cxx | 20 +- .../STEPConstruct_AP203Context.hxx | 223 ++ src/STEPConstruct/STEPConstruct_Assembly.cdl | 80 - src/STEPConstruct/STEPConstruct_Assembly.cxx | 39 +- src/STEPConstruct/STEPConstruct_Assembly.hxx | 105 + .../STEPConstruct_ContextTool.cdl | 137 - .../STEPConstruct_ContextTool.cxx | 49 +- .../STEPConstruct_ContextTool.hxx | 151 + .../STEPConstruct_ExternRefs.cdl | 129 - .../STEPConstruct_ExternRefs.cxx | 90 +- .../STEPConstruct_ExternRefs.hxx | 150 + src/STEPConstruct/STEPConstruct_Part.cdl | 108 - src/STEPConstruct/STEPConstruct_Part.cxx | 25 +- src/STEPConstruct/STEPConstruct_Part.hxx | 165 + .../STEPConstruct_PointHasher.cdl | 39 - .../STEPConstruct_PointHasher.cxx | 4 +- .../STEPConstruct_PointHasher.hxx | 69 + src/STEPConstruct/STEPConstruct_Styles.cdl | 183 - src/STEPConstruct/STEPConstruct_Styles.cxx | 95 +- src/STEPConstruct/STEPConstruct_Styles.hxx | 176 + src/STEPConstruct/STEPConstruct_Tool.cdl | 82 - src/STEPConstruct/STEPConstruct_Tool.cxx | 10 +- src/STEPConstruct/STEPConstruct_Tool.hxx | 103 + .../STEPConstruct_UnitContext.cdl | 129 - .../STEPConstruct_UnitContext.cxx | 50 +- .../STEPConstruct_UnitContext.hxx | 156 + .../STEPConstruct_ValidationProps.cdl | 150 - .../STEPConstruct_ValidationProps.cxx | 80 +- .../STEPConstruct_ValidationProps.hxx | 150 + src/STEPControl/FILES | 11 + src/STEPControl/STEPControl.cdl | 75 - src/STEPControl/STEPControl_ActorRead.cdl | 158 - src/STEPControl/STEPControl_ActorRead.cxx | 186 +- src/STEPControl/STEPControl_ActorRead.hxx | 147 + src/STEPControl/STEPControl_ActorWrite.cdl | 116 - src/STEPControl/STEPControl_ActorWrite.cxx | 153 +- src/STEPControl/STEPControl_ActorWrite.hxx | 112 + src/STEPControl/STEPControl_Controller.cdl | 71 - src/STEPControl/STEPControl_Controller.cxx | 59 +- src/STEPControl/STEPControl_Controller.hxx | 94 + src/STEPControl/STEPControl_Reader.cdl | 102 - src/STEPControl/STEPControl_Reader.cxx | 88 +- src/STEPControl/STEPControl_Reader.hxx | 128 + src/STEPControl/STEPControl_StepModelType.hxx | 44 + src/STEPControl/STEPControl_Writer.cdl | 111 - src/STEPControl/STEPControl_Writer.cxx | 14 +- src/STEPControl/STEPControl_Writer.hxx | 137 + src/STEPEdit/FILES | 6 + src/STEPEdit/STEPEdit.cdl | 65 - src/STEPEdit/STEPEdit.cxx | 16 +- src/STEPEdit/STEPEdit.hxx | 93 + src/STEPEdit/STEPEdit_EditContext.cdl | 44 - src/STEPEdit/STEPEdit_EditContext.cxx | 15 +- src/STEPEdit/STEPEdit_EditContext.hxx | 82 + src/STEPEdit/STEPEdit_EditSDR.cdl | 41 - src/STEPEdit/STEPEdit_EditSDR.cxx | 14 +- src/STEPEdit/STEPEdit_EditSDR.hxx | 79 + src/STEPSelections/FILES | 26 +- src/STEPSelections/STEPSelections.cdl | 66 - .../STEPSelections_AssemblyComponent.cdl | 57 - .../STEPSelections_AssemblyComponent.cxx | 5 +- .../STEPSelections_AssemblyComponent.hxx | 76 + .../STEPSelections_AssemblyExplorer.cdl | 64 - .../STEPSelections_AssemblyExplorer.cxx | 29 +- .../STEPSelections_AssemblyExplorer.hxx | 90 + .../STEPSelections_AssemblyLink.cdl | 68 - .../STEPSelections_AssemblyLink.cxx | 7 +- .../STEPSelections_AssemblyLink.hxx | 82 + src/STEPSelections/STEPSelections_Counter.cdl | 103 - src/STEPSelections/STEPSelections_Counter.cxx | 47 +- src/STEPSelections/STEPSelections_Counter.hxx | 108 + .../STEPSelections_SelectAssembly.cdl | 38 - .../STEPSelections_SelectAssembly.cxx | 16 +- .../STEPSelections_SelectAssembly.hxx | 74 + .../STEPSelections_SelectDerived.cdl | 35 - .../STEPSelections_SelectDerived.cxx | 11 +- .../STEPSelections_SelectDerived.hxx | 67 + .../STEPSelections_SelectFaces.cdl | 41 - .../STEPSelections_SelectFaces.cxx | 12 +- .../STEPSelections_SelectFaces.hxx | 74 + .../STEPSelections_SelectForTransfer.cdl | 31 - .../STEPSelections_SelectForTransfer.cxx | 8 +- .../STEPSelections_SelectForTransfer.hxx | 67 + .../STEPSelections_SelectGSCurves.cdl | 40 - .../STEPSelections_SelectGSCurves.cxx | 12 +- .../STEPSelections_SelectGSCurves.hxx | 72 + .../STEPSelections_SelectInstances.cdl | 41 - .../STEPSelections_SelectInstances.cxx | 30 +- .../STEPSelections_SelectInstances.hxx | 76 + src/SWDRAW/FILES | 18 + src/SWDRAW/SWDRAW.cdl | 53 - src/SWDRAW/SWDRAW.cxx | 24 +- src/SWDRAW/SWDRAW.hxx | 87 + src/SWDRAW/SWDRAW_ShapeAnalysis.cdl | 33 - src/SWDRAW/SWDRAW_ShapeAnalysis.cxx | 76 +- src/SWDRAW/SWDRAW_ShapeAnalysis.hxx | 65 + src/SWDRAW/SWDRAW_ShapeCustom.cdl | 32 - src/SWDRAW/SWDRAW_ShapeCustom.cxx | 65 +- src/SWDRAW/SWDRAW_ShapeCustom.hxx | 64 + src/SWDRAW/SWDRAW_ShapeExtend.cdl | 31 - src/SWDRAW/SWDRAW_ShapeExtend.cxx | 8 +- src/SWDRAW/SWDRAW_ShapeExtend.hxx | 63 + src/SWDRAW/SWDRAW_ShapeFix.cdl | 35 - src/SWDRAW/SWDRAW_ShapeFix.cxx | 64 +- src/SWDRAW/SWDRAW_ShapeFix.hxx | 67 + src/SWDRAW/SWDRAW_ShapeProcess.cdl | 29 - src/SWDRAW/SWDRAW_ShapeProcess.cxx | 10 +- src/SWDRAW/SWDRAW_ShapeProcess.hxx | 61 + src/SWDRAW/SWDRAW_ShapeProcessAPI.cdl | 29 - src/SWDRAW/SWDRAW_ShapeProcessAPI.cxx | 11 +- src/SWDRAW/SWDRAW_ShapeProcessAPI.hxx | 61 + src/SWDRAW/SWDRAW_ShapeTool.cdl | 34 - src/SWDRAW/SWDRAW_ShapeTool.cxx | 62 +- src/SWDRAW/SWDRAW_ShapeTool.hxx | 65 + src/SWDRAW/SWDRAW_ShapeUpgrade.cdl | 40 - src/SWDRAW/SWDRAW_ShapeUpgrade.cxx | 81 +- src/SWDRAW/SWDRAW_ShapeUpgrade.hxx | 72 + src/Select3D/FILES | 38 +- src/Select3D/Select3D.cdl | 68 - src/SelectBasics/FILES | 8 + src/SelectBasics/SelectBasics.cdl | 50 - src/SelectBasics/SelectBasics.cxx | 2 +- src/SelectBasics/SelectBasics.hxx | 68 + src/SelectBasics/SelectBasics_EntityOwner.cdl | 73 - src/SelectBasics/SelectBasics_EntityOwner.cxx | 4 +- src/SelectBasics/SelectBasics_EntityOwner.hxx | 93 + .../SelectBasics_SensitiveEntity.cdl | 92 - .../SelectBasics_SensitiveEntity.cxx | 5 +- .../SelectBasics_SensitiveEntity.hxx | 106 + src/SelectMgr/FILES | 74 +- src/SelectMgr/SelectMgr.cdl | 265 -- src/SelectMgr/SelectMgr_AndFilter.cdl | 38 - src/SelectMgr/SelectMgr_AndFilter.cxx | 4 +- src/SelectMgr/SelectMgr_AndFilter.hxx | 68 + src/SelectMgr/SelectMgr_CompositionFilter.cdl | 55 - src/SelectMgr/SelectMgr_CompositionFilter.cxx | 5 +- src/SelectMgr/SelectMgr_CompositionFilter.hxx | 87 + src/SelectMgr/SelectMgr_EntityOwner.cdl | 179 - src/SelectMgr/SelectMgr_EntityOwner.cxx | 8 +- src/SelectMgr/SelectMgr_EntityOwner.hxx | 159 + src/SelectMgr/SelectMgr_Filter.cdl | 59 - src/SelectMgr/SelectMgr_Filter.cxx | 4 +- src/SelectMgr/SelectMgr_Filter.hxx | 92 + src/SelectMgr/SelectMgr_OrFilter.cdl | 47 - src/SelectMgr/SelectMgr_OrFilter.cxx | 4 +- src/SelectMgr/SelectMgr_OrFilter.hxx | 72 + src/SelectMgr/SelectMgr_SOPtr.hxx | 23 + src/SelectMgr/SelectMgr_SelectableObject.cdl | 264 -- src/SelectMgr/SelectMgr_SelectableObject.cxx | 31 +- src/SelectMgr/SelectMgr_SelectableObject.hxx | 227 ++ src/SelectMgr/SelectMgr_SelectionManager.cdl | 242 -- src/SelectMgr/SelectMgr_SelectionManager.cxx | 17 +- src/SelectMgr/SelectMgr_SelectionManager.hxx | 156 + src/SelectMgr/SelectMgr_SortCriterion.cdl | 72 - src/SelectMgr/SelectMgr_SortCriterion.cxx | 4 +- src/SelectMgr/SelectMgr_SortCriterion.hxx | 106 + src/SelectMgr/SelectMgr_StateOfSelection.hxx | 30 + src/SelectMgr/SelectMgr_TypeOfBVHUpdate.hxx | 38 + src/SelectMgr/SelectMgr_TypeOfUpdate.hxx | 31 + src/Shaders/FILES | 2 +- src/ShapeAlgo/FILES | 7 + src/ShapeAlgo/ShapeAlgo.cdl | 49 - src/ShapeAlgo/ShapeAlgo.cxx | 4 +- src/ShapeAlgo/ShapeAlgo.hxx | 71 + src/ShapeAlgo/ShapeAlgo_AlgoContainer.cdl | 142 - src/ShapeAlgo/ShapeAlgo_AlgoContainer.cxx | 58 +- src/ShapeAlgo/ShapeAlgo_AlgoContainer.hxx | 135 + src/ShapeAlgo/ShapeAlgo_ToolContainer.cdl | 36 - src/ShapeAlgo/ShapeAlgo_ToolContainer.cxx | 7 +- src/ShapeAlgo/ShapeAlgo_ToolContainer.hxx | 69 + src/ShapeAnalysis/FILES | 49 +- src/ShapeAnalysis/ShapeAnalysis.cdl | 168 - src/ShapeAnalysis/ShapeAnalysis.cxx | 52 +- src/ShapeAnalysis/ShapeAnalysis.hxx | 152 + .../ShapeAnalysis_CheckSmallFace.cdl | 212 -- .../ShapeAnalysis_CheckSmallFace.cxx | 85 +- .../ShapeAnalysis_CheckSmallFace.hxx | 210 ++ src/ShapeAnalysis/ShapeAnalysis_Curve.cdl | 187 - src/ShapeAnalysis/ShapeAnalysis_Curve.cxx | 50 +- src/ShapeAnalysis/ShapeAnalysis_Curve.hxx | 166 + src/ShapeAnalysis/ShapeAnalysis_Edge.cdl | 307 -- src/ShapeAnalysis/ShapeAnalysis_Edge.cxx | 46 +- src/ShapeAnalysis/ShapeAnalysis_Edge.hxx | 204 + .../ShapeAnalysis_FreeBoundData.cdl | 138 - .../ShapeAnalysis_FreeBoundData.cxx | 8 +- .../ShapeAnalysis_FreeBoundData.hxx | 148 + .../ShapeAnalysis_FreeBounds.cdl | 192 - .../ShapeAnalysis_FreeBounds.cxx | 52 +- .../ShapeAnalysis_FreeBounds.hxx | 176 + .../ShapeAnalysis_FreeBoundsProperties.cdl | 174 - .../ShapeAnalysis_FreeBoundsProperties.cxx | 29 +- .../ShapeAnalysis_FreeBoundsProperties.hxx | 165 + src/ShapeAnalysis/ShapeAnalysis_Geom.cdl | 50 - src/ShapeAnalysis/ShapeAnalysis_Geom.cxx | 10 +- src/ShapeAnalysis/ShapeAnalysis_Geom.hxx | 74 + .../ShapeAnalysis_ShapeContents.cdl | 221 -- .../ShapeAnalysis_ShapeContents.cxx | 40 +- .../ShapeAnalysis_ShapeContents.hxx | 222 ++ .../ShapeAnalysis_ShapeTolerance.cdl | 84 - .../ShapeAnalysis_ShapeTolerance.cxx | 12 +- .../ShapeAnalysis_ShapeTolerance.hxx | 105 + src/ShapeAnalysis/ShapeAnalysis_Shell.cdl | 81 - src/ShapeAnalysis/ShapeAnalysis_Shell.cxx | 8 +- src/ShapeAnalysis/ShapeAnalysis_Shell.hxx | 109 + src/ShapeAnalysis/ShapeAnalysis_Surface.cdl | 403 -- src/ShapeAnalysis/ShapeAnalysis_Surface.cxx | 37 +- src/ShapeAnalysis/ShapeAnalysis_Surface.hxx | 367 ++ .../ShapeAnalysis_TransferParameters.cdl | 86 - .../ShapeAnalysis_TransferParameters.cxx | 16 +- .../ShapeAnalysis_TransferParameters.hxx | 118 + .../ShapeAnalysis_TransferParametersProj.cdl | 101 - .../ShapeAnalysis_TransferParametersProj.cxx | 61 +- .../ShapeAnalysis_TransferParametersProj.hxx | 120 + src/ShapeAnalysis/ShapeAnalysis_Wire.cdl | 650 ---- src/ShapeAnalysis/ShapeAnalysis_Wire.cxx | 79 +- src/ShapeAnalysis/ShapeAnalysis_Wire.hxx | 560 +++ src/ShapeAnalysis/ShapeAnalysis_WireOrder.cdl | 154 - src/ShapeAnalysis/ShapeAnalysis_WireOrder.cxx | 14 +- src/ShapeAnalysis/ShapeAnalysis_WireOrder.hxx | 179 + .../ShapeAnalysis_WireVertex.cdl | 159 - .../ShapeAnalysis_WireVertex.cxx | 17 +- .../ShapeAnalysis_WireVertex.hxx | 179 + src/ShapeBuild/FILES | 8 + src/ShapeBuild/ShapeBuild.cdl | 48 - src/ShapeBuild/ShapeBuild.cxx | 5 +- src/ShapeBuild/ShapeBuild.hxx | 71 + src/ShapeBuild/ShapeBuild_Edge.cdl | 145 - src/ShapeBuild/ShapeBuild_Edge.cxx | 59 +- src/ShapeBuild/ShapeBuild_Edge.hxx | 145 + src/ShapeBuild/ShapeBuild_ReShape.cdl | 93 - src/ShapeBuild/ShapeBuild_ReShape.cxx | 18 +- src/ShapeBuild/ShapeBuild_ReShape.hxx | 126 + src/ShapeBuild/ShapeBuild_Vertex.cdl | 44 - src/ShapeBuild/ShapeBuild_Vertex.cxx | 8 +- src/ShapeBuild/ShapeBuild_Vertex.hxx | 74 + src/ShapeConstruct/FILES | 12 + src/ShapeConstruct/ShapeConstruct.cdl | 125 - src/ShapeConstruct/ShapeConstruct.cxx | 59 +- src/ShapeConstruct/ShapeConstruct.hxx | 123 + ...uct_CompBezierCurves2dToBSplineCurve2d.cdl | 83 - ...uct_CompBezierCurves2dToBSplineCurve2d.cxx | 12 +- ...uct_CompBezierCurves2dToBSplineCurve2d.hxx | 95 + ...nstruct_CompBezierCurvesToBSplineCurve.cdl | 81 - ...nstruct_CompBezierCurvesToBSplineCurve.cxx | 13 +- ...nstruct_CompBezierCurvesToBSplineCurve.hxx | 95 + src/ShapeConstruct/ShapeConstruct_Curve.cdl | 98 - src/ShapeConstruct/ShapeConstruct_Curve.cxx | 48 +- src/ShapeConstruct/ShapeConstruct_Curve.hxx | 120 + .../ShapeConstruct_MakeTriangulation.cdl | 47 - .../ShapeConstruct_MakeTriangulation.cxx | 33 +- .../ShapeConstruct_MakeTriangulation.hxx | 77 + .../ShapeConstruct_ProjectCurveOnSurface.cdl | 240 -- .../ShapeConstruct_ProjectCurveOnSurface.cxx | 64 +- .../ShapeConstruct_ProjectCurveOnSurface.hxx | 191 + src/ShapeCustom/FILES | 27 + src/ShapeCustom/ShapeCustom.cdl | 125 - src/ShapeCustom/ShapeCustom.hxx | 142 + .../ShapeCustom_BSplineRestriction.cdl | 280 -- .../ShapeCustom_BSplineRestriction.cxx | 105 +- .../ShapeCustom_BSplineRestriction.hxx | 227 ++ .../ShapeCustom_ConvertToBSpline.cdl | 141 - .../ShapeCustom_ConvertToBSpline.cxx | 35 +- .../ShapeCustom_ConvertToBSpline.hxx | 145 + .../ShapeCustom_ConvertToRevolution.cdl | 117 - .../ShapeCustom_ConvertToRevolution.cxx | 42 +- .../ShapeCustom_ConvertToRevolution.hxx | 124 + src/ShapeCustom/ShapeCustom_Curve.cdl | 43 - src/ShapeCustom/ShapeCustom_Curve.cxx | 9 +- src/ShapeCustom/ShapeCustom_Curve.hxx | 73 + src/ShapeCustom/ShapeCustom_Curve2d.cdl | 56 - src/ShapeCustom/ShapeCustom_Curve2d.cxx | 16 +- src/ShapeCustom/ShapeCustom_Curve2d.hxx | 77 + .../ShapeCustom_DirectModification.cdl | 118 - .../ShapeCustom_DirectModification.cxx | 31 +- .../ShapeCustom_DirectModification.hxx | 124 + src/ShapeCustom/ShapeCustom_Modification.cdl | 43 - src/ShapeCustom/ShapeCustom_Modification.cxx | 4 +- src/ShapeCustom/ShapeCustom_Modification.hxx | 72 + .../ShapeCustom_RestrictionParameters.cdl | 147 - .../ShapeCustom_RestrictionParameters.cxx | 5 +- .../ShapeCustom_RestrictionParameters.hxx | 142 + src/ShapeCustom/ShapeCustom_Surface.cdl | 67 - src/ShapeCustom/ShapeCustom_Surface.cxx | 37 +- src/ShapeCustom/ShapeCustom_Surface.hxx | 96 + .../ShapeCustom_SweptToElementary.cdl | 116 - .../ShapeCustom_SweptToElementary.cxx | 54 +- .../ShapeCustom_SweptToElementary.hxx | 123 + .../ShapeCustom_TrsfModification.cdl | 91 - .../ShapeCustom_TrsfModification.cxx | 16 +- .../ShapeCustom_TrsfModification.hxx | 102 + src/ShapeExtend/FILES | 22 +- src/ShapeExtend/ShapeExtend.cdl | 128 - src/ShapeExtend/ShapeExtend.cxx | 4 +- src/ShapeExtend/ShapeExtend.hxx | 96 + .../ShapeExtend_BasicMsgRegistrator.cdl | 54 - .../ShapeExtend_BasicMsgRegistrator.cxx | 8 +- .../ShapeExtend_BasicMsgRegistrator.hxx | 83 + src/ShapeExtend/ShapeExtend_ComplexCurve.cdl | 115 - src/ShapeExtend/ShapeExtend_ComplexCurve.cxx | 8 +- src/ShapeExtend/ShapeExtend_ComplexCurve.hxx | 132 + .../ShapeExtend_CompositeSurface.cdl | 315 -- .../ShapeExtend_CompositeSurface.cxx | 14 +- .../ShapeExtend_CompositeSurface.hxx | 320 ++ src/ShapeExtend/ShapeExtend_Explorer.cdl | 95 - src/ShapeExtend/ShapeExtend_Explorer.cxx | 14 +- src/ShapeExtend/ShapeExtend_Explorer.hxx | 116 + .../ShapeExtend_MsgRegistrator.cdl | 71 - .../ShapeExtend_MsgRegistrator.cxx | 8 +- .../ShapeExtend_MsgRegistrator.hxx | 93 + .../ShapeExtend_Parametrisation.hxx | 31 + src/ShapeExtend/ShapeExtend_Status.hxx | 82 + src/ShapeExtend/ShapeExtend_WireData.cdl | 227 -- src/ShapeExtend/ShapeExtend_WireData.cxx | 20 +- src/ShapeExtend/ShapeExtend_WireData.hxx | 249 ++ src/ShapeFix/FILES | 59 +- src/ShapeFix/ShapeFix.cdl | 136 - src/ShapeFix/ShapeFix.hxx | 138 + src/ShapeFix/ShapeFix_ComposeShell.cdl | 275 -- src/ShapeFix/ShapeFix_ComposeShell.cxx | 100 +- src/ShapeFix/ShapeFix_ComposeShell.hxx | 270 ++ src/ShapeFix/ShapeFix_Edge.cdl | 202 - src/ShapeFix/ShapeFix_Edge.cxx | 46 +- src/ShapeFix/ShapeFix_Edge.hxx | 205 + src/ShapeFix/ShapeFix_EdgeConnect.cdl | 54 - src/ShapeFix/ShapeFix_EdgeConnect.cxx | 28 +- src/ShapeFix/ShapeFix_EdgeConnect.hxx | 84 + src/ShapeFix/ShapeFix_EdgeProjAux.cdl | 65 - src/ShapeFix/ShapeFix_EdgeProjAux.cxx | 42 +- src/ShapeFix/ShapeFix_EdgeProjAux.hxx | 97 + src/ShapeFix/ShapeFix_Face.cdl | 295 -- src/ShapeFix/ShapeFix_Face.cxx | 117 +- src/ShapeFix/ShapeFix_Face.hxx | 290 ++ src/ShapeFix/ShapeFix_FaceConnect.cdl | 52 - src/ShapeFix/ShapeFix_FaceConnect.cxx | 41 +- src/ShapeFix/ShapeFix_FaceConnect.hxx | 75 + src/ShapeFix/ShapeFix_FixSmallFace.cdl | 89 - src/ShapeFix/ShapeFix_FixSmallFace.cxx | 82 +- src/ShapeFix/ShapeFix_FixSmallFace.hxx | 114 + src/ShapeFix/ShapeFix_FixSmallSolid.cdl | 62 - src/ShapeFix/ShapeFix_FixSmallSolid.cxx | 31 +- src/ShapeFix/ShapeFix_FixSmallSolid.hxx | 95 + src/ShapeFix/ShapeFix_FreeBounds.cdl | 109 - src/ShapeFix/ShapeFix_FreeBounds.cxx | 16 +- src/ShapeFix/ShapeFix_FreeBounds.hxx | 121 + src/ShapeFix/ShapeFix_IntersectionTool.cdl | 109 - src/ShapeFix/ShapeFix_IntersectionTool.cxx | 22 +- src/ShapeFix/ShapeFix_IntersectionTool.hxx | 98 + src/ShapeFix/ShapeFix_Root.cdl | 127 - src/ShapeFix/ShapeFix_Root.cxx | 9 +- src/ShapeFix/ShapeFix_Root.hxx | 144 + src/ShapeFix/ShapeFix_Shape.cdl | 159 - src/ShapeFix/ShapeFix_Shape.cxx | 36 +- src/ShapeFix/ShapeFix_Shape.hxx | 170 + src/ShapeFix/ShapeFix_ShapeTolerance.cdl | 59 - src/ShapeFix/ShapeFix_ShapeTolerance.cxx | 17 +- src/ShapeFix/ShapeFix_ShapeTolerance.hxx | 86 + src/ShapeFix/ShapeFix_Shell.cdl | 127 - src/ShapeFix/ShapeFix_Shell.cxx | 70 +- src/ShapeFix/ShapeFix_Shell.hxx | 150 + src/ShapeFix/ShapeFix_Solid.cdl | 99 - src/ShapeFix/ShapeFix_Solid.cxx | 78 +- src/ShapeFix/ShapeFix_Solid.hxx | 131 + src/ShapeFix/ShapeFix_SplitCommonVertex.cdl | 44 - src/ShapeFix/ShapeFix_SplitCommonVertex.cxx | 20 +- src/ShapeFix/ShapeFix_SplitCommonVertex.hxx | 74 + src/ShapeFix/ShapeFix_SplitTool.cdl | 79 - src/ShapeFix/ShapeFix_SplitTool.cxx | 30 +- src/ShapeFix/ShapeFix_SplitTool.hxx | 87 + src/ShapeFix/ShapeFix_Wire.cdl | 897 ----- src/ShapeFix/ShapeFix_Wire.cxx | 122 +- src/ShapeFix/ShapeFix_Wire.hxx | 557 +++ src/ShapeFix/ShapeFix_WireSegment.cdl | 147 - src/ShapeFix/ShapeFix_WireSegment.cxx | 7 +- src/ShapeFix/ShapeFix_WireSegment.hxx | 175 + src/ShapeFix/ShapeFix_WireVertex.cdl | 74 - src/ShapeFix/ShapeFix_WireVertex.cxx | 17 +- src/ShapeFix/ShapeFix_WireVertex.hxx | 102 + src/ShapeFix/ShapeFix_Wireframe.cdl | 128 - src/ShapeFix/ShapeFix_Wireframe.cxx | 62 +- src/ShapeFix/ShapeFix_Wireframe.hxx | 130 + src/ShapeProcess/FILES | 19 +- src/ShapeProcess/ShapeProcess.cdl | 70 - src/ShapeProcess/ShapeProcess.cxx | 13 +- src/ShapeProcess/ShapeProcess.hxx | 92 + src/ShapeProcess/ShapeProcess_Context.cdl | 113 - src/ShapeProcess/ShapeProcess_Context.cxx | 15 +- src/ShapeProcess/ShapeProcess_Context.hxx | 151 + .../ShapeProcess_DictionaryOfOperator.hxx | 143 + .../ShapeProcess_DictionaryOfOperator_0.cxx | 47 + ...Process_IteratorOfDictionaryOfOperator.hxx | 90 + ...ocess_IteratorOfDictionaryOfOperator_0.cxx | 36 + src/ShapeProcess/ShapeProcess_OperLibrary.cdl | 60 - src/ShapeProcess/ShapeProcess_OperLibrary.cxx | 57 +- src/ShapeProcess/ShapeProcess_OperLibrary.hxx | 85 + src/ShapeProcess/ShapeProcess_Operator.cdl | 32 - src/ShapeProcess/ShapeProcess_Operator.cxx | 5 +- src/ShapeProcess/ShapeProcess_Operator.hxx | 65 + .../ShapeProcess_ShapeContext.cdl | 135 - .../ShapeProcess_ShapeContext.cxx | 22 +- .../ShapeProcess_ShapeContext.hxx | 157 + ...rocess_StackItemOfDictionaryOfOperator.hxx | 73 + ...cess_StackItemOfDictionaryOfOperator_0.cxx | 45 + src/ShapeProcess/ShapeProcess_UOperator.cdl | 41 - src/ShapeProcess/ShapeProcess_UOperator.cxx | 6 +- src/ShapeProcess/ShapeProcess_UOperator.hxx | 71 + src/ShapeProcessAPI/FILES | 2 + src/ShapeProcessAPI/ShapeProcessAPI.cdl | 35 - .../ShapeProcessAPI_ApplySequence.cdl | 68 - .../ShapeProcessAPI_ApplySequence.cxx | 12 +- .../ShapeProcessAPI_ApplySequence.hxx | 92 + src/ShapeUpgrade/FILES | 76 + src/ShapeUpgrade/ShapeUpgrade.cdl | 127 - src/ShapeUpgrade/ShapeUpgrade.cxx | 13 +- src/ShapeUpgrade/ShapeUpgrade.hxx | 147 + .../ShapeUpgrade_ClosedEdgeDivide.cdl | 32 - .../ShapeUpgrade_ClosedEdgeDivide.cxx | 22 +- .../ShapeUpgrade_ClosedEdgeDivide.hxx | 65 + .../ShapeUpgrade_ClosedFaceDivide.cdl | 52 - .../ShapeUpgrade_ClosedFaceDivide.cxx | 39 +- .../ShapeUpgrade_ClosedFaceDivide.hxx | 82 + .../ShapeUpgrade_ConvertCurve2dToBezier.cdl | 52 - .../ShapeUpgrade_ConvertCurve2dToBezier.cxx | 22 +- .../ShapeUpgrade_ConvertCurve2dToBezier.hxx | 83 + .../ShapeUpgrade_ConvertCurve3dToBezier.cdl | 80 - .../ShapeUpgrade_ConvertCurve3dToBezier.cxx | 22 +- .../ShapeUpgrade_ConvertCurve3dToBezier.hxx | 105 + ...apeUpgrade_ConvertSurfaceToBezierBasis.cdl | 88 - ...apeUpgrade_ConvertSurfaceToBezierBasis.cxx | 39 +- ...apeUpgrade_ConvertSurfaceToBezierBasis.hxx | 110 + src/ShapeUpgrade/ShapeUpgrade_EdgeDivide.cdl | 80 - src/ShapeUpgrade/ShapeUpgrade_EdgeDivide.cxx | 9 +- src/ShapeUpgrade/ShapeUpgrade_EdgeDivide.hxx | 103 + src/ShapeUpgrade/ShapeUpgrade_FaceDivide.cdl | 115 - src/ShapeUpgrade/ShapeUpgrade_FaceDivide.cxx | 30 +- src/ShapeUpgrade/ShapeUpgrade_FaceDivide.hxx | 140 + .../ShapeUpgrade_FaceDivideArea.cdl | 43 - .../ShapeUpgrade_FaceDivideArea.cxx | 22 +- .../ShapeUpgrade_FaceDivideArea.hxx | 75 + .../ShapeUpgrade_FixSmallBezierCurves.cdl | 47 - .../ShapeUpgrade_FixSmallBezierCurves.cxx | 44 +- .../ShapeUpgrade_FixSmallBezierCurves.hxx | 66 + .../ShapeUpgrade_FixSmallCurves.cdl | 77 - .../ShapeUpgrade_FixSmallCurves.cxx | 11 +- .../ShapeUpgrade_FixSmallCurves.hxx | 99 + .../ShapeUpgrade_RemoveInternalWires.cdl | 101 - .../ShapeUpgrade_RemoveInternalWires.cxx | 30 +- .../ShapeUpgrade_RemoveInternalWires.hxx | 128 + .../ShapeUpgrade_RemoveLocations.cdl | 62 - .../ShapeUpgrade_RemoveLocations.cxx | 48 +- .../ShapeUpgrade_RemoveLocations.hxx | 91 + .../ShapeUpgrade_ShapeConvertToBezier.cdl | 153 - .../ShapeUpgrade_ShapeConvertToBezier.cxx | 50 +- .../ShapeUpgrade_ShapeConvertToBezier.hxx | 159 + src/ShapeUpgrade/ShapeUpgrade_ShapeDivide.cdl | 129 - src/ShapeUpgrade/ShapeUpgrade_ShapeDivide.cxx | 24 +- src/ShapeUpgrade/ShapeUpgrade_ShapeDivide.hxx | 156 + .../ShapeUpgrade_ShapeDivideAngle.cdl | 45 - .../ShapeUpgrade_ShapeDivideAngle.cxx | 7 +- .../ShapeUpgrade_ShapeDivideAngle.hxx | 78 + .../ShapeUpgrade_ShapeDivideArea.cdl | 48 - .../ShapeUpgrade_ShapeDivideArea.cxx | 8 +- .../ShapeUpgrade_ShapeDivideArea.hxx | 73 + .../ShapeUpgrade_ShapeDivideClosed.cdl | 35 - .../ShapeUpgrade_ShapeDivideClosed.cxx | 5 +- .../ShapeUpgrade_ShapeDivideClosed.hxx | 68 + .../ShapeUpgrade_ShapeDivideClosedEdges.cdl | 33 - .../ShapeUpgrade_ShapeDivideClosedEdges.cxx | 7 +- .../ShapeUpgrade_ShapeDivideClosedEdges.hxx | 66 + .../ShapeUpgrade_ShapeDivideContinuity.cdl | 81 - .../ShapeUpgrade_ShapeDivideContinuity.cxx | 6 +- .../ShapeUpgrade_ShapeDivideContinuity.hxx | 108 + src/ShapeUpgrade/ShapeUpgrade_ShellSewing.cdl | 56 - src/ShapeUpgrade/ShapeUpgrade_ShellSewing.cxx | 15 +- src/ShapeUpgrade/ShapeUpgrade_ShellSewing.hxx | 85 + src/ShapeUpgrade/ShapeUpgrade_SplitCurve.cdl | 75 - src/ShapeUpgrade/ShapeUpgrade_SplitCurve.cxx | 8 +- src/ShapeUpgrade/ShapeUpgrade_SplitCurve.hxx | 101 + .../ShapeUpgrade_SplitCurve2d.cdl | 52 - .../ShapeUpgrade_SplitCurve2d.cxx | 25 +- .../ShapeUpgrade_SplitCurve2d.hxx | 82 + .../ShapeUpgrade_SplitCurve2dContinuity.cdl | 52 - .../ShapeUpgrade_SplitCurve2dContinuity.cxx | 17 +- .../ShapeUpgrade_SplitCurve2dContinuity.hxx | 80 + .../ShapeUpgrade_SplitCurve3d.cdl | 53 - .../ShapeUpgrade_SplitCurve3d.cxx | 24 +- .../ShapeUpgrade_SplitCurve3d.hxx | 82 + .../ShapeUpgrade_SplitCurve3dContinuity.cdl | 54 - .../ShapeUpgrade_SplitCurve3dContinuity.cxx | 20 +- .../ShapeUpgrade_SplitCurve3dContinuity.hxx | 83 + .../ShapeUpgrade_SplitSurface.cdl | 95 - .../ShapeUpgrade_SplitSurface.cxx | 28 +- .../ShapeUpgrade_SplitSurface.hxx | 125 + .../ShapeUpgrade_SplitSurfaceAngle.cdl | 42 - .../ShapeUpgrade_SplitSurfaceAngle.cxx | 17 +- .../ShapeUpgrade_SplitSurfaceAngle.hxx | 77 + .../ShapeUpgrade_SplitSurfaceArea.cdl | 38 - .../ShapeUpgrade_SplitSurfaceArea.cxx | 7 +- .../ShapeUpgrade_SplitSurfaceArea.hxx | 71 + .../ShapeUpgrade_SplitSurfaceContinuity.cdl | 51 - .../ShapeUpgrade_SplitSurfaceContinuity.cxx | 24 +- .../ShapeUpgrade_SplitSurfaceContinuity.hxx | 81 + src/ShapeUpgrade/ShapeUpgrade_Tool.cdl | 79 - src/ShapeUpgrade/ShapeUpgrade_Tool.cxx | 6 +- src/ShapeUpgrade/ShapeUpgrade_Tool.hxx | 102 + .../ShapeUpgrade_UnifySameDomain.cdl | 74 - .../ShapeUpgrade_UnifySameDomain.cxx | 110 +- .../ShapeUpgrade_UnifySameDomain.hxx | 95 + src/ShapeUpgrade/ShapeUpgrade_WireDivide.cdl | 149 - src/ShapeUpgrade/ShapeUpgrade_WireDivide.cxx | 64 +- src/ShapeUpgrade/ShapeUpgrade_WireDivide.hxx | 173 + src/Standard/FILES | 108 +- src/Standard/Standard.cdl | 148 - src/Standard/Standard.cxx | 5 +- src/Standard/Standard.hxx | 103 + src/Standard/Standard_AbortiveTransaction.hxx | 37 + src/Standard/Standard_CMPLRS.edl | 23 - src/Standard/Standard_ConstructionError.hxx | 37 + src/Standard/Standard_DimensionError.hxx | 37 + src/Standard/Standard_DimensionMismatch.hxx | 37 + src/Standard/Standard_DivideByZero.hxx | 37 + src/Standard/Standard_DomainError.hxx | 37 + src/Standard/Standard_ErrorHandler.cdl | 93 - src/Standard/Standard_ErrorHandler.hxx | 118 + .../Standard_ErrorHandlerCallback.cdl | 65 - .../Standard_ErrorHandlerCallback.cxx | 2 +- .../Standard_ErrorHandlerCallback.hxx | 95 + src/Standard/Standard_Failure.cdl | 121 - src/Standard/Standard_Failure.cxx | 10 +- src/Standard/Standard_Failure.hxx | 143 + src/Standard/Standard_GUID.cdl | 125 - src/Standard/Standard_GUID.cxx | 7 +- src/Standard/Standard_GUID.hxx | 155 + src/Standard/Standard_HandlerStatus.hxx | 28 + src/Standard/Standard_ImmutableObject.hxx | 37 + src/Standard/Standard_LicenseError.hxx | 37 + src/Standard/Standard_LicenseNotFound.hxx | 37 + src/Standard/Standard_MultiplyDefined.hxx | 37 + src/Standard/Standard_NegativeValue.hxx | 37 + src/Standard/Standard_NoMoreObject.hxx | 37 + src/Standard/Standard_NoSuchObject.hxx | 37 + src/Standard/Standard_NotImplemented.hxx | 37 + src/Standard/Standard_NullObject.hxx | 37 + src/Standard/Standard_NullValue.hxx | 37 + src/Standard/Standard_NumericError.hxx | 37 + src/Standard/Standard_OutOfMemory.hxx | 37 + src/Standard/Standard_OutOfRange.hxx | 37 + src/Standard/Standard_Overflow.hxx | 37 + src/Standard/Standard_PErrorHandler.hxx | 23 + src/Standard/Standard_Persistent.cdl | 34 - src/Standard/Standard_ProgramError.hxx | 37 + src/Standard/Standard_RangeError.hxx | 37 + src/Standard/Standard_TooManyUsers.hxx | 37 + src/Standard/Standard_Transient.cdl | 83 - src/Standard/Standard_TypeMismatch.hxx | 37 + src/Standard/Standard_Underflow.hxx | 37 + src/Standard/Standard_WOKSteps.edl | 25 - src/StdFail/FILES | 5 + src/StdFail/StdFail.cdl | 33 - src/StdFail/StdFail_InfiniteSolutions.hxx | 37 + src/StdFail/StdFail_NotDone.hxx | 37 + src/StdFail/StdFail_Undefined.hxx | 37 + src/StdFail/StdFail_UndefinedDerivative.hxx | 37 + src/StdFail/StdFail_UndefinedValue.hxx | 37 + src/StdPrs/FILES | 41 +- src/StdPrs/StdPrs.cdl | 114 - src/StdPrs/StdPrs_Curve.cdl | 159 - src/StdPrs/StdPrs_Curve.cxx | 24 +- src/StdPrs/StdPrs_Curve.hxx | 124 + src/StdPrs/StdPrs_DeflectionCurve.cdl | 159 - src/StdPrs/StdPrs_DeflectionCurve.cxx | 30 +- src/StdPrs/StdPrs_DeflectionCurve.hxx | 136 + src/StdPrs/StdPrs_HLRPolyShape.cdl | 49 - src/StdPrs/StdPrs_HLRPolyShape.cxx | 25 +- src/StdPrs/StdPrs_HLRPolyShape.hxx | 80 + src/StdPrs/StdPrs_HLRToolShape.cdl | 47 - src/StdPrs/StdPrs_HLRToolShape.cxx | 5 +- src/StdPrs/StdPrs_HLRToolShape.hxx | 88 + src/StdPrs/StdPrs_Plane.cdl | 50 - src/StdPrs/StdPrs_Plane.cxx | 22 +- src/StdPrs/StdPrs_Plane.hxx | 73 + src/StdPrs/StdPrs_PoleCurve.cdl | 68 - src/StdPrs/StdPrs_PoleCurve.cxx | 18 +- src/StdPrs/StdPrs_PoleCurve.hxx | 84 + src/StdPrs/StdPrs_ShadedShape.cdl | 72 - src/StdPrs/StdPrs_ShadedShape.hxx | 85 + src/StdPrs/StdPrs_ShadedSurface.cdl | 42 - src/StdPrs/StdPrs_ShadedSurface.cxx | 13 +- src/StdPrs/StdPrs_ShadedSurface.hxx | 71 + src/StdPrs/StdPrs_ToolPoint.cdl | 24 - src/StdPrs/StdPrs_ToolPoint.cxx | 3 +- src/StdPrs/StdPrs_ToolPoint.hxx | 61 + src/StdPrs/StdPrs_ToolRFace.cdl | 54 - src/StdPrs/StdPrs_ToolRFace.cxx | 9 +- src/StdPrs/StdPrs_ToolRFace.hxx | 83 + src/StdPrs/StdPrs_ToolVertex.cdl | 24 - src/StdPrs/StdPrs_ToolVertex.cxx | 5 +- src/StdPrs/StdPrs_ToolVertex.hxx | 61 + src/StdPrs/StdPrs_Volume.hxx | 31 + .../StdPrs_WFDeflectionRestrictedFace.cdl | 153 - .../StdPrs_WFDeflectionRestrictedFace.cxx | 34 +- .../StdPrs_WFDeflectionRestrictedFace.hxx | 149 + src/StdPrs/StdPrs_WFDeflectionSurface.cdl | 49 - src/StdPrs/StdPrs_WFDeflectionSurface.cxx | 15 +- src/StdPrs/StdPrs_WFDeflectionSurface.hxx | 75 + src/StdPrs/StdPrs_WFPoleSurface.cdl | 45 - src/StdPrs/StdPrs_WFPoleSurface.cxx | 13 +- src/StdPrs/StdPrs_WFPoleSurface.hxx | 72 + src/StdPrs/StdPrs_WFSurface.cdl | 43 - src/StdPrs/StdPrs_WFSurface.cxx | 23 +- src/StdPrs/StdPrs_WFSurface.hxx | 70 + src/StdResource/FILES | 6 +- src/StdSelect/FILES | 29 +- src/StdSelect/StdSelect.cdl | 120 - src/StdSelect/StdSelect.cxx | 26 +- src/StdSelect/StdSelect.hxx | 96 + src/StdSelect/StdSelect_BRepOwner.cdl | 160 - src/StdSelect/StdSelect_BRepOwner.cxx | 8 +- src/StdSelect/StdSelect_BRepOwner.hxx | 161 + src/StdSelect/StdSelect_BRepSelectionTool.cdl | 196 - src/StdSelect/StdSelect_BRepSelectionTool.cxx | 68 +- src/StdSelect/StdSelect_BRepSelectionTool.hxx | 150 + src/StdSelect/StdSelect_DisplayMode.hxx | 28 + src/StdSelect/StdSelect_EdgeFilter.cdl | 49 - src/StdSelect/StdSelect_EdgeFilter.cxx | 13 +- src/StdSelect/StdSelect_EdgeFilter.hxx | 81 + src/StdSelect/StdSelect_FaceFilter.cdl | 52 - src/StdSelect/StdSelect_FaceFilter.cxx | 13 +- src/StdSelect/StdSelect_FaceFilter.hxx | 84 + src/StdSelect/StdSelect_Prs.cdl | 38 - src/StdSelect/StdSelect_Prs.cxx | 5 +- src/StdSelect/StdSelect_Prs.hxx | 67 + src/StdSelect/StdSelect_SensitivityMode.hxx | 29 + src/StdSelect/StdSelect_Shape.cdl | 68 - src/StdSelect/StdSelect_Shape.cxx | 7 +- src/StdSelect/StdSelect_Shape.hxx | 89 + src/StdSelect/StdSelect_ShapeTypeFilter.cdl | 54 - src/StdSelect/StdSelect_ShapeTypeFilter.cxx | 7 +- src/StdSelect/StdSelect_ShapeTypeFilter.hxx | 83 + src/StdSelect/StdSelect_TypeOfEdge.hxx | 30 + src/StdSelect/StdSelect_TypeOfFace.hxx | 34 + src/StdSelect/StdSelect_TypeOfResult.hxx | 29 + src/StepAP203/FILES | 62 +- src/StepAP203/StepAP203.cdl | 80 - src/StepAP203/StepAP203_ApprovedItem.cdl | 89 - src/StepAP203/StepAP203_ApprovedItem.cxx | 16 +- src/StepAP203/StepAP203_ApprovedItem.hxx | 122 + src/StepAP203/StepAP203_CcDesignApproval.cdl | 44 - src/StepAP203/StepAP203_CcDesignApproval.cxx | 5 +- src/StepAP203/StepAP203_CcDesignApproval.hxx | 74 + .../StepAP203_CcDesignCertification.cdl | 44 - .../StepAP203_CcDesignCertification.cxx | 5 +- .../StepAP203_CcDesignCertification.hxx | 74 + src/StepAP203/StepAP203_CcDesignContract.cdl | 44 - src/StepAP203/StepAP203_CcDesignContract.cxx | 5 +- src/StepAP203/StepAP203_CcDesignContract.hxx | 74 + ...tepAP203_CcDesignDateAndTimeAssignment.cdl | 46 - ...tepAP203_CcDesignDateAndTimeAssignment.cxx | 6 +- ...tepAP203_CcDesignDateAndTimeAssignment.hxx | 75 + ...cDesignPersonAndOrganizationAssignment.cdl | 46 - ...cDesignPersonAndOrganizationAssignment.cxx | 6 +- ...cDesignPersonAndOrganizationAssignment.hxx | 75 + ...epAP203_CcDesignSecurityClassification.cdl | 44 - ...epAP203_CcDesignSecurityClassification.cxx | 5 +- ...epAP203_CcDesignSecurityClassification.hxx | 74 + ...epAP203_CcDesignSpecificationReference.cdl | 46 - ...epAP203_CcDesignSpecificationReference.cxx | 6 +- ...epAP203_CcDesignSpecificationReference.hxx | 75 + src/StepAP203/StepAP203_CertifiedItem.cdl | 39 - src/StepAP203/StepAP203_CertifiedItem.cxx | 4 +- src/StepAP203/StepAP203_CertifiedItem.hxx | 72 + src/StepAP203/StepAP203_Change.cdl | 44 - src/StepAP203/StepAP203_Change.cxx | 5 +- src/StepAP203/StepAP203_Change.hxx | 74 + src/StepAP203/StepAP203_ChangeRequest.cdl | 44 - src/StepAP203/StepAP203_ChangeRequest.cxx | 5 +- src/StepAP203/StepAP203_ChangeRequest.hxx | 74 + src/StepAP203/StepAP203_ChangeRequestItem.cdl | 39 - src/StepAP203/StepAP203_ChangeRequestItem.cxx | 4 +- src/StepAP203/StepAP203_ChangeRequestItem.hxx | 72 + src/StepAP203/StepAP203_ClassifiedItem.cdl | 44 - src/StepAP203/StepAP203_ClassifiedItem.cxx | 4 +- src/StepAP203/StepAP203_ClassifiedItem.hxx | 77 + src/StepAP203/StepAP203_ContractedItem.cdl | 39 - src/StepAP203/StepAP203_ContractedItem.cxx | 4 +- src/StepAP203/StepAP203_ContractedItem.hxx | 72 + src/StepAP203/StepAP203_DateTimeItem.cdl | 79 - src/StepAP203/StepAP203_DateTimeItem.cxx | 10 +- src/StepAP203/StepAP203_DateTimeItem.hxx | 112 + .../StepAP203_PersonOrganizationItem.cdl | 84 - .../StepAP203_PersonOrganizationItem.cxx | 12 +- .../StepAP203_PersonOrganizationItem.hxx | 117 + src/StepAP203/StepAP203_SpecifiedItem.cdl | 44 - src/StepAP203/StepAP203_SpecifiedItem.cxx | 4 +- src/StepAP203/StepAP203_SpecifiedItem.hxx | 77 + src/StepAP203/StepAP203_StartRequest.cdl | 44 - src/StepAP203/StepAP203_StartRequest.cxx | 5 +- src/StepAP203/StepAP203_StartRequest.hxx | 74 + src/StepAP203/StepAP203_StartRequestItem.cdl | 39 - src/StepAP203/StepAP203_StartRequestItem.cxx | 4 +- src/StepAP203/StepAP203_StartRequestItem.hxx | 72 + src/StepAP203/StepAP203_StartWork.cdl | 44 - src/StepAP203/StepAP203_StartWork.cxx | 5 +- src/StepAP203/StepAP203_StartWork.hxx | 74 + src/StepAP203/StepAP203_WorkItem.cdl | 39 - src/StepAP203/StepAP203_WorkItem.cxx | 4 +- src/StepAP203/StepAP203_WorkItem.hxx | 72 + src/StepAP209/FILES | 2 + src/StepAP209/StepAP209.cdl | 37 - src/StepAP209/StepAP209_Construct.cdl | 138 - src/StepAP209/StepAP209_Construct.cxx | 170 +- src/StepAP209/StepAP209_Construct.hxx | 148 + src/StepAP214/FILES | 135 +- src/StepAP214/StepAP214.cdl | 318 -- src/StepAP214/StepAP214.cxx | 2 +- src/StepAP214/StepAP214.hxx | 153 + .../StepAP214_AppliedApprovalAssignment.cdl | 49 - .../StepAP214_AppliedApprovalAssignment.cxx | 5 +- .../StepAP214_AppliedApprovalAssignment.hxx | 79 + ...StepAP214_AppliedDateAndTimeAssignment.cdl | 53 - ...StepAP214_AppliedDateAndTimeAssignment.cxx | 6 +- ...StepAP214_AppliedDateAndTimeAssignment.hxx | 80 + .../StepAP214_AppliedDateAssignment.cdl | 53 - .../StepAP214_AppliedDateAssignment.cxx | 6 +- .../StepAP214_AppliedDateAssignment.hxx | 80 + .../StepAP214_AppliedDocumentReference.cdl | 46 - .../StepAP214_AppliedDocumentReference.cxx | 6 +- .../StepAP214_AppliedDocumentReference.hxx | 77 + ...ppliedExternalIdentificationAssignment.cdl | 47 - ...ppliedExternalIdentificationAssignment.cxx | 7 +- ...ppliedExternalIdentificationAssignment.hxx | 75 + .../StepAP214_AppliedGroupAssignment.cdl | 43 - .../StepAP214_AppliedGroupAssignment.cxx | 5 +- .../StepAP214_AppliedGroupAssignment.hxx | 73 + ...tepAP214_AppliedOrganizationAssignment.cdl | 53 - ...tepAP214_AppliedOrganizationAssignment.cxx | 6 +- ...tepAP214_AppliedOrganizationAssignment.hxx | 80 + ...AppliedPersonAndOrganizationAssignment.cdl | 53 - ...AppliedPersonAndOrganizationAssignment.cxx | 6 +- ...AppliedPersonAndOrganizationAssignment.hxx | 80 + .../StepAP214_AppliedPresentedItem.cdl | 47 - .../StepAP214_AppliedPresentedItem.cxx | 4 +- .../StepAP214_AppliedPresentedItem.hxx | 76 + ...ppliedSecurityClassificationAssignment.cdl | 52 - ...ppliedSecurityClassificationAssignment.cxx | 5 +- ...ppliedSecurityClassificationAssignment.hxx | 79 + src/StepAP214/StepAP214_ApprovalItem.cdl | 92 - src/StepAP214/StepAP214_ApprovalItem.cxx | 14 +- src/StepAP214/StepAP214_ApprovalItem.hxx | 127 + ..._AutoDesignActualDateAndTimeAssignment.cdl | 53 - ..._AutoDesignActualDateAndTimeAssignment.cxx | 6 +- ..._AutoDesignActualDateAndTimeAssignment.hxx | 80 + ...epAP214_AutoDesignActualDateAssignment.cdl | 53 - ...epAP214_AutoDesignActualDateAssignment.cxx | 6 +- ...epAP214_AutoDesignActualDateAssignment.hxx | 80 + ...StepAP214_AutoDesignApprovalAssignment.cdl | 50 - ...StepAP214_AutoDesignApprovalAssignment.cxx | 5 +- ...StepAP214_AutoDesignApprovalAssignment.hxx | 79 + ...P214_AutoDesignDateAndPersonAssignment.cdl | 53 - ...P214_AutoDesignDateAndPersonAssignment.cxx | 6 +- ...P214_AutoDesignDateAndPersonAssignment.hxx | 80 + .../StepAP214_AutoDesignDateAndPersonItem.cdl | 64 - .../StepAP214_AutoDesignDateAndPersonItem.cxx | 10 +- .../StepAP214_AutoDesignDateAndPersonItem.hxx | 103 + .../StepAP214_AutoDesignDateAndTimeItem.cdl | 46 - .../StepAP214_AutoDesignDateAndTimeItem.cxx | 6 +- .../StepAP214_AutoDesignDateAndTimeItem.hxx | 80 + .../StepAP214_AutoDesignDatedItem.cdl | 49 - .../StepAP214_AutoDesignDatedItem.cxx | 6 +- .../StepAP214_AutoDesignDatedItem.hxx | 81 + .../StepAP214_AutoDesignDocumentReference.cdl | 45 - .../StepAP214_AutoDesignDocumentReference.cxx | 6 +- .../StepAP214_AutoDesignDocumentReference.hxx | 77 + .../StepAP214_AutoDesignGeneralOrgItem.cdl | 71 - .../StepAP214_AutoDesignGeneralOrgItem.cxx | 8 +- .../StepAP214_AutoDesignGeneralOrgItem.hxx | 106 + .../StepAP214_AutoDesignGroupAssignment.cdl | 47 - .../StepAP214_AutoDesignGroupAssignment.cxx | 5 +- .../StepAP214_AutoDesignGroupAssignment.hxx | 77 + .../StepAP214_AutoDesignGroupedItem.cdl | 92 - .../StepAP214_AutoDesignGroupedItem.cxx | 10 +- .../StepAP214_AutoDesignGroupedItem.hxx | 122 + ...AutoDesignNominalDateAndTimeAssignment.cdl | 53 - ...AutoDesignNominalDateAndTimeAssignment.cxx | 6 +- ...AutoDesignNominalDateAndTimeAssignment.hxx | 80 + ...pAP214_AutoDesignNominalDateAssignment.cdl | 53 - ...pAP214_AutoDesignNominalDateAssignment.cxx | 6 +- ...pAP214_AutoDesignNominalDateAssignment.hxx | 80 + ...AP214_AutoDesignOrganizationAssignment.cdl | 53 - ...AP214_AutoDesignOrganizationAssignment.cxx | 6 +- ...AP214_AutoDesignOrganizationAssignment.hxx | 80 + .../StepAP214_AutoDesignOrganizationItem.cdl | 38 - .../StepAP214_AutoDesignOrganizationItem.cxx | 4 +- .../StepAP214_AutoDesignOrganizationItem.hxx | 70 + ...oDesignPersonAndOrganizationAssignment.cdl | 53 - ...oDesignPersonAndOrganizationAssignment.cxx | 6 +- ...oDesignPersonAndOrganizationAssignment.hxx | 80 + .../StepAP214_AutoDesignPresentedItem.cdl | 46 - .../StepAP214_AutoDesignPresentedItem.cxx | 4 +- .../StepAP214_AutoDesignPresentedItem.hxx | 76 + ...tepAP214_AutoDesignPresentedItemSelect.cdl | 63 - ...tepAP214_AutoDesignPresentedItemSelect.cxx | 6 +- ...tepAP214_AutoDesignPresentedItemSelect.hxx | 97 + .../StepAP214_AutoDesignReferencingItem.cdl | 92 - .../StepAP214_AutoDesignReferencingItem.cxx | 14 +- .../StepAP214_AutoDesignReferencingItem.hxx | 123 + ...DesignSecurityClassificationAssignment.cdl | 50 - ...DesignSecurityClassificationAssignment.cxx | 5 +- ...DesignSecurityClassificationAssignment.hxx | 79 + src/StepAP214/StepAP214_CMPLRS.edl | 29 - src/StepAP214/StepAP214_Class.cdl | 30 - src/StepAP214/StepAP214_Class.cxx | 4 +- src/StepAP214/StepAP214_Class.hxx | 61 + src/StepAP214/StepAP214_DateAndTimeItem.cdl | 68 - src/StepAP214/StepAP214_DateAndTimeItem.cxx | 18 +- src/StepAP214/StepAP214_DateAndTimeItem.hxx | 99 + src/StepAP214/StepAP214_DateItem.cdl | 62 - src/StepAP214/StepAP214_DateItem.cxx | 16 +- src/StepAP214/StepAP214_DateItem.hxx | 98 + .../StepAP214_DocumentReferenceItem.cdl | 80 - .../StepAP214_DocumentReferenceItem.cxx | 8 +- .../StepAP214_DocumentReferenceItem.hxx | 102 + .../StepAP214_ExternalIdentificationItem.cdl | 53 - .../StepAP214_ExternalIdentificationItem.cxx | 6 +- .../StepAP214_ExternalIdentificationItem.hxx | 86 + .../StepAP214_ExternallyDefinedClass.cdl | 48 - .../StepAP214_ExternallyDefinedClass.cxx | 8 +- .../StepAP214_ExternallyDefinedClass.hxx | 76 + ...AP214_ExternallyDefinedGeneralProperty.cdl | 49 - ...AP214_ExternallyDefinedGeneralProperty.cxx | 8 +- ...AP214_ExternallyDefinedGeneralProperty.hxx | 76 + src/StepAP214/StepAP214_GroupItem.cdl | 37 - src/StepAP214/StepAP214_GroupItem.cxx | 4 +- src/StepAP214/StepAP214_GroupItem.hxx | 72 + src/StepAP214/StepAP214_OrganizationItem.cdl | 56 - src/StepAP214/StepAP214_OrganizationItem.cxx | 14 +- src/StepAP214/StepAP214_OrganizationItem.hxx | 74 + .../StepAP214_PersonAndOrganizationItem.cdl | 53 - .../StepAP214_PersonAndOrganizationItem.cxx | 14 +- .../StepAP214_PersonAndOrganizationItem.hxx | 84 + .../StepAP214_PresentedItemSelect.cdl | 42 - .../StepAP214_PresentedItemSelect.cxx | 4 +- .../StepAP214_PresentedItemSelect.hxx | 77 + src/StepAP214/StepAP214_Protocol.cdl | 37 - src/StepAP214/StepAP214_Protocol.cxx | 5 +- src/StepAP214/StepAP214_Protocol.hxx | 77 + src/StepAP214/StepAP214_RepItemGroup.cdl | 45 - src/StepAP214/StepAP214_RepItemGroup.cxx | 6 +- src/StepAP214/StepAP214_RepItemGroup.hxx | 74 + .../StepAP214_SecurityClassificationItem.cdl | 29 - .../StepAP214_SecurityClassificationItem.cxx | 3 +- .../StepAP214_SecurityClassificationItem.hxx | 61 + src/StepBasic/FILES | 308 +- src/StepBasic/StepBasic.cdl | 319 -- src/StepBasic/StepBasic_Action.cdl | 61 - src/StepBasic/StepBasic_Action.cxx | 6 +- src/StepBasic/StepBasic_Action.hxx | 93 + src/StepBasic/StepBasic_ActionAssignment.cdl | 42 - src/StepBasic/StepBasic_ActionAssignment.cxx | 5 +- src/StepBasic/StepBasic_ActionAssignment.hxx | 73 + src/StepBasic/StepBasic_ActionMethod.cdl | 67 - src/StepBasic/StepBasic_ActionMethod.cxx | 5 +- src/StepBasic/StepBasic_ActionMethod.hxx | 99 + .../StepBasic_ActionRequestAssignment.cdl | 42 - .../StepBasic_ActionRequestAssignment.cxx | 5 +- .../StepBasic_ActionRequestAssignment.hxx | 73 + .../StepBasic_ActionRequestSolution.cdl | 50 - .../StepBasic_ActionRequestSolution.cxx | 6 +- .../StepBasic_ActionRequestSolution.hxx | 81 + src/StepBasic/StepBasic_Address.cdl | 134 - src/StepBasic/StepBasic_Address.cxx | 4 +- src/StepBasic/StepBasic_Address.hxx | 186 + src/StepBasic/StepBasic_AheadOrBehind.hxx | 28 + .../StepBasic_ApplicationContext.cdl | 41 - .../StepBasic_ApplicationContext.cxx | 4 +- .../StepBasic_ApplicationContext.hxx | 70 + .../StepBasic_ApplicationContextElement.cdl | 46 - .../StepBasic_ApplicationContextElement.cxx | 5 +- .../StepBasic_ApplicationContextElement.hxx | 76 + ...tepBasic_ApplicationProtocolDefinition.cdl | 55 - ...tepBasic_ApplicationProtocolDefinition.cxx | 5 +- ...tepBasic_ApplicationProtocolDefinition.hxx | 87 + src/StepBasic/StepBasic_Approval.cdl | 46 - src/StepBasic/StepBasic_Approval.cxx | 5 +- src/StepBasic/StepBasic_Approval.hxx | 76 + .../StepBasic_ApprovalAssignment.cdl | 38 - .../StepBasic_ApprovalAssignment.cxx | 5 +- .../StepBasic_ApprovalAssignment.hxx | 67 + src/StepBasic/StepBasic_ApprovalDateTime.cdl | 44 - src/StepBasic/StepBasic_ApprovalDateTime.cxx | 6 +- src/StepBasic/StepBasic_ApprovalDateTime.hxx | 76 + .../StepBasic_ApprovalPersonOrganization.cdl | 51 - .../StepBasic_ApprovalPersonOrganization.cxx | 6 +- .../StepBasic_ApprovalPersonOrganization.hxx | 83 + .../StepBasic_ApprovalRelationship.cdl | 54 - .../StepBasic_ApprovalRelationship.cxx | 5 +- .../StepBasic_ApprovalRelationship.hxx | 86 + src/StepBasic/StepBasic_ApprovalRole.cdl | 41 - src/StepBasic/StepBasic_ApprovalRole.cxx | 4 +- src/StepBasic/StepBasic_ApprovalRole.hxx | 70 + src/StepBasic/StepBasic_ApprovalStatus.cdl | 41 - src/StepBasic/StepBasic_ApprovalStatus.cxx | 4 +- src/StepBasic/StepBasic_ApprovalStatus.hxx | 70 + src/StepBasic/StepBasic_AreaUnit.cdl | 25 - src/StepBasic/StepBasic_AreaUnit.cxx | 4 +- src/StepBasic/StepBasic_AreaUnit.hxx | 61 + src/StepBasic/StepBasic_CalendarDate.cdl | 50 - src/StepBasic/StepBasic_CalendarDate.cxx | 3 +- src/StepBasic/StepBasic_CalendarDate.hxx | 77 + src/StepBasic/StepBasic_Certification.cdl | 57 - src/StepBasic/StepBasic_Certification.cxx | 6 +- src/StepBasic/StepBasic_Certification.hxx | 88 + .../StepBasic_CertificationAssignment.cdl | 42 - .../StepBasic_CertificationAssignment.cxx | 5 +- .../StepBasic_CertificationAssignment.hxx | 73 + src/StepBasic/StepBasic_CertificationType.cdl | 42 - src/StepBasic/StepBasic_CertificationType.cxx | 5 +- src/StepBasic/StepBasic_CertificationType.hxx | 73 + .../StepBasic_CharacterizedObject.cdl | 52 - .../StepBasic_CharacterizedObject.cxx | 5 +- .../StepBasic_CharacterizedObject.hxx | 84 + src/StepBasic/StepBasic_Contract.cdl | 57 - src/StepBasic/StepBasic_Contract.cxx | 6 +- src/StepBasic/StepBasic_Contract.hxx | 88 + .../StepBasic_ContractAssignment.cdl | 42 - .../StepBasic_ContractAssignment.cxx | 5 +- .../StepBasic_ContractAssignment.hxx | 73 + src/StepBasic/StepBasic_ContractType.cdl | 42 - src/StepBasic/StepBasic_ContractType.cxx | 5 +- src/StepBasic/StepBasic_ContractType.hxx | 73 + .../StepBasic_ConversionBasedUnit.cdl | 52 - .../StepBasic_ConversionBasedUnit.cxx | 6 +- .../StepBasic_ConversionBasedUnit.hxx | 79 + ...epBasic_ConversionBasedUnitAndAreaUnit.cdl | 38 - ...epBasic_ConversionBasedUnitAndAreaUnit.cxx | 5 +- ...epBasic_ConversionBasedUnitAndAreaUnit.hxx | 68 + ...Basic_ConversionBasedUnitAndLengthUnit.cdl | 52 - ...Basic_ConversionBasedUnitAndLengthUnit.cxx | 8 +- ...Basic_ConversionBasedUnitAndLengthUnit.hxx | 75 + ...epBasic_ConversionBasedUnitAndMassUnit.cdl | 51 - ...epBasic_ConversionBasedUnitAndMassUnit.cxx | 9 +- ...epBasic_ConversionBasedUnitAndMassUnit.hxx | 74 + ...c_ConversionBasedUnitAndPlaneAngleUnit.cdl | 50 - ...c_ConversionBasedUnitAndPlaneAngleUnit.cxx | 8 +- ...c_ConversionBasedUnitAndPlaneAngleUnit.hxx | 75 + ...pBasic_ConversionBasedUnitAndRatioUnit.cdl | 50 - ...pBasic_ConversionBasedUnitAndRatioUnit.cxx | 8 +- ...pBasic_ConversionBasedUnitAndRatioUnit.hxx | 75 + ...c_ConversionBasedUnitAndSolidAngleUnit.cdl | 51 - ...c_ConversionBasedUnitAndSolidAngleUnit.cxx | 8 +- ...c_ConversionBasedUnitAndSolidAngleUnit.hxx | 75 + ...epBasic_ConversionBasedUnitAndTimeUnit.cdl | 51 - ...epBasic_ConversionBasedUnitAndTimeUnit.cxx | 8 +- ...epBasic_ConversionBasedUnitAndTimeUnit.hxx | 75 + ...Basic_ConversionBasedUnitAndVolumeUnit.cdl | 38 - ...Basic_ConversionBasedUnitAndVolumeUnit.cxx | 5 +- ...Basic_ConversionBasedUnitAndVolumeUnit.hxx | 68 + ...epBasic_CoordinatedUniversalTimeOffset.cdl | 55 - ...epBasic_CoordinatedUniversalTimeOffset.cxx | 3 +- ...epBasic_CoordinatedUniversalTimeOffset.hxx | 87 + src/StepBasic/StepBasic_Date.cdl | 41 - src/StepBasic/StepBasic_Date.cxx | 3 +- src/StepBasic/StepBasic_Date.hxx | 70 + src/StepBasic/StepBasic_DateAndTime.cdl | 46 - src/StepBasic/StepBasic_DateAndTime.cxx | 5 +- src/StepBasic/StepBasic_DateAndTime.hxx | 76 + .../StepBasic_DateAndTimeAssignment.cdl | 43 - .../StepBasic_DateAndTimeAssignment.cxx | 6 +- .../StepBasic_DateAndTimeAssignment.hxx | 73 + src/StepBasic/StepBasic_DateAssignment.cdl | 43 - src/StepBasic/StepBasic_DateAssignment.cxx | 6 +- src/StepBasic/StepBasic_DateAssignment.hxx | 73 + src/StepBasic/StepBasic_DateRole.cdl | 41 - src/StepBasic/StepBasic_DateRole.cxx | 4 +- src/StepBasic/StepBasic_DateRole.hxx | 70 + src/StepBasic/StepBasic_DateTimeRole.cdl | 41 - src/StepBasic/StepBasic_DateTimeRole.cxx | 4 +- src/StepBasic/StepBasic_DateTimeRole.hxx | 70 + src/StepBasic/StepBasic_DateTimeSelect.cdl | 50 - src/StepBasic/StepBasic_DateTimeSelect.cxx | 6 +- src/StepBasic/StepBasic_DateTimeSelect.hxx | 82 + src/StepBasic/StepBasic_DerivedUnit.cdl | 40 - src/StepBasic/StepBasic_DerivedUnit.cxx | 5 +- src/StepBasic/StepBasic_DerivedUnit.hxx | 75 + .../StepBasic_DerivedUnitElement.cdl | 41 - .../StepBasic_DerivedUnitElement.cxx | 5 +- .../StepBasic_DerivedUnitElement.hxx | 75 + src/StepBasic/StepBasic_DesignContext.cdl | 29 - src/StepBasic/StepBasic_DesignContext.cxx | 4 +- src/StepBasic/StepBasic_DesignContext.hxx | 61 + src/StepBasic/StepBasic_DigitalDocument.cdl | 26 - src/StepBasic/StepBasic_DigitalDocument.cxx | 4 +- src/StepBasic/StepBasic_DigitalDocument.hxx | 61 + .../StepBasic_DimensionalExponents.cdl | 65 - .../StepBasic_DimensionalExponents.cxx | 3 +- .../StepBasic_DimensionalExponents.hxx | 100 + src/StepBasic/StepBasic_Document.cdl | 67 - src/StepBasic/StepBasic_Document.cxx | 6 +- src/StepBasic/StepBasic_Document.hxx | 99 + src/StepBasic/StepBasic_DocumentFile.cdl | 50 - src/StepBasic/StepBasic_DocumentFile.cxx | 7 +- src/StepBasic/StepBasic_DocumentFile.hxx | 75 + .../StepBasic_DocumentProductAssociation.cdl | 68 - .../StepBasic_DocumentProductAssociation.cxx | 7 +- .../StepBasic_DocumentProductAssociation.hxx | 101 + .../StepBasic_DocumentProductEquivalence.cdl | 32 - .../StepBasic_DocumentProductEquivalence.cxx | 4 +- .../StepBasic_DocumentProductEquivalence.hxx | 61 + src/StepBasic/StepBasic_DocumentReference.cdl | 40 - src/StepBasic/StepBasic_DocumentReference.cxx | 6 +- src/StepBasic/StepBasic_DocumentReference.hxx | 73 + .../StepBasic_DocumentRelationship.cdl | 52 - .../StepBasic_DocumentRelationship.cxx | 6 +- .../StepBasic_DocumentRelationship.hxx | 85 + .../StepBasic_DocumentRepresentationType.cdl | 49 - .../StepBasic_DocumentRepresentationType.cxx | 6 +- .../StepBasic_DocumentRepresentationType.hxx | 80 + src/StepBasic/StepBasic_DocumentType.cdl | 35 - src/StepBasic/StepBasic_DocumentType.cxx | 5 +- src/StepBasic/StepBasic_DocumentType.hxx | 69 + .../StepBasic_DocumentUsageConstraint.cdl | 47 - .../StepBasic_DocumentUsageConstraint.cxx | 6 +- .../StepBasic_DocumentUsageConstraint.hxx | 80 + src/StepBasic/StepBasic_Effectivity.cdl | 35 - src/StepBasic/StepBasic_Effectivity.cxx | 5 +- src/StepBasic/StepBasic_Effectivity.hxx | 69 + .../StepBasic_EffectivityAssignment.cdl | 41 - .../StepBasic_EffectivityAssignment.cxx | 5 +- .../StepBasic_EffectivityAssignment.hxx | 72 + src/StepBasic/StepBasic_EulerAngles.cdl | 41 - src/StepBasic/StepBasic_EulerAngles.cxx | 4 +- src/StepBasic/StepBasic_EulerAngles.hxx | 72 + ...Basic_ExternalIdentificationAssignment.cdl | 45 - ...Basic_ExternalIdentificationAssignment.cxx | 7 +- ...Basic_ExternalIdentificationAssignment.hxx | 74 + src/StepBasic/StepBasic_ExternalSource.cdl | 41 - src/StepBasic/StepBasic_ExternalSource.cxx | 5 +- src/StepBasic/StepBasic_ExternalSource.hxx | 73 + .../StepBasic_ExternallyDefinedItem.cdl | 49 - .../StepBasic_ExternallyDefinedItem.cxx | 6 +- .../StepBasic_ExternallyDefinedItem.hxx | 81 + src/StepBasic/StepBasic_GeneralProperty.cdl | 59 - src/StepBasic/StepBasic_GeneralProperty.cxx | 5 +- src/StepBasic/StepBasic_GeneralProperty.hxx | 91 + src/StepBasic/StepBasic_Group.cdl | 52 - src/StepBasic/StepBasic_Group.cxx | 5 +- src/StepBasic/StepBasic_Group.hxx | 84 + src/StepBasic/StepBasic_GroupAssignment.cdl | 41 - src/StepBasic/StepBasic_GroupAssignment.cxx | 5 +- src/StepBasic/StepBasic_GroupAssignment.hxx | 72 + src/StepBasic/StepBasic_GroupRelationship.cdl | 67 - src/StepBasic/StepBasic_GroupRelationship.cxx | 6 +- src/StepBasic/StepBasic_GroupRelationship.hxx | 99 + .../StepBasic_IdentificationAssignment.cdl | 49 - .../StepBasic_IdentificationAssignment.cxx | 6 +- .../StepBasic_IdentificationAssignment.hxx | 80 + .../StepBasic_IdentificationRole.cdl | 52 - .../StepBasic_IdentificationRole.cxx | 5 +- .../StepBasic_IdentificationRole.hxx | 84 + .../StepBasic_LengthMeasureWithUnit.cdl | 31 - .../StepBasic_LengthMeasureWithUnit.cxx | 3 +- .../StepBasic_LengthMeasureWithUnit.hxx | 62 + src/StepBasic/StepBasic_LengthUnit.cdl | 30 - src/StepBasic/StepBasic_LengthUnit.cxx | 3 +- src/StepBasic/StepBasic_LengthUnit.hxx | 62 + src/StepBasic/StepBasic_LocalTime.cdl | 64 - src/StepBasic/StepBasic_LocalTime.cxx | 4 +- src/StepBasic/StepBasic_LocalTime.hxx | 98 + .../StepBasic_MassMeasureWithUnit.cdl | 30 - .../StepBasic_MassMeasureWithUnit.cxx | 4 +- .../StepBasic_MassMeasureWithUnit.hxx | 61 + src/StepBasic/StepBasic_MassUnit.cdl | 30 - src/StepBasic/StepBasic_MassUnit.cxx | 4 +- src/StepBasic/StepBasic_MassUnit.hxx | 61 + .../StepBasic_MeasureValueMember.cdl | 62 - .../StepBasic_MeasureValueMember.cxx | 5 +- .../StepBasic_MeasureValueMember.hxx | 76 + src/StepBasic/StepBasic_MeasureWithUnit.cdl | 49 - src/StepBasic/StepBasic_MeasureWithUnit.cxx | 6 +- src/StepBasic/StepBasic_MeasureWithUnit.hxx | 82 + src/StepBasic/StepBasic_MechanicalContext.cdl | 24 - src/StepBasic/StepBasic_MechanicalContext.cxx | 3 +- src/StepBasic/StepBasic_MechanicalContext.hxx | 62 + src/StepBasic/StepBasic_NameAssignment.cdl | 41 - src/StepBasic/StepBasic_NameAssignment.cxx | 5 +- src/StepBasic/StepBasic_NameAssignment.hxx | 72 + src/StepBasic/StepBasic_NamedUnit.cdl | 49 - src/StepBasic/StepBasic_NamedUnit.cxx | 4 +- src/StepBasic/StepBasic_NamedUnit.hxx | 70 + src/StepBasic/StepBasic_ObjectRole.cdl | 52 - src/StepBasic/StepBasic_ObjectRole.cxx | 5 +- src/StepBasic/StepBasic_ObjectRole.hxx | 84 + src/StepBasic/StepBasic_OrdinalDate.cdl | 46 - src/StepBasic/StepBasic_OrdinalDate.cxx | 3 +- src/StepBasic/StepBasic_OrdinalDate.hxx | 72 + src/StepBasic/StepBasic_Organization.cdl | 54 - src/StepBasic/StepBasic_Organization.cxx | 4 +- src/StepBasic/StepBasic_Organization.hxx | 86 + .../StepBasic_OrganizationAssignment.cdl | 43 - .../StepBasic_OrganizationAssignment.cxx | 6 +- .../StepBasic_OrganizationAssignment.hxx | 73 + src/StepBasic/StepBasic_OrganizationRole.cdl | 41 - src/StepBasic/StepBasic_OrganizationRole.cxx | 4 +- src/StepBasic/StepBasic_OrganizationRole.hxx | 70 + .../StepBasic_OrganizationalAddress.cdl | 100 - .../StepBasic_OrganizationalAddress.cxx | 5 +- .../StepBasic_OrganizationalAddress.hxx | 85 + src/StepBasic/StepBasic_Person.cdl | 89 - src/StepBasic/StepBasic_Person.cxx | 4 +- src/StepBasic/StepBasic_Person.hxx | 135 + .../StepBasic_PersonAndOrganization.cdl | 46 - .../StepBasic_PersonAndOrganization.cxx | 5 +- .../StepBasic_PersonAndOrganization.hxx | 76 + ...pBasic_PersonAndOrganizationAssignment.cdl | 43 - ...pBasic_PersonAndOrganizationAssignment.cxx | 6 +- ...pBasic_PersonAndOrganizationAssignment.hxx | 73 + .../StepBasic_PersonAndOrganizationRole.cdl | 41 - .../StepBasic_PersonAndOrganizationRole.cxx | 4 +- .../StepBasic_PersonAndOrganizationRole.hxx | 70 + .../StepBasic_PersonOrganizationSelect.cdl | 50 - .../StepBasic_PersonOrganizationSelect.cxx | 6 +- .../StepBasic_PersonOrganizationSelect.hxx | 82 + src/StepBasic/StepBasic_PersonalAddress.cdl | 100 - src/StepBasic/StepBasic_PersonalAddress.cxx | 5 +- src/StepBasic/StepBasic_PersonalAddress.hxx | 85 + ...sic_PhysicallyModeledProductDefinition.cdl | 27 - ...sic_PhysicallyModeledProductDefinition.cxx | 4 +- ...sic_PhysicallyModeledProductDefinition.hxx | 61 + .../StepBasic_PlaneAngleMeasureWithUnit.cdl | 31 - .../StepBasic_PlaneAngleMeasureWithUnit.cxx | 3 +- .../StepBasic_PlaneAngleMeasureWithUnit.hxx | 62 + src/StepBasic/StepBasic_PlaneAngleUnit.cdl | 30 - src/StepBasic/StepBasic_PlaneAngleUnit.cxx | 3 +- src/StepBasic/StepBasic_PlaneAngleUnit.hxx | 62 + src/StepBasic/StepBasic_Product.cdl | 57 - src/StepBasic/StepBasic_Product.cxx | 5 +- src/StepBasic/StepBasic_Product.hxx | 92 + src/StepBasic/StepBasic_ProductCategory.cdl | 50 - src/StepBasic/StepBasic_ProductCategory.cxx | 4 +- src/StepBasic/StepBasic_ProductCategory.hxx | 81 + .../StepBasic_ProductCategoryRelationship.cdl | 68 - .../StepBasic_ProductCategoryRelationship.cxx | 6 +- .../StepBasic_ProductCategoryRelationship.hxx | 100 + .../StepBasic_ProductConceptContext.cdl | 45 - .../StepBasic_ProductConceptContext.cxx | 6 +- .../StepBasic_ProductConceptContext.hxx | 74 + src/StepBasic/StepBasic_ProductContext.cdl | 49 - src/StepBasic/StepBasic_ProductContext.cxx | 5 +- src/StepBasic/StepBasic_ProductContext.hxx | 73 + src/StepBasic/StepBasic_ProductDefinition.cdl | 55 - src/StepBasic/StepBasic_ProductDefinition.cxx | 6 +- src/StepBasic/StepBasic_ProductDefinition.hxx | 87 + .../StepBasic_ProductDefinitionContext.cdl | 49 - .../StepBasic_ProductDefinitionContext.cxx | 5 +- .../StepBasic_ProductDefinitionContext.hxx | 73 + ...StepBasic_ProductDefinitionEffectivity.cdl | 38 - ...StepBasic_ProductDefinitionEffectivity.cxx | 6 +- ...StepBasic_ProductDefinitionEffectivity.hxx | 70 + .../StepBasic_ProductDefinitionFormation.cdl | 50 - .../StepBasic_ProductDefinitionFormation.cxx | 5 +- .../StepBasic_ProductDefinitionFormation.hxx | 81 + ...ProductDefinitionFormationRelationship.cdl | 70 - ...ProductDefinitionFormationRelationship.cxx | 6 +- ...ProductDefinitionFormationRelationship.hxx | 101 + ...DefinitionFormationWithSpecifiedSource.cdl | 52 - ...DefinitionFormationWithSpecifiedSource.cxx | 5 +- ...DefinitionFormationWithSpecifiedSource.hxx | 74 + ...tepBasic_ProductDefinitionRelationship.cdl | 74 - ...tepBasic_ProductDefinitionRelationship.cxx | 6 +- ...tepBasic_ProductDefinitionRelationship.hxx | 106 + ...oductDefinitionWithAssociatedDocuments.cdl | 48 - ...oductDefinitionWithAssociatedDocuments.cxx | 8 +- ...oductDefinitionWithAssociatedDocuments.hxx | 80 + ...epBasic_ProductOrFormationOrDefinition.cdl | 48 - ...epBasic_ProductOrFormationOrDefinition.cxx | 6 +- ...epBasic_ProductOrFormationOrDefinition.hxx | 81 + ...tepBasic_ProductRelatedProductCategory.cdl | 55 - ...tepBasic_ProductRelatedProductCategory.cxx | 5 +- ...tepBasic_ProductRelatedProductCategory.hxx | 80 + src/StepBasic/StepBasic_ProductType.cdl | 32 - src/StepBasic/StepBasic_ProductType.cxx | 3 +- src/StepBasic/StepBasic_ProductType.hxx | 62 + .../StepBasic_RatioMeasureWithUnit.cdl | 31 - .../StepBasic_RatioMeasureWithUnit.cxx | 3 +- .../StepBasic_RatioMeasureWithUnit.hxx | 62 + src/StepBasic/StepBasic_RatioUnit.cdl | 30 - src/StepBasic/StepBasic_RatioUnit.cxx | 3 +- src/StepBasic/StepBasic_RatioUnit.hxx | 62 + src/StepBasic/StepBasic_RoleAssociation.cdl | 49 - src/StepBasic/StepBasic_RoleAssociation.cxx | 6 +- src/StepBasic/StepBasic_RoleAssociation.hxx | 81 + src/StepBasic/StepBasic_RoleSelect.cdl | 88 - src/StepBasic/StepBasic_RoleSelect.cxx | 4 +- src/StepBasic/StepBasic_RoleSelect.hxx | 121 + .../StepBasic_SecurityClassification.cdl | 50 - .../StepBasic_SecurityClassification.cxx | 5 +- .../StepBasic_SecurityClassification.hxx | 81 + ...Basic_SecurityClassificationAssignment.cdl | 38 - ...Basic_SecurityClassificationAssignment.cxx | 5 +- ...Basic_SecurityClassificationAssignment.hxx | 67 + .../StepBasic_SecurityClassificationLevel.cdl | 41 - .../StepBasic_SecurityClassificationLevel.cxx | 4 +- .../StepBasic_SecurityClassificationLevel.hxx | 70 + src/StepBasic/StepBasic_SiPrefix.hxx | 41 + src/StepBasic/StepBasic_SiUnit.cdl | 63 - src/StepBasic/StepBasic_SiUnit.cxx | 4 +- src/StepBasic/StepBasic_SiUnit.hxx | 89 + src/StepBasic/StepBasic_SiUnitAndAreaUnit.cdl | 43 - src/StepBasic/StepBasic_SiUnitAndAreaUnit.cxx | 6 +- src/StepBasic/StepBasic_SiUnitAndAreaUnit.hxx | 73 + .../StepBasic_SiUnitAndLengthUnit.cdl | 51 - .../StepBasic_SiUnitAndLengthUnit.cxx | 8 +- .../StepBasic_SiUnitAndLengthUnit.hxx | 76 + src/StepBasic/StepBasic_SiUnitAndMassUnit.cdl | 50 - src/StepBasic/StepBasic_SiUnitAndMassUnit.cxx | 9 +- src/StepBasic/StepBasic_SiUnitAndMassUnit.hxx | 75 + .../StepBasic_SiUnitAndPlaneAngleUnit.cdl | 50 - .../StepBasic_SiUnitAndPlaneAngleUnit.cxx | 8 +- .../StepBasic_SiUnitAndPlaneAngleUnit.hxx | 76 + .../StepBasic_SiUnitAndRatioUnit.cdl | 50 - .../StepBasic_SiUnitAndRatioUnit.cxx | 8 +- .../StepBasic_SiUnitAndRatioUnit.hxx | 76 + .../StepBasic_SiUnitAndSolidAngleUnit.cdl | 50 - .../StepBasic_SiUnitAndSolidAngleUnit.cxx | 6 +- .../StepBasic_SiUnitAndSolidAngleUnit.hxx | 76 + ..._SiUnitAndThermodynamicTemperatureUnit.cdl | 49 - ..._SiUnitAndThermodynamicTemperatureUnit.cxx | 7 +- ..._SiUnitAndThermodynamicTemperatureUnit.hxx | 75 + src/StepBasic/StepBasic_SiUnitAndTimeUnit.cdl | 50 - src/StepBasic/StepBasic_SiUnitAndTimeUnit.cxx | 6 +- src/StepBasic/StepBasic_SiUnitAndTimeUnit.hxx | 76 + .../StepBasic_SiUnitAndVolumeUnit.cdl | 43 - .../StepBasic_SiUnitAndVolumeUnit.cxx | 6 +- .../StepBasic_SiUnitAndVolumeUnit.hxx | 73 + src/StepBasic/StepBasic_SiUnitName.hxx | 53 + src/StepBasic/StepBasic_SizeMember.cdl | 37 - src/StepBasic/StepBasic_SizeMember.cxx | 4 +- src/StepBasic/StepBasic_SizeMember.hxx | 70 + src/StepBasic/StepBasic_SizeSelect.cdl | 50 - src/StepBasic/StepBasic_SizeSelect.cxx | 9 +- src/StepBasic/StepBasic_SizeSelect.hxx | 83 + .../StepBasic_SolidAngleMeasureWithUnit.cdl | 31 - .../StepBasic_SolidAngleMeasureWithUnit.cxx | 3 +- .../StepBasic_SolidAngleMeasureWithUnit.hxx | 62 + src/StepBasic/StepBasic_SolidAngleUnit.cdl | 30 - src/StepBasic/StepBasic_SolidAngleUnit.cxx | 3 +- src/StepBasic/StepBasic_SolidAngleUnit.hxx | 62 + src/StepBasic/StepBasic_Source.hxx | 28 + src/StepBasic/StepBasic_SourceItem.cdl | 41 - src/StepBasic/StepBasic_SourceItem.cxx | 5 +- src/StepBasic/StepBasic_SourceItem.hxx | 74 + ...StepBasic_ThermodynamicTemperatureUnit.cdl | 30 - ...StepBasic_ThermodynamicTemperatureUnit.cxx | 4 +- ...StepBasic_ThermodynamicTemperatureUnit.hxx | 61 + .../StepBasic_TimeMeasureWithUnit.cdl | 31 - .../StepBasic_TimeMeasureWithUnit.cxx | 3 +- .../StepBasic_TimeMeasureWithUnit.hxx | 62 + src/StepBasic/StepBasic_TimeUnit.cdl | 30 - src/StepBasic/StepBasic_TimeUnit.cxx | 3 +- src/StepBasic/StepBasic_TimeUnit.hxx | 62 + .../StepBasic_UncertaintyMeasureWithUnit.cdl | 54 - .../StepBasic_UncertaintyMeasureWithUnit.cxx | 7 +- .../StepBasic_UncertaintyMeasureWithUnit.hxx | 79 + src/StepBasic/StepBasic_Unit.cdl | 40 - src/StepBasic/StepBasic_Unit.cxx | 7 +- src/StepBasic/StepBasic_Unit.hxx | 76 + .../StepBasic_VersionedActionRequest.cdl | 67 - .../StepBasic_VersionedActionRequest.cxx | 5 +- .../StepBasic_VersionedActionRequest.hxx | 99 + src/StepBasic/StepBasic_VolumeUnit.cdl | 26 - src/StepBasic/StepBasic_VolumeUnit.cxx | 4 +- src/StepBasic/StepBasic_VolumeUnit.hxx | 61 + .../StepBasic_WeekOfYearAndDayDate.cdl | 55 - .../StepBasic_WeekOfYearAndDayDate.cxx | 3 +- .../StepBasic_WeekOfYearAndDayDate.hxx | 83 + src/StepData/FILES | 81 + src/StepData/StepData.cdl | 107 - src/StepData/StepData.cxx | 14 +- src/StepData/StepData.hxx | 154 + src/StepData/StepData_DefaultGeneral.cdl | 53 - src/StepData/StepData_DefaultGeneral.cxx | 20 +- src/StepData/StepData_DefaultGeneral.hxx | 85 + src/StepData/StepData_DescrGeneral.cdl | 48 - src/StepData/StepData_DescrGeneral.cxx | 13 +- src/StepData/StepData_DescrGeneral.hxx | 78 + src/StepData/StepData_DescrProtocol.cdl | 53 - src/StepData/StepData_DescrProtocol.cxx | 9 +- src/StepData/StepData_DescrProtocol.hxx | 86 + src/StepData/StepData_DescrReadWrite.cdl | 54 - src/StepData/StepData_DescrReadWrite.cxx | 18 +- src/StepData/StepData_DescrReadWrite.hxx | 85 + src/StepData/StepData_Described.cdl | 77 - src/StepData/StepData_Described.cxx | 10 +- src/StepData/StepData_Described.hxx | 104 + src/StepData/StepData_ECDescr.cdl | 59 - src/StepData/StepData_ECDescr.cxx | 9 +- src/StepData/StepData_ECDescr.hxx | 93 + src/StepData/StepData_EDescr.cdl | 36 - src/StepData/StepData_EDescr.cxx | 5 +- src/StepData/StepData_EDescr.hxx | 72 + src/StepData/StepData_ESDescr.cdl | 98 - src/StepData/StepData_ESDescr.cxx | 11 +- src/StepData/StepData_ESDescr.hxx | 133 + src/StepData/StepData_EnumTool.cdl | 112 - src/StepData/StepData_EnumTool.cxx | 4 +- src/StepData/StepData_EnumTool.hxx | 144 + src/StepData/StepData_Field.cdl | 188 - src/StepData/StepData_Field.cxx | 12 +- src/StepData/StepData_Field.hxx | 210 ++ src/StepData/StepData_FieldList.cdl | 53 - src/StepData/StepData_FieldList.cxx | 6 +- src/StepData/StepData_FieldList.hxx | 79 + src/StepData/StepData_FieldList1.cdl | 55 - src/StepData/StepData_FieldList1.cxx | 5 +- src/StepData/StepData_FieldList1.hxx | 79 + src/StepData/StepData_FieldListD.cdl | 61 - src/StepData/StepData_FieldListD.cxx | 5 +- src/StepData/StepData_FieldListD.hxx | 84 + src/StepData/StepData_FieldListN.cdl | 58 - src/StepData/StepData_FieldListN.cxx | 5 +- src/StepData/StepData_FieldListN.hxx | 81 + src/StepData/StepData_FileProtocol.cdl | 68 - src/StepData/StepData_FileProtocol.cxx | 8 +- src/StepData/StepData_FileProtocol.hxx | 103 + src/StepData/StepData_FileRecognizer.hxx | 80 + src/StepData/StepData_FileRecognizer_0.cxx | 44 + src/StepData/StepData_FreeFormEntity.cdl | 91 - src/StepData/StepData_FreeFormEntity.cxx | 7 +- src/StepData/StepData_FreeFormEntity.hxx | 124 + src/StepData/StepData_GeneralModule.cdl | 53 - src/StepData/StepData_GeneralModule.cxx | 9 +- src/StepData/StepData_GeneralModule.hxx | 81 + .../StepData_GlobalNodeOfWriterLib.hxx | 77 + .../StepData_GlobalNodeOfWriterLib_0.cxx | 54 + src/StepData/StepData_HeaderTool.cdl | 88 - src/StepData/StepData_HeaderTool.cxx | 12 +- src/StepData/StepData_HeaderTool.hxx | 117 + src/StepData/StepData_Logical.hxx | 28 + src/StepData/StepData_NodeOfWriterLib.hxx | 76 + src/StepData/StepData_NodeOfWriterLib_0.cxx | 54 + src/StepData/StepData_PDescr.cdl | 218 -- src/StepData/StepData_PDescr.cxx | 7 +- src/StepData/StepData_PDescr.hxx | 252 ++ src/StepData/StepData_Plex.cdl | 97 - src/StepData/StepData_Plex.cxx | 10 +- src/StepData/StepData_Plex.hxx | 120 + src/StepData/StepData_Protocol.cdl | 137 - src/StepData/StepData_Protocol.cxx | 22 +- src/StepData/StepData_Protocol.hxx | 165 + src/StepData/StepData_ReadWriteModule.cdl | 107 - src/StepData/StepData_ReadWriteModule.cxx | 14 +- src/StepData/StepData_ReadWriteModule.hxx | 133 + src/StepData/StepData_SelectArrReal.cdl | 48 - src/StepData/StepData_SelectArrReal.cxx | 4 +- src/StepData/StepData_SelectArrReal.hxx | 69 + src/StepData/StepData_SelectInt.cdl | 45 - src/StepData/StepData_SelectInt.cxx | 4 +- src/StepData/StepData_SelectInt.hxx | 75 + src/StepData/StepData_SelectMember.cdl | 111 - src/StepData/StepData_SelectMember.cxx | 4 +- src/StepData/StepData_SelectMember.hxx | 142 + src/StepData/StepData_SelectNamed.cdl | 70 - src/StepData/StepData_SelectNamed.cxx | 5 +- src/StepData/StepData_SelectNamed.hxx | 102 + src/StepData/StepData_SelectReal.cdl | 41 - src/StepData/StepData_SelectReal.cxx | 4 +- src/StepData/StepData_SelectReal.hxx | 73 + src/StepData/StepData_SelectType.cdl | 163 - src/StepData/StepData_SelectType.cxx | 13 +- src/StepData/StepData_SelectType.hxx | 187 + src/StepData/StepData_Simple.cdl | 104 - src/StepData/StepData_Simple.cxx | 8 +- src/StepData/StepData_Simple.hxx | 123 + src/StepData/StepData_StepDumper.cdl | 89 - src/StepData/StepData_StepDumper.cxx | 18 +- src/StepData/StepData_StepDumper.hxx | 116 + src/StepData/StepData_StepModel.cdl | 99 - src/StepData/StepData_StepModel.cxx | 23 +- src/StepData/StepData_StepModel.hxx | 132 + src/StepData/StepData_StepReaderData.cdl | 353 -- src/StepData/StepData_StepReaderData.cxx | 48 +- src/StepData/StepData_StepReaderData.hxx | 338 ++ src/StepData/StepData_StepReaderTool.cdl | 95 - src/StepData/StepData_StepReaderTool.cxx | 19 +- src/StepData/StepData_StepReaderTool.hxx | 118 + src/StepData/StepData_StepWriter.cdl | 308 -- src/StepData/StepData_StepWriter.cxx | 33 +- src/StepData/StepData_StepWriter.hxx | 324 ++ src/StepData/StepData_UndefinedEntity.cdl | 85 - src/StepData/StepData_UndefinedEntity.cxx | 15 +- src/StepData/StepData_UndefinedEntity.hxx | 120 + src/StepData/StepData_WriterLib.hxx | 91 + src/StepData/StepData_WriterLib_0.cxx | 44 + src/StepDimTol/FILES | 55 + src/StepDimTol/StepDimTol.cdl | 74 - .../StepDimTol_AngularityTolerance.cdl | 33 - .../StepDimTol_AngularityTolerance.cxx | 4 +- .../StepDimTol_AngularityTolerance.hxx | 61 + .../StepDimTol_CircularRunoutTolerance.cdl | 33 - .../StepDimTol_CircularRunoutTolerance.cxx | 4 +- .../StepDimTol_CircularRunoutTolerance.hxx | 61 + .../StepDimTol_CoaxialityTolerance.cdl | 33 - .../StepDimTol_CoaxialityTolerance.cxx | 4 +- .../StepDimTol_CoaxialityTolerance.hxx | 61 + src/StepDimTol/StepDimTol_CommonDatum.cdl | 52 - src/StepDimTol/StepDimTol_CommonDatum.cxx | 7 +- src/StepDimTol/StepDimTol_CommonDatum.hxx | 75 + .../StepDimTol_ConcentricityTolerance.cdl | 33 - .../StepDimTol_ConcentricityTolerance.cxx | 4 +- .../StepDimTol_ConcentricityTolerance.hxx | 61 + .../StepDimTol_CylindricityTolerance.cdl | 32 - .../StepDimTol_CylindricityTolerance.cxx | 4 +- .../StepDimTol_CylindricityTolerance.hxx | 61 + src/StepDimTol/StepDimTol_Datum.cdl | 47 - src/StepDimTol/StepDimTol_Datum.cxx | 6 +- src/StepDimTol/StepDimTol_Datum.hxx | 74 + src/StepDimTol/StepDimTol_DatumFeature.cdl | 32 - src/StepDimTol/StepDimTol_DatumFeature.cxx | 4 +- src/StepDimTol/StepDimTol_DatumFeature.hxx | 61 + src/StepDimTol/StepDimTol_DatumReference.cdl | 48 - src/StepDimTol/StepDimTol_DatumReference.cxx | 5 +- src/StepDimTol/StepDimTol_DatumReference.hxx | 80 + src/StepDimTol/StepDimTol_DatumTarget.cdl | 47 - src/StepDimTol/StepDimTol_DatumTarget.cxx | 6 +- src/StepDimTol/StepDimTol_DatumTarget.hxx | 74 + .../StepDimTol_FlatnessTolerance.cdl | 32 - .../StepDimTol_FlatnessTolerance.cxx | 4 +- .../StepDimTol_FlatnessTolerance.hxx | 61 + ...ndGeoTolWthDatRefAndModGeoTolAndPosTol.cdl | 57 - ...ndGeoTolWthDatRefAndModGeoTolAndPosTol.cxx | 10 +- ...ndGeoTolWthDatRefAndModGeoTolAndPosTol.hxx | 83 + .../StepDimTol_GeometricTolerance.cdl | 64 - .../StepDimTol_GeometricTolerance.cxx | 7 +- .../StepDimTol_GeometricTolerance.hxx | 95 + ...pDimTol_GeometricToleranceRelationship.cdl | 63 - ...pDimTol_GeometricToleranceRelationship.cxx | 6 +- ...pDimTol_GeometricToleranceRelationship.hxx | 94 + ...l_GeometricToleranceWithDatumReference.cdl | 48 - ...l_GeometricToleranceWithDatumReference.cxx | 7 +- ...l_GeometricToleranceWithDatumReference.hxx | 75 + src/StepDimTol/StepDimTol_LimitCondition.hxx | 27 + .../StepDimTol_LineProfileTolerance.cdl | 32 - .../StepDimTol_LineProfileTolerance.cxx | 4 +- .../StepDimTol_LineProfileTolerance.hxx | 61 + .../StepDimTol_ModifiedGeometricTolerance.cdl | 48 - .../StepDimTol_ModifiedGeometricTolerance.cxx | 7 +- .../StepDimTol_ModifiedGeometricTolerance.hxx | 75 + .../StepDimTol_ParallelismTolerance.cdl | 33 - .../StepDimTol_ParallelismTolerance.cxx | 4 +- .../StepDimTol_ParallelismTolerance.hxx | 61 + .../StepDimTol_PerpendicularityTolerance.cdl | 33 - .../StepDimTol_PerpendicularityTolerance.cxx | 4 +- .../StepDimTol_PerpendicularityTolerance.hxx | 61 + .../StepDimTol_PlacedDatumTargetFeature.cdl | 32 - .../StepDimTol_PlacedDatumTargetFeature.cxx | 4 +- .../StepDimTol_PlacedDatumTargetFeature.hxx | 61 + .../StepDimTol_PositionTolerance.cdl | 32 - .../StepDimTol_PositionTolerance.cxx | 4 +- .../StepDimTol_PositionTolerance.hxx | 61 + .../StepDimTol_RoundnessTolerance.cdl | 32 - .../StepDimTol_RoundnessTolerance.cxx | 4 +- .../StepDimTol_RoundnessTolerance.hxx | 61 + .../StepDimTol_ShapeToleranceSelect.cdl | 43 - .../StepDimTol_ShapeToleranceSelect.cxx | 4 +- .../StepDimTol_ShapeToleranceSelect.hxx | 76 + .../StepDimTol_StraightnessTolerance.cdl | 32 - .../StepDimTol_StraightnessTolerance.cxx | 4 +- .../StepDimTol_StraightnessTolerance.hxx | 61 + .../StepDimTol_SurfaceProfileTolerance.cdl | 32 - .../StepDimTol_SurfaceProfileTolerance.cxx | 4 +- .../StepDimTol_SurfaceProfileTolerance.hxx | 61 + .../StepDimTol_SymmetryTolerance.cdl | 33 - .../StepDimTol_SymmetryTolerance.cxx | 4 +- .../StepDimTol_SymmetryTolerance.hxx | 61 + .../StepDimTol_TotalRunoutTolerance.cdl | 33 - .../StepDimTol_TotalRunoutTolerance.cxx | 4 +- .../StepDimTol_TotalRunoutTolerance.hxx | 61 + src/StepElement/FILES | 108 +- src/StepElement/StepElement.cdl | 169 - ...ement_AnalysisItemWithinRepresentation.cdl | 64 - ...ement_AnalysisItemWithinRepresentation.cxx | 7 +- ...ement_AnalysisItemWithinRepresentation.hxx | 95 + .../StepElement_Curve3dElementDescriptor.cdl | 46 - .../StepElement_Curve3dElementDescriptor.cxx | 5 +- .../StepElement_Curve3dElementDescriptor.hxx | 74 + src/StepElement/StepElement_CurveEdge.hxx | 23 + ...epElement_CurveElementEndReleasePacket.cdl | 48 - ...epElement_CurveElementEndReleasePacket.cxx | 5 +- ...epElement_CurveElementEndReleasePacket.hxx | 81 + .../StepElement_CurveElementFreedom.cdl | 58 - .../StepElement_CurveElementFreedom.cxx | 4 +- .../StepElement_CurveElementFreedom.hxx | 90 + .../StepElement_CurveElementFreedomMember.cdl | 43 - .../StepElement_CurveElementFreedomMember.cxx | 3 +- .../StepElement_CurveElementFreedomMember.hxx | 77 + .../StepElement_CurveElementPurpose.cdl | 58 - .../StepElement_CurveElementPurpose.cxx | 5 +- .../StepElement_CurveElementPurpose.hxx | 90 + .../StepElement_CurveElementPurposeMember.cdl | 43 - .../StepElement_CurveElementPurposeMember.cxx | 3 +- .../StepElement_CurveElementPurposeMember.hxx | 77 + ...pElement_CurveElementSectionDefinition.cdl | 48 - ...pElement_CurveElementSectionDefinition.cxx | 5 +- ...pElement_CurveElementSectionDefinition.hxx | 80 + ..._CurveElementSectionDerivedDefinitions.cdl | 110 - ..._CurveElementSectionDerivedDefinitions.cxx | 6 +- ..._CurveElementSectionDerivedDefinitions.hxx | 140 + .../StepElement_Element2dShape.hxx | 24 + src/StepElement/StepElement_ElementAspect.cdl | 114 - src/StepElement/StepElement_ElementAspect.cxx | 5 +- src/StepElement/StepElement_ElementAspect.hxx | 146 + .../StepElement_ElementAspectMember.cdl | 43 - .../StepElement_ElementAspectMember.cxx | 3 +- .../StepElement_ElementAspectMember.hxx | 77 + .../StepElement_ElementDescriptor.cdl | 49 - .../StepElement_ElementDescriptor.cxx | 5 +- .../StepElement_ElementDescriptor.hxx | 80 + .../StepElement_ElementMaterial.cdl | 56 - .../StepElement_ElementMaterial.cxx | 5 +- .../StepElement_ElementMaterial.hxx | 87 + src/StepElement/StepElement_ElementOrder.hxx | 25 + src/StepElement/StepElement_ElementVolume.hxx | 23 + ...pElement_EnumeratedCurveElementFreedom.hxx | 30 + ...pElement_EnumeratedCurveElementPurpose.hxx | 29 + ...lement_EnumeratedSurfaceElementPurpose.hxx | 27 + ...Element_EnumeratedVolumeElementPurpose.hxx | 23 + .../StepElement_MeasureOrUnspecifiedValue.cdl | 56 - .../StepElement_MeasureOrUnspecifiedValue.cxx | 4 +- .../StepElement_MeasureOrUnspecifiedValue.hxx | 90 + ...lement_MeasureOrUnspecifiedValueMember.cdl | 43 - ...lement_MeasureOrUnspecifiedValueMember.cxx | 4 +- ...lement_MeasureOrUnspecifiedValueMember.hxx | 77 + ...StepElement_Surface3dElementDescriptor.cdl | 53 - ...StepElement_Surface3dElementDescriptor.cxx | 5 +- ...StepElement_Surface3dElementDescriptor.hxx | 82 + .../StepElement_SurfaceElementProperty.cdl | 56 - .../StepElement_SurfaceElementProperty.cxx | 6 +- .../StepElement_SurfaceElementProperty.hxx | 87 + .../StepElement_SurfaceElementPurpose.cdl | 58 - .../StepElement_SurfaceElementPurpose.cxx | 5 +- .../StepElement_SurfaceElementPurpose.hxx | 90 + ...tepElement_SurfaceElementPurposeMember.cdl | 43 - ...tepElement_SurfaceElementPurposeMember.cxx | 3 +- ...tepElement_SurfaceElementPurposeMember.hxx | 77 + .../StepElement_SurfaceSection.cdl | 55 - .../StepElement_SurfaceSection.cxx | 5 +- .../StepElement_SurfaceSection.hxx | 87 + .../StepElement_SurfaceSectionField.cdl | 27 - .../StepElement_SurfaceSectionField.cxx | 4 +- .../StepElement_SurfaceSectionField.hxx | 61 + ...tepElement_SurfaceSectionFieldConstant.cdl | 41 - ...tepElement_SurfaceSectionFieldConstant.cxx | 5 +- ...tepElement_SurfaceSectionFieldConstant.hxx | 72 + ...StepElement_SurfaceSectionFieldVarying.cdl | 48 - ...StepElement_SurfaceSectionFieldVarying.cxx | 4 +- ...StepElement_SurfaceSectionFieldVarying.hxx | 80 + .../StepElement_UniformSurfaceSection.cdl | 58 - .../StepElement_UniformSurfaceSection.cxx | 5 +- .../StepElement_UniformSurfaceSection.hxx | 88 + .../StepElement_UnspecifiedValue.hxx | 23 + .../StepElement_Volume3dElementDescriptor.cdl | 53 - .../StepElement_Volume3dElementDescriptor.cxx | 5 +- .../StepElement_Volume3dElementDescriptor.hxx | 82 + .../StepElement_Volume3dElementShape.hxx | 26 + .../StepElement_VolumeElementPurpose.cdl | 58 - .../StepElement_VolumeElementPurpose.cxx | 5 +- .../StepElement_VolumeElementPurpose.hxx | 90 + ...StepElement_VolumeElementPurposeMember.cdl | 43 - ...StepElement_VolumeElementPurposeMember.cxx | 3 +- ...StepElement_VolumeElementPurposeMember.hxx | 77 + src/StepFEA/FILES | 155 +- src/StepFEA/StepFEA.cdl | 150 - ..._AlignedCurve3dElementCoordinateSystem.cdl | 43 - ..._AlignedCurve3dElementCoordinateSystem.cxx | 6 +- ..._AlignedCurve3dElementCoordinateSystem.hxx | 73 + ...lignedSurface3dElementCoordinateSystem.cdl | 43 - ...lignedSurface3dElementCoordinateSystem.cxx | 6 +- ...lignedSurface3dElementCoordinateSystem.hxx | 73 + ...bitraryVolume3dElementCoordinateSystem.cdl | 43 - ...bitraryVolume3dElementCoordinateSystem.cxx | 6 +- ...bitraryVolume3dElementCoordinateSystem.hxx | 73 + ...nstantSurface3dElementCoordinateSystem.cdl | 49 - ...nstantSurface3dElementCoordinateSystem.cxx | 5 +- ...nstantSurface3dElementCoordinateSystem.hxx | 81 + src/StepFEA/StepFEA_CoordinateSystemType.hxx | 25 + .../StepFEA_Curve3dElementProperty.cdl | 72 - .../StepFEA_Curve3dElementProperty.cxx | 5 +- .../StepFEA_Curve3dElementProperty.hxx | 103 + .../StepFEA_Curve3dElementRepresentation.cdl | 73 - .../StepFEA_Curve3dElementRepresentation.cxx | 10 +- .../StepFEA_Curve3dElementRepresentation.hxx | 100 + src/StepFEA/StepFEA_CurveEdge.hxx | 23 + ...tepFEA_CurveElementEndCoordinateSystem.cdl | 48 - ...tepFEA_CurveElementEndCoordinateSystem.cxx | 6 +- ...tepFEA_CurveElementEndCoordinateSystem.hxx | 81 + src/StepFEA/StepFEA_CurveElementEndOffset.cdl | 49 - src/StepFEA/StepFEA_CurveElementEndOffset.cxx | 5 +- src/StepFEA/StepFEA_CurveElementEndOffset.hxx | 81 + .../StepFEA_CurveElementEndRelease.cdl | 49 - .../StepFEA_CurveElementEndRelease.cxx | 5 +- .../StepFEA_CurveElementEndRelease.hxx | 81 + src/StepFEA/StepFEA_CurveElementInterval.cdl | 49 - src/StepFEA/StepFEA_CurveElementInterval.cxx | 6 +- src/StepFEA/StepFEA_CurveElementInterval.hxx | 80 + .../StepFEA_CurveElementIntervalConstant.cdl | 45 - .../StepFEA_CurveElementIntervalConstant.cxx | 7 +- .../StepFEA_CurveElementIntervalConstant.hxx | 74 + ...EA_CurveElementIntervalLinearlyVarying.cdl | 45 - ...EA_CurveElementIntervalLinearlyVarying.cxx | 6 +- ...EA_CurveElementIntervalLinearlyVarying.hxx | 74 + src/StepFEA/StepFEA_CurveElementLocation.cdl | 41 - src/StepFEA/StepFEA_CurveElementLocation.cxx | 5 +- src/StepFEA/StepFEA_CurveElementLocation.hxx | 72 + src/StepFEA/StepFEA_DegreeOfFreedom.cdl | 57 - src/StepFEA/StepFEA_DegreeOfFreedom.cxx | 5 +- src/StepFEA/StepFEA_DegreeOfFreedom.hxx | 90 + src/StepFEA/StepFEA_DegreeOfFreedomMember.cdl | 43 - src/StepFEA/StepFEA_DegreeOfFreedomMember.cxx | 3 +- src/StepFEA/StepFEA_DegreeOfFreedomMember.hxx | 77 + src/StepFEA/StepFEA_DummyNode.cdl | 33 - src/StepFEA/StepFEA_DummyNode.cxx | 4 +- src/StepFEA/StepFEA_DummyNode.hxx | 61 + .../StepFEA_ElementGeometricRelationship.cdl | 57 - .../StepFEA_ElementGeometricRelationship.cxx | 7 +- .../StepFEA_ElementGeometricRelationship.hxx | 90 + src/StepFEA/StepFEA_ElementGroup.cdl | 46 - src/StepFEA/StepFEA_ElementGroup.cxx | 6 +- src/StepFEA/StepFEA_ElementGroup.hxx | 74 + src/StepFEA/StepFEA_ElementOrElementGroup.cdl | 43 - src/StepFEA/StepFEA_ElementOrElementGroup.cxx | 6 +- src/StepFEA/StepFEA_ElementOrElementGroup.hxx | 76 + src/StepFEA/StepFEA_ElementRepresentation.cdl | 47 - src/StepFEA/StepFEA_ElementRepresentation.cxx | 6 +- src/StepFEA/StepFEA_ElementRepresentation.hxx | 75 + src/StepFEA/StepFEA_ElementVolume.hxx | 23 + .../StepFEA_EnumeratedDegreeOfFreedom.hxx | 29 + src/StepFEA/StepFEA_FeaAreaDensity.cdl | 42 - src/StepFEA/StepFEA_FeaAreaDensity.cxx | 5 +- src/StepFEA/StepFEA_FeaAreaDensity.hxx | 73 + src/StepFEA/StepFEA_FeaAxis2Placement3d.cdl | 57 - src/StepFEA/StepFEA_FeaAxis2Placement3d.cxx | 7 +- src/StepFEA/StepFEA_FeaAxis2Placement3d.hxx | 83 + ...A_FeaCurveSectionGeometricRelationship.cdl | 49 - ...A_FeaCurveSectionGeometricRelationship.cxx | 6 +- ...A_FeaCurveSectionGeometricRelationship.hxx | 80 + src/StepFEA/StepFEA_FeaGroup.cdl | 44 - src/StepFEA/StepFEA_FeaGroup.cxx | 6 +- src/StepFEA/StepFEA_FeaGroup.hxx | 73 + src/StepFEA/StepFEA_FeaLinearElasticity.cdl | 43 - src/StepFEA/StepFEA_FeaLinearElasticity.cxx | 6 +- src/StepFEA/StepFEA_FeaLinearElasticity.hxx | 74 + src/StepFEA/StepFEA_FeaMassDensity.cdl | 42 - src/StepFEA/StepFEA_FeaMassDensity.cxx | 5 +- src/StepFEA/StepFEA_FeaMassDensity.hxx | 73 + ...pFEA_FeaMaterialPropertyRepresentation.cdl | 32 - ...pFEA_FeaMaterialPropertyRepresentation.cxx | 4 +- ...pFEA_FeaMaterialPropertyRepresentation.hxx | 61 + ..._FeaMaterialPropertyRepresentationItem.cdl | 30 - ..._FeaMaterialPropertyRepresentationItem.cxx | 4 +- ..._FeaMaterialPropertyRepresentationItem.hxx | 61 + src/StepFEA/StepFEA_FeaModel.cdl | 68 - src/StepFEA/StepFEA_FeaModel.cxx | 6 +- src/StepFEA/StepFEA_FeaModel.hxx | 96 + src/StepFEA/StepFEA_FeaModel3d.cdl | 33 - src/StepFEA/StepFEA_FeaModel3d.cxx | 4 +- src/StepFEA/StepFEA_FeaModel3d.hxx | 61 + src/StepFEA/StepFEA_FeaModelDefinition.cdl | 32 - src/StepFEA/StepFEA_FeaModelDefinition.cxx | 4 +- src/StepFEA/StepFEA_FeaModelDefinition.hxx | 61 + src/StepFEA/StepFEA_FeaMoistureAbsorption.cdl | 43 - src/StepFEA/StepFEA_FeaMoistureAbsorption.cxx | 6 +- src/StepFEA/StepFEA_FeaMoistureAbsorption.hxx | 74 + src/StepFEA/StepFEA_FeaParametricPoint.cdl | 43 - src/StepFEA/StepFEA_FeaParametricPoint.cxx | 5 +- src/StepFEA/StepFEA_FeaParametricPoint.hxx | 73 + src/StepFEA/StepFEA_FeaRepresentationItem.cdl | 30 - src/StepFEA/StepFEA_FeaRepresentationItem.cxx | 4 +- src/StepFEA/StepFEA_FeaRepresentationItem.hxx | 61 + ...antCoefficientOfLinearThermalExpansion.cdl | 50 - ...antCoefficientOfLinearThermalExpansion.cxx | 6 +- ...antCoefficientOfLinearThermalExpansion.hxx | 82 + .../StepFEA_FeaShellBendingStiffness.cdl | 43 - .../StepFEA_FeaShellBendingStiffness.cxx | 6 +- .../StepFEA_FeaShellBendingStiffness.hxx | 74 + ...aShellMembraneBendingCouplingStiffness.cdl | 43 - ...aShellMembraneBendingCouplingStiffness.cxx | 6 +- ...aShellMembraneBendingCouplingStiffness.hxx | 74 + .../StepFEA_FeaShellMembraneStiffness.cdl | 43 - .../StepFEA_FeaShellMembraneStiffness.cxx | 6 +- .../StepFEA_FeaShellMembraneStiffness.hxx | 74 + .../StepFEA_FeaShellShearStiffness.cdl | 43 - .../StepFEA_FeaShellShearStiffness.cxx | 6 +- .../StepFEA_FeaShellShearStiffness.hxx | 74 + ...FeaSurfaceSectionGeometricRelationship.cdl | 49 - ...FeaSurfaceSectionGeometricRelationship.cxx | 6 +- ...FeaSurfaceSectionGeometricRelationship.hxx | 80 + ...ialCoefficientOfLinearThermalExpansion.cdl | 43 - ...ialCoefficientOfLinearThermalExpansion.cxx | 6 +- ...ialCoefficientOfLinearThermalExpansion.hxx | 74 + src/StepFEA/StepFEA_FreedomAndCoefficient.cdl | 49 - src/StepFEA/StepFEA_FreedomAndCoefficient.cxx | 6 +- src/StepFEA/StepFEA_FreedomAndCoefficient.hxx | 82 + src/StepFEA/StepFEA_FreedomsList.cdl | 41 - src/StepFEA/StepFEA_FreedomsList.cxx | 4 +- src/StepFEA/StepFEA_FreedomsList.hxx | 72 + src/StepFEA/StepFEA_GeometricNode.cdl | 33 - src/StepFEA/StepFEA_GeometricNode.cxx | 4 +- src/StepFEA/StepFEA_GeometricNode.hxx | 61 + src/StepFEA/StepFEA_Node.cdl | 33 - src/StepFEA/StepFEA_Node.cxx | 4 +- src/StepFEA/StepFEA_Node.hxx | 61 + src/StepFEA/StepFEA_NodeDefinition.cdl | 32 - src/StepFEA/StepFEA_NodeDefinition.cxx | 4 +- src/StepFEA/StepFEA_NodeDefinition.hxx | 61 + src/StepFEA/StepFEA_NodeGroup.cdl | 46 - src/StepFEA/StepFEA_NodeGroup.cxx | 6 +- src/StepFEA/StepFEA_NodeGroup.hxx | 74 + src/StepFEA/StepFEA_NodeRepresentation.cdl | 47 - src/StepFEA/StepFEA_NodeRepresentation.cxx | 7 +- src/StepFEA/StepFEA_NodeRepresentation.hxx | 75 + src/StepFEA/StepFEA_NodeSet.cdl | 43 - src/StepFEA/StepFEA_NodeSet.cxx | 5 +- src/StepFEA/StepFEA_NodeSet.hxx | 73 + ...epFEA_NodeWithSolutionCoordinateSystem.cdl | 33 - ...epFEA_NodeWithSolutionCoordinateSystem.cxx | 4 +- ...epFEA_NodeWithSolutionCoordinateSystem.hxx | 61 + src/StepFEA/StepFEA_NodeWithVector.cdl | 33 - src/StepFEA/StepFEA_NodeWithVector.cxx | 4 +- src/StepFEA/StepFEA_NodeWithVector.hxx | 61 + ...etricCurve3dElementCoordinateDirection.cdl | 43 - ...etricCurve3dElementCoordinateDirection.cxx | 6 +- ...etricCurve3dElementCoordinateDirection.hxx | 73 + ...rametricCurve3dElementCoordinateSystem.cdl | 43 - ...rametricCurve3dElementCoordinateSystem.cxx | 6 +- ...rametricCurve3dElementCoordinateSystem.hxx | 73 + ...metricSurface3dElementCoordinateSystem.cdl | 49 - ...metricSurface3dElementCoordinateSystem.cxx | 5 +- ...metricSurface3dElementCoordinateSystem.hxx | 81 + ...StepFEA_Surface3dElementRepresentation.cdl | 73 - ...StepFEA_Surface3dElementRepresentation.cxx | 10 +- ...StepFEA_Surface3dElementRepresentation.hxx | 100 + src/StepFEA/StepFEA_SymmetricTensor22d.cdl | 38 - src/StepFEA/StepFEA_SymmetricTensor22d.cxx | 8 +- src/StepFEA/StepFEA_SymmetricTensor22d.hxx | 71 + src/StepFEA/StepFEA_SymmetricTensor23d.cdl | 65 - src/StepFEA/StepFEA_SymmetricTensor23d.cxx | 5 +- src/StepFEA/StepFEA_SymmetricTensor23d.hxx | 97 + .../StepFEA_SymmetricTensor23dMember.cdl | 42 - .../StepFEA_SymmetricTensor23dMember.cxx | 3 +- .../StepFEA_SymmetricTensor23dMember.hxx | 77 + src/StepFEA/StepFEA_SymmetricTensor42d.cdl | 38 - src/StepFEA/StepFEA_SymmetricTensor42d.cxx | 8 +- src/StepFEA/StepFEA_SymmetricTensor42d.hxx | 71 + src/StepFEA/StepFEA_SymmetricTensor43d.cdl | 67 - src/StepFEA/StepFEA_SymmetricTensor43d.cxx | 5 +- src/StepFEA/StepFEA_SymmetricTensor43d.hxx | 99 + .../StepFEA_SymmetricTensor43dMember.cdl | 40 - .../StepFEA_SymmetricTensor43dMember.cxx | 4 +- .../StepFEA_SymmetricTensor43dMember.hxx | 77 + src/StepFEA/StepFEA_UnspecifiedValue.hxx | 23 + .../StepFEA_Volume3dElementRepresentation.cdl | 65 - .../StepFEA_Volume3dElementRepresentation.cxx | 9 +- .../StepFEA_Volume3dElementRepresentation.hxx | 92 + src/StepFile/FILES | 16 +- src/StepFile/StepFile_CMPLRS.edl | 24 - src/StepFile/StepFile_CODEGEN.edl | 29 - src/StepFile/StepFile_WOKSteps.edl | 16 - src/StepFile/lex.step.c | 1842 +++++++++ src/StepFile/step.tab.c | 1799 +++++++++ src/StepFile/step.tab.h | 93 + src/StepGeom/FILES | 212 +- src/StepGeom/StepGeom.cdl | 244 -- src/StepGeom/StepGeom_Axis1Placement.cdl | 55 - src/StepGeom/StepGeom_Axis1Placement.cxx | 6 +- src/StepGeom/StepGeom_Axis1Placement.hxx | 80 + src/StepGeom/StepGeom_Axis2Placement.cdl | 45 - src/StepGeom/StepGeom_Axis2Placement.cxx | 4 +- src/StepGeom/StepGeom_Axis2Placement.hxx | 77 + src/StepGeom/StepGeom_Axis2Placement2d.cdl | 55 - src/StepGeom/StepGeom_Axis2Placement2d.cxx | 6 +- src/StepGeom/StepGeom_Axis2Placement2d.hxx | 80 + src/StepGeom/StepGeom_Axis2Placement3d.cdl | 63 - src/StepGeom/StepGeom_Axis2Placement3d.cxx | 6 +- src/StepGeom/StepGeom_Axis2Placement3d.hxx | 90 + src/StepGeom/StepGeom_BSplineCurve.cdl | 74 - src/StepGeom/StepGeom_BSplineCurve.cxx | 5 +- src/StepGeom/StepGeom_BSplineCurve.hxx | 101 + src/StepGeom/StepGeom_BSplineCurveForm.hxx | 31 + .../StepGeom_BSplineCurveWithKnots.cdl | 76 - .../StepGeom_BSplineCurveWithKnots.cxx | 4 +- .../StepGeom_BSplineCurveWithKnots.hxx | 98 + ...eCurveWithKnotsAndRationalBSplineCurve.cdl | 105 - ...eCurveWithKnotsAndRationalBSplineCurve.cxx | 6 +- ...eCurveWithKnotsAndRationalBSplineCurve.hxx | 117 + src/StepGeom/StepGeom_BSplineSurface.cdl | 83 - src/StepGeom/StepGeom_BSplineSurface.cxx | 5 +- src/StepGeom/StepGeom_BSplineSurface.hxx | 113 + src/StepGeom/StepGeom_BSplineSurfaceForm.hxx | 36 + .../StepGeom_BSplineSurfaceWithKnots.cdl | 92 - .../StepGeom_BSplineSurfaceWithKnots.cxx | 4 +- .../StepGeom_BSplineSurfaceWithKnots.hxx | 116 + ...faceWithKnotsAndRationalBSplineSurface.cdl | 122 - ...faceWithKnotsAndRationalBSplineSurface.cxx | 6 +- ...faceWithKnotsAndRationalBSplineSurface.hxx | 136 + src/StepGeom/StepGeom_BezierCurve.cdl | 34 - src/StepGeom/StepGeom_BezierCurve.cxx | 3 +- src/StepGeom/StepGeom_BezierCurve.hxx | 62 + ...eom_BezierCurveAndRationalBSplineCurve.cdl | 90 - ...eom_BezierCurveAndRationalBSplineCurve.cxx | 6 +- ...eom_BezierCurveAndRationalBSplineCurve.hxx | 95 + src/StepGeom/StepGeom_BezierSurface.cdl | 34 - src/StepGeom/StepGeom_BezierSurface.cxx | 3 +- src/StepGeom/StepGeom_BezierSurface.hxx | 62 + ...BezierSurfaceAndRationalBSplineSurface.cdl | 97 - ...BezierSurfaceAndRationalBSplineSurface.cxx | 6 +- ...BezierSurfaceAndRationalBSplineSurface.hxx | 97 + src/StepGeom/StepGeom_BoundaryCurve.cdl | 32 - src/StepGeom/StepGeom_BoundaryCurve.cxx | 3 +- src/StepGeom/StepGeom_BoundaryCurve.hxx | 62 + src/StepGeom/StepGeom_BoundedCurve.cdl | 30 - src/StepGeom/StepGeom_BoundedCurve.cxx | 3 +- src/StepGeom/StepGeom_BoundedCurve.hxx | 62 + src/StepGeom/StepGeom_BoundedSurface.cdl | 30 - src/StepGeom/StepGeom_BoundedSurface.cxx | 3 +- src/StepGeom/StepGeom_BoundedSurface.hxx | 62 + src/StepGeom/StepGeom_CartesianPoint.cdl | 60 - src/StepGeom/StepGeom_CartesianPoint.cxx | 4 +- src/StepGeom/StepGeom_CartesianPoint.hxx | 84 + ...epGeom_CartesianTransformationOperator.cdl | 77 - ...epGeom_CartesianTransformationOperator.cxx | 6 +- ...epGeom_CartesianTransformationOperator.hxx | 106 + ...Geom_CartesianTransformationOperator2d.cdl | 29 - ...Geom_CartesianTransformationOperator2d.cxx | 4 +- ...Geom_CartesianTransformationOperator2d.hxx | 61 + ...Geom_CartesianTransformationOperator3d.cdl | 68 - ...Geom_CartesianTransformationOperator3d.cxx | 6 +- ...Geom_CartesianTransformationOperator3d.hxx | 81 + src/StepGeom/StepGeom_Circle.cdl | 50 - src/StepGeom/StepGeom_Circle.cxx | 5 +- src/StepGeom/StepGeom_Circle.hxx | 74 + src/StepGeom/StepGeom_CompositeCurve.cdl | 55 - src/StepGeom/StepGeom_CompositeCurve.cxx | 5 +- src/StepGeom/StepGeom_CompositeCurve.hxx | 85 + .../StepGeom_CompositeCurveOnSurface.cdl | 32 - .../StepGeom_CompositeCurveOnSurface.cxx | 3 +- .../StepGeom_CompositeCurveOnSurface.hxx | 62 + .../StepGeom_CompositeCurveSegment.cdl | 51 - .../StepGeom_CompositeCurveSegment.cxx | 4 +- .../StepGeom_CompositeCurveSegment.hxx | 82 + src/StepGeom/StepGeom_Conic.cdl | 47 - src/StepGeom/StepGeom_Conic.cxx | 5 +- src/StepGeom/StepGeom_Conic.hxx | 74 + src/StepGeom/StepGeom_ConicalSurface.cdl | 54 - src/StepGeom/StepGeom_ConicalSurface.cxx | 5 +- src/StepGeom/StepGeom_ConicalSurface.hxx | 79 + src/StepGeom/StepGeom_Curve.cdl | 30 - src/StepGeom/StepGeom_Curve.cxx | 3 +- src/StepGeom/StepGeom_Curve.hxx | 62 + src/StepGeom/StepGeom_CurveBoundedSurface.cdl | 59 - src/StepGeom/StepGeom_CurveBoundedSurface.cxx | 6 +- src/StepGeom/StepGeom_CurveBoundedSurface.hxx | 90 + src/StepGeom/StepGeom_CurveOnSurface.cdl | 50 - src/StepGeom/StepGeom_CurveOnSurface.cxx | 6 +- src/StepGeom/StepGeom_CurveOnSurface.hxx | 82 + src/StepGeom/StepGeom_CurveReplica.cdl | 51 - src/StepGeom/StepGeom_CurveReplica.cxx | 6 +- src/StepGeom/StepGeom_CurveReplica.hxx | 79 + src/StepGeom/StepGeom_CylindricalSurface.cdl | 50 - src/StepGeom/StepGeom_CylindricalSurface.cxx | 5 +- src/StepGeom/StepGeom_CylindricalSurface.hxx | 74 + src/StepGeom/StepGeom_DegeneratePcurve.cdl | 52 - src/StepGeom/StepGeom_DegeneratePcurve.cxx | 6 +- src/StepGeom/StepGeom_DegeneratePcurve.hxx | 79 + .../StepGeom_DegenerateToroidalSurface.cdl | 55 - .../StepGeom_DegenerateToroidalSurface.cxx | 5 +- .../StepGeom_DegenerateToroidalSurface.hxx | 75 + src/StepGeom/StepGeom_Direction.cdl | 50 - src/StepGeom/StepGeom_Direction.cxx | 4 +- src/StepGeom/StepGeom_Direction.hxx | 79 + src/StepGeom/StepGeom_ElementarySurface.cdl | 47 - src/StepGeom/StepGeom_ElementarySurface.cxx | 5 +- src/StepGeom/StepGeom_ElementarySurface.hxx | 73 + src/StepGeom/StepGeom_Ellipse.cdl | 54 - src/StepGeom/StepGeom_Ellipse.cxx | 5 +- src/StepGeom/StepGeom_Ellipse.hxx | 79 + .../StepGeom_EvaluatedDegeneratePcurve.cdl | 53 - .../StepGeom_EvaluatedDegeneratePcurve.cxx | 7 +- .../StepGeom_EvaluatedDegeneratePcurve.hxx | 75 + ...GlobUnitAssCtxAndGlobUncertaintyAssCtx.cdl | 121 - ...GlobUnitAssCtxAndGlobUncertaintyAssCtx.cxx | 9 +- ...GlobUnitAssCtxAndGlobUncertaintyAssCtx.hxx | 111 + ...tepGeom_GeometricRepresentationContext.cdl | 49 - ...tepGeom_GeometricRepresentationContext.cxx | 4 +- ...tepGeom_GeometricRepresentationContext.hxx | 73 + ...ionContextAndGlobalUnitAssignedContext.cdl | 78 - ...ionContextAndGlobalUnitAssignedContext.cxx | 7 +- ...ionContextAndGlobalUnitAssignedContext.hxx | 96 + ...textAndParametricRepresentationContext.cdl | 72 - ...textAndParametricRepresentationContext.cxx | 7 +- ...textAndParametricRepresentationContext.hxx | 86 + .../StepGeom_GeometricRepresentationItem.cdl | 30 - .../StepGeom_GeometricRepresentationItem.cxx | 3 +- .../StepGeom_GeometricRepresentationItem.hxx | 62 + src/StepGeom/StepGeom_Hyperbola.cdl | 54 - src/StepGeom/StepGeom_Hyperbola.cxx | 5 +- src/StepGeom/StepGeom_Hyperbola.hxx | 79 + src/StepGeom/StepGeom_IntersectionCurve.cdl | 33 - src/StepGeom/StepGeom_IntersectionCurve.cxx | 3 +- src/StepGeom/StepGeom_IntersectionCurve.hxx | 62 + src/StepGeom/StepGeom_KnotType.hxx | 29 + src/StepGeom/StepGeom_Line.cdl | 52 - src/StepGeom/StepGeom_Line.cxx | 6 +- src/StepGeom/StepGeom_Line.hxx | 79 + src/StepGeom/StepGeom_OffsetCurve3d.cdl | 61 - src/StepGeom/StepGeom_OffsetCurve3d.cxx | 6 +- src/StepGeom/StepGeom_OffsetCurve3d.hxx | 91 + src/StepGeom/StepGeom_OffsetSurface.cdl | 56 - src/StepGeom/StepGeom_OffsetSurface.cxx | 5 +- src/StepGeom/StepGeom_OffsetSurface.hxx | 85 + src/StepGeom/StepGeom_OrientedSurface.cdl | 42 - src/StepGeom/StepGeom_OrientedSurface.cxx | 5 +- src/StepGeom/StepGeom_OrientedSurface.hxx | 73 + src/StepGeom/StepGeom_OuterBoundaryCurve.cdl | 32 - src/StepGeom/StepGeom_OuterBoundaryCurve.cxx | 3 +- src/StepGeom/StepGeom_OuterBoundaryCurve.hxx | 62 + src/StepGeom/StepGeom_Parabola.cdl | 50 - src/StepGeom/StepGeom_Parabola.cxx | 5 +- src/StepGeom/StepGeom_Parabola.hxx | 74 + src/StepGeom/StepGeom_Pcurve.cdl | 52 - src/StepGeom/StepGeom_Pcurve.cxx | 6 +- src/StepGeom/StepGeom_Pcurve.hxx | 79 + src/StepGeom/StepGeom_PcurveOrSurface.cdl | 45 - src/StepGeom/StepGeom_PcurveOrSurface.cxx | 4 +- src/StepGeom/StepGeom_PcurveOrSurface.hxx | 77 + src/StepGeom/StepGeom_Placement.cdl | 47 - src/StepGeom/StepGeom_Placement.cxx | 5 +- src/StepGeom/StepGeom_Placement.hxx | 73 + src/StepGeom/StepGeom_Plane.cdl | 31 - src/StepGeom/StepGeom_Plane.cxx | 3 +- src/StepGeom/StepGeom_Plane.hxx | 62 + src/StepGeom/StepGeom_Point.cdl | 30 - src/StepGeom/StepGeom_Point.cxx | 3 +- src/StepGeom/StepGeom_Point.hxx | 62 + src/StepGeom/StepGeom_PointOnCurve.cdl | 52 - src/StepGeom/StepGeom_PointOnCurve.cxx | 5 +- src/StepGeom/StepGeom_PointOnCurve.hxx | 79 + src/StepGeom/StepGeom_PointOnSurface.cdl | 56 - src/StepGeom/StepGeom_PointOnSurface.cxx | 5 +- src/StepGeom/StepGeom_PointOnSurface.hxx | 84 + src/StepGeom/StepGeom_PointReplica.cdl | 51 - src/StepGeom/StepGeom_PointReplica.cxx | 6 +- src/StepGeom/StepGeom_PointReplica.hxx | 79 + src/StepGeom/StepGeom_Polyline.cdl | 50 - src/StepGeom/StepGeom_Polyline.cxx | 5 +- src/StepGeom/StepGeom_Polyline.hxx | 79 + ...om_PreferredSurfaceCurveRepresentation.hxx | 28 + src/StepGeom/StepGeom_QuasiUniformCurve.cdl | 34 - src/StepGeom/StepGeom_QuasiUniformCurve.cxx | 3 +- src/StepGeom/StepGeom_QuasiUniformCurve.hxx | 62 + ...asiUniformCurveAndRationalBSplineCurve.cdl | 90 - ...asiUniformCurveAndRationalBSplineCurve.cxx | 6 +- ...asiUniformCurveAndRationalBSplineCurve.hxx | 95 + src/StepGeom/StepGeom_QuasiUniformSurface.cdl | 34 - src/StepGeom/StepGeom_QuasiUniformSurface.cxx | 3 +- src/StepGeom/StepGeom_QuasiUniformSurface.hxx | 62 + ...niformSurfaceAndRationalBSplineSurface.cdl | 97 - ...niformSurfaceAndRationalBSplineSurface.cxx | 6 +- ...niformSurfaceAndRationalBSplineSurface.hxx | 97 + .../StepGeom_RationalBSplineCurve.cdl | 64 - .../StepGeom_RationalBSplineCurve.cxx | 4 +- .../StepGeom_RationalBSplineCurve.hxx | 82 + .../StepGeom_RationalBSplineSurface.cdl | 69 - .../StepGeom_RationalBSplineSurface.cxx | 4 +- .../StepGeom_RationalBSplineSurface.hxx | 84 + .../StepGeom_RectangularCompositeSurface.cdl | 51 - .../StepGeom_RectangularCompositeSurface.cxx | 5 +- .../StepGeom_RectangularCompositeSurface.hxx | 81 + .../StepGeom_RectangularTrimmedSurface.cdl | 73 - .../StepGeom_RectangularTrimmedSurface.cxx | 5 +- .../StepGeom_RectangularTrimmedSurface.hxx | 105 + ...om_ReparametrisedCompositeCurveSegment.cdl | 53 - ...om_ReparametrisedCompositeCurveSegment.cxx | 4 +- ...om_ReparametrisedCompositeCurveSegment.hxx | 75 + src/StepGeom/StepGeom_SeamCurve.cdl | 33 - src/StepGeom/StepGeom_SeamCurve.cxx | 3 +- src/StepGeom/StepGeom_SeamCurve.hxx | 62 + src/StepGeom/StepGeom_SphericalSurface.cdl | 50 - src/StepGeom/StepGeom_SphericalSurface.cxx | 5 +- src/StepGeom/StepGeom_SphericalSurface.hxx | 74 + src/StepGeom/StepGeom_Surface.cdl | 30 - src/StepGeom/StepGeom_Surface.cxx | 3 +- src/StepGeom/StepGeom_Surface.hxx | 62 + src/StepGeom/StepGeom_SurfaceBoundary.cdl | 44 - src/StepGeom/StepGeom_SurfaceBoundary.cxx | 4 +- src/StepGeom/StepGeom_SurfaceBoundary.hxx | 77 + src/StepGeom/StepGeom_SurfaceCurve.cdl | 59 - src/StepGeom/StepGeom_SurfaceCurve.cxx | 6 +- src/StepGeom/StepGeom_SurfaceCurve.hxx | 91 + .../StepGeom_SurfaceCurveAndBoundedCurve.cdl | 40 - .../StepGeom_SurfaceCurveAndBoundedCurve.cxx | 4 +- .../StepGeom_SurfaceCurveAndBoundedCurve.hxx | 68 + .../StepGeom_SurfaceOfLinearExtrusion.cdl | 50 - .../StepGeom_SurfaceOfLinearExtrusion.cxx | 6 +- .../StepGeom_SurfaceOfLinearExtrusion.hxx | 74 + src/StepGeom/StepGeom_SurfaceOfRevolution.cdl | 50 - src/StepGeom/StepGeom_SurfaceOfRevolution.cxx | 6 +- src/StepGeom/StepGeom_SurfaceOfRevolution.hxx | 74 + src/StepGeom/StepGeom_SurfacePatch.cdl | 59 - src/StepGeom/StepGeom_SurfacePatch.cxx | 4 +- src/StepGeom/StepGeom_SurfacePatch.hxx | 92 + src/StepGeom/StepGeom_SurfaceReplica.cdl | 51 - src/StepGeom/StepGeom_SurfaceReplica.cxx | 6 +- src/StepGeom/StepGeom_SurfaceReplica.hxx | 79 + src/StepGeom/StepGeom_SweptSurface.cdl | 47 - src/StepGeom/StepGeom_SweptSurface.cxx | 5 +- src/StepGeom/StepGeom_SweptSurface.hxx | 73 + src/StepGeom/StepGeom_ToroidalSurface.cdl | 54 - src/StepGeom/StepGeom_ToroidalSurface.cxx | 5 +- src/StepGeom/StepGeom_ToroidalSurface.hxx | 79 + src/StepGeom/StepGeom_TransitionCode.hxx | 29 + src/StepGeom/StepGeom_TrimmedCurve.cdl | 71 - src/StepGeom/StepGeom_TrimmedCurve.cxx | 6 +- src/StepGeom/StepGeom_TrimmedCurve.hxx | 106 + src/StepGeom/StepGeom_TrimmingMember.cdl | 37 - src/StepGeom/StepGeom_TrimmingMember.cxx | 4 +- src/StepGeom/StepGeom_TrimmingMember.hxx | 70 + src/StepGeom/StepGeom_TrimmingPreference.hxx | 28 + src/StepGeom/StepGeom_TrimmingSelect.cdl | 53 - src/StepGeom/StepGeom_TrimmingSelect.cxx | 7 +- src/StepGeom/StepGeom_TrimmingSelect.hxx | 88 + src/StepGeom/StepGeom_UniformCurve.cdl | 34 - src/StepGeom/StepGeom_UniformCurve.cxx | 3 +- src/StepGeom/StepGeom_UniformCurve.hxx | 62 + ...om_UniformCurveAndRationalBSplineCurve.cdl | 90 - ...om_UniformCurveAndRationalBSplineCurve.cxx | 8 +- ...om_UniformCurveAndRationalBSplineCurve.hxx | 95 + src/StepGeom/StepGeom_UniformSurface.cdl | 34 - src/StepGeom/StepGeom_UniformSurface.cxx | 3 +- src/StepGeom/StepGeom_UniformSurface.hxx | 62 + ...niformSurfaceAndRationalBSplineSurface.cdl | 97 - ...niformSurfaceAndRationalBSplineSurface.cxx | 8 +- ...niformSurfaceAndRationalBSplineSurface.hxx | 97 + src/StepGeom/StepGeom_Vector.cdl | 52 - src/StepGeom/StepGeom_Vector.cxx | 5 +- src/StepGeom/StepGeom_Vector.hxx | 79 + src/StepGeom/StepGeom_VectorOrDirection.cdl | 45 - src/StepGeom/StepGeom_VectorOrDirection.cxx | 6 +- src/StepGeom/StepGeom_VectorOrDirection.hxx | 77 + src/StepRepr/FILES | 124 +- src/StepRepr/StepRepr.cdl | 148 - .../StepRepr_AssemblyComponentUsage.cdl | 52 - .../StepRepr_AssemblyComponentUsage.cxx | 6 +- .../StepRepr_AssemblyComponentUsage.hxx | 78 + ...pRepr_AssemblyComponentUsageSubstitute.cdl | 52 - ...pRepr_AssemblyComponentUsageSubstitute.cxx | 6 +- ...pRepr_AssemblyComponentUsageSubstitute.hxx | 85 + .../StepRepr_CharacterizedDefinition.cdl | 68 - .../StepRepr_CharacterizedDefinition.cxx | 7 +- .../StepRepr_CharacterizedDefinition.hxx | 101 + .../StepRepr_CompositeShapeAspect.cdl | 27 - .../StepRepr_CompositeShapeAspect.cxx | 4 +- .../StepRepr_CompositeShapeAspect.hxx | 60 + .../StepRepr_CompoundRepresentationItem.cdl | 44 - .../StepRepr_CompoundRepresentationItem.cxx | 6 +- .../StepRepr_CompoundRepresentationItem.hxx | 77 + src/StepRepr/StepRepr_ConfigurationDesign.cdl | 50 - src/StepRepr/StepRepr_ConfigurationDesign.cxx | 6 +- src/StepRepr/StepRepr_ConfigurationDesign.hxx | 82 + .../StepRepr_ConfigurationDesignItem.cdl | 44 - .../StepRepr_ConfigurationDesignItem.cxx | 4 +- .../StepRepr_ConfigurationDesignItem.hxx | 77 + .../StepRepr_ConfigurationEffectivity.cdl | 46 - .../StepRepr_ConfigurationEffectivity.cxx | 7 +- .../StepRepr_ConfigurationEffectivity.hxx | 75 + src/StepRepr/StepRepr_ConfigurationItem.cdl | 79 - src/StepRepr/StepRepr_ConfigurationItem.cxx | 6 +- src/StepRepr/StepRepr_ConfigurationItem.hxx | 111 + src/StepRepr/StepRepr_DataEnvironment.cdl | 56 - src/StepRepr/StepRepr_DataEnvironment.cxx | 5 +- src/StepRepr/StepRepr_DataEnvironment.hxx | 87 + .../StepRepr_DefinitionalRepresentation.cdl | 32 - .../StepRepr_DefinitionalRepresentation.cxx | 3 +- .../StepRepr_DefinitionalRepresentation.hxx | 62 + src/StepRepr/StepRepr_DerivedShapeAspect.cdl | 27 - src/StepRepr/StepRepr_DerivedShapeAspect.cxx | 4 +- src/StepRepr/StepRepr_DerivedShapeAspect.hxx | 60 + ...StepRepr_DescriptiveRepresentationItem.cdl | 46 - ...StepRepr_DescriptiveRepresentationItem.cxx | 4 +- ...StepRepr_DescriptiveRepresentationItem.hxx | 72 + src/StepRepr/StepRepr_Extension.cdl | 27 - src/StepRepr/StepRepr_Extension.cxx | 4 +- src/StepRepr/StepRepr_Extension.hxx | 60 + ...epRepr_ExternallyDefinedRepresentation.cdl | 26 - ...epRepr_ExternallyDefinedRepresentation.cxx | 4 +- ...epRepr_ExternallyDefinedRepresentation.hxx | 61 + ...Repr_FunctionallyDefinedTransformation.cdl | 45 - ...Repr_FunctionallyDefinedTransformation.cxx | 4 +- ...Repr_FunctionallyDefinedTransformation.hxx | 75 + ...pRepr_GlobalUncertaintyAssignedContext.cdl | 52 - ...pRepr_GlobalUncertaintyAssignedContext.cxx | 5 +- ...pRepr_GlobalUncertaintyAssignedContext.hxx | 79 + .../StepRepr_GlobalUnitAssignedContext.cdl | 52 - .../StepRepr_GlobalUnitAssignedContext.cxx | 5 +- .../StepRepr_GlobalUnitAssignedContext.hxx | 79 + .../StepRepr_ItemDefinedTransformation.cdl | 54 - .../StepRepr_ItemDefinedTransformation.cxx | 6 +- .../StepRepr_ItemDefinedTransformation.hxx | 85 + src/StepRepr/StepRepr_MakeFromUsageOption.cdl | 63 - src/StepRepr/StepRepr_MakeFromUsageOption.cxx | 7 +- src/StepRepr/StepRepr_MakeFromUsageOption.hxx | 90 + src/StepRepr/StepRepr_MappedItem.cdl | 51 - src/StepRepr/StepRepr_MappedItem.cxx | 6 +- src/StepRepr/StepRepr_MappedItem.hxx | 79 + src/StepRepr/StepRepr_MaterialDesignation.cdl | 47 - src/StepRepr/StepRepr_MaterialDesignation.cxx | 6 +- src/StepRepr/StepRepr_MaterialDesignation.hxx | 76 + src/StepRepr/StepRepr_MaterialProperty.cdl | 31 - src/StepRepr/StepRepr_MaterialProperty.cxx | 4 +- src/StepRepr/StepRepr_MaterialProperty.hxx | 61 + ...tepRepr_MaterialPropertyRepresentation.cdl | 45 - ...tepRepr_MaterialPropertyRepresentation.cxx | 7 +- ...tepRepr_MaterialPropertyRepresentation.hxx | 74 + .../StepRepr_MeasureRepresentationItem.cdl | 47 - .../StepRepr_MeasureRepresentationItem.cxx | 9 +- .../StepRepr_MeasureRepresentationItem.hxx | 76 + .../StepRepr_NextAssemblyUsageOccurrence.cdl | 31 - .../StepRepr_NextAssemblyUsageOccurrence.cxx | 4 +- .../StepRepr_NextAssemblyUsageOccurrence.hxx | 61 + ...epRepr_ParametricRepresentationContext.cdl | 30 - ...epRepr_ParametricRepresentationContext.cxx | 3 +- ...epRepr_ParametricRepresentationContext.hxx | 62 + src/StepRepr/StepRepr_ProductConcept.cdl | 68 - src/StepRepr/StepRepr_ProductConcept.cxx | 6 +- src/StepRepr/StepRepr_ProductConcept.hxx | 100 + .../StepRepr_ProductDefinitionShape.cdl | 31 - .../StepRepr_ProductDefinitionShape.cxx | 4 +- .../StepRepr_ProductDefinitionShape.hxx | 61 + .../StepRepr_ProductDefinitionUsage.cdl | 31 - .../StepRepr_ProductDefinitionUsage.cxx | 4 +- .../StepRepr_ProductDefinitionUsage.hxx | 61 + .../StepRepr_PromissoryUsageOccurrence.cdl | 26 - .../StepRepr_PromissoryUsageOccurrence.cxx | 4 +- .../StepRepr_PromissoryUsageOccurrence.hxx | 61 + src/StepRepr/StepRepr_PropertyDefinition.cdl | 60 - src/StepRepr/StepRepr_PropertyDefinition.cxx | 6 +- src/StepRepr/StepRepr_PropertyDefinition.hxx | 93 + ...tepRepr_PropertyDefinitionRelationship.cdl | 63 - ...tepRepr_PropertyDefinitionRelationship.cxx | 6 +- ...tepRepr_PropertyDefinitionRelationship.hxx | 94 + ...pRepr_PropertyDefinitionRepresentation.cdl | 49 - ...pRepr_PropertyDefinitionRepresentation.cxx | 6 +- ...pRepr_PropertyDefinitionRepresentation.hxx | 81 + ...pRepr_QuantifiedAssemblyComponentUsage.cdl | 51 - ...pRepr_QuantifiedAssemblyComponentUsage.cxx | 7 +- ...pRepr_QuantifiedAssemblyComponentUsage.hxx | 75 + ...pRepr_ReprItemAndLengthMeasureWithUnit.cdl | 47 - ...pRepr_ReprItemAndLengthMeasureWithUnit.cxx | 8 +- ...pRepr_ReprItemAndLengthMeasureWithUnit.hxx | 81 + src/StepRepr/StepRepr_Representation.cdl | 54 - src/StepRepr/StepRepr_Representation.cxx | 6 +- src/StepRepr/StepRepr_Representation.hxx | 88 + .../StepRepr_RepresentationContext.cdl | 45 - .../StepRepr_RepresentationContext.cxx | 4 +- .../StepRepr_RepresentationContext.hxx | 75 + src/StepRepr/StepRepr_RepresentationItem.cdl | 41 - src/StepRepr/StepRepr_RepresentationItem.cxx | 4 +- src/StepRepr/StepRepr_RepresentationItem.hxx | 70 + src/StepRepr/StepRepr_RepresentationMap.cdl | 46 - src/StepRepr/StepRepr_RepresentationMap.cxx | 5 +- src/StepRepr/StepRepr_RepresentationMap.hxx | 76 + .../StepRepr_RepresentationRelationship.cdl | 54 - .../StepRepr_RepresentationRelationship.cxx | 5 +- .../StepRepr_RepresentationRelationship.hxx | 86 + ...entationRelationshipWithTransformation.cdl | 47 - ...entationRelationshipWithTransformation.cxx | 7 +- ...entationRelationshipWithTransformation.hxx | 72 + .../StepRepr_RepresentedDefinition.cdl | 58 - .../StepRepr_RepresentedDefinition.cxx | 4 +- .../StepRepr_RepresentedDefinition.hxx | 91 + src/StepRepr/StepRepr_ShapeAspect.cdl | 55 - src/StepRepr/StepRepr_ShapeAspect.cxx | 5 +- src/StepRepr/StepRepr_ShapeAspect.hxx | 87 + ...epRepr_ShapeAspectDerivingRelationship.cdl | 28 - ...epRepr_ShapeAspectDerivingRelationship.cxx | 4 +- ...epRepr_ShapeAspectDerivingRelationship.hxx | 60 + .../StepRepr_ShapeAspectRelationship.cdl | 67 - .../StepRepr_ShapeAspectRelationship.cxx | 6 +- .../StepRepr_ShapeAspectRelationship.hxx | 99 + .../StepRepr_ShapeAspectTransition.cdl | 31 - .../StepRepr_ShapeAspectTransition.cxx | 4 +- .../StepRepr_ShapeAspectTransition.hxx | 61 + src/StepRepr/StepRepr_ShapeDefinition.cdl | 50 - src/StepRepr/StepRepr_ShapeDefinition.cxx | 4 +- src/StepRepr/StepRepr_ShapeDefinition.hxx | 82 + ...epRepr_ShapeRepresentationRelationship.cdl | 26 - ...epRepr_ShapeRepresentationRelationship.cxx | 4 +- ...epRepr_ShapeRepresentationRelationship.hxx | 61 + ...entationRelationshipWithTransformation.cdl | 27 - ...entationRelationshipWithTransformation.cxx | 4 +- ...entationRelationshipWithTransformation.hxx | 61 + ...tepRepr_SpecifiedHigherUsageOccurrence.cdl | 59 - ...tepRepr_SpecifiedHigherUsageOccurrence.cxx | 8 +- ...tepRepr_SpecifiedHigherUsageOccurrence.hxx | 83 + .../StepRepr_StructuralResponseProperty.cdl | 31 - .../StepRepr_StructuralResponseProperty.cxx | 4 +- .../StepRepr_StructuralResponseProperty.hxx | 61 + ...sponsePropertyDefinitionRepresentation.cdl | 31 - ...sponsePropertyDefinitionRepresentation.cxx | 4 +- ...sponsePropertyDefinitionRepresentation.hxx | 61 + .../StepRepr_SuppliedPartRelationship.cdl | 27 - .../StepRepr_SuppliedPartRelationship.cxx | 4 +- .../StepRepr_SuppliedPartRelationship.hxx | 61 + src/StepRepr/StepRepr_Transformation.cdl | 46 - src/StepRepr/StepRepr_Transformation.cxx | 6 +- src/StepRepr/StepRepr_Transformation.hxx | 77 + src/StepRepr/StepRepr_ValueRange.cdl | 27 - src/StepRepr/StepRepr_ValueRange.cxx | 4 +- src/StepRepr/StepRepr_ValueRange.hxx | 60 + src/StepSelect/FILES | 12 + src/StepSelect/StepSelect.cdl | 40 - src/StepSelect/StepSelect_Activator.cdl | 36 - src/StepSelect/StepSelect_Activator.cxx | 15 +- src/StepSelect/StepSelect_Activator.hxx | 72 + src/StepSelect/StepSelect_FileModifier.hxx | 65 + src/StepSelect/StepSelect_FileModifier_0.cxx | 39 + src/StepSelect/StepSelect_FloatFormat.cdl | 92 - src/StepSelect/StepSelect_FloatFormat.cxx | 11 +- src/StepSelect/StepSelect_FloatFormat.hxx | 121 + src/StepSelect/StepSelect_ModelModifier.hxx | 74 + src/StepSelect/StepSelect_ModelModifier_0.cxx | 47 + src/StepSelect/StepSelect_StepType.cdl | 57 - src/StepSelect/StepSelect_StepType.cxx | 15 +- src/StepSelect/StepSelect_StepType.hxx | 89 + src/StepSelect/StepSelect_WorkLibrary.cdl | 82 - src/StepSelect/StepSelect_WorkLibrary.cxx | 42 +- src/StepSelect/StepSelect_WorkLibrary.hxx | 105 + src/StepShape/FILES | 226 +- src/StepShape/StepShape.cdl | 253 -- ...pShape_AdvancedBrepShapeRepresentation.cdl | 32 - ...pShape_AdvancedBrepShapeRepresentation.cxx | 3 +- ...pShape_AdvancedBrepShapeRepresentation.hxx | 62 + src/StepShape/StepShape_AdvancedFace.cdl | 33 - src/StepShape/StepShape_AdvancedFace.cxx | 3 +- src/StepShape/StepShape_AdvancedFace.hxx | 62 + src/StepShape/StepShape_AngleRelator.hxx | 28 + src/StepShape/StepShape_AngularLocation.cdl | 48 - src/StepShape/StepShape_AngularLocation.cxx | 6 +- src/StepShape/StepShape_AngularLocation.hxx | 75 + src/StepShape/StepShape_AngularSize.cdl | 45 - src/StepShape/StepShape_AngularSize.cxx | 6 +- src/StepShape/StepShape_AngularSize.hxx | 74 + src/StepShape/StepShape_Block.cdl | 60 - src/StepShape/StepShape_Block.cxx | 5 +- src/StepShape/StepShape_Block.hxx | 89 + src/StepShape/StepShape_BooleanOperand.cdl | 81 - src/StepShape/StepShape_BooleanOperand.cxx | 7 +- src/StepShape/StepShape_BooleanOperand.hxx | 100 + src/StepShape/StepShape_BooleanOperator.hxx | 28 + src/StepShape/StepShape_BooleanResult.cdl | 56 - src/StepShape/StepShape_BooleanResult.cxx | 5 +- src/StepShape/StepShape_BooleanResult.hxx | 85 + src/StepShape/StepShape_BoxDomain.cdl | 54 - src/StepShape/StepShape_BoxDomain.cxx | 4 +- src/StepShape/StepShape_BoxDomain.hxx | 86 + src/StepShape/StepShape_BoxedHalfSpace.cdl | 53 - src/StepShape/StepShape_BoxedHalfSpace.cxx | 6 +- src/StepShape/StepShape_BoxedHalfSpace.hxx | 75 + src/StepShape/StepShape_BrepWithVoids.cdl | 53 - src/StepShape/StepShape_BrepWithVoids.cxx | 6 +- src/StepShape/StepShape_BrepWithVoids.hxx | 80 + src/StepShape/StepShape_ClosedShell.cdl | 31 - src/StepShape/StepShape_ClosedShell.cxx | 3 +- src/StepShape/StepShape_ClosedShell.hxx | 62 + .../StepShape_CompoundShapeRepresentation.cdl | 32 - .../StepShape_CompoundShapeRepresentation.cxx | 4 +- .../StepShape_CompoundShapeRepresentation.hxx | 61 + src/StepShape/StepShape_ConnectedEdgeSet.cdl | 43 - src/StepShape/StepShape_ConnectedEdgeSet.cxx | 5 +- src/StepShape/StepShape_ConnectedEdgeSet.hxx | 73 + src/StepShape/StepShape_ConnectedFaceSet.cdl | 54 - src/StepShape/StepShape_ConnectedFaceSet.cxx | 5 +- src/StepShape/StepShape_ConnectedFaceSet.hxx | 79 + ...Shape_ConnectedFaceShapeRepresentation.cdl | 32 - ...Shape_ConnectedFaceShapeRepresentation.cxx | 4 +- ...Shape_ConnectedFaceShapeRepresentation.hxx | 61 + .../StepShape_ConnectedFaceSubSet.cdl | 45 - .../StepShape_ConnectedFaceSubSet.cxx | 6 +- .../StepShape_ConnectedFaceSubSet.hxx | 74 + ...pe_ContextDependentShapeRepresentation.cdl | 42 - ...pe_ContextDependentShapeRepresentation.cxx | 6 +- ...pe_ContextDependentShapeRepresentation.hxx | 75 + src/StepShape/StepShape_CsgPrimitive.cdl | 65 - src/StepShape/StepShape_CsgPrimitive.cxx | 8 +- src/StepShape/StepShape_CsgPrimitive.hxx | 97 + src/StepShape/StepShape_CsgSelect.cdl | 57 - src/StepShape/StepShape_CsgSelect.cxx | 5 +- src/StepShape/StepShape_CsgSelect.hxx | 81 + .../StepShape_CsgShapeRepresentation.cdl | 32 - .../StepShape_CsgShapeRepresentation.cxx | 3 +- .../StepShape_CsgShapeRepresentation.hxx | 62 + src/StepShape/StepShape_CsgSolid.cdl | 47 - src/StepShape/StepShape_CsgSolid.cxx | 5 +- src/StepShape/StepShape_CsgSolid.hxx | 74 + ...alRepresentationAndShapeRepresentation.cdl | 29 - ...alRepresentationAndShapeRepresentation.cxx | 4 +- ...alRepresentationAndShapeRepresentation.hxx | 61 + .../StepShape_DimensionalCharacteristic.cdl | 43 - .../StepShape_DimensionalCharacteristic.cxx | 4 +- .../StepShape_DimensionalCharacteristic.hxx | 76 + ...imensionalCharacteristicRepresentation.cdl | 49 - ...imensionalCharacteristicRepresentation.cxx | 6 +- ...imensionalCharacteristicRepresentation.hxx | 81 + .../StepShape_DimensionalLocation.cdl | 31 - .../StepShape_DimensionalLocation.cxx | 4 +- .../StepShape_DimensionalLocation.hxx | 61 + .../StepShape_DimensionalLocationWithPath.cdl | 47 - .../StepShape_DimensionalLocationWithPath.cxx | 6 +- .../StepShape_DimensionalLocationWithPath.hxx | 74 + src/StepShape/StepShape_DimensionalSize.cdl | 49 - src/StepShape/StepShape_DimensionalSize.cxx | 6 +- src/StepShape/StepShape_DimensionalSize.hxx | 80 + .../StepShape_DimensionalSizeWithPath.cdl | 44 - .../StepShape_DimensionalSizeWithPath.cxx | 6 +- .../StepShape_DimensionalSizeWithPath.hxx | 73 + .../StepShape_DirectedDimensionalLocation.cdl | 30 - .../StepShape_DirectedDimensionalLocation.cxx | 4 +- .../StepShape_DirectedDimensionalLocation.hxx | 61 + src/StepShape/StepShape_Edge.cdl | 55 - src/StepShape/StepShape_Edge.cxx | 5 +- src/StepShape/StepShape_Edge.hxx | 78 + .../StepShape_EdgeBasedWireframeModel.cdl | 43 - .../StepShape_EdgeBasedWireframeModel.cxx | 5 +- .../StepShape_EdgeBasedWireframeModel.hxx | 73 + ..._EdgeBasedWireframeShapeRepresentation.cdl | 32 - ..._EdgeBasedWireframeShapeRepresentation.cxx | 4 +- ..._EdgeBasedWireframeShapeRepresentation.hxx | 61 + src/StepShape/StepShape_EdgeCurve.cdl | 60 - src/StepShape/StepShape_EdgeCurve.cxx | 6 +- src/StepShape/StepShape_EdgeCurve.hxx | 80 + src/StepShape/StepShape_EdgeLoop.cdl | 60 - src/StepShape/StepShape_EdgeLoop.cxx | 5 +- src/StepShape/StepShape_EdgeLoop.hxx | 79 + src/StepShape/StepShape_ExtrudedAreaSolid.cdl | 55 - src/StepShape/StepShape_ExtrudedAreaSolid.cxx | 6 +- src/StepShape/StepShape_ExtrudedAreaSolid.hxx | 80 + src/StepShape/StepShape_ExtrudedFaceSolid.cdl | 56 - src/StepShape/StepShape_ExtrudedFaceSolid.cxx | 6 +- src/StepShape/StepShape_ExtrudedFaceSolid.hxx | 80 + src/StepShape/StepShape_Face.cdl | 54 - src/StepShape/StepShape_Face.cxx | 5 +- src/StepShape/StepShape_Face.hxx | 79 + .../StepShape_FaceBasedSurfaceModel.cdl | 43 - .../StepShape_FaceBasedSurfaceModel.cxx | 5 +- .../StepShape_FaceBasedSurfaceModel.hxx | 73 + src/StepShape/StepShape_FaceBound.cdl | 52 - src/StepShape/StepShape_FaceBound.cxx | 5 +- src/StepShape/StepShape_FaceBound.hxx | 79 + src/StepShape/StepShape_FaceOuterBound.cdl | 32 - src/StepShape/StepShape_FaceOuterBound.cxx | 3 +- src/StepShape/StepShape_FaceOuterBound.hxx | 62 + src/StepShape/StepShape_FaceSurface.cdl | 58 - src/StepShape/StepShape_FaceSurface.cxx | 5 +- src/StepShape/StepShape_FaceSurface.hxx | 80 + src/StepShape/StepShape_FacetedBrep.cdl | 31 - src/StepShape/StepShape_FacetedBrep.cxx | 3 +- src/StepShape/StepShape_FacetedBrep.hxx | 62 + .../StepShape_FacetedBrepAndBrepWithVoids.cdl | 75 - .../StepShape_FacetedBrepAndBrepWithVoids.cxx | 10 +- .../StepShape_FacetedBrepAndBrepWithVoids.hxx | 93 + ...epShape_FacetedBrepShapeRepresentation.cdl | 32 - ...epShape_FacetedBrepShapeRepresentation.cxx | 3 +- ...epShape_FacetedBrepShapeRepresentation.hxx | 62 + src/StepShape/StepShape_GeometricCurveSet.cdl | 31 - src/StepShape/StepShape_GeometricCurveSet.cxx | 3 +- src/StepShape/StepShape_GeometricCurveSet.hxx | 62 + src/StepShape/StepShape_GeometricSet.cdl | 50 - src/StepShape/StepShape_GeometricSet.cxx | 5 +- src/StepShape/StepShape_GeometricSet.hxx | 79 + .../StepShape_GeometricSetSelect.cdl | 50 - .../StepShape_GeometricSetSelect.cxx | 8 +- .../StepShape_GeometricSetSelect.hxx | 82 + ...callyBoundedSurfaceShapeRepresentation.cdl | 32 - ...callyBoundedSurfaceShapeRepresentation.cxx | 3 +- ...callyBoundedSurfaceShapeRepresentation.hxx | 62 + ...llyBoundedWireframeShapeRepresentation.cdl | 32 - ...llyBoundedWireframeShapeRepresentation.cxx | 3 +- ...llyBoundedWireframeShapeRepresentation.hxx | 62 + src/StepShape/StepShape_HalfSpaceSolid.cdl | 52 - src/StepShape/StepShape_HalfSpaceSolid.cxx | 5 +- src/StepShape/StepShape_HalfSpaceSolid.hxx | 79 + src/StepShape/StepShape_LimitsAndFits.cdl | 49 - src/StepShape/StepShape_LimitsAndFits.cxx | 5 +- src/StepShape/StepShape_LimitsAndFits.hxx | 83 + src/StepShape/StepShape_Loop.cdl | 30 - src/StepShape/StepShape_Loop.cxx | 3 +- src/StepShape/StepShape_Loop.hxx | 62 + src/StepShape/StepShape_LoopAndPath.cdl | 71 - src/StepShape/StepShape_LoopAndPath.cxx | 7 +- src/StepShape/StepShape_LoopAndPath.hxx | 92 + src/StepShape/StepShape_ManifoldSolidBrep.cdl | 52 - src/StepShape/StepShape_ManifoldSolidBrep.cxx | 6 +- src/StepShape/StepShape_ManifoldSolidBrep.hxx | 76 + ...ape_ManifoldSurfaceShapeRepresentation.cdl | 32 - ...ape_ManifoldSurfaceShapeRepresentation.cxx | 3 +- ...ape_ManifoldSurfaceShapeRepresentation.hxx | 62 + .../StepShape_MeasureQualification.cdl | 57 - .../StepShape_MeasureQualification.cxx | 7 +- .../StepShape_MeasureQualification.hxx | 93 + ...tionItemAndQualifiedRepresentationItem.cdl | 59 - ...tionItemAndQualifiedRepresentationItem.cxx | 9 +- ...tionItemAndQualifiedRepresentationItem.hxx | 87 + ..._NonManifoldSurfaceShapeRepresentation.cdl | 32 - ..._NonManifoldSurfaceShapeRepresentation.cxx | 4 +- ..._NonManifoldSurfaceShapeRepresentation.hxx | 61 + src/StepShape/StepShape_OpenShell.cdl | 31 - src/StepShape/StepShape_OpenShell.cxx | 3 +- src/StepShape/StepShape_OpenShell.hxx | 62 + .../StepShape_OrientedClosedShell.cdl | 63 - .../StepShape_OrientedClosedShell.cxx | 6 +- .../StepShape_OrientedClosedShell.hxx | 90 + src/StepShape/StepShape_OrientedEdge.cdl | 63 - src/StepShape/StepShape_OrientedEdge.cxx | 6 +- src/StepShape/StepShape_OrientedEdge.hxx | 86 + src/StepShape/StepShape_OrientedFace.cdl | 63 - src/StepShape/StepShape_OrientedFace.cxx | 6 +- src/StepShape/StepShape_OrientedFace.hxx | 90 + src/StepShape/StepShape_OrientedOpenShell.cdl | 63 - src/StepShape/StepShape_OrientedOpenShell.cxx | 6 +- src/StepShape/StepShape_OrientedOpenShell.hxx | 90 + src/StepShape/StepShape_OrientedPath.cdl | 64 - src/StepShape/StepShape_OrientedPath.cxx | 6 +- src/StepShape/StepShape_OrientedPath.hxx | 90 + src/StepShape/StepShape_Path.cdl | 54 - src/StepShape/StepShape_Path.cxx | 5 +- src/StepShape/StepShape_Path.hxx | 79 + .../StepShape_PlusMinusTolerance.cdl | 43 - .../StepShape_PlusMinusTolerance.cxx | 6 +- .../StepShape_PlusMinusTolerance.hxx | 76 + .../StepShape_PointRepresentation.cdl | 32 - .../StepShape_PointRepresentation.cxx | 4 +- .../StepShape_PointRepresentation.hxx | 61 + src/StepShape/StepShape_PolyLoop.cdl | 53 - src/StepShape/StepShape_PolyLoop.cxx | 5 +- src/StepShape/StepShape_PolyLoop.hxx | 79 + .../StepShape_PrecisionQualifier.cdl | 36 - .../StepShape_PrecisionQualifier.cxx | 4 +- .../StepShape_PrecisionQualifier.hxx | 68 + .../StepShape_QualifiedRepresentationItem.cdl | 44 - .../StepShape_QualifiedRepresentationItem.cxx | 6 +- .../StepShape_QualifiedRepresentationItem.hxx | 77 + .../StepShape_ReversibleTopologyItem.cdl | 65 - .../StepShape_ReversibleTopologyItem.cxx | 8 +- .../StepShape_ReversibleTopologyItem.hxx | 97 + src/StepShape/StepShape_RevolvedAreaSolid.cdl | 55 - src/StepShape/StepShape_RevolvedAreaSolid.cxx | 6 +- src/StepShape/StepShape_RevolvedAreaSolid.hxx | 80 + src/StepShape/StepShape_RevolvedFaceSolid.cdl | 55 - src/StepShape/StepShape_RevolvedFaceSolid.cxx | 6 +- src/StepShape/StepShape_RevolvedFaceSolid.hxx | 80 + src/StepShape/StepShape_RightAngularWedge.cdl | 64 - src/StepShape/StepShape_RightAngularWedge.cxx | 5 +- src/StepShape/StepShape_RightAngularWedge.hxx | 94 + src/StepShape/StepShape_RightCircularCone.cdl | 60 - src/StepShape/StepShape_RightCircularCone.cxx | 5 +- src/StepShape/StepShape_RightCircularCone.hxx | 89 + .../StepShape_RightCircularCylinder.cdl | 56 - .../StepShape_RightCircularCylinder.cxx | 5 +- .../StepShape_RightCircularCylinder.hxx | 84 + src/StepShape/StepShape_SeamEdge.cdl | 49 - src/StepShape/StepShape_SeamEdge.cxx | 7 +- src/StepShape/StepShape_SeamEdge.hxx | 75 + ...tepShape_ShapeDefinitionRepresentation.cdl | 32 - ...tepShape_ShapeDefinitionRepresentation.cxx | 4 +- ...tepShape_ShapeDefinitionRepresentation.hxx | 62 + ...StepShape_ShapeDimensionRepresentation.cdl | 32 - ...StepShape_ShapeDimensionRepresentation.cxx | 4 +- ...StepShape_ShapeDimensionRepresentation.hxx | 61 + .../StepShape_ShapeRepresentation.cdl | 32 - .../StepShape_ShapeRepresentation.cxx | 3 +- .../StepShape_ShapeRepresentation.hxx | 62 + ...hape_ShapeRepresentationWithParameters.cdl | 32 - ...hape_ShapeRepresentationWithParameters.cxx | 4 +- ...hape_ShapeRepresentationWithParameters.hxx | 61 + src/StepShape/StepShape_Shell.cdl | 45 - src/StepShape/StepShape_Shell.cxx | 6 +- src/StepShape/StepShape_Shell.hxx | 77 + .../StepShape_ShellBasedSurfaceModel.cdl | 50 - .../StepShape_ShellBasedSurfaceModel.cxx | 5 +- .../StepShape_ShellBasedSurfaceModel.hxx | 79 + src/StepShape/StepShape_SolidModel.cdl | 30 - src/StepShape/StepShape_SolidModel.cxx | 3 +- src/StepShape/StepShape_SolidModel.hxx | 62 + src/StepShape/StepShape_SolidReplica.cdl | 51 - src/StepShape/StepShape_SolidReplica.cxx | 6 +- src/StepShape/StepShape_SolidReplica.hxx | 79 + src/StepShape/StepShape_Sphere.cdl | 52 - src/StepShape/StepShape_Sphere.cxx | 5 +- src/StepShape/StepShape_Sphere.hxx | 79 + src/StepShape/StepShape_Subedge.cdl | 46 - src/StepShape/StepShape_Subedge.cxx | 7 +- src/StepShape/StepShape_Subedge.hxx | 74 + src/StepShape/StepShape_Subface.cdl | 45 - src/StepShape/StepShape_Subface.cxx | 6 +- src/StepShape/StepShape_Subface.hxx | 74 + src/StepShape/StepShape_SurfaceModel.cdl | 42 - src/StepShape/StepShape_SurfaceModel.cxx | 6 +- src/StepShape/StepShape_SurfaceModel.hxx | 73 + src/StepShape/StepShape_SweptAreaSolid.cdl | 47 - src/StepShape/StepShape_SweptAreaSolid.cxx | 5 +- src/StepShape/StepShape_SweptAreaSolid.hxx | 73 + src/StepShape/StepShape_SweptFaceSolid.cdl | 45 - src/StepShape/StepShape_SweptFaceSolid.cxx | 5 +- src/StepShape/StepShape_SweptFaceSolid.hxx | 73 + .../StepShape_ToleranceMethodDefinition.cdl | 39 - .../StepShape_ToleranceMethodDefinition.cxx | 6 +- .../StepShape_ToleranceMethodDefinition.hxx | 74 + src/StepShape/StepShape_ToleranceValue.cdl | 42 - src/StepShape/StepShape_ToleranceValue.cxx | 5 +- src/StepShape/StepShape_ToleranceValue.hxx | 73 + ...tepShape_TopologicalRepresentationItem.cdl | 35 - ...tepShape_TopologicalRepresentationItem.cxx | 3 +- ...tepShape_TopologicalRepresentationItem.hxx | 62 + src/StepShape/StepShape_Torus.cdl | 56 - src/StepShape/StepShape_Torus.cxx | 5 +- src/StepShape/StepShape_Torus.hxx | 84 + ...pShape_TransitionalShapeRepresentation.cdl | 32 - ...pShape_TransitionalShapeRepresentation.cxx | 3 +- ...pShape_TransitionalShapeRepresentation.hxx | 62 + src/StepShape/StepShape_TypeQualifier.cdl | 36 - src/StepShape/StepShape_TypeQualifier.cxx | 5 +- src/StepShape/StepShape_TypeQualifier.hxx | 68 + src/StepShape/StepShape_ValueQualifier.cdl | 40 - src/StepShape/StepShape_ValueQualifier.cxx | 4 +- src/StepShape/StepShape_ValueQualifier.hxx | 75 + src/StepShape/StepShape_Vertex.cdl | 30 - src/StepShape/StepShape_Vertex.cxx | 3 +- src/StepShape/StepShape_Vertex.hxx | 62 + src/StepShape/StepShape_VertexLoop.cdl | 47 - src/StepShape/StepShape_VertexLoop.cxx | 5 +- src/StepShape/StepShape_VertexLoop.hxx | 73 + src/StepShape/StepShape_VertexPoint.cdl | 50 - src/StepShape/StepShape_VertexPoint.cxx | 5 +- src/StepShape/StepShape_VertexPoint.hxx | 73 + src/StepToGeom/FILES | 97 +- src/StepToGeom/StepToGeom.cdl | 76 - src/StepToGeom/StepToGeom_CMPLRS.edl | 28 - .../StepToGeom_MakeAxis1Placement.cdl | 31 - .../StepToGeom_MakeAxis1Placement.cxx | 14 +- .../StepToGeom_MakeAxis1Placement.hxx | 63 + .../StepToGeom_MakeAxis2Placement.cdl | 31 - .../StepToGeom_MakeAxis2Placement.cxx | 13 +- .../StepToGeom_MakeAxis2Placement.hxx | 63 + .../StepToGeom_MakeAxisPlacement.cdl | 31 - .../StepToGeom_MakeAxisPlacement.cxx | 11 +- .../StepToGeom_MakeAxisPlacement.hxx | 63 + .../StepToGeom_MakeBSplineCurve.cdl | 32 - .../StepToGeom_MakeBSplineCurve.cxx | 18 +- .../StepToGeom_MakeBSplineCurve.hxx | 63 + .../StepToGeom_MakeBSplineCurve2d.cdl | 32 - .../StepToGeom_MakeBSplineCurve2d.cxx | 18 +- .../StepToGeom_MakeBSplineCurve2d.hxx | 63 + .../StepToGeom_MakeBSplineSurface.cdl | 32 - .../StepToGeom_MakeBSplineSurface.cxx | 18 +- .../StepToGeom_MakeBSplineSurface.hxx | 64 + .../StepToGeom_MakeBoundedCurve.cdl | 35 - .../StepToGeom_MakeBoundedCurve.cxx | 22 +- .../StepToGeom_MakeBoundedCurve.hxx | 67 + .../StepToGeom_MakeBoundedCurve2d.cdl | 35 - .../StepToGeom_MakeBoundedCurve2d.cxx | 11 +- .../StepToGeom_MakeBoundedCurve2d.hxx | 67 + .../StepToGeom_MakeBoundedSurface.cdl | 35 - .../StepToGeom_MakeBoundedSurface.cxx | 30 +- .../StepToGeom_MakeBoundedSurface.hxx | 67 + .../StepToGeom_MakeCartesianPoint.cdl | 33 - .../StepToGeom_MakeCartesianPoint.cxx | 5 +- .../StepToGeom_MakeCartesianPoint.hxx | 64 + .../StepToGeom_MakeCartesianPoint2d.cdl | 33 - .../StepToGeom_MakeCartesianPoint2d.cxx | 6 +- .../StepToGeom_MakeCartesianPoint2d.hxx | 64 + src/StepToGeom/StepToGeom_MakeCircle.cdl | 33 - src/StepToGeom/StepToGeom_MakeCircle.cxx | 11 +- src/StepToGeom/StepToGeom_MakeCircle.hxx | 64 + src/StepToGeom/StepToGeom_MakeCircle2d.cdl | 33 - src/StepToGeom/StepToGeom_MakeCircle2d.cxx | 11 +- src/StepToGeom/StepToGeom_MakeCircle2d.hxx | 64 + src/StepToGeom/StepToGeom_MakeConic.cdl | 34 - src/StepToGeom/StepToGeom_MakeConic.cxx | 12 +- src/StepToGeom/StepToGeom_MakeConic.hxx | 66 + src/StepToGeom/StepToGeom_MakeConic2d.cdl | 34 - src/StepToGeom/StepToGeom_MakeConic2d.cxx | 6 +- src/StepToGeom/StepToGeom_MakeConic2d.hxx | 66 + .../StepToGeom_MakeConicalSurface.cdl | 32 - .../StepToGeom_MakeConicalSurface.cxx | 12 +- .../StepToGeom_MakeConicalSurface.hxx | 64 + src/StepToGeom/StepToGeom_MakeCurve.cdl | 34 - src/StepToGeom/StepToGeom_MakeCurve.cxx | 24 +- src/StepToGeom/StepToGeom_MakeCurve.hxx | 66 + src/StepToGeom/StepToGeom_MakeCurve2d.cdl | 34 - src/StepToGeom/StepToGeom_MakeCurve2d.cxx | 26 +- src/StepToGeom/StepToGeom_MakeCurve2d.hxx | 66 + .../StepToGeom_MakeCylindricalSurface.cdl | 33 - .../StepToGeom_MakeCylindricalSurface.cxx | 9 +- .../StepToGeom_MakeCylindricalSurface.hxx | 65 + src/StepToGeom/StepToGeom_MakeDirection.cdl | 33 - src/StepToGeom/StepToGeom_MakeDirection.cxx | 4 +- src/StepToGeom/StepToGeom_MakeDirection.hxx | 64 + src/StepToGeom/StepToGeom_MakeDirection2d.cdl | 33 - src/StepToGeom/StepToGeom_MakeDirection2d.cxx | 4 +- src/StepToGeom/StepToGeom_MakeDirection2d.hxx | 64 + .../StepToGeom_MakeElementarySurface.cdl | 34 - .../StepToGeom_MakeElementarySurface.cxx | 14 +- .../StepToGeom_MakeElementarySurface.hxx | 66 + src/StepToGeom/StepToGeom_MakeEllipse.cdl | 33 - src/StepToGeom/StepToGeom_MakeEllipse.cxx | 10 +- src/StepToGeom/StepToGeom_MakeEllipse.hxx | 64 + src/StepToGeom/StepToGeom_MakeEllipse2d.cdl | 33 - src/StepToGeom/StepToGeom_MakeEllipse2d.cxx | 10 +- src/StepToGeom/StepToGeom_MakeEllipse2d.hxx | 64 + src/StepToGeom/StepToGeom_MakeHyperbola.cdl | 33 - src/StepToGeom/StepToGeom_MakeHyperbola.cxx | 11 +- src/StepToGeom/StepToGeom_MakeHyperbola.hxx | 64 + src/StepToGeom/StepToGeom_MakeHyperbola2d.cdl | 33 - src/StepToGeom/StepToGeom_MakeHyperbola2d.cxx | 11 +- src/StepToGeom/StepToGeom_MakeHyperbola2d.hxx | 64 + src/StepToGeom/StepToGeom_MakeLine.cdl | 33 - src/StepToGeom/StepToGeom_MakeLine.cxx | 15 +- src/StepToGeom/StepToGeom_MakeLine.hxx | 64 + src/StepToGeom/StepToGeom_MakeLine2d.cdl | 33 - src/StepToGeom/StepToGeom_MakeLine2d.cxx | 15 +- src/StepToGeom/StepToGeom_MakeLine2d.hxx | 64 + src/StepToGeom/StepToGeom_MakeParabola.cdl | 33 - src/StepToGeom/StepToGeom_MakeParabola.cxx | 11 +- src/StepToGeom/StepToGeom_MakeParabola.hxx | 64 + src/StepToGeom/StepToGeom_MakeParabola2d.cdl | 33 - src/StepToGeom/StepToGeom_MakeParabola2d.cxx | 11 +- src/StepToGeom/StepToGeom_MakeParabola2d.hxx | 64 + src/StepToGeom/StepToGeom_MakePlane.cdl | 33 - src/StepToGeom/StepToGeom_MakePlane.cxx | 10 +- src/StepToGeom/StepToGeom_MakePlane.hxx | 64 + src/StepToGeom/StepToGeom_MakePolyline.cdl | 32 - src/StepToGeom/StepToGeom_MakePolyline.cxx | 13 +- src/StepToGeom/StepToGeom_MakePolyline.hxx | 64 + src/StepToGeom/StepToGeom_MakePolyline2d.cdl | 32 - src/StepToGeom/StepToGeom_MakePolyline2d.cxx | 13 +- src/StepToGeom/StepToGeom_MakePolyline2d.hxx | 63 + ...epToGeom_MakeRectangularTrimmedSurface.cdl | 32 - ...epToGeom_MakeRectangularTrimmedSurface.cxx | 13 +- ...epToGeom_MakeRectangularTrimmedSurface.hxx | 64 + .../StepToGeom_MakeSphericalSurface.cdl | 32 - .../StepToGeom_MakeSphericalSurface.cxx | 10 +- .../StepToGeom_MakeSphericalSurface.hxx | 64 + src/StepToGeom/StepToGeom_MakeSurface.cdl | 34 - src/StepToGeom/StepToGeom_MakeSurface.cxx | 39 +- src/StepToGeom/StepToGeom_MakeSurface.hxx | 66 + ...tepToGeom_MakeSurfaceOfLinearExtrusion.cdl | 33 - ...tepToGeom_MakeSurfaceOfLinearExtrusion.cxx | 15 +- ...tepToGeom_MakeSurfaceOfLinearExtrusion.hxx | 65 + .../StepToGeom_MakeSurfaceOfRevolution.cdl | 33 - .../StepToGeom_MakeSurfaceOfRevolution.cxx | 18 +- .../StepToGeom_MakeSurfaceOfRevolution.hxx | 65 + .../StepToGeom_MakeSweptSurface.cdl | 34 - .../StepToGeom_MakeSweptSurface.cxx | 7 +- .../StepToGeom_MakeSweptSurface.hxx | 66 + .../StepToGeom_MakeToroidalSurface.cdl | 32 - .../StepToGeom_MakeToroidalSurface.cxx | 12 +- .../StepToGeom_MakeToroidalSurface.hxx | 64 + .../StepToGeom_MakeTransformation2d.cdl | 31 - .../StepToGeom_MakeTransformation2d.cxx | 13 +- .../StepToGeom_MakeTransformation2d.hxx | 62 + .../StepToGeom_MakeTransformation3d.cdl | 31 - .../StepToGeom_MakeTransformation3d.cxx | 13 +- .../StepToGeom_MakeTransformation3d.hxx | 62 + .../StepToGeom_MakeTrimmedCurve.cdl | 33 - .../StepToGeom_MakeTrimmedCurve.cxx | 34 +- .../StepToGeom_MakeTrimmedCurve.hxx | 65 + .../StepToGeom_MakeTrimmedCurve2d.cdl | 33 - .../StepToGeom_MakeTrimmedCurve2d.cxx | 21 +- .../StepToGeom_MakeTrimmedCurve2d.hxx | 65 + .../StepToGeom_MakeVectorWithMagnitude.cdl | 33 - .../StepToGeom_MakeVectorWithMagnitude.cxx | 10 +- .../StepToGeom_MakeVectorWithMagnitude.hxx | 64 + .../StepToGeom_MakeVectorWithMagnitude2d.cdl | 33 - .../StepToGeom_MakeVectorWithMagnitude2d.cxx | 10 +- .../StepToGeom_MakeVectorWithMagnitude2d.hxx | 64 + src/StepToGeom/StepToGeom_Root.cdl | 33 - src/StepToGeom/StepToGeom_Root.cxx | 3 +- src/StepToGeom/StepToGeom_Root.hxx | 62 + src/StepToGeom/StepToGeom_WOKSteps.edl | 16 - src/StepToTopoDS/FILES | 59 +- src/StepToTopoDS/StepToTopoDS.cdl | 187 - src/StepToTopoDS/StepToTopoDS.cxx | 4 +- src/StepToTopoDS/StepToTopoDS.hxx | 121 + src/StepToTopoDS/StepToTopoDS_Builder.cdl | 121 - src/StepToTopoDS/StepToTopoDS_Builder.cxx | 117 +- src/StepToTopoDS/StepToTopoDS_Builder.hxx | 110 + .../StepToTopoDS_BuilderError.hxx | 27 + .../StepToTopoDS_CartesianPointHasher.cdl | 30 - .../StepToTopoDS_CartesianPointHasher.cxx | 4 +- .../StepToTopoDS_CartesianPointHasher.hxx | 66 + .../StepToTopoDS_GeometricTool.cdl | 71 - .../StepToTopoDS_GeometricTool.cxx | 76 +- .../StepToTopoDS_GeometricTool.hxx | 75 + .../StepToTopoDS_GeometricToolError.hxx | 31 + .../StepToTopoDS_MakeTransformed.cdl | 68 - .../StepToTopoDS_MakeTransformed.cxx | 34 +- .../StepToTopoDS_MakeTransformed.hxx | 97 + src/StepToTopoDS/StepToTopoDS_NMTool.cdl | 115 - src/StepToTopoDS/StepToTopoDS_NMTool.hxx | 107 + src/StepToTopoDS/StepToTopoDS_PointPair.cdl | 36 - src/StepToTopoDS/StepToTopoDS_PointPair.cxx | 6 +- src/StepToTopoDS/StepToTopoDS_PointPair.hxx | 64 + .../StepToTopoDS_PointPairHasher.cdl | 30 - .../StepToTopoDS_PointPairHasher.cxx | 4 +- .../StepToTopoDS_PointPairHasher.hxx | 66 + src/StepToTopoDS/StepToTopoDS_Root.cdl | 56 - src/StepToTopoDS/StepToTopoDS_Root.cxx | 4 +- src/StepToTopoDS/StepToTopoDS_Root.hxx | 81 + src/StepToTopoDS/StepToTopoDS_Tool.cdl | 150 - src/StepToTopoDS/StepToTopoDS_Tool.cxx | 13 +- src/StepToTopoDS/StepToTopoDS_Tool.hxx | 145 + .../StepToTopoDS_TranslateCompositeCurve.cdl | 78 - .../StepToTopoDS_TranslateCompositeCurve.cxx | 33 +- .../StepToTopoDS_TranslateCompositeCurve.hxx | 95 + ...pToTopoDS_TranslateCurveBoundedSurface.cdl | 49 - ...pToTopoDS_TranslateCurveBoundedSurface.cxx | 26 +- ...pToTopoDS_TranslateCurveBoundedSurface.hxx | 76 + .../StepToTopoDS_TranslateEdge.cdl | 81 - .../StepToTopoDS_TranslateEdge.cxx | 69 +- .../StepToTopoDS_TranslateEdge.hxx | 92 + .../StepToTopoDS_TranslateEdgeError.hxx | 27 + .../StepToTopoDS_TranslateEdgeLoop.cdl | 71 - .../StepToTopoDS_TranslateEdgeLoop.cxx | 108 +- .../StepToTopoDS_TranslateEdgeLoop.hxx | 81 + .../StepToTopoDS_TranslateEdgeLoopError.hxx | 27 + .../StepToTopoDS_TranslateFace.cdl | 60 - .../StepToTopoDS_TranslateFace.cxx | 98 +- .../StepToTopoDS_TranslateFace.hxx | 77 + .../StepToTopoDS_TranslateFaceError.hxx | 27 + .../StepToTopoDS_TranslatePolyLoop.cdl | 63 - .../StepToTopoDS_TranslatePolyLoop.cxx | 37 +- .../StepToTopoDS_TranslatePolyLoop.hxx | 78 + .../StepToTopoDS_TranslatePolyLoopError.hxx | 27 + .../StepToTopoDS_TranslateShell.cdl | 60 - .../StepToTopoDS_TranslateShell.cxx | 22 +- .../StepToTopoDS_TranslateShell.hxx | 77 + .../StepToTopoDS_TranslateShellError.hxx | 27 + .../StepToTopoDS_TranslateVertex.cdl | 60 - .../StepToTopoDS_TranslateVertex.cxx | 29 +- .../StepToTopoDS_TranslateVertex.hxx | 77 + .../StepToTopoDS_TranslateVertexError.hxx | 27 + .../StepToTopoDS_TranslateVertexLoop.cdl | 60 - .../StepToTopoDS_TranslateVertexLoop.cxx | 16 +- .../StepToTopoDS_TranslateVertexLoop.hxx | 77 + .../StepToTopoDS_TranslateVertexLoopError.hxx | 27 + src/StepVisual/FILES | 204 +- src/StepVisual/StepVisual.cdl | 356 -- .../StepVisual_AnnotationOccurrence.cdl | 32 - .../StepVisual_AnnotationOccurrence.cxx | 3 +- .../StepVisual_AnnotationOccurrence.hxx | 62 + src/StepVisual/StepVisual_AnnotationText.cdl | 32 - src/StepVisual/StepVisual_AnnotationText.cxx | 3 +- src/StepVisual/StepVisual_AnnotationText.hxx | 62 + .../StepVisual_AnnotationTextOccurrence.cdl | 32 - .../StepVisual_AnnotationTextOccurrence.cxx | 3 +- .../StepVisual_AnnotationTextOccurrence.hxx | 62 + src/StepVisual/StepVisual_AreaInSet.cdl | 46 - src/StepVisual/StepVisual_AreaInSet.cxx | 5 +- src/StepVisual/StepVisual_AreaInSet.hxx | 76 + src/StepVisual/StepVisual_AreaOrView.cdl | 45 - src/StepVisual/StepVisual_AreaOrView.cxx | 4 +- src/StepVisual/StepVisual_AreaOrView.hxx | 77 + .../StepVisual_BackgroundColour.cdl | 41 - .../StepVisual_BackgroundColour.cxx | 4 +- .../StepVisual_BackgroundColour.hxx | 71 + .../StepVisual_BoxCharacteristicSelect.cdl | 46 - .../StepVisual_BoxCharacteristicSelect.cxx | 3 +- .../StepVisual_BoxCharacteristicSelect.hxx | 71 + src/StepVisual/StepVisual_CameraImage.cdl | 32 - src/StepVisual/StepVisual_CameraImage.cxx | 3 +- src/StepVisual/StepVisual_CameraImage.hxx | 62 + .../StepVisual_CameraImage2dWithScale.cdl | 23 - .../StepVisual_CameraImage2dWithScale.cxx | 4 +- .../StepVisual_CameraImage2dWithScale.hxx | 61 + .../StepVisual_CameraImage3dWithScale.cdl | 23 - .../StepVisual_CameraImage3dWithScale.cxx | 4 +- .../StepVisual_CameraImage3dWithScale.hxx | 61 + src/StepVisual/StepVisual_CameraModel.cdl | 30 - src/StepVisual/StepVisual_CameraModel.cxx | 3 +- src/StepVisual/StepVisual_CameraModel.hxx | 62 + src/StepVisual/StepVisual_CameraModelD2.cdl | 52 - src/StepVisual/StepVisual_CameraModelD2.cxx | 5 +- src/StepVisual/StepVisual_CameraModelD2.hxx | 79 + src/StepVisual/StepVisual_CameraModelD3.cdl | 52 - src/StepVisual/StepVisual_CameraModelD3.cxx | 6 +- src/StepVisual/StepVisual_CameraModelD3.hxx | 79 + src/StepVisual/StepVisual_CameraUsage.cdl | 31 - src/StepVisual/StepVisual_CameraUsage.cxx | 3 +- src/StepVisual/StepVisual_CameraUsage.hxx | 62 + .../StepVisual_CentralOrParallel.hxx | 27 + src/StepVisual/StepVisual_Colour.cdl | 27 - src/StepVisual/StepVisual_Colour.cxx | 3 +- src/StepVisual/StepVisual_Colour.hxx | 62 + src/StepVisual/StepVisual_ColourRgb.cdl | 55 - src/StepVisual/StepVisual_ColourRgb.cxx | 4 +- src/StepVisual/StepVisual_ColourRgb.hxx | 83 + .../StepVisual_ColourSpecification.cdl | 41 - .../StepVisual_ColourSpecification.cxx | 4 +- .../StepVisual_ColourSpecification.hxx | 70 + src/StepVisual/StepVisual_CompositeText.cdl | 50 - src/StepVisual/StepVisual_CompositeText.cxx | 5 +- src/StepVisual/StepVisual_CompositeText.hxx | 79 + .../StepVisual_CompositeTextWithExtent.cdl | 50 - .../StepVisual_CompositeTextWithExtent.cxx | 5 +- .../StepVisual_CompositeTextWithExtent.hxx | 74 + ...tepVisual_ContextDependentInvisibility.cdl | 47 - ...tepVisual_ContextDependentInvisibility.cxx | 4 +- ...tepVisual_ContextDependentInvisibility.hxx | 74 + ...l_ContextDependentOverRidingStyledItem.cdl | 59 - ...l_ContextDependentOverRidingStyledItem.cxx | 7 +- ...l_ContextDependentOverRidingStyledItem.hxx | 82 + src/StepVisual/StepVisual_CurveStyle.cdl | 56 - src/StepVisual/StepVisual_CurveStyle.cxx | 7 +- src/StepVisual/StepVisual_CurveStyle.hxx | 90 + src/StepVisual/StepVisual_CurveStyleFont.cdl | 49 - src/StepVisual/StepVisual_CurveStyleFont.cxx | 5 +- src/StepVisual/StepVisual_CurveStyleFont.hxx | 82 + .../StepVisual_CurveStyleFontPattern.cdl | 45 - .../StepVisual_CurveStyleFontPattern.cxx | 3 +- .../StepVisual_CurveStyleFontPattern.hxx | 75 + .../StepVisual_CurveStyleFontSelect.cdl | 50 - .../StepVisual_CurveStyleFontSelect.cxx | 6 +- .../StepVisual_CurveStyleFontSelect.hxx | 82 + .../StepVisual_DirectionCountSelect.cdl | 50 - .../StepVisual_DirectionCountSelect.hxx | 75 + ...pVisual_DraughtingAnnotationOccurrence.cdl | 32 - ...pVisual_DraughtingAnnotationOccurrence.cxx | 3 +- ...pVisual_DraughtingAnnotationOccurrence.hxx | 62 + src/StepVisual/StepVisual_DraughtingModel.cdl | 32 - src/StepVisual/StepVisual_DraughtingModel.cxx | 4 +- src/StepVisual/StepVisual_DraughtingModel.hxx | 61 + .../StepVisual_DraughtingPreDefinedColour.cdl | 30 - .../StepVisual_DraughtingPreDefinedColour.cxx | 3 +- .../StepVisual_DraughtingPreDefinedColour.hxx | 62 + ...epVisual_DraughtingPreDefinedCurveFont.cdl | 30 - ...epVisual_DraughtingPreDefinedCurveFont.cxx | 3 +- ...epVisual_DraughtingPreDefinedCurveFont.hxx | 62 + .../StepVisual_ExternallyDefinedCurveFont.cdl | 31 - .../StepVisual_ExternallyDefinedCurveFont.cxx | 4 +- .../StepVisual_ExternallyDefinedCurveFont.hxx | 61 + .../StepVisual_ExternallyDefinedTextFont.cdl | 31 - .../StepVisual_ExternallyDefinedTextFont.cxx | 4 +- .../StepVisual_ExternallyDefinedTextFont.hxx | 61 + src/StepVisual/StepVisual_FillAreaStyle.cdl | 49 - src/StepVisual/StepVisual_FillAreaStyle.cxx | 5 +- src/StepVisual/StepVisual_FillAreaStyle.hxx | 82 + .../StepVisual_FillAreaStyleColour.cdl | 46 - .../StepVisual_FillAreaStyleColour.cxx | 5 +- .../StepVisual_FillAreaStyleColour.hxx | 76 + src/StepVisual/StepVisual_FillStyleSelect.cdl | 49 - src/StepVisual/StepVisual_FillStyleSelect.cxx | 4 +- src/StepVisual/StepVisual_FillStyleSelect.hxx | 76 + src/StepVisual/StepVisual_FontSelect.cdl | 45 - src/StepVisual/StepVisual_FontSelect.cxx | 6 +- src/StepVisual/StepVisual_FontSelect.hxx | 77 + src/StepVisual/StepVisual_Invisibility.cdl | 44 - src/StepVisual/StepVisual_Invisibility.cxx | 4 +- src/StepVisual/StepVisual_Invisibility.hxx | 76 + .../StepVisual_InvisibilityContext.cdl | 45 - .../StepVisual_InvisibilityContext.cxx | 4 +- .../StepVisual_InvisibilityContext.hxx | 77 + src/StepVisual/StepVisual_InvisibleItem.cdl | 50 - src/StepVisual/StepVisual_InvisibleItem.cxx | 6 +- src/StepVisual/StepVisual_InvisibleItem.hxx | 82 + src/StepVisual/StepVisual_LayeredItem.cdl | 45 - src/StepVisual/StepVisual_LayeredItem.cxx | 6 +- src/StepVisual/StepVisual_LayeredItem.hxx | 77 + src/StepVisual/StepVisual_MarkerMember.cdl | 48 - src/StepVisual/StepVisual_MarkerMember.cxx | 4 +- src/StepVisual/StepVisual_MarkerMember.hxx | 80 + src/StepVisual/StepVisual_MarkerSelect.cdl | 42 - src/StepVisual/StepVisual_MarkerSelect.cxx | 6 +- src/StepVisual/StepVisual_MarkerSelect.hxx | 78 + src/StepVisual/StepVisual_MarkerType.hxx | 32 + ...hanicalDesignGeometricPresentationArea.cdl | 32 - ...hanicalDesignGeometricPresentationArea.cxx | 3 +- ...hanicalDesignGeometricPresentationArea.hxx | 62 + ...ignGeometricPresentationRepresentation.cdl | 32 - ...ignGeometricPresentationRepresentation.cxx | 3 +- ...ignGeometricPresentationRepresentation.hxx | 62 + .../StepVisual_OverRidingStyledItem.cdl | 52 - .../StepVisual_OverRidingStyledItem.cxx | 6 +- .../StepVisual_OverRidingStyledItem.hxx | 75 + src/StepVisual/StepVisual_PlanarBox.cdl | 52 - src/StepVisual/StepVisual_PlanarBox.cxx | 5 +- src/StepVisual/StepVisual_PlanarBox.hxx | 75 + src/StepVisual/StepVisual_PlanarExtent.cdl | 51 - src/StepVisual/StepVisual_PlanarExtent.cxx | 4 +- src/StepVisual/StepVisual_PlanarExtent.hxx | 78 + src/StepVisual/StepVisual_PointStyle.cdl | 56 - src/StepVisual/StepVisual_PointStyle.cxx | 7 +- src/StepVisual/StepVisual_PointStyle.hxx | 90 + .../StepVisual_PreDefinedColour.cdl | 43 - .../StepVisual_PreDefinedColour.cxx | 4 +- .../StepVisual_PreDefinedColour.hxx | 70 + .../StepVisual_PreDefinedCurveFont.cdl | 30 - .../StepVisual_PreDefinedCurveFont.cxx | 3 +- .../StepVisual_PreDefinedCurveFont.hxx | 62 + src/StepVisual/StepVisual_PreDefinedItem.cdl | 41 - src/StepVisual/StepVisual_PreDefinedItem.cxx | 4 +- src/StepVisual/StepVisual_PreDefinedItem.hxx | 70 + .../StepVisual_PreDefinedTextFont.cdl | 30 - .../StepVisual_PreDefinedTextFont.cxx | 3 +- .../StepVisual_PreDefinedTextFont.hxx | 62 + .../StepVisual_PresentationArea.cdl | 32 - .../StepVisual_PresentationArea.cxx | 3 +- .../StepVisual_PresentationArea.hxx | 62 + ...StepVisual_PresentationLayerAssignment.cdl | 53 - ...StepVisual_PresentationLayerAssignment.cxx | 5 +- ...StepVisual_PresentationLayerAssignment.hxx | 87 + .../StepVisual_PresentationLayerUsage.cdl | 44 - .../StepVisual_PresentationLayerUsage.cxx | 6 +- .../StepVisual_PresentationLayerUsage.hxx | 75 + .../StepVisual_PresentationRepresentation.cdl | 32 - .../StepVisual_PresentationRepresentation.cxx | 3 +- .../StepVisual_PresentationRepresentation.hxx | 62 + ...isual_PresentationRepresentationSelect.cdl | 45 - ...isual_PresentationRepresentationSelect.cxx | 4 +- ...isual_PresentationRepresentationSelect.hxx | 77 + src/StepVisual/StepVisual_PresentationSet.cdl | 27 - src/StepVisual/StepVisual_PresentationSet.cxx | 3 +- src/StepVisual/StepVisual_PresentationSet.hxx | 62 + .../StepVisual_PresentationSize.cdl | 46 - .../StepVisual_PresentationSize.cxx | 5 +- .../StepVisual_PresentationSize.hxx | 77 + ...isual_PresentationSizeAssignmentSelect.cdl | 50 - ...isual_PresentationSizeAssignmentSelect.cxx | 8 +- ...isual_PresentationSizeAssignmentSelect.hxx | 82 + ...StepVisual_PresentationStyleAssignment.cdl | 44 - ...StepVisual_PresentationStyleAssignment.cxx | 4 +- ...StepVisual_PresentationStyleAssignment.hxx | 76 + .../StepVisual_PresentationStyleByContext.cdl | 47 - .../StepVisual_PresentationStyleByContext.cxx | 4 +- .../StepVisual_PresentationStyleByContext.hxx | 74 + .../StepVisual_PresentationStyleSelect.cdl | 56 - .../StepVisual_PresentationStyleSelect.cxx | 8 +- .../StepVisual_PresentationStyleSelect.hxx | 85 + .../StepVisual_PresentationView.cdl | 32 - .../StepVisual_PresentationView.cxx | 3 +- .../StepVisual_PresentationView.hxx | 62 + src/StepVisual/StepVisual_PresentedItem.cdl | 24 - src/StepVisual/StepVisual_PresentedItem.cxx | 3 +- src/StepVisual/StepVisual_PresentedItem.hxx | 59 + ...StepVisual_PresentedItemRepresentation.cdl | 44 - ...StepVisual_PresentedItemRepresentation.cxx | 6 +- ...StepVisual_PresentedItemRepresentation.hxx | 76 + .../StepVisual_StyleContextSelect.cdl | 50 - .../StepVisual_StyleContextSelect.cxx | 4 +- .../StepVisual_StyleContextSelect.hxx | 82 + src/StepVisual/StepVisual_StyledItem.cdl | 54 - src/StepVisual/StepVisual_StyledItem.cxx | 6 +- src/StepVisual/StepVisual_StyledItem.hxx | 85 + src/StepVisual/StepVisual_SurfaceSide.hxx | 28 + .../StepVisual_SurfaceSideStyle.cdl | 49 - .../StepVisual_SurfaceSideStyle.cxx | 5 +- .../StepVisual_SurfaceSideStyle.hxx | 82 + .../StepVisual_SurfaceStyleBoundary.cdl | 41 - .../StepVisual_SurfaceStyleBoundary.cxx | 4 +- .../StepVisual_SurfaceStyleBoundary.hxx | 70 + .../StepVisual_SurfaceStyleControlGrid.cdl | 41 - .../StepVisual_SurfaceStyleControlGrid.cxx | 4 +- .../StepVisual_SurfaceStyleControlGrid.hxx | 70 + .../StepVisual_SurfaceStyleElementSelect.cdl | 57 - .../StepVisual_SurfaceStyleElementSelect.cxx | 10 +- .../StepVisual_SurfaceStyleElementSelect.hxx | 85 + .../StepVisual_SurfaceStyleFillArea.cdl | 41 - .../StepVisual_SurfaceStyleFillArea.cxx | 4 +- .../StepVisual_SurfaceStyleFillArea.hxx | 70 + .../StepVisual_SurfaceStyleParameterLine.cdl | 51 - .../StepVisual_SurfaceStyleParameterLine.cxx | 5 +- .../StepVisual_SurfaceStyleParameterLine.hxx | 82 + ...epVisual_SurfaceStyleSegmentationCurve.cdl | 41 - ...epVisual_SurfaceStyleSegmentationCurve.cxx | 4 +- ...epVisual_SurfaceStyleSegmentationCurve.hxx | 70 + .../StepVisual_SurfaceStyleSilhouette.cdl | 41 - .../StepVisual_SurfaceStyleSilhouette.cxx | 4 +- .../StepVisual_SurfaceStyleSilhouette.hxx | 70 + .../StepVisual_SurfaceStyleUsage.cdl | 46 - .../StepVisual_SurfaceStyleUsage.cxx | 4 +- .../StepVisual_SurfaceStyleUsage.hxx | 76 + src/StepVisual/StepVisual_Template.cdl | 32 - src/StepVisual/StepVisual_Template.cxx | 3 +- src/StepVisual/StepVisual_Template.hxx | 62 + .../StepVisual_TemplateInstance.cdl | 32 - .../StepVisual_TemplateInstance.cxx | 3 +- .../StepVisual_TemplateInstance.hxx | 62 + src/StepVisual/StepVisual_TextLiteral.cdl | 65 - src/StepVisual/StepVisual_TextLiteral.cxx | 6 +- src/StepVisual/StepVisual_TextLiteral.hxx | 97 + src/StepVisual/StepVisual_TextOrCharacter.cdl | 50 - src/StepVisual/StepVisual_TextOrCharacter.cxx | 4 +- src/StepVisual/StepVisual_TextOrCharacter.hxx | 82 + src/StepVisual/StepVisual_TextPath.hxx | 29 + src/StepVisual/StepVisual_TextStyle.cdl | 46 - src/StepVisual/StepVisual_TextStyle.cxx | 5 +- src/StepVisual/StepVisual_TextStyle.hxx | 76 + .../StepVisual_TextStyleForDefinedFont.cdl | 41 - .../StepVisual_TextStyleForDefinedFont.cxx | 4 +- .../StepVisual_TextStyleForDefinedFont.hxx | 70 + ...Visual_TextStyleWithBoxCharacteristics.cdl | 53 - ...Visual_TextStyleWithBoxCharacteristics.cxx | 6 +- ...Visual_TextStyleWithBoxCharacteristics.hxx | 80 + src/StepVisual/StepVisual_ViewVolume.cdl | 77 - src/StepVisual/StepVisual_ViewVolume.cxx | 5 +- src/StepVisual/StepVisual_ViewVolume.hxx | 114 + src/StlAPI/FILES | 7 + src/StlAPI/StlAPI.cdl | 51 - src/StlAPI/StlAPI.cxx | 6 +- src/StlAPI/StlAPI.hxx | 73 + src/StlAPI/StlAPI_ErrorStatus.hxx | 29 + src/StlAPI/StlAPI_Reader.cdl | 28 - src/StlAPI/StlAPI_Reader.cxx | 22 +- src/StlAPI/StlAPI_Reader.hxx | 62 + src/StlAPI/StlAPI_Writer.cdl | 49 - src/StlAPI/StlAPI_Writer.cxx | 10 +- src/StlAPI/StlAPI_Writer.hxx | 81 + src/StlMesh/FILES | 15 +- src/StlMesh/StlMesh.cdl | 56 - src/StlMesh/StlMesh.cxx | 7 +- src/StlMesh/StlMesh.hxx | 73 + src/StlMesh/StlMesh_Mesh.cdl | 168 - src/StlMesh/StlMesh_Mesh.cxx | 11 +- src/StlMesh/StlMesh_Mesh.hxx | 160 + src/StlMesh/StlMesh_MeshDomain.cdl | 112 - src/StlMesh/StlMesh_MeshDomain.cxx | 10 +- src/StlMesh/StlMesh_MeshDomain.hxx | 117 + src/StlMesh/StlMesh_MeshExplorer.cdl | 95 - src/StlMesh/StlMesh_MeshExplorer.cxx | 9 +- src/StlMesh/StlMesh_MeshExplorer.hxx | 105 + src/StlMesh/StlMesh_MeshTriangle.cdl | 69 - src/StlMesh/StlMesh_MeshTriangle.cxx | 7 +- src/StlMesh/StlMesh_MeshTriangle.hxx | 91 + src/StlTransfer/FILES | 2 + src/StlTransfer/StlTransfer.cdl | 41 - src/StlTransfer/StlTransfer.cxx | 38 +- src/StlTransfer/StlTransfer.hxx | 66 + src/Storage/FILES | 60 +- src/Storage/Storage.cdl | 166 - src/Storage/Storage.hxx | 103 + src/Storage/Storage_BaseDriver.cdl | 367 -- src/Storage/Storage_BaseDriver.cxx | 9 +- src/Storage/Storage_BaseDriver.hxx | 283 ++ src/Storage/Storage_CallBack.cdl | 33 - src/Storage/Storage_CallBack.cxx | 7 +- src/Storage/Storage_CallBack.hxx | 70 + src/Storage/Storage_Data.cdl | 239 -- src/Storage/Storage_Data.cxx | 12 +- src/Storage/Storage_Data.hxx | 271 ++ src/Storage/Storage_DefaultCallBack.cdl | 35 - src/Storage/Storage_DefaultCallBack.cxx | 7 +- src/Storage/Storage_DefaultCallBack.hxx | 72 + src/Storage/Storage_Error.hxx | 59 + src/Storage/Storage_HeaderData.cdl | 113 - src/Storage/Storage_HeaderData.cxx | 7 +- src/Storage/Storage_HeaderData.hxx | 150 + src/Storage/Storage_InternalData.cdl | 39 - src/Storage/Storage_InternalData.cxx | 5 +- src/Storage/Storage_InternalData.hxx | 74 + src/Storage/Storage_OpenMode.hxx | 35 + src/Storage/Storage_Root.cdl | 80 - src/Storage/Storage_Root.cxx | 7 +- src/Storage/Storage_Root.hxx | 120 + src/Storage/Storage_RootData.cdl | 74 - src/Storage/Storage_RootData.cxx | 9 +- src/Storage/Storage_RootData.hxx | 106 + src/Storage/Storage_Schema.cdl | 310 -- src/Storage/Storage_Schema.cxx | 38 +- src/Storage/Storage_Schema.hxx | 280 ++ src/Storage/Storage_SolveMode.hxx | 28 + .../Storage_StreamExtCharParityError.hxx | 37 + src/Storage/Storage_StreamFormatError.hxx | 37 + src/Storage/Storage_StreamModeError.hxx | 37 + src/Storage/Storage_StreamReadError.hxx | 37 + .../Storage_StreamTypeMismatchError.hxx | 37 + .../Storage_StreamUnknownTypeError.hxx | 37 + src/Storage/Storage_StreamWriteError.hxx | 37 + src/Storage/Storage_TypeData.cdl | 67 - src/Storage/Storage_TypeData.cxx | 7 +- src/Storage/Storage_TypeData.hxx | 101 + src/Storage/Storage_TypedCallBack.cdl | 45 - src/Storage/Storage_TypedCallBack.cxx | 6 +- src/Storage/Storage_TypedCallBack.hxx | 82 + src/Storage/Storage_stCONSTclCOM.cdl | 19 - src/Storage/Storage_stCONSTclCOM.hxx | 57 + src/Sweep/FILES | 8 + src/Sweep/Sweep.cdl | 45 - src/Sweep/Sweep_NumShape.cdl | 100 - src/Sweep/Sweep_NumShape.cxx | 3 +- src/Sweep/Sweep_NumShape.hxx | 110 + src/Sweep/Sweep_NumShapeIterator.cdl | 77 - src/Sweep/Sweep_NumShapeIterator.cxx | 7 +- src/Sweep/Sweep_NumShapeIterator.hxx | 89 + src/Sweep/Sweep_NumShapeTool.cdl | 79 - src/Sweep/Sweep_NumShapeTool.cxx | 6 +- src/Sweep/Sweep_NumShapeTool.hxx | 99 + src/TColGeom/FILES | 14 +- src/TColGeom/TColGeom.cdl | 51 - src/TColGeom2d/FILES | 12 +- src/TColGeom2d/TColGeom2d.cdl | 46 - src/TColQuantity/TColQuantity.cdl | 32 - src/TColStd/FILES | 129 +- src/TColStd/TColStd.cdl | 169 - src/TColStd/TColStd_HPackedMapOfInteger.cdl | 41 - src/TColStd/TColStd_HPackedMapOfInteger.cxx | 4 +- src/TColStd/TColStd_HPackedMapOfInteger.hxx | 70 + src/TColgp/FILES | 44 +- src/TColgp/TColgp.cdl | 137 - src/TCollection/FILES | 71 +- src/TCollection/TCollection.cdl | 96 - src/TCollection/TCollection.cxx | 4 +- src/TCollection/TCollection.hxx | 133 + src/TCollection/TCollection_Array1.cdl | 177 - src/TCollection/TCollection_Array2.cdl | 183 - src/TCollection/TCollection_AsciiString.cdl | 843 ----- src/TCollection/TCollection_AsciiString.cxx | 12 +- src/TCollection/TCollection_AsciiString.hxx | 695 ++++ src/TCollection/TCollection_BaseSequence.cdl | 170 - src/TCollection/TCollection_BaseSequence.cxx | 5 +- src/TCollection/TCollection_BaseSequence.hxx | 167 + src/TCollection/TCollection_BasicMap.cdl | 159 - src/TCollection/TCollection_BasicMap.cxx | 6 +- src/TCollection/TCollection_BasicMap.hxx | 172 + .../TCollection_BasicMapIterator.cdl | 82 - .../TCollection_BasicMapIterator.cxx | 4 +- .../TCollection_BasicMapIterator.hxx | 112 + src/TCollection/TCollection_DataMap.cdl | 214 -- src/TCollection/TCollection_DoubleMap.cdl | 210 -- .../TCollection_ExtendedString.cdl | 389 -- .../TCollection_ExtendedString.cxx | 8 +- .../TCollection_ExtendedString.hxx | 348 ++ src/TCollection/TCollection_HArray1.cdl | 136 - src/TCollection/TCollection_HArray2.cdl | 145 - src/TCollection/TCollection_HAsciiString.cdl | 584 --- src/TCollection/TCollection_HAsciiString.cxx | 9 +- src/TCollection/TCollection_HAsciiString.hxx | 496 +++ .../TCollection_HExtendedString.cdl | 233 -- .../TCollection_HExtendedString.cxx | 12 +- .../TCollection_HExtendedString.hxx | 232 ++ src/TCollection/TCollection_HSequence.cdl | 279 -- .../TCollection_IndexedDataMap.cdl | 228 -- src/TCollection/TCollection_IndexedMap.cdl | 151 - src/TCollection/TCollection_List.cdl | 314 -- src/TCollection/TCollection_Map.cdl | 165 - src/TCollection/TCollection_MapHasher.cdl | 59 - src/TCollection/TCollection_MapNode.cdl | 33 - src/TCollection/TCollection_MapNode.cxx | 4 +- src/TCollection/TCollection_MapNode.hxx | 66 + src/TCollection/TCollection_MapNodePtr.hxx | 23 + src/TCollection/TCollection_SeqNode.cdl | 35 - src/TCollection/TCollection_SeqNode.cxx | 4 +- src/TCollection/TCollection_SeqNode.hxx | 69 + src/TCollection/TCollection_SeqNodePtr.hxx | 23 + src/TCollection/TCollection_Sequence.cdl | 304 -- src/TCollection/TCollection_Side.hxx | 27 + src/TCollection/TCollection_WOKSteps.edl | 24 - src/TDF/FILES | 129 +- src/TDF/TDF.cdl | 246 -- src/TDF/TDF.cxx | 7 +- src/TDF/TDF.hxx | 138 + src/TDF/TDF_Attribute.cdl | 525 --- src/TDF/TDF_Attribute.cxx | 23 +- src/TDF/TDF_Attribute.hxx | 410 ++ src/TDF/TDF_AttributeDelta.cdl | 87 - src/TDF/TDF_AttributeDelta.cxx | 13 +- src/TDF/TDF_AttributeDelta.hxx | 97 + src/TDF/TDF_ChildIDIterator.cdl | 85 - src/TDF/TDF_ChildIDIterator.cxx | 10 +- src/TDF/TDF_ChildIDIterator.hxx | 99 + src/TDF/TDF_ChildIterator.cdl | 112 - src/TDF/TDF_ChildIterator.cxx | 6 +- src/TDF/TDF_ChildIterator.hxx | 125 + src/TDF/TDF_ClosureMode.cdl | 77 - src/TDF/TDF_ClosureMode.cxx | 7 +- src/TDF/TDF_ClosureMode.hxx | 84 + src/TDF/TDF_ClosureTool.cdl | 93 - src/TDF/TDF_ClosureTool.cxx | 13 +- src/TDF/TDF_ClosureTool.hxx | 87 + src/TDF/TDF_ComparisonTool.cdl | 148 - src/TDF/TDF_ComparisonTool.cxx | 11 +- src/TDF/TDF_ComparisonTool.hxx | 125 + src/TDF/TDF_CopyLabel.cdl | 81 - src/TDF/TDF_CopyLabel.cxx | 23 +- src/TDF/TDF_CopyLabel.hxx | 98 + src/TDF/TDF_CopyTool.cdl | 146 - src/TDF/TDF_CopyTool.cxx | 14 +- src/TDF/TDF_CopyTool.hxx | 129 + src/TDF/TDF_Data.cdl | 239 -- src/TDF/TDF_Data.cxx | 17 +- src/TDF/TDF_Data.hxx | 206 + src/TDF/TDF_DataSet.cdl | 125 - src/TDF/TDF_DataSet.cxx | 13 +- src/TDF/TDF_DataSet.hxx | 114 + src/TDF/TDF_DefaultDeltaOnModification.cdl | 46 - src/TDF/TDF_DefaultDeltaOnModification.cxx | 12 +- src/TDF/TDF_DefaultDeltaOnModification.hxx | 67 + src/TDF/TDF_DefaultDeltaOnRemoval.cdl | 45 - src/TDF/TDF_DefaultDeltaOnRemoval.cxx | 9 +- src/TDF/TDF_DefaultDeltaOnRemoval.hxx | 66 + src/TDF/TDF_Delta.cdl | 120 - src/TDF/TDF_Delta.cxx | 11 +- src/TDF/TDF_Delta.hxx | 122 + src/TDF/TDF_DeltaOnAddition.cdl | 47 - src/TDF/TDF_DeltaOnAddition.cxx | 10 +- src/TDF/TDF_DeltaOnAddition.hxx | 69 + src/TDF/TDF_DeltaOnForget.cdl | 45 - src/TDF/TDF_DeltaOnForget.cxx | 9 +- src/TDF/TDF_DeltaOnForget.hxx | 69 + src/TDF/TDF_DeltaOnModification.cdl | 48 - src/TDF/TDF_DeltaOnModification.cxx | 9 +- src/TDF/TDF_DeltaOnModification.hxx | 69 + src/TDF/TDF_DeltaOnRemoval.cdl | 43 - src/TDF/TDF_DeltaOnRemoval.cxx | 9 +- src/TDF/TDF_DeltaOnRemoval.hxx | 66 + src/TDF/TDF_DeltaOnResume.cdl | 45 - src/TDF/TDF_DeltaOnResume.cxx | 9 +- src/TDF/TDF_DeltaOnResume.hxx | 69 + src/TDF/TDF_IDFilter.cdl | 140 - src/TDF/TDF_IDFilter.cxx | 8 +- src/TDF/TDF_IDFilter.hxx | 137 + src/TDF/TDF_Label.cdl | 380 -- src/TDF/TDF_Label.cxx | 16 +- src/TDF/TDF_Label.hxx | 305 ++ src/TDF/TDF_LabelMapHasher.cdl | 44 - src/TDF/TDF_LabelMapHasher.cxx | 6 +- src/TDF/TDF_LabelMapHasher.hxx | 69 + src/TDF/TDF_LabelNodePtr.hxx | 22 + src/TDF/TDF_Reference.cdl | 75 - src/TDF/TDF_Reference.cxx | 10 +- src/TDF/TDF_Reference.hxx | 89 + src/TDF/TDF_RelocationTable.cdl | 207 -- src/TDF/TDF_RelocationTable.cxx | 12 +- src/TDF/TDF_RelocationTable.hxx | 173 + src/TDF/TDF_TagSource.cdl | 86 - src/TDF/TDF_TagSource.cxx | 9 +- src/TDF/TDF_TagSource.hxx | 100 + src/TDF/TDF_Tool.cdl | 237 -- src/TDF/TDF_Tool.cxx | 21 +- src/TDF/TDF_Tool.hxx | 183 + src/TDF/TDF_Transaction.cdl | 120 - src/TDF/TDF_Transaction.cxx | 10 +- src/TDF/TDF_Transaction.hxx | 126 + src/TDataStd/FILES | 118 +- src/TDataStd/TDataStd.cdl | 210 -- src/TDataStd/TDataStd.cxx | 32 +- src/TDataStd/TDataStd.hxx | 164 + src/TDataStd/TDataStd_AsciiString.cdl | 87 - src/TDataStd/TDataStd_AsciiString.cxx | 8 +- src/TDataStd/TDataStd_AsciiString.hxx | 96 + src/TDataStd/TDataStd_BooleanArray.cdl | 120 - src/TDataStd/TDataStd_BooleanArray.cxx | 8 +- src/TDataStd/TDataStd_BooleanArray.hxx | 116 + src/TDataStd/TDataStd_BooleanList.cdl | 102 - src/TDataStd/TDataStd_BooleanList.cxx | 8 +- src/TDataStd/TDataStd_BooleanList.hxx | 105 + src/TDataStd/TDataStd_ByteArray.cdl | 153 - src/TDataStd/TDataStd_ByteArray.cxx | 9 +- src/TDataStd/TDataStd_ByteArray.hxx | 141 + src/TDataStd/TDataStd_ChildNodeIterator.cdl | 76 - src/TDataStd/TDataStd_ChildNodeIterator.cxx | 4 +- src/TDataStd/TDataStd_ChildNodeIterator.hxx | 96 + src/TDataStd/TDataStd_Comment.cdl | 98 - src/TDataStd/TDataStd_Comment.cxx | 13 +- src/TDataStd/TDataStd_Comment.hxx | 104 + src/TDataStd/TDataStd_Current.cdl | 89 - src/TDataStd/TDataStd_Current.cxx | 11 +- src/TDataStd/TDataStd_Current.hxx | 100 + ...DataStd_DeltaOnModificationOfByteArray.cdl | 44 - ...DataStd_DeltaOnModificationOfByteArray.cxx | 14 +- ...DataStd_DeltaOnModificationOfByteArray.hxx | 73 + ...td_DeltaOnModificationOfExtStringArray.cdl | 43 - ...td_DeltaOnModificationOfExtStringArray.cxx | 12 +- ...td_DeltaOnModificationOfExtStringArray.hxx | 73 + ...TDataStd_DeltaOnModificationOfIntArray.cdl | 41 - ...TDataStd_DeltaOnModificationOfIntArray.cxx | 13 +- ...TDataStd_DeltaOnModificationOfIntArray.hxx | 72 + ...aStd_DeltaOnModificationOfIntPackedMap.cdl | 42 - ...aStd_DeltaOnModificationOfIntPackedMap.cxx | 11 +- ...aStd_DeltaOnModificationOfIntPackedMap.hxx | 69 + ...DataStd_DeltaOnModificationOfRealArray.cdl | 44 - ...DataStd_DeltaOnModificationOfRealArray.cxx | 13 +- ...DataStd_DeltaOnModificationOfRealArray.hxx | 73 + src/TDataStd/TDataStd_Directory.cdl | 93 - src/TDataStd/TDataStd_Directory.cxx | 12 +- src/TDataStd/TDataStd_Directory.hxx | 107 + src/TDataStd/TDataStd_Expression.cdl | 98 - src/TDataStd/TDataStd_Expression.cxx | 10 +- src/TDataStd/TDataStd_Expression.hxx | 106 + src/TDataStd/TDataStd_ExtStringArray.cdl | 138 - src/TDataStd/TDataStd_ExtStringArray.cxx | 11 +- src/TDataStd/TDataStd_ExtStringArray.hxx | 144 + src/TDataStd/TDataStd_ExtStringList.cdl | 120 - src/TDataStd/TDataStd_ExtStringList.cxx | 9 +- src/TDataStd/TDataStd_ExtStringList.hxx | 113 + .../TDataStd_HDataMapOfStringByte.cdl | 45 - .../TDataStd_HDataMapOfStringByte.cxx | 4 +- .../TDataStd_HDataMapOfStringByte.hxx | 71 + ...taStd_HDataMapOfStringHArray1OfInteger.cdl | 45 - ...taStd_HDataMapOfStringHArray1OfInteger.cxx | 4 +- ...taStd_HDataMapOfStringHArray1OfInteger.hxx | 71 + ...TDataStd_HDataMapOfStringHArray1OfReal.cdl | 45 - ...TDataStd_HDataMapOfStringHArray1OfReal.cxx | 4 +- ...TDataStd_HDataMapOfStringHArray1OfReal.hxx | 71 + .../TDataStd_HDataMapOfStringInteger.cdl | 45 - .../TDataStd_HDataMapOfStringInteger.cxx | 4 +- .../TDataStd_HDataMapOfStringInteger.hxx | 71 + .../TDataStd_HDataMapOfStringReal.cdl | 46 - .../TDataStd_HDataMapOfStringReal.cxx | 5 +- .../TDataStd_HDataMapOfStringReal.hxx | 71 + .../TDataStd_HDataMapOfStringString.cdl | 46 - .../TDataStd_HDataMapOfStringString.cxx | 4 +- .../TDataStd_HDataMapOfStringString.hxx | 71 + src/TDataStd/TDataStd_IntPackedMap.cdl | 151 - src/TDataStd/TDataStd_IntPackedMap.cxx | 16 +- src/TDataStd/TDataStd_IntPackedMap.hxx | 128 + src/TDataStd/TDataStd_Integer.cdl | 82 - src/TDataStd/TDataStd_Integer.cxx | 9 +- src/TDataStd/TDataStd_Integer.hxx | 98 + src/TDataStd/TDataStd_IntegerArray.cdl | 143 - src/TDataStd/TDataStd_IntegerArray.cxx | 10 +- src/TDataStd/TDataStd_IntegerArray.hxx | 145 + src/TDataStd/TDataStd_IntegerList.cdl | 116 - src/TDataStd/TDataStd_IntegerList.cxx | 8 +- src/TDataStd/TDataStd_IntegerList.hxx | 112 + src/TDataStd/TDataStd_Name.cdl | 177 - src/TDataStd/TDataStd_Name.cxx | 15 +- src/TDataStd/TDataStd_Name.hxx | 116 + src/TDataStd/TDataStd_NamedData.cdl | 321 -- src/TDataStd/TDataStd_NamedData.cxx | 18 +- src/TDataStd/TDataStd_NamedData.hxx | 238 ++ src/TDataStd/TDataStd_NoteBook.cdl | 91 - src/TDataStd/TDataStd_NoteBook.cxx | 16 +- src/TDataStd/TDataStd_NoteBook.hxx | 106 + src/TDataStd/TDataStd_PtrTreeNode.hxx | 23 + src/TDataStd/TDataStd_Real.cdl | 94 - src/TDataStd/TDataStd_Real.cxx | 12 +- src/TDataStd/TDataStd_Real.hxx | 108 + src/TDataStd/TDataStd_RealArray.cdl | 139 - src/TDataStd/TDataStd_RealArray.cxx | 10 +- src/TDataStd/TDataStd_RealArray.hxx | 146 + src/TDataStd/TDataStd_RealEnum.hxx | 30 + src/TDataStd/TDataStd_RealList.cdl | 117 - src/TDataStd/TDataStd_RealList.cxx | 8 +- src/TDataStd/TDataStd_RealList.hxx | 113 + src/TDataStd/TDataStd_ReferenceArray.cdl | 122 - src/TDataStd/TDataStd_ReferenceArray.cxx | 9 +- src/TDataStd/TDataStd_ReferenceArray.hxx | 118 + src/TDataStd/TDataStd_ReferenceList.cdl | 123 - src/TDataStd/TDataStd_ReferenceList.cxx | 9 +- src/TDataStd/TDataStd_ReferenceList.hxx | 115 + src/TDataStd/TDataStd_Relation.cdl | 98 - src/TDataStd/TDataStd_Relation.cxx | 10 +- src/TDataStd/TDataStd_Relation.hxx | 106 + src/TDataStd/TDataStd_Tick.cdl | 74 - src/TDataStd/TDataStd_Tick.cxx | 8 +- src/TDataStd/TDataStd_Tick.hxx | 86 + src/TDataStd/TDataStd_TreeNode.cdl | 278 -- src/TDataStd/TDataStd_TreeNode.hxx | 248 ++ src/TDataStd/TDataStd_UAttribute.cdl | 71 - src/TDataStd/TDataStd_UAttribute.cxx | 9 +- src/TDataStd/TDataStd_UAttribute.hxx | 91 + src/TDataStd/TDataStd_Variable.cdl | 163 - src/TDataStd/TDataStd_Variable.cxx | 19 +- src/TDataStd/TDataStd_Variable.hxx | 165 + src/TDataXtd/FILES | 25 + src/TDataXtd/TDataXtd.cdl | 142 - src/TDataXtd/TDataXtd.cxx | 7 +- src/TDataXtd/TDataXtd.hxx | 96 + src/TDataXtd/TDataXtd_Axis.cdl | 90 - src/TDataXtd/TDataXtd_Axis.cxx | 33 +- src/TDataXtd/TDataXtd_Axis.hxx | 98 + src/TDataXtd/TDataXtd_Constraint.cdl | 246 -- src/TDataXtd/TDataXtd_Constraint.cxx | 18 +- src/TDataXtd/TDataXtd_Constraint.hxx | 224 ++ src/TDataXtd/TDataXtd_ConstraintEnum.hxx | 52 + src/TDataXtd/TDataXtd_Geometry.cdl | 186 - src/TDataXtd/TDataXtd_Geometry.cxx | 48 +- src/TDataXtd/TDataXtd_Geometry.hxx | 182 + src/TDataXtd/TDataXtd_GeometryEnum.hxx | 33 + src/TDataXtd/TDataXtd_Pattern.cdl | 56 - src/TDataXtd/TDataXtd_Pattern.cxx | 7 +- src/TDataXtd/TDataXtd_Pattern.hxx | 75 + src/TDataXtd/TDataXtd_PatternStd.cdl | 163 - src/TDataXtd/TDataXtd_PatternStd.cxx | 23 +- src/TDataXtd/TDataXtd_PatternStd.hxx | 146 + src/TDataXtd/TDataXtd_Placement.cdl | 73 - src/TDataXtd/TDataXtd_Placement.cxx | 10 +- src/TDataXtd/TDataXtd_Placement.hxx | 85 + src/TDataXtd/TDataXtd_Plane.cdl | 85 - src/TDataXtd/TDataXtd_Plane.cxx | 26 +- src/TDataXtd/TDataXtd_Plane.hxx | 97 + src/TDataXtd/TDataXtd_Point.cdl | 85 - src/TDataXtd/TDataXtd_Point.cxx | 23 +- src/TDataXtd/TDataXtd_Point.hxx | 100 + src/TDataXtd/TDataXtd_Position.cdl | 97 - src/TDataXtd/TDataXtd_Position.cxx | 8 +- src/TDataXtd/TDataXtd_Position.hxx | 106 + src/TDataXtd/TDataXtd_Shape.cdl | 91 - src/TDataXtd/TDataXtd_Shape.cxx | 16 +- src/TDataXtd/TDataXtd_Shape.hxx | 104 + src/TDocStd/FILES | 37 +- src/TDocStd/TDocStd.cdl | 120 - src/TDocStd/TDocStd.cxx | 19 +- src/TDocStd/TDocStd.hxx | 120 + src/TDocStd/TDocStd_Application.cdl | 245 -- src/TDocStd/TDocStd_Application.cxx | 27 +- src/TDocStd/TDocStd_Application.hxx | 235 ++ src/TDocStd/TDocStd_ApplicationDelta.cdl | 50 - src/TDocStd/TDocStd_ApplicationDelta.cxx | 6 +- src/TDocStd/TDocStd_ApplicationDelta.hxx | 75 + src/TDocStd/TDocStd_CompoundDelta.cdl | 43 - src/TDocStd/TDocStd_CompoundDelta.cxx | 6 +- src/TDocStd/TDocStd_CompoundDelta.hxx | 67 + src/TDocStd/TDocStd_Context.cdl | 32 - src/TDocStd/TDocStd_Context.cxx | 4 +- src/TDocStd/TDocStd_Context.hxx | 65 + src/TDocStd/TDocStd_Document.cdl | 347 -- src/TDocStd/TDocStd_Document.cxx | 41 +- src/TDocStd/TDocStd_Document.hxx | 291 ++ src/TDocStd/TDocStd_Modified.cdl | 106 - src/TDocStd/TDocStd_Modified.cxx | 11 +- src/TDocStd/TDocStd_Modified.hxx | 113 + .../TDocStd_MultiTransactionManager.cdl | 167 - .../TDocStd_MultiTransactionManager.cxx | 8 +- .../TDocStd_MultiTransactionManager.hxx | 176 + src/TDocStd/TDocStd_Owner.cdl | 80 - src/TDocStd/TDocStd_Owner.cxx | 10 +- src/TDocStd/TDocStd_Owner.hxx | 95 + src/TDocStd/TDocStd_PathParser.cdl | 37 - src/TDocStd/TDocStd_PathParser.cxx | 4 +- src/TDocStd/TDocStd_PathParser.hxx | 78 + src/TDocStd/TDocStd_XLink.cdl | 189 - src/TDocStd/TDocStd_XLink.cxx | 18 +- src/TDocStd/TDocStd_XLink.hxx | 150 + src/TDocStd/TDocStd_XLinkIterator.cdl | 72 - src/TDocStd/TDocStd_XLinkIterator.cxx | 9 +- src/TDocStd/TDocStd_XLinkIterator.hxx | 85 + src/TDocStd/TDocStd_XLinkPtr.hxx | 23 + src/TDocStd/TDocStd_XLinkRoot.cdl | 137 - src/TDocStd/TDocStd_XLinkRoot.cxx | 15 +- src/TDocStd/TDocStd_XLinkRoot.hxx | 113 + src/TDocStd/TDocStd_XLinkTool.cdl | 107 - src/TDocStd/TDocStd_XLinkTool.cxx | 35 +- src/TDocStd/TDocStd_XLinkTool.hxx | 127 + src/TFunction/FILES | 30 +- src/TFunction/TFunction.cdl | 62 - src/TFunction/TFunction_Driver.cdl | 94 - src/TFunction/TFunction_Driver.cxx | 6 +- src/TFunction/TFunction_Driver.hxx | 115 + src/TFunction/TFunction_DriverTable.cdl | 75 - src/TFunction/TFunction_DriverTable.cxx | 11 +- src/TFunction/TFunction_DriverTable.hxx | 98 + src/TFunction/TFunction_ExecutionStatus.hxx | 30 + src/TFunction/TFunction_Function.cdl | 124 - src/TFunction/TFunction_Function.cxx | 15 +- src/TFunction/TFunction_Function.hxx | 125 + src/TFunction/TFunction_GraphNode.cdl | 156 - src/TFunction/TFunction_GraphNode.cxx | 10 +- src/TFunction/TFunction_GraphNode.hxx | 141 + src/TFunction/TFunction_IFunction.cdl | 147 - src/TFunction/TFunction_IFunction.cxx | 26 +- src/TFunction/TFunction_IFunction.hxx | 132 + src/TFunction/TFunction_Iterator.cdl | 107 - src/TFunction/TFunction_Iterator.cxx | 23 +- src/TFunction/TFunction_Iterator.hxx | 116 + src/TFunction/TFunction_Logbook.cdl | 114 - src/TFunction/TFunction_Logbook.cxx | 14 +- src/TFunction/TFunction_Logbook.hxx | 121 + src/TFunction/TFunction_Scope.cdl | 159 - src/TFunction/TFunction_Scope.cxx | 10 +- src/TFunction/TFunction_Scope.hxx | 135 + src/TKBin/FILES | 2 +- src/TKBinL/FILES | 2 +- src/TKBinTObj/FILES | 2 +- src/TKBinXCAF/FILES | 2 +- src/TKDraw/FILES | 2 +- src/TKFeat/FILES | 2 +- src/TKFillet/FILES | 2 +- src/TKG2d/FILES | 2 +- src/TKGeomAlgo/FILES | 2 +- src/TKGeomBase/FILES | 2 +- src/TKHLR/FILES | 2 +- src/TKIVtk/FILES | 2 +- src/TKIVtkDraw/FILES | 2 +- src/TKLCAF/FILES | 2 +- src/TKMath/FILES | 2 +- src/TKMesh/FILES | 2 +- src/TKOffset/FILES | 2 +- src/TKPrim/FILES | 2 +- src/TKQADraw/FILES | 2 +- src/TKSTEP/FILES | 2 +- src/TKSTEP209/FILES | 2 +- src/TKSTEPAttr/FILES | 2 +- src/TKSTEPBase/FILES | 2 +- src/TKSTL/FILES | 2 +- src/TKTObj/FILES | 2 +- src/TKTObjDRAW/FILES | 2 +- src/TKTopAlgo/FILES | 2 +- src/TKTopTest/FILES | 2 +- src/TKV3d/FILES | 2 +- src/TKVRML/FILES | 2 +- src/TKXCAF/FILES | 2 +- src/TKXDEDRAW/FILES | 2 +- src/TKXDEIGES/FILES | 2 +- src/TKXDESTEP/FILES | 2 +- src/TKXmlTObj/FILES | 2 +- src/TKXmlXCAF/FILES | 2 +- src/TNaming/FILES | 83 +- src/TNaming/TNaming.cdl | 375 -- src/TNaming/TNaming.cxx | 59 +- src/TNaming/TNaming.hxx | 252 ++ src/TNaming/TNaming_Builder.cdl | 88 - src/TNaming/TNaming_Builder.cxx | 8 +- src/TNaming/TNaming_Builder.hxx | 104 + src/TNaming/TNaming_CopyShape.cdl | 49 - src/TNaming/TNaming_CopyShape.cxx | 11 +- src/TNaming/TNaming_CopyShape.hxx | 70 + src/TNaming/TNaming_DeltaOnModification.cdl | 46 - src/TNaming/TNaming_DeltaOnModification.cxx | 12 +- src/TNaming/TNaming_DeltaOnModification.hxx | 73 + src/TNaming/TNaming_DeltaOnRemoval.cdl | 39 - src/TNaming/TNaming_DeltaOnRemoval.cxx | 8 +- src/TNaming/TNaming_DeltaOnRemoval.hxx | 68 + src/TNaming/TNaming_Evolution.hxx | 62 + src/TNaming/TNaming_Identifier.cdl | 111 - src/TNaming/TNaming_Identifier.cxx | 17 +- src/TNaming/TNaming_Identifier.hxx | 114 + src/TNaming/TNaming_Iterator.cdl | 98 - src/TNaming/TNaming_Iterator.cxx | 10 +- src/TNaming/TNaming_Iterator.hxx | 113 + src/TNaming/TNaming_IteratorOnShapesSet.cdl | 61 - src/TNaming/TNaming_IteratorOnShapesSet.cxx | 7 +- src/TNaming/TNaming_IteratorOnShapesSet.hxx | 81 + src/TNaming/TNaming_Localizer.cdl | 115 - src/TNaming/TNaming_Localizer.cxx | 30 +- src/TNaming/TNaming_Localizer.hxx | 101 + src/TNaming/TNaming_Name.cdl | 106 - src/TNaming/TNaming_Name.cxx | 80 +- src/TNaming/TNaming_Name.hxx | 117 + src/TNaming/TNaming_NameType.hxx | 37 + src/TNaming/TNaming_NamedShape.cdl | 188 - src/TNaming/TNaming_NamedShape.cxx | 52 +- src/TNaming/TNaming_NamedShape.hxx | 172 + src/TNaming/TNaming_Naming.cdl | 139 - src/TNaming/TNaming_Naming.cxx | 70 +- src/TNaming/TNaming_Naming.hxx | 129 + src/TNaming/TNaming_NamingTool.cdl | 53 - src/TNaming/TNaming_NamingTool.cxx | 13 +- src/TNaming/TNaming_NamingTool.hxx | 67 + src/TNaming/TNaming_NewShapeIterator.cdl | 102 - src/TNaming/TNaming_NewShapeIterator.cxx | 14 +- src/TNaming/TNaming_NewShapeIterator.hxx | 105 + src/TNaming/TNaming_OldShapeIterator.cdl | 105 - src/TNaming/TNaming_OldShapeIterator.cxx | 13 +- src/TNaming/TNaming_OldShapeIterator.hxx | 104 + src/TNaming/TNaming_PtrAttribute.hxx | 23 + src/TNaming/TNaming_PtrNode.hxx | 23 + src/TNaming/TNaming_PtrRefShape.hxx | 23 + src/TNaming/TNaming_RefShape.cdl | 57 - src/TNaming/TNaming_RefShape.cxx | 7 +- src/TNaming/TNaming_RefShape.hxx | 81 + src/TNaming/TNaming_SameShapeIterator.cdl | 63 - src/TNaming/TNaming_SameShapeIterator.cxx | 9 +- src/TNaming/TNaming_SameShapeIterator.hxx | 80 + src/TNaming/TNaming_Scope.cdl | 83 - src/TNaming/TNaming_Scope.cxx | 7 +- src/TNaming/TNaming_Scope.hxx | 99 + src/TNaming/TNaming_Selector.cdl | 141 - src/TNaming/TNaming_Selector.cxx | 19 +- src/TNaming/TNaming_Selector.hxx | 152 + src/TNaming/TNaming_ShapesSet.cdl | 96 - src/TNaming/TNaming_ShapesSet.cxx | 11 +- src/TNaming/TNaming_ShapesSet.hxx | 98 + src/TNaming/TNaming_Tool.cdl | 223 -- src/TNaming/TNaming_Tool.cxx | 34 +- src/TNaming/TNaming_Tool.hxx | 194 + src/TNaming/TNaming_TranslateTool.cdl | 124 - src/TNaming/TNaming_TranslateTool.cxx | 41 +- src/TNaming/TNaming_TranslateTool.hxx | 91 + src/TNaming/TNaming_Translator.cdl | 56 - src/TNaming/TNaming_Translator.cxx | 23 +- src/TNaming/TNaming_Translator.hxx | 80 + src/TNaming/TNaming_UsedShapes.cdl | 143 - src/TNaming/TNaming_UsedShapes.cxx | 14 +- src/TNaming/TNaming_UsedShapes.hxx | 137 + src/TObj/FILES | 2 +- src/TObjDRAW/FILES | 2 + src/TObjDRAW/TObjDRAW.cdl | 31 - src/TObjDRAW/TObjDRAW.cxx | 33 +- src/TObjDRAW/TObjDRAW.hxx | 63 + src/TPrsStd/FILES | 24 +- src/TPrsStd/TPrsStd.cdl | 77 - src/TPrsStd/TPrsStd_AISPresentation.cdl | 235 -- src/TPrsStd/TPrsStd_AISPresentation.cxx | 16 +- src/TPrsStd/TPrsStd_AISPresentation.hxx | 238 ++ src/TPrsStd/TPrsStd_AISViewer.cdl | 106 - src/TPrsStd/TPrsStd_AISViewer.cxx | 10 +- src/TPrsStd/TPrsStd_AISViewer.hxx | 119 + src/TPrsStd/TPrsStd_AxisDriver.cdl | 42 - src/TPrsStd/TPrsStd_AxisDriver.cxx | 14 +- src/TPrsStd/TPrsStd_AxisDriver.hxx | 71 + src/TPrsStd/TPrsStd_ConstraintDriver.cdl | 41 - src/TPrsStd/TPrsStd_ConstraintDriver.cxx | 16 +- src/TPrsStd/TPrsStd_ConstraintDriver.hxx | 71 + src/TPrsStd/TPrsStd_ConstraintTools.cdl | 141 - src/TPrsStd/TPrsStd_ConstraintTools.cxx | 105 +- src/TPrsStd/TPrsStd_ConstraintTools.hxx | 122 + src/TPrsStd/TPrsStd_Driver.cdl | 65 - src/TPrsStd/TPrsStd_Driver.cxx | 6 +- src/TPrsStd/TPrsStd_Driver.hxx | 83 + src/TPrsStd/TPrsStd_DriverTable.cdl | 72 - src/TPrsStd/TPrsStd_DriverTable.cxx | 23 +- src/TPrsStd/TPrsStd_DriverTable.hxx | 94 + src/TPrsStd/TPrsStd_GeometryDriver.cdl | 42 - src/TPrsStd/TPrsStd_GeometryDriver.cxx | 34 +- src/TPrsStd/TPrsStd_GeometryDriver.hxx | 72 + src/TPrsStd/TPrsStd_NamedShapeDriver.cdl | 41 - src/TPrsStd/TPrsStd_NamedShapeDriver.cxx | 27 +- src/TPrsStd/TPrsStd_NamedShapeDriver.hxx | 71 + src/TPrsStd/TPrsStd_PlaneDriver.cdl | 41 - src/TPrsStd/TPrsStd_PlaneDriver.cxx | 18 +- src/TPrsStd/TPrsStd_PlaneDriver.hxx | 71 + src/TPrsStd/TPrsStd_PointDriver.cdl | 41 - src/TPrsStd/TPrsStd_PointDriver.cxx | 18 +- src/TPrsStd/TPrsStd_PointDriver.hxx | 71 + src/TShort/FILES | 4 +- src/TShort/TShort.cdl | 57 - src/TestTopOpe/FILES | 20 +- src/TestTopOpe/TestTopOpe.cdl | 58 - src/TestTopOpe/TestTopOpe.cxx | 21 +- src/TestTopOpe/TestTopOpe.hxx | 91 + src/TestTopOpe/TestTopOpe_BOOPCommands.cxx | 15 +- src/TestTopOpe/TestTopOpe_MesureCommands.cxx | 16 +- src/TestTopOpe/TestTopOpe_OtherCommands.cxx | 28 +- src/TestTopOpeDraw/FILES | 36 +- src/TestTopOpeDraw/TestTopOpeDraw.cdl | 54 - src/TestTopOpeDraw/TestTopOpeDraw.cxx | 4 +- src/TestTopOpeDraw/TestTopOpeDraw.hxx | 76 + .../TestTopOpeDraw_DrawableC2D.cdl | 68 - .../TestTopOpeDraw_DrawableC2D.cxx | 10 +- .../TestTopOpeDraw_DrawableC2D.hxx | 94 + .../TestTopOpeDraw_DrawableC3D.cdl | 67 - .../TestTopOpeDraw_DrawableC3D.cxx | 9 +- .../TestTopOpeDraw_DrawableC3D.hxx | 94 + .../TestTopOpeDraw_DrawableMesure.cdl | 74 - .../TestTopOpeDraw_DrawableMesure.cxx | 21 +- .../TestTopOpeDraw_DrawableMesure.hxx | 100 + .../TestTopOpeDraw_DrawableP2D.cdl | 70 - .../TestTopOpeDraw_DrawableP2D.cxx | 9 +- .../TestTopOpeDraw_DrawableP2D.hxx | 87 + .../TestTopOpeDraw_DrawableP3D.cdl | 71 - .../TestTopOpeDraw_DrawableP3D.cxx | 9 +- .../TestTopOpeDraw_DrawableP3D.hxx | 87 + .../TestTopOpeDraw_DrawableSHA.cdl | 70 - .../TestTopOpeDraw_DrawableSHA.cxx | 39 +- .../TestTopOpeDraw_DrawableSHA.hxx | 90 + .../TestTopOpeDraw_DrawableSUR.cdl | 66 - .../TestTopOpeDraw_DrawableSUR.cxx | 17 +- .../TestTopOpeDraw_DrawableSUR.hxx | 88 + src/TestTopOpeTools/FILES | 13 +- src/TestTopOpeTools/TestTopOpeTools.cdl | 107 - src/TestTopOpeTools/TestTopOpeTools.cxx | 4 +- src/TestTopOpeTools/TestTopOpeTools.hxx | 118 + .../TestTopOpeTools_Mesure.cdl | 59 - .../TestTopOpeTools_Mesure.cxx | 13 +- .../TestTopOpeTools_Mesure.hxx | 87 + .../TestTopOpeTools_PMesure.hxx | 23 + src/Textures/FILES | 28 +- src/TopAbs/FILES | 5 + src/TopAbs/TopAbs.cdl | 191 - src/TopAbs/TopAbs.cxx | 4 +- src/TopAbs/TopAbs.hxx | 120 + src/TopAbs/TopAbs_Orientation.hxx | 48 + src/TopAbs/TopAbs_ShapeEnum.hxx | 58 + src/TopAbs/TopAbs_State.hxx | 33 + src/TopBas/FILES | 6 +- src/TopBas/TopBas.cdl | 47 - src/TopBas/TopBas_Interference.cdl | 114 - src/TopBas/TopBas_TestInterference.hxx | 106 + src/TopBas/TopBas_TestInterference_0.cxx | 28 + src/TopClass/FILES | 11 + src/TopClass/TopClass.cdl | 49 - src/TopClass/TopClass_Classifier2d.cdl | 108 - src/TopClass/TopClass_Classifier3d.cdl | 88 - src/TopClass/TopClass_FaceClassifier.cdl | 99 - src/TopClass/TopClass_Intersection3d.cdl | 88 - src/TopClass/TopClass_Intersection3d.hxx | 99 + src/TopClass/TopClass_SolidClassifier.cdl | 85 - src/TopClass/TopClass_SolidExplorer.cdl | 114 - src/TopClass/TopClass_SolidExplorer.hxx | 118 + src/TopCnx/FILES | 2 + src/TopCnx/TopCnx.cdl | 56 - src/TopCnx/TopCnx_EdgeFaceTransition.cdl | 82 - src/TopCnx/TopCnx_EdgeFaceTransition.cxx | 4 +- src/TopCnx/TopCnx_EdgeFaceTransition.hxx | 90 + src/TopExp/FILES | 6 + src/TopExp/TopExp.cdl | 113 - src/TopExp/TopExp.cxx | 12 +- src/TopExp/TopExp.hxx | 122 + src/TopExp/TopExp_Explorer.cdl | 174 - src/TopExp/TopExp_Explorer.cxx | 8 +- src/TopExp/TopExp_Explorer.hxx | 183 + src/TopExp/TopExp_Stack.hxx | 23 + src/TopLoc/FILES | 18 +- src/TopLoc/TopLoc.cdl | 58 - src/TopLoc/TopLoc_Datum3D.cdl | 57 - src/TopLoc/TopLoc_Datum3D.cxx | 7 +- src/TopLoc/TopLoc_Datum3D.hxx | 88 + src/TopLoc/TopLoc_ItemLocation.cdl | 50 - src/TopLoc/TopLoc_ItemLocation.cxx | 7 +- src/TopLoc/TopLoc_ItemLocation.hxx | 80 + src/TopLoc/TopLoc_Location.cdl | 165 - src/TopLoc/TopLoc_Location.cxx | 8 +- src/TopLoc/TopLoc_Location.hxx | 180 + src/TopLoc/TopLoc_SListNodeOfItemLocation.cdl | 41 - src/TopLoc/TopLoc_SListNodeOfItemLocation.cxx | 5 +- src/TopLoc/TopLoc_SListNodeOfItemLocation.hxx | 72 + src/TopLoc/TopLoc_SListOfItemLocation.cdl | 123 - src/TopLoc/TopLoc_SListOfItemLocation.cxx | 5 +- src/TopLoc/TopLoc_SListOfItemLocation.hxx | 126 + src/TopOpeBRep/FILES | 108 +- src/TopOpeBRep/TopOpeBRep.cdl | 146 - src/TopOpeBRep/TopOpeBRep.cxx | 4 +- src/TopOpeBRep/TopOpeBRep.hxx | 114 + src/TopOpeBRep/TopOpeBRep_Bipoint.cdl | 34 - src/TopOpeBRep/TopOpeBRep_Bipoint.cxx | 3 +- src/TopOpeBRep/TopOpeBRep_Bipoint.hxx | 68 + src/TopOpeBRep/TopOpeBRep_DSFiller.cdl | 203 - src/TopOpeBRep/TopOpeBRep_DSFiller.cxx | 32 +- src/TopOpeBRep/TopOpeBRep_DSFiller.hxx | 175 + src/TopOpeBRep/TopOpeBRep_EdgesFiller.cdl | 90 - src/TopOpeBRep/TopOpeBRep_EdgesFiller.cxx | 26 +- src/TopOpeBRep/TopOpeBRep_EdgesFiller.hxx | 109 + .../TopOpeBRep_EdgesIntersector.cdl | 175 - .../TopOpeBRep_EdgesIntersector.cxx | 42 +- .../TopOpeBRep_EdgesIntersector.hxx | 231 ++ .../TopOpeBRep_EdgesIntersector_1.cxx | 21 +- src/TopOpeBRep/TopOpeBRep_FFDumper.cdl | 50 - src/TopOpeBRep/TopOpeBRep_FFDumper.cxx | 29 +- src/TopOpeBRep/TopOpeBRep_FFDumper.hxx | 94 + .../TopOpeBRep_FFTransitionTool.cdl | 69 - .../TopOpeBRep_FFTransitionTool.cxx | 29 +- .../TopOpeBRep_FFTransitionTool.hxx | 80 + src/TopOpeBRep/TopOpeBRep_FaceEdgeFiller.cdl | 105 - src/TopOpeBRep/TopOpeBRep_FaceEdgeFiller.cxx | 19 +- src/TopOpeBRep/TopOpeBRep_FaceEdgeFiller.hxx | 105 + .../TopOpeBRep_FaceEdgeIntersector.cdl | 161 - .../TopOpeBRep_FaceEdgeIntersector.cxx | 19 +- .../TopOpeBRep_FaceEdgeIntersector.hxx | 155 + src/TopOpeBRep/TopOpeBRep_FacesFiller.cdl | 386 -- src/TopOpeBRep/TopOpeBRep_FacesFiller.cxx | 36 +- src/TopOpeBRep/TopOpeBRep_FacesFiller.hxx | 295 ++ src/TopOpeBRep/TopOpeBRep_FacesFiller_1.cxx | 54 +- .../TopOpeBRep_FacesIntersector.cdl | 194 - .../TopOpeBRep_FacesIntersector.cxx | 8 +- .../TopOpeBRep_FacesIntersector.hxx | 170 + src/TopOpeBRep/TopOpeBRep_GeomTool.cdl | 58 - src/TopOpeBRep/TopOpeBRep_GeomTool.cxx | 17 +- src/TopOpeBRep/TopOpeBRep_GeomTool.hxx | 77 + src/TopOpeBRep/TopOpeBRep_Hctxee2d.cdl | 47 - src/TopOpeBRep/TopOpeBRep_Hctxee2d.cxx | 23 +- src/TopOpeBRep/TopOpeBRep_Hctxee2d.hxx | 84 + src/TopOpeBRep/TopOpeBRep_Hctxff2d.cdl | 59 - src/TopOpeBRep/TopOpeBRep_Hctxff2d.cxx | 10 +- src/TopOpeBRep/TopOpeBRep_Hctxff2d.hxx | 102 + src/TopOpeBRep/TopOpeBRep_LineInter.cdl | 213 -- src/TopOpeBRep/TopOpeBRep_LineInter.cxx | 44 +- src/TopOpeBRep/TopOpeBRep_LineInter.hxx | 204 + src/TopOpeBRep/TopOpeBRep_P2Dstatus.hxx | 30 + .../TopOpeBRep_PEdgesIntersector.hxx | 23 + src/TopOpeBRep/TopOpeBRep_PFacesFiller.hxx | 23 + .../TopOpeBRep_PFacesIntersector.hxx | 23 + ...TopOpeBRep_PIntRes2d_IntersectionPoint.hxx | 23 + src/TopOpeBRep/TopOpeBRep_PLineInter.hxx | 23 + src/TopOpeBRep/TopOpeBRep_PPntOn2S.hxx | 23 + .../TopOpeBRep_PThePointOfIntersection.hxx | 23 + src/TopOpeBRep/TopOpeBRep_Point2d.cdl | 109 - src/TopOpeBRep/TopOpeBRep_Point2d.cxx | 13 +- src/TopOpeBRep/TopOpeBRep_Point2d.hxx | 172 + src/TopOpeBRep/TopOpeBRep_PointClassifier.cdl | 49 - src/TopOpeBRep/TopOpeBRep_PointClassifier.cxx | 7 +- src/TopOpeBRep/TopOpeBRep_PointClassifier.hxx | 79 + src/TopOpeBRep/TopOpeBRep_PointGeomTool.cdl | 47 - src/TopOpeBRep/TopOpeBRep_PointGeomTool.cxx | 11 +- src/TopOpeBRep/TopOpeBRep_PointGeomTool.hxx | 73 + src/TopOpeBRep/TopOpeBRep_ProcessGR.cxx | 18 +- .../TopOpeBRep_ProcessSectionEdges.cxx | 31 +- .../TopOpeBRep_ShapeIntersector.cdl | 242 -- .../TopOpeBRep_ShapeIntersector.cxx | 12 +- .../TopOpeBRep_ShapeIntersector.hxx | 207 ++ .../TopOpeBRep_ShapeIntersector2d.cdl | 156 - .../TopOpeBRep_ShapeIntersector2d.cxx | 9 +- .../TopOpeBRep_ShapeIntersector2d.hxx | 147 + src/TopOpeBRep/TopOpeBRep_ShapeScanner.cdl | 52 - src/TopOpeBRep/TopOpeBRep_ShapeScanner.cxx | 8 +- src/TopOpeBRep/TopOpeBRep_ShapeScanner.hxx | 94 + src/TopOpeBRep/TopOpeBRep_TypeLineCurve.hxx | 34 + src/TopOpeBRep/TopOpeBRep_VPointInter.cdl | 310 -- src/TopOpeBRep/TopOpeBRep_VPointInter.cxx | 27 +- src/TopOpeBRep/TopOpeBRep_VPointInter.hxx | 223 ++ .../TopOpeBRep_VPointInterClassifier.cdl | 60 - .../TopOpeBRep_VPointInterClassifier.cxx | 22 +- .../TopOpeBRep_VPointInterClassifier.hxx | 86 + .../TopOpeBRep_VPointInterIterator.cdl | 58 - .../TopOpeBRep_VPointInterIterator.cxx | 6 +- .../TopOpeBRep_VPointInterIterator.hxx | 86 + src/TopOpeBRep/TopOpeBRep_WPointInter.cdl | 57 - src/TopOpeBRep/TopOpeBRep_WPointInter.cxx | 7 +- src/TopOpeBRep/TopOpeBRep_WPointInter.hxx | 81 + .../TopOpeBRep_WPointInterIterator.cdl | 52 - .../TopOpeBRep_WPointInterIterator.cxx | 6 +- .../TopOpeBRep_WPointInterIterator.hxx | 81 + src/TopOpeBRep/TopOpeBRep_kpart.cxx | 34 +- src/TopOpeBRep/TopOpeBRep_vpr.cxx | 18 +- src/TopOpeBRep/TopOpeBRep_vprclo.cxx | 44 +- src/TopOpeBRep/TopOpeBRep_vprdeg.cxx | 18 +- src/TopOpeBRepBuild/FILES | 146 +- src/TopOpeBRepBuild/TopOpeBRepBuild.cdl | 118 - .../TopOpeBRepBuild_Area1dBuilder.cdl | 66 - .../TopOpeBRepBuild_Area1dBuilder.cxx | 15 +- .../TopOpeBRepBuild_Area1dBuilder.hxx | 85 + .../TopOpeBRepBuild_Area2dBuilder.cdl | 51 - .../TopOpeBRepBuild_Area2dBuilder.cxx | 5 +- .../TopOpeBRepBuild_Area2dBuilder.hxx | 79 + .../TopOpeBRepBuild_Area3dBuilder.cdl | 51 - .../TopOpeBRepBuild_Area3dBuilder.cxx | 5 +- .../TopOpeBRepBuild_Area3dBuilder.hxx | 79 + .../TopOpeBRepBuild_AreaBuilder.cdl | 113 - .../TopOpeBRepBuild_AreaBuilder.cxx | 6 +- .../TopOpeBRepBuild_AreaBuilder.hxx | 130 + .../TopOpeBRepBuild_BlockBuilder.cdl | 70 - .../TopOpeBRepBuild_BlockBuilder.cxx | 7 +- .../TopOpeBRepBuild_BlockBuilder.hxx | 104 + .../TopOpeBRepBuild_BlockIterator.cdl | 48 - .../TopOpeBRepBuild_BlockIterator.cxx | 5 +- .../TopOpeBRepBuild_BlockIterator.hxx | 78 + .../TopOpeBRepBuild_BuildEdges.cxx | 29 +- .../TopOpeBRepBuild_BuildFaces.cxx | 30 +- .../TopOpeBRepBuild_BuildVertices.cxx | 26 +- .../TopOpeBRepBuild_Builder.cdl | 640 ---- .../TopOpeBRepBuild_Builder.cxx | 57 +- .../TopOpeBRepBuild_Builder.hxx | 668 ++++ .../TopOpeBRepBuild_Builder1.cdl | 229 -- .../TopOpeBRepBuild_Builder1.cxx | 41 +- .../TopOpeBRepBuild_Builder1.hxx | 160 + .../TopOpeBRepBuild_Builder1_1.cxx | 65 +- .../TopOpeBRepBuild_Builder1_2.cxx | 30 +- .../TopOpeBRepBuild_BuilderON.cdl | 60 - .../TopOpeBRepBuild_BuilderON.cxx | 26 +- .../TopOpeBRepBuild_BuilderON.hxx | 88 + .../TopOpeBRepBuild_BuilderON2d.cxx | 23 +- .../TopOpeBRepBuild_CompositeClassifier.cdl | 69 - .../TopOpeBRepBuild_CompositeClassifier.cxx | 6 +- .../TopOpeBRepBuild_CompositeClassifier.hxx | 93 + .../TopOpeBRepBuild_CorrectFace2d.cdl | 166 - .../TopOpeBRepBuild_CorrectFace2d.cxx | 52 +- .../TopOpeBRepBuild_CorrectFace2d.hxx | 131 + .../TopOpeBRepBuild_EdgeBuilder.cdl | 54 - .../TopOpeBRepBuild_EdgeBuilder.cxx | 9 +- .../TopOpeBRepBuild_EdgeBuilder.hxx | 89 + src/TopOpeBRepBuild/TopOpeBRepBuild_End.cxx | 52 +- src/TopOpeBRepBuild/TopOpeBRepBuild_FREGU.cxx | 37 +- .../TopOpeBRepBuild_FaceAreaBuilder.cdl | 48 - .../TopOpeBRepBuild_FaceAreaBuilder.cxx | 6 +- .../TopOpeBRepBuild_FaceAreaBuilder.hxx | 77 + .../TopOpeBRepBuild_FaceBuilder.cdl | 116 - .../TopOpeBRepBuild_FaceBuilder.cxx | 40 +- .../TopOpeBRepBuild_FaceBuilder.hxx | 141 + .../TopOpeBRepBuild_FuseFace.cdl | 143 - .../TopOpeBRepBuild_FuseFace.hxx | 105 + src/TopOpeBRepBuild/TopOpeBRepBuild_GIter.cdl | 43 - src/TopOpeBRepBuild/TopOpeBRepBuild_GIter.cxx | 4 +- src/TopOpeBRepBuild/TopOpeBRepBuild_GIter.hxx | 83 + src/TopOpeBRepBuild/TopOpeBRepBuild_GTool.cdl | 41 - src/TopOpeBRepBuild/TopOpeBRepBuild_GTool.cxx | 5 +- src/TopOpeBRepBuild/TopOpeBRepBuild_GTool.hxx | 80 + src/TopOpeBRepBuild/TopOpeBRepBuild_GTopo.cdl | 79 - src/TopOpeBRepBuild/TopOpeBRepBuild_GTopo.cxx | 7 +- src/TopOpeBRepBuild/TopOpeBRepBuild_GTopo.hxx | 125 + src/TopOpeBRepBuild/TopOpeBRepBuild_Grid.cxx | 24 +- .../TopOpeBRepBuild_GridEE.cxx | 25 +- .../TopOpeBRepBuild_GridFF.cxx | 42 +- .../TopOpeBRepBuild_GridSS.cxx | 79 +- .../TopOpeBRepBuild_Griddump.cxx | 27 +- .../TopOpeBRepBuild_HBuilder.cdl | 239 -- .../TopOpeBRepBuild_HBuilder.cxx | 27 +- .../TopOpeBRepBuild_HBuilder.hxx | 209 ++ src/TopOpeBRepBuild/TopOpeBRepBuild_KPart.cxx | 61 +- src/TopOpeBRepBuild/TopOpeBRepBuild_Loop.cdl | 53 - src/TopOpeBRepBuild/TopOpeBRepBuild_Loop.cxx | 7 +- src/TopOpeBRepBuild/TopOpeBRepBuild_Loop.hxx | 82 + .../TopOpeBRepBuild_LoopClassifier.cdl | 36 - .../TopOpeBRepBuild_LoopClassifier.cxx | 4 +- .../TopOpeBRepBuild_LoopClassifier.hxx | 65 + .../TopOpeBRepBuild_LoopEnum.hxx | 28 + .../TopOpeBRepBuild_LoopSet.cdl | 50 - .../TopOpeBRepBuild_LoopSet.cxx | 5 +- .../TopOpeBRepBuild_LoopSet.hxx | 81 + src/TopOpeBRepBuild/TopOpeBRepBuild_Merge.cxx | 48 +- .../TopOpeBRepBuild_PBuilder.hxx | 23 + .../TopOpeBRepBuild_PGTopo.hxx | 23 + .../TopOpeBRepBuild_PWireEdgeSet.hxx | 23 + src/TopOpeBRepBuild/TopOpeBRepBuild_Pave.cdl | 71 - src/TopOpeBRepBuild/TopOpeBRepBuild_Pave.cxx | 6 +- src/TopOpeBRepBuild/TopOpeBRepBuild_Pave.hxx | 99 + .../TopOpeBRepBuild_PaveClassifier.cdl | 84 - .../TopOpeBRepBuild_PaveClassifier.cxx | 10 +- .../TopOpeBRepBuild_PaveClassifier.hxx | 107 + .../TopOpeBRepBuild_PaveSet.cdl | 74 - .../TopOpeBRepBuild_PaveSet.cxx | 19 +- .../TopOpeBRepBuild_PaveSet.hxx | 105 + src/TopOpeBRepBuild/TopOpeBRepBuild_SREGU.cxx | 32 +- .../TopOpeBRepBuild_Section.cxx | 55 +- .../TopOpeBRepBuild_ShapeListOfShape.cdl | 58 - .../TopOpeBRepBuild_ShapeListOfShape.cxx | 4 +- .../TopOpeBRepBuild_ShapeListOfShape.hxx | 76 + .../TopOpeBRepBuild_ShapeSet.cdl | 204 - .../TopOpeBRepBuild_ShapeSet.cxx | 9 +- .../TopOpeBRepBuild_ShapeSet.hxx | 203 + .../TopOpeBRepBuild_ShellFaceClassifier.cdl | 85 - .../TopOpeBRepBuild_ShellFaceClassifier.cxx | 14 +- .../TopOpeBRepBuild_ShellFaceClassifier.hxx | 108 + .../TopOpeBRepBuild_ShellFaceSet.cdl | 65 - .../TopOpeBRepBuild_ShellFaceSet.cxx | 8 +- .../TopOpeBRepBuild_ShellFaceSet.hxx | 96 + .../TopOpeBRepBuild_ShellToSolid.cdl | 47 - .../TopOpeBRepBuild_ShellToSolid.cxx | 10 +- .../TopOpeBRepBuild_ShellToSolid.hxx | 70 + .../TopOpeBRepBuild_SolidAreaBuilder.cdl | 48 - .../TopOpeBRepBuild_SolidAreaBuilder.cxx | 6 +- .../TopOpeBRepBuild_SolidAreaBuilder.hxx | 77 + .../TopOpeBRepBuild_SolidBuilder.cdl | 81 - .../TopOpeBRepBuild_SolidBuilder.cxx | 12 +- .../TopOpeBRepBuild_SolidBuilder.hxx | 109 + src/TopOpeBRepBuild/TopOpeBRepBuild_Tools.cdl | 187 - src/TopOpeBRepBuild/TopOpeBRepBuild_Tools.cxx | 97 +- src/TopOpeBRepBuild/TopOpeBRepBuild_Tools.hxx | 135 + .../TopOpeBRepBuild_Tools2d.cdl | 38 - .../TopOpeBRepBuild_Tools2d.cxx | 13 +- .../TopOpeBRepBuild_Tools2d.hxx | 66 + .../TopOpeBRepBuild_Tools_1.cxx | 65 +- .../TopOpeBRepBuild_VertexInfo.cdl | 96 - .../TopOpeBRepBuild_VertexInfo.cxx | 7 +- .../TopOpeBRepBuild_VertexInfo.hxx | 112 + .../TopOpeBRepBuild_WireEdgeClassifier.cdl | 81 - .../TopOpeBRepBuild_WireEdgeClassifier.cxx | 6 +- .../TopOpeBRepBuild_WireEdgeClassifier.hxx | 104 + .../TopOpeBRepBuild_WireEdgeSet.cdl | 98 - .../TopOpeBRepBuild_WireEdgeSet.cxx | 33 +- .../TopOpeBRepBuild_WireEdgeSet.hxx | 138 + .../TopOpeBRepBuild_WireToFace.cdl | 50 - .../TopOpeBRepBuild_WireToFace.cxx | 11 +- .../TopOpeBRepBuild_WireToFace.hxx | 73 + .../TopOpeBRepBuild_fctwes.cxx | 34 +- src/TopOpeBRepBuild/TopOpeBRepBuild_ffsfs.cxx | 34 +- .../TopOpeBRepBuild_ffwesk.cxx | 28 +- src/TopOpeBRepBuild/TopOpeBRepBuild_keep.cxx | 25 +- .../TopOpeBRepBuild_kpkole.cxx | 43 +- .../TopOpeBRepBuild_makeedges.cxx | 30 +- .../TopOpeBRepBuild_makefaces.cxx | 49 +- .../TopOpeBRepBuild_makesolids.cxx | 38 +- src/TopOpeBRepBuild/TopOpeBRepBuild_on.cxx | 27 +- src/TopOpeBRepDS/FILES | 190 +- src/TopOpeBRepDS/TopOpeBRepDS.cdl | 211 -- src/TopOpeBRepDS/TopOpeBRepDS.cxx | 6 +- src/TopOpeBRepDS/TopOpeBRepDS.hxx | 197 + src/TopOpeBRepDS/TopOpeBRepDS_Association.cdl | 54 - src/TopOpeBRepDS/TopOpeBRepDS_Association.cxx | 7 +- src/TopOpeBRepDS/TopOpeBRepDS_Association.hxx | 76 + src/TopOpeBRepDS/TopOpeBRepDS_BuildTool.cdl | 253 -- src/TopOpeBRepDS/TopOpeBRepDS_BuildTool.cxx | 98 +- src/TopOpeBRepDS/TopOpeBRepDS_BuildTool.hxx | 188 + src/TopOpeBRepDS/TopOpeBRepDS_Check.cdl | 141 - src/TopOpeBRepDS/TopOpeBRepDS_Check.cxx | 40 +- src/TopOpeBRepDS/TopOpeBRepDS_Check.hxx | 124 + src/TopOpeBRepDS/TopOpeBRepDS_CheckStatus.hxx | 27 + src/TopOpeBRepDS/TopOpeBRepDS_Config.hxx | 28 + src/TopOpeBRepDS/TopOpeBRepDS_Curve.cdl | 160 - src/TopOpeBRepDS/TopOpeBRepDS_Curve.cxx | 13 +- src/TopOpeBRepDS/TopOpeBRepDS_Curve.hxx | 147 + src/TopOpeBRepDS/TopOpeBRepDS_CurveData.cdl | 37 - src/TopOpeBRepDS/TopOpeBRepDS_CurveData.cxx | 6 +- src/TopOpeBRepDS/TopOpeBRepDS_CurveData.hxx | 67 + .../TopOpeBRepDS_CurveExplorer.cdl | 63 - .../TopOpeBRepDS_CurveExplorer.cxx | 4 +- .../TopOpeBRepDS_CurveExplorer.hxx | 91 + .../TopOpeBRepDS_CurveIterator.cdl | 51 - .../TopOpeBRepDS_CurveIterator.cxx | 5 +- .../TopOpeBRepDS_CurveIterator.hxx | 81 + .../TopOpeBRepDS_CurvePointInterference.cdl | 52 - .../TopOpeBRepDS_CurvePointInterference.cxx | 6 +- .../TopOpeBRepDS_CurvePointInterference.hxx | 73 + src/TopOpeBRepDS/TopOpeBRepDS_DSS.cdl | 171 - src/TopOpeBRepDS/TopOpeBRepDS_DSS.cxx | 5 +- src/TopOpeBRepDS/TopOpeBRepDS_DSS.hxx | 168 + .../TopOpeBRepDS_DataStructure.cdl | 501 --- .../TopOpeBRepDS_DataStructure.cxx | 22 +- .../TopOpeBRepDS_DataStructure.hxx | 335 ++ src/TopOpeBRepDS/TopOpeBRepDS_Dumper.cdl | 140 - src/TopOpeBRepDS/TopOpeBRepDS_Dumper.cxx | 73 +- src/TopOpeBRepDS/TopOpeBRepDS_Dumper.hxx | 136 + src/TopOpeBRepDS/TopOpeBRepDS_EIR.cdl | 43 - src/TopOpeBRepDS/TopOpeBRepDS_EIR.cxx | 17 +- src/TopOpeBRepDS/TopOpeBRepDS_EIR.hxx | 64 + .../TopOpeBRepDS_Edge3dInterferenceTool.cdl | 68 - .../TopOpeBRepDS_Edge3dInterferenceTool.cxx | 17 +- .../TopOpeBRepDS_Edge3dInterferenceTool.hxx | 86 + .../TopOpeBRepDS_EdgeInterferenceTool.cdl | 59 - .../TopOpeBRepDS_EdgeInterferenceTool.cxx | 15 +- .../TopOpeBRepDS_EdgeInterferenceTool.hxx | 76 + .../TopOpeBRepDS_EdgeVertexInterference.cdl | 89 - .../TopOpeBRepDS_EdgeVertexInterference.cxx | 6 +- .../TopOpeBRepDS_EdgeVertexInterference.hxx | 97 + src/TopOpeBRepDS/TopOpeBRepDS_Explorer.cdl | 72 - src/TopOpeBRepDS/TopOpeBRepDS_Explorer.cxx | 12 +- src/TopOpeBRepDS/TopOpeBRepDS_Explorer.hxx | 97 + src/TopOpeBRepDS/TopOpeBRepDS_FIR.cdl | 34 - src/TopOpeBRepDS/TopOpeBRepDS_FIR.cxx | 30 +- src/TopOpeBRepDS/TopOpeBRepDS_FIR.hxx | 65 + .../TopOpeBRepDS_FaceEdgeInterference.cdl | 43 - .../TopOpeBRepDS_FaceEdgeInterference.cxx | 6 +- .../TopOpeBRepDS_FaceEdgeInterference.hxx | 69 + .../TopOpeBRepDS_FaceInterferenceTool.cdl | 86 - .../TopOpeBRepDS_FaceInterferenceTool.cxx | 20 +- .../TopOpeBRepDS_FaceInterferenceTool.hxx | 102 + src/TopOpeBRepDS/TopOpeBRepDS_Filter.cdl | 61 - src/TopOpeBRepDS/TopOpeBRepDS_Filter.cxx | 8 +- src/TopOpeBRepDS/TopOpeBRepDS_Filter.hxx | 79 + .../TopOpeBRepDS_FilterCurveInterferences.cxx | 5 +- .../TopOpeBRepDS_FilterEdgeInterferences.cxx | 10 +- .../TopOpeBRepDS_FilterFaceInterferences.cxx | 14 +- src/TopOpeBRepDS/TopOpeBRepDS_GapFiller.cdl | 111 - src/TopOpeBRepDS/TopOpeBRepDS_GapFiller.cxx | 38 +- src/TopOpeBRepDS/TopOpeBRepDS_GapFiller.hxx | 110 + src/TopOpeBRepDS/TopOpeBRepDS_GapTool.cdl | 92 - src/TopOpeBRepDS/TopOpeBRepDS_GapTool.cxx | 10 +- src/TopOpeBRepDS/TopOpeBRepDS_GapTool.hxx | 98 + .../TopOpeBRepDS_GeometryData.cdl | 55 - .../TopOpeBRepDS_GeometryData.cxx | 5 +- .../TopOpeBRepDS_GeometryData.hxx | 76 + .../TopOpeBRepDS_HDataStructure.cdl | 311 -- .../TopOpeBRepDS_HDataStructure.cxx | 37 +- .../TopOpeBRepDS_HDataStructure.hxx | 239 ++ .../TopOpeBRepDS_Interference.cdl | 138 - .../TopOpeBRepDS_Interference.cxx | 9 +- .../TopOpeBRepDS_Interference.hxx | 136 + .../TopOpeBRepDS_InterferenceIterator.cdl | 116 - .../TopOpeBRepDS_InterferenceIterator.cxx | 4 +- .../TopOpeBRepDS_InterferenceIterator.hxx | 128 + .../TopOpeBRepDS_InterferenceTool.cdl | 80 - .../TopOpeBRepDS_InterferenceTool.cxx | 18 +- .../TopOpeBRepDS_InterferenceTool.hxx | 84 + src/TopOpeBRepDS/TopOpeBRepDS_Kind.hxx | 37 + .../TopOpeBRepDS_ListOfShapeOn1State.cdl | 49 - .../TopOpeBRepDS_ListOfShapeOn1State.cxx | 3 +- .../TopOpeBRepDS_ListOfShapeOn1State.hxx | 74 + src/TopOpeBRepDS/TopOpeBRepDS_Marker.cdl | 31 - src/TopOpeBRepDS/TopOpeBRepDS_Marker.cxx | 6 +- src/TopOpeBRepDS/TopOpeBRepDS_Marker.hxx | 77 + .../TopOpeBRepDS_PDataStructure.hxx | 23 + src/TopOpeBRepDS/TopOpeBRepDS_Point.cdl | 65 - src/TopOpeBRepDS/TopOpeBRepDS_Point.cxx | 6 +- src/TopOpeBRepDS/TopOpeBRepDS_Point.hxx | 85 + src/TopOpeBRepDS/TopOpeBRepDS_PointData.cdl | 41 - src/TopOpeBRepDS/TopOpeBRepDS_PointData.cxx | 5 +- src/TopOpeBRepDS/TopOpeBRepDS_PointData.hxx | 76 + .../TopOpeBRepDS_PointExplorer.cdl | 62 - .../TopOpeBRepDS_PointExplorer.cxx | 6 +- .../TopOpeBRepDS_PointExplorer.hxx | 93 + .../TopOpeBRepDS_PointIterator.cdl | 71 - .../TopOpeBRepDS_PointIterator.cxx | 8 +- .../TopOpeBRepDS_PointIterator.hxx | 91 + src/TopOpeBRepDS/TopOpeBRepDS_Reducer.cdl | 35 - src/TopOpeBRepDS/TopOpeBRepDS_Reducer.cxx | 6 +- src/TopOpeBRepDS/TopOpeBRepDS_Reducer.hxx | 65 + src/TopOpeBRepDS/TopOpeBRepDS_ShapeData.cdl | 55 - src/TopOpeBRepDS/TopOpeBRepDS_ShapeData.cxx | 5 +- src/TopOpeBRepDS/TopOpeBRepDS_ShapeData.hxx | 84 + .../TopOpeBRepDS_ShapeShapeInterference.cdl | 84 - .../TopOpeBRepDS_ShapeShapeInterference.cxx | 6 +- .../TopOpeBRepDS_ShapeShapeInterference.hxx | 99 + .../TopOpeBRepDS_ShapeWithState.cdl | 53 - .../TopOpeBRepDS_ShapeWithState.cxx | 4 +- .../TopOpeBRepDS_ShapeWithState.hxx | 82 + .../TopOpeBRepDS_SolidSurfaceInterference.cdl | 41 - .../TopOpeBRepDS_SolidSurfaceInterference.cxx | 5 +- .../TopOpeBRepDS_SolidSurfaceInterference.hxx | 67 + src/TopOpeBRepDS/TopOpeBRepDS_Surface.cdl | 63 - src/TopOpeBRepDS/TopOpeBRepDS_Surface.cxx | 5 +- src/TopOpeBRepDS/TopOpeBRepDS_Surface.hxx | 86 + .../TopOpeBRepDS_SurfaceCurveInterference.cdl | 64 - .../TopOpeBRepDS_SurfaceCurveInterference.cxx | 7 +- .../TopOpeBRepDS_SurfaceCurveInterference.hxx | 81 + src/TopOpeBRepDS/TopOpeBRepDS_SurfaceData.cdl | 38 - src/TopOpeBRepDS/TopOpeBRepDS_SurfaceData.cxx | 6 +- src/TopOpeBRepDS/TopOpeBRepDS_SurfaceData.hxx | 67 + .../TopOpeBRepDS_SurfaceExplorer.cdl | 65 - .../TopOpeBRepDS_SurfaceExplorer.cxx | 6 +- .../TopOpeBRepDS_SurfaceExplorer.hxx | 93 + .../TopOpeBRepDS_SurfaceIterator.cdl | 40 - .../TopOpeBRepDS_SurfaceIterator.cxx | 5 +- .../TopOpeBRepDS_SurfaceIterator.hxx | 71 + src/TopOpeBRepDS/TopOpeBRepDS_TKI.cdl | 86 - src/TopOpeBRepDS/TopOpeBRepDS_TKI.cxx | 12 +- src/TopOpeBRepDS/TopOpeBRepDS_TKI.hxx | 139 + src/TopOpeBRepDS/TopOpeBRepDS_TOOL.cdl | 57 - src/TopOpeBRepDS/TopOpeBRepDS_TOOL.cxx | 18 +- src/TopOpeBRepDS/TopOpeBRepDS_TOOL.hxx | 74 + src/TopOpeBRepDS/TopOpeBRepDS_Transition.cdl | 118 - src/TopOpeBRepDS/TopOpeBRepDS_Transition.cxx | 2 +- src/TopOpeBRepDS/TopOpeBRepDS_Transition.hxx | 150 + src/TopOpeBRepTool/FILES | 120 +- src/TopOpeBRepTool/TopOpeBRepTool.cdl | 190 - src/TopOpeBRepTool/TopOpeBRepTool.hxx | 160 + .../TopOpeBRepTool_AncestorsTool.cdl | 48 - .../TopOpeBRepTool_AncestorsTool.cxx | 4 +- .../TopOpeBRepTool_AncestorsTool.hxx | 69 + src/TopOpeBRepTool/TopOpeBRepTool_BoxSort.cdl | 67 - src/TopOpeBRepTool/TopOpeBRepTool_BoxSort.cxx | 21 +- src/TopOpeBRepTool/TopOpeBRepTool_BoxSort.hxx | 109 + src/TopOpeBRepTool/TopOpeBRepTool_C2DF.cdl | 44 - src/TopOpeBRepTool/TopOpeBRepTool_C2DF.cxx | 6 +- src/TopOpeBRepTool/TopOpeBRepTool_C2DF.hxx | 83 + src/TopOpeBRepTool/TopOpeBRepTool_CLASSI.cdl | 82 - src/TopOpeBRepTool/TopOpeBRepTool_CLASSI.cxx | 20 +- src/TopOpeBRepTool/TopOpeBRepTool_CLASSI.hxx | 90 + src/TopOpeBRepTool/TopOpeBRepTool_CORRISO.cdl | 198 - src/TopOpeBRepTool/TopOpeBRepTool_CORRISO.cxx | 37 +- src/TopOpeBRepTool/TopOpeBRepTool_CORRISO.hxx | 144 + .../TopOpeBRepTool_CurveTool.cdl | 80 - .../TopOpeBRepTool_CurveTool.cxx | 65 +- .../TopOpeBRepTool_CurveTool.hxx | 92 + .../TopOpeBRepTool_FuseEdges.cdl | 141 - .../TopOpeBRepTool_FuseEdges.cxx | 82 +- .../TopOpeBRepTool_FuseEdges.hxx | 145 + .../TopOpeBRepTool_GeomTool.cdl | 98 - .../TopOpeBRepTool_GeomTool.cxx | 3 +- .../TopOpeBRepTool_GeomTool.hxx | 113 + .../TopOpeBRepTool_HBoxTool.cdl | 50 - .../TopOpeBRepTool_HBoxTool.cxx | 15 +- .../TopOpeBRepTool_HBoxTool.hxx | 96 + .../TopOpeBRepTool_OutCurveType.hxx | 28 + .../TopOpeBRepTool_PShapeClassifier.hxx | 23 + .../TopOpeBRepTool_PSoClassif.hxx | 23 + .../TopOpeBRepTool_PurgeInternalEdges.cdl | 98 - .../TopOpeBRepTool_PurgeInternalEdges.cxx | 25 +- .../TopOpeBRepTool_PurgeInternalEdges.hxx | 111 + src/TopOpeBRepTool/TopOpeBRepTool_REGUS.cdl | 119 - src/TopOpeBRepTool/TopOpeBRepTool_REGUS.cxx | 20 +- src/TopOpeBRepTool/TopOpeBRepTool_REGUS.hxx | 109 + src/TopOpeBRepTool/TopOpeBRepTool_REGUW.cdl | 188 - src/TopOpeBRepTool/TopOpeBRepTool_REGUW.cxx | 14 +- src/TopOpeBRepTool/TopOpeBRepTool_REGUW.hxx | 136 + .../TopOpeBRepTool_ShapeClassifier.cdl | 173 - .../TopOpeBRepTool_ShapeClassifier.cxx | 30 +- .../TopOpeBRepTool_ShapeClassifier.hxx | 180 + .../TopOpeBRepTool_ShapeExplorer.cdl | 78 - .../TopOpeBRepTool_ShapeExplorer.cxx | 8 +- .../TopOpeBRepTool_ShapeExplorer.hxx | 98 + .../TopOpeBRepTool_ShapeTool.cdl | 124 - .../TopOpeBRepTool_ShapeTool.cxx | 33 +- .../TopOpeBRepTool_ShapeTool.hxx | 126 + .../TopOpeBRepTool_SolidClassifier.cdl | 75 - .../TopOpeBRepTool_SolidClassifier.cxx | 6 +- .../TopOpeBRepTool_SolidClassifier.hxx | 94 + src/TopOpeBRepTool/TopOpeBRepTool_TOOL.cdl | 354 -- src/TopOpeBRepTool/TopOpeBRepTool_TOOL.cxx | 63 +- src/TopOpeBRepTool/TopOpeBRepTool_TOOL.hxx | 185 + .../TopOpeBRepTool_connexity.cdl | 70 - .../TopOpeBRepTool_connexity.cxx | 4 +- .../TopOpeBRepTool_connexity.hxx | 93 + src/TopOpeBRepTool/TopOpeBRepTool_face.cdl | 46 - src/TopOpeBRepTool/TopOpeBRepTool_face.cxx | 16 +- src/TopOpeBRepTool/TopOpeBRepTool_face.hxx | 79 + .../TopOpeBRepTool_makeTransition.cdl | 82 - .../TopOpeBRepTool_makeTransition.cxx | 14 +- .../TopOpeBRepTool_makeTransition.hxx | 99 + .../TopOpeBRepTool_mkTondgE.cdl | 98 - .../TopOpeBRepTool_mkTondgE.cxx | 17 +- .../TopOpeBRepTool_mkTondgE.hxx | 100 + src/TopTools/FILES | 77 +- src/TopTools/TopTools.cdl | 191 - src/TopTools/TopTools.cxx | 5 +- src/TopTools/TopTools.hxx | 118 + src/TopTools/TopTools_LocationSet.cdl | 86 - src/TopTools/TopTools_LocationSet.cxx | 11 +- src/TopTools/TopTools_LocationSet.hxx | 104 + src/TopTools/TopTools_LocationSetPtr.hxx | 23 + .../TopTools_OrientedShapeMapHasher.cdl | 38 - .../TopTools_OrientedShapeMapHasher.cxx | 4 +- .../TopTools_OrientedShapeMapHasher.hxx | 70 + src/TopTools/TopTools_ShapeMapHasher.cdl | 38 - src/TopTools/TopTools_ShapeMapHasher.cxx | 4 +- src/TopTools/TopTools_ShapeMapHasher.hxx | 70 + src/TopTools/TopTools_ShapeSet.cdl | 228 -- src/TopTools/TopTools_ShapeSet.cxx | 11 +- src/TopTools/TopTools_ShapeSet.hxx | 216 ++ src/TopTrans/FILES | 4 + src/TopTrans/TopTrans.cdl | 70 - src/TopTrans/TopTrans_CurveTransition.cdl | 133 - src/TopTrans/TopTrans_CurveTransition.cxx | 4 +- src/TopTrans/TopTrans_CurveTransition.hxx | 130 + src/TopTrans/TopTrans_SurfaceTransition.cdl | 156 - src/TopTrans/TopTrans_SurfaceTransition.cxx | 6 +- src/TopTrans/TopTrans_SurfaceTransition.hxx | 145 + src/TopoDS/FILES | 71 +- src/TopoDS/TopoDS.cdl | 168 - src/TopoDS/TopoDS.cxx | 12 +- src/TopoDS/TopoDS.hxx | 162 + src/TopoDS/TopoDS_Builder.cdl | 118 - src/TopoDS/TopoDS_Builder.cxx | 18 +- src/TopoDS/TopoDS_Builder.hxx | 136 + src/TopoDS/TopoDS_CompSolid.cdl | 34 - src/TopoDS/TopoDS_CompSolid.cxx | 3 +- src/TopoDS/TopoDS_CompSolid.hxx | 70 + src/TopoDS/TopoDS_Compound.cdl | 34 - src/TopoDS/TopoDS_Compound.cxx | 3 +- src/TopoDS/TopoDS_Compound.hxx | 70 + src/TopoDS/TopoDS_Edge.cdl | 33 - src/TopoDS/TopoDS_Edge.cxx | 3 +- src/TopoDS/TopoDS_Edge.hxx | 69 + src/TopoDS/TopoDS_Face.cdl | 32 - src/TopoDS/TopoDS_Face.cxx | 3 +- src/TopoDS/TopoDS_Face.hxx | 68 + src/TopoDS/TopoDS_FrozenShape.hxx | 37 + src/TopoDS/TopoDS_HShape.cdl | 60 - src/TopoDS/TopoDS_HShape.cxx | 5 +- src/TopoDS/TopoDS_HShape.hxx | 84 + src/TopoDS/TopoDS_Iterator.cdl | 98 - src/TopoDS/TopoDS_Iterator.cxx | 6 +- src/TopoDS/TopoDS_Iterator.hxx | 111 + src/TopoDS/TopoDS_LockedShape.hxx | 37 + src/TopoDS/TopoDS_Shape.cdl | 368 -- src/TopoDS/TopoDS_Shape.cxx | 9 +- src/TopoDS/TopoDS_Shape.hxx | 252 ++ src/TopoDS/TopoDS_Shell.cdl | 32 - src/TopoDS/TopoDS_Shell.cxx | 3 +- src/TopoDS/TopoDS_Shell.hxx | 68 + src/TopoDS/TopoDS_Solid.cdl | 33 - src/TopoDS/TopoDS_Solid.cxx | 3 +- src/TopoDS/TopoDS_Solid.hxx | 69 + src/TopoDS/TopoDS_TCompSolid.cdl | 34 - src/TopoDS/TopoDS_TCompSolid.cxx | 5 +- src/TopoDS/TopoDS_TCompSolid.hxx | 71 + src/TopoDS/TopoDS_TCompound.cdl | 34 - src/TopoDS/TopoDS_TCompound.cxx | 5 +- src/TopoDS/TopoDS_TCompound.hxx | 71 + src/TopoDS/TopoDS_TEdge.cdl | 32 - src/TopoDS/TopoDS_TEdge.cxx | 4 +- src/TopoDS/TopoDS_TEdge.hxx | 68 + src/TopoDS/TopoDS_TFace.cdl | 36 - src/TopoDS/TopoDS_TFace.cxx | 5 +- src/TopoDS/TopoDS_TFace.hxx | 73 + src/TopoDS/TopoDS_TShape.cdl | 178 - src/TopoDS/TopoDS_TShape.cxx | 7 +- src/TopoDS/TopoDS_TShape.hxx | 164 + src/TopoDS/TopoDS_TShell.cdl | 34 - src/TopoDS/TopoDS_TShell.cxx | 5 +- src/TopoDS/TopoDS_TShell.hxx | 71 + src/TopoDS/TopoDS_TSolid.cdl | 35 - src/TopoDS/TopoDS_TSolid.cxx | 5 +- src/TopoDS/TopoDS_TSolid.hxx | 72 + src/TopoDS/TopoDS_TVertex.cdl | 32 - src/TopoDS/TopoDS_TVertex.cxx | 4 +- src/TopoDS/TopoDS_TVertex.hxx | 68 + src/TopoDS/TopoDS_TWire.cdl | 34 - src/TopoDS/TopoDS_TWire.cxx | 5 +- src/TopoDS/TopoDS_TWire.hxx | 71 + src/TopoDS/TopoDS_UnCompatibleShapes.hxx | 37 + src/TopoDS/TopoDS_Vertex.cdl | 33 - src/TopoDS/TopoDS_Vertex.cxx | 3 +- src/TopoDS/TopoDS_Vertex.hxx | 69 + src/TopoDS/TopoDS_Wire.cdl | 31 - src/TopoDS/TopoDS_Wire.cxx | 3 +- src/TopoDS/TopoDS_Wire.hxx | 68 + src/TopoDSToStep/FILES | 38 + src/TopoDSToStep/TopoDSToStep.cdl | 162 - src/TopoDSToStep/TopoDSToStep.cxx | 29 +- src/TopoDSToStep/TopoDSToStep.hxx | 129 + src/TopoDSToStep/TopoDSToStep_Builder.cdl | 68 - src/TopoDSToStep/TopoDSToStep_Builder.cxx | 33 +- src/TopoDSToStep/TopoDSToStep_Builder.hxx | 77 + .../TopoDSToStep_BuilderError.hxx | 28 + .../TopoDSToStep_FacetedError.hxx | 28 + src/TopoDSToStep/TopoDSToStep_FacetedTool.cdl | 39 - src/TopoDSToStep/TopoDSToStep_FacetedTool.cxx | 24 +- src/TopoDSToStep/TopoDSToStep_FacetedTool.hxx | 62 + .../TopoDSToStep_MakeBrepWithVoids.cdl | 51 - .../TopoDSToStep_MakeBrepWithVoids.cxx | 28 +- .../TopoDSToStep_MakeBrepWithVoids.hxx | 71 + .../TopoDSToStep_MakeEdgeError.hxx | 28 + .../TopoDSToStep_MakeFaceError.hxx | 30 + .../TopoDSToStep_MakeFacetedBrep.cdl | 56 - .../TopoDSToStep_MakeFacetedBrep.cxx | 15 +- .../TopoDSToStep_MakeFacetedBrep.hxx | 74 + ...ToStep_MakeFacetedBrepAndBrepWithVoids.cdl | 51 - ...ToStep_MakeFacetedBrepAndBrepWithVoids.cxx | 26 +- ...ToStep_MakeFacetedBrepAndBrepWithVoids.hxx | 71 + .../TopoDSToStep_MakeGeometricCurveSet.cdl | 46 - .../TopoDSToStep_MakeGeometricCurveSet.cxx | 26 +- .../TopoDSToStep_MakeGeometricCurveSet.hxx | 69 + .../TopoDSToStep_MakeManifoldSolidBrep.cdl | 56 - .../TopoDSToStep_MakeManifoldSolidBrep.cxx | 17 +- .../TopoDSToStep_MakeManifoldSolidBrep.hxx | 74 + ...opoDSToStep_MakeShellBasedSurfaceModel.cdl | 59 - ...opoDSToStep_MakeShellBasedSurfaceModel.cxx | 32 +- ...opoDSToStep_MakeShellBasedSurfaceModel.hxx | 76 + .../TopoDSToStep_MakeStepEdge.cdl | 62 - .../TopoDSToStep_MakeStepEdge.cxx | 64 +- .../TopoDSToStep_MakeStepEdge.hxx | 78 + .../TopoDSToStep_MakeStepFace.cdl | 61 - .../TopoDSToStep_MakeStepFace.cxx | 108 +- .../TopoDSToStep_MakeStepFace.hxx | 78 + .../TopoDSToStep_MakeStepVertex.cdl | 62 - .../TopoDSToStep_MakeStepVertex.cxx | 23 +- .../TopoDSToStep_MakeStepVertex.hxx | 78 + .../TopoDSToStep_MakeStepWire.cdl | 62 - .../TopoDSToStep_MakeStepWire.cxx | 50 +- .../TopoDSToStep_MakeStepWire.hxx | 78 + .../TopoDSToStep_MakeVertexError.hxx | 27 + .../TopoDSToStep_MakeWireError.hxx | 28 + src/TopoDSToStep/TopoDSToStep_Root.cdl | 42 - src/TopoDSToStep/TopoDSToStep_Root.cxx | 3 +- src/TopoDSToStep/TopoDSToStep_Root.hxx | 70 + src/TopoDSToStep/TopoDSToStep_Tool.cdl | 140 - src/TopoDSToStep/TopoDSToStep_Tool.cxx | 9 +- src/TopoDSToStep/TopoDSToStep_Tool.hxx | 130 + .../TopoDSToStep_WireframeBuilder.cdl | 95 - .../TopoDSToStep_WireframeBuilder.cxx | 74 +- .../TopoDSToStep_WireframeBuilder.hxx | 93 + src/Transfer/FILES | 79 +- src/Transfer/Transfer.cdl | 101 - src/Transfer/Transfer_ActorDispatch.cdl | 73 - src/Transfer/Transfer_ActorDispatch.cxx | 13 +- src/Transfer/Transfer_ActorDispatch.hxx | 104 + .../Transfer_ActorOfFinderProcess.cdl | 54 - .../Transfer_ActorOfFinderProcess.cxx | 10 +- .../Transfer_ActorOfFinderProcess.hxx | 80 + .../Transfer_ActorOfProcessForFinder.hxx | 91 + .../Transfer_ActorOfProcessForFinder_0.cxx | 66 + .../Transfer_ActorOfProcessForTransient.hxx | 90 + .../Transfer_ActorOfProcessForTransient_0.cxx | 64 + .../Transfer_ActorOfTransientProcess.cdl | 42 - .../Transfer_ActorOfTransientProcess.cxx | 9 +- .../Transfer_ActorOfTransientProcess.hxx | 71 + src/Transfer/Transfer_Binder.cdl | 150 - src/Transfer/Transfer_Binder.cxx | 14 +- src/Transfer/Transfer_Binder.hxx | 174 + .../Transfer_BinderOfTransientInteger.cdl | 44 - .../Transfer_BinderOfTransientInteger.cxx | 4 +- .../Transfer_BinderOfTransientInteger.hxx | 76 + src/Transfer/Transfer_DataInfo.cdl | 35 - src/Transfer/Transfer_DataInfo.cxx | 4 +- src/Transfer/Transfer_DataInfo.hxx | 70 + src/Transfer/Transfer_DispatchControl.cdl | 64 - src/Transfer/Transfer_DispatchControl.cxx | 8 +- src/Transfer/Transfer_DispatchControl.hxx | 90 + src/Transfer/Transfer_FindHasher.cdl | 40 - src/Transfer/Transfer_FindHasher.cxx | 3 +- src/Transfer/Transfer_FindHasher.hxx | 75 + src/Transfer/Transfer_Finder.cdl | 144 - src/Transfer/Transfer_Finder.cxx | 11 +- src/Transfer/Transfer_Finder.hxx | 176 + src/Transfer/Transfer_FinderProcess.cdl | 71 - src/Transfer/Transfer_FinderProcess.cxx | 11 +- src/Transfer/Transfer_FinderProcess.hxx | 106 + ...MapNodeOfTransferMapOfProcessForFinder.hxx | 102 + ...pNodeOfTransferMapOfProcessForFinder_0.cxx | 47 + ...NodeOfTransferMapOfProcessForTransient.hxx | 102 + ...deOfTransferMapOfProcessForTransient_0.cxx | 46 + .../Transfer_IteratorOfProcessForFinder.hxx | 81 + .../Transfer_IteratorOfProcessForFinder_0.cxx | 53 + ...Transfer_IteratorOfProcessForTransient.hxx | 81 + ...ansfer_IteratorOfProcessForTransient_0.cxx | 52 + src/Transfer/Transfer_MapContainer.cdl | 38 - src/Transfer/Transfer_MapContainer.cxx | 4 +- src/Transfer/Transfer_MapContainer.hxx | 68 + src/Transfer/Transfer_Mapper.cdl | 62 - src/Transfer/Transfer_MultipleBinder.cdl | 84 - src/Transfer/Transfer_MultipleBinder.cxx | 12 +- src/Transfer/Transfer_MultipleBinder.hxx | 116 + src/Transfer/Transfer_ProcessForFinder.hxx | 228 ++ src/Transfer/Transfer_ProcessForFinder_0.cxx | 70 + src/Transfer/Transfer_ProcessForTransient.hxx | 227 ++ .../Transfer_ProcessForTransient_0.cxx | 68 + src/Transfer/Transfer_ResultFromModel.cdl | 152 - src/Transfer/Transfer_ResultFromModel.cxx | 14 +- src/Transfer/Transfer_ResultFromModel.hxx | 187 + src/Transfer/Transfer_ResultFromTransient.cdl | 103 - src/Transfer/Transfer_ResultFromTransient.cxx | 9 +- src/Transfer/Transfer_ResultFromTransient.hxx | 139 + .../Transfer_SimpleBinderOfTransient.cdl | 71 - .../Transfer_SimpleBinderOfTransient.cxx | 8 +- .../Transfer_SimpleBinderOfTransient.hxx | 98 + src/Transfer/Transfer_StatusExec.hxx | 30 + src/Transfer/Transfer_StatusResult.hxx | 28 + src/Transfer/Transfer_TransferDeadLoop.hxx | 37 + src/Transfer/Transfer_TransferDispatch.cdl | 66 - src/Transfer/Transfer_TransferDispatch.cxx | 13 +- src/Transfer/Transfer_TransferDispatch.hxx | 97 + src/Transfer/Transfer_TransferFailure.hxx | 37 + src/Transfer/Transfer_TransferInput.cdl | 82 - src/Transfer/Transfer_TransferInput.cxx | 21 +- src/Transfer/Transfer_TransferInput.hxx | 99 + src/Transfer/Transfer_TransferIterator.cdl | 138 - src/Transfer/Transfer_TransferIterator.cxx | 7 +- src/Transfer/Transfer_TransferIterator.hxx | 160 + ...Transfer_TransferMapOfProcessForFinder.hxx | 118 + ...ansfer_TransferMapOfProcessForFinder_0.cxx | 40 + ...nsfer_TransferMapOfProcessForTransient.hxx | 118 + ...fer_TransferMapOfProcessForTransient_0.cxx | 39 + src/Transfer/Transfer_TransferOutput.cdl | 113 - src/Transfer/Transfer_TransferOutput.cxx | 16 +- src/Transfer/Transfer_TransferOutput.hxx | 134 + src/Transfer/Transfer_TransferProcess.cdl | 733 ---- src/Transfer/Transfer_TransientListBinder.cdl | 64 - src/Transfer/Transfer_TransientListBinder.cxx | 10 +- src/Transfer/Transfer_TransientListBinder.hxx | 93 + src/Transfer/Transfer_TransientMapper.hxx | 77 + src/Transfer/Transfer_TransientMapper_0.cxx | 44 + src/Transfer/Transfer_TransientProcess.cdl | 102 - src/Transfer/Transfer_TransientProcess.cxx | 15 +- src/Transfer/Transfer_TransientProcess.hxx | 143 + src/Transfer/Transfer_UndefMode.hxx | 29 + src/Transfer/Transfer_VoidBinder.cdl | 42 - src/Transfer/Transfer_VoidBinder.cxx | 3 +- src/Transfer/Transfer_VoidBinder.hxx | 76 + src/TransferBRep/FILES | 21 +- src/TransferBRep/TransferBRep.cdl | 184 - src/TransferBRep/TransferBRep.cxx | 44 +- src/TransferBRep/TransferBRep.hxx | 195 + .../TransferBRep_BinderOfShape.cdl | 79 - .../TransferBRep_BinderOfShape.cxx | 7 +- .../TransferBRep_BinderOfShape.hxx | 102 + .../TransferBRep_OrientedShapeMapper.hxx | 78 + .../TransferBRep_OrientedShapeMapper_0.cxx | 45 + src/TransferBRep/TransferBRep_Reader.cdl | 193 - src/TransferBRep/TransferBRep_Reader.cxx | 18 +- src/TransferBRep/TransferBRep_Reader.hxx | 220 ++ src/TransferBRep/TransferBRep_ShapeBinder.cdl | 51 - src/TransferBRep/TransferBRep_ShapeBinder.cxx | 15 +- src/TransferBRep/TransferBRep_ShapeBinder.hxx | 96 + src/TransferBRep/TransferBRep_ShapeInfo.cdl | 34 - src/TransferBRep/TransferBRep_ShapeInfo.cxx | 5 +- src/TransferBRep/TransferBRep_ShapeInfo.hxx | 69 + .../TransferBRep_ShapeListBinder.cdl | 80 - .../TransferBRep_ShapeListBinder.cxx | 17 +- .../TransferBRep_ShapeListBinder.hxx | 120 + src/TransferBRep/TransferBRep_ShapeMapper.hxx | 78 + .../TransferBRep_ShapeMapper_0.cxx | 45 + .../TransferBRep_TransferResultInfo.cdl | 75 - .../TransferBRep_TransferResultInfo.cxx | 5 +- .../TransferBRep_TransferResultInfo.hxx | 100 + src/UTL/FILES | 2 + src/UTL/UTL.cdl | 65 - src/UTL/UTL.cxx | 19 +- src/UTL/UTL.hxx | 106 + src/Units/FILES | 51 +- src/Units/Units.cdl | 158 - src/Units/Units.hxx | 143 + src/Units/Units_CMPLRS.edl | 17 - src/Units/Units_Dimensions.cdl | 256 -- src/Units/Units_Dimensions.cxx | 7 +- src/Units/Units_Dimensions.hxx | 166 + src/Units/Units_Explorer.cdl | 194 - src/Units/Units_Explorer.cxx | 10 +- src/Units/Units_Explorer.hxx | 140 + src/Units/Units_Lexicon.cdl | 105 - src/Units/Units_Lexicon.cxx | 13 +- src/Units/Units_Lexicon.hxx | 100 + src/Units/Units_MathSentence.cdl | 42 - src/Units/Units_MathSentence.cxx | 4 +- src/Units/Units_MathSentence.hxx | 65 + src/Units/Units_Measurement.cdl | 142 - src/Units/Units_Measurement.cxx | 13 +- src/Units/Units_Measurement.hxx | 157 + src/Units/Units_NoSuchType.hxx | 37 + src/Units/Units_NoSuchUnit.hxx | 37 + src/Units/Units_Quantity.cdl | 109 - src/Units/Units_Quantity.cxx | 10 +- src/Units/Units_Quantity.hxx | 96 + src/Units/Units_Sentence.cdl | 99 - src/Units/Units_Sentence.cxx | 9 +- src/Units/Units_Sentence.hxx | 89 + src/Units/Units_ShiftedToken.cdl | 110 - src/Units/Units_ShiftedToken.cxx | 7 +- src/Units/Units_ShiftedToken.hxx | 110 + src/Units/Units_ShiftedUnit.cdl | 108 - src/Units/Units_ShiftedUnit.cxx | 9 +- src/Units/Units_ShiftedUnit.hxx | 100 + src/Units/Units_Token.cdl | 423 --- src/Units/Units_Token.cxx | 6 +- src/Units/Units_Token.hxx | 223 ++ src/Units/Units_Unit.cdl | 176 - src/Units/Units_Unit.cxx | 13 +- src/Units/Units_Unit.hxx | 122 + src/Units/Units_UnitSentence.cdl | 79 - src/Units/Units_UnitSentence.cxx | 17 +- src/Units/Units_UnitSentence.hxx | 84 + src/Units/Units_UnitsDictionary.cdl | 122 - src/Units/Units_UnitsDictionary.cxx | 34 +- src/Units/Units_UnitsDictionary.hxx | 102 + src/Units/Units_UnitsLexicon.cdl | 84 - src/Units/Units_UnitsLexicon.cxx | 13 +- src/Units/Units_UnitsLexicon.hxx | 89 + src/Units/Units_UnitsSystem.cdl | 165 - src/Units/Units_UnitsSystem.cxx | 27 +- src/Units/Units_UnitsSystem.hxx | 129 + src/UnitsAPI/FILES | 7 +- src/UnitsAPI/UnitsAPI.cdl | 209 -- src/UnitsAPI/UnitsAPI.cxx | 14 +- src/UnitsAPI/UnitsAPI.hxx | 209 ++ src/UnitsAPI/UnitsAPI_SystemUnits.hxx | 37 + src/UnitsMethods/FILES | 2 + src/UnitsMethods/UnitsMethods.cdl | 73 - src/UnitsMethods/UnitsMethods.cxx | 26 +- src/UnitsMethods/UnitsMethods.hxx | 98 + src/V3d/FILES | 61 +- src/V3d/V3d.cdl | 244 -- src/V3d/V3d.cxx | 20 +- src/V3d/V3d.hxx | 123 + src/V3d/V3d_AmbientLight.cdl | 47 - src/V3d/V3d_AmbientLight.cxx | 5 +- src/V3d/V3d_AmbientLight.hxx | 65 + src/V3d/V3d_BadValue.hxx | 37 + src/V3d/V3d_CircularGrid.cdl | 81 - src/V3d/V3d_CircularGrid.cxx | 26 +- src/V3d/V3d_CircularGrid.hxx | 101 + src/V3d/V3d_ColorScale.cdl | 100 - src/V3d/V3d_ColorScale.cxx | 22 +- src/V3d/V3d_ColorScale.hxx | 90 + src/V3d/V3d_ColorScaleLayerItem.cdl | 57 - src/V3d/V3d_ColorScaleLayerItem.cxx | 8 +- src/V3d/V3d_ColorScaleLayerItem.hxx | 71 + src/V3d/V3d_Coordinate.hxx | 25 + src/V3d/V3d_DirectionalLight.cdl | 144 - src/V3d/V3d_DirectionalLight.cxx | 40 +- src/V3d/V3d_DirectionalLight.hxx | 124 + src/V3d/V3d_LayerMgr.cdl | 77 - src/V3d/V3d_LayerMgr.cxx | 12 +- src/V3d/V3d_LayerMgr.hxx | 98 + src/V3d/V3d_LayerMgrPointer.hxx | 23 + src/V3d/V3d_Light.cdl | 162 - src/V3d/V3d_Light.cxx | 19 +- src/V3d/V3d_Light.hxx | 145 + src/V3d/V3d_Parameter.hxx | 25 + src/V3d/V3d_PositionLight.cdl | 147 - src/V3d/V3d_PositionLight.cxx | 35 +- src/V3d/V3d_PositionLight.hxx | 131 + src/V3d/V3d_PositionalLight.cdl | 160 - src/V3d/V3d_PositionalLight.cxx | 43 +- src/V3d/V3d_PositionalLight.hxx | 131 + src/V3d/V3d_RectangularGrid.cdl | 80 - src/V3d/V3d_RectangularGrid.cxx | 22 +- src/V3d/V3d_RectangularGrid.hxx | 101 + src/V3d/V3d_SpotLight.cdl | 179 - src/V3d/V3d_SpotLight.cxx | 36 +- src/V3d/V3d_SpotLight.hxx | 149 + src/V3d/V3d_TypeOfAxe.hxx | 28 + src/V3d/V3d_TypeOfBackfacingModel.hxx | 32 + src/V3d/V3d_TypeOfLight.hxx | 29 + src/V3d/V3d_TypeOfOrientation.hxx | 51 + src/V3d/V3d_TypeOfPickCamera.hxx | 31 + src/V3d/V3d_TypeOfPickLight.hxx | 31 + src/V3d/V3d_TypeOfRepresentation.hxx | 29 + src/V3d/V3d_TypeOfShadingModel.hxx | 34 + src/V3d/V3d_TypeOfSurfaceDetail.hxx | 31 + src/V3d/V3d_TypeOfUpdate.hxx | 29 + src/V3d/V3d_TypeOfView.hxx | 27 + src/V3d/V3d_TypeOfVisualization.hxx | 28 + src/V3d/V3d_TypeOfZclipping.hxx | 34 + src/V3d/V3d_UnMapped.hxx | 37 + src/V3d/V3d_View.cdl | 1542 -------- src/V3d/V3d_View.cxx | 70 +- src/V3d/V3d_View.hxx | 1086 ++++++ src/V3d/V3d_ViewPointer.hxx | 23 + src/V3d/V3d_View_1.cxx | 30 +- src/V3d/V3d_View_2.cxx | 31 +- src/V3d/V3d_View_3.cxx | 24 +- src/V3d/V3d_View_4.cxx | 30 +- src/V3d/V3d_View_5.cxx | 29 +- src/V3d/V3d_View_Print.cxx | 23 +- src/V3d/V3d_Viewer.cdl | 735 ---- src/V3d/V3d_Viewer.cxx | 24 +- src/V3d/V3d_Viewer.hxx | 530 +++ src/V3d/V3d_ViewerPointer.hxx | 23 + src/V3d/V3d_Viewer_1.cxx | 19 +- src/V3d/V3d_Viewer_2.cxx | 26 +- src/V3d/V3d_Viewer_3.cxx | 32 +- src/V3d/V3d_Viewer_4.cxx | 17 +- src/ViewerTest/FILES | 26 +- src/ViewerTest/ViewerTest.cdl | 42 - src/ViewerTest/ViewerTest_CMPLRS.edl | 22 - src/ViewerTest/ViewerTest_EventManager.cdl | 72 - src/ViewerTest/ViewerTest_EventManager.cxx | 5 +- src/ViewerTest/ViewerTest_EventManager.hxx | 92 + src/Visual3d/FILES | 45 +- src/Visual3d/Visual3d.cdl | 245 -- src/Visual3d/Visual3d.edl | 19 - src/Visual3d/Visual3d_CMPLRS.edl | 32 - src/Visual3d/Visual3d_ClipDefinitionError.hxx | 37 + src/Visual3d/Visual3d_ContextPick.cdl | 148 - src/Visual3d/Visual3d_ContextPick.cxx | 18 +- src/Visual3d/Visual3d_ContextPick.hxx | 115 + .../Visual3d_ContextPickDefinitionError.hxx | 37 + src/Visual3d/Visual3d_ContextView.cdl | 434 --- src/Visual3d/Visual3d_ContextView.cxx | 15 +- src/Visual3d/Visual3d_ContextView.hxx | 255 ++ .../Visual3d_DepthCueingDefinitionError.hxx | 37 + src/Visual3d/Visual3d_Layer.cdl | 324 -- src/Visual3d/Visual3d_Layer.cxx | 11 +- src/Visual3d/Visual3d_Layer.hxx | 190 + .../Visual3d_LayerDefinitionError.hxx | 37 + src/Visual3d/Visual3d_LayerItem.cdl | 65 - src/Visual3d/Visual3d_LayerItem.cxx | 7 +- src/Visual3d/Visual3d_LayerItem.hxx | 75 + src/Visual3d/Visual3d_Light.cdl | 355 -- src/Visual3d/Visual3d_Light.cxx | 7 +- src/Visual3d/Visual3d_Light.hxx | 257 ++ .../Visual3d_LightDefinitionError.hxx | 37 + src/Visual3d/Visual3d_PickError.hxx | 37 + src/Visual3d/Visual3d_TransformError.hxx | 37 + src/Visual3d/Visual3d_TypeOfAnswer.hxx | 33 + .../Visual3d_TypeOfBackfacingModel.hxx | 32 + src/Visual3d/Visual3d_TypeOfLightSource.hxx | 34 + src/Visual3d/Visual3d_TypeOfModel.hxx | 33 + src/Visual3d/Visual3d_TypeOfOrder.hxx | 29 + src/Visual3d/Visual3d_TypeOfProjection.hxx | 33 + src/Visual3d/Visual3d_TypeOfSurfaceDetail.hxx | 32 + src/Visual3d/Visual3d_TypeOfVisualization.hxx | 30 + src/Visual3d/Visual3d_View.cdl | 1106 ------ src/Visual3d/Visual3d_View.cxx | 18 +- src/Visual3d/Visual3d_View.hxx | 659 ++++ src/Visual3d/Visual3d_ViewDefinitionError.hxx | 37 + src/Visual3d/Visual3d_ViewManager.cdl | 439 --- src/Visual3d/Visual3d_ViewManager.cxx | 16 +- src/Visual3d/Visual3d_ViewManager.hxx | 256 ++ .../Visual3d_ViewManagerDefinitionError.hxx | 37 + src/Visual3d/Visual3d_ViewManagerPtr.hxx | 23 + .../Visual3d_ViewMappingDefinitionError.hxx | 37 + ...isual3d_ViewOrientationDefinitionError.hxx | 37 + src/Visual3d/Visual3d_ViewPtr.hxx | 23 + src/Visual3d/Visual3d_WOKSteps.edl | 23 - .../Visual3d_ZClippingDefinitionError.hxx | 37 + src/Voxel/FILES | 32 +- src/Voxel/Voxel.cdl | 105 - src/Voxel/Voxel_BoolDS.cdl | 83 - src/Voxel/Voxel_BoolDS.cxx | 4 +- src/Voxel/Voxel_BoolDS.hxx | 96 + src/Voxel/Voxel_BooleanOperation.cdl | 111 - src/Voxel/Voxel_BooleanOperation.cxx | 7 +- src/Voxel/Voxel_BooleanOperation.hxx | 108 + src/Voxel/Voxel_CollisionDetection.cdl | 171 - src/Voxel/Voxel_CollisionDetection.cxx | 11 +- src/Voxel/Voxel_CollisionDetection.hxx | 151 + src/Voxel/Voxel_ColorDS.cdl | 83 - src/Voxel/Voxel_ColorDS.cxx | 4 +- src/Voxel/Voxel_ColorDS.hxx | 96 + src/Voxel/Voxel_DS.cdl | 152 - src/Voxel/Voxel_DS.cxx | 5 +- src/Voxel/Voxel_DS.hxx | 134 + src/Voxel/Voxel_FastConverter.cdl | 176 - src/Voxel/Voxel_FastConverter.cxx | 28 +- src/Voxel/Voxel_FastConverter.hxx | 135 + src/Voxel/Voxel_FloatDS.cdl | 83 - src/Voxel/Voxel_FloatDS.cxx | 4 +- src/Voxel/Voxel_FloatDS.hxx | 96 + src/Voxel/Voxel_OctBoolDS.cdl | 139 - src/Voxel/Voxel_OctBoolDS.cxx | 9 +- src/Voxel/Voxel_OctBoolDS.hxx | 123 + src/Voxel/Voxel_Prs.cdl | 161 - src/Voxel/Voxel_Prs.cxx | 12 +- src/Voxel/Voxel_Prs.hxx | 149 + src/Voxel/Voxel_ROctBoolDS.cdl | 186 - src/Voxel/Voxel_ROctBoolDS.cxx | 4 +- src/Voxel/Voxel_ROctBoolDS.hxx | 141 + src/Voxel/Voxel_Reader.cdl | 110 - src/Voxel/Voxel_Reader.cxx | 11 +- src/Voxel/Voxel_Reader.hxx | 105 + src/Voxel/Voxel_Selector.cdl | 71 - src/Voxel/Voxel_Selector.cxx | 14 +- src/Voxel/Voxel_Selector.hxx | 90 + src/Voxel/Voxel_SplitData.cdl | 44 - src/Voxel/Voxel_SplitData.cxx | 3 +- src/Voxel/Voxel_SplitData.hxx | 70 + src/Voxel/Voxel_VoxelDisplayMode.hxx | 28 + src/Voxel/Voxel_VoxelFileFormat.hxx | 26 + src/Voxel/Voxel_Writer.cdl | 106 - src/Voxel/Voxel_Writer.cxx | 10 +- src/Voxel/Voxel_Writer.hxx | 106 + src/Vrml/FILES | 93 + src/Vrml/Vrml.cdl | 338 -- src/Vrml/Vrml.cxx | 3 +- src/Vrml/Vrml.hxx | 151 + src/Vrml/Vrml_AsciiText.cdl | 67 - src/Vrml/Vrml_AsciiText.cxx | 4 +- src/Vrml/Vrml_AsciiText.hxx | 98 + src/Vrml/Vrml_AsciiTextJustification.hxx | 28 + src/Vrml/Vrml_Cone.cdl | 54 - src/Vrml/Vrml_Cone.cxx | 3 +- src/Vrml/Vrml_Cone.hxx | 85 + src/Vrml/Vrml_ConeParts.hxx | 28 + src/Vrml/Vrml_Coordinate3.cdl | 45 - src/Vrml/Vrml_Coordinate3.cxx | 4 +- src/Vrml/Vrml_Coordinate3.hxx | 77 + src/Vrml/Vrml_Cube.cdl | 52 - src/Vrml/Vrml_Cube.cxx | 3 +- src/Vrml/Vrml_Cube.hxx | 84 + src/Vrml/Vrml_Cylinder.cdl | 55 - src/Vrml/Vrml_Cylinder.cxx | 3 +- src/Vrml/Vrml_Cylinder.hxx | 84 + src/Vrml/Vrml_CylinderParts.hxx | 29 + src/Vrml/Vrml_DirectionalLight.cdl | 67 - src/Vrml/Vrml_DirectionalLight.cxx | 5 +- src/Vrml/Vrml_DirectionalLight.hxx | 95 + src/Vrml/Vrml_FaceType.hxx | 27 + src/Vrml/Vrml_FontStyle.cdl | 56 - src/Vrml/Vrml_FontStyle.cxx | 3 +- src/Vrml/Vrml_FontStyle.hxx | 84 + src/Vrml/Vrml_FontStyleFamily.hxx | 28 + src/Vrml/Vrml_FontStyleStyle.hxx | 28 + src/Vrml/Vrml_Group.cdl | 38 - src/Vrml/Vrml_Group.cxx | 3 +- src/Vrml/Vrml_Group.hxx | 70 + src/Vrml/Vrml_IndexedFaceSet.cdl | 71 - src/Vrml/Vrml_IndexedFaceSet.cxx | 4 +- src/Vrml/Vrml_IndexedFaceSet.hxx | 91 + src/Vrml/Vrml_IndexedLineSet.cdl | 69 - src/Vrml/Vrml_IndexedLineSet.cxx | 4 +- src/Vrml/Vrml_IndexedLineSet.hxx | 99 + src/Vrml/Vrml_Info.cdl | 43 - src/Vrml/Vrml_Info.cxx | 4 +- src/Vrml/Vrml_Info.hxx | 73 + src/Vrml/Vrml_Instancing.cdl | 51 - src/Vrml/Vrml_Instancing.cxx | 3 +- src/Vrml/Vrml_Instancing.hxx | 78 + src/Vrml/Vrml_LOD.cdl | 70 - src/Vrml/Vrml_LOD.cxx | 5 +- src/Vrml/Vrml_LOD.hxx | 101 + src/Vrml/Vrml_Material.cdl | 76 - src/Vrml/Vrml_Material.cxx | 4 +- src/Vrml/Vrml_Material.hxx | 103 + src/Vrml/Vrml_MaterialBinding.cdl | 48 - src/Vrml/Vrml_MaterialBinding.cxx | 3 +- src/Vrml/Vrml_MaterialBinding.hxx | 77 + .../Vrml_MaterialBindingAndNormalBinding.hxx | 33 + src/Vrml/Vrml_MatrixTransform.cdl | 53 - src/Vrml/Vrml_MatrixTransform.cxx | 8 +- src/Vrml/Vrml_MatrixTransform.hxx | 82 + src/Vrml/Vrml_Normal.cdl | 47 - src/Vrml/Vrml_Normal.cxx | 4 +- src/Vrml/Vrml_Normal.hxx | 78 + src/Vrml/Vrml_NormalBinding.cdl | 48 - src/Vrml/Vrml_NormalBinding.cxx | 3 +- src/Vrml/Vrml_NormalBinding.hxx | 77 + src/Vrml/Vrml_OrthographicCamera.cdl | 64 - src/Vrml/Vrml_OrthographicCamera.cxx | 5 +- src/Vrml/Vrml_OrthographicCamera.hxx | 92 + src/Vrml/Vrml_PerspectiveCamera.cdl | 60 - src/Vrml/Vrml_PerspectiveCamera.cxx | 5 +- src/Vrml/Vrml_PerspectiveCamera.hxx | 91 + src/Vrml/Vrml_PointLight.cdl | 69 - src/Vrml/Vrml_PointLight.cxx | 5 +- src/Vrml/Vrml_PointLight.hxx | 96 + src/Vrml/Vrml_PointSet.cdl | 52 - src/Vrml/Vrml_PointSet.cxx | 3 +- src/Vrml/Vrml_PointSet.hxx | 73 + src/Vrml/Vrml_Rotation.cdl | 44 - src/Vrml/Vrml_Rotation.cxx | 4 +- src/Vrml/Vrml_Rotation.hxx | 73 + src/Vrml/Vrml_SFImage.cdl | 83 - src/Vrml/Vrml_SFImage.cxx | 4 +- src/Vrml/Vrml_SFImage.hxx | 90 + src/Vrml/Vrml_SFImageNumber.hxx | 30 + src/Vrml/Vrml_SFRotation.cdl | 50 - src/Vrml/Vrml_SFRotation.cxx | 3 +- src/Vrml/Vrml_SFRotation.hxx | 84 + src/Vrml/Vrml_Scale.cdl | 45 - src/Vrml/Vrml_Scale.cxx | 4 +- src/Vrml/Vrml_Scale.hxx | 75 + src/Vrml/Vrml_Separator.cdl | 52 - src/Vrml/Vrml_Separator.cxx | 3 +- src/Vrml/Vrml_Separator.hxx | 81 + src/Vrml/Vrml_SeparatorRenderCulling.hxx | 28 + src/Vrml/Vrml_ShapeHints.cdl | 75 - src/Vrml/Vrml_ShapeHints.cxx | 3 +- src/Vrml/Vrml_ShapeHints.hxx | 105 + src/Vrml/Vrml_ShapeType.hxx | 27 + src/Vrml/Vrml_Sphere.cdl | 38 - src/Vrml/Vrml_Sphere.cxx | 4 +- src/Vrml/Vrml_Sphere.hxx | 70 + src/Vrml/Vrml_SpotLight.cdl | 92 - src/Vrml/Vrml_SpotLight.cxx | 5 +- src/Vrml/Vrml_SpotLight.hxx | 116 + src/Vrml/Vrml_Switch.cdl | 44 - src/Vrml/Vrml_Switch.cxx | 3 +- src/Vrml/Vrml_Switch.hxx | 76 + src/Vrml/Vrml_Texture2.cdl | 70 - src/Vrml/Vrml_Texture2.cxx | 5 +- src/Vrml/Vrml_Texture2.hxx | 99 + src/Vrml/Vrml_Texture2Transform.cdl | 71 - src/Vrml/Vrml_Texture2Transform.cxx | 4 +- src/Vrml/Vrml_Texture2Transform.hxx | 100 + src/Vrml/Vrml_Texture2Wrap.hxx | 27 + src/Vrml/Vrml_TextureCoordinate2.cdl | 51 - src/Vrml/Vrml_TextureCoordinate2.cxx | 4 +- src/Vrml/Vrml_TextureCoordinate2.hxx | 82 + src/Vrml/Vrml_Transform.cdl | 73 - src/Vrml/Vrml_Transform.cxx | 5 +- src/Vrml/Vrml_Transform.hxx | 103 + src/Vrml/Vrml_TransformSeparator.cdl | 37 - src/Vrml/Vrml_TransformSeparator.cxx | 3 +- src/Vrml/Vrml_TransformSeparator.hxx | 68 + src/Vrml/Vrml_Translation.cdl | 47 - src/Vrml/Vrml_Translation.cxx | 4 +- src/Vrml/Vrml_Translation.hxx | 75 + src/Vrml/Vrml_VertexOrdering.hxx | 28 + src/Vrml/Vrml_WWWAnchor.cdl | 59 - src/Vrml/Vrml_WWWAnchor.cxx | 4 +- src/Vrml/Vrml_WWWAnchor.hxx | 87 + src/Vrml/Vrml_WWWAnchorMap.hxx | 27 + src/Vrml/Vrml_WWWInline.cdl | 66 - src/Vrml/Vrml_WWWInline.cxx | 5 +- src/Vrml/Vrml_WWWInline.hxx | 95 + src/VrmlAPI/FILES | 5 + src/VrmlAPI/VrmlAPI.cdl | 48 - src/VrmlAPI/VrmlAPI.cxx | 5 +- src/VrmlAPI/VrmlAPI.hxx | 66 + src/VrmlAPI/VrmlAPI_RepresentationOfShape.hxx | 35 + src/VrmlAPI/VrmlAPI_Writer.cdl | 124 - src/VrmlAPI/VrmlAPI_Writer.cxx | 38 +- src/VrmlAPI/VrmlAPI_Writer.hxx | 162 + src/VrmlConverter/FILES | 30 + src/VrmlConverter/VrmlConverter.cdl | 109 - src/VrmlConverter/VrmlConverter_Curve.cdl | 67 - src/VrmlConverter/VrmlConverter_Curve.cxx | 13 +- src/VrmlConverter/VrmlConverter_Curve.hxx | 86 + .../VrmlConverter_DeflectionCurve.cdl | 103 - .../VrmlConverter_DeflectionCurve.cxx | 20 +- .../VrmlConverter_DeflectionCurve.hxx | 106 + src/VrmlConverter/VrmlConverter_Drawer.cdl | 327 -- src/VrmlConverter/VrmlConverter_Drawer.cxx | 8 +- src/VrmlConverter/VrmlConverter_Drawer.hxx | 259 ++ src/VrmlConverter/VrmlConverter_HLRShape.cdl | 48 - src/VrmlConverter/VrmlConverter_HLRShape.cxx | 15 +- src/VrmlConverter/VrmlConverter_HLRShape.hxx | 76 + src/VrmlConverter/VrmlConverter_IsoAspect.cdl | 55 - src/VrmlConverter/VrmlConverter_IsoAspect.cxx | 5 +- src/VrmlConverter/VrmlConverter_IsoAspect.hxx | 76 + .../VrmlConverter_LineAspect.cdl | 61 - .../VrmlConverter_LineAspect.cxx | 5 +- .../VrmlConverter_LineAspect.hxx | 82 + .../VrmlConverter_PointAspect.cdl | 60 - .../VrmlConverter_PointAspect.cxx | 5 +- .../VrmlConverter_PointAspect.hxx | 82 + src/VrmlConverter/VrmlConverter_Projector.cdl | 86 - src/VrmlConverter/VrmlConverter_Projector.cxx | 21 +- src/VrmlConverter/VrmlConverter_Projector.hxx | 108 + .../VrmlConverter_ShadedShape.cdl | 47 - .../VrmlConverter_ShadedShape.hxx | 73 + .../VrmlConverter_ShadingAspect.cdl | 80 - .../VrmlConverter_ShadingAspect.cxx | 6 +- .../VrmlConverter_ShadingAspect.hxx | 99 + .../VrmlConverter_TypeOfCamera.hxx | 28 + .../VrmlConverter_TypeOfLight.hxx | 29 + ...mlConverter_WFDeflectionRestrictedFace.cdl | 63 - ...mlConverter_WFDeflectionRestrictedFace.cxx | 25 +- ...mlConverter_WFDeflectionRestrictedFace.hxx | 80 + .../VrmlConverter_WFDeflectionShape.cdl | 45 - .../VrmlConverter_WFDeflectionShape.cxx | 31 +- .../VrmlConverter_WFDeflectionShape.hxx | 70 + .../VrmlConverter_WFRestrictedFace.cdl | 58 - .../VrmlConverter_WFRestrictedFace.cxx | 13 +- .../VrmlConverter_WFRestrictedFace.hxx | 78 + src/VrmlConverter/VrmlConverter_WFShape.cdl | 44 - src/VrmlConverter/VrmlConverter_WFShape.cxx | 27 +- src/VrmlConverter/VrmlConverter_WFShape.hxx | 70 + src/VrmlData/FILES | 16 +- src/WNT/FILES | 13 +- src/WNT/WNT.cdl | 87 - src/WNT/WNT.edl | 21 - src/WNT/WNT_CMPLRS.edl | 14 - src/WNT/WNT_ClassDefinitionError.hxx | 37 + src/WNT/WNT_OrientationType.hxx | 27 + src/WNT/WNT_WClass.cdl | 103 - src/WNT/WNT_WClass.cxx | 10 +- src/WNT/WNT_WClass.hxx | 107 + src/WNT/WNT_WOKSteps.edl | 32 - src/WNT/WNT_WOKUMake.edl | 67 - src/WNT/WNT_Window.cdl | 189 - src/WNT/WNT_Window.cxx | 9 +- src/WNT/WNT_Window.hxx | 149 + src/WNT/WNT_WindowPtr.hxx | 23 + src/XBRepMesh/FILES | 2 +- src/XCAFApp/FILES | 2 + src/XCAFApp/XCAFApp.cdl | 32 - src/XCAFApp/XCAFApp_Application.cdl | 54 - src/XCAFApp/XCAFApp_Application.cxx | 10 +- src/XCAFApp/XCAFApp_Application.hxx | 81 + src/XCAFDoc/FILES | 39 +- src/XCAFDoc/XCAFDoc.cdl | 133 - src/XCAFDoc/XCAFDoc.hxx | 134 + src/XCAFDoc/XCAFDoc_Area.cdl | 73 - src/XCAFDoc/XCAFDoc_Area.cxx | 9 +- src/XCAFDoc/XCAFDoc_Area.hxx | 94 + src/XCAFDoc/XCAFDoc_Centroid.cdl | 76 - src/XCAFDoc/XCAFDoc_Centroid.cxx | 10 +- src/XCAFDoc/XCAFDoc_Centroid.hxx | 97 + src/XCAFDoc/XCAFDoc_Color.cdl | 93 - src/XCAFDoc/XCAFDoc_Color.cxx | 9 +- src/XCAFDoc/XCAFDoc_Color.hxx | 100 + src/XCAFDoc/XCAFDoc_ColorTool.cdl | 230 -- src/XCAFDoc/XCAFDoc_ColorTool.cxx | 21 +- src/XCAFDoc/XCAFDoc_ColorTool.hxx | 211 ++ src/XCAFDoc/XCAFDoc_ColorType.hxx | 36 + src/XCAFDoc/XCAFDoc_Datum.cdl | 68 - src/XCAFDoc/XCAFDoc_Datum.cxx | 9 +- src/XCAFDoc/XCAFDoc_Datum.hxx | 88 + src/XCAFDoc/XCAFDoc_DimTol.cdl | 100 - src/XCAFDoc/XCAFDoc_DimTol.cxx | 9 +- src/XCAFDoc/XCAFDoc_DimTol.hxx | 93 + src/XCAFDoc/XCAFDoc_DimTolTool.cdl | 181 - src/XCAFDoc/XCAFDoc_DimTolTool.cxx | 21 +- src/XCAFDoc/XCAFDoc_DimTolTool.hxx | 162 + src/XCAFDoc/XCAFDoc_DocumentTool.cdl | 117 - src/XCAFDoc/XCAFDoc_DocumentTool.cxx | 17 +- src/XCAFDoc/XCAFDoc_DocumentTool.hxx | 138 + src/XCAFDoc/XCAFDoc_GraphNode.cdl | 172 - src/XCAFDoc/XCAFDoc_GraphNode.cxx | 11 +- src/XCAFDoc/XCAFDoc_GraphNode.hxx | 176 + src/XCAFDoc/XCAFDoc_LayerTool.cdl | 231 -- src/XCAFDoc/XCAFDoc_LayerTool.cxx | 18 +- src/XCAFDoc/XCAFDoc_LayerTool.hxx | 218 ++ src/XCAFDoc/XCAFDoc_Location.cdl | 75 - src/XCAFDoc/XCAFDoc_Location.cxx | 10 +- src/XCAFDoc/XCAFDoc_Location.hxx | 90 + src/XCAFDoc/XCAFDoc_Material.cdl | 77 - src/XCAFDoc/XCAFDoc_Material.cxx | 9 +- src/XCAFDoc/XCAFDoc_Material.hxx | 95 + src/XCAFDoc/XCAFDoc_MaterialTool.cdl | 114 - src/XCAFDoc/XCAFDoc_MaterialTool.cxx | 19 +- src/XCAFDoc/XCAFDoc_MaterialTool.hxx | 119 + src/XCAFDoc/XCAFDoc_ShapeMapTool.cdl | 74 - src/XCAFDoc/XCAFDoc_ShapeMapTool.cxx | 9 +- src/XCAFDoc/XCAFDoc_ShapeMapTool.hxx | 91 + src/XCAFDoc/XCAFDoc_ShapeTool.cdl | 513 --- src/XCAFDoc/XCAFDoc_ShapeTool.cxx | 47 +- src/XCAFDoc/XCAFDoc_ShapeTool.hxx | 448 +++ src/XCAFDoc/XCAFDoc_Volume.cdl | 73 - src/XCAFDoc/XCAFDoc_Volume.cxx | 9 +- src/XCAFDoc/XCAFDoc_Volume.hxx | 94 + src/XCAFPrs/FILES | 14 +- src/XCAFPrs/XCAFPrs.cdl | 74 - src/XCAFPrs/XCAFPrs.cxx | 23 +- src/XCAFPrs/XCAFPrs.hxx | 77 + src/XCAFPrs/XCAFPrs_Driver.cdl | 36 - src/XCAFPrs/XCAFPrs_Driver.cxx | 10 +- src/XCAFPrs/XCAFPrs_Driver.hxx | 69 + src/XCAFPrs/XCAFPrs_Style.cdl | 73 - src/XCAFPrs/XCAFPrs_Style.cxx | 5 +- src/XCAFPrs/XCAFPrs_Style.hxx | 110 + src/XDEDRAW/FILES | 12 + src/XDEDRAW/XDEDRAW.cdl | 42 - src/XDEDRAW/XDEDRAW.cxx | 100 +- src/XDEDRAW/XDEDRAW.hxx | 74 + src/XDEDRAW/XDEDRAW_Colors.cdl | 27 - src/XDEDRAW/XDEDRAW_Colors.cxx | 16 +- src/XDEDRAW/XDEDRAW_Colors.hxx | 59 + src/XDEDRAW/XDEDRAW_Common.cdl | 26 - src/XDEDRAW/XDEDRAW_Common.cxx | 49 +- src/XDEDRAW/XDEDRAW_Common.hxx | 59 + src/XDEDRAW/XDEDRAW_Layers.cdl | 27 - src/XDEDRAW/XDEDRAW_Layers.cxx | 14 +- src/XDEDRAW/XDEDRAW_Layers.hxx | 59 + src/XDEDRAW/XDEDRAW_Props.cdl | 28 - src/XDEDRAW/XDEDRAW_Props.cxx | 68 +- src/XDEDRAW/XDEDRAW_Props.hxx | 60 + src/XDEDRAW/XDEDRAW_Shapes.cdl | 27 - src/XDEDRAW/XDEDRAW_Shapes.cxx | 29 +- src/XDEDRAW/XDEDRAW_Shapes.hxx | 59 + src/XSAlgo/FILES | 8 + src/XSAlgo/XSAlgo.cdl | 57 - src/XSAlgo/XSAlgo.cxx | 6 +- src/XSAlgo/XSAlgo.hxx | 72 + src/XSAlgo/XSAlgo_AlgoContainer.cdl | 110 - src/XSAlgo/XSAlgo_AlgoContainer.cxx | 72 +- src/XSAlgo/XSAlgo_AlgoContainer.hxx | 106 + src/XSAlgo/XSAlgo_Caller.hxx | 27 + src/XSAlgo/XSAlgo_ToolContainer.cdl | 24 - src/XSAlgo/XSAlgo_ToolContainer.cxx | 5 +- src/XSAlgo/XSAlgo_ToolContainer.hxx | 61 + src/XSControl/FILES | 28 + src/XSControl/XSControl.cdl | 53 - src/XSControl/XSControl.cxx | 5 +- src/XSControl/XSControl.hxx | 95 + src/XSControl/XSControl_ConnectedShapes.cdl | 66 - src/XSControl/XSControl_ConnectedShapes.cxx | 12 +- src/XSControl/XSControl_ConnectedShapes.hxx | 97 + src/XSControl/XSControl_Controller.cdl | 336 -- src/XSControl/XSControl_Controller.cxx | 86 +- src/XSControl/XSControl_Controller.hxx | 338 ++ src/XSControl/XSControl_FuncShape.cdl | 69 - src/XSControl/XSControl_FuncShape.cxx | 81 +- src/XSControl/XSControl_FuncShape.hxx | 100 + src/XSControl/XSControl_Functions.cdl | 32 - src/XSControl/XSControl_Functions.cxx | 58 +- src/XSControl/XSControl_Functions.hxx | 64 + src/XSControl/XSControl_Reader.cdl | 251 -- src/XSControl/XSControl_Reader.cxx | 30 +- src/XSControl/XSControl_Reader.hxx | 275 ++ src/XSControl/XSControl_SelectForTransfer.cdl | 79 - src/XSControl/XSControl_SelectForTransfer.cxx | 9 +- src/XSControl/XSControl_SelectForTransfer.hxx | 112 + .../XSControl_SignTransferStatus.cdl | 72 - .../XSControl_SignTransferStatus.cxx | 14 +- .../XSControl_SignTransferStatus.hxx | 106 + src/XSControl/XSControl_TransferReader.cdl | 358 -- src/XSControl/XSControl_TransferReader.cxx | 66 +- src/XSControl/XSControl_TransferReader.hxx | 375 ++ src/XSControl/XSControl_TransferWriter.cdl | 117 - src/XSControl/XSControl_TransferWriter.cxx | 18 +- src/XSControl/XSControl_TransferWriter.hxx | 146 + src/XSControl/XSControl_Utils.cdl | 216 -- src/XSControl/XSControl_Utils.cxx | 40 +- src/XSControl/XSControl_Utils.hxx | 215 ++ src/XSControl/XSControl_Vars.cdl | 69 - src/XSControl/XSControl_Vars.cxx | 19 +- src/XSControl/XSControl_Vars.hxx | 106 + src/XSControl/XSControl_WorkSession.cdl | 235 -- src/XSControl/XSControl_WorkSession.cxx | 47 +- src/XSControl/XSControl_WorkSession.hxx | 243 ++ src/XSControl/XSControl_Writer.cdl | 73 - src/XSControl/XSControl_Writer.cxx | 9 +- src/XSControl/XSControl_Writer.hxx | 103 + src/XSDRAW/FILES | 6 + src/XSDRAW/XSDRAW.cdl | 210 -- src/XSDRAW/XSDRAW.cxx | 38 +- src/XSDRAW/XSDRAW.hxx | 242 ++ src/XSDRAW/XSDRAW_Functions.cdl | 37 - src/XSDRAW/XSDRAW_Functions.cxx | 3 +- src/XSDRAW/XSDRAW_Functions.hxx | 69 + src/XSDRAW/XSDRAW_Vars.cdl | 56 - src/XSDRAW/XSDRAW_Vars.cxx | 18 +- src/XSDRAW/XSDRAW_Vars.hxx | 93 + src/XSDRAWIGES/FILES | 2 + src/XSDRAWIGES/XSDRAWIGES.cdl | 36 - src/XSDRAWIGES/XSDRAWIGES.cxx | 96 +- src/XSDRAWIGES/XSDRAWIGES.hxx | 67 + src/XSDRAWSTEP/FILES | 2 + src/XSDRAWSTEP/XSDRAWSTEP.cdl | 30 - src/XSDRAWSTEP/XSDRAWSTEP.cxx | 68 +- src/XSDRAWSTEP/XSDRAWSTEP.hxx | 63 + src/XSDRAWSTLVRML/FILES | 12 +- src/XSDRAWSTLVRML/XSDRAWSTLVRML.cdl | 44 - src/XSDRAWSTLVRML/XSDRAWSTLVRML.cxx | 85 +- src/XSDRAWSTLVRML/XSDRAWSTLVRML.hxx | 69 + .../XSDRAWSTLVRML_DataSource.cdl | 88 - .../XSDRAWSTLVRML_DataSource.cxx | 8 +- .../XSDRAWSTLVRML_DataSource.hxx | 104 + .../XSDRAWSTLVRML_DataSource3D.cdl | 98 - .../XSDRAWSTLVRML_DataSource3D.cxx | 7 +- .../XSDRAWSTLVRML_DataSource3D.hxx | 108 + .../XSDRAWSTLVRML_DrawableMesh.cdl | 32 - .../XSDRAWSTLVRML_DrawableMesh.cxx | 6 +- .../XSDRAWSTLVRML_DrawableMesh.hxx | 67 + src/XmlDrivers/FILES | 6 + src/XmlDrivers/XmlDrivers.cdl | 40 - src/XmlDrivers/XmlDrivers.cxx | 19 +- src/XmlDrivers/XmlDrivers.hxx | 68 + .../XmlDrivers_DocumentRetrievalDriver.cdl | 44 - .../XmlDrivers_DocumentRetrievalDriver.cxx | 13 +- .../XmlDrivers_DocumentRetrievalDriver.hxx | 73 + .../XmlDrivers_DocumentStorageDriver.cdl | 37 - .../XmlDrivers_DocumentStorageDriver.cxx | 10 +- .../XmlDrivers_DocumentStorageDriver.hxx | 69 + src/XmlLDrivers/FILES | 8 + src/XmlLDrivers/XmlLDrivers.cdl | 47 - src/XmlLDrivers/XmlLDrivers.cxx | 16 +- src/XmlLDrivers/XmlLDrivers.hxx | 75 + .../XmlLDrivers_DocumentRetrievalDriver.cdl | 83 - .../XmlLDrivers_DocumentRetrievalDriver.cxx | 34 +- .../XmlLDrivers_DocumentRetrievalDriver.hxx | 95 + .../XmlLDrivers_DocumentStorageDriver.cdl | 71 - .../XmlLDrivers_DocumentStorageDriver.cxx | 45 +- .../XmlLDrivers_DocumentStorageDriver.hxx | 89 + src/XmlLDrivers/XmlLDrivers_NamespaceDef.cdl | 38 - src/XmlLDrivers/XmlLDrivers_NamespaceDef.cxx | 5 +- src/XmlLDrivers/XmlLDrivers_NamespaceDef.hxx | 68 + src/XmlMDF/FILES | 14 +- src/XmlMDF/XmlMDF.cdl | 112 - src/XmlMDF/XmlMDF.cxx | 32 +- src/XmlMDF/XmlMDF.hxx | 107 + src/XmlMDF/XmlMDF_ADriver.cdl | 80 - src/XmlMDF/XmlMDF_ADriver.cxx | 10 +- src/XmlMDF/XmlMDF_ADriver.hxx | 101 + src/XmlMDF/XmlMDF_ADriverTable.cdl | 52 - src/XmlMDF/XmlMDF_ADriverTable.cxx | 5 +- src/XmlMDF/XmlMDF_ADriverTable.hxx | 81 + src/XmlMDF/XmlMDF_ReferenceDriver.cdl | 42 - src/XmlMDF/XmlMDF_ReferenceDriver.cxx | 9 +- src/XmlMDF/XmlMDF_ReferenceDriver.hxx | 72 + src/XmlMDF/XmlMDF_TagSourceDriver.cdl | 43 - src/XmlMDF/XmlMDF_TagSourceDriver.cxx | 9 +- src/XmlMDF/XmlMDF_TagSourceDriver.hxx | 72 + src/XmlMDataStd/FILES | 54 + src/XmlMDataStd/XmlMDataStd.cdl | 84 - src/XmlMDataStd/XmlMDataStd.cxx | 45 +- src/XmlMDataStd/XmlMDataStd.hxx | 117 + .../XmlMDataStd_AsciiStringDriver.cdl | 45 - .../XmlMDataStd_AsciiStringDriver.cxx | 10 +- .../XmlMDataStd_AsciiStringDriver.hxx | 74 + .../XmlMDataStd_BooleanArrayDriver.cdl | 43 - .../XmlMDataStd_BooleanArrayDriver.cxx | 11 +- .../XmlMDataStd_BooleanArrayDriver.hxx | 72 + .../XmlMDataStd_BooleanListDriver.cdl | 43 - .../XmlMDataStd_BooleanListDriver.cxx | 9 +- .../XmlMDataStd_BooleanListDriver.hxx | 72 + .../XmlMDataStd_ByteArrayDriver.cdl | 43 - .../XmlMDataStd_ByteArrayDriver.cxx | 13 +- .../XmlMDataStd_ByteArrayDriver.hxx | 72 + src/XmlMDataStd/XmlMDataStd_CommentDriver.cdl | 42 - src/XmlMDataStd/XmlMDataStd_CommentDriver.cxx | 8 +- src/XmlMDataStd/XmlMDataStd_CommentDriver.hxx | 72 + .../XmlMDataStd_DirectoryDriver.cdl | 42 - .../XmlMDataStd_DirectoryDriver.cxx | 8 +- .../XmlMDataStd_DirectoryDriver.hxx | 72 + .../XmlMDataStd_ExpressionDriver.cdl | 42 - .../XmlMDataStd_ExpressionDriver.cxx | 9 +- .../XmlMDataStd_ExpressionDriver.hxx | 72 + .../XmlMDataStd_ExtStringArrayDriver.cdl | 42 - .../XmlMDataStd_ExtStringArrayDriver.cxx | 11 +- .../XmlMDataStd_ExtStringArrayDriver.hxx | 72 + .../XmlMDataStd_ExtStringListDriver.cdl | 43 - .../XmlMDataStd_ExtStringListDriver.cxx | 9 +- .../XmlMDataStd_ExtStringListDriver.hxx | 72 + .../XmlMDataStd_IntPackedMapDriver.cdl | 46 - .../XmlMDataStd_IntPackedMapDriver.cxx | 19 +- .../XmlMDataStd_IntPackedMapDriver.hxx | 74 + .../XmlMDataStd_IntegerArrayDriver.cdl | 42 - .../XmlMDataStd_IntegerArrayDriver.cxx | 10 +- .../XmlMDataStd_IntegerArrayDriver.hxx | 72 + src/XmlMDataStd/XmlMDataStd_IntegerDriver.cdl | 42 - src/XmlMDataStd/XmlMDataStd_IntegerDriver.cxx | 10 +- src/XmlMDataStd/XmlMDataStd_IntegerDriver.hxx | 72 + .../XmlMDataStd_IntegerListDriver.cdl | 43 - .../XmlMDataStd_IntegerListDriver.cxx | 11 +- .../XmlMDataStd_IntegerListDriver.hxx | 72 + src/XmlMDataStd/XmlMDataStd_NameDriver.cdl | 42 - src/XmlMDataStd/XmlMDataStd_NameDriver.cxx | 10 +- src/XmlMDataStd/XmlMDataStd_NameDriver.hxx | 72 + .../XmlMDataStd_NamedDataDriver.cdl | 44 - .../XmlMDataStd_NamedDataDriver.cxx | 34 +- .../XmlMDataStd_NamedDataDriver.hxx | 72 + .../XmlMDataStd_NoteBookDriver.cdl | 42 - .../XmlMDataStd_NoteBookDriver.cxx | 8 +- .../XmlMDataStd_NoteBookDriver.hxx | 72 + .../XmlMDataStd_RealArrayDriver.cdl | 42 - .../XmlMDataStd_RealArrayDriver.cxx | 16 +- .../XmlMDataStd_RealArrayDriver.hxx | 72 + src/XmlMDataStd/XmlMDataStd_RealDriver.cdl | 42 - src/XmlMDataStd/XmlMDataStd_RealDriver.cxx | 9 +- src/XmlMDataStd/XmlMDataStd_RealDriver.hxx | 72 + .../XmlMDataStd_RealListDriver.cdl | 43 - .../XmlMDataStd_RealListDriver.cxx | 11 +- .../XmlMDataStd_RealListDriver.hxx | 72 + .../XmlMDataStd_ReferenceArrayDriver.cdl | 43 - .../XmlMDataStd_ReferenceArrayDriver.cxx | 16 +- .../XmlMDataStd_ReferenceArrayDriver.hxx | 72 + .../XmlMDataStd_ReferenceListDriver.cdl | 43 - .../XmlMDataStd_ReferenceListDriver.cxx | 16 +- .../XmlMDataStd_ReferenceListDriver.hxx | 72 + .../XmlMDataStd_RelationDriver.cdl | 42 - .../XmlMDataStd_RelationDriver.cxx | 9 +- .../XmlMDataStd_RelationDriver.hxx | 72 + src/XmlMDataStd/XmlMDataStd_TickDriver.cdl | 43 - src/XmlMDataStd/XmlMDataStd_TickDriver.cxx | 7 +- src/XmlMDataStd/XmlMDataStd_TickDriver.hxx | 72 + .../XmlMDataStd_TreeNodeDriver.cdl | 42 - .../XmlMDataStd_TreeNodeDriver.cxx | 7 +- .../XmlMDataStd_TreeNodeDriver.hxx | 72 + .../XmlMDataStd_UAttributeDriver.cdl | 42 - .../XmlMDataStd_UAttributeDriver.cxx | 7 +- .../XmlMDataStd_UAttributeDriver.hxx | 72 + .../XmlMDataStd_VariableDriver.cdl | 42 - .../XmlMDataStd_VariableDriver.cxx | 7 +- .../XmlMDataStd_VariableDriver.hxx | 72 + src/XmlMDataXtd/FILES | 18 + src/XmlMDataXtd/XmlMDataXtd.cdl | 53 - src/XmlMDataXtd/XmlMDataXtd.cxx | 15 +- src/XmlMDataXtd/XmlMDataXtd.hxx | 81 + src/XmlMDataXtd/XmlMDataXtd_AxisDriver.cdl | 42 - src/XmlMDataXtd/XmlMDataXtd_AxisDriver.cxx | 8 +- src/XmlMDataXtd/XmlMDataXtd_AxisDriver.hxx | 72 + .../XmlMDataXtd_ConstraintDriver.cdl | 42 - .../XmlMDataXtd_ConstraintDriver.cxx | 9 +- .../XmlMDataXtd_ConstraintDriver.hxx | 72 + .../XmlMDataXtd_GeometryDriver.cdl | 42 - .../XmlMDataXtd_GeometryDriver.cxx | 7 +- .../XmlMDataXtd_GeometryDriver.hxx | 72 + .../XmlMDataXtd_PatternStdDriver.cdl | 42 - .../XmlMDataXtd_PatternStdDriver.cxx | 8 +- .../XmlMDataXtd_PatternStdDriver.hxx | 72 + .../XmlMDataXtd_PlacementDriver.cdl | 42 - .../XmlMDataXtd_PlacementDriver.cxx | 8 +- .../XmlMDataXtd_PlacementDriver.hxx | 72 + src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.cdl | 42 - src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.cxx | 8 +- src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.hxx | 72 + src/XmlMDataXtd/XmlMDataXtd_PointDriver.cdl | 42 - src/XmlMDataXtd/XmlMDataXtd_PointDriver.cxx | 8 +- src/XmlMDataXtd/XmlMDataXtd_PointDriver.hxx | 72 + src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.cdl | 42 - src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.cxx | 8 +- src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.hxx | 72 + src/XmlMDocStd/FILES | 4 + src/XmlMDocStd/XmlMDocStd.cdl | 36 - src/XmlMDocStd/XmlMDocStd.cxx | 4 +- src/XmlMDocStd/XmlMDocStd.hxx | 63 + src/XmlMDocStd/XmlMDocStd_XLinkDriver.cdl | 42 - src/XmlMDocStd/XmlMDocStd_XLinkDriver.cxx | 13 +- src/XmlMDocStd/XmlMDocStd_XLinkDriver.hxx | 72 + src/XmlMFunction/FILES | 8 + src/XmlMFunction/XmlMFunction.cdl | 37 - src/XmlMFunction/XmlMFunction.cxx | 6 +- src/XmlMFunction/XmlMFunction.hxx | 67 + .../XmlMFunction_FunctionDriver.cdl | 42 - .../XmlMFunction_FunctionDriver.cxx | 11 +- .../XmlMFunction_FunctionDriver.hxx | 72 + .../XmlMFunction_GraphNodeDriver.cdl | 45 - .../XmlMFunction_GraphNodeDriver.cxx | 10 +- .../XmlMFunction_GraphNodeDriver.hxx | 72 + src/XmlMFunction/XmlMFunction_ScopeDriver.cdl | 45 - src/XmlMFunction/XmlMFunction_ScopeDriver.cxx | 20 +- src/XmlMFunction/XmlMFunction_ScopeDriver.hxx | 72 + src/XmlMNaming/FILES | 9 + src/XmlMNaming/XmlMNaming.cdl | 45 - src/XmlMNaming/XmlMNaming.cxx | 4 +- src/XmlMNaming/XmlMNaming.hxx | 72 + .../XmlMNaming_NamedShapeDriver.cdl | 67 - .../XmlMNaming_NamedShapeDriver.cxx | 27 +- .../XmlMNaming_NamedShapeDriver.hxx | 89 + src/XmlMNaming/XmlMNaming_NamingDriver.cdl | 43 - src/XmlMNaming/XmlMNaming_NamingDriver.cxx | 18 +- src/XmlMNaming/XmlMNaming_NamingDriver.hxx | 70 + src/XmlMNaming/XmlMNaming_Shape1.cdl | 75 - src/XmlMNaming/XmlMNaming_Shape1.cxx | 12 +- src/XmlMNaming/XmlMNaming_Shape1.hxx | 90 + src/XmlMPrsStd/FILES | 6 + src/XmlMPrsStd/XmlMPrsStd.cdl | 37 - src/XmlMPrsStd/XmlMPrsStd.cxx | 6 +- src/XmlMPrsStd/XmlMPrsStd.hxx | 65 + .../XmlMPrsStd_AISPresentationDriver.cdl | 42 - .../XmlMPrsStd_AISPresentationDriver.cxx | 9 +- .../XmlMPrsStd_AISPresentationDriver.hxx | 72 + src/XmlMPrsStd/XmlMPrsStd_PositionDriver.cdl | 42 - src/XmlMPrsStd/XmlMPrsStd_PositionDriver.cxx | 11 +- src/XmlMPrsStd/XmlMPrsStd_PositionDriver.hxx | 72 + src/XmlMXCAFDoc/FILES | 33 + src/XmlMXCAFDoc/XmlMXCAFDoc.cdl | 56 - src/XmlMXCAFDoc/XmlMXCAFDoc.cxx | 24 +- src/XmlMXCAFDoc/XmlMXCAFDoc.hxx | 92 + src/XmlMXCAFDoc/XmlMXCAFDoc_AreaDriver.cdl | 42 - src/XmlMXCAFDoc/XmlMXCAFDoc_AreaDriver.cxx | 7 +- src/XmlMXCAFDoc/XmlMXCAFDoc_AreaDriver.hxx | 72 + .../XmlMXCAFDoc_CentroidDriver.cdl | 42 - .../XmlMXCAFDoc_CentroidDriver.cxx | 11 +- .../XmlMXCAFDoc_CentroidDriver.hxx | 72 + src/XmlMXCAFDoc/XmlMXCAFDoc_ColorDriver.cdl | 42 - src/XmlMXCAFDoc/XmlMXCAFDoc_ColorDriver.cxx | 9 +- src/XmlMXCAFDoc/XmlMXCAFDoc_ColorDriver.hxx | 72 + .../XmlMXCAFDoc_ColorToolDriver.cdl | 46 - .../XmlMXCAFDoc_ColorToolDriver.cxx | 7 +- .../XmlMXCAFDoc_ColorToolDriver.hxx | 72 + src/XmlMXCAFDoc/XmlMXCAFDoc_DatumDriver.cdl | 42 - src/XmlMXCAFDoc/XmlMXCAFDoc_DatumDriver.cxx | 11 +- src/XmlMXCAFDoc/XmlMXCAFDoc_DatumDriver.hxx | 72 + src/XmlMXCAFDoc/XmlMXCAFDoc_DimTolDriver.cdl | 42 - src/XmlMXCAFDoc/XmlMXCAFDoc_DimTolDriver.cxx | 11 +- src/XmlMXCAFDoc/XmlMXCAFDoc_DimTolDriver.hxx | 72 + .../XmlMXCAFDoc_DimTolToolDriver.cdl | 46 - .../XmlMXCAFDoc_DimTolToolDriver.cxx | 7 +- .../XmlMXCAFDoc_DimTolToolDriver.hxx | 72 + .../XmlMXCAFDoc_DocumentToolDriver.cdl | 46 - .../XmlMXCAFDoc_DocumentToolDriver.cxx | 7 +- .../XmlMXCAFDoc_DocumentToolDriver.hxx | 72 + .../XmlMXCAFDoc_GraphNodeDriver.cdl | 42 - .../XmlMXCAFDoc_GraphNodeDriver.cxx | 15 +- .../XmlMXCAFDoc_GraphNodeDriver.hxx | 72 + .../XmlMXCAFDoc_LayerToolDriver.cdl | 46 - .../XmlMXCAFDoc_LayerToolDriver.cxx | 7 +- .../XmlMXCAFDoc_LayerToolDriver.hxx | 72 + .../XmlMXCAFDoc_LocationDriver.cdl | 70 - .../XmlMXCAFDoc_LocationDriver.cxx | 17 +- .../XmlMXCAFDoc_LocationDriver.hxx | 85 + .../XmlMXCAFDoc_MaterialDriver.cdl | 42 - .../XmlMXCAFDoc_MaterialDriver.cxx | 11 +- .../XmlMXCAFDoc_MaterialDriver.hxx | 72 + .../XmlMXCAFDoc_MaterialToolDriver.cdl | 46 - .../XmlMXCAFDoc_MaterialToolDriver.cxx | 7 +- .../XmlMXCAFDoc_MaterialToolDriver.hxx | 72 + .../XmlMXCAFDoc_ShapeToolDriver.cdl | 47 - .../XmlMXCAFDoc_ShapeToolDriver.cxx | 7 +- .../XmlMXCAFDoc_ShapeToolDriver.hxx | 72 + src/XmlMXCAFDoc/XmlMXCAFDoc_VolumeDriver.cdl | 42 - src/XmlMXCAFDoc/XmlMXCAFDoc_VolumeDriver.cxx | 7 +- src/XmlMXCAFDoc/XmlMXCAFDoc_VolumeDriver.hxx | 72 + src/XmlObjMgt/FILES | 14 +- src/XmlObjMgt/XmlObjMgt.cdl | 106 - src/XmlObjMgt/XmlObjMgt.cxx | 7 +- src/XmlObjMgt/XmlObjMgt.hxx | 110 + src/XmlObjMgt/XmlObjMgt_Array1.cdl | 88 - src/XmlObjMgt/XmlObjMgt_Array1.cxx | 6 +- src/XmlObjMgt/XmlObjMgt_Array1.hxx | 102 + src/XmlObjMgt/XmlObjMgt_GP.cdl | 56 - src/XmlObjMgt/XmlObjMgt_GP.cxx | 10 +- src/XmlObjMgt/XmlObjMgt_GP.hxx | 71 + src/XmlObjMgt/XmlObjMgt_Persistent.cdl | 66 - src/XmlObjMgt/XmlObjMgt_Persistent.cxx | 7 +- src/XmlObjMgt/XmlObjMgt_Persistent.hxx | 86 + src/XmlObjMgt/XmlObjMgt_RRelocationTable.hxx | 24 + src/XmlObjMgt/XmlObjMgt_SRelocationTable.hxx | 24 + src/XmlXCAFDrivers/FILES | 6 + src/XmlXCAFDrivers/XmlXCAFDrivers.cdl | 52 - src/XmlXCAFDrivers/XmlXCAFDrivers.cxx | 9 +- src/XmlXCAFDrivers/XmlXCAFDrivers.hxx | 77 + ...XmlXCAFDrivers_DocumentRetrievalDriver.cdl | 31 - ...XmlXCAFDrivers_DocumentRetrievalDriver.cxx | 5 +- ...XmlXCAFDrivers_DocumentRetrievalDriver.hxx | 64 + .../XmlXCAFDrivers_DocumentStorageDriver.cdl | 33 - .../XmlXCAFDrivers_DocumentStorageDriver.cxx | 6 +- .../XmlXCAFDrivers_DocumentStorageDriver.hxx | 65 + src/gce/FILES | 50 + src/gce/gce.cdl | 124 - src/gce/gce_ErrorType.hxx | 56 + src/gce/gce_MakeCirc.cdl | 130 - src/gce/gce_MakeCirc.cxx | 17 +- src/gce/gce_MakeCirc.hxx | 145 + src/gce/gce_MakeCirc2d.cdl | 125 - src/gce/gce_MakeCirc2d.cxx | 12 +- src/gce/gce_MakeCirc2d.hxx | 133 + src/gce/gce_MakeCone.cdl | 157 - src/gce/gce_MakeCone.cxx | 11 +- src/gce/gce_MakeCone.hxx | 170 + src/gce/gce_MakeCylinder.cdl | 98 - src/gce/gce_MakeCylinder.cxx | 11 +- src/gce/gce_MakeCylinder.hxx | 117 + src/gce/gce_MakeDir.cdl | 83 - src/gce/gce_MakeDir.cxx | 10 +- src/gce/gce_MakeDir.hxx | 107 + src/gce/gce_MakeDir2d.cdl | 82 - src/gce/gce_MakeDir2d.cxx | 10 +- src/gce/gce_MakeDir2d.hxx | 106 + src/gce/gce_MakeElips.cdl | 83 - src/gce/gce_MakeElips.cxx | 7 +- src/gce/gce_MakeElips.hxx | 102 + src/gce/gce_MakeElips2d.cdl | 107 - src/gce/gce_MakeElips2d.cxx | 8 +- src/gce/gce_MakeElips2d.hxx | 124 + src/gce/gce_MakeHypr.cdl | 120 - src/gce/gce_MakeHypr.cxx | 9 +- src/gce/gce_MakeHypr.hxx | 138 + src/gce/gce_MakeHypr2d.cdl | 115 - src/gce/gce_MakeHypr2d.cxx | 8 +- src/gce/gce_MakeHypr2d.hxx | 129 + src/gce/gce_MakeLin.cdl | 75 - src/gce/gce_MakeLin.cxx | 10 +- src/gce/gce_MakeLin.hxx | 95 + src/gce/gce_MakeLin2d.cdl | 95 - src/gce/gce_MakeLin2d.cxx | 8 +- src/gce/gce_MakeLin2d.hxx | 118 + src/gce/gce_MakeMirror.cdl | 76 - src/gce/gce_MakeMirror.cxx | 11 +- src/gce/gce_MakeMirror.hxx | 94 + src/gce/gce_MakeMirror2d.cdl | 66 - src/gce/gce_MakeMirror2d.cxx | 9 +- src/gce/gce_MakeMirror2d.hxx | 85 + src/gce/gce_MakeParab.cdl | 101 - src/gce/gce_MakeParab.cxx | 7 +- src/gce/gce_MakeParab.hxx | 120 + src/gce/gce_MakeParab2d.cdl | 121 - src/gce/gce_MakeParab2d.cxx | 7 +- src/gce/gce_MakeParab2d.hxx | 132 + src/gce/gce_MakePln.cdl | 128 - src/gce/gce_MakePln.cxx | 10 +- src/gce/gce_MakePln.hxx | 145 + src/gce/gce_MakeRotation.cdl | 66 - src/gce/gce_MakeRotation.cxx | 9 +- src/gce/gce_MakeRotation.hxx | 87 + src/gce/gce_MakeRotation2d.cdl | 52 - src/gce/gce_MakeRotation2d.cxx | 6 +- src/gce/gce_MakeRotation2d.hxx | 76 + src/gce/gce_MakeScale.cdl | 55 - src/gce/gce_MakeScale.cxx | 6 +- src/gce/gce_MakeScale.hxx | 78 + src/gce/gce_MakeScale2d.cdl | 56 - src/gce/gce_MakeScale2d.cxx | 6 +- src/gce/gce_MakeScale2d.hxx | 79 + src/gce/gce_MakeTranslation.cdl | 59 - src/gce/gce_MakeTranslation.cxx | 7 +- src/gce/gce_MakeTranslation.hxx | 81 + src/gce/gce_MakeTranslation2d.cdl | 58 - src/gce/gce_MakeTranslation2d.cxx | 7 +- src/gce/gce_MakeTranslation2d.hxx | 80 + src/gce/gce_Root.cdl | 48 - src/gce/gce_Root.cxx | 2 +- src/gce/gce_Root.hxx | 72 + src/gp/FILES | 111 + src/gp/gp.cdl | 270 -- src/gp/gp.cxx | 11 +- src/gp/gp.hxx | 212 ++ src/gp/gp_Ax1.cdl | 240 -- src/gp/gp_Ax1.cxx | 8 +- src/gp/gp_Ax1.hxx | 233 ++ src/gp/gp_Ax2.cdl | 394 -- src/gp/gp_Ax2.cxx | 9 +- src/gp/gp_Ax2.hxx | 352 ++ src/gp/gp_Ax22d.cdl | 270 -- src/gp/gp_Ax22d.cxx | 8 +- src/gp/gp_Ax22d.hxx | 240 ++ src/gp/gp_Ax2d.cdl | 212 -- src/gp/gp_Ax2d.cxx | 7 +- src/gp/gp_Ax2d.hxx | 197 + src/gp/gp_Ax3.cdl | 349 -- src/gp/gp_Ax3.cxx | 11 +- src/gp/gp_Ax3.hxx | 319 ++ src/gp/gp_Circ.cdl | 262 -- src/gp/gp_Circ.cxx | 9 +- src/gp/gp_Circ.hxx | 236 ++ src/gp/gp_Circ2d.cdl | 264 -- src/gp/gp_Circ2d.cxx | 8 +- src/gp/gp_Circ2d.hxx | 241 ++ src/gp/gp_Cone.cdl | 268 -- src/gp/gp_Cone.cxx | 9 +- src/gp/gp_Cone.hxx | 241 ++ src/gp/gp_Cylinder.cdl | 229 -- src/gp/gp_Cylinder.cxx | 8 +- src/gp/gp_Cylinder.hxx | 205 + src/gp/gp_Dir.cdl | 319 -- src/gp/gp_Dir.cxx | 11 +- src/gp/gp_Dir.hxx | 290 ++ src/gp/gp_Dir2d.cdl | 293 -- src/gp/gp_Dir2d.cxx | 9 +- src/gp/gp_Dir2d.hxx | 277 ++ src/gp/gp_Elips.cdl | 341 -- src/gp/gp_Elips.cxx | 8 +- src/gp/gp_Elips.hxx | 277 ++ src/gp/gp_Elips2d.cdl | 325 -- src/gp/gp_Elips2d.cxx | 8 +- src/gp/gp_Elips2d.hxx | 276 ++ src/gp/gp_EulerSequence.hxx | 51 + src/gp/gp_GTrsf.cdl | 289 -- src/gp/gp_GTrsf.cxx | 9 +- src/gp/gp_GTrsf.hxx | 265 ++ src/gp/gp_GTrsf2d.cdl | 271 -- src/gp/gp_GTrsf2d.cxx | 10 +- src/gp/gp_GTrsf2d.hxx | 254 ++ src/gp/gp_Hypr.cdl | 396 -- src/gp/gp_Hypr.cxx | 9 +- src/gp/gp_Hypr.hxx | 331 ++ src/gp/gp_Hypr2d.cdl | 425 --- src/gp/gp_Hypr2d.cxx | 10 +- src/gp/gp_Hypr2d.hxx | 354 ++ src/gp/gp_Lin.cdl | 251 -- src/gp/gp_Lin.cxx | 9 +- src/gp/gp_Lin.hxx | 213 ++ src/gp/gp_Lin2d.cdl | 253 -- src/gp/gp_Lin2d.cxx | 10 +- src/gp/gp_Lin2d.hxx | 214 ++ src/gp/gp_Mat.cdl | 300 -- src/gp/gp_Mat.cxx | 8 +- src/gp/gp_Mat.hxx | 286 ++ src/gp/gp_Mat2d.cdl | 270 -- src/gp/gp_Mat2d.cxx | 7 +- src/gp/gp_Mat2d.hxx | 256 ++ src/gp/gp_Parab.cdl | 279 -- src/gp/gp_Parab.cxx | 8 +- src/gp/gp_Parab.hxx | 246 ++ src/gp/gp_Parab2d.cdl | 289 -- src/gp/gp_Parab2d.cxx | 9 +- src/gp/gp_Parab2d.hxx | 247 ++ src/gp/gp_Pln.cdl | 313 -- src/gp/gp_Pln.cxx | 11 +- src/gp/gp_Pln.hxx | 268 ++ src/gp/gp_Pnt.cdl | 215 -- src/gp/gp_Pnt.cxx | 9 +- src/gp/gp_Pnt.hxx | 201 + src/gp/gp_Pnt2d.cdl | 189 - src/gp/gp_Pnt2d.cxx | 8 +- src/gp/gp_Pnt2d.hxx | 178 + src/gp/gp_Quaternion.cdl | 216 -- src/gp/gp_Quaternion.hxx | 270 ++ src/gp/gp_Sphere.cdl | 238 -- src/gp/gp_Sphere.cxx | 9 +- src/gp/gp_Sphere.hxx | 212 ++ src/gp/gp_Torus.cdl | 300 -- src/gp/gp_Torus.cxx | 9 +- src/gp/gp_Torus.hxx | 253 ++ src/gp/gp_Trsf.cdl | 386 -- src/gp/gp_Trsf.cxx | 16 +- src/gp/gp_Trsf.hxx | 355 ++ src/gp/gp_Trsf2d.cdl | 283 -- src/gp/gp_Trsf2d.cxx | 11 +- src/gp/gp_Trsf2d.hxx | 250 ++ src/gp/gp_TrsfForm.hxx | 48 + src/gp/gp_Vec.cdl | 406 -- src/gp/gp_Vec.cxx | 13 +- src/gp/gp_Vec.hxx | 383 ++ src/gp/gp_Vec2d.cdl | 332 -- src/gp/gp_Vec2d.cxx | 10 +- src/gp/gp_Vec2d.hxx | 324 ++ src/gp/gp_VectorWithNullMagnitude.hxx | 37 + src/gp/gp_XY.cdl | 280 -- src/gp/gp_XY.cxx | 6 +- src/gp/gp_XY.hxx | 297 ++ src/gp/gp_XYZ.cdl | 339 -- src/gp/gp_XYZ.cxx | 6 +- src/gp/gp_XYZ.hxx | 343 ++ src/math/FILES | 140 +- src/math/math.cdl | 143 - src/math/math.cxx | 4 +- src/math/math.hxx | 176 + src/math/math_BFGS.cdl | 163 - src/math/math_BFGS.cxx | 8 +- src/math/math_BFGS.hxx | 142 + src/math/math_BissecNewton.cdl | 120 - src/math/math_BissecNewton.cxx | 4 +- src/math/math_BissecNewton.hxx | 120 + src/math/math_BracketMinimum.cdl | 118 - src/math/math_BracketMinimum.cxx | 5 +- src/math/math_BracketMinimum.hxx | 122 + src/math/math_BracketedRoot.cdl | 94 - src/math/math_BracketedRoot.cxx | 5 +- src/math/math_BracketedRoot.hxx | 99 + src/math/math_BrentMinimum.cdl | 138 - src/math/math_BrentMinimum.cxx | 4 +- src/math/math_BrentMinimum.hxx | 129 + .../math_ComputeGaussPointsAndWeights.cdl | 42 - .../math_ComputeGaussPointsAndWeights.cxx | 5 +- .../math_ComputeGaussPointsAndWeights.hxx | 71 + .../math_ComputeKronrodPointsAndWeights.cdl | 42 - .../math_ComputeKronrodPointsAndWeights.cxx | 6 +- .../math_ComputeKronrodPointsAndWeights.hxx | 71 + src/math/math_Crout.cdl | 117 - src/math/math_Crout.cxx | 7 +- src/math/math_Crout.hxx | 116 + src/math/math_DirectPolynomialRoots.cdl | 122 - src/math/math_DirectPolynomialRoots.cxx | 9 +- src/math/math_DirectPolynomialRoots.hxx | 119 + src/math/math_DoubleTab.cdl | 71 - src/math/math_DoubleTab.cxx | 4 +- src/math/math_DoubleTab.hxx | 97 + src/math/math_EigenValuesSearcher.cdl | 66 - src/math/math_EigenValuesSearcher.cxx | 5 +- src/math/math_EigenValuesSearcher.hxx | 88 + src/math/math_FRPR.cdl | 161 - src/math/math_FRPR.cxx | 7 +- src/math/math_FRPR.hxx | 138 + src/math/math_Function.cdl | 57 - src/math/math_Function.cxx | 3 +- src/math/math_Function.hxx | 83 + src/math/math_FunctionAllRoots.cdl | 145 - src/math/math_FunctionAllRoots.cxx | 11 +- src/math/math_FunctionAllRoots.hxx | 126 + src/math/math_FunctionRoot.cdl | 125 - src/math/math_FunctionRoot.cxx | 8 +- src/math/math_FunctionRoot.hxx | 117 + src/math/math_FunctionRoots.cdl | 110 - src/math/math_FunctionRoots.cxx | 11 +- src/math/math_FunctionRoots.hxx | 111 + src/math/math_FunctionSample.cdl | 64 - src/math/math_FunctionSample.cxx | 6 +- src/math/math_FunctionSample.hxx | 78 + src/math/math_FunctionSet.cdl | 70 - src/math/math_FunctionSet.cxx | 5 +- src/math/math_FunctionSet.hxx | 91 + src/math/math_FunctionSetRoot.cdl | 245 -- src/math/math_FunctionSetRoot.cxx | 19 +- src/math/math_FunctionSetRoot.hxx | 192 + src/math/math_FunctionSetWithDerivatives.cdl | 72 - src/math/math_FunctionSetWithDerivatives.cxx | 4 +- src/math/math_FunctionSetWithDerivatives.hxx | 87 + src/math/math_FunctionWithDerivative.cdl | 51 - src/math/math_FunctionWithDerivative.cxx | 3 +- src/math/math_FunctionWithDerivative.hxx | 81 + src/math/math_Gauss.cdl | 128 - src/math/math_Gauss.cxx | 9 +- src/math/math_Gauss.hxx | 129 + src/math/math_GaussLeastSquare.cdl | 88 - src/math/math_GaussLeastSquare.cxx | 8 +- src/math/math_GaussLeastSquare.hxx | 105 + src/math/math_GaussMultipleIntegration.cdl | 70 - src/math/math_GaussMultipleIntegration.cxx | 8 +- src/math/math_GaussMultipleIntegration.hxx | 85 + src/math/math_GaussSetIntegration.cdl | 72 - src/math/math_GaussSetIntegration.cxx | 8 +- src/math/math_GaussSetIntegration.hxx | 85 + src/math/math_GaussSingleIntegration.cdl | 80 - src/math/math_GaussSingleIntegration.cxx | 7 +- src/math/math_GaussSingleIntegration.hxx | 94 + src/math/math_Householder.cdl | 136 - src/math/math_Householder.cxx | 8 +- src/math/math_Householder.hxx | 135 + src/math/math_Jacobi.cdl | 103 - src/math/math_Jacobi.cxx | 8 +- src/math/math_Jacobi.hxx | 106 + src/math/math_Kronrod.cxx | 2 +- src/math/math_KronrodSingleIntegration.cdl | 144 - src/math/math_KronrodSingleIntegration.cxx | 9 +- src/math/math_KronrodSingleIntegration.hxx | 124 + src/math/math_Matrix.cdl | 571 --- src/math/math_Matrix.cxx | 11 +- src/math/math_Matrix.hxx | 436 +++ src/math/math_MultipleVarFunction.cdl | 62 - src/math/math_MultipleVarFunction.cxx | 3 +- src/math/math_MultipleVarFunction.hxx | 89 + .../math_MultipleVarFunctionWithGradient.cdl | 56 - .../math_MultipleVarFunctionWithGradient.cxx | 3 +- .../math_MultipleVarFunctionWithGradient.hxx | 83 + .../math_MultipleVarFunctionWithHessian.cdl | 66 - .../math_MultipleVarFunctionWithHessian.cxx | 4 +- .../math_MultipleVarFunctionWithHessian.hxx | 90 + src/math/math_NewtonFunctionRoot.cdl | 139 - src/math/math_NewtonFunctionRoot.cxx | 5 +- src/math/math_NewtonFunctionRoot.hxx | 126 + src/math/math_NewtonFunctionSetRoot.cdl | 209 -- src/math/math_NewtonFunctionSetRoot.cxx | 9 +- src/math/math_NewtonFunctionSetRoot.hxx | 177 + src/math/math_NewtonMinimum.cdl | 180 - src/math/math_NewtonMinimum.cxx | 9 +- src/math/math_NewtonMinimum.hxx | 150 + src/math/math_NotSquare.hxx | 37 + src/math/math_Powell.cdl | 137 - src/math/math_Powell.cxx | 7 +- src/math/math_Powell.hxx | 130 + src/math/math_SVD.cdl | 90 - src/math/math_SVD.cxx | 9 +- src/math/math_SVD.hxx | 106 + src/math/math_SingularMatrix.hxx | 37 + src/math/math_Status.hxx | 30 + src/math/math_TrigonometricFunctionRoots.cdl | 113 - src/math/math_TrigonometricFunctionRoots.hxx | 113 + src/math/math_Uzawa.cdl | 171 - src/math/math_Uzawa.cxx | 7 +- src/math/math_Uzawa.hxx | 145 + 15354 files changed, 621985 insertions(+), 507872 deletions(-) delete mode 100644 src/AIS/AIS.cdl create mode 100644 src/AIS/AIS.hxx delete mode 100644 src/AIS/AIS_AttributeFilter.cdl create mode 100644 src/AIS/AIS_AttributeFilter.hxx delete mode 100644 src/AIS/AIS_Axis.cdl create mode 100644 src/AIS/AIS_Axis.hxx delete mode 100644 src/AIS/AIS_BadEdgeFilter.cdl create mode 100644 src/AIS/AIS_BadEdgeFilter.hxx delete mode 100644 src/AIS/AIS_C0RegularityFilter.cdl create mode 100644 src/AIS/AIS_C0RegularityFilter.hxx delete mode 100644 src/AIS/AIS_Chamf2dDimension.cdl create mode 100644 src/AIS/AIS_Chamf2dDimension.hxx delete mode 100644 src/AIS/AIS_Chamf3dDimension.cdl create mode 100644 src/AIS/AIS_Chamf3dDimension.hxx delete mode 100644 src/AIS/AIS_Circle.cdl create mode 100644 src/AIS/AIS_Circle.hxx create mode 100644 src/AIS/AIS_ClearMode.hxx delete mode 100644 src/AIS/AIS_ConcentricRelation.cdl create mode 100644 src/AIS/AIS_ConcentricRelation.hxx create mode 100644 src/AIS/AIS_ConnectStatus.hxx delete mode 100644 src/AIS/AIS_ConnectedInteractive.cdl create mode 100644 src/AIS/AIS_ConnectedInteractive.hxx delete mode 100644 src/AIS/AIS_DimensionOwner.cdl create mode 100644 src/AIS/AIS_DimensionOwner.hxx create mode 100644 src/AIS/AIS_DimensionSelectionMode.hxx create mode 100644 src/AIS/AIS_DisplayMode.hxx create mode 100644 src/AIS/AIS_DisplaySpecialSymbol.hxx create mode 100644 src/AIS/AIS_DisplayStatus.hxx delete mode 100644 src/AIS/AIS_EllipseRadiusDimension.cdl create mode 100644 src/AIS/AIS_EllipseRadiusDimension.hxx delete mode 100644 src/AIS/AIS_EqualDistanceRelation.cdl create mode 100644 src/AIS/AIS_EqualDistanceRelation.hxx delete mode 100644 src/AIS/AIS_EqualRadiusRelation.cdl create mode 100644 src/AIS/AIS_EqualRadiusRelation.hxx delete mode 100644 src/AIS/AIS_ExclusionFilter.cdl create mode 100644 src/AIS/AIS_ExclusionFilter.hxx delete mode 100644 src/AIS/AIS_FixRelation.cdl create mode 100644 src/AIS/AIS_FixRelation.hxx delete mode 100644 src/AIS/AIS_GlobalStatus.cdl create mode 100644 src/AIS/AIS_GlobalStatus.hxx delete mode 100644 src/AIS/AIS_GraphicTool.cdl create mode 100644 src/AIS/AIS_GraphicTool.hxx delete mode 100644 src/AIS/AIS_IdenticRelation.cdl create mode 100644 src/AIS/AIS_IdenticRelation.hxx delete mode 100644 src/AIS/AIS_InteractiveContext.cdl create mode 100644 src/AIS/AIS_InteractiveContext.hxx delete mode 100644 src/AIS/AIS_InteractiveObject.cdl create mode 100644 src/AIS/AIS_InteractiveObject.hxx create mode 100644 src/AIS/AIS_KindOfDimension.hxx create mode 100644 src/AIS/AIS_KindOfInteractive.hxx create mode 100644 src/AIS/AIS_KindOfSurface.hxx create mode 100644 src/AIS/AIS_KindOfUnit.hxx delete mode 100644 src/AIS/AIS_Line.cdl create mode 100644 src/AIS/AIS_Line.hxx delete mode 100644 src/AIS/AIS_LocalContext.cdl create mode 100644 src/AIS/AIS_LocalContext.hxx delete mode 100644 src/AIS/AIS_LocalStatus.cdl create mode 100644 src/AIS/AIS_LocalStatus.hxx delete mode 100644 src/AIS/AIS_MaxRadiusDimension.cdl create mode 100644 src/AIS/AIS_MaxRadiusDimension.hxx delete mode 100644 src/AIS/AIS_MidPointRelation.cdl create mode 100644 src/AIS/AIS_MidPointRelation.hxx delete mode 100644 src/AIS/AIS_MinRadiusDimension.cdl create mode 100644 src/AIS/AIS_MinRadiusDimension.hxx delete mode 100644 src/AIS/AIS_MultipleConnectedInteractive.cdl create mode 100644 src/AIS/AIS_MultipleConnectedInteractive.hxx delete mode 100644 src/AIS/AIS_OffsetDimension.cdl create mode 100644 src/AIS/AIS_OffsetDimension.hxx create mode 100644 src/AIS/AIS_PToContext.hxx delete mode 100644 src/AIS/AIS_ParallelRelation.cdl create mode 100644 src/AIS/AIS_ParallelRelation.hxx delete mode 100644 src/AIS/AIS_PerpendicularRelation.cdl create mode 100644 src/AIS/AIS_PerpendicularRelation.hxx delete mode 100644 src/AIS/AIS_Plane.cdl create mode 100644 src/AIS/AIS_Plane.hxx delete mode 100644 src/AIS/AIS_PlaneTrihedron.cdl create mode 100644 src/AIS/AIS_PlaneTrihedron.hxx delete mode 100644 src/AIS/AIS_Point.cdl create mode 100644 src/AIS/AIS_Point.hxx delete mode 100644 src/AIS/AIS_Relation.cdl create mode 100644 src/AIS/AIS_Relation.hxx create mode 100644 src/AIS/AIS_SelectStatus.hxx delete mode 100644 src/AIS/AIS_Selection.cdl create mode 100644 src/AIS/AIS_Selection.hxx delete mode 100644 src/AIS/AIS_Shape.cdl create mode 100644 src/AIS/AIS_Shape.hxx delete mode 100644 src/AIS/AIS_SignatureFilter.cdl create mode 100644 src/AIS/AIS_SignatureFilter.hxx create mode 100644 src/AIS/AIS_StandardDatum.hxx create mode 100644 src/AIS/AIS_StatusOfDetection.hxx create mode 100644 src/AIS/AIS_StatusOfPick.hxx delete mode 100644 src/AIS/AIS_SymmetricRelation.cdl create mode 100644 src/AIS/AIS_SymmetricRelation.hxx delete mode 100644 src/AIS/AIS_TangentRelation.cdl create mode 100644 src/AIS/AIS_TangentRelation.hxx delete mode 100644 src/AIS/AIS_Triangulation.cdl create mode 100644 src/AIS/AIS_Triangulation.hxx delete mode 100644 src/AIS/AIS_Trihedron.cdl create mode 100644 src/AIS/AIS_Trihedron.hxx delete mode 100644 src/AIS/AIS_TypeFilter.cdl create mode 100644 src/AIS/AIS_TypeFilter.hxx create mode 100644 src/AIS/AIS_TypeOfAttribute.hxx create mode 100644 src/AIS/AIS_TypeOfAxis.hxx create mode 100644 src/AIS/AIS_TypeOfDist.hxx create mode 100644 src/AIS/AIS_TypeOfIso.hxx create mode 100644 src/AIS/AIS_TypeOfPlane.hxx delete mode 100644 src/APIHeaderSection/APIHeaderSection.cdl delete mode 100644 src/APIHeaderSection/APIHeaderSection_EditHeader.cdl create mode 100644 src/APIHeaderSection/APIHeaderSection_EditHeader.hxx delete mode 100644 src/APIHeaderSection/APIHeaderSection_MakeHeader.cdl create mode 100644 src/APIHeaderSection/APIHeaderSection_MakeHeader.hxx create mode 100644 src/APIHeaderSection/FILES delete mode 100644 src/Adaptor2d/Adaptor2d.cdl delete mode 100644 src/Adaptor2d/Adaptor2d_Curve2d.cdl create mode 100644 src/Adaptor2d/Adaptor2d_Curve2d.hxx create mode 100644 src/Adaptor2d/Adaptor2d_Curve2dPtr.hxx delete mode 100644 src/Adaptor2d/Adaptor2d_GenHCurve2d.cdl delete mode 100644 src/Adaptor2d/Adaptor2d_HCurve2d.cdl create mode 100644 src/Adaptor2d/Adaptor2d_HCurve2d.hxx create mode 100644 src/Adaptor2d/Adaptor2d_HLine2d.hxx create mode 100644 src/Adaptor2d/Adaptor2d_HLine2d_0.cxx delete mode 100644 src/Adaptor2d/Adaptor2d_Line2d.cdl create mode 100644 src/Adaptor2d/Adaptor2d_Line2d.hxx create mode 100644 src/Adaptor2d/FILES delete mode 100644 src/Adaptor3d/Adaptor3d.cdl delete mode 100644 src/Adaptor3d/Adaptor3d_Curve.cdl create mode 100644 src/Adaptor3d/Adaptor3d_Curve.hxx delete mode 100644 src/Adaptor3d/Adaptor3d_CurveOnSurface.cdl create mode 100644 src/Adaptor3d/Adaptor3d_CurveOnSurface.hxx create mode 100644 src/Adaptor3d/Adaptor3d_CurveOnSurfacePtr.hxx create mode 100644 src/Adaptor3d/Adaptor3d_CurvePtr.hxx delete mode 100644 src/Adaptor3d/Adaptor3d_GenHCurve.cdl delete mode 100644 src/Adaptor3d/Adaptor3d_GenHSurface.cdl delete mode 100644 src/Adaptor3d/Adaptor3d_HCurve.cdl create mode 100644 src/Adaptor3d/Adaptor3d_HCurve.hxx create mode 100644 src/Adaptor3d/Adaptor3d_HCurveOnSurface.hxx create mode 100644 src/Adaptor3d/Adaptor3d_HCurveOnSurface_0.cxx create mode 100644 src/Adaptor3d/Adaptor3d_HIsoCurve.hxx create mode 100644 src/Adaptor3d/Adaptor3d_HIsoCurve_0.cxx create mode 100644 src/Adaptor3d/Adaptor3d_HOffsetCurve.hxx create mode 100644 src/Adaptor3d/Adaptor3d_HOffsetCurve_0.cxx delete mode 100644 src/Adaptor3d/Adaptor3d_HSurface.cdl create mode 100644 src/Adaptor3d/Adaptor3d_HSurface.hxx create mode 100644 src/Adaptor3d/Adaptor3d_HSurfaceOfLinearExtrusion.hxx create mode 100644 src/Adaptor3d/Adaptor3d_HSurfaceOfLinearExtrusion_0.cxx create mode 100644 src/Adaptor3d/Adaptor3d_HSurfaceOfRevolution.hxx create mode 100644 src/Adaptor3d/Adaptor3d_HSurfaceOfRevolution_0.cxx delete mode 100644 src/Adaptor3d/Adaptor3d_HSurfaceTool.cdl create mode 100644 src/Adaptor3d/Adaptor3d_HSurfaceTool.hxx delete mode 100644 src/Adaptor3d/Adaptor3d_HVertex.cdl create mode 100644 src/Adaptor3d/Adaptor3d_HVertex.hxx delete mode 100644 src/Adaptor3d/Adaptor3d_InterFunc.cdl create mode 100644 src/Adaptor3d/Adaptor3d_InterFunc.hxx delete mode 100644 src/Adaptor3d/Adaptor3d_IsoCurve.cdl create mode 100644 src/Adaptor3d/Adaptor3d_IsoCurve.hxx delete mode 100644 src/Adaptor3d/Adaptor3d_OffsetCurve.cdl create mode 100644 src/Adaptor3d/Adaptor3d_OffsetCurve.hxx delete mode 100644 src/Adaptor3d/Adaptor3d_Surface.cdl create mode 100644 src/Adaptor3d/Adaptor3d_Surface.hxx delete mode 100644 src/Adaptor3d/Adaptor3d_SurfaceOfLinearExtrusion.cdl create mode 100644 src/Adaptor3d/Adaptor3d_SurfaceOfLinearExtrusion.hxx delete mode 100644 src/Adaptor3d/Adaptor3d_SurfaceOfRevolution.cdl create mode 100644 src/Adaptor3d/Adaptor3d_SurfaceOfRevolution.hxx create mode 100644 src/Adaptor3d/Adaptor3d_SurfacePtr.hxx delete mode 100644 src/Adaptor3d/Adaptor3d_TopolTool.cdl create mode 100644 src/Adaptor3d/Adaptor3d_TopolTool.hxx create mode 100644 src/Adaptor3d/FILES delete mode 100644 src/AdvApp2Var/AdvApp2Var.cdl delete mode 100644 src/AdvApp2Var/AdvApp2Var_ApproxAFunc2Var.cdl create mode 100644 src/AdvApp2Var/AdvApp2Var_ApproxAFunc2Var.hxx delete mode 100644 src/AdvApp2Var/AdvApp2Var_Context.cdl create mode 100644 src/AdvApp2Var/AdvApp2Var_Context.hxx delete mode 100644 src/AdvApp2Var/AdvApp2Var_Criterion.cdl create mode 100644 src/AdvApp2Var/AdvApp2Var_Criterion.hxx create mode 100644 src/AdvApp2Var/AdvApp2Var_CriterionRepartition.hxx create mode 100644 src/AdvApp2Var/AdvApp2Var_CriterionType.hxx delete mode 100644 src/AdvApp2Var/AdvApp2Var_Framework.cdl create mode 100644 src/AdvApp2Var/AdvApp2Var_Framework.hxx delete mode 100644 src/AdvApp2Var/AdvApp2Var_Iso.cdl create mode 100644 src/AdvApp2Var/AdvApp2Var_Iso.hxx delete mode 100644 src/AdvApp2Var/AdvApp2Var_Network.cdl create mode 100644 src/AdvApp2Var/AdvApp2Var_Network.hxx delete mode 100644 src/AdvApp2Var/AdvApp2Var_Node.cdl create mode 100644 src/AdvApp2Var/AdvApp2Var_Node.hxx delete mode 100644 src/AdvApp2Var/AdvApp2Var_Patch.cdl create mode 100644 src/AdvApp2Var/AdvApp2Var_Patch.hxx delete mode 100644 src/AdvApprox/AdvApprox.cdl delete mode 100644 src/AdvApprox/AdvApprox_ApproxAFunction.cdl create mode 100644 src/AdvApprox/AdvApprox_ApproxAFunction.hxx delete mode 100644 src/AdvApprox/AdvApprox_Cutting.cdl create mode 100644 src/AdvApprox/AdvApprox_Cutting.hxx delete mode 100644 src/AdvApprox/AdvApprox_DichoCutting.cdl create mode 100644 src/AdvApprox/AdvApprox_DichoCutting.hxx delete mode 100644 src/AdvApprox/AdvApprox_PrefAndRec.cdl create mode 100644 src/AdvApprox/AdvApprox_PrefAndRec.hxx delete mode 100644 src/AdvApprox/AdvApprox_PrefCutting.cdl create mode 100644 src/AdvApprox/AdvApprox_PrefCutting.hxx delete mode 100644 src/AdvApprox/AdvApprox_SimpleApprox.cdl create mode 100644 src/AdvApprox/AdvApprox_SimpleApprox.hxx delete mode 100644 src/AppBlend/AppBlend.cdl delete mode 100644 src/AppBlend/AppBlend_AppSurf.cdl delete mode 100644 src/AppBlend/AppBlend_Approx.cdl create mode 100644 src/AppBlend/AppBlend_Approx.hxx delete mode 100644 src/AppCont/AppCont.cdl delete mode 100644 src/AppDef/AppDef.cdl create mode 100644 src/AppDef/AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute.hxx create mode 100644 src/AppDef/AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute_0.cxx create mode 100644 src/AppDef/AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute.hxx create mode 100644 src/AppDef/AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute_0.cxx create mode 100644 src/AppDef/AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute.hxx create mode 100644 src/AppDef/AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute_0.cxx create mode 100644 src/AppDef/AppDef_BSplineCompute.hxx create mode 100644 src/AppDef/AppDef_BSplineCompute_0.cxx create mode 100644 src/AppDef/AppDef_Compute.hxx create mode 100644 src/AppDef/AppDef_Compute_0.cxx create mode 100644 src/AppDef/AppDef_Gradient_BFGSOfMyGradientOfCompute.hxx create mode 100644 src/AppDef/AppDef_Gradient_BFGSOfMyGradientOfCompute_0.cxx create mode 100644 src/AppDef/AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute.hxx create mode 100644 src/AppDef/AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute_0.cxx create mode 100644 src/AppDef/AppDef_Gradient_BFGSOfTheGradient.hxx create mode 100644 src/AppDef/AppDef_Gradient_BFGSOfTheGradient_0.cxx delete mode 100644 src/AppDef/AppDef_LinearCriteria.cdl create mode 100644 src/AppDef/AppDef_LinearCriteria.hxx delete mode 100644 src/AppDef/AppDef_MultiLine.cdl create mode 100644 src/AppDef/AppDef_MultiLine.hxx delete mode 100644 src/AppDef/AppDef_MultiPointConstraint.cdl create mode 100644 src/AppDef/AppDef_MultiPointConstraint.hxx create mode 100644 src/AppDef/AppDef_MyBSplGradientOfBSplineCompute.hxx create mode 100644 src/AppDef/AppDef_MyBSplGradientOfBSplineCompute_0.cxx create mode 100644 src/AppDef/AppDef_MyGradientOfCompute.hxx create mode 100644 src/AppDef/AppDef_MyGradientOfCompute_0.cxx create mode 100644 src/AppDef/AppDef_MyGradientbisOfBSplineCompute.hxx create mode 100644 src/AppDef/AppDef_MyGradientbisOfBSplineCompute_0.cxx delete mode 100644 src/AppDef/AppDef_MyLineTool.cdl create mode 100644 src/AppDef/AppDef_MyLineTool.hxx create mode 100644 src/AppDef/AppDef_ParFunctionOfMyGradientOfCompute.hxx create mode 100644 src/AppDef/AppDef_ParFunctionOfMyGradientOfCompute_0.cxx create mode 100644 src/AppDef/AppDef_ParFunctionOfMyGradientbisOfBSplineCompute.hxx create mode 100644 src/AppDef/AppDef_ParFunctionOfMyGradientbisOfBSplineCompute_0.cxx create mode 100644 src/AppDef/AppDef_ParFunctionOfTheGradient.hxx create mode 100644 src/AppDef/AppDef_ParFunctionOfTheGradient_0.cxx create mode 100644 src/AppDef/AppDef_ParLeastSquareOfMyGradientOfCompute.hxx create mode 100644 src/AppDef/AppDef_ParLeastSquareOfMyGradientOfCompute_0.cxx create mode 100644 src/AppDef/AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute.hxx create mode 100644 src/AppDef/AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute_0.cxx create mode 100644 src/AppDef/AppDef_ParLeastSquareOfTheGradient.hxx create mode 100644 src/AppDef/AppDef_ParLeastSquareOfTheGradient_0.cxx create mode 100644 src/AppDef/AppDef_ResConstraintOfMyGradientOfCompute.hxx create mode 100644 src/AppDef/AppDef_ResConstraintOfMyGradientOfCompute_0.cxx create mode 100644 src/AppDef/AppDef_ResConstraintOfMyGradientbisOfBSplineCompute.hxx create mode 100644 src/AppDef/AppDef_ResConstraintOfMyGradientbisOfBSplineCompute_0.cxx create mode 100644 src/AppDef/AppDef_ResConstraintOfTheGradient.hxx create mode 100644 src/AppDef/AppDef_ResConstraintOfTheGradient_0.cxx delete mode 100644 src/AppDef/AppDef_SmoothCriterion.cdl create mode 100644 src/AppDef/AppDef_SmoothCriterion.hxx create mode 100644 src/AppDef/AppDef_TheFunction.hxx create mode 100644 src/AppDef/AppDef_TheFunction_0.cxx create mode 100644 src/AppDef/AppDef_TheGradient.hxx create mode 100644 src/AppDef/AppDef_TheGradient_0.cxx create mode 100644 src/AppDef/AppDef_TheLeastSquares.hxx create mode 100644 src/AppDef/AppDef_TheLeastSquares_0.cxx create mode 100644 src/AppDef/AppDef_TheResol.hxx create mode 100644 src/AppDef/AppDef_TheResol_0.cxx delete mode 100644 src/AppDef/AppDef_Variational.cdl create mode 100644 src/AppDef/AppDef_Variational.hxx delete mode 100644 src/AppParCurves/AppParCurves.cdl create mode 100644 src/AppParCurves/AppParCurves.hxx delete mode 100644 src/AppParCurves/AppParCurves_BSpFunction.cdl delete mode 100644 src/AppParCurves/AppParCurves_BSpGradient.cdl create mode 100644 src/AppParCurves/AppParCurves_Constraint.hxx delete mode 100644 src/AppParCurves/AppParCurves_ConstraintCouple.cdl create mode 100644 src/AppParCurves/AppParCurves_ConstraintCouple.hxx delete mode 100644 src/AppParCurves/AppParCurves_Function.cdl delete mode 100644 src/AppParCurves/AppParCurves_Gradient.cdl delete mode 100644 src/AppParCurves/AppParCurves_LeastSquare.cdl delete mode 100644 src/AppParCurves/AppParCurves_MultiBSpCurve.cdl create mode 100644 src/AppParCurves/AppParCurves_MultiBSpCurve.hxx delete mode 100644 src/AppParCurves/AppParCurves_MultiCurve.cdl create mode 100644 src/AppParCurves/AppParCurves_MultiCurve.hxx delete mode 100644 src/AppParCurves/AppParCurves_MultiPoint.cdl create mode 100644 src/AppParCurves/AppParCurves_MultiPoint.hxx delete mode 100644 src/AppParCurves/AppParCurves_ResolConstraint.cdl delete mode 100644 src/AppStd/AppStd.cdl delete mode 100644 src/AppStd/AppStd_Application.cdl create mode 100644 src/AppStd/AppStd_Application.hxx create mode 100644 src/AppStd/FILES delete mode 100644 src/AppStdL/AppStdL.cdl delete mode 100644 src/AppStdL/AppStdL_Application.cdl create mode 100644 src/AppStdL/AppStdL_Application.hxx create mode 100644 src/AppStdL/FILES delete mode 100644 src/Approx/Approx.cdl delete mode 100644 src/Approx/Approx_BSplComputeLine.cdl delete mode 100644 src/Approx/Approx_ComputeCLine.cdl delete mode 100644 src/Approx/Approx_ComputeLine.cdl delete mode 100644 src/Approx/Approx_Curve2d.cdl create mode 100644 src/Approx/Approx_Curve2d.hxx delete mode 100644 src/Approx/Approx_Curve3d.cdl create mode 100644 src/Approx/Approx_Curve3d.hxx delete mode 100644 src/Approx/Approx_CurveOnSurface.cdl create mode 100644 src/Approx/Approx_CurveOnSurface.hxx delete mode 100644 src/Approx/Approx_CurvilinearParameter.cdl create mode 100644 src/Approx/Approx_CurvilinearParameter.hxx delete mode 100644 src/Approx/Approx_CurvlinFunc.cdl create mode 100644 src/Approx/Approx_CurvlinFunc.hxx create mode 100644 src/Approx/Approx_FitAndDivide.hxx create mode 100644 src/Approx/Approx_FitAndDivide2d.hxx create mode 100644 src/Approx/Approx_FitAndDivide2d_0.cxx create mode 100644 src/Approx/Approx_FitAndDivide_0.cxx delete mode 100644 src/Approx/Approx_MCurvesToBSpCurve.cdl create mode 100644 src/Approx/Approx_MCurvesToBSpCurve.hxx create mode 100644 src/Approx/Approx_ParametrizationType.hxx delete mode 100644 src/Approx/Approx_SameParameter.cdl create mode 100644 src/Approx/Approx_SameParameter.hxx create mode 100644 src/Approx/Approx_Status.hxx delete mode 100644 src/Approx/Approx_SweepApproximation.cdl create mode 100644 src/Approx/Approx_SweepApproximation.hxx delete mode 100644 src/Approx/Approx_SweepFunction.cdl create mode 100644 src/Approx/Approx_SweepFunction.hxx delete mode 100644 src/ApproxInt/ApproxInt.cdl delete mode 100644 src/ApproxInt/ApproxInt_Approx.cdl delete mode 100644 src/ApproxInt/ApproxInt_ImpPrmSvSurfaces.cdl delete mode 100644 src/ApproxInt/ApproxInt_MultiLine.cdl delete mode 100644 src/ApproxInt/ApproxInt_MultiLineTool.cdl delete mode 100644 src/ApproxInt/ApproxInt_PrmPrmSvSurfaces.cdl delete mode 100644 src/ApproxInt/ApproxInt_SvSurfaces.cdl create mode 100644 src/ApproxInt/ApproxInt_SvSurfaces.hxx delete mode 100644 src/Aspect/Aspect.cdl delete mode 100644 src/Aspect/Aspect_AspectFillArea.cdl create mode 100644 src/Aspect/Aspect_AspectFillArea.hxx create mode 100644 src/Aspect/Aspect_AspectFillAreaDefinitionError.hxx delete mode 100644 src/Aspect/Aspect_AspectLine.cdl create mode 100644 src/Aspect/Aspect_AspectLine.hxx create mode 100644 src/Aspect/Aspect_AspectLineDefinitionError.hxx delete mode 100644 src/Aspect/Aspect_AspectMarker.cdl create mode 100644 src/Aspect/Aspect_AspectMarker.hxx create mode 100644 src/Aspect/Aspect_AspectMarkerDefinitionError.hxx delete mode 100644 src/Aspect/Aspect_Background.cdl create mode 100644 src/Aspect/Aspect_Background.hxx create mode 100644 src/Aspect/Aspect_BadAccess.hxx delete mode 100644 src/Aspect/Aspect_CMPLRS.edl delete mode 100644 src/Aspect/Aspect_CircularGrid.cdl create mode 100644 src/Aspect/Aspect_CircularGrid.hxx delete mode 100644 src/Aspect/Aspect_ColorScale.cdl create mode 100644 src/Aspect/Aspect_ColorScale.hxx create mode 100644 src/Aspect/Aspect_DisplayConnectionDefinitionError.hxx create mode 100644 src/Aspect/Aspect_DriverDefinitionError.hxx create mode 100644 src/Aspect/Aspect_FillMethod.hxx delete mode 100644 src/Aspect/Aspect_GenId.cdl create mode 100644 src/Aspect/Aspect_GenId.hxx delete mode 100644 src/Aspect/Aspect_GradientBackground.cdl create mode 100644 src/Aspect/Aspect_GradientBackground.hxx create mode 100644 src/Aspect/Aspect_GradientFillMethod.hxx create mode 100644 src/Aspect/Aspect_GraphicDeviceDefinitionError.hxx delete mode 100644 src/Aspect/Aspect_Grid.cdl create mode 100644 src/Aspect/Aspect_Grid.hxx create mode 100644 src/Aspect/Aspect_GridDrawMode.hxx create mode 100644 src/Aspect/Aspect_GridType.hxx create mode 100644 src/Aspect/Aspect_HatchStyle.hxx create mode 100644 src/Aspect/Aspect_IdentDefinitionError.hxx create mode 100644 src/Aspect/Aspect_InteriorStyle.hxx create mode 100644 src/Aspect/Aspect_PrintAlgo.hxx delete mode 100644 src/Aspect/Aspect_RectangularGrid.cdl create mode 100644 src/Aspect/Aspect_RectangularGrid.hxx create mode 100644 src/Aspect/Aspect_TypeOfColorScaleData.hxx create mode 100644 src/Aspect/Aspect_TypeOfColorScaleOrientation.hxx create mode 100644 src/Aspect/Aspect_TypeOfColorScalePosition.hxx create mode 100644 src/Aspect/Aspect_TypeOfConstraint.hxx create mode 100644 src/Aspect/Aspect_TypeOfDeflection.hxx create mode 100644 src/Aspect/Aspect_TypeOfDisplayText.hxx create mode 100644 src/Aspect/Aspect_TypeOfDrawMode.hxx create mode 100644 src/Aspect/Aspect_TypeOfEdge.hxx create mode 100644 src/Aspect/Aspect_TypeOfFacingModel.hxx create mode 100644 src/Aspect/Aspect_TypeOfHighlightMethod.hxx create mode 100644 src/Aspect/Aspect_TypeOfLayer.hxx create mode 100644 src/Aspect/Aspect_TypeOfLine.hxx create mode 100644 src/Aspect/Aspect_TypeOfMarker.hxx create mode 100644 src/Aspect/Aspect_TypeOfPrimitive.hxx create mode 100644 src/Aspect/Aspect_TypeOfResize.hxx create mode 100644 src/Aspect/Aspect_TypeOfStyleText.hxx create mode 100644 src/Aspect/Aspect_TypeOfTriedronEcho.hxx create mode 100644 src/Aspect/Aspect_TypeOfTriedronPosition.hxx create mode 100644 src/Aspect/Aspect_TypeOfUpdate.hxx delete mode 100644 src/Aspect/Aspect_WOKSteps.edl create mode 100644 src/Aspect/Aspect_WidthOfLine.hxx delete mode 100644 src/Aspect/Aspect_Window.cdl create mode 100644 src/Aspect/Aspect_Window.hxx create mode 100644 src/Aspect/Aspect_WindowDefinitionError.hxx create mode 100644 src/Aspect/Aspect_WindowError.hxx create mode 100644 src/Aspect/Aspect_XAtom.hxx delete mode 100644 src/BOPAlgo/BOPAlgo.cdl delete mode 100644 src/BOPAlgo/BOPAlgo_Algo.cdl create mode 100644 src/BOPAlgo/BOPAlgo_Algo.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cdl create mode 100644 src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_BOP.cdl create mode 100644 src/BOPAlgo/BOPAlgo_BOP.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_Builder.cdl create mode 100644 src/BOPAlgo/BOPAlgo_Builder.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_BuilderArea.cdl create mode 100644 src/BOPAlgo/BOPAlgo_BuilderArea.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_BuilderFace.cdl create mode 100644 src/BOPAlgo/BOPAlgo_BuilderFace.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_BuilderShape.cdl create mode 100644 src/BOPAlgo/BOPAlgo_BuilderShape.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_BuilderSolid.cdl create mode 100644 src/BOPAlgo/BOPAlgo_BuilderSolid.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_CheckResult.cdl create mode 100644 src/BOPAlgo/BOPAlgo_CheckResult.hxx create mode 100644 src/BOPAlgo/BOPAlgo_CheckStatus.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_CheckerSI.cdl create mode 100644 src/BOPAlgo/BOPAlgo_CheckerSI.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_MakerVolume.cdl create mode 100644 src/BOPAlgo/BOPAlgo_MakerVolume.hxx create mode 100644 src/BOPAlgo/BOPAlgo_Operation.hxx create mode 100644 src/BOPAlgo/BOPAlgo_PArgumentAnalyzer.hxx create mode 100644 src/BOPAlgo/BOPAlgo_PBOP.hxx create mode 100644 src/BOPAlgo/BOPAlgo_PBuilder.hxx create mode 100644 src/BOPAlgo/BOPAlgo_PPaveFiller.hxx create mode 100644 src/BOPAlgo/BOPAlgo_PSection.hxx create mode 100644 src/BOPAlgo/BOPAlgo_PWireEdgeSet.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_PaveFiller.cdl create mode 100644 src/BOPAlgo/BOPAlgo_PaveFiller.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_Section.cdl create mode 100644 src/BOPAlgo/BOPAlgo_Section.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_SectionAttribute.cdl create mode 100644 src/BOPAlgo/BOPAlgo_SectionAttribute.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_ShellSplitter.cdl create mode 100644 src/BOPAlgo/BOPAlgo_ShellSplitter.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_Tools.cdl create mode 100644 src/BOPAlgo/BOPAlgo_Tools.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_WireEdgeSet.cdl create mode 100644 src/BOPAlgo/BOPAlgo_WireEdgeSet.hxx delete mode 100644 src/BOPAlgo/BOPAlgo_WireSplitter.cdl create mode 100644 src/BOPAlgo/BOPAlgo_WireSplitter.hxx delete mode 100644 src/BOPCol/BOPCol.cdl delete mode 100644 src/BOPDS/BOPDS.cdl delete mode 100644 src/BOPDS/BOPDS_CommonBlock.cdl create mode 100644 src/BOPDS/BOPDS_CommonBlock.hxx delete mode 100644 src/BOPDS/BOPDS_Curve.cdl create mode 100644 src/BOPDS/BOPDS_Curve.hxx delete mode 100644 src/BOPDS/BOPDS_DS.cdl create mode 100644 src/BOPDS/BOPDS_DS.hxx delete mode 100644 src/BOPDS/BOPDS_FaceInfo.cdl create mode 100644 src/BOPDS/BOPDS_FaceInfo.hxx delete mode 100644 src/BOPDS/BOPDS_IndexRange.cdl create mode 100644 src/BOPDS/BOPDS_IndexRange.hxx delete mode 100644 src/BOPDS/BOPDS_Iterator.cdl create mode 100644 src/BOPDS/BOPDS_Iterator.hxx delete mode 100644 src/BOPDS/BOPDS_IteratorSI.cdl create mode 100644 src/BOPDS/BOPDS_IteratorSI.hxx create mode 100644 src/BOPDS/BOPDS_PDS.hxx create mode 100644 src/BOPDS/BOPDS_PIterator.hxx create mode 100644 src/BOPDS/BOPDS_PIteratorSI.hxx delete mode 100644 src/BOPDS/BOPDS_PassKey.cdl create mode 100644 src/BOPDS/BOPDS_PassKey.hxx delete mode 100644 src/BOPDS/BOPDS_PassKeyBoolean.cdl create mode 100644 src/BOPDS/BOPDS_PassKeyBoolean.hxx delete mode 100644 src/BOPDS/BOPDS_PassKeyMapHasher.cdl create mode 100644 src/BOPDS/BOPDS_PassKeyMapHasher.hxx delete mode 100644 src/BOPDS/BOPDS_Pave.cdl create mode 100644 src/BOPDS/BOPDS_Pave.hxx delete mode 100644 src/BOPDS/BOPDS_PaveBlock.cdl create mode 100644 src/BOPDS/BOPDS_PaveBlock.hxx delete mode 100644 src/BOPDS/BOPDS_PaveMapHasher.cdl create mode 100644 src/BOPDS/BOPDS_PaveMapHasher.hxx delete mode 100644 src/BOPDS/BOPDS_Point.cdl create mode 100644 src/BOPDS/BOPDS_Point.hxx delete mode 100644 src/BOPDS/BOPDS_ShapeInfo.cdl create mode 100644 src/BOPDS/BOPDS_ShapeInfo.hxx delete mode 100644 src/BOPDS/BOPDS_SubIterator.cdl create mode 100644 src/BOPDS/BOPDS_SubIterator.hxx delete mode 100644 src/BOPDS/BOPDS_Tools.cdl create mode 100644 src/BOPDS/BOPDS_Tools.hxx delete mode 100644 src/BOPTest/BOPTest.cdl create mode 100644 src/BOPTest/BOPTest.hxx delete mode 100644 src/BOPTest/BOPTest_DrawableShape.cdl create mode 100644 src/BOPTest/BOPTest_DrawableShape.hxx delete mode 100644 src/BOPTest/BOPTest_Objects.cdl create mode 100644 src/BOPTest/BOPTest_Objects.hxx delete mode 100644 src/BOPTools/BOPTools.cdl create mode 100644 src/BOPTools/BOPTools.hxx delete mode 100644 src/BOPTools/BOPTools_AlgoTools.cdl create mode 100644 src/BOPTools/BOPTools_AlgoTools.hxx delete mode 100644 src/BOPTools/BOPTools_AlgoTools2D.cdl create mode 100644 src/BOPTools/BOPTools_AlgoTools2D.hxx delete mode 100644 src/BOPTools/BOPTools_AlgoTools3D.cdl create mode 100644 src/BOPTools/BOPTools_AlgoTools3D.hxx delete mode 100644 src/BOPTools/BOPTools_EdgeSet.cdl create mode 100644 src/BOPTools/BOPTools_EdgeSet.hxx delete mode 100644 src/BOPTools/BOPTools_Set.cdl create mode 100644 src/BOPTools/BOPTools_Set.hxx delete mode 100644 src/BOPTools/BOPTools_SetMapHasher.cdl create mode 100644 src/BOPTools/BOPTools_SetMapHasher.hxx delete mode 100644 src/BOPTools/BOPTools_ShapeSet.cdl create mode 100644 src/BOPTools/BOPTools_ShapeSet.hxx delete mode 100644 src/BRep/BRep.cdl delete mode 100644 src/BRep/BRep_Builder.cdl create mode 100644 src/BRep/BRep_Builder.hxx delete mode 100644 src/BRep/BRep_Curve3D.cdl create mode 100644 src/BRep/BRep_Curve3D.hxx delete mode 100644 src/BRep/BRep_CurveOn2Surfaces.cdl create mode 100644 src/BRep/BRep_CurveOn2Surfaces.hxx delete mode 100644 src/BRep/BRep_CurveOnClosedSurface.cdl create mode 100644 src/BRep/BRep_CurveOnClosedSurface.hxx delete mode 100644 src/BRep/BRep_CurveOnSurface.cdl create mode 100644 src/BRep/BRep_CurveOnSurface.hxx delete mode 100644 src/BRep/BRep_CurveRepresentation.cdl create mode 100644 src/BRep/BRep_CurveRepresentation.hxx delete mode 100644 src/BRep/BRep_GCurve.cdl create mode 100644 src/BRep/BRep_GCurve.hxx delete mode 100644 src/BRep/BRep_PointOnCurve.cdl create mode 100644 src/BRep/BRep_PointOnCurve.hxx delete mode 100644 src/BRep/BRep_PointOnCurveOnSurface.cdl create mode 100644 src/BRep/BRep_PointOnCurveOnSurface.hxx delete mode 100644 src/BRep/BRep_PointOnSurface.cdl create mode 100644 src/BRep/BRep_PointOnSurface.hxx delete mode 100644 src/BRep/BRep_PointRepresentation.cdl create mode 100644 src/BRep/BRep_PointRepresentation.hxx delete mode 100644 src/BRep/BRep_PointsOnSurface.cdl create mode 100644 src/BRep/BRep_PointsOnSurface.hxx delete mode 100644 src/BRep/BRep_Polygon3D.cdl create mode 100644 src/BRep/BRep_Polygon3D.hxx delete mode 100644 src/BRep/BRep_PolygonOnClosedSurface.cdl create mode 100644 src/BRep/BRep_PolygonOnClosedSurface.hxx delete mode 100644 src/BRep/BRep_PolygonOnClosedTriangulation.cdl create mode 100644 src/BRep/BRep_PolygonOnClosedTriangulation.hxx delete mode 100644 src/BRep/BRep_PolygonOnSurface.cdl create mode 100644 src/BRep/BRep_PolygonOnSurface.hxx delete mode 100644 src/BRep/BRep_PolygonOnTriangulation.cdl create mode 100644 src/BRep/BRep_PolygonOnTriangulation.hxx delete mode 100644 src/BRep/BRep_TEdge.cdl create mode 100644 src/BRep/BRep_TEdge.hxx delete mode 100644 src/BRep/BRep_TFace.cdl create mode 100644 src/BRep/BRep_TFace.hxx delete mode 100644 src/BRep/BRep_TVertex.cdl create mode 100644 src/BRep/BRep_TVertex.hxx delete mode 100644 src/BRep/BRep_Tool.cdl create mode 100644 src/BRep/BRep_Tool.hxx delete mode 100644 src/BRepAdaptor/BRepAdaptor.cdl delete mode 100644 src/BRepAdaptor/BRepAdaptor_CompCurve.cdl create mode 100644 src/BRepAdaptor/BRepAdaptor_CompCurve.hxx delete mode 100644 src/BRepAdaptor/BRepAdaptor_Curve.cdl create mode 100644 src/BRepAdaptor/BRepAdaptor_Curve.hxx delete mode 100644 src/BRepAdaptor/BRepAdaptor_Curve2d.cdl create mode 100644 src/BRepAdaptor/BRepAdaptor_Curve2d.hxx create mode 100644 src/BRepAdaptor/BRepAdaptor_HCompCurve.hxx create mode 100644 src/BRepAdaptor/BRepAdaptor_HCompCurve_0.cxx create mode 100644 src/BRepAdaptor/BRepAdaptor_HCurve.hxx create mode 100644 src/BRepAdaptor/BRepAdaptor_HCurve2d.hxx create mode 100644 src/BRepAdaptor/BRepAdaptor_HCurve2d_0.cxx create mode 100644 src/BRepAdaptor/BRepAdaptor_HCurve_0.cxx create mode 100644 src/BRepAdaptor/BRepAdaptor_HSurface.hxx create mode 100644 src/BRepAdaptor/BRepAdaptor_HSurface_0.cxx delete mode 100644 src/BRepAdaptor/BRepAdaptor_Surface.cdl create mode 100644 src/BRepAdaptor/BRepAdaptor_Surface.hxx delete mode 100644 src/BRepAlgo/BRepAlgo.cdl create mode 100644 src/BRepAlgo/BRepAlgo.hxx delete mode 100644 src/BRepAlgo/BRepAlgo_AsDes.cdl create mode 100644 src/BRepAlgo/BRepAlgo_AsDes.hxx delete mode 100644 src/BRepAlgo/BRepAlgo_BooleanOperation.cdl create mode 100644 src/BRepAlgo/BRepAlgo_BooleanOperation.hxx delete mode 100644 src/BRepAlgo/BRepAlgo_BooleanOperations.cdl create mode 100644 src/BRepAlgo/BRepAlgo_BooleanOperations.hxx create mode 100644 src/BRepAlgo/BRepAlgo_CheckStatus.hxx delete mode 100644 src/BRepAlgo/BRepAlgo_Common.cdl create mode 100644 src/BRepAlgo/BRepAlgo_Common.hxx delete mode 100644 src/BRepAlgo/BRepAlgo_Cut.cdl create mode 100644 src/BRepAlgo/BRepAlgo_Cut.hxx delete mode 100644 src/BRepAlgo/BRepAlgo_DSAccess.cdl create mode 100644 src/BRepAlgo/BRepAlgo_DSAccess.hxx delete mode 100644 src/BRepAlgo/BRepAlgo_EdgeConnector.cdl create mode 100644 src/BRepAlgo/BRepAlgo_EdgeConnector.hxx delete mode 100644 src/BRepAlgo/BRepAlgo_FaceRestrictor.cdl create mode 100644 src/BRepAlgo/BRepAlgo_FaceRestrictor.hxx delete mode 100644 src/BRepAlgo/BRepAlgo_Fuse.cdl create mode 100644 src/BRepAlgo/BRepAlgo_Fuse.hxx delete mode 100644 src/BRepAlgo/BRepAlgo_Image.cdl create mode 100644 src/BRepAlgo/BRepAlgo_Image.hxx delete mode 100644 src/BRepAlgo/BRepAlgo_Loop.cdl create mode 100644 src/BRepAlgo/BRepAlgo_Loop.hxx delete mode 100644 src/BRepAlgo/BRepAlgo_NormalProjection.cdl create mode 100644 src/BRepAlgo/BRepAlgo_NormalProjection.hxx delete mode 100644 src/BRepAlgo/BRepAlgo_Section.cdl create mode 100644 src/BRepAlgo/BRepAlgo_Section.hxx delete mode 100644 src/BRepAlgo/BRepAlgo_Tool.cdl create mode 100644 src/BRepAlgo/BRepAlgo_Tool.hxx delete mode 100644 src/BRepAlgoAPI/BRepAlgoAPI.cdl delete mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_Algo.cdl create mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_Algo.hxx delete mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cdl create mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.hxx delete mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cdl create mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.hxx delete mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_Check.cdl create mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_Check.hxx delete mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_Common.cdl create mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_Common.hxx delete mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_Cut.cdl create mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_Cut.hxx delete mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_Fuse.cdl create mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_Fuse.hxx delete mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_Section.cdl create mode 100644 src/BRepAlgoAPI/BRepAlgoAPI_Section.hxx create mode 100644 src/BRepAlgoAPI/FILES delete mode 100644 src/BRepApprox/BRepApprox.cdl create mode 100644 src/BRepApprox/BRepApprox_Approx.hxx delete mode 100644 src/BRepApprox/BRepApprox_ApproxLine.cdl create mode 100644 src/BRepApprox/BRepApprox_ApproxLine.hxx create mode 100644 src/BRepApprox/BRepApprox_Approx_0.cxx create mode 100644 src/BRepApprox/BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_MyGradientbisOfTheComputeLineOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_0.cxx delete mode 100644 src/BRepApprox/BRepApprox_SurfaceTool.cdl create mode 100644 src/BRepApprox/BRepApprox_SurfaceTool.hxx create mode 100644 src/BRepApprox/BRepApprox_TheComputeLineBezierOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_TheComputeLineBezierOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_TheComputeLineOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_TheComputeLineOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_TheImpPrmSvSurfacesOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_TheImpPrmSvSurfacesOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_TheMultiLineOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_TheMultiLineOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_TheMultiLineToolOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_TheMultiLineToolOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_ThePrmPrmSvSurfacesOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_ThePrmPrmSvSurfacesOfApprox_0.cxx create mode 100644 src/BRepApprox/BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx create mode 100644 src/BRepApprox/BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_0.cxx create mode 100644 src/BRepApprox/FILES delete mode 100644 src/BRepBlend/BRepBlend.cdl delete mode 100644 src/BRepBlend/BRepBlend_AppFunc.cdl create mode 100644 src/BRepBlend/BRepBlend_AppFunc.hxx delete mode 100644 src/BRepBlend/BRepBlend_AppFuncRoot.cdl create mode 100644 src/BRepBlend/BRepBlend_AppFuncRoot.hxx delete mode 100644 src/BRepBlend/BRepBlend_AppFuncRst.cdl create mode 100644 src/BRepBlend/BRepBlend_AppFuncRst.hxx delete mode 100644 src/BRepBlend/BRepBlend_AppFuncRstRst.cdl create mode 100644 src/BRepBlend/BRepBlend_AppFuncRstRst.hxx create mode 100644 src/BRepBlend/BRepBlend_AppSurf.hxx create mode 100644 src/BRepBlend/BRepBlend_AppSurf_0.cxx delete mode 100644 src/BRepBlend/BRepBlend_AppSurface.cdl create mode 100644 src/BRepBlend/BRepBlend_AppSurface.hxx delete mode 100644 src/BRepBlend/BRepBlend_BlendTool.cdl create mode 100644 src/BRepBlend/BRepBlend_BlendTool.hxx create mode 100644 src/BRepBlend/BRepBlend_CSCircular.hxx create mode 100644 src/BRepBlend/BRepBlend_CSConstRad.hxx create mode 100644 src/BRepBlend/BRepBlend_CSWalking.hxx create mode 100644 src/BRepBlend/BRepBlend_CSWalking_0.cxx create mode 100644 src/BRepBlend/BRepBlend_ChAsym.hxx create mode 100644 src/BRepBlend/BRepBlend_ChAsymInv.hxx create mode 100644 src/BRepBlend/BRepBlend_ChamfInv.hxx create mode 100644 src/BRepBlend/BRepBlend_Chamfer.hxx create mode 100644 src/BRepBlend/BRepBlend_ConstRad.hxx create mode 100644 src/BRepBlend/BRepBlend_ConstRadInv.hxx delete mode 100644 src/BRepBlend/BRepBlend_CurvPointRadInv.cdl create mode 100644 src/BRepBlend/BRepBlend_CurvPointRadInv.hxx create mode 100644 src/BRepBlend/BRepBlend_EvolRad.hxx create mode 100644 src/BRepBlend/BRepBlend_EvolRadInv.hxx delete mode 100644 src/BRepBlend/BRepBlend_Extremity.cdl create mode 100644 src/BRepBlend/BRepBlend_Extremity.hxx delete mode 100644 src/BRepBlend/BRepBlend_HCurve2dTool.cdl create mode 100644 src/BRepBlend/BRepBlend_HCurve2dTool.hxx delete mode 100644 src/BRepBlend/BRepBlend_HCurveTool.cdl create mode 100644 src/BRepBlend/BRepBlend_HCurveTool.hxx delete mode 100644 src/BRepBlend/BRepBlend_Line.cdl create mode 100644 src/BRepBlend/BRepBlend_Line.hxx delete mode 100644 src/BRepBlend/BRepBlend_PointOnRst.cdl create mode 100644 src/BRepBlend/BRepBlend_PointOnRst.hxx delete mode 100644 src/BRepBlend/BRepBlend_RstRstConstRad.cdl create mode 100644 src/BRepBlend/BRepBlend_RstRstConstRad.hxx delete mode 100644 src/BRepBlend/BRepBlend_RstRstEvolRad.cdl create mode 100644 src/BRepBlend/BRepBlend_RstRstEvolRad.hxx delete mode 100644 src/BRepBlend/BRepBlend_RstRstLineBuilder.cdl create mode 100644 src/BRepBlend/BRepBlend_RstRstLineBuilder.hxx create mode 100644 src/BRepBlend/BRepBlend_Ruled.hxx create mode 100644 src/BRepBlend/BRepBlend_RuledInv.hxx delete mode 100644 src/BRepBlend/BRepBlend_SurfCurvConstRadInv.cdl create mode 100644 src/BRepBlend/BRepBlend_SurfCurvConstRadInv.hxx delete mode 100644 src/BRepBlend/BRepBlend_SurfCurvEvolRadInv.cdl create mode 100644 src/BRepBlend/BRepBlend_SurfCurvEvolRadInv.hxx delete mode 100644 src/BRepBlend/BRepBlend_SurfPointConstRadInv.cdl create mode 100644 src/BRepBlend/BRepBlend_SurfPointConstRadInv.hxx delete mode 100644 src/BRepBlend/BRepBlend_SurfPointEvolRadInv.cdl create mode 100644 src/BRepBlend/BRepBlend_SurfPointEvolRadInv.hxx delete mode 100644 src/BRepBlend/BRepBlend_SurfRstConstRad.cdl create mode 100644 src/BRepBlend/BRepBlend_SurfRstConstRad.hxx delete mode 100644 src/BRepBlend/BRepBlend_SurfRstEvolRad.cdl create mode 100644 src/BRepBlend/BRepBlend_SurfRstEvolRad.hxx delete mode 100644 src/BRepBlend/BRepBlend_SurfRstLineBuilder.cdl create mode 100644 src/BRepBlend/BRepBlend_SurfRstLineBuilder.hxx create mode 100644 src/BRepBlend/BRepBlend_Walking.hxx create mode 100644 src/BRepBlend/BRepBlend_Walking_0.cxx delete mode 100644 src/BRepBndLib/BRepBndLib.cdl create mode 100644 src/BRepBndLib/BRepBndLib.hxx create mode 100644 src/BRepBndLib/FILES delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_Collect.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_Collect.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_Command.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_Command.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_Copy.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_Copy.hxx create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_EdgeError.hxx create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_FaceError.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_FindPlane.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_FindPlane.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_GTransform.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_GTransform.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge2d.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge2d.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeFace.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeFace.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakePolygon.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakePolygon.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeShell.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeShell.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeSolid.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeSolid.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeVertex.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeVertex.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeWire.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_MakeWire.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_ModifyShape.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_ModifyShape.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_NurbsConvert.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_NurbsConvert.hxx create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_PipeError.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_Sewing.hxx create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_ShapeModification.hxx create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_ShellError.hxx delete mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_Transform.cdl create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_Transform.hxx create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_TransitionMode.hxx create mode 100644 src/BRepBuilderAPI/BRepBuilderAPI_WireError.hxx delete mode 100644 src/BRepCheck/BRepCheck.cdl create mode 100644 src/BRepCheck/BRepCheck.hxx delete mode 100644 src/BRepCheck/BRepCheck_Analyzer.cdl create mode 100644 src/BRepCheck/BRepCheck_Analyzer.hxx delete mode 100644 src/BRepCheck/BRepCheck_Edge.cdl create mode 100644 src/BRepCheck/BRepCheck_Edge.hxx delete mode 100644 src/BRepCheck/BRepCheck_Face.cdl create mode 100644 src/BRepCheck/BRepCheck_Face.hxx delete mode 100644 src/BRepCheck/BRepCheck_Result.cdl create mode 100644 src/BRepCheck/BRepCheck_Result.hxx delete mode 100644 src/BRepCheck/BRepCheck_Shell.cdl create mode 100644 src/BRepCheck/BRepCheck_Shell.hxx delete mode 100644 src/BRepCheck/BRepCheck_Solid.cdl create mode 100644 src/BRepCheck/BRepCheck_Solid.hxx create mode 100644 src/BRepCheck/BRepCheck_Status.hxx delete mode 100644 src/BRepCheck/BRepCheck_Vertex.cdl create mode 100644 src/BRepCheck/BRepCheck_Vertex.hxx delete mode 100644 src/BRepCheck/BRepCheck_Wire.cdl create mode 100644 src/BRepCheck/BRepCheck_Wire.hxx delete mode 100644 src/BRepClass/BRepClass.cdl delete mode 100644 src/BRepClass/BRepClass_Edge.cdl create mode 100644 src/BRepClass/BRepClass_Edge.hxx create mode 100644 src/BRepClass/BRepClass_FClass2dOfFClassifier.hxx create mode 100644 src/BRepClass/BRepClass_FClass2dOfFClassifier_0.cxx create mode 100644 src/BRepClass/BRepClass_FClassifier.hxx create mode 100644 src/BRepClass/BRepClass_FClassifier_0.cxx delete mode 100644 src/BRepClass/BRepClass_FaceClassifier.cdl create mode 100644 src/BRepClass/BRepClass_FaceClassifier.hxx delete mode 100644 src/BRepClass/BRepClass_FaceExplorer.cdl create mode 100644 src/BRepClass/BRepClass_FaceExplorer.hxx create mode 100644 src/BRepClass/BRepClass_FacePassiveClassifier.hxx create mode 100644 src/BRepClass/BRepClass_FacePassiveClassifier_0.cxx delete mode 100644 src/BRepClass/BRepClass_Intersector.cdl create mode 100644 src/BRepClass/BRepClass_Intersector.hxx create mode 100644 src/BRepClass/FILES delete mode 100644 src/BRepClass3d/BRepClass3d.cdl create mode 100644 src/BRepClass3d/BRepClass3d.hxx delete mode 100644 src/BRepClass3d/BRepClass3d_Intersector3d.cdl create mode 100644 src/BRepClass3d/BRepClass3d_Intersector3d.hxx delete mode 100644 src/BRepClass3d/BRepClass3d_SClassifier.cdl create mode 100644 src/BRepClass3d/BRepClass3d_SClassifier.hxx delete mode 100644 src/BRepClass3d/BRepClass3d_SolidClassifier.cdl create mode 100644 src/BRepClass3d/BRepClass3d_SolidClassifier.hxx delete mode 100644 src/BRepClass3d/BRepClass3d_SolidExplorer.cdl create mode 100644 src/BRepClass3d/BRepClass3d_SolidExplorer.hxx create mode 100644 src/BRepClass3d/BRepClass3d_SolidPassiveClassifier.hxx create mode 100644 src/BRepClass3d/BRepClass3d_SolidPassiveClassifier_0.cxx delete mode 100644 src/BRepExtrema/BRepExtrema.cdl create mode 100644 src/BRepExtrema/BRepExtrema_UnCompatibleShape.hxx delete mode 100644 src/BRepFeat/BRepFeat.cdl create mode 100644 src/BRepFeat/BRepFeat.hxx delete mode 100644 src/BRepFeat/BRepFeat_Builder.cdl create mode 100644 src/BRepFeat/BRepFeat_Builder.hxx delete mode 100644 src/BRepFeat/BRepFeat_Form.cdl create mode 100644 src/BRepFeat/BRepFeat_Form.hxx delete mode 100644 src/BRepFeat/BRepFeat_Gluer.cdl create mode 100644 src/BRepFeat/BRepFeat_Gluer.hxx delete mode 100644 src/BRepFeat/BRepFeat_MakeCylindricalHole.cdl create mode 100644 src/BRepFeat/BRepFeat_MakeCylindricalHole.hxx delete mode 100644 src/BRepFeat/BRepFeat_MakeDPrism.cdl create mode 100644 src/BRepFeat/BRepFeat_MakeDPrism.hxx delete mode 100644 src/BRepFeat/BRepFeat_MakeLinearForm.cdl create mode 100644 src/BRepFeat/BRepFeat_MakeLinearForm.hxx delete mode 100644 src/BRepFeat/BRepFeat_MakePipe.cdl create mode 100644 src/BRepFeat/BRepFeat_MakePipe.hxx delete mode 100644 src/BRepFeat/BRepFeat_MakePrism.cdl create mode 100644 src/BRepFeat/BRepFeat_MakePrism.hxx delete mode 100644 src/BRepFeat/BRepFeat_MakeRevol.cdl create mode 100644 src/BRepFeat/BRepFeat_MakeRevol.hxx delete mode 100644 src/BRepFeat/BRepFeat_MakeRevolutionForm.cdl create mode 100644 src/BRepFeat/BRepFeat_MakeRevolutionForm.hxx create mode 100644 src/BRepFeat/BRepFeat_PerfSelection.hxx delete mode 100644 src/BRepFeat/BRepFeat_RibSlot.cdl create mode 100644 src/BRepFeat/BRepFeat_RibSlot.hxx delete mode 100644 src/BRepFeat/BRepFeat_SplitShape.cdl create mode 100644 src/BRepFeat/BRepFeat_SplitShape.hxx create mode 100644 src/BRepFeat/BRepFeat_Status.hxx create mode 100644 src/BRepFeat/BRepFeat_StatusError.hxx delete mode 100644 src/BRepFill/BRepFill.cdl create mode 100644 src/BRepFill/BRepFill.hxx delete mode 100644 src/BRepFill/BRepFill_ACRLaw.cdl create mode 100644 src/BRepFill/BRepFill_ACRLaw.hxx delete mode 100644 src/BRepFill/BRepFill_ApproxSeewing.cdl create mode 100644 src/BRepFill/BRepFill_ApproxSeewing.hxx delete mode 100644 src/BRepFill/BRepFill_CompatibleWires.cdl create mode 100644 src/BRepFill/BRepFill_CompatibleWires.hxx create mode 100644 src/BRepFill/BRepFill_ComputeCLine.hxx create mode 100644 src/BRepFill/BRepFill_ComputeCLine_0.cxx delete mode 100644 src/BRepFill/BRepFill_CurveConstraint.cdl create mode 100644 src/BRepFill/BRepFill_CurveConstraint.hxx delete mode 100644 src/BRepFill/BRepFill_Draft.cdl create mode 100644 src/BRepFill/BRepFill_Draft.hxx delete mode 100644 src/BRepFill/BRepFill_DraftLaw.cdl create mode 100644 src/BRepFill/BRepFill_DraftLaw.hxx delete mode 100644 src/BRepFill/BRepFill_Edge3DLaw.cdl create mode 100644 src/BRepFill/BRepFill_Edge3DLaw.hxx delete mode 100644 src/BRepFill/BRepFill_EdgeFaceAndOrder.cdl create mode 100644 src/BRepFill/BRepFill_EdgeFaceAndOrder.hxx delete mode 100644 src/BRepFill/BRepFill_EdgeOnSurfLaw.cdl create mode 100644 src/BRepFill/BRepFill_EdgeOnSurfLaw.hxx delete mode 100644 src/BRepFill/BRepFill_Evolved.cdl create mode 100644 src/BRepFill/BRepFill_Evolved.hxx delete mode 100644 src/BRepFill/BRepFill_FaceAndOrder.cdl create mode 100644 src/BRepFill/BRepFill_FaceAndOrder.hxx delete mode 100644 src/BRepFill/BRepFill_Filling.cdl create mode 100644 src/BRepFill/BRepFill_Filling.hxx delete mode 100644 src/BRepFill/BRepFill_Generator.cdl create mode 100644 src/BRepFill/BRepFill_Generator.hxx delete mode 100644 src/BRepFill/BRepFill_LocationLaw.cdl create mode 100644 src/BRepFill/BRepFill_LocationLaw.hxx delete mode 100644 src/BRepFill/BRepFill_NSections.cdl create mode 100644 src/BRepFill/BRepFill_NSections.hxx delete mode 100644 src/BRepFill/BRepFill_OffsetAncestors.cdl create mode 100644 src/BRepFill/BRepFill_OffsetAncestors.hxx delete mode 100644 src/BRepFill/BRepFill_OffsetWire.cdl create mode 100644 src/BRepFill/BRepFill_OffsetWire.hxx delete mode 100644 src/BRepFill/BRepFill_Pipe.cdl create mode 100644 src/BRepFill/BRepFill_Pipe.hxx delete mode 100644 src/BRepFill/BRepFill_PipeShell.cdl create mode 100644 src/BRepFill/BRepFill_PipeShell.hxx delete mode 100644 src/BRepFill/BRepFill_Section.cdl create mode 100644 src/BRepFill/BRepFill_Section.hxx delete mode 100644 src/BRepFill/BRepFill_SectionLaw.cdl create mode 100644 src/BRepFill/BRepFill_SectionLaw.hxx delete mode 100644 src/BRepFill/BRepFill_SectionPlacement.cdl create mode 100644 src/BRepFill/BRepFill_SectionPlacement.hxx delete mode 100644 src/BRepFill/BRepFill_ShapeLaw.cdl create mode 100644 src/BRepFill/BRepFill_ShapeLaw.hxx delete mode 100644 src/BRepFill/BRepFill_Sweep.cdl create mode 100644 src/BRepFill/BRepFill_Sweep.hxx create mode 100644 src/BRepFill/BRepFill_TransitionStyle.hxx delete mode 100644 src/BRepFill/BRepFill_TrimEdgeTool.cdl create mode 100644 src/BRepFill/BRepFill_TrimEdgeTool.hxx delete mode 100644 src/BRepFill/BRepFill_TrimShellCorner.cdl create mode 100644 src/BRepFill/BRepFill_TrimShellCorner.hxx delete mode 100644 src/BRepFill/BRepFill_TrimSurfaceTool.cdl create mode 100644 src/BRepFill/BRepFill_TrimSurfaceTool.hxx create mode 100644 src/BRepFill/BRepFill_TypeOfContact.hxx delete mode 100644 src/BRepFilletAPI/BRepFilletAPI.cdl delete mode 100644 src/BRepFilletAPI/BRepFilletAPI_LocalOperation.cdl create mode 100644 src/BRepFilletAPI/BRepFilletAPI_LocalOperation.hxx delete mode 100644 src/BRepFilletAPI/BRepFilletAPI_MakeChamfer.cdl create mode 100644 src/BRepFilletAPI/BRepFilletAPI_MakeChamfer.hxx delete mode 100644 src/BRepFilletAPI/BRepFilletAPI_MakeFillet.cdl create mode 100644 src/BRepFilletAPI/BRepFilletAPI_MakeFillet.hxx delete mode 100644 src/BRepFilletAPI/BRepFilletAPI_MakeFillet2d.cdl create mode 100644 src/BRepFilletAPI/BRepFilletAPI_MakeFillet2d.hxx create mode 100644 src/BRepFilletAPI/FILES delete mode 100644 src/BRepGProp/BRepGProp.cdl create mode 100644 src/BRepGProp/BRepGProp.hxx delete mode 100644 src/BRepGProp/BRepGProp_Cinert.cdl create mode 100644 src/BRepGProp/BRepGProp_Cinert.hxx delete mode 100644 src/BRepGProp/BRepGProp_Domain.cdl create mode 100644 src/BRepGProp/BRepGProp_Domain.hxx delete mode 100644 src/BRepGProp/BRepGProp_EdgeTool.cdl create mode 100644 src/BRepGProp/BRepGProp_EdgeTool.hxx delete mode 100644 src/BRepGProp/BRepGProp_Face.cdl create mode 100644 src/BRepGProp/BRepGProp_Face.hxx delete mode 100644 src/BRepGProp/BRepGProp_Sinert.cdl create mode 100644 src/BRepGProp/BRepGProp_Sinert.hxx delete mode 100644 src/BRepGProp/BRepGProp_TFunction.cdl create mode 100644 src/BRepGProp/BRepGProp_TFunction.hxx delete mode 100644 src/BRepGProp/BRepGProp_UFunction.cdl create mode 100644 src/BRepGProp/BRepGProp_UFunction.hxx delete mode 100644 src/BRepGProp/BRepGProp_Vinert.cdl create mode 100644 src/BRepGProp/BRepGProp_Vinert.hxx delete mode 100644 src/BRepGProp/BRepGProp_VinertGK.cdl create mode 100644 src/BRepGProp/BRepGProp_VinertGK.hxx delete mode 100644 src/BRepIntCurveSurface/BRepIntCurveSurface.cdl delete mode 100644 src/BRepIntCurveSurface/BRepIntCurveSurface_Inter.cdl create mode 100644 src/BRepIntCurveSurface/BRepIntCurveSurface_Inter.hxx create mode 100644 src/BRepIntCurveSurface/FILES delete mode 100644 src/BRepLProp/BRepLProp.cdl create mode 100644 src/BRepLProp/BRepLProp.hxx create mode 100644 src/BRepLProp/BRepLProp_CLProps.hxx create mode 100644 src/BRepLProp/BRepLProp_CLProps_0.cxx delete mode 100644 src/BRepLProp/BRepLProp_CurveTool.cdl create mode 100644 src/BRepLProp/BRepLProp_CurveTool.hxx create mode 100644 src/BRepLProp/BRepLProp_SLProps.hxx create mode 100644 src/BRepLProp/BRepLProp_SLProps_0.cxx delete mode 100644 src/BRepLProp/BRepLProp_SurfaceTool.cdl create mode 100644 src/BRepLProp/BRepLProp_SurfaceTool.hxx create mode 100644 src/BRepLProp/FILES delete mode 100644 src/BRepLib/BRepLib.cdl create mode 100644 src/BRepLib/BRepLib.hxx delete mode 100644 src/BRepLib/BRepLib_CheckCurveOnSurface.cdl create mode 100644 src/BRepLib/BRepLib_CheckCurveOnSurface.hxx delete mode 100644 src/BRepLib/BRepLib_Command.cdl create mode 100644 src/BRepLib/BRepLib_Command.hxx create mode 100644 src/BRepLib/BRepLib_EdgeError.hxx create mode 100644 src/BRepLib/BRepLib_FaceError.hxx delete mode 100644 src/BRepLib/BRepLib_FindSurface.cdl create mode 100644 src/BRepLib/BRepLib_FindSurface.hxx delete mode 100644 src/BRepLib/BRepLib_FuseEdges.cdl create mode 100644 src/BRepLib/BRepLib_FuseEdges.hxx delete mode 100644 src/BRepLib/BRepLib_MakeEdge.cdl create mode 100644 src/BRepLib/BRepLib_MakeEdge.hxx delete mode 100644 src/BRepLib/BRepLib_MakeEdge2d.cdl create mode 100644 src/BRepLib/BRepLib_MakeEdge2d.hxx delete mode 100644 src/BRepLib/BRepLib_MakeFace.cdl create mode 100644 src/BRepLib/BRepLib_MakeFace.hxx delete mode 100644 src/BRepLib/BRepLib_MakePolygon.cdl create mode 100644 src/BRepLib/BRepLib_MakePolygon.hxx delete mode 100644 src/BRepLib/BRepLib_MakeShape.cdl create mode 100644 src/BRepLib/BRepLib_MakeShape.hxx delete mode 100644 src/BRepLib/BRepLib_MakeShell.cdl create mode 100644 src/BRepLib/BRepLib_MakeShell.hxx delete mode 100644 src/BRepLib/BRepLib_MakeSolid.cdl create mode 100644 src/BRepLib/BRepLib_MakeSolid.hxx delete mode 100644 src/BRepLib/BRepLib_MakeVertex.cdl create mode 100644 src/BRepLib/BRepLib_MakeVertex.hxx delete mode 100644 src/BRepLib/BRepLib_MakeWire.cdl create mode 100644 src/BRepLib/BRepLib_MakeWire.hxx create mode 100644 src/BRepLib/BRepLib_ShapeModification.hxx create mode 100644 src/BRepLib/BRepLib_ShellError.hxx create mode 100644 src/BRepLib/BRepLib_WireError.hxx delete mode 100644 src/BRepMAT2d/BRepMAT2d.cdl delete mode 100644 src/BRepMAT2d/BRepMAT2d_BisectingLocus.cdl create mode 100644 src/BRepMAT2d/BRepMAT2d_BisectingLocus.hxx delete mode 100644 src/BRepMAT2d/BRepMAT2d_Explorer.cdl create mode 100644 src/BRepMAT2d/BRepMAT2d_Explorer.hxx delete mode 100644 src/BRepMAT2d/BRepMAT2d_LinkTopoBilo.cdl create mode 100644 src/BRepMAT2d/BRepMAT2d_LinkTopoBilo.hxx delete mode 100644 src/BRepMesh/BRepMesh_CMPLRS.edl delete mode 100644 src/BRepOffset/BRepOffset.cdl create mode 100644 src/BRepOffset/BRepOffset.hxx delete mode 100644 src/BRepOffset/BRepOffset_Analyse.cdl create mode 100644 src/BRepOffset/BRepOffset_Analyse.hxx create mode 100644 src/BRepOffset/BRepOffset_Error.hxx delete mode 100644 src/BRepOffset/BRepOffset_Inter2d.cdl create mode 100644 src/BRepOffset/BRepOffset_Inter2d.hxx delete mode 100644 src/BRepOffset/BRepOffset_Inter3d.cdl create mode 100644 src/BRepOffset/BRepOffset_Inter3d.hxx delete mode 100644 src/BRepOffset/BRepOffset_Interval.cdl create mode 100644 src/BRepOffset/BRepOffset_Interval.hxx delete mode 100644 src/BRepOffset/BRepOffset_MakeLoops.cdl create mode 100644 src/BRepOffset/BRepOffset_MakeLoops.hxx delete mode 100644 src/BRepOffset/BRepOffset_MakeOffset.cdl create mode 100644 src/BRepOffset/BRepOffset_MakeOffset.hxx create mode 100644 src/BRepOffset/BRepOffset_Mode.hxx delete mode 100644 src/BRepOffset/BRepOffset_Offset.cdl create mode 100644 src/BRepOffset/BRepOffset_Offset.hxx create mode 100644 src/BRepOffset/BRepOffset_Status.hxx delete mode 100644 src/BRepOffset/BRepOffset_Tool.cdl create mode 100644 src/BRepOffset/BRepOffset_Tool.hxx create mode 100644 src/BRepOffset/BRepOffset_Type.hxx delete mode 100644 src/BRepOffsetAPI/BRepOffsetAPI.cdl delete mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_DraftAngle.cdl create mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_DraftAngle.hxx delete mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_FindContigousEdges.cdl create mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_FindContigousEdges.hxx delete mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakeDraft.cdl create mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakeDraft.hxx delete mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakeEvolved.cdl create mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakeEvolved.hxx delete mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakeFilling.cdl create mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakeFilling.hxx delete mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakeOffset.cdl create mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakeOffset.hxx delete mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakeOffsetShape.cdl create mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakeOffsetShape.hxx delete mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.cdl create mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakePipe.hxx delete mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakePipeShell.cdl create mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakePipeShell.hxx delete mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakeThickSolid.cdl create mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MakeThickSolid.hxx delete mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MiddlePath.cdl create mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_MiddlePath.hxx delete mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_NormalProjection.cdl create mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_NormalProjection.hxx create mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_Sewing.hxx delete mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.cdl create mode 100644 src/BRepOffsetAPI/BRepOffsetAPI_ThruSections.hxx delete mode 100644 src/BRepPrim/BRepPrim.cdl delete mode 100644 src/BRepPrim/BRepPrim_Builder.cdl create mode 100644 src/BRepPrim/BRepPrim_Builder.hxx delete mode 100644 src/BRepPrim/BRepPrim_Cone.cdl create mode 100644 src/BRepPrim/BRepPrim_Cone.hxx delete mode 100644 src/BRepPrim/BRepPrim_Cylinder.cdl create mode 100644 src/BRepPrim/BRepPrim_Cylinder.hxx create mode 100644 src/BRepPrim/BRepPrim_Direction.hxx delete mode 100644 src/BRepPrim/BRepPrim_FaceBuilder.cdl create mode 100644 src/BRepPrim/BRepPrim_FaceBuilder.hxx delete mode 100644 src/BRepPrim/BRepPrim_GWedge.cdl create mode 100644 src/BRepPrim/BRepPrim_GWedge.hxx delete mode 100644 src/BRepPrim/BRepPrim_OneAxis.cdl create mode 100644 src/BRepPrim/BRepPrim_OneAxis.hxx delete mode 100644 src/BRepPrim/BRepPrim_Revolution.cdl create mode 100644 src/BRepPrim/BRepPrim_Revolution.hxx delete mode 100644 src/BRepPrim/BRepPrim_Sphere.cdl create mode 100644 src/BRepPrim/BRepPrim_Sphere.hxx delete mode 100644 src/BRepPrim/BRepPrim_Torus.cdl create mode 100644 src/BRepPrim/BRepPrim_Torus.hxx delete mode 100644 src/BRepPrim/BRepPrim_Wedge.cdl create mode 100644 src/BRepPrim/BRepPrim_Wedge.hxx create mode 100644 src/BRepPrim/FILES delete mode 100644 src/BRepPrimAPI/BRepPrimAPI.cdl delete mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeBox.cdl create mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeBox.hxx delete mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeCone.cdl create mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeCone.hxx delete mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeCylinder.cdl create mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeCylinder.hxx delete mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeHalfSpace.cdl create mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeHalfSpace.hxx delete mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeOneAxis.cdl create mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeOneAxis.hxx delete mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakePrism.cdl create mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakePrism.hxx delete mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeRevol.cdl create mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeRevol.hxx delete mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeRevolution.cdl create mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeRevolution.hxx delete mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeSphere.cdl create mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeSphere.hxx delete mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeSweep.cdl create mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeSweep.hxx delete mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeTorus.cdl create mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeTorus.hxx delete mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeWedge.cdl create mode 100644 src/BRepPrimAPI/BRepPrimAPI_MakeWedge.hxx create mode 100644 src/BRepPrimAPI/FILES delete mode 100644 src/BRepProj/BRepProj.cdl delete mode 100644 src/BRepProj/BRepProj_Projection.cdl create mode 100644 src/BRepProj/BRepProj_Projection.hxx create mode 100644 src/BRepProj/FILES delete mode 100644 src/BRepSweep/BRepSweep.cdl delete mode 100644 src/BRepSweep/BRepSweep_Builder.cdl create mode 100644 src/BRepSweep/BRepSweep_Builder.hxx delete mode 100644 src/BRepSweep/BRepSweep_Iterator.cdl create mode 100644 src/BRepSweep/BRepSweep_Iterator.hxx delete mode 100644 src/BRepSweep/BRepSweep_NumLinearRegularSweep.cdl create mode 100644 src/BRepSweep/BRepSweep_NumLinearRegularSweep.hxx delete mode 100644 src/BRepSweep/BRepSweep_Prism.cdl create mode 100644 src/BRepSweep/BRepSweep_Prism.hxx delete mode 100644 src/BRepSweep/BRepSweep_Revol.cdl create mode 100644 src/BRepSweep/BRepSweep_Revol.hxx delete mode 100644 src/BRepSweep/BRepSweep_Rotation.cdl create mode 100644 src/BRepSweep/BRepSweep_Rotation.hxx delete mode 100644 src/BRepSweep/BRepSweep_Tool.cdl create mode 100644 src/BRepSweep/BRepSweep_Tool.hxx delete mode 100644 src/BRepSweep/BRepSweep_Translation.cdl create mode 100644 src/BRepSweep/BRepSweep_Translation.hxx delete mode 100644 src/BRepSweep/BRepSweep_Trsf.cdl create mode 100644 src/BRepSweep/BRepSweep_Trsf.hxx create mode 100644 src/BRepSweep/FILES delete mode 100644 src/BRepTest/BRepTest.cdl create mode 100644 src/BRepTest/BRepTest.hxx delete mode 100644 src/BRepToIGES/BRepToIGES.cdl delete mode 100644 src/BRepToIGES/BRepToIGES_BREntity.cdl create mode 100644 src/BRepToIGES/BRepToIGES_BREntity.hxx delete mode 100644 src/BRepToIGES/BRepToIGES_BRShell.cdl create mode 100644 src/BRepToIGES/BRepToIGES_BRShell.hxx delete mode 100644 src/BRepToIGES/BRepToIGES_BRSolid.cdl create mode 100644 src/BRepToIGES/BRepToIGES_BRSolid.hxx delete mode 100644 src/BRepToIGES/BRepToIGES_BRWire.cdl create mode 100644 src/BRepToIGES/BRepToIGES_BRWire.hxx create mode 100644 src/BRepToIGES/FILES delete mode 100644 src/BRepToIGESBRep/BRepToIGESBRep.cdl delete mode 100644 src/BRepToIGESBRep/BRepToIGESBRep_Entity.cdl create mode 100644 src/BRepToIGESBRep/BRepToIGESBRep_Entity.hxx create mode 100644 src/BRepToIGESBRep/FILES delete mode 100644 src/BRepTools/BRepTools.cdl create mode 100644 src/BRepTools/BRepTools.hxx delete mode 100644 src/BRepTools/BRepTools_GTrsfModification.cdl create mode 100644 src/BRepTools/BRepTools_GTrsfModification.hxx delete mode 100644 src/BRepTools/BRepTools_Modification.cdl create mode 100644 src/BRepTools/BRepTools_Modification.hxx delete mode 100644 src/BRepTools/BRepTools_Modifier.cdl create mode 100644 src/BRepTools/BRepTools_Modifier.hxx delete mode 100644 src/BRepTools/BRepTools_NurbsConvertModification.cdl create mode 100644 src/BRepTools/BRepTools_NurbsConvertModification.hxx delete mode 100644 src/BRepTools/BRepTools_Quilt.cdl create mode 100644 src/BRepTools/BRepTools_Quilt.hxx delete mode 100644 src/BRepTools/BRepTools_ReShape.cdl create mode 100644 src/BRepTools/BRepTools_ReShape.hxx delete mode 100644 src/BRepTools/BRepTools_ShapeSet.cdl create mode 100644 src/BRepTools/BRepTools_ShapeSet.hxx delete mode 100644 src/BRepTools/BRepTools_Substitution.cdl create mode 100644 src/BRepTools/BRepTools_Substitution.hxx delete mode 100644 src/BRepTools/BRepTools_TrsfModification.cdl create mode 100644 src/BRepTools/BRepTools_TrsfModification.hxx delete mode 100644 src/BRepTools/BRepTools_WireExplorer.cdl create mode 100644 src/BRepTools/BRepTools_WireExplorer.hxx delete mode 100644 src/BRepTopAdaptor/BRepTopAdaptor.cdl delete mode 100644 src/BRepTopAdaptor/BRepTopAdaptor_FClass2d.cdl create mode 100644 src/BRepTopAdaptor/BRepTopAdaptor_FClass2d.hxx delete mode 100644 src/BRepTopAdaptor/BRepTopAdaptor_HVertex.cdl create mode 100644 src/BRepTopAdaptor/BRepTopAdaptor_HVertex.hxx create mode 100644 src/BRepTopAdaptor/BRepTopAdaptor_SeqOfPtr.hxx delete mode 100644 src/BRepTopAdaptor/BRepTopAdaptor_Tool.cdl create mode 100644 src/BRepTopAdaptor/BRepTopAdaptor_Tool.hxx delete mode 100644 src/BRepTopAdaptor/BRepTopAdaptor_TopolTool.cdl create mode 100644 src/BRepTopAdaptor/BRepTopAdaptor_TopolTool.hxx delete mode 100644 src/BSplCLib/BSplCLib.cdl create mode 100644 src/BSplCLib/BSplCLib.hxx create mode 100644 src/BSplCLib/BSplCLib_KnotDistribution.hxx create mode 100644 src/BSplCLib/BSplCLib_MultDistribution.hxx delete mode 100644 src/BSplSLib/BSplSLib.cdl create mode 100644 src/BSplSLib/BSplSLib.hxx delete mode 100644 src/BiTgte/BiTgte.cdl delete mode 100644 src/BiTgte/BiTgte_Blend.cdl create mode 100644 src/BiTgte/BiTgte_Blend.hxx create mode 100644 src/BiTgte/BiTgte_ContactType.hxx delete mode 100644 src/BiTgte/BiTgte_CurveOnEdge.cdl create mode 100644 src/BiTgte/BiTgte_CurveOnEdge.hxx delete mode 100644 src/BiTgte/BiTgte_CurveOnVertex.cdl create mode 100644 src/BiTgte/BiTgte_CurveOnVertex.hxx create mode 100644 src/BiTgte/BiTgte_HCurveOnEdge.hxx create mode 100644 src/BiTgte/BiTgte_HCurveOnEdge_0.cxx create mode 100644 src/BiTgte/BiTgte_HCurveOnVertex.hxx create mode 100644 src/BiTgte/BiTgte_HCurveOnVertex_0.cxx delete mode 100644 src/BinDrivers/BinDrivers.cdl create mode 100644 src/BinDrivers/BinDrivers.hxx delete mode 100644 src/BinDrivers/BinDrivers_DocumentRetrievalDriver.cdl create mode 100644 src/BinDrivers/BinDrivers_DocumentRetrievalDriver.hxx delete mode 100644 src/BinDrivers/BinDrivers_DocumentStorageDriver.cdl create mode 100644 src/BinDrivers/BinDrivers_DocumentStorageDriver.hxx delete mode 100644 src/BinLDrivers/BinLDrivers.cdl create mode 100644 src/BinLDrivers/BinLDrivers.hxx delete mode 100644 src/BinLDrivers/BinLDrivers_DocumentRetrievalDriver.cdl create mode 100644 src/BinLDrivers/BinLDrivers_DocumentRetrievalDriver.hxx delete mode 100644 src/BinLDrivers/BinLDrivers_DocumentSection.cdl create mode 100644 src/BinLDrivers/BinLDrivers_DocumentSection.hxx delete mode 100644 src/BinLDrivers/BinLDrivers_DocumentStorageDriver.cdl create mode 100644 src/BinLDrivers/BinLDrivers_DocumentStorageDriver.hxx delete mode 100644 src/BinMDF/BinMDF.cdl create mode 100644 src/BinMDF/BinMDF.hxx delete mode 100644 src/BinMDF/BinMDF_ADriver.cdl create mode 100644 src/BinMDF/BinMDF_ADriver.hxx delete mode 100644 src/BinMDF/BinMDF_ADriverTable.cdl create mode 100644 src/BinMDF/BinMDF_ADriverTable.hxx delete mode 100644 src/BinMDF/BinMDF_ReferenceDriver.cdl create mode 100644 src/BinMDF/BinMDF_ReferenceDriver.hxx create mode 100644 src/BinMDF/BinMDF_StringIdMap.hxx delete mode 100644 src/BinMDF/BinMDF_TagSourceDriver.cdl create mode 100644 src/BinMDF/BinMDF_TagSourceDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd.cdl create mode 100644 src/BinMDataStd/BinMDataStd.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_AsciiStringDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_AsciiStringDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_BooleanArrayDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_BooleanArrayDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_BooleanListDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_BooleanListDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_ByteArrayDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_ByteArrayDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_CommentDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_CommentDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_DirectoryDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_DirectoryDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_ExpressionDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_ExpressionDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_ExtStringArrayDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_ExtStringArrayDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_ExtStringListDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_ExtStringListDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_IntPackedMapDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_IntPackedMapDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_IntegerArrayDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_IntegerArrayDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_IntegerDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_IntegerDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_IntegerListDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_IntegerListDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_NameDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_NameDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_NamedDataDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_NamedDataDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_NoteBookDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_NoteBookDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_RealArrayDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_RealArrayDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_RealDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_RealDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_RealListDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_RealListDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_ReferenceArrayDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_ReferenceArrayDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_ReferenceListDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_ReferenceListDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_RelationDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_RelationDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_TickDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_TickDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_TreeNodeDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_TreeNodeDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_UAttributeDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_UAttributeDriver.hxx delete mode 100644 src/BinMDataStd/BinMDataStd_VariableDriver.cdl create mode 100644 src/BinMDataStd/BinMDataStd_VariableDriver.hxx create mode 100644 src/BinMDataStd/FILES delete mode 100644 src/BinMDataXtd/BinMDataXtd.cdl create mode 100644 src/BinMDataXtd/BinMDataXtd.hxx delete mode 100644 src/BinMDataXtd/BinMDataXtd_AxisDriver.cdl create mode 100644 src/BinMDataXtd/BinMDataXtd_AxisDriver.hxx delete mode 100644 src/BinMDataXtd/BinMDataXtd_ConstraintDriver.cdl create mode 100644 src/BinMDataXtd/BinMDataXtd_ConstraintDriver.hxx delete mode 100644 src/BinMDataXtd/BinMDataXtd_GeometryDriver.cdl create mode 100644 src/BinMDataXtd/BinMDataXtd_GeometryDriver.hxx delete mode 100644 src/BinMDataXtd/BinMDataXtd_PatternStdDriver.cdl create mode 100644 src/BinMDataXtd/BinMDataXtd_PatternStdDriver.hxx delete mode 100644 src/BinMDataXtd/BinMDataXtd_PlacementDriver.cdl create mode 100644 src/BinMDataXtd/BinMDataXtd_PlacementDriver.hxx delete mode 100644 src/BinMDataXtd/BinMDataXtd_PlaneDriver.cdl create mode 100644 src/BinMDataXtd/BinMDataXtd_PlaneDriver.hxx delete mode 100644 src/BinMDataXtd/BinMDataXtd_PointDriver.cdl create mode 100644 src/BinMDataXtd/BinMDataXtd_PointDriver.hxx delete mode 100644 src/BinMDataXtd/BinMDataXtd_ShapeDriver.cdl create mode 100644 src/BinMDataXtd/BinMDataXtd_ShapeDriver.hxx create mode 100644 src/BinMDataXtd/FILES delete mode 100644 src/BinMDocStd/BinMDocStd.cdl create mode 100644 src/BinMDocStd/BinMDocStd.hxx delete mode 100644 src/BinMDocStd/BinMDocStd_XLinkDriver.cdl create mode 100644 src/BinMDocStd/BinMDocStd_XLinkDriver.hxx create mode 100644 src/BinMDocStd/FILES delete mode 100644 src/BinMFunction/BinMFunction.cdl create mode 100644 src/BinMFunction/BinMFunction.hxx delete mode 100644 src/BinMFunction/BinMFunction_FunctionDriver.cdl create mode 100644 src/BinMFunction/BinMFunction_FunctionDriver.hxx delete mode 100644 src/BinMFunction/BinMFunction_GraphNodeDriver.cdl create mode 100644 src/BinMFunction/BinMFunction_GraphNodeDriver.hxx delete mode 100644 src/BinMFunction/BinMFunction_ScopeDriver.cdl create mode 100644 src/BinMFunction/BinMFunction_ScopeDriver.hxx create mode 100644 src/BinMFunction/FILES delete mode 100644 src/BinMNaming/BinMNaming.cdl create mode 100644 src/BinMNaming/BinMNaming.hxx delete mode 100644 src/BinMNaming/BinMNaming_NamedShapeDriver.cdl create mode 100644 src/BinMNaming/BinMNaming_NamedShapeDriver.hxx delete mode 100644 src/BinMNaming/BinMNaming_NamingDriver.cdl create mode 100644 src/BinMNaming/BinMNaming_NamingDriver.hxx create mode 100644 src/BinMNaming/FILES delete mode 100644 src/BinMPrsStd/BinMPrsStd.cdl create mode 100644 src/BinMPrsStd/BinMPrsStd.hxx delete mode 100644 src/BinMPrsStd/BinMPrsStd_AISPresentationDriver.cdl create mode 100644 src/BinMPrsStd/BinMPrsStd_AISPresentationDriver.hxx delete mode 100644 src/BinMPrsStd/BinMPrsStd_PositionDriver.cdl create mode 100644 src/BinMPrsStd/BinMPrsStd_PositionDriver.hxx create mode 100644 src/BinMPrsStd/FILES delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_CentroidDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_CentroidDriver.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_ColorDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_ColorDriver.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_ColorToolDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_ColorToolDriver.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_DatumDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_DatumDriver.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_DimTolDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_DimTolDriver.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_DimTolToolDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_DimTolToolDriver.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_DocumentToolDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_DocumentToolDriver.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_GraphNodeDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_GraphNodeDriver.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_LayerToolDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_LayerToolDriver.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_LocationDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_LocationDriver.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_MaterialDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_MaterialDriver.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_MaterialToolDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_MaterialToolDriver.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_ShapeToolDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_ShapeToolDriver.hxx delete mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.cdl create mode 100644 src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.hxx create mode 100644 src/BinMXCAFDoc/FILES delete mode 100644 src/BinObjMgt/BinObjMgt.cdl delete mode 100644 src/BinObjMgt/BinObjMgt_Persistent.cdl create mode 100644 src/BinObjMgt/BinObjMgt_Persistent.hxx create mode 100644 src/BinObjMgt/BinObjMgt_RRelocationTable.hxx create mode 100644 src/BinObjMgt/BinObjMgt_SRelocationTable.hxx delete mode 100644 src/BinTools/BinTools.cdl create mode 100644 src/BinTools/BinTools.hxx delete mode 100644 src/BinTools/BinTools_Curve2dSet.cdl create mode 100644 src/BinTools/BinTools_Curve2dSet.hxx delete mode 100644 src/BinTools/BinTools_CurveSet.cdl create mode 100644 src/BinTools/BinTools_CurveSet.hxx delete mode 100644 src/BinTools/BinTools_LocationSet.cdl create mode 100644 src/BinTools/BinTools_LocationSet.hxx create mode 100644 src/BinTools/BinTools_LocationSetPtr.hxx delete mode 100644 src/BinTools/BinTools_ShapeSet.cdl create mode 100644 src/BinTools/BinTools_ShapeSet.hxx delete mode 100644 src/BinTools/BinTools_SurfaceSet.cdl create mode 100644 src/BinTools/BinTools_SurfaceSet.hxx create mode 100644 src/BinTools/FILES delete mode 100644 src/BinXCAFDrivers/BinXCAFDrivers.cdl create mode 100644 src/BinXCAFDrivers/BinXCAFDrivers.hxx delete mode 100644 src/BinXCAFDrivers/BinXCAFDrivers_DocumentRetrievalDriver.cdl create mode 100644 src/BinXCAFDrivers/BinXCAFDrivers_DocumentRetrievalDriver.hxx delete mode 100644 src/BinXCAFDrivers/BinXCAFDrivers_DocumentStorageDriver.cdl create mode 100644 src/BinXCAFDrivers/BinXCAFDrivers_DocumentStorageDriver.hxx create mode 100644 src/BinXCAFDrivers/FILES delete mode 100644 src/Bisector/Bisector.cdl create mode 100644 src/Bisector/Bisector.hxx delete mode 100644 src/Bisector/Bisector_Bisec.cdl create mode 100644 src/Bisector/Bisector_Bisec.hxx delete mode 100644 src/Bisector/Bisector_BisecAna.cdl create mode 100644 src/Bisector/Bisector_BisecAna.hxx delete mode 100644 src/Bisector/Bisector_BisecCC.cdl create mode 100644 src/Bisector/Bisector_BisecCC.hxx delete mode 100644 src/Bisector/Bisector_BisecPC.cdl create mode 100644 src/Bisector/Bisector_BisecPC.hxx delete mode 100644 src/Bisector/Bisector_Curve.cdl create mode 100644 src/Bisector/Bisector_Curve.hxx delete mode 100644 src/Bisector/Bisector_FunctionH.cdl create mode 100644 src/Bisector/Bisector_FunctionH.hxx delete mode 100644 src/Bisector/Bisector_FunctionInter.cdl create mode 100644 src/Bisector/Bisector_FunctionInter.hxx delete mode 100644 src/Bisector/Bisector_Inter.cdl create mode 100644 src/Bisector/Bisector_Inter.hxx delete mode 100644 src/Bisector/Bisector_PointOnBis.cdl create mode 100644 src/Bisector/Bisector_PointOnBis.hxx delete mode 100644 src/Bisector/Bisector_PolyBis.cdl create mode 100644 src/Bisector/Bisector_PolyBis.hxx create mode 100644 src/Bisector/FILES delete mode 100644 src/Blend/Blend.cdl delete mode 100644 src/Blend/Blend_AppFunction.cdl create mode 100644 src/Blend/Blend_AppFunction.hxx delete mode 100644 src/Blend/Blend_CSFunction.cdl create mode 100644 src/Blend/Blend_CSFunction.hxx delete mode 100644 src/Blend/Blend_CSWalking.cdl delete mode 100644 src/Blend/Blend_CurvPointFuncInv.cdl create mode 100644 src/Blend/Blend_CurvPointFuncInv.hxx create mode 100644 src/Blend/Blend_DecrochStatus.hxx delete mode 100644 src/Blend/Blend_FuncInv.cdl create mode 100644 src/Blend/Blend_FuncInv.hxx delete mode 100644 src/Blend/Blend_Function.cdl create mode 100644 src/Blend/Blend_Function.hxx delete mode 100644 src/Blend/Blend_Point.cdl create mode 100644 src/Blend/Blend_Point.hxx delete mode 100644 src/Blend/Blend_RstRstFunction.cdl create mode 100644 src/Blend/Blend_RstRstFunction.hxx create mode 100644 src/Blend/Blend_Status.hxx delete mode 100644 src/Blend/Blend_SurfCurvFuncInv.cdl create mode 100644 src/Blend/Blend_SurfCurvFuncInv.hxx delete mode 100644 src/Blend/Blend_SurfPointFuncInv.cdl create mode 100644 src/Blend/Blend_SurfPointFuncInv.hxx delete mode 100644 src/Blend/Blend_SurfRstFunction.cdl create mode 100644 src/Blend/Blend_SurfRstFunction.hxx delete mode 100644 src/Blend/Blend_Walking.cdl delete mode 100644 src/BlendFunc/BlendFunc.cdl create mode 100644 src/BlendFunc/BlendFunc.hxx delete mode 100644 src/BlendFunc/BlendFunc_CSCircular.cdl create mode 100644 src/BlendFunc/BlendFunc_CSCircular.hxx delete mode 100644 src/BlendFunc/BlendFunc_CSConstRad.cdl create mode 100644 src/BlendFunc/BlendFunc_CSConstRad.hxx delete mode 100644 src/BlendFunc/BlendFunc_ChAsym.cdl create mode 100644 src/BlendFunc/BlendFunc_ChAsym.hxx delete mode 100644 src/BlendFunc/BlendFunc_ChAsymInv.cdl create mode 100644 src/BlendFunc/BlendFunc_ChAsymInv.hxx delete mode 100644 src/BlendFunc/BlendFunc_ChamfInv.cdl create mode 100644 src/BlendFunc/BlendFunc_ChamfInv.hxx delete mode 100644 src/BlendFunc/BlendFunc_Chamfer.cdl create mode 100644 src/BlendFunc/BlendFunc_Chamfer.hxx delete mode 100644 src/BlendFunc/BlendFunc_ConstRad.cdl create mode 100644 src/BlendFunc/BlendFunc_ConstRad.hxx delete mode 100644 src/BlendFunc/BlendFunc_ConstRadInv.cdl create mode 100644 src/BlendFunc/BlendFunc_ConstRadInv.hxx delete mode 100644 src/BlendFunc/BlendFunc_Corde.cdl create mode 100644 src/BlendFunc/BlendFunc_Corde.hxx delete mode 100644 src/BlendFunc/BlendFunc_EvolRad.cdl create mode 100644 src/BlendFunc/BlendFunc_EvolRad.hxx delete mode 100644 src/BlendFunc/BlendFunc_EvolRadInv.cdl create mode 100644 src/BlendFunc/BlendFunc_EvolRadInv.hxx delete mode 100644 src/BlendFunc/BlendFunc_Ruled.cdl create mode 100644 src/BlendFunc/BlendFunc_Ruled.hxx delete mode 100644 src/BlendFunc/BlendFunc_RuledInv.cdl create mode 100644 src/BlendFunc/BlendFunc_RuledInv.hxx create mode 100644 src/BlendFunc/BlendFunc_SectionShape.hxx delete mode 100644 src/BlendFunc/BlendFunc_Tensor.cdl create mode 100644 src/BlendFunc/BlendFunc_Tensor.hxx create mode 100644 src/BlendFunc/FILES delete mode 100644 src/Bnd/Bnd.cdl create mode 100644 src/Bnd/Bnd_B2d.hxx create mode 100644 src/Bnd/Bnd_B2d_0.cxx create mode 100644 src/Bnd/Bnd_B2f.hxx create mode 100644 src/Bnd/Bnd_B2f_0.cxx delete mode 100644 src/Bnd/Bnd_B2x.cdl create mode 100644 src/Bnd/Bnd_B3d.hxx create mode 100644 src/Bnd/Bnd_B3d_0.cxx create mode 100644 src/Bnd/Bnd_B3f.hxx create mode 100644 src/Bnd/Bnd_B3f_0.cxx delete mode 100644 src/Bnd/Bnd_B3x.cdl delete mode 100644 src/Bnd/Bnd_BoundSortBox.cdl create mode 100644 src/Bnd/Bnd_BoundSortBox.hxx delete mode 100644 src/Bnd/Bnd_BoundSortBox2d.cdl create mode 100644 src/Bnd/Bnd_BoundSortBox2d.hxx delete mode 100644 src/Bnd/Bnd_Box.cdl create mode 100644 src/Bnd/Bnd_Box.hxx delete mode 100644 src/Bnd/Bnd_Box2d.cdl create mode 100644 src/Bnd/Bnd_Box2d.hxx delete mode 100644 src/Bnd/Bnd_Sphere.cdl create mode 100644 src/Bnd/Bnd_Sphere.hxx delete mode 100644 src/BndLib/BndLib.cdl create mode 100644 src/BndLib/BndLib.hxx delete mode 100644 src/BndLib/BndLib_Add2dCurve.cdl create mode 100644 src/BndLib/BndLib_Add2dCurve.hxx delete mode 100644 src/BndLib/BndLib_Add3dCurve.cdl create mode 100644 src/BndLib/BndLib_Add3dCurve.hxx delete mode 100644 src/BndLib/BndLib_AddSurface.cdl create mode 100644 src/BndLib/BndLib_AddSurface.hxx create mode 100644 src/BndLib/FILES delete mode 100644 src/CDF/CDF.cdl create mode 100644 src/CDF/CDF.hxx delete mode 100644 src/CDF/CDF_Application.cdl create mode 100644 src/CDF/CDF_Application.hxx delete mode 100644 src/CDF/CDF_Directory.cdl create mode 100644 src/CDF/CDF_Directory.hxx delete mode 100644 src/CDF/CDF_DirectoryIterator.cdl create mode 100644 src/CDF/CDF_DirectoryIterator.hxx delete mode 100644 src/CDF/CDF_FWOSDriver.cdl create mode 100644 src/CDF/CDF_FWOSDriver.hxx delete mode 100644 src/CDF/CDF_MetaDataDriver.cdl create mode 100644 src/CDF/CDF_MetaDataDriver.hxx create mode 100644 src/CDF/CDF_MetaDataDriverError.hxx delete mode 100644 src/CDF/CDF_MetaDataDriverFactory.cdl create mode 100644 src/CDF/CDF_MetaDataDriverFactory.hxx delete mode 100644 src/CDF/CDF_Session.cdl create mode 100644 src/CDF/CDF_Session.hxx delete mode 100644 src/CDF/CDF_Store.cdl create mode 100644 src/CDF/CDF_Store.hxx delete mode 100644 src/CDF/CDF_StoreList.cdl create mode 100644 src/CDF/CDF_StoreList.hxx create mode 100644 src/CDF/CDF_StoreSetNameStatus.hxx create mode 100644 src/CDF/CDF_SubComponentStatus.hxx delete mode 100644 src/CDF/CDF_Timer.cdl create mode 100644 src/CDF/CDF_Timer.hxx create mode 100644 src/CDF/CDF_TryStoreStatus.hxx create mode 100644 src/CDF/CDF_TypeOfActivation.hxx delete mode 100644 src/CDM/CDM.cdl delete mode 100644 src/CDM/CDM_Application.cdl create mode 100644 src/CDM/CDM_Application.hxx delete mode 100644 src/CDM/CDM_COutMessageDriver.cdl create mode 100644 src/CDM/CDM_COutMessageDriver.hxx create mode 100644 src/CDM/CDM_CanCloseStatus.hxx delete mode 100644 src/CDM/CDM_Document.cdl create mode 100644 src/CDM/CDM_Document.hxx create mode 100644 src/CDM/CDM_DocumentPointer.hxx delete mode 100644 src/CDM/CDM_MessageDriver.cdl create mode 100644 src/CDM/CDM_MessageDriver.hxx delete mode 100644 src/CDM/CDM_MetaData.cdl create mode 100644 src/CDM/CDM_MetaData.hxx create mode 100644 src/CDM/CDM_NamesDirectory.hxx delete mode 100644 src/CDM/CDM_NullMessageDriver.cdl create mode 100644 src/CDM/CDM_NullMessageDriver.hxx delete mode 100644 src/CDM/CDM_Reference.cdl create mode 100644 src/CDM/CDM_Reference.hxx delete mode 100644 src/CDM/CDM_ReferenceIterator.cdl create mode 100644 src/CDM/CDM_ReferenceIterator.hxx delete mode 100644 src/CPnts/CPnts.cdl delete mode 100644 src/CPnts/CPnts_AbscissaPoint.cdl create mode 100644 src/CPnts/CPnts_AbscissaPoint.hxx delete mode 100644 src/CPnts/CPnts_MyGaussFunction.cdl create mode 100644 src/CPnts/CPnts_MyGaussFunction.hxx delete mode 100644 src/CPnts/CPnts_MyRootFunction.cdl create mode 100644 src/CPnts/CPnts_MyRootFunction.hxx delete mode 100644 src/CPnts/CPnts_UniformDeflection.cdl create mode 100644 src/CPnts/CPnts_UniformDeflection.hxx delete mode 100644 src/CSLib/CSLib.cdl create mode 100644 src/CSLib/CSLib.hxx delete mode 100644 src/CSLib/CSLib_Class2d.cdl create mode 100644 src/CSLib/CSLib_Class2d.hxx create mode 100644 src/CSLib/CSLib_DerivativeStatus.hxx delete mode 100644 src/CSLib/CSLib_NormalPolyDef.cdl create mode 100644 src/CSLib/CSLib_NormalPolyDef.hxx create mode 100644 src/CSLib/CSLib_NormalStatus.hxx delete mode 100644 src/ChFi2d/ChFi2d.cdl create mode 100644 src/ChFi2d/ChFi2d.hxx delete mode 100644 src/ChFi2d/ChFi2d_Builder.cdl create mode 100644 src/ChFi2d/ChFi2d_Builder.hxx create mode 100644 src/ChFi2d/ChFi2d_ConstructionError.hxx delete mode 100644 src/ChFi3d/ChFi3d.cdl create mode 100644 src/ChFi3d/ChFi3d.hxx delete mode 100644 src/ChFi3d/ChFi3d_Builder.cdl create mode 100644 src/ChFi3d/ChFi3d_Builder.hxx delete mode 100644 src/ChFi3d/ChFi3d_CMPLRS.edl delete mode 100644 src/ChFi3d/ChFi3d_ChBuilder.cdl create mode 100644 src/ChFi3d/ChFi3d_ChBuilder.hxx delete mode 100644 src/ChFi3d/ChFi3d_FilBuilder.cdl create mode 100644 src/ChFi3d/ChFi3d_FilBuilder.hxx create mode 100644 src/ChFi3d/ChFi3d_FilletShape.hxx delete mode 100644 src/ChFi3d/ChFi3d_SearchSing.cdl create mode 100644 src/ChFi3d/ChFi3d_SearchSing.hxx delete mode 100644 src/ChFiDS/ChFiDS.cdl create mode 100644 src/ChFiDS/ChFiDS_ChamfMethod.hxx delete mode 100644 src/ChFiDS/ChFiDS_ChamfSpine.cdl create mode 100644 src/ChFiDS/ChFiDS_ChamfSpine.hxx delete mode 100644 src/ChFiDS/ChFiDS_CircSection.cdl create mode 100644 src/ChFiDS/ChFiDS_CircSection.hxx delete mode 100644 src/ChFiDS/ChFiDS_CommonPoint.cdl create mode 100644 src/ChFiDS/ChFiDS_CommonPoint.hxx delete mode 100644 src/ChFiDS/ChFiDS_ElSpine.cdl create mode 100644 src/ChFiDS/ChFiDS_ElSpine.hxx create mode 100644 src/ChFiDS/ChFiDS_ErrorStatus.hxx delete mode 100644 src/ChFiDS/ChFiDS_FaceInterference.cdl create mode 100644 src/ChFiDS/ChFiDS_FaceInterference.hxx delete mode 100644 src/ChFiDS/ChFiDS_FilSpine.cdl create mode 100644 src/ChFiDS/ChFiDS_FilSpine.hxx create mode 100644 src/ChFiDS/ChFiDS_HElSpine.hxx create mode 100644 src/ChFiDS/ChFiDS_HElSpine_0.cxx delete mode 100644 src/ChFiDS/ChFiDS_Map.cdl create mode 100644 src/ChFiDS/ChFiDS_Map.hxx delete mode 100644 src/ChFiDS/ChFiDS_Regul.cdl create mode 100644 src/ChFiDS/ChFiDS_Regul.hxx delete mode 100644 src/ChFiDS/ChFiDS_Spine.cdl create mode 100644 src/ChFiDS/ChFiDS_Spine.hxx create mode 100644 src/ChFiDS/ChFiDS_State.hxx delete mode 100644 src/ChFiDS/ChFiDS_Stripe.cdl create mode 100644 src/ChFiDS/ChFiDS_Stripe.hxx delete mode 100644 src/ChFiDS/ChFiDS_StripeMap.cdl create mode 100644 src/ChFiDS/ChFiDS_StripeMap.hxx delete mode 100644 src/ChFiDS/ChFiDS_SurfData.cdl create mode 100644 src/ChFiDS/ChFiDS_SurfData.hxx delete mode 100644 src/ChFiKPart/ChFiKPart.cdl delete mode 100644 src/ChFiKPart/ChFiKPart_ComputeData.cdl create mode 100644 src/ChFiKPart/ChFiKPart_ComputeData.hxx delete mode 100644 src/Contap/Contap.cdl delete mode 100644 src/Contap/Contap_ArcFunction.cdl create mode 100644 src/Contap/Contap_ArcFunction.hxx delete mode 100644 src/Contap/Contap_ContAna.cdl create mode 100644 src/Contap/Contap_ContAna.hxx delete mode 100644 src/Contap/Contap_Contour.cdl create mode 100644 src/Contap/Contap_Contour.hxx delete mode 100644 src/Contap/Contap_HContTool.cdl create mode 100644 src/Contap/Contap_HContTool.hxx delete mode 100644 src/Contap/Contap_HCurve2dTool.cdl create mode 100644 src/Contap/Contap_HCurve2dTool.hxx create mode 100644 src/Contap/Contap_IType.hxx delete mode 100644 src/Contap/Contap_Line.cdl create mode 100644 src/Contap/Contap_Line.hxx delete mode 100644 src/Contap/Contap_Point.cdl create mode 100644 src/Contap/Contap_Point.hxx create mode 100644 src/Contap/Contap_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx create mode 100644 src/Contap/Contap_SequenceNodeOfSequenceOfIWLineOfTheIWalking_0.cxx create mode 100644 src/Contap/Contap_SequenceNodeOfSequenceOfPathPointOfTheSearch.hxx create mode 100644 src/Contap/Contap_SequenceNodeOfSequenceOfPathPointOfTheSearch_0.cxx create mode 100644 src/Contap/Contap_SequenceNodeOfSequenceOfSegmentOfTheSearch.hxx create mode 100644 src/Contap/Contap_SequenceNodeOfSequenceOfSegmentOfTheSearch_0.cxx create mode 100644 src/Contap/Contap_SequenceOfIWLineOfTheIWalking.hxx create mode 100644 src/Contap/Contap_SequenceOfIWLineOfTheIWalking_0.cxx create mode 100644 src/Contap/Contap_SequenceOfPathPointOfTheSearch.hxx create mode 100644 src/Contap/Contap_SequenceOfPathPointOfTheSearch_0.cxx create mode 100644 src/Contap/Contap_SequenceOfSegmentOfTheSearch.hxx create mode 100644 src/Contap/Contap_SequenceOfSegmentOfTheSearch_0.cxx delete mode 100644 src/Contap/Contap_SurfFunction.cdl create mode 100644 src/Contap/Contap_SurfFunction.hxx delete mode 100644 src/Contap/Contap_SurfProps.cdl create mode 100644 src/Contap/Contap_SurfProps.hxx create mode 100644 src/Contap/Contap_TFunction.hxx create mode 100644 src/Contap/Contap_TheIWLineOfTheIWalking.hxx create mode 100644 src/Contap/Contap_TheIWLineOfTheIWalking_0.cxx create mode 100644 src/Contap/Contap_TheIWalking.hxx create mode 100644 src/Contap/Contap_TheIWalking_0.cxx create mode 100644 src/Contap/Contap_ThePathPointOfTheSearch.hxx create mode 100644 src/Contap/Contap_ThePathPointOfTheSearch_0.cxx create mode 100644 src/Contap/Contap_TheSearch.hxx create mode 100644 src/Contap/Contap_TheSearchInside.hxx create mode 100644 src/Contap/Contap_TheSearchInside_0.cxx create mode 100644 src/Contap/Contap_TheSearch_0.cxx create mode 100644 src/Contap/Contap_TheSegmentOfTheSearch.hxx create mode 100644 src/Contap/Contap_TheSegmentOfTheSearch_0.cxx delete mode 100644 src/Convert/Convert.cdl delete mode 100644 src/Convert/Convert_CircleToBSplineCurve.cdl create mode 100644 src/Convert/Convert_CircleToBSplineCurve.hxx delete mode 100644 src/Convert/Convert_CompBezierCurves2dToBSplineCurve2d.cdl create mode 100644 src/Convert/Convert_CompBezierCurves2dToBSplineCurve2d.hxx delete mode 100644 src/Convert/Convert_CompBezierCurvesToBSplineCurve.cdl create mode 100644 src/Convert/Convert_CompBezierCurvesToBSplineCurve.hxx delete mode 100644 src/Convert/Convert_CompPolynomialToPoles.cdl create mode 100644 src/Convert/Convert_CompPolynomialToPoles.hxx delete mode 100644 src/Convert/Convert_ConeToBSplineSurface.cdl create mode 100644 src/Convert/Convert_ConeToBSplineSurface.hxx delete mode 100644 src/Convert/Convert_ConicToBSplineCurve.cdl create mode 100644 src/Convert/Convert_ConicToBSplineCurve.hxx delete mode 100644 src/Convert/Convert_CylinderToBSplineSurface.cdl create mode 100644 src/Convert/Convert_CylinderToBSplineSurface.hxx delete mode 100644 src/Convert/Convert_ElementarySurfaceToBSplineSurface.cdl create mode 100644 src/Convert/Convert_ElementarySurfaceToBSplineSurface.hxx delete mode 100644 src/Convert/Convert_EllipseToBSplineCurve.cdl create mode 100644 src/Convert/Convert_EllipseToBSplineCurve.hxx delete mode 100644 src/Convert/Convert_GridPolynomialToPoles.cdl create mode 100644 src/Convert/Convert_GridPolynomialToPoles.hxx delete mode 100644 src/Convert/Convert_HyperbolaToBSplineCurve.cdl create mode 100644 src/Convert/Convert_HyperbolaToBSplineCurve.hxx delete mode 100644 src/Convert/Convert_ParabolaToBSplineCurve.cdl create mode 100644 src/Convert/Convert_ParabolaToBSplineCurve.hxx create mode 100644 src/Convert/Convert_ParameterisationType.hxx create mode 100644 src/Convert/Convert_SequenceOfArray1OfPoles2d.hxx delete mode 100644 src/Convert/Convert_SphereToBSplineSurface.cdl create mode 100644 src/Convert/Convert_SphereToBSplineSurface.hxx delete mode 100644 src/Convert/Convert_TorusToBSplineSurface.cdl create mode 100644 src/Convert/Convert_TorusToBSplineSurface.hxx delete mode 100644 src/DBRep/DBRep.cdl create mode 100644 src/DBRep/DBRep.hxx delete mode 100644 src/DBRep/DBRep_DrawableShape.cdl create mode 100644 src/DBRep/DBRep_DrawableShape.hxx delete mode 100644 src/DBRep/DBRep_Edge.cdl create mode 100644 src/DBRep/DBRep_Edge.hxx delete mode 100644 src/DBRep/DBRep_Face.cdl create mode 100644 src/DBRep/DBRep_Face.hxx delete mode 100644 src/DBRep/DBRep_HideData.cdl create mode 100644 src/DBRep/DBRep_HideData.hxx delete mode 100644 src/DBRep/DBRep_IsoBuilder.cdl create mode 100644 src/DBRep/DBRep_IsoBuilder.hxx delete mode 100644 src/DDF/DDF.cdl create mode 100644 src/DDF/DDF.hxx delete mode 100644 src/DDF/DDF_Browser.cdl create mode 100644 src/DDF/DDF_Browser.hxx delete mode 100644 src/DDF/DDF_Data.cdl create mode 100644 src/DDF/DDF_Data.hxx delete mode 100644 src/DDF/DDF_Transaction.cdl create mode 100644 src/DDF/DDF_Transaction.hxx delete mode 100644 src/DDataStd/DDataStd.cdl create mode 100644 src/DDataStd/DDataStd.hxx delete mode 100644 src/DDataStd/DDataStd_DrawDriver.cdl create mode 100644 src/DDataStd/DDataStd_DrawDriver.hxx delete mode 100644 src/DDataStd/DDataStd_DrawPresentation.cdl create mode 100644 src/DDataStd/DDataStd_DrawPresentation.hxx delete mode 100644 src/DDataStd/DDataStd_TreeBrowser.cdl create mode 100644 src/DDataStd/DDataStd_TreeBrowser.hxx delete mode 100644 src/DDocStd/DDocStd.cdl create mode 100644 src/DDocStd/DDocStd.hxx delete mode 100644 src/DDocStd/DDocStd_DrawDocument.cdl create mode 100644 src/DDocStd/DDocStd_DrawDocument.hxx delete mode 100644 src/DNaming/DNaming.cdl create mode 100644 src/DNaming/DNaming.hxx delete mode 100644 src/DNaming/DNaming_BooleanOperationDriver.cdl create mode 100644 src/DNaming/DNaming_BooleanOperationDriver.hxx delete mode 100644 src/DNaming/DNaming_BoxDriver.cdl create mode 100644 src/DNaming/DNaming_BoxDriver.hxx delete mode 100644 src/DNaming/DNaming_CylinderDriver.cdl create mode 100644 src/DNaming/DNaming_CylinderDriver.hxx delete mode 100644 src/DNaming/DNaming_FilletDriver.cdl create mode 100644 src/DNaming/DNaming_FilletDriver.hxx delete mode 100644 src/DNaming/DNaming_Line3DDriver.cdl create mode 100644 src/DNaming/DNaming_Line3DDriver.hxx delete mode 100644 src/DNaming/DNaming_PointDriver.cdl create mode 100644 src/DNaming/DNaming_PointDriver.hxx delete mode 100644 src/DNaming/DNaming_PrismDriver.cdl create mode 100644 src/DNaming/DNaming_PrismDriver.hxx delete mode 100644 src/DNaming/DNaming_RevolutionDriver.cdl create mode 100644 src/DNaming/DNaming_RevolutionDriver.hxx delete mode 100644 src/DNaming/DNaming_SelectionDriver.cdl create mode 100644 src/DNaming/DNaming_SelectionDriver.hxx delete mode 100644 src/DNaming/DNaming_SphereDriver.cdl create mode 100644 src/DNaming/DNaming_SphereDriver.hxx delete mode 100644 src/DNaming/DNaming_TransformationDriver.cdl create mode 100644 src/DNaming/DNaming_TransformationDriver.hxx delete mode 100644 src/DPrsStd/DPrsStd.cdl create mode 100644 src/DPrsStd/DPrsStd.hxx delete mode 100644 src/DRAWEXE/DRAWEXE.cdl delete mode 100644 src/DRAWEXE/DRAWEXE_LINK.edl delete mode 100644 src/Dico/Dico.cdl delete mode 100644 src/Dico/Dico_Dictionary.cdl create mode 100644 src/Dico/Dico_DictionaryOfInteger.hxx create mode 100644 src/Dico/Dico_DictionaryOfInteger_0.cxx create mode 100644 src/Dico/Dico_DictionaryOfTransient.hxx create mode 100644 src/Dico/Dico_DictionaryOfTransient_0.cxx create mode 100644 src/Dico/Dico_IteratorOfDictionaryOfInteger.hxx create mode 100644 src/Dico/Dico_IteratorOfDictionaryOfInteger_0.cxx create mode 100644 src/Dico/Dico_IteratorOfDictionaryOfTransient.hxx create mode 100644 src/Dico/Dico_IteratorOfDictionaryOfTransient_0.cxx create mode 100644 src/Dico/Dico_StackItemOfDictionaryOfInteger.hxx create mode 100644 src/Dico/Dico_StackItemOfDictionaryOfInteger_0.cxx create mode 100644 src/Dico/Dico_StackItemOfDictionaryOfTransient.hxx create mode 100644 src/Dico/Dico_StackItemOfDictionaryOfTransient_0.cxx create mode 100644 src/Dico/FILES delete mode 100644 src/Draft/Draft.cdl create mode 100644 src/Draft/Draft.hxx delete mode 100644 src/Draft/Draft_EdgeInfo.cdl create mode 100644 src/Draft/Draft_EdgeInfo.hxx create mode 100644 src/Draft/Draft_ErrorStatus.hxx delete mode 100644 src/Draft/Draft_FaceInfo.cdl create mode 100644 src/Draft/Draft_FaceInfo.hxx delete mode 100644 src/Draft/Draft_Modification.cdl create mode 100644 src/Draft/Draft_Modification.hxx delete mode 100644 src/Draft/Draft_VertexInfo.cdl create mode 100644 src/Draft/Draft_VertexInfo.hxx delete mode 100644 src/Draw/Draw.cdl create mode 100644 src/Draw/Draw.hxx delete mode 100644 src/Draw/Draw_Axis2D.cdl create mode 100644 src/Draw/Draw_Axis2D.hxx delete mode 100644 src/Draw/Draw_Axis3D.cdl create mode 100644 src/Draw/Draw_Axis3D.hxx delete mode 100644 src/Draw/Draw_Box.cdl create mode 100644 src/Draw/Draw_Box.hxx delete mode 100644 src/Draw/Draw_CMPLRS.edl delete mode 100644 src/Draw/Draw_Chronometer.cdl create mode 100644 src/Draw/Draw_Chronometer.hxx delete mode 100644 src/Draw/Draw_Circle2D.cdl create mode 100644 src/Draw/Draw_Circle2D.hxx delete mode 100644 src/Draw/Draw_Circle3D.cdl create mode 100644 src/Draw/Draw_Circle3D.hxx delete mode 100644 src/Draw/Draw_Color.cdl create mode 100644 src/Draw/Draw_Color.hxx create mode 100644 src/Draw/Draw_ColorKind.hxx delete mode 100644 src/Draw/Draw_Display.cdl create mode 100644 src/Draw/Draw_Display.hxx delete mode 100644 src/Draw/Draw_Drawable2D.cdl create mode 100644 src/Draw/Draw_Drawable2D.hxx delete mode 100644 src/Draw/Draw_Drawable3D.cdl create mode 100644 src/Draw/Draw_Drawable3D.hxx create mode 100644 src/Draw/Draw_Failure.hxx delete mode 100644 src/Draw/Draw_Grid.cdl create mode 100644 src/Draw/Draw_Grid.hxx delete mode 100644 src/Draw/Draw_Marker2D.cdl create mode 100644 src/Draw/Draw_Marker2D.hxx delete mode 100644 src/Draw/Draw_Marker3D.cdl create mode 100644 src/Draw/Draw_Marker3D.hxx create mode 100644 src/Draw/Draw_MarkerShape.hxx delete mode 100644 src/Draw/Draw_Number.cdl create mode 100644 src/Draw/Draw_Number.hxx delete mode 100644 src/Draw/Draw_Printer.cdl create mode 100644 src/Draw/Draw_Printer.hxx delete mode 100644 src/Draw/Draw_ProgressIndicator.cdl create mode 100644 src/Draw/Draw_ProgressIndicator.hxx delete mode 100644 src/Draw/Draw_Segment2D.cdl create mode 100644 src/Draw/Draw_Segment2D.hxx delete mode 100644 src/Draw/Draw_Segment3D.cdl create mode 100644 src/Draw/Draw_Segment3D.hxx delete mode 100644 src/Draw/Draw_Text2D.cdl create mode 100644 src/Draw/Draw_Text2D.hxx delete mode 100644 src/Draw/Draw_Text3D.cdl create mode 100644 src/Draw/Draw_Text3D.hxx delete mode 100644 src/DrawDim/DrawDim.cdl create mode 100644 src/DrawDim/DrawDim.hxx delete mode 100644 src/DrawDim/DrawDim_Angle.cdl create mode 100644 src/DrawDim/DrawDim_Angle.hxx delete mode 100644 src/DrawDim/DrawDim_Dimension.cdl create mode 100644 src/DrawDim/DrawDim_Dimension.hxx delete mode 100644 src/DrawDim/DrawDim_Distance.cdl create mode 100644 src/DrawDim/DrawDim_Distance.hxx delete mode 100644 src/DrawDim/DrawDim_PlanarAngle.cdl create mode 100644 src/DrawDim/DrawDim_PlanarAngle.hxx delete mode 100644 src/DrawDim/DrawDim_PlanarDiameter.cdl create mode 100644 src/DrawDim/DrawDim_PlanarDiameter.hxx delete mode 100644 src/DrawDim/DrawDim_PlanarDimension.cdl create mode 100644 src/DrawDim/DrawDim_PlanarDimension.hxx delete mode 100644 src/DrawDim/DrawDim_PlanarDistance.cdl create mode 100644 src/DrawDim/DrawDim_PlanarDistance.hxx delete mode 100644 src/DrawDim/DrawDim_PlanarRadius.cdl create mode 100644 src/DrawDim/DrawDim_PlanarRadius.hxx delete mode 100644 src/DrawDim/DrawDim_Radius.cdl create mode 100644 src/DrawDim/DrawDim_Radius.hxx delete mode 100644 src/DrawFairCurve/DrawFairCurve.cdl delete mode 100644 src/DrawFairCurve/DrawFairCurve_Batten.cdl create mode 100644 src/DrawFairCurve/DrawFairCurve_Batten.hxx delete mode 100644 src/DrawFairCurve/DrawFairCurve_MinimalVariation.cdl create mode 100644 src/DrawFairCurve/DrawFairCurve_MinimalVariation.hxx create mode 100644 src/DrawFairCurve/FILES delete mode 100644 src/DrawTrSurf/DrawTrSurf.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_BSplineCurve.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_BSplineCurve.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_BSplineCurve2d.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_BSplineCurve2d.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_BSplineSurface.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_BSplineSurface.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_BezierCurve.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_BezierCurve.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_BezierCurve2d.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_BezierCurve2d.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_BezierSurface.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_BezierSurface.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_Curve.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_Curve.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_Curve2d.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_Curve2d.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_Drawable.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_Drawable.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_Point.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_Point.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_Polygon2D.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_Polygon2D.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_Polygon3D.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_Polygon3D.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_Surface.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_Surface.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_Triangulation.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_Triangulation.hxx delete mode 100644 src/DrawTrSurf/DrawTrSurf_Triangulation2D.cdl create mode 100644 src/DrawTrSurf/DrawTrSurf_Triangulation2D.hxx delete mode 100644 src/DsgPrs/DsgPrs.cdl create mode 100644 src/DsgPrs/DsgPrs.hxx delete mode 100644 src/DsgPrs/DsgPrs_AnglePresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_AnglePresentation.hxx create mode 100644 src/DsgPrs/DsgPrs_ArrowSide.hxx delete mode 100644 src/DsgPrs/DsgPrs_Chamf2dPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_Chamf2dPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_ConcentricPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_ConcentricPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_DiameterPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_DiameterPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_EllipseRadiusPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_EllipseRadiusPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_EqualDistancePresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_EqualDistancePresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_EqualRadiusPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_EqualRadiusPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_FilletRadiusPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_FilletRadiusPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_FixPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_FixPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_IdenticPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_IdenticPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_LengthPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_LengthPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_MidPointPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_MidPointPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_OffsetPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_OffsetPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_ParalPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_ParalPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_PerpenPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_PerpenPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_RadiusPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_RadiusPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_ShadedPlanePresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_ShadedPlanePresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_ShapeDirPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_ShapeDirPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_SymbPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_SymbPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_SymmetricPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_SymmetricPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_TangentPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_TangentPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_XYZAxisPresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_XYZAxisPresentation.hxx delete mode 100644 src/DsgPrs/DsgPrs_XYZPlanePresentation.cdl create mode 100644 src/DsgPrs/DsgPrs_XYZPlanePresentation.hxx delete mode 100644 src/ElCLib/ElCLib.cdl create mode 100644 src/ElCLib/ElCLib.hxx create mode 100644 src/ElCLib/FILES delete mode 100644 src/ElSLib/ElSLib.cdl create mode 100644 src/ElSLib/ElSLib.hxx create mode 100644 src/ElSLib/FILES delete mode 100644 src/Expr/Expr.cdl create mode 100644 src/Expr/Expr.hxx delete mode 100644 src/Expr/Expr_Absolute.cdl create mode 100644 src/Expr/Expr_Absolute.hxx delete mode 100644 src/Expr/Expr_ArcCosine.cdl create mode 100644 src/Expr/Expr_ArcCosine.hxx delete mode 100644 src/Expr/Expr_ArcSine.cdl create mode 100644 src/Expr/Expr_ArcSine.hxx delete mode 100644 src/Expr/Expr_ArcTangent.cdl create mode 100644 src/Expr/Expr_ArcTangent.hxx delete mode 100644 src/Expr/Expr_ArgCosh.cdl create mode 100644 src/Expr/Expr_ArgCosh.hxx delete mode 100644 src/Expr/Expr_ArgSinh.cdl create mode 100644 src/Expr/Expr_ArgSinh.hxx delete mode 100644 src/Expr/Expr_ArgTanh.cdl create mode 100644 src/Expr/Expr_ArgTanh.hxx delete mode 100644 src/Expr/Expr_BinaryExpression.cdl create mode 100644 src/Expr/Expr_BinaryExpression.hxx delete mode 100644 src/Expr/Expr_BinaryFunction.cdl create mode 100644 src/Expr/Expr_BinaryFunction.hxx delete mode 100644 src/Expr/Expr_Cosh.cdl create mode 100644 src/Expr/Expr_Cosh.hxx delete mode 100644 src/Expr/Expr_Cosine.cdl create mode 100644 src/Expr/Expr_Cosine.hxx delete mode 100644 src/Expr/Expr_Difference.cdl create mode 100644 src/Expr/Expr_Difference.hxx delete mode 100644 src/Expr/Expr_Different.cdl create mode 100644 src/Expr/Expr_Different.hxx delete mode 100644 src/Expr/Expr_Division.cdl create mode 100644 src/Expr/Expr_Division.hxx delete mode 100644 src/Expr/Expr_Equal.cdl create mode 100644 src/Expr/Expr_Equal.hxx delete mode 100644 src/Expr/Expr_Exponential.cdl create mode 100644 src/Expr/Expr_Exponential.hxx delete mode 100644 src/Expr/Expr_Exponentiate.cdl create mode 100644 src/Expr/Expr_Exponentiate.hxx create mode 100644 src/Expr/Expr_ExprFailure.hxx delete mode 100644 src/Expr/Expr_FunctionDerivative.cdl create mode 100644 src/Expr/Expr_FunctionDerivative.hxx delete mode 100644 src/Expr/Expr_GeneralExpression.cdl create mode 100644 src/Expr/Expr_GeneralExpression.hxx delete mode 100644 src/Expr/Expr_GeneralFunction.cdl create mode 100644 src/Expr/Expr_GeneralFunction.hxx delete mode 100644 src/Expr/Expr_GeneralRelation.cdl create mode 100644 src/Expr/Expr_GeneralRelation.hxx delete mode 100644 src/Expr/Expr_GreaterThan.cdl create mode 100644 src/Expr/Expr_GreaterThan.hxx delete mode 100644 src/Expr/Expr_GreaterThanOrEqual.cdl create mode 100644 src/Expr/Expr_GreaterThanOrEqual.hxx create mode 100644 src/Expr/Expr_InvalidAssignment.hxx create mode 100644 src/Expr/Expr_InvalidFunction.hxx create mode 100644 src/Expr/Expr_InvalidOperand.hxx delete mode 100644 src/Expr/Expr_LessThan.cdl create mode 100644 src/Expr/Expr_LessThan.hxx delete mode 100644 src/Expr/Expr_LessThanOrEqual.cdl create mode 100644 src/Expr/Expr_LessThanOrEqual.hxx delete mode 100644 src/Expr/Expr_LogOf10.cdl create mode 100644 src/Expr/Expr_LogOf10.hxx delete mode 100644 src/Expr/Expr_LogOfe.cdl create mode 100644 src/Expr/Expr_LogOfe.hxx delete mode 100644 src/Expr/Expr_NamedConstant.cdl create mode 100644 src/Expr/Expr_NamedConstant.hxx delete mode 100644 src/Expr/Expr_NamedExpression.cdl create mode 100644 src/Expr/Expr_NamedExpression.hxx delete mode 100644 src/Expr/Expr_NamedFunction.cdl create mode 100644 src/Expr/Expr_NamedFunction.hxx delete mode 100644 src/Expr/Expr_NamedUnknown.cdl create mode 100644 src/Expr/Expr_NamedUnknown.hxx create mode 100644 src/Expr/Expr_NotAssigned.hxx create mode 100644 src/Expr/Expr_NotEvaluable.hxx delete mode 100644 src/Expr/Expr_NumericValue.cdl create mode 100644 src/Expr/Expr_NumericValue.hxx delete mode 100644 src/Expr/Expr_PolyExpression.cdl create mode 100644 src/Expr/Expr_PolyExpression.hxx delete mode 100644 src/Expr/Expr_PolyFunction.cdl create mode 100644 src/Expr/Expr_PolyFunction.hxx delete mode 100644 src/Expr/Expr_Product.cdl create mode 100644 src/Expr/Expr_Product.hxx delete mode 100644 src/Expr/Expr_RUIterator.cdl create mode 100644 src/Expr/Expr_RUIterator.hxx delete mode 100644 src/Expr/Expr_RelationIterator.cdl create mode 100644 src/Expr/Expr_RelationIterator.hxx delete mode 100644 src/Expr/Expr_Sign.cdl create mode 100644 src/Expr/Expr_Sign.hxx delete mode 100644 src/Expr/Expr_Sine.cdl create mode 100644 src/Expr/Expr_Sine.hxx delete mode 100644 src/Expr/Expr_SingleRelation.cdl create mode 100644 src/Expr/Expr_SingleRelation.hxx delete mode 100644 src/Expr/Expr_Sinh.cdl create mode 100644 src/Expr/Expr_Sinh.hxx delete mode 100644 src/Expr/Expr_Square.cdl create mode 100644 src/Expr/Expr_Square.hxx delete mode 100644 src/Expr/Expr_SquareRoot.cdl create mode 100644 src/Expr/Expr_SquareRoot.hxx delete mode 100644 src/Expr/Expr_Sum.cdl create mode 100644 src/Expr/Expr_Sum.hxx delete mode 100644 src/Expr/Expr_SystemRelation.cdl create mode 100644 src/Expr/Expr_SystemRelation.hxx delete mode 100644 src/Expr/Expr_Tangent.cdl create mode 100644 src/Expr/Expr_Tangent.hxx delete mode 100644 src/Expr/Expr_Tanh.cdl create mode 100644 src/Expr/Expr_Tanh.hxx delete mode 100644 src/Expr/Expr_UnaryExpression.cdl create mode 100644 src/Expr/Expr_UnaryExpression.hxx delete mode 100644 src/Expr/Expr_UnaryFunction.cdl create mode 100644 src/Expr/Expr_UnaryFunction.hxx delete mode 100644 src/Expr/Expr_UnaryMinus.cdl create mode 100644 src/Expr/Expr_UnaryMinus.hxx delete mode 100644 src/Expr/Expr_UnknownIterator.cdl create mode 100644 src/Expr/Expr_UnknownIterator.hxx delete mode 100644 src/ExprIntrp/ExprIntrp.cdl create mode 100644 src/ExprIntrp/ExprIntrp.hxx create mode 100644 src/ExprIntrp/ExprIntrp.tab.c create mode 100644 src/ExprIntrp/ExprIntrp.tab.h delete mode 100644 src/ExprIntrp/ExprIntrp_Analysis.cdl create mode 100644 src/ExprIntrp/ExprIntrp_Analysis.hxx delete mode 100644 src/ExprIntrp/ExprIntrp_GenExp.cdl create mode 100644 src/ExprIntrp/ExprIntrp_GenExp.hxx delete mode 100644 src/ExprIntrp/ExprIntrp_GenFct.cdl create mode 100644 src/ExprIntrp/ExprIntrp_GenFct.hxx delete mode 100644 src/ExprIntrp/ExprIntrp_GenRel.cdl create mode 100644 src/ExprIntrp/ExprIntrp_GenRel.hxx delete mode 100644 src/ExprIntrp/ExprIntrp_Generator.cdl create mode 100644 src/ExprIntrp/ExprIntrp_Generator.hxx create mode 100644 src/ExprIntrp/ExprIntrp_SyntaxError.hxx create mode 100644 src/ExprIntrp/lex.ExprIntrp.c delete mode 100644 src/Extrema/Extrema.cdl create mode 100644 src/Extrema/Extrema_CCLocFOfLocECC.hxx create mode 100644 src/Extrema/Extrema_CCLocFOfLocECC2d.hxx create mode 100644 src/Extrema/Extrema_CCLocFOfLocECC2d_0.cxx create mode 100644 src/Extrema/Extrema_CCLocFOfLocECC_0.cxx delete mode 100644 src/Extrema/Extrema_Curve2dTool.cdl create mode 100644 src/Extrema/Extrema_Curve2dTool.hxx delete mode 100644 src/Extrema/Extrema_CurveLocator.cdl delete mode 100644 src/Extrema/Extrema_CurveTool.cdl create mode 100644 src/Extrema/Extrema_CurveTool.hxx create mode 100644 src/Extrema/Extrema_ECC.hxx create mode 100644 src/Extrema/Extrema_ECC2d.hxx create mode 100644 src/Extrema/Extrema_ECC2d_0.cxx create mode 100644 src/Extrema/Extrema_ECC_0.cxx create mode 100644 src/Extrema/Extrema_ELPCOfLocateExtPC.hxx create mode 100644 src/Extrema/Extrema_ELPCOfLocateExtPC2d.hxx create mode 100644 src/Extrema/Extrema_ELPCOfLocateExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_ELPCOfLocateExtPC_0.cxx create mode 100644 src/Extrema/Extrema_EPCOfELPCOfLocateExtPC.hxx create mode 100644 src/Extrema/Extrema_EPCOfELPCOfLocateExtPC2d.hxx create mode 100644 src/Extrema/Extrema_EPCOfELPCOfLocateExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_EPCOfELPCOfLocateExtPC_0.cxx create mode 100644 src/Extrema/Extrema_EPCOfExtPC.hxx create mode 100644 src/Extrema/Extrema_EPCOfExtPC2d.hxx create mode 100644 src/Extrema/Extrema_EPCOfExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_EPCOfExtPC_0.cxx create mode 100644 src/Extrema/Extrema_ElementType.hxx create mode 100644 src/Extrema/Extrema_ExtAlgo.hxx delete mode 100644 src/Extrema/Extrema_ExtCC.cdl create mode 100644 src/Extrema/Extrema_ExtCC.hxx delete mode 100644 src/Extrema/Extrema_ExtCC2d.cdl create mode 100644 src/Extrema/Extrema_ExtCC2d.hxx delete mode 100644 src/Extrema/Extrema_ExtCS.cdl create mode 100644 src/Extrema/Extrema_ExtCS.hxx delete mode 100644 src/Extrema/Extrema_ExtElC.cdl create mode 100644 src/Extrema/Extrema_ExtElC.hxx delete mode 100644 src/Extrema/Extrema_ExtElC2d.cdl create mode 100644 src/Extrema/Extrema_ExtElC2d.hxx delete mode 100644 src/Extrema/Extrema_ExtElCS.cdl create mode 100644 src/Extrema/Extrema_ExtElCS.hxx delete mode 100644 src/Extrema/Extrema_ExtElSS.cdl create mode 100644 src/Extrema/Extrema_ExtElSS.hxx create mode 100644 src/Extrema/Extrema_ExtFlag.hxx create mode 100644 src/Extrema/Extrema_ExtPC.hxx create mode 100644 src/Extrema/Extrema_ExtPC2d.hxx create mode 100644 src/Extrema/Extrema_ExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_ExtPC_0.cxx delete mode 100644 src/Extrema/Extrema_ExtPElC.cdl create mode 100644 src/Extrema/Extrema_ExtPElC.hxx delete mode 100644 src/Extrema/Extrema_ExtPElC2d.cdl create mode 100644 src/Extrema/Extrema_ExtPElC2d.hxx delete mode 100644 src/Extrema/Extrema_ExtPElS.cdl create mode 100644 src/Extrema/Extrema_ExtPElS.hxx delete mode 100644 src/Extrema/Extrema_ExtPExtS.cdl create mode 100644 src/Extrema/Extrema_ExtPExtS.hxx delete mode 100644 src/Extrema/Extrema_ExtPRevS.cdl create mode 100644 src/Extrema/Extrema_ExtPRevS.hxx delete mode 100644 src/Extrema/Extrema_ExtPS.cdl create mode 100644 src/Extrema/Extrema_ExtPS.hxx delete mode 100644 src/Extrema/Extrema_ExtSS.cdl create mode 100644 src/Extrema/Extrema_ExtSS.hxx delete mode 100644 src/Extrema/Extrema_FuncExtCC.cdl delete mode 100644 src/Extrema/Extrema_FuncExtCS.cdl create mode 100644 src/Extrema/Extrema_FuncExtCS.hxx delete mode 100644 src/Extrema/Extrema_FuncExtPC.cdl delete mode 100644 src/Extrema/Extrema_FuncExtPS.cdl create mode 100644 src/Extrema/Extrema_FuncExtPS.hxx delete mode 100644 src/Extrema/Extrema_FuncExtSS.cdl create mode 100644 src/Extrema/Extrema_FuncExtSS.hxx delete mode 100644 src/Extrema/Extrema_GExtPC.cdl delete mode 100644 src/Extrema/Extrema_GLocateExtPC.cdl delete mode 100644 src/Extrema/Extrema_GenExtCC.cdl delete mode 100644 src/Extrema/Extrema_GenExtCS.cdl create mode 100644 src/Extrema/Extrema_GenExtCS.hxx delete mode 100644 src/Extrema/Extrema_GenExtPC.cdl delete mode 100644 src/Extrema/Extrema_GenExtPS.cdl create mode 100644 src/Extrema/Extrema_GenExtPS.hxx delete mode 100644 src/Extrema/Extrema_GenExtSS.cdl create mode 100644 src/Extrema/Extrema_GenExtSS.hxx delete mode 100644 src/Extrema/Extrema_GenLocateExtCC.cdl delete mode 100644 src/Extrema/Extrema_GenLocateExtCS.cdl create mode 100644 src/Extrema/Extrema_GenLocateExtCS.hxx delete mode 100644 src/Extrema/Extrema_GenLocateExtPC.cdl delete mode 100644 src/Extrema/Extrema_GenLocateExtPS.cdl create mode 100644 src/Extrema/Extrema_GenLocateExtPS.hxx delete mode 100644 src/Extrema/Extrema_GenLocateExtSS.cdl create mode 100644 src/Extrema/Extrema_GenLocateExtSS.hxx create mode 100644 src/Extrema/Extrema_LocECC.hxx create mode 100644 src/Extrema/Extrema_LocECC2d.hxx create mode 100644 src/Extrema/Extrema_LocECC2d_0.cxx create mode 100644 src/Extrema/Extrema_LocECC_0.cxx create mode 100644 src/Extrema/Extrema_LocEPCOfLocateExtPC.hxx create mode 100644 src/Extrema/Extrema_LocEPCOfLocateExtPC2d.hxx create mode 100644 src/Extrema/Extrema_LocEPCOfLocateExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_LocEPCOfLocateExtPC_0.cxx delete mode 100644 src/Extrema/Extrema_LocateExtCC.cdl create mode 100644 src/Extrema/Extrema_LocateExtCC.hxx delete mode 100644 src/Extrema/Extrema_LocateExtCC2d.cdl create mode 100644 src/Extrema/Extrema_LocateExtCC2d.hxx create mode 100644 src/Extrema/Extrema_LocateExtPC.hxx create mode 100644 src/Extrema/Extrema_LocateExtPC2d.hxx create mode 100644 src/Extrema/Extrema_LocateExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_LocateExtPC_0.cxx create mode 100644 src/Extrema/Extrema_PCFOfEPCOfELPCOfLocateExtPC.hxx create mode 100644 src/Extrema/Extrema_PCFOfEPCOfELPCOfLocateExtPC2d.hxx create mode 100644 src/Extrema/Extrema_PCFOfEPCOfELPCOfLocateExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_PCFOfEPCOfELPCOfLocateExtPC_0.cxx create mode 100644 src/Extrema/Extrema_PCFOfEPCOfExtPC.hxx create mode 100644 src/Extrema/Extrema_PCFOfEPCOfExtPC2d.hxx create mode 100644 src/Extrema/Extrema_PCFOfEPCOfExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_PCFOfEPCOfExtPC_0.cxx create mode 100644 src/Extrema/Extrema_PCLocFOfLocEPCOfLocateExtPC.hxx create mode 100644 src/Extrema/Extrema_PCLocFOfLocEPCOfLocateExtPC2d.hxx create mode 100644 src/Extrema/Extrema_PCLocFOfLocEPCOfLocateExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_PCLocFOfLocEPCOfLocateExtPC_0.cxx create mode 100644 src/Extrema/Extrema_POnCurv.hxx create mode 100644 src/Extrema/Extrema_POnCurv2d.hxx create mode 100644 src/Extrema/Extrema_POnCurv2d_0.cxx create mode 100644 src/Extrema/Extrema_POnCurv_0.cxx delete mode 100644 src/Extrema/Extrema_POnSurf.cdl create mode 100644 src/Extrema/Extrema_POnSurf.hxx delete mode 100644 src/Extrema/Extrema_POnSurfParams.cdl create mode 100644 src/Extrema/Extrema_POnSurfParams.hxx delete mode 100644 src/Extrema/Extrema_Point.cdl create mode 100644 src/Extrema/Extrema_SeqPCOfPCFOfEPCOfELPCOfLocateExtPC.hxx create mode 100644 src/Extrema/Extrema_SeqPCOfPCFOfEPCOfELPCOfLocateExtPC2d.hxx create mode 100644 src/Extrema/Extrema_SeqPCOfPCFOfEPCOfELPCOfLocateExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_SeqPCOfPCFOfEPCOfELPCOfLocateExtPC_0.cxx create mode 100644 src/Extrema/Extrema_SeqPCOfPCFOfEPCOfExtPC.hxx create mode 100644 src/Extrema/Extrema_SeqPCOfPCFOfEPCOfExtPC2d.hxx create mode 100644 src/Extrema/Extrema_SeqPCOfPCFOfEPCOfExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_SeqPCOfPCFOfEPCOfExtPC_0.cxx create mode 100644 src/Extrema/Extrema_SeqPCOfPCLocFOfLocEPCOfLocateExtPC.hxx create mode 100644 src/Extrema/Extrema_SeqPCOfPCLocFOfLocEPCOfLocateExtPC2d.hxx create mode 100644 src/Extrema/Extrema_SeqPCOfPCLocFOfLocEPCOfLocateExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_SeqPCOfPCLocFOfLocEPCOfLocateExtPC_0.cxx create mode 100644 src/Extrema/Extrema_SeqPOnCOfCCLocFOfLocECC.hxx create mode 100644 src/Extrema/Extrema_SeqPOnCOfCCLocFOfLocECC2d.hxx create mode 100644 src/Extrema/Extrema_SeqPOnCOfCCLocFOfLocECC2d_0.cxx create mode 100644 src/Extrema/Extrema_SeqPOnCOfCCLocFOfLocECC_0.cxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPCOfPCFOfEPCOfELPCOfLocateExtPC.hxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPCOfPCFOfEPCOfELPCOfLocateExtPC2d.hxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPCOfPCFOfEPCOfELPCOfLocateExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPCOfPCFOfEPCOfELPCOfLocateExtPC_0.cxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPCOfPCFOfEPCOfExtPC.hxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPCOfPCFOfEPCOfExtPC2d.hxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPCOfPCFOfEPCOfExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPCOfPCFOfEPCOfExtPC_0.cxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPCOfPCLocFOfLocEPCOfLocateExtPC.hxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPCOfPCLocFOfLocEPCOfLocateExtPC2d.hxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPCOfPCLocFOfLocEPCOfLocateExtPC2d_0.cxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPCOfPCLocFOfLocEPCOfLocateExtPC_0.cxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPOnCOfCCLocFOfLocECC.hxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPOnCOfCCLocFOfLocECC2d.hxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPOnCOfCCLocFOfLocECC2d_0.cxx create mode 100644 src/Extrema/Extrema_SequenceNodeOfSeqPOnCOfCCLocFOfLocECC_0.cxx delete mode 100644 src/FEmTool/FEmTool.cdl delete mode 100644 src/FEmTool/FEmTool_Assembly.cdl create mode 100644 src/FEmTool/FEmTool_Assembly.hxx delete mode 100644 src/FEmTool/FEmTool_Curve.cdl create mode 100644 src/FEmTool/FEmTool_Curve.hxx delete mode 100644 src/FEmTool/FEmTool_ElementaryCriterion.cdl create mode 100644 src/FEmTool/FEmTool_ElementaryCriterion.hxx delete mode 100644 src/FEmTool/FEmTool_ElementsOfRefMatrix.cdl create mode 100644 src/FEmTool/FEmTool_ElementsOfRefMatrix.hxx delete mode 100644 src/FEmTool/FEmTool_LinearFlexion.cdl create mode 100644 src/FEmTool/FEmTool_LinearFlexion.hxx delete mode 100644 src/FEmTool/FEmTool_LinearJerk.cdl create mode 100644 src/FEmTool/FEmTool_LinearJerk.hxx delete mode 100644 src/FEmTool/FEmTool_LinearTension.cdl create mode 100644 src/FEmTool/FEmTool_LinearTension.hxx delete mode 100644 src/FEmTool/FEmTool_ProfileMatrix.cdl create mode 100644 src/FEmTool/FEmTool_ProfileMatrix.hxx delete mode 100644 src/FEmTool/FEmTool_SparseMatrix.cdl create mode 100644 src/FEmTool/FEmTool_SparseMatrix.hxx delete mode 100644 src/FSD/FSD.cdl delete mode 100644 src/FSD/FSD_BinaryFile.cdl create mode 100644 src/FSD/FSD_BinaryFile.hxx delete mode 100644 src/FSD/FSD_CmpFile.cdl create mode 100644 src/FSD/FSD_CmpFile.hxx delete mode 100644 src/FSD/FSD_File.cdl create mode 100644 src/FSD/FSD_File.hxx create mode 100644 src/FWOSDriver/FILES delete mode 100644 src/FWOSDriver/FWOSDriver.cdl create mode 100644 src/FWOSDriver/FWOSDriver.hxx delete mode 100644 src/FWOSDriver/FWOSDriver_DriverFactory.cdl create mode 100644 src/FWOSDriver/FWOSDriver_DriverFactory.hxx create mode 100644 src/FairCurve/FILES delete mode 100644 src/FairCurve/FairCurve.cdl create mode 100644 src/FairCurve/FairCurve_AnalysisCode.hxx delete mode 100644 src/FairCurve/FairCurve_Batten.cdl create mode 100644 src/FairCurve/FairCurve_Batten.hxx delete mode 100644 src/FairCurve/FairCurve_BattenLaw.cdl create mode 100644 src/FairCurve/FairCurve_BattenLaw.hxx delete mode 100644 src/FairCurve/FairCurve_DistributionOfEnergy.cdl create mode 100644 src/FairCurve/FairCurve_DistributionOfEnergy.hxx delete mode 100644 src/FairCurve/FairCurve_DistributionOfJerk.cdl create mode 100644 src/FairCurve/FairCurve_DistributionOfJerk.hxx delete mode 100644 src/FairCurve/FairCurve_DistributionOfSagging.cdl create mode 100644 src/FairCurve/FairCurve_DistributionOfSagging.hxx delete mode 100644 src/FairCurve/FairCurve_DistributionOfTension.cdl create mode 100644 src/FairCurve/FairCurve_DistributionOfTension.hxx delete mode 100644 src/FairCurve/FairCurve_Energy.cdl create mode 100644 src/FairCurve/FairCurve_Energy.hxx delete mode 100644 src/FairCurve/FairCurve_EnergyOfBatten.cdl create mode 100644 src/FairCurve/FairCurve_EnergyOfBatten.hxx delete mode 100644 src/FairCurve/FairCurve_EnergyOfMVC.cdl create mode 100644 src/FairCurve/FairCurve_EnergyOfMVC.hxx delete mode 100644 src/FairCurve/FairCurve_MinimalVariation.cdl create mode 100644 src/FairCurve/FairCurve_MinimalVariation.hxx delete mode 100644 src/FairCurve/FairCurve_Newton.cdl create mode 100644 src/FairCurve/FairCurve_Newton.hxx create mode 100644 src/FilletSurf/FILES delete mode 100644 src/FilletSurf/FilletSurf.cdl delete mode 100644 src/FilletSurf/FilletSurf_Builder.cdl create mode 100644 src/FilletSurf/FilletSurf_Builder.hxx create mode 100644 src/FilletSurf/FilletSurf_ErrorTypeStatus.hxx delete mode 100644 src/FilletSurf/FilletSurf_InternalBuilder.cdl create mode 100644 src/FilletSurf/FilletSurf_InternalBuilder.hxx create mode 100644 src/FilletSurf/FilletSurf_StatusDone.hxx create mode 100644 src/FilletSurf/FilletSurf_StatusType.hxx delete mode 100644 src/Font/Font.cdl create mode 100644 src/Font/Font_FontAspect.hxx delete mode 100644 src/Font/Font_FontMgr.cdl create mode 100644 src/Font/Font_FontMgr.hxx delete mode 100644 src/Font/Font_SystemFont.cdl create mode 100644 src/Font/Font_SystemFont.hxx create mode 100644 src/GC/FILES delete mode 100644 src/GC/GC.cdl delete mode 100644 src/GC/GC_MakeArcOfCircle.cdl create mode 100644 src/GC/GC_MakeArcOfCircle.hxx delete mode 100644 src/GC/GC_MakeArcOfEllipse.cdl create mode 100644 src/GC/GC_MakeArcOfEllipse.hxx delete mode 100644 src/GC/GC_MakeArcOfHyperbola.cdl create mode 100644 src/GC/GC_MakeArcOfHyperbola.hxx delete mode 100644 src/GC/GC_MakeArcOfParabola.cdl create mode 100644 src/GC/GC_MakeArcOfParabola.hxx delete mode 100644 src/GC/GC_MakeCircle.cdl create mode 100644 src/GC/GC_MakeCircle.hxx delete mode 100644 src/GC/GC_MakeConicalSurface.cdl create mode 100644 src/GC/GC_MakeConicalSurface.hxx delete mode 100644 src/GC/GC_MakeCylindricalSurface.cdl create mode 100644 src/GC/GC_MakeCylindricalSurface.hxx delete mode 100644 src/GC/GC_MakeEllipse.cdl create mode 100644 src/GC/GC_MakeEllipse.hxx delete mode 100644 src/GC/GC_MakeHyperbola.cdl create mode 100644 src/GC/GC_MakeHyperbola.hxx delete mode 100644 src/GC/GC_MakeLine.cdl create mode 100644 src/GC/GC_MakeLine.hxx delete mode 100644 src/GC/GC_MakeMirror.cdl create mode 100644 src/GC/GC_MakeMirror.hxx delete mode 100644 src/GC/GC_MakePlane.cdl create mode 100644 src/GC/GC_MakePlane.hxx delete mode 100644 src/GC/GC_MakeRotation.cdl create mode 100644 src/GC/GC_MakeRotation.hxx delete mode 100644 src/GC/GC_MakeScale.cdl create mode 100644 src/GC/GC_MakeScale.hxx delete mode 100644 src/GC/GC_MakeSegment.cdl create mode 100644 src/GC/GC_MakeSegment.hxx delete mode 100644 src/GC/GC_MakeTranslation.cdl create mode 100644 src/GC/GC_MakeTranslation.hxx delete mode 100644 src/GC/GC_MakeTrimmedCone.cdl create mode 100644 src/GC/GC_MakeTrimmedCone.hxx delete mode 100644 src/GC/GC_MakeTrimmedCylinder.cdl create mode 100644 src/GC/GC_MakeTrimmedCylinder.hxx delete mode 100644 src/GC/GC_Root.cdl create mode 100644 src/GC/GC_Root.hxx create mode 100644 src/GCE2d/FILES delete mode 100644 src/GCE2d/GCE2d.cdl delete mode 100644 src/GCE2d/GCE2d_MakeArcOfCircle.cdl create mode 100644 src/GCE2d/GCE2d_MakeArcOfCircle.hxx delete mode 100644 src/GCE2d/GCE2d_MakeArcOfEllipse.cdl create mode 100644 src/GCE2d/GCE2d_MakeArcOfEllipse.hxx delete mode 100644 src/GCE2d/GCE2d_MakeArcOfHyperbola.cdl create mode 100644 src/GCE2d/GCE2d_MakeArcOfHyperbola.hxx delete mode 100644 src/GCE2d/GCE2d_MakeArcOfParabola.cdl create mode 100644 src/GCE2d/GCE2d_MakeArcOfParabola.hxx delete mode 100644 src/GCE2d/GCE2d_MakeCircle.cdl create mode 100644 src/GCE2d/GCE2d_MakeCircle.hxx delete mode 100644 src/GCE2d/GCE2d_MakeEllipse.cdl create mode 100644 src/GCE2d/GCE2d_MakeEllipse.hxx delete mode 100644 src/GCE2d/GCE2d_MakeHyperbola.cdl create mode 100644 src/GCE2d/GCE2d_MakeHyperbola.hxx delete mode 100644 src/GCE2d/GCE2d_MakeLine.cdl create mode 100644 src/GCE2d/GCE2d_MakeLine.hxx delete mode 100644 src/GCE2d/GCE2d_MakeMirror.cdl create mode 100644 src/GCE2d/GCE2d_MakeMirror.hxx delete mode 100644 src/GCE2d/GCE2d_MakeParabola.cdl create mode 100644 src/GCE2d/GCE2d_MakeParabola.hxx delete mode 100644 src/GCE2d/GCE2d_MakeRotation.cdl create mode 100644 src/GCE2d/GCE2d_MakeRotation.hxx delete mode 100644 src/GCE2d/GCE2d_MakeScale.cdl create mode 100644 src/GCE2d/GCE2d_MakeScale.hxx delete mode 100644 src/GCE2d/GCE2d_MakeSegment.cdl create mode 100644 src/GCE2d/GCE2d_MakeSegment.hxx delete mode 100644 src/GCE2d/GCE2d_MakeTranslation.cdl create mode 100644 src/GCE2d/GCE2d_MakeTranslation.hxx delete mode 100644 src/GCE2d/GCE2d_Root.cdl create mode 100644 src/GCE2d/GCE2d_Root.hxx delete mode 100644 src/GCPnts/GCPnts.cdl delete mode 100644 src/GCPnts/GCPnts_AbscissaPoint.cdl create mode 100644 src/GCPnts/GCPnts_AbscissaPoint.hxx create mode 100644 src/GCPnts/GCPnts_AbscissaType.hxx create mode 100644 src/GCPnts/GCPnts_DeflectionType.hxx delete mode 100644 src/GCPnts/GCPnts_QuasiUniformAbscissa.cdl create mode 100644 src/GCPnts/GCPnts_QuasiUniformAbscissa.hxx delete mode 100644 src/GCPnts/GCPnts_QuasiUniformDeflection.cdl create mode 100644 src/GCPnts/GCPnts_QuasiUniformDeflection.hxx delete mode 100644 src/GCPnts/GCPnts_TangentialDeflection.cdl create mode 100644 src/GCPnts/GCPnts_TangentialDeflection.hxx delete mode 100644 src/GCPnts/GCPnts_UniformAbscissa.cdl create mode 100644 src/GCPnts/GCPnts_UniformAbscissa.hxx delete mode 100644 src/GCPnts/GCPnts_UniformDeflection.cdl create mode 100644 src/GCPnts/GCPnts_UniformDeflection.hxx create mode 100644 src/GProp/FILES delete mode 100644 src/GProp/GProp.cdl create mode 100644 src/GProp/GProp.hxx delete mode 100644 src/GProp/GProp_CelGProps.cdl create mode 100644 src/GProp/GProp_CelGProps.hxx create mode 100644 src/GProp/GProp_EquaType.hxx delete mode 100644 src/GProp/GProp_GProps.cdl create mode 100644 src/GProp/GProp_GProps.hxx delete mode 100644 src/GProp/GProp_PEquation.cdl create mode 100644 src/GProp/GProp_PEquation.hxx delete mode 100644 src/GProp/GProp_PGProps.cdl create mode 100644 src/GProp/GProp_PGProps.hxx delete mode 100644 src/GProp/GProp_PrincipalProps.cdl create mode 100644 src/GProp/GProp_PrincipalProps.hxx delete mode 100644 src/GProp/GProp_SelGProps.cdl create mode 100644 src/GProp/GProp_SelGProps.hxx create mode 100644 src/GProp/GProp_UndefinedAxis.hxx create mode 100644 src/GProp/GProp_ValueType.hxx delete mode 100644 src/GProp/GProp_VelGProps.cdl create mode 100644 src/GProp/GProp_VelGProps.hxx delete mode 100644 src/GccAna/GccAna.cdl delete mode 100644 src/GccAna/GccAna_Circ2d2TanOn.cdl create mode 100644 src/GccAna/GccAna_Circ2d2TanOn.hxx delete mode 100644 src/GccAna/GccAna_Circ2d2TanRad.cdl create mode 100644 src/GccAna/GccAna_Circ2d2TanRad.hxx delete mode 100644 src/GccAna/GccAna_Circ2d3Tan.cdl create mode 100644 src/GccAna/GccAna_Circ2d3Tan.hxx delete mode 100644 src/GccAna/GccAna_Circ2dBisec.cdl create mode 100644 src/GccAna/GccAna_Circ2dBisec.hxx delete mode 100644 src/GccAna/GccAna_Circ2dTanCen.cdl create mode 100644 src/GccAna/GccAna_Circ2dTanCen.hxx delete mode 100644 src/GccAna/GccAna_Circ2dTanOnRad.cdl create mode 100644 src/GccAna/GccAna_Circ2dTanOnRad.hxx delete mode 100644 src/GccAna/GccAna_CircLin2dBisec.cdl create mode 100644 src/GccAna/GccAna_CircLin2dBisec.hxx delete mode 100644 src/GccAna/GccAna_CircPnt2dBisec.cdl create mode 100644 src/GccAna/GccAna_CircPnt2dBisec.hxx delete mode 100644 src/GccAna/GccAna_Lin2d2Tan.cdl create mode 100644 src/GccAna/GccAna_Lin2d2Tan.hxx delete mode 100644 src/GccAna/GccAna_Lin2dBisec.cdl create mode 100644 src/GccAna/GccAna_Lin2dBisec.hxx delete mode 100644 src/GccAna/GccAna_Lin2dTanObl.cdl create mode 100644 src/GccAna/GccAna_Lin2dTanObl.hxx delete mode 100644 src/GccAna/GccAna_Lin2dTanPar.cdl create mode 100644 src/GccAna/GccAna_Lin2dTanPar.hxx delete mode 100644 src/GccAna/GccAna_Lin2dTanPer.cdl create mode 100644 src/GccAna/GccAna_Lin2dTanPer.hxx delete mode 100644 src/GccAna/GccAna_LinPnt2dBisec.cdl create mode 100644 src/GccAna/GccAna_LinPnt2dBisec.hxx create mode 100644 src/GccAna/GccAna_NoSolution.hxx delete mode 100644 src/GccAna/GccAna_Pnt2dBisec.cdl create mode 100644 src/GccAna/GccAna_Pnt2dBisec.hxx delete mode 100644 src/GccEnt/GccEnt.cdl create mode 100644 src/GccEnt/GccEnt.hxx create mode 100644 src/GccEnt/GccEnt_BadQualifier.hxx create mode 100644 src/GccEnt/GccEnt_Position.hxx delete mode 100644 src/GccEnt/GccEnt_QualifiedCirc.cdl create mode 100644 src/GccEnt/GccEnt_QualifiedCirc.hxx delete mode 100644 src/GccEnt/GccEnt_QualifiedLin.cdl create mode 100644 src/GccEnt/GccEnt_QualifiedLin.hxx create mode 100644 src/GccInt/FILES delete mode 100644 src/GccInt/GccInt.cdl delete mode 100644 src/GccInt/GccInt_BCirc.cdl create mode 100644 src/GccInt/GccInt_BCirc.hxx delete mode 100644 src/GccInt/GccInt_BElips.cdl create mode 100644 src/GccInt/GccInt_BElips.hxx delete mode 100644 src/GccInt/GccInt_BHyper.cdl create mode 100644 src/GccInt/GccInt_BHyper.hxx delete mode 100644 src/GccInt/GccInt_BLine.cdl create mode 100644 src/GccInt/GccInt_BLine.hxx delete mode 100644 src/GccInt/GccInt_BParab.cdl create mode 100644 src/GccInt/GccInt_BParab.hxx delete mode 100644 src/GccInt/GccInt_BPoint.cdl create mode 100644 src/GccInt/GccInt_BPoint.hxx delete mode 100644 src/GccInt/GccInt_Bisec.cdl create mode 100644 src/GccInt/GccInt_Bisec.hxx create mode 100644 src/GccInt/GccInt_IType.hxx delete mode 100644 src/Geom/Geom.cdl delete mode 100644 src/Geom/Geom_Axis1Placement.cdl create mode 100644 src/Geom/Geom_Axis1Placement.hxx delete mode 100644 src/Geom/Geom_Axis2Placement.cdl create mode 100644 src/Geom/Geom_Axis2Placement.hxx delete mode 100644 src/Geom/Geom_AxisPlacement.cdl create mode 100644 src/Geom/Geom_AxisPlacement.hxx delete mode 100644 src/Geom/Geom_BSplineCurve.cdl create mode 100644 src/Geom/Geom_BSplineCurve.hxx delete mode 100644 src/Geom/Geom_BSplineSurface.cdl create mode 100644 src/Geom/Geom_BSplineSurface.hxx delete mode 100644 src/Geom/Geom_BezierCurve.cdl create mode 100644 src/Geom/Geom_BezierCurve.hxx delete mode 100644 src/Geom/Geom_BezierSurface.cdl create mode 100644 src/Geom/Geom_BezierSurface.hxx delete mode 100644 src/Geom/Geom_BoundedCurve.cdl create mode 100644 src/Geom/Geom_BoundedCurve.hxx delete mode 100644 src/Geom/Geom_BoundedSurface.cdl create mode 100644 src/Geom/Geom_BoundedSurface.hxx delete mode 100644 src/Geom/Geom_CartesianPoint.cdl create mode 100644 src/Geom/Geom_CartesianPoint.hxx delete mode 100644 src/Geom/Geom_Circle.cdl create mode 100644 src/Geom/Geom_Circle.hxx delete mode 100644 src/Geom/Geom_Conic.cdl create mode 100644 src/Geom/Geom_Conic.hxx delete mode 100644 src/Geom/Geom_ConicalSurface.cdl create mode 100644 src/Geom/Geom_ConicalSurface.hxx delete mode 100644 src/Geom/Geom_Curve.cdl create mode 100644 src/Geom/Geom_Curve.hxx delete mode 100644 src/Geom/Geom_CylindricalSurface.cdl create mode 100644 src/Geom/Geom_CylindricalSurface.hxx delete mode 100644 src/Geom/Geom_Direction.cdl create mode 100644 src/Geom/Geom_Direction.hxx delete mode 100644 src/Geom/Geom_ElementarySurface.cdl create mode 100644 src/Geom/Geom_ElementarySurface.hxx delete mode 100644 src/Geom/Geom_Ellipse.cdl create mode 100644 src/Geom/Geom_Ellipse.hxx delete mode 100644 src/Geom/Geom_Geometry.cdl create mode 100644 src/Geom/Geom_Geometry.hxx delete mode 100644 src/Geom/Geom_Hyperbola.cdl create mode 100644 src/Geom/Geom_Hyperbola.hxx delete mode 100644 src/Geom/Geom_Line.cdl create mode 100644 src/Geom/Geom_Line.hxx delete mode 100644 src/Geom/Geom_OffsetCurve.cdl create mode 100644 src/Geom/Geom_OffsetCurve.hxx delete mode 100644 src/Geom/Geom_OffsetSurface.cdl create mode 100644 src/Geom/Geom_OffsetSurface.hxx delete mode 100644 src/Geom/Geom_OsculatingSurface.cdl create mode 100644 src/Geom/Geom_OsculatingSurface.hxx delete mode 100644 src/Geom/Geom_Parabola.cdl create mode 100644 src/Geom/Geom_Parabola.hxx delete mode 100644 src/Geom/Geom_Plane.cdl create mode 100644 src/Geom/Geom_Plane.hxx delete mode 100644 src/Geom/Geom_Point.cdl create mode 100644 src/Geom/Geom_Point.hxx delete mode 100644 src/Geom/Geom_RectangularTrimmedSurface.cdl create mode 100644 src/Geom/Geom_RectangularTrimmedSurface.hxx delete mode 100644 src/Geom/Geom_SphericalSurface.cdl create mode 100644 src/Geom/Geom_SphericalSurface.hxx delete mode 100644 src/Geom/Geom_Surface.cdl create mode 100644 src/Geom/Geom_Surface.hxx delete mode 100644 src/Geom/Geom_SurfaceOfLinearExtrusion.cdl create mode 100644 src/Geom/Geom_SurfaceOfLinearExtrusion.hxx delete mode 100644 src/Geom/Geom_SurfaceOfRevolution.cdl create mode 100644 src/Geom/Geom_SurfaceOfRevolution.hxx delete mode 100644 src/Geom/Geom_SweptSurface.cdl create mode 100644 src/Geom/Geom_SweptSurface.hxx delete mode 100644 src/Geom/Geom_ToroidalSurface.cdl create mode 100644 src/Geom/Geom_ToroidalSurface.hxx delete mode 100644 src/Geom/Geom_Transformation.cdl create mode 100644 src/Geom/Geom_Transformation.hxx delete mode 100644 src/Geom/Geom_TrimmedCurve.cdl create mode 100644 src/Geom/Geom_TrimmedCurve.hxx create mode 100644 src/Geom/Geom_UndefinedDerivative.hxx create mode 100644 src/Geom/Geom_UndefinedValue.hxx delete mode 100644 src/Geom/Geom_Vector.cdl create mode 100644 src/Geom/Geom_Vector.hxx delete mode 100644 src/Geom/Geom_VectorWithMagnitude.cdl create mode 100644 src/Geom/Geom_VectorWithMagnitude.hxx delete mode 100644 src/Geom2d/Geom2d.cdl delete mode 100644 src/Geom2d/Geom2d_AxisPlacement.cdl create mode 100644 src/Geom2d/Geom2d_AxisPlacement.hxx delete mode 100644 src/Geom2d/Geom2d_BSplineCurve.cdl create mode 100644 src/Geom2d/Geom2d_BSplineCurve.hxx delete mode 100644 src/Geom2d/Geom2d_BezierCurve.cdl create mode 100644 src/Geom2d/Geom2d_BezierCurve.hxx delete mode 100644 src/Geom2d/Geom2d_BoundedCurve.cdl create mode 100644 src/Geom2d/Geom2d_BoundedCurve.hxx delete mode 100644 src/Geom2d/Geom2d_CartesianPoint.cdl create mode 100644 src/Geom2d/Geom2d_CartesianPoint.hxx delete mode 100644 src/Geom2d/Geom2d_Circle.cdl create mode 100644 src/Geom2d/Geom2d_Circle.hxx delete mode 100644 src/Geom2d/Geom2d_Conic.cdl create mode 100644 src/Geom2d/Geom2d_Conic.hxx delete mode 100644 src/Geom2d/Geom2d_Curve.cdl create mode 100644 src/Geom2d/Geom2d_Curve.hxx delete mode 100644 src/Geom2d/Geom2d_Direction.cdl create mode 100644 src/Geom2d/Geom2d_Direction.hxx delete mode 100644 src/Geom2d/Geom2d_Ellipse.cdl create mode 100644 src/Geom2d/Geom2d_Ellipse.hxx delete mode 100644 src/Geom2d/Geom2d_Geometry.cdl create mode 100644 src/Geom2d/Geom2d_Geometry.hxx delete mode 100644 src/Geom2d/Geom2d_Hyperbola.cdl create mode 100644 src/Geom2d/Geom2d_Hyperbola.hxx delete mode 100644 src/Geom2d/Geom2d_Line.cdl create mode 100644 src/Geom2d/Geom2d_Line.hxx delete mode 100644 src/Geom2d/Geom2d_OffsetCurve.cdl create mode 100644 src/Geom2d/Geom2d_OffsetCurve.hxx delete mode 100644 src/Geom2d/Geom2d_Parabola.cdl create mode 100644 src/Geom2d/Geom2d_Parabola.hxx delete mode 100644 src/Geom2d/Geom2d_Point.cdl create mode 100644 src/Geom2d/Geom2d_Point.hxx delete mode 100644 src/Geom2d/Geom2d_Transformation.cdl create mode 100644 src/Geom2d/Geom2d_Transformation.hxx delete mode 100644 src/Geom2d/Geom2d_TrimmedCurve.cdl create mode 100644 src/Geom2d/Geom2d_TrimmedCurve.hxx create mode 100644 src/Geom2d/Geom2d_UndefinedDerivative.hxx create mode 100644 src/Geom2d/Geom2d_UndefinedValue.hxx delete mode 100644 src/Geom2d/Geom2d_Vector.cdl create mode 100644 src/Geom2d/Geom2d_Vector.hxx delete mode 100644 src/Geom2d/Geom2d_VectorWithMagnitude.cdl create mode 100644 src/Geom2d/Geom2d_VectorWithMagnitude.hxx create mode 100644 src/Geom2dAPI/FILES delete mode 100644 src/Geom2dAPI/Geom2dAPI.cdl delete mode 100644 src/Geom2dAPI/Geom2dAPI_ExtremaCurveCurve.cdl create mode 100644 src/Geom2dAPI/Geom2dAPI_ExtremaCurveCurve.hxx delete mode 100644 src/Geom2dAPI/Geom2dAPI_InterCurveCurve.cdl create mode 100644 src/Geom2dAPI/Geom2dAPI_InterCurveCurve.hxx delete mode 100644 src/Geom2dAPI/Geom2dAPI_Interpolate.cdl create mode 100644 src/Geom2dAPI/Geom2dAPI_Interpolate.hxx delete mode 100644 src/Geom2dAPI/Geom2dAPI_PointsToBSpline.cdl create mode 100644 src/Geom2dAPI/Geom2dAPI_PointsToBSpline.hxx delete mode 100644 src/Geom2dAPI/Geom2dAPI_ProjectPointOnCurve.cdl create mode 100644 src/Geom2dAPI/Geom2dAPI_ProjectPointOnCurve.hxx create mode 100644 src/Geom2dAdaptor/FILES delete mode 100644 src/Geom2dAdaptor/Geom2dAdaptor.cdl create mode 100644 src/Geom2dAdaptor/Geom2dAdaptor.hxx delete mode 100644 src/Geom2dAdaptor/Geom2dAdaptor_Curve.cdl create mode 100644 src/Geom2dAdaptor/Geom2dAdaptor_Curve.hxx create mode 100644 src/Geom2dAdaptor/Geom2dAdaptor_GHCurve.hxx create mode 100644 src/Geom2dAdaptor/Geom2dAdaptor_GHCurve_0.cxx delete mode 100644 src/Geom2dAdaptor/Geom2dAdaptor_HCurve.cdl create mode 100644 src/Geom2dAdaptor/Geom2dAdaptor_HCurve.hxx create mode 100644 src/Geom2dConvert/FILES delete mode 100644 src/Geom2dConvert/Geom2dConvert.cdl create mode 100644 src/Geom2dConvert/Geom2dConvert.hxx delete mode 100644 src/Geom2dConvert/Geom2dConvert_ApproxCurve.cdl create mode 100644 src/Geom2dConvert/Geom2dConvert_ApproxCurve.hxx delete mode 100644 src/Geom2dConvert/Geom2dConvert_BSplineCurveKnotSplitting.cdl create mode 100644 src/Geom2dConvert/Geom2dConvert_BSplineCurveKnotSplitting.hxx delete mode 100644 src/Geom2dConvert/Geom2dConvert_BSplineCurveToBezierCurve.cdl create mode 100644 src/Geom2dConvert/Geom2dConvert_BSplineCurveToBezierCurve.hxx delete mode 100644 src/Geom2dConvert/Geom2dConvert_CompCurveToBSplineCurve.cdl create mode 100644 src/Geom2dConvert/Geom2dConvert_CompCurveToBSplineCurve.hxx create mode 100644 src/Geom2dGcc/FILES delete mode 100644 src/Geom2dGcc/Geom2dGcc.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2d2TanOn.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2d2TanOn.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2d2TanOnGeo.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2d2TanOnGeo.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2d2TanOnIter.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2d2TanOnIter.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2d2TanRad.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2d2TanRad.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2d2TanRadGeo.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2d2TanRadGeo.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2d3Tan.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2d3Tan.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2d3TanIter.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2d3TanIter.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2dTanCen.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2dTanCen.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2dTanCenGeo.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2dTanCenGeo.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2dTanOnRad.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2dTanOnRad.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2dTanOnRadGeo.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Circ2dTanOnRadGeo.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_CurveTool.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_CurveTool.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_CurveToolGeo.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_CurveToolGeo.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_FunctionTanCirCu.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_FunctionTanCirCu.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_FunctionTanCuCu.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_FunctionTanCuCu.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_FunctionTanCuCuCu.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_FunctionTanCuCuCu.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_FunctionTanCuCuOnCu.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_FunctionTanCuCuOnCu.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_FunctionTanCuPnt.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_FunctionTanCuPnt.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_FunctionTanObl.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_FunctionTanObl.hxx create mode 100644 src/Geom2dGcc/Geom2dGcc_IsParallel.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Lin2d2Tan.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Lin2d2Tan.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Lin2d2TanIter.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Lin2d2TanIter.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Lin2dTanObl.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Lin2dTanObl.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_Lin2dTanOblIter.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_Lin2dTanOblIter.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_QCurve.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_QCurve.hxx delete mode 100644 src/Geom2dGcc/Geom2dGcc_QualifiedCurve.cdl create mode 100644 src/Geom2dGcc/Geom2dGcc_QualifiedCurve.hxx create mode 100644 src/Geom2dGcc/Geom2dGcc_Type1.hxx create mode 100644 src/Geom2dGcc/Geom2dGcc_Type2.hxx create mode 100644 src/Geom2dGcc/Geom2dGcc_Type3.hxx delete mode 100644 src/Geom2dHatch/Geom2dHatch.cdl create mode 100644 src/Geom2dHatch/Geom2dHatch_Classifier.hxx create mode 100644 src/Geom2dHatch/Geom2dHatch_Classifier_0.cxx delete mode 100644 src/Geom2dHatch/Geom2dHatch_Element.cdl create mode 100644 src/Geom2dHatch/Geom2dHatch_Element.hxx delete mode 100644 src/Geom2dHatch/Geom2dHatch_Elements.cdl create mode 100644 src/Geom2dHatch/Geom2dHatch_Elements.hxx create mode 100644 src/Geom2dHatch/Geom2dHatch_FClass2dOfClassifier.hxx create mode 100644 src/Geom2dHatch/Geom2dHatch_FClass2dOfClassifier_0.cxx delete mode 100644 src/Geom2dHatch/Geom2dHatch_Hatcher.cdl create mode 100644 src/Geom2dHatch/Geom2dHatch_Hatcher.hxx delete mode 100644 src/Geom2dHatch/Geom2dHatch_Hatching.cdl create mode 100644 src/Geom2dHatch/Geom2dHatch_Hatching.hxx delete mode 100644 src/Geom2dHatch/Geom2dHatch_Intersector.cdl create mode 100644 src/Geom2dHatch/Geom2dHatch_Intersector.hxx create mode 100644 src/Geom2dInt/FILES delete mode 100644 src/Geom2dInt/Geom2dInt.cdl create mode 100644 src/Geom2dInt/Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter_0.cxx create mode 100644 src/Geom2dInt/Geom2dInt_GInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_GInter_0.cxx delete mode 100644 src/Geom2dInt/Geom2dInt_Geom2dCurveTool.cdl create mode 100644 src/Geom2dInt/Geom2dInt_Geom2dCurveTool.hxx create mode 100644 src/Geom2dInt/Geom2dInt_IntConicCurveOfGInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_IntConicCurveOfGInter_0.cxx create mode 100644 src/Geom2dInt/Geom2dInt_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfGInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfGInter_0.cxx create mode 100644 src/Geom2dInt/Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter_0.cxx create mode 100644 src/Geom2dInt/Geom2dInt_SeqPCOfPCLocFOfTheLocateExtPCOfTheProjPCurOfGInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_SeqPCOfPCLocFOfTheLocateExtPCOfTheProjPCurOfGInter_0.cxx create mode 100644 src/Geom2dInt/Geom2dInt_SequenceNodeOfSeqPCOfPCLocFOfTheLocateExtPCOfTheProjPCurOfGInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_SequenceNodeOfSeqPCOfPCLocFOfTheLocateExtPCOfTheProjPCurOfGInter_0.cxx create mode 100644 src/Geom2dInt/Geom2dInt_TheCurveLocatorOfTheProjPCurOfGInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_TheCurveLocatorOfTheProjPCurOfGInter_0.cxx create mode 100644 src/Geom2dInt/Geom2dInt_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfGInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfGInter_0.cxx create mode 100644 src/Geom2dInt/Geom2dInt_TheIntConicCurveOfGInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_TheIntConicCurveOfGInter_0.cxx create mode 100644 src/Geom2dInt/Geom2dInt_TheIntPCurvePCurveOfGInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_TheIntPCurvePCurveOfGInter_0.cxx create mode 100644 src/Geom2dInt/Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter_0.cxx create mode 100644 src/Geom2dInt/Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter_0.cxx create mode 100644 src/Geom2dInt/Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter_0.cxx create mode 100644 src/Geom2dInt/Geom2dInt_TheProjPCurOfGInter.hxx create mode 100644 src/Geom2dInt/Geom2dInt_TheProjPCurOfGInter_0.cxx create mode 100644 src/Geom2dLProp/FILES delete mode 100644 src/Geom2dLProp/Geom2dLProp.cdl create mode 100644 src/Geom2dLProp/Geom2dLProp_CLProps2d.hxx create mode 100644 src/Geom2dLProp/Geom2dLProp_CLProps2d_0.cxx delete mode 100644 src/Geom2dLProp/Geom2dLProp_CurAndInf2d.cdl create mode 100644 src/Geom2dLProp/Geom2dLProp_CurAndInf2d.hxx delete mode 100644 src/Geom2dLProp/Geom2dLProp_Curve2dTool.cdl create mode 100644 src/Geom2dLProp/Geom2dLProp_Curve2dTool.hxx delete mode 100644 src/Geom2dLProp/Geom2dLProp_FuncCurExt.cdl create mode 100644 src/Geom2dLProp/Geom2dLProp_FuncCurExt.hxx delete mode 100644 src/Geom2dLProp/Geom2dLProp_FuncCurNul.cdl create mode 100644 src/Geom2dLProp/Geom2dLProp_FuncCurNul.hxx delete mode 100644 src/Geom2dLProp/Geom2dLProp_NumericCurInf2d.cdl create mode 100644 src/Geom2dLProp/Geom2dLProp_NumericCurInf2d.hxx create mode 100644 src/Geom2dToIGES/FILES delete mode 100644 src/Geom2dToIGES/Geom2dToIGES.cdl delete mode 100644 src/Geom2dToIGES/Geom2dToIGES_Geom2dCurve.cdl create mode 100644 src/Geom2dToIGES/Geom2dToIGES_Geom2dCurve.hxx delete mode 100644 src/Geom2dToIGES/Geom2dToIGES_Geom2dEntity.cdl create mode 100644 src/Geom2dToIGES/Geom2dToIGES_Geom2dEntity.hxx delete mode 100644 src/Geom2dToIGES/Geom2dToIGES_Geom2dPoint.cdl create mode 100644 src/Geom2dToIGES/Geom2dToIGES_Geom2dPoint.hxx delete mode 100644 src/Geom2dToIGES/Geom2dToIGES_Geom2dVector.cdl create mode 100644 src/Geom2dToIGES/Geom2dToIGES_Geom2dVector.hxx create mode 100644 src/GeomAPI/FILES delete mode 100644 src/GeomAPI/GeomAPI.cdl create mode 100644 src/GeomAPI/GeomAPI.hxx delete mode 100644 src/GeomAPI/GeomAPI_ExtremaCurveCurve.cdl create mode 100644 src/GeomAPI/GeomAPI_ExtremaCurveCurve.hxx delete mode 100644 src/GeomAPI/GeomAPI_ExtremaCurveSurface.cdl create mode 100644 src/GeomAPI/GeomAPI_ExtremaCurveSurface.hxx delete mode 100644 src/GeomAPI/GeomAPI_ExtremaSurfaceSurface.cdl create mode 100644 src/GeomAPI/GeomAPI_ExtremaSurfaceSurface.hxx delete mode 100644 src/GeomAPI/GeomAPI_IntCS.cdl create mode 100644 src/GeomAPI/GeomAPI_IntCS.hxx delete mode 100644 src/GeomAPI/GeomAPI_IntSS.cdl create mode 100644 src/GeomAPI/GeomAPI_IntSS.hxx delete mode 100644 src/GeomAPI/GeomAPI_Interpolate.cdl create mode 100644 src/GeomAPI/GeomAPI_Interpolate.hxx delete mode 100644 src/GeomAPI/GeomAPI_PointsToBSpline.cdl create mode 100644 src/GeomAPI/GeomAPI_PointsToBSpline.hxx delete mode 100644 src/GeomAPI/GeomAPI_PointsToBSplineSurface.cdl create mode 100644 src/GeomAPI/GeomAPI_PointsToBSplineSurface.hxx delete mode 100644 src/GeomAPI/GeomAPI_ProjectPointOnCurve.cdl create mode 100644 src/GeomAPI/GeomAPI_ProjectPointOnCurve.hxx delete mode 100644 src/GeomAPI/GeomAPI_ProjectPointOnSurf.cdl create mode 100644 src/GeomAPI/GeomAPI_ProjectPointOnSurf.hxx create mode 100644 src/GeomAbs/FILES delete mode 100644 src/GeomAbs/GeomAbs.cdl create mode 100644 src/GeomAbs/GeomAbs_BSplKnotDistribution.hxx create mode 100644 src/GeomAbs/GeomAbs_CurveForm.hxx create mode 100644 src/GeomAbs/GeomAbs_CurveType.hxx create mode 100644 src/GeomAbs/GeomAbs_IsoType.hxx create mode 100644 src/GeomAbs/GeomAbs_JoinType.hxx create mode 100644 src/GeomAbs/GeomAbs_Shape.hxx create mode 100644 src/GeomAbs/GeomAbs_SurfaceForm.hxx create mode 100644 src/GeomAbs/GeomAbs_SurfaceType.hxx create mode 100644 src/GeomAbs/GeomAbs_UVSense.hxx create mode 100644 src/GeomAdaptor/FILES delete mode 100644 src/GeomAdaptor/GeomAdaptor.cdl create mode 100644 src/GeomAdaptor/GeomAdaptor.hxx delete mode 100644 src/GeomAdaptor/GeomAdaptor_Curve.cdl create mode 100644 src/GeomAdaptor/GeomAdaptor_Curve.hxx create mode 100644 src/GeomAdaptor/GeomAdaptor_GHCurve.hxx create mode 100644 src/GeomAdaptor/GeomAdaptor_GHCurve_0.cxx create mode 100644 src/GeomAdaptor/GeomAdaptor_GHSurface.hxx create mode 100644 src/GeomAdaptor/GeomAdaptor_GHSurface_0.cxx delete mode 100644 src/GeomAdaptor/GeomAdaptor_HCurve.cdl create mode 100644 src/GeomAdaptor/GeomAdaptor_HCurve.hxx delete mode 100644 src/GeomAdaptor/GeomAdaptor_HSurface.cdl create mode 100644 src/GeomAdaptor/GeomAdaptor_HSurface.hxx delete mode 100644 src/GeomAdaptor/GeomAdaptor_Surface.cdl create mode 100644 src/GeomAdaptor/GeomAdaptor_Surface.hxx delete mode 100644 src/GeomConvert/GeomConvert.cdl create mode 100644 src/GeomConvert/GeomConvert.hxx delete mode 100644 src/GeomConvert/GeomConvert_ApproxCurve.cdl create mode 100644 src/GeomConvert/GeomConvert_ApproxCurve.hxx delete mode 100644 src/GeomConvert/GeomConvert_ApproxSurface.cdl create mode 100644 src/GeomConvert/GeomConvert_ApproxSurface.hxx delete mode 100644 src/GeomConvert/GeomConvert_BSplineCurveKnotSplitting.cdl create mode 100644 src/GeomConvert/GeomConvert_BSplineCurveKnotSplitting.hxx delete mode 100644 src/GeomConvert/GeomConvert_BSplineCurveToBezierCurve.cdl create mode 100644 src/GeomConvert/GeomConvert_BSplineCurveToBezierCurve.hxx delete mode 100644 src/GeomConvert/GeomConvert_BSplineSurfaceKnotSplitting.cdl create mode 100644 src/GeomConvert/GeomConvert_BSplineSurfaceKnotSplitting.hxx delete mode 100644 src/GeomConvert/GeomConvert_BSplineSurfaceToBezierSurface.cdl create mode 100644 src/GeomConvert/GeomConvert_BSplineSurfaceToBezierSurface.hxx delete mode 100644 src/GeomConvert/GeomConvert_CompBezierSurfacesToBSplineSurface.cdl create mode 100644 src/GeomConvert/GeomConvert_CompBezierSurfacesToBSplineSurface.hxx delete mode 100644 src/GeomConvert/GeomConvert_CompCurveToBSplineCurve.cdl create mode 100644 src/GeomConvert/GeomConvert_CompCurveToBSplineCurve.hxx delete mode 100644 src/GeomFill/GeomFill.cdl create mode 100644 src/GeomFill/GeomFill.hxx create mode 100644 src/GeomFill/GeomFill_AppSurf.hxx create mode 100644 src/GeomFill/GeomFill_AppSurf_0.cxx create mode 100644 src/GeomFill/GeomFill_AppSweep.hxx create mode 100644 src/GeomFill/GeomFill_AppSweep_0.cxx create mode 100644 src/GeomFill/GeomFill_ApproxStyle.hxx delete mode 100644 src/GeomFill/GeomFill_BSplineCurves.cdl create mode 100644 src/GeomFill/GeomFill_BSplineCurves.hxx delete mode 100644 src/GeomFill/GeomFill_BezierCurves.cdl create mode 100644 src/GeomFill/GeomFill_BezierCurves.hxx delete mode 100644 src/GeomFill/GeomFill_BoundWithSurf.cdl create mode 100644 src/GeomFill/GeomFill_BoundWithSurf.hxx delete mode 100644 src/GeomFill/GeomFill_Boundary.cdl create mode 100644 src/GeomFill/GeomFill_Boundary.hxx delete mode 100644 src/GeomFill/GeomFill_CircularBlendFunc.cdl create mode 100644 src/GeomFill/GeomFill_CircularBlendFunc.hxx delete mode 100644 src/GeomFill/GeomFill_ConstantBiNormal.cdl create mode 100644 src/GeomFill/GeomFill_ConstantBiNormal.hxx delete mode 100644 src/GeomFill/GeomFill_ConstrainedFilling.cdl create mode 100644 src/GeomFill/GeomFill_ConstrainedFilling.hxx delete mode 100644 src/GeomFill/GeomFill_Coons.cdl create mode 100644 src/GeomFill/GeomFill_Coons.hxx delete mode 100644 src/GeomFill/GeomFill_CoonsAlgPatch.cdl create mode 100644 src/GeomFill/GeomFill_CoonsAlgPatch.hxx delete mode 100644 src/GeomFill/GeomFill_CornerState.cdl create mode 100644 src/GeomFill/GeomFill_CornerState.hxx delete mode 100644 src/GeomFill/GeomFill_CorrectedFrenet.cdl create mode 100644 src/GeomFill/GeomFill_CorrectedFrenet.hxx delete mode 100644 src/GeomFill/GeomFill_CurveAndTrihedron.cdl create mode 100644 src/GeomFill/GeomFill_CurveAndTrihedron.hxx delete mode 100644 src/GeomFill/GeomFill_Curved.cdl create mode 100644 src/GeomFill/GeomFill_Curved.hxx delete mode 100644 src/GeomFill/GeomFill_Darboux.cdl create mode 100644 src/GeomFill/GeomFill_Darboux.hxx delete mode 100644 src/GeomFill/GeomFill_DegeneratedBound.cdl create mode 100644 src/GeomFill/GeomFill_DegeneratedBound.hxx delete mode 100755 src/GeomFill/GeomFill_DiscreteTrihedron.cdl create mode 100644 src/GeomFill/GeomFill_DiscreteTrihedron.hxx delete mode 100644 src/GeomFill/GeomFill_DraftTrihedron.cdl create mode 100644 src/GeomFill/GeomFill_DraftTrihedron.hxx delete mode 100644 src/GeomFill/GeomFill_EvolvedSection.cdl create mode 100644 src/GeomFill/GeomFill_EvolvedSection.hxx delete mode 100644 src/GeomFill/GeomFill_Filling.cdl create mode 100644 src/GeomFill/GeomFill_Filling.hxx create mode 100644 src/GeomFill/GeomFill_FillingStyle.hxx delete mode 100644 src/GeomFill/GeomFill_Fixed.cdl create mode 100644 src/GeomFill/GeomFill_Fixed.hxx delete mode 100644 src/GeomFill/GeomFill_Frenet.cdl create mode 100644 src/GeomFill/GeomFill_Frenet.hxx delete mode 100644 src/GeomFill/GeomFill_FunctionDraft.cdl create mode 100644 src/GeomFill/GeomFill_FunctionDraft.hxx delete mode 100644 src/GeomFill/GeomFill_FunctionGuide.cdl create mode 100644 src/GeomFill/GeomFill_FunctionGuide.hxx delete mode 100644 src/GeomFill/GeomFill_Generator.cdl create mode 100644 src/GeomFill/GeomFill_Generator.hxx delete mode 100644 src/GeomFill/GeomFill_GuideTrihedronAC.cdl create mode 100644 src/GeomFill/GeomFill_GuideTrihedronAC.hxx delete mode 100644 src/GeomFill/GeomFill_GuideTrihedronPlan.cdl create mode 100644 src/GeomFill/GeomFill_GuideTrihedronPlan.hxx delete mode 100644 src/GeomFill/GeomFill_Line.cdl create mode 100644 src/GeomFill/GeomFill_Line.hxx delete mode 100644 src/GeomFill/GeomFill_LocFunction.cdl create mode 100644 src/GeomFill/GeomFill_LocFunction.hxx delete mode 100644 src/GeomFill/GeomFill_LocationDraft.cdl create mode 100644 src/GeomFill/GeomFill_LocationDraft.hxx delete mode 100644 src/GeomFill/GeomFill_LocationGuide.cdl create mode 100644 src/GeomFill/GeomFill_LocationGuide.hxx delete mode 100644 src/GeomFill/GeomFill_LocationLaw.cdl create mode 100644 src/GeomFill/GeomFill_LocationLaw.hxx delete mode 100644 src/GeomFill/GeomFill_NSections.cdl create mode 100644 src/GeomFill/GeomFill_NSections.hxx delete mode 100644 src/GeomFill/GeomFill_Pipe.cdl create mode 100644 src/GeomFill/GeomFill_Pipe.hxx create mode 100644 src/GeomFill/GeomFill_PipeError.hxx delete mode 100644 src/GeomFill/GeomFill_PlanFunc.cdl create mode 100644 src/GeomFill/GeomFill_PlanFunc.hxx delete mode 100644 src/GeomFill/GeomFill_PolynomialConvertor.cdl create mode 100644 src/GeomFill/GeomFill_PolynomialConvertor.hxx delete mode 100644 src/GeomFill/GeomFill_Profiler.cdl create mode 100644 src/GeomFill/GeomFill_Profiler.hxx delete mode 100644 src/GeomFill/GeomFill_QuasiAngularConvertor.cdl create mode 100644 src/GeomFill/GeomFill_QuasiAngularConvertor.hxx delete mode 100644 src/GeomFill/GeomFill_SectionGenerator.cdl create mode 100644 src/GeomFill/GeomFill_SectionGenerator.hxx delete mode 100644 src/GeomFill/GeomFill_SectionLaw.cdl create mode 100644 src/GeomFill/GeomFill_SectionLaw.hxx delete mode 100644 src/GeomFill/GeomFill_SectionPlacement.cdl create mode 100644 src/GeomFill/GeomFill_SectionPlacement.hxx delete mode 100644 src/GeomFill/GeomFill_SimpleBound.cdl create mode 100644 src/GeomFill/GeomFill_SimpleBound.hxx delete mode 100644 src/GeomFill/GeomFill_SnglrFunc.cdl create mode 100644 src/GeomFill/GeomFill_SnglrFunc.hxx delete mode 100644 src/GeomFill/GeomFill_Stretch.cdl create mode 100644 src/GeomFill/GeomFill_Stretch.hxx delete mode 100644 src/GeomFill/GeomFill_Sweep.cdl create mode 100644 src/GeomFill/GeomFill_Sweep.hxx delete mode 100644 src/GeomFill/GeomFill_SweepFunction.cdl create mode 100644 src/GeomFill/GeomFill_SweepFunction.hxx delete mode 100644 src/GeomFill/GeomFill_SweepSectionGenerator.cdl create mode 100644 src/GeomFill/GeomFill_SweepSectionGenerator.hxx delete mode 100644 src/GeomFill/GeomFill_Tensor.cdl create mode 100644 src/GeomFill/GeomFill_Tensor.hxx delete mode 100644 src/GeomFill/GeomFill_TgtField.cdl create mode 100644 src/GeomFill/GeomFill_TgtField.hxx delete mode 100644 src/GeomFill/GeomFill_TgtOnCoons.cdl create mode 100644 src/GeomFill/GeomFill_TgtOnCoons.hxx create mode 100644 src/GeomFill/GeomFill_Trihedron.hxx delete mode 100644 src/GeomFill/GeomFill_TrihedronLaw.cdl create mode 100644 src/GeomFill/GeomFill_TrihedronLaw.hxx delete mode 100644 src/GeomFill/GeomFill_TrihedronWithGuide.cdl create mode 100644 src/GeomFill/GeomFill_TrihedronWithGuide.hxx delete mode 100644 src/GeomFill/GeomFill_UniformSection.cdl create mode 100644 src/GeomFill/GeomFill_UniformSection.hxx delete mode 100644 src/GeomInt/GeomInt.cdl create mode 100644 src/GeomInt/GeomInt.hxx create mode 100644 src/GeomInt/GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfWLApprox_0.cxx delete mode 100644 src/GeomInt/GeomInt_IntSS.cdl create mode 100644 src/GeomInt/GeomInt_IntSS.hxx delete mode 100644 src/GeomInt/GeomInt_LineConstructor.cdl create mode 100644 src/GeomInt/GeomInt_LineConstructor.hxx delete mode 100644 src/GeomInt/GeomInt_LineTool.cdl create mode 100644 src/GeomInt/GeomInt_LineTool.hxx create mode 100644 src/GeomInt/GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_MyBSplGradientOfTheComputeLineOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_MyGradientOfTheComputeLineBezierOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_MyGradientbisOfTheComputeLineOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_MyGradientbisOfTheComputeLineOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_ParFunctionOfMyGradientOfTheComputeLineBezierOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_ParFunctionOfMyGradientbisOfTheComputeLineOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_ParLeastSquareOfMyGradientbisOfTheComputeLineOfWLApprox_0.cxx delete mode 100644 src/GeomInt/GeomInt_ParameterAndOrientation.cdl create mode 100644 src/GeomInt/GeomInt_ParameterAndOrientation.hxx create mode 100644 src/GeomInt/GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_ResConstraintOfMyGradientOfTheComputeLineBezierOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_ResConstraintOfMyGradientbisOfTheComputeLineOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_TheComputeLineBezierOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_TheComputeLineBezierOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_TheComputeLineOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_TheComputeLineOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_TheImpPrmSvSurfacesOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_TheImpPrmSvSurfacesOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_TheInt2SOfThePrmPrmSvSurfacesOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_TheMultiLineOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_TheMultiLineOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_TheMultiLineToolOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_TheMultiLineToolOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_ThePrmPrmSvSurfacesOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_ThePrmPrmSvSurfacesOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox.hxx create mode 100644 src/GeomInt/GeomInt_TheZerImpFuncOfTheImpPrmSvSurfacesOfWLApprox_0.cxx create mode 100644 src/GeomInt/GeomInt_WLApprox.hxx create mode 100644 src/GeomInt/GeomInt_WLApprox_0.cxx create mode 100644 src/GeomLProp/FILES delete mode 100644 src/GeomLProp/GeomLProp.cdl create mode 100644 src/GeomLProp/GeomLProp.hxx create mode 100644 src/GeomLProp/GeomLProp_CLProps.hxx create mode 100644 src/GeomLProp/GeomLProp_CLProps_0.cxx delete mode 100644 src/GeomLProp/GeomLProp_CurveTool.cdl create mode 100644 src/GeomLProp/GeomLProp_CurveTool.hxx create mode 100644 src/GeomLProp/GeomLProp_SLProps.hxx create mode 100644 src/GeomLProp/GeomLProp_SLProps_0.cxx delete mode 100644 src/GeomLProp/GeomLProp_SurfaceTool.cdl create mode 100644 src/GeomLProp/GeomLProp_SurfaceTool.hxx delete mode 100644 src/GeomLib/GeomLib.cdl create mode 100644 src/GeomLib/GeomLib.hxx delete mode 100644 src/GeomLib/GeomLib_CMPLRS.edl delete mode 100644 src/GeomLib/GeomLib_Check2dBSplineCurve.cdl create mode 100644 src/GeomLib/GeomLib_Check2dBSplineCurve.hxx delete mode 100644 src/GeomLib/GeomLib_CheckBSplineCurve.cdl create mode 100644 src/GeomLib/GeomLib_CheckBSplineCurve.hxx delete mode 100644 src/GeomLib/GeomLib_DenominatorMultiplier.cdl create mode 100644 src/GeomLib/GeomLib_DenominatorMultiplier.hxx create mode 100644 src/GeomLib/GeomLib_DenominatorMultiplierPtr.hxx delete mode 100644 src/GeomLib/GeomLib_Interpolate.cdl create mode 100644 src/GeomLib/GeomLib_Interpolate.hxx create mode 100644 src/GeomLib/GeomLib_InterpolationErrors.hxx delete mode 100644 src/GeomLib/GeomLib_IsPlanarSurface.cdl create mode 100644 src/GeomLib/GeomLib_IsPlanarSurface.hxx delete mode 100644 src/GeomLib/GeomLib_LogSample.cdl create mode 100644 src/GeomLib/GeomLib_LogSample.hxx delete mode 100644 src/GeomLib/GeomLib_MakeCurvefromApprox.cdl create mode 100644 src/GeomLib/GeomLib_MakeCurvefromApprox.hxx delete mode 100644 src/GeomLib/GeomLib_PolyFunc.cdl create mode 100644 src/GeomLib/GeomLib_PolyFunc.hxx delete mode 100644 src/GeomLib/GeomLib_Tool.cdl create mode 100644 src/GeomLib/GeomLib_Tool.hxx delete mode 100644 src/GeomPlate/GeomPlate.cdl delete mode 100644 src/GeomPlate/GeomPlate_Aij.cdl create mode 100644 src/GeomPlate/GeomPlate_Aij.hxx delete mode 100644 src/GeomPlate/GeomPlate_BuildAveragePlane.cdl create mode 100644 src/GeomPlate/GeomPlate_BuildAveragePlane.hxx delete mode 100644 src/GeomPlate/GeomPlate_BuildPlateSurface.cdl create mode 100644 src/GeomPlate/GeomPlate_BuildPlateSurface.hxx delete mode 100644 src/GeomPlate/GeomPlate_CurveConstraint.cdl create mode 100644 src/GeomPlate/GeomPlate_CurveConstraint.hxx delete mode 100644 src/GeomPlate/GeomPlate_MakeApprox.cdl create mode 100644 src/GeomPlate/GeomPlate_MakeApprox.hxx delete mode 100644 src/GeomPlate/GeomPlate_PlateG0Criterion.cdl create mode 100644 src/GeomPlate/GeomPlate_PlateG0Criterion.hxx delete mode 100644 src/GeomPlate/GeomPlate_PlateG1Criterion.cdl create mode 100644 src/GeomPlate/GeomPlate_PlateG1Criterion.hxx delete mode 100644 src/GeomPlate/GeomPlate_PointConstraint.cdl create mode 100644 src/GeomPlate/GeomPlate_PointConstraint.hxx delete mode 100644 src/GeomPlate/GeomPlate_Surface.cdl create mode 100644 src/GeomPlate/GeomPlate_Surface.hxx create mode 100644 src/GeomProjLib/FILES delete mode 100644 src/GeomProjLib/GeomProjLib.cdl create mode 100644 src/GeomProjLib/GeomProjLib.hxx create mode 100644 src/GeomToIGES/FILES delete mode 100644 src/GeomToIGES/GeomToIGES.cdl delete mode 100644 src/GeomToIGES/GeomToIGES_GeomCurve.cdl create mode 100644 src/GeomToIGES/GeomToIGES_GeomCurve.hxx delete mode 100644 src/GeomToIGES/GeomToIGES_GeomEntity.cdl create mode 100644 src/GeomToIGES/GeomToIGES_GeomEntity.hxx delete mode 100644 src/GeomToIGES/GeomToIGES_GeomPoint.cdl create mode 100644 src/GeomToIGES/GeomToIGES_GeomPoint.hxx delete mode 100644 src/GeomToIGES/GeomToIGES_GeomSurface.cdl create mode 100644 src/GeomToIGES/GeomToIGES_GeomSurface.hxx delete mode 100644 src/GeomToIGES/GeomToIGES_GeomVector.cdl create mode 100644 src/GeomToIGES/GeomToIGES_GeomVector.hxx delete mode 100644 src/GeomToStep/GeomToStep.cdl delete mode 100644 src/GeomToStep/GeomToStep_MakeAxis1Placement.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeAxis1Placement.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeAxis2Placement2d.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeAxis2Placement2d.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeAxis2Placement3d.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeAxis2Placement3d.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeBSplineCurveWithKnots.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeBSplineCurveWithKnots.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeBSplineCurveWithKnotsAndRationalBSplineCurve.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeBSplineCurveWithKnotsAndRationalBSplineCurve.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeBSplineSurfaceWithKnots.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeBSplineSurfaceWithKnots.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeBSplineSurfaceWithKnotsAndRationalBSplineSurface.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeBSplineSurfaceWithKnotsAndRationalBSplineSurface.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeBoundedCurve.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeBoundedCurve.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeBoundedSurface.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeBoundedSurface.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeCartesianPoint.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeCartesianPoint.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeCircle.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeCircle.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeConic.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeConic.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeConicalSurface.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeConicalSurface.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeCurve.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeCurve.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeCylindricalSurface.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeCylindricalSurface.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeDirection.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeDirection.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeElementarySurface.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeElementarySurface.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeEllipse.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeEllipse.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeHyperbola.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeHyperbola.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeLine.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeLine.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeParabola.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeParabola.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakePlane.cdl create mode 100644 src/GeomToStep/GeomToStep_MakePlane.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakePolyline.cdl create mode 100644 src/GeomToStep/GeomToStep_MakePolyline.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeRectangularTrimmedSurface.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeRectangularTrimmedSurface.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeSphericalSurface.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeSphericalSurface.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeSurface.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeSurface.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeSurfaceOfLinearExtrusion.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeSurfaceOfLinearExtrusion.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeSurfaceOfRevolution.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeSurfaceOfRevolution.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeSweptSurface.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeSweptSurface.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeToroidalSurface.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeToroidalSurface.hxx delete mode 100644 src/GeomToStep/GeomToStep_MakeVector.cdl create mode 100644 src/GeomToStep/GeomToStep_MakeVector.hxx delete mode 100644 src/GeomToStep/GeomToStep_Root.cdl create mode 100644 src/GeomToStep/GeomToStep_Root.hxx delete mode 100644 src/GeomToStep/GeomToStep_WOKSteps.edl delete mode 100644 src/GeomTools/GeomTools.cdl create mode 100644 src/GeomTools/GeomTools.hxx delete mode 100644 src/GeomTools/GeomTools_Curve2dSet.cdl create mode 100644 src/GeomTools/GeomTools_Curve2dSet.hxx delete mode 100644 src/GeomTools/GeomTools_CurveSet.cdl create mode 100644 src/GeomTools/GeomTools_CurveSet.hxx delete mode 100644 src/GeomTools/GeomTools_SurfaceSet.cdl create mode 100644 src/GeomTools/GeomTools_SurfaceSet.hxx delete mode 100644 src/GeomTools/GeomTools_UndefinedTypeHandler.cdl create mode 100644 src/GeomTools/GeomTools_UndefinedTypeHandler.hxx delete mode 100644 src/GeometryTest/GeometryTest.cdl create mode 100644 src/GeometryTest/GeometryTest.hxx delete mode 100644 src/GeomliteTest/GeomliteTest.cdl create mode 100644 src/GeomliteTest/GeomliteTest.hxx delete mode 100644 src/Graphic3d/Graphic3d.cdl delete mode 100644 src/Graphic3d/Graphic3d.edl delete mode 100644 src/Graphic3d/Graphic3d_ArrayOfPoints.cdl create mode 100644 src/Graphic3d/Graphic3d_ArrayOfPoints.hxx delete mode 100644 src/Graphic3d/Graphic3d_ArrayOfPolygons.cdl create mode 100644 src/Graphic3d/Graphic3d_ArrayOfPolygons.hxx delete mode 100644 src/Graphic3d/Graphic3d_ArrayOfPolylines.cdl create mode 100644 src/Graphic3d/Graphic3d_ArrayOfPolylines.hxx delete mode 100644 src/Graphic3d/Graphic3d_ArrayOfPrimitives.cdl create mode 100644 src/Graphic3d/Graphic3d_ArrayOfPrimitives.hxx delete mode 100644 src/Graphic3d/Graphic3d_ArrayOfQuadrangleStrips.cdl create mode 100644 src/Graphic3d/Graphic3d_ArrayOfQuadrangleStrips.hxx delete mode 100644 src/Graphic3d/Graphic3d_ArrayOfQuadrangles.cdl create mode 100644 src/Graphic3d/Graphic3d_ArrayOfQuadrangles.hxx delete mode 100644 src/Graphic3d/Graphic3d_ArrayOfSegments.cdl create mode 100644 src/Graphic3d/Graphic3d_ArrayOfSegments.hxx delete mode 100644 src/Graphic3d/Graphic3d_ArrayOfTriangleFans.cdl create mode 100644 src/Graphic3d/Graphic3d_ArrayOfTriangleFans.hxx delete mode 100644 src/Graphic3d/Graphic3d_ArrayOfTriangleStrips.cdl create mode 100644 src/Graphic3d/Graphic3d_ArrayOfTriangleStrips.hxx delete mode 100644 src/Graphic3d/Graphic3d_ArrayOfTriangles.cdl create mode 100644 src/Graphic3d/Graphic3d_ArrayOfTriangles.hxx delete mode 100644 src/Graphic3d/Graphic3d_AspectFillArea3d.cdl create mode 100644 src/Graphic3d/Graphic3d_AspectFillArea3d.hxx delete mode 100644 src/Graphic3d/Graphic3d_AspectLine3d.cdl create mode 100644 src/Graphic3d/Graphic3d_AspectLine3d.hxx delete mode 100644 src/Graphic3d/Graphic3d_AspectMarker3d.cdl create mode 100644 src/Graphic3d/Graphic3d_AspectMarker3d.hxx delete mode 100644 src/Graphic3d/Graphic3d_AspectText3d.cdl create mode 100644 src/Graphic3d/Graphic3d_AspectText3d.hxx create mode 100644 src/Graphic3d/Graphic3d_AspectTextDefinitionError.hxx delete mode 100644 src/Graphic3d/Graphic3d_CMPLRS.edl create mode 100644 src/Graphic3d/Graphic3d_CStructurePtr.hxx create mode 100644 src/Graphic3d/Graphic3d_CycleError.hxx delete mode 100644 src/Graphic3d/Graphic3d_DataStructureManager.cdl create mode 100644 src/Graphic3d/Graphic3d_DataStructureManager.hxx create mode 100644 src/Graphic3d/Graphic3d_ExportFormat.hxx delete mode 100644 src/Graphic3d/Graphic3d_GraphicDriver.cdl create mode 100644 src/Graphic3d/Graphic3d_GraphicDriver.hxx delete mode 100644 src/Graphic3d/Graphic3d_Group.cdl create mode 100644 src/Graphic3d/Graphic3d_Group.hxx create mode 100644 src/Graphic3d/Graphic3d_GroupAspect.hxx create mode 100644 src/Graphic3d/Graphic3d_GroupDefinitionError.hxx create mode 100644 src/Graphic3d/Graphic3d_HorizontalTextAlignment.hxx create mode 100644 src/Graphic3d/Graphic3d_InitialisationError.hxx create mode 100644 src/Graphic3d/Graphic3d_LevelOfTextureAnisotropy.hxx delete mode 100644 src/Graphic3d/Graphic3d_MaterialAspect.cdl create mode 100644 src/Graphic3d/Graphic3d_MaterialAspect.hxx create mode 100644 src/Graphic3d/Graphic3d_MaterialDefinitionError.hxx create mode 100644 src/Graphic3d/Graphic3d_NameOfMaterial.hxx create mode 100644 src/Graphic3d/Graphic3d_NameOfTexture1D.hxx create mode 100644 src/Graphic3d/Graphic3d_NameOfTexture2D.hxx create mode 100644 src/Graphic3d/Graphic3d_NameOfTextureEnv.hxx create mode 100644 src/Graphic3d/Graphic3d_NameOfTexturePlane.hxx create mode 100644 src/Graphic3d/Graphic3d_PriorityDefinitionError.hxx create mode 100644 src/Graphic3d/Graphic3d_RenderingMode.hxx create mode 100644 src/Graphic3d/Graphic3d_SortType.hxx delete mode 100644 src/Graphic3d/Graphic3d_Structure.cdl create mode 100644 src/Graphic3d/Graphic3d_Structure.hxx create mode 100644 src/Graphic3d/Graphic3d_StructureDefinitionError.hxx delete mode 100644 src/Graphic3d/Graphic3d_StructureManager.cdl create mode 100644 src/Graphic3d/Graphic3d_StructureManager.hxx create mode 100644 src/Graphic3d/Graphic3d_StructureManagerPtr.hxx create mode 100644 src/Graphic3d/Graphic3d_StructurePtr.hxx create mode 100644 src/Graphic3d/Graphic3d_TextPath.hxx delete mode 100644 src/Graphic3d/Graphic3d_Texture1D.cdl create mode 100644 src/Graphic3d/Graphic3d_Texture1D.hxx delete mode 100644 src/Graphic3d/Graphic3d_Texture1Dmanual.cdl create mode 100644 src/Graphic3d/Graphic3d_Texture1Dmanual.hxx delete mode 100644 src/Graphic3d/Graphic3d_Texture1Dsegment.cdl create mode 100644 src/Graphic3d/Graphic3d_Texture1Dsegment.hxx delete mode 100644 src/Graphic3d/Graphic3d_Texture2D.cdl create mode 100644 src/Graphic3d/Graphic3d_Texture2D.hxx delete mode 100644 src/Graphic3d/Graphic3d_Texture2Dmanual.cdl create mode 100644 src/Graphic3d/Graphic3d_Texture2Dmanual.hxx delete mode 100644 src/Graphic3d/Graphic3d_Texture2Dplane.cdl create mode 100644 src/Graphic3d/Graphic3d_Texture2Dplane.hxx delete mode 100644 src/Graphic3d/Graphic3d_TextureEnv.cdl create mode 100644 src/Graphic3d/Graphic3d_TextureEnv.hxx delete mode 100644 src/Graphic3d/Graphic3d_TextureMap.cdl create mode 100644 src/Graphic3d/Graphic3d_TextureMap.hxx delete mode 100644 src/Graphic3d/Graphic3d_TextureParams.cdl create mode 100644 src/Graphic3d/Graphic3d_TextureParams.hxx delete mode 100644 src/Graphic3d/Graphic3d_TextureRoot.cdl create mode 100644 src/Graphic3d/Graphic3d_TextureRoot.hxx create mode 100644 src/Graphic3d/Graphic3d_TransformError.hxx create mode 100644 src/Graphic3d/Graphic3d_TypeOfBackground.hxx create mode 100644 src/Graphic3d/Graphic3d_TypeOfComposition.hxx create mode 100644 src/Graphic3d/Graphic3d_TypeOfConnection.hxx create mode 100644 src/Graphic3d/Graphic3d_TypeOfMaterial.hxx create mode 100644 src/Graphic3d/Graphic3d_TypeOfPolygon.hxx create mode 100644 src/Graphic3d/Graphic3d_TypeOfPrimitive.hxx create mode 100644 src/Graphic3d/Graphic3d_TypeOfPrimitiveArray.hxx create mode 100644 src/Graphic3d/Graphic3d_TypeOfReflection.hxx create mode 100644 src/Graphic3d/Graphic3d_TypeOfStructure.hxx create mode 100644 src/Graphic3d/Graphic3d_TypeOfTexture.hxx create mode 100644 src/Graphic3d/Graphic3d_TypeOfTextureFilter.hxx create mode 100644 src/Graphic3d/Graphic3d_TypeOfTextureMode.hxx delete mode 100644 src/Graphic3d/Graphic3d_Vector.cdl create mode 100644 src/Graphic3d/Graphic3d_Vector.hxx create mode 100644 src/Graphic3d/Graphic3d_VectorError.hxx create mode 100644 src/Graphic3d/Graphic3d_VerticalTextAlignment.hxx delete mode 100644 src/Graphic3d/Graphic3d_WOKSteps.edl delete mode 100644 src/HLRAlgo/HLRAlgo.cdl create mode 100644 src/HLRAlgo/HLRAlgo.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_BiPoint.cdl create mode 100644 src/HLRAlgo/HLRAlgo_BiPoint.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_Coincidence.cdl create mode 100644 src/HLRAlgo/HLRAlgo_Coincidence.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_EdgeIterator.cdl create mode 100644 src/HLRAlgo/HLRAlgo_EdgeIterator.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_EdgeStatus.cdl create mode 100644 src/HLRAlgo/HLRAlgo_EdgeStatus.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_EdgesBlock.cdl create mode 100644 src/HLRAlgo/HLRAlgo_EdgesBlock.hxx create mode 100644 src/HLRAlgo/HLRAlgo_Interference.hxx create mode 100644 src/HLRAlgo/HLRAlgo_Interference_0.cxx delete mode 100644 src/HLRAlgo/HLRAlgo_Intersection.cdl create mode 100644 src/HLRAlgo/HLRAlgo_Intersection.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_PolyAlgo.cdl create mode 100644 src/HLRAlgo/HLRAlgo_PolyAlgo.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_PolyData.cdl create mode 100644 src/HLRAlgo/HLRAlgo_PolyData.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_PolyHidingData.cdl create mode 100644 src/HLRAlgo/HLRAlgo_PolyHidingData.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_PolyInternalData.cdl create mode 100644 src/HLRAlgo/HLRAlgo_PolyInternalData.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_PolyInternalNode.cdl create mode 100644 src/HLRAlgo/HLRAlgo_PolyInternalNode.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_PolyInternalSegment.cdl create mode 100644 src/HLRAlgo/HLRAlgo_PolyInternalSegment.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_PolyShellData.cdl create mode 100644 src/HLRAlgo/HLRAlgo_PolyShellData.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_Projector.cdl create mode 100644 src/HLRAlgo/HLRAlgo_Projector.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_TriangleData.cdl create mode 100644 src/HLRAlgo/HLRAlgo_TriangleData.hxx delete mode 100644 src/HLRAlgo/HLRAlgo_WiresBlock.cdl create mode 100644 src/HLRAlgo/HLRAlgo_WiresBlock.hxx create mode 100644 src/HLRAppli/FILES delete mode 100644 src/HLRAppli/HLRAppli.cdl delete mode 100644 src/HLRAppli/HLRAppli_ReflectLines.cdl create mode 100644 src/HLRAppli/HLRAppli_ReflectLines.hxx delete mode 100644 src/HLRBRep/HLRBRep.cdl create mode 100644 src/HLRBRep/HLRBRep.hxx delete mode 100644 src/HLRBRep/HLRBRep_Algo.cdl create mode 100644 src/HLRBRep/HLRBRep_Algo.hxx delete mode 100644 src/HLRBRep/HLRBRep_AreaLimit.cdl create mode 100644 src/HLRBRep/HLRBRep_AreaLimit.hxx delete mode 100644 src/HLRBRep/HLRBRep_BCurveTool.cdl create mode 100644 src/HLRBRep/HLRBRep_BCurveTool.hxx delete mode 100644 src/HLRBRep/HLRBRep_BSurfaceTool.cdl create mode 100644 src/HLRBRep/HLRBRep_BSurfaceTool.hxx delete mode 100644 src/HLRBRep/HLRBRep_BiPnt2D.cdl create mode 100644 src/HLRBRep/HLRBRep_BiPnt2D.hxx delete mode 100644 src/HLRBRep/HLRBRep_BiPoint.cdl create mode 100644 src/HLRBRep/HLRBRep_BiPoint.hxx create mode 100644 src/HLRBRep/HLRBRep_CInter.hxx create mode 100644 src/HLRBRep/HLRBRep_CInter_0.cxx create mode 100644 src/HLRBRep/HLRBRep_CLProps.hxx delete mode 100644 src/HLRBRep/HLRBRep_CLPropsATool.cdl create mode 100644 src/HLRBRep/HLRBRep_CLPropsATool.hxx create mode 100644 src/HLRBRep/HLRBRep_CLProps_0.cxx delete mode 100644 src/HLRBRep/HLRBRep_Curve.cdl create mode 100644 src/HLRBRep/HLRBRep_Curve.hxx delete mode 100644 src/HLRBRep/HLRBRep_CurveTool.cdl create mode 100644 src/HLRBRep/HLRBRep_CurveTool.hxx delete mode 100644 src/HLRBRep/HLRBRep_Data.cdl create mode 100644 src/HLRBRep/HLRBRep_Data.hxx delete mode 100644 src/HLRBRep/HLRBRep_EdgeBuilder.cdl create mode 100644 src/HLRBRep/HLRBRep_EdgeBuilder.hxx delete mode 100644 src/HLRBRep/HLRBRep_EdgeData.cdl create mode 100644 src/HLRBRep/HLRBRep_EdgeData.hxx delete mode 100644 src/HLRBRep/HLRBRep_EdgeFaceTool.cdl create mode 100644 src/HLRBRep/HLRBRep_EdgeFaceTool.hxx delete mode 100644 src/HLRBRep/HLRBRep_EdgeIList.cdl create mode 100644 src/HLRBRep/HLRBRep_EdgeIList.hxx delete mode 100644 src/HLRBRep/HLRBRep_EdgeInterferenceTool.cdl create mode 100644 src/HLRBRep/HLRBRep_EdgeInterferenceTool.hxx create mode 100644 src/HLRBRep/HLRBRep_ExactIntersectionPointOfTheIntPCurvePCurveOfCInter.hxx create mode 100644 src/HLRBRep/HLRBRep_ExactIntersectionPointOfTheIntPCurvePCurveOfCInter_0.cxx delete mode 100644 src/HLRBRep/HLRBRep_FaceData.cdl create mode 100644 src/HLRBRep/HLRBRep_FaceData.hxx delete mode 100644 src/HLRBRep/HLRBRep_FaceIterator.cdl create mode 100644 src/HLRBRep/HLRBRep_FaceIterator.hxx delete mode 100644 src/HLRBRep/HLRBRep_HLRToShape.cdl create mode 100644 src/HLRBRep/HLRBRep_HLRToShape.hxx delete mode 100644 src/HLRBRep/HLRBRep_Hider.cdl create mode 100644 src/HLRBRep/HLRBRep_Hider.hxx create mode 100644 src/HLRBRep/HLRBRep_IntConicCurveOfCInter.hxx create mode 100644 src/HLRBRep/HLRBRep_IntConicCurveOfCInter_0.cxx create mode 100644 src/HLRBRep/HLRBRep_InterCSurf.hxx create mode 100644 src/HLRBRep/HLRBRep_InterCSurf_0.cxx delete mode 100644 src/HLRBRep/HLRBRep_InternalAlgo.cdl create mode 100644 src/HLRBRep/HLRBRep_InternalAlgo.hxx delete mode 100644 src/HLRBRep/HLRBRep_Intersector.cdl create mode 100644 src/HLRBRep/HLRBRep_Intersector.hxx delete mode 100644 src/HLRBRep/HLRBRep_LineTool.cdl create mode 100644 src/HLRBRep/HLRBRep_LineTool.hxx create mode 100644 src/HLRBRep/HLRBRep_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfCInter.hxx create mode 100644 src/HLRBRep/HLRBRep_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfCInter_0.cxx create mode 100644 src/HLRBRep/HLRBRep_PCLocFOfTheLocateExtPCOfTheProjPCurOfCInter.hxx create mode 100644 src/HLRBRep/HLRBRep_PCLocFOfTheLocateExtPCOfTheProjPCurOfCInter_0.cxx delete mode 100644 src/HLRBRep/HLRBRep_PolyAlgo.cdl create mode 100644 src/HLRBRep/HLRBRep_PolyAlgo.hxx delete mode 100644 src/HLRBRep/HLRBRep_PolyHLRToShape.cdl create mode 100644 src/HLRBRep/HLRBRep_PolyHLRToShape.hxx create mode 100644 src/HLRBRep/HLRBRep_SLProps.hxx delete mode 100644 src/HLRBRep/HLRBRep_SLPropsATool.cdl create mode 100644 src/HLRBRep/HLRBRep_SLPropsATool.hxx create mode 100644 src/HLRBRep/HLRBRep_SLProps_0.cxx create mode 100644 src/HLRBRep/HLRBRep_SeqPCOfPCLocFOfTheLocateExtPCOfTheProjPCurOfCInter.hxx create mode 100644 src/HLRBRep/HLRBRep_SeqPCOfPCLocFOfTheLocateExtPCOfTheProjPCurOfCInter_0.cxx create mode 100644 src/HLRBRep/HLRBRep_SequenceNodeOfSeqPCOfPCLocFOfTheLocateExtPCOfTheProjPCurOfCInter.hxx create mode 100644 src/HLRBRep/HLRBRep_SequenceNodeOfSeqPCOfPCLocFOfTheLocateExtPCOfTheProjPCurOfCInter_0.cxx delete mode 100644 src/HLRBRep/HLRBRep_ShapeBounds.cdl create mode 100644 src/HLRBRep/HLRBRep_ShapeBounds.hxx delete mode 100644 src/HLRBRep/HLRBRep_ShapeToHLR.cdl create mode 100644 src/HLRBRep/HLRBRep_ShapeToHLR.hxx delete mode 100644 src/HLRBRep/HLRBRep_Surface.cdl create mode 100644 src/HLRBRep/HLRBRep_Surface.hxx delete mode 100644 src/HLRBRep/HLRBRep_SurfaceTool.cdl create mode 100644 src/HLRBRep/HLRBRep_SurfaceTool.hxx create mode 100644 src/HLRBRep/HLRBRep_TheCSFunctionOfInterCSurf.hxx create mode 100644 src/HLRBRep/HLRBRep_TheCSFunctionOfInterCSurf_0.cxx create mode 100644 src/HLRBRep/HLRBRep_TheCurveLocatorOfTheProjPCurOfCInter.hxx create mode 100644 src/HLRBRep/HLRBRep_TheCurveLocatorOfTheProjPCurOfCInter_0.cxx create mode 100644 src/HLRBRep/HLRBRep_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfCInter.hxx create mode 100644 src/HLRBRep/HLRBRep_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfCInter_0.cxx create mode 100644 src/HLRBRep/HLRBRep_TheExactInterCSurf.hxx create mode 100644 src/HLRBRep/HLRBRep_TheExactInterCSurf_0.cxx create mode 100644 src/HLRBRep/HLRBRep_TheIntConicCurveOfCInter.hxx create mode 100644 src/HLRBRep/HLRBRep_TheIntConicCurveOfCInter_0.cxx create mode 100644 src/HLRBRep/HLRBRep_TheIntPCurvePCurveOfCInter.hxx create mode 100644 src/HLRBRep/HLRBRep_TheIntPCurvePCurveOfCInter_0.cxx create mode 100644 src/HLRBRep/HLRBRep_TheInterferenceOfInterCSurf.hxx create mode 100644 src/HLRBRep/HLRBRep_TheInterferenceOfInterCSurf_0.cxx create mode 100644 src/HLRBRep/HLRBRep_TheIntersectorOfTheIntConicCurveOfCInter.hxx create mode 100644 src/HLRBRep/HLRBRep_TheIntersectorOfTheIntConicCurveOfCInter_0.cxx create mode 100644 src/HLRBRep/HLRBRep_TheLocateExtPCOfTheProjPCurOfCInter.hxx create mode 100644 src/HLRBRep/HLRBRep_TheLocateExtPCOfTheProjPCurOfCInter_0.cxx create mode 100644 src/HLRBRep/HLRBRep_ThePolygon2dOfTheIntPCurvePCurveOfCInter.hxx create mode 100644 src/HLRBRep/HLRBRep_ThePolygon2dOfTheIntPCurvePCurveOfCInter_0.cxx create mode 100644 src/HLRBRep/HLRBRep_ThePolygonOfInterCSurf.hxx create mode 100644 src/HLRBRep/HLRBRep_ThePolygonOfInterCSurf_0.cxx create mode 100644 src/HLRBRep/HLRBRep_ThePolygonToolOfInterCSurf.hxx create mode 100644 src/HLRBRep/HLRBRep_ThePolygonToolOfInterCSurf_0.cxx create mode 100644 src/HLRBRep/HLRBRep_ThePolyhedronOfInterCSurf.hxx create mode 100644 src/HLRBRep/HLRBRep_ThePolyhedronOfInterCSurf_0.cxx create mode 100644 src/HLRBRep/HLRBRep_ThePolyhedronToolOfInterCSurf.hxx create mode 100644 src/HLRBRep/HLRBRep_ThePolyhedronToolOfInterCSurf_0.cxx create mode 100644 src/HLRBRep/HLRBRep_TheProjPCurOfCInter.hxx create mode 100644 src/HLRBRep/HLRBRep_TheProjPCurOfCInter_0.cxx create mode 100644 src/HLRBRep/HLRBRep_TheQuadCurvExactInterCSurf.hxx create mode 100644 src/HLRBRep/HLRBRep_TheQuadCurvExactInterCSurf_0.cxx create mode 100644 src/HLRBRep/HLRBRep_TheQuadCurvFuncOfTheQuadCurvExactInterCSurf.hxx create mode 100644 src/HLRBRep/HLRBRep_TheQuadCurvFuncOfTheQuadCurvExactInterCSurf_0.cxx delete mode 100644 src/HLRBRep/HLRBRep_VertexList.cdl create mode 100644 src/HLRBRep/HLRBRep_VertexList.hxx create mode 100644 src/HLRTest/FILES delete mode 100644 src/HLRTest/HLRTest.cdl create mode 100644 src/HLRTest/HLRTest.hxx delete mode 100644 src/HLRTest/HLRTest_DrawableEdgeTool.cdl create mode 100644 src/HLRTest/HLRTest_DrawableEdgeTool.hxx delete mode 100644 src/HLRTest/HLRTest_DrawablePolyEdgeTool.cdl create mode 100644 src/HLRTest/HLRTest_DrawablePolyEdgeTool.hxx delete mode 100644 src/HLRTest/HLRTest_OutLiner.cdl create mode 100644 src/HLRTest/HLRTest_OutLiner.hxx delete mode 100644 src/HLRTest/HLRTest_Projector.cdl create mode 100644 src/HLRTest/HLRTest_Projector.hxx delete mode 100644 src/HLRTest/HLRTest_ShapeData.cdl create mode 100644 src/HLRTest/HLRTest_ShapeData.hxx delete mode 100644 src/HLRTopoBRep/HLRTopoBRep.cdl delete mode 100644 src/HLRTopoBRep/HLRTopoBRep_DSFiller.cdl create mode 100644 src/HLRTopoBRep/HLRTopoBRep_DSFiller.hxx delete mode 100644 src/HLRTopoBRep/HLRTopoBRep_Data.cdl create mode 100644 src/HLRTopoBRep/HLRTopoBRep_Data.hxx delete mode 100644 src/HLRTopoBRep/HLRTopoBRep_FaceData.cdl create mode 100644 src/HLRTopoBRep/HLRTopoBRep_FaceData.hxx delete mode 100644 src/HLRTopoBRep/HLRTopoBRep_FaceIsoLiner.cdl create mode 100644 src/HLRTopoBRep/HLRTopoBRep_FaceIsoLiner.hxx delete mode 100644 src/HLRTopoBRep/HLRTopoBRep_OutLiner.cdl create mode 100644 src/HLRTopoBRep/HLRTopoBRep_OutLiner.hxx delete mode 100644 src/HLRTopoBRep/HLRTopoBRep_VData.cdl create mode 100644 src/HLRTopoBRep/HLRTopoBRep_VData.hxx delete mode 100644 src/Hatch/Hatch.cdl delete mode 100644 src/Hatch/Hatch_Hatcher.cdl create mode 100644 src/Hatch/Hatch_Hatcher.hxx delete mode 100644 src/Hatch/Hatch_Line.cdl create mode 100644 src/Hatch/Hatch_Line.hxx create mode 100644 src/Hatch/Hatch_LineForm.hxx delete mode 100644 src/Hatch/Hatch_Parameter.cdl create mode 100644 src/Hatch/Hatch_Parameter.hxx delete mode 100644 src/HatchGen/HatchGen.cdl delete mode 100644 src/HatchGen/HatchGen_Domain.cdl create mode 100644 src/HatchGen/HatchGen_Domain.hxx create mode 100644 src/HatchGen/HatchGen_ErrorStatus.hxx delete mode 100644 src/HatchGen/HatchGen_IntersectionPoint.cdl create mode 100644 src/HatchGen/HatchGen_IntersectionPoint.hxx create mode 100644 src/HatchGen/HatchGen_IntersectionType.hxx delete mode 100644 src/HatchGen/HatchGen_PointOnElement.cdl create mode 100644 src/HatchGen/HatchGen_PointOnElement.hxx delete mode 100644 src/HatchGen/HatchGen_PointOnHatching.cdl create mode 100644 src/HatchGen/HatchGen_PointOnHatching.hxx create mode 100644 src/HeaderSection/FILES delete mode 100644 src/HeaderSection/HeaderSection.cdl create mode 100644 src/HeaderSection/HeaderSection.hxx delete mode 100644 src/HeaderSection/HeaderSection_FileDescription.cdl create mode 100644 src/HeaderSection/HeaderSection_FileDescription.hxx delete mode 100644 src/HeaderSection/HeaderSection_FileName.cdl create mode 100644 src/HeaderSection/HeaderSection_FileName.hxx delete mode 100644 src/HeaderSection/HeaderSection_FileSchema.cdl create mode 100644 src/HeaderSection/HeaderSection_FileSchema.hxx delete mode 100644 src/HeaderSection/HeaderSection_HeaderRecognizer.cdl create mode 100644 src/HeaderSection/HeaderSection_HeaderRecognizer.hxx delete mode 100644 src/HeaderSection/HeaderSection_Protocol.cdl create mode 100644 src/HeaderSection/HeaderSection_Protocol.hxx create mode 100644 src/Hermit/FILES delete mode 100644 src/Hermit/Hermit.cdl create mode 100644 src/Hermit/Hermit.hxx create mode 100644 src/IFGraph/FILES delete mode 100644 src/IFGraph/IFGraph.cdl delete mode 100644 src/IFGraph/IFGraph_AllConnected.cdl create mode 100644 src/IFGraph/IFGraph_AllConnected.hxx delete mode 100644 src/IFGraph/IFGraph_AllShared.cdl create mode 100644 src/IFGraph/IFGraph_AllShared.hxx delete mode 100644 src/IFGraph/IFGraph_Articulations.cdl create mode 100644 src/IFGraph/IFGraph_Articulations.hxx delete mode 100644 src/IFGraph/IFGraph_Compare.cdl create mode 100644 src/IFGraph/IFGraph_Compare.hxx delete mode 100644 src/IFGraph/IFGraph_ConnectedComponants.cdl create mode 100644 src/IFGraph/IFGraph_ConnectedComponants.hxx delete mode 100644 src/IFGraph/IFGraph_Cumulate.cdl create mode 100644 src/IFGraph/IFGraph_Cumulate.hxx delete mode 100644 src/IFGraph/IFGraph_Cycles.cdl create mode 100644 src/IFGraph/IFGraph_Cycles.hxx delete mode 100644 src/IFGraph/IFGraph_ExternalSources.cdl create mode 100644 src/IFGraph/IFGraph_ExternalSources.hxx delete mode 100644 src/IFGraph/IFGraph_SCRoots.cdl create mode 100644 src/IFGraph/IFGraph_SCRoots.hxx delete mode 100644 src/IFGraph/IFGraph_StrongComponants.cdl create mode 100644 src/IFGraph/IFGraph_StrongComponants.hxx delete mode 100644 src/IFGraph/IFGraph_SubPartsIterator.cdl create mode 100644 src/IFGraph/IFGraph_SubPartsIterator.hxx delete mode 100644 src/IFSelect/IFSelect.cdl create mode 100644 src/IFSelect/IFSelect.hxx delete mode 100644 src/IFSelect/IFSelect_Act.cdl create mode 100644 src/IFSelect/IFSelect_Act.hxx delete mode 100644 src/IFSelect/IFSelect_Activator.cdl create mode 100644 src/IFSelect/IFSelect_Activator.hxx delete mode 100644 src/IFSelect/IFSelect_AppliedModifiers.cdl create mode 100644 src/IFSelect/IFSelect_AppliedModifiers.hxx delete mode 100644 src/IFSelect/IFSelect_BasicDumper.cdl create mode 100644 src/IFSelect/IFSelect_BasicDumper.hxx delete mode 100644 src/IFSelect/IFSelect_CheckCounter.cdl create mode 100644 src/IFSelect/IFSelect_CheckCounter.hxx delete mode 100644 src/IFSelect/IFSelect_ContextModif.cdl create mode 100644 src/IFSelect/IFSelect_ContextModif.hxx delete mode 100644 src/IFSelect/IFSelect_ContextWrite.cdl create mode 100644 src/IFSelect/IFSelect_ContextWrite.hxx delete mode 100644 src/IFSelect/IFSelect_DispGlobal.cdl create mode 100644 src/IFSelect/IFSelect_DispGlobal.hxx delete mode 100644 src/IFSelect/IFSelect_DispPerCount.cdl create mode 100644 src/IFSelect/IFSelect_DispPerCount.hxx delete mode 100644 src/IFSelect/IFSelect_DispPerFiles.cdl create mode 100644 src/IFSelect/IFSelect_DispPerFiles.hxx delete mode 100644 src/IFSelect/IFSelect_DispPerOne.cdl create mode 100644 src/IFSelect/IFSelect_DispPerOne.hxx delete mode 100644 src/IFSelect/IFSelect_DispPerSignature.cdl create mode 100644 src/IFSelect/IFSelect_DispPerSignature.hxx delete mode 100644 src/IFSelect/IFSelect_Dispatch.cdl create mode 100644 src/IFSelect/IFSelect_Dispatch.hxx delete mode 100644 src/IFSelect/IFSelect_EditForm.cdl create mode 100644 src/IFSelect/IFSelect_EditForm.hxx create mode 100644 src/IFSelect/IFSelect_EditValue.hxx delete mode 100644 src/IFSelect/IFSelect_Editor.cdl create mode 100644 src/IFSelect/IFSelect_Editor.hxx delete mode 100644 src/IFSelect/IFSelect_FileModifier.cdl delete mode 100644 src/IFSelect/IFSelect_Functions.cdl create mode 100644 src/IFSelect/IFSelect_Functions.hxx delete mode 100644 src/IFSelect/IFSelect_GeneralModifier.cdl create mode 100644 src/IFSelect/IFSelect_GeneralModifier.hxx delete mode 100644 src/IFSelect/IFSelect_GraphCounter.cdl create mode 100644 src/IFSelect/IFSelect_GraphCounter.hxx delete mode 100644 src/IFSelect/IFSelect_IntParam.cdl create mode 100644 src/IFSelect/IFSelect_IntParam.hxx delete mode 100644 src/IFSelect/IFSelect_ListEditor.cdl create mode 100644 src/IFSelect/IFSelect_ListEditor.hxx delete mode 100644 src/IFSelect/IFSelect_ModelCopier.cdl create mode 100644 src/IFSelect/IFSelect_ModelCopier.hxx delete mode 100644 src/IFSelect/IFSelect_ModelModifier.cdl delete mode 100644 src/IFSelect/IFSelect_ModifEditForm.cdl create mode 100644 src/IFSelect/IFSelect_ModifEditForm.hxx delete mode 100644 src/IFSelect/IFSelect_ModifReorder.cdl create mode 100644 src/IFSelect/IFSelect_ModifReorder.hxx delete mode 100644 src/IFSelect/IFSelect_Modifier.cdl create mode 100644 src/IFSelect/IFSelect_Modifier.hxx delete mode 100644 src/IFSelect/IFSelect_PacketList.cdl create mode 100644 src/IFSelect/IFSelect_PacketList.hxx delete mode 100644 src/IFSelect/IFSelect_ParamEditor.cdl create mode 100644 src/IFSelect/IFSelect_ParamEditor.hxx create mode 100644 src/IFSelect/IFSelect_PrintCount.hxx create mode 100644 src/IFSelect/IFSelect_PrintFail.hxx create mode 100644 src/IFSelect/IFSelect_RemainMode.hxx create mode 100644 src/IFSelect/IFSelect_ReturnStatus.hxx delete mode 100644 src/IFSelect/IFSelect_SelectAnyList.cdl create mode 100644 src/IFSelect/IFSelect_SelectAnyList.hxx delete mode 100644 src/IFSelect/IFSelect_SelectAnyType.cdl create mode 100644 src/IFSelect/IFSelect_SelectAnyType.hxx delete mode 100644 src/IFSelect/IFSelect_SelectBase.cdl create mode 100644 src/IFSelect/IFSelect_SelectBase.hxx delete mode 100644 src/IFSelect/IFSelect_SelectCombine.cdl create mode 100644 src/IFSelect/IFSelect_SelectCombine.hxx delete mode 100644 src/IFSelect/IFSelect_SelectControl.cdl create mode 100644 src/IFSelect/IFSelect_SelectControl.hxx delete mode 100644 src/IFSelect/IFSelect_SelectDeduct.cdl create mode 100644 src/IFSelect/IFSelect_SelectDeduct.hxx delete mode 100644 src/IFSelect/IFSelect_SelectDiff.cdl create mode 100644 src/IFSelect/IFSelect_SelectDiff.hxx delete mode 100644 src/IFSelect/IFSelect_SelectEntityNumber.cdl create mode 100644 src/IFSelect/IFSelect_SelectEntityNumber.hxx delete mode 100644 src/IFSelect/IFSelect_SelectErrorEntities.cdl create mode 100644 src/IFSelect/IFSelect_SelectErrorEntities.hxx delete mode 100644 src/IFSelect/IFSelect_SelectExplore.cdl create mode 100644 src/IFSelect/IFSelect_SelectExplore.hxx delete mode 100644 src/IFSelect/IFSelect_SelectExtract.cdl create mode 100644 src/IFSelect/IFSelect_SelectExtract.hxx delete mode 100644 src/IFSelect/IFSelect_SelectFlag.cdl create mode 100644 src/IFSelect/IFSelect_SelectFlag.hxx delete mode 100644 src/IFSelect/IFSelect_SelectInList.cdl create mode 100644 src/IFSelect/IFSelect_SelectInList.hxx delete mode 100644 src/IFSelect/IFSelect_SelectIncorrectEntities.cdl create mode 100644 src/IFSelect/IFSelect_SelectIncorrectEntities.hxx delete mode 100644 src/IFSelect/IFSelect_SelectIntersection.cdl create mode 100644 src/IFSelect/IFSelect_SelectIntersection.hxx delete mode 100644 src/IFSelect/IFSelect_SelectModelEntities.cdl create mode 100644 src/IFSelect/IFSelect_SelectModelEntities.hxx delete mode 100644 src/IFSelect/IFSelect_SelectModelRoots.cdl create mode 100644 src/IFSelect/IFSelect_SelectModelRoots.hxx delete mode 100644 src/IFSelect/IFSelect_SelectPointed.cdl create mode 100644 src/IFSelect/IFSelect_SelectPointed.hxx delete mode 100644 src/IFSelect/IFSelect_SelectRange.cdl create mode 100644 src/IFSelect/IFSelect_SelectRange.hxx delete mode 100644 src/IFSelect/IFSelect_SelectRootComps.cdl create mode 100644 src/IFSelect/IFSelect_SelectRootComps.hxx delete mode 100644 src/IFSelect/IFSelect_SelectRoots.cdl create mode 100644 src/IFSelect/IFSelect_SelectRoots.hxx delete mode 100644 src/IFSelect/IFSelect_SelectSent.cdl create mode 100644 src/IFSelect/IFSelect_SelectSent.hxx delete mode 100644 src/IFSelect/IFSelect_SelectShared.cdl create mode 100644 src/IFSelect/IFSelect_SelectShared.hxx delete mode 100644 src/IFSelect/IFSelect_SelectSharing.cdl create mode 100644 src/IFSelect/IFSelect_SelectSharing.hxx delete mode 100644 src/IFSelect/IFSelect_SelectSignature.cdl create mode 100644 src/IFSelect/IFSelect_SelectSignature.hxx delete mode 100644 src/IFSelect/IFSelect_SelectSignedShared.cdl create mode 100644 src/IFSelect/IFSelect_SelectSignedShared.hxx delete mode 100644 src/IFSelect/IFSelect_SelectSignedSharing.cdl create mode 100644 src/IFSelect/IFSelect_SelectSignedSharing.hxx delete mode 100644 src/IFSelect/IFSelect_SelectSuite.cdl create mode 100644 src/IFSelect/IFSelect_SelectSuite.hxx delete mode 100644 src/IFSelect/IFSelect_SelectType.cdl create mode 100644 src/IFSelect/IFSelect_SelectType.hxx delete mode 100644 src/IFSelect/IFSelect_SelectUnion.cdl create mode 100644 src/IFSelect/IFSelect_SelectUnion.hxx delete mode 100644 src/IFSelect/IFSelect_SelectUnknownEntities.cdl create mode 100644 src/IFSelect/IFSelect_SelectUnknownEntities.hxx delete mode 100644 src/IFSelect/IFSelect_Selection.cdl create mode 100644 src/IFSelect/IFSelect_Selection.hxx delete mode 100644 src/IFSelect/IFSelect_SelectionIterator.cdl create mode 100644 src/IFSelect/IFSelect_SelectionIterator.hxx delete mode 100644 src/IFSelect/IFSelect_SessionDumper.cdl create mode 100644 src/IFSelect/IFSelect_SessionDumper.hxx delete mode 100644 src/IFSelect/IFSelect_SessionFile.cdl create mode 100644 src/IFSelect/IFSelect_SessionFile.hxx delete mode 100644 src/IFSelect/IFSelect_SessionPilot.cdl create mode 100644 src/IFSelect/IFSelect_SessionPilot.hxx delete mode 100644 src/IFSelect/IFSelect_ShareOut.cdl create mode 100644 src/IFSelect/IFSelect_ShareOut.hxx delete mode 100644 src/IFSelect/IFSelect_ShareOutResult.cdl create mode 100644 src/IFSelect/IFSelect_ShareOutResult.hxx delete mode 100644 src/IFSelect/IFSelect_SignAncestor.cdl create mode 100644 src/IFSelect/IFSelect_SignAncestor.hxx delete mode 100644 src/IFSelect/IFSelect_SignCategory.cdl create mode 100644 src/IFSelect/IFSelect_SignCategory.hxx delete mode 100644 src/IFSelect/IFSelect_SignCounter.cdl create mode 100644 src/IFSelect/IFSelect_SignCounter.hxx delete mode 100644 src/IFSelect/IFSelect_SignMultiple.cdl create mode 100644 src/IFSelect/IFSelect_SignMultiple.hxx delete mode 100644 src/IFSelect/IFSelect_SignType.cdl create mode 100644 src/IFSelect/IFSelect_SignType.hxx delete mode 100644 src/IFSelect/IFSelect_SignValidity.cdl create mode 100644 src/IFSelect/IFSelect_SignValidity.hxx delete mode 100644 src/IFSelect/IFSelect_Signature.cdl create mode 100644 src/IFSelect/IFSelect_Signature.hxx delete mode 100644 src/IFSelect/IFSelect_SignatureList.cdl create mode 100644 src/IFSelect/IFSelect_SignatureList.hxx delete mode 100644 src/IFSelect/IFSelect_TransformStandard.cdl create mode 100644 src/IFSelect/IFSelect_TransformStandard.hxx delete mode 100644 src/IFSelect/IFSelect_Transformer.cdl create mode 100644 src/IFSelect/IFSelect_Transformer.hxx delete mode 100644 src/IFSelect/IFSelect_WorkLibrary.cdl create mode 100644 src/IFSelect/IFSelect_WorkLibrary.hxx delete mode 100644 src/IFSelect/IFSelect_WorkSession.cdl create mode 100644 src/IFSelect/IFSelect_WorkSession.hxx delete mode 100644 src/IGESAppli/IGESAppli.cdl create mode 100644 src/IGESAppli/IGESAppli.hxx delete mode 100644 src/IGESAppli/IGESAppli_DrilledHole.cdl create mode 100644 src/IGESAppli/IGESAppli_DrilledHole.hxx delete mode 100644 src/IGESAppli/IGESAppli_ElementResults.cdl create mode 100644 src/IGESAppli/IGESAppli_ElementResults.hxx delete mode 100644 src/IGESAppli/IGESAppli_FiniteElement.cdl create mode 100644 src/IGESAppli/IGESAppli_FiniteElement.hxx delete mode 100644 src/IGESAppli/IGESAppli_Flow.cdl create mode 100644 src/IGESAppli/IGESAppli_Flow.hxx delete mode 100644 src/IGESAppli/IGESAppli_FlowLineSpec.cdl create mode 100644 src/IGESAppli/IGESAppli_FlowLineSpec.hxx delete mode 100644 src/IGESAppli/IGESAppli_GeneralModule.cdl create mode 100644 src/IGESAppli/IGESAppli_GeneralModule.hxx delete mode 100644 src/IGESAppli/IGESAppli_LevelFunction.cdl create mode 100644 src/IGESAppli/IGESAppli_LevelFunction.hxx delete mode 100644 src/IGESAppli/IGESAppli_LevelToPWBLayerMap.cdl create mode 100644 src/IGESAppli/IGESAppli_LevelToPWBLayerMap.hxx delete mode 100644 src/IGESAppli/IGESAppli_LineWidening.cdl create mode 100644 src/IGESAppli/IGESAppli_LineWidening.hxx delete mode 100644 src/IGESAppli/IGESAppli_NodalConstraint.cdl create mode 100644 src/IGESAppli/IGESAppli_NodalConstraint.hxx delete mode 100644 src/IGESAppli/IGESAppli_NodalDisplAndRot.cdl create mode 100644 src/IGESAppli/IGESAppli_NodalDisplAndRot.hxx delete mode 100644 src/IGESAppli/IGESAppli_NodalResults.cdl create mode 100644 src/IGESAppli/IGESAppli_NodalResults.hxx delete mode 100644 src/IGESAppli/IGESAppli_Node.cdl create mode 100644 src/IGESAppli/IGESAppli_Node.hxx delete mode 100644 src/IGESAppli/IGESAppli_PWBArtworkStackup.cdl create mode 100644 src/IGESAppli/IGESAppli_PWBArtworkStackup.hxx delete mode 100644 src/IGESAppli/IGESAppli_PWBDrilledHole.cdl create mode 100644 src/IGESAppli/IGESAppli_PWBDrilledHole.hxx delete mode 100644 src/IGESAppli/IGESAppli_PartNumber.cdl create mode 100644 src/IGESAppli/IGESAppli_PartNumber.hxx delete mode 100644 src/IGESAppli/IGESAppli_PinNumber.cdl create mode 100644 src/IGESAppli/IGESAppli_PinNumber.hxx delete mode 100644 src/IGESAppli/IGESAppli_PipingFlow.cdl create mode 100644 src/IGESAppli/IGESAppli_PipingFlow.hxx delete mode 100644 src/IGESAppli/IGESAppli_Protocol.cdl create mode 100644 src/IGESAppli/IGESAppli_Protocol.hxx delete mode 100644 src/IGESAppli/IGESAppli_ReadWriteModule.cdl create mode 100644 src/IGESAppli/IGESAppli_ReadWriteModule.hxx delete mode 100644 src/IGESAppli/IGESAppli_ReferenceDesignator.cdl create mode 100644 src/IGESAppli/IGESAppli_ReferenceDesignator.hxx delete mode 100644 src/IGESAppli/IGESAppli_RegionRestriction.cdl create mode 100644 src/IGESAppli/IGESAppli_RegionRestriction.hxx delete mode 100644 src/IGESAppli/IGESAppli_SpecificModule.cdl create mode 100644 src/IGESAppli/IGESAppli_SpecificModule.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolDrilledHole.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolDrilledHole.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolElementResults.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolElementResults.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolFiniteElement.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolFiniteElement.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolFlow.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolFlow.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolFlowLineSpec.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolFlowLineSpec.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolLevelFunction.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolLevelFunction.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolLevelToPWBLayerMap.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolLevelToPWBLayerMap.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolLineWidening.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolLineWidening.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolNodalConstraint.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolNodalConstraint.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolNodalDisplAndRot.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolNodalDisplAndRot.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolNodalResults.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolNodalResults.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolNode.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolNode.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolPWBArtworkStackup.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolPWBArtworkStackup.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolPWBDrilledHole.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolPWBDrilledHole.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolPartNumber.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolPartNumber.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolPinNumber.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolPinNumber.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolPipingFlow.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolPipingFlow.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolReferenceDesignator.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolReferenceDesignator.hxx delete mode 100644 src/IGESAppli/IGESAppli_ToolRegionRestriction.cdl create mode 100644 src/IGESAppli/IGESAppli_ToolRegionRestriction.hxx delete mode 100644 src/IGESBasic/IGESBasic.cdl create mode 100644 src/IGESBasic/IGESBasic.hxx delete mode 100644 src/IGESBasic/IGESBasic_AssocGroupType.cdl create mode 100644 src/IGESBasic/IGESBasic_AssocGroupType.hxx delete mode 100644 src/IGESBasic/IGESBasic_ExternalRefFile.cdl create mode 100644 src/IGESBasic/IGESBasic_ExternalRefFile.hxx delete mode 100644 src/IGESBasic/IGESBasic_ExternalRefFileIndex.cdl create mode 100644 src/IGESBasic/IGESBasic_ExternalRefFileIndex.hxx delete mode 100644 src/IGESBasic/IGESBasic_ExternalRefFileName.cdl create mode 100644 src/IGESBasic/IGESBasic_ExternalRefFileName.hxx delete mode 100644 src/IGESBasic/IGESBasic_ExternalRefLibName.cdl create mode 100644 src/IGESBasic/IGESBasic_ExternalRefLibName.hxx delete mode 100644 src/IGESBasic/IGESBasic_ExternalRefName.cdl create mode 100644 src/IGESBasic/IGESBasic_ExternalRefName.hxx delete mode 100644 src/IGESBasic/IGESBasic_ExternalReferenceFile.cdl create mode 100644 src/IGESBasic/IGESBasic_ExternalReferenceFile.hxx delete mode 100644 src/IGESBasic/IGESBasic_GeneralModule.cdl create mode 100644 src/IGESBasic/IGESBasic_GeneralModule.hxx delete mode 100644 src/IGESBasic/IGESBasic_Group.cdl create mode 100644 src/IGESBasic/IGESBasic_Group.hxx delete mode 100644 src/IGESBasic/IGESBasic_GroupWithoutBackP.cdl create mode 100644 src/IGESBasic/IGESBasic_GroupWithoutBackP.hxx create mode 100644 src/IGESBasic/IGESBasic_HArray1OfHArray1OfIGESEntity.hxx create mode 100644 src/IGESBasic/IGESBasic_HArray1OfHArray1OfIGESEntity_0.cxx create mode 100644 src/IGESBasic/IGESBasic_HArray1OfHArray1OfInteger.hxx create mode 100644 src/IGESBasic/IGESBasic_HArray1OfHArray1OfInteger_0.cxx create mode 100644 src/IGESBasic/IGESBasic_HArray1OfHArray1OfReal.hxx create mode 100644 src/IGESBasic/IGESBasic_HArray1OfHArray1OfReal_0.cxx create mode 100644 src/IGESBasic/IGESBasic_HArray1OfHArray1OfXY.hxx create mode 100644 src/IGESBasic/IGESBasic_HArray1OfHArray1OfXYZ.hxx create mode 100644 src/IGESBasic/IGESBasic_HArray1OfHArray1OfXYZ_0.cxx create mode 100644 src/IGESBasic/IGESBasic_HArray1OfHArray1OfXY_0.cxx delete mode 100644 src/IGESBasic/IGESBasic_Hierarchy.cdl create mode 100644 src/IGESBasic/IGESBasic_Hierarchy.hxx delete mode 100644 src/IGESBasic/IGESBasic_Name.cdl create mode 100644 src/IGESBasic/IGESBasic_Name.hxx delete mode 100644 src/IGESBasic/IGESBasic_OrderedGroup.cdl create mode 100644 src/IGESBasic/IGESBasic_OrderedGroup.hxx delete mode 100644 src/IGESBasic/IGESBasic_OrderedGroupWithoutBackP.cdl create mode 100644 src/IGESBasic/IGESBasic_OrderedGroupWithoutBackP.hxx delete mode 100644 src/IGESBasic/IGESBasic_Protocol.cdl create mode 100644 src/IGESBasic/IGESBasic_Protocol.hxx delete mode 100644 src/IGESBasic/IGESBasic_ReadWriteModule.cdl create mode 100644 src/IGESBasic/IGESBasic_ReadWriteModule.hxx delete mode 100644 src/IGESBasic/IGESBasic_SingleParent.cdl create mode 100644 src/IGESBasic/IGESBasic_SingleParent.hxx delete mode 100644 src/IGESBasic/IGESBasic_SingularSubfigure.cdl create mode 100644 src/IGESBasic/IGESBasic_SingularSubfigure.hxx delete mode 100644 src/IGESBasic/IGESBasic_SpecificModule.cdl create mode 100644 src/IGESBasic/IGESBasic_SpecificModule.hxx delete mode 100644 src/IGESBasic/IGESBasic_SubfigureDef.cdl create mode 100644 src/IGESBasic/IGESBasic_SubfigureDef.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolAssocGroupType.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolAssocGroupType.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolExternalRefFile.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolExternalRefFile.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolExternalRefFileIndex.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolExternalRefFileIndex.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolExternalRefFileName.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolExternalRefFileName.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolExternalRefLibName.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolExternalRefLibName.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolExternalRefName.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolExternalRefName.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolExternalReferenceFile.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolExternalReferenceFile.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolGroup.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolGroup.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolGroupWithoutBackP.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolGroupWithoutBackP.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolHierarchy.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolHierarchy.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolName.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolName.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolOrderedGroup.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolOrderedGroup.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolOrderedGroupWithoutBackP.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolOrderedGroupWithoutBackP.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolSingleParent.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolSingleParent.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolSingularSubfigure.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolSingularSubfigure.hxx delete mode 100644 src/IGESBasic/IGESBasic_ToolSubfigureDef.cdl create mode 100644 src/IGESBasic/IGESBasic_ToolSubfigureDef.hxx create mode 100644 src/IGESCAFControl/FILES delete mode 100644 src/IGESCAFControl/IGESCAFControl.cdl create mode 100644 src/IGESCAFControl/IGESCAFControl.hxx delete mode 100644 src/IGESCAFControl/IGESCAFControl_Reader.cdl create mode 100644 src/IGESCAFControl/IGESCAFControl_Reader.hxx delete mode 100644 src/IGESCAFControl/IGESCAFControl_Writer.cdl create mode 100644 src/IGESCAFControl/IGESCAFControl_Writer.hxx create mode 100644 src/IGESControl/FILES delete mode 100644 src/IGESControl/IGESControl.cdl delete mode 100644 src/IGESControl/IGESControl_ActorWrite.cdl create mode 100644 src/IGESControl/IGESControl_ActorWrite.hxx delete mode 100644 src/IGESControl/IGESControl_AlgoContainer.cdl create mode 100644 src/IGESControl/IGESControl_AlgoContainer.hxx delete mode 100644 src/IGESControl/IGESControl_Controller.cdl create mode 100644 src/IGESControl/IGESControl_Controller.hxx delete mode 100644 src/IGESControl/IGESControl_IGESBoundary.cdl create mode 100644 src/IGESControl/IGESControl_IGESBoundary.hxx delete mode 100644 src/IGESControl/IGESControl_Reader.cdl create mode 100644 src/IGESControl/IGESControl_Reader.hxx delete mode 100644 src/IGESControl/IGESControl_ToolContainer.cdl create mode 100644 src/IGESControl/IGESControl_ToolContainer.hxx delete mode 100644 src/IGESControl/IGESControl_Writer.cdl create mode 100644 src/IGESControl/IGESControl_Writer.hxx create mode 100644 src/IGESConvGeom/FILES delete mode 100644 src/IGESConvGeom/IGESConvGeom.cdl create mode 100644 src/IGESConvGeom/IGESConvGeom.hxx delete mode 100644 src/IGESConvGeom/IGESConvGeom_GeomBuilder.cdl create mode 100644 src/IGESConvGeom/IGESConvGeom_GeomBuilder.hxx delete mode 100644 src/IGESData/IGESData.cdl create mode 100644 src/IGESData/IGESData.hxx delete mode 100644 src/IGESData/IGESData_BasicEditor.cdl create mode 100644 src/IGESData/IGESData_BasicEditor.hxx delete mode 100644 src/IGESData/IGESData_ColorEntity.cdl create mode 100644 src/IGESData/IGESData_ColorEntity.hxx create mode 100644 src/IGESData/IGESData_DefList.hxx delete mode 100644 src/IGESData/IGESData_DefSwitch.cdl create mode 100644 src/IGESData/IGESData_DefSwitch.hxx create mode 100644 src/IGESData/IGESData_DefType.hxx delete mode 100644 src/IGESData/IGESData_DefaultGeneral.cdl create mode 100644 src/IGESData/IGESData_DefaultGeneral.hxx delete mode 100644 src/IGESData/IGESData_DefaultSpecific.cdl create mode 100644 src/IGESData/IGESData_DefaultSpecific.hxx delete mode 100644 src/IGESData/IGESData_DirChecker.cdl create mode 100644 src/IGESData/IGESData_DirChecker.hxx delete mode 100644 src/IGESData/IGESData_DirPart.cdl create mode 100644 src/IGESData/IGESData_DirPart.hxx delete mode 100644 src/IGESData/IGESData_FileProtocol.cdl create mode 100644 src/IGESData/IGESData_FileProtocol.hxx create mode 100644 src/IGESData/IGESData_FileRecognizer.hxx create mode 100644 src/IGESData/IGESData_FileRecognizer_0.cxx delete mode 100644 src/IGESData/IGESData_FreeFormatEntity.cdl create mode 100644 src/IGESData/IGESData_FreeFormatEntity.hxx delete mode 100644 src/IGESData/IGESData_GeneralModule.cdl create mode 100644 src/IGESData/IGESData_GeneralModule.hxx create mode 100644 src/IGESData/IGESData_GlobalNodeOfSpecificLib.hxx create mode 100644 src/IGESData/IGESData_GlobalNodeOfSpecificLib_0.cxx create mode 100644 src/IGESData/IGESData_GlobalNodeOfWriterLib.hxx create mode 100644 src/IGESData/IGESData_GlobalNodeOfWriterLib_0.cxx delete mode 100644 src/IGESData/IGESData_GlobalSection.cdl create mode 100644 src/IGESData/IGESData_GlobalSection.hxx delete mode 100644 src/IGESData/IGESData_IGESDumper.cdl create mode 100644 src/IGESData/IGESData_IGESDumper.hxx delete mode 100644 src/IGESData/IGESData_IGESEntity.cdl create mode 100644 src/IGESData/IGESData_IGESEntity.hxx delete mode 100644 src/IGESData/IGESData_IGESModel.cdl create mode 100644 src/IGESData/IGESData_IGESModel.hxx delete mode 100644 src/IGESData/IGESData_IGESReaderData.cdl create mode 100644 src/IGESData/IGESData_IGESReaderData.hxx delete mode 100644 src/IGESData/IGESData_IGESReaderTool.cdl create mode 100644 src/IGESData/IGESData_IGESReaderTool.hxx delete mode 100644 src/IGESData/IGESData_IGESType.cdl create mode 100644 src/IGESData/IGESData_IGESType.hxx delete mode 100644 src/IGESData/IGESData_IGESWriter.cdl create mode 100644 src/IGESData/IGESData_IGESWriter.hxx delete mode 100644 src/IGESData/IGESData_LabelDisplayEntity.cdl create mode 100644 src/IGESData/IGESData_LabelDisplayEntity.hxx delete mode 100644 src/IGESData/IGESData_LevelListEntity.cdl create mode 100644 src/IGESData/IGESData_LevelListEntity.hxx delete mode 100644 src/IGESData/IGESData_LineFontEntity.cdl create mode 100644 src/IGESData/IGESData_LineFontEntity.hxx delete mode 100644 src/IGESData/IGESData_NameEntity.cdl create mode 100644 src/IGESData/IGESData_NameEntity.hxx create mode 100644 src/IGESData/IGESData_NodeOfSpecificLib.hxx create mode 100644 src/IGESData/IGESData_NodeOfSpecificLib_0.cxx create mode 100644 src/IGESData/IGESData_NodeOfWriterLib.hxx create mode 100644 src/IGESData/IGESData_NodeOfWriterLib_0.cxx delete mode 100644 src/IGESData/IGESData_ParamCursor.cdl create mode 100644 src/IGESData/IGESData_ParamCursor.hxx delete mode 100644 src/IGESData/IGESData_ParamReader.cdl create mode 100644 src/IGESData/IGESData_ParamReader.hxx delete mode 100644 src/IGESData/IGESData_Protocol.cdl create mode 100644 src/IGESData/IGESData_Protocol.hxx create mode 100644 src/IGESData/IGESData_ReadStage.hxx delete mode 100644 src/IGESData/IGESData_ReadWriteModule.cdl create mode 100644 src/IGESData/IGESData_ReadWriteModule.hxx delete mode 100644 src/IGESData/IGESData_SingleParentEntity.cdl create mode 100644 src/IGESData/IGESData_SingleParentEntity.hxx create mode 100644 src/IGESData/IGESData_SpecificLib.hxx create mode 100644 src/IGESData/IGESData_SpecificLib_0.cxx delete mode 100644 src/IGESData/IGESData_SpecificModule.cdl create mode 100644 src/IGESData/IGESData_SpecificModule.hxx create mode 100644 src/IGESData/IGESData_Status.hxx delete mode 100644 src/IGESData/IGESData_ToolLocation.cdl create mode 100644 src/IGESData/IGESData_ToolLocation.hxx delete mode 100644 src/IGESData/IGESData_TransfEntity.cdl create mode 100644 src/IGESData/IGESData_TransfEntity.hxx delete mode 100644 src/IGESData/IGESData_UndefinedEntity.cdl create mode 100644 src/IGESData/IGESData_UndefinedEntity.hxx delete mode 100644 src/IGESData/IGESData_ViewKindEntity.cdl create mode 100644 src/IGESData/IGESData_ViewKindEntity.hxx create mode 100644 src/IGESData/IGESData_WriterLib.hxx create mode 100644 src/IGESData/IGESData_WriterLib_0.cxx delete mode 100644 src/IGESDefs/IGESDefs.cdl create mode 100644 src/IGESDefs/IGESDefs.hxx delete mode 100644 src/IGESDefs/IGESDefs_AssociativityDef.cdl create mode 100644 src/IGESDefs/IGESDefs_AssociativityDef.hxx delete mode 100644 src/IGESDefs/IGESDefs_AttributeDef.cdl create mode 100644 src/IGESDefs/IGESDefs_AttributeDef.hxx delete mode 100644 src/IGESDefs/IGESDefs_AttributeTable.cdl create mode 100644 src/IGESDefs/IGESDefs_AttributeTable.hxx delete mode 100644 src/IGESDefs/IGESDefs_GeneralModule.cdl create mode 100644 src/IGESDefs/IGESDefs_GeneralModule.hxx delete mode 100644 src/IGESDefs/IGESDefs_GenericData.cdl create mode 100644 src/IGESDefs/IGESDefs_GenericData.hxx create mode 100644 src/IGESDefs/IGESDefs_HArray1OfHArray1OfTextDisplayTemplate.hxx create mode 100644 src/IGESDefs/IGESDefs_HArray1OfHArray1OfTextDisplayTemplate_0.cxx delete mode 100644 src/IGESDefs/IGESDefs_MacroDef.cdl create mode 100644 src/IGESDefs/IGESDefs_MacroDef.hxx delete mode 100644 src/IGESDefs/IGESDefs_Protocol.cdl create mode 100644 src/IGESDefs/IGESDefs_Protocol.hxx delete mode 100644 src/IGESDefs/IGESDefs_ReadWriteModule.cdl create mode 100644 src/IGESDefs/IGESDefs_ReadWriteModule.hxx delete mode 100644 src/IGESDefs/IGESDefs_SpecificModule.cdl create mode 100644 src/IGESDefs/IGESDefs_SpecificModule.hxx delete mode 100644 src/IGESDefs/IGESDefs_TabularData.cdl create mode 100644 src/IGESDefs/IGESDefs_TabularData.hxx delete mode 100644 src/IGESDefs/IGESDefs_ToolAssociativityDef.cdl create mode 100644 src/IGESDefs/IGESDefs_ToolAssociativityDef.hxx delete mode 100644 src/IGESDefs/IGESDefs_ToolAttributeDef.cdl create mode 100644 src/IGESDefs/IGESDefs_ToolAttributeDef.hxx delete mode 100644 src/IGESDefs/IGESDefs_ToolAttributeTable.cdl create mode 100644 src/IGESDefs/IGESDefs_ToolAttributeTable.hxx delete mode 100644 src/IGESDefs/IGESDefs_ToolGenericData.cdl create mode 100644 src/IGESDefs/IGESDefs_ToolGenericData.hxx delete mode 100644 src/IGESDefs/IGESDefs_ToolMacroDef.cdl create mode 100644 src/IGESDefs/IGESDefs_ToolMacroDef.hxx delete mode 100644 src/IGESDefs/IGESDefs_ToolTabularData.cdl create mode 100644 src/IGESDefs/IGESDefs_ToolTabularData.hxx delete mode 100644 src/IGESDefs/IGESDefs_ToolUnitsData.cdl create mode 100644 src/IGESDefs/IGESDefs_ToolUnitsData.hxx delete mode 100644 src/IGESDefs/IGESDefs_UnitsData.cdl create mode 100644 src/IGESDefs/IGESDefs_UnitsData.hxx delete mode 100644 src/IGESDimen/IGESDimen.cdl create mode 100644 src/IGESDimen/IGESDimen.hxx delete mode 100644 src/IGESDimen/IGESDimen_AngularDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_AngularDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_BasicDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_BasicDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_CenterLine.cdl create mode 100644 src/IGESDimen/IGESDimen_CenterLine.hxx delete mode 100644 src/IGESDimen/IGESDimen_CurveDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_CurveDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_DiameterDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_DiameterDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_DimensionDisplayData.cdl create mode 100644 src/IGESDimen/IGESDimen_DimensionDisplayData.hxx delete mode 100644 src/IGESDimen/IGESDimen_DimensionTolerance.cdl create mode 100644 src/IGESDimen/IGESDimen_DimensionTolerance.hxx delete mode 100644 src/IGESDimen/IGESDimen_DimensionUnits.cdl create mode 100644 src/IGESDimen/IGESDimen_DimensionUnits.hxx delete mode 100644 src/IGESDimen/IGESDimen_DimensionedGeometry.cdl create mode 100644 src/IGESDimen/IGESDimen_DimensionedGeometry.hxx delete mode 100644 src/IGESDimen/IGESDimen_FlagNote.cdl create mode 100644 src/IGESDimen/IGESDimen_FlagNote.hxx delete mode 100644 src/IGESDimen/IGESDimen_GeneralLabel.cdl create mode 100644 src/IGESDimen/IGESDimen_GeneralLabel.hxx delete mode 100644 src/IGESDimen/IGESDimen_GeneralModule.cdl create mode 100644 src/IGESDimen/IGESDimen_GeneralModule.hxx delete mode 100644 src/IGESDimen/IGESDimen_GeneralNote.cdl create mode 100644 src/IGESDimen/IGESDimen_GeneralNote.hxx delete mode 100644 src/IGESDimen/IGESDimen_GeneralSymbol.cdl create mode 100644 src/IGESDimen/IGESDimen_GeneralSymbol.hxx delete mode 100644 src/IGESDimen/IGESDimen_LeaderArrow.cdl create mode 100644 src/IGESDimen/IGESDimen_LeaderArrow.hxx delete mode 100644 src/IGESDimen/IGESDimen_LinearDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_LinearDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_NewDimensionedGeometry.cdl create mode 100644 src/IGESDimen/IGESDimen_NewDimensionedGeometry.hxx delete mode 100644 src/IGESDimen/IGESDimen_NewGeneralNote.cdl create mode 100644 src/IGESDimen/IGESDimen_NewGeneralNote.hxx delete mode 100644 src/IGESDimen/IGESDimen_OrdinateDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_OrdinateDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_PointDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_PointDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_Protocol.cdl create mode 100644 src/IGESDimen/IGESDimen_Protocol.hxx delete mode 100644 src/IGESDimen/IGESDimen_RadiusDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_RadiusDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_ReadWriteModule.cdl create mode 100644 src/IGESDimen/IGESDimen_ReadWriteModule.hxx delete mode 100644 src/IGESDimen/IGESDimen_Section.cdl create mode 100644 src/IGESDimen/IGESDimen_Section.hxx delete mode 100644 src/IGESDimen/IGESDimen_SectionedArea.cdl create mode 100644 src/IGESDimen/IGESDimen_SectionedArea.hxx delete mode 100644 src/IGESDimen/IGESDimen_SpecificModule.cdl create mode 100644 src/IGESDimen/IGESDimen_SpecificModule.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolAngularDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolAngularDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolBasicDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolBasicDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolCenterLine.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolCenterLine.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolCurveDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolCurveDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolDiameterDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolDiameterDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolDimensionDisplayData.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolDimensionDisplayData.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolDimensionTolerance.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolDimensionTolerance.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolDimensionUnits.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolDimensionUnits.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolDimensionedGeometry.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolDimensionedGeometry.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolFlagNote.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolFlagNote.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolGeneralLabel.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolGeneralLabel.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolGeneralNote.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolGeneralNote.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolGeneralSymbol.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolGeneralSymbol.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolLeaderArrow.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolLeaderArrow.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolLinearDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolLinearDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolNewDimensionedGeometry.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolNewDimensionedGeometry.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolNewGeneralNote.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolNewGeneralNote.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolOrdinateDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolOrdinateDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolPointDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolPointDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolRadiusDimension.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolRadiusDimension.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolSection.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolSection.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolSectionedArea.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolSectionedArea.hxx delete mode 100644 src/IGESDimen/IGESDimen_ToolWitnessLine.cdl create mode 100644 src/IGESDimen/IGESDimen_ToolWitnessLine.hxx delete mode 100644 src/IGESDimen/IGESDimen_WitnessLine.cdl create mode 100644 src/IGESDimen/IGESDimen_WitnessLine.hxx delete mode 100644 src/IGESDraw/IGESDraw.cdl create mode 100644 src/IGESDraw/IGESDraw.hxx delete mode 100644 src/IGESDraw/IGESDraw_CircArraySubfigure.cdl create mode 100644 src/IGESDraw/IGESDraw_CircArraySubfigure.hxx delete mode 100644 src/IGESDraw/IGESDraw_ConnectPoint.cdl create mode 100644 src/IGESDraw/IGESDraw_ConnectPoint.hxx delete mode 100644 src/IGESDraw/IGESDraw_Drawing.cdl create mode 100644 src/IGESDraw/IGESDraw_Drawing.hxx delete mode 100644 src/IGESDraw/IGESDraw_DrawingWithRotation.cdl create mode 100644 src/IGESDraw/IGESDraw_DrawingWithRotation.hxx delete mode 100644 src/IGESDraw/IGESDraw_GeneralModule.cdl create mode 100644 src/IGESDraw/IGESDraw_GeneralModule.hxx delete mode 100644 src/IGESDraw/IGESDraw_LabelDisplay.cdl create mode 100644 src/IGESDraw/IGESDraw_LabelDisplay.hxx delete mode 100644 src/IGESDraw/IGESDraw_NetworkSubfigure.cdl create mode 100644 src/IGESDraw/IGESDraw_NetworkSubfigure.hxx delete mode 100644 src/IGESDraw/IGESDraw_NetworkSubfigureDef.cdl create mode 100644 src/IGESDraw/IGESDraw_NetworkSubfigureDef.hxx delete mode 100644 src/IGESDraw/IGESDraw_PerspectiveView.cdl create mode 100644 src/IGESDraw/IGESDraw_PerspectiveView.hxx delete mode 100644 src/IGESDraw/IGESDraw_Planar.cdl create mode 100644 src/IGESDraw/IGESDraw_Planar.hxx delete mode 100644 src/IGESDraw/IGESDraw_Protocol.cdl create mode 100644 src/IGESDraw/IGESDraw_Protocol.hxx delete mode 100644 src/IGESDraw/IGESDraw_ReadWriteModule.cdl create mode 100644 src/IGESDraw/IGESDraw_ReadWriteModule.hxx delete mode 100644 src/IGESDraw/IGESDraw_RectArraySubfigure.cdl create mode 100644 src/IGESDraw/IGESDraw_RectArraySubfigure.hxx delete mode 100644 src/IGESDraw/IGESDraw_SegmentedViewsVisible.cdl create mode 100644 src/IGESDraw/IGESDraw_SegmentedViewsVisible.hxx delete mode 100644 src/IGESDraw/IGESDraw_SpecificModule.cdl create mode 100644 src/IGESDraw/IGESDraw_SpecificModule.hxx delete mode 100644 src/IGESDraw/IGESDraw_ToolCircArraySubfigure.cdl create mode 100644 src/IGESDraw/IGESDraw_ToolCircArraySubfigure.hxx delete mode 100644 src/IGESDraw/IGESDraw_ToolConnectPoint.cdl create mode 100644 src/IGESDraw/IGESDraw_ToolConnectPoint.hxx delete mode 100644 src/IGESDraw/IGESDraw_ToolDrawing.cdl create mode 100644 src/IGESDraw/IGESDraw_ToolDrawing.hxx delete mode 100644 src/IGESDraw/IGESDraw_ToolDrawingWithRotation.cdl create mode 100644 src/IGESDraw/IGESDraw_ToolDrawingWithRotation.hxx delete mode 100644 src/IGESDraw/IGESDraw_ToolLabelDisplay.cdl create mode 100644 src/IGESDraw/IGESDraw_ToolLabelDisplay.hxx delete mode 100644 src/IGESDraw/IGESDraw_ToolNetworkSubfigure.cdl create mode 100644 src/IGESDraw/IGESDraw_ToolNetworkSubfigure.hxx delete mode 100644 src/IGESDraw/IGESDraw_ToolNetworkSubfigureDef.cdl create mode 100644 src/IGESDraw/IGESDraw_ToolNetworkSubfigureDef.hxx delete mode 100644 src/IGESDraw/IGESDraw_ToolPerspectiveView.cdl create mode 100644 src/IGESDraw/IGESDraw_ToolPerspectiveView.hxx delete mode 100644 src/IGESDraw/IGESDraw_ToolPlanar.cdl create mode 100644 src/IGESDraw/IGESDraw_ToolPlanar.hxx delete mode 100644 src/IGESDraw/IGESDraw_ToolRectArraySubfigure.cdl create mode 100644 src/IGESDraw/IGESDraw_ToolRectArraySubfigure.hxx delete mode 100644 src/IGESDraw/IGESDraw_ToolSegmentedViewsVisible.cdl create mode 100644 src/IGESDraw/IGESDraw_ToolSegmentedViewsVisible.hxx delete mode 100644 src/IGESDraw/IGESDraw_ToolView.cdl create mode 100644 src/IGESDraw/IGESDraw_ToolView.hxx delete mode 100644 src/IGESDraw/IGESDraw_ToolViewsVisible.cdl create mode 100644 src/IGESDraw/IGESDraw_ToolViewsVisible.hxx delete mode 100644 src/IGESDraw/IGESDraw_ToolViewsVisibleWithAttr.cdl create mode 100644 src/IGESDraw/IGESDraw_ToolViewsVisibleWithAttr.hxx delete mode 100644 src/IGESDraw/IGESDraw_View.cdl create mode 100644 src/IGESDraw/IGESDraw_View.hxx delete mode 100644 src/IGESDraw/IGESDraw_ViewsVisible.cdl create mode 100644 src/IGESDraw/IGESDraw_ViewsVisible.hxx delete mode 100644 src/IGESDraw/IGESDraw_ViewsVisibleWithAttr.cdl create mode 100644 src/IGESDraw/IGESDraw_ViewsVisibleWithAttr.hxx delete mode 100644 src/IGESGeom/IGESGeom.cdl create mode 100644 src/IGESGeom/IGESGeom.hxx delete mode 100644 src/IGESGeom/IGESGeom_BSplineCurve.cdl create mode 100644 src/IGESGeom/IGESGeom_BSplineCurve.hxx delete mode 100644 src/IGESGeom/IGESGeom_BSplineSurface.cdl create mode 100644 src/IGESGeom/IGESGeom_BSplineSurface.hxx delete mode 100644 src/IGESGeom/IGESGeom_Boundary.cdl create mode 100644 src/IGESGeom/IGESGeom_Boundary.hxx delete mode 100644 src/IGESGeom/IGESGeom_BoundedSurface.cdl create mode 100644 src/IGESGeom/IGESGeom_BoundedSurface.hxx delete mode 100644 src/IGESGeom/IGESGeom_CircularArc.cdl create mode 100644 src/IGESGeom/IGESGeom_CircularArc.hxx delete mode 100644 src/IGESGeom/IGESGeom_CompositeCurve.cdl create mode 100644 src/IGESGeom/IGESGeom_CompositeCurve.hxx delete mode 100644 src/IGESGeom/IGESGeom_ConicArc.cdl create mode 100644 src/IGESGeom/IGESGeom_ConicArc.hxx delete mode 100644 src/IGESGeom/IGESGeom_CopiousData.cdl create mode 100644 src/IGESGeom/IGESGeom_CopiousData.hxx delete mode 100644 src/IGESGeom/IGESGeom_CurveOnSurface.cdl create mode 100644 src/IGESGeom/IGESGeom_CurveOnSurface.hxx delete mode 100644 src/IGESGeom/IGESGeom_Direction.cdl create mode 100644 src/IGESGeom/IGESGeom_Direction.hxx delete mode 100644 src/IGESGeom/IGESGeom_Flash.cdl create mode 100644 src/IGESGeom/IGESGeom_Flash.hxx delete mode 100644 src/IGESGeom/IGESGeom_GeneralModule.cdl create mode 100644 src/IGESGeom/IGESGeom_GeneralModule.hxx delete mode 100644 src/IGESGeom/IGESGeom_Line.cdl create mode 100644 src/IGESGeom/IGESGeom_Line.hxx delete mode 100644 src/IGESGeom/IGESGeom_OffsetCurve.cdl create mode 100644 src/IGESGeom/IGESGeom_OffsetCurve.hxx delete mode 100644 src/IGESGeom/IGESGeom_OffsetSurface.cdl create mode 100644 src/IGESGeom/IGESGeom_OffsetSurface.hxx delete mode 100644 src/IGESGeom/IGESGeom_Plane.cdl create mode 100644 src/IGESGeom/IGESGeom_Plane.hxx delete mode 100644 src/IGESGeom/IGESGeom_Point.cdl create mode 100644 src/IGESGeom/IGESGeom_Point.hxx delete mode 100644 src/IGESGeom/IGESGeom_Protocol.cdl create mode 100644 src/IGESGeom/IGESGeom_Protocol.hxx delete mode 100644 src/IGESGeom/IGESGeom_ReadWriteModule.cdl create mode 100644 src/IGESGeom/IGESGeom_ReadWriteModule.hxx delete mode 100644 src/IGESGeom/IGESGeom_RuledSurface.cdl create mode 100644 src/IGESGeom/IGESGeom_RuledSurface.hxx delete mode 100644 src/IGESGeom/IGESGeom_SpecificModule.cdl create mode 100644 src/IGESGeom/IGESGeom_SpecificModule.hxx delete mode 100644 src/IGESGeom/IGESGeom_SplineCurve.cdl create mode 100644 src/IGESGeom/IGESGeom_SplineCurve.hxx delete mode 100644 src/IGESGeom/IGESGeom_SplineSurface.cdl create mode 100644 src/IGESGeom/IGESGeom_SplineSurface.hxx delete mode 100644 src/IGESGeom/IGESGeom_SurfaceOfRevolution.cdl create mode 100644 src/IGESGeom/IGESGeom_SurfaceOfRevolution.hxx delete mode 100644 src/IGESGeom/IGESGeom_TabulatedCylinder.cdl create mode 100644 src/IGESGeom/IGESGeom_TabulatedCylinder.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolBSplineCurve.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolBSplineCurve.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolBSplineSurface.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolBSplineSurface.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolBoundary.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolBoundary.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolBoundedSurface.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolBoundedSurface.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolCircularArc.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolCircularArc.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolCompositeCurve.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolCompositeCurve.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolConicArc.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolConicArc.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolCopiousData.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolCopiousData.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolCurveOnSurface.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolCurveOnSurface.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolDirection.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolDirection.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolFlash.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolFlash.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolLine.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolLine.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolOffsetCurve.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolOffsetCurve.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolOffsetSurface.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolOffsetSurface.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolPlane.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolPlane.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolPoint.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolPoint.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolRuledSurface.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolRuledSurface.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolSplineCurve.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolSplineCurve.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolSplineSurface.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolSplineSurface.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolSurfaceOfRevolution.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolSurfaceOfRevolution.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolTabulatedCylinder.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolTabulatedCylinder.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolTransformationMatrix.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolTransformationMatrix.hxx delete mode 100644 src/IGESGeom/IGESGeom_ToolTrimmedSurface.cdl create mode 100644 src/IGESGeom/IGESGeom_ToolTrimmedSurface.hxx delete mode 100644 src/IGESGeom/IGESGeom_TransformationMatrix.cdl create mode 100644 src/IGESGeom/IGESGeom_TransformationMatrix.hxx delete mode 100644 src/IGESGeom/IGESGeom_TrimmedSurface.cdl create mode 100644 src/IGESGeom/IGESGeom_TrimmedSurface.hxx delete mode 100644 src/IGESGraph/IGESGraph.cdl create mode 100644 src/IGESGraph/IGESGraph.hxx delete mode 100644 src/IGESGraph/IGESGraph_Color.cdl create mode 100644 src/IGESGraph/IGESGraph_Color.hxx delete mode 100644 src/IGESGraph/IGESGraph_DefinitionLevel.cdl create mode 100644 src/IGESGraph/IGESGraph_DefinitionLevel.hxx delete mode 100644 src/IGESGraph/IGESGraph_DrawingSize.cdl create mode 100644 src/IGESGraph/IGESGraph_DrawingSize.hxx delete mode 100644 src/IGESGraph/IGESGraph_DrawingUnits.cdl create mode 100644 src/IGESGraph/IGESGraph_DrawingUnits.hxx delete mode 100644 src/IGESGraph/IGESGraph_GeneralModule.cdl create mode 100644 src/IGESGraph/IGESGraph_GeneralModule.hxx delete mode 100644 src/IGESGraph/IGESGraph_HighLight.cdl create mode 100644 src/IGESGraph/IGESGraph_HighLight.hxx delete mode 100644 src/IGESGraph/IGESGraph_IntercharacterSpacing.cdl create mode 100644 src/IGESGraph/IGESGraph_IntercharacterSpacing.hxx delete mode 100644 src/IGESGraph/IGESGraph_LineFontDefPattern.cdl create mode 100644 src/IGESGraph/IGESGraph_LineFontDefPattern.hxx delete mode 100644 src/IGESGraph/IGESGraph_LineFontDefTemplate.cdl create mode 100644 src/IGESGraph/IGESGraph_LineFontDefTemplate.hxx delete mode 100644 src/IGESGraph/IGESGraph_LineFontPredefined.cdl create mode 100644 src/IGESGraph/IGESGraph_LineFontPredefined.hxx delete mode 100644 src/IGESGraph/IGESGraph_NominalSize.cdl create mode 100644 src/IGESGraph/IGESGraph_NominalSize.hxx delete mode 100644 src/IGESGraph/IGESGraph_Pick.cdl create mode 100644 src/IGESGraph/IGESGraph_Pick.hxx delete mode 100644 src/IGESGraph/IGESGraph_Protocol.cdl create mode 100644 src/IGESGraph/IGESGraph_Protocol.hxx delete mode 100644 src/IGESGraph/IGESGraph_ReadWriteModule.cdl create mode 100644 src/IGESGraph/IGESGraph_ReadWriteModule.hxx delete mode 100644 src/IGESGraph/IGESGraph_SpecificModule.cdl create mode 100644 src/IGESGraph/IGESGraph_SpecificModule.hxx delete mode 100644 src/IGESGraph/IGESGraph_TextDisplayTemplate.cdl create mode 100644 src/IGESGraph/IGESGraph_TextDisplayTemplate.hxx delete mode 100644 src/IGESGraph/IGESGraph_TextFontDef.cdl create mode 100644 src/IGESGraph/IGESGraph_TextFontDef.hxx delete mode 100644 src/IGESGraph/IGESGraph_ToolColor.cdl create mode 100644 src/IGESGraph/IGESGraph_ToolColor.hxx delete mode 100644 src/IGESGraph/IGESGraph_ToolDefinitionLevel.cdl create mode 100644 src/IGESGraph/IGESGraph_ToolDefinitionLevel.hxx delete mode 100644 src/IGESGraph/IGESGraph_ToolDrawingSize.cdl create mode 100644 src/IGESGraph/IGESGraph_ToolDrawingSize.hxx delete mode 100644 src/IGESGraph/IGESGraph_ToolDrawingUnits.cdl create mode 100644 src/IGESGraph/IGESGraph_ToolDrawingUnits.hxx delete mode 100644 src/IGESGraph/IGESGraph_ToolHighLight.cdl create mode 100644 src/IGESGraph/IGESGraph_ToolHighLight.hxx delete mode 100644 src/IGESGraph/IGESGraph_ToolIntercharacterSpacing.cdl create mode 100644 src/IGESGraph/IGESGraph_ToolIntercharacterSpacing.hxx delete mode 100644 src/IGESGraph/IGESGraph_ToolLineFontDefPattern.cdl create mode 100644 src/IGESGraph/IGESGraph_ToolLineFontDefPattern.hxx delete mode 100644 src/IGESGraph/IGESGraph_ToolLineFontDefTemplate.cdl create mode 100644 src/IGESGraph/IGESGraph_ToolLineFontDefTemplate.hxx delete mode 100644 src/IGESGraph/IGESGraph_ToolLineFontPredefined.cdl create mode 100644 src/IGESGraph/IGESGraph_ToolLineFontPredefined.hxx delete mode 100644 src/IGESGraph/IGESGraph_ToolNominalSize.cdl create mode 100644 src/IGESGraph/IGESGraph_ToolNominalSize.hxx delete mode 100644 src/IGESGraph/IGESGraph_ToolPick.cdl create mode 100644 src/IGESGraph/IGESGraph_ToolPick.hxx delete mode 100644 src/IGESGraph/IGESGraph_ToolTextDisplayTemplate.cdl create mode 100644 src/IGESGraph/IGESGraph_ToolTextDisplayTemplate.hxx delete mode 100644 src/IGESGraph/IGESGraph_ToolTextFontDef.cdl create mode 100644 src/IGESGraph/IGESGraph_ToolTextFontDef.hxx delete mode 100644 src/IGESGraph/IGESGraph_ToolUniformRectGrid.cdl create mode 100644 src/IGESGraph/IGESGraph_ToolUniformRectGrid.hxx delete mode 100644 src/IGESGraph/IGESGraph_UniformRectGrid.cdl create mode 100644 src/IGESGraph/IGESGraph_UniformRectGrid.hxx create mode 100644 src/IGESSelect/FILES delete mode 100644 src/IGESSelect/IGESSelect.cdl create mode 100644 src/IGESSelect/IGESSelect.hxx delete mode 100644 src/IGESSelect/IGESSelect_Activator.cdl create mode 100644 src/IGESSelect/IGESSelect_Activator.hxx delete mode 100644 src/IGESSelect/IGESSelect_AddFileComment.cdl create mode 100644 src/IGESSelect/IGESSelect_AddFileComment.hxx delete mode 100644 src/IGESSelect/IGESSelect_AddGroup.cdl create mode 100644 src/IGESSelect/IGESSelect_AddGroup.hxx delete mode 100644 src/IGESSelect/IGESSelect_AutoCorrect.cdl create mode 100644 src/IGESSelect/IGESSelect_AutoCorrect.hxx delete mode 100644 src/IGESSelect/IGESSelect_ChangeLevelList.cdl create mode 100644 src/IGESSelect/IGESSelect_ChangeLevelList.hxx delete mode 100644 src/IGESSelect/IGESSelect_ChangeLevelNumber.cdl create mode 100644 src/IGESSelect/IGESSelect_ChangeLevelNumber.hxx delete mode 100644 src/IGESSelect/IGESSelect_ComputeStatus.cdl create mode 100644 src/IGESSelect/IGESSelect_ComputeStatus.hxx delete mode 100644 src/IGESSelect/IGESSelect_CounterOfLevelNumber.cdl create mode 100644 src/IGESSelect/IGESSelect_CounterOfLevelNumber.hxx delete mode 100644 src/IGESSelect/IGESSelect_DispPerDrawing.cdl create mode 100644 src/IGESSelect/IGESSelect_DispPerDrawing.hxx delete mode 100644 src/IGESSelect/IGESSelect_DispPerSingleView.cdl create mode 100644 src/IGESSelect/IGESSelect_DispPerSingleView.hxx delete mode 100644 src/IGESSelect/IGESSelect_Dumper.cdl create mode 100644 src/IGESSelect/IGESSelect_Dumper.hxx delete mode 100644 src/IGESSelect/IGESSelect_EditDirPart.cdl create mode 100644 src/IGESSelect/IGESSelect_EditDirPart.hxx delete mode 100644 src/IGESSelect/IGESSelect_EditHeader.cdl create mode 100644 src/IGESSelect/IGESSelect_EditHeader.hxx create mode 100644 src/IGESSelect/IGESSelect_FileModifier.hxx create mode 100644 src/IGESSelect/IGESSelect_FileModifier_0.cxx delete mode 100644 src/IGESSelect/IGESSelect_FloatFormat.cdl create mode 100644 src/IGESSelect/IGESSelect_FloatFormat.hxx delete mode 100644 src/IGESSelect/IGESSelect_IGESName.cdl create mode 100644 src/IGESSelect/IGESSelect_IGESName.hxx delete mode 100644 src/IGESSelect/IGESSelect_IGESTypeForm.cdl create mode 100644 src/IGESSelect/IGESSelect_IGESTypeForm.hxx create mode 100644 src/IGESSelect/IGESSelect_ModelModifier.hxx create mode 100644 src/IGESSelect/IGESSelect_ModelModifier_0.cxx delete mode 100644 src/IGESSelect/IGESSelect_RebuildDrawings.cdl create mode 100644 src/IGESSelect/IGESSelect_RebuildDrawings.hxx delete mode 100644 src/IGESSelect/IGESSelect_RebuildGroups.cdl create mode 100644 src/IGESSelect/IGESSelect_RebuildGroups.hxx delete mode 100644 src/IGESSelect/IGESSelect_RemoveCurves.cdl create mode 100644 src/IGESSelect/IGESSelect_RemoveCurves.hxx delete mode 100644 src/IGESSelect/IGESSelect_SelectBasicGeom.cdl create mode 100644 src/IGESSelect/IGESSelect_SelectBasicGeom.hxx delete mode 100644 src/IGESSelect/IGESSelect_SelectBypassGroup.cdl create mode 100644 src/IGESSelect/IGESSelect_SelectBypassGroup.hxx delete mode 100644 src/IGESSelect/IGESSelect_SelectBypassSubfigure.cdl create mode 100644 src/IGESSelect/IGESSelect_SelectBypassSubfigure.hxx delete mode 100644 src/IGESSelect/IGESSelect_SelectDrawingFrom.cdl create mode 100644 src/IGESSelect/IGESSelect_SelectDrawingFrom.hxx delete mode 100644 src/IGESSelect/IGESSelect_SelectFaces.cdl create mode 100644 src/IGESSelect/IGESSelect_SelectFaces.hxx delete mode 100644 src/IGESSelect/IGESSelect_SelectFromDrawing.cdl create mode 100644 src/IGESSelect/IGESSelect_SelectFromDrawing.hxx delete mode 100644 src/IGESSelect/IGESSelect_SelectFromSingleView.cdl create mode 100644 src/IGESSelect/IGESSelect_SelectFromSingleView.hxx delete mode 100644 src/IGESSelect/IGESSelect_SelectLevelNumber.cdl create mode 100644 src/IGESSelect/IGESSelect_SelectLevelNumber.hxx delete mode 100644 src/IGESSelect/IGESSelect_SelectName.cdl create mode 100644 src/IGESSelect/IGESSelect_SelectName.hxx delete mode 100644 src/IGESSelect/IGESSelect_SelectPCurves.cdl create mode 100644 src/IGESSelect/IGESSelect_SelectPCurves.hxx delete mode 100644 src/IGESSelect/IGESSelect_SelectSingleViewFrom.cdl create mode 100644 src/IGESSelect/IGESSelect_SelectSingleViewFrom.hxx delete mode 100644 src/IGESSelect/IGESSelect_SelectSubordinate.cdl create mode 100644 src/IGESSelect/IGESSelect_SelectSubordinate.hxx delete mode 100644 src/IGESSelect/IGESSelect_SelectVisibleStatus.cdl create mode 100644 src/IGESSelect/IGESSelect_SelectVisibleStatus.hxx delete mode 100644 src/IGESSelect/IGESSelect_SetGlobalParameter.cdl create mode 100644 src/IGESSelect/IGESSelect_SetGlobalParameter.hxx delete mode 100644 src/IGESSelect/IGESSelect_SetLabel.cdl create mode 100644 src/IGESSelect/IGESSelect_SetLabel.hxx delete mode 100644 src/IGESSelect/IGESSelect_SetVersion5.cdl create mode 100644 src/IGESSelect/IGESSelect_SetVersion5.hxx delete mode 100644 src/IGESSelect/IGESSelect_SignColor.cdl create mode 100644 src/IGESSelect/IGESSelect_SignColor.hxx delete mode 100644 src/IGESSelect/IGESSelect_SignLevelNumber.cdl create mode 100644 src/IGESSelect/IGESSelect_SignLevelNumber.hxx delete mode 100644 src/IGESSelect/IGESSelect_SignStatus.cdl create mode 100644 src/IGESSelect/IGESSelect_SignStatus.hxx delete mode 100644 src/IGESSelect/IGESSelect_SplineToBSpline.cdl create mode 100644 src/IGESSelect/IGESSelect_SplineToBSpline.hxx delete mode 100644 src/IGESSelect/IGESSelect_UpdateCreationDate.cdl create mode 100644 src/IGESSelect/IGESSelect_UpdateCreationDate.hxx delete mode 100644 src/IGESSelect/IGESSelect_UpdateFileName.cdl create mode 100644 src/IGESSelect/IGESSelect_UpdateFileName.hxx delete mode 100644 src/IGESSelect/IGESSelect_UpdateLastChange.cdl create mode 100644 src/IGESSelect/IGESSelect_UpdateLastChange.hxx delete mode 100644 src/IGESSelect/IGESSelect_ViewSorter.cdl create mode 100644 src/IGESSelect/IGESSelect_ViewSorter.hxx delete mode 100644 src/IGESSelect/IGESSelect_WorkLibrary.cdl create mode 100644 src/IGESSelect/IGESSelect_WorkLibrary.hxx delete mode 100644 src/IGESSolid/IGESSolid.cdl create mode 100644 src/IGESSolid/IGESSolid.hxx delete mode 100644 src/IGESSolid/IGESSolid_Block.cdl create mode 100644 src/IGESSolid/IGESSolid_Block.hxx delete mode 100644 src/IGESSolid/IGESSolid_BooleanTree.cdl create mode 100644 src/IGESSolid/IGESSolid_BooleanTree.hxx delete mode 100644 src/IGESSolid/IGESSolid_CMPLRS.edl delete mode 100644 src/IGESSolid/IGESSolid_ConeFrustum.cdl create mode 100644 src/IGESSolid/IGESSolid_ConeFrustum.hxx delete mode 100644 src/IGESSolid/IGESSolid_ConicalSurface.cdl create mode 100644 src/IGESSolid/IGESSolid_ConicalSurface.hxx delete mode 100644 src/IGESSolid/IGESSolid_Cylinder.cdl create mode 100644 src/IGESSolid/IGESSolid_Cylinder.hxx delete mode 100644 src/IGESSolid/IGESSolid_CylindricalSurface.cdl create mode 100644 src/IGESSolid/IGESSolid_CylindricalSurface.hxx delete mode 100644 src/IGESSolid/IGESSolid_EdgeList.cdl create mode 100644 src/IGESSolid/IGESSolid_EdgeList.hxx delete mode 100644 src/IGESSolid/IGESSolid_Ellipsoid.cdl create mode 100644 src/IGESSolid/IGESSolid_Ellipsoid.hxx delete mode 100644 src/IGESSolid/IGESSolid_Face.cdl create mode 100644 src/IGESSolid/IGESSolid_Face.hxx delete mode 100644 src/IGESSolid/IGESSolid_GeneralModule.cdl create mode 100644 src/IGESSolid/IGESSolid_GeneralModule.hxx delete mode 100644 src/IGESSolid/IGESSolid_Loop.cdl create mode 100644 src/IGESSolid/IGESSolid_Loop.hxx delete mode 100644 src/IGESSolid/IGESSolid_ManifoldSolid.cdl create mode 100644 src/IGESSolid/IGESSolid_ManifoldSolid.hxx delete mode 100644 src/IGESSolid/IGESSolid_PlaneSurface.cdl create mode 100644 src/IGESSolid/IGESSolid_PlaneSurface.hxx delete mode 100644 src/IGESSolid/IGESSolid_Protocol.cdl create mode 100644 src/IGESSolid/IGESSolid_Protocol.hxx delete mode 100644 src/IGESSolid/IGESSolid_ReadWriteModule.cdl create mode 100644 src/IGESSolid/IGESSolid_ReadWriteModule.hxx delete mode 100644 src/IGESSolid/IGESSolid_RightAngularWedge.cdl create mode 100644 src/IGESSolid/IGESSolid_RightAngularWedge.hxx delete mode 100644 src/IGESSolid/IGESSolid_SelectedComponent.cdl create mode 100644 src/IGESSolid/IGESSolid_SelectedComponent.hxx delete mode 100644 src/IGESSolid/IGESSolid_Shell.cdl create mode 100644 src/IGESSolid/IGESSolid_Shell.hxx delete mode 100644 src/IGESSolid/IGESSolid_SolidAssembly.cdl create mode 100644 src/IGESSolid/IGESSolid_SolidAssembly.hxx delete mode 100644 src/IGESSolid/IGESSolid_SolidInstance.cdl create mode 100644 src/IGESSolid/IGESSolid_SolidInstance.hxx delete mode 100644 src/IGESSolid/IGESSolid_SolidOfLinearExtrusion.cdl create mode 100644 src/IGESSolid/IGESSolid_SolidOfLinearExtrusion.hxx delete mode 100644 src/IGESSolid/IGESSolid_SolidOfRevolution.cdl create mode 100644 src/IGESSolid/IGESSolid_SolidOfRevolution.hxx delete mode 100644 src/IGESSolid/IGESSolid_SpecificModule.cdl create mode 100644 src/IGESSolid/IGESSolid_SpecificModule.hxx delete mode 100644 src/IGESSolid/IGESSolid_Sphere.cdl create mode 100644 src/IGESSolid/IGESSolid_Sphere.hxx delete mode 100644 src/IGESSolid/IGESSolid_SphericalSurface.cdl create mode 100644 src/IGESSolid/IGESSolid_SphericalSurface.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolBlock.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolBlock.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolBooleanTree.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolBooleanTree.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolConeFrustum.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolConeFrustum.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolConicalSurface.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolConicalSurface.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolCylinder.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolCylinder.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolCylindricalSurface.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolCylindricalSurface.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolEdgeList.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolEdgeList.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolEllipsoid.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolEllipsoid.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolFace.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolFace.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolLoop.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolLoop.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolManifoldSolid.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolManifoldSolid.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolPlaneSurface.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolPlaneSurface.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolRightAngularWedge.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolRightAngularWedge.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolSelectedComponent.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolSelectedComponent.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolShell.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolShell.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolSolidAssembly.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolSolidAssembly.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolSolidInstance.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolSolidInstance.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolSolidOfLinearExtrusion.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolSolidOfLinearExtrusion.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolSolidOfRevolution.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolSolidOfRevolution.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolSphere.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolSphere.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolSphericalSurface.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolSphericalSurface.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolToroidalSurface.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolToroidalSurface.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolTorus.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolTorus.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToolVertexList.cdl create mode 100644 src/IGESSolid/IGESSolid_ToolVertexList.hxx delete mode 100644 src/IGESSolid/IGESSolid_TopoBuilder.cdl create mode 100644 src/IGESSolid/IGESSolid_TopoBuilder.hxx delete mode 100644 src/IGESSolid/IGESSolid_ToroidalSurface.cdl create mode 100644 src/IGESSolid/IGESSolid_ToroidalSurface.hxx delete mode 100644 src/IGESSolid/IGESSolid_Torus.cdl create mode 100644 src/IGESSolid/IGESSolid_Torus.hxx delete mode 100644 src/IGESSolid/IGESSolid_VertexList.cdl create mode 100644 src/IGESSolid/IGESSolid_VertexList.hxx create mode 100644 src/IGESToBRep/FILES delete mode 100644 src/IGESToBRep/IGESToBRep.cdl create mode 100644 src/IGESToBRep/IGESToBRep.hxx delete mode 100644 src/IGESToBRep/IGESToBRep_Actor.cdl create mode 100644 src/IGESToBRep/IGESToBRep_Actor.hxx delete mode 100644 src/IGESToBRep/IGESToBRep_AlgoContainer.cdl create mode 100644 src/IGESToBRep/IGESToBRep_AlgoContainer.hxx delete mode 100644 src/IGESToBRep/IGESToBRep_BRepEntity.cdl create mode 100644 src/IGESToBRep/IGESToBRep_BRepEntity.hxx delete mode 100644 src/IGESToBRep/IGESToBRep_BasicCurve.cdl create mode 100644 src/IGESToBRep/IGESToBRep_BasicCurve.hxx delete mode 100644 src/IGESToBRep/IGESToBRep_BasicSurface.cdl create mode 100644 src/IGESToBRep/IGESToBRep_BasicSurface.hxx delete mode 100644 src/IGESToBRep/IGESToBRep_CurveAndSurface.cdl create mode 100644 src/IGESToBRep/IGESToBRep_CurveAndSurface.hxx delete mode 100644 src/IGESToBRep/IGESToBRep_IGESBoundary.cdl create mode 100644 src/IGESToBRep/IGESToBRep_IGESBoundary.hxx delete mode 100644 src/IGESToBRep/IGESToBRep_Reader.cdl create mode 100644 src/IGESToBRep/IGESToBRep_Reader.hxx delete mode 100644 src/IGESToBRep/IGESToBRep_ToolContainer.cdl create mode 100644 src/IGESToBRep/IGESToBRep_ToolContainer.hxx delete mode 100644 src/IGESToBRep/IGESToBRep_TopoCurve.cdl create mode 100644 src/IGESToBRep/IGESToBRep_TopoCurve.hxx delete mode 100644 src/IGESToBRep/IGESToBRep_TopoSurface.cdl create mode 100644 src/IGESToBRep/IGESToBRep_TopoSurface.hxx delete mode 100644 src/IVtkVTK/IVtkVTK_CMPLRS.edl delete mode 100644 src/Image/Image.cdl delete mode 100644 src/IntAna/IntAna.cdl delete mode 100644 src/IntAna/IntAna_Curve.cdl create mode 100644 src/IntAna/IntAna_Curve.hxx delete mode 100644 src/IntAna/IntAna_Int3Pln.cdl create mode 100644 src/IntAna/IntAna_Int3Pln.hxx delete mode 100644 src/IntAna/IntAna_IntConicQuad.cdl create mode 100644 src/IntAna/IntAna_IntConicQuad.hxx delete mode 100644 src/IntAna/IntAna_IntLinTorus.cdl create mode 100644 src/IntAna/IntAna_IntLinTorus.hxx delete mode 100644 src/IntAna/IntAna_IntQuadQuad.cdl create mode 100644 src/IntAna/IntAna_IntQuadQuad.hxx delete mode 100644 src/IntAna/IntAna_QuadQuadGeo.cdl create mode 100644 src/IntAna/IntAna_QuadQuadGeo.hxx delete mode 100644 src/IntAna/IntAna_Quadric.cdl create mode 100644 src/IntAna/IntAna_Quadric.hxx create mode 100644 src/IntAna/IntAna_ResultType.hxx delete mode 100644 src/IntAna2d/IntAna2d.cdl delete mode 100644 src/IntAna2d/IntAna2d_AnaIntersection.cdl create mode 100644 src/IntAna2d/IntAna2d_AnaIntersection.hxx delete mode 100644 src/IntAna2d/IntAna2d_Conic.cdl create mode 100644 src/IntAna2d/IntAna2d_Conic.hxx delete mode 100644 src/IntAna2d/IntAna2d_IntPoint.cdl create mode 100644 src/IntAna2d/IntAna2d_IntPoint.hxx delete mode 100644 src/IntCurve/IntCurve.cdl delete mode 100644 src/IntCurve/IntCurve_DistBetweenPCurvesGen.cdl delete mode 100644 src/IntCurve/IntCurve_IConicTool.cdl create mode 100644 src/IntCurve/IntCurve_IConicTool.hxx delete mode 100644 src/IntCurve/IntCurve_IntConicConic.cdl create mode 100644 src/IntCurve/IntCurve_IntConicConic.hxx delete mode 100644 src/IntCurve/IntCurve_IntConicCurveGen.cdl delete mode 100644 src/IntCurve/IntCurve_IntCurveCurveGen.cdl create mode 100644 src/IntCurve/IntCurve_IntImpConicParConic.hxx create mode 100644 src/IntCurve/IntCurve_IntImpConicParConic_0.cxx delete mode 100644 src/IntCurve/IntCurve_IntPolyPolyGen.cdl create mode 100644 src/IntCurve/IntCurve_MyImpParToolOfIntImpConicParConic.hxx create mode 100644 src/IntCurve/IntCurve_MyImpParToolOfIntImpConicParConic_0.cxx delete mode 100644 src/IntCurve/IntCurve_PConic.cdl create mode 100644 src/IntCurve/IntCurve_PConic.hxx delete mode 100644 src/IntCurve/IntCurve_PConicTool.cdl create mode 100644 src/IntCurve/IntCurve_PConicTool.hxx delete mode 100644 src/IntCurve/IntCurve_Polygon2dGen.cdl delete mode 100644 src/IntCurve/IntCurve_ProjPCurGen.cdl delete mode 100644 src/IntCurve/IntCurve_ProjectOnPConicTool.cdl create mode 100644 src/IntCurve/IntCurve_ProjectOnPConicTool.hxx delete mode 100644 src/IntCurve/IntCurve_UserIntConicCurveGen.cdl delete mode 100644 src/IntCurveSurface/IntCurveSurface.cdl delete mode 100644 src/IntCurveSurface/IntCurveSurface_HCurveTool.cdl create mode 100644 src/IntCurveSurface/IntCurveSurface_HInter.hxx create mode 100644 src/IntCurveSurface/IntCurveSurface_HInter_0.cxx delete mode 100644 src/IntCurveSurface/IntCurveSurface_Inter.cdl delete mode 100644 src/IntCurveSurface/IntCurveSurface_Intersection.cdl create mode 100644 src/IntCurveSurface/IntCurveSurface_Intersection.hxx delete mode 100644 src/IntCurveSurface/IntCurveSurface_IntersectionPoint.cdl create mode 100644 src/IntCurveSurface/IntCurveSurface_IntersectionPoint.hxx delete mode 100644 src/IntCurveSurface/IntCurveSurface_IntersectionSegment.cdl create mode 100644 src/IntCurveSurface/IntCurveSurface_IntersectionSegment.hxx delete mode 100644 src/IntCurveSurface/IntCurveSurface_Polygon.cdl delete mode 100644 src/IntCurveSurface/IntCurveSurface_PolygonTool.cdl delete mode 100644 src/IntCurveSurface/IntCurveSurface_Polyhedron.cdl delete mode 100644 src/IntCurveSurface/IntCurveSurface_PolyhedronTool.cdl delete mode 100644 src/IntCurveSurface/IntCurveSurface_QuadricCurveExactInter.cdl delete mode 100644 src/IntCurveSurface/IntCurveSurface_QuadricCurveFunc.cdl create mode 100644 src/IntCurveSurface/IntCurveSurface_TheCSFunctionOfHInter.hxx create mode 100644 src/IntCurveSurface/IntCurveSurface_TheCSFunctionOfHInter_0.cxx create mode 100644 src/IntCurveSurface/IntCurveSurface_TheExactHInter.hxx create mode 100644 src/IntCurveSurface/IntCurveSurface_TheExactHInter_0.cxx create mode 100644 src/IntCurveSurface/IntCurveSurface_TheHCurveTool.hxx create mode 100644 src/IntCurveSurface/IntCurveSurface_TheHCurveTool_0.cxx create mode 100644 src/IntCurveSurface/IntCurveSurface_TheInterferenceOfHInter.hxx create mode 100644 src/IntCurveSurface/IntCurveSurface_TheInterferenceOfHInter_0.cxx create mode 100644 src/IntCurveSurface/IntCurveSurface_ThePolygonOfHInter.hxx create mode 100644 src/IntCurveSurface/IntCurveSurface_ThePolygonOfHInter_0.cxx create mode 100644 src/IntCurveSurface/IntCurveSurface_ThePolygonToolOfHInter.hxx create mode 100644 src/IntCurveSurface/IntCurveSurface_ThePolygonToolOfHInter_0.cxx create mode 100644 src/IntCurveSurface/IntCurveSurface_ThePolyhedronOfHInter.hxx create mode 100644 src/IntCurveSurface/IntCurveSurface_ThePolyhedronOfHInter_0.cxx create mode 100644 src/IntCurveSurface/IntCurveSurface_ThePolyhedronToolOfHInter.hxx create mode 100644 src/IntCurveSurface/IntCurveSurface_ThePolyhedronToolOfHInter_0.cxx create mode 100644 src/IntCurveSurface/IntCurveSurface_TheQuadCurvExactHInter.hxx create mode 100644 src/IntCurveSurface/IntCurveSurface_TheQuadCurvExactHInter_0.cxx create mode 100644 src/IntCurveSurface/IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter.hxx create mode 100644 src/IntCurveSurface/IntCurveSurface_TheQuadCurvFuncOfTheQuadCurvExactHInter_0.cxx create mode 100644 src/IntCurveSurface/IntCurveSurface_TransitionOnCurve.hxx create mode 100644 src/IntCurvesFace/FILES delete mode 100644 src/IntCurvesFace/IntCurvesFace.cdl delete mode 100644 src/IntCurvesFace/IntCurvesFace_Intersector.cdl create mode 100644 src/IntCurvesFace/IntCurvesFace_Intersector.hxx delete mode 100644 src/IntCurvesFace/IntCurvesFace_ShapeIntersector.cdl create mode 100644 src/IntCurvesFace/IntCurvesFace_ShapeIntersector.hxx delete mode 100644 src/IntImp/IntImp.cdl create mode 100644 src/IntImp/IntImp_ConstIsoparametric.hxx delete mode 100644 src/IntImp/IntImp_Int2S.cdl delete mode 100644 src/IntImp/IntImp_IntCS.cdl delete mode 100644 src/IntImp/IntImp_ZerCSParFunc.cdl delete mode 100644 src/IntImp/IntImp_ZerImpFunc.cdl delete mode 100644 src/IntImp/IntImp_ZerParFunc.cdl delete mode 100644 src/IntImpParGen/IntImpParGen.cdl create mode 100644 src/IntImpParGen/IntImpParGen.hxx delete mode 100644 src/IntImpParGen/IntImpParGen_ImpParTool.cdl delete mode 100644 src/IntImpParGen/IntImpParGen_ImpTool.cdl create mode 100644 src/IntImpParGen/IntImpParGen_ImpTool.hxx delete mode 100644 src/IntImpParGen/IntImpParGen_Intersector.cdl delete mode 100644 src/IntPatch/IntPatch.cdl delete mode 100644 src/IntPatch/IntPatch_ALine.cdl create mode 100644 src/IntPatch/IntPatch_ALine.hxx delete mode 100644 src/IntPatch/IntPatch_ALineToWLine.cdl create mode 100644 src/IntPatch/IntPatch_ALineToWLine.hxx delete mode 100644 src/IntPatch/IntPatch_ArcFunction.cdl create mode 100644 src/IntPatch/IntPatch_ArcFunction.hxx delete mode 100644 src/IntPatch/IntPatch_CSFunction.cdl create mode 100644 src/IntPatch/IntPatch_CSFunction.hxx create mode 100644 src/IntPatch/IntPatch_CurvIntSurf.hxx create mode 100644 src/IntPatch/IntPatch_CurvIntSurf_0.cxx delete mode 100644 src/IntPatch/IntPatch_GLine.cdl create mode 100644 src/IntPatch/IntPatch_GLine.hxx delete mode 100644 src/IntPatch/IntPatch_HCurve2dTool.cdl create mode 100644 src/IntPatch/IntPatch_HCurve2dTool.hxx delete mode 100644 src/IntPatch/IntPatch_HInterTool.cdl create mode 100644 src/IntPatch/IntPatch_HInterTool.hxx create mode 100644 src/IntPatch/IntPatch_IType.hxx delete mode 100644 src/IntPatch/IntPatch_ImpImpIntersection.cdl create mode 100644 src/IntPatch/IntPatch_ImpImpIntersection.hxx delete mode 100644 src/IntPatch/IntPatch_ImpPrmIntersection.cdl create mode 100644 src/IntPatch/IntPatch_ImpPrmIntersection.hxx delete mode 100644 src/IntPatch/IntPatch_InterferencePolyhedron.cdl create mode 100644 src/IntPatch/IntPatch_InterferencePolyhedron.hxx delete mode 100644 src/IntPatch/IntPatch_Intersection.cdl create mode 100644 src/IntPatch/IntPatch_Intersection.hxx delete mode 100644 src/IntPatch/IntPatch_Line.cdl create mode 100644 src/IntPatch/IntPatch_Line.hxx delete mode 100644 src/IntPatch/IntPatch_LineConstructor.cdl create mode 100644 src/IntPatch/IntPatch_LineConstructor.hxx delete mode 100644 src/IntPatch/IntPatch_Point.cdl create mode 100644 src/IntPatch/IntPatch_Point.hxx delete mode 100644 src/IntPatch/IntPatch_PointLine.cdl create mode 100644 src/IntPatch/IntPatch_PointLine.hxx delete mode 100644 src/IntPatch/IntPatch_PolyArc.cdl create mode 100644 src/IntPatch/IntPatch_PolyArc.hxx delete mode 100644 src/IntPatch/IntPatch_PolyLine.cdl create mode 100644 src/IntPatch/IntPatch_PolyLine.hxx delete mode 100644 src/IntPatch/IntPatch_Polygo.cdl create mode 100644 src/IntPatch/IntPatch_Polygo.hxx delete mode 100644 src/IntPatch/IntPatch_Polyhedron.cdl create mode 100644 src/IntPatch/IntPatch_Polyhedron.hxx delete mode 100644 src/IntPatch/IntPatch_PolyhedronTool.cdl create mode 100644 src/IntPatch/IntPatch_PolyhedronTool.hxx delete mode 100644 src/IntPatch/IntPatch_PrmPrmIntersection.cdl create mode 100644 src/IntPatch/IntPatch_PrmPrmIntersection.hxx delete mode 100644 src/IntPatch/IntPatch_PrmPrmIntersection_T3Bits.cdl create mode 100644 src/IntPatch/IntPatch_PrmPrmIntersection_T3Bits.hxx delete mode 100644 src/IntPatch/IntPatch_RLine.cdl create mode 100644 src/IntPatch/IntPatch_RLine.hxx delete mode 100644 src/IntPatch/IntPatch_RstInt.cdl create mode 100644 src/IntPatch/IntPatch_RstInt.hxx create mode 100644 src/IntPatch/IntPatch_SearchPnt.hxx create mode 100644 src/IntPatch/IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking.hxx create mode 100644 src/IntPatch/IntPatch_SequenceNodeOfSequenceOfIWLineOfTheIWalking_0.cxx create mode 100644 src/IntPatch/IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds.hxx create mode 100644 src/IntPatch/IntPatch_SequenceNodeOfSequenceOfPathPointOfTheSOnBounds_0.cxx create mode 100644 src/IntPatch/IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds.hxx create mode 100644 src/IntPatch/IntPatch_SequenceNodeOfSequenceOfSegmentOfTheSOnBounds_0.cxx create mode 100644 src/IntPatch/IntPatch_SequenceOfIWLineOfTheIWalking.hxx create mode 100644 src/IntPatch/IntPatch_SequenceOfIWLineOfTheIWalking_0.cxx create mode 100644 src/IntPatch/IntPatch_SequenceOfPathPointOfTheSOnBounds.hxx create mode 100644 src/IntPatch/IntPatch_SequenceOfPathPointOfTheSOnBounds_0.cxx create mode 100644 src/IntPatch/IntPatch_SequenceOfSegmentOfTheSOnBounds.hxx create mode 100644 src/IntPatch/IntPatch_SequenceOfSegmentOfTheSOnBounds_0.cxx create mode 100644 src/IntPatch/IntPatch_TheIWLineOfTheIWalking.hxx create mode 100644 src/IntPatch/IntPatch_TheIWLineOfTheIWalking_0.cxx create mode 100644 src/IntPatch/IntPatch_TheIWalking.hxx create mode 100644 src/IntPatch/IntPatch_TheIWalking_0.cxx create mode 100644 src/IntPatch/IntPatch_ThePathPointOfTheSOnBounds.hxx create mode 100644 src/IntPatch/IntPatch_ThePathPointOfTheSOnBounds_0.cxx create mode 100644 src/IntPatch/IntPatch_TheSOnBounds.hxx create mode 100644 src/IntPatch/IntPatch_TheSOnBounds_0.cxx create mode 100644 src/IntPatch/IntPatch_TheSearchInside.hxx create mode 100644 src/IntPatch/IntPatch_TheSearchInside_0.cxx create mode 100644 src/IntPatch/IntPatch_TheSegmentOfTheSOnBounds.hxx create mode 100644 src/IntPatch/IntPatch_TheSegmentOfTheSOnBounds_0.cxx create mode 100644 src/IntPatch/IntPatch_TheSurfFunction.hxx create mode 100644 src/IntPatch/IntPatch_TheSurfFunction_0.cxx delete mode 100644 src/IntPatch/IntPatch_WLine.cdl create mode 100644 src/IntPatch/IntPatch_WLine.hxx delete mode 100644 src/IntPolyh/IntPolyh.cdl delete mode 100644 src/IntPolyh/IntPolyh_Couple.cdl create mode 100644 src/IntPolyh/IntPolyh_Couple.hxx delete mode 100644 src/IntPolyh/IntPolyh_Edge.cdl create mode 100644 src/IntPolyh/IntPolyh_Edge.hxx delete mode 100644 src/IntPolyh/IntPolyh_Intersection.cdl create mode 100644 src/IntPolyh/IntPolyh_Intersection.hxx delete mode 100644 src/IntPolyh/IntPolyh_MaillageAffinage.cdl create mode 100644 src/IntPolyh/IntPolyh_MaillageAffinage.hxx create mode 100644 src/IntPolyh/IntPolyh_PMaillageAffinage.hxx delete mode 100644 src/IntPolyh/IntPolyh_Point.cdl create mode 100644 src/IntPolyh/IntPolyh_Point.hxx delete mode 100644 src/IntPolyh/IntPolyh_SectionLine.cdl create mode 100644 src/IntPolyh/IntPolyh_SectionLine.hxx delete mode 100644 src/IntPolyh/IntPolyh_StartPoint.cdl create mode 100644 src/IntPolyh/IntPolyh_StartPoint.hxx delete mode 100644 src/IntPolyh/IntPolyh_Triangle.cdl create mode 100644 src/IntPolyh/IntPolyh_Triangle.hxx delete mode 100644 src/IntRes2d/IntRes2d.cdl delete mode 100644 src/IntRes2d/IntRes2d_Domain.cdl create mode 100644 src/IntRes2d/IntRes2d_Domain.hxx delete mode 100644 src/IntRes2d/IntRes2d_Intersection.cdl create mode 100644 src/IntRes2d/IntRes2d_Intersection.hxx delete mode 100644 src/IntRes2d/IntRes2d_IntersectionPoint.cdl create mode 100644 src/IntRes2d/IntRes2d_IntersectionPoint.hxx delete mode 100644 src/IntRes2d/IntRes2d_IntersectionSegment.cdl create mode 100644 src/IntRes2d/IntRes2d_IntersectionSegment.hxx create mode 100644 src/IntRes2d/IntRes2d_Position.hxx create mode 100644 src/IntRes2d/IntRes2d_Situation.hxx delete mode 100644 src/IntRes2d/IntRes2d_Transition.cdl create mode 100644 src/IntRes2d/IntRes2d_Transition.hxx create mode 100644 src/IntRes2d/IntRes2d_TypeTrans.hxx create mode 100644 src/IntStart/FILES delete mode 100644 src/IntStart/IntStart.cdl delete mode 100644 src/IntStart/IntStart_PathPoint.cdl delete mode 100644 src/IntStart/IntStart_SITopolTool.cdl create mode 100644 src/IntStart/IntStart_SITopolTool.hxx delete mode 100644 src/IntStart/IntStart_SearchInside.cdl delete mode 100644 src/IntStart/IntStart_SearchOnBoundaries.cdl delete mode 100644 src/IntStart/IntStart_Segment.cdl delete mode 100644 src/IntSurf/IntSurf.cdl create mode 100644 src/IntSurf/IntSurf.hxx delete mode 100644 src/IntSurf/IntSurf_Couple.cdl create mode 100644 src/IntSurf/IntSurf_Couple.hxx delete mode 100644 src/IntSurf/IntSurf_InteriorPoint.cdl create mode 100644 src/IntSurf/IntSurf_InteriorPoint.hxx delete mode 100644 src/IntSurf/IntSurf_InteriorPointTool.cdl create mode 100644 src/IntSurf/IntSurf_InteriorPointTool.hxx delete mode 100644 src/IntSurf/IntSurf_LineOn2S.cdl create mode 100644 src/IntSurf/IntSurf_LineOn2S.hxx delete mode 100644 src/IntSurf/IntSurf_PathPoint.cdl create mode 100644 src/IntSurf/IntSurf_PathPoint.hxx delete mode 100644 src/IntSurf/IntSurf_PathPointTool.cdl create mode 100644 src/IntSurf/IntSurf_PathPointTool.hxx delete mode 100644 src/IntSurf/IntSurf_PntOn2S.cdl create mode 100644 src/IntSurf/IntSurf_PntOn2S.hxx delete mode 100644 src/IntSurf/IntSurf_Quadric.cdl create mode 100644 src/IntSurf/IntSurf_Quadric.hxx delete mode 100644 src/IntSurf/IntSurf_QuadricTool.cdl create mode 100644 src/IntSurf/IntSurf_QuadricTool.hxx create mode 100644 src/IntSurf/IntSurf_Situation.hxx delete mode 100644 src/IntSurf/IntSurf_Transition.cdl create mode 100644 src/IntSurf/IntSurf_Transition.hxx create mode 100644 src/IntSurf/IntSurf_TypeTrans.hxx delete mode 100644 src/IntTools/IntTools.cdl create mode 100644 src/IntTools/IntTools.hxx delete mode 100644 src/IntTools/IntTools_BaseRangeSample.cdl create mode 100644 src/IntTools/IntTools_BaseRangeSample.hxx delete mode 100644 src/IntTools/IntTools_BeanFaceIntersector.cdl create mode 100644 src/IntTools/IntTools_BeanFaceIntersector.hxx delete mode 100644 src/IntTools/IntTools_CArray1.cdl create mode 100644 src/IntTools/IntTools_CArray1OfInteger.hxx create mode 100644 src/IntTools/IntTools_CArray1OfInteger_0.cxx create mode 100644 src/IntTools/IntTools_CArray1OfReal.hxx create mode 100644 src/IntTools/IntTools_CArray1OfReal_0.cxx delete mode 100644 src/IntTools/IntTools_CommonPrt.cdl create mode 100644 src/IntTools/IntTools_CommonPrt.hxx delete mode 100644 src/IntTools/IntTools_Context.cdl create mode 100644 src/IntTools/IntTools_Context.hxx delete mode 100644 src/IntTools/IntTools_Curve.cdl create mode 100644 src/IntTools/IntTools_Curve.hxx delete mode 100644 src/IntTools/IntTools_CurveRangeLocalizeData.cdl create mode 100644 src/IntTools/IntTools_CurveRangeLocalizeData.hxx delete mode 100644 src/IntTools/IntTools_CurveRangeSample.cdl create mode 100644 src/IntTools/IntTools_CurveRangeSample.hxx delete mode 100644 src/IntTools/IntTools_CurveRangeSampleMapHasher.cdl create mode 100644 src/IntTools/IntTools_CurveRangeSampleMapHasher.hxx delete mode 100644 src/IntTools/IntTools_EdgeEdge.cdl create mode 100644 src/IntTools/IntTools_EdgeEdge.hxx delete mode 100644 src/IntTools/IntTools_EdgeFace.cdl create mode 100644 src/IntTools/IntTools_EdgeFace.hxx delete mode 100644 src/IntTools/IntTools_FClass2d.cdl create mode 100644 src/IntTools/IntTools_FClass2d.hxx delete mode 100644 src/IntTools/IntTools_FaceFace.cdl create mode 100644 src/IntTools/IntTools_FaceFace.hxx delete mode 100644 src/IntTools/IntTools_MarkedRangeSet.cdl create mode 100644 src/IntTools/IntTools_MarkedRangeSet.hxx delete mode 100644 src/IntTools/IntTools_PntOn2Faces.cdl create mode 100644 src/IntTools/IntTools_PntOn2Faces.hxx delete mode 100644 src/IntTools/IntTools_PntOnFace.cdl create mode 100644 src/IntTools/IntTools_PntOnFace.hxx delete mode 100644 src/IntTools/IntTools_Range.cdl create mode 100644 src/IntTools/IntTools_Range.hxx delete mode 100644 src/IntTools/IntTools_Root.cdl create mode 100644 src/IntTools/IntTools_Root.hxx delete mode 100644 src/IntTools/IntTools_ShrunkRange.cdl create mode 100644 src/IntTools/IntTools_ShrunkRange.hxx delete mode 100644 src/IntTools/IntTools_SurfaceRangeLocalizeData.cdl create mode 100644 src/IntTools/IntTools_SurfaceRangeLocalizeData.hxx delete mode 100644 src/IntTools/IntTools_SurfaceRangeSample.cdl create mode 100644 src/IntTools/IntTools_SurfaceRangeSample.hxx delete mode 100644 src/IntTools/IntTools_SurfaceRangeSampleMapHasher.cdl create mode 100644 src/IntTools/IntTools_SurfaceRangeSampleMapHasher.hxx delete mode 100644 src/IntTools/IntTools_Tools.cdl create mode 100644 src/IntTools/IntTools_Tools.hxx delete mode 100644 src/IntTools/IntTools_TopolTool.cdl create mode 100644 src/IntTools/IntTools_TopolTool.hxx delete mode 100644 src/IntWalk/IntWalk.cdl delete mode 100644 src/IntWalk/IntWalk_IWLine.cdl delete mode 100644 src/IntWalk/IntWalk_IWalking.cdl delete mode 100644 src/IntWalk/IntWalk_PWalking.cdl create mode 100644 src/IntWalk/IntWalk_PWalking.hxx create mode 100644 src/IntWalk/IntWalk_StatusDeflection.hxx create mode 100644 src/IntWalk/IntWalk_TheFunctionOfTheInt2S.hxx create mode 100644 src/IntWalk/IntWalk_TheFunctionOfTheInt2S_0.cxx create mode 100644 src/IntWalk/IntWalk_TheInt2S.hxx create mode 100644 src/IntWalk/IntWalk_TheInt2S_0.cxx delete mode 100644 src/Interface/Interface.cdl delete mode 100644 src/Interface/Interface_BitMap.cdl create mode 100644 src/Interface/Interface_BitMap.hxx delete mode 100644 src/Interface/Interface_Category.cdl create mode 100644 src/Interface/Interface_Category.hxx delete mode 100644 src/Interface/Interface_Check.cdl create mode 100644 src/Interface/Interface_Check.hxx create mode 100644 src/Interface/Interface_CheckFailure.hxx delete mode 100644 src/Interface/Interface_CheckIterator.cdl create mode 100644 src/Interface/Interface_CheckIterator.hxx create mode 100644 src/Interface/Interface_CheckStatus.hxx delete mode 100644 src/Interface/Interface_CheckTool.cdl create mode 100644 src/Interface/Interface_CheckTool.hxx delete mode 100644 src/Interface/Interface_CopyControl.cdl create mode 100644 src/Interface/Interface_CopyControl.hxx delete mode 100644 src/Interface/Interface_CopyMap.cdl create mode 100644 src/Interface/Interface_CopyMap.hxx delete mode 100644 src/Interface/Interface_CopyTool.cdl create mode 100644 src/Interface/Interface_CopyTool.hxx create mode 100644 src/Interface/Interface_DataState.hxx delete mode 100644 src/Interface/Interface_EntityCluster.cdl create mode 100644 src/Interface/Interface_EntityCluster.hxx delete mode 100644 src/Interface/Interface_EntityIterator.cdl create mode 100644 src/Interface/Interface_EntityIterator.hxx delete mode 100644 src/Interface/Interface_EntityList.cdl create mode 100644 src/Interface/Interface_EntityList.hxx delete mode 100644 src/Interface/Interface_FileParameter.cdl create mode 100644 src/Interface/Interface_FileParameter.hxx delete mode 100644 src/Interface/Interface_FileReaderData.cdl create mode 100644 src/Interface/Interface_FileReaderData.hxx delete mode 100644 src/Interface/Interface_FileReaderTool.cdl create mode 100644 src/Interface/Interface_FileReaderTool.hxx delete mode 100644 src/Interface/Interface_FloatWriter.cdl create mode 100644 src/Interface/Interface_FloatWriter.hxx delete mode 100644 src/Interface/Interface_GTool.cdl create mode 100644 src/Interface/Interface_GTool.hxx create mode 100644 src/Interface/Interface_GeneralLib.hxx create mode 100644 src/Interface/Interface_GeneralLib_0.cxx delete mode 100644 src/Interface/Interface_GeneralModule.cdl create mode 100644 src/Interface/Interface_GeneralModule.hxx create mode 100644 src/Interface/Interface_GlobalNodeOfGeneralLib.hxx create mode 100644 src/Interface/Interface_GlobalNodeOfGeneralLib_0.cxx create mode 100644 src/Interface/Interface_GlobalNodeOfReaderLib.hxx create mode 100644 src/Interface/Interface_GlobalNodeOfReaderLib_0.cxx delete mode 100644 src/Interface/Interface_Graph.cdl create mode 100644 src/Interface/Interface_Graph.hxx delete mode 100644 src/Interface/Interface_GraphContent.cdl create mode 100644 src/Interface/Interface_GraphContent.hxx delete mode 100644 src/Interface/Interface_HGraph.cdl create mode 100644 src/Interface/Interface_HGraph.hxx delete mode 100644 src/Interface/Interface_IntList.cdl create mode 100644 src/Interface/Interface_IntList.hxx delete mode 100644 src/Interface/Interface_IntVal.cdl create mode 100644 src/Interface/Interface_IntVal.hxx create mode 100644 src/Interface/Interface_InterfaceError.hxx create mode 100644 src/Interface/Interface_InterfaceMismatch.hxx delete mode 100644 src/Interface/Interface_InterfaceModel.cdl create mode 100644 src/Interface/Interface_InterfaceModel.hxx delete mode 100644 src/Interface/Interface_JaggedArray.cdl delete mode 100644 src/Interface/Interface_LineBuffer.cdl create mode 100644 src/Interface/Interface_LineBuffer.hxx delete mode 100644 src/Interface/Interface_MSG.cdl create mode 100644 src/Interface/Interface_MSG.hxx delete mode 100644 src/Interface/Interface_MapAsciiStringHasher.cdl create mode 100644 src/Interface/Interface_MapAsciiStringHasher.hxx create mode 100644 src/Interface/Interface_NodeOfGeneralLib.hxx create mode 100644 src/Interface/Interface_NodeOfGeneralLib_0.cxx create mode 100644 src/Interface/Interface_NodeOfReaderLib.hxx create mode 100644 src/Interface/Interface_NodeOfReaderLib_0.cxx delete mode 100644 src/Interface/Interface_ParamList.cdl create mode 100644 src/Interface/Interface_ParamList.hxx delete mode 100644 src/Interface/Interface_ParamSet.cdl create mode 100644 src/Interface/Interface_ParamSet.hxx create mode 100644 src/Interface/Interface_ParamType.hxx delete mode 100644 src/Interface/Interface_Protocol.cdl create mode 100644 src/Interface/Interface_Protocol.hxx create mode 100644 src/Interface/Interface_ReaderLib.hxx create mode 100644 src/Interface/Interface_ReaderLib_0.cxx delete mode 100644 src/Interface/Interface_ReaderModule.cdl create mode 100644 src/Interface/Interface_ReaderModule.hxx delete mode 100644 src/Interface/Interface_Recognizer.cdl delete mode 100644 src/Interface/Interface_ReportEntity.cdl create mode 100644 src/Interface/Interface_ReportEntity.hxx delete mode 100644 src/Interface/Interface_STAT.cdl create mode 100644 src/Interface/Interface_STAT.hxx delete mode 100644 src/Interface/Interface_ShareFlags.cdl create mode 100644 src/Interface/Interface_ShareFlags.hxx delete mode 100644 src/Interface/Interface_ShareTool.cdl create mode 100644 src/Interface/Interface_ShareTool.hxx delete mode 100644 src/Interface/Interface_SignLabel.cdl create mode 100644 src/Interface/Interface_SignLabel.hxx delete mode 100644 src/Interface/Interface_SignType.cdl create mode 100644 src/Interface/Interface_SignType.hxx delete mode 100644 src/Interface/Interface_Static.cdl create mode 100644 src/Interface/Interface_Static.hxx delete mode 100644 src/Interface/Interface_TypedValue.cdl create mode 100644 src/Interface/Interface_TypedValue.hxx delete mode 100644 src/Interface/Interface_UndefinedContent.cdl create mode 100644 src/Interface/Interface_UndefinedContent.hxx delete mode 100644 src/Intf/Intf.cdl create mode 100644 src/Intf/Intf.hxx delete mode 100644 src/Intf/Intf_Interference.cdl create mode 100644 src/Intf/Intf_Interference.hxx delete mode 100644 src/Intf/Intf_InterferencePolygon2d.cdl create mode 100644 src/Intf/Intf_InterferencePolygon2d.hxx delete mode 100644 src/Intf/Intf_InterferencePolygonPolyhedron.cdl create mode 100644 src/Intf/Intf_PIType.hxx delete mode 100644 src/Intf/Intf_Polygon2d.cdl create mode 100644 src/Intf/Intf_Polygon2d.hxx delete mode 100644 src/Intf/Intf_SectionLine.cdl create mode 100644 src/Intf/Intf_SectionLine.hxx delete mode 100644 src/Intf/Intf_SectionPoint.cdl create mode 100644 src/Intf/Intf_SectionPoint.hxx delete mode 100644 src/Intf/Intf_TangentZone.cdl create mode 100644 src/Intf/Intf_TangentZone.hxx delete mode 100644 src/Intf/Intf_Tool.cdl create mode 100644 src/Intf/Intf_Tool.hxx delete mode 100644 src/Intrv/Intrv.cdl delete mode 100644 src/Intrv/Intrv_Interval.cdl create mode 100644 src/Intrv/Intrv_Interval.hxx delete mode 100644 src/Intrv/Intrv_Intervals.cdl create mode 100644 src/Intrv/Intrv_Intervals.hxx create mode 100644 src/Intrv/Intrv_Position.hxx delete mode 100644 src/LProp/LProp.cdl delete mode 100644 src/LProp/LProp_AnalyticCurInf.cdl create mode 100644 src/LProp/LProp_AnalyticCurInf.hxx create mode 100644 src/LProp/LProp_BadContinuity.hxx create mode 100644 src/LProp/LProp_CIType.hxx delete mode 100644 src/LProp/LProp_CLProps.cdl delete mode 100644 src/LProp/LProp_CurAndInf.cdl create mode 100644 src/LProp/LProp_CurAndInf.hxx create mode 100644 src/LProp/LProp_NotDefined.hxx delete mode 100644 src/LProp/LProp_SLProps.cdl create mode 100644 src/LProp/LProp_Status.hxx create mode 100644 src/LProp3d/FILES delete mode 100644 src/LProp3d/LProp3d.cdl create mode 100644 src/LProp3d/LProp3d_CLProps.hxx create mode 100644 src/LProp3d/LProp3d_CLProps_0.cxx delete mode 100644 src/LProp3d/LProp3d_CurveTool.cdl create mode 100644 src/LProp3d/LProp3d_CurveTool.hxx create mode 100644 src/LProp3d/LProp3d_SLProps.hxx create mode 100644 src/LProp3d/LProp3d_SLProps_0.cxx delete mode 100644 src/LProp3d/LProp3d_SurfaceTool.cdl create mode 100644 src/LProp3d/LProp3d_SurfaceTool.hxx delete mode 100644 src/Law/Law.cdl create mode 100644 src/Law/Law.hxx delete mode 100644 src/Law/Law_BSpFunc.cdl create mode 100644 src/Law/Law_BSpFunc.hxx delete mode 100644 src/Law/Law_BSpline.cdl create mode 100644 src/Law/Law_BSpline.hxx delete mode 100644 src/Law/Law_BSplineKnotSplitting.cdl create mode 100644 src/Law/Law_BSplineKnotSplitting.hxx delete mode 100644 src/Law/Law_Composite.cdl create mode 100644 src/Law/Law_Composite.hxx delete mode 100644 src/Law/Law_Constant.cdl create mode 100644 src/Law/Law_Constant.hxx delete mode 100644 src/Law/Law_Function.cdl create mode 100644 src/Law/Law_Function.hxx delete mode 100644 src/Law/Law_Interpol.cdl create mode 100644 src/Law/Law_Interpol.hxx delete mode 100644 src/Law/Law_Interpolate.cdl create mode 100644 src/Law/Law_Interpolate.hxx delete mode 100644 src/Law/Law_Linear.cdl create mode 100644 src/Law/Law_Linear.hxx delete mode 100644 src/Law/Law_S.cdl create mode 100644 src/Law/Law_S.hxx delete mode 100644 src/LibCtl/LibCtl.cdl delete mode 100644 src/LibCtl/LibCtl_Library.cdl delete mode 100644 src/LocOpe/LocOpe.cdl create mode 100644 src/LocOpe/LocOpe.hxx delete mode 100644 src/LocOpe/LocOpe_BuildShape.cdl create mode 100644 src/LocOpe/LocOpe_BuildShape.hxx delete mode 100644 src/LocOpe/LocOpe_BuildWires.cdl create mode 100644 src/LocOpe/LocOpe_BuildWires.hxx delete mode 100644 src/LocOpe/LocOpe_CSIntersector.cdl create mode 100644 src/LocOpe/LocOpe_CSIntersector.hxx delete mode 100644 src/LocOpe/LocOpe_CurveShapeIntersector.cdl create mode 100644 src/LocOpe/LocOpe_CurveShapeIntersector.hxx delete mode 100644 src/LocOpe/LocOpe_DPrism.cdl create mode 100644 src/LocOpe/LocOpe_DPrism.hxx delete mode 100644 src/LocOpe/LocOpe_FindEdges.cdl create mode 100644 src/LocOpe/LocOpe_FindEdges.hxx delete mode 100644 src/LocOpe/LocOpe_FindEdgesInFace.cdl create mode 100644 src/LocOpe/LocOpe_FindEdgesInFace.hxx delete mode 100644 src/LocOpe/LocOpe_GeneratedShape.cdl create mode 100644 src/LocOpe/LocOpe_GeneratedShape.hxx delete mode 100644 src/LocOpe/LocOpe_Generator.cdl create mode 100644 src/LocOpe/LocOpe_Generator.hxx delete mode 100644 src/LocOpe/LocOpe_GluedShape.cdl create mode 100644 src/LocOpe/LocOpe_GluedShape.hxx delete mode 100644 src/LocOpe/LocOpe_Gluer.cdl create mode 100644 src/LocOpe/LocOpe_Gluer.hxx delete mode 100644 src/LocOpe/LocOpe_HBuilder.cdl create mode 100644 src/LocOpe/LocOpe_HBuilder.hxx delete mode 100644 src/LocOpe/LocOpe_LinearForm.cdl create mode 100644 src/LocOpe/LocOpe_LinearForm.hxx create mode 100644 src/LocOpe/LocOpe_Operation.hxx delete mode 100644 src/LocOpe/LocOpe_Pipe.cdl create mode 100644 src/LocOpe/LocOpe_Pipe.hxx delete mode 100644 src/LocOpe/LocOpe_PntFace.cdl create mode 100644 src/LocOpe/LocOpe_PntFace.hxx delete mode 100644 src/LocOpe/LocOpe_Prism.cdl create mode 100644 src/LocOpe/LocOpe_Prism.hxx delete mode 100644 src/LocOpe/LocOpe_Revol.cdl create mode 100644 src/LocOpe/LocOpe_Revol.hxx delete mode 100644 src/LocOpe/LocOpe_RevolutionForm.cdl create mode 100644 src/LocOpe/LocOpe_RevolutionForm.hxx delete mode 100644 src/LocOpe/LocOpe_SplitDrafts.cdl create mode 100644 src/LocOpe/LocOpe_SplitDrafts.hxx delete mode 100644 src/LocOpe/LocOpe_SplitShape.cdl create mode 100644 src/LocOpe/LocOpe_SplitShape.hxx delete mode 100644 src/LocOpe/LocOpe_Spliter.cdl create mode 100644 src/LocOpe/LocOpe_Spliter.hxx delete mode 100644 src/LocOpe/LocOpe_WiresOnShape.cdl create mode 100644 src/LocOpe/LocOpe_WiresOnShape.hxx create mode 100644 src/LocalAnalysis/FILES delete mode 100644 src/LocalAnalysis/LocalAnalysis.cdl create mode 100644 src/LocalAnalysis/LocalAnalysis.hxx delete mode 100644 src/LocalAnalysis/LocalAnalysis_CurveContinuity.cdl create mode 100644 src/LocalAnalysis/LocalAnalysis_CurveContinuity.hxx create mode 100644 src/LocalAnalysis/LocalAnalysis_StatusErrorType.hxx delete mode 100644 src/LocalAnalysis/LocalAnalysis_SurfaceContinuity.cdl create mode 100644 src/LocalAnalysis/LocalAnalysis_SurfaceContinuity.hxx delete mode 100644 src/MAT/MAT.cdl delete mode 100644 src/MAT/MAT_Arc.cdl create mode 100644 src/MAT/MAT_Arc.hxx delete mode 100644 src/MAT/MAT_BasicElt.cdl create mode 100644 src/MAT/MAT_BasicElt.hxx delete mode 100644 src/MAT/MAT_Bisector.cdl create mode 100644 src/MAT/MAT_Bisector.hxx delete mode 100644 src/MAT/MAT_Edge.cdl create mode 100644 src/MAT/MAT_Edge.hxx delete mode 100644 src/MAT/MAT_Graph.cdl create mode 100644 src/MAT/MAT_Graph.hxx create mode 100644 src/MAT/MAT_ListOfBisector.hxx create mode 100644 src/MAT/MAT_ListOfBisector_0.cxx create mode 100644 src/MAT/MAT_ListOfEdge.hxx create mode 100644 src/MAT/MAT_ListOfEdge_0.cxx delete mode 100644 src/MAT/MAT_Node.cdl create mode 100644 src/MAT/MAT_Node.hxx create mode 100644 src/MAT/MAT_Side.hxx delete mode 100644 src/MAT/MAT_TList.cdl create mode 100644 src/MAT/MAT_TListNodeOfListOfBisector.hxx create mode 100644 src/MAT/MAT_TListNodeOfListOfBisector_0.cxx create mode 100644 src/MAT/MAT_TListNodeOfListOfEdge.hxx create mode 100644 src/MAT/MAT_TListNodeOfListOfEdge_0.cxx delete mode 100644 src/MAT/MAT_Zone.cdl create mode 100644 src/MAT/MAT_Zone.hxx delete mode 100644 src/MAT2d/MAT2d.cdl delete mode 100644 src/MAT2d/MAT2d_BiInt.cdl create mode 100644 src/MAT2d/MAT2d_BiInt.hxx delete mode 100644 src/MAT2d/MAT2d_Circuit.cdl create mode 100644 src/MAT2d/MAT2d_Circuit.hxx delete mode 100644 src/MAT2d/MAT2d_Connexion.cdl create mode 100644 src/MAT2d/MAT2d_Connexion.hxx delete mode 100644 src/MAT2d/MAT2d_CutCurve.cdl create mode 100644 src/MAT2d/MAT2d_CutCurve.hxx delete mode 100644 src/MAT2d/MAT2d_MapBiIntHasher.cdl create mode 100644 src/MAT2d/MAT2d_MapBiIntHasher.hxx delete mode 100644 src/MAT2d/MAT2d_Mat2d.cdl create mode 100644 src/MAT2d/MAT2d_Mat2d.hxx delete mode 100644 src/MAT2d/MAT2d_MiniPath.cdl create mode 100644 src/MAT2d/MAT2d_MiniPath.hxx delete mode 100644 src/MAT2d/MAT2d_SketchExplorer.cdl create mode 100644 src/MAT2d/MAT2d_SketchExplorer.hxx delete mode 100644 src/MAT2d/MAT2d_Tool2d.cdl create mode 100644 src/MAT2d/MAT2d_Tool2d.hxx create mode 100644 src/MMgt/FILES delete mode 100644 src/MMgt/MMgt.cdl delete mode 100644 src/MMgt/MMgt_TShared.cdl create mode 100644 src/MMgt/MMgt_TShared.hxx delete mode 100644 src/MeshTest/MeshTest.cdl create mode 100644 src/MeshTest/MeshTest.hxx delete mode 100644 src/MeshVS/MeshVS.cdl delete mode 100644 src/MeshVS/MeshVS_ColorHasher.cdl create mode 100644 src/MeshVS/MeshVS_ColorHasher.hxx delete mode 100644 src/MeshVS/MeshVS_DataSource.cdl create mode 100644 src/MeshVS/MeshVS_DataSource.hxx delete mode 100644 src/MeshVS/MeshVS_DataSource3D.cdl create mode 100644 src/MeshVS/MeshVS_DataSource3D.hxx delete mode 100644 src/MeshVS/MeshVS_DeformedDataSource.cdl create mode 100644 src/MeshVS/MeshVS_DeformedDataSource.hxx delete mode 100644 src/MeshVS/MeshVS_Drawer.cdl create mode 100644 src/MeshVS/MeshVS_Drawer.hxx create mode 100644 src/MeshVS/MeshVS_DrawerAttribute.hxx delete mode 100644 src/MeshVS/MeshVS_ElementalColorPrsBuilder.cdl create mode 100644 src/MeshVS/MeshVS_ElementalColorPrsBuilder.hxx delete mode 100644 src/MeshVS/MeshVS_Mesh.cdl create mode 100644 src/MeshVS/MeshVS_Mesh.hxx delete mode 100644 src/MeshVS/MeshVS_MeshEntityOwner.cdl create mode 100644 src/MeshVS/MeshVS_MeshEntityOwner.hxx delete mode 100644 src/MeshVS/MeshVS_MeshOwner.cdl create mode 100644 src/MeshVS/MeshVS_MeshOwner.hxx delete mode 100644 src/MeshVS/MeshVS_MeshPrsBuilder.cdl create mode 100644 src/MeshVS/MeshVS_MeshPrsBuilder.hxx create mode 100644 src/MeshVS/MeshVS_MeshPtr.hxx create mode 100644 src/MeshVS/MeshVS_MeshSelectionMethod.hxx delete mode 100644 src/MeshVS/MeshVS_NodalColorPrsBuilder.cdl create mode 100644 src/MeshVS/MeshVS_NodalColorPrsBuilder.hxx delete mode 100644 src/MeshVS/MeshVS_PrsBuilder.cdl create mode 100644 src/MeshVS/MeshVS_PrsBuilder.hxx delete mode 100644 src/MeshVS/MeshVS_TextPrsBuilder.cdl create mode 100644 src/MeshVS/MeshVS_TextPrsBuilder.hxx delete mode 100644 src/MeshVS/MeshVS_Tool.cdl create mode 100644 src/MeshVS/MeshVS_Tool.hxx delete mode 100644 src/MeshVS/MeshVS_VectorPrsBuilder.cdl create mode 100644 src/MeshVS/MeshVS_VectorPrsBuilder.hxx delete mode 100644 src/Message/Message.cdl create mode 100644 src/Message/Message.hxx delete mode 100644 src/Message/Message_Algorithm.cdl create mode 100644 src/Message/Message_Algorithm.hxx create mode 100644 src/Message/Message_Gravity.hxx delete mode 100644 src/Message/Message_Messenger.cdl create mode 100644 src/Message/Message_Messenger.hxx delete mode 100644 src/Message/Message_Msg.cdl create mode 100644 src/Message/Message_Msg.hxx delete mode 100644 src/Message/Message_MsgFile.cdl create mode 100644 src/Message/Message_MsgFile.hxx delete mode 100644 src/Message/Message_Printer.cdl create mode 100644 src/Message/Message_Printer.hxx delete mode 100644 src/Message/Message_PrinterOStream.cdl create mode 100644 src/Message/Message_PrinterOStream.hxx delete mode 100644 src/Message/Message_ProgressIndicator.cdl create mode 100644 src/Message/Message_ProgressIndicator.hxx delete mode 100644 src/Message/Message_ProgressScale.cdl create mode 100644 src/Message/Message_ProgressScale.hxx delete mode 100644 src/Message/Message_ProgressSentry.cdl create mode 100644 src/Message/Message_ProgressSentry.hxx delete mode 100644 src/MoniTool/MoniTool.cdl delete mode 100644 src/MoniTool/MoniTool_AttrList.cdl create mode 100644 src/MoniTool/MoniTool_AttrList.hxx delete mode 100644 src/MoniTool/MoniTool_CaseData.cdl create mode 100644 src/MoniTool/MoniTool_CaseData.hxx delete mode 100644 src/MoniTool/MoniTool_DataInfo.cdl create mode 100644 src/MoniTool/MoniTool_DataInfo.hxx delete mode 100644 src/MoniTool/MoniTool_ElemHasher.cdl create mode 100644 src/MoniTool/MoniTool_ElemHasher.hxx delete mode 100644 src/MoniTool/MoniTool_Element.cdl create mode 100644 src/MoniTool/MoniTool_Element.hxx delete mode 100644 src/MoniTool/MoniTool_IntVal.cdl create mode 100644 src/MoniTool/MoniTool_IntVal.hxx delete mode 100644 src/MoniTool/MoniTool_MTHasher.cdl create mode 100644 src/MoniTool/MoniTool_MTHasher.hxx delete mode 100644 src/MoniTool/MoniTool_OptValue.cdl create mode 100644 src/MoniTool/MoniTool_OptValue.hxx delete mode 100644 src/MoniTool/MoniTool_Option.cdl create mode 100644 src/MoniTool/MoniTool_Option.hxx delete mode 100644 src/MoniTool/MoniTool_Profile.cdl create mode 100644 src/MoniTool/MoniTool_Profile.hxx delete mode 100644 src/MoniTool/MoniTool_RealVal.cdl create mode 100644 src/MoniTool/MoniTool_RealVal.hxx delete mode 100644 src/MoniTool/MoniTool_SignShape.cdl create mode 100644 src/MoniTool/MoniTool_SignShape.hxx delete mode 100644 src/MoniTool/MoniTool_SignText.cdl create mode 100644 src/MoniTool/MoniTool_SignText.hxx delete mode 100644 src/MoniTool/MoniTool_Stat.cdl create mode 100644 src/MoniTool/MoniTool_Stat.hxx delete mode 100644 src/MoniTool/MoniTool_Timer.cdl create mode 100644 src/MoniTool/MoniTool_Timer.hxx delete mode 100644 src/MoniTool/MoniTool_TimerSentry.cdl create mode 100644 src/MoniTool/MoniTool_TimerSentry.hxx delete mode 100644 src/MoniTool/MoniTool_TransientElem.cdl create mode 100644 src/MoniTool/MoniTool_TransientElem.hxx delete mode 100644 src/MoniTool/MoniTool_TypedValue.cdl create mode 100644 src/MoniTool/MoniTool_TypedValue.hxx create mode 100644 src/MoniTool/MoniTool_ValueType.hxx delete mode 100644 src/NLPlate/NLPlate.cdl delete mode 100644 src/NLPlate/NLPlate_HGPPConstraint.cdl create mode 100644 src/NLPlate/NLPlate_HGPPConstraint.hxx delete mode 100644 src/NLPlate/NLPlate_HPG0Constraint.cdl create mode 100644 src/NLPlate/NLPlate_HPG0Constraint.hxx delete mode 100644 src/NLPlate/NLPlate_HPG0G1Constraint.cdl create mode 100644 src/NLPlate/NLPlate_HPG0G1Constraint.hxx delete mode 100644 src/NLPlate/NLPlate_HPG0G2Constraint.cdl create mode 100644 src/NLPlate/NLPlate_HPG0G2Constraint.hxx delete mode 100644 src/NLPlate/NLPlate_HPG0G3Constraint.cdl create mode 100644 src/NLPlate/NLPlate_HPG0G3Constraint.hxx delete mode 100644 src/NLPlate/NLPlate_HPG1Constraint.cdl create mode 100644 src/NLPlate/NLPlate_HPG1Constraint.hxx delete mode 100644 src/NLPlate/NLPlate_HPG2Constraint.cdl create mode 100644 src/NLPlate/NLPlate_HPG2Constraint.hxx delete mode 100644 src/NLPlate/NLPlate_HPG3Constraint.cdl create mode 100644 src/NLPlate/NLPlate_HPG3Constraint.hxx delete mode 100644 src/NLPlate/NLPlate_NLPlate.cdl create mode 100644 src/NLPlate/NLPlate_NLPlate.hxx delete mode 100755 src/OSD/OSD.cdl create mode 100644 src/OSD/OSD.hxx delete mode 100644 src/OSD/OSD_CMPLRS.edl delete mode 100644 src/OSD/OSD_Chronometer.cdl create mode 100644 src/OSD/OSD_Chronometer.hxx delete mode 100644 src/OSD/OSD_Directory.cdl create mode 100644 src/OSD/OSD_Directory.hxx delete mode 100644 src/OSD/OSD_DirectoryIterator.cdl create mode 100644 src/OSD/OSD_DirectoryIterator.hxx delete mode 100644 src/OSD/OSD_Disk.cdl create mode 100644 src/OSD/OSD_Disk.hxx delete mode 100644 src/OSD/OSD_Environment.cdl create mode 100644 src/OSD/OSD_Environment.hxx delete mode 100644 src/OSD/OSD_EnvironmentIterator.cdl create mode 100644 src/OSD/OSD_EnvironmentIterator.hxx delete mode 100755 src/OSD/OSD_Error.cdl create mode 100644 src/OSD/OSD_Error.hxx create mode 100644 src/OSD/OSD_Exception.hxx create mode 100644 src/OSD/OSD_Exception_ACCESS_VIOLATION.hxx create mode 100644 src/OSD/OSD_Exception_ARRAY_BOUNDS_EXCEEDED.hxx create mode 100644 src/OSD/OSD_Exception_CTRL_BREAK.hxx create mode 100644 src/OSD/OSD_Exception_FLT_DENORMAL_OPERAND.hxx create mode 100644 src/OSD/OSD_Exception_FLT_DIVIDE_BY_ZERO.hxx create mode 100644 src/OSD/OSD_Exception_FLT_INEXACT_RESULT.hxx create mode 100644 src/OSD/OSD_Exception_FLT_INVALID_OPERATION.hxx create mode 100644 src/OSD/OSD_Exception_FLT_OVERFLOW.hxx create mode 100644 src/OSD/OSD_Exception_FLT_STACK_CHECK.hxx create mode 100644 src/OSD/OSD_Exception_FLT_UNDERFLOW.hxx create mode 100644 src/OSD/OSD_Exception_ILLEGAL_INSTRUCTION.hxx create mode 100644 src/OSD/OSD_Exception_INT_DIVIDE_BY_ZERO.hxx create mode 100644 src/OSD/OSD_Exception_INT_OVERFLOW.hxx create mode 100644 src/OSD/OSD_Exception_INVALID_DISPOSITION.hxx create mode 100644 src/OSD/OSD_Exception_IN_PAGE_ERROR.hxx create mode 100644 src/OSD/OSD_Exception_NONCONTINUABLE_EXCEPTION.hxx create mode 100644 src/OSD/OSD_Exception_PRIV_INSTRUCTION.hxx create mode 100644 src/OSD/OSD_Exception_STACK_OVERFLOW.hxx create mode 100644 src/OSD/OSD_Exception_STATUS_NO_MEMORY.hxx delete mode 100644 src/OSD/OSD_File.cdl create mode 100644 src/OSD/OSD_File.hxx delete mode 100644 src/OSD/OSD_FileIterator.cdl create mode 100644 src/OSD/OSD_FileIterator.hxx delete mode 100644 src/OSD/OSD_FileNode.cdl create mode 100644 src/OSD/OSD_FileNode.hxx create mode 100644 src/OSD/OSD_FromWhere.hxx delete mode 100644 src/OSD/OSD_Host.cdl create mode 100644 src/OSD/OSD_Host.hxx create mode 100644 src/OSD/OSD_KindFile.hxx create mode 100644 src/OSD/OSD_LoadMode.hxx create mode 100644 src/OSD/OSD_LockType.hxx create mode 100644 src/OSD/OSD_OEMType.hxx create mode 100644 src/OSD/OSD_OSDError.hxx create mode 100644 src/OSD/OSD_OpenMode.hxx delete mode 100644 src/OSD/OSD_Path.cdl create mode 100644 src/OSD/OSD_Path.hxx delete mode 100644 src/OSD/OSD_Printer.cdl create mode 100644 src/OSD/OSD_Printer.hxx delete mode 100644 src/OSD/OSD_Process.cdl create mode 100644 src/OSD/OSD_Process.hxx delete mode 100644 src/OSD/OSD_Protection.cdl create mode 100644 src/OSD/OSD_Protection.hxx create mode 100644 src/OSD/OSD_SIGBUS.hxx create mode 100644 src/OSD/OSD_SIGHUP.hxx create mode 100644 src/OSD/OSD_SIGILL.hxx create mode 100644 src/OSD/OSD_SIGINT.hxx create mode 100644 src/OSD/OSD_SIGKILL.hxx create mode 100644 src/OSD/OSD_SIGQUIT.hxx create mode 100644 src/OSD/OSD_SIGSEGV.hxx create mode 100644 src/OSD/OSD_SIGSYS.hxx delete mode 100644 src/OSD/OSD_SharedLibrary.cdl create mode 100644 src/OSD/OSD_SharedLibrary.hxx create mode 100644 src/OSD/OSD_Signal.hxx create mode 100644 src/OSD/OSD_SingleProtection.hxx create mode 100644 src/OSD/OSD_SysType.hxx delete mode 100644 src/OSD/OSD_Thread.cdl create mode 100644 src/OSD/OSD_Thread.hxx delete mode 100644 src/OSD/OSD_Timer.cdl create mode 100644 src/OSD/OSD_Timer.hxx create mode 100644 src/OSD/OSD_WhoAmI.hxx delete mode 100644 src/OpenGl/OpenGl_CMPLRS.edl delete mode 100644 src/PCDM/PCDM.cdl create mode 100644 src/PCDM/PCDM.hxx create mode 100644 src/PCDM/PCDM_BaseDriverPointer.hxx delete mode 100644 src/PCDM/PCDM_Document.cdl create mode 100644 src/PCDM/PCDM_Document.hxx create mode 100644 src/PCDM/PCDM_DriverError.hxx delete mode 100644 src/PCDM/PCDM_ReadWriter.cdl create mode 100644 src/PCDM/PCDM_ReadWriter.hxx delete mode 100644 src/PCDM/PCDM_ReadWriter_1.cdl create mode 100644 src/PCDM/PCDM_ReadWriter_1.hxx delete mode 100644 src/PCDM/PCDM_Reader.cdl create mode 100644 src/PCDM/PCDM_Reader.hxx create mode 100644 src/PCDM/PCDM_ReaderStatus.hxx delete mode 100644 src/PCDM/PCDM_Reference.cdl create mode 100644 src/PCDM/PCDM_Reference.hxx delete mode 100644 src/PCDM/PCDM_ReferenceIterator.cdl create mode 100644 src/PCDM/PCDM_ReferenceIterator.hxx delete mode 100644 src/PCDM/PCDM_RetrievalDriver.cdl create mode 100644 src/PCDM/PCDM_RetrievalDriver.hxx delete mode 100644 src/PCDM/PCDM_StorageDriver.cdl create mode 100644 src/PCDM/PCDM_StorageDriver.hxx create mode 100644 src/PCDM/PCDM_StoreStatus.hxx create mode 100644 src/PCDM/PCDM_TypeOfFileDriver.hxx delete mode 100644 src/PCDM/PCDM_Writer.cdl create mode 100644 src/PCDM/PCDM_Writer.hxx delete mode 100644 src/PLib/PLib.cdl create mode 100644 src/PLib/PLib.hxx delete mode 100644 src/PLib/PLib_Base.cdl create mode 100644 src/PLib/PLib_Base.hxx delete mode 100644 src/PLib/PLib_CMPLRS.edl delete mode 100644 src/PLib/PLib_DoubleJacobiPolynomial.cdl create mode 100644 src/PLib/PLib_DoubleJacobiPolynomial.hxx delete mode 100644 src/PLib/PLib_HermitJacobi.cdl create mode 100644 src/PLib/PLib_HermitJacobi.hxx delete mode 100644 src/PLib/PLib_JacobiPolynomial.cdl create mode 100644 src/PLib/PLib_JacobiPolynomial.hxx delete mode 100644 src/Plate/Plate.cdl delete mode 100644 src/Plate/Plate_D1.cdl create mode 100644 src/Plate/Plate_D1.hxx delete mode 100644 src/Plate/Plate_D2.cdl create mode 100644 src/Plate/Plate_D2.hxx delete mode 100644 src/Plate/Plate_D3.cdl create mode 100644 src/Plate/Plate_D3.hxx delete mode 100644 src/Plate/Plate_FreeGtoCConstraint.cdl create mode 100644 src/Plate/Plate_FreeGtoCConstraint.hxx delete mode 100644 src/Plate/Plate_GlobalTranslationConstraint.cdl create mode 100644 src/Plate/Plate_GlobalTranslationConstraint.hxx delete mode 100644 src/Plate/Plate_GtoCConstraint.cdl create mode 100644 src/Plate/Plate_GtoCConstraint.hxx delete mode 100644 src/Plate/Plate_LineConstraint.cdl create mode 100644 src/Plate/Plate_LineConstraint.hxx delete mode 100644 src/Plate/Plate_LinearScalarConstraint.cdl create mode 100644 src/Plate/Plate_LinearScalarConstraint.hxx delete mode 100644 src/Plate/Plate_LinearXYZConstraint.cdl create mode 100644 src/Plate/Plate_LinearXYZConstraint.hxx delete mode 100644 src/Plate/Plate_PinpointConstraint.cdl create mode 100644 src/Plate/Plate_PinpointConstraint.hxx delete mode 100644 src/Plate/Plate_PlaneConstraint.cdl create mode 100644 src/Plate/Plate_PlaneConstraint.hxx delete mode 100644 src/Plate/Plate_Plate.cdl create mode 100644 src/Plate/Plate_Plate.hxx delete mode 100644 src/Plate/Plate_SampledCurveConstraint.cdl create mode 100644 src/Plate/Plate_SampledCurveConstraint.hxx delete mode 100644 src/Plugin/Plugin.cdl create mode 100644 src/Plugin/Plugin.hxx create mode 100644 src/Plugin/Plugin_Failure.hxx delete mode 100644 src/Poly/Poly.cdl create mode 100644 src/Poly/Poly.hxx delete mode 100644 src/Poly/Poly_Connect.cdl create mode 100644 src/Poly/Poly_Connect.hxx delete mode 100644 src/Poly/Poly_Polygon2D.cdl create mode 100644 src/Poly/Poly_Polygon2D.hxx delete mode 100644 src/Poly/Poly_Polygon3D.cdl create mode 100644 src/Poly/Poly_Polygon3D.hxx delete mode 100644 src/Poly/Poly_PolygonOnTriangulation.cdl create mode 100644 src/Poly/Poly_PolygonOnTriangulation.hxx delete mode 100644 src/Poly/Poly_Triangle.cdl create mode 100644 src/Poly/Poly_Triangle.hxx delete mode 100644 src/Poly/Poly_Triangulation.cdl create mode 100644 src/Poly/Poly_Triangulation.hxx create mode 100644 src/Precision/FILES delete mode 100644 src/Precision/Precision.cdl create mode 100644 src/Precision/Precision.hxx delete mode 100644 src/ProjLib/ProjLib.cdl create mode 100644 src/ProjLib/ProjLib.hxx delete mode 100644 src/ProjLib/ProjLib_CompProjectedCurve.cdl create mode 100644 src/ProjLib/ProjLib_CompProjectedCurve.hxx delete mode 100644 src/ProjLib/ProjLib_ComputeApprox.cdl create mode 100644 src/ProjLib/ProjLib_ComputeApprox.hxx delete mode 100644 src/ProjLib/ProjLib_ComputeApproxOnPolarSurface.cdl create mode 100644 src/ProjLib/ProjLib_ComputeApproxOnPolarSurface.hxx delete mode 100644 src/ProjLib/ProjLib_Cone.cdl create mode 100644 src/ProjLib/ProjLib_Cone.hxx delete mode 100644 src/ProjLib/ProjLib_Cylinder.cdl create mode 100644 src/ProjLib/ProjLib_Cylinder.hxx create mode 100644 src/ProjLib/ProjLib_HCompProjectedCurve.hxx create mode 100644 src/ProjLib/ProjLib_HCompProjectedCurve_0.cxx create mode 100644 src/ProjLib/ProjLib_HProjectedCurve.hxx create mode 100644 src/ProjLib/ProjLib_HProjectedCurve_0.cxx delete mode 100644 src/ProjLib/ProjLib_Plane.cdl create mode 100644 src/ProjLib/ProjLib_Plane.hxx delete mode 100644 src/ProjLib/ProjLib_PrjFunc.cdl create mode 100644 src/ProjLib/ProjLib_PrjFunc.hxx delete mode 100644 src/ProjLib/ProjLib_PrjResolve.cdl create mode 100644 src/ProjLib/ProjLib_PrjResolve.hxx delete mode 100644 src/ProjLib/ProjLib_ProjectOnPlane.cdl create mode 100644 src/ProjLib/ProjLib_ProjectOnPlane.hxx delete mode 100644 src/ProjLib/ProjLib_ProjectOnSurface.cdl create mode 100644 src/ProjLib/ProjLib_ProjectOnSurface.hxx delete mode 100644 src/ProjLib/ProjLib_ProjectedCurve.cdl create mode 100644 src/ProjLib/ProjLib_ProjectedCurve.hxx delete mode 100644 src/ProjLib/ProjLib_Projector.cdl create mode 100644 src/ProjLib/ProjLib_Projector.hxx delete mode 100644 src/ProjLib/ProjLib_Sphere.cdl create mode 100644 src/ProjLib/ProjLib_Sphere.hxx delete mode 100644 src/ProjLib/ProjLib_Torus.cdl create mode 100644 src/ProjLib/ProjLib_Torus.hxx delete mode 100644 src/Prs3d/Prs3d.cdl create mode 100644 src/Prs3d/Prs3d.hxx delete mode 100644 src/Prs3d/Prs3d_Arrow.cdl create mode 100644 src/Prs3d/Prs3d_Arrow.hxx delete mode 100644 src/Prs3d/Prs3d_ArrowAspect.cdl create mode 100644 src/Prs3d/Prs3d_ArrowAspect.hxx delete mode 100644 src/Prs3d/Prs3d_BasicAspect.cdl create mode 100644 src/Prs3d/Prs3d_BasicAspect.hxx delete mode 100644 src/Prs3d/Prs3d_DatumAspect.cdl create mode 100644 src/Prs3d/Prs3d_DatumAspect.hxx create mode 100644 src/Prs3d/Prs3d_DimensionArrowOrientation.hxx delete mode 100644 src/Prs3d/Prs3d_DimensionAspect.cdl create mode 100644 src/Prs3d/Prs3d_DimensionAspect.hxx create mode 100644 src/Prs3d/Prs3d_DimensionTextHorizontalPosition.hxx create mode 100644 src/Prs3d/Prs3d_DimensionTextVerticalPosition.hxx create mode 100644 src/Prs3d/Prs3d_InvalidAngle.hxx delete mode 100644 src/Prs3d/Prs3d_IsoAspect.cdl create mode 100644 src/Prs3d/Prs3d_IsoAspect.hxx delete mode 100644 src/Prs3d/Prs3d_LineAspect.cdl create mode 100644 src/Prs3d/Prs3d_LineAspect.hxx delete mode 100644 src/Prs3d/Prs3d_PlaneAspect.cdl create mode 100644 src/Prs3d/Prs3d_PlaneAspect.hxx delete mode 100644 src/Prs3d/Prs3d_PlaneSet.cdl create mode 100644 src/Prs3d/Prs3d_PlaneSet.hxx delete mode 100644 src/Prs3d/Prs3d_PointAspect.cdl create mode 100644 src/Prs3d/Prs3d_PointAspect.hxx delete mode 100644 src/Prs3d/Prs3d_Presentation.cdl create mode 100644 src/Prs3d/Prs3d_Presentation.hxx delete mode 100644 src/Prs3d/Prs3d_Projector.cdl create mode 100644 src/Prs3d/Prs3d_Projector.hxx delete mode 100644 src/Prs3d/Prs3d_Root.cdl create mode 100644 src/Prs3d/Prs3d_Root.hxx delete mode 100644 src/Prs3d/Prs3d_ShadingAspect.cdl create mode 100644 src/Prs3d/Prs3d_ShadingAspect.hxx delete mode 100644 src/Prs3d/Prs3d_ShapeTool.cdl create mode 100644 src/Prs3d/Prs3d_ShapeTool.hxx delete mode 100644 src/Prs3d/Prs3d_Text.cdl create mode 100644 src/Prs3d/Prs3d_Text.hxx delete mode 100644 src/Prs3d/Prs3d_TextAspect.cdl create mode 100644 src/Prs3d/Prs3d_TextAspect.hxx create mode 100644 src/Prs3d/Prs3d_TypeOfHLR.hxx create mode 100644 src/Prs3d/Prs3d_TypeOfLinePicking.hxx create mode 100644 src/Prs3d/Prs3d_VertexDrawMode.hxx delete mode 100644 src/PrsMgr/PrsMgr.cdl delete mode 100644 src/PrsMgr/PrsMgr_ModedPresentation.cdl create mode 100644 src/PrsMgr/PrsMgr_ModedPresentation.hxx delete mode 100644 src/PrsMgr/PrsMgr_PresentableObject.cdl create mode 100644 src/PrsMgr/PrsMgr_PresentableObject.hxx create mode 100644 src/PrsMgr/PrsMgr_PresentableObjectPointer.hxx delete mode 100644 src/PrsMgr/PrsMgr_Presentation.cdl create mode 100644 src/PrsMgr/PrsMgr_Presentation.hxx create mode 100644 src/PrsMgr/PrsMgr_Presentation3d.hxx delete mode 100644 src/PrsMgr/PrsMgr_PresentationManager.cdl create mode 100644 src/PrsMgr/PrsMgr_PresentationManager.hxx create mode 100644 src/PrsMgr/PrsMgr_PresentationManager3d.hxx create mode 100644 src/PrsMgr/PrsMgr_PresentationPointer.hxx delete mode 100644 src/PrsMgr/PrsMgr_Prs.cdl create mode 100644 src/PrsMgr/PrsMgr_Prs.hxx create mode 100644 src/PrsMgr/PrsMgr_TypeOfPresentation3d.hxx delete mode 100644 src/QABugs/QABugs.cdl create mode 100644 src/QABugs/QABugs.hxx delete mode 100644 src/QABugs/QABugs_CMPLRS.edl delete mode 100644 src/QABugs/QABugs_MyText.cdl create mode 100644 src/QABugs/QABugs_MyText.hxx delete mode 100644 src/QABugs/QABugs_PresentableObject.cdl create mode 100644 src/QABugs/QABugs_PresentableObject.hxx delete mode 100644 src/QADNaming/QADNaming.cdl create mode 100644 src/QADNaming/QADNaming.hxx delete mode 100644 src/QADraw/QADraw.cdl create mode 100644 src/QADraw/QADraw.hxx delete mode 100644 src/QADraw/QADraw_CMPLRS.edl delete mode 100644 src/QANCollection/QANCollection.cdl create mode 100644 src/QANCollection/QANCollection.hxx create mode 100644 src/QANewBRepNaming/FILES delete mode 100644 src/QANewBRepNaming/QANewBRepNaming.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_BooleanOperation.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_BooleanOperation.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_BooleanOperationFeat.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_BooleanOperationFeat.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_Box.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_Box.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_Chamfer.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_Chamfer.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_Common.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_Common.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_Cut.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_Cut.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_Cylinder.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_Cylinder.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_Fillet.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_Fillet.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_Fuse.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_Fuse.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_Gluing.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_Gluing.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_ImportShape.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_ImportShape.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_Intersection.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_Intersection.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_Limitation.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_Limitation.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_Loader.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_Loader.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_LoaderParent.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_LoaderParent.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_Prism.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_Prism.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_Revol.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_Revol.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_Sphere.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_Sphere.hxx delete mode 100644 src/QANewBRepNaming/QANewBRepNaming_TopNaming.cdl create mode 100644 src/QANewBRepNaming/QANewBRepNaming_TopNaming.hxx create mode 100644 src/QANewBRepNaming/QANewBRepNaming_TypeOfPrimitive3D.hxx delete mode 100644 src/QANewDBRepNaming/QANewDBRepNaming.cdl create mode 100644 src/QANewDBRepNaming/QANewDBRepNaming.hxx delete mode 100644 src/QANewModTopOpe/QANewModTopOpe.cdl create mode 100644 src/QANewModTopOpe/QANewModTopOpe.hxx create mode 100644 src/QANewModTopOpe/QANewModTopOpe_CommonPtr.hxx create mode 100644 src/QANewModTopOpe/QANewModTopOpe_CutPtr.hxx delete mode 100644 src/QANewModTopOpe/QANewModTopOpe_Glue.cdl create mode 100644 src/QANewModTopOpe/QANewModTopOpe_Glue.hxx delete mode 100644 src/QANewModTopOpe/QANewModTopOpe_Intersection.cdl create mode 100644 src/QANewModTopOpe/QANewModTopOpe_Intersection.hxx delete mode 100644 src/QANewModTopOpe/QANewModTopOpe_Limitation.cdl create mode 100644 src/QANewModTopOpe/QANewModTopOpe_Limitation.hxx create mode 100644 src/QANewModTopOpe/QANewModTopOpe_ModeOfLimitation.hxx delete mode 100644 src/QANewModTopOpe/QANewModTopOpe_ReShaper.cdl create mode 100644 src/QANewModTopOpe/QANewModTopOpe_ReShaper.hxx delete mode 100644 src/QANewModTopOpe/QANewModTopOpe_Tools.cdl create mode 100644 src/QANewModTopOpe/QANewModTopOpe_Tools.hxx delete mode 100644 src/Quantity/Quantity.cdl create mode 100644 src/Quantity/Quantity_AbsorbedDose.hxx create mode 100644 src/Quantity/Quantity_Acceleration.hxx create mode 100644 src/Quantity/Quantity_AcousticIntensity.hxx create mode 100644 src/Quantity/Quantity_Activity.hxx create mode 100644 src/Quantity/Quantity_Admittance.hxx create mode 100644 src/Quantity/Quantity_AmountOfSubstance.hxx create mode 100644 src/Quantity/Quantity_AngularVelocity.hxx create mode 100644 src/Quantity/Quantity_Area.hxx create mode 100644 src/Quantity/Quantity_Capacitance.hxx create mode 100644 src/Quantity/Quantity_Coefficient.hxx create mode 100644 src/Quantity/Quantity_CoefficientOfExpansion.hxx delete mode 100644 src/Quantity/Quantity_Color.cdl create mode 100644 src/Quantity/Quantity_Color.hxx create mode 100644 src/Quantity/Quantity_ColorDefinitionError.hxx create mode 100644 src/Quantity/Quantity_Concentration.hxx create mode 100644 src/Quantity/Quantity_Conductivity.hxx create mode 100644 src/Quantity/Quantity_Constant.hxx create mode 100644 src/Quantity/Quantity_Consumption.hxx create mode 100644 src/Quantity/Quantity_Content.hxx delete mode 100644 src/Quantity/Quantity_Convert.cdl create mode 100644 src/Quantity/Quantity_Convert.hxx delete mode 100644 src/Quantity/Quantity_Date.cdl create mode 100644 src/Quantity/Quantity_Date.hxx create mode 100644 src/Quantity/Quantity_DateDefinitionError.hxx create mode 100644 src/Quantity/Quantity_Density.hxx create mode 100644 src/Quantity/Quantity_DoseEquivalent.hxx create mode 100644 src/Quantity/Quantity_ElectricCapacitance.hxx create mode 100644 src/Quantity/Quantity_ElectricCharge.hxx create mode 100644 src/Quantity/Quantity_ElectricCurrent.hxx create mode 100644 src/Quantity/Quantity_ElectricFieldStrength.hxx create mode 100644 src/Quantity/Quantity_ElectricPotential.hxx create mode 100644 src/Quantity/Quantity_Energy.hxx create mode 100644 src/Quantity/Quantity_Enthalpy.hxx create mode 100644 src/Quantity/Quantity_Entropy.hxx create mode 100644 src/Quantity/Quantity_Factor.hxx create mode 100644 src/Quantity/Quantity_Force.hxx create mode 100644 src/Quantity/Quantity_Frequency.hxx create mode 100644 src/Quantity/Quantity_Illuminance.hxx create mode 100644 src/Quantity/Quantity_Impedance.hxx create mode 100644 src/Quantity/Quantity_Index.hxx create mode 100644 src/Quantity/Quantity_Inductance.hxx create mode 100644 src/Quantity/Quantity_KinematicViscosity.hxx create mode 100644 src/Quantity/Quantity_KineticMoment.hxx create mode 100644 src/Quantity/Quantity_Length.hxx create mode 100644 src/Quantity/Quantity_Luminance.hxx create mode 100644 src/Quantity/Quantity_LuminousEfficacity.hxx create mode 100644 src/Quantity/Quantity_LuminousExposition.hxx create mode 100644 src/Quantity/Quantity_LuminousFlux.hxx create mode 100644 src/Quantity/Quantity_LuminousIntensity.hxx create mode 100644 src/Quantity/Quantity_MagneticFieldStrength.hxx create mode 100644 src/Quantity/Quantity_MagneticFlux.hxx create mode 100644 src/Quantity/Quantity_MagneticFluxDensity.hxx create mode 100644 src/Quantity/Quantity_Mass.hxx create mode 100644 src/Quantity/Quantity_MassFlow.hxx create mode 100644 src/Quantity/Quantity_MolarConcentration.hxx create mode 100644 src/Quantity/Quantity_MolarMass.hxx create mode 100644 src/Quantity/Quantity_MolarVolume.hxx create mode 100644 src/Quantity/Quantity_Molarity.hxx create mode 100644 src/Quantity/Quantity_MomentOfAForce.hxx create mode 100644 src/Quantity/Quantity_MomentOfInertia.hxx create mode 100644 src/Quantity/Quantity_Momentum.hxx create mode 100644 src/Quantity/Quantity_NameOfColor.hxx create mode 100644 src/Quantity/Quantity_Normality.hxx create mode 100644 src/Quantity/Quantity_Parameter.hxx delete mode 100644 src/Quantity/Quantity_Period.cdl create mode 100644 src/Quantity/Quantity_Period.hxx create mode 100644 src/Quantity/Quantity_PeriodDefinitionError.hxx create mode 100644 src/Quantity/Quantity_PhysicalQuantity.hxx create mode 100644 src/Quantity/Quantity_PlaneAngle.hxx create mode 100644 src/Quantity/Quantity_Power.hxx create mode 100644 src/Quantity/Quantity_Pressure.hxx create mode 100644 src/Quantity/Quantity_Quotient.hxx create mode 100644 src/Quantity/Quantity_Rate.hxx create mode 100644 src/Quantity/Quantity_Ratio.hxx create mode 100644 src/Quantity/Quantity_Reluctance.hxx create mode 100644 src/Quantity/Quantity_Resistance.hxx create mode 100644 src/Quantity/Quantity_Resistivity.hxx create mode 100644 src/Quantity/Quantity_Scalaire.hxx create mode 100644 src/Quantity/Quantity_SolidAngle.hxx create mode 100644 src/Quantity/Quantity_SoundIntensity.hxx create mode 100644 src/Quantity/Quantity_SpecificHeatCapacity.hxx create mode 100644 src/Quantity/Quantity_Speed.hxx create mode 100644 src/Quantity/Quantity_SurfaceTension.hxx create mode 100644 src/Quantity/Quantity_Temperature.hxx create mode 100644 src/Quantity/Quantity_ThermalConductivity.hxx create mode 100644 src/Quantity/Quantity_Torque.hxx create mode 100644 src/Quantity/Quantity_TypeOfColor.hxx create mode 100644 src/Quantity/Quantity_Velocity.hxx create mode 100644 src/Quantity/Quantity_Viscosity.hxx create mode 100644 src/Quantity/Quantity_Volume.hxx create mode 100644 src/Quantity/Quantity_VolumeFlow.hxx create mode 100644 src/Quantity/Quantity_Weight.hxx create mode 100644 src/Quantity/Quantity_Work.hxx create mode 100644 src/RWHeaderSection/FILES delete mode 100644 src/RWHeaderSection/RWHeaderSection.cdl create mode 100644 src/RWHeaderSection/RWHeaderSection.hxx delete mode 100644 src/RWHeaderSection/RWHeaderSection_GeneralModule.cdl create mode 100644 src/RWHeaderSection/RWHeaderSection_GeneralModule.hxx delete mode 100644 src/RWHeaderSection/RWHeaderSection_RWFileDescription.cdl create mode 100644 src/RWHeaderSection/RWHeaderSection_RWFileDescription.hxx delete mode 100644 src/RWHeaderSection/RWHeaderSection_RWFileName.cdl create mode 100644 src/RWHeaderSection/RWHeaderSection_RWFileName.hxx delete mode 100644 src/RWHeaderSection/RWHeaderSection_RWFileSchema.cdl create mode 100644 src/RWHeaderSection/RWHeaderSection_RWFileSchema.hxx delete mode 100644 src/RWHeaderSection/RWHeaderSection_ReadWriteModule.cdl create mode 100644 src/RWHeaderSection/RWHeaderSection_ReadWriteModule.hxx create mode 100644 src/RWStepAP203/FILES delete mode 100644 src/RWStepAP203/RWStepAP203.cdl delete mode 100644 src/RWStepAP203/RWStepAP203_RWCcDesignApproval.cdl create mode 100644 src/RWStepAP203/RWStepAP203_RWCcDesignApproval.hxx delete mode 100644 src/RWStepAP203/RWStepAP203_RWCcDesignCertification.cdl create mode 100644 src/RWStepAP203/RWStepAP203_RWCcDesignCertification.hxx delete mode 100644 src/RWStepAP203/RWStepAP203_RWCcDesignContract.cdl create mode 100644 src/RWStepAP203/RWStepAP203_RWCcDesignContract.hxx delete mode 100644 src/RWStepAP203/RWStepAP203_RWCcDesignDateAndTimeAssignment.cdl create mode 100644 src/RWStepAP203/RWStepAP203_RWCcDesignDateAndTimeAssignment.hxx delete mode 100644 src/RWStepAP203/RWStepAP203_RWCcDesignPersonAndOrganizationAssignment.cdl create mode 100644 src/RWStepAP203/RWStepAP203_RWCcDesignPersonAndOrganizationAssignment.hxx delete mode 100644 src/RWStepAP203/RWStepAP203_RWCcDesignSecurityClassification.cdl create mode 100644 src/RWStepAP203/RWStepAP203_RWCcDesignSecurityClassification.hxx delete mode 100644 src/RWStepAP203/RWStepAP203_RWCcDesignSpecificationReference.cdl create mode 100644 src/RWStepAP203/RWStepAP203_RWCcDesignSpecificationReference.hxx delete mode 100644 src/RWStepAP203/RWStepAP203_RWChange.cdl create mode 100644 src/RWStepAP203/RWStepAP203_RWChange.hxx delete mode 100644 src/RWStepAP203/RWStepAP203_RWChangeRequest.cdl create mode 100644 src/RWStepAP203/RWStepAP203_RWChangeRequest.hxx delete mode 100644 src/RWStepAP203/RWStepAP203_RWStartRequest.cdl create mode 100644 src/RWStepAP203/RWStepAP203_RWStartRequest.hxx delete mode 100644 src/RWStepAP203/RWStepAP203_RWStartWork.cdl create mode 100644 src/RWStepAP203/RWStepAP203_RWStartWork.hxx delete mode 100644 src/RWStepAP214/RWStepAP214.cdl create mode 100644 src/RWStepAP214/RWStepAP214.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_CMPLRS.edl delete mode 100644 src/RWStepAP214/RWStepAP214_GeneralModule.cdl create mode 100644 src/RWStepAP214/RWStepAP214_GeneralModule.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedApprovalAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedApprovalAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedDateAndTimeAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedDateAndTimeAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedDateAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedDateAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedDocumentReference.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedDocumentReference.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedExternalIdentificationAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedExternalIdentificationAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedGroupAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedGroupAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedOrganizationAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedOrganizationAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedPersonAndOrganizationAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedPersonAndOrganizationAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedPresentedItem.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedPresentedItem.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedSecurityClassificationAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAppliedSecurityClassificationAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignActualDateAndTimeAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignActualDateAndTimeAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignActualDateAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignActualDateAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignApprovalAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignApprovalAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignDateAndPersonAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignDateAndPersonAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignDocumentReference.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignDocumentReference.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignGroupAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignGroupAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignNominalDateAndTimeAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignNominalDateAndTimeAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignNominalDateAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignNominalDateAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignOrganizationAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignOrganizationAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignPersonAndOrganizationAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignPersonAndOrganizationAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignPresentedItem.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignPresentedItem.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignSecurityClassificationAssignment.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWAutoDesignSecurityClassificationAssignment.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWClass.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWClass.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWExternallyDefinedClass.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWExternallyDefinedClass.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWExternallyDefinedGeneralProperty.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWExternallyDefinedGeneralProperty.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_RWRepItemGroup.cdl create mode 100644 src/RWStepAP214/RWStepAP214_RWRepItemGroup.hxx delete mode 100644 src/RWStepAP214/RWStepAP214_ReadWriteModule.cdl create mode 100644 src/RWStepAP214/RWStepAP214_ReadWriteModule.hxx create mode 100644 src/RWStepBasic/FILES delete mode 100644 src/RWStepBasic/RWStepBasic.cdl delete mode 100644 src/RWStepBasic/RWStepBasic_RWAction.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWAction.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWActionAssignment.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWActionAssignment.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWActionMethod.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWActionMethod.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWActionRequestAssignment.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWActionRequestAssignment.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWActionRequestSolution.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWActionRequestSolution.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWAddress.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWAddress.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWApplicationContext.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWApplicationContext.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWApplicationContextElement.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWApplicationContextElement.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWApplicationProtocolDefinition.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWApplicationProtocolDefinition.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWApproval.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWApproval.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWApprovalDateTime.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWApprovalDateTime.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWApprovalPersonOrganization.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWApprovalPersonOrganization.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWApprovalRelationship.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWApprovalRelationship.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWApprovalRole.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWApprovalRole.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWApprovalStatus.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWApprovalStatus.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWCalendarDate.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWCalendarDate.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWCertification.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWCertification.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWCertificationAssignment.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWCertificationAssignment.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWCertificationType.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWCertificationType.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWCharacterizedObject.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWCharacterizedObject.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWContract.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWContract.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWContractAssignment.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWContractAssignment.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWContractType.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWContractType.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndAreaUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndAreaUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndLengthUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndLengthUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndMassUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndMassUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndPlaneAngleUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndPlaneAngleUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndRatioUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndRatioUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndSolidAngleUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndSolidAngleUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndTimeUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndTimeUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndVolumeUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWConversionBasedUnitAndVolumeUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWCoordinatedUniversalTimeOffset.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWCoordinatedUniversalTimeOffset.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDate.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDate.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDateAndTime.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDateAndTime.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDateRole.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDateRole.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDateTimeRole.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDateTimeRole.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDerivedUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDerivedUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDerivedUnitElement.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDerivedUnitElement.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDimensionalExponents.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDimensionalExponents.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDocument.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDocument.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDocumentFile.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDocumentFile.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDocumentProductAssociation.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDocumentProductAssociation.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDocumentProductEquivalence.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDocumentProductEquivalence.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDocumentRelationship.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDocumentRelationship.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDocumentRepresentationType.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDocumentRepresentationType.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDocumentType.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDocumentType.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWDocumentUsageConstraint.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWDocumentUsageConstraint.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWEffectivity.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWEffectivity.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWEffectivityAssignment.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWEffectivityAssignment.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWEulerAngles.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWEulerAngles.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWExternalIdentificationAssignment.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWExternalIdentificationAssignment.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWExternalSource.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWExternalSource.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWExternallyDefinedItem.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWExternallyDefinedItem.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWGeneralProperty.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWGeneralProperty.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWGroup.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWGroup.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWGroupAssignment.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWGroupAssignment.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWGroupRelationship.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWGroupRelationship.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWIdentificationAssignment.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWIdentificationAssignment.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWIdentificationRole.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWIdentificationRole.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWLengthMeasureWithUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWLengthMeasureWithUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWLengthUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWLengthUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWLocalTime.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWLocalTime.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWMassMeasureWithUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWMassMeasureWithUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWMassUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWMassUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWMeasureWithUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWMeasureWithUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWMechanicalContext.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWMechanicalContext.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWNameAssignment.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWNameAssignment.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWNamedUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWNamedUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWObjectRole.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWObjectRole.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWOrdinalDate.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWOrdinalDate.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWOrganization.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWOrganization.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWOrganizationRole.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWOrganizationRole.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWOrganizationalAddress.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWOrganizationalAddress.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWPerson.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWPerson.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWPersonAndOrganization.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWPersonAndOrganization.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWPersonAndOrganizationRole.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWPersonAndOrganizationRole.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWPersonalAddress.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWPersonalAddress.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWPlaneAngleMeasureWithUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWPlaneAngleMeasureWithUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWPlaneAngleUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWPlaneAngleUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProduct.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProduct.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProductCategory.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProductCategory.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProductCategoryRelationship.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProductCategoryRelationship.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProductConceptContext.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProductConceptContext.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProductContext.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProductContext.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinition.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinition.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinitionContext.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinitionContext.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinitionEffectivity.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinitionEffectivity.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinitionFormation.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinitionFormation.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinitionFormationRelationship.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinitionFormationRelationship.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinitionFormationWithSpecifiedSource.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinitionFormationWithSpecifiedSource.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinitionRelationship.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinitionRelationship.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinitionWithAssociatedDocuments.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProductDefinitionWithAssociatedDocuments.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProductRelatedProductCategory.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProductRelatedProductCategory.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWProductType.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWProductType.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWRatioMeasureWithUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWRatioMeasureWithUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWRoleAssociation.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWRoleAssociation.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWSecurityClassification.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWSecurityClassification.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWSecurityClassificationLevel.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWSecurityClassificationLevel.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndAreaUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndAreaUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndLengthUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndLengthUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndMassUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndMassUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndPlaneAngleUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndPlaneAngleUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndRatioUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndRatioUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndSolidAngleUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndSolidAngleUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndThermodynamicTemperatureUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndThermodynamicTemperatureUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndTimeUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndTimeUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndVolumeUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWSiUnitAndVolumeUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWSolidAngleMeasureWithUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWSolidAngleMeasureWithUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWSolidAngleUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWSolidAngleUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWThermodynamicTemperatureUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWThermodynamicTemperatureUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWUncertaintyMeasureWithUnit.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWUncertaintyMeasureWithUnit.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWVersionedActionRequest.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWVersionedActionRequest.hxx delete mode 100644 src/RWStepBasic/RWStepBasic_RWWeekOfYearAndDayDate.cdl create mode 100644 src/RWStepBasic/RWStepBasic_RWWeekOfYearAndDayDate.hxx create mode 100644 src/RWStepDimTol/FILES delete mode 100644 src/RWStepDimTol/RWStepDimTol.cdl delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWAngularityTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWAngularityTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWCircularRunoutTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWCircularRunoutTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWCoaxialityTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWCoaxialityTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWCommonDatum.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWCommonDatum.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWConcentricityTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWConcentricityTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWCylindricityTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWCylindricityTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWDatum.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWDatum.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWDatumFeature.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWDatumFeature.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWDatumReference.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWDatumReference.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWDatumTarget.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWDatumTarget.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWFlatnessTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWFlatnessTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWGeoTolAndGeoTolWthDatRefAndModGeoTolAndPosTol.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWGeoTolAndGeoTolWthDatRefAndModGeoTolAndPosTol.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWGeometricTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWGeometricTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWGeometricToleranceRelationship.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWGeometricToleranceRelationship.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWGeometricToleranceWithDatumReference.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWGeometricToleranceWithDatumReference.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWLineProfileTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWLineProfileTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWModifiedGeometricTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWModifiedGeometricTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWParallelismTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWParallelismTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWPerpendicularityTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWPerpendicularityTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWPlacedDatumTargetFeature.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWPlacedDatumTargetFeature.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWPositionTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWPositionTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWRoundnessTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWRoundnessTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWStraightnessTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWStraightnessTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWSurfaceProfileTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWSurfaceProfileTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWSymmetryTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWSymmetryTolerance.hxx delete mode 100644 src/RWStepDimTol/RWStepDimTol_RWTotalRunoutTolerance.cdl create mode 100644 src/RWStepDimTol/RWStepDimTol_RWTotalRunoutTolerance.hxx create mode 100644 src/RWStepElement/FILES delete mode 100644 src/RWStepElement/RWStepElement.cdl delete mode 100644 src/RWStepElement/RWStepElement_RWAnalysisItemWithinRepresentation.cdl create mode 100644 src/RWStepElement/RWStepElement_RWAnalysisItemWithinRepresentation.hxx delete mode 100644 src/RWStepElement/RWStepElement_RWCurve3dElementDescriptor.cdl create mode 100644 src/RWStepElement/RWStepElement_RWCurve3dElementDescriptor.hxx delete mode 100644 src/RWStepElement/RWStepElement_RWCurveElementEndReleasePacket.cdl create mode 100644 src/RWStepElement/RWStepElement_RWCurveElementEndReleasePacket.hxx delete mode 100644 src/RWStepElement/RWStepElement_RWCurveElementSectionDefinition.cdl create mode 100644 src/RWStepElement/RWStepElement_RWCurveElementSectionDefinition.hxx delete mode 100644 src/RWStepElement/RWStepElement_RWCurveElementSectionDerivedDefinitions.cdl create mode 100644 src/RWStepElement/RWStepElement_RWCurveElementSectionDerivedDefinitions.hxx delete mode 100644 src/RWStepElement/RWStepElement_RWElementDescriptor.cdl create mode 100644 src/RWStepElement/RWStepElement_RWElementDescriptor.hxx delete mode 100644 src/RWStepElement/RWStepElement_RWElementMaterial.cdl create mode 100644 src/RWStepElement/RWStepElement_RWElementMaterial.hxx delete mode 100644 src/RWStepElement/RWStepElement_RWSurface3dElementDescriptor.cdl create mode 100644 src/RWStepElement/RWStepElement_RWSurface3dElementDescriptor.hxx delete mode 100644 src/RWStepElement/RWStepElement_RWSurfaceElementProperty.cdl create mode 100644 src/RWStepElement/RWStepElement_RWSurfaceElementProperty.hxx delete mode 100644 src/RWStepElement/RWStepElement_RWSurfaceSection.cdl create mode 100644 src/RWStepElement/RWStepElement_RWSurfaceSection.hxx delete mode 100644 src/RWStepElement/RWStepElement_RWSurfaceSectionField.cdl create mode 100644 src/RWStepElement/RWStepElement_RWSurfaceSectionField.hxx delete mode 100644 src/RWStepElement/RWStepElement_RWSurfaceSectionFieldConstant.cdl create mode 100644 src/RWStepElement/RWStepElement_RWSurfaceSectionFieldConstant.hxx delete mode 100644 src/RWStepElement/RWStepElement_RWSurfaceSectionFieldVarying.cdl create mode 100644 src/RWStepElement/RWStepElement_RWSurfaceSectionFieldVarying.hxx delete mode 100644 src/RWStepElement/RWStepElement_RWUniformSurfaceSection.cdl create mode 100644 src/RWStepElement/RWStepElement_RWUniformSurfaceSection.hxx delete mode 100644 src/RWStepElement/RWStepElement_RWVolume3dElementDescriptor.cdl create mode 100644 src/RWStepElement/RWStepElement_RWVolume3dElementDescriptor.hxx create mode 100644 src/RWStepFEA/FILES delete mode 100644 src/RWStepFEA/RWStepFEA.cdl delete mode 100644 src/RWStepFEA/RWStepFEA_RWAlignedCurve3dElementCoordinateSystem.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWAlignedCurve3dElementCoordinateSystem.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWAlignedSurface3dElementCoordinateSystem.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWAlignedSurface3dElementCoordinateSystem.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWArbitraryVolume3dElementCoordinateSystem.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWArbitraryVolume3dElementCoordinateSystem.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWConstantSurface3dElementCoordinateSystem.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWConstantSurface3dElementCoordinateSystem.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWCurve3dElementProperty.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWCurve3dElementProperty.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWCurve3dElementRepresentation.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWCurve3dElementRepresentation.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWCurveElementEndOffset.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWCurveElementEndOffset.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWCurveElementEndRelease.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWCurveElementEndRelease.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWCurveElementInterval.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWCurveElementInterval.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWCurveElementIntervalConstant.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWCurveElementIntervalConstant.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWCurveElementIntervalLinearlyVarying.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWCurveElementIntervalLinearlyVarying.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWCurveElementLocation.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWCurveElementLocation.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWDummyNode.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWDummyNode.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWElementGeometricRelationship.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWElementGeometricRelationship.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWElementGroup.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWElementGroup.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWElementRepresentation.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWElementRepresentation.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaAreaDensity.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaAreaDensity.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaAxis2Placement3d.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaAxis2Placement3d.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaCurveSectionGeometricRelationship.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaCurveSectionGeometricRelationship.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaGroup.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaGroup.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaLinearElasticity.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaLinearElasticity.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaMassDensity.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaMassDensity.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaMaterialPropertyRepresentation.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaMaterialPropertyRepresentation.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaMaterialPropertyRepresentationItem.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaMaterialPropertyRepresentationItem.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaModel.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaModel.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaModel3d.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaModel3d.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaModelDefinition.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaModelDefinition.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaMoistureAbsorption.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaMoistureAbsorption.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaParametricPoint.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaParametricPoint.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaRepresentationItem.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaRepresentationItem.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaSecantCoefficientOfLinearThermalExpansion.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaSecantCoefficientOfLinearThermalExpansion.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaShellBendingStiffness.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaShellBendingStiffness.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaShellMembraneBendingCouplingStiffness.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaShellMembraneBendingCouplingStiffness.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaShellMembraneStiffness.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaShellMembraneStiffness.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaShellShearStiffness.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaShellShearStiffness.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaSurfaceSectionGeometricRelationship.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaSurfaceSectionGeometricRelationship.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFeaTangentialCoefficientOfLinearThermalExpansion.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFeaTangentialCoefficientOfLinearThermalExpansion.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFreedomAndCoefficient.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFreedomAndCoefficient.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWFreedomsList.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWFreedomsList.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWGeometricNode.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWGeometricNode.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWNode.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWNode.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWNodeDefinition.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWNodeDefinition.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWNodeGroup.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWNodeGroup.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWNodeRepresentation.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWNodeRepresentation.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWNodeSet.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWNodeSet.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWNodeWithSolutionCoordinateSystem.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWNodeWithSolutionCoordinateSystem.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWNodeWithVector.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWNodeWithVector.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWParametricCurve3dElementCoordinateDirection.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWParametricCurve3dElementCoordinateDirection.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWParametricCurve3dElementCoordinateSystem.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWParametricCurve3dElementCoordinateSystem.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWParametricSurface3dElementCoordinateSystem.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWParametricSurface3dElementCoordinateSystem.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWSurface3dElementRepresentation.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWSurface3dElementRepresentation.hxx delete mode 100644 src/RWStepFEA/RWStepFEA_RWVolume3dElementRepresentation.cdl create mode 100644 src/RWStepFEA/RWStepFEA_RWVolume3dElementRepresentation.hxx delete mode 100644 src/RWStepGeom/RWStepGeom.cdl delete mode 100644 src/RWStepGeom/RWStepGeom_CMPLRS.edl delete mode 100644 src/RWStepGeom/RWStepGeom_RWAxis1Placement.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWAxis1Placement.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWAxis2Placement2d.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWAxis2Placement2d.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWAxis2Placement3d.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWAxis2Placement3d.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWBSplineCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWBSplineCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWBSplineCurveWithKnots.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWBSplineCurveWithKnots.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWBSplineCurveWithKnotsAndRationalBSplineCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWBSplineCurveWithKnotsAndRationalBSplineCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWBSplineSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWBSplineSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWBSplineSurfaceWithKnots.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWBSplineSurfaceWithKnots.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWBSplineSurfaceWithKnotsAndRationalBSplineSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWBSplineSurfaceWithKnotsAndRationalBSplineSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWBezierCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWBezierCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWBezierCurveAndRationalBSplineCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWBezierCurveAndRationalBSplineCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWBezierSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWBezierSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWBezierSurfaceAndRationalBSplineSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWBezierSurfaceAndRationalBSplineSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWBoundaryCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWBoundaryCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWBoundedCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWBoundedCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWBoundedSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWBoundedSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWCartesianPoint.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWCartesianPoint.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWCartesianTransformationOperator.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWCartesianTransformationOperator.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWCartesianTransformationOperator3d.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWCartesianTransformationOperator3d.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWCircle.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWCircle.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWCompositeCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWCompositeCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWCompositeCurveOnSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWCompositeCurveOnSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWCompositeCurveSegment.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWCompositeCurveSegment.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWConic.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWConic.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWConicalSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWConicalSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWCurveBoundedSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWCurveBoundedSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWCurveReplica.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWCurveReplica.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWCylindricalSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWCylindricalSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWDegeneratePcurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWDegeneratePcurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWDegenerateToroidalSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWDegenerateToroidalSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWDirection.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWDirection.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWElementarySurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWElementarySurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWEllipse.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWEllipse.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWEvaluatedDegeneratePcurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWEvaluatedDegeneratePcurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWGeomRepContextAndGlobUnitAssCtxAndGlobUncertaintyAssCtx.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWGeomRepContextAndGlobUnitAssCtxAndGlobUncertaintyAssCtx.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWGeometricRepresentationContext.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWGeometricRepresentationContext.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWGeometricRepresentationContextAndGlobalUnitAssignedContext.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWGeometricRepresentationContextAndGlobalUnitAssignedContext.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWGeometricRepresentationContextAndParametricRepresentationContext.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWGeometricRepresentationContextAndParametricRepresentationContext.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWGeometricRepresentationItem.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWGeometricRepresentationItem.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWHyperbola.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWHyperbola.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWIntersectionCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWIntersectionCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWLine.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWLine.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWOffsetCurve3d.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWOffsetCurve3d.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWOffsetSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWOffsetSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWOrientedSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWOrientedSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWOuterBoundaryCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWOuterBoundaryCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWParabola.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWParabola.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWPcurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWPcurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWPlacement.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWPlacement.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWPlane.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWPlane.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWPoint.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWPoint.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWPointOnCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWPointOnCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWPointOnSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWPointOnSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWPointReplica.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWPointReplica.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWPolyline.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWPolyline.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWQuasiUniformCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWQuasiUniformCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWQuasiUniformCurveAndRationalBSplineCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWQuasiUniformCurveAndRationalBSplineCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWQuasiUniformSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWQuasiUniformSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWQuasiUniformSurfaceAndRationalBSplineSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWQuasiUniformSurfaceAndRationalBSplineSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWRationalBSplineCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWRationalBSplineCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWRationalBSplineSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWRationalBSplineSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWRectangularCompositeSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWRectangularCompositeSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWRectangularTrimmedSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWRectangularTrimmedSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWReparametrisedCompositeCurveSegment.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWReparametrisedCompositeCurveSegment.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWSeamCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWSeamCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWSphericalSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWSphericalSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWSurfaceCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWSurfaceCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWSurfaceCurveAndBoundedCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWSurfaceCurveAndBoundedCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWSurfaceOfLinearExtrusion.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWSurfaceOfLinearExtrusion.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWSurfaceOfRevolution.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWSurfaceOfRevolution.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWSurfacePatch.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWSurfacePatch.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWSurfaceReplica.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWSurfaceReplica.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWSweptSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWSweptSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWToroidalSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWToroidalSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWTrimmedCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWTrimmedCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWUniformCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWUniformCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWUniformCurveAndRationalBSplineCurve.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWUniformCurveAndRationalBSplineCurve.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWUniformSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWUniformSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWUniformSurfaceAndRationalBSplineSurface.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWUniformSurfaceAndRationalBSplineSurface.hxx delete mode 100644 src/RWStepGeom/RWStepGeom_RWVector.cdl create mode 100644 src/RWStepGeom/RWStepGeom_RWVector.hxx create mode 100644 src/RWStepRepr/FILES delete mode 100644 src/RWStepRepr/RWStepRepr.cdl delete mode 100644 src/RWStepRepr/RWStepRepr_RWAssemblyComponentUsage.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWAssemblyComponentUsage.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWAssemblyComponentUsageSubstitute.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWAssemblyComponentUsageSubstitute.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWCompositeShapeAspect.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWCompositeShapeAspect.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWCompoundRepresentationItem.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWCompoundRepresentationItem.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWConfigurationDesign.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWConfigurationDesign.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWConfigurationEffectivity.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWConfigurationEffectivity.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWConfigurationItem.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWConfigurationItem.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWDataEnvironment.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWDataEnvironment.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWDefinitionalRepresentation.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWDefinitionalRepresentation.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWDerivedShapeAspect.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWDerivedShapeAspect.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWDescriptiveRepresentationItem.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWDescriptiveRepresentationItem.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWExtension.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWExtension.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWFunctionallyDefinedTransformation.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWFunctionallyDefinedTransformation.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWGlobalUncertaintyAssignedContext.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWGlobalUncertaintyAssignedContext.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWGlobalUnitAssignedContext.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWGlobalUnitAssignedContext.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWItemDefinedTransformation.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWItemDefinedTransformation.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWMakeFromUsageOption.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWMakeFromUsageOption.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWMappedItem.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWMappedItem.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWMaterialDesignation.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWMaterialDesignation.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWMaterialProperty.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWMaterialProperty.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWMaterialPropertyRepresentation.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWMaterialPropertyRepresentation.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWMeasureRepresentationItem.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWMeasureRepresentationItem.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWParametricRepresentationContext.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWParametricRepresentationContext.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWProductConcept.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWProductConcept.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWProductDefinitionShape.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWProductDefinitionShape.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWPropertyDefinition.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWPropertyDefinition.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWPropertyDefinitionRelationship.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWPropertyDefinitionRelationship.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWPropertyDefinitionRepresentation.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWPropertyDefinitionRepresentation.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWQuantifiedAssemblyComponentUsage.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWQuantifiedAssemblyComponentUsage.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWReprItemAndLengthMeasureWithUnit.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWReprItemAndLengthMeasureWithUnit.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWRepresentation.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWRepresentation.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWRepresentationContext.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWRepresentationContext.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWRepresentationItem.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWRepresentationItem.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWRepresentationMap.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWRepresentationMap.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWRepresentationRelationship.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWRepresentationRelationship.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWRepresentationRelationshipWithTransformation.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWRepresentationRelationshipWithTransformation.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWShapeAspect.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWShapeAspect.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWShapeAspectDerivingRelationship.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWShapeAspectDerivingRelationship.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWShapeAspectRelationship.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWShapeAspectRelationship.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWShapeAspectTransition.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWShapeAspectTransition.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWShapeRepresentationRelationshipWithTransformation.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWShapeRepresentationRelationshipWithTransformation.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWSpecifiedHigherUsageOccurrence.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWSpecifiedHigherUsageOccurrence.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWStructuralResponseProperty.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWStructuralResponseProperty.hxx delete mode 100644 src/RWStepRepr/RWStepRepr_RWStructuralResponsePropertyDefinitionRepresentation.cdl create mode 100644 src/RWStepRepr/RWStepRepr_RWStructuralResponsePropertyDefinitionRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape.cdl delete mode 100644 src/RWStepShape/RWStepShape_RWAdvancedBrepShapeRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWAdvancedBrepShapeRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWAdvancedFace.cdl create mode 100644 src/RWStepShape/RWStepShape_RWAdvancedFace.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWAngularLocation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWAngularLocation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWAngularSize.cdl create mode 100644 src/RWStepShape/RWStepShape_RWAngularSize.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWBlock.cdl create mode 100644 src/RWStepShape/RWStepShape_RWBlock.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWBooleanResult.cdl create mode 100644 src/RWStepShape/RWStepShape_RWBooleanResult.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWBoxDomain.cdl create mode 100644 src/RWStepShape/RWStepShape_RWBoxDomain.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWBoxedHalfSpace.cdl create mode 100644 src/RWStepShape/RWStepShape_RWBoxedHalfSpace.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWBrepWithVoids.cdl create mode 100644 src/RWStepShape/RWStepShape_RWBrepWithVoids.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWClosedShell.cdl create mode 100644 src/RWStepShape/RWStepShape_RWClosedShell.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWCompoundShapeRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWCompoundShapeRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWConnectedEdgeSet.cdl create mode 100644 src/RWStepShape/RWStepShape_RWConnectedEdgeSet.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWConnectedFaceSet.cdl create mode 100644 src/RWStepShape/RWStepShape_RWConnectedFaceSet.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWConnectedFaceShapeRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWConnectedFaceShapeRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWConnectedFaceSubSet.cdl create mode 100644 src/RWStepShape/RWStepShape_RWConnectedFaceSubSet.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWContextDependentShapeRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWContextDependentShapeRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWCsgShapeRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWCsgShapeRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWCsgSolid.cdl create mode 100644 src/RWStepShape/RWStepShape_RWCsgSolid.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWDefinitionalRepresentationAndShapeRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWDefinitionalRepresentationAndShapeRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWDimensionalCharacteristicRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWDimensionalCharacteristicRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWDimensionalLocation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWDimensionalLocation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWDimensionalLocationWithPath.cdl create mode 100644 src/RWStepShape/RWStepShape_RWDimensionalLocationWithPath.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWDimensionalSize.cdl create mode 100644 src/RWStepShape/RWStepShape_RWDimensionalSize.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWDimensionalSizeWithPath.cdl create mode 100644 src/RWStepShape/RWStepShape_RWDimensionalSizeWithPath.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWEdge.cdl create mode 100644 src/RWStepShape/RWStepShape_RWEdge.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWEdgeBasedWireframeModel.cdl create mode 100644 src/RWStepShape/RWStepShape_RWEdgeBasedWireframeModel.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWEdgeBasedWireframeShapeRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWEdgeBasedWireframeShapeRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWEdgeCurve.cdl create mode 100644 src/RWStepShape/RWStepShape_RWEdgeCurve.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWEdgeLoop.cdl create mode 100644 src/RWStepShape/RWStepShape_RWEdgeLoop.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWExtrudedAreaSolid.cdl create mode 100644 src/RWStepShape/RWStepShape_RWExtrudedAreaSolid.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWExtrudedFaceSolid.cdl create mode 100644 src/RWStepShape/RWStepShape_RWExtrudedFaceSolid.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWFace.cdl create mode 100644 src/RWStepShape/RWStepShape_RWFace.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWFaceBasedSurfaceModel.cdl create mode 100644 src/RWStepShape/RWStepShape_RWFaceBasedSurfaceModel.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWFaceBound.cdl create mode 100644 src/RWStepShape/RWStepShape_RWFaceBound.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWFaceOuterBound.cdl create mode 100644 src/RWStepShape/RWStepShape_RWFaceOuterBound.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWFaceSurface.cdl create mode 100644 src/RWStepShape/RWStepShape_RWFaceSurface.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWFacetedBrep.cdl create mode 100644 src/RWStepShape/RWStepShape_RWFacetedBrep.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWFacetedBrepAndBrepWithVoids.cdl create mode 100644 src/RWStepShape/RWStepShape_RWFacetedBrepAndBrepWithVoids.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWFacetedBrepShapeRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWFacetedBrepShapeRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWGeometricCurveSet.cdl create mode 100644 src/RWStepShape/RWStepShape_RWGeometricCurveSet.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWGeometricSet.cdl create mode 100644 src/RWStepShape/RWStepShape_RWGeometricSet.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWGeometricallyBoundedSurfaceShapeRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWGeometricallyBoundedSurfaceShapeRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWGeometricallyBoundedWireframeShapeRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWGeometricallyBoundedWireframeShapeRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWHalfSpaceSolid.cdl create mode 100644 src/RWStepShape/RWStepShape_RWHalfSpaceSolid.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWLimitsAndFits.cdl create mode 100644 src/RWStepShape/RWStepShape_RWLimitsAndFits.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWLoop.cdl create mode 100644 src/RWStepShape/RWStepShape_RWLoop.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWLoopAndPath.cdl create mode 100644 src/RWStepShape/RWStepShape_RWLoopAndPath.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWManifoldSolidBrep.cdl create mode 100644 src/RWStepShape/RWStepShape_RWManifoldSolidBrep.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWManifoldSurfaceShapeRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWManifoldSurfaceShapeRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWMeasureQualification.cdl create mode 100644 src/RWStepShape/RWStepShape_RWMeasureQualification.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWMeasureRepresentationItemAndQualifiedRepresentationItem.cdl create mode 100644 src/RWStepShape/RWStepShape_RWMeasureRepresentationItemAndQualifiedRepresentationItem.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWNonManifoldSurfaceShapeRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWNonManifoldSurfaceShapeRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWOpenShell.cdl create mode 100644 src/RWStepShape/RWStepShape_RWOpenShell.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWOrientedClosedShell.cdl create mode 100644 src/RWStepShape/RWStepShape_RWOrientedClosedShell.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWOrientedEdge.cdl create mode 100644 src/RWStepShape/RWStepShape_RWOrientedEdge.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWOrientedFace.cdl create mode 100644 src/RWStepShape/RWStepShape_RWOrientedFace.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWOrientedOpenShell.cdl create mode 100644 src/RWStepShape/RWStepShape_RWOrientedOpenShell.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWOrientedPath.cdl create mode 100644 src/RWStepShape/RWStepShape_RWOrientedPath.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWPath.cdl create mode 100644 src/RWStepShape/RWStepShape_RWPath.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWPlusMinusTolerance.cdl create mode 100644 src/RWStepShape/RWStepShape_RWPlusMinusTolerance.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWPointRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWPointRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWPolyLoop.cdl create mode 100644 src/RWStepShape/RWStepShape_RWPolyLoop.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWPrecisionQualifier.cdl create mode 100644 src/RWStepShape/RWStepShape_RWPrecisionQualifier.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWQualifiedRepresentationItem.cdl create mode 100644 src/RWStepShape/RWStepShape_RWQualifiedRepresentationItem.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWRevolvedAreaSolid.cdl create mode 100644 src/RWStepShape/RWStepShape_RWRevolvedAreaSolid.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWRevolvedFaceSolid.cdl create mode 100644 src/RWStepShape/RWStepShape_RWRevolvedFaceSolid.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWRightAngularWedge.cdl create mode 100644 src/RWStepShape/RWStepShape_RWRightAngularWedge.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWRightCircularCone.cdl create mode 100644 src/RWStepShape/RWStepShape_RWRightCircularCone.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWRightCircularCylinder.cdl create mode 100644 src/RWStepShape/RWStepShape_RWRightCircularCylinder.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWSeamEdge.cdl create mode 100644 src/RWStepShape/RWStepShape_RWSeamEdge.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWShapeDefinitionRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWShapeDefinitionRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWShapeDimensionRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWShapeDimensionRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWShapeRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWShapeRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWShapeRepresentationWithParameters.cdl create mode 100644 src/RWStepShape/RWStepShape_RWShapeRepresentationWithParameters.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWShellBasedSurfaceModel.cdl create mode 100644 src/RWStepShape/RWStepShape_RWShellBasedSurfaceModel.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWSolidModel.cdl create mode 100644 src/RWStepShape/RWStepShape_RWSolidModel.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWSolidReplica.cdl create mode 100644 src/RWStepShape/RWStepShape_RWSolidReplica.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWSphere.cdl create mode 100644 src/RWStepShape/RWStepShape_RWSphere.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWSubedge.cdl create mode 100644 src/RWStepShape/RWStepShape_RWSubedge.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWSubface.cdl create mode 100644 src/RWStepShape/RWStepShape_RWSubface.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWSweptAreaSolid.cdl create mode 100644 src/RWStepShape/RWStepShape_RWSweptAreaSolid.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWSweptFaceSolid.cdl create mode 100644 src/RWStepShape/RWStepShape_RWSweptFaceSolid.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWToleranceValue.cdl create mode 100644 src/RWStepShape/RWStepShape_RWToleranceValue.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWTopologicalRepresentationItem.cdl create mode 100644 src/RWStepShape/RWStepShape_RWTopologicalRepresentationItem.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWTorus.cdl create mode 100644 src/RWStepShape/RWStepShape_RWTorus.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWTransitionalShapeRepresentation.cdl create mode 100644 src/RWStepShape/RWStepShape_RWTransitionalShapeRepresentation.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWTypeQualifier.cdl create mode 100644 src/RWStepShape/RWStepShape_RWTypeQualifier.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWVertex.cdl create mode 100644 src/RWStepShape/RWStepShape_RWVertex.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWVertexLoop.cdl create mode 100644 src/RWStepShape/RWStepShape_RWVertexLoop.hxx delete mode 100644 src/RWStepShape/RWStepShape_RWVertexPoint.cdl create mode 100644 src/RWStepShape/RWStepShape_RWVertexPoint.hxx create mode 100644 src/RWStepVisual/FILES delete mode 100644 src/RWStepVisual/RWStepVisual.cdl delete mode 100644 src/RWStepVisual/RWStepVisual_RWAreaInSet.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWAreaInSet.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWBackgroundColour.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWBackgroundColour.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWCameraImage.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWCameraImage.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWCameraModel.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWCameraModel.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWCameraModelD2.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWCameraModelD2.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWCameraModelD3.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWCameraModelD3.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWCameraUsage.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWCameraUsage.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWColour.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWColour.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWColourRgb.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWColourRgb.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWColourSpecification.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWColourSpecification.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWCompositeText.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWCompositeText.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWCompositeTextWithExtent.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWCompositeTextWithExtent.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWContextDependentInvisibility.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWContextDependentInvisibility.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWContextDependentOverRidingStyledItem.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWContextDependentOverRidingStyledItem.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWCurveStyle.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWCurveStyle.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWCurveStyleFont.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWCurveStyleFont.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWCurveStyleFontPattern.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWCurveStyleFontPattern.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWDraughtingModel.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWDraughtingModel.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWDraughtingPreDefinedColour.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWDraughtingPreDefinedColour.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWDraughtingPreDefinedCurveFont.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWDraughtingPreDefinedCurveFont.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWExternallyDefinedCurveFont.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWExternallyDefinedCurveFont.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWFillAreaStyle.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWFillAreaStyle.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWFillAreaStyleColour.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWFillAreaStyleColour.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWInvisibility.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWInvisibility.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWMechanicalDesignGeometricPresentationArea.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWMechanicalDesignGeometricPresentationArea.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWMechanicalDesignGeometricPresentationRepresentation.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWMechanicalDesignGeometricPresentationRepresentation.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWOverRidingStyledItem.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWOverRidingStyledItem.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPlanarBox.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPlanarBox.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPlanarExtent.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPlanarExtent.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPointStyle.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPointStyle.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPreDefinedColour.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPreDefinedColour.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPreDefinedCurveFont.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPreDefinedCurveFont.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPreDefinedItem.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPreDefinedItem.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationArea.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationArea.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationLayerAssignment.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationLayerAssignment.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationLayerUsage.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationLayerUsage.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationRepresentation.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationRepresentation.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationSet.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationSet.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationSize.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationSize.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationStyleAssignment.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationStyleAssignment.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationStyleByContext.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationStyleByContext.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationView.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPresentationView.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWPresentedItemRepresentation.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWPresentedItemRepresentation.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWStyledItem.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWStyledItem.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceSideStyle.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceSideStyle.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceStyleBoundary.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceStyleBoundary.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceStyleControlGrid.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceStyleControlGrid.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceStyleFillArea.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceStyleFillArea.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceStyleParameterLine.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceStyleParameterLine.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceStyleSegmentationCurve.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceStyleSegmentationCurve.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceStyleSilhouette.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceStyleSilhouette.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceStyleUsage.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWSurfaceStyleUsage.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWTemplate.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWTemplate.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWTemplateInstance.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWTemplateInstance.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWTextLiteral.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWTextLiteral.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWTextStyle.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWTextStyle.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWTextStyleForDefinedFont.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWTextStyleForDefinedFont.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWTextStyleWithBoxCharacteristics.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWTextStyleWithBoxCharacteristics.hxx delete mode 100644 src/RWStepVisual/RWStepVisual_RWViewVolume.cdl create mode 100644 src/RWStepVisual/RWStepVisual_RWViewVolume.hxx create mode 100644 src/RWStl/FILES delete mode 100644 src/RWStl/RWStl.cdl create mode 100644 src/RWStl/RWStl.hxx delete mode 100644 src/Resource/Resource.cdl delete mode 100644 src/Resource/Resource_CMPLRS.edl create mode 100644 src/Resource/Resource_FormatType.hxx delete mode 100644 src/Resource/Resource_LexicalCompare.cdl create mode 100644 src/Resource/Resource_LexicalCompare.hxx delete mode 100644 src/Resource/Resource_Manager.cdl create mode 100644 src/Resource/Resource_Manager.hxx create mode 100644 src/Resource/Resource_NoSuchResource.hxx delete mode 100644 src/Resource/Resource_Unicode.cdl create mode 100644 src/Resource/Resource_Unicode.hxx delete mode 100644 src/STEPCAFControl/STEPCAFControl.cdl delete mode 100644 src/STEPCAFControl/STEPCAFControl_ActorWrite.cdl create mode 100644 src/STEPCAFControl/STEPCAFControl_ActorWrite.hxx delete mode 100644 src/STEPCAFControl/STEPCAFControl_Controller.cdl create mode 100644 src/STEPCAFControl/STEPCAFControl_Controller.hxx create mode 100644 src/STEPCAFControl/STEPCAFControl_DictionaryOfExternFile.hxx create mode 100644 src/STEPCAFControl/STEPCAFControl_DictionaryOfExternFile_0.cxx delete mode 100644 src/STEPCAFControl/STEPCAFControl_ExternFile.cdl create mode 100644 src/STEPCAFControl/STEPCAFControl_ExternFile.hxx create mode 100644 src/STEPCAFControl/STEPCAFControl_IteratorOfDictionaryOfExternFile.hxx create mode 100644 src/STEPCAFControl/STEPCAFControl_IteratorOfDictionaryOfExternFile_0.cxx delete mode 100644 src/STEPCAFControl/STEPCAFControl_Reader.cdl create mode 100644 src/STEPCAFControl/STEPCAFControl_Reader.hxx create mode 100644 src/STEPCAFControl/STEPCAFControl_StackItemOfDictionaryOfExternFile.hxx create mode 100644 src/STEPCAFControl/STEPCAFControl_StackItemOfDictionaryOfExternFile_0.cxx delete mode 100644 src/STEPCAFControl/STEPCAFControl_Writer.cdl create mode 100644 src/STEPCAFControl/STEPCAFControl_Writer.hxx delete mode 100644 src/STEPConstruct/STEPConstruct.cdl create mode 100644 src/STEPConstruct/STEPConstruct.hxx delete mode 100644 src/STEPConstruct/STEPConstruct_AP203Context.cdl create mode 100644 src/STEPConstruct/STEPConstruct_AP203Context.hxx delete mode 100644 src/STEPConstruct/STEPConstruct_Assembly.cdl create mode 100644 src/STEPConstruct/STEPConstruct_Assembly.hxx delete mode 100644 src/STEPConstruct/STEPConstruct_ContextTool.cdl create mode 100644 src/STEPConstruct/STEPConstruct_ContextTool.hxx delete mode 100644 src/STEPConstruct/STEPConstruct_ExternRefs.cdl create mode 100644 src/STEPConstruct/STEPConstruct_ExternRefs.hxx delete mode 100644 src/STEPConstruct/STEPConstruct_Part.cdl create mode 100644 src/STEPConstruct/STEPConstruct_Part.hxx delete mode 100644 src/STEPConstruct/STEPConstruct_PointHasher.cdl create mode 100644 src/STEPConstruct/STEPConstruct_PointHasher.hxx delete mode 100644 src/STEPConstruct/STEPConstruct_Styles.cdl create mode 100644 src/STEPConstruct/STEPConstruct_Styles.hxx delete mode 100644 src/STEPConstruct/STEPConstruct_Tool.cdl create mode 100644 src/STEPConstruct/STEPConstruct_Tool.hxx delete mode 100644 src/STEPConstruct/STEPConstruct_UnitContext.cdl create mode 100644 src/STEPConstruct/STEPConstruct_UnitContext.hxx delete mode 100644 src/STEPConstruct/STEPConstruct_ValidationProps.cdl create mode 100644 src/STEPConstruct/STEPConstruct_ValidationProps.hxx create mode 100644 src/STEPControl/FILES delete mode 100644 src/STEPControl/STEPControl.cdl delete mode 100644 src/STEPControl/STEPControl_ActorRead.cdl create mode 100644 src/STEPControl/STEPControl_ActorRead.hxx delete mode 100644 src/STEPControl/STEPControl_ActorWrite.cdl create mode 100644 src/STEPControl/STEPControl_ActorWrite.hxx delete mode 100644 src/STEPControl/STEPControl_Controller.cdl create mode 100644 src/STEPControl/STEPControl_Controller.hxx delete mode 100644 src/STEPControl/STEPControl_Reader.cdl create mode 100644 src/STEPControl/STEPControl_Reader.hxx create mode 100644 src/STEPControl/STEPControl_StepModelType.hxx delete mode 100644 src/STEPControl/STEPControl_Writer.cdl create mode 100644 src/STEPControl/STEPControl_Writer.hxx create mode 100644 src/STEPEdit/FILES delete mode 100644 src/STEPEdit/STEPEdit.cdl create mode 100644 src/STEPEdit/STEPEdit.hxx delete mode 100644 src/STEPEdit/STEPEdit_EditContext.cdl create mode 100644 src/STEPEdit/STEPEdit_EditContext.hxx delete mode 100644 src/STEPEdit/STEPEdit_EditSDR.cdl create mode 100644 src/STEPEdit/STEPEdit_EditSDR.hxx delete mode 100644 src/STEPSelections/STEPSelections.cdl delete mode 100644 src/STEPSelections/STEPSelections_AssemblyComponent.cdl create mode 100644 src/STEPSelections/STEPSelections_AssemblyComponent.hxx delete mode 100644 src/STEPSelections/STEPSelections_AssemblyExplorer.cdl create mode 100644 src/STEPSelections/STEPSelections_AssemblyExplorer.hxx delete mode 100644 src/STEPSelections/STEPSelections_AssemblyLink.cdl create mode 100644 src/STEPSelections/STEPSelections_AssemblyLink.hxx delete mode 100644 src/STEPSelections/STEPSelections_Counter.cdl create mode 100644 src/STEPSelections/STEPSelections_Counter.hxx delete mode 100644 src/STEPSelections/STEPSelections_SelectAssembly.cdl create mode 100644 src/STEPSelections/STEPSelections_SelectAssembly.hxx delete mode 100644 src/STEPSelections/STEPSelections_SelectDerived.cdl create mode 100644 src/STEPSelections/STEPSelections_SelectDerived.hxx delete mode 100644 src/STEPSelections/STEPSelections_SelectFaces.cdl create mode 100644 src/STEPSelections/STEPSelections_SelectFaces.hxx delete mode 100644 src/STEPSelections/STEPSelections_SelectForTransfer.cdl create mode 100644 src/STEPSelections/STEPSelections_SelectForTransfer.hxx delete mode 100644 src/STEPSelections/STEPSelections_SelectGSCurves.cdl create mode 100644 src/STEPSelections/STEPSelections_SelectGSCurves.hxx delete mode 100644 src/STEPSelections/STEPSelections_SelectInstances.cdl create mode 100644 src/STEPSelections/STEPSelections_SelectInstances.hxx create mode 100644 src/SWDRAW/FILES delete mode 100644 src/SWDRAW/SWDRAW.cdl create mode 100644 src/SWDRAW/SWDRAW.hxx delete mode 100644 src/SWDRAW/SWDRAW_ShapeAnalysis.cdl create mode 100644 src/SWDRAW/SWDRAW_ShapeAnalysis.hxx delete mode 100644 src/SWDRAW/SWDRAW_ShapeCustom.cdl create mode 100644 src/SWDRAW/SWDRAW_ShapeCustom.hxx delete mode 100644 src/SWDRAW/SWDRAW_ShapeExtend.cdl create mode 100644 src/SWDRAW/SWDRAW_ShapeExtend.hxx delete mode 100644 src/SWDRAW/SWDRAW_ShapeFix.cdl create mode 100644 src/SWDRAW/SWDRAW_ShapeFix.hxx delete mode 100644 src/SWDRAW/SWDRAW_ShapeProcess.cdl create mode 100644 src/SWDRAW/SWDRAW_ShapeProcess.hxx delete mode 100644 src/SWDRAW/SWDRAW_ShapeProcessAPI.cdl create mode 100644 src/SWDRAW/SWDRAW_ShapeProcessAPI.hxx delete mode 100644 src/SWDRAW/SWDRAW_ShapeTool.cdl create mode 100644 src/SWDRAW/SWDRAW_ShapeTool.hxx delete mode 100644 src/SWDRAW/SWDRAW_ShapeUpgrade.cdl create mode 100644 src/SWDRAW/SWDRAW_ShapeUpgrade.hxx delete mode 100644 src/Select3D/Select3D.cdl delete mode 100644 src/SelectBasics/SelectBasics.cdl create mode 100644 src/SelectBasics/SelectBasics.hxx delete mode 100644 src/SelectBasics/SelectBasics_EntityOwner.cdl create mode 100644 src/SelectBasics/SelectBasics_EntityOwner.hxx delete mode 100644 src/SelectBasics/SelectBasics_SensitiveEntity.cdl create mode 100644 src/SelectBasics/SelectBasics_SensitiveEntity.hxx delete mode 100644 src/SelectMgr/SelectMgr.cdl delete mode 100644 src/SelectMgr/SelectMgr_AndFilter.cdl create mode 100644 src/SelectMgr/SelectMgr_AndFilter.hxx delete mode 100644 src/SelectMgr/SelectMgr_CompositionFilter.cdl create mode 100644 src/SelectMgr/SelectMgr_CompositionFilter.hxx delete mode 100644 src/SelectMgr/SelectMgr_EntityOwner.cdl create mode 100644 src/SelectMgr/SelectMgr_EntityOwner.hxx delete mode 100644 src/SelectMgr/SelectMgr_Filter.cdl create mode 100644 src/SelectMgr/SelectMgr_Filter.hxx delete mode 100644 src/SelectMgr/SelectMgr_OrFilter.cdl create mode 100644 src/SelectMgr/SelectMgr_OrFilter.hxx create mode 100644 src/SelectMgr/SelectMgr_SOPtr.hxx delete mode 100644 src/SelectMgr/SelectMgr_SelectableObject.cdl create mode 100644 src/SelectMgr/SelectMgr_SelectableObject.hxx delete mode 100644 src/SelectMgr/SelectMgr_SelectionManager.cdl create mode 100644 src/SelectMgr/SelectMgr_SelectionManager.hxx delete mode 100644 src/SelectMgr/SelectMgr_SortCriterion.cdl create mode 100644 src/SelectMgr/SelectMgr_SortCriterion.hxx create mode 100644 src/SelectMgr/SelectMgr_StateOfSelection.hxx create mode 100644 src/SelectMgr/SelectMgr_TypeOfBVHUpdate.hxx create mode 100644 src/SelectMgr/SelectMgr_TypeOfUpdate.hxx create mode 100644 src/ShapeAlgo/FILES delete mode 100644 src/ShapeAlgo/ShapeAlgo.cdl create mode 100644 src/ShapeAlgo/ShapeAlgo.hxx delete mode 100644 src/ShapeAlgo/ShapeAlgo_AlgoContainer.cdl create mode 100644 src/ShapeAlgo/ShapeAlgo_AlgoContainer.hxx delete mode 100644 src/ShapeAlgo/ShapeAlgo_ToolContainer.cdl create mode 100644 src/ShapeAlgo/ShapeAlgo_ToolContainer.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_CheckSmallFace.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_CheckSmallFace.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_Curve.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_Curve.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_Edge.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_Edge.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_FreeBoundData.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_FreeBoundData.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_FreeBounds.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_FreeBounds.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_FreeBoundsProperties.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_FreeBoundsProperties.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_Geom.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_Geom.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_ShapeContents.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_ShapeContents.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_ShapeTolerance.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_ShapeTolerance.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_Shell.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_Shell.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_Surface.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_Surface.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_TransferParameters.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_TransferParameters.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_TransferParametersProj.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_TransferParametersProj.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_Wire.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_Wire.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_WireOrder.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_WireOrder.hxx delete mode 100644 src/ShapeAnalysis/ShapeAnalysis_WireVertex.cdl create mode 100644 src/ShapeAnalysis/ShapeAnalysis_WireVertex.hxx create mode 100644 src/ShapeBuild/FILES delete mode 100644 src/ShapeBuild/ShapeBuild.cdl create mode 100644 src/ShapeBuild/ShapeBuild.hxx delete mode 100644 src/ShapeBuild/ShapeBuild_Edge.cdl create mode 100644 src/ShapeBuild/ShapeBuild_Edge.hxx delete mode 100644 src/ShapeBuild/ShapeBuild_ReShape.cdl create mode 100644 src/ShapeBuild/ShapeBuild_ReShape.hxx delete mode 100644 src/ShapeBuild/ShapeBuild_Vertex.cdl create mode 100644 src/ShapeBuild/ShapeBuild_Vertex.hxx create mode 100644 src/ShapeConstruct/FILES delete mode 100644 src/ShapeConstruct/ShapeConstruct.cdl create mode 100644 src/ShapeConstruct/ShapeConstruct.hxx delete mode 100644 src/ShapeConstruct/ShapeConstruct_CompBezierCurves2dToBSplineCurve2d.cdl create mode 100644 src/ShapeConstruct/ShapeConstruct_CompBezierCurves2dToBSplineCurve2d.hxx delete mode 100644 src/ShapeConstruct/ShapeConstruct_CompBezierCurvesToBSplineCurve.cdl create mode 100644 src/ShapeConstruct/ShapeConstruct_CompBezierCurvesToBSplineCurve.hxx delete mode 100644 src/ShapeConstruct/ShapeConstruct_Curve.cdl create mode 100644 src/ShapeConstruct/ShapeConstruct_Curve.hxx delete mode 100644 src/ShapeConstruct/ShapeConstruct_MakeTriangulation.cdl create mode 100644 src/ShapeConstruct/ShapeConstruct_MakeTriangulation.hxx delete mode 100644 src/ShapeConstruct/ShapeConstruct_ProjectCurveOnSurface.cdl create mode 100644 src/ShapeConstruct/ShapeConstruct_ProjectCurveOnSurface.hxx create mode 100644 src/ShapeCustom/FILES delete mode 100644 src/ShapeCustom/ShapeCustom.cdl create mode 100644 src/ShapeCustom/ShapeCustom.hxx delete mode 100644 src/ShapeCustom/ShapeCustom_BSplineRestriction.cdl create mode 100644 src/ShapeCustom/ShapeCustom_BSplineRestriction.hxx delete mode 100644 src/ShapeCustom/ShapeCustom_ConvertToBSpline.cdl create mode 100644 src/ShapeCustom/ShapeCustom_ConvertToBSpline.hxx delete mode 100644 src/ShapeCustom/ShapeCustom_ConvertToRevolution.cdl create mode 100644 src/ShapeCustom/ShapeCustom_ConvertToRevolution.hxx delete mode 100644 src/ShapeCustom/ShapeCustom_Curve.cdl create mode 100644 src/ShapeCustom/ShapeCustom_Curve.hxx delete mode 100644 src/ShapeCustom/ShapeCustom_Curve2d.cdl create mode 100644 src/ShapeCustom/ShapeCustom_Curve2d.hxx delete mode 100644 src/ShapeCustom/ShapeCustom_DirectModification.cdl create mode 100644 src/ShapeCustom/ShapeCustom_DirectModification.hxx delete mode 100644 src/ShapeCustom/ShapeCustom_Modification.cdl create mode 100644 src/ShapeCustom/ShapeCustom_Modification.hxx delete mode 100644 src/ShapeCustom/ShapeCustom_RestrictionParameters.cdl create mode 100644 src/ShapeCustom/ShapeCustom_RestrictionParameters.hxx delete mode 100644 src/ShapeCustom/ShapeCustom_Surface.cdl create mode 100644 src/ShapeCustom/ShapeCustom_Surface.hxx delete mode 100644 src/ShapeCustom/ShapeCustom_SweptToElementary.cdl create mode 100644 src/ShapeCustom/ShapeCustom_SweptToElementary.hxx delete mode 100644 src/ShapeCustom/ShapeCustom_TrsfModification.cdl create mode 100644 src/ShapeCustom/ShapeCustom_TrsfModification.hxx delete mode 100644 src/ShapeExtend/ShapeExtend.cdl create mode 100644 src/ShapeExtend/ShapeExtend.hxx delete mode 100644 src/ShapeExtend/ShapeExtend_BasicMsgRegistrator.cdl create mode 100644 src/ShapeExtend/ShapeExtend_BasicMsgRegistrator.hxx delete mode 100644 src/ShapeExtend/ShapeExtend_ComplexCurve.cdl create mode 100644 src/ShapeExtend/ShapeExtend_ComplexCurve.hxx delete mode 100644 src/ShapeExtend/ShapeExtend_CompositeSurface.cdl create mode 100644 src/ShapeExtend/ShapeExtend_CompositeSurface.hxx delete mode 100644 src/ShapeExtend/ShapeExtend_Explorer.cdl create mode 100644 src/ShapeExtend/ShapeExtend_Explorer.hxx delete mode 100644 src/ShapeExtend/ShapeExtend_MsgRegistrator.cdl create mode 100644 src/ShapeExtend/ShapeExtend_MsgRegistrator.hxx create mode 100644 src/ShapeExtend/ShapeExtend_Parametrisation.hxx create mode 100644 src/ShapeExtend/ShapeExtend_Status.hxx delete mode 100644 src/ShapeExtend/ShapeExtend_WireData.cdl create mode 100644 src/ShapeExtend/ShapeExtend_WireData.hxx delete mode 100644 src/ShapeFix/ShapeFix.cdl create mode 100644 src/ShapeFix/ShapeFix.hxx delete mode 100644 src/ShapeFix/ShapeFix_ComposeShell.cdl create mode 100644 src/ShapeFix/ShapeFix_ComposeShell.hxx delete mode 100644 src/ShapeFix/ShapeFix_Edge.cdl create mode 100644 src/ShapeFix/ShapeFix_Edge.hxx delete mode 100644 src/ShapeFix/ShapeFix_EdgeConnect.cdl create mode 100644 src/ShapeFix/ShapeFix_EdgeConnect.hxx delete mode 100644 src/ShapeFix/ShapeFix_EdgeProjAux.cdl create mode 100644 src/ShapeFix/ShapeFix_EdgeProjAux.hxx delete mode 100644 src/ShapeFix/ShapeFix_Face.cdl create mode 100644 src/ShapeFix/ShapeFix_Face.hxx delete mode 100644 src/ShapeFix/ShapeFix_FaceConnect.cdl create mode 100644 src/ShapeFix/ShapeFix_FaceConnect.hxx delete mode 100644 src/ShapeFix/ShapeFix_FixSmallFace.cdl create mode 100644 src/ShapeFix/ShapeFix_FixSmallFace.hxx delete mode 100644 src/ShapeFix/ShapeFix_FixSmallSolid.cdl create mode 100644 src/ShapeFix/ShapeFix_FixSmallSolid.hxx delete mode 100644 src/ShapeFix/ShapeFix_FreeBounds.cdl create mode 100644 src/ShapeFix/ShapeFix_FreeBounds.hxx delete mode 100644 src/ShapeFix/ShapeFix_IntersectionTool.cdl create mode 100644 src/ShapeFix/ShapeFix_IntersectionTool.hxx delete mode 100644 src/ShapeFix/ShapeFix_Root.cdl create mode 100644 src/ShapeFix/ShapeFix_Root.hxx delete mode 100644 src/ShapeFix/ShapeFix_Shape.cdl create mode 100644 src/ShapeFix/ShapeFix_Shape.hxx delete mode 100644 src/ShapeFix/ShapeFix_ShapeTolerance.cdl create mode 100644 src/ShapeFix/ShapeFix_ShapeTolerance.hxx delete mode 100644 src/ShapeFix/ShapeFix_Shell.cdl create mode 100644 src/ShapeFix/ShapeFix_Shell.hxx delete mode 100644 src/ShapeFix/ShapeFix_Solid.cdl create mode 100644 src/ShapeFix/ShapeFix_Solid.hxx delete mode 100644 src/ShapeFix/ShapeFix_SplitCommonVertex.cdl create mode 100644 src/ShapeFix/ShapeFix_SplitCommonVertex.hxx delete mode 100644 src/ShapeFix/ShapeFix_SplitTool.cdl create mode 100644 src/ShapeFix/ShapeFix_SplitTool.hxx delete mode 100644 src/ShapeFix/ShapeFix_Wire.cdl create mode 100644 src/ShapeFix/ShapeFix_Wire.hxx delete mode 100644 src/ShapeFix/ShapeFix_WireSegment.cdl create mode 100644 src/ShapeFix/ShapeFix_WireSegment.hxx delete mode 100644 src/ShapeFix/ShapeFix_WireVertex.cdl create mode 100644 src/ShapeFix/ShapeFix_WireVertex.hxx delete mode 100644 src/ShapeFix/ShapeFix_Wireframe.cdl create mode 100644 src/ShapeFix/ShapeFix_Wireframe.hxx delete mode 100644 src/ShapeProcess/ShapeProcess.cdl create mode 100644 src/ShapeProcess/ShapeProcess.hxx delete mode 100644 src/ShapeProcess/ShapeProcess_Context.cdl create mode 100644 src/ShapeProcess/ShapeProcess_Context.hxx create mode 100644 src/ShapeProcess/ShapeProcess_DictionaryOfOperator.hxx create mode 100644 src/ShapeProcess/ShapeProcess_DictionaryOfOperator_0.cxx create mode 100644 src/ShapeProcess/ShapeProcess_IteratorOfDictionaryOfOperator.hxx create mode 100644 src/ShapeProcess/ShapeProcess_IteratorOfDictionaryOfOperator_0.cxx delete mode 100644 src/ShapeProcess/ShapeProcess_OperLibrary.cdl create mode 100644 src/ShapeProcess/ShapeProcess_OperLibrary.hxx delete mode 100644 src/ShapeProcess/ShapeProcess_Operator.cdl create mode 100644 src/ShapeProcess/ShapeProcess_Operator.hxx delete mode 100644 src/ShapeProcess/ShapeProcess_ShapeContext.cdl create mode 100644 src/ShapeProcess/ShapeProcess_ShapeContext.hxx create mode 100644 src/ShapeProcess/ShapeProcess_StackItemOfDictionaryOfOperator.hxx create mode 100644 src/ShapeProcess/ShapeProcess_StackItemOfDictionaryOfOperator_0.cxx delete mode 100644 src/ShapeProcess/ShapeProcess_UOperator.cdl create mode 100644 src/ShapeProcess/ShapeProcess_UOperator.hxx create mode 100644 src/ShapeProcessAPI/FILES delete mode 100644 src/ShapeProcessAPI/ShapeProcessAPI.cdl delete mode 100644 src/ShapeProcessAPI/ShapeProcessAPI_ApplySequence.cdl create mode 100644 src/ShapeProcessAPI/ShapeProcessAPI_ApplySequence.hxx create mode 100644 src/ShapeUpgrade/FILES delete mode 100644 src/ShapeUpgrade/ShapeUpgrade.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_ClosedEdgeDivide.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_ClosedEdgeDivide.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_ClosedFaceDivide.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_ClosedFaceDivide.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_ConvertCurve2dToBezier.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_ConvertCurve2dToBezier.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_ConvertCurve3dToBezier.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_ConvertCurve3dToBezier.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_ConvertSurfaceToBezierBasis.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_ConvertSurfaceToBezierBasis.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_EdgeDivide.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_EdgeDivide.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_FaceDivide.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_FaceDivide.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_FaceDivideArea.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_FaceDivideArea.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_FixSmallBezierCurves.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_FixSmallBezierCurves.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_FixSmallCurves.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_FixSmallCurves.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_RemoveInternalWires.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_RemoveInternalWires.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_RemoveLocations.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_RemoveLocations.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShapeConvertToBezier.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShapeConvertToBezier.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShapeDivide.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShapeDivide.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShapeDivideAngle.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShapeDivideAngle.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShapeDivideArea.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShapeDivideArea.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShapeDivideClosed.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShapeDivideClosed.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShapeDivideClosedEdges.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShapeDivideClosedEdges.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShapeDivideContinuity.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShapeDivideContinuity.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShellSewing.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_ShellSewing.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitCurve.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitCurve.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitCurve2d.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitCurve2d.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitCurve2dContinuity.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitCurve2dContinuity.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitCurve3d.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitCurve3d.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitCurve3dContinuity.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitCurve3dContinuity.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitSurface.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitSurface.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitSurfaceAngle.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitSurfaceAngle.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitSurfaceArea.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitSurfaceArea.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitSurfaceContinuity.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_SplitSurfaceContinuity.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_Tool.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_Tool.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_UnifySameDomain.hxx delete mode 100644 src/ShapeUpgrade/ShapeUpgrade_WireDivide.cdl create mode 100644 src/ShapeUpgrade/ShapeUpgrade_WireDivide.hxx delete mode 100644 src/Standard/Standard.cdl create mode 100644 src/Standard/Standard.hxx create mode 100644 src/Standard/Standard_AbortiveTransaction.hxx delete mode 100644 src/Standard/Standard_CMPLRS.edl create mode 100644 src/Standard/Standard_ConstructionError.hxx create mode 100644 src/Standard/Standard_DimensionError.hxx create mode 100644 src/Standard/Standard_DimensionMismatch.hxx create mode 100644 src/Standard/Standard_DivideByZero.hxx create mode 100644 src/Standard/Standard_DomainError.hxx delete mode 100644 src/Standard/Standard_ErrorHandler.cdl create mode 100644 src/Standard/Standard_ErrorHandler.hxx delete mode 100644 src/Standard/Standard_ErrorHandlerCallback.cdl create mode 100644 src/Standard/Standard_ErrorHandlerCallback.hxx delete mode 100644 src/Standard/Standard_Failure.cdl create mode 100644 src/Standard/Standard_Failure.hxx delete mode 100644 src/Standard/Standard_GUID.cdl create mode 100644 src/Standard/Standard_GUID.hxx create mode 100644 src/Standard/Standard_HandlerStatus.hxx create mode 100644 src/Standard/Standard_ImmutableObject.hxx create mode 100644 src/Standard/Standard_LicenseError.hxx create mode 100644 src/Standard/Standard_LicenseNotFound.hxx create mode 100644 src/Standard/Standard_MultiplyDefined.hxx create mode 100644 src/Standard/Standard_NegativeValue.hxx create mode 100644 src/Standard/Standard_NoMoreObject.hxx create mode 100644 src/Standard/Standard_NoSuchObject.hxx create mode 100644 src/Standard/Standard_NotImplemented.hxx create mode 100644 src/Standard/Standard_NullObject.hxx create mode 100644 src/Standard/Standard_NullValue.hxx create mode 100644 src/Standard/Standard_NumericError.hxx create mode 100644 src/Standard/Standard_OutOfMemory.hxx create mode 100644 src/Standard/Standard_OutOfRange.hxx create mode 100644 src/Standard/Standard_Overflow.hxx create mode 100644 src/Standard/Standard_PErrorHandler.hxx delete mode 100644 src/Standard/Standard_Persistent.cdl create mode 100644 src/Standard/Standard_ProgramError.hxx create mode 100644 src/Standard/Standard_RangeError.hxx create mode 100644 src/Standard/Standard_TooManyUsers.hxx delete mode 100644 src/Standard/Standard_Transient.cdl create mode 100644 src/Standard/Standard_TypeMismatch.hxx create mode 100644 src/Standard/Standard_Underflow.hxx delete mode 100644 src/Standard/Standard_WOKSteps.edl create mode 100644 src/StdFail/FILES delete mode 100644 src/StdFail/StdFail.cdl create mode 100644 src/StdFail/StdFail_InfiniteSolutions.hxx create mode 100644 src/StdFail/StdFail_NotDone.hxx create mode 100644 src/StdFail/StdFail_Undefined.hxx create mode 100644 src/StdFail/StdFail_UndefinedDerivative.hxx create mode 100644 src/StdFail/StdFail_UndefinedValue.hxx delete mode 100644 src/StdPrs/StdPrs.cdl delete mode 100644 src/StdPrs/StdPrs_Curve.cdl create mode 100644 src/StdPrs/StdPrs_Curve.hxx delete mode 100644 src/StdPrs/StdPrs_DeflectionCurve.cdl create mode 100644 src/StdPrs/StdPrs_DeflectionCurve.hxx delete mode 100644 src/StdPrs/StdPrs_HLRPolyShape.cdl create mode 100644 src/StdPrs/StdPrs_HLRPolyShape.hxx delete mode 100644 src/StdPrs/StdPrs_HLRToolShape.cdl create mode 100644 src/StdPrs/StdPrs_HLRToolShape.hxx delete mode 100644 src/StdPrs/StdPrs_Plane.cdl create mode 100644 src/StdPrs/StdPrs_Plane.hxx delete mode 100644 src/StdPrs/StdPrs_PoleCurve.cdl create mode 100644 src/StdPrs/StdPrs_PoleCurve.hxx delete mode 100755 src/StdPrs/StdPrs_ShadedShape.cdl create mode 100644 src/StdPrs/StdPrs_ShadedShape.hxx delete mode 100644 src/StdPrs/StdPrs_ShadedSurface.cdl create mode 100644 src/StdPrs/StdPrs_ShadedSurface.hxx delete mode 100644 src/StdPrs/StdPrs_ToolPoint.cdl create mode 100644 src/StdPrs/StdPrs_ToolPoint.hxx delete mode 100644 src/StdPrs/StdPrs_ToolRFace.cdl create mode 100644 src/StdPrs/StdPrs_ToolRFace.hxx delete mode 100644 src/StdPrs/StdPrs_ToolVertex.cdl create mode 100644 src/StdPrs/StdPrs_ToolVertex.hxx create mode 100644 src/StdPrs/StdPrs_Volume.hxx delete mode 100644 src/StdPrs/StdPrs_WFDeflectionRestrictedFace.cdl create mode 100644 src/StdPrs/StdPrs_WFDeflectionRestrictedFace.hxx delete mode 100644 src/StdPrs/StdPrs_WFDeflectionSurface.cdl create mode 100644 src/StdPrs/StdPrs_WFDeflectionSurface.hxx delete mode 100644 src/StdPrs/StdPrs_WFPoleSurface.cdl create mode 100644 src/StdPrs/StdPrs_WFPoleSurface.hxx delete mode 100644 src/StdPrs/StdPrs_WFSurface.cdl create mode 100644 src/StdPrs/StdPrs_WFSurface.hxx delete mode 100644 src/StdSelect/StdSelect.cdl create mode 100644 src/StdSelect/StdSelect.hxx delete mode 100644 src/StdSelect/StdSelect_BRepOwner.cdl create mode 100644 src/StdSelect/StdSelect_BRepOwner.hxx delete mode 100644 src/StdSelect/StdSelect_BRepSelectionTool.cdl create mode 100644 src/StdSelect/StdSelect_BRepSelectionTool.hxx create mode 100644 src/StdSelect/StdSelect_DisplayMode.hxx delete mode 100644 src/StdSelect/StdSelect_EdgeFilter.cdl create mode 100644 src/StdSelect/StdSelect_EdgeFilter.hxx delete mode 100644 src/StdSelect/StdSelect_FaceFilter.cdl create mode 100644 src/StdSelect/StdSelect_FaceFilter.hxx delete mode 100644 src/StdSelect/StdSelect_Prs.cdl create mode 100644 src/StdSelect/StdSelect_Prs.hxx create mode 100644 src/StdSelect/StdSelect_SensitivityMode.hxx delete mode 100644 src/StdSelect/StdSelect_Shape.cdl create mode 100644 src/StdSelect/StdSelect_Shape.hxx delete mode 100644 src/StdSelect/StdSelect_ShapeTypeFilter.cdl create mode 100644 src/StdSelect/StdSelect_ShapeTypeFilter.hxx create mode 100644 src/StdSelect/StdSelect_TypeOfEdge.hxx create mode 100644 src/StdSelect/StdSelect_TypeOfFace.hxx create mode 100644 src/StdSelect/StdSelect_TypeOfResult.hxx delete mode 100644 src/StepAP203/StepAP203.cdl delete mode 100644 src/StepAP203/StepAP203_ApprovedItem.cdl create mode 100644 src/StepAP203/StepAP203_ApprovedItem.hxx delete mode 100644 src/StepAP203/StepAP203_CcDesignApproval.cdl create mode 100644 src/StepAP203/StepAP203_CcDesignApproval.hxx delete mode 100644 src/StepAP203/StepAP203_CcDesignCertification.cdl create mode 100644 src/StepAP203/StepAP203_CcDesignCertification.hxx delete mode 100644 src/StepAP203/StepAP203_CcDesignContract.cdl create mode 100644 src/StepAP203/StepAP203_CcDesignContract.hxx delete mode 100644 src/StepAP203/StepAP203_CcDesignDateAndTimeAssignment.cdl create mode 100644 src/StepAP203/StepAP203_CcDesignDateAndTimeAssignment.hxx delete mode 100644 src/StepAP203/StepAP203_CcDesignPersonAndOrganizationAssignment.cdl create mode 100644 src/StepAP203/StepAP203_CcDesignPersonAndOrganizationAssignment.hxx delete mode 100644 src/StepAP203/StepAP203_CcDesignSecurityClassification.cdl create mode 100644 src/StepAP203/StepAP203_CcDesignSecurityClassification.hxx delete mode 100644 src/StepAP203/StepAP203_CcDesignSpecificationReference.cdl create mode 100644 src/StepAP203/StepAP203_CcDesignSpecificationReference.hxx delete mode 100644 src/StepAP203/StepAP203_CertifiedItem.cdl create mode 100644 src/StepAP203/StepAP203_CertifiedItem.hxx delete mode 100644 src/StepAP203/StepAP203_Change.cdl create mode 100644 src/StepAP203/StepAP203_Change.hxx delete mode 100644 src/StepAP203/StepAP203_ChangeRequest.cdl create mode 100644 src/StepAP203/StepAP203_ChangeRequest.hxx delete mode 100644 src/StepAP203/StepAP203_ChangeRequestItem.cdl create mode 100644 src/StepAP203/StepAP203_ChangeRequestItem.hxx delete mode 100644 src/StepAP203/StepAP203_ClassifiedItem.cdl create mode 100644 src/StepAP203/StepAP203_ClassifiedItem.hxx delete mode 100644 src/StepAP203/StepAP203_ContractedItem.cdl create mode 100644 src/StepAP203/StepAP203_ContractedItem.hxx delete mode 100644 src/StepAP203/StepAP203_DateTimeItem.cdl create mode 100644 src/StepAP203/StepAP203_DateTimeItem.hxx delete mode 100644 src/StepAP203/StepAP203_PersonOrganizationItem.cdl create mode 100644 src/StepAP203/StepAP203_PersonOrganizationItem.hxx delete mode 100644 src/StepAP203/StepAP203_SpecifiedItem.cdl create mode 100644 src/StepAP203/StepAP203_SpecifiedItem.hxx delete mode 100644 src/StepAP203/StepAP203_StartRequest.cdl create mode 100644 src/StepAP203/StepAP203_StartRequest.hxx delete mode 100644 src/StepAP203/StepAP203_StartRequestItem.cdl create mode 100644 src/StepAP203/StepAP203_StartRequestItem.hxx delete mode 100644 src/StepAP203/StepAP203_StartWork.cdl create mode 100644 src/StepAP203/StepAP203_StartWork.hxx delete mode 100644 src/StepAP203/StepAP203_WorkItem.cdl create mode 100644 src/StepAP203/StepAP203_WorkItem.hxx create mode 100644 src/StepAP209/FILES delete mode 100644 src/StepAP209/StepAP209.cdl delete mode 100644 src/StepAP209/StepAP209_Construct.cdl create mode 100644 src/StepAP209/StepAP209_Construct.hxx delete mode 100644 src/StepAP214/StepAP214.cdl create mode 100644 src/StepAP214/StepAP214.hxx delete mode 100644 src/StepAP214/StepAP214_AppliedApprovalAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AppliedApprovalAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AppliedDateAndTimeAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AppliedDateAndTimeAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AppliedDateAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AppliedDateAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AppliedDocumentReference.cdl create mode 100644 src/StepAP214/StepAP214_AppliedDocumentReference.hxx delete mode 100644 src/StepAP214/StepAP214_AppliedExternalIdentificationAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AppliedExternalIdentificationAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AppliedGroupAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AppliedGroupAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AppliedOrganizationAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AppliedOrganizationAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AppliedPersonAndOrganizationAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AppliedPersonAndOrganizationAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AppliedPresentedItem.cdl create mode 100644 src/StepAP214/StepAP214_AppliedPresentedItem.hxx delete mode 100644 src/StepAP214/StepAP214_AppliedSecurityClassificationAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AppliedSecurityClassificationAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_ApprovalItem.cdl create mode 100644 src/StepAP214/StepAP214_ApprovalItem.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignActualDateAndTimeAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignActualDateAndTimeAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignActualDateAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignActualDateAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignApprovalAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignApprovalAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignDateAndPersonAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignDateAndPersonAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignDateAndPersonItem.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignDateAndPersonItem.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignDateAndTimeItem.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignDateAndTimeItem.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignDatedItem.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignDatedItem.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignDocumentReference.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignDocumentReference.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignGeneralOrgItem.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignGeneralOrgItem.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignGroupAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignGroupAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignGroupedItem.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignGroupedItem.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignNominalDateAndTimeAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignNominalDateAndTimeAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignNominalDateAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignNominalDateAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignOrganizationAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignOrganizationAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignOrganizationItem.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignOrganizationItem.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignPersonAndOrganizationAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignPersonAndOrganizationAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignPresentedItem.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignPresentedItem.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignPresentedItemSelect.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignPresentedItemSelect.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignReferencingItem.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignReferencingItem.hxx delete mode 100644 src/StepAP214/StepAP214_AutoDesignSecurityClassificationAssignment.cdl create mode 100644 src/StepAP214/StepAP214_AutoDesignSecurityClassificationAssignment.hxx delete mode 100644 src/StepAP214/StepAP214_CMPLRS.edl delete mode 100644 src/StepAP214/StepAP214_Class.cdl create mode 100644 src/StepAP214/StepAP214_Class.hxx delete mode 100644 src/StepAP214/StepAP214_DateAndTimeItem.cdl create mode 100644 src/StepAP214/StepAP214_DateAndTimeItem.hxx delete mode 100644 src/StepAP214/StepAP214_DateItem.cdl create mode 100644 src/StepAP214/StepAP214_DateItem.hxx delete mode 100644 src/StepAP214/StepAP214_DocumentReferenceItem.cdl create mode 100644 src/StepAP214/StepAP214_DocumentReferenceItem.hxx delete mode 100644 src/StepAP214/StepAP214_ExternalIdentificationItem.cdl create mode 100644 src/StepAP214/StepAP214_ExternalIdentificationItem.hxx delete mode 100644 src/StepAP214/StepAP214_ExternallyDefinedClass.cdl create mode 100644 src/StepAP214/StepAP214_ExternallyDefinedClass.hxx delete mode 100644 src/StepAP214/StepAP214_ExternallyDefinedGeneralProperty.cdl create mode 100644 src/StepAP214/StepAP214_ExternallyDefinedGeneralProperty.hxx delete mode 100644 src/StepAP214/StepAP214_GroupItem.cdl create mode 100644 src/StepAP214/StepAP214_GroupItem.hxx delete mode 100644 src/StepAP214/StepAP214_OrganizationItem.cdl create mode 100644 src/StepAP214/StepAP214_OrganizationItem.hxx delete mode 100644 src/StepAP214/StepAP214_PersonAndOrganizationItem.cdl create mode 100644 src/StepAP214/StepAP214_PersonAndOrganizationItem.hxx delete mode 100644 src/StepAP214/StepAP214_PresentedItemSelect.cdl create mode 100644 src/StepAP214/StepAP214_PresentedItemSelect.hxx delete mode 100644 src/StepAP214/StepAP214_Protocol.cdl create mode 100644 src/StepAP214/StepAP214_Protocol.hxx delete mode 100644 src/StepAP214/StepAP214_RepItemGroup.cdl create mode 100644 src/StepAP214/StepAP214_RepItemGroup.hxx delete mode 100644 src/StepAP214/StepAP214_SecurityClassificationItem.cdl create mode 100644 src/StepAP214/StepAP214_SecurityClassificationItem.hxx delete mode 100644 src/StepBasic/StepBasic.cdl delete mode 100644 src/StepBasic/StepBasic_Action.cdl create mode 100644 src/StepBasic/StepBasic_Action.hxx delete mode 100644 src/StepBasic/StepBasic_ActionAssignment.cdl create mode 100644 src/StepBasic/StepBasic_ActionAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_ActionMethod.cdl create mode 100644 src/StepBasic/StepBasic_ActionMethod.hxx delete mode 100644 src/StepBasic/StepBasic_ActionRequestAssignment.cdl create mode 100644 src/StepBasic/StepBasic_ActionRequestAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_ActionRequestSolution.cdl create mode 100644 src/StepBasic/StepBasic_ActionRequestSolution.hxx delete mode 100644 src/StepBasic/StepBasic_Address.cdl create mode 100644 src/StepBasic/StepBasic_Address.hxx create mode 100644 src/StepBasic/StepBasic_AheadOrBehind.hxx delete mode 100644 src/StepBasic/StepBasic_ApplicationContext.cdl create mode 100644 src/StepBasic/StepBasic_ApplicationContext.hxx delete mode 100644 src/StepBasic/StepBasic_ApplicationContextElement.cdl create mode 100644 src/StepBasic/StepBasic_ApplicationContextElement.hxx delete mode 100644 src/StepBasic/StepBasic_ApplicationProtocolDefinition.cdl create mode 100644 src/StepBasic/StepBasic_ApplicationProtocolDefinition.hxx delete mode 100644 src/StepBasic/StepBasic_Approval.cdl create mode 100644 src/StepBasic/StepBasic_Approval.hxx delete mode 100644 src/StepBasic/StepBasic_ApprovalAssignment.cdl create mode 100644 src/StepBasic/StepBasic_ApprovalAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_ApprovalDateTime.cdl create mode 100644 src/StepBasic/StepBasic_ApprovalDateTime.hxx delete mode 100644 src/StepBasic/StepBasic_ApprovalPersonOrganization.cdl create mode 100644 src/StepBasic/StepBasic_ApprovalPersonOrganization.hxx delete mode 100644 src/StepBasic/StepBasic_ApprovalRelationship.cdl create mode 100644 src/StepBasic/StepBasic_ApprovalRelationship.hxx delete mode 100644 src/StepBasic/StepBasic_ApprovalRole.cdl create mode 100644 src/StepBasic/StepBasic_ApprovalRole.hxx delete mode 100644 src/StepBasic/StepBasic_ApprovalStatus.cdl create mode 100644 src/StepBasic/StepBasic_ApprovalStatus.hxx delete mode 100644 src/StepBasic/StepBasic_AreaUnit.cdl create mode 100644 src/StepBasic/StepBasic_AreaUnit.hxx delete mode 100644 src/StepBasic/StepBasic_CalendarDate.cdl create mode 100644 src/StepBasic/StepBasic_CalendarDate.hxx delete mode 100644 src/StepBasic/StepBasic_Certification.cdl create mode 100644 src/StepBasic/StepBasic_Certification.hxx delete mode 100644 src/StepBasic/StepBasic_CertificationAssignment.cdl create mode 100644 src/StepBasic/StepBasic_CertificationAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_CertificationType.cdl create mode 100644 src/StepBasic/StepBasic_CertificationType.hxx delete mode 100644 src/StepBasic/StepBasic_CharacterizedObject.cdl create mode 100644 src/StepBasic/StepBasic_CharacterizedObject.hxx delete mode 100644 src/StepBasic/StepBasic_Contract.cdl create mode 100644 src/StepBasic/StepBasic_Contract.hxx delete mode 100644 src/StepBasic/StepBasic_ContractAssignment.cdl create mode 100644 src/StepBasic/StepBasic_ContractAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_ContractType.cdl create mode 100644 src/StepBasic/StepBasic_ContractType.hxx delete mode 100644 src/StepBasic/StepBasic_ConversionBasedUnit.cdl create mode 100644 src/StepBasic/StepBasic_ConversionBasedUnit.hxx delete mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndAreaUnit.cdl create mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndAreaUnit.hxx delete mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndLengthUnit.cdl create mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndLengthUnit.hxx delete mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndMassUnit.cdl create mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndMassUnit.hxx delete mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndPlaneAngleUnit.cdl create mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndPlaneAngleUnit.hxx delete mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndRatioUnit.cdl create mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndRatioUnit.hxx delete mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndSolidAngleUnit.cdl create mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndSolidAngleUnit.hxx delete mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndTimeUnit.cdl create mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndTimeUnit.hxx delete mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndVolumeUnit.cdl create mode 100644 src/StepBasic/StepBasic_ConversionBasedUnitAndVolumeUnit.hxx delete mode 100644 src/StepBasic/StepBasic_CoordinatedUniversalTimeOffset.cdl create mode 100644 src/StepBasic/StepBasic_CoordinatedUniversalTimeOffset.hxx delete mode 100644 src/StepBasic/StepBasic_Date.cdl create mode 100644 src/StepBasic/StepBasic_Date.hxx delete mode 100644 src/StepBasic/StepBasic_DateAndTime.cdl create mode 100644 src/StepBasic/StepBasic_DateAndTime.hxx delete mode 100644 src/StepBasic/StepBasic_DateAndTimeAssignment.cdl create mode 100644 src/StepBasic/StepBasic_DateAndTimeAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_DateAssignment.cdl create mode 100644 src/StepBasic/StepBasic_DateAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_DateRole.cdl create mode 100644 src/StepBasic/StepBasic_DateRole.hxx delete mode 100644 src/StepBasic/StepBasic_DateTimeRole.cdl create mode 100644 src/StepBasic/StepBasic_DateTimeRole.hxx delete mode 100644 src/StepBasic/StepBasic_DateTimeSelect.cdl create mode 100644 src/StepBasic/StepBasic_DateTimeSelect.hxx delete mode 100644 src/StepBasic/StepBasic_DerivedUnit.cdl create mode 100644 src/StepBasic/StepBasic_DerivedUnit.hxx delete mode 100644 src/StepBasic/StepBasic_DerivedUnitElement.cdl create mode 100644 src/StepBasic/StepBasic_DerivedUnitElement.hxx delete mode 100644 src/StepBasic/StepBasic_DesignContext.cdl create mode 100644 src/StepBasic/StepBasic_DesignContext.hxx delete mode 100644 src/StepBasic/StepBasic_DigitalDocument.cdl create mode 100644 src/StepBasic/StepBasic_DigitalDocument.hxx delete mode 100644 src/StepBasic/StepBasic_DimensionalExponents.cdl create mode 100644 src/StepBasic/StepBasic_DimensionalExponents.hxx delete mode 100644 src/StepBasic/StepBasic_Document.cdl create mode 100644 src/StepBasic/StepBasic_Document.hxx delete mode 100644 src/StepBasic/StepBasic_DocumentFile.cdl create mode 100644 src/StepBasic/StepBasic_DocumentFile.hxx delete mode 100644 src/StepBasic/StepBasic_DocumentProductAssociation.cdl create mode 100644 src/StepBasic/StepBasic_DocumentProductAssociation.hxx delete mode 100644 src/StepBasic/StepBasic_DocumentProductEquivalence.cdl create mode 100644 src/StepBasic/StepBasic_DocumentProductEquivalence.hxx delete mode 100644 src/StepBasic/StepBasic_DocumentReference.cdl create mode 100644 src/StepBasic/StepBasic_DocumentReference.hxx delete mode 100644 src/StepBasic/StepBasic_DocumentRelationship.cdl create mode 100644 src/StepBasic/StepBasic_DocumentRelationship.hxx delete mode 100644 src/StepBasic/StepBasic_DocumentRepresentationType.cdl create mode 100644 src/StepBasic/StepBasic_DocumentRepresentationType.hxx delete mode 100644 src/StepBasic/StepBasic_DocumentType.cdl create mode 100644 src/StepBasic/StepBasic_DocumentType.hxx delete mode 100644 src/StepBasic/StepBasic_DocumentUsageConstraint.cdl create mode 100644 src/StepBasic/StepBasic_DocumentUsageConstraint.hxx delete mode 100644 src/StepBasic/StepBasic_Effectivity.cdl create mode 100644 src/StepBasic/StepBasic_Effectivity.hxx delete mode 100644 src/StepBasic/StepBasic_EffectivityAssignment.cdl create mode 100644 src/StepBasic/StepBasic_EffectivityAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_EulerAngles.cdl create mode 100644 src/StepBasic/StepBasic_EulerAngles.hxx delete mode 100644 src/StepBasic/StepBasic_ExternalIdentificationAssignment.cdl create mode 100644 src/StepBasic/StepBasic_ExternalIdentificationAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_ExternalSource.cdl create mode 100644 src/StepBasic/StepBasic_ExternalSource.hxx delete mode 100644 src/StepBasic/StepBasic_ExternallyDefinedItem.cdl create mode 100644 src/StepBasic/StepBasic_ExternallyDefinedItem.hxx delete mode 100644 src/StepBasic/StepBasic_GeneralProperty.cdl create mode 100644 src/StepBasic/StepBasic_GeneralProperty.hxx delete mode 100644 src/StepBasic/StepBasic_Group.cdl create mode 100644 src/StepBasic/StepBasic_Group.hxx delete mode 100644 src/StepBasic/StepBasic_GroupAssignment.cdl create mode 100644 src/StepBasic/StepBasic_GroupAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_GroupRelationship.cdl create mode 100644 src/StepBasic/StepBasic_GroupRelationship.hxx delete mode 100644 src/StepBasic/StepBasic_IdentificationAssignment.cdl create mode 100644 src/StepBasic/StepBasic_IdentificationAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_IdentificationRole.cdl create mode 100644 src/StepBasic/StepBasic_IdentificationRole.hxx delete mode 100644 src/StepBasic/StepBasic_LengthMeasureWithUnit.cdl create mode 100644 src/StepBasic/StepBasic_LengthMeasureWithUnit.hxx delete mode 100644 src/StepBasic/StepBasic_LengthUnit.cdl create mode 100644 src/StepBasic/StepBasic_LengthUnit.hxx delete mode 100644 src/StepBasic/StepBasic_LocalTime.cdl create mode 100644 src/StepBasic/StepBasic_LocalTime.hxx delete mode 100644 src/StepBasic/StepBasic_MassMeasureWithUnit.cdl create mode 100644 src/StepBasic/StepBasic_MassMeasureWithUnit.hxx delete mode 100644 src/StepBasic/StepBasic_MassUnit.cdl create mode 100644 src/StepBasic/StepBasic_MassUnit.hxx delete mode 100644 src/StepBasic/StepBasic_MeasureValueMember.cdl create mode 100644 src/StepBasic/StepBasic_MeasureValueMember.hxx delete mode 100644 src/StepBasic/StepBasic_MeasureWithUnit.cdl create mode 100644 src/StepBasic/StepBasic_MeasureWithUnit.hxx delete mode 100644 src/StepBasic/StepBasic_MechanicalContext.cdl create mode 100644 src/StepBasic/StepBasic_MechanicalContext.hxx delete mode 100644 src/StepBasic/StepBasic_NameAssignment.cdl create mode 100644 src/StepBasic/StepBasic_NameAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_NamedUnit.cdl create mode 100644 src/StepBasic/StepBasic_NamedUnit.hxx delete mode 100644 src/StepBasic/StepBasic_ObjectRole.cdl create mode 100644 src/StepBasic/StepBasic_ObjectRole.hxx delete mode 100644 src/StepBasic/StepBasic_OrdinalDate.cdl create mode 100644 src/StepBasic/StepBasic_OrdinalDate.hxx delete mode 100644 src/StepBasic/StepBasic_Organization.cdl create mode 100644 src/StepBasic/StepBasic_Organization.hxx delete mode 100644 src/StepBasic/StepBasic_OrganizationAssignment.cdl create mode 100644 src/StepBasic/StepBasic_OrganizationAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_OrganizationRole.cdl create mode 100644 src/StepBasic/StepBasic_OrganizationRole.hxx delete mode 100644 src/StepBasic/StepBasic_OrganizationalAddress.cdl create mode 100644 src/StepBasic/StepBasic_OrganizationalAddress.hxx delete mode 100644 src/StepBasic/StepBasic_Person.cdl create mode 100644 src/StepBasic/StepBasic_Person.hxx delete mode 100644 src/StepBasic/StepBasic_PersonAndOrganization.cdl create mode 100644 src/StepBasic/StepBasic_PersonAndOrganization.hxx delete mode 100644 src/StepBasic/StepBasic_PersonAndOrganizationAssignment.cdl create mode 100644 src/StepBasic/StepBasic_PersonAndOrganizationAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_PersonAndOrganizationRole.cdl create mode 100644 src/StepBasic/StepBasic_PersonAndOrganizationRole.hxx delete mode 100644 src/StepBasic/StepBasic_PersonOrganizationSelect.cdl create mode 100644 src/StepBasic/StepBasic_PersonOrganizationSelect.hxx delete mode 100644 src/StepBasic/StepBasic_PersonalAddress.cdl create mode 100644 src/StepBasic/StepBasic_PersonalAddress.hxx delete mode 100644 src/StepBasic/StepBasic_PhysicallyModeledProductDefinition.cdl create mode 100644 src/StepBasic/StepBasic_PhysicallyModeledProductDefinition.hxx delete mode 100644 src/StepBasic/StepBasic_PlaneAngleMeasureWithUnit.cdl create mode 100644 src/StepBasic/StepBasic_PlaneAngleMeasureWithUnit.hxx delete mode 100644 src/StepBasic/StepBasic_PlaneAngleUnit.cdl create mode 100644 src/StepBasic/StepBasic_PlaneAngleUnit.hxx delete mode 100644 src/StepBasic/StepBasic_Product.cdl create mode 100644 src/StepBasic/StepBasic_Product.hxx delete mode 100644 src/StepBasic/StepBasic_ProductCategory.cdl create mode 100644 src/StepBasic/StepBasic_ProductCategory.hxx delete mode 100644 src/StepBasic/StepBasic_ProductCategoryRelationship.cdl create mode 100644 src/StepBasic/StepBasic_ProductCategoryRelationship.hxx delete mode 100644 src/StepBasic/StepBasic_ProductConceptContext.cdl create mode 100644 src/StepBasic/StepBasic_ProductConceptContext.hxx delete mode 100644 src/StepBasic/StepBasic_ProductContext.cdl create mode 100644 src/StepBasic/StepBasic_ProductContext.hxx delete mode 100644 src/StepBasic/StepBasic_ProductDefinition.cdl create mode 100644 src/StepBasic/StepBasic_ProductDefinition.hxx delete mode 100644 src/StepBasic/StepBasic_ProductDefinitionContext.cdl create mode 100644 src/StepBasic/StepBasic_ProductDefinitionContext.hxx delete mode 100644 src/StepBasic/StepBasic_ProductDefinitionEffectivity.cdl create mode 100644 src/StepBasic/StepBasic_ProductDefinitionEffectivity.hxx delete mode 100644 src/StepBasic/StepBasic_ProductDefinitionFormation.cdl create mode 100644 src/StepBasic/StepBasic_ProductDefinitionFormation.hxx delete mode 100644 src/StepBasic/StepBasic_ProductDefinitionFormationRelationship.cdl create mode 100644 src/StepBasic/StepBasic_ProductDefinitionFormationRelationship.hxx delete mode 100644 src/StepBasic/StepBasic_ProductDefinitionFormationWithSpecifiedSource.cdl create mode 100644 src/StepBasic/StepBasic_ProductDefinitionFormationWithSpecifiedSource.hxx delete mode 100644 src/StepBasic/StepBasic_ProductDefinitionRelationship.cdl create mode 100644 src/StepBasic/StepBasic_ProductDefinitionRelationship.hxx delete mode 100644 src/StepBasic/StepBasic_ProductDefinitionWithAssociatedDocuments.cdl create mode 100644 src/StepBasic/StepBasic_ProductDefinitionWithAssociatedDocuments.hxx delete mode 100644 src/StepBasic/StepBasic_ProductOrFormationOrDefinition.cdl create mode 100644 src/StepBasic/StepBasic_ProductOrFormationOrDefinition.hxx delete mode 100644 src/StepBasic/StepBasic_ProductRelatedProductCategory.cdl create mode 100644 src/StepBasic/StepBasic_ProductRelatedProductCategory.hxx delete mode 100644 src/StepBasic/StepBasic_ProductType.cdl create mode 100644 src/StepBasic/StepBasic_ProductType.hxx delete mode 100644 src/StepBasic/StepBasic_RatioMeasureWithUnit.cdl create mode 100644 src/StepBasic/StepBasic_RatioMeasureWithUnit.hxx delete mode 100644 src/StepBasic/StepBasic_RatioUnit.cdl create mode 100644 src/StepBasic/StepBasic_RatioUnit.hxx delete mode 100644 src/StepBasic/StepBasic_RoleAssociation.cdl create mode 100644 src/StepBasic/StepBasic_RoleAssociation.hxx delete mode 100644 src/StepBasic/StepBasic_RoleSelect.cdl create mode 100644 src/StepBasic/StepBasic_RoleSelect.hxx delete mode 100644 src/StepBasic/StepBasic_SecurityClassification.cdl create mode 100644 src/StepBasic/StepBasic_SecurityClassification.hxx delete mode 100644 src/StepBasic/StepBasic_SecurityClassificationAssignment.cdl create mode 100644 src/StepBasic/StepBasic_SecurityClassificationAssignment.hxx delete mode 100644 src/StepBasic/StepBasic_SecurityClassificationLevel.cdl create mode 100644 src/StepBasic/StepBasic_SecurityClassificationLevel.hxx create mode 100644 src/StepBasic/StepBasic_SiPrefix.hxx delete mode 100644 src/StepBasic/StepBasic_SiUnit.cdl create mode 100644 src/StepBasic/StepBasic_SiUnit.hxx delete mode 100644 src/StepBasic/StepBasic_SiUnitAndAreaUnit.cdl create mode 100644 src/StepBasic/StepBasic_SiUnitAndAreaUnit.hxx delete mode 100644 src/StepBasic/StepBasic_SiUnitAndLengthUnit.cdl create mode 100644 src/StepBasic/StepBasic_SiUnitAndLengthUnit.hxx delete mode 100644 src/StepBasic/StepBasic_SiUnitAndMassUnit.cdl create mode 100644 src/StepBasic/StepBasic_SiUnitAndMassUnit.hxx delete mode 100644 src/StepBasic/StepBasic_SiUnitAndPlaneAngleUnit.cdl create mode 100644 src/StepBasic/StepBasic_SiUnitAndPlaneAngleUnit.hxx delete mode 100644 src/StepBasic/StepBasic_SiUnitAndRatioUnit.cdl create mode 100644 src/StepBasic/StepBasic_SiUnitAndRatioUnit.hxx delete mode 100644 src/StepBasic/StepBasic_SiUnitAndSolidAngleUnit.cdl create mode 100644 src/StepBasic/StepBasic_SiUnitAndSolidAngleUnit.hxx delete mode 100644 src/StepBasic/StepBasic_SiUnitAndThermodynamicTemperatureUnit.cdl create mode 100644 src/StepBasic/StepBasic_SiUnitAndThermodynamicTemperatureUnit.hxx delete mode 100644 src/StepBasic/StepBasic_SiUnitAndTimeUnit.cdl create mode 100644 src/StepBasic/StepBasic_SiUnitAndTimeUnit.hxx delete mode 100644 src/StepBasic/StepBasic_SiUnitAndVolumeUnit.cdl create mode 100644 src/StepBasic/StepBasic_SiUnitAndVolumeUnit.hxx create mode 100644 src/StepBasic/StepBasic_SiUnitName.hxx delete mode 100644 src/StepBasic/StepBasic_SizeMember.cdl create mode 100644 src/StepBasic/StepBasic_SizeMember.hxx delete mode 100644 src/StepBasic/StepBasic_SizeSelect.cdl create mode 100644 src/StepBasic/StepBasic_SizeSelect.hxx delete mode 100644 src/StepBasic/StepBasic_SolidAngleMeasureWithUnit.cdl create mode 100644 src/StepBasic/StepBasic_SolidAngleMeasureWithUnit.hxx delete mode 100644 src/StepBasic/StepBasic_SolidAngleUnit.cdl create mode 100644 src/StepBasic/StepBasic_SolidAngleUnit.hxx create mode 100644 src/StepBasic/StepBasic_Source.hxx delete mode 100644 src/StepBasic/StepBasic_SourceItem.cdl create mode 100644 src/StepBasic/StepBasic_SourceItem.hxx delete mode 100644 src/StepBasic/StepBasic_ThermodynamicTemperatureUnit.cdl create mode 100644 src/StepBasic/StepBasic_ThermodynamicTemperatureUnit.hxx delete mode 100644 src/StepBasic/StepBasic_TimeMeasureWithUnit.cdl create mode 100644 src/StepBasic/StepBasic_TimeMeasureWithUnit.hxx delete mode 100644 src/StepBasic/StepBasic_TimeUnit.cdl create mode 100644 src/StepBasic/StepBasic_TimeUnit.hxx delete mode 100644 src/StepBasic/StepBasic_UncertaintyMeasureWithUnit.cdl create mode 100644 src/StepBasic/StepBasic_UncertaintyMeasureWithUnit.hxx delete mode 100644 src/StepBasic/StepBasic_Unit.cdl create mode 100644 src/StepBasic/StepBasic_Unit.hxx delete mode 100644 src/StepBasic/StepBasic_VersionedActionRequest.cdl create mode 100644 src/StepBasic/StepBasic_VersionedActionRequest.hxx delete mode 100644 src/StepBasic/StepBasic_VolumeUnit.cdl create mode 100644 src/StepBasic/StepBasic_VolumeUnit.hxx delete mode 100644 src/StepBasic/StepBasic_WeekOfYearAndDayDate.cdl create mode 100644 src/StepBasic/StepBasic_WeekOfYearAndDayDate.hxx delete mode 100644 src/StepData/StepData.cdl create mode 100644 src/StepData/StepData.hxx delete mode 100644 src/StepData/StepData_DefaultGeneral.cdl create mode 100644 src/StepData/StepData_DefaultGeneral.hxx delete mode 100644 src/StepData/StepData_DescrGeneral.cdl create mode 100644 src/StepData/StepData_DescrGeneral.hxx delete mode 100644 src/StepData/StepData_DescrProtocol.cdl create mode 100644 src/StepData/StepData_DescrProtocol.hxx delete mode 100644 src/StepData/StepData_DescrReadWrite.cdl create mode 100644 src/StepData/StepData_DescrReadWrite.hxx delete mode 100644 src/StepData/StepData_Described.cdl create mode 100644 src/StepData/StepData_Described.hxx delete mode 100644 src/StepData/StepData_ECDescr.cdl create mode 100644 src/StepData/StepData_ECDescr.hxx delete mode 100644 src/StepData/StepData_EDescr.cdl create mode 100644 src/StepData/StepData_EDescr.hxx delete mode 100644 src/StepData/StepData_ESDescr.cdl create mode 100644 src/StepData/StepData_ESDescr.hxx delete mode 100644 src/StepData/StepData_EnumTool.cdl create mode 100644 src/StepData/StepData_EnumTool.hxx delete mode 100644 src/StepData/StepData_Field.cdl create mode 100644 src/StepData/StepData_Field.hxx delete mode 100644 src/StepData/StepData_FieldList.cdl create mode 100644 src/StepData/StepData_FieldList.hxx delete mode 100644 src/StepData/StepData_FieldList1.cdl create mode 100644 src/StepData/StepData_FieldList1.hxx delete mode 100644 src/StepData/StepData_FieldListD.cdl create mode 100644 src/StepData/StepData_FieldListD.hxx delete mode 100644 src/StepData/StepData_FieldListN.cdl create mode 100644 src/StepData/StepData_FieldListN.hxx delete mode 100644 src/StepData/StepData_FileProtocol.cdl create mode 100644 src/StepData/StepData_FileProtocol.hxx create mode 100644 src/StepData/StepData_FileRecognizer.hxx create mode 100644 src/StepData/StepData_FileRecognizer_0.cxx delete mode 100644 src/StepData/StepData_FreeFormEntity.cdl create mode 100644 src/StepData/StepData_FreeFormEntity.hxx delete mode 100644 src/StepData/StepData_GeneralModule.cdl create mode 100644 src/StepData/StepData_GeneralModule.hxx create mode 100644 src/StepData/StepData_GlobalNodeOfWriterLib.hxx create mode 100644 src/StepData/StepData_GlobalNodeOfWriterLib_0.cxx delete mode 100644 src/StepData/StepData_HeaderTool.cdl create mode 100644 src/StepData/StepData_HeaderTool.hxx create mode 100644 src/StepData/StepData_Logical.hxx create mode 100644 src/StepData/StepData_NodeOfWriterLib.hxx create mode 100644 src/StepData/StepData_NodeOfWriterLib_0.cxx delete mode 100644 src/StepData/StepData_PDescr.cdl create mode 100644 src/StepData/StepData_PDescr.hxx delete mode 100644 src/StepData/StepData_Plex.cdl create mode 100644 src/StepData/StepData_Plex.hxx delete mode 100644 src/StepData/StepData_Protocol.cdl create mode 100644 src/StepData/StepData_Protocol.hxx delete mode 100644 src/StepData/StepData_ReadWriteModule.cdl create mode 100644 src/StepData/StepData_ReadWriteModule.hxx delete mode 100644 src/StepData/StepData_SelectArrReal.cdl create mode 100644 src/StepData/StepData_SelectArrReal.hxx delete mode 100644 src/StepData/StepData_SelectInt.cdl create mode 100644 src/StepData/StepData_SelectInt.hxx delete mode 100644 src/StepData/StepData_SelectMember.cdl create mode 100644 src/StepData/StepData_SelectMember.hxx delete mode 100644 src/StepData/StepData_SelectNamed.cdl create mode 100644 src/StepData/StepData_SelectNamed.hxx delete mode 100644 src/StepData/StepData_SelectReal.cdl create mode 100644 src/StepData/StepData_SelectReal.hxx delete mode 100644 src/StepData/StepData_SelectType.cdl create mode 100644 src/StepData/StepData_SelectType.hxx delete mode 100644 src/StepData/StepData_Simple.cdl create mode 100644 src/StepData/StepData_Simple.hxx delete mode 100644 src/StepData/StepData_StepDumper.cdl create mode 100644 src/StepData/StepData_StepDumper.hxx delete mode 100644 src/StepData/StepData_StepModel.cdl create mode 100644 src/StepData/StepData_StepModel.hxx delete mode 100644 src/StepData/StepData_StepReaderData.cdl create mode 100644 src/StepData/StepData_StepReaderData.hxx delete mode 100644 src/StepData/StepData_StepReaderTool.cdl create mode 100644 src/StepData/StepData_StepReaderTool.hxx delete mode 100644 src/StepData/StepData_StepWriter.cdl create mode 100644 src/StepData/StepData_StepWriter.hxx delete mode 100644 src/StepData/StepData_UndefinedEntity.cdl create mode 100644 src/StepData/StepData_UndefinedEntity.hxx create mode 100644 src/StepData/StepData_WriterLib.hxx create mode 100644 src/StepData/StepData_WriterLib_0.cxx delete mode 100644 src/StepDimTol/StepDimTol.cdl delete mode 100644 src/StepDimTol/StepDimTol_AngularityTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_AngularityTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_CircularRunoutTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_CircularRunoutTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_CoaxialityTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_CoaxialityTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_CommonDatum.cdl create mode 100644 src/StepDimTol/StepDimTol_CommonDatum.hxx delete mode 100644 src/StepDimTol/StepDimTol_ConcentricityTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_ConcentricityTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_CylindricityTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_CylindricityTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_Datum.cdl create mode 100644 src/StepDimTol/StepDimTol_Datum.hxx delete mode 100644 src/StepDimTol/StepDimTol_DatumFeature.cdl create mode 100644 src/StepDimTol/StepDimTol_DatumFeature.hxx delete mode 100644 src/StepDimTol/StepDimTol_DatumReference.cdl create mode 100644 src/StepDimTol/StepDimTol_DatumReference.hxx delete mode 100644 src/StepDimTol/StepDimTol_DatumTarget.cdl create mode 100644 src/StepDimTol/StepDimTol_DatumTarget.hxx delete mode 100644 src/StepDimTol/StepDimTol_FlatnessTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_FlatnessTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_GeoTolAndGeoTolWthDatRefAndModGeoTolAndPosTol.cdl create mode 100644 src/StepDimTol/StepDimTol_GeoTolAndGeoTolWthDatRefAndModGeoTolAndPosTol.hxx delete mode 100644 src/StepDimTol/StepDimTol_GeometricTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_GeometricTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_GeometricToleranceRelationship.cdl create mode 100644 src/StepDimTol/StepDimTol_GeometricToleranceRelationship.hxx delete mode 100644 src/StepDimTol/StepDimTol_GeometricToleranceWithDatumReference.cdl create mode 100644 src/StepDimTol/StepDimTol_GeometricToleranceWithDatumReference.hxx create mode 100644 src/StepDimTol/StepDimTol_LimitCondition.hxx delete mode 100644 src/StepDimTol/StepDimTol_LineProfileTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_LineProfileTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_ModifiedGeometricTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_ModifiedGeometricTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_ParallelismTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_ParallelismTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_PerpendicularityTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_PerpendicularityTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_PlacedDatumTargetFeature.cdl create mode 100644 src/StepDimTol/StepDimTol_PlacedDatumTargetFeature.hxx delete mode 100644 src/StepDimTol/StepDimTol_PositionTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_PositionTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_RoundnessTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_RoundnessTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_ShapeToleranceSelect.cdl create mode 100644 src/StepDimTol/StepDimTol_ShapeToleranceSelect.hxx delete mode 100644 src/StepDimTol/StepDimTol_StraightnessTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_StraightnessTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_SurfaceProfileTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_SurfaceProfileTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_SymmetryTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_SymmetryTolerance.hxx delete mode 100644 src/StepDimTol/StepDimTol_TotalRunoutTolerance.cdl create mode 100644 src/StepDimTol/StepDimTol_TotalRunoutTolerance.hxx delete mode 100644 src/StepElement/StepElement.cdl delete mode 100644 src/StepElement/StepElement_AnalysisItemWithinRepresentation.cdl create mode 100644 src/StepElement/StepElement_AnalysisItemWithinRepresentation.hxx delete mode 100644 src/StepElement/StepElement_Curve3dElementDescriptor.cdl create mode 100644 src/StepElement/StepElement_Curve3dElementDescriptor.hxx create mode 100644 src/StepElement/StepElement_CurveEdge.hxx delete mode 100644 src/StepElement/StepElement_CurveElementEndReleasePacket.cdl create mode 100644 src/StepElement/StepElement_CurveElementEndReleasePacket.hxx delete mode 100644 src/StepElement/StepElement_CurveElementFreedom.cdl create mode 100644 src/StepElement/StepElement_CurveElementFreedom.hxx delete mode 100644 src/StepElement/StepElement_CurveElementFreedomMember.cdl create mode 100644 src/StepElement/StepElement_CurveElementFreedomMember.hxx delete mode 100644 src/StepElement/StepElement_CurveElementPurpose.cdl create mode 100644 src/StepElement/StepElement_CurveElementPurpose.hxx delete mode 100644 src/StepElement/StepElement_CurveElementPurposeMember.cdl create mode 100644 src/StepElement/StepElement_CurveElementPurposeMember.hxx delete mode 100644 src/StepElement/StepElement_CurveElementSectionDefinition.cdl create mode 100644 src/StepElement/StepElement_CurveElementSectionDefinition.hxx delete mode 100644 src/StepElement/StepElement_CurveElementSectionDerivedDefinitions.cdl create mode 100644 src/StepElement/StepElement_CurveElementSectionDerivedDefinitions.hxx create mode 100644 src/StepElement/StepElement_Element2dShape.hxx delete mode 100644 src/StepElement/StepElement_ElementAspect.cdl create mode 100644 src/StepElement/StepElement_ElementAspect.hxx delete mode 100644 src/StepElement/StepElement_ElementAspectMember.cdl create mode 100644 src/StepElement/StepElement_ElementAspectMember.hxx delete mode 100644 src/StepElement/StepElement_ElementDescriptor.cdl create mode 100644 src/StepElement/StepElement_ElementDescriptor.hxx delete mode 100644 src/StepElement/StepElement_ElementMaterial.cdl create mode 100644 src/StepElement/StepElement_ElementMaterial.hxx create mode 100644 src/StepElement/StepElement_ElementOrder.hxx create mode 100644 src/StepElement/StepElement_ElementVolume.hxx create mode 100644 src/StepElement/StepElement_EnumeratedCurveElementFreedom.hxx create mode 100644 src/StepElement/StepElement_EnumeratedCurveElementPurpose.hxx create mode 100644 src/StepElement/StepElement_EnumeratedSurfaceElementPurpose.hxx create mode 100644 src/StepElement/StepElement_EnumeratedVolumeElementPurpose.hxx delete mode 100644 src/StepElement/StepElement_MeasureOrUnspecifiedValue.cdl create mode 100644 src/StepElement/StepElement_MeasureOrUnspecifiedValue.hxx delete mode 100644 src/StepElement/StepElement_MeasureOrUnspecifiedValueMember.cdl create mode 100644 src/StepElement/StepElement_MeasureOrUnspecifiedValueMember.hxx delete mode 100644 src/StepElement/StepElement_Surface3dElementDescriptor.cdl create mode 100644 src/StepElement/StepElement_Surface3dElementDescriptor.hxx delete mode 100644 src/StepElement/StepElement_SurfaceElementProperty.cdl create mode 100644 src/StepElement/StepElement_SurfaceElementProperty.hxx delete mode 100644 src/StepElement/StepElement_SurfaceElementPurpose.cdl create mode 100644 src/StepElement/StepElement_SurfaceElementPurpose.hxx delete mode 100644 src/StepElement/StepElement_SurfaceElementPurposeMember.cdl create mode 100644 src/StepElement/StepElement_SurfaceElementPurposeMember.hxx delete mode 100644 src/StepElement/StepElement_SurfaceSection.cdl create mode 100644 src/StepElement/StepElement_SurfaceSection.hxx delete mode 100644 src/StepElement/StepElement_SurfaceSectionField.cdl create mode 100644 src/StepElement/StepElement_SurfaceSectionField.hxx delete mode 100644 src/StepElement/StepElement_SurfaceSectionFieldConstant.cdl create mode 100644 src/StepElement/StepElement_SurfaceSectionFieldConstant.hxx delete mode 100644 src/StepElement/StepElement_SurfaceSectionFieldVarying.cdl create mode 100644 src/StepElement/StepElement_SurfaceSectionFieldVarying.hxx delete mode 100644 src/StepElement/StepElement_UniformSurfaceSection.cdl create mode 100644 src/StepElement/StepElement_UniformSurfaceSection.hxx create mode 100644 src/StepElement/StepElement_UnspecifiedValue.hxx delete mode 100644 src/StepElement/StepElement_Volume3dElementDescriptor.cdl create mode 100644 src/StepElement/StepElement_Volume3dElementDescriptor.hxx create mode 100644 src/StepElement/StepElement_Volume3dElementShape.hxx delete mode 100644 src/StepElement/StepElement_VolumeElementPurpose.cdl create mode 100644 src/StepElement/StepElement_VolumeElementPurpose.hxx delete mode 100644 src/StepElement/StepElement_VolumeElementPurposeMember.cdl create mode 100644 src/StepElement/StepElement_VolumeElementPurposeMember.hxx delete mode 100644 src/StepFEA/StepFEA.cdl delete mode 100644 src/StepFEA/StepFEA_AlignedCurve3dElementCoordinateSystem.cdl create mode 100644 src/StepFEA/StepFEA_AlignedCurve3dElementCoordinateSystem.hxx delete mode 100644 src/StepFEA/StepFEA_AlignedSurface3dElementCoordinateSystem.cdl create mode 100644 src/StepFEA/StepFEA_AlignedSurface3dElementCoordinateSystem.hxx delete mode 100644 src/StepFEA/StepFEA_ArbitraryVolume3dElementCoordinateSystem.cdl create mode 100644 src/StepFEA/StepFEA_ArbitraryVolume3dElementCoordinateSystem.hxx delete mode 100644 src/StepFEA/StepFEA_ConstantSurface3dElementCoordinateSystem.cdl create mode 100644 src/StepFEA/StepFEA_ConstantSurface3dElementCoordinateSystem.hxx create mode 100644 src/StepFEA/StepFEA_CoordinateSystemType.hxx delete mode 100644 src/StepFEA/StepFEA_Curve3dElementProperty.cdl create mode 100644 src/StepFEA/StepFEA_Curve3dElementProperty.hxx delete mode 100644 src/StepFEA/StepFEA_Curve3dElementRepresentation.cdl create mode 100644 src/StepFEA/StepFEA_Curve3dElementRepresentation.hxx create mode 100644 src/StepFEA/StepFEA_CurveEdge.hxx delete mode 100644 src/StepFEA/StepFEA_CurveElementEndCoordinateSystem.cdl create mode 100644 src/StepFEA/StepFEA_CurveElementEndCoordinateSystem.hxx delete mode 100644 src/StepFEA/StepFEA_CurveElementEndOffset.cdl create mode 100644 src/StepFEA/StepFEA_CurveElementEndOffset.hxx delete mode 100644 src/StepFEA/StepFEA_CurveElementEndRelease.cdl create mode 100644 src/StepFEA/StepFEA_CurveElementEndRelease.hxx delete mode 100644 src/StepFEA/StepFEA_CurveElementInterval.cdl create mode 100644 src/StepFEA/StepFEA_CurveElementInterval.hxx delete mode 100644 src/StepFEA/StepFEA_CurveElementIntervalConstant.cdl create mode 100644 src/StepFEA/StepFEA_CurveElementIntervalConstant.hxx delete mode 100644 src/StepFEA/StepFEA_CurveElementIntervalLinearlyVarying.cdl create mode 100644 src/StepFEA/StepFEA_CurveElementIntervalLinearlyVarying.hxx delete mode 100644 src/StepFEA/StepFEA_CurveElementLocation.cdl create mode 100644 src/StepFEA/StepFEA_CurveElementLocation.hxx delete mode 100644 src/StepFEA/StepFEA_DegreeOfFreedom.cdl create mode 100644 src/StepFEA/StepFEA_DegreeOfFreedom.hxx delete mode 100644 src/StepFEA/StepFEA_DegreeOfFreedomMember.cdl create mode 100644 src/StepFEA/StepFEA_DegreeOfFreedomMember.hxx delete mode 100644 src/StepFEA/StepFEA_DummyNode.cdl create mode 100644 src/StepFEA/StepFEA_DummyNode.hxx delete mode 100644 src/StepFEA/StepFEA_ElementGeometricRelationship.cdl create mode 100644 src/StepFEA/StepFEA_ElementGeometricRelationship.hxx delete mode 100644 src/StepFEA/StepFEA_ElementGroup.cdl create mode 100644 src/StepFEA/StepFEA_ElementGroup.hxx delete mode 100644 src/StepFEA/StepFEA_ElementOrElementGroup.cdl create mode 100644 src/StepFEA/StepFEA_ElementOrElementGroup.hxx delete mode 100644 src/StepFEA/StepFEA_ElementRepresentation.cdl create mode 100644 src/StepFEA/StepFEA_ElementRepresentation.hxx create mode 100644 src/StepFEA/StepFEA_ElementVolume.hxx create mode 100644 src/StepFEA/StepFEA_EnumeratedDegreeOfFreedom.hxx delete mode 100644 src/StepFEA/StepFEA_FeaAreaDensity.cdl create mode 100644 src/StepFEA/StepFEA_FeaAreaDensity.hxx delete mode 100644 src/StepFEA/StepFEA_FeaAxis2Placement3d.cdl create mode 100644 src/StepFEA/StepFEA_FeaAxis2Placement3d.hxx delete mode 100644 src/StepFEA/StepFEA_FeaCurveSectionGeometricRelationship.cdl create mode 100644 src/StepFEA/StepFEA_FeaCurveSectionGeometricRelationship.hxx delete mode 100644 src/StepFEA/StepFEA_FeaGroup.cdl create mode 100644 src/StepFEA/StepFEA_FeaGroup.hxx delete mode 100644 src/StepFEA/StepFEA_FeaLinearElasticity.cdl create mode 100644 src/StepFEA/StepFEA_FeaLinearElasticity.hxx delete mode 100644 src/StepFEA/StepFEA_FeaMassDensity.cdl create mode 100644 src/StepFEA/StepFEA_FeaMassDensity.hxx delete mode 100644 src/StepFEA/StepFEA_FeaMaterialPropertyRepresentation.cdl create mode 100644 src/StepFEA/StepFEA_FeaMaterialPropertyRepresentation.hxx delete mode 100644 src/StepFEA/StepFEA_FeaMaterialPropertyRepresentationItem.cdl create mode 100644 src/StepFEA/StepFEA_FeaMaterialPropertyRepresentationItem.hxx delete mode 100644 src/StepFEA/StepFEA_FeaModel.cdl create mode 100644 src/StepFEA/StepFEA_FeaModel.hxx delete mode 100644 src/StepFEA/StepFEA_FeaModel3d.cdl create mode 100644 src/StepFEA/StepFEA_FeaModel3d.hxx delete mode 100644 src/StepFEA/StepFEA_FeaModelDefinition.cdl create mode 100644 src/StepFEA/StepFEA_FeaModelDefinition.hxx delete mode 100644 src/StepFEA/StepFEA_FeaMoistureAbsorption.cdl create mode 100644 src/StepFEA/StepFEA_FeaMoistureAbsorption.hxx delete mode 100644 src/StepFEA/StepFEA_FeaParametricPoint.cdl create mode 100644 src/StepFEA/StepFEA_FeaParametricPoint.hxx delete mode 100644 src/StepFEA/StepFEA_FeaRepresentationItem.cdl create mode 100644 src/StepFEA/StepFEA_FeaRepresentationItem.hxx delete mode 100644 src/StepFEA/StepFEA_FeaSecantCoefficientOfLinearThermalExpansion.cdl create mode 100644 src/StepFEA/StepFEA_FeaSecantCoefficientOfLinearThermalExpansion.hxx delete mode 100644 src/StepFEA/StepFEA_FeaShellBendingStiffness.cdl create mode 100644 src/StepFEA/StepFEA_FeaShellBendingStiffness.hxx delete mode 100644 src/StepFEA/StepFEA_FeaShellMembraneBendingCouplingStiffness.cdl create mode 100644 src/StepFEA/StepFEA_FeaShellMembraneBendingCouplingStiffness.hxx delete mode 100644 src/StepFEA/StepFEA_FeaShellMembraneStiffness.cdl create mode 100644 src/StepFEA/StepFEA_FeaShellMembraneStiffness.hxx delete mode 100644 src/StepFEA/StepFEA_FeaShellShearStiffness.cdl create mode 100644 src/StepFEA/StepFEA_FeaShellShearStiffness.hxx delete mode 100644 src/StepFEA/StepFEA_FeaSurfaceSectionGeometricRelationship.cdl create mode 100644 src/StepFEA/StepFEA_FeaSurfaceSectionGeometricRelationship.hxx delete mode 100644 src/StepFEA/StepFEA_FeaTangentialCoefficientOfLinearThermalExpansion.cdl create mode 100644 src/StepFEA/StepFEA_FeaTangentialCoefficientOfLinearThermalExpansion.hxx delete mode 100644 src/StepFEA/StepFEA_FreedomAndCoefficient.cdl create mode 100644 src/StepFEA/StepFEA_FreedomAndCoefficient.hxx delete mode 100644 src/StepFEA/StepFEA_FreedomsList.cdl create mode 100644 src/StepFEA/StepFEA_FreedomsList.hxx delete mode 100644 src/StepFEA/StepFEA_GeometricNode.cdl create mode 100644 src/StepFEA/StepFEA_GeometricNode.hxx delete mode 100644 src/StepFEA/StepFEA_Node.cdl create mode 100644 src/StepFEA/StepFEA_Node.hxx delete mode 100644 src/StepFEA/StepFEA_NodeDefinition.cdl create mode 100644 src/StepFEA/StepFEA_NodeDefinition.hxx delete mode 100644 src/StepFEA/StepFEA_NodeGroup.cdl create mode 100644 src/StepFEA/StepFEA_NodeGroup.hxx delete mode 100644 src/StepFEA/StepFEA_NodeRepresentation.cdl create mode 100644 src/StepFEA/StepFEA_NodeRepresentation.hxx delete mode 100644 src/StepFEA/StepFEA_NodeSet.cdl create mode 100644 src/StepFEA/StepFEA_NodeSet.hxx delete mode 100644 src/StepFEA/StepFEA_NodeWithSolutionCoordinateSystem.cdl create mode 100644 src/StepFEA/StepFEA_NodeWithSolutionCoordinateSystem.hxx delete mode 100644 src/StepFEA/StepFEA_NodeWithVector.cdl create mode 100644 src/StepFEA/StepFEA_NodeWithVector.hxx delete mode 100644 src/StepFEA/StepFEA_ParametricCurve3dElementCoordinateDirection.cdl create mode 100644 src/StepFEA/StepFEA_ParametricCurve3dElementCoordinateDirection.hxx delete mode 100644 src/StepFEA/StepFEA_ParametricCurve3dElementCoordinateSystem.cdl create mode 100644 src/StepFEA/StepFEA_ParametricCurve3dElementCoordinateSystem.hxx delete mode 100644 src/StepFEA/StepFEA_ParametricSurface3dElementCoordinateSystem.cdl create mode 100644 src/StepFEA/StepFEA_ParametricSurface3dElementCoordinateSystem.hxx delete mode 100644 src/StepFEA/StepFEA_Surface3dElementRepresentation.cdl create mode 100644 src/StepFEA/StepFEA_Surface3dElementRepresentation.hxx delete mode 100644 src/StepFEA/StepFEA_SymmetricTensor22d.cdl create mode 100644 src/StepFEA/StepFEA_SymmetricTensor22d.hxx delete mode 100644 src/StepFEA/StepFEA_SymmetricTensor23d.cdl create mode 100644 src/StepFEA/StepFEA_SymmetricTensor23d.hxx delete mode 100644 src/StepFEA/StepFEA_SymmetricTensor23dMember.cdl create mode 100644 src/StepFEA/StepFEA_SymmetricTensor23dMember.hxx delete mode 100644 src/StepFEA/StepFEA_SymmetricTensor42d.cdl create mode 100644 src/StepFEA/StepFEA_SymmetricTensor42d.hxx delete mode 100644 src/StepFEA/StepFEA_SymmetricTensor43d.cdl create mode 100644 src/StepFEA/StepFEA_SymmetricTensor43d.hxx delete mode 100644 src/StepFEA/StepFEA_SymmetricTensor43dMember.cdl create mode 100644 src/StepFEA/StepFEA_SymmetricTensor43dMember.hxx create mode 100644 src/StepFEA/StepFEA_UnspecifiedValue.hxx delete mode 100644 src/StepFEA/StepFEA_Volume3dElementRepresentation.cdl create mode 100644 src/StepFEA/StepFEA_Volume3dElementRepresentation.hxx delete mode 100644 src/StepFile/StepFile_CMPLRS.edl delete mode 100644 src/StepFile/StepFile_CODEGEN.edl delete mode 100644 src/StepFile/StepFile_WOKSteps.edl create mode 100644 src/StepFile/lex.step.c create mode 100644 src/StepFile/step.tab.c create mode 100644 src/StepFile/step.tab.h delete mode 100644 src/StepGeom/StepGeom.cdl delete mode 100644 src/StepGeom/StepGeom_Axis1Placement.cdl create mode 100644 src/StepGeom/StepGeom_Axis1Placement.hxx delete mode 100644 src/StepGeom/StepGeom_Axis2Placement.cdl create mode 100644 src/StepGeom/StepGeom_Axis2Placement.hxx delete mode 100644 src/StepGeom/StepGeom_Axis2Placement2d.cdl create mode 100644 src/StepGeom/StepGeom_Axis2Placement2d.hxx delete mode 100644 src/StepGeom/StepGeom_Axis2Placement3d.cdl create mode 100644 src/StepGeom/StepGeom_Axis2Placement3d.hxx delete mode 100644 src/StepGeom/StepGeom_BSplineCurve.cdl create mode 100644 src/StepGeom/StepGeom_BSplineCurve.hxx create mode 100644 src/StepGeom/StepGeom_BSplineCurveForm.hxx delete mode 100644 src/StepGeom/StepGeom_BSplineCurveWithKnots.cdl create mode 100644 src/StepGeom/StepGeom_BSplineCurveWithKnots.hxx delete mode 100644 src/StepGeom/StepGeom_BSplineCurveWithKnotsAndRationalBSplineCurve.cdl create mode 100644 src/StepGeom/StepGeom_BSplineCurveWithKnotsAndRationalBSplineCurve.hxx delete mode 100644 src/StepGeom/StepGeom_BSplineSurface.cdl create mode 100644 src/StepGeom/StepGeom_BSplineSurface.hxx create mode 100644 src/StepGeom/StepGeom_BSplineSurfaceForm.hxx delete mode 100644 src/StepGeom/StepGeom_BSplineSurfaceWithKnots.cdl create mode 100644 src/StepGeom/StepGeom_BSplineSurfaceWithKnots.hxx delete mode 100644 src/StepGeom/StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface.cdl create mode 100644 src/StepGeom/StepGeom_BSplineSurfaceWithKnotsAndRationalBSplineSurface.hxx delete mode 100644 src/StepGeom/StepGeom_BezierCurve.cdl create mode 100644 src/StepGeom/StepGeom_BezierCurve.hxx delete mode 100644 src/StepGeom/StepGeom_BezierCurveAndRationalBSplineCurve.cdl create mode 100644 src/StepGeom/StepGeom_BezierCurveAndRationalBSplineCurve.hxx delete mode 100644 src/StepGeom/StepGeom_BezierSurface.cdl create mode 100644 src/StepGeom/StepGeom_BezierSurface.hxx delete mode 100644 src/StepGeom/StepGeom_BezierSurfaceAndRationalBSplineSurface.cdl create mode 100644 src/StepGeom/StepGeom_BezierSurfaceAndRationalBSplineSurface.hxx delete mode 100644 src/StepGeom/StepGeom_BoundaryCurve.cdl create mode 100644 src/StepGeom/StepGeom_BoundaryCurve.hxx delete mode 100644 src/StepGeom/StepGeom_BoundedCurve.cdl create mode 100644 src/StepGeom/StepGeom_BoundedCurve.hxx delete mode 100644 src/StepGeom/StepGeom_BoundedSurface.cdl create mode 100644 src/StepGeom/StepGeom_BoundedSurface.hxx delete mode 100644 src/StepGeom/StepGeom_CartesianPoint.cdl create mode 100644 src/StepGeom/StepGeom_CartesianPoint.hxx delete mode 100644 src/StepGeom/StepGeom_CartesianTransformationOperator.cdl create mode 100644 src/StepGeom/StepGeom_CartesianTransformationOperator.hxx delete mode 100644 src/StepGeom/StepGeom_CartesianTransformationOperator2d.cdl create mode 100644 src/StepGeom/StepGeom_CartesianTransformationOperator2d.hxx delete mode 100644 src/StepGeom/StepGeom_CartesianTransformationOperator3d.cdl create mode 100644 src/StepGeom/StepGeom_CartesianTransformationOperator3d.hxx delete mode 100644 src/StepGeom/StepGeom_Circle.cdl create mode 100644 src/StepGeom/StepGeom_Circle.hxx delete mode 100644 src/StepGeom/StepGeom_CompositeCurve.cdl create mode 100644 src/StepGeom/StepGeom_CompositeCurve.hxx delete mode 100644 src/StepGeom/StepGeom_CompositeCurveOnSurface.cdl create mode 100644 src/StepGeom/StepGeom_CompositeCurveOnSurface.hxx delete mode 100644 src/StepGeom/StepGeom_CompositeCurveSegment.cdl create mode 100644 src/StepGeom/StepGeom_CompositeCurveSegment.hxx delete mode 100644 src/StepGeom/StepGeom_Conic.cdl create mode 100644 src/StepGeom/StepGeom_Conic.hxx delete mode 100644 src/StepGeom/StepGeom_ConicalSurface.cdl create mode 100644 src/StepGeom/StepGeom_ConicalSurface.hxx delete mode 100644 src/StepGeom/StepGeom_Curve.cdl create mode 100644 src/StepGeom/StepGeom_Curve.hxx delete mode 100644 src/StepGeom/StepGeom_CurveBoundedSurface.cdl create mode 100644 src/StepGeom/StepGeom_CurveBoundedSurface.hxx delete mode 100644 src/StepGeom/StepGeom_CurveOnSurface.cdl create mode 100644 src/StepGeom/StepGeom_CurveOnSurface.hxx delete mode 100644 src/StepGeom/StepGeom_CurveReplica.cdl create mode 100644 src/StepGeom/StepGeom_CurveReplica.hxx delete mode 100644 src/StepGeom/StepGeom_CylindricalSurface.cdl create mode 100644 src/StepGeom/StepGeom_CylindricalSurface.hxx delete mode 100644 src/StepGeom/StepGeom_DegeneratePcurve.cdl create mode 100644 src/StepGeom/StepGeom_DegeneratePcurve.hxx delete mode 100644 src/StepGeom/StepGeom_DegenerateToroidalSurface.cdl create mode 100644 src/StepGeom/StepGeom_DegenerateToroidalSurface.hxx delete mode 100644 src/StepGeom/StepGeom_Direction.cdl create mode 100644 src/StepGeom/StepGeom_Direction.hxx delete mode 100644 src/StepGeom/StepGeom_ElementarySurface.cdl create mode 100644 src/StepGeom/StepGeom_ElementarySurface.hxx delete mode 100644 src/StepGeom/StepGeom_Ellipse.cdl create mode 100644 src/StepGeom/StepGeom_Ellipse.hxx delete mode 100644 src/StepGeom/StepGeom_EvaluatedDegeneratePcurve.cdl create mode 100644 src/StepGeom/StepGeom_EvaluatedDegeneratePcurve.hxx delete mode 100644 src/StepGeom/StepGeom_GeomRepContextAndGlobUnitAssCtxAndGlobUncertaintyAssCtx.cdl create mode 100644 src/StepGeom/StepGeom_GeomRepContextAndGlobUnitAssCtxAndGlobUncertaintyAssCtx.hxx delete mode 100644 src/StepGeom/StepGeom_GeometricRepresentationContext.cdl create mode 100644 src/StepGeom/StepGeom_GeometricRepresentationContext.hxx delete mode 100644 src/StepGeom/StepGeom_GeometricRepresentationContextAndGlobalUnitAssignedContext.cdl create mode 100644 src/StepGeom/StepGeom_GeometricRepresentationContextAndGlobalUnitAssignedContext.hxx delete mode 100644 src/StepGeom/StepGeom_GeometricRepresentationContextAndParametricRepresentationContext.cdl create mode 100644 src/StepGeom/StepGeom_GeometricRepresentationContextAndParametricRepresentationContext.hxx delete mode 100644 src/StepGeom/StepGeom_GeometricRepresentationItem.cdl create mode 100644 src/StepGeom/StepGeom_GeometricRepresentationItem.hxx delete mode 100644 src/StepGeom/StepGeom_Hyperbola.cdl create mode 100644 src/StepGeom/StepGeom_Hyperbola.hxx delete mode 100644 src/StepGeom/StepGeom_IntersectionCurve.cdl create mode 100644 src/StepGeom/StepGeom_IntersectionCurve.hxx create mode 100644 src/StepGeom/StepGeom_KnotType.hxx delete mode 100644 src/StepGeom/StepGeom_Line.cdl create mode 100644 src/StepGeom/StepGeom_Line.hxx delete mode 100644 src/StepGeom/StepGeom_OffsetCurve3d.cdl create mode 100644 src/StepGeom/StepGeom_OffsetCurve3d.hxx delete mode 100644 src/StepGeom/StepGeom_OffsetSurface.cdl create mode 100644 src/StepGeom/StepGeom_OffsetSurface.hxx delete mode 100644 src/StepGeom/StepGeom_OrientedSurface.cdl create mode 100644 src/StepGeom/StepGeom_OrientedSurface.hxx delete mode 100644 src/StepGeom/StepGeom_OuterBoundaryCurve.cdl create mode 100644 src/StepGeom/StepGeom_OuterBoundaryCurve.hxx delete mode 100644 src/StepGeom/StepGeom_Parabola.cdl create mode 100644 src/StepGeom/StepGeom_Parabola.hxx delete mode 100644 src/StepGeom/StepGeom_Pcurve.cdl create mode 100644 src/StepGeom/StepGeom_Pcurve.hxx delete mode 100644 src/StepGeom/StepGeom_PcurveOrSurface.cdl create mode 100644 src/StepGeom/StepGeom_PcurveOrSurface.hxx delete mode 100644 src/StepGeom/StepGeom_Placement.cdl create mode 100644 src/StepGeom/StepGeom_Placement.hxx delete mode 100644 src/StepGeom/StepGeom_Plane.cdl create mode 100644 src/StepGeom/StepGeom_Plane.hxx delete mode 100644 src/StepGeom/StepGeom_Point.cdl create mode 100644 src/StepGeom/StepGeom_Point.hxx delete mode 100644 src/StepGeom/StepGeom_PointOnCurve.cdl create mode 100644 src/StepGeom/StepGeom_PointOnCurve.hxx delete mode 100644 src/StepGeom/StepGeom_PointOnSurface.cdl create mode 100644 src/StepGeom/StepGeom_PointOnSurface.hxx delete mode 100644 src/StepGeom/StepGeom_PointReplica.cdl create mode 100644 src/StepGeom/StepGeom_PointReplica.hxx delete mode 100644 src/StepGeom/StepGeom_Polyline.cdl create mode 100644 src/StepGeom/StepGeom_Polyline.hxx create mode 100644 src/StepGeom/StepGeom_PreferredSurfaceCurveRepresentation.hxx delete mode 100644 src/StepGeom/StepGeom_QuasiUniformCurve.cdl create mode 100644 src/StepGeom/StepGeom_QuasiUniformCurve.hxx delete mode 100644 src/StepGeom/StepGeom_QuasiUniformCurveAndRationalBSplineCurve.cdl create mode 100644 src/StepGeom/StepGeom_QuasiUniformCurveAndRationalBSplineCurve.hxx delete mode 100644 src/StepGeom/StepGeom_QuasiUniformSurface.cdl create mode 100644 src/StepGeom/StepGeom_QuasiUniformSurface.hxx delete mode 100644 src/StepGeom/StepGeom_QuasiUniformSurfaceAndRationalBSplineSurface.cdl create mode 100644 src/StepGeom/StepGeom_QuasiUniformSurfaceAndRationalBSplineSurface.hxx delete mode 100644 src/StepGeom/StepGeom_RationalBSplineCurve.cdl create mode 100644 src/StepGeom/StepGeom_RationalBSplineCurve.hxx delete mode 100644 src/StepGeom/StepGeom_RationalBSplineSurface.cdl create mode 100644 src/StepGeom/StepGeom_RationalBSplineSurface.hxx delete mode 100644 src/StepGeom/StepGeom_RectangularCompositeSurface.cdl create mode 100644 src/StepGeom/StepGeom_RectangularCompositeSurface.hxx delete mode 100644 src/StepGeom/StepGeom_RectangularTrimmedSurface.cdl create mode 100644 src/StepGeom/StepGeom_RectangularTrimmedSurface.hxx delete mode 100644 src/StepGeom/StepGeom_ReparametrisedCompositeCurveSegment.cdl create mode 100644 src/StepGeom/StepGeom_ReparametrisedCompositeCurveSegment.hxx delete mode 100644 src/StepGeom/StepGeom_SeamCurve.cdl create mode 100644 src/StepGeom/StepGeom_SeamCurve.hxx delete mode 100644 src/StepGeom/StepGeom_SphericalSurface.cdl create mode 100644 src/StepGeom/StepGeom_SphericalSurface.hxx delete mode 100644 src/StepGeom/StepGeom_Surface.cdl create mode 100644 src/StepGeom/StepGeom_Surface.hxx delete mode 100644 src/StepGeom/StepGeom_SurfaceBoundary.cdl create mode 100644 src/StepGeom/StepGeom_SurfaceBoundary.hxx delete mode 100644 src/StepGeom/StepGeom_SurfaceCurve.cdl create mode 100644 src/StepGeom/StepGeom_SurfaceCurve.hxx delete mode 100644 src/StepGeom/StepGeom_SurfaceCurveAndBoundedCurve.cdl create mode 100644 src/StepGeom/StepGeom_SurfaceCurveAndBoundedCurve.hxx delete mode 100644 src/StepGeom/StepGeom_SurfaceOfLinearExtrusion.cdl create mode 100644 src/StepGeom/StepGeom_SurfaceOfLinearExtrusion.hxx delete mode 100644 src/StepGeom/StepGeom_SurfaceOfRevolution.cdl create mode 100644 src/StepGeom/StepGeom_SurfaceOfRevolution.hxx delete mode 100644 src/StepGeom/StepGeom_SurfacePatch.cdl create mode 100644 src/StepGeom/StepGeom_SurfacePatch.hxx delete mode 100644 src/StepGeom/StepGeom_SurfaceReplica.cdl create mode 100644 src/StepGeom/StepGeom_SurfaceReplica.hxx delete mode 100644 src/StepGeom/StepGeom_SweptSurface.cdl create mode 100644 src/StepGeom/StepGeom_SweptSurface.hxx delete mode 100644 src/StepGeom/StepGeom_ToroidalSurface.cdl create mode 100644 src/StepGeom/StepGeom_ToroidalSurface.hxx create mode 100644 src/StepGeom/StepGeom_TransitionCode.hxx delete mode 100644 src/StepGeom/StepGeom_TrimmedCurve.cdl create mode 100644 src/StepGeom/StepGeom_TrimmedCurve.hxx delete mode 100644 src/StepGeom/StepGeom_TrimmingMember.cdl create mode 100644 src/StepGeom/StepGeom_TrimmingMember.hxx create mode 100644 src/StepGeom/StepGeom_TrimmingPreference.hxx delete mode 100644 src/StepGeom/StepGeom_TrimmingSelect.cdl create mode 100644 src/StepGeom/StepGeom_TrimmingSelect.hxx delete mode 100644 src/StepGeom/StepGeom_UniformCurve.cdl create mode 100644 src/StepGeom/StepGeom_UniformCurve.hxx delete mode 100644 src/StepGeom/StepGeom_UniformCurveAndRationalBSplineCurve.cdl create mode 100644 src/StepGeom/StepGeom_UniformCurveAndRationalBSplineCurve.hxx delete mode 100644 src/StepGeom/StepGeom_UniformSurface.cdl create mode 100644 src/StepGeom/StepGeom_UniformSurface.hxx delete mode 100644 src/StepGeom/StepGeom_UniformSurfaceAndRationalBSplineSurface.cdl create mode 100644 src/StepGeom/StepGeom_UniformSurfaceAndRationalBSplineSurface.hxx delete mode 100644 src/StepGeom/StepGeom_Vector.cdl create mode 100644 src/StepGeom/StepGeom_Vector.hxx delete mode 100644 src/StepGeom/StepGeom_VectorOrDirection.cdl create mode 100644 src/StepGeom/StepGeom_VectorOrDirection.hxx delete mode 100644 src/StepRepr/StepRepr.cdl delete mode 100644 src/StepRepr/StepRepr_AssemblyComponentUsage.cdl create mode 100644 src/StepRepr/StepRepr_AssemblyComponentUsage.hxx delete mode 100644 src/StepRepr/StepRepr_AssemblyComponentUsageSubstitute.cdl create mode 100644 src/StepRepr/StepRepr_AssemblyComponentUsageSubstitute.hxx delete mode 100644 src/StepRepr/StepRepr_CharacterizedDefinition.cdl create mode 100644 src/StepRepr/StepRepr_CharacterizedDefinition.hxx delete mode 100644 src/StepRepr/StepRepr_CompositeShapeAspect.cdl create mode 100644 src/StepRepr/StepRepr_CompositeShapeAspect.hxx delete mode 100644 src/StepRepr/StepRepr_CompoundRepresentationItem.cdl create mode 100644 src/StepRepr/StepRepr_CompoundRepresentationItem.hxx delete mode 100644 src/StepRepr/StepRepr_ConfigurationDesign.cdl create mode 100644 src/StepRepr/StepRepr_ConfigurationDesign.hxx delete mode 100644 src/StepRepr/StepRepr_ConfigurationDesignItem.cdl create mode 100644 src/StepRepr/StepRepr_ConfigurationDesignItem.hxx delete mode 100644 src/StepRepr/StepRepr_ConfigurationEffectivity.cdl create mode 100644 src/StepRepr/StepRepr_ConfigurationEffectivity.hxx delete mode 100644 src/StepRepr/StepRepr_ConfigurationItem.cdl create mode 100644 src/StepRepr/StepRepr_ConfigurationItem.hxx delete mode 100644 src/StepRepr/StepRepr_DataEnvironment.cdl create mode 100644 src/StepRepr/StepRepr_DataEnvironment.hxx delete mode 100644 src/StepRepr/StepRepr_DefinitionalRepresentation.cdl create mode 100644 src/StepRepr/StepRepr_DefinitionalRepresentation.hxx delete mode 100644 src/StepRepr/StepRepr_DerivedShapeAspect.cdl create mode 100644 src/StepRepr/StepRepr_DerivedShapeAspect.hxx delete mode 100644 src/StepRepr/StepRepr_DescriptiveRepresentationItem.cdl create mode 100644 src/StepRepr/StepRepr_DescriptiveRepresentationItem.hxx delete mode 100644 src/StepRepr/StepRepr_Extension.cdl create mode 100644 src/StepRepr/StepRepr_Extension.hxx delete mode 100644 src/StepRepr/StepRepr_ExternallyDefinedRepresentation.cdl create mode 100644 src/StepRepr/StepRepr_ExternallyDefinedRepresentation.hxx delete mode 100644 src/StepRepr/StepRepr_FunctionallyDefinedTransformation.cdl create mode 100644 src/StepRepr/StepRepr_FunctionallyDefinedTransformation.hxx delete mode 100644 src/StepRepr/StepRepr_GlobalUncertaintyAssignedContext.cdl create mode 100644 src/StepRepr/StepRepr_GlobalUncertaintyAssignedContext.hxx delete mode 100644 src/StepRepr/StepRepr_GlobalUnitAssignedContext.cdl create mode 100644 src/StepRepr/StepRepr_GlobalUnitAssignedContext.hxx delete mode 100644 src/StepRepr/StepRepr_ItemDefinedTransformation.cdl create mode 100644 src/StepRepr/StepRepr_ItemDefinedTransformation.hxx delete mode 100644 src/StepRepr/StepRepr_MakeFromUsageOption.cdl create mode 100644 src/StepRepr/StepRepr_MakeFromUsageOption.hxx delete mode 100644 src/StepRepr/StepRepr_MappedItem.cdl create mode 100644 src/StepRepr/StepRepr_MappedItem.hxx delete mode 100644 src/StepRepr/StepRepr_MaterialDesignation.cdl create mode 100644 src/StepRepr/StepRepr_MaterialDesignation.hxx delete mode 100644 src/StepRepr/StepRepr_MaterialProperty.cdl create mode 100644 src/StepRepr/StepRepr_MaterialProperty.hxx delete mode 100644 src/StepRepr/StepRepr_MaterialPropertyRepresentation.cdl create mode 100644 src/StepRepr/StepRepr_MaterialPropertyRepresentation.hxx delete mode 100644 src/StepRepr/StepRepr_MeasureRepresentationItem.cdl create mode 100644 src/StepRepr/StepRepr_MeasureRepresentationItem.hxx delete mode 100644 src/StepRepr/StepRepr_NextAssemblyUsageOccurrence.cdl create mode 100644 src/StepRepr/StepRepr_NextAssemblyUsageOccurrence.hxx delete mode 100644 src/StepRepr/StepRepr_ParametricRepresentationContext.cdl create mode 100644 src/StepRepr/StepRepr_ParametricRepresentationContext.hxx delete mode 100644 src/StepRepr/StepRepr_ProductConcept.cdl create mode 100644 src/StepRepr/StepRepr_ProductConcept.hxx delete mode 100644 src/StepRepr/StepRepr_ProductDefinitionShape.cdl create mode 100644 src/StepRepr/StepRepr_ProductDefinitionShape.hxx delete mode 100644 src/StepRepr/StepRepr_ProductDefinitionUsage.cdl create mode 100644 src/StepRepr/StepRepr_ProductDefinitionUsage.hxx delete mode 100644 src/StepRepr/StepRepr_PromissoryUsageOccurrence.cdl create mode 100644 src/StepRepr/StepRepr_PromissoryUsageOccurrence.hxx delete mode 100644 src/StepRepr/StepRepr_PropertyDefinition.cdl create mode 100644 src/StepRepr/StepRepr_PropertyDefinition.hxx delete mode 100644 src/StepRepr/StepRepr_PropertyDefinitionRelationship.cdl create mode 100644 src/StepRepr/StepRepr_PropertyDefinitionRelationship.hxx delete mode 100644 src/StepRepr/StepRepr_PropertyDefinitionRepresentation.cdl create mode 100644 src/StepRepr/StepRepr_PropertyDefinitionRepresentation.hxx delete mode 100644 src/StepRepr/StepRepr_QuantifiedAssemblyComponentUsage.cdl create mode 100644 src/StepRepr/StepRepr_QuantifiedAssemblyComponentUsage.hxx delete mode 100644 src/StepRepr/StepRepr_ReprItemAndLengthMeasureWithUnit.cdl create mode 100644 src/StepRepr/StepRepr_ReprItemAndLengthMeasureWithUnit.hxx delete mode 100644 src/StepRepr/StepRepr_Representation.cdl create mode 100644 src/StepRepr/StepRepr_Representation.hxx delete mode 100644 src/StepRepr/StepRepr_RepresentationContext.cdl create mode 100644 src/StepRepr/StepRepr_RepresentationContext.hxx delete mode 100644 src/StepRepr/StepRepr_RepresentationItem.cdl create mode 100644 src/StepRepr/StepRepr_RepresentationItem.hxx delete mode 100644 src/StepRepr/StepRepr_RepresentationMap.cdl create mode 100644 src/StepRepr/StepRepr_RepresentationMap.hxx delete mode 100644 src/StepRepr/StepRepr_RepresentationRelationship.cdl create mode 100644 src/StepRepr/StepRepr_RepresentationRelationship.hxx delete mode 100644 src/StepRepr/StepRepr_RepresentationRelationshipWithTransformation.cdl create mode 100644 src/StepRepr/StepRepr_RepresentationRelationshipWithTransformation.hxx delete mode 100644 src/StepRepr/StepRepr_RepresentedDefinition.cdl create mode 100644 src/StepRepr/StepRepr_RepresentedDefinition.hxx delete mode 100644 src/StepRepr/StepRepr_ShapeAspect.cdl create mode 100644 src/StepRepr/StepRepr_ShapeAspect.hxx delete mode 100644 src/StepRepr/StepRepr_ShapeAspectDerivingRelationship.cdl create mode 100644 src/StepRepr/StepRepr_ShapeAspectDerivingRelationship.hxx delete mode 100644 src/StepRepr/StepRepr_ShapeAspectRelationship.cdl create mode 100644 src/StepRepr/StepRepr_ShapeAspectRelationship.hxx delete mode 100644 src/StepRepr/StepRepr_ShapeAspectTransition.cdl create mode 100644 src/StepRepr/StepRepr_ShapeAspectTransition.hxx delete mode 100644 src/StepRepr/StepRepr_ShapeDefinition.cdl create mode 100644 src/StepRepr/StepRepr_ShapeDefinition.hxx delete mode 100644 src/StepRepr/StepRepr_ShapeRepresentationRelationship.cdl create mode 100644 src/StepRepr/StepRepr_ShapeRepresentationRelationship.hxx delete mode 100644 src/StepRepr/StepRepr_ShapeRepresentationRelationshipWithTransformation.cdl create mode 100644 src/StepRepr/StepRepr_ShapeRepresentationRelationshipWithTransformation.hxx delete mode 100644 src/StepRepr/StepRepr_SpecifiedHigherUsageOccurrence.cdl create mode 100644 src/StepRepr/StepRepr_SpecifiedHigherUsageOccurrence.hxx delete mode 100644 src/StepRepr/StepRepr_StructuralResponseProperty.cdl create mode 100644 src/StepRepr/StepRepr_StructuralResponseProperty.hxx delete mode 100644 src/StepRepr/StepRepr_StructuralResponsePropertyDefinitionRepresentation.cdl create mode 100644 src/StepRepr/StepRepr_StructuralResponsePropertyDefinitionRepresentation.hxx delete mode 100644 src/StepRepr/StepRepr_SuppliedPartRelationship.cdl create mode 100644 src/StepRepr/StepRepr_SuppliedPartRelationship.hxx delete mode 100644 src/StepRepr/StepRepr_Transformation.cdl create mode 100644 src/StepRepr/StepRepr_Transformation.hxx delete mode 100644 src/StepRepr/StepRepr_ValueRange.cdl create mode 100644 src/StepRepr/StepRepr_ValueRange.hxx create mode 100644 src/StepSelect/FILES delete mode 100644 src/StepSelect/StepSelect.cdl delete mode 100644 src/StepSelect/StepSelect_Activator.cdl create mode 100644 src/StepSelect/StepSelect_Activator.hxx create mode 100644 src/StepSelect/StepSelect_FileModifier.hxx create mode 100644 src/StepSelect/StepSelect_FileModifier_0.cxx delete mode 100644 src/StepSelect/StepSelect_FloatFormat.cdl create mode 100644 src/StepSelect/StepSelect_FloatFormat.hxx create mode 100644 src/StepSelect/StepSelect_ModelModifier.hxx create mode 100644 src/StepSelect/StepSelect_ModelModifier_0.cxx delete mode 100644 src/StepSelect/StepSelect_StepType.cdl create mode 100644 src/StepSelect/StepSelect_StepType.hxx delete mode 100644 src/StepSelect/StepSelect_WorkLibrary.cdl create mode 100644 src/StepSelect/StepSelect_WorkLibrary.hxx delete mode 100644 src/StepShape/StepShape.cdl delete mode 100644 src/StepShape/StepShape_AdvancedBrepShapeRepresentation.cdl create mode 100644 src/StepShape/StepShape_AdvancedBrepShapeRepresentation.hxx delete mode 100644 src/StepShape/StepShape_AdvancedFace.cdl create mode 100644 src/StepShape/StepShape_AdvancedFace.hxx create mode 100644 src/StepShape/StepShape_AngleRelator.hxx delete mode 100644 src/StepShape/StepShape_AngularLocation.cdl create mode 100644 src/StepShape/StepShape_AngularLocation.hxx delete mode 100644 src/StepShape/StepShape_AngularSize.cdl create mode 100644 src/StepShape/StepShape_AngularSize.hxx delete mode 100644 src/StepShape/StepShape_Block.cdl create mode 100644 src/StepShape/StepShape_Block.hxx delete mode 100644 src/StepShape/StepShape_BooleanOperand.cdl create mode 100644 src/StepShape/StepShape_BooleanOperand.hxx create mode 100644 src/StepShape/StepShape_BooleanOperator.hxx delete mode 100644 src/StepShape/StepShape_BooleanResult.cdl create mode 100644 src/StepShape/StepShape_BooleanResult.hxx delete mode 100644 src/StepShape/StepShape_BoxDomain.cdl create mode 100644 src/StepShape/StepShape_BoxDomain.hxx delete mode 100644 src/StepShape/StepShape_BoxedHalfSpace.cdl create mode 100644 src/StepShape/StepShape_BoxedHalfSpace.hxx delete mode 100644 src/StepShape/StepShape_BrepWithVoids.cdl create mode 100644 src/StepShape/StepShape_BrepWithVoids.hxx delete mode 100644 src/StepShape/StepShape_ClosedShell.cdl create mode 100644 src/StepShape/StepShape_ClosedShell.hxx delete mode 100644 src/StepShape/StepShape_CompoundShapeRepresentation.cdl create mode 100644 src/StepShape/StepShape_CompoundShapeRepresentation.hxx delete mode 100644 src/StepShape/StepShape_ConnectedEdgeSet.cdl create mode 100644 src/StepShape/StepShape_ConnectedEdgeSet.hxx delete mode 100644 src/StepShape/StepShape_ConnectedFaceSet.cdl create mode 100644 src/StepShape/StepShape_ConnectedFaceSet.hxx delete mode 100644 src/StepShape/StepShape_ConnectedFaceShapeRepresentation.cdl create mode 100644 src/StepShape/StepShape_ConnectedFaceShapeRepresentation.hxx delete mode 100644 src/StepShape/StepShape_ConnectedFaceSubSet.cdl create mode 100644 src/StepShape/StepShape_ConnectedFaceSubSet.hxx delete mode 100644 src/StepShape/StepShape_ContextDependentShapeRepresentation.cdl create mode 100644 src/StepShape/StepShape_ContextDependentShapeRepresentation.hxx delete mode 100644 src/StepShape/StepShape_CsgPrimitive.cdl create mode 100644 src/StepShape/StepShape_CsgPrimitive.hxx delete mode 100644 src/StepShape/StepShape_CsgSelect.cdl create mode 100644 src/StepShape/StepShape_CsgSelect.hxx delete mode 100644 src/StepShape/StepShape_CsgShapeRepresentation.cdl create mode 100644 src/StepShape/StepShape_CsgShapeRepresentation.hxx delete mode 100644 src/StepShape/StepShape_CsgSolid.cdl create mode 100644 src/StepShape/StepShape_CsgSolid.hxx delete mode 100644 src/StepShape/StepShape_DefinitionalRepresentationAndShapeRepresentation.cdl create mode 100644 src/StepShape/StepShape_DefinitionalRepresentationAndShapeRepresentation.hxx delete mode 100644 src/StepShape/StepShape_DimensionalCharacteristic.cdl create mode 100644 src/StepShape/StepShape_DimensionalCharacteristic.hxx delete mode 100644 src/StepShape/StepShape_DimensionalCharacteristicRepresentation.cdl create mode 100644 src/StepShape/StepShape_DimensionalCharacteristicRepresentation.hxx delete mode 100644 src/StepShape/StepShape_DimensionalLocation.cdl create mode 100644 src/StepShape/StepShape_DimensionalLocation.hxx delete mode 100644 src/StepShape/StepShape_DimensionalLocationWithPath.cdl create mode 100644 src/StepShape/StepShape_DimensionalLocationWithPath.hxx delete mode 100644 src/StepShape/StepShape_DimensionalSize.cdl create mode 100644 src/StepShape/StepShape_DimensionalSize.hxx delete mode 100644 src/StepShape/StepShape_DimensionalSizeWithPath.cdl create mode 100644 src/StepShape/StepShape_DimensionalSizeWithPath.hxx delete mode 100644 src/StepShape/StepShape_DirectedDimensionalLocation.cdl create mode 100644 src/StepShape/StepShape_DirectedDimensionalLocation.hxx delete mode 100644 src/StepShape/StepShape_Edge.cdl create mode 100644 src/StepShape/StepShape_Edge.hxx delete mode 100644 src/StepShape/StepShape_EdgeBasedWireframeModel.cdl create mode 100644 src/StepShape/StepShape_EdgeBasedWireframeModel.hxx delete mode 100644 src/StepShape/StepShape_EdgeBasedWireframeShapeRepresentation.cdl create mode 100644 src/StepShape/StepShape_EdgeBasedWireframeShapeRepresentation.hxx delete mode 100644 src/StepShape/StepShape_EdgeCurve.cdl create mode 100644 src/StepShape/StepShape_EdgeCurve.hxx delete mode 100644 src/StepShape/StepShape_EdgeLoop.cdl create mode 100644 src/StepShape/StepShape_EdgeLoop.hxx delete mode 100644 src/StepShape/StepShape_ExtrudedAreaSolid.cdl create mode 100644 src/StepShape/StepShape_ExtrudedAreaSolid.hxx delete mode 100644 src/StepShape/StepShape_ExtrudedFaceSolid.cdl create mode 100644 src/StepShape/StepShape_ExtrudedFaceSolid.hxx delete mode 100644 src/StepShape/StepShape_Face.cdl create mode 100644 src/StepShape/StepShape_Face.hxx delete mode 100644 src/StepShape/StepShape_FaceBasedSurfaceModel.cdl create mode 100644 src/StepShape/StepShape_FaceBasedSurfaceModel.hxx delete mode 100644 src/StepShape/StepShape_FaceBound.cdl create mode 100644 src/StepShape/StepShape_FaceBound.hxx delete mode 100644 src/StepShape/StepShape_FaceOuterBound.cdl create mode 100644 src/StepShape/StepShape_FaceOuterBound.hxx delete mode 100644 src/StepShape/StepShape_FaceSurface.cdl create mode 100644 src/StepShape/StepShape_FaceSurface.hxx delete mode 100644 src/StepShape/StepShape_FacetedBrep.cdl create mode 100644 src/StepShape/StepShape_FacetedBrep.hxx delete mode 100644 src/StepShape/StepShape_FacetedBrepAndBrepWithVoids.cdl create mode 100644 src/StepShape/StepShape_FacetedBrepAndBrepWithVoids.hxx delete mode 100644 src/StepShape/StepShape_FacetedBrepShapeRepresentation.cdl create mode 100644 src/StepShape/StepShape_FacetedBrepShapeRepresentation.hxx delete mode 100644 src/StepShape/StepShape_GeometricCurveSet.cdl create mode 100644 src/StepShape/StepShape_GeometricCurveSet.hxx delete mode 100644 src/StepShape/StepShape_GeometricSet.cdl create mode 100644 src/StepShape/StepShape_GeometricSet.hxx delete mode 100644 src/StepShape/StepShape_GeometricSetSelect.cdl create mode 100644 src/StepShape/StepShape_GeometricSetSelect.hxx delete mode 100644 src/StepShape/StepShape_GeometricallyBoundedSurfaceShapeRepresentation.cdl create mode 100644 src/StepShape/StepShape_GeometricallyBoundedSurfaceShapeRepresentation.hxx delete mode 100644 src/StepShape/StepShape_GeometricallyBoundedWireframeShapeRepresentation.cdl create mode 100644 src/StepShape/StepShape_GeometricallyBoundedWireframeShapeRepresentation.hxx delete mode 100644 src/StepShape/StepShape_HalfSpaceSolid.cdl create mode 100644 src/StepShape/StepShape_HalfSpaceSolid.hxx delete mode 100644 src/StepShape/StepShape_LimitsAndFits.cdl create mode 100644 src/StepShape/StepShape_LimitsAndFits.hxx delete mode 100644 src/StepShape/StepShape_Loop.cdl create mode 100644 src/StepShape/StepShape_Loop.hxx delete mode 100644 src/StepShape/StepShape_LoopAndPath.cdl create mode 100644 src/StepShape/StepShape_LoopAndPath.hxx delete mode 100644 src/StepShape/StepShape_ManifoldSolidBrep.cdl create mode 100644 src/StepShape/StepShape_ManifoldSolidBrep.hxx delete mode 100644 src/StepShape/StepShape_ManifoldSurfaceShapeRepresentation.cdl create mode 100644 src/StepShape/StepShape_ManifoldSurfaceShapeRepresentation.hxx delete mode 100644 src/StepShape/StepShape_MeasureQualification.cdl create mode 100644 src/StepShape/StepShape_MeasureQualification.hxx delete mode 100644 src/StepShape/StepShape_MeasureRepresentationItemAndQualifiedRepresentationItem.cdl create mode 100644 src/StepShape/StepShape_MeasureRepresentationItemAndQualifiedRepresentationItem.hxx delete mode 100644 src/StepShape/StepShape_NonManifoldSurfaceShapeRepresentation.cdl create mode 100644 src/StepShape/StepShape_NonManifoldSurfaceShapeRepresentation.hxx delete mode 100644 src/StepShape/StepShape_OpenShell.cdl create mode 100644 src/StepShape/StepShape_OpenShell.hxx delete mode 100644 src/StepShape/StepShape_OrientedClosedShell.cdl create mode 100644 src/StepShape/StepShape_OrientedClosedShell.hxx delete mode 100644 src/StepShape/StepShape_OrientedEdge.cdl create mode 100644 src/StepShape/StepShape_OrientedEdge.hxx delete mode 100644 src/StepShape/StepShape_OrientedFace.cdl create mode 100644 src/StepShape/StepShape_OrientedFace.hxx delete mode 100644 src/StepShape/StepShape_OrientedOpenShell.cdl create mode 100644 src/StepShape/StepShape_OrientedOpenShell.hxx delete mode 100644 src/StepShape/StepShape_OrientedPath.cdl create mode 100644 src/StepShape/StepShape_OrientedPath.hxx delete mode 100644 src/StepShape/StepShape_Path.cdl create mode 100644 src/StepShape/StepShape_Path.hxx delete mode 100644 src/StepShape/StepShape_PlusMinusTolerance.cdl create mode 100644 src/StepShape/StepShape_PlusMinusTolerance.hxx delete mode 100644 src/StepShape/StepShape_PointRepresentation.cdl create mode 100644 src/StepShape/StepShape_PointRepresentation.hxx delete mode 100644 src/StepShape/StepShape_PolyLoop.cdl create mode 100644 src/StepShape/StepShape_PolyLoop.hxx delete mode 100644 src/StepShape/StepShape_PrecisionQualifier.cdl create mode 100644 src/StepShape/StepShape_PrecisionQualifier.hxx delete mode 100644 src/StepShape/StepShape_QualifiedRepresentationItem.cdl create mode 100644 src/StepShape/StepShape_QualifiedRepresentationItem.hxx delete mode 100644 src/StepShape/StepShape_ReversibleTopologyItem.cdl create mode 100644 src/StepShape/StepShape_ReversibleTopologyItem.hxx delete mode 100644 src/StepShape/StepShape_RevolvedAreaSolid.cdl create mode 100644 src/StepShape/StepShape_RevolvedAreaSolid.hxx delete mode 100644 src/StepShape/StepShape_RevolvedFaceSolid.cdl create mode 100644 src/StepShape/StepShape_RevolvedFaceSolid.hxx delete mode 100644 src/StepShape/StepShape_RightAngularWedge.cdl create mode 100644 src/StepShape/StepShape_RightAngularWedge.hxx delete mode 100644 src/StepShape/StepShape_RightCircularCone.cdl create mode 100644 src/StepShape/StepShape_RightCircularCone.hxx delete mode 100644 src/StepShape/StepShape_RightCircularCylinder.cdl create mode 100644 src/StepShape/StepShape_RightCircularCylinder.hxx delete mode 100644 src/StepShape/StepShape_SeamEdge.cdl create mode 100644 src/StepShape/StepShape_SeamEdge.hxx delete mode 100644 src/StepShape/StepShape_ShapeDefinitionRepresentation.cdl create mode 100644 src/StepShape/StepShape_ShapeDefinitionRepresentation.hxx delete mode 100644 src/StepShape/StepShape_ShapeDimensionRepresentation.cdl create mode 100644 src/StepShape/StepShape_ShapeDimensionRepresentation.hxx delete mode 100644 src/StepShape/StepShape_ShapeRepresentation.cdl create mode 100644 src/StepShape/StepShape_ShapeRepresentation.hxx delete mode 100644 src/StepShape/StepShape_ShapeRepresentationWithParameters.cdl create mode 100644 src/StepShape/StepShape_ShapeRepresentationWithParameters.hxx delete mode 100644 src/StepShape/StepShape_Shell.cdl create mode 100644 src/StepShape/StepShape_Shell.hxx delete mode 100644 src/StepShape/StepShape_ShellBasedSurfaceModel.cdl create mode 100644 src/StepShape/StepShape_ShellBasedSurfaceModel.hxx delete mode 100644 src/StepShape/StepShape_SolidModel.cdl create mode 100644 src/StepShape/StepShape_SolidModel.hxx delete mode 100644 src/StepShape/StepShape_SolidReplica.cdl create mode 100644 src/StepShape/StepShape_SolidReplica.hxx delete mode 100644 src/StepShape/StepShape_Sphere.cdl create mode 100644 src/StepShape/StepShape_Sphere.hxx delete mode 100644 src/StepShape/StepShape_Subedge.cdl create mode 100644 src/StepShape/StepShape_Subedge.hxx delete mode 100644 src/StepShape/StepShape_Subface.cdl create mode 100644 src/StepShape/StepShape_Subface.hxx delete mode 100644 src/StepShape/StepShape_SurfaceModel.cdl create mode 100644 src/StepShape/StepShape_SurfaceModel.hxx delete mode 100644 src/StepShape/StepShape_SweptAreaSolid.cdl create mode 100644 src/StepShape/StepShape_SweptAreaSolid.hxx delete mode 100644 src/StepShape/StepShape_SweptFaceSolid.cdl create mode 100644 src/StepShape/StepShape_SweptFaceSolid.hxx delete mode 100644 src/StepShape/StepShape_ToleranceMethodDefinition.cdl create mode 100644 src/StepShape/StepShape_ToleranceMethodDefinition.hxx delete mode 100644 src/StepShape/StepShape_ToleranceValue.cdl create mode 100644 src/StepShape/StepShape_ToleranceValue.hxx delete mode 100644 src/StepShape/StepShape_TopologicalRepresentationItem.cdl create mode 100644 src/StepShape/StepShape_TopologicalRepresentationItem.hxx delete mode 100644 src/StepShape/StepShape_Torus.cdl create mode 100644 src/StepShape/StepShape_Torus.hxx delete mode 100644 src/StepShape/StepShape_TransitionalShapeRepresentation.cdl create mode 100644 src/StepShape/StepShape_TransitionalShapeRepresentation.hxx delete mode 100644 src/StepShape/StepShape_TypeQualifier.cdl create mode 100644 src/StepShape/StepShape_TypeQualifier.hxx delete mode 100644 src/StepShape/StepShape_ValueQualifier.cdl create mode 100644 src/StepShape/StepShape_ValueQualifier.hxx delete mode 100644 src/StepShape/StepShape_Vertex.cdl create mode 100644 src/StepShape/StepShape_Vertex.hxx delete mode 100644 src/StepShape/StepShape_VertexLoop.cdl create mode 100644 src/StepShape/StepShape_VertexLoop.hxx delete mode 100644 src/StepShape/StepShape_VertexPoint.cdl create mode 100644 src/StepShape/StepShape_VertexPoint.hxx delete mode 100644 src/StepToGeom/StepToGeom.cdl delete mode 100644 src/StepToGeom/StepToGeom_CMPLRS.edl delete mode 100644 src/StepToGeom/StepToGeom_MakeAxis1Placement.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeAxis1Placement.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeAxis2Placement.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeAxis2Placement.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeAxisPlacement.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeAxisPlacement.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeBSplineCurve.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeBSplineCurve.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeBSplineCurve2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeBSplineCurve2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeBSplineSurface.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeBSplineSurface.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeBoundedCurve.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeBoundedCurve.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeBoundedCurve2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeBoundedCurve2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeBoundedSurface.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeBoundedSurface.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeCartesianPoint.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeCartesianPoint.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeCartesianPoint2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeCartesianPoint2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeCircle.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeCircle.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeCircle2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeCircle2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeConic.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeConic.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeConic2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeConic2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeConicalSurface.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeConicalSurface.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeCurve.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeCurve.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeCurve2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeCurve2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeCylindricalSurface.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeCylindricalSurface.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeDirection.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeDirection.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeDirection2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeDirection2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeElementarySurface.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeElementarySurface.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeEllipse.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeEllipse.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeEllipse2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeEllipse2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeHyperbola.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeHyperbola.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeHyperbola2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeHyperbola2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeLine.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeLine.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeLine2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeLine2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeParabola.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeParabola.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeParabola2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeParabola2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakePlane.cdl create mode 100644 src/StepToGeom/StepToGeom_MakePlane.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakePolyline.cdl create mode 100644 src/StepToGeom/StepToGeom_MakePolyline.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakePolyline2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakePolyline2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeRectangularTrimmedSurface.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeRectangularTrimmedSurface.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeSphericalSurface.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeSphericalSurface.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeSurface.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeSurface.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeSurfaceOfLinearExtrusion.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeSurfaceOfLinearExtrusion.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeSurfaceOfRevolution.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeSurfaceOfRevolution.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeSweptSurface.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeSweptSurface.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeToroidalSurface.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeToroidalSurface.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeTransformation2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeTransformation2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeTransformation3d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeTransformation3d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeTrimmedCurve.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeTrimmedCurve.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeTrimmedCurve2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeTrimmedCurve2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeVectorWithMagnitude.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeVectorWithMagnitude.hxx delete mode 100644 src/StepToGeom/StepToGeom_MakeVectorWithMagnitude2d.cdl create mode 100644 src/StepToGeom/StepToGeom_MakeVectorWithMagnitude2d.hxx delete mode 100644 src/StepToGeom/StepToGeom_Root.cdl create mode 100644 src/StepToGeom/StepToGeom_Root.hxx delete mode 100644 src/StepToGeom/StepToGeom_WOKSteps.edl delete mode 100644 src/StepToTopoDS/StepToTopoDS.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_Builder.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_Builder.hxx create mode 100644 src/StepToTopoDS/StepToTopoDS_BuilderError.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_CartesianPointHasher.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_CartesianPointHasher.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_GeometricTool.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_GeometricTool.hxx create mode 100644 src/StepToTopoDS/StepToTopoDS_GeometricToolError.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_MakeTransformed.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_MakeTransformed.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_NMTool.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_NMTool.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_PointPair.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_PointPair.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_PointPairHasher.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_PointPairHasher.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_Root.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_Root.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_Tool.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_Tool.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateCompositeCurve.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateCompositeCurve.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateCurveBoundedSurface.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateCurveBoundedSurface.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateEdge.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateEdge.hxx create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateEdgeError.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateEdgeLoop.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateEdgeLoop.hxx create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateEdgeLoopError.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateFace.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateFace.hxx create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateFaceError.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_TranslatePolyLoop.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslatePolyLoop.hxx create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslatePolyLoopError.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateShell.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateShell.hxx create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateShellError.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateVertex.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateVertex.hxx create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateVertexError.hxx delete mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateVertexLoop.cdl create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateVertexLoop.hxx create mode 100644 src/StepToTopoDS/StepToTopoDS_TranslateVertexLoopError.hxx delete mode 100644 src/StepVisual/StepVisual.cdl delete mode 100644 src/StepVisual/StepVisual_AnnotationOccurrence.cdl create mode 100644 src/StepVisual/StepVisual_AnnotationOccurrence.hxx delete mode 100644 src/StepVisual/StepVisual_AnnotationText.cdl create mode 100644 src/StepVisual/StepVisual_AnnotationText.hxx delete mode 100644 src/StepVisual/StepVisual_AnnotationTextOccurrence.cdl create mode 100644 src/StepVisual/StepVisual_AnnotationTextOccurrence.hxx delete mode 100644 src/StepVisual/StepVisual_AreaInSet.cdl create mode 100644 src/StepVisual/StepVisual_AreaInSet.hxx delete mode 100644 src/StepVisual/StepVisual_AreaOrView.cdl create mode 100644 src/StepVisual/StepVisual_AreaOrView.hxx delete mode 100644 src/StepVisual/StepVisual_BackgroundColour.cdl create mode 100644 src/StepVisual/StepVisual_BackgroundColour.hxx delete mode 100644 src/StepVisual/StepVisual_BoxCharacteristicSelect.cdl create mode 100644 src/StepVisual/StepVisual_BoxCharacteristicSelect.hxx delete mode 100644 src/StepVisual/StepVisual_CameraImage.cdl create mode 100644 src/StepVisual/StepVisual_CameraImage.hxx delete mode 100644 src/StepVisual/StepVisual_CameraImage2dWithScale.cdl create mode 100644 src/StepVisual/StepVisual_CameraImage2dWithScale.hxx delete mode 100644 src/StepVisual/StepVisual_CameraImage3dWithScale.cdl create mode 100644 src/StepVisual/StepVisual_CameraImage3dWithScale.hxx delete mode 100644 src/StepVisual/StepVisual_CameraModel.cdl create mode 100644 src/StepVisual/StepVisual_CameraModel.hxx delete mode 100644 src/StepVisual/StepVisual_CameraModelD2.cdl create mode 100644 src/StepVisual/StepVisual_CameraModelD2.hxx delete mode 100644 src/StepVisual/StepVisual_CameraModelD3.cdl create mode 100644 src/StepVisual/StepVisual_CameraModelD3.hxx delete mode 100644 src/StepVisual/StepVisual_CameraUsage.cdl create mode 100644 src/StepVisual/StepVisual_CameraUsage.hxx create mode 100644 src/StepVisual/StepVisual_CentralOrParallel.hxx delete mode 100644 src/StepVisual/StepVisual_Colour.cdl create mode 100644 src/StepVisual/StepVisual_Colour.hxx delete mode 100644 src/StepVisual/StepVisual_ColourRgb.cdl create mode 100644 src/StepVisual/StepVisual_ColourRgb.hxx delete mode 100644 src/StepVisual/StepVisual_ColourSpecification.cdl create mode 100644 src/StepVisual/StepVisual_ColourSpecification.hxx delete mode 100644 src/StepVisual/StepVisual_CompositeText.cdl create mode 100644 src/StepVisual/StepVisual_CompositeText.hxx delete mode 100644 src/StepVisual/StepVisual_CompositeTextWithExtent.cdl create mode 100644 src/StepVisual/StepVisual_CompositeTextWithExtent.hxx delete mode 100644 src/StepVisual/StepVisual_ContextDependentInvisibility.cdl create mode 100644 src/StepVisual/StepVisual_ContextDependentInvisibility.hxx delete mode 100644 src/StepVisual/StepVisual_ContextDependentOverRidingStyledItem.cdl create mode 100644 src/StepVisual/StepVisual_ContextDependentOverRidingStyledItem.hxx delete mode 100644 src/StepVisual/StepVisual_CurveStyle.cdl create mode 100644 src/StepVisual/StepVisual_CurveStyle.hxx delete mode 100644 src/StepVisual/StepVisual_CurveStyleFont.cdl create mode 100644 src/StepVisual/StepVisual_CurveStyleFont.hxx delete mode 100644 src/StepVisual/StepVisual_CurveStyleFontPattern.cdl create mode 100644 src/StepVisual/StepVisual_CurveStyleFontPattern.hxx delete mode 100644 src/StepVisual/StepVisual_CurveStyleFontSelect.cdl create mode 100644 src/StepVisual/StepVisual_CurveStyleFontSelect.hxx delete mode 100644 src/StepVisual/StepVisual_DirectionCountSelect.cdl create mode 100644 src/StepVisual/StepVisual_DirectionCountSelect.hxx delete mode 100644 src/StepVisual/StepVisual_DraughtingAnnotationOccurrence.cdl create mode 100644 src/StepVisual/StepVisual_DraughtingAnnotationOccurrence.hxx delete mode 100644 src/StepVisual/StepVisual_DraughtingModel.cdl create mode 100644 src/StepVisual/StepVisual_DraughtingModel.hxx delete mode 100644 src/StepVisual/StepVisual_DraughtingPreDefinedColour.cdl create mode 100644 src/StepVisual/StepVisual_DraughtingPreDefinedColour.hxx delete mode 100644 src/StepVisual/StepVisual_DraughtingPreDefinedCurveFont.cdl create mode 100644 src/StepVisual/StepVisual_DraughtingPreDefinedCurveFont.hxx delete mode 100644 src/StepVisual/StepVisual_ExternallyDefinedCurveFont.cdl create mode 100644 src/StepVisual/StepVisual_ExternallyDefinedCurveFont.hxx delete mode 100644 src/StepVisual/StepVisual_ExternallyDefinedTextFont.cdl create mode 100644 src/StepVisual/StepVisual_ExternallyDefinedTextFont.hxx delete mode 100644 src/StepVisual/StepVisual_FillAreaStyle.cdl create mode 100644 src/StepVisual/StepVisual_FillAreaStyle.hxx delete mode 100644 src/StepVisual/StepVisual_FillAreaStyleColour.cdl create mode 100644 src/StepVisual/StepVisual_FillAreaStyleColour.hxx delete mode 100644 src/StepVisual/StepVisual_FillStyleSelect.cdl create mode 100644 src/StepVisual/StepVisual_FillStyleSelect.hxx delete mode 100644 src/StepVisual/StepVisual_FontSelect.cdl create mode 100644 src/StepVisual/StepVisual_FontSelect.hxx delete mode 100644 src/StepVisual/StepVisual_Invisibility.cdl create mode 100644 src/StepVisual/StepVisual_Invisibility.hxx delete mode 100644 src/StepVisual/StepVisual_InvisibilityContext.cdl create mode 100644 src/StepVisual/StepVisual_InvisibilityContext.hxx delete mode 100644 src/StepVisual/StepVisual_InvisibleItem.cdl create mode 100644 src/StepVisual/StepVisual_InvisibleItem.hxx delete mode 100644 src/StepVisual/StepVisual_LayeredItem.cdl create mode 100644 src/StepVisual/StepVisual_LayeredItem.hxx delete mode 100644 src/StepVisual/StepVisual_MarkerMember.cdl create mode 100644 src/StepVisual/StepVisual_MarkerMember.hxx delete mode 100644 src/StepVisual/StepVisual_MarkerSelect.cdl create mode 100644 src/StepVisual/StepVisual_MarkerSelect.hxx create mode 100644 src/StepVisual/StepVisual_MarkerType.hxx delete mode 100644 src/StepVisual/StepVisual_MechanicalDesignGeometricPresentationArea.cdl create mode 100644 src/StepVisual/StepVisual_MechanicalDesignGeometricPresentationArea.hxx delete mode 100644 src/StepVisual/StepVisual_MechanicalDesignGeometricPresentationRepresentation.cdl create mode 100644 src/StepVisual/StepVisual_MechanicalDesignGeometricPresentationRepresentation.hxx delete mode 100644 src/StepVisual/StepVisual_OverRidingStyledItem.cdl create mode 100644 src/StepVisual/StepVisual_OverRidingStyledItem.hxx delete mode 100644 src/StepVisual/StepVisual_PlanarBox.cdl create mode 100644 src/StepVisual/StepVisual_PlanarBox.hxx delete mode 100644 src/StepVisual/StepVisual_PlanarExtent.cdl create mode 100644 src/StepVisual/StepVisual_PlanarExtent.hxx delete mode 100644 src/StepVisual/StepVisual_PointStyle.cdl create mode 100644 src/StepVisual/StepVisual_PointStyle.hxx delete mode 100644 src/StepVisual/StepVisual_PreDefinedColour.cdl create mode 100644 src/StepVisual/StepVisual_PreDefinedColour.hxx delete mode 100644 src/StepVisual/StepVisual_PreDefinedCurveFont.cdl create mode 100644 src/StepVisual/StepVisual_PreDefinedCurveFont.hxx delete mode 100644 src/StepVisual/StepVisual_PreDefinedItem.cdl create mode 100644 src/StepVisual/StepVisual_PreDefinedItem.hxx delete mode 100644 src/StepVisual/StepVisual_PreDefinedTextFont.cdl create mode 100644 src/StepVisual/StepVisual_PreDefinedTextFont.hxx delete mode 100644 src/StepVisual/StepVisual_PresentationArea.cdl create mode 100644 src/StepVisual/StepVisual_PresentationArea.hxx delete mode 100644 src/StepVisual/StepVisual_PresentationLayerAssignment.cdl create mode 100644 src/StepVisual/StepVisual_PresentationLayerAssignment.hxx delete mode 100644 src/StepVisual/StepVisual_PresentationLayerUsage.cdl create mode 100644 src/StepVisual/StepVisual_PresentationLayerUsage.hxx delete mode 100644 src/StepVisual/StepVisual_PresentationRepresentation.cdl create mode 100644 src/StepVisual/StepVisual_PresentationRepresentation.hxx delete mode 100644 src/StepVisual/StepVisual_PresentationRepresentationSelect.cdl create mode 100644 src/StepVisual/StepVisual_PresentationRepresentationSelect.hxx delete mode 100644 src/StepVisual/StepVisual_PresentationSet.cdl create mode 100644 src/StepVisual/StepVisual_PresentationSet.hxx delete mode 100644 src/StepVisual/StepVisual_PresentationSize.cdl create mode 100644 src/StepVisual/StepVisual_PresentationSize.hxx delete mode 100644 src/StepVisual/StepVisual_PresentationSizeAssignmentSelect.cdl create mode 100644 src/StepVisual/StepVisual_PresentationSizeAssignmentSelect.hxx delete mode 100644 src/StepVisual/StepVisual_PresentationStyleAssignment.cdl create mode 100644 src/StepVisual/StepVisual_PresentationStyleAssignment.hxx delete mode 100644 src/StepVisual/StepVisual_PresentationStyleByContext.cdl create mode 100644 src/StepVisual/StepVisual_PresentationStyleByContext.hxx delete mode 100644 src/StepVisual/StepVisual_PresentationStyleSelect.cdl create mode 100644 src/StepVisual/StepVisual_PresentationStyleSelect.hxx delete mode 100644 src/StepVisual/StepVisual_PresentationView.cdl create mode 100644 src/StepVisual/StepVisual_PresentationView.hxx delete mode 100644 src/StepVisual/StepVisual_PresentedItem.cdl create mode 100644 src/StepVisual/StepVisual_PresentedItem.hxx delete mode 100644 src/StepVisual/StepVisual_PresentedItemRepresentation.cdl create mode 100644 src/StepVisual/StepVisual_PresentedItemRepresentation.hxx delete mode 100644 src/StepVisual/StepVisual_StyleContextSelect.cdl create mode 100644 src/StepVisual/StepVisual_StyleContextSelect.hxx delete mode 100644 src/StepVisual/StepVisual_StyledItem.cdl create mode 100644 src/StepVisual/StepVisual_StyledItem.hxx create mode 100644 src/StepVisual/StepVisual_SurfaceSide.hxx delete mode 100644 src/StepVisual/StepVisual_SurfaceSideStyle.cdl create mode 100644 src/StepVisual/StepVisual_SurfaceSideStyle.hxx delete mode 100644 src/StepVisual/StepVisual_SurfaceStyleBoundary.cdl create mode 100644 src/StepVisual/StepVisual_SurfaceStyleBoundary.hxx delete mode 100644 src/StepVisual/StepVisual_SurfaceStyleControlGrid.cdl create mode 100644 src/StepVisual/StepVisual_SurfaceStyleControlGrid.hxx delete mode 100644 src/StepVisual/StepVisual_SurfaceStyleElementSelect.cdl create mode 100644 src/StepVisual/StepVisual_SurfaceStyleElementSelect.hxx delete mode 100644 src/StepVisual/StepVisual_SurfaceStyleFillArea.cdl create mode 100644 src/StepVisual/StepVisual_SurfaceStyleFillArea.hxx delete mode 100644 src/StepVisual/StepVisual_SurfaceStyleParameterLine.cdl create mode 100644 src/StepVisual/StepVisual_SurfaceStyleParameterLine.hxx delete mode 100644 src/StepVisual/StepVisual_SurfaceStyleSegmentationCurve.cdl create mode 100644 src/StepVisual/StepVisual_SurfaceStyleSegmentationCurve.hxx delete mode 100644 src/StepVisual/StepVisual_SurfaceStyleSilhouette.cdl create mode 100644 src/StepVisual/StepVisual_SurfaceStyleSilhouette.hxx delete mode 100644 src/StepVisual/StepVisual_SurfaceStyleUsage.cdl create mode 100644 src/StepVisual/StepVisual_SurfaceStyleUsage.hxx delete mode 100644 src/StepVisual/StepVisual_Template.cdl create mode 100644 src/StepVisual/StepVisual_Template.hxx delete mode 100644 src/StepVisual/StepVisual_TemplateInstance.cdl create mode 100644 src/StepVisual/StepVisual_TemplateInstance.hxx delete mode 100644 src/StepVisual/StepVisual_TextLiteral.cdl create mode 100644 src/StepVisual/StepVisual_TextLiteral.hxx delete mode 100644 src/StepVisual/StepVisual_TextOrCharacter.cdl create mode 100644 src/StepVisual/StepVisual_TextOrCharacter.hxx create mode 100644 src/StepVisual/StepVisual_TextPath.hxx delete mode 100644 src/StepVisual/StepVisual_TextStyle.cdl create mode 100644 src/StepVisual/StepVisual_TextStyle.hxx delete mode 100644 src/StepVisual/StepVisual_TextStyleForDefinedFont.cdl create mode 100644 src/StepVisual/StepVisual_TextStyleForDefinedFont.hxx delete mode 100644 src/StepVisual/StepVisual_TextStyleWithBoxCharacteristics.cdl create mode 100644 src/StepVisual/StepVisual_TextStyleWithBoxCharacteristics.hxx delete mode 100644 src/StepVisual/StepVisual_ViewVolume.cdl create mode 100644 src/StepVisual/StepVisual_ViewVolume.hxx create mode 100644 src/StlAPI/FILES delete mode 100644 src/StlAPI/StlAPI.cdl create mode 100644 src/StlAPI/StlAPI.hxx create mode 100644 src/StlAPI/StlAPI_ErrorStatus.hxx delete mode 100644 src/StlAPI/StlAPI_Reader.cdl create mode 100644 src/StlAPI/StlAPI_Reader.hxx delete mode 100644 src/StlAPI/StlAPI_Writer.cdl create mode 100644 src/StlAPI/StlAPI_Writer.hxx delete mode 100644 src/StlMesh/StlMesh.cdl create mode 100644 src/StlMesh/StlMesh.hxx delete mode 100644 src/StlMesh/StlMesh_Mesh.cdl create mode 100644 src/StlMesh/StlMesh_Mesh.hxx delete mode 100644 src/StlMesh/StlMesh_MeshDomain.cdl create mode 100644 src/StlMesh/StlMesh_MeshDomain.hxx delete mode 100644 src/StlMesh/StlMesh_MeshExplorer.cdl create mode 100644 src/StlMesh/StlMesh_MeshExplorer.hxx delete mode 100644 src/StlMesh/StlMesh_MeshTriangle.cdl create mode 100644 src/StlMesh/StlMesh_MeshTriangle.hxx create mode 100644 src/StlTransfer/FILES delete mode 100644 src/StlTransfer/StlTransfer.cdl create mode 100644 src/StlTransfer/StlTransfer.hxx delete mode 100644 src/Storage/Storage.cdl create mode 100644 src/Storage/Storage.hxx delete mode 100644 src/Storage/Storage_BaseDriver.cdl create mode 100644 src/Storage/Storage_BaseDriver.hxx delete mode 100644 src/Storage/Storage_CallBack.cdl create mode 100644 src/Storage/Storage_CallBack.hxx delete mode 100644 src/Storage/Storage_Data.cdl create mode 100644 src/Storage/Storage_Data.hxx delete mode 100644 src/Storage/Storage_DefaultCallBack.cdl create mode 100644 src/Storage/Storage_DefaultCallBack.hxx create mode 100644 src/Storage/Storage_Error.hxx delete mode 100644 src/Storage/Storage_HeaderData.cdl create mode 100644 src/Storage/Storage_HeaderData.hxx delete mode 100644 src/Storage/Storage_InternalData.cdl create mode 100644 src/Storage/Storage_InternalData.hxx create mode 100644 src/Storage/Storage_OpenMode.hxx delete mode 100644 src/Storage/Storage_Root.cdl create mode 100644 src/Storage/Storage_Root.hxx delete mode 100644 src/Storage/Storage_RootData.cdl create mode 100644 src/Storage/Storage_RootData.hxx delete mode 100644 src/Storage/Storage_Schema.cdl create mode 100644 src/Storage/Storage_Schema.hxx create mode 100644 src/Storage/Storage_SolveMode.hxx create mode 100644 src/Storage/Storage_StreamExtCharParityError.hxx create mode 100644 src/Storage/Storage_StreamFormatError.hxx create mode 100644 src/Storage/Storage_StreamModeError.hxx create mode 100644 src/Storage/Storage_StreamReadError.hxx create mode 100644 src/Storage/Storage_StreamTypeMismatchError.hxx create mode 100644 src/Storage/Storage_StreamUnknownTypeError.hxx create mode 100644 src/Storage/Storage_StreamWriteError.hxx delete mode 100644 src/Storage/Storage_TypeData.cdl create mode 100644 src/Storage/Storage_TypeData.hxx delete mode 100644 src/Storage/Storage_TypedCallBack.cdl create mode 100644 src/Storage/Storage_TypedCallBack.hxx delete mode 100644 src/Storage/Storage_stCONSTclCOM.cdl create mode 100644 src/Storage/Storage_stCONSTclCOM.hxx create mode 100644 src/Sweep/FILES delete mode 100644 src/Sweep/Sweep.cdl delete mode 100644 src/Sweep/Sweep_NumShape.cdl create mode 100644 src/Sweep/Sweep_NumShape.hxx delete mode 100644 src/Sweep/Sweep_NumShapeIterator.cdl create mode 100644 src/Sweep/Sweep_NumShapeIterator.hxx delete mode 100644 src/Sweep/Sweep_NumShapeTool.cdl create mode 100644 src/Sweep/Sweep_NumShapeTool.hxx delete mode 100644 src/TColGeom/TColGeom.cdl delete mode 100644 src/TColGeom2d/TColGeom2d.cdl delete mode 100644 src/TColQuantity/TColQuantity.cdl delete mode 100644 src/TColStd/TColStd.cdl delete mode 100644 src/TColStd/TColStd_HPackedMapOfInteger.cdl create mode 100644 src/TColStd/TColStd_HPackedMapOfInteger.hxx delete mode 100644 src/TColgp/TColgp.cdl delete mode 100644 src/TCollection/TCollection.cdl create mode 100644 src/TCollection/TCollection.hxx delete mode 100644 src/TCollection/TCollection_Array1.cdl delete mode 100644 src/TCollection/TCollection_Array2.cdl delete mode 100644 src/TCollection/TCollection_AsciiString.cdl create mode 100644 src/TCollection/TCollection_AsciiString.hxx delete mode 100644 src/TCollection/TCollection_BaseSequence.cdl create mode 100644 src/TCollection/TCollection_BaseSequence.hxx delete mode 100644 src/TCollection/TCollection_BasicMap.cdl create mode 100644 src/TCollection/TCollection_BasicMap.hxx delete mode 100644 src/TCollection/TCollection_BasicMapIterator.cdl create mode 100644 src/TCollection/TCollection_BasicMapIterator.hxx delete mode 100644 src/TCollection/TCollection_DataMap.cdl delete mode 100644 src/TCollection/TCollection_DoubleMap.cdl delete mode 100644 src/TCollection/TCollection_ExtendedString.cdl create mode 100644 src/TCollection/TCollection_ExtendedString.hxx delete mode 100644 src/TCollection/TCollection_HArray1.cdl delete mode 100644 src/TCollection/TCollection_HArray2.cdl delete mode 100644 src/TCollection/TCollection_HAsciiString.cdl create mode 100644 src/TCollection/TCollection_HAsciiString.hxx delete mode 100644 src/TCollection/TCollection_HExtendedString.cdl create mode 100644 src/TCollection/TCollection_HExtendedString.hxx delete mode 100644 src/TCollection/TCollection_HSequence.cdl delete mode 100644 src/TCollection/TCollection_IndexedDataMap.cdl delete mode 100644 src/TCollection/TCollection_IndexedMap.cdl delete mode 100644 src/TCollection/TCollection_List.cdl delete mode 100644 src/TCollection/TCollection_Map.cdl delete mode 100644 src/TCollection/TCollection_MapHasher.cdl delete mode 100644 src/TCollection/TCollection_MapNode.cdl create mode 100644 src/TCollection/TCollection_MapNode.hxx create mode 100644 src/TCollection/TCollection_MapNodePtr.hxx delete mode 100644 src/TCollection/TCollection_SeqNode.cdl create mode 100644 src/TCollection/TCollection_SeqNode.hxx create mode 100644 src/TCollection/TCollection_SeqNodePtr.hxx delete mode 100644 src/TCollection/TCollection_Sequence.cdl create mode 100644 src/TCollection/TCollection_Side.hxx delete mode 100644 src/TCollection/TCollection_WOKSteps.edl delete mode 100644 src/TDF/TDF.cdl create mode 100644 src/TDF/TDF.hxx delete mode 100644 src/TDF/TDF_Attribute.cdl create mode 100644 src/TDF/TDF_Attribute.hxx delete mode 100644 src/TDF/TDF_AttributeDelta.cdl create mode 100644 src/TDF/TDF_AttributeDelta.hxx delete mode 100644 src/TDF/TDF_ChildIDIterator.cdl create mode 100644 src/TDF/TDF_ChildIDIterator.hxx delete mode 100644 src/TDF/TDF_ChildIterator.cdl create mode 100644 src/TDF/TDF_ChildIterator.hxx delete mode 100644 src/TDF/TDF_ClosureMode.cdl create mode 100644 src/TDF/TDF_ClosureMode.hxx delete mode 100644 src/TDF/TDF_ClosureTool.cdl create mode 100644 src/TDF/TDF_ClosureTool.hxx delete mode 100644 src/TDF/TDF_ComparisonTool.cdl create mode 100644 src/TDF/TDF_ComparisonTool.hxx delete mode 100644 src/TDF/TDF_CopyLabel.cdl create mode 100644 src/TDF/TDF_CopyLabel.hxx delete mode 100644 src/TDF/TDF_CopyTool.cdl create mode 100644 src/TDF/TDF_CopyTool.hxx delete mode 100644 src/TDF/TDF_Data.cdl create mode 100644 src/TDF/TDF_Data.hxx delete mode 100644 src/TDF/TDF_DataSet.cdl create mode 100644 src/TDF/TDF_DataSet.hxx delete mode 100644 src/TDF/TDF_DefaultDeltaOnModification.cdl create mode 100644 src/TDF/TDF_DefaultDeltaOnModification.hxx delete mode 100644 src/TDF/TDF_DefaultDeltaOnRemoval.cdl create mode 100644 src/TDF/TDF_DefaultDeltaOnRemoval.hxx delete mode 100644 src/TDF/TDF_Delta.cdl create mode 100644 src/TDF/TDF_Delta.hxx delete mode 100644 src/TDF/TDF_DeltaOnAddition.cdl create mode 100644 src/TDF/TDF_DeltaOnAddition.hxx delete mode 100644 src/TDF/TDF_DeltaOnForget.cdl create mode 100644 src/TDF/TDF_DeltaOnForget.hxx delete mode 100644 src/TDF/TDF_DeltaOnModification.cdl create mode 100644 src/TDF/TDF_DeltaOnModification.hxx delete mode 100644 src/TDF/TDF_DeltaOnRemoval.cdl create mode 100644 src/TDF/TDF_DeltaOnRemoval.hxx delete mode 100644 src/TDF/TDF_DeltaOnResume.cdl create mode 100644 src/TDF/TDF_DeltaOnResume.hxx delete mode 100644 src/TDF/TDF_IDFilter.cdl create mode 100644 src/TDF/TDF_IDFilter.hxx delete mode 100644 src/TDF/TDF_Label.cdl create mode 100644 src/TDF/TDF_Label.hxx delete mode 100644 src/TDF/TDF_LabelMapHasher.cdl create mode 100644 src/TDF/TDF_LabelMapHasher.hxx create mode 100644 src/TDF/TDF_LabelNodePtr.hxx delete mode 100644 src/TDF/TDF_Reference.cdl create mode 100644 src/TDF/TDF_Reference.hxx delete mode 100644 src/TDF/TDF_RelocationTable.cdl create mode 100644 src/TDF/TDF_RelocationTable.hxx delete mode 100644 src/TDF/TDF_TagSource.cdl create mode 100644 src/TDF/TDF_TagSource.hxx delete mode 100644 src/TDF/TDF_Tool.cdl create mode 100644 src/TDF/TDF_Tool.hxx delete mode 100644 src/TDF/TDF_Transaction.cdl create mode 100644 src/TDF/TDF_Transaction.hxx delete mode 100644 src/TDataStd/TDataStd.cdl create mode 100644 src/TDataStd/TDataStd.hxx delete mode 100644 src/TDataStd/TDataStd_AsciiString.cdl create mode 100644 src/TDataStd/TDataStd_AsciiString.hxx delete mode 100644 src/TDataStd/TDataStd_BooleanArray.cdl create mode 100644 src/TDataStd/TDataStd_BooleanArray.hxx delete mode 100644 src/TDataStd/TDataStd_BooleanList.cdl create mode 100644 src/TDataStd/TDataStd_BooleanList.hxx delete mode 100644 src/TDataStd/TDataStd_ByteArray.cdl create mode 100644 src/TDataStd/TDataStd_ByteArray.hxx delete mode 100644 src/TDataStd/TDataStd_ChildNodeIterator.cdl create mode 100644 src/TDataStd/TDataStd_ChildNodeIterator.hxx delete mode 100644 src/TDataStd/TDataStd_Comment.cdl create mode 100644 src/TDataStd/TDataStd_Comment.hxx delete mode 100644 src/TDataStd/TDataStd_Current.cdl create mode 100644 src/TDataStd/TDataStd_Current.hxx delete mode 100644 src/TDataStd/TDataStd_DeltaOnModificationOfByteArray.cdl create mode 100644 src/TDataStd/TDataStd_DeltaOnModificationOfByteArray.hxx delete mode 100644 src/TDataStd/TDataStd_DeltaOnModificationOfExtStringArray.cdl create mode 100644 src/TDataStd/TDataStd_DeltaOnModificationOfExtStringArray.hxx delete mode 100644 src/TDataStd/TDataStd_DeltaOnModificationOfIntArray.cdl create mode 100644 src/TDataStd/TDataStd_DeltaOnModificationOfIntArray.hxx delete mode 100644 src/TDataStd/TDataStd_DeltaOnModificationOfIntPackedMap.cdl create mode 100644 src/TDataStd/TDataStd_DeltaOnModificationOfIntPackedMap.hxx delete mode 100644 src/TDataStd/TDataStd_DeltaOnModificationOfRealArray.cdl create mode 100644 src/TDataStd/TDataStd_DeltaOnModificationOfRealArray.hxx delete mode 100644 src/TDataStd/TDataStd_Directory.cdl create mode 100644 src/TDataStd/TDataStd_Directory.hxx delete mode 100644 src/TDataStd/TDataStd_Expression.cdl create mode 100644 src/TDataStd/TDataStd_Expression.hxx delete mode 100644 src/TDataStd/TDataStd_ExtStringArray.cdl create mode 100644 src/TDataStd/TDataStd_ExtStringArray.hxx delete mode 100644 src/TDataStd/TDataStd_ExtStringList.cdl create mode 100644 src/TDataStd/TDataStd_ExtStringList.hxx delete mode 100644 src/TDataStd/TDataStd_HDataMapOfStringByte.cdl create mode 100644 src/TDataStd/TDataStd_HDataMapOfStringByte.hxx delete mode 100644 src/TDataStd/TDataStd_HDataMapOfStringHArray1OfInteger.cdl create mode 100644 src/TDataStd/TDataStd_HDataMapOfStringHArray1OfInteger.hxx delete mode 100644 src/TDataStd/TDataStd_HDataMapOfStringHArray1OfReal.cdl create mode 100644 src/TDataStd/TDataStd_HDataMapOfStringHArray1OfReal.hxx delete mode 100644 src/TDataStd/TDataStd_HDataMapOfStringInteger.cdl create mode 100644 src/TDataStd/TDataStd_HDataMapOfStringInteger.hxx delete mode 100644 src/TDataStd/TDataStd_HDataMapOfStringReal.cdl create mode 100644 src/TDataStd/TDataStd_HDataMapOfStringReal.hxx delete mode 100644 src/TDataStd/TDataStd_HDataMapOfStringString.cdl create mode 100644 src/TDataStd/TDataStd_HDataMapOfStringString.hxx delete mode 100644 src/TDataStd/TDataStd_IntPackedMap.cdl create mode 100644 src/TDataStd/TDataStd_IntPackedMap.hxx delete mode 100644 src/TDataStd/TDataStd_Integer.cdl create mode 100644 src/TDataStd/TDataStd_Integer.hxx delete mode 100644 src/TDataStd/TDataStd_IntegerArray.cdl create mode 100644 src/TDataStd/TDataStd_IntegerArray.hxx delete mode 100644 src/TDataStd/TDataStd_IntegerList.cdl create mode 100644 src/TDataStd/TDataStd_IntegerList.hxx delete mode 100644 src/TDataStd/TDataStd_Name.cdl create mode 100644 src/TDataStd/TDataStd_Name.hxx delete mode 100644 src/TDataStd/TDataStd_NamedData.cdl create mode 100644 src/TDataStd/TDataStd_NamedData.hxx delete mode 100644 src/TDataStd/TDataStd_NoteBook.cdl create mode 100644 src/TDataStd/TDataStd_NoteBook.hxx create mode 100644 src/TDataStd/TDataStd_PtrTreeNode.hxx delete mode 100644 src/TDataStd/TDataStd_Real.cdl create mode 100644 src/TDataStd/TDataStd_Real.hxx delete mode 100644 src/TDataStd/TDataStd_RealArray.cdl create mode 100644 src/TDataStd/TDataStd_RealArray.hxx create mode 100644 src/TDataStd/TDataStd_RealEnum.hxx delete mode 100644 src/TDataStd/TDataStd_RealList.cdl create mode 100644 src/TDataStd/TDataStd_RealList.hxx delete mode 100644 src/TDataStd/TDataStd_ReferenceArray.cdl create mode 100644 src/TDataStd/TDataStd_ReferenceArray.hxx delete mode 100644 src/TDataStd/TDataStd_ReferenceList.cdl create mode 100644 src/TDataStd/TDataStd_ReferenceList.hxx delete mode 100644 src/TDataStd/TDataStd_Relation.cdl create mode 100644 src/TDataStd/TDataStd_Relation.hxx delete mode 100644 src/TDataStd/TDataStd_Tick.cdl create mode 100644 src/TDataStd/TDataStd_Tick.hxx delete mode 100644 src/TDataStd/TDataStd_TreeNode.cdl create mode 100644 src/TDataStd/TDataStd_TreeNode.hxx delete mode 100644 src/TDataStd/TDataStd_UAttribute.cdl create mode 100644 src/TDataStd/TDataStd_UAttribute.hxx delete mode 100644 src/TDataStd/TDataStd_Variable.cdl create mode 100644 src/TDataStd/TDataStd_Variable.hxx delete mode 100644 src/TDataXtd/TDataXtd.cdl create mode 100644 src/TDataXtd/TDataXtd.hxx delete mode 100644 src/TDataXtd/TDataXtd_Axis.cdl create mode 100644 src/TDataXtd/TDataXtd_Axis.hxx delete mode 100644 src/TDataXtd/TDataXtd_Constraint.cdl create mode 100644 src/TDataXtd/TDataXtd_Constraint.hxx create mode 100644 src/TDataXtd/TDataXtd_ConstraintEnum.hxx delete mode 100644 src/TDataXtd/TDataXtd_Geometry.cdl create mode 100644 src/TDataXtd/TDataXtd_Geometry.hxx create mode 100644 src/TDataXtd/TDataXtd_GeometryEnum.hxx delete mode 100644 src/TDataXtd/TDataXtd_Pattern.cdl create mode 100644 src/TDataXtd/TDataXtd_Pattern.hxx delete mode 100644 src/TDataXtd/TDataXtd_PatternStd.cdl create mode 100644 src/TDataXtd/TDataXtd_PatternStd.hxx delete mode 100644 src/TDataXtd/TDataXtd_Placement.cdl create mode 100644 src/TDataXtd/TDataXtd_Placement.hxx delete mode 100644 src/TDataXtd/TDataXtd_Plane.cdl create mode 100644 src/TDataXtd/TDataXtd_Plane.hxx delete mode 100644 src/TDataXtd/TDataXtd_Point.cdl create mode 100644 src/TDataXtd/TDataXtd_Point.hxx delete mode 100644 src/TDataXtd/TDataXtd_Position.cdl create mode 100644 src/TDataXtd/TDataXtd_Position.hxx delete mode 100644 src/TDataXtd/TDataXtd_Shape.cdl create mode 100644 src/TDataXtd/TDataXtd_Shape.hxx delete mode 100644 src/TDocStd/TDocStd.cdl create mode 100644 src/TDocStd/TDocStd.hxx delete mode 100644 src/TDocStd/TDocStd_Application.cdl create mode 100644 src/TDocStd/TDocStd_Application.hxx delete mode 100644 src/TDocStd/TDocStd_ApplicationDelta.cdl create mode 100644 src/TDocStd/TDocStd_ApplicationDelta.hxx delete mode 100644 src/TDocStd/TDocStd_CompoundDelta.cdl create mode 100644 src/TDocStd/TDocStd_CompoundDelta.hxx delete mode 100644 src/TDocStd/TDocStd_Context.cdl create mode 100644 src/TDocStd/TDocStd_Context.hxx delete mode 100644 src/TDocStd/TDocStd_Document.cdl create mode 100644 src/TDocStd/TDocStd_Document.hxx delete mode 100644 src/TDocStd/TDocStd_Modified.cdl create mode 100644 src/TDocStd/TDocStd_Modified.hxx delete mode 100644 src/TDocStd/TDocStd_MultiTransactionManager.cdl create mode 100644 src/TDocStd/TDocStd_MultiTransactionManager.hxx delete mode 100644 src/TDocStd/TDocStd_Owner.cdl create mode 100644 src/TDocStd/TDocStd_Owner.hxx delete mode 100644 src/TDocStd/TDocStd_PathParser.cdl create mode 100644 src/TDocStd/TDocStd_PathParser.hxx delete mode 100644 src/TDocStd/TDocStd_XLink.cdl create mode 100644 src/TDocStd/TDocStd_XLink.hxx delete mode 100644 src/TDocStd/TDocStd_XLinkIterator.cdl create mode 100644 src/TDocStd/TDocStd_XLinkIterator.hxx create mode 100644 src/TDocStd/TDocStd_XLinkPtr.hxx delete mode 100644 src/TDocStd/TDocStd_XLinkRoot.cdl create mode 100644 src/TDocStd/TDocStd_XLinkRoot.hxx delete mode 100644 src/TDocStd/TDocStd_XLinkTool.cdl create mode 100644 src/TDocStd/TDocStd_XLinkTool.hxx delete mode 100644 src/TFunction/TFunction.cdl delete mode 100644 src/TFunction/TFunction_Driver.cdl create mode 100644 src/TFunction/TFunction_Driver.hxx delete mode 100644 src/TFunction/TFunction_DriverTable.cdl create mode 100644 src/TFunction/TFunction_DriverTable.hxx create mode 100644 src/TFunction/TFunction_ExecutionStatus.hxx delete mode 100644 src/TFunction/TFunction_Function.cdl create mode 100644 src/TFunction/TFunction_Function.hxx delete mode 100644 src/TFunction/TFunction_GraphNode.cdl create mode 100644 src/TFunction/TFunction_GraphNode.hxx delete mode 100644 src/TFunction/TFunction_IFunction.cdl create mode 100644 src/TFunction/TFunction_IFunction.hxx delete mode 100644 src/TFunction/TFunction_Iterator.cdl create mode 100644 src/TFunction/TFunction_Iterator.hxx delete mode 100644 src/TFunction/TFunction_Logbook.cdl create mode 100644 src/TFunction/TFunction_Logbook.hxx delete mode 100644 src/TFunction/TFunction_Scope.cdl create mode 100644 src/TFunction/TFunction_Scope.hxx delete mode 100644 src/TNaming/TNaming.cdl create mode 100644 src/TNaming/TNaming.hxx delete mode 100644 src/TNaming/TNaming_Builder.cdl create mode 100644 src/TNaming/TNaming_Builder.hxx delete mode 100644 src/TNaming/TNaming_CopyShape.cdl create mode 100644 src/TNaming/TNaming_CopyShape.hxx delete mode 100644 src/TNaming/TNaming_DeltaOnModification.cdl create mode 100644 src/TNaming/TNaming_DeltaOnModification.hxx delete mode 100644 src/TNaming/TNaming_DeltaOnRemoval.cdl create mode 100644 src/TNaming/TNaming_DeltaOnRemoval.hxx create mode 100644 src/TNaming/TNaming_Evolution.hxx delete mode 100644 src/TNaming/TNaming_Identifier.cdl create mode 100644 src/TNaming/TNaming_Identifier.hxx delete mode 100644 src/TNaming/TNaming_Iterator.cdl create mode 100644 src/TNaming/TNaming_Iterator.hxx delete mode 100644 src/TNaming/TNaming_IteratorOnShapesSet.cdl create mode 100644 src/TNaming/TNaming_IteratorOnShapesSet.hxx delete mode 100644 src/TNaming/TNaming_Localizer.cdl create mode 100644 src/TNaming/TNaming_Localizer.hxx delete mode 100644 src/TNaming/TNaming_Name.cdl create mode 100644 src/TNaming/TNaming_Name.hxx create mode 100644 src/TNaming/TNaming_NameType.hxx delete mode 100644 src/TNaming/TNaming_NamedShape.cdl create mode 100644 src/TNaming/TNaming_NamedShape.hxx delete mode 100644 src/TNaming/TNaming_Naming.cdl create mode 100644 src/TNaming/TNaming_Naming.hxx delete mode 100644 src/TNaming/TNaming_NamingTool.cdl create mode 100644 src/TNaming/TNaming_NamingTool.hxx delete mode 100644 src/TNaming/TNaming_NewShapeIterator.cdl create mode 100644 src/TNaming/TNaming_NewShapeIterator.hxx delete mode 100644 src/TNaming/TNaming_OldShapeIterator.cdl create mode 100644 src/TNaming/TNaming_OldShapeIterator.hxx create mode 100644 src/TNaming/TNaming_PtrAttribute.hxx create mode 100644 src/TNaming/TNaming_PtrNode.hxx create mode 100644 src/TNaming/TNaming_PtrRefShape.hxx delete mode 100644 src/TNaming/TNaming_RefShape.cdl create mode 100644 src/TNaming/TNaming_RefShape.hxx delete mode 100644 src/TNaming/TNaming_SameShapeIterator.cdl create mode 100644 src/TNaming/TNaming_SameShapeIterator.hxx delete mode 100644 src/TNaming/TNaming_Scope.cdl create mode 100644 src/TNaming/TNaming_Scope.hxx delete mode 100644 src/TNaming/TNaming_Selector.cdl create mode 100644 src/TNaming/TNaming_Selector.hxx delete mode 100644 src/TNaming/TNaming_ShapesSet.cdl create mode 100644 src/TNaming/TNaming_ShapesSet.hxx delete mode 100644 src/TNaming/TNaming_Tool.cdl create mode 100644 src/TNaming/TNaming_Tool.hxx delete mode 100644 src/TNaming/TNaming_TranslateTool.cdl create mode 100644 src/TNaming/TNaming_TranslateTool.hxx delete mode 100644 src/TNaming/TNaming_Translator.cdl create mode 100644 src/TNaming/TNaming_Translator.hxx delete mode 100644 src/TNaming/TNaming_UsedShapes.cdl create mode 100644 src/TNaming/TNaming_UsedShapes.hxx create mode 100644 src/TObjDRAW/FILES delete mode 100644 src/TObjDRAW/TObjDRAW.cdl create mode 100644 src/TObjDRAW/TObjDRAW.hxx delete mode 100644 src/TPrsStd/TPrsStd.cdl delete mode 100644 src/TPrsStd/TPrsStd_AISPresentation.cdl create mode 100644 src/TPrsStd/TPrsStd_AISPresentation.hxx delete mode 100644 src/TPrsStd/TPrsStd_AISViewer.cdl create mode 100644 src/TPrsStd/TPrsStd_AISViewer.hxx delete mode 100644 src/TPrsStd/TPrsStd_AxisDriver.cdl create mode 100644 src/TPrsStd/TPrsStd_AxisDriver.hxx delete mode 100644 src/TPrsStd/TPrsStd_ConstraintDriver.cdl create mode 100644 src/TPrsStd/TPrsStd_ConstraintDriver.hxx delete mode 100644 src/TPrsStd/TPrsStd_ConstraintTools.cdl create mode 100644 src/TPrsStd/TPrsStd_ConstraintTools.hxx delete mode 100644 src/TPrsStd/TPrsStd_Driver.cdl create mode 100644 src/TPrsStd/TPrsStd_Driver.hxx delete mode 100644 src/TPrsStd/TPrsStd_DriverTable.cdl create mode 100644 src/TPrsStd/TPrsStd_DriverTable.hxx delete mode 100644 src/TPrsStd/TPrsStd_GeometryDriver.cdl create mode 100644 src/TPrsStd/TPrsStd_GeometryDriver.hxx delete mode 100644 src/TPrsStd/TPrsStd_NamedShapeDriver.cdl create mode 100644 src/TPrsStd/TPrsStd_NamedShapeDriver.hxx delete mode 100644 src/TPrsStd/TPrsStd_PlaneDriver.cdl create mode 100644 src/TPrsStd/TPrsStd_PlaneDriver.hxx delete mode 100644 src/TPrsStd/TPrsStd_PointDriver.cdl create mode 100644 src/TPrsStd/TPrsStd_PointDriver.hxx delete mode 100644 src/TShort/TShort.cdl delete mode 100644 src/TestTopOpe/TestTopOpe.cdl create mode 100644 src/TestTopOpe/TestTopOpe.hxx delete mode 100644 src/TestTopOpeDraw/TestTopOpeDraw.cdl create mode 100644 src/TestTopOpeDraw/TestTopOpeDraw.hxx delete mode 100644 src/TestTopOpeDraw/TestTopOpeDraw_DrawableC2D.cdl create mode 100644 src/TestTopOpeDraw/TestTopOpeDraw_DrawableC2D.hxx delete mode 100644 src/TestTopOpeDraw/TestTopOpeDraw_DrawableC3D.cdl create mode 100644 src/TestTopOpeDraw/TestTopOpeDraw_DrawableC3D.hxx delete mode 100644 src/TestTopOpeDraw/TestTopOpeDraw_DrawableMesure.cdl create mode 100644 src/TestTopOpeDraw/TestTopOpeDraw_DrawableMesure.hxx delete mode 100644 src/TestTopOpeDraw/TestTopOpeDraw_DrawableP2D.cdl create mode 100644 src/TestTopOpeDraw/TestTopOpeDraw_DrawableP2D.hxx delete mode 100644 src/TestTopOpeDraw/TestTopOpeDraw_DrawableP3D.cdl create mode 100644 src/TestTopOpeDraw/TestTopOpeDraw_DrawableP3D.hxx delete mode 100644 src/TestTopOpeDraw/TestTopOpeDraw_DrawableSHA.cdl create mode 100644 src/TestTopOpeDraw/TestTopOpeDraw_DrawableSHA.hxx delete mode 100644 src/TestTopOpeDraw/TestTopOpeDraw_DrawableSUR.cdl create mode 100644 src/TestTopOpeDraw/TestTopOpeDraw_DrawableSUR.hxx delete mode 100644 src/TestTopOpeTools/TestTopOpeTools.cdl create mode 100644 src/TestTopOpeTools/TestTopOpeTools.hxx delete mode 100644 src/TestTopOpeTools/TestTopOpeTools_Mesure.cdl create mode 100644 src/TestTopOpeTools/TestTopOpeTools_Mesure.hxx create mode 100644 src/TestTopOpeTools/TestTopOpeTools_PMesure.hxx create mode 100644 src/TopAbs/FILES delete mode 100644 src/TopAbs/TopAbs.cdl create mode 100644 src/TopAbs/TopAbs.hxx create mode 100644 src/TopAbs/TopAbs_Orientation.hxx create mode 100644 src/TopAbs/TopAbs_ShapeEnum.hxx create mode 100644 src/TopAbs/TopAbs_State.hxx delete mode 100644 src/TopBas/TopBas.cdl delete mode 100644 src/TopBas/TopBas_Interference.cdl create mode 100644 src/TopBas/TopBas_TestInterference.hxx create mode 100644 src/TopBas/TopBas_TestInterference_0.cxx delete mode 100644 src/TopClass/TopClass.cdl delete mode 100644 src/TopClass/TopClass_Classifier2d.cdl delete mode 100644 src/TopClass/TopClass_Classifier3d.cdl delete mode 100644 src/TopClass/TopClass_FaceClassifier.cdl delete mode 100644 src/TopClass/TopClass_Intersection3d.cdl create mode 100644 src/TopClass/TopClass_Intersection3d.hxx delete mode 100644 src/TopClass/TopClass_SolidClassifier.cdl delete mode 100644 src/TopClass/TopClass_SolidExplorer.cdl create mode 100644 src/TopClass/TopClass_SolidExplorer.hxx create mode 100644 src/TopCnx/FILES delete mode 100644 src/TopCnx/TopCnx.cdl delete mode 100644 src/TopCnx/TopCnx_EdgeFaceTransition.cdl create mode 100644 src/TopCnx/TopCnx_EdgeFaceTransition.hxx create mode 100644 src/TopExp/FILES delete mode 100644 src/TopExp/TopExp.cdl create mode 100644 src/TopExp/TopExp.hxx delete mode 100644 src/TopExp/TopExp_Explorer.cdl create mode 100644 src/TopExp/TopExp_Explorer.hxx create mode 100644 src/TopExp/TopExp_Stack.hxx delete mode 100644 src/TopLoc/TopLoc.cdl delete mode 100644 src/TopLoc/TopLoc_Datum3D.cdl create mode 100644 src/TopLoc/TopLoc_Datum3D.hxx delete mode 100644 src/TopLoc/TopLoc_ItemLocation.cdl create mode 100644 src/TopLoc/TopLoc_ItemLocation.hxx delete mode 100644 src/TopLoc/TopLoc_Location.cdl create mode 100644 src/TopLoc/TopLoc_Location.hxx delete mode 100644 src/TopLoc/TopLoc_SListNodeOfItemLocation.cdl create mode 100644 src/TopLoc/TopLoc_SListNodeOfItemLocation.hxx delete mode 100644 src/TopLoc/TopLoc_SListOfItemLocation.cdl create mode 100644 src/TopLoc/TopLoc_SListOfItemLocation.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_Bipoint.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_Bipoint.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_DSFiller.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_DSFiller.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_EdgesFiller.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_EdgesFiller.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_EdgesIntersector.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_EdgesIntersector.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_FFDumper.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_FFDumper.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_FFTransitionTool.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_FFTransitionTool.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_FaceEdgeFiller.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_FaceEdgeFiller.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_FaceEdgeIntersector.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_FaceEdgeIntersector.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_FacesFiller.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_FacesFiller.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_FacesIntersector.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_FacesIntersector.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_GeomTool.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_GeomTool.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_Hctxee2d.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_Hctxee2d.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_Hctxff2d.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_Hctxff2d.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_LineInter.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_LineInter.hxx create mode 100644 src/TopOpeBRep/TopOpeBRep_P2Dstatus.hxx create mode 100644 src/TopOpeBRep/TopOpeBRep_PEdgesIntersector.hxx create mode 100644 src/TopOpeBRep/TopOpeBRep_PFacesFiller.hxx create mode 100644 src/TopOpeBRep/TopOpeBRep_PFacesIntersector.hxx create mode 100644 src/TopOpeBRep/TopOpeBRep_PIntRes2d_IntersectionPoint.hxx create mode 100644 src/TopOpeBRep/TopOpeBRep_PLineInter.hxx create mode 100644 src/TopOpeBRep/TopOpeBRep_PPntOn2S.hxx create mode 100644 src/TopOpeBRep/TopOpeBRep_PThePointOfIntersection.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_Point2d.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_Point2d.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_PointClassifier.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_PointClassifier.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_PointGeomTool.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_PointGeomTool.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_ShapeIntersector.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_ShapeIntersector.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_ShapeIntersector2d.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_ShapeIntersector2d.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_ShapeScanner.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_ShapeScanner.hxx create mode 100644 src/TopOpeBRep/TopOpeBRep_TypeLineCurve.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_VPointInter.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_VPointInter.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_VPointInterClassifier.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_VPointInterClassifier.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_VPointInterIterator.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_VPointInterIterator.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_WPointInter.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_WPointInter.hxx delete mode 100644 src/TopOpeBRep/TopOpeBRep_WPointInterIterator.cdl create mode 100644 src/TopOpeBRep/TopOpeBRep_WPointInterIterator.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild.cdl delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Area1dBuilder.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Area1dBuilder.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Area2dBuilder.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Area2dBuilder.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Area3dBuilder.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Area3dBuilder.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_AreaBuilder.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_AreaBuilder.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_BlockBuilder.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_BlockBuilder.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_BlockIterator.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_BlockIterator.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Builder.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Builder.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Builder1.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Builder1.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_BuilderON.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_BuilderON.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_CompositeClassifier.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_CompositeClassifier.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_CorrectFace2d.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_CorrectFace2d.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_EdgeBuilder.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_EdgeBuilder.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_FaceAreaBuilder.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_FaceAreaBuilder.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_FaceBuilder.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_FaceBuilder.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_FuseFace.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_FuseFace.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_GIter.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_GIter.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_GTool.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_GTool.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_GTopo.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_GTopo.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_HBuilder.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_HBuilder.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Loop.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Loop.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_LoopClassifier.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_LoopClassifier.hxx create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_LoopEnum.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_LoopSet.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_LoopSet.hxx create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_PBuilder.hxx create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_PGTopo.hxx create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_PWireEdgeSet.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Pave.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Pave.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_PaveClassifier.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_PaveClassifier.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_PaveSet.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_PaveSet.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_ShapeListOfShape.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_ShapeListOfShape.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_ShapeSet.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_ShapeSet.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_ShellFaceClassifier.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_ShellFaceClassifier.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_ShellFaceSet.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_ShellFaceSet.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_ShellToSolid.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_ShellToSolid.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_SolidAreaBuilder.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_SolidAreaBuilder.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_SolidBuilder.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_SolidBuilder.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Tools.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Tools.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Tools2d.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_Tools2d.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_VertexInfo.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_VertexInfo.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_WireEdgeClassifier.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_WireEdgeClassifier.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_WireEdgeSet.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_WireEdgeSet.hxx delete mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_WireToFace.cdl create mode 100644 src/TopOpeBRepBuild/TopOpeBRepBuild_WireToFace.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Association.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Association.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_BuildTool.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_BuildTool.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Check.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Check.hxx create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_CheckStatus.hxx create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Config.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Curve.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Curve.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_CurveData.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_CurveData.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_CurveExplorer.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_CurveExplorer.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_CurveIterator.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_CurveIterator.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_CurvePointInterference.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_CurvePointInterference.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_DSS.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_DSS.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_DataStructure.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_DataStructure.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Dumper.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Dumper.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_EIR.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_EIR.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Edge3dInterferenceTool.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Edge3dInterferenceTool.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_EdgeInterferenceTool.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_EdgeInterferenceTool.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_EdgeVertexInterference.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_EdgeVertexInterference.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Explorer.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Explorer.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_FIR.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_FIR.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_FaceEdgeInterference.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_FaceEdgeInterference.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_FaceInterferenceTool.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_FaceInterferenceTool.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Filter.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Filter.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_GapFiller.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_GapFiller.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_GapTool.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_GapTool.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_GeometryData.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_GeometryData.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_HDataStructure.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_HDataStructure.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Interference.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Interference.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_InterferenceIterator.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_InterferenceIterator.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_InterferenceTool.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_InterferenceTool.hxx create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Kind.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_ListOfShapeOn1State.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_ListOfShapeOn1State.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Marker.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Marker.hxx create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_PDataStructure.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Point.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Point.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_PointData.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_PointData.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_PointExplorer.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_PointExplorer.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_PointIterator.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_PointIterator.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Reducer.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Reducer.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_ShapeData.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_ShapeData.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_ShapeShapeInterference.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_ShapeShapeInterference.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_ShapeWithState.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_ShapeWithState.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_SolidSurfaceInterference.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_SolidSurfaceInterference.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Surface.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Surface.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_SurfaceCurveInterference.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_SurfaceCurveInterference.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_SurfaceData.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_SurfaceData.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_SurfaceExplorer.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_SurfaceExplorer.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_SurfaceIterator.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_SurfaceIterator.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_TKI.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_TKI.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_TOOL.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_TOOL.hxx delete mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Transition.cdl create mode 100644 src/TopOpeBRepDS/TopOpeBRepDS_Transition.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_AncestorsTool.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_AncestorsTool.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_BoxSort.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_BoxSort.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_C2DF.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_C2DF.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_CLASSI.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_CLASSI.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_CORRISO.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_CORRISO.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_CurveTool.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_CurveTool.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_FuseEdges.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_FuseEdges.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_GeomTool.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_GeomTool.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_HBoxTool.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_HBoxTool.hxx create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_OutCurveType.hxx create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_PShapeClassifier.hxx create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_PSoClassif.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_PurgeInternalEdges.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_PurgeInternalEdges.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_REGUS.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_REGUS.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_REGUW.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_REGUW.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_ShapeClassifier.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_ShapeClassifier.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_ShapeExplorer.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_ShapeExplorer.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_ShapeTool.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_ShapeTool.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_SolidClassifier.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_SolidClassifier.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_TOOL.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_TOOL.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_connexity.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_connexity.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_face.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_face.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_makeTransition.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_makeTransition.hxx delete mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_mkTondgE.cdl create mode 100644 src/TopOpeBRepTool/TopOpeBRepTool_mkTondgE.hxx delete mode 100644 src/TopTools/TopTools.cdl create mode 100644 src/TopTools/TopTools.hxx delete mode 100644 src/TopTools/TopTools_LocationSet.cdl create mode 100644 src/TopTools/TopTools_LocationSet.hxx create mode 100644 src/TopTools/TopTools_LocationSetPtr.hxx delete mode 100644 src/TopTools/TopTools_OrientedShapeMapHasher.cdl create mode 100644 src/TopTools/TopTools_OrientedShapeMapHasher.hxx delete mode 100644 src/TopTools/TopTools_ShapeMapHasher.cdl create mode 100644 src/TopTools/TopTools_ShapeMapHasher.hxx delete mode 100644 src/TopTools/TopTools_ShapeSet.cdl create mode 100644 src/TopTools/TopTools_ShapeSet.hxx delete mode 100644 src/TopTrans/TopTrans.cdl delete mode 100644 src/TopTrans/TopTrans_CurveTransition.cdl create mode 100644 src/TopTrans/TopTrans_CurveTransition.hxx delete mode 100644 src/TopTrans/TopTrans_SurfaceTransition.cdl create mode 100644 src/TopTrans/TopTrans_SurfaceTransition.hxx delete mode 100644 src/TopoDS/TopoDS.cdl create mode 100644 src/TopoDS/TopoDS.hxx delete mode 100644 src/TopoDS/TopoDS_Builder.cdl create mode 100644 src/TopoDS/TopoDS_Builder.hxx delete mode 100644 src/TopoDS/TopoDS_CompSolid.cdl create mode 100644 src/TopoDS/TopoDS_CompSolid.hxx delete mode 100644 src/TopoDS/TopoDS_Compound.cdl create mode 100644 src/TopoDS/TopoDS_Compound.hxx delete mode 100644 src/TopoDS/TopoDS_Edge.cdl create mode 100644 src/TopoDS/TopoDS_Edge.hxx delete mode 100644 src/TopoDS/TopoDS_Face.cdl create mode 100644 src/TopoDS/TopoDS_Face.hxx create mode 100644 src/TopoDS/TopoDS_FrozenShape.hxx delete mode 100644 src/TopoDS/TopoDS_HShape.cdl create mode 100644 src/TopoDS/TopoDS_HShape.hxx delete mode 100644 src/TopoDS/TopoDS_Iterator.cdl create mode 100644 src/TopoDS/TopoDS_Iterator.hxx create mode 100644 src/TopoDS/TopoDS_LockedShape.hxx delete mode 100644 src/TopoDS/TopoDS_Shape.cdl create mode 100644 src/TopoDS/TopoDS_Shape.hxx delete mode 100644 src/TopoDS/TopoDS_Shell.cdl create mode 100644 src/TopoDS/TopoDS_Shell.hxx delete mode 100644 src/TopoDS/TopoDS_Solid.cdl create mode 100644 src/TopoDS/TopoDS_Solid.hxx delete mode 100644 src/TopoDS/TopoDS_TCompSolid.cdl create mode 100644 src/TopoDS/TopoDS_TCompSolid.hxx delete mode 100644 src/TopoDS/TopoDS_TCompound.cdl create mode 100644 src/TopoDS/TopoDS_TCompound.hxx delete mode 100644 src/TopoDS/TopoDS_TEdge.cdl create mode 100644 src/TopoDS/TopoDS_TEdge.hxx delete mode 100644 src/TopoDS/TopoDS_TFace.cdl create mode 100644 src/TopoDS/TopoDS_TFace.hxx delete mode 100644 src/TopoDS/TopoDS_TShape.cdl create mode 100644 src/TopoDS/TopoDS_TShape.hxx delete mode 100644 src/TopoDS/TopoDS_TShell.cdl create mode 100644 src/TopoDS/TopoDS_TShell.hxx delete mode 100644 src/TopoDS/TopoDS_TSolid.cdl create mode 100644 src/TopoDS/TopoDS_TSolid.hxx delete mode 100644 src/TopoDS/TopoDS_TVertex.cdl create mode 100644 src/TopoDS/TopoDS_TVertex.hxx delete mode 100644 src/TopoDS/TopoDS_TWire.cdl create mode 100644 src/TopoDS/TopoDS_TWire.hxx create mode 100644 src/TopoDS/TopoDS_UnCompatibleShapes.hxx delete mode 100644 src/TopoDS/TopoDS_Vertex.cdl create mode 100644 src/TopoDS/TopoDS_Vertex.hxx delete mode 100644 src/TopoDS/TopoDS_Wire.cdl create mode 100644 src/TopoDS/TopoDS_Wire.hxx create mode 100644 src/TopoDSToStep/FILES delete mode 100644 src/TopoDSToStep/TopoDSToStep.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_Builder.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_Builder.hxx create mode 100644 src/TopoDSToStep/TopoDSToStep_BuilderError.hxx create mode 100644 src/TopoDSToStep/TopoDSToStep_FacetedError.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_FacetedTool.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_FacetedTool.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_MakeBrepWithVoids.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_MakeBrepWithVoids.hxx create mode 100644 src/TopoDSToStep/TopoDSToStep_MakeEdgeError.hxx create mode 100644 src/TopoDSToStep/TopoDSToStep_MakeFaceError.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_MakeFacetedBrep.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_MakeFacetedBrep.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_MakeFacetedBrepAndBrepWithVoids.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_MakeFacetedBrepAndBrepWithVoids.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_MakeGeometricCurveSet.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_MakeGeometricCurveSet.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_MakeManifoldSolidBrep.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_MakeManifoldSolidBrep.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_MakeShellBasedSurfaceModel.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_MakeShellBasedSurfaceModel.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_MakeStepEdge.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_MakeStepEdge.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_MakeStepFace.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_MakeStepFace.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_MakeStepVertex.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_MakeStepVertex.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_MakeStepWire.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_MakeStepWire.hxx create mode 100644 src/TopoDSToStep/TopoDSToStep_MakeVertexError.hxx create mode 100644 src/TopoDSToStep/TopoDSToStep_MakeWireError.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_Root.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_Root.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_Tool.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_Tool.hxx delete mode 100644 src/TopoDSToStep/TopoDSToStep_WireframeBuilder.cdl create mode 100644 src/TopoDSToStep/TopoDSToStep_WireframeBuilder.hxx delete mode 100644 src/Transfer/Transfer.cdl delete mode 100644 src/Transfer/Transfer_ActorDispatch.cdl create mode 100644 src/Transfer/Transfer_ActorDispatch.hxx delete mode 100644 src/Transfer/Transfer_ActorOfFinderProcess.cdl create mode 100644 src/Transfer/Transfer_ActorOfFinderProcess.hxx create mode 100644 src/Transfer/Transfer_ActorOfProcessForFinder.hxx create mode 100644 src/Transfer/Transfer_ActorOfProcessForFinder_0.cxx create mode 100644 src/Transfer/Transfer_ActorOfProcessForTransient.hxx create mode 100644 src/Transfer/Transfer_ActorOfProcessForTransient_0.cxx delete mode 100644 src/Transfer/Transfer_ActorOfTransientProcess.cdl create mode 100644 src/Transfer/Transfer_ActorOfTransientProcess.hxx delete mode 100644 src/Transfer/Transfer_Binder.cdl create mode 100644 src/Transfer/Transfer_Binder.hxx delete mode 100644 src/Transfer/Transfer_BinderOfTransientInteger.cdl create mode 100644 src/Transfer/Transfer_BinderOfTransientInteger.hxx delete mode 100644 src/Transfer/Transfer_DataInfo.cdl create mode 100644 src/Transfer/Transfer_DataInfo.hxx delete mode 100644 src/Transfer/Transfer_DispatchControl.cdl create mode 100644 src/Transfer/Transfer_DispatchControl.hxx delete mode 100644 src/Transfer/Transfer_FindHasher.cdl create mode 100644 src/Transfer/Transfer_FindHasher.hxx delete mode 100644 src/Transfer/Transfer_Finder.cdl create mode 100644 src/Transfer/Transfer_Finder.hxx delete mode 100644 src/Transfer/Transfer_FinderProcess.cdl create mode 100644 src/Transfer/Transfer_FinderProcess.hxx create mode 100644 src/Transfer/Transfer_IndexedDataMapNodeOfTransferMapOfProcessForFinder.hxx create mode 100644 src/Transfer/Transfer_IndexedDataMapNodeOfTransferMapOfProcessForFinder_0.cxx create mode 100644 src/Transfer/Transfer_IndexedDataMapNodeOfTransferMapOfProcessForTransient.hxx create mode 100644 src/Transfer/Transfer_IndexedDataMapNodeOfTransferMapOfProcessForTransient_0.cxx create mode 100644 src/Transfer/Transfer_IteratorOfProcessForFinder.hxx create mode 100644 src/Transfer/Transfer_IteratorOfProcessForFinder_0.cxx create mode 100644 src/Transfer/Transfer_IteratorOfProcessForTransient.hxx create mode 100644 src/Transfer/Transfer_IteratorOfProcessForTransient_0.cxx delete mode 100644 src/Transfer/Transfer_MapContainer.cdl create mode 100644 src/Transfer/Transfer_MapContainer.hxx delete mode 100644 src/Transfer/Transfer_Mapper.cdl delete mode 100644 src/Transfer/Transfer_MultipleBinder.cdl create mode 100644 src/Transfer/Transfer_MultipleBinder.hxx create mode 100644 src/Transfer/Transfer_ProcessForFinder.hxx create mode 100644 src/Transfer/Transfer_ProcessForFinder_0.cxx create mode 100644 src/Transfer/Transfer_ProcessForTransient.hxx create mode 100644 src/Transfer/Transfer_ProcessForTransient_0.cxx delete mode 100644 src/Transfer/Transfer_ResultFromModel.cdl create mode 100644 src/Transfer/Transfer_ResultFromModel.hxx delete mode 100644 src/Transfer/Transfer_ResultFromTransient.cdl create mode 100644 src/Transfer/Transfer_ResultFromTransient.hxx delete mode 100644 src/Transfer/Transfer_SimpleBinderOfTransient.cdl create mode 100644 src/Transfer/Transfer_SimpleBinderOfTransient.hxx create mode 100644 src/Transfer/Transfer_StatusExec.hxx create mode 100644 src/Transfer/Transfer_StatusResult.hxx create mode 100644 src/Transfer/Transfer_TransferDeadLoop.hxx delete mode 100644 src/Transfer/Transfer_TransferDispatch.cdl create mode 100644 src/Transfer/Transfer_TransferDispatch.hxx create mode 100644 src/Transfer/Transfer_TransferFailure.hxx delete mode 100644 src/Transfer/Transfer_TransferInput.cdl create mode 100644 src/Transfer/Transfer_TransferInput.hxx delete mode 100644 src/Transfer/Transfer_TransferIterator.cdl create mode 100644 src/Transfer/Transfer_TransferIterator.hxx create mode 100644 src/Transfer/Transfer_TransferMapOfProcessForFinder.hxx create mode 100644 src/Transfer/Transfer_TransferMapOfProcessForFinder_0.cxx create mode 100644 src/Transfer/Transfer_TransferMapOfProcessForTransient.hxx create mode 100644 src/Transfer/Transfer_TransferMapOfProcessForTransient_0.cxx delete mode 100644 src/Transfer/Transfer_TransferOutput.cdl create mode 100644 src/Transfer/Transfer_TransferOutput.hxx delete mode 100644 src/Transfer/Transfer_TransferProcess.cdl delete mode 100644 src/Transfer/Transfer_TransientListBinder.cdl create mode 100644 src/Transfer/Transfer_TransientListBinder.hxx create mode 100644 src/Transfer/Transfer_TransientMapper.hxx create mode 100644 src/Transfer/Transfer_TransientMapper_0.cxx delete mode 100644 src/Transfer/Transfer_TransientProcess.cdl create mode 100644 src/Transfer/Transfer_TransientProcess.hxx create mode 100644 src/Transfer/Transfer_UndefMode.hxx delete mode 100644 src/Transfer/Transfer_VoidBinder.cdl create mode 100644 src/Transfer/Transfer_VoidBinder.hxx delete mode 100644 src/TransferBRep/TransferBRep.cdl create mode 100644 src/TransferBRep/TransferBRep.hxx delete mode 100644 src/TransferBRep/TransferBRep_BinderOfShape.cdl create mode 100644 src/TransferBRep/TransferBRep_BinderOfShape.hxx create mode 100644 src/TransferBRep/TransferBRep_OrientedShapeMapper.hxx create mode 100644 src/TransferBRep/TransferBRep_OrientedShapeMapper_0.cxx delete mode 100644 src/TransferBRep/TransferBRep_Reader.cdl create mode 100644 src/TransferBRep/TransferBRep_Reader.hxx delete mode 100644 src/TransferBRep/TransferBRep_ShapeBinder.cdl create mode 100644 src/TransferBRep/TransferBRep_ShapeBinder.hxx delete mode 100644 src/TransferBRep/TransferBRep_ShapeInfo.cdl create mode 100644 src/TransferBRep/TransferBRep_ShapeInfo.hxx delete mode 100644 src/TransferBRep/TransferBRep_ShapeListBinder.cdl create mode 100644 src/TransferBRep/TransferBRep_ShapeListBinder.hxx create mode 100644 src/TransferBRep/TransferBRep_ShapeMapper.hxx create mode 100644 src/TransferBRep/TransferBRep_ShapeMapper_0.cxx delete mode 100644 src/TransferBRep/TransferBRep_TransferResultInfo.cdl create mode 100644 src/TransferBRep/TransferBRep_TransferResultInfo.hxx create mode 100644 src/UTL/FILES delete mode 100644 src/UTL/UTL.cdl create mode 100644 src/UTL/UTL.hxx delete mode 100644 src/Units/Units.cdl create mode 100644 src/Units/Units.hxx delete mode 100644 src/Units/Units_CMPLRS.edl delete mode 100644 src/Units/Units_Dimensions.cdl create mode 100644 src/Units/Units_Dimensions.hxx delete mode 100644 src/Units/Units_Explorer.cdl create mode 100644 src/Units/Units_Explorer.hxx delete mode 100644 src/Units/Units_Lexicon.cdl create mode 100644 src/Units/Units_Lexicon.hxx delete mode 100644 src/Units/Units_MathSentence.cdl create mode 100644 src/Units/Units_MathSentence.hxx delete mode 100644 src/Units/Units_Measurement.cdl create mode 100644 src/Units/Units_Measurement.hxx create mode 100644 src/Units/Units_NoSuchType.hxx create mode 100644 src/Units/Units_NoSuchUnit.hxx delete mode 100644 src/Units/Units_Quantity.cdl create mode 100644 src/Units/Units_Quantity.hxx delete mode 100644 src/Units/Units_Sentence.cdl create mode 100644 src/Units/Units_Sentence.hxx delete mode 100644 src/Units/Units_ShiftedToken.cdl create mode 100644 src/Units/Units_ShiftedToken.hxx delete mode 100644 src/Units/Units_ShiftedUnit.cdl create mode 100644 src/Units/Units_ShiftedUnit.hxx delete mode 100644 src/Units/Units_Token.cdl create mode 100644 src/Units/Units_Token.hxx delete mode 100644 src/Units/Units_Unit.cdl create mode 100644 src/Units/Units_Unit.hxx delete mode 100644 src/Units/Units_UnitSentence.cdl create mode 100644 src/Units/Units_UnitSentence.hxx delete mode 100644 src/Units/Units_UnitsDictionary.cdl create mode 100644 src/Units/Units_UnitsDictionary.hxx delete mode 100644 src/Units/Units_UnitsLexicon.cdl create mode 100644 src/Units/Units_UnitsLexicon.hxx delete mode 100644 src/Units/Units_UnitsSystem.cdl create mode 100644 src/Units/Units_UnitsSystem.hxx delete mode 100644 src/UnitsAPI/UnitsAPI.cdl create mode 100644 src/UnitsAPI/UnitsAPI.hxx create mode 100644 src/UnitsAPI/UnitsAPI_SystemUnits.hxx create mode 100644 src/UnitsMethods/FILES delete mode 100644 src/UnitsMethods/UnitsMethods.cdl create mode 100644 src/UnitsMethods/UnitsMethods.hxx delete mode 100644 src/V3d/V3d.cdl create mode 100644 src/V3d/V3d.hxx delete mode 100644 src/V3d/V3d_AmbientLight.cdl create mode 100644 src/V3d/V3d_AmbientLight.hxx create mode 100644 src/V3d/V3d_BadValue.hxx delete mode 100644 src/V3d/V3d_CircularGrid.cdl create mode 100644 src/V3d/V3d_CircularGrid.hxx delete mode 100644 src/V3d/V3d_ColorScale.cdl create mode 100644 src/V3d/V3d_ColorScale.hxx delete mode 100644 src/V3d/V3d_ColorScaleLayerItem.cdl create mode 100644 src/V3d/V3d_ColorScaleLayerItem.hxx create mode 100644 src/V3d/V3d_Coordinate.hxx delete mode 100644 src/V3d/V3d_DirectionalLight.cdl create mode 100644 src/V3d/V3d_DirectionalLight.hxx delete mode 100644 src/V3d/V3d_LayerMgr.cdl create mode 100644 src/V3d/V3d_LayerMgr.hxx create mode 100644 src/V3d/V3d_LayerMgrPointer.hxx delete mode 100644 src/V3d/V3d_Light.cdl create mode 100644 src/V3d/V3d_Light.hxx create mode 100644 src/V3d/V3d_Parameter.hxx delete mode 100644 src/V3d/V3d_PositionLight.cdl create mode 100644 src/V3d/V3d_PositionLight.hxx delete mode 100644 src/V3d/V3d_PositionalLight.cdl create mode 100644 src/V3d/V3d_PositionalLight.hxx delete mode 100644 src/V3d/V3d_RectangularGrid.cdl create mode 100644 src/V3d/V3d_RectangularGrid.hxx delete mode 100644 src/V3d/V3d_SpotLight.cdl create mode 100644 src/V3d/V3d_SpotLight.hxx create mode 100644 src/V3d/V3d_TypeOfAxe.hxx create mode 100644 src/V3d/V3d_TypeOfBackfacingModel.hxx create mode 100644 src/V3d/V3d_TypeOfLight.hxx create mode 100644 src/V3d/V3d_TypeOfOrientation.hxx create mode 100644 src/V3d/V3d_TypeOfPickCamera.hxx create mode 100644 src/V3d/V3d_TypeOfPickLight.hxx create mode 100644 src/V3d/V3d_TypeOfRepresentation.hxx create mode 100644 src/V3d/V3d_TypeOfShadingModel.hxx create mode 100644 src/V3d/V3d_TypeOfSurfaceDetail.hxx create mode 100644 src/V3d/V3d_TypeOfUpdate.hxx create mode 100644 src/V3d/V3d_TypeOfView.hxx create mode 100644 src/V3d/V3d_TypeOfVisualization.hxx create mode 100644 src/V3d/V3d_TypeOfZclipping.hxx create mode 100644 src/V3d/V3d_UnMapped.hxx delete mode 100644 src/V3d/V3d_View.cdl create mode 100644 src/V3d/V3d_View.hxx create mode 100644 src/V3d/V3d_ViewPointer.hxx delete mode 100644 src/V3d/V3d_Viewer.cdl create mode 100644 src/V3d/V3d_Viewer.hxx create mode 100644 src/V3d/V3d_ViewerPointer.hxx delete mode 100644 src/ViewerTest/ViewerTest.cdl delete mode 100644 src/ViewerTest/ViewerTest_CMPLRS.edl delete mode 100644 src/ViewerTest/ViewerTest_EventManager.cdl create mode 100644 src/ViewerTest/ViewerTest_EventManager.hxx delete mode 100644 src/Visual3d/Visual3d.cdl delete mode 100644 src/Visual3d/Visual3d.edl delete mode 100644 src/Visual3d/Visual3d_CMPLRS.edl create mode 100644 src/Visual3d/Visual3d_ClipDefinitionError.hxx delete mode 100644 src/Visual3d/Visual3d_ContextPick.cdl create mode 100644 src/Visual3d/Visual3d_ContextPick.hxx create mode 100644 src/Visual3d/Visual3d_ContextPickDefinitionError.hxx delete mode 100644 src/Visual3d/Visual3d_ContextView.cdl create mode 100644 src/Visual3d/Visual3d_ContextView.hxx create mode 100644 src/Visual3d/Visual3d_DepthCueingDefinitionError.hxx delete mode 100644 src/Visual3d/Visual3d_Layer.cdl create mode 100644 src/Visual3d/Visual3d_Layer.hxx create mode 100644 src/Visual3d/Visual3d_LayerDefinitionError.hxx delete mode 100644 src/Visual3d/Visual3d_LayerItem.cdl create mode 100644 src/Visual3d/Visual3d_LayerItem.hxx delete mode 100644 src/Visual3d/Visual3d_Light.cdl create mode 100644 src/Visual3d/Visual3d_Light.hxx create mode 100644 src/Visual3d/Visual3d_LightDefinitionError.hxx create mode 100644 src/Visual3d/Visual3d_PickError.hxx create mode 100644 src/Visual3d/Visual3d_TransformError.hxx create mode 100644 src/Visual3d/Visual3d_TypeOfAnswer.hxx create mode 100644 src/Visual3d/Visual3d_TypeOfBackfacingModel.hxx create mode 100644 src/Visual3d/Visual3d_TypeOfLightSource.hxx create mode 100644 src/Visual3d/Visual3d_TypeOfModel.hxx create mode 100644 src/Visual3d/Visual3d_TypeOfOrder.hxx create mode 100644 src/Visual3d/Visual3d_TypeOfProjection.hxx create mode 100644 src/Visual3d/Visual3d_TypeOfSurfaceDetail.hxx create mode 100644 src/Visual3d/Visual3d_TypeOfVisualization.hxx delete mode 100644 src/Visual3d/Visual3d_View.cdl create mode 100644 src/Visual3d/Visual3d_View.hxx create mode 100644 src/Visual3d/Visual3d_ViewDefinitionError.hxx delete mode 100644 src/Visual3d/Visual3d_ViewManager.cdl create mode 100644 src/Visual3d/Visual3d_ViewManager.hxx create mode 100644 src/Visual3d/Visual3d_ViewManagerDefinitionError.hxx create mode 100644 src/Visual3d/Visual3d_ViewManagerPtr.hxx create mode 100644 src/Visual3d/Visual3d_ViewMappingDefinitionError.hxx create mode 100644 src/Visual3d/Visual3d_ViewOrientationDefinitionError.hxx create mode 100644 src/Visual3d/Visual3d_ViewPtr.hxx delete mode 100644 src/Visual3d/Visual3d_WOKSteps.edl create mode 100644 src/Visual3d/Visual3d_ZClippingDefinitionError.hxx delete mode 100644 src/Voxel/Voxel.cdl delete mode 100644 src/Voxel/Voxel_BoolDS.cdl create mode 100644 src/Voxel/Voxel_BoolDS.hxx delete mode 100644 src/Voxel/Voxel_BooleanOperation.cdl create mode 100644 src/Voxel/Voxel_BooleanOperation.hxx delete mode 100644 src/Voxel/Voxel_CollisionDetection.cdl create mode 100644 src/Voxel/Voxel_CollisionDetection.hxx delete mode 100644 src/Voxel/Voxel_ColorDS.cdl create mode 100644 src/Voxel/Voxel_ColorDS.hxx delete mode 100644 src/Voxel/Voxel_DS.cdl create mode 100644 src/Voxel/Voxel_DS.hxx delete mode 100644 src/Voxel/Voxel_FastConverter.cdl create mode 100644 src/Voxel/Voxel_FastConverter.hxx delete mode 100644 src/Voxel/Voxel_FloatDS.cdl create mode 100644 src/Voxel/Voxel_FloatDS.hxx delete mode 100644 src/Voxel/Voxel_OctBoolDS.cdl create mode 100644 src/Voxel/Voxel_OctBoolDS.hxx delete mode 100644 src/Voxel/Voxel_Prs.cdl create mode 100644 src/Voxel/Voxel_Prs.hxx delete mode 100644 src/Voxel/Voxel_ROctBoolDS.cdl create mode 100644 src/Voxel/Voxel_ROctBoolDS.hxx delete mode 100644 src/Voxel/Voxel_Reader.cdl create mode 100644 src/Voxel/Voxel_Reader.hxx delete mode 100644 src/Voxel/Voxel_Selector.cdl create mode 100644 src/Voxel/Voxel_Selector.hxx delete mode 100644 src/Voxel/Voxel_SplitData.cdl create mode 100644 src/Voxel/Voxel_SplitData.hxx create mode 100644 src/Voxel/Voxel_VoxelDisplayMode.hxx create mode 100644 src/Voxel/Voxel_VoxelFileFormat.hxx delete mode 100644 src/Voxel/Voxel_Writer.cdl create mode 100644 src/Voxel/Voxel_Writer.hxx create mode 100644 src/Vrml/FILES delete mode 100644 src/Vrml/Vrml.cdl create mode 100644 src/Vrml/Vrml.hxx delete mode 100644 src/Vrml/Vrml_AsciiText.cdl create mode 100644 src/Vrml/Vrml_AsciiText.hxx create mode 100644 src/Vrml/Vrml_AsciiTextJustification.hxx delete mode 100644 src/Vrml/Vrml_Cone.cdl create mode 100644 src/Vrml/Vrml_Cone.hxx create mode 100644 src/Vrml/Vrml_ConeParts.hxx delete mode 100644 src/Vrml/Vrml_Coordinate3.cdl create mode 100644 src/Vrml/Vrml_Coordinate3.hxx delete mode 100644 src/Vrml/Vrml_Cube.cdl create mode 100644 src/Vrml/Vrml_Cube.hxx delete mode 100644 src/Vrml/Vrml_Cylinder.cdl create mode 100644 src/Vrml/Vrml_Cylinder.hxx create mode 100644 src/Vrml/Vrml_CylinderParts.hxx delete mode 100644 src/Vrml/Vrml_DirectionalLight.cdl create mode 100644 src/Vrml/Vrml_DirectionalLight.hxx create mode 100644 src/Vrml/Vrml_FaceType.hxx delete mode 100644 src/Vrml/Vrml_FontStyle.cdl create mode 100644 src/Vrml/Vrml_FontStyle.hxx create mode 100644 src/Vrml/Vrml_FontStyleFamily.hxx create mode 100644 src/Vrml/Vrml_FontStyleStyle.hxx delete mode 100644 src/Vrml/Vrml_Group.cdl create mode 100644 src/Vrml/Vrml_Group.hxx delete mode 100644 src/Vrml/Vrml_IndexedFaceSet.cdl create mode 100644 src/Vrml/Vrml_IndexedFaceSet.hxx delete mode 100644 src/Vrml/Vrml_IndexedLineSet.cdl create mode 100644 src/Vrml/Vrml_IndexedLineSet.hxx delete mode 100644 src/Vrml/Vrml_Info.cdl create mode 100644 src/Vrml/Vrml_Info.hxx delete mode 100644 src/Vrml/Vrml_Instancing.cdl create mode 100644 src/Vrml/Vrml_Instancing.hxx delete mode 100644 src/Vrml/Vrml_LOD.cdl create mode 100644 src/Vrml/Vrml_LOD.hxx delete mode 100644 src/Vrml/Vrml_Material.cdl create mode 100644 src/Vrml/Vrml_Material.hxx delete mode 100644 src/Vrml/Vrml_MaterialBinding.cdl create mode 100644 src/Vrml/Vrml_MaterialBinding.hxx create mode 100644 src/Vrml/Vrml_MaterialBindingAndNormalBinding.hxx delete mode 100644 src/Vrml/Vrml_MatrixTransform.cdl create mode 100644 src/Vrml/Vrml_MatrixTransform.hxx delete mode 100644 src/Vrml/Vrml_Normal.cdl create mode 100644 src/Vrml/Vrml_Normal.hxx delete mode 100644 src/Vrml/Vrml_NormalBinding.cdl create mode 100644 src/Vrml/Vrml_NormalBinding.hxx delete mode 100644 src/Vrml/Vrml_OrthographicCamera.cdl create mode 100644 src/Vrml/Vrml_OrthographicCamera.hxx delete mode 100644 src/Vrml/Vrml_PerspectiveCamera.cdl create mode 100644 src/Vrml/Vrml_PerspectiveCamera.hxx delete mode 100644 src/Vrml/Vrml_PointLight.cdl create mode 100644 src/Vrml/Vrml_PointLight.hxx delete mode 100644 src/Vrml/Vrml_PointSet.cdl create mode 100644 src/Vrml/Vrml_PointSet.hxx delete mode 100644 src/Vrml/Vrml_Rotation.cdl create mode 100644 src/Vrml/Vrml_Rotation.hxx delete mode 100644 src/Vrml/Vrml_SFImage.cdl create mode 100644 src/Vrml/Vrml_SFImage.hxx create mode 100644 src/Vrml/Vrml_SFImageNumber.hxx delete mode 100644 src/Vrml/Vrml_SFRotation.cdl create mode 100644 src/Vrml/Vrml_SFRotation.hxx delete mode 100644 src/Vrml/Vrml_Scale.cdl create mode 100644 src/Vrml/Vrml_Scale.hxx delete mode 100644 src/Vrml/Vrml_Separator.cdl create mode 100644 src/Vrml/Vrml_Separator.hxx create mode 100644 src/Vrml/Vrml_SeparatorRenderCulling.hxx delete mode 100644 src/Vrml/Vrml_ShapeHints.cdl create mode 100644 src/Vrml/Vrml_ShapeHints.hxx create mode 100644 src/Vrml/Vrml_ShapeType.hxx delete mode 100644 src/Vrml/Vrml_Sphere.cdl create mode 100644 src/Vrml/Vrml_Sphere.hxx delete mode 100644 src/Vrml/Vrml_SpotLight.cdl create mode 100644 src/Vrml/Vrml_SpotLight.hxx delete mode 100644 src/Vrml/Vrml_Switch.cdl create mode 100644 src/Vrml/Vrml_Switch.hxx delete mode 100644 src/Vrml/Vrml_Texture2.cdl create mode 100644 src/Vrml/Vrml_Texture2.hxx delete mode 100644 src/Vrml/Vrml_Texture2Transform.cdl create mode 100644 src/Vrml/Vrml_Texture2Transform.hxx create mode 100644 src/Vrml/Vrml_Texture2Wrap.hxx delete mode 100644 src/Vrml/Vrml_TextureCoordinate2.cdl create mode 100644 src/Vrml/Vrml_TextureCoordinate2.hxx delete mode 100644 src/Vrml/Vrml_Transform.cdl create mode 100644 src/Vrml/Vrml_Transform.hxx delete mode 100644 src/Vrml/Vrml_TransformSeparator.cdl create mode 100644 src/Vrml/Vrml_TransformSeparator.hxx delete mode 100644 src/Vrml/Vrml_Translation.cdl create mode 100644 src/Vrml/Vrml_Translation.hxx create mode 100644 src/Vrml/Vrml_VertexOrdering.hxx delete mode 100644 src/Vrml/Vrml_WWWAnchor.cdl create mode 100644 src/Vrml/Vrml_WWWAnchor.hxx create mode 100644 src/Vrml/Vrml_WWWAnchorMap.hxx delete mode 100644 src/Vrml/Vrml_WWWInline.cdl create mode 100644 src/Vrml/Vrml_WWWInline.hxx create mode 100644 src/VrmlAPI/FILES delete mode 100644 src/VrmlAPI/VrmlAPI.cdl create mode 100644 src/VrmlAPI/VrmlAPI.hxx create mode 100644 src/VrmlAPI/VrmlAPI_RepresentationOfShape.hxx delete mode 100644 src/VrmlAPI/VrmlAPI_Writer.cdl create mode 100644 src/VrmlAPI/VrmlAPI_Writer.hxx create mode 100644 src/VrmlConverter/FILES delete mode 100644 src/VrmlConverter/VrmlConverter.cdl delete mode 100644 src/VrmlConverter/VrmlConverter_Curve.cdl create mode 100644 src/VrmlConverter/VrmlConverter_Curve.hxx delete mode 100644 src/VrmlConverter/VrmlConverter_DeflectionCurve.cdl create mode 100644 src/VrmlConverter/VrmlConverter_DeflectionCurve.hxx delete mode 100644 src/VrmlConverter/VrmlConverter_Drawer.cdl create mode 100644 src/VrmlConverter/VrmlConverter_Drawer.hxx delete mode 100644 src/VrmlConverter/VrmlConverter_HLRShape.cdl create mode 100644 src/VrmlConverter/VrmlConverter_HLRShape.hxx delete mode 100644 src/VrmlConverter/VrmlConverter_IsoAspect.cdl create mode 100644 src/VrmlConverter/VrmlConverter_IsoAspect.hxx delete mode 100644 src/VrmlConverter/VrmlConverter_LineAspect.cdl create mode 100644 src/VrmlConverter/VrmlConverter_LineAspect.hxx delete mode 100644 src/VrmlConverter/VrmlConverter_PointAspect.cdl create mode 100644 src/VrmlConverter/VrmlConverter_PointAspect.hxx delete mode 100644 src/VrmlConverter/VrmlConverter_Projector.cdl create mode 100644 src/VrmlConverter/VrmlConverter_Projector.hxx delete mode 100644 src/VrmlConverter/VrmlConverter_ShadedShape.cdl create mode 100644 src/VrmlConverter/VrmlConverter_ShadedShape.hxx delete mode 100644 src/VrmlConverter/VrmlConverter_ShadingAspect.cdl create mode 100644 src/VrmlConverter/VrmlConverter_ShadingAspect.hxx create mode 100644 src/VrmlConverter/VrmlConverter_TypeOfCamera.hxx create mode 100644 src/VrmlConverter/VrmlConverter_TypeOfLight.hxx delete mode 100644 src/VrmlConverter/VrmlConverter_WFDeflectionRestrictedFace.cdl create mode 100644 src/VrmlConverter/VrmlConverter_WFDeflectionRestrictedFace.hxx delete mode 100644 src/VrmlConverter/VrmlConverter_WFDeflectionShape.cdl create mode 100644 src/VrmlConverter/VrmlConverter_WFDeflectionShape.hxx delete mode 100644 src/VrmlConverter/VrmlConverter_WFRestrictedFace.cdl create mode 100644 src/VrmlConverter/VrmlConverter_WFRestrictedFace.hxx delete mode 100644 src/VrmlConverter/VrmlConverter_WFShape.cdl create mode 100644 src/VrmlConverter/VrmlConverter_WFShape.hxx delete mode 100644 src/WNT/WNT.cdl delete mode 100644 src/WNT/WNT.edl delete mode 100644 src/WNT/WNT_CMPLRS.edl create mode 100644 src/WNT/WNT_ClassDefinitionError.hxx create mode 100644 src/WNT/WNT_OrientationType.hxx delete mode 100644 src/WNT/WNT_WClass.cdl create mode 100644 src/WNT/WNT_WClass.hxx delete mode 100644 src/WNT/WNT_WOKSteps.edl delete mode 100644 src/WNT/WNT_WOKUMake.edl delete mode 100644 src/WNT/WNT_Window.cdl create mode 100644 src/WNT/WNT_Window.hxx create mode 100644 src/WNT/WNT_WindowPtr.hxx create mode 100644 src/XCAFApp/FILES delete mode 100644 src/XCAFApp/XCAFApp.cdl delete mode 100644 src/XCAFApp/XCAFApp_Application.cdl create mode 100644 src/XCAFApp/XCAFApp_Application.hxx delete mode 100644 src/XCAFDoc/XCAFDoc.cdl create mode 100644 src/XCAFDoc/XCAFDoc.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_Area.cdl create mode 100644 src/XCAFDoc/XCAFDoc_Area.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_Centroid.cdl create mode 100644 src/XCAFDoc/XCAFDoc_Centroid.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_Color.cdl create mode 100644 src/XCAFDoc/XCAFDoc_Color.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_ColorTool.cdl create mode 100644 src/XCAFDoc/XCAFDoc_ColorTool.hxx create mode 100644 src/XCAFDoc/XCAFDoc_ColorType.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_Datum.cdl create mode 100644 src/XCAFDoc/XCAFDoc_Datum.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_DimTol.cdl create mode 100644 src/XCAFDoc/XCAFDoc_DimTol.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_DimTolTool.cdl create mode 100644 src/XCAFDoc/XCAFDoc_DimTolTool.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_DocumentTool.cdl create mode 100644 src/XCAFDoc/XCAFDoc_DocumentTool.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_GraphNode.cdl create mode 100644 src/XCAFDoc/XCAFDoc_GraphNode.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_LayerTool.cdl create mode 100644 src/XCAFDoc/XCAFDoc_LayerTool.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_Location.cdl create mode 100644 src/XCAFDoc/XCAFDoc_Location.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_Material.cdl create mode 100644 src/XCAFDoc/XCAFDoc_Material.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_MaterialTool.cdl create mode 100644 src/XCAFDoc/XCAFDoc_MaterialTool.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_ShapeMapTool.cdl create mode 100644 src/XCAFDoc/XCAFDoc_ShapeMapTool.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_ShapeTool.cdl create mode 100644 src/XCAFDoc/XCAFDoc_ShapeTool.hxx delete mode 100644 src/XCAFDoc/XCAFDoc_Volume.cdl create mode 100644 src/XCAFDoc/XCAFDoc_Volume.hxx delete mode 100644 src/XCAFPrs/XCAFPrs.cdl create mode 100644 src/XCAFPrs/XCAFPrs.hxx delete mode 100644 src/XCAFPrs/XCAFPrs_Driver.cdl create mode 100644 src/XCAFPrs/XCAFPrs_Driver.hxx delete mode 100644 src/XCAFPrs/XCAFPrs_Style.cdl create mode 100644 src/XCAFPrs/XCAFPrs_Style.hxx create mode 100644 src/XDEDRAW/FILES delete mode 100644 src/XDEDRAW/XDEDRAW.cdl create mode 100644 src/XDEDRAW/XDEDRAW.hxx delete mode 100644 src/XDEDRAW/XDEDRAW_Colors.cdl create mode 100644 src/XDEDRAW/XDEDRAW_Colors.hxx delete mode 100644 src/XDEDRAW/XDEDRAW_Common.cdl create mode 100644 src/XDEDRAW/XDEDRAW_Common.hxx delete mode 100644 src/XDEDRAW/XDEDRAW_Layers.cdl create mode 100644 src/XDEDRAW/XDEDRAW_Layers.hxx delete mode 100644 src/XDEDRAW/XDEDRAW_Props.cdl create mode 100644 src/XDEDRAW/XDEDRAW_Props.hxx delete mode 100644 src/XDEDRAW/XDEDRAW_Shapes.cdl create mode 100644 src/XDEDRAW/XDEDRAW_Shapes.hxx create mode 100644 src/XSAlgo/FILES delete mode 100644 src/XSAlgo/XSAlgo.cdl create mode 100644 src/XSAlgo/XSAlgo.hxx delete mode 100644 src/XSAlgo/XSAlgo_AlgoContainer.cdl create mode 100644 src/XSAlgo/XSAlgo_AlgoContainer.hxx create mode 100644 src/XSAlgo/XSAlgo_Caller.hxx delete mode 100644 src/XSAlgo/XSAlgo_ToolContainer.cdl create mode 100644 src/XSAlgo/XSAlgo_ToolContainer.hxx create mode 100644 src/XSControl/FILES delete mode 100644 src/XSControl/XSControl.cdl create mode 100644 src/XSControl/XSControl.hxx delete mode 100644 src/XSControl/XSControl_ConnectedShapes.cdl create mode 100644 src/XSControl/XSControl_ConnectedShapes.hxx delete mode 100644 src/XSControl/XSControl_Controller.cdl create mode 100644 src/XSControl/XSControl_Controller.hxx delete mode 100644 src/XSControl/XSControl_FuncShape.cdl create mode 100644 src/XSControl/XSControl_FuncShape.hxx delete mode 100644 src/XSControl/XSControl_Functions.cdl create mode 100644 src/XSControl/XSControl_Functions.hxx delete mode 100644 src/XSControl/XSControl_Reader.cdl create mode 100644 src/XSControl/XSControl_Reader.hxx delete mode 100644 src/XSControl/XSControl_SelectForTransfer.cdl create mode 100644 src/XSControl/XSControl_SelectForTransfer.hxx delete mode 100644 src/XSControl/XSControl_SignTransferStatus.cdl create mode 100644 src/XSControl/XSControl_SignTransferStatus.hxx delete mode 100644 src/XSControl/XSControl_TransferReader.cdl create mode 100644 src/XSControl/XSControl_TransferReader.hxx delete mode 100644 src/XSControl/XSControl_TransferWriter.cdl create mode 100644 src/XSControl/XSControl_TransferWriter.hxx delete mode 100644 src/XSControl/XSControl_Utils.cdl create mode 100644 src/XSControl/XSControl_Utils.hxx delete mode 100644 src/XSControl/XSControl_Vars.cdl create mode 100644 src/XSControl/XSControl_Vars.hxx delete mode 100644 src/XSControl/XSControl_WorkSession.cdl create mode 100644 src/XSControl/XSControl_WorkSession.hxx delete mode 100644 src/XSControl/XSControl_Writer.cdl create mode 100644 src/XSControl/XSControl_Writer.hxx delete mode 100644 src/XSDRAW/XSDRAW.cdl create mode 100644 src/XSDRAW/XSDRAW.hxx delete mode 100644 src/XSDRAW/XSDRAW_Functions.cdl create mode 100644 src/XSDRAW/XSDRAW_Functions.hxx delete mode 100644 src/XSDRAW/XSDRAW_Vars.cdl create mode 100644 src/XSDRAW/XSDRAW_Vars.hxx create mode 100644 src/XSDRAWIGES/FILES delete mode 100644 src/XSDRAWIGES/XSDRAWIGES.cdl create mode 100644 src/XSDRAWIGES/XSDRAWIGES.hxx create mode 100644 src/XSDRAWSTEP/FILES delete mode 100644 src/XSDRAWSTEP/XSDRAWSTEP.cdl create mode 100644 src/XSDRAWSTEP/XSDRAWSTEP.hxx delete mode 100644 src/XSDRAWSTLVRML/XSDRAWSTLVRML.cdl create mode 100644 src/XSDRAWSTLVRML/XSDRAWSTLVRML.hxx delete mode 100644 src/XSDRAWSTLVRML/XSDRAWSTLVRML_DataSource.cdl create mode 100644 src/XSDRAWSTLVRML/XSDRAWSTLVRML_DataSource.hxx delete mode 100644 src/XSDRAWSTLVRML/XSDRAWSTLVRML_DataSource3D.cdl create mode 100644 src/XSDRAWSTLVRML/XSDRAWSTLVRML_DataSource3D.hxx delete mode 100644 src/XSDRAWSTLVRML/XSDRAWSTLVRML_DrawableMesh.cdl create mode 100644 src/XSDRAWSTLVRML/XSDRAWSTLVRML_DrawableMesh.hxx create mode 100644 src/XmlDrivers/FILES delete mode 100644 src/XmlDrivers/XmlDrivers.cdl create mode 100644 src/XmlDrivers/XmlDrivers.hxx delete mode 100644 src/XmlDrivers/XmlDrivers_DocumentRetrievalDriver.cdl create mode 100644 src/XmlDrivers/XmlDrivers_DocumentRetrievalDriver.hxx delete mode 100644 src/XmlDrivers/XmlDrivers_DocumentStorageDriver.cdl create mode 100644 src/XmlDrivers/XmlDrivers_DocumentStorageDriver.hxx delete mode 100644 src/XmlLDrivers/XmlLDrivers.cdl create mode 100644 src/XmlLDrivers/XmlLDrivers.hxx delete mode 100644 src/XmlLDrivers/XmlLDrivers_DocumentRetrievalDriver.cdl create mode 100644 src/XmlLDrivers/XmlLDrivers_DocumentRetrievalDriver.hxx delete mode 100644 src/XmlLDrivers/XmlLDrivers_DocumentStorageDriver.cdl create mode 100644 src/XmlLDrivers/XmlLDrivers_DocumentStorageDriver.hxx delete mode 100644 src/XmlLDrivers/XmlLDrivers_NamespaceDef.cdl create mode 100644 src/XmlLDrivers/XmlLDrivers_NamespaceDef.hxx delete mode 100644 src/XmlMDF/XmlMDF.cdl create mode 100644 src/XmlMDF/XmlMDF.hxx delete mode 100644 src/XmlMDF/XmlMDF_ADriver.cdl create mode 100644 src/XmlMDF/XmlMDF_ADriver.hxx delete mode 100644 src/XmlMDF/XmlMDF_ADriverTable.cdl create mode 100644 src/XmlMDF/XmlMDF_ADriverTable.hxx delete mode 100644 src/XmlMDF/XmlMDF_ReferenceDriver.cdl create mode 100644 src/XmlMDF/XmlMDF_ReferenceDriver.hxx delete mode 100644 src/XmlMDF/XmlMDF_TagSourceDriver.cdl create mode 100644 src/XmlMDF/XmlMDF_TagSourceDriver.hxx create mode 100644 src/XmlMDataStd/FILES delete mode 100644 src/XmlMDataStd/XmlMDataStd.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_AsciiStringDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_AsciiStringDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_BooleanArrayDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_BooleanArrayDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_BooleanListDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_BooleanListDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_ByteArrayDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_ByteArrayDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_CommentDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_CommentDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_DirectoryDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_DirectoryDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_ExpressionDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_ExpressionDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_ExtStringArrayDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_ExtStringArrayDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_ExtStringListDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_ExtStringListDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_IntPackedMapDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_IntPackedMapDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_IntegerArrayDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_IntegerArrayDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_IntegerDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_IntegerDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_IntegerListDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_IntegerListDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_NameDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_NameDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_NamedDataDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_NamedDataDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_NoteBookDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_NoteBookDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_RealArrayDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_RealArrayDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_RealDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_RealDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_RealListDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_RealListDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_ReferenceArrayDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_ReferenceArrayDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_ReferenceListDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_ReferenceListDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_RelationDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_RelationDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_TickDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_TickDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_TreeNodeDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_TreeNodeDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_UAttributeDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_UAttributeDriver.hxx delete mode 100644 src/XmlMDataStd/XmlMDataStd_VariableDriver.cdl create mode 100644 src/XmlMDataStd/XmlMDataStd_VariableDriver.hxx create mode 100644 src/XmlMDataXtd/FILES delete mode 100644 src/XmlMDataXtd/XmlMDataXtd.cdl create mode 100644 src/XmlMDataXtd/XmlMDataXtd.hxx delete mode 100644 src/XmlMDataXtd/XmlMDataXtd_AxisDriver.cdl create mode 100644 src/XmlMDataXtd/XmlMDataXtd_AxisDriver.hxx delete mode 100644 src/XmlMDataXtd/XmlMDataXtd_ConstraintDriver.cdl create mode 100644 src/XmlMDataXtd/XmlMDataXtd_ConstraintDriver.hxx delete mode 100644 src/XmlMDataXtd/XmlMDataXtd_GeometryDriver.cdl create mode 100644 src/XmlMDataXtd/XmlMDataXtd_GeometryDriver.hxx delete mode 100644 src/XmlMDataXtd/XmlMDataXtd_PatternStdDriver.cdl create mode 100644 src/XmlMDataXtd/XmlMDataXtd_PatternStdDriver.hxx delete mode 100644 src/XmlMDataXtd/XmlMDataXtd_PlacementDriver.cdl create mode 100644 src/XmlMDataXtd/XmlMDataXtd_PlacementDriver.hxx delete mode 100644 src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.cdl create mode 100644 src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.hxx delete mode 100644 src/XmlMDataXtd/XmlMDataXtd_PointDriver.cdl create mode 100644 src/XmlMDataXtd/XmlMDataXtd_PointDriver.hxx delete mode 100644 src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.cdl create mode 100644 src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.hxx create mode 100644 src/XmlMDocStd/FILES delete mode 100644 src/XmlMDocStd/XmlMDocStd.cdl create mode 100644 src/XmlMDocStd/XmlMDocStd.hxx delete mode 100644 src/XmlMDocStd/XmlMDocStd_XLinkDriver.cdl create mode 100644 src/XmlMDocStd/XmlMDocStd_XLinkDriver.hxx create mode 100644 src/XmlMFunction/FILES delete mode 100644 src/XmlMFunction/XmlMFunction.cdl create mode 100644 src/XmlMFunction/XmlMFunction.hxx delete mode 100644 src/XmlMFunction/XmlMFunction_FunctionDriver.cdl create mode 100644 src/XmlMFunction/XmlMFunction_FunctionDriver.hxx delete mode 100644 src/XmlMFunction/XmlMFunction_GraphNodeDriver.cdl create mode 100644 src/XmlMFunction/XmlMFunction_GraphNodeDriver.hxx delete mode 100644 src/XmlMFunction/XmlMFunction_ScopeDriver.cdl create mode 100644 src/XmlMFunction/XmlMFunction_ScopeDriver.hxx create mode 100644 src/XmlMNaming/FILES delete mode 100644 src/XmlMNaming/XmlMNaming.cdl create mode 100644 src/XmlMNaming/XmlMNaming.hxx delete mode 100644 src/XmlMNaming/XmlMNaming_NamedShapeDriver.cdl create mode 100644 src/XmlMNaming/XmlMNaming_NamedShapeDriver.hxx delete mode 100644 src/XmlMNaming/XmlMNaming_NamingDriver.cdl create mode 100644 src/XmlMNaming/XmlMNaming_NamingDriver.hxx delete mode 100644 src/XmlMNaming/XmlMNaming_Shape1.cdl create mode 100644 src/XmlMNaming/XmlMNaming_Shape1.hxx create mode 100644 src/XmlMPrsStd/FILES delete mode 100644 src/XmlMPrsStd/XmlMPrsStd.cdl create mode 100644 src/XmlMPrsStd/XmlMPrsStd.hxx delete mode 100644 src/XmlMPrsStd/XmlMPrsStd_AISPresentationDriver.cdl create mode 100644 src/XmlMPrsStd/XmlMPrsStd_AISPresentationDriver.hxx delete mode 100644 src/XmlMPrsStd/XmlMPrsStd_PositionDriver.cdl create mode 100644 src/XmlMPrsStd/XmlMPrsStd_PositionDriver.hxx create mode 100644 src/XmlMXCAFDoc/FILES delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_AreaDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_AreaDriver.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_CentroidDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_CentroidDriver.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_ColorDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_ColorDriver.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_ColorToolDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_ColorToolDriver.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_DatumDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_DatumDriver.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_DimTolDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_DimTolDriver.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_DimTolToolDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_DimTolToolDriver.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_DocumentToolDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_DocumentToolDriver.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_GraphNodeDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_GraphNodeDriver.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_LayerToolDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_LayerToolDriver.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_LocationDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_LocationDriver.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_MaterialDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_MaterialDriver.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_MaterialToolDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_MaterialToolDriver.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_ShapeToolDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_ShapeToolDriver.hxx delete mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_VolumeDriver.cdl create mode 100644 src/XmlMXCAFDoc/XmlMXCAFDoc_VolumeDriver.hxx delete mode 100644 src/XmlObjMgt/XmlObjMgt.cdl create mode 100644 src/XmlObjMgt/XmlObjMgt.hxx delete mode 100644 src/XmlObjMgt/XmlObjMgt_Array1.cdl create mode 100644 src/XmlObjMgt/XmlObjMgt_Array1.hxx delete mode 100644 src/XmlObjMgt/XmlObjMgt_GP.cdl create mode 100644 src/XmlObjMgt/XmlObjMgt_GP.hxx delete mode 100644 src/XmlObjMgt/XmlObjMgt_Persistent.cdl create mode 100644 src/XmlObjMgt/XmlObjMgt_Persistent.hxx create mode 100644 src/XmlObjMgt/XmlObjMgt_RRelocationTable.hxx create mode 100644 src/XmlObjMgt/XmlObjMgt_SRelocationTable.hxx delete mode 100644 src/XmlXCAFDrivers/XmlXCAFDrivers.cdl create mode 100644 src/XmlXCAFDrivers/XmlXCAFDrivers.hxx delete mode 100644 src/XmlXCAFDrivers/XmlXCAFDrivers_DocumentRetrievalDriver.cdl create mode 100644 src/XmlXCAFDrivers/XmlXCAFDrivers_DocumentRetrievalDriver.hxx delete mode 100644 src/XmlXCAFDrivers/XmlXCAFDrivers_DocumentStorageDriver.cdl create mode 100644 src/XmlXCAFDrivers/XmlXCAFDrivers_DocumentStorageDriver.hxx create mode 100644 src/gce/FILES delete mode 100644 src/gce/gce.cdl create mode 100644 src/gce/gce_ErrorType.hxx delete mode 100644 src/gce/gce_MakeCirc.cdl create mode 100644 src/gce/gce_MakeCirc.hxx delete mode 100644 src/gce/gce_MakeCirc2d.cdl create mode 100644 src/gce/gce_MakeCirc2d.hxx delete mode 100644 src/gce/gce_MakeCone.cdl create mode 100644 src/gce/gce_MakeCone.hxx delete mode 100644 src/gce/gce_MakeCylinder.cdl create mode 100644 src/gce/gce_MakeCylinder.hxx delete mode 100644 src/gce/gce_MakeDir.cdl create mode 100644 src/gce/gce_MakeDir.hxx delete mode 100644 src/gce/gce_MakeDir2d.cdl create mode 100644 src/gce/gce_MakeDir2d.hxx delete mode 100644 src/gce/gce_MakeElips.cdl create mode 100644 src/gce/gce_MakeElips.hxx delete mode 100644 src/gce/gce_MakeElips2d.cdl create mode 100644 src/gce/gce_MakeElips2d.hxx delete mode 100644 src/gce/gce_MakeHypr.cdl create mode 100644 src/gce/gce_MakeHypr.hxx delete mode 100644 src/gce/gce_MakeHypr2d.cdl create mode 100644 src/gce/gce_MakeHypr2d.hxx delete mode 100644 src/gce/gce_MakeLin.cdl create mode 100644 src/gce/gce_MakeLin.hxx delete mode 100644 src/gce/gce_MakeLin2d.cdl create mode 100644 src/gce/gce_MakeLin2d.hxx delete mode 100644 src/gce/gce_MakeMirror.cdl create mode 100644 src/gce/gce_MakeMirror.hxx delete mode 100644 src/gce/gce_MakeMirror2d.cdl create mode 100644 src/gce/gce_MakeMirror2d.hxx delete mode 100644 src/gce/gce_MakeParab.cdl create mode 100644 src/gce/gce_MakeParab.hxx delete mode 100644 src/gce/gce_MakeParab2d.cdl create mode 100644 src/gce/gce_MakeParab2d.hxx delete mode 100644 src/gce/gce_MakePln.cdl create mode 100644 src/gce/gce_MakePln.hxx delete mode 100644 src/gce/gce_MakeRotation.cdl create mode 100644 src/gce/gce_MakeRotation.hxx delete mode 100644 src/gce/gce_MakeRotation2d.cdl create mode 100644 src/gce/gce_MakeRotation2d.hxx delete mode 100644 src/gce/gce_MakeScale.cdl create mode 100644 src/gce/gce_MakeScale.hxx delete mode 100644 src/gce/gce_MakeScale2d.cdl create mode 100644 src/gce/gce_MakeScale2d.hxx delete mode 100644 src/gce/gce_MakeTranslation.cdl create mode 100644 src/gce/gce_MakeTranslation.hxx delete mode 100644 src/gce/gce_MakeTranslation2d.cdl create mode 100644 src/gce/gce_MakeTranslation2d.hxx delete mode 100644 src/gce/gce_Root.cdl create mode 100644 src/gce/gce_Root.hxx delete mode 100644 src/gp/gp.cdl create mode 100644 src/gp/gp.hxx delete mode 100644 src/gp/gp_Ax1.cdl create mode 100644 src/gp/gp_Ax1.hxx delete mode 100644 src/gp/gp_Ax2.cdl create mode 100644 src/gp/gp_Ax2.hxx delete mode 100644 src/gp/gp_Ax22d.cdl create mode 100644 src/gp/gp_Ax22d.hxx delete mode 100644 src/gp/gp_Ax2d.cdl create mode 100644 src/gp/gp_Ax2d.hxx delete mode 100644 src/gp/gp_Ax3.cdl create mode 100644 src/gp/gp_Ax3.hxx delete mode 100644 src/gp/gp_Circ.cdl create mode 100644 src/gp/gp_Circ.hxx delete mode 100644 src/gp/gp_Circ2d.cdl create mode 100644 src/gp/gp_Circ2d.hxx delete mode 100644 src/gp/gp_Cone.cdl create mode 100644 src/gp/gp_Cone.hxx delete mode 100644 src/gp/gp_Cylinder.cdl create mode 100644 src/gp/gp_Cylinder.hxx delete mode 100644 src/gp/gp_Dir.cdl create mode 100644 src/gp/gp_Dir.hxx delete mode 100644 src/gp/gp_Dir2d.cdl create mode 100644 src/gp/gp_Dir2d.hxx delete mode 100644 src/gp/gp_Elips.cdl create mode 100644 src/gp/gp_Elips.hxx delete mode 100644 src/gp/gp_Elips2d.cdl create mode 100644 src/gp/gp_Elips2d.hxx create mode 100644 src/gp/gp_EulerSequence.hxx delete mode 100644 src/gp/gp_GTrsf.cdl create mode 100644 src/gp/gp_GTrsf.hxx delete mode 100644 src/gp/gp_GTrsf2d.cdl create mode 100644 src/gp/gp_GTrsf2d.hxx delete mode 100644 src/gp/gp_Hypr.cdl create mode 100644 src/gp/gp_Hypr.hxx delete mode 100644 src/gp/gp_Hypr2d.cdl create mode 100644 src/gp/gp_Hypr2d.hxx delete mode 100644 src/gp/gp_Lin.cdl create mode 100644 src/gp/gp_Lin.hxx delete mode 100644 src/gp/gp_Lin2d.cdl create mode 100644 src/gp/gp_Lin2d.hxx delete mode 100644 src/gp/gp_Mat.cdl create mode 100644 src/gp/gp_Mat.hxx delete mode 100644 src/gp/gp_Mat2d.cdl create mode 100644 src/gp/gp_Mat2d.hxx delete mode 100644 src/gp/gp_Parab.cdl create mode 100644 src/gp/gp_Parab.hxx delete mode 100644 src/gp/gp_Parab2d.cdl create mode 100644 src/gp/gp_Parab2d.hxx delete mode 100644 src/gp/gp_Pln.cdl create mode 100644 src/gp/gp_Pln.hxx delete mode 100644 src/gp/gp_Pnt.cdl create mode 100644 src/gp/gp_Pnt.hxx delete mode 100644 src/gp/gp_Pnt2d.cdl create mode 100644 src/gp/gp_Pnt2d.hxx delete mode 100644 src/gp/gp_Quaternion.cdl create mode 100644 src/gp/gp_Quaternion.hxx delete mode 100644 src/gp/gp_Sphere.cdl create mode 100644 src/gp/gp_Sphere.hxx delete mode 100644 src/gp/gp_Torus.cdl create mode 100644 src/gp/gp_Torus.hxx delete mode 100644 src/gp/gp_Trsf.cdl create mode 100644 src/gp/gp_Trsf.hxx delete mode 100644 src/gp/gp_Trsf2d.cdl create mode 100644 src/gp/gp_Trsf2d.hxx create mode 100644 src/gp/gp_TrsfForm.hxx delete mode 100644 src/gp/gp_Vec.cdl create mode 100644 src/gp/gp_Vec.hxx delete mode 100644 src/gp/gp_Vec2d.cdl create mode 100644 src/gp/gp_Vec2d.hxx create mode 100644 src/gp/gp_VectorWithNullMagnitude.hxx delete mode 100644 src/gp/gp_XY.cdl create mode 100644 src/gp/gp_XY.hxx delete mode 100644 src/gp/gp_XYZ.cdl create mode 100644 src/gp/gp_XYZ.hxx delete mode 100644 src/math/math.cdl create mode 100644 src/math/math.hxx delete mode 100644 src/math/math_BFGS.cdl create mode 100644 src/math/math_BFGS.hxx delete mode 100644 src/math/math_BissecNewton.cdl create mode 100644 src/math/math_BissecNewton.hxx delete mode 100644 src/math/math_BracketMinimum.cdl create mode 100644 src/math/math_BracketMinimum.hxx delete mode 100644 src/math/math_BracketedRoot.cdl create mode 100644 src/math/math_BracketedRoot.hxx delete mode 100644 src/math/math_BrentMinimum.cdl create mode 100644 src/math/math_BrentMinimum.hxx delete mode 100644 src/math/math_ComputeGaussPointsAndWeights.cdl create mode 100644 src/math/math_ComputeGaussPointsAndWeights.hxx delete mode 100644 src/math/math_ComputeKronrodPointsAndWeights.cdl create mode 100644 src/math/math_ComputeKronrodPointsAndWeights.hxx delete mode 100644 src/math/math_Crout.cdl create mode 100644 src/math/math_Crout.hxx delete mode 100644 src/math/math_DirectPolynomialRoots.cdl create mode 100644 src/math/math_DirectPolynomialRoots.hxx delete mode 100644 src/math/math_DoubleTab.cdl create mode 100644 src/math/math_DoubleTab.hxx delete mode 100644 src/math/math_EigenValuesSearcher.cdl create mode 100644 src/math/math_EigenValuesSearcher.hxx delete mode 100644 src/math/math_FRPR.cdl create mode 100644 src/math/math_FRPR.hxx delete mode 100644 src/math/math_Function.cdl create mode 100644 src/math/math_Function.hxx delete mode 100644 src/math/math_FunctionAllRoots.cdl create mode 100644 src/math/math_FunctionAllRoots.hxx delete mode 100644 src/math/math_FunctionRoot.cdl create mode 100644 src/math/math_FunctionRoot.hxx delete mode 100644 src/math/math_FunctionRoots.cdl create mode 100644 src/math/math_FunctionRoots.hxx delete mode 100644 src/math/math_FunctionSample.cdl create mode 100644 src/math/math_FunctionSample.hxx delete mode 100644 src/math/math_FunctionSet.cdl create mode 100644 src/math/math_FunctionSet.hxx delete mode 100644 src/math/math_FunctionSetRoot.cdl create mode 100644 src/math/math_FunctionSetRoot.hxx delete mode 100644 src/math/math_FunctionSetWithDerivatives.cdl create mode 100644 src/math/math_FunctionSetWithDerivatives.hxx delete mode 100644 src/math/math_FunctionWithDerivative.cdl create mode 100644 src/math/math_FunctionWithDerivative.hxx delete mode 100644 src/math/math_Gauss.cdl create mode 100644 src/math/math_Gauss.hxx delete mode 100644 src/math/math_GaussLeastSquare.cdl create mode 100644 src/math/math_GaussLeastSquare.hxx delete mode 100644 src/math/math_GaussMultipleIntegration.cdl create mode 100644 src/math/math_GaussMultipleIntegration.hxx delete mode 100644 src/math/math_GaussSetIntegration.cdl create mode 100644 src/math/math_GaussSetIntegration.hxx delete mode 100644 src/math/math_GaussSingleIntegration.cdl create mode 100644 src/math/math_GaussSingleIntegration.hxx delete mode 100644 src/math/math_Householder.cdl create mode 100644 src/math/math_Householder.hxx delete mode 100644 src/math/math_Jacobi.cdl create mode 100644 src/math/math_Jacobi.hxx delete mode 100644 src/math/math_KronrodSingleIntegration.cdl create mode 100644 src/math/math_KronrodSingleIntegration.hxx delete mode 100644 src/math/math_Matrix.cdl create mode 100644 src/math/math_Matrix.hxx delete mode 100644 src/math/math_MultipleVarFunction.cdl create mode 100644 src/math/math_MultipleVarFunction.hxx delete mode 100644 src/math/math_MultipleVarFunctionWithGradient.cdl create mode 100644 src/math/math_MultipleVarFunctionWithGradient.hxx delete mode 100644 src/math/math_MultipleVarFunctionWithHessian.cdl create mode 100644 src/math/math_MultipleVarFunctionWithHessian.hxx delete mode 100644 src/math/math_NewtonFunctionRoot.cdl create mode 100644 src/math/math_NewtonFunctionRoot.hxx delete mode 100644 src/math/math_NewtonFunctionSetRoot.cdl create mode 100644 src/math/math_NewtonFunctionSetRoot.hxx delete mode 100644 src/math/math_NewtonMinimum.cdl create mode 100644 src/math/math_NewtonMinimum.hxx create mode 100644 src/math/math_NotSquare.hxx delete mode 100644 src/math/math_Powell.cdl create mode 100644 src/math/math_Powell.hxx delete mode 100644 src/math/math_SVD.cdl create mode 100644 src/math/math_SVD.hxx create mode 100644 src/math/math_SingularMatrix.hxx create mode 100644 src/math/math_Status.hxx delete mode 100644 src/math/math_TrigonometricFunctionRoots.cdl create mode 100644 src/math/math_TrigonometricFunctionRoots.hxx delete mode 100644 src/math/math_Uzawa.cdl create mode 100644 src/math/math_Uzawa.hxx diff --git a/adm/UDLIST b/adm/UDLIST index 7ae7410a46..31d9078946 100644 --- a/adm/UDLIST +++ b/adm/UDLIST @@ -1,186 +1,186 @@ n NCollection -p BSplCLib -p BSplSLib -p Bnd -p BVH -p CSLib -p Convert -p Dico -p ElCLib -p ElSLib -p Expr -p ExprIntrp -p FSD -p GeomAbs -p MMgt -p Message -p OSD -p PLib -p Plugin -p Poly -p Precision -p Quantity -p Resource -p Standard -p StdFail -p Storage -p TColStd -p TColgp -p TCollection -p TShort -p TopLoc -p Units -p UnitsAPI -p gp -p math +n BSplCLib +n BSplSLib +n Bnd +n BVH +n CSLib +n Convert +n Dico +n ElCLib +n ElSLib +n Expr +n ExprIntrp +n FSD +n GeomAbs +n MMgt +n Message +n OSD +n PLib +n Plugin +n Poly +n Precision +n Quantity +n Resource +n Standard +n StdFail +n Storage +n TColStd +n TColgp +n TCollection +n TShort +n TopLoc +n Units +n UnitsAPI +n gp +n math r OS t TKMath t TKernel -p Adaptor2d -p Adaptor3d -p AdvApp2Var -p AdvApprox -p AppCont -p AppDef -p AppParCurves -p Approx -p BRep -p BRepAdaptor -p BRepLProp -p BRepTools -p BndLib -p CPnts -p Extrema -p FEmTool -p GC -p GCE2d -p GCPnts -p GProp -p Geom -p Geom2d -p Geom2dAdaptor -p Geom2dConvert -p Geom2dLProp -p GeomAdaptor -p GeomConvert -p GeomLProp -p GeomLib -p GeomProjLib -p GeomTools -p Hermit -p IntAna -p IntAna2d -p LProp -p LProp3d -p ProjLib -p TColGeom -p TColGeom2d -p TopAbs -p TopExp -p TopTools -p TopoDS -p gce +n Adaptor2d +n Adaptor3d +n AdvApp2Var +n AdvApprox +n AppCont +n AppDef +n AppParCurves +n Approx +n BRep +n BRepAdaptor +n BRepLProp +n BRepTools +n BndLib +n CPnts +n Extrema +n FEmTool +n GC +n GCE2d +n GCPnts +n GProp +n Geom +n Geom2d +n Geom2dAdaptor +n Geom2dConvert +n Geom2dLProp +n GeomAdaptor +n GeomConvert +n GeomLProp +n GeomLib +n GeomProjLib +n GeomTools +n Hermit +n IntAna +n IntAna2d +n LProp +n LProp3d +n ProjLib +n TColGeom +n TColGeom2d +n TopAbs +n TopExp +n TopTools +n TopoDS +n gce t TKBRep t TKG2d t TKG3d t TKGeomBase -p AppBlend -p ApproxInt -p BOPTools -p BRepAlgo -p BRepAlgoAPI -p BRepApprox -p BRepBlend -p BRepBndLib -p BRepBuilderAPI -p BRepCheck -p BRepClass -p BRepClass3d -p BRepExtrema -p BRepFeat -p BRepFill -p BRepFilletAPI -p BRepGProp -p BRepIntCurveSurface -p BRepLib -p BRepMAT2d +n AppBlend +n ApproxInt +n BOPTools +n BRepAlgo +n BRepAlgoAPI +n BRepApprox +n BRepBlend +n BRepBndLib +n BRepBuilderAPI +n BRepCheck +n BRepClass +n BRepClass3d +n BRepExtrema +n BRepFeat +n BRepFill +n BRepFilletAPI +n BRepGProp +n BRepIntCurveSurface +n BRepLib +n BRepMAT2d n BRepMesh -p BRepOffset -p BRepOffsetAPI -p BRepPrim -p BRepPrimAPI -p BRepProj -p BRepSweep -p BRepTopAdaptor -p BiTgte -p Bisector -p Blend -p BlendFunc -p ChFi2d -p ChFi3d -p ChFiDS -p ChFiKPart -p Contap -p Draft -p FairCurve -p FilletSurf -p GccAna -p GccEnt -p GccInt -p Geom2dAPI -p Geom2dGcc -p Geom2dHatch -p Geom2dInt -p GeomAPI -p GeomFill -p GeomInt -p GeomPlate -p HLRAlgo -p HLRBRep -p HLRTopoBRep -p HLRAppli -p Hatch -p HatchGen -p IntCurve -p IntCurveSurface -p IntCurvesFace -p IntImp -p IntImpParGen -p IntPatch -p IntPolyh -p IntRes2d -p IntStart -p IntSurf -p IntTools -p IntWalk -p Intf -p Intrv -p Law -p LocOpe -p LocalAnalysis -p MAT -p MAT2d -p NLPlate -p Plate -p ShapeAlgo -p ShapeAnalysis -p ShapeBuild -p ShapeConstruct -p ShapeCustom -p ShapeExtend -p ShapeFix -p ShapeProcess -p ShapeProcessAPI -p ShapeUpgrade -p Sweep -p TopBas -p TopClass -p TopCnx -p TopOpeBRep -p TopOpeBRepBuild -p TopOpeBRepDS -p TopOpeBRepTool -p TopTrans +n BRepOffset +n BRepOffsetAPI +n BRepPrim +n BRepPrimAPI +n BRepProj +n BRepSweep +n BRepTopAdaptor +n BiTgte +n Bisector +n Blend +n BlendFunc +n ChFi2d +n ChFi3d +n ChFiDS +n ChFiKPart +n Contap +n Draft +n FairCurve +n FilletSurf +n GccAna +n GccEnt +n GccInt +n Geom2dAPI +n Geom2dGcc +n Geom2dHatch +n Geom2dInt +n GeomAPI +n GeomFill +n GeomInt +n GeomPlate +n HLRAlgo +n HLRBRep +n HLRTopoBRep +n HLRAppli +n Hatch +n HatchGen +n IntCurve +n IntCurveSurface +n IntCurvesFace +n IntImp +n IntImpParGen +n IntPatch +n IntPolyh +n IntRes2d +n IntStart +n IntSurf +n IntTools +n IntWalk +n Intf +n Intrv +n Law +n LocOpe +n LocalAnalysis +n MAT +n MAT2d +n NLPlate +n Plate +n ShapeAlgo +n ShapeAnalysis +n ShapeBuild +n ShapeConstruct +n ShapeCustom +n ShapeExtend +n ShapeFix +n ShapeProcess +n ShapeProcessAPI +n ShapeUpgrade +n Sweep +n TopBas +n TopClass +n TopCnx +n TopOpeBRep +n TopOpeBRepBuild +n TopOpeBRepDS +n TopOpeBRepTool +n TopTrans n XBRepMesh t TKBO t TKBool @@ -195,27 +195,27 @@ t TKShHealing t TKTopAlgo t TKXMesh n InterfaceGraphic -p AIS -p Aspect -p DsgPrs -p Graphic3d -p Image -p MeshVS -p OpenGl -p Prs3d -p PrsMgr -p Select3D -p SelectBasics -p SelectMgr -p StdPrs -p StdSelect -p TColQuantity -p V3d -p Visual3d -p Voxel -p WNT -p Xw -p Cocoa +n AIS +n Aspect +n DsgPrs +n Graphic3d +n Image +n MeshVS +n OpenGl +n Prs3d +n PrsMgr +n Select3D +n SelectBasics +n SelectMgr +n StdPrs +n StdSelect +n TColQuantity +n V3d +n Visual3d +n Voxel +n WNT +n Xw +n Cocoa r Textures r Shaders t TKMeshVS @@ -227,41 +227,41 @@ n BinTObjDrivers n LDOM n TObj n XmlTObjDrivers -p AppStd -p AppStdL -p BinDrivers -p BinLDrivers -p BinMDF -p BinMDataStd -p BinMDataXtd -p BinMDocStd -p BinMFunction -p BinMNaming -p BinMPrsStd -p BinObjMgt -p BinTools -p CDF -p CDM -p FWOSDriver -p PCDM -p TDF -p TDataStd -p TDataXtd -p TDocStd -p TFunction -p TNaming -p TPrsStd -p UTL -p XmlDrivers -p XmlLDrivers -p XmlMDF -p XmlMDataStd -p XmlMDataXtd -p XmlMDocStd -p XmlMFunction -p XmlMNaming -p XmlMPrsStd -p XmlObjMgt +n AppStd +n AppStdL +n BinDrivers +n BinLDrivers +n BinMDF +n BinMDataStd +n BinMDataXtd +n BinMDocStd +n BinMFunction +n BinMNaming +n BinMPrsStd +n BinObjMgt +n BinTools +n CDF +n CDM +n FWOSDriver +n PCDM +n TDF +n TDataStd +n TDataXtd +n TDocStd +n TFunction +n TNaming +n TPrsStd +n UTL +n XmlDrivers +n XmlLDrivers +n XmlMDF +n XmlMDataStd +n XmlMDataXtd +n XmlMDocStd +n XmlMFunction +n XmlMNaming +n XmlMPrsStd +n XmlObjMgt r StdResource r XmlOcafResource t FWOSPlugin @@ -279,84 +279,84 @@ t TKXmlL t TKXmlTObj n IGESFile n StepFile -p APIHeaderSection -p BRepToIGES -p BRepToIGESBRep -p BinMXCAFDoc -p BinXCAFDrivers -p Geom2dToIGES -p GeomToIGES -p GeomToStep -p HeaderSection -p IFGraph -p IFSelect -p IGESAppli -p IGESBasic -p IGESCAFControl -p IGESControl -p IGESConvGeom -p IGESData -p IGESDefs -p IGESDimen -p IGESDraw -p IGESGeom -p IGESGraph -p IGESSelect -p IGESSolid -p IGESToBRep -p Interface -p LibCtl -p MoniTool -p RWHeaderSection -p RWStepAP203 -p RWStepAP214 -p RWStepBasic -p RWStepDimTol -p RWStepElement -p RWStepFEA -p RWStepGeom -p RWStepRepr -p RWStepShape -p RWStepVisual -p RWStl -p STEPCAFControl -p STEPConstruct -p STEPControl -p STEPEdit -p STEPSelections -p StepAP203 -p StepAP209 -p StepAP214 -p StepBasic -p StepData -p StepDimTol -p StepElement -p StepFEA -p StepGeom -p StepRepr -p StepSelect -p StepShape -p StepToGeom -p StepToTopoDS -p StepVisual -p StlAPI -p StlMesh -p StlTransfer -p TopoDSToStep -p Transfer -p TransferBRep -p UnitsMethods -p Vrml -p VrmlAPI -p VrmlConverter -p VrmlData -p XCAFApp -p XCAFDoc -p XCAFPrs -p XSAlgo -p XSControl -p XmlMXCAFDoc -p XmlXCAFDrivers +n APIHeaderSection +n BRepToIGES +n BRepToIGESBRep +n BinMXCAFDoc +n BinXCAFDrivers +n Geom2dToIGES +n GeomToIGES +n GeomToStep +n HeaderSection +n IFGraph +n IFSelect +n IGESAppli +n IGESBasic +n IGESCAFControl +n IGESControl +n IGESConvGeom +n IGESData +n IGESDefs +n IGESDimen +n IGESDraw +n IGESGeom +n IGESGraph +n IGESSelect +n IGESSolid +n IGESToBRep +n Interface +n LibCtl +n MoniTool +n RWHeaderSection +n RWStepAP203 +n RWStepAP214 +n RWStepBasic +n RWStepDimTol +n RWStepElement +n RWStepFEA +n RWStepGeom +n RWStepRepr +n RWStepShape +n RWStepVisual +n RWStl +n STEPCAFControl +n STEPConstruct +n STEPControl +n STEPEdit +n STEPSelections +n StepAP203 +n StepAP209 +n StepAP214 +n StepBasic +n StepData +n StepDimTol +n StepElement +n StepFEA +n StepGeom +n StepRepr +n StepSelect +n StepShape +n StepToGeom +n StepToTopoDS +n StepVisual +n StlAPI +n StlMesh +n StlTransfer +n TopoDSToStep +n Transfer +n TransferBRep +n UnitsMethods +n Vrml +n VrmlAPI +n VrmlConverter +n VrmlData +n XCAFApp +n XCAFDoc +n XCAFPrs +n XSAlgo +n XSControl +n XmlMXCAFDoc +n XmlXCAFDrivers r SHMessage r XSMessage r XSTEPResource @@ -373,33 +373,33 @@ t TKXDEIGES t TKXDESTEP t TKXSBase t TKXmlXCAF -p BOPTest -p BRepTest -p DBRep -p DDF -p DDataStd -p DDocStd -p DNaming -p DPrsStd -p Draw -p DrawDim -p DrawFairCurve -p DrawTrSurf -p GeometryTest -p GeomliteTest -p HLRTest -p MeshTest -p SWDRAW -p TObjDRAW -p TestTopOpe -p TestTopOpeDraw -p TestTopOpeTools -p ViewerTest -p XDEDRAW -p XSDRAW -p XSDRAWIGES -p XSDRAWSTEP -p XSDRAWSTLVRML +n BOPTest +n BRepTest +n DBRep +n DDF +n DDataStd +n DDocStd +n DNaming +n DPrsStd +n Draw +n DrawDim +n DrawFairCurve +n DrawTrSurf +n GeometryTest +n GeomliteTest +n HLRTest +n MeshTest +n SWDRAW +n TObjDRAW +n TestTopOpe +n TestTopOpeDraw +n TestTopOpeTools +n ViewerTest +n XDEDRAW +n XSDRAW +n XSDRAWIGES +n XSDRAWSTEP +n XSDRAWSTLVRML r DrawResources t TKDCAF t TKDraw @@ -409,22 +409,22 @@ t TKViewerTest t TKXDEDRAW t TKXSDRAW x DRAWEXE -p QADraw -p QANCollection -p QANewBRepNaming -p QANewDBRepNaming -p QANewModTopOpe +n QADraw +n QANCollection +n QANewBRepNaming +n QANewDBRepNaming +n QANewModTopOpe t TKQADraw -p QADNaming -p QABugs -p Font -p BOPAlgo -p BOPDS -p BOPCol -p IVtk -p IVtkOCC -p IVtkVTK -p IVtkTools +n QADNaming +n QABugs +n Font +n BOPAlgo +n BOPDS +n BOPCol +n IVtk +n IVtkOCC +n IVtkVTK +n IVtkTools t TKIVtk -p IVtkDraw +n IVtkDraw t TKIVtkDraw diff --git a/src/AIS/AIS.cdl b/src/AIS/AIS.cdl deleted file mode 100644 index 025f604f43..0000000000 --- a/src/AIS/AIS.cdl +++ /dev/null @@ -1,706 +0,0 @@ --- Created on: 1996-12-11 --- 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. - -package AIS - - ---Purpose: Application Interactive Services provide the means to - -- create links between an application GUI viewer and - -- the packages which are used to manage selection - -- and presentation. The tools AIS defined in order to - -- do this include different sorts of entities: both the - -- selectable viewable objects themselves and the - -- context and attribute managers to define their - -- selection and display. - -- To orient the user as he works in a modeling - -- environment, views and selections must be - -- comprehensible. There must be several different sorts - -- of selectable and viewable object defined. These must - -- also be interactive, that is, connecting graphic - -- representation and the underlying reference - -- geometry. These entities are called Interactive - -- Objects, and are divided into four types: - -- - the Datum - -- - the Relation - -- - the Object - -- - None. - -- The Datum groups together the construction elements - -- such as lines, circles, points, trihedra, plane trihedra, - -- planes and axes. - -- The Relation is made up of constraints on one or - -- more interactive shapes and the corresponding - -- reference geometry. For example, you might want to - -- constrain two edges in a parallel relation. This - -- contraint is considered as an object in its own right, - -- and is shown as a sensitive primitive. This takes the - -- graphic form of a perpendicular arrow marked with - -- the || symbol and lying between the two edges. - -- The Object type includes topological shapes, and - -- connections between shapes. - -- None, in order not to eliminate the object, tells the - -- application to look further until it finds an object - -- definition in its generation which is accepted. - -- Inside these categories, you have the possibility - -- of an additional characterization by means of a - -- signature. The signature provides an index to the - -- further characterization. By default, the Interactive - -- Object has a None type and a signature of 0 - -- (equivalent to None.) If you want to give a particular - -- type and signature to your interactive object, you must - -- redefine the two virtual methods: Type and Signature. - -- In the C++ inheritance structure of the package, each - -- class representing a specific Interactive Object - -- inherits AIS_InteractiveObject. Among these - -- inheriting classes, AIS_Relation functions as the - -- abstract mother class for tinheriting classes defining - -- display of specific relational constraints and types of - -- dimension. Some of these include: - -- - display of constraints based on relations of - -- symmetry, tangency, parallelism and concentricity - -- - display of dimensions for angles, offsets, - -- diameters, radii and chamfers. - -- No viewer can show everything at once with any - -- coherence or clarity. Views must be managed - -- carefully both sequentially and at any given instant. - -- Another function of the view is that of a context to - -- carry out design in. The design changes are applied - -- to the objects in the view and then extended to the - -- underlying reference geometry by a solver. To make - -- sense of this complicated visual data, several display - -- and selection tools are required. To facilitate - -- management, each object and each construction - -- element has a selection priority. There are also - -- means to modify the default priority. - -- To define an environment of dynamic detection, you - -- can use standard filter classes or create your own. A - -- filter questions the owner of the sensitive primitive in - -- local context to determine if it has the the desired - -- qualities. If it answers positively, it is kept. If not, it is rejected. - -- The standard filters supplied in AIS include: - -- AIS_AttributeFilter - -- AIS_SignatureFilter - -- AIS_TypeFilter. - -- Only the type filter can be used in the default - -- operating mode, the neutral point. The others can - -- only be used in open local contexts. - -- Neutral point and local context constitute the two - -- operating modes of the central entity which pilots - -- visualizations and selections, the Interactive Context. - -- It is linked to a main viewer and if you like, a trash bin - -- viewer as well. - -- The neutral point, which is the default mode, allows - -- you to easily visualize and select interactive objects - -- which have been loaded into the context. Opening - -- local contexts allows you to prepare and use a - -- temporary selection environment without disturbing - -- the neutral point. A set of functions allows you to - -- choose the interactive objects which you want to act - -- on, the selection modes which you want to activate, - -- and the temporary visualizations which you will - -- execute. When the operation is finished, you close the - -- current local context and return to the state in which - -- you were before opening it (neutral point or previous - -- local context). - -- An interactive object can have a certain number of - -- graphic attributes which are specific to it, such as - -- visualization mode, color, and material. By the same - -- token, the interactive context has a set of graphic - -- attributes, the Drawer which is valid by default for the - -- objects it controls. When an interactive object is - -- visualized, the required graphic attributes are first - -- taken from the object's own Drawer if one exists, or - -- from the context drawer for the others. - - -uses - TCollection, - MMgt, - Quantity, - TColgp, - TColStd, - TopLoc, - gp, - Geom, - Bnd, - Aspect, - Graphic3d, - V3d, - TopAbs, - TopoDS, - Prs3d, - PrsMgr, - Select3D, - SelectMgr, - StdSelect, - DsgPrs, - TopTools, - Poly, - Image - -is - - - enumeration DisplayMode is WireFrame, Shaded; - ---Purpose: - -- Sets display modes other than neutral point ones, - -- for interactive objects. The possibilities include: - -- - wireframe, - -- - shaded, - - enumeration ConnectStatus is - CS_None, - CS_Connection, - CS_Transform, - CS_Both; - ---Purpose: Gives the status of connection of an Interactive - -- Object. This will be one of the following: - -- - No connection - -- - Connection - -- - Transformation - -- - Both connection and transformation - -- This enumeration is used in - -- AIS_ConnectedInteractive. Transform indicates - -- that the Interactive Object reference geometry has - -- changed location relative to the reference geometry. - - enumeration TypeOfIso is - TOI_IsoU, - TOI_IsoV, - TOI_Both; - ---Purpose: Declares the type of isoparameter displayed. - - enumeration DisplayStatus is - DS_Displayed, - DS_Erased, - DS_Temporary, - DS_None; - ---Purpose: - -- To give the display status of an Interactive Object. - -- This will be one of the following: - -- - DS_Displayed: the Interactive Object is - -- displayed in the main viewer; - -- - DS_Erased: the Interactive Object is hidden in main viewer; - -- - DS_Temporary: the Interactive Object is temporarily displayed; - -- - DS_None: the Interactive Object is nowhere displayed. - - enumeration SelectStatus is - SS_Added, - SS_Removed, - SS_NotDone - end SelectStatus; - - enumeration StatusOfPick is - SOP_Error, - SOP_NothingSelected, - SOP_Removed, - SOP_OneSelected, - SOP_SeveralSelected - end StatusOfPick; - - enumeration StatusOfDetection is - SOD_Error, - SOD_Nothing, - SOD_AllBad, - SOD_Selected, - SOD_OnlyOneDetected, - SOD_OnlyOneGood, - SOD_SeveralGood - end StatusOfDetection; - - enumeration KindOfDimension is - KOD_NONE, - KOD_LENGTH, - KOD_PLANEANGLE, - KOD_SOLIDANGLE, - KOD_AREA, - KOD_VOLUME, - KOD_MASS, - KOD_TIME, - KOD_RADIUS, - KOD_DIAMETER, - KOD_CHAMF2D, - KOD_CHAMF3D, - KOD_OFFSET, - KOD_ELLIPSERADIUS; - ---Purpose: Declares the kinds of dimensions needed in the - -- display of Interactive Objects. - - enumeration KindOfInteractive is - KOI_None, - KOI_Datum, - KOI_Shape, - KOI_Object, - KOI_Relation, - KOI_Dimension; - --- Purpose: Declares the type of Interactive Object. - -- This is one of the following: - -- - the Datum - -- - the Object - -- - the Relation - -- - the Dimension - -- - the None type. - -- The Datum is the construction element. These include - -- points, lines, axes and planes. The object brings - -- together topological shapes. The Relation includes - -- dimensions and constraints. The Dimension includes - -- length, radius, diameter and angle dimensions. - -- When the object is of an unknown type, the None - -- type is declared. - - enumeration ClearMode is - CM_All, - CM_Interactive, - CM_Filters, - CM_StandardModes, - CM_TemporaryShapePrs - end ClearMode; - ---Purpose: Declares which entities in an opened local context - -- are to be cleared of mode settings. Temporary - -- graphic presentations such as those for sub-shapes, - -- for example, are only created for the selection - -- process. By means of these enumerations, they can - -- be cleared from local context. - - enumeration KindOfUnit is - TOU_LENGTH, - TOU_SURFACE, - TOU_VOLUME, - TOU_PLANE_ANGLE, - TOU_SOLID_ANGLE, - TOU_MASS, - TOU_FORCE, - TOU_TIME; - ---Purpose: Declares the type of Interactive Object unit. - - enumeration TypeOfAxis is TOAX_Unknown,TOAX_XAxis,TOAX_YAxis,TOAX_ZAxis; - ---Purpose: Declares the type of axis. - - enumeration TypeOfPlane is TOPL_Unknown,TOPL_XYPlane,TOPL_XZPlane,TOPL_YZPlane; - ---Purpose: Declares the type of plane. - enumeration TypeOfDist is TOD_Unknown,TOD_Horizontal,TOD_Vertical; - ---Purpose: To declare the type of distance. - - enumeration TypeOfAttribute is - TOA_Line, - TOA_Dimension, - TOA_Wire, - TOA_Plane, - TOA_Vector, - TOA_UIso, - TOA_VIso, - TOA_Free, - TOA_UnFree, - TOA_Section, - TOA_Hidden, - TOA_Seen, - TOA_FirstAxis, - TOA_SecondAxis, - TOA_ThirdAxis; - - enumeration StandardDatum is SD_None,SD_Point,SD_Axis,SD_Trihedron,SD_PlaneTrihedron,SD_Line,SD_Circle,SD_Plane; - --- Purpose: Declares the type of standard datum of an Interactive Object. - - enumeration KindOfSurface is KOS_Plane, KOS_Cylinder, KOS_Cone, KOS_Sphere, KOS_Torus, - KOS_Revolution, KOS_Extrusion, KOS_OtherSurface; - --- Enumerations for dimensions management -- - - enumeration DisplaySpecialSymbol is DSS_No, DSS_Before, DSS_After; - ---Purpose: Specifies dimension special symbol display options - - enumeration DimensionSelectionMode is DSM_All, DSM_Line, DSM_Text; - ---Purpose: Specifies dimension selection modes. - - class Triangulation; - - imported ColoredShape; - imported TexturedShape; - - class InteractiveContext; - - class GraphicTool; - - class LocalContext; - - class LocalStatus; - - class GlobalStatus; - - deferred class InteractiveObject; - - ---Category: VARIOUS STANDARD INTERACTIVE OBJECTS - -- each type of Datum has a given signature. - -- the other interactive objects don't - -- implement this signature. - -- Mainly used for selection with Filters... - - ---Category: Datum - class Point; --signature 1 - class Axis; --signature 2 - class Trihedron; --signature 3 - class PlaneTrihedron; --signature 4 - class Line; --signature 5 - class Circle; --signature 6 - class Plane; --signature 7 - - - ---Category: Object of type Shape - class Shape; --signature 0 - - - ---Category: General Objects - class ConnectedInteractive; --signature 0 - class MultipleConnectedInteractive; --signature 1 - imported PointCloud; - - ---Category: DIMENSIONS AND RELATIONS - - class DimensionOwner; - - deferred class Relation; - deferred class EllipseRadiusDimension; - class MaxRadiusDimension; - class MinRadiusDimension; - imported LengthDimension; - imported AngleDimension; - imported RadiusDimension; - imported DiameterDimension; - class Chamf2dDimension; - class Chamf3dDimension; - class OffsetDimension; - class FixRelation; - class PerpendicularRelation; - class ParallelRelation; - class TangentRelation; - class ConcentricRelation; - class IdenticRelation; - class SymmetricRelation; -- axial symmetry - class MidPointRelation; -- equal distance from point - class EqualRadiusRelation; - class EqualDistanceRelation; - - - ---Category: FILTERS - - - class TypeFilter; - class SignatureFilter; - class ExclusionFilter; - class AttributeFilter; - class C0RegularityFilter; - class BadEdgeFilter; - - pointer PToContext to InteractiveContext from AIS; - - - - - class Selection; - - - ---Category: The Collections - - - imported ListOfInteractive; - - - imported ListIteratorOfListOfInteractive; - - imported SequenceOfInteractive; - - imported SequenceOfDimension; - - imported MapOfInteractive; - - imported MapIteratorOfMapOfInteractive; - - - imported DataMapofIntegerListOfinteractive; - - - imported DataMapIteratorOfDataMapofIntegerListOfinteractive; - -- for further management of layers - - imported DataMapOfIOStatus; - - imported DataMapIteratorOfDataMapOfIOStatus; - -- Management of interactiveObjects Status... - - imported IndexedDataMapOfOwnerPrs; - -- for dynamic selection management in local context... - - -- san: 18/04/2003 AIS_Selection class optimization - -- agv: 04/05/2003 Replace NCollection_List for CDL list - imported NListTransient; - imported NListIteratorOfListTransient; - imported NDataMapOfTransientIteratorOfListTransient; - -- service map for AIS_Selection class optimized logic - - imported DataMapOfILC; - - imported DataMapIteratorOfDataMapOfILC; - - imported DataMapOfSelStat; - - imported DataMapIteratorOfDataMapOfSelStat; - -- to tell if an object is sensitive to Standard Modes Of Selection.... - --- Methods for dimensions - - Nearest( aShape : Shape from TopoDS; - aPoint : Pnt from gp ) - returns Pnt from gp; - ---Purpose: - -- Returns the nearest point in a shape. This is used by - -- several classes in calculation of dimensions. - - Nearest (theLine : Lin from gp; - thePoint : Pnt from gp) - returns Pnt from gp; - ---Purpose: - -- @return the nearest point on the line. - - Nearest (theCurve : Curve from Geom; - thePoint : Pnt from gp; - theFirstPoint : Pnt from gp; - theLastPoint : Pnt from gp; - theNearestPoint : out Pnt from gp) - returns Boolean from Standard; - ---Purpose: - -- For the given point finds nearest point on the curve, - -- @return TRUE if found point is belongs to the curve - -- and FALSE otherwise. - - Farest( aShape : Shape from TopoDS; - aPoint : Pnt from gp ) - returns Pnt from gp; - - ComputeGeometry (theEdge : Edge from TopoDS; - theCurve : out Curve from Geom; - theFirstPnt : out Pnt from gp; - theLastPnt : out Pnt from gp) - ---Purpose: Used by 2d Relation only - -- Computes the 3d geometry of in the current WorkingPlane - -- and the extremities if any - -- Return TRUE if ok. - returns Boolean from Standard; - - ComputeGeometry (theEdge : Edge from TopoDS; - theCurve : out Curve from Geom; - theFirstPnt : out Pnt from gp; - theLastPnt : out Pnt from gp; - theIsInfinite : out Boolean from Standard) - ---Purpose: Used by dimensions only. - -- Computes the 3d geometry of . - -- Return TRUE if ok. - returns Boolean from Standard; - - ComputeGeometry (theEdge : Edge from TopoDS; - theCurve : out Curve from Geom; - theFirstPnt : out Pnt from gp; - theLastPnt : out Pnt from gp; - theExtCurve : out Curve from Geom; - theIsInfinite : out Boolean from Standard; - theIsOnPlane : out Boolean from Standard; - thePlane : Plane from Geom) - ---Purpose: Used by 2d Relation only - -- Computes the 3d geometry of in the current WorkingPlane - -- and the extremities if any. - -- If is not in the current plane, contains - -- the not projected curve associated to . - -- If is infinite, = true and the 2 - -- parameters and have no signification. - -- Return TRUE if ok. - returns Boolean from Standard; - - ComputeGeometry (theFirstEdge : Edge from TopoDS; - theSecondEdge : Edge from TopoDS; - theFirstCurve : out Curve from Geom; - theSecondCurve : out Curve from Geom; - theFirstPnt1 : out Pnt from gp; - theLastPnt1 : out Pnt from gp; - theFirstPnt2 : out Pnt from gp; - theLastPnt2 : out Pnt from gp; - thePlane : Plane from Geom) - ---Purpose: Used by 2d Relation only - -- Computes the 3d geometry of in the current WorkingPlane - -- and the extremities if any - -- Return TRUE if ok. - returns Boolean from Standard; - - ComputeGeometry (theFirstEdge : Edge from TopoDS; - theSecondEdge : Edge from TopoDS; - theFirstCurve : out Curve from Geom; - theSecondCurve : out Curve from Geom; - theFirstPnt1 : out Pnt from gp; - theLastPnt1 : out Pnt from gp; - theFirstPnt2 : out Pnt from gp; - theLastPnt2 : out Pnt from gp; - theIsinfinite1 : out Boolean from Standard; - theIsinfinite2 : out Boolean from Standard) - ---Purpose: Used by dimensions only.Computes the 3d geometry - -- of and and checks if they are infinite. - returns Boolean from Standard; - - ComputeGeometry (theFirstEdge : Edge from TopoDS; - theSecondEdge : Edge from TopoDS; - theExtIndex : out Integer from Standard; - theFirstCurve : out Curve from Geom; - theSecondCurve : out Curve from Geom; - theFirstPnt1 : out Pnt from gp; - theLastPnt1 : out Pnt from gp; - theFirstPnt2 : out Pnt from gp; - theLastPnt2 : out Pnt from gp; - theExtCurve : out Curve from Geom; - theIsinfinite1 : out Boolean from Standard; - theIsinfinite2 : out Boolean from Standard; - thePlane : Plane from Geom) - ---Purpose: Used by 2d Relation only Computes the 3d geometry - -- of and in the current Plane and the - -- extremities if any. Return in ExtCurve the 3d curve - -- (not projected in the plane) of the first edge if - -- =1 or of the 2nd edge if = 2. If - -- = 0, ExtCurve is Null. if there is an edge - -- external to the plane, is true if this - -- edge is infinite. So, the extremities of it are not - -- significant. Return TRUE if ok - returns Boolean from Standard; - - ComputeGeomCurve (aCurve : in out Curve from Geom; - first1 : Real from Standard; - last1 : Real from Standard; - FirstPnt1 : out Pnt from gp; - LastPnt1 : out Pnt from gp; - aPlane : Plane from Geom; - isOnPlane: out Boolean from Standard) - ---Purpose: Checks if aCurve belongs to aPlane; if not, projects aCurve in aPlane - -- and returns aCurve; - -- Return TRUE if ok - returns Boolean from Standard; - - ComputeGeometry (aVertex : Vertex from TopoDS; - point : out Pnt from gp; - aPlane : Plane from Geom; - isOnPlane: out Boolean from Standard) - returns Boolean from Standard; - - GetPlaneFromFace (aFace : Face from TopoDS; - aPlane : out Pln from gp; - aSurf : out Surface from Geom; - aSurfType : out KindOfSurface from AIS; - Offset : out Real from Standard) - returns Boolean from Standard; - ---Purpose: Tryes to get Plane from Face. Returns Surface of Face - -- in aSurf. Returns Standard_True and Plane of Face in - -- aPlane in following cases: - -- Face is Plane, Offset of Plane, - -- Extrusion of Line and Offset of Extrusion of Line - -- Returns pure type of Surface which can be: - -- Plane, Cylinder, Cone, Sphere, Torus, - -- SurfaceOfRevolution, SurfaceOfExtrusion - - InitFaceLength (aFace : Face from TopoDS; - aPlane : out Pln from gp; - aSurface : out Surface from Geom; - aSurfaceType : out KindOfSurface from AIS; - anOffset : out Real from Standard ); - - InitLengthBetweenCurvilinearFaces (theFirstFace : Face from TopoDS; - theSecondFace : Face from TopoDS; - theFirstSurf : in out Surface from Geom; - theSecondSurf : in out Surface from Geom; - theFirstAttach : out Pnt from gp; - theSecondAttach : out Pnt from gp; - theDirOnPlane : out Dir from gp); - ---Purpose: Finds attachment points on two curvilinear faces for length dimension. - -- @param thePlaneDir [in] the direction on the dimension plane to - -- compute the plane automatically. It will not be taken into account if - -- plane is defined by user. - - InitAngleBetweenPlanarFaces (theFirstFace : Face from TopoDS; - theSecondFace : Face from TopoDS; - theCenter : out Pnt from gp; - theFirstAttach : out Pnt from gp; - theSecondAttach : out Pnt from gp; - theIsFirstPointSet : Boolean from Standard = Standard_False) - returns Boolean from Standard; - ---Purpose: Finds three points for the angle dimension between - -- two planes. - - InitAngleBetweenCurvilinearFaces (theFirstFace : Face from TopoDS; - theSecondFace : Face from TopoDS; - theFirstSurfType : KindOfSurface from AIS; - theSecondSurfType : KindOfSurface from AIS; - theCenter : out Pnt from gp; - theFirstAttach : out Pnt from gp; - theSecondAttach : out Pnt from gp; - theIsFirstPointSet : Boolean from Standard = Standard_False) - returns Boolean from Standard; - ---Purpose: Finds three points for the angle dimension between - -- two curvilinear surfaces. - - ProjectPointOnPlane( aPoint : Pnt from gp; aPlane : Pln from gp ) - returns Pnt from gp; - - ProjectPointOnLine( aPoint : Pnt from gp; aLine : Lin from gp ) - returns Pnt from gp; - - TranslatePointToBound( aPoint : Pnt from gp; aDir : Dir from gp; aBndBox: Box from Bnd ) - returns Pnt from gp; - - InDomain( aFirstPar : Real from Standard; - aLastPar : Real from Standard; - anAttachPar : Real from Standard) - returns Boolean from Standard; - ---Purpose: returns True if point with anAttachPar is - -- in domain of arc - - NearestApex(elips : Elips from gp; - pApex : Pnt from gp; - nApex : Pnt from gp; - fpara : Real from Standard ; - lpara : Real from Standard ; - IsInDomain : out Boolean from Standard) - returns Pnt from gp; - ---Purpose: computes nearest to ellipse arc apex - - DistanceFromApex(elips : Elips from gp; - Apex : Pnt from gp; - par : Real from Standard ) - returns Real from Standard; - ---Purpose: computes length of ellipse arc in parametric units - - - ComputeProjEdgePresentation(aPres : Presentation from Prs3d; - aDrawer : Drawer from Prs3d; - anEdge : Edge from TopoDS; - ProjCurve: Curve from Geom; - FirstP : Pnt from gp; - LastP : Pnt from gp; - aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE; - aWidth : Real from Standard = 2; - aProjTOL : TypeOfLine from Aspect = Aspect_TOL_DASH; - aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT); - - ComputeProjVertexPresentation(aPres : Presentation from Prs3d; - aDrawer : Drawer from Prs3d; - aVertex : Vertex from TopoDS; - ProjPoint: Pnt from gp; - aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE; - aWidth : Real from Standard = 2; - aProjTOM : TypeOfMarker from Aspect = Aspect_TOM_PLUS; - aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT); - -end AIS; diff --git a/src/AIS/AIS.cxx b/src/AIS/AIS.cxx index 7bd61b9995..ea39f44522 100644 --- a/src/AIS/AIS.cxx +++ b/src/AIS/AIS.cxx @@ -14,35 +14,25 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include #include #include - -#include -#include +#include +#include +#include #include #include #include -#include -#include +#include +#include #include -#include - +#include #include #include - #include #include #include #include -#include -#include -#include -#include -#include -#include -#include #include #include #include @@ -53,10 +43,17 @@ #include #include #include +#include #include #include #include #include +#include +#include +#include +#include +#include +#include #include #include #include @@ -69,15 +66,19 @@ #include #include #include +#include #include #include #include #include #include #include -#include #include -#include +#include +#include +#include +#include +#include const Standard_Real SquareTolerance = Precision::SquareConfusion(); diff --git a/src/AIS/AIS.hxx b/src/AIS/AIS.hxx new file mode 100644 index 0000000000..55c0688803 --- /dev/null +++ b/src/AIS/AIS.hxx @@ -0,0 +1,380 @@ +// Created on: 1996-12-11 +// 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_HeaderFile +#define _AIS_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class gp_Pnt; +class TopoDS_Shape; +class gp_Lin; +class Geom_Curve; +class TopoDS_Edge; +class Geom_Plane; +class TopoDS_Vertex; +class TopoDS_Face; +class gp_Pln; +class Geom_Surface; +class gp_Dir; +class Bnd_Box; +class gp_Elips; +class Prs3d_Presentation; +class AIS_Triangulation; +class AIS_InteractiveContext; +class AIS_GraphicTool; +class AIS_LocalContext; +class AIS_LocalStatus; +class AIS_GlobalStatus; +class AIS_InteractiveObject; +class AIS_Point; +class AIS_Axis; +class AIS_Trihedron; +class AIS_PlaneTrihedron; +class AIS_Line; +class AIS_Circle; +class AIS_Plane; +class AIS_Shape; +class AIS_ConnectedInteractive; +class AIS_MultipleConnectedInteractive; +class AIS_DimensionOwner; +class AIS_Relation; +class AIS_EllipseRadiusDimension; +class AIS_MaxRadiusDimension; +class AIS_MinRadiusDimension; +class AIS_Chamf2dDimension; +class AIS_Chamf3dDimension; +class AIS_OffsetDimension; +class AIS_FixRelation; +class AIS_PerpendicularRelation; +class AIS_ParallelRelation; +class AIS_TangentRelation; +class AIS_ConcentricRelation; +class AIS_IdenticRelation; +class AIS_SymmetricRelation; +class AIS_MidPointRelation; +class AIS_EqualRadiusRelation; +class AIS_EqualDistanceRelation; +class AIS_TypeFilter; +class AIS_SignatureFilter; +class AIS_ExclusionFilter; +class AIS_AttributeFilter; +class AIS_C0RegularityFilter; +class AIS_BadEdgeFilter; +class AIS_Selection; + + +//! Application Interactive Services provide the means to +//! create links between an application GUI viewer and +//! the packages which are used to manage selection +//! and presentation. The tools AIS defined in order to +//! do this include different sorts of entities: both the +//! selectable viewable objects themselves and the +//! context and attribute managers to define their +//! selection and display. +//! To orient the user as he works in a modeling +//! environment, views and selections must be +//! comprehensible. There must be several different sorts +//! of selectable and viewable object defined. These must +//! also be interactive, that is, connecting graphic +//! representation and the underlying reference +//! geometry. These entities are called Interactive +//! Objects, and are divided into four types: +//! - the Datum +//! - the Relation +//! - the Object +//! - None. +//! The Datum groups together the construction elements +//! such as lines, circles, points, trihedra, plane trihedra, +//! planes and axes. +//! The Relation is made up of constraints on one or +//! more interactive shapes and the corresponding +//! reference geometry. For example, you might want to +//! constrain two edges in a parallel relation. This +//! contraint is considered as an object in its own right, +//! and is shown as a sensitive primitive. This takes the +//! graphic form of a perpendicular arrow marked with +//! the || symbol and lying between the two edges. +//! The Object type includes topological shapes, and +//! connections between shapes. +//! None, in order not to eliminate the object, tells the +//! application to look further until it finds an object +//! definition in its generation which is accepted. +//! Inside these categories, you have the possibility +//! of an additional characterization by means of a +//! signature. The signature provides an index to the +//! further characterization. By default, the Interactive +//! Object has a None type and a signature of 0 +//! (equivalent to None.) If you want to give a particular +//! type and signature to your interactive object, you must +//! redefine the two virtual methods: Type and Signature. +//! In the C++ inheritance structure of the package, each +//! class representing a specific Interactive Object +//! inherits AIS_InteractiveObject. Among these +//! inheriting classes, AIS_Relation functions as the +//! abstract mother class for tinheriting classes defining +//! display of specific relational constraints and types of +//! dimension. Some of these include: +//! - display of constraints based on relations of +//! symmetry, tangency, parallelism and concentricity +//! - display of dimensions for angles, offsets, +//! diameters, radii and chamfers. +//! No viewer can show everything at once with any +//! coherence or clarity. Views must be managed +//! carefully both sequentially and at any given instant. +//! Another function of the view is that of a context to +//! carry out design in. The design changes are applied +//! to the objects in the view and then extended to the +//! underlying reference geometry by a solver. To make +//! sense of this complicated visual data, several display +//! and selection tools are required. To facilitate +//! management, each object and each construction +//! element has a selection priority. There are also +//! means to modify the default priority. +//! To define an environment of dynamic detection, you +//! can use standard filter classes or create your own. A +//! filter questions the owner of the sensitive primitive in +//! local context to determine if it has the the desired +//! qualities. If it answers positively, it is kept. If not, it is rejected. +//! The standard filters supplied in AIS include: +//! AIS_AttributeFilter +//! AIS_SignatureFilter +//! AIS_TypeFilter. +//! Only the type filter can be used in the default +//! operating mode, the neutral point. The others can +//! only be used in open local contexts. +//! Neutral point and local context constitute the two +//! operating modes of the central entity which pilots +//! visualizations and selections, the Interactive Context. +//! It is linked to a main viewer and if you like, a trash bin +//! viewer as well. +//! The neutral point, which is the default mode, allows +//! you to easily visualize and select interactive objects +//! which have been loaded into the context. Opening +//! local contexts allows you to prepare and use a +//! temporary selection environment without disturbing +//! the neutral point. A set of functions allows you to +//! choose the interactive objects which you want to act +//! on, the selection modes which you want to activate, +//! and the temporary visualizations which you will +//! execute. When the operation is finished, you close the +//! current local context and return to the state in which +//! you were before opening it (neutral point or previous +//! local context). +//! An interactive object can have a certain number of +//! graphic attributes which are specific to it, such as +//! visualization mode, color, and material. By the same +//! token, the interactive context has a set of graphic +//! attributes, the Drawer which is valid by default for the +//! objects it controls. When an interactive object is +//! visualized, the required graphic attributes are first +//! taken from the object's own Drawer if one exists, or +//! from the context drawer for the others. +class AIS +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Returns the nearest point in a shape. This is used by + //! several classes in calculation of dimensions. + Standard_EXPORT static gp_Pnt Nearest (const TopoDS_Shape& aShape, const gp_Pnt& aPoint); + + + //! @return the nearest point on the line. + Standard_EXPORT static gp_Pnt Nearest (const gp_Lin& theLine, const gp_Pnt& thePoint); + + + //! For the given point finds nearest point on the curve, + //! @return TRUE if found point is belongs to the curve + //! and FALSE otherwise. + Standard_EXPORT static Standard_Boolean Nearest (const Handle(Geom_Curve)& theCurve, const gp_Pnt& thePoint, const gp_Pnt& theFirstPoint, const gp_Pnt& theLastPoint, gp_Pnt& theNearestPoint); + + Standard_EXPORT static gp_Pnt Farest (const TopoDS_Shape& aShape, const gp_Pnt& aPoint); + + //! Used by 2d Relation only + //! Computes the 3d geometry of in the current WorkingPlane + //! and the extremities if any + //! Return TRUE if ok. + Standard_EXPORT static Standard_Boolean ComputeGeometry (const TopoDS_Edge& theEdge, Handle(Geom_Curve)& theCurve, gp_Pnt& theFirstPnt, gp_Pnt& theLastPnt); + + //! Used by dimensions only. + //! Computes the 3d geometry of . + //! Return TRUE if ok. + Standard_EXPORT static Standard_Boolean ComputeGeometry (const TopoDS_Edge& theEdge, Handle(Geom_Curve)& theCurve, gp_Pnt& theFirstPnt, gp_Pnt& theLastPnt, Standard_Boolean& theIsInfinite); + + //! Used by 2d Relation only + //! Computes the 3d geometry of in the current WorkingPlane + //! and the extremities if any. + //! If is not in the current plane, contains + //! the not projected curve associated to . + //! If is infinite, = true and the 2 + //! parameters and have no signification. + //! Return TRUE if ok. + Standard_EXPORT static Standard_Boolean ComputeGeometry (const TopoDS_Edge& theEdge, Handle(Geom_Curve)& theCurve, gp_Pnt& theFirstPnt, gp_Pnt& theLastPnt, Handle(Geom_Curve)& theExtCurve, Standard_Boolean& theIsInfinite, Standard_Boolean& theIsOnPlane, const Handle(Geom_Plane)& thePlane); + + //! Used by 2d Relation only + //! Computes the 3d geometry of in the current WorkingPlane + //! and the extremities if any + //! Return TRUE if ok. + Standard_EXPORT static Standard_Boolean ComputeGeometry (const TopoDS_Edge& theFirstEdge, const TopoDS_Edge& theSecondEdge, Handle(Geom_Curve)& theFirstCurve, Handle(Geom_Curve)& theSecondCurve, gp_Pnt& theFirstPnt1, gp_Pnt& theLastPnt1, gp_Pnt& theFirstPnt2, gp_Pnt& theLastPnt2, const Handle(Geom_Plane)& thePlane); + + //! Used by dimensions only.Computes the 3d geometry + //! of and and checks if they are infinite. + Standard_EXPORT static Standard_Boolean ComputeGeometry (const TopoDS_Edge& theFirstEdge, const TopoDS_Edge& theSecondEdge, Handle(Geom_Curve)& theFirstCurve, Handle(Geom_Curve)& theSecondCurve, gp_Pnt& theFirstPnt1, gp_Pnt& theLastPnt1, gp_Pnt& theFirstPnt2, gp_Pnt& theLastPnt2, Standard_Boolean& theIsinfinite1, Standard_Boolean& theIsinfinite2); + + //! Used by 2d Relation only Computes the 3d geometry + //! of and in the current Plane and the + //! extremities if any. Return in ExtCurve the 3d curve + //! (not projected in the plane) of the first edge if + //! =1 or of the 2nd edge if = 2. If + //! = 0, ExtCurve is Null. if there is an edge + //! external to the plane, is true if this + //! edge is infinite. So, the extremities of it are not + //! significant. Return TRUE if ok + Standard_EXPORT static Standard_Boolean ComputeGeometry (const TopoDS_Edge& theFirstEdge, const TopoDS_Edge& theSecondEdge, Standard_Integer& theExtIndex, Handle(Geom_Curve)& theFirstCurve, Handle(Geom_Curve)& theSecondCurve, gp_Pnt& theFirstPnt1, gp_Pnt& theLastPnt1, gp_Pnt& theFirstPnt2, gp_Pnt& theLastPnt2, Handle(Geom_Curve)& theExtCurve, Standard_Boolean& theIsinfinite1, Standard_Boolean& theIsinfinite2, const Handle(Geom_Plane)& thePlane); + + //! Checks if aCurve belongs to aPlane; if not, projects aCurve in aPlane + //! and returns aCurve; + //! Return TRUE if ok + Standard_EXPORT static Standard_Boolean ComputeGeomCurve (Handle(Geom_Curve)& aCurve, const Standard_Real first1, const Standard_Real last1, gp_Pnt& FirstPnt1, gp_Pnt& LastPnt1, const Handle(Geom_Plane)& aPlane, Standard_Boolean& isOnPlane); + + Standard_EXPORT static Standard_Boolean ComputeGeometry (const TopoDS_Vertex& aVertex, gp_Pnt& point, const Handle(Geom_Plane)& aPlane, Standard_Boolean& isOnPlane); + + //! Tryes to get Plane from Face. Returns Surface of Face + //! in aSurf. Returns Standard_True and Plane of Face in + //! aPlane in following cases: + //! Face is Plane, Offset of Plane, + //! Extrusion of Line and Offset of Extrusion of Line + //! Returns pure type of Surface which can be: + //! Plane, Cylinder, Cone, Sphere, Torus, + //! SurfaceOfRevolution, SurfaceOfExtrusion + Standard_EXPORT static Standard_Boolean GetPlaneFromFace (const TopoDS_Face& aFace, gp_Pln& aPlane, Handle(Geom_Surface)& aSurf, AIS_KindOfSurface& aSurfType, Standard_Real& Offset); + + Standard_EXPORT static void InitFaceLength (const TopoDS_Face& aFace, gp_Pln& aPlane, Handle(Geom_Surface)& aSurface, AIS_KindOfSurface& aSurfaceType, Standard_Real& anOffset); + + //! Finds attachment points on two curvilinear faces for length dimension. + //! @param thePlaneDir [in] the direction on the dimension plane to + //! compute the plane automatically. It will not be taken into account if + //! plane is defined by user. + Standard_EXPORT static void InitLengthBetweenCurvilinearFaces (const TopoDS_Face& theFirstFace, const TopoDS_Face& theSecondFace, Handle(Geom_Surface)& theFirstSurf, Handle(Geom_Surface)& theSecondSurf, gp_Pnt& theFirstAttach, gp_Pnt& theSecondAttach, gp_Dir& theDirOnPlane); + + //! Finds three points for the angle dimension between + //! two planes. + Standard_EXPORT static Standard_Boolean InitAngleBetweenPlanarFaces (const TopoDS_Face& theFirstFace, const TopoDS_Face& theSecondFace, gp_Pnt& theCenter, gp_Pnt& theFirstAttach, gp_Pnt& theSecondAttach, const Standard_Boolean theIsFirstPointSet = Standard_False); + + //! Finds three points for the angle dimension between + //! two curvilinear surfaces. + Standard_EXPORT static Standard_Boolean InitAngleBetweenCurvilinearFaces (const TopoDS_Face& theFirstFace, const TopoDS_Face& theSecondFace, const AIS_KindOfSurface theFirstSurfType, const AIS_KindOfSurface theSecondSurfType, gp_Pnt& theCenter, gp_Pnt& theFirstAttach, gp_Pnt& theSecondAttach, const Standard_Boolean theIsFirstPointSet = Standard_False); + + Standard_EXPORT static gp_Pnt ProjectPointOnPlane (const gp_Pnt& aPoint, const gp_Pln& aPlane); + + Standard_EXPORT static gp_Pnt ProjectPointOnLine (const gp_Pnt& aPoint, const gp_Lin& aLine); + + Standard_EXPORT static gp_Pnt TranslatePointToBound (const gp_Pnt& aPoint, const gp_Dir& aDir, const Bnd_Box& aBndBox); + + //! returns True if point with anAttachPar is + //! in domain of arc + Standard_EXPORT static Standard_Boolean InDomain (const Standard_Real aFirstPar, const Standard_Real aLastPar, const Standard_Real anAttachPar); + + //! computes nearest to ellipse arc apex + Standard_EXPORT static gp_Pnt NearestApex (const gp_Elips& elips, const gp_Pnt& pApex, const gp_Pnt& nApex, const Standard_Real fpara, const Standard_Real lpara, Standard_Boolean& IsInDomain); + + //! computes length of ellipse arc in parametric units + Standard_EXPORT static Standard_Real DistanceFromApex (const gp_Elips& elips, const gp_Pnt& Apex, const Standard_Real par); + + Standard_EXPORT static void ComputeProjEdgePresentation (const Handle(Prs3d_Presentation)& aPres, const Handle(Prs3d_Drawer)& aDrawer, const TopoDS_Edge& anEdge, const Handle(Geom_Curve)& ProjCurve, const gp_Pnt& FirstP, const gp_Pnt& LastP, const Quantity_NameOfColor aColor = Quantity_NOC_PURPLE, const Standard_Real aWidth = 2, const Aspect_TypeOfLine aProjTOL = Aspect_TOL_DASH, const Aspect_TypeOfLine aCallTOL = Aspect_TOL_DOT); + + Standard_EXPORT static void ComputeProjVertexPresentation (const Handle(Prs3d_Presentation)& aPres, const Handle(Prs3d_Drawer)& aDrawer, const TopoDS_Vertex& aVertex, const gp_Pnt& ProjPoint, const Quantity_NameOfColor aColor = Quantity_NOC_PURPLE, const Standard_Real aWidth = 2, const Aspect_TypeOfMarker aProjTOM = Aspect_TOM_PLUS, const Aspect_TypeOfLine aCallTOL = Aspect_TOL_DOT); + + + + +protected: + + + + + +private: + + + + +friend class AIS_Triangulation; +friend class AIS_InteractiveContext; +friend class AIS_GraphicTool; +friend class AIS_LocalContext; +friend class AIS_LocalStatus; +friend class AIS_GlobalStatus; +friend class AIS_InteractiveObject; +friend class AIS_Point; +friend class AIS_Axis; +friend class AIS_Trihedron; +friend class AIS_PlaneTrihedron; +friend class AIS_Line; +friend class AIS_Circle; +friend class AIS_Plane; +friend class AIS_Shape; +friend class AIS_ConnectedInteractive; +friend class AIS_MultipleConnectedInteractive; +friend class AIS_DimensionOwner; +friend class AIS_Relation; +friend class AIS_EllipseRadiusDimension; +friend class AIS_MaxRadiusDimension; +friend class AIS_MinRadiusDimension; +friend class AIS_Chamf2dDimension; +friend class AIS_Chamf3dDimension; +friend class AIS_OffsetDimension; +friend class AIS_FixRelation; +friend class AIS_PerpendicularRelation; +friend class AIS_ParallelRelation; +friend class AIS_TangentRelation; +friend class AIS_ConcentricRelation; +friend class AIS_IdenticRelation; +friend class AIS_SymmetricRelation; +friend class AIS_MidPointRelation; +friend class AIS_EqualRadiusRelation; +friend class AIS_EqualDistanceRelation; +friend class AIS_TypeFilter; +friend class AIS_SignatureFilter; +friend class AIS_ExclusionFilter; +friend class AIS_AttributeFilter; +friend class AIS_C0RegularityFilter; +friend class AIS_BadEdgeFilter; +friend class AIS_Selection; + +}; + + + + + + + +#endif // _AIS_HeaderFile diff --git a/src/AIS/AIS_AttributeFilter.cdl b/src/AIS/AIS_AttributeFilter.cdl deleted file mode 100644 index eac4333224..0000000000 --- a/src/AIS/AIS_AttributeFilter.cdl +++ /dev/null @@ -1,104 +0,0 @@ --- Created on: 1997-03-04 --- 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. - -class AttributeFilter from AIS inherits Filter from SelectMgr - - ---Purpose: Selects Interactive Objects, which have the desired width or color. - -- The filter questions each Interactive Object in local - -- context to determine whether it has an non-null - -- owner, and if so, whether it has the required color - -- and width attributes. If the object returns true in each - -- case, it is kept. If not, it is rejected. - -- This filter is used only in an open local context. - -- In the Collector viewer, you can only locate - -- Interactive Objects, which answer positively to the - -- filters, which are in position when a local context is open. - -uses - NameOfColor from Quantity, - EntityOwner from SelectMgr - - -is - - Create returns AttributeFilter from AIS; - ---Purpose: - -- Constructs an empty attribute filter object. - -- This filter object determines whether selectable - -- interactive objects have a non-null owner. - - Create (aCol: NameOfColor from Quantity) - returns AttributeFilter from AIS; - ---Purpose: - -- Constructs an attribute filter object defined by the - -- color attribute aCol. - Create (aWidth : Real from Standard) - returns AttributeFilter from AIS; - ---Purpose: - -- Constructs an attribute filter object defined by the line - -- width attribute aWidth. - - HasColor(me) returns Boolean from Standard; - ---C++: inline - ---Purpose: - -- Indicates that the Interactive Object has the color - -- setting specified by the argument aCol at construction time. - - HasWidth(me) returns Boolean from Standard; - ---C++: inline - ---Purpose: - -- Indicates that the Interactive Object has the width - -- setting specified by the argument aWidth at - -- construction time. - - SetColor(me:mutable;aCol: NameOfColor from Quantity); - ---C++: inline - ---Purpose: Sets the color aCol. - -- This must be chosen from the list of colors in Quantity_NameOfColor. - - SetWidth(me:mutable;aWidth : Real from Standard); - ---C++: inline - ---Purpose: Sets the line width aWidth. - - UnsetColor(me:mutable); - ---C++: inline - ---Purpose: - -- Removes the setting for color from the filter. - - UnsetWidth(me:mutable); - ---C++: inline - ---Purpose: - -- Removes the setting for width from the filter. - - IsOk(me;anObj : EntityOwner from SelectMgr) - returns Boolean from Standard is redefined virtual; - ---Purpose: Indicates that the selected Interactive Object passes - -- the filter. The owner, anObj, can be either direct or - -- user. A direct owner is the corresponding - -- construction element, whereas a user is the - -- compound shape of which the entity forms a part. - -- If the Interactive Object returns Standard_True - -- when detected by the Local Context selector through - -- the mouse, the object is kept; if not, it is rejected. - - -fields - - myCol : NameOfColor from Quantity; - myWid : Real from Standard; - hasC,hasW : Boolean from Standard; - -end AttributeFilter; diff --git a/src/AIS/AIS_AttributeFilter.cxx b/src/AIS/AIS_AttributeFilter.cxx index 78b5b9dd6e..29b1652983 100644 --- a/src/AIS/AIS_AttributeFilter.cxx +++ b/src/AIS/AIS_AttributeFilter.cxx @@ -14,10 +14,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include #include - +#include +#include AIS_AttributeFilter::AIS_AttributeFilter(): hasC(Standard_False), diff --git a/src/AIS/AIS_AttributeFilter.hxx b/src/AIS/AIS_AttributeFilter.hxx new file mode 100644 index 0000000000..1709bf716e --- /dev/null +++ b/src/AIS/AIS_AttributeFilter.hxx @@ -0,0 +1,129 @@ +// Created on: 1997-03-04 +// 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_AttributeFilter_HeaderFile +#define _AIS_AttributeFilter_HeaderFile + +#include +#include + +#include +#include +#include +#include +class SelectMgr_EntityOwner; + + +class AIS_AttributeFilter; +DEFINE_STANDARD_HANDLE(AIS_AttributeFilter, SelectMgr_Filter) + +//! Selects Interactive Objects, which have the desired width or color. +//! The filter questions each Interactive Object in local +//! context to determine whether it has an non-null +//! owner, and if so, whether it has the required color +//! and width attributes. If the object returns true in each +//! case, it is kept. If not, it is rejected. +//! This filter is used only in an open local context. +//! In the Collector viewer, you can only locate +//! Interactive Objects, which answer positively to the +//! filters, which are in position when a local context is open. +class AIS_AttributeFilter : public SelectMgr_Filter +{ + +public: + + + + //! Constructs an empty attribute filter object. + //! This filter object determines whether selectable + //! interactive objects have a non-null owner. + Standard_EXPORT AIS_AttributeFilter(); + + + //! Constructs an attribute filter object defined by the + //! color attribute aCol. + Standard_EXPORT AIS_AttributeFilter(const Quantity_NameOfColor aCol); + + + //! Constructs an attribute filter object defined by the line + //! width attribute aWidth. + Standard_EXPORT AIS_AttributeFilter(const Standard_Real aWidth); + + + //! Indicates that the Interactive Object has the color + //! setting specified by the argument aCol at construction time. + Standard_Boolean HasColor() const; + + + //! Indicates that the Interactive Object has the width + //! setting specified by the argument aWidth at + //! construction time. + Standard_Boolean HasWidth() const; + + //! Sets the color aCol. + //! This must be chosen from the list of colors in Quantity_NameOfColor. + void SetColor (const Quantity_NameOfColor aCol); + + //! Sets the line width aWidth. + void SetWidth (const Standard_Real aWidth); + + + //! Removes the setting for color from the filter. + void UnsetColor(); + + + //! Removes the setting for width from the filter. + void UnsetWidth(); + + //! Indicates that the selected Interactive Object passes + //! the filter. The owner, anObj, can be either direct or + //! user. A direct owner is the corresponding + //! construction element, whereas a user is the + //! compound shape of which the entity forms a part. + //! If the Interactive Object returns Standard_True + //! when detected by the Local Context selector through + //! the mouse, the object is kept; if not, it is rejected. + Standard_EXPORT virtual Standard_Boolean IsOk (const Handle(SelectMgr_EntityOwner)& anObj) const Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_AttributeFilter,SelectMgr_Filter) + +protected: + + + + +private: + + + Quantity_NameOfColor myCol; + Standard_Real myWid; + Standard_Boolean hasC; + Standard_Boolean hasW; + + +}; + + +#include + + + + + +#endif // _AIS_AttributeFilter_HeaderFile diff --git a/src/AIS/AIS_Axis.cdl b/src/AIS/AIS_Axis.cdl deleted file mode 100644 index 7c2cb59d34..0000000000 --- a/src/AIS/AIS_Axis.cdl +++ /dev/null @@ -1,187 +0,0 @@ --- Created on: 1995-08-09 --- Created by: Arnaud BOUZY/Odile Olivier --- 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. - -class Axis from AIS inherits InteractiveObject from AIS - - ---Purpose: Locates the x, y and z axes in an Interactive Object. - -- These are used to orient it correctly in presentations - -- from different viewpoints, or to construct a revolved - -- shape, for example, from one of the axes. Conversely, - -- an axis can be created to build a revolved shape and - -- then situated relative to one of the axes of the view. - -uses - Line from Geom, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - NameOfColor from Quantity, - Color from Quantity, - Selection from SelectMgr, - Projector from Prs3d, - Transformation from Geom, - Pnt from gp, - Dir from gp, - LineAspect from Prs3d, - TypeOfAxis from AIS, - Axis2Placement from Geom, - Axis1Placement from Geom, - KindOfInteractive from AIS - -is - Create(aComponent : Line from Geom) - returns Axis from AIS; - --- Purpose: Initializes the line aComponent - - Create( aComponent : Axis2Placement from Geom; - anAxisType: TypeOfAxis from AIS) - ---Purpose: initializes the axis2 position - -- aComponent. The coordinate system used is right-handed. - returns Axis from AIS; - - Create(anAxis : Axis1Placement from Geom) - returns Axis from AIS; - ---Purpose: Initializes the axis1 position anAxis. - - Component(me) - ---Purpose: - -- Returns the axis entity aComponent and identifies it - -- as a component of a shape. - ---C++: inline - ---C++: return const & - returns any Line from Geom - is static; - - SetComponent(me: mutable;aComponent : Line from Geom) - is static; - ---Purpose: Sets the coordinates of the lin aComponent. - - Axis2Placement(me) - ---C++: inline - ---C++: return const & - ---Purpose: - -- Returns the position of axis2 and positions it by - -- identifying it as the x, y, or z axis and giving its - -- direction in 3D space. The coordinate system used is right-handed. - returns any Axis2Placement from Geom - is static; - - SetAxis2Placement(me: mutable; - aComponent : Axis2Placement from Geom; - anAxisType : TypeOfAxis from AIS) - is static; - ---Purpose: - -- Allows you to provide settings for aComponent:the - -- position and direction of an axis in 3D space. The - -- coordinate system used is right-handed. - - SetAxis1Placement(me: mutable; anAxis : Axis1Placement from Geom) - is static; - ---Purpose: Constructs a new line to serve as the axis anAxis in 3D space. - - TypeOfAxis (me) - ---C++: inline - ---Purpose: Returns the type of axis. - returns TypeOfAxis from AIS; - - SetTypeOfAxis (me : mutable;aTypeAxis: TypeOfAxis from AIS) - ---C++: inline - ---Purpose: - -- Constructs the entity aTypeAxis to stock information - -- concerning type of axis. - is static; - - IsXYZAxis (me) - ---C++: inline - ---Purpose: - -- Returns a signature of 2 for axis datums. When you - -- activate mode 2 by a signature, you pick AIS objects - -- of type AIS_Axis. - returns Boolean from Standard; - - AcceptDisplayMode(me;aMode:Integer from Standard) returns Boolean from Standard is redefined static; - ---Purpose: Returns true if the interactive object accepts the display mode aMode. - --- -- Methods from PresentableObject - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard = 0) - is redefined static private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard)is private; - - --- -- Methods from InteractiveObject - - Signature(me) returns Integer from Standard is redefined; - ---C++: inline - - Type(me) returns KindOfInteractive from AIS is redefined; - ---C++: inline - - SetColor(me :mutable; aColor : NameOfColor from Quantity) - is redefined static; - - SetColor(me :mutable; aColor : Color from Quantity) - is redefined static; - - SetWidth(me:mutable; aValue:Real from Standard) is redefined static; - - UnsetColor(me:mutable) is redefined static; - - UnsetWidth(me:mutable) is redefined static; - - - ComputeFields(me: mutable) - is private; - -fields - - myComponent : Line from Geom; - myAx2 : Axis2Placement from Geom; - myPfirst : Pnt from gp; - myPlast : Pnt from gp; - myTypeOfAxis : TypeOfAxis from AIS; - myIsXYZAxis : Boolean from Standard; - myDir : Dir from gp; - myVal : Real from Standard; - myText : CString from Standard; - myLineAspect : LineAspect from Prs3d; - -end Axis; diff --git a/src/AIS/AIS_Axis.cxx b/src/AIS/AIS_Axis.cxx index f7ad1d1149..05b1fb30a4 100644 --- a/src/AIS/AIS_Axis.cxx +++ b/src/AIS/AIS_Axis.cxx @@ -14,26 +14,33 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include #include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include +#include #include +#include #include -#include -#include -#include -#include -#include -#include #include //======================================================================= diff --git a/src/AIS/AIS_Axis.hxx b/src/AIS/AIS_Axis.hxx new file mode 100644 index 0000000000..4884034c77 --- /dev/null +++ b/src/AIS/AIS_Axis.hxx @@ -0,0 +1,175 @@ +// Created on: 1995-08-09 +// Created by: Arnaud BOUZY/Odile Olivier +// 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 _AIS_Axis_HeaderFile +#define _AIS_Axis_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Geom_Line; +class Geom_Axis2Placement; +class Prs3d_LineAspect; +class Geom_Axis1Placement; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; +class Quantity_Color; + + +class AIS_Axis; +DEFINE_STANDARD_HANDLE(AIS_Axis, AIS_InteractiveObject) + +//! Locates the x, y and z axes in an Interactive Object. +//! These are used to orient it correctly in presentations +//! from different viewpoints, or to construct a revolved +//! shape, for example, from one of the axes. Conversely, +//! an axis can be created to build a revolved shape and +//! then situated relative to one of the axes of the view. +class AIS_Axis : public AIS_InteractiveObject +{ + +public: + + + //! Initializes the line aComponent + Standard_EXPORT AIS_Axis(const Handle(Geom_Line)& aComponent); + + //! initializes the axis2 position + //! aComponent. The coordinate system used is right-handed. + Standard_EXPORT AIS_Axis(const Handle(Geom_Axis2Placement)& aComponent, const AIS_TypeOfAxis anAxisType); + + //! Initializes the axis1 position anAxis. + Standard_EXPORT AIS_Axis(const Handle(Geom_Axis1Placement)& anAxis); + + + //! Returns the axis entity aComponent and identifies it + //! as a component of a shape. + const Handle(Geom_Line)& Component() const; + + //! Sets the coordinates of the lin aComponent. + Standard_EXPORT void SetComponent (const Handle(Geom_Line)& aComponent); + + + //! Returns the position of axis2 and positions it by + //! identifying it as the x, y, or z axis and giving its + //! direction in 3D space. The coordinate system used is right-handed. + const Handle(Geom_Axis2Placement)& Axis2Placement() const; + + + //! Allows you to provide settings for aComponent:the + //! position and direction of an axis in 3D space. The + //! coordinate system used is right-handed. + Standard_EXPORT void SetAxis2Placement (const Handle(Geom_Axis2Placement)& aComponent, const AIS_TypeOfAxis anAxisType); + + //! Constructs a new line to serve as the axis anAxis in 3D space. + Standard_EXPORT void SetAxis1Placement (const Handle(Geom_Axis1Placement)& anAxis); + + //! Returns the type of axis. + AIS_TypeOfAxis TypeOfAxis() const; + + + //! Constructs the entity aTypeAxis to stock information + //! concerning type of axis. + void SetTypeOfAxis (const AIS_TypeOfAxis aTypeAxis); + + + //! Returns a signature of 2 for axis datums. When you + //! activate mode 2 by a signature, you pick AIS objects + //! of type AIS_Axis. + Standard_Boolean IsXYZAxis() const; + + //! Returns true if the interactive object accepts the display mode aMode. + Standard_EXPORT Standard_Boolean AcceptDisplayMode (const Standard_Integer aMode) const Standard_OVERRIDE; + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + virtual Standard_Integer Signature() const Standard_OVERRIDE; + + virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE; + + Standard_EXPORT void SetColor (const Quantity_NameOfColor aColor) Standard_OVERRIDE; + + Standard_EXPORT void SetColor (const Quantity_Color& aColor) Standard_OVERRIDE; + + Standard_EXPORT void SetWidth (const Standard_Real aValue) Standard_OVERRIDE; + + Standard_EXPORT void UnsetColor() Standard_OVERRIDE; + + Standard_EXPORT void UnsetWidth() Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_Axis,AIS_InteractiveObject) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode); + + Standard_EXPORT void ComputeFields(); + + Handle(Geom_Line) myComponent; + Handle(Geom_Axis2Placement) myAx2; + gp_Pnt myPfirst; + gp_Pnt myPlast; + AIS_TypeOfAxis myTypeOfAxis; + Standard_Boolean myIsXYZAxis; + gp_Dir myDir; + Standard_Real myVal; + Standard_CString myText; + Handle(Prs3d_LineAspect) myLineAspect; + + +}; + + +#include + + + + + +#endif // _AIS_Axis_HeaderFile diff --git a/src/AIS/AIS_BadEdgeFilter.cdl b/src/AIS/AIS_BadEdgeFilter.cdl deleted file mode 100644 index d14c60f637..0000000000 --- a/src/AIS/AIS_BadEdgeFilter.cdl +++ /dev/null @@ -1,57 +0,0 @@ --- Created on: 1998-03-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. - -class BadEdgeFilter from AIS inherits Filter from SelectMgr - - ---Purpose: A Class - -uses - - EntityOwner from SelectMgr, - Edge from TopoDS, - DataMapOfIntegerListOfShape from TopTools, - ShapeEnum from TopAbs - -is - Create - returns BadEdgeFilter from AIS; - --- Purpose: Constructs an empty filter object for bad edges. - ActsOn( me; aType : ShapeEnum from TopAbs ) - returns Boolean from Standard - is redefined; - - IsOk( me; EO : EntityOwner from SelectMgr ) - returns Boolean from Standard is redefined virtual; - - SetContour( me : mutable ; Index : Integer from Standard ); - ---Purpose: sets with current contour. used by - -- IsOk. - - AddEdge( me: mutable ; anEdge : Edge from TopoDS; - Index : Integer from Standard ); - ---Purpose: Adds an edge to the list of non-selectionnable - -- edges. - - RemoveEdges( me: mutable ; Index : Integer from Standard ); - ---Purpose: removes from the list of non-selectionnable edges - -- all edges in the contour . - -fields - - myBadEdges : DataMapOfIntegerListOfShape from TopTools; - myContour : Integer from Standard; - -end BadEdgeFilter; diff --git a/src/AIS/AIS_BadEdgeFilter.cxx b/src/AIS/AIS_BadEdgeFilter.cxx index 0a0b2fc901..80f78bb6d4 100644 --- a/src/AIS/AIS_BadEdgeFilter.cxx +++ b/src/AIS/AIS_BadEdgeFilter.cxx @@ -16,21 +16,19 @@ // - -#include - +#include +#include +#include #include -#include -#include +#include #include - - +#include +#include //======================================================================= //function : AIS_BadEdgeFilter //purpose : //======================================================================= - AIS_BadEdgeFilter::AIS_BadEdgeFilter() { myContour=0; diff --git a/src/AIS/AIS_BadEdgeFilter.hxx b/src/AIS/AIS_BadEdgeFilter.hxx new file mode 100644 index 0000000000..e83f8d4e6b --- /dev/null +++ b/src/AIS/AIS_BadEdgeFilter.hxx @@ -0,0 +1,86 @@ +// Created on: 1998-03-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_BadEdgeFilter_HeaderFile +#define _AIS_BadEdgeFilter_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +class SelectMgr_EntityOwner; +class TopoDS_Edge; + + +class AIS_BadEdgeFilter; +DEFINE_STANDARD_HANDLE(AIS_BadEdgeFilter, SelectMgr_Filter) + +//! A Class +class AIS_BadEdgeFilter : public SelectMgr_Filter +{ + +public: + + + //! Constructs an empty filter object for bad edges. + Standard_EXPORT AIS_BadEdgeFilter(); + + 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; + + //! sets with current contour. used by + //! IsOk. + Standard_EXPORT void SetContour (const Standard_Integer Index); + + //! Adds an edge to the list of non-selectionnable + //! edges. + Standard_EXPORT void AddEdge (const TopoDS_Edge& anEdge, const Standard_Integer Index); + + //! removes from the list of non-selectionnable edges + //! all edges in the contour . + Standard_EXPORT void RemoveEdges (const Standard_Integer Index); + + + + + DEFINE_STANDARD_RTTI(AIS_BadEdgeFilter,SelectMgr_Filter) + +protected: + + + + +private: + + + TopTools_DataMapOfIntegerListOfShape myBadEdges; + Standard_Integer myContour; + + +}; + + + + + + + +#endif // _AIS_BadEdgeFilter_HeaderFile diff --git a/src/AIS/AIS_C0RegularityFilter.cdl b/src/AIS/AIS_C0RegularityFilter.cdl deleted file mode 100644 index 38c61332cc..0000000000 --- a/src/AIS/AIS_C0RegularityFilter.cdl +++ /dev/null @@ -1,42 +0,0 @@ --- 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. - -class C0RegularityFilter from AIS inherits Filter from SelectMgr - - ---Purpose: - -uses - EntityOwner from SelectMgr, - Shape from TopoDS, - ShapeEnum from TopAbs, - MapOfShape from TopTools - -is - Create( aShape : Shape from TopoDS ) - returns C0RegularityFilter from AIS; - - ActsOn( me; aType : ShapeEnum from TopAbs ) - returns Boolean from Standard - is redefined; - - IsOk( me; EO : EntityOwner from SelectMgr ) - returns Boolean from Standard is redefined virtual; - -fields - - myMapOfEdges : MapOfShape from TopTools; - -end C0RegularityFilter; diff --git a/src/AIS/AIS_C0RegularityFilter.cxx b/src/AIS/AIS_C0RegularityFilter.cxx index 8e2562f459..85c91dc190 100644 --- a/src/AIS/AIS_C0RegularityFilter.cxx +++ b/src/AIS/AIS_C0RegularityFilter.cxx @@ -14,23 +14,24 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include -#include -#include +#include #include +#include +#include +#include #include - +#include +#include +#include +#include +#include +#include //======================================================================= //function : AIS_C0RegularityFilter //purpose : //======================================================================= - AIS_C0RegularityFilter::AIS_C0RegularityFilter(const TopoDS_Shape& aShape) { TopTools_IndexedDataMapOfShapeListOfShape SubShapes; diff --git a/src/AIS/AIS_C0RegularityFilter.hxx b/src/AIS/AIS_C0RegularityFilter.hxx new file mode 100644 index 0000000000..a43e53e50f --- /dev/null +++ b/src/AIS/AIS_C0RegularityFilter.hxx @@ -0,0 +1,71 @@ +// 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 +#include + +#include +#include +#include +#include +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_RTTI(AIS_C0RegularityFilter,SelectMgr_Filter) + +protected: + + + + +private: + + + TopTools_MapOfShape myMapOfEdges; + + +}; + + + + + + + +#endif // _AIS_C0RegularityFilter_HeaderFile diff --git a/src/AIS/AIS_Chamf2dDimension.cdl b/src/AIS/AIS_Chamf2dDimension.cdl deleted file mode 100644 index cadc7ef2e3..0000000000 --- a/src/AIS/AIS_Chamf2dDimension.cdl +++ /dev/null @@ -1,114 +0,0 @@ --- Created on: 1996-12-05 --- Created by: Flore Lantheaume/Odile Olivier --- 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. - -class Chamf2dDimension from AIS inherits Relation from AIS - - ---Purpose: A framework to define display of 2D chamfers. - -- A chamfer is displayed with arrows and text. The text - -- gives the length of the chamfer if it is a symmetrical - -- chamfer, or the angle if it is not. - - -uses - - PresentationManager3d from PrsMgr, - Presentation from Prs3d, - Selection from SelectMgr, - Shape from TopoDS, - Pnt from gp, - Plane from Geom, - Dir from gp, - Projector from Prs3d, - Transformation from Geom, - ExtendedString from TCollection, - ArrowSide from DsgPrs, - KindOfDimension from AIS - -is - Create (aFShape : Shape from TopoDS; - aPlane : Plane from Geom; - aVal : Real from Standard; - aText : ExtendedString from TCollection) - ---Purpose: Constructs the display object for 2D chamfers. - -- This object is defined by the face aFShape, the - -- dimension aVal, the plane aPlane and the text aText. - - returns Chamf2dDimension from AIS; - - Create (aFShape : Shape from TopoDS; - aPlane : Plane from Geom; - aVal : Real from Standard; - aText : ExtendedString from TCollection; - aPosition : Pnt from gp; - aSymbolPrs : ArrowSide from DsgPrs; - anArrowSize : Real from Standard = 0.0) - ---Purpose: Constructs the display object for 2D chamfers. - -- This object is defined by the face aFShape, the plane - -- aPlane, the dimension aVal, the position aPosition, - -- the type of arrow aSymbolPrs with the size - -- anArrowSize, and the text aText. - returns Chamf2dDimension from AIS; - - KindOfDimension(me) - ---Purpose: Indicates that we are concerned with a 2d length. - ---C++: inline - returns KindOfDimension from AIS - is redefined; - - IsMovable(me) returns Boolean from Standard - ---Purpose: Returns true if the 2d chamfer dimension is movable. - ---C++: inline - is redefined; - - -- Methods from PresentableObject - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0) - is redefined static private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard) - is redefined private; - - - -fields - - myPntAttach : Pnt from gp; - myDir : Dir from gp; - -end Chamf2dDimension; diff --git a/src/AIS/AIS_Chamf2dDimension.cxx b/src/AIS/AIS_Chamf2dDimension.cxx index 878843a471..f6d79207cd 100644 --- a/src/AIS/AIS_Chamf2dDimension.cxx +++ b/src/AIS/AIS_Chamf2dDimension.cxx @@ -14,49 +14,41 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include - -#include - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include +#include +#include #include +#include #include - +#include +#include +#include +#include +#include +#include #include #include +#include #include - -#include - -#include - #include - -#include -#include - -#include - -#include - -#include #include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : Constructor diff --git a/src/AIS/AIS_Chamf2dDimension.hxx b/src/AIS/AIS_Chamf2dDimension.hxx new file mode 100644 index 0000000000..bc184d40e7 --- /dev/null +++ b/src/AIS/AIS_Chamf2dDimension.hxx @@ -0,0 +1,114 @@ +// Created on: 1996-12-05 +// Created by: Flore Lantheaume/Odile Olivier +// 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_Chamf2dDimension_HeaderFile +#define _AIS_Chamf2dDimension_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class Geom_Plane; +class TCollection_ExtendedString; +class gp_Pnt; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; + + +class AIS_Chamf2dDimension; +DEFINE_STANDARD_HANDLE(AIS_Chamf2dDimension, AIS_Relation) + +//! A framework to define display of 2D chamfers. +//! A chamfer is displayed with arrows and text. The text +//! gives the length of the chamfer if it is a symmetrical +//! chamfer, or the angle if it is not. +class AIS_Chamf2dDimension : public AIS_Relation +{ + +public: + + + //! Constructs the display object for 2D chamfers. + //! This object is defined by the face aFShape, the + //! dimension aVal, the plane aPlane and the text aText. + Standard_EXPORT AIS_Chamf2dDimension(const TopoDS_Shape& aFShape, const Handle(Geom_Plane)& aPlane, const Standard_Real aVal, const TCollection_ExtendedString& aText); + + //! Constructs the display object for 2D chamfers. + //! This object is defined by the face aFShape, the plane + //! aPlane, the dimension aVal, the position aPosition, + //! the type of arrow aSymbolPrs with the size + //! anArrowSize, and the text aText. + Standard_EXPORT AIS_Chamf2dDimension(const TopoDS_Shape& aFShape, const Handle(Geom_Plane)& aPlane, const Standard_Real aVal, const TCollection_ExtendedString& aText, const gp_Pnt& aPosition, const DsgPrs_ArrowSide aSymbolPrs, const Standard_Real anArrowSize = 0.0); + + //! Indicates that we are concerned with a 2d length. + virtual AIS_KindOfDimension KindOfDimension() const Standard_OVERRIDE; + + //! Returns true if the 2d chamfer dimension is movable. + virtual Standard_Boolean IsMovable() const Standard_OVERRIDE; + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_Chamf2dDimension,AIS_Relation) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode) Standard_OVERRIDE; + + gp_Pnt myPntAttach; + gp_Dir myDir; + + +}; + + +#include + + + + + +#endif // _AIS_Chamf2dDimension_HeaderFile diff --git a/src/AIS/AIS_Chamf3dDimension.cdl b/src/AIS/AIS_Chamf3dDimension.cdl deleted file mode 100644 index dec2f896d6..0000000000 --- a/src/AIS/AIS_Chamf3dDimension.cdl +++ /dev/null @@ -1,110 +0,0 @@ --- Created on: 1996-12-05 --- Created by: Odile Olivier --- 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. - -class Chamf3dDimension from AIS inherits Relation from AIS - - ---Purpose: A framework to define display of 3D chamfers. - -- A chamfer is displayed with arrows and text. The text - -- gives the length of the chamfer if it is a symmetrical - -- chamfer, or the angle if it is not. - - -uses - - PresentationManager3d from PrsMgr, - Presentation from Prs3d, - Selection from SelectMgr, - Shape from TopoDS, - Pnt from gp, - Dir from gp, - Projector from Prs3d, - Transformation from Geom, - ExtendedString from TCollection, - ArrowSide from DsgPrs, - KindOfDimension from AIS - -is - Create (aFShape : Shape from TopoDS; - aVal : Real from Standard; - aText : ExtendedString from TCollection) - ---Purpose: Constructs a display object for 3D chamfers. - -- This object is defined by the shape aFShape, the - -- dimension aVal and the text aText. - returns Chamf3dDimension from AIS; - - Create (aFShape : Shape from TopoDS; - aVal : Real from Standard; - aText : ExtendedString from TCollection; - aPosition : Pnt from gp; - aSymbolPrs : ArrowSide from DsgPrs; - anArrowSize : Real from Standard = 0.0) - ---Purpose: Constructs a display object for 3D chamfers. - -- This object is defined by the shape aFShape, the - -- dimension aVal, the text aText, the point of origin of - -- the chamfer aPosition, the type of arrow aSymbolPrs - -- with the size anArrowSize. - returns Chamf3dDimension from AIS; - - KindOfDimension(me) - ---Purpose: Indicates that we are concerned with a 3d length. - ---C++: inline - returns KindOfDimension from AIS - is redefined; - - IsMovable(me) returns Boolean from Standard - ---C++: inline - ---Purpose: Returns true if the 3d chamfer dimension is movable. - is redefined; - - -- Methods from PresentableObject - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0) - is redefined static private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard) - is redefined private; - - - -fields - - myPntAttach : Pnt from gp; - myDir : Dir from gp; - -end Chamf3dDimension; diff --git a/src/AIS/AIS_Chamf3dDimension.cxx b/src/AIS/AIS_Chamf3dDimension.cxx index 3d7d183d19..58adb7ad9d 100644 --- a/src/AIS/AIS_Chamf3dDimension.cxx +++ b/src/AIS/AIS_Chamf3dDimension.cxx @@ -14,49 +14,40 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include - -#include - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include +#include +#include #include +#include #include - +#include +#include +#include +#include +#include #include #include +#include #include - -#include - -#include - #include - -#include -#include - -#include - -#include - -#include #include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : Constructor diff --git a/src/AIS/AIS_Chamf3dDimension.hxx b/src/AIS/AIS_Chamf3dDimension.hxx new file mode 100644 index 0000000000..876a87e615 --- /dev/null +++ b/src/AIS/AIS_Chamf3dDimension.hxx @@ -0,0 +1,113 @@ +// Created on: 1996-12-05 +// Created by: Odile Olivier +// 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_Chamf3dDimension_HeaderFile +#define _AIS_Chamf3dDimension_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class TCollection_ExtendedString; +class gp_Pnt; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; + + +class AIS_Chamf3dDimension; +DEFINE_STANDARD_HANDLE(AIS_Chamf3dDimension, AIS_Relation) + +//! A framework to define display of 3D chamfers. +//! A chamfer is displayed with arrows and text. The text +//! gives the length of the chamfer if it is a symmetrical +//! chamfer, or the angle if it is not. +class AIS_Chamf3dDimension : public AIS_Relation +{ + +public: + + + //! Constructs a display object for 3D chamfers. + //! This object is defined by the shape aFShape, the + //! dimension aVal and the text aText. + Standard_EXPORT AIS_Chamf3dDimension(const TopoDS_Shape& aFShape, const Standard_Real aVal, const TCollection_ExtendedString& aText); + + //! Constructs a display object for 3D chamfers. + //! This object is defined by the shape aFShape, the + //! dimension aVal, the text aText, the point of origin of + //! the chamfer aPosition, the type of arrow aSymbolPrs + //! with the size anArrowSize. + Standard_EXPORT AIS_Chamf3dDimension(const TopoDS_Shape& aFShape, const Standard_Real aVal, const TCollection_ExtendedString& aText, const gp_Pnt& aPosition, const DsgPrs_ArrowSide aSymbolPrs, const Standard_Real anArrowSize = 0.0); + + //! Indicates that we are concerned with a 3d length. + virtual AIS_KindOfDimension KindOfDimension() const Standard_OVERRIDE; + + //! Returns true if the 3d chamfer dimension is movable. + virtual Standard_Boolean IsMovable() const Standard_OVERRIDE; + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_Chamf3dDimension,AIS_Relation) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode) Standard_OVERRIDE; + + gp_Pnt myPntAttach; + gp_Dir myDir; + + +}; + + +#include + + + + + +#endif // _AIS_Chamf3dDimension_HeaderFile diff --git a/src/AIS/AIS_Circle.cdl b/src/AIS/AIS_Circle.cdl deleted file mode 100644 index ad53755106..0000000000 --- a/src/AIS/AIS_Circle.cdl +++ /dev/null @@ -1,166 +0,0 @@ --- Created on: 1997-01-21 --- Created by: Prestataire Christiane ARMAND --- 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. - -class Circle from AIS inherits InteractiveObject from AIS - - ---Purpose: Constructs circle datums to be used in construction of - -- composite shapes. - -uses - Circle from Geom, - Point from Geom, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - NameOfColor from Quantity, - Color from Quantity, - Selection from SelectMgr, - Projector from Prs3d, - Transformation from Geom, - Line from AIS, - KindOfInteractive from AIS - - -is - Create(aCircle : Circle from Geom) - returns Circle from AIS; - ---Purpose: Initializes this algorithm for constructing AIS circle - -- datums initializes the circle aCircle - Create(theCircle : Circle from Geom; - theUStart : Real from Standard; - theUEnd : Real from Standard; - theIsFilledCircleSens : Boolean from Standard = Standard_False) - returns Circle from AIS; - ---Purpose: Initializes this algorithm for constructing AIS circle datums. - -- Initializes the circle theCircle, the arc - -- starting point theUStart, the arc ending point theUEnd, - -- and the type of sensitivity theIsFilledCircleSens. - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard = 0) - is redefined static private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard)is private; - - --- Methods from InteractiveObject - - - Signature(me) returns Integer from Standard is redefined; - ---C++: inline - ---Purpose: Returns index 6 by default. - - Type(me) returns KindOfInteractive from AIS is redefined; - ---C++: inline - ---Purpose: Indicates that the type of Interactive Object is a datum. - - Circle(me) returns any Circle from Geom; - ---C++: inline - ---C++: return const & - ---Purpose: Returns the circle component defined in SetCircle. - - Parameters(me; u1,u2 : in out Real from Standard); - ---C++: inline - ---Purpose: - -- Constructs instances of the starting point and the end - -- point parameters, u1 and u2. - - SetCircle(me:mutable;aCircle : Circle from Geom); - ---C++: inline - ---Purpose: Allows you to provide settings for the circle datum aCircle. - - SetFirstParam(me:mutable;u:Real); - ---C++: inline - ---Purpose: Allows you to set the parameter u for the starting point of an arc. - - SetLastParam(me:mutable;u:Real); - ---C++: inline - ---Purpose: Allows you to provide the parameter u for the end point of an arc. - - SetColor(me :mutable; aColor : NameOfColor from Quantity) - is redefined static; - --- Purpose: Assigns the color aColor to the solid line boundary of the circle datum. - SetColor(me :mutable; aColor : Color from Quantity) - is redefined static; - - SetWidth(me:mutable; aValue:Real from Standard) - is redefined static; - ---Purpose: Assigns the width aValue to the solid line boundary of the circle datum. - UnsetColor(me:mutable) - is redefined static; - ---Purpose: Removes color from the solid line boundary of the circle datum. - UnsetWidth(me:mutable) - is redefined static; - ---Purpose: Removes width settings from the solid line boundary of the circle datum. - - IsFilledCircleSens (me) returns Boolean from Standard; - ---C++: inline - ---Purpose: Returns the type of sensitivity for the circle; - - SetFilledCircleSens (me: mutable; - theIsFilledCircleSens : Boolean from Standard); - ---C++: inline - ---Purpose: Sets the type of sensitivity for the circle. If theIsFilledCircleSens set to Standard_True - -- then the whole circle will be detectable, otherwise only the boundary of the circle. - - ComputeCircle(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - ComputeArc(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - ComputeCircleSelection(me: mutable; - aSelection : Selection from SelectMgr) - is private; - - ComputeArcSelection(me: mutable; - aSelection : Selection from SelectMgr) - is private; - -fields - - myComponent : Circle from Geom; - myUStart : Real from Standard; - myUEnd : Real from Standard; - myCircleIsArc : Boolean from Standard; - myIsFilledCircleSens : Boolean from Standard; - -end Circle ; diff --git a/src/AIS/AIS_Circle.cxx b/src/AIS/AIS_Circle.cxx index e2dae1d21b..b24feb215a 100644 --- a/src/AIS/AIS_Circle.cxx +++ b/src/AIS/AIS_Circle.cxx @@ -14,23 +14,28 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include #include -#include -#include +#include +#include +#include +#include #include #include -#include +#include +#include +#include +#include +#include +#include #include #include -#include +#include #include +#include #include -#include -#include -#include -#include -#include //======================================================================= //function : AIS_Circle diff --git a/src/AIS/AIS_Circle.hxx b/src/AIS/AIS_Circle.hxx new file mode 100644 index 0000000000..e772807402 --- /dev/null +++ b/src/AIS/AIS_Circle.hxx @@ -0,0 +1,155 @@ +// Created on: 1997-01-21 +// Created by: Prestataire Christiane ARMAND +// 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_Circle_HeaderFile +#define _AIS_Circle_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class Geom_Circle; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; +class Quantity_Color; + + +class AIS_Circle; +DEFINE_STANDARD_HANDLE(AIS_Circle, AIS_InteractiveObject) + +//! Constructs circle datums to be used in construction of +//! composite shapes. +class AIS_Circle : public AIS_InteractiveObject +{ + +public: + + + //! Initializes this algorithm for constructing AIS circle + //! datums initializes the circle aCircle + Standard_EXPORT AIS_Circle(const Handle(Geom_Circle)& aCircle); + + //! Initializes this algorithm for constructing AIS circle datums. + //! Initializes the circle theCircle, the arc + //! starting point theUStart, the arc ending point theUEnd, + //! and the type of sensitivity theIsFilledCircleSens. + Standard_EXPORT AIS_Circle(const Handle(Geom_Circle)& theCircle, const Standard_Real theUStart, const Standard_Real theUEnd, const Standard_Boolean theIsFilledCircleSens = Standard_False); + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + //! Returns index 6 by default. + virtual Standard_Integer Signature() const Standard_OVERRIDE; + + //! Indicates that the type of Interactive Object is a datum. + virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE; + + //! Returns the circle component defined in SetCircle. + const Handle(Geom_Circle)& Circle() const; + + + //! Constructs instances of the starting point and the end + //! point parameters, u1 and u2. + void Parameters (Standard_Real& u1, Standard_Real& u2) const; + + //! Allows you to provide settings for the circle datum aCircle. + void SetCircle (const Handle(Geom_Circle)& aCircle); + + //! Allows you to set the parameter u for the starting point of an arc. + void SetFirstParam (const Standard_Real u); + + //! Allows you to provide the parameter u for the end point of an arc. + void SetLastParam (const Standard_Real u); + + //! Assigns the color aColor to the solid line boundary of the circle datum. + Standard_EXPORT void SetColor (const Quantity_NameOfColor aColor) Standard_OVERRIDE; + + Standard_EXPORT void SetColor (const Quantity_Color& aColor) Standard_OVERRIDE; + + //! Assigns the width aValue to the solid line boundary of the circle datum. + Standard_EXPORT void SetWidth (const Standard_Real aValue) Standard_OVERRIDE; + + //! Removes color from the solid line boundary of the circle datum. + Standard_EXPORT void UnsetColor() Standard_OVERRIDE; + + //! Removes width settings from the solid line boundary of the circle datum. + Standard_EXPORT void UnsetWidth() Standard_OVERRIDE; + + //! Returns the type of sensitivity for the circle; + Standard_Boolean IsFilledCircleSens() const; + + //! Sets the type of sensitivity for the circle. If theIsFilledCircleSens set to Standard_True + //! then the whole circle will be detectable, otherwise only the boundary of the circle. + void SetFilledCircleSens (const Standard_Boolean theIsFilledCircleSens); + + + + + DEFINE_STANDARD_RTTI(AIS_Circle,AIS_InteractiveObject) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode); + + Standard_EXPORT void ComputeCircle (const Handle(Prs3d_Presentation)& aPresentation); + + Standard_EXPORT void ComputeArc (const Handle(Prs3d_Presentation)& aPresentation); + + Standard_EXPORT void ComputeCircleSelection (const Handle(SelectMgr_Selection)& aSelection); + + Standard_EXPORT void ComputeArcSelection (const Handle(SelectMgr_Selection)& aSelection); + + Handle(Geom_Circle) myComponent; + Standard_Real myUStart; + Standard_Real myUEnd; + Standard_Boolean myCircleIsArc; + Standard_Boolean myIsFilledCircleSens; + + +}; + + +#include + + + + + +#endif // _AIS_Circle_HeaderFile diff --git a/src/AIS/AIS_ClearMode.hxx b/src/AIS/AIS_ClearMode.hxx new file mode 100644 index 0000000000..a94a7540f1 --- /dev/null +++ b/src/AIS/AIS_ClearMode.hxx @@ -0,0 +1,35 @@ +// Created on: 1996-12-11 +// 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_ClearMode_HeaderFile +#define _AIS_ClearMode_HeaderFile + +//! Declares which entities in an opened local context +//! are to be cleared of mode settings. Temporary +//! graphic presentations such as those for sub-shapes, +//! for example, are only created for the selection +//! process. By means of these enumerations, they can +//! be cleared from local context. +enum AIS_ClearMode +{ +AIS_CM_All, +AIS_CM_Interactive, +AIS_CM_Filters, +AIS_CM_StandardModes, +AIS_CM_TemporaryShapePrs +}; + +#endif // _AIS_ClearMode_HeaderFile diff --git a/src/AIS/AIS_ConcentricRelation.cdl b/src/AIS/AIS_ConcentricRelation.cdl deleted file mode 100644 index 57f9569a45..0000000000 --- a/src/AIS/AIS_ConcentricRelation.cdl +++ /dev/null @@ -1,101 +0,0 @@ --- Created on: 1996-12-05 --- Created by: Flore Lantheaume/Odile Olivier --- 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. - -class ConcentricRelation from AIS inherits Relation from AIS - - ---Purpose: A framework to define a constraint by a relation of - -- concentricity between two or more interactive datums. - -- The display of this constraint is also defined. - -- A plane is used to create an axis along which the - -- relation of concentricity can be extended. - -uses - - PresentationManager3d from PrsMgr, - Presentation from Prs3d, - Selection from SelectMgr, - Shape from TopoDS, - Pnt from gp, - Dir from gp, - Projector from Prs3d, - Transformation from Geom, - Plane from Geom - -is - Create (aFShape : Shape from TopoDS; - aSShape : Shape from TopoDS; - aPlane : Plane from Geom) - ---Purpose: Constructs the display object for concentric relations - -- between shapes. - -- This object is defined by the two shapes, aFShape - -- and aSShape and the plane aPlane. - -- aPlane is provided to create an axis along which the - -- relation of concentricity can be extended. - returns ConcentricRelation from AIS; - - -- Methods from PresentableObject - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0) - is redefined static private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - - ComputeTwoEdgesConcentric(me:mutable; - aPresentationManager: Presentation from Prs3d) - is private; - - ComputeEdgeVertexConcentric(me:mutable; - aPresentationManager: Presentation from Prs3d) - is private; - - ComputeTwoVerticesConcentric(me:mutable; - aPresentationManager: Presentation from Prs3d) - is private; - - -- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard) - is redefined private; - -fields - - myCenter : Pnt from gp; - myRad : Real from Standard; - myDir : Dir from gp; - myPnt : Pnt from gp; - -end ConcentricRelation; diff --git a/src/AIS/AIS_ConcentricRelation.cxx b/src/AIS/AIS_ConcentricRelation.cxx index ee87e19aab..b1e5c6fc09 100644 --- a/src/AIS/AIS_ConcentricRelation.cxx +++ b/src/AIS/AIS_ConcentricRelation.cxx @@ -14,38 +14,37 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include - -#include -#include -#include -#include - -#include - -#include +#include +#include #include - -#include +#include #include -#include -#include -#include +#include +#include +#include #include -#include +#include +#include #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include //======================================================================= //function : Constructor //purpose : //======================================================================= - AIS_ConcentricRelation::AIS_ConcentricRelation( const TopoDS_Shape& aFShape, const TopoDS_Shape& aSShape, diff --git a/src/AIS/AIS_ConcentricRelation.hxx b/src/AIS/AIS_ConcentricRelation.hxx new file mode 100644 index 0000000000..086a18b13d --- /dev/null +++ b/src/AIS/AIS_ConcentricRelation.hxx @@ -0,0 +1,107 @@ +// Created on: 1996-12-05 +// Created by: Flore Lantheaume/Odile Olivier +// 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_ConcentricRelation_HeaderFile +#define _AIS_ConcentricRelation_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class Geom_Plane; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; + + +class AIS_ConcentricRelation; +DEFINE_STANDARD_HANDLE(AIS_ConcentricRelation, AIS_Relation) + +//! A framework to define a constraint by a relation of +//! concentricity between two or more interactive datums. +//! The display of this constraint is also defined. +//! A plane is used to create an axis along which the +//! relation of concentricity can be extended. +class AIS_ConcentricRelation : public AIS_Relation +{ + +public: + + + //! Constructs the display object for concentric relations + //! between shapes. + //! This object is defined by the two shapes, aFShape + //! and aSShape and the plane aPlane. + //! aPlane is provided to create an axis along which the + //! relation of concentricity can be extended. + Standard_EXPORT AIS_ConcentricRelation(const TopoDS_Shape& aFShape, const TopoDS_Shape& aSShape, const Handle(Geom_Plane)& aPlane); + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_ConcentricRelation,AIS_Relation) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeTwoEdgesConcentric (const Handle(Prs3d_Presentation)& aPresentationManager); + + Standard_EXPORT void ComputeEdgeVertexConcentric (const Handle(Prs3d_Presentation)& aPresentationManager); + + Standard_EXPORT void ComputeTwoVerticesConcentric (const Handle(Prs3d_Presentation)& aPresentationManager); + + Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode) Standard_OVERRIDE; + + gp_Pnt myCenter; + Standard_Real myRad; + gp_Dir myDir; + gp_Pnt myPnt; + + +}; + + + + + + + +#endif // _AIS_ConcentricRelation_HeaderFile diff --git a/src/AIS/AIS_ConnectStatus.hxx b/src/AIS/AIS_ConnectStatus.hxx new file mode 100644 index 0000000000..2e8cd59c5d --- /dev/null +++ b/src/AIS/AIS_ConnectStatus.hxx @@ -0,0 +1,38 @@ +// Created on: 1996-12-11 +// 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_ConnectStatus_HeaderFile +#define _AIS_ConnectStatus_HeaderFile + +//! Gives the status of connection of an Interactive +//! Object. This will be one of the following: +//! - No connection +//! - Connection +//! - Transformation +//! - Both connection and transformation +//! This enumeration is used in +//! AIS_ConnectedInteractive. Transform indicates +//! that the Interactive Object reference geometry has +//! changed location relative to the reference geometry. +enum AIS_ConnectStatus +{ +AIS_CS_None, +AIS_CS_Connection, +AIS_CS_Transform, +AIS_CS_Both +}; + +#endif // _AIS_ConnectStatus_HeaderFile diff --git a/src/AIS/AIS_ConnectedInteractive.cdl b/src/AIS/AIS_ConnectedInteractive.cdl deleted file mode 100644 index e4b8a41d93..0000000000 --- a/src/AIS/AIS_ConnectedInteractive.cdl +++ /dev/null @@ -1,173 +0,0 @@ --- 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. - -class ConnectedInteractive from AIS inherits InteractiveObject from AIS - - ---Purpose: 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. - -uses - Location from TopLoc, - Shape from TopoDS, - Transformation from Geom, - PresentationManager3d from PrsMgr, - Presentation from Prs3d, - TypeOfPresentation3d from PrsMgr, - Selection from SelectMgr, - Projector from Prs3d, - KindOfInteractive from AIS, - Trsf from gp -raises - NotImplemented from Standard - -is - - Create (aTypeOfPresentation3d: TypeOfPresentation3d from PrsMgr = PrsMgr_TOP_AllView) - returns ConnectedInteractive from AIS; - ---Purpose: - -- Disconnects the previous view and sets highlight - -- mode to 0. This highlights the wireframe presentation - -- aTypeOfPresentation3d. - -- Top_AllView deactivates hidden line removal. - - Type(me) returns KindOfInteractive from AIS - is redefined virtual; - ---Purpose: Returns KOI_Object - - Signature(me) returns Integer from Standard - is redefined virtual; - ---Purpose: Returns 1 - - - Connect(me : mutable; - anotherIObj : InteractiveObject from AIS) is virtual; - ---Purpose: Establishes the connection between the Connected - -- Interactive Object, anotherIobj, and its reference. - - - Connect(me:mutable; - anotherIobj: InteractiveObject from AIS; - aLocation : Trsf from gp) is virtual; - ---Purpose: Establishes the connection between the Connected - -- Interactive Object, anotherIobj, and its reference. - -- Locates instance in aLocation. - - - HasConnection(me) returns Boolean from Standard; - ---C++: inline - ---Purpose: - -- Returns true if there is a connection established - -- between the presentation and its source reference. - - ConnectedTo(me) returns any InteractiveObject from AIS; - ---C++: inline - ---C++: return const& - ---Purpose: - -- Returns the connection with the reference Interactive Object. - - - Disconnect(me:mutable); - ---Purpose: Clears the connection with a source reference. The - -- presentation will no longer be displayed. - -- Warning Must be done before deleting the presentation. - - Compute(me : mutable; - aPresentationManager : PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard = 0) - ---Level: Public - ---Purpose: 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. - is redefined virtual private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined virtual private; - ---Purpose: Computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined virtual private; - ---Purpose: Computes the presentation according to a point of view - -- given by . - - ComputeSelection(me:mutable; theSelection : Selection from SelectMgr; - theMode : Integer) is redefined virtual private; - ---Level: Public - ---Purpose: Generates sensitive entities by copying - -- them from myReference selection, creates and sets an entity - -- owner for this entities and adds them to theSelection - - computeSubShapeSelection (me:mutable; theSelection : Selection from SelectMgr; - theMode : Integer) is private; - ---Level: Public - ---Purpose: 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 - - AcceptShapeDecomposition(me) returns Boolean from Standard is - redefined virtual; - ---C++: inline - ---Purpose: Informs the graphic context that the interactive Object - -- may be decomposed into sub-shapes for dynamic selection. - - - updateShape(me:mutable;WithLocation:Boolean from Standard = Standard_True) - is static private; - - Compute(me:mutable; - aProjector : Projector from Prs3d; - aPresentation: Presentation from Prs3d; - aShape : Shape from TopoDS) - is private; - ---Purpose: Computes the presentation according to a point of view - -- given by . - -fields - - myReference : InteractiveObject from AIS is protected; -- reference object - myShape : Shape from TopoDS; -- used for HLR - -end ConnectedInteractive; - - diff --git a/src/AIS/AIS_ConnectedInteractive.cxx b/src/AIS/AIS_ConnectedInteractive.cxx index 79e1228970..77bb0b85f0 100644 --- a/src/AIS/AIS_ConnectedInteractive.cxx +++ b/src/AIS/AIS_ConnectedInteractive.cxx @@ -14,37 +14,36 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include - +#include +#include +#include +#include +#include +#include #include #include - -#include - +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include #include #include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include - - //======================================================================= //function : AIS_ConnectedInteractive //purpose : diff --git a/src/AIS/AIS_ConnectedInteractive.hxx b/src/AIS/AIS_ConnectedInteractive.hxx new file mode 100644 index 0000000000..fa1c99f42f --- /dev/null +++ b/src/AIS/AIS_ConnectedInteractive.hxx @@ -0,0 +1,167 @@ +// 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 +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class AIS_InteractiveObject; +class Standard_NotImplemented; +class gp_Trsf; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; +class TopoDS_Shape; + + +class AIS_ConnectedInteractive; +DEFINE_STANDARD_HANDLE(AIS_ConnectedInteractive, AIS_InteractiveObject) + +//! 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 +{ + +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 + Standard_EXPORT virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE; + + //! Returns 1 + Standard_EXPORT virtual Standard_Integer Signature() const Standard_OVERRIDE; + + //! Establishes the connection between the Connected + //! Interactive Object, anotherIobj, and its reference. + Standard_EXPORT virtual void Connect (const Handle(AIS_InteractiveObject)& anotherIObj); + + //! Establishes the connection between the Connected + //! Interactive Object, anotherIobj, and its reference. + //! Locates instance in aLocation. + Standard_EXPORT virtual void Connect (const Handle(AIS_InteractiveObject)& anotherIobj, const gp_Trsf& aLocation); + + + //! Returns true if there is a connection established + //! between the presentation and its source reference. + Standard_Boolean HasConnection() const; + + + //! Returns the connection with the reference Interactive Object. + const Handle(AIS_InteractiveObject)& ConnectedTo() const; + + //! 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; + + + + + DEFINE_STANDARD_RTTI(AIS_ConnectedInteractive,AIS_InteractiveObject) + +protected: + + + Handle(AIS_InteractiveObject) myReference; + + +private: + + + //! 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_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + //! Computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + //! Computes the presentation according to a point of view + //! given by . + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) 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); + + //! Computes the presentation according to a point of view + //! given by . + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation, const TopoDS_Shape& aShape); + + TopoDS_Shape myShape; + + +}; + + +#include + + + + + +#endif // _AIS_ConnectedInteractive_HeaderFile diff --git a/src/AIS/AIS_DimensionOwner.cdl b/src/AIS/AIS_DimensionOwner.cdl deleted file mode 100644 index 77eafebf2e..0000000000 --- a/src/AIS/AIS_DimensionOwner.cdl +++ /dev/null @@ -1,78 +0,0 @@ --- Created on: 1996-12-05 --- Created by: Odile Olivier --- 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. - -class DimensionOwner from AIS inherits EntityOwner from SelectMgr - - ---Purpose: The owner is the entity which makes it possible to link - -- the sensitive primitives and the reference shapes that - -- you want to detect. It stocks the various pieces of - -- information which make it possible to find objects. An - -- owner has a priority which you can modulate, so as to - -- make one entity more selectable than another. You - -- might want to make edges more selectable than - -- faces, for example. In that case, you could attribute sa - -- higher priority to the one compared to the other. An - -- edge, could have priority 5, for example, and a face, - -- priority 4. The default priority is 5. - -uses - - SelectableObject from SelectMgr, - PresentationManager from PrsMgr, - PresentationManager3d from PrsMgr, - NameOfColor from Quantity, - DimensionSelectionMode from AIS - -is - - Create (theSelObject : SelectableObject; - theSelMode : DimensionSelectionMode from AIS; - thePriority : Integer from Standard = 0) - returns DimensionOwner from AIS; - ---Purpose: - -- Initializes the dimension owner, theSO, and attributes it - -- the priority, thePriority. - - SelectionMode (me) - returns DimensionSelectionMode from AIS; - - HilightWithColor (me : mutable; - thePM : PresentationManager3d from PrsMgr; - theColor : NameOfColor from Quantity; - theMode : Integer from Standard = 0) - is redefined virtual; - - IsHilighted (me; - thePM : PresentationManager from PrsMgr; - theMode : Integer from Standard =0) - returns Boolean from Standard is redefined virtual; - ---Purpose: Returns true if an object with the selection mode - -- aMode is highlighted in the presentation manager aPM. - - Hilight(me : mutable; - thePM : PresentationManager from PrsMgr; - theMode : Integer from Standard =0) is redefined virtual; - - Unhilight(me : mutable; - thePM : PresentationManager from PrsMgr; - theMode : Integer from Standard =0) is redefined virtual; - ---Purpose: Removes highlighting from the selected part of dimension. - -fields - - mySelectionMode : DimensionSelectionMode from AIS; - -end DimensionOwner; diff --git a/src/AIS/AIS_DimensionOwner.cxx b/src/AIS/AIS_DimensionOwner.cxx index 0a8fbecd87..849ad18674 100755 --- a/src/AIS/AIS_DimensionOwner.cxx +++ b/src/AIS/AIS_DimensionOwner.cxx @@ -14,11 +14,13 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include +#include +#include #include - #include #include diff --git a/src/AIS/AIS_DimensionOwner.hxx b/src/AIS/AIS_DimensionOwner.hxx new file mode 100644 index 0000000000..b3b45d1d7a --- /dev/null +++ b/src/AIS/AIS_DimensionOwner.hxx @@ -0,0 +1,95 @@ +// Created on: 1996-12-05 +// Created by: Odile Olivier +// 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_DimensionOwner_HeaderFile +#define _AIS_DimensionOwner_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +class SelectMgr_SelectableObject; +class PrsMgr_PresentationManager; + + +class AIS_DimensionOwner; +DEFINE_STANDARD_HANDLE(AIS_DimensionOwner, SelectMgr_EntityOwner) + +//! The owner is the entity which makes it possible to link +//! the sensitive primitives and the reference shapes that +//! you want to detect. It stocks the various pieces of +//! information which make it possible to find objects. An +//! owner has a priority which you can modulate, so as to +//! make one entity more selectable than another. You +//! might want to make edges more selectable than +//! faces, for example. In that case, you could attribute sa +//! higher priority to the one compared to the other. An +//! edge, could have priority 5, for example, and a face, +//! priority 4. The default priority is 5. +class AIS_DimensionOwner : public SelectMgr_EntityOwner +{ + +public: + + + + //! Initializes the dimension owner, theSO, and attributes it + //! the priority, thePriority. + Standard_EXPORT AIS_DimensionOwner(const Handle(SelectMgr_SelectableObject)& theSelObject, const AIS_DimensionSelectionMode theSelMode, const Standard_Integer thePriority = 0); + + Standard_EXPORT AIS_DimensionSelectionMode SelectionMode() const; + + Standard_EXPORT virtual void HilightWithColor (const Handle(PrsMgr_PresentationManager3d)& thePM, const Quantity_NameOfColor theColor, const Standard_Integer theMode = 0) Standard_OVERRIDE; + + //! Returns true if an object with the selection mode + //! aMode is highlighted in the presentation manager aPM. + Standard_EXPORT virtual Standard_Boolean IsHilighted (const Handle(PrsMgr_PresentationManager)& thePM, const Standard_Integer theMode = 0) const Standard_OVERRIDE; + + Standard_EXPORT virtual void Hilight (const Handle(PrsMgr_PresentationManager)& thePM, const Standard_Integer theMode = 0) Standard_OVERRIDE; + + //! Removes highlighting from the selected part of dimension. + Standard_EXPORT virtual void Unhilight (const Handle(PrsMgr_PresentationManager)& thePM, const Standard_Integer theMode = 0) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_DimensionOwner,SelectMgr_EntityOwner) + +protected: + + + + +private: + + + AIS_DimensionSelectionMode mySelectionMode; + + +}; + + + + + + + +#endif // _AIS_DimensionOwner_HeaderFile diff --git a/src/AIS/AIS_DimensionSelectionMode.hxx b/src/AIS/AIS_DimensionSelectionMode.hxx new file mode 100644 index 0000000000..e8c088499f --- /dev/null +++ b/src/AIS/AIS_DimensionSelectionMode.hxx @@ -0,0 +1,28 @@ +// Created on: 1996-12-11 +// 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_DimensionSelectionMode_HeaderFile +#define _AIS_DimensionSelectionMode_HeaderFile + +//! Specifies dimension selection modes. +enum AIS_DimensionSelectionMode +{ +AIS_DSM_All, +AIS_DSM_Line, +AIS_DSM_Text +}; + +#endif // _AIS_DimensionSelectionMode_HeaderFile diff --git a/src/AIS/AIS_DisplayMode.hxx b/src/AIS/AIS_DisplayMode.hxx new file mode 100644 index 0000000000..d2df93e3c0 --- /dev/null +++ b/src/AIS/AIS_DisplayMode.hxx @@ -0,0 +1,31 @@ +// Created on: 1996-12-11 +// 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_DisplayMode_HeaderFile +#define _AIS_DisplayMode_HeaderFile + + +//! Sets display modes other than neutral point ones, +//! for interactive objects. The possibilities include: +//! - wireframe, +//! - shaded, +enum AIS_DisplayMode +{ +AIS_WireFrame, +AIS_Shaded +}; + +#endif // _AIS_DisplayMode_HeaderFile diff --git a/src/AIS/AIS_DisplaySpecialSymbol.hxx b/src/AIS/AIS_DisplaySpecialSymbol.hxx new file mode 100644 index 0000000000..6ba30a7422 --- /dev/null +++ b/src/AIS/AIS_DisplaySpecialSymbol.hxx @@ -0,0 +1,28 @@ +// Created on: 1996-12-11 +// 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_DisplaySpecialSymbol_HeaderFile +#define _AIS_DisplaySpecialSymbol_HeaderFile + +//! Specifies dimension special symbol display options +enum AIS_DisplaySpecialSymbol +{ +AIS_DSS_No, +AIS_DSS_Before, +AIS_DSS_After +}; + +#endif // _AIS_DisplaySpecialSymbol_HeaderFile diff --git a/src/AIS/AIS_DisplayStatus.hxx b/src/AIS/AIS_DisplayStatus.hxx new file mode 100644 index 0000000000..030dd73923 --- /dev/null +++ b/src/AIS/AIS_DisplayStatus.hxx @@ -0,0 +1,36 @@ +// Created on: 1996-12-11 +// 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_DisplayStatus_HeaderFile +#define _AIS_DisplayStatus_HeaderFile + + +//! To give the display status of an Interactive Object. +//! This will be one of the following: +//! - DS_Displayed: the Interactive Object is +//! displayed in the main viewer; +//! - DS_Erased: the Interactive Object is hidden in main viewer; +//! - DS_Temporary: the Interactive Object is temporarily displayed; +//! - DS_None: the Interactive Object is nowhere displayed. +enum AIS_DisplayStatus +{ +AIS_DS_Displayed, +AIS_DS_Erased, +AIS_DS_Temporary, +AIS_DS_None +}; + +#endif // _AIS_DisplayStatus_HeaderFile diff --git a/src/AIS/AIS_EllipseRadiusDimension.cdl b/src/AIS/AIS_EllipseRadiusDimension.cdl deleted file mode 100644 index 68932531a8..0000000000 --- a/src/AIS/AIS_EllipseRadiusDimension.cdl +++ /dev/null @@ -1,86 +0,0 @@ --- Created on: 1998-01-22 --- Created by: Sergey ZARITCHNY --- 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. - -deferred class EllipseRadiusDimension from AIS inherits Relation from AIS - - ---Purpose: - -- Computes geometry ( basis curve and plane of dimension) - -- for input shape aShape from TopoDS - -- Root class for MinRadiusDimension and MaxRadiusDimension -uses - Shape from TopoDS, - Elips from gp, - Pnt from gp, - Pln from gp, - Curve from Geom, - OffsetCurve from Geom, - Ellipse from Geom, - Plane from Geom, - Surface from Geom, - ExtendedString from TCollection, - KindOfSurface from AIS, - KindOfDimension from AIS - -is - Initialize(aShape : Shape from TopoDS; - aText : ExtendedString from TCollection); - - -- Ellipse radius dimension of a Shape which can be Edge - -- or Face (planar or cylindrical(surface of extrusion or - -- surface of offset)) - - - - KindOfDimension(me) returns KindOfDimension from AIS - is redefined; - - IsMovable(me) returns Boolean from Standard - is redefined; - - --- --- Computation private methods --- - - ComputeGeometry( me: mutable ) ; --- is private; - - ComputeFaceGeometry(me: mutable) - is private; - - ComputeCylFaceGeometry(me: mutable; - aSurfType : KindOfSurface from AIS; - aSurf : Surface from Geom; - Offset : Real from Standard ) - is private; - - ComputePlanarFaceGeometry(me: mutable) - is private; - - ComputeEdgeGeometry(me: mutable) - is private; - -fields - - myEllipse : Elips from gp is protected; - myFirstPar : Real from Standard is protected; - myLastPar : Real from Standard is protected; - myIsAnArc : Boolean from Standard is protected; - myOffsetCurve : OffsetCurve from Geom is protected; - myOffset : Real from Standard is protected; - myIsOffset : Boolean from Standard is protected; - -end EllipseRadiusDimension; diff --git a/src/AIS/AIS_EllipseRadiusDimension.cxx b/src/AIS/AIS_EllipseRadiusDimension.cxx index 7047974644..7f88c818c2 100644 --- a/src/AIS/AIS_EllipseRadiusDimension.cxx +++ b/src/AIS/AIS_EllipseRadiusDimension.cxx @@ -14,49 +14,42 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include +#include +#include +#include +#include #include #include - -#include - -#include -#include - +#include #include -#include +#include +#include #include #include -#include -#include -#include #include -#include -#include +#include +#include #include - -#include -#include -#include +#include #include #include -#include #include - -#include - +#include +#include +#include +#include #include - +#include +#include #include +#include +#include //======================================================================= //function : AIS_EllipseRadiusDimension //purpose : //======================================================================= - AIS_EllipseRadiusDimension::AIS_EllipseRadiusDimension(const TopoDS_Shape& aShape, const TCollection_ExtendedString& aText) :AIS_Relation() diff --git a/src/AIS/AIS_EllipseRadiusDimension.hxx b/src/AIS/AIS_EllipseRadiusDimension.hxx new file mode 100644 index 0000000000..ff522087b6 --- /dev/null +++ b/src/AIS/AIS_EllipseRadiusDimension.hxx @@ -0,0 +1,94 @@ +// Created on: 1998-01-22 +// Created by: Sergey ZARITCHNY +// 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_EllipseRadiusDimension_HeaderFile +#define _AIS_EllipseRadiusDimension_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +class Geom_OffsetCurve; +class TopoDS_Shape; +class TCollection_ExtendedString; +class Geom_Surface; + + +class AIS_EllipseRadiusDimension; +DEFINE_STANDARD_HANDLE(AIS_EllipseRadiusDimension, AIS_Relation) + + +//! Computes geometry ( basis curve and plane of dimension) +//! for input shape aShape from TopoDS +//! Root class for MinRadiusDimension and MaxRadiusDimension +class AIS_EllipseRadiusDimension : public AIS_Relation +{ + +public: + + + Standard_EXPORT virtual AIS_KindOfDimension KindOfDimension() const Standard_OVERRIDE; + + Standard_EXPORT virtual Standard_Boolean IsMovable() const Standard_OVERRIDE; + + Standard_EXPORT void ComputeGeometry(); + + + + + DEFINE_STANDARD_RTTI(AIS_EllipseRadiusDimension,AIS_Relation) + +protected: + + + Standard_EXPORT AIS_EllipseRadiusDimension(const TopoDS_Shape& aShape, const TCollection_ExtendedString& aText); + + gp_Elips myEllipse; + Standard_Real myFirstPar; + Standard_Real myLastPar; + Standard_Boolean myIsAnArc; + Handle(Geom_OffsetCurve) myOffsetCurve; + Standard_Real myOffset; + Standard_Boolean myIsOffset; + + +private: + + + Standard_EXPORT void ComputeFaceGeometry(); + + Standard_EXPORT void ComputeCylFaceGeometry (const AIS_KindOfSurface aSurfType, const Handle(Geom_Surface)& aSurf, const Standard_Real Offset); + + Standard_EXPORT void ComputePlanarFaceGeometry(); + + Standard_EXPORT void ComputeEdgeGeometry(); + + + +}; + + + + + + + +#endif // _AIS_EllipseRadiusDimension_HeaderFile diff --git a/src/AIS/AIS_EqualDistanceRelation.cdl b/src/AIS/AIS_EqualDistanceRelation.cdl deleted file mode 100644 index fe9a1cb1d0..0000000000 --- a/src/AIS/AIS_EqualDistanceRelation.cdl +++ /dev/null @@ -1,195 +0,0 @@ --- Created on: 1998-01-24 --- 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. - -class EqualDistanceRelation from AIS inherits Relation from AIS - - ---Purpose: A framework to display equivalent distances between - -- shapes and a given plane. - -- The distance is the length of a projection from the - -- shape to the plane. - -- These distances are used to compare shapes by this vector alone. - -uses - Shape from TopoDS, - Plane from Geom, - PresentationManager3d from PrsMgr, - Drawer from Prs3d, - Presentation from Prs3d, - Projector from Prs3d, - Transformation from Geom, - Selection from SelectMgr, - Pnt from gp, - ExtendedString from TCollection, - Edge from TopoDS, - Vertex from TopoDS, - Box from Bnd, - Dir from gp, - ArrowSide from DsgPrs, - TypeOfDist from AIS - -is - Create( aShape1 : Shape from TopoDS; - aShape2 : Shape from TopoDS; - aShape3 : Shape from TopoDS; - aShape4 : Shape from TopoDS; - aPlane : Plane from Geom ) - ---Purpose: Constructs a framework to display equivalent - -- distances between the shapes aShape1, aShape2, - -- aShape3, aShape4 and the plane aPlane. - -- The distance is the length of a projection from the - -- shape to the plane. - returns EqualDistanceRelation from AIS; - - SetShape3( me: mutable; aShape : Shape from TopoDS ) - is static; - ---Purpose: - -- Sets the shape aShape to be used as the shape - -- aShape3 in the framework created at construction time. - ---C++: inline - - Shape3(me) returns Shape from TopoDS - is static; - ---Purpose: - -- Returns the shape aShape3 from the framework - -- created at construction time. - ---C++: return const & - ---C++: inline - - SetShape4( me: mutable; aShape : Shape from TopoDS ) - is static; - ---C++: inline - ---Purpose: - -- Sets the shape aShape to be used as the shape - -- aShape4 in the framework created at construction time. - - Shape4(me) returns Shape from TopoDS - is static; - ---C++: return const & - ---C++: inline - ---Purpose: - -- Returns the shape aShape4 from the framework - -- created at construction time. - --- Methods from PresentableObject - - Compute( me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0 ) - is redefined static private; - - Compute( me : mutable; - aProjector : Projector from Prs3d; - aPresentation : Presentation from Prs3d ) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: Computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection( me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard) - is private; --- ota -- begin - ComputeTwoEdgesLength (myclass; - aPresentation : Presentation from Prs3d; - aDrawer : Drawer from Prs3d; - ArrowSize : Real from Standard; - FirstEdge : Edge from TopoDS; - SecondEdge : Edge from TopoDS; - Plane : Plane from Geom; - AutomaticPos : Boolean from Standard; - IsSetBndBox : Boolean from Standard; - BndBox : Box from Bnd; - Position : out Pnt from gp; - FirstAttach : out Pnt from gp; - SecondAttach : out Pnt from gp; - FirstExtreme : out Pnt from gp; - SecondExtreme : out Pnt from gp; - SymbolPrs : out ArrowSide from DsgPrs ); - ---Purpose: Computes the location of an intreval between - -- between two edges. FirstAttach , SecondAttach - -- are the returned extreme points of the interval. - - ComputeTwoVerticesLength(myclass; - aPresentation : Presentation from Prs3d; - aDrawer : Drawer from Prs3d; - ArrowSize : Real from Standard; - FirstVertex : Vertex from TopoDS; - SecondVertex : Vertex from TopoDS; - Plane : Plane from Geom; - AutomaticPos : Boolean from Standard; - IsSetBndBox : Boolean from Standard; - BndBox : Box from Bnd; - TypeDist : TypeOfDist from AIS; - Position : out Pnt from gp; - FirstAttach : out Pnt from gp; - SecondAttach : out Pnt from gp; - FirstExtreme : out Pnt from gp; - SecondExtreme : out Pnt from gp; - SymbolPrs : out ArrowSide from DsgPrs ); - ---Purpose: Computes the interval position between two vertexs. FirstAttach, - -- SecondAttach are the returned extreme points of the interval. - - ComputeOneEdgeOneVertexLength(myclass; - aPresentation : Presentation from Prs3d; - aDrawer : Drawer from Prs3d; - ArrowSize : Real from Standard; - FirstShape : Shape from TopoDS; - SecondShape : Shape from TopoDS; - Plane : Plane from Geom; - AutomaticPos : Boolean from Standard; - IsSetBndBox : Boolean from Standard; - BndBox : Box from Bnd; - Position : out Pnt from gp; - FirstAttach : out Pnt from gp; - SecondAttach : out Pnt from gp; - FirstExtreme : out Pnt from gp; - SecondExtreme : out Pnt from gp; - SymbolPrs : out ArrowSide from DsgPrs ); - ---Purpose: Compute the interval location between a vertex and an edge. Edge may be - -- a line or a circle. - --- ota -- end - -fields - - myShape3 : Shape from TopoDS; - myShape4 : Shape from TopoDS; - - myAttachPoint1 : Pnt from gp; -- the start points of constraint curves - myAttachPoint2 : Pnt from gp; - myAttachPoint3 : Pnt from gp; - myAttachPoint4 : Pnt from gp; - - myPoint1 : Pnt from gp; -- the end points constraint curves - myPoint2 : Pnt from gp; - myPoint3 : Pnt from gp; - myPoint4 : Pnt from gp; - -end EqualDistanceRelation; diff --git a/src/AIS/AIS_EqualDistanceRelation.cxx b/src/AIS/AIS_EqualDistanceRelation.cxx index a72181fd48..a66c0a507a 100644 --- a/src/AIS/AIS_EqualDistanceRelation.cxx +++ b/src/AIS/AIS_EqualDistanceRelation.cxx @@ -14,38 +14,44 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include -#include +#include #include -#include -#include -#include -#include -#include -#include -#include +#include +#include #include #include #include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include -#include +#include +#include +#include #include -#include -#include +#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + //======================================================================= //function : AIS_EqualDistanceRelation //purpose : //======================================================================= - AIS_EqualDistanceRelation::AIS_EqualDistanceRelation( const TopoDS_Shape& aShape1, const TopoDS_Shape& aShape2, const TopoDS_Shape& aShape3, diff --git a/src/AIS/AIS_EqualDistanceRelation.hxx b/src/AIS/AIS_EqualDistanceRelation.hxx new file mode 100644 index 0000000000..3866740f5b --- /dev/null +++ b/src/AIS/AIS_EqualDistanceRelation.hxx @@ -0,0 +1,148 @@ +// Created on: 1998-01-24 +// 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_EqualDistanceRelation_HeaderFile +#define _AIS_EqualDistanceRelation_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class Geom_Plane; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; +class TopoDS_Edge; +class Bnd_Box; +class gp_Pnt; +class TopoDS_Vertex; + + +class AIS_EqualDistanceRelation; +DEFINE_STANDARD_HANDLE(AIS_EqualDistanceRelation, AIS_Relation) + +//! A framework to display equivalent distances between +//! shapes and a given plane. +//! The distance is the length of a projection from the +//! shape to the plane. +//! These distances are used to compare shapes by this vector alone. +class AIS_EqualDistanceRelation : public AIS_Relation +{ + +public: + + + //! Constructs a framework to display equivalent + //! distances between the shapes aShape1, aShape2, + //! aShape3, aShape4 and the plane aPlane. + //! The distance is the length of a projection from the + //! shape to the plane. + Standard_EXPORT AIS_EqualDistanceRelation(const TopoDS_Shape& aShape1, const TopoDS_Shape& aShape2, const TopoDS_Shape& aShape3, const TopoDS_Shape& aShape4, const Handle(Geom_Plane)& aPlane); + + + //! Sets the shape aShape to be used as the shape + //! aShape3 in the framework created at construction time. + void SetShape3 (const TopoDS_Shape& aShape); + + + //! Returns the shape aShape3 from the framework + //! created at construction time. + const TopoDS_Shape& Shape3() const; + + + //! Sets the shape aShape to be used as the shape + //! aShape4 in the framework created at construction time. + void SetShape4 (const TopoDS_Shape& aShape); + + + //! Returns the shape aShape4 from the framework + //! created at construction time. + const TopoDS_Shape& Shape4() const; + + //! Computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + //! Computes the location of an intreval between + //! between two edges. FirstAttach , SecondAttach + //! are the returned extreme points of the interval. + Standard_EXPORT static void ComputeTwoEdgesLength (const Handle(Prs3d_Presentation)& aPresentation, const Handle(Prs3d_Drawer)& aDrawer, const Standard_Real ArrowSize, const TopoDS_Edge& FirstEdge, const TopoDS_Edge& SecondEdge, const Handle(Geom_Plane)& Plane, const Standard_Boolean AutomaticPos, const Standard_Boolean IsSetBndBox, const Bnd_Box& BndBox, gp_Pnt& Position, gp_Pnt& FirstAttach, gp_Pnt& SecondAttach, gp_Pnt& FirstExtreme, gp_Pnt& SecondExtreme, DsgPrs_ArrowSide& SymbolPrs); + + //! Computes the interval position between two vertexs. FirstAttach, + //! SecondAttach are the returned extreme points of the interval. + Standard_EXPORT static void ComputeTwoVerticesLength (const Handle(Prs3d_Presentation)& aPresentation, const Handle(Prs3d_Drawer)& aDrawer, const Standard_Real ArrowSize, const TopoDS_Vertex& FirstVertex, const TopoDS_Vertex& SecondVertex, const Handle(Geom_Plane)& Plane, const Standard_Boolean AutomaticPos, const Standard_Boolean IsSetBndBox, const Bnd_Box& BndBox, const AIS_TypeOfDist TypeDist, gp_Pnt& Position, gp_Pnt& FirstAttach, gp_Pnt& SecondAttach, gp_Pnt& FirstExtreme, gp_Pnt& SecondExtreme, DsgPrs_ArrowSide& SymbolPrs); + + //! Compute the interval location between a vertex and an edge. Edge may be + //! a line or a circle. + Standard_EXPORT static void ComputeOneEdgeOneVertexLength (const Handle(Prs3d_Presentation)& aPresentation, const Handle(Prs3d_Drawer)& aDrawer, const Standard_Real ArrowSize, const TopoDS_Shape& FirstShape, const TopoDS_Shape& SecondShape, const Handle(Geom_Plane)& Plane, const Standard_Boolean AutomaticPos, const Standard_Boolean IsSetBndBox, const Bnd_Box& BndBox, gp_Pnt& Position, gp_Pnt& FirstAttach, gp_Pnt& SecondAttach, gp_Pnt& FirstExtreme, gp_Pnt& SecondExtreme, DsgPrs_ArrowSide& SymbolPrs); + + + + + DEFINE_STANDARD_RTTI(AIS_EqualDistanceRelation,AIS_Relation) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode); + + TopoDS_Shape myShape3; + TopoDS_Shape myShape4; + gp_Pnt myAttachPoint1; + gp_Pnt myAttachPoint2; + gp_Pnt myAttachPoint3; + gp_Pnt myAttachPoint4; + gp_Pnt myPoint1; + gp_Pnt myPoint2; + gp_Pnt myPoint3; + gp_Pnt myPoint4; + + +}; + + +#include + + + + + +#endif // _AIS_EqualDistanceRelation_HeaderFile diff --git a/src/AIS/AIS_EqualRadiusRelation.cdl b/src/AIS/AIS_EqualRadiusRelation.cdl deleted file mode 100644 index 4e1aaac7a6..0000000000 --- a/src/AIS/AIS_EqualRadiusRelation.cdl +++ /dev/null @@ -1,82 +0,0 @@ --- Created on: 1998-01-17 --- 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. - -class EqualRadiusRelation from AIS inherits Relation from AIS - - ---Purpose: - -uses - Edge from TopoDS, - Plane from Geom, - PresentationManager3d from PrsMgr, - Presentation from Prs3d, - Projector from Prs3d, - Transformation from Geom, - Selection from SelectMgr, - Pnt from gp - -is - Create( aFirstEdge : Edge from TopoDS; - aSecondEdge : Edge from TopoDS; - aPlane : Plane from Geom ) - ---Purpose: Creates equal relation of two arc's radiuses. - -- If one of edges is not in the given plane, - -- the presentation method projects it onto the plane. - returns EqualRadiusRelation from AIS; - --- Methods from PresentableObject - - Compute( me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0 ) - is redefined static private; - - Compute( me : mutable; - aProjector : Projector from Prs3d; - aPresentation : Presentation from Prs3d ) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection( me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard) - is private; - - ComputeRadiusPosition(me: mutable) is private; - -fields - - myFirstCenter : Pnt from gp; - mySecondCenter : Pnt from gp; - myFirstPoint : Pnt from gp; - mySecondPoint : Pnt from gp; - -end EqualRadiusRelation; diff --git a/src/AIS/AIS_EqualRadiusRelation.cxx b/src/AIS/AIS_EqualRadiusRelation.cxx index 553cd05929..08921b1f4a 100644 --- a/src/AIS/AIS_EqualRadiusRelation.cxx +++ b/src/AIS/AIS_EqualRadiusRelation.cxx @@ -14,32 +14,36 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include #include -#include +#include #include -#include -#include -#include +#include #include -#include -#include -#include -#include -#include +#include +#include +#include #include -#include +#include +#include #include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : AIS_EqualRadiusRelation //purpose : //======================================================================= - AIS_EqualRadiusRelation::AIS_EqualRadiusRelation( const TopoDS_Edge& aFirstEdge, const TopoDS_Edge& aSecondEdge, const Handle( Geom_Plane )& aPlane ) diff --git a/src/AIS/AIS_EqualRadiusRelation.hxx b/src/AIS/AIS_EqualRadiusRelation.hxx new file mode 100644 index 0000000000..e7d93a771e --- /dev/null +++ b/src/AIS/AIS_EqualRadiusRelation.hxx @@ -0,0 +1,94 @@ +// Created on: 1998-01-17 +// 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_EqualRadiusRelation_HeaderFile +#define _AIS_EqualRadiusRelation_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +class TopoDS_Edge; +class Geom_Plane; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; + + +class AIS_EqualRadiusRelation; +DEFINE_STANDARD_HANDLE(AIS_EqualRadiusRelation, AIS_Relation) + + +class AIS_EqualRadiusRelation : public AIS_Relation +{ + +public: + + + //! Creates equal relation of two arc's radiuses. + //! If one of edges is not in the given plane, + //! the presentation method projects it onto the plane. + Standard_EXPORT AIS_EqualRadiusRelation(const TopoDS_Edge& aFirstEdge, const TopoDS_Edge& aSecondEdge, const Handle(Geom_Plane)& aPlane); + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_EqualRadiusRelation,AIS_Relation) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode); + + Standard_EXPORT void ComputeRadiusPosition(); + + gp_Pnt myFirstCenter; + gp_Pnt mySecondCenter; + gp_Pnt myFirstPoint; + gp_Pnt mySecondPoint; + + +}; + + + + + + + +#endif // _AIS_EqualRadiusRelation_HeaderFile diff --git a/src/AIS/AIS_ExclusionFilter.cdl b/src/AIS/AIS_ExclusionFilter.cdl deleted file mode 100644 index 3f9ee45aed..0000000000 --- a/src/AIS/AIS_ExclusionFilter.cdl +++ /dev/null @@ -1,121 +0,0 @@ --- Created on: 1997-11-28 --- 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. - -class ExclusionFilter from AIS inherits Filter from SelectMgr - - ---Purpose: A framework to reject or to accept only objects of - -- given types and/or signatures. - -- Objects are stored, and the stored objects - along - -- with the flag settings - are used to define the filter. - -- Objects to be filtered are compared with the stored - -- objects added to the filter, and are accepted or - -- rejected according to the exclusion flag setting. - -- - Exclusion flag on - -- - the function IsOk answers true for all objects, - -- except those of the types and signatures stored - -- in the filter framework - -- - Exclusion flag off - -- - the funciton IsOk answers true for all objects - -- which have the same type and signature as the stored ones. - -uses - - EntityOwner from SelectMgr, - KindOfInteractive from AIS, - ListOfInteger from TColStd, - DataMapOfIntegerListOfInteger from TColStd -is - - Create(ExclusionFlagOn:Boolean from Standard = Standard_True) - returns ExclusionFilter from AIS; - ---Purpose: Constructs an empty exclusion filter object defined by - -- the flag setting ExclusionFlagOn. - -- By default, the flag is set to true. - - Create(TypeToExclude : KindOfInteractive from AIS; - ExclusionFlagOn : Boolean from Standard = Standard_True) - returns ExclusionFilter from AIS; - ---Purpose: All the AIS objects of - -- Will be rejected by the IsOk Method. - - - Create(TypeToExclude : KindOfInteractive from AIS; - SignatureInType :Integer from Standard ; - ExclusionFlagOn : Boolean from Standard = Standard_True) - returns ExclusionFilter from AIS; - ---Purpose: Constructs an exclusion filter object defined by the - -- enumeration value TypeToExclude, the signature - -- SignatureInType, and the flag setting ExclusionFlagOn. - -- By default, the flag is set to true. - - - IsOk(me; anObj : EntityOwner from SelectMgr) - returns Boolean from Standard - is redefined virtual; - - - - - - ---Category: Load Filter... - - Add(me:mutable;TypeToExclude : KindOfInteractive from AIS) - returns Boolean from Standard; - ---Purpose: Adds the type TypeToExclude to the list of types. - - Add(me:mutable; - TypeToExclude : KindOfInteractive from AIS; - SignatureInType : Integer from Standard) - returns Boolean from Standard; - - Remove(me:mutable; - TypeToExclude:KindOfInteractive from AIS) - returns Boolean from Standard; - - Remove(me:mutable; - TypeToExclude:KindOfInteractive from AIS; - SignatureInType : Integer from Standard) - returns Boolean from Standard; - - Clear(me:mutable); - - ---Category: Information about Filter... - - - - IsExclusionFlagOn(me) returns Boolean from Standard; - ---C++: inline - - SetExclusionFlag(me:mutable; Status : Boolean from Standard); - ---C++: inline - - - IsStored(me;aType:KindOfInteractive from AIS) returns Boolean from Standard; - - ListOfStoredTypes( me; TheList: in out ListOfInteger from TColStd); - - ListOfSignature(me; - aType : KindOfInteractive from AIS; - TheStoredList : in out ListOfInteger from TColStd); - - - IsSignatureIn(me;aType:KindOfInteractive from AIS;aSignature:Integer from Standard) - returns Boolean from Standard is static private; - -fields - myIsExclusionFlagOn : Boolean from Standard; - myStoredTypes : DataMapOfIntegerListOfInteger from TColStd; -end ExclusionFilter; diff --git a/src/AIS/AIS_ExclusionFilter.cxx b/src/AIS/AIS_ExclusionFilter.cxx index 0f90bba4d1..00b65f5304 100644 --- a/src/AIS/AIS_ExclusionFilter.cxx +++ b/src/AIS/AIS_ExclusionFilter.cxx @@ -14,17 +14,19 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include + +#include #include +#include +#include +#include +#include +#include //======================================================================= //function : AIS_ExclusionFilter //purpose : Constructors //======================================================================= - AIS_ExclusionFilter::AIS_ExclusionFilter(const Standard_Boolean ExclusionFlagOn): myIsExclusionFlagOn(ExclusionFlagOn) { diff --git a/src/AIS/AIS_ExclusionFilter.hxx b/src/AIS/AIS_ExclusionFilter.hxx new file mode 100644 index 0000000000..7aeef5a939 --- /dev/null +++ b/src/AIS/AIS_ExclusionFilter.hxx @@ -0,0 +1,121 @@ +// Created on: 1997-11-28 +// 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_ExclusionFilter_HeaderFile +#define _AIS_ExclusionFilter_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +class SelectMgr_EntityOwner; + + +class AIS_ExclusionFilter; +DEFINE_STANDARD_HANDLE(AIS_ExclusionFilter, SelectMgr_Filter) + +//! A framework to reject or to accept only objects of +//! given types and/or signatures. +//! Objects are stored, and the stored objects - along +//! with the flag settings - are used to define the filter. +//! Objects to be filtered are compared with the stored +//! objects added to the filter, and are accepted or +//! rejected according to the exclusion flag setting. +//! - Exclusion flag on +//! - the function IsOk answers true for all objects, +//! except those of the types and signatures stored +//! in the filter framework +//! - Exclusion flag off +//! - the funciton IsOk answers true for all objects +//! which have the same type and signature as the stored ones. +class AIS_ExclusionFilter : public SelectMgr_Filter +{ + +public: + + + //! Constructs an empty exclusion filter object defined by + //! the flag setting ExclusionFlagOn. + //! By default, the flag is set to true. + Standard_EXPORT AIS_ExclusionFilter(const Standard_Boolean ExclusionFlagOn = Standard_True); + + //! All the AIS objects of + //! Will be rejected by the IsOk Method. + Standard_EXPORT AIS_ExclusionFilter(const AIS_KindOfInteractive TypeToExclude, const Standard_Boolean ExclusionFlagOn = Standard_True); + + //! Constructs an exclusion filter object defined by the + //! enumeration value TypeToExclude, the signature + //! SignatureInType, and the flag setting ExclusionFlagOn. + //! By default, the flag is set to true. + Standard_EXPORT AIS_ExclusionFilter(const AIS_KindOfInteractive TypeToExclude, const Standard_Integer SignatureInType, const Standard_Boolean ExclusionFlagOn = Standard_True); + + Standard_EXPORT virtual Standard_Boolean IsOk (const Handle(SelectMgr_EntityOwner)& anObj) const Standard_OVERRIDE; + + //! Adds the type TypeToExclude to the list of types. + Standard_EXPORT Standard_Boolean Add (const AIS_KindOfInteractive TypeToExclude); + + Standard_EXPORT Standard_Boolean Add (const AIS_KindOfInteractive TypeToExclude, const Standard_Integer SignatureInType); + + Standard_EXPORT Standard_Boolean Remove (const AIS_KindOfInteractive TypeToExclude); + + Standard_EXPORT Standard_Boolean Remove (const AIS_KindOfInteractive TypeToExclude, const Standard_Integer SignatureInType); + + Standard_EXPORT void Clear(); + + Standard_Boolean IsExclusionFlagOn() const; + + void SetExclusionFlag (const Standard_Boolean Status); + + Standard_EXPORT Standard_Boolean IsStored (const AIS_KindOfInteractive aType) const; + + Standard_EXPORT void ListOfStoredTypes (TColStd_ListOfInteger& TheList) const; + + Standard_EXPORT void ListOfSignature (const AIS_KindOfInteractive aType, TColStd_ListOfInteger& TheStoredList) const; + + + + + DEFINE_STANDARD_RTTI(AIS_ExclusionFilter,SelectMgr_Filter) + +protected: + + + + +private: + + + Standard_EXPORT Standard_Boolean IsSignatureIn (const AIS_KindOfInteractive aType, const Standard_Integer aSignature) const; + + Standard_Boolean myIsExclusionFlagOn; + TColStd_DataMapOfIntegerListOfInteger myStoredTypes; + + +}; + + +#include + + + + + +#endif // _AIS_ExclusionFilter_HeaderFile diff --git a/src/AIS/AIS_FixRelation.cdl b/src/AIS/AIS_FixRelation.cdl deleted file mode 100644 index 8c57a13642..0000000000 --- a/src/AIS/AIS_FixRelation.cdl +++ /dev/null @@ -1,195 +0,0 @@ --- Created on: 1996-12-05 --- Created by: Flore Lantheaume/Odile Olivier --- 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. - -class FixRelation from AIS inherits Relation from AIS - - - ---Purpose: Constructs and manages a constraint by a fixed - -- relation between two or more interactive datums. This - -- constraint is represented by a wire from a shape - - -- point, vertex, or edge - in the first datum and a - -- corresponding shape in the second. - -- Warning: This relation is not bound with any kind of parametric - -- constraint : it represents the "status" of an parametric - -- object. -uses - - PresentationManager3d from PrsMgr, - Presentation from Prs3d, - Selection from SelectMgr, - Shape from TopoDS, - Vertex from TopoDS, - Edge from TopoDS, - Wire from TopoDS, - Curve from Geom, - Circ from gp, - Lin from gp, - Pnt from gp, - Projector from Prs3d, - Transformation from Geom, - Plane from Geom - -is - Create (aShape : Shape from TopoDS; - aPlane : Plane from Geom; - aWire : Wire from TopoDS) - ---Purpose: initializes the vertex aShape, the - -- plane aPlane and the wire aWire, which connects - -- the two vertices in a fixed relation. - returns FixRelation from AIS; - - Create (aShape : Shape from TopoDS; - aPlane : Plane from Geom; - aWire : Wire from TopoDS; - aPosition : Pnt from gp; - anArrowSize : Real from Standard = 0.01) - ---Purpose: initializes the vertex aShape, the - -- plane aPlane and the wire aWire, the position - -- aPosition, the arrow size anArrowSize and the - -- wire aWire, which connects the two vertices in a fixed relation. - returns FixRelation from AIS; - Create (aShape : Shape from TopoDS; - aPlane : Plane from Geom) - ---Purpose: initializes the edge aShape and the plane aPlane. - returns FixRelation from AIS; - - Create (aShape : Shape from TopoDS; - aPlane : Plane from Geom; - aPosition : Pnt from gp; - anArrowSize : Real from Standard = 0.01) - ---Purpose: initializes the edge aShape, the - -- plane aPlane, the position aPosition and the arrow - -- size anArrowSize. - - returns FixRelation from AIS; - - Wire(me: mutable) returns Wire from TopoDS - is static; - ---Purpose: Returns the wire which connects vertices in a fixed relation. - - SetWire(me: mutable;aWire : Wire from TopoDS) - is static; - --- Purpose: Constructs the wire aWire. This connects vertices - -- which are in a fixed relation. - - IsMovable(me) returns Boolean from Standard - ---C++: inline - ---Purpose: Returns true if the Interactive Objects in the relation - -- are movable. - is redefined; - - -- Methods from PresentableObject - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0) - is redefined static private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - - -- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard) - is redefined private; - - - -- - -- Computation private methods - -- - - ComputeVertex(me : mutable; - FixVertex : Vertex from TopoDS; - curpos : out Pnt from gp) - ---Purpose: computes the presentation for if it's a - -- vertex. - is private; - - - ComputePosition(me; - curv1 : Curve from Geom; - curv2 : Curve from Geom; - firstp1 : Pnt from gp; - lastp1 : Pnt from gp ; - firstp2 : Pnt from gp; - lastp2 : Pnt from gp) - returns Pnt from gp - is private; - - - ComputePosition(me; - curv : Curve from Geom; - firstp : Pnt from gp; - lastp : Pnt from gp) - returns Pnt from gp - is private; - - - ComputeEdge(me : mutable; - FixEdge : Edge from TopoDS; - curpos : out Pnt from gp) - ---Purpose: computes the presentation for if it's a - -- edge. - is private; - - - ComputeLinePosition(me : mutable; - glin : Lin from gp; - pos : out Pnt from gp; - pfirst : out Real from Standard; - plast : out Real from Standard) - is private; - - - ComputeCirclePosition(me : mutable; - gcirc : Circ from gp; - pos : out Pnt from gp; - pfirst : out Real from Standard; - plast : out Real from Standard) - is private; - - ConnectedEdges(myclass; aWire : Wire from TopoDS; - aVertex : Vertex from TopoDS; - Edge1,Edge2 : out Edge from TopoDS) - returns Boolean from Standard - is private; - - -fields - - myWire : Wire from TopoDS; - myPntAttach : Pnt from gp; - -end FixRelation; - diff --git a/src/AIS/AIS_FixRelation.cxx b/src/AIS/AIS_FixRelation.cxx index f9ae72a042..f6583f140c 100644 --- a/src/AIS/AIS_FixRelation.cxx +++ b/src/AIS/AIS_FixRelation.cxx @@ -14,54 +14,48 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include +#include +#include #include - -#include - -#include -#include -#include - #include #include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - +#include +#include +#include +#include #include #include -#include #include - +#include +#include +#include +#include +#include #include #include -#include -#include #include - -#include -#include - #include - +#include +#include +#include +#include +#include #include - -#include - -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include static Standard_Boolean InDomain(const Standard_Real fpar, const Standard_Real lpar, diff --git a/src/AIS/AIS_FixRelation.hxx b/src/AIS/AIS_FixRelation.hxx new file mode 100644 index 0000000000..5d1a6d495e --- /dev/null +++ b/src/AIS/AIS_FixRelation.hxx @@ -0,0 +1,151 @@ +// Created on: 1996-12-05 +// Created by: Flore Lantheaume/Odile Olivier +// 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_FixRelation_HeaderFile +#define _AIS_FixRelation_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class Geom_Plane; +class TopoDS_Wire; +class gp_Pnt; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; +class TopoDS_Vertex; +class Geom_Curve; +class TopoDS_Edge; +class gp_Lin; +class gp_Circ; + + +class AIS_FixRelation; +DEFINE_STANDARD_HANDLE(AIS_FixRelation, AIS_Relation) + +//! Constructs and manages a constraint by a fixed +//! relation between two or more interactive datums. This +//! constraint is represented by a wire from a shape - +//! point, vertex, or edge - in the first datum and a +//! corresponding shape in the second. +//! Warning: This relation is not bound with any kind of parametric +//! constraint : it represents the "status" of an parametric +//! object. +class AIS_FixRelation : public AIS_Relation +{ + +public: + + + //! initializes the vertex aShape, the + //! plane aPlane and the wire aWire, which connects + //! the two vertices in a fixed relation. + Standard_EXPORT AIS_FixRelation(const TopoDS_Shape& aShape, const Handle(Geom_Plane)& aPlane, const TopoDS_Wire& aWire); + + //! initializes the vertex aShape, the + //! plane aPlane and the wire aWire, the position + //! aPosition, the arrow size anArrowSize and the + //! wire aWire, which connects the two vertices in a fixed relation. + Standard_EXPORT AIS_FixRelation(const TopoDS_Shape& aShape, const Handle(Geom_Plane)& aPlane, const TopoDS_Wire& aWire, const gp_Pnt& aPosition, const Standard_Real anArrowSize = 0.01); + + //! initializes the edge aShape and the plane aPlane. + Standard_EXPORT AIS_FixRelation(const TopoDS_Shape& aShape, const Handle(Geom_Plane)& aPlane); + + //! initializes the edge aShape, the + //! plane aPlane, the position aPosition and the arrow + //! size anArrowSize. + Standard_EXPORT AIS_FixRelation(const TopoDS_Shape& aShape, const Handle(Geom_Plane)& aPlane, const gp_Pnt& aPosition, const Standard_Real anArrowSize = 0.01); + + //! Returns the wire which connects vertices in a fixed relation. + Standard_EXPORT TopoDS_Wire Wire(); + + //! Constructs the wire aWire. This connects vertices + //! which are in a fixed relation. + Standard_EXPORT void SetWire (const TopoDS_Wire& aWire); + + //! Returns true if the Interactive Objects in the relation + //! are movable. + virtual Standard_Boolean IsMovable() const Standard_OVERRIDE; + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_FixRelation,AIS_Relation) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode) Standard_OVERRIDE; + + //! computes the presentation for if it's a + //! vertex. + Standard_EXPORT void ComputeVertex (const TopoDS_Vertex& FixVertex, gp_Pnt& curpos); + + Standard_EXPORT gp_Pnt ComputePosition (const Handle(Geom_Curve)& curv1, const Handle(Geom_Curve)& curv2, const gp_Pnt& firstp1, const gp_Pnt& lastp1, const gp_Pnt& firstp2, const gp_Pnt& lastp2) const; + + Standard_EXPORT gp_Pnt ComputePosition (const Handle(Geom_Curve)& curv, const gp_Pnt& firstp, const gp_Pnt& lastp) const; + + //! computes the presentation for if it's a + //! edge. + Standard_EXPORT void ComputeEdge (const TopoDS_Edge& FixEdge, gp_Pnt& curpos); + + Standard_EXPORT void ComputeLinePosition (const gp_Lin& glin, gp_Pnt& pos, Standard_Real& pfirst, Standard_Real& plast); + + Standard_EXPORT void ComputeCirclePosition (const gp_Circ& gcirc, gp_Pnt& pos, Standard_Real& pfirst, Standard_Real& plast); + + Standard_EXPORT static Standard_Boolean ConnectedEdges (const TopoDS_Wire& aWire, const TopoDS_Vertex& aVertex, TopoDS_Edge& Edge1, TopoDS_Edge& Edge2); + + TopoDS_Wire myWire; + gp_Pnt myPntAttach; + + +}; + + +#include + + + + + +#endif // _AIS_FixRelation_HeaderFile diff --git a/src/AIS/AIS_GlobalStatus.cdl b/src/AIS/AIS_GlobalStatus.cdl deleted file mode 100644 index d4c6e7ece4..0000000000 --- a/src/AIS/AIS_GlobalStatus.cdl +++ /dev/null @@ -1,113 +0,0 @@ --- Created on: 1997-01-24 --- 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. - -class GlobalStatus from AIS inherits TShared from MMgt - - ---Purpose: Stores information about objects in graphic context: - -- - Status Of Display : in the main viewer - -- hidden in the main viewer - -- - Displayed Modes - -- - Active Selection Modes - -- - is the Interactive Object Current ? - -- - Layer Index - -uses - ListOfInteger from TColStd, - DisplayStatus from AIS, - NameOfColor from Quantity - -is - - Create returns GlobalStatus from AIS; - - Create (aStat : DisplayStatus from AIS; - aDispMode,aSelMode: Integer from Standard; - ishilighted : Boolean from Standard=Standard_False; - TheHiCol : NameOfColor from Quantity = Quantity_NOC_WHITE; - aLayerIndex : Integer from Standard = 0) - returns GlobalStatus from AIS; - - ---Category: Modifications. - - SetGraphicStatus(me:mutable; aStat : DisplayStatus from AIS); - ---C++: inline - AddDisplayMode(me:mutable; aMode: Integer from Standard); - ---C++: inline - AddSelectionMode(me:mutable; aMode : Integer from Standard); - ---C++: inline - SetLayerIndex (me: mutable ; AnIndex : Integer from Standard); - ---C++: inline - SetHilightStatus (me: mutable; aStat:Boolean from Standard); - ---C++: inline - SetHilightColor(me:mutable;aHiCol : NameOfColor from Quantity); - ---C++: inline - - - - IsSubIntensityOn(me) returns Boolean from Standard; - ---C++: inline - SubIntensityOn (me: mutable); - ---C++: inline - SubIntensityOff (me: mutable); - ---C++: inline - - - - RemoveDisplayMode(me:mutable; aMode : Integer from Standard); - - RemoveSelectionMode(me:mutable; aMode : Integer from Standard); - ClearSelectionModes(me:mutable); - - - ---Category: Information. - - - GraphicStatus(me) returns DisplayStatus from AIS; - ---C++: inline - - DisplayedModes(me) returns ListOfInteger from TColStd; - ---C++: return const & - ---C++: inline - ---Purpose: keeps the information of displayed modes in the - -- main viewer. - - SelectionModes(me) returns ListOfInteger from TColStd; - ---C++: return const & - ---C++: inline - ---Purpose: keeps the active selection modes of the object - -- in the main viewer. - - IsHilighted(me) returns Boolean from Standard; - ---C++: inline - - HilightColor(me) returns NameOfColor from Quantity; - ---C++: inline - - IsDModeIn(me; aMode : Integer from Standard) returns Boolean from Standard; - - IsSModeIn(me; aMode : Integer from Standard) returns Boolean from Standard; - - -fields - - myStatus : DisplayStatus from AIS; - myDispModes : ListOfInteger from TColStd; - mySelModes : ListOfInteger from TColStd; - myLayerIndex : Integer from Standard; - myIsHilit : Boolean from Standard; - myHiCol : NameOfColor from Quantity; - mySubInt : Boolean; -end GlobalStatus; diff --git a/src/AIS/AIS_GlobalStatus.cxx b/src/AIS/AIS_GlobalStatus.cxx index a8744c0fa8..36481e1c58 100644 --- a/src/AIS/AIS_GlobalStatus.cxx +++ b/src/AIS/AIS_GlobalStatus.cxx @@ -14,7 +14,9 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include #include AIS_GlobalStatus::AIS_GlobalStatus(): diff --git a/src/AIS/AIS_GlobalStatus.hxx b/src/AIS/AIS_GlobalStatus.hxx new file mode 100644 index 0000000000..a91abab14c --- /dev/null +++ b/src/AIS/AIS_GlobalStatus.hxx @@ -0,0 +1,124 @@ +// Created on: 1997-01-24 +// 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_GlobalStatus_HeaderFile +#define _AIS_GlobalStatus_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include + + +class AIS_GlobalStatus; +DEFINE_STANDARD_HANDLE(AIS_GlobalStatus, MMgt_TShared) + +//! Stores information about objects in graphic context: +//! - Status Of Display : in the main viewer +//! hidden in the main viewer +//! - Displayed Modes +//! - Active Selection Modes +//! - is the Interactive Object Current ? +//! - Layer Index +class AIS_GlobalStatus : public MMgt_TShared +{ + +public: + + + Standard_EXPORT AIS_GlobalStatus(); + + Standard_EXPORT AIS_GlobalStatus(const AIS_DisplayStatus aStat, const Standard_Integer aDispMode, const Standard_Integer aSelMode, const Standard_Boolean ishilighted = Standard_False, const Quantity_NameOfColor TheHiCol = Quantity_NOC_WHITE, const Standard_Integer aLayerIndex = 0); + + void SetGraphicStatus (const AIS_DisplayStatus aStat); + + void AddDisplayMode (const Standard_Integer aMode); + + void AddSelectionMode (const Standard_Integer aMode); + + void SetLayerIndex (const Standard_Integer AnIndex); + + void SetHilightStatus (const Standard_Boolean aStat); + + void SetHilightColor (const Quantity_NameOfColor aHiCol); + + Standard_Boolean IsSubIntensityOn() const; + + void SubIntensityOn(); + + void SubIntensityOff(); + + Standard_EXPORT void RemoveDisplayMode (const Standard_Integer aMode); + + Standard_EXPORT void RemoveSelectionMode (const Standard_Integer aMode); + + Standard_EXPORT void ClearSelectionModes(); + + AIS_DisplayStatus GraphicStatus() const; + + //! keeps the information of displayed modes in the + //! main viewer. + const TColStd_ListOfInteger& DisplayedModes() const; + + //! keeps the active selection modes of the object + //! in the main viewer. + const TColStd_ListOfInteger& SelectionModes() const; + + Standard_Boolean IsHilighted() const; + + Quantity_NameOfColor HilightColor() const; + + Standard_EXPORT Standard_Boolean IsDModeIn (const Standard_Integer aMode) const; + + Standard_EXPORT Standard_Boolean IsSModeIn (const Standard_Integer aMode) const; + + + + + DEFINE_STANDARD_RTTI(AIS_GlobalStatus,MMgt_TShared) + +protected: + + + + +private: + + + AIS_DisplayStatus myStatus; + TColStd_ListOfInteger myDispModes; + TColStd_ListOfInteger mySelModes; + Standard_Integer myLayerIndex; + Standard_Boolean myIsHilit; + Quantity_NameOfColor myHiCol; + Standard_Boolean mySubInt; + + +}; + + +#include + + + + + +#endif // _AIS_GlobalStatus_HeaderFile diff --git a/src/AIS/AIS_GraphicTool.cdl b/src/AIS/AIS_GraphicTool.cdl deleted file mode 100644 index 8804e98fea..0000000000 --- a/src/AIS/AIS_GraphicTool.cdl +++ /dev/null @@ -1,67 +0,0 @@ --- Created on: 1997-02-10 --- 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. - -class GraphicTool from AIS - - ---Purpose: - -uses - Drawer from Prs3d, - TypeOfAttribute from AIS, - NameOfColor from Quantity, - Color from Quantity, - TypeOfLine from Aspect, - MaterialAspect from Graphic3d - - -is - - GetLineColor(myclass; aDrawer : Drawer from Prs3d; TheTypeOfAttributes : TypeOfAttribute from AIS) - returns NameOfColor from Quantity; - - GetLineColor(myclass; aDrawer : Drawer from Prs3d; - TheTypeOfAttributes : TypeOfAttribute from AIS; - TheLineColor: out Color from Quantity); - - GetLineWidth(myclass; aDrawer : Drawer from Prs3d; TheTypeOfAttributes : TypeOfAttribute from AIS) - returns Real from Standard; - - - GetLineType (myclass; aDrawer : Drawer from Prs3d; TheTypeOfAttributes : TypeOfAttribute from AIS) - returns TypeOfLine from Aspect; - - - GetLineAtt(myclass; - aDrawer : Drawer from Prs3d; - TheTypeOfAttributes : TypeOfAttribute from AIS; - aCol : in out NameOfColor from Quantity; - aWidth : in out Real from Standard; - aTyp : in out TypeOfLine from Aspect); - - - GetInteriorColor(myclass; - aDrawer : Drawer from Prs3d) - returns NameOfColor from Quantity; - - GetInteriorColor(myclass; - aDrawer : Drawer from Prs3d; - aColor: out Color from Quantity); - - GetMaterial(myclass; aDrawer:Drawer from Prs3d) - returns MaterialAspect from Graphic3d; - -end GraphicTool; - diff --git a/src/AIS/AIS_GraphicTool.cxx b/src/AIS/AIS_GraphicTool.cxx index dbaead1df3..8e2fc6e80f 100644 --- a/src/AIS/AIS_GraphicTool.cxx +++ b/src/AIS/AIS_GraphicTool.cxx @@ -14,21 +14,20 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include -#include +#include #include +#include +#include #include +#include +#include #include +#include +#include #include -#include -#include -#include - #include -#include +#include static Handle(Prs3d_LineAspect) GetLineAspect(const Handle(Prs3d_Drawer)& Dr, const AIS_TypeOfAttribute Att) diff --git a/src/AIS/AIS_GraphicTool.hxx b/src/AIS/AIS_GraphicTool.hxx new file mode 100644 index 0000000000..453f22a443 --- /dev/null +++ b/src/AIS/AIS_GraphicTool.hxx @@ -0,0 +1,80 @@ +// Created on: 1997-02-10 +// 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_GraphicTool_HeaderFile +#define _AIS_GraphicTool_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class Quantity_Color; +class Graphic3d_MaterialAspect; + + + +class AIS_GraphicTool +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT static Quantity_NameOfColor GetLineColor (const Handle(Prs3d_Drawer)& aDrawer, const AIS_TypeOfAttribute TheTypeOfAttributes); + + Standard_EXPORT static void GetLineColor (const Handle(Prs3d_Drawer)& aDrawer, const AIS_TypeOfAttribute TheTypeOfAttributes, Quantity_Color& TheLineColor); + + Standard_EXPORT static Standard_Real GetLineWidth (const Handle(Prs3d_Drawer)& aDrawer, const AIS_TypeOfAttribute TheTypeOfAttributes); + + Standard_EXPORT static Aspect_TypeOfLine GetLineType (const Handle(Prs3d_Drawer)& aDrawer, const AIS_TypeOfAttribute TheTypeOfAttributes); + + Standard_EXPORT static void GetLineAtt (const Handle(Prs3d_Drawer)& aDrawer, const AIS_TypeOfAttribute TheTypeOfAttributes, Quantity_NameOfColor& aCol, Standard_Real& aWidth, Aspect_TypeOfLine& aTyp); + + Standard_EXPORT static Quantity_NameOfColor GetInteriorColor (const Handle(Prs3d_Drawer)& aDrawer); + + Standard_EXPORT static void GetInteriorColor (const Handle(Prs3d_Drawer)& aDrawer, Quantity_Color& aColor); + + Standard_EXPORT static Graphic3d_MaterialAspect GetMaterial (const Handle(Prs3d_Drawer)& aDrawer); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _AIS_GraphicTool_HeaderFile diff --git a/src/AIS/AIS_IdenticRelation.cdl b/src/AIS/AIS_IdenticRelation.cdl deleted file mode 100644 index bdd79d4fb0..0000000000 --- a/src/AIS/AIS_IdenticRelation.cdl +++ /dev/null @@ -1,214 +0,0 @@ --- Created on: 1997-03-03 --- Created by: Jean-Pierre COMBE --- 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. - -class IdenticRelation from AIS inherits Relation from AIS - - ---Purpose: Constructs a constraint by a relation of identity - -- between two or more datums figuring in shape - -- Interactive Objects. - -uses - Shape from TopoDS, - Vertex from TopoDS, - Wire from TopoDS, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - Selection from SelectMgr, - Projector from Prs3d, - Transformation from Geom, - Plane from Geom, - Curve from Geom, - Line from Geom, - Circle from Geom, - Ellipse from Geom, - Pnt from gp, - Dir from gp - -is - Create(FirstShape : Shape from TopoDS; - SecondShape : Shape from TopoDS; - aPlane : Plane from Geom) - returns IdenticRelation from AIS; - ---Purpose: - -- Initializes the relation of identity between the two - -- entities, FirstShape and SecondShape. The plane - -- aPlane is initialized in case a visual reference is - -- needed to show identity. - - IsMovable(me) returns Boolean from Standard - ---C++: inline - ---Purpose: - -- Returns true if the interactive object is movable. - is redefined; - --- Methods from PresentableObject - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0) - is redefined private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard) - is redefined private; - --- --- Computation private methods --- - - ComputeOneEdgeOVertexPresentation(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - ComputeTwoEdgesPresentation(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - ComputeTwoLinesPresentation(me: mutable; - aPresentation : Presentation from Prs3d; - aLin : Line from Geom; - Pnt1On1 : in out Pnt from gp; - Pnt2On1 : in out Pnt from gp; - Pnt1On2 : in out Pnt from gp; - Pnt2On2 : in out Pnt from gp; - isInf1 : Boolean from Standard; - isInf2 : Boolean from Standard) - is private; - - ComputeTwoCirclesPresentation(me: mutable; - aPresentation : Presentation from Prs3d; - aCircle : Circle from Geom; - Pnt1On1 : Pnt from gp; - Pnt2On1 : Pnt from gp; - Pnt1On2 : Pnt from gp; - Pnt2On2 : Pnt from gp) - is private; - - -- jfa 17/10/2000 - ComputeAutoArcPresentation(me: mutable; - aCircle : Circle from Geom; - firstp : Pnt from gp; - lastp : Pnt from gp; - isstatic: Boolean from Standard = Standard_False) - ---Purpose: Computes the presentation of the identic constraint - -- between 2 arcs in the case of automatic presentation - is private; - - ComputeNotAutoCircPresentation(me: mutable; - aCircle : Circle from Geom) - ---Purpose: Computes the presentation of the identic constraint - -- between 2 circles in the case of non automatic presentation - is private; - - ComputeNotAutoArcPresentation(me: mutable; - aCircle : Circle from Geom; - pntfirst: Pnt from gp; - pntlast : Pnt from gp) - ---Purpose: Computes the presentation of the identic constraint - -- between 2 arcs in the case of non automatic presentation - is private; - -- jfa 17/10/2000 end - - -- jfa 10/10/2000 - ComputeTwoEllipsesPresentation(me: mutable; - aPrs : Presentation from Prs3d; - anEll : Ellipse from Geom; - Pnt1On1 : Pnt from gp; - Pnt2On1 : Pnt from gp; - Pnt1On2 : Pnt from gp; - Pnt2On2 : Pnt from gp) - is private; - -- jfa 10/10/2000 end - - -- jfa 18/10/2000 - ComputeAutoArcPresentation(me: mutable; - theEll : Ellipse from Geom; - firstp : Pnt from gp; - lastp : Pnt from gp; - isstatic: Boolean from Standard = Standard_False) - ---Purpose: Computes the presentation of the identic constraint - -- between 2 arcs in the case of automatic presentation - is private; - - ComputeNotAutoElipsPresentation(me: mutable; - theEll : Ellipse from Geom) - ---Purpose: Computes the presentation of the identic constraint - -- between 2 ellipses in the case of non automatic presentation - is private; - - ComputeNotAutoArcPresentation(me: mutable; - theEll : Ellipse from Geom; - pntfirst: Pnt from gp; - pntlast : Pnt from gp) - ---Purpose: Computes the presentation of the identic constraint - -- between 2 arcs in the case of non automatic presentation - is private; - -- jfa 18/10/2000 end - - ComputeTwoVerticesPresentation(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - ComputeSegSize(me) - returns Real from Standard - is private; - - ComputeDirection(me; aWire : Wire from TopoDS; - aVertex : Vertex from TopoDS; - aDir : out Dir from gp) - returns Boolean from Standard - is private; - - ComputeLineDirection(me; aLin : Line from Geom; - anExtremity : Pnt from gp) - returns Dir from gp - is private; - - ComputeCircleDirection(me; aCirc : Circle from Geom; - ConnectedVertex : Vertex from TopoDS) - returns Dir from gp - is private; - -fields - - isCircle : Boolean from Standard; - myFAttach : Pnt from gp; - mySAttach : Pnt from gp; - myCenter : Pnt from gp; - -end IdenticRelation; diff --git a/src/AIS/AIS_IdenticRelation.cxx b/src/AIS/AIS_IdenticRelation.cxx index a57d98155c..1b9ca4d35e 100644 --- a/src/AIS/AIS_IdenticRelation.cxx +++ b/src/AIS/AIS_IdenticRelation.cxx @@ -14,58 +14,49 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include #include +#include #include - #include - #include - #include - #include +#include #include #include +#include #include - +#include +#include +#include +#include +#include #include - #include #include - +#include +#include #include #include #include #include - -#include - +#include +#include #include - #include - +#include #include #include #include #include +#include #include #include #include #include -#include -#include -#include -#include - // jfa 15/10/2000 -#include -#include - static Standard_Real Modulo2PI(const Standard_Real ANGLE) { if ( ANGLE < 0 ) return Modulo2PI(ANGLE + 2*M_PI); diff --git a/src/AIS/AIS_IdenticRelation.hxx b/src/AIS/AIS_IdenticRelation.hxx new file mode 100644 index 0000000000..a010ecc13f --- /dev/null +++ b/src/AIS/AIS_IdenticRelation.hxx @@ -0,0 +1,154 @@ +// Created on: 1997-03-03 +// Created by: Jean-Pierre COMBE +// 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_IdenticRelation_HeaderFile +#define _AIS_IdenticRelation_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class Geom_Plane; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; +class Geom_Line; +class gp_Pnt; +class Geom_Circle; +class Geom_Ellipse; +class TopoDS_Wire; +class TopoDS_Vertex; +class gp_Dir; + + +class AIS_IdenticRelation; +DEFINE_STANDARD_HANDLE(AIS_IdenticRelation, AIS_Relation) + +//! Constructs a constraint by a relation of identity +//! between two or more datums figuring in shape +//! Interactive Objects. +class AIS_IdenticRelation : public AIS_Relation +{ + +public: + + + + //! Initializes the relation of identity between the two + //! entities, FirstShape and SecondShape. The plane + //! aPlane is initialized in case a visual reference is + //! needed to show identity. + Standard_EXPORT AIS_IdenticRelation(const TopoDS_Shape& FirstShape, const TopoDS_Shape& SecondShape, const Handle(Geom_Plane)& aPlane); + + + //! Returns true if the interactive object is movable. + virtual Standard_Boolean IsMovable() const Standard_OVERRIDE; + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_IdenticRelation,AIS_Relation) + +protected: + + + + +private: + + + Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode) Standard_OVERRIDE; + + Standard_EXPORT void ComputeOneEdgeOVertexPresentation (const Handle(Prs3d_Presentation)& aPresentation); + + Standard_EXPORT void ComputeTwoEdgesPresentation (const Handle(Prs3d_Presentation)& aPresentation); + + Standard_EXPORT void ComputeTwoLinesPresentation (const Handle(Prs3d_Presentation)& aPresentation, const Handle(Geom_Line)& aLin, gp_Pnt& Pnt1On1, gp_Pnt& Pnt2On1, gp_Pnt& Pnt1On2, gp_Pnt& Pnt2On2, const Standard_Boolean isInf1, const Standard_Boolean isInf2); + + Standard_EXPORT void ComputeTwoCirclesPresentation (const Handle(Prs3d_Presentation)& aPresentation, const Handle(Geom_Circle)& aCircle, const gp_Pnt& Pnt1On1, const gp_Pnt& Pnt2On1, const gp_Pnt& Pnt1On2, const gp_Pnt& Pnt2On2); + + //! Computes the presentation of the identic constraint + //! between 2 arcs in the case of automatic presentation + Standard_EXPORT void ComputeAutoArcPresentation (const Handle(Geom_Circle)& aCircle, const gp_Pnt& firstp, const gp_Pnt& lastp, const Standard_Boolean isstatic = Standard_False); + + //! Computes the presentation of the identic constraint + //! between 2 circles in the case of non automatic presentation + Standard_EXPORT void ComputeNotAutoCircPresentation (const Handle(Geom_Circle)& aCircle); + + //! Computes the presentation of the identic constraint + //! between 2 arcs in the case of non automatic presentation + Standard_EXPORT void ComputeNotAutoArcPresentation (const Handle(Geom_Circle)& aCircle, const gp_Pnt& pntfirst, const gp_Pnt& pntlast); + + Standard_EXPORT void ComputeTwoEllipsesPresentation (const Handle(Prs3d_Presentation)& aPrs, const Handle(Geom_Ellipse)& anEll, const gp_Pnt& Pnt1On1, const gp_Pnt& Pnt2On1, const gp_Pnt& Pnt1On2, const gp_Pnt& Pnt2On2); + + //! Computes the presentation of the identic constraint + //! between 2 arcs in the case of automatic presentation + Standard_EXPORT void ComputeAutoArcPresentation (const Handle(Geom_Ellipse)& theEll, const gp_Pnt& firstp, const gp_Pnt& lastp, const Standard_Boolean isstatic = Standard_False); + + //! Computes the presentation of the identic constraint + //! between 2 ellipses in the case of non automatic presentation + Standard_EXPORT void ComputeNotAutoElipsPresentation (const Handle(Geom_Ellipse)& theEll); + + //! Computes the presentation of the identic constraint + //! between 2 arcs in the case of non automatic presentation + Standard_EXPORT void ComputeNotAutoArcPresentation (const Handle(Geom_Ellipse)& theEll, const gp_Pnt& pntfirst, const gp_Pnt& pntlast); + + Standard_EXPORT void ComputeTwoVerticesPresentation (const Handle(Prs3d_Presentation)& aPresentation); + + Standard_EXPORT Standard_Real ComputeSegSize() const; + + Standard_EXPORT Standard_Boolean ComputeDirection (const TopoDS_Wire& aWire, const TopoDS_Vertex& aVertex, gp_Dir& aDir) const; + + Standard_EXPORT gp_Dir ComputeLineDirection (const Handle(Geom_Line)& aLin, const gp_Pnt& anExtremity) const; + + Standard_EXPORT gp_Dir ComputeCircleDirection (const Handle(Geom_Circle)& aCirc, const TopoDS_Vertex& ConnectedVertex) const; + + Standard_Boolean isCircle; + gp_Pnt myFAttach; + gp_Pnt mySAttach; + gp_Pnt myCenter; + + +}; + + +#include + + + + + +#endif // _AIS_IdenticRelation_HeaderFile diff --git a/src/AIS/AIS_InteractiveContext.cdl b/src/AIS/AIS_InteractiveContext.cdl deleted file mode 100644 index b6cbb71695..0000000000 --- a/src/AIS/AIS_InteractiveContext.cdl +++ /dev/null @@ -1,2089 +0,0 @@ --- 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. - ---Modified by --- rob : Dec 17 1997 -> Update Method Added + Use in Deviation Angle... --- rob : Feb 05 1998 -> UpdateOnlySelection, UpdateOnlyPrs --- Apr 02 1998 -> Select Methods has been added a boolean updateviewer. --- VSV : 22/05/01 Add Selection by polygon --- SAV : Add DisplayFromCollector() method --- SLN : SetToHilightSelected method added - - - -class InteractiveContext from AIS inherits TShared from MMgt - - ---Purpose: 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. - -- You must distinguish two states in the Interactive Context: - -- - No Open Local Context, also known as the Neutral Point. - -- - One or several open local contexts, each - -- representing a temporary state of selection and presentation. - -- Some methods can only be used in open Local - -- Context; others in closed Local Context; others do - -- not have the same behavior in one state as in the other. - -- The possiblities of use for local contexts are - -- numerous depending on the type of operation that - -- you want to perform, for example: - -- - working on all visualized interactive objects, - -- - working on only a few objects, - -- - working on a single object. - -- 1. When you want ot work on one type of entity, you - -- should open a local context with the option - -- UseDisplayedObjects set to false. DisplayedObjects - -- allows you to recover the visualized Interactive - -- Objects which have a given Type and - -- Signature from Neutral Point. - -- 2. You must keep in mind the fact that when you open - -- a Local Context with default options: - -- - The Interactive Objects visualized at Neutral Point - -- are activated with their default selection mode. You - -- must deactivate those which you do not want ot use. - -- - The Shape type Interactive Objects are - -- automatically decomposed into sub-shapes when - -- standard activation modes are launched. - -- - The "temporary" Interactive Objects present in the - -- Local Contexts are not automatically taken into - -- account. You have to load them manually if you - -- want to use them. - -- - The stages could be the following: - -- - Open a Local Context with the right options; - -- - Load/Visualize the required complementary - -- objects with the desired activation modes. - -- - Activate Standard modes if necessary - -- - Create its filters and add them to the Local Context - -- - Detect/Select/recover the desired entities - -- - Close the Local Context with the adequate index. - -- - It is useful to create an interactive editor, to which - -- you pass the Interactive Context. This will take care - -- of setting up the different contexts of - -- selection/presentation according to the operation - -- which you want to perform. - -uses - Address from Standard, - Viewer from V3d, - View from V3d, - NameOfColor from Quantity, - Color from Quantity, - Ratio from Quantity, - Drawer from Prs3d, - ExtendedString from TCollection, - AsciiString from TCollection, - Shape from TopoDS, - SelectionManager from SelectMgr, - PresentationManager3d from PrsMgr, - ViewerSelector3d from StdSelect, - SensitivityMode from StdSelect, - MapOfInteractive from AIS, - InteractiveObject from AIS, - DisplayMode from AIS, - NameOfMaterial from Graphic3d, - --NameOfPhysicalMaterial from Graphic3d, - Filter from SelectMgr, - ListOfFilter from SelectMgr, - OrFilter from SelectMgr, - IndexedMapOfOwner from SelectMgr, - ShapeEnum from TopAbs, - ListOfInteractive from AIS, - SequenceOfInteractive from AIS, - ListOfInteger from TColStd, - DataMapOfIOStatus from AIS, - LocalContext from AIS, - DisplayStatus from AIS, - DataMapOfILC from AIS, - ClearMode from AIS, - KindOfInteractive from AIS, - TypeOfIso from AIS, - StatusOfDetection from AIS, - StatusOfPick from AIS, - LineAspect from Prs3d, - BasicAspect from Prs3d, - Location from TopLoc, - EntityOwner from SelectMgr, - TypeOfFacingModel from Aspect, - Array1OfPnt2d from TColgp, - Transformation from Geom - -is - - Create(MainViewer:Viewer from V3d) - returns InteractiveContext from AIS; - ---Purpose: - -- Constructs the interactive context object defined by - -- the principal viewer MainViewer. - - Delete(me) is redefined; - - ---Category: General DISPLAY SERVICES - SetAutoActivateSelection( me: mutable; Auto : Boolean from Standard ); - GetAutoActivateSelection( me ) returns Boolean from Standard; - - - Display(me : mutable; - anIobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True); - ---Purpose: Controls the choice between the using the display - -- and selection modes of open local context which you - -- have defined and activating those available by default. - -- If a local context is open and if updateviewer equals - -- Standard_False, the Interactive Object anIobj is - -- displayed in the default active 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. In - -- general, this is 0. - -- This syntax has the same behavior as local context, - -- open or closed. If you want to view the object in open - -- local context without selection, use the syntax below, - -- setting aSelectionMode to -1. - - Display (me : mutable; - theIObj : InteractiveObject from AIS; - theDispMode : Integer from Standard; - theSelectionMode : Integer from Standard; - theToUpdateViewer : Boolean from Standard = Standard_True; - theToAllowDecomposition : Boolean from Standard = Standard_True; - theDispStatus : DisplayStatus from AIS = AIS_DS_None); - ---Purpose: Controls the choice between the using the display - -- and selection modes of open local context which you - -- have defined and activating those available by default. - -- If no Local Context is opened. and the Interactive - -- Object theIObj has no display mode of its own, the - -- default display mode, 0, is used. Likewise, if theIObj - -- has no selection mode of its own, the default one, 0, is used. - -- If a local context is open and if theToUpdateViewer equals - -- Standard_False, the presentation of the Interactive - -- Object activates the selection mode; the object is - -- displayed but no viewer will be updated. - -- If theSelectionMode equals -1, theIObj will not be - -- activated: it will be displayed but will not be selectable. - -- Use this if you want to view the object in open local - -- context without selection. Note: This option is only - -- available in Local Context. - -- If theToAllowDecomposition equals true, theIObj can have - -- subshapes detected by selection mechanisms. theIObj - -- must be able to give a shape selection modes which - -- fit the AIS_Shape selection modes: - -- - vertices: 1 - -- - edges: 2 - -- - wires: 3. - - Load(me:mutable; - aniobj : InteractiveObject from AIS; - SelectionMode : Integer from Standard = -1; - AllowDecomp : Boolean from Standard = Standard_False); - ---Purpose: Allows you to load the Interactive Object aniobj - -- with a given selection mode SelectionMode, and/or --- with the desired decomposition option, whether the --- object is visualized or not. If AllowDecomp = --- Standard_True and, if the interactive object is of --- the "Shape" type, these "standard" selection --- modes will be automatically activated as a function --- of the modes present in the Local Context. --- The loaded objects will be selectable but --- displayable in highlighting only when detected by the Selector. --- This method is available only when Local Contexts are open. - - - Erase(me : mutable; - aniobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True); ----Purpose: Hides the object. The object's presentations are simply --- flagged as invisible and therefore excluded from redrawing. --- To show hidden objects, use Display(). - - EraseAll (me : mutable; - updateviewer: Boolean from Standard = Standard_True); - ---Purpose: Hides all objects. The object's presentations are simply --- flagged as invisible and therefore excluded from redrawing. --- To show all hidden objects, use DisplayAll(). - - DisplayAll(me : mutable; - updateviewer: Boolean from Standard = Standard_True); - ---Purpose: Displays all hidden objects. - - EraseSelected(me: mutable; - updateviewer: Boolean from Standard = Standard_True); - ---Purpose: --- Hides selected objects. The object's presentations are simply --- flagged as invisible and therefore excluded from redrawing. --- To show hidden objects, use Display(). - - DisplaySelected(me:mutable;updateviewer:Boolean from Standard = Standard_True); - ---Purpose: Displays selected objects if a local context is open. --- Displays current objects if there is no active local context. --- Objects selected when there is no open local context --- are called current objects; those selected in open --- local context, selected objects. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - - KeepTemporary(me : mutable; - anIObj : InteractiveObject from AIS; - InWhichLocal: Integer from Standard = -1) - returns Boolean from Standard; ----Purpose: Changes the status of a temporary object. It will be --- kept at the neutral point, i.e. put in the list of --- displayed objects along withwith its temporary --- attributes. These include display mode and --- selection mode, for example. --- Returns true if done. --- inWhichLocal gives the local context in which anIObj --- is displayed. By default, the index -1 refers to the last --- Local Context opened. - - ClearPrs( me :mutable; - aniobj : InteractiveObject from AIS; - aMode : Integer from Standard = 0; - updateviewer : Boolean from Standard = Standard_True); - ---Purpose: Empties the graphic presentation of the mode --- indexed by aMode. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. --- Warning --- Removes anIobj. anIobj is still active if it was --- previously activated. - - Remove(me:mutable; - aniobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True); - ---Purpose: Removes aniobj from every viewer. aniobj is no --- longer referenced in the Context. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - RemoveAll(me:mutable; - updateviewer : Boolean from Standard = Standard_True); - ---Purpose: Removes all the objects from all opened Local Contexts - -- and from the Neutral Point - - - Hilight(me:mutable; - aniobj : InteractiveObject from AIS; - updateviewer: Boolean from Standard = Standard_True); - ---Purpose: --- 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. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - HilightWithColor(me:mutable; - aniobj :InteractiveObject from AIS; - aCol : NameOfColor from Quantity; - updateviewer: Boolean from Standard = Standard_True); ----Purpose: --- Changes the color of all the lines of the object in view, --- aniobj. It paints these lines the color passed as the --- argument, aCol. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - Unhilight(me:mutable; - aniobj : InteractiveObject from AIS; - updateviewer: Boolean from Standard = Standard_True); ----Purpose: --- Removes hilighting from the entity aniobj. Updates the viewer. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - SetDisplayPriority(me:mutable; - anIobj: InteractiveObject from AIS; - aPriority : Integer from Standard); - ---Purpose: Sets the display priority aPriority of the seen parts --- presentation of the entity anIobj. - - SetZLayer( me : mutable; - theIObj : InteractiveObject from AIS; - theLayerId : Integer from Standard ); - ---Purpose: 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. - - GetZLayer( me; - theIObj : InteractiveObject from AIS ) - returns Integer from Standard; - ---Purpose: Get Z layer id set for displayed interactive object. - - Redisplay(me : mutable; - aniobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True; - allmodes : Boolean from Standard = Standard_False); - ---Purpose: Recomputes the seen parts presentation of the entity --- aniobj. If allmodes equals true, all presentations are --- present in the object even if unseen. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - Redisplay(me : mutable; - aTypeOfObject: KindOfInteractive from AIS; - Signature : Integer from Standard =-1; - updateviewer : Boolean from Standard = Standard_True); - ---Purpose: Recomputes the Prs/Selection of displayed objects of - -- a given type and a given signature. - -- if signature = -1 doesnt take signature criterion. - - - RecomputePrsOnly(me:mutable; - anIobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True; - allmodes : Boolean from Standard = Standard_False); - ---Purpose: Recomputes the displayed presentations, flags the others - -- Doesn't update presentations - - - - RecomputeSelectionOnly(me:mutable; - anIObj : InteractiveObject from AIS); - ---Purpose: Recomputes the active selections, flags the others - -- Doesn't update presentations - - Update (me : mutable; - theIObj : InteractiveObject from AIS; - theUpdateViewer : Boolean from Standard = Standard_True); - ---Purpose: 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. - - SetDisplayMode(me : mutable; - aniobj : InteractiveObject from AIS; - aMode : Integer from Standard; - updateviewer: Boolean from Standard = Standard_True); - ----Purpose: --- Sets the display mode of seen Interactive Objects. --- aMode provides the display mode index of the entity aniobj. --- If updateviewer equals Standard_True, the --- predominant mode aMode will overule the context mode. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object returns to the default selection mode; the --- object is displayed but no viewer will be updated. --- Note that display mode 3 is only used if you have an --- AIS_Textured Shape. - - - UnsetDisplayMode(me : mutable; - aniobj : InteractiveObject from AIS; - updateviewer: Boolean from Standard = Standard_True); ----Purpose: --- Unsets the display mode of seen Interactive Objects. --- aMode provides the display mode index of the entity aniobj. --- If updateviewer equals Standard_True, the --- predominant mode aMode will overule the context mode. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object returns to the default selection mode; the --- object is displayed but no viewer will be updated. - SetSelectionMode(me:mutable; - aniobj:InteractiveObject from AIS; - aMode :Integer from Standard); ----Purpose: --- Sets the selection mode of Interactive Objects. --- aMode provides the selection mode index of the entity aniobj. - UnsetSelectionMode(me : mutable; - aniobj : InteractiveObject from AIS); ----Purpose: --- Removes selection mode from Interactive Objects. --- aMode provides the selection mode index of the entity aniobj. - - SetPixelTolerance(me:mutable; - aPrecision: Real from Standard = 2.0); - ---Level: Public - ---Purpose: Disables the mechanism of adaptive tolerance calculation in SelectMgr_ViewerSelector and - -- sets the given tolerance for ALL sensitive entities activated. For more information, see - -- SelectMgr_ViewerSelector documentation - -- Warning: When a local context is open the sensitivity is apply on it - -- instead on the main context. - - PixelTolerance(me) returns Real from Standard; - ---Level: Public - ---Purpose: Returns the pixel tolerance. - - ---Category: put locations on objects.... - -- - - SetLocation(me:mutable; - aniobj : InteractiveObject from AIS; - aLocation : Location from TopLoc); ----Purpose: Puts the location aLocation on the initial graphic --- representation and the selection for the entity aniobj. --- In other words, aniobj is visible and selectable at a --- position other than initial position. --- Graphic and selection primitives are not recomputed. --- To clean the view correctly, you must reset the previous location. - - ResetLocation(me : mutable; - aniobj : InteractiveObject from AIS); - ---Purpose: Puts the entity aniobj back into its initial position. - - - - HasLocation(me; - aniobj : InteractiveObject from AIS) - returns Boolean from Standard; ----Purpose: --- Returns true if the entity aniobj has a location. - - Location(me; - aniobj : InteractiveObject from AIS) - returns Location from TopLoc; - ---Purpose: - -- Returns the location of the entity aniobj. - - - - SetCurrentFacingModel(me: mutable; - aniobj : InteractiveObject from AIS; - aModel: TypeOfFacingModel from Aspect = Aspect_TOFM_BOTH_SIDE); - ---Purpose: 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. - - SetColor(me : mutable; - aniobj : InteractiveObject from AIS; - aColor : NameOfColor from Quantity; - updateviewer : Boolean from Standard = Standard_True); - - SetColor(me : mutable; - aniobj : InteractiveObject from AIS; - aColor : Color from Quantity; - updateviewer : Boolean from Standard = Standard_True); ----Purpose: --- Sets the color of the selected entity. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - UnsetColor(me :mutable; - aniobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True); ---- Purpose: Removes the color selection for the selected entity. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - SetWidth(me:mutable; - aniobj : InteractiveObject from AIS; - aValue:Real from Standard; - updateviewer : Boolean from Standard = Standard_True) is virtual; ----Purpose: --- Sets the width of the entity aniobj. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - UnsetWidth(me:mutable; - aniobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True) is virtual; ----Purpose: --- Removes the width setting of the entity aniobj. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - SetMaterial(me:mutable; - aniobj : InteractiveObject from AIS; - aName:NameOfMaterial from Graphic3d; - --aName:NameOfPhysicalMaterial from Graphic3d; - updateviewer : Boolean from Standard = Standard_True); ----Purpose: --- Provides the type of material setting for the view of --- the entity aniobj. --- The range of settings includes: BRASS, BRONZE, --- GOLD, PEWTER, SILVER, STONE. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - UnsetMaterial(me : mutable; - anObj : InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True); ----Purpose: --- Removes the type of material setting for viewing the --- entity aniobj. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - SetTransparency(me:mutable; - aniobj : InteractiveObject from AIS; - aValue : Real from Standard=0.6; - updateviewer : Boolean from Standard = Standard_True); - ---Purpose: Provides the transparency settings for viewing the --- entity aniobj. The transparency value aValue may be --- between 0.0, opaque, and 1.0, fully transparent. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - UnsetTransparency(me : mutable; - aniobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True); ----Purpose: --- Removes the transparency settings for viewing the --- entity aniobj. The transparency value aValue may be --- between 0.0, opaque, and 1.0, fully transparent. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - SetLocalAttributes(me : mutable; - aniobj : InteractiveObject from AIS; - aDrawer : Drawer from Prs3d; - updateviewer : Boolean from Standard = Standard_True); ---- Purpose: --- Sets the attributes of the interactive object aniobj by --- plugging the attribute manager aDrawer into the local --- context. The graphic attributes of aDrawer such as --- visualization mode, color, and material, are then used --- to display aniobj. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - UnsetLocalAttributes(me : mutable; - anObj : InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True); ----Purpose: --- Removes the settings for local attributes of the entity --- anObj and returns to the Neutral Point attributes or --- those of the previous local context. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - - SetPolygonOffsets ( me : mutable; - anObj : InteractiveObject from AIS; - aMode : Integer from Standard; - aFactor : ShortReal from Standard = 1.0; - aUnits : ShortReal from Standard = 0.0; - updateviewer : Boolean from Standard = Standard_True ) is static; - ---Purpose: Sets up polygon offsets for the given AIS_InteractiveObject. - -- It simply calls anObj->SetPolygonOffsets() - - - HasPolygonOffsets ( me; - anObj : InteractiveObject from AIS ) - returns Boolean from Standard - is static; - ---Level: Public - ---Purpose: simply calls anObj->HasPolygonOffsets() - ---Category: Inquire methods - - PolygonOffsets ( me; - anObj : InteractiveObject from AIS; - aMode : out Integer from Standard; - aFactor : out ShortReal from Standard; - aUnits : out ShortReal from Standard ) is static; - ---Level: Public - ---Purpose: Retrieves current polygon offsets settings for . - ---Category: Inquire methods - - - SetTrihedronSize(me:mutable;aSize:Real from Standard;updateviewer: Boolean from Standard = Standard_True); - ---Purpose: 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. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - TrihedronSize(me) returns Real from Standard; - ---Purpose: returns the current value of trihedron size. - - - SetPlaneSize(me:mutable;aSizeX,aSizeY:Real from Standard;updateviewer: Boolean from Standard = Standard_True); ----Purpose: --- Sets the plane size defined by the length in the X --- direction XSize and that in the Y direction YSize. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - SetPlaneSize(me:mutable;aSize:Real from Standard;updateviewer: Boolean from Standard = Standard_True); ----Purpose: --- Sets the plane size aSize. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. --- May be used if PlaneSize returns true. - - PlaneSize(me; XSize,YSize:out Real from Standard) returns Boolean from Standard; - ---Purpose: Returns true if the length in the X direction XSize is --- the same as that in the Y direction YSize. - - DisplayStatus (me; anIobj: InteractiveObject from AIS) - returns DisplayStatus from AIS; - ---Purpose: Returns the display status of the entity anIobj. --- This will be one of the following: --- - DS_Displayed displayed in main viewer --- - DS_Erased hidden in main viewer --- - DS_Temporary temporarily displayed --- - DS_None nowhere displayed. - - DisplayedModes (me;aniobj: InteractiveObject from AIS) - returns ListOfInteger from TColStd; - ---C++: return const & - ---Purpose: - -- Returns the list of active display modes for the entity aniobj. - - IsDisplayed(me; anIobj:InteractiveObject from AIS) returns Boolean from Standard; - ---Purpose: Returns true if anIobj is displayed in the interactive context. - - IsDisplayed(me; - aniobj: InteractiveObject from AIS; - aMode : Integer from Standard) - returns Boolean from Standard; - - IsHilighted(me;aniobj : InteractiveObject from AIS) - returns Boolean from Standard; - - IsHilighted(me; - anIobj : InteractiveObject from AIS; - WithColor: out Boolean from Standard; - theHiCol : out NameOfColor from Quantity) - returns Boolean from Standard; - ---Purpose: if is hilighted with a specific color - -- will be returned TRUE - -- gives the name of the hilightcolor - - DisplayPriority(me;anIobj: InteractiveObject from AIS) - returns Integer from Standard; ----Purpose: --- Returns the display priority of the entity anIobj. This --- will be display mode of anIobj if it is in the main --- viewer. - - HasColor(me; aniobj: InteractiveObject from AIS) - returns Boolean from Standard; ----Purpose: --- Returns true if a view of the Interactive Object aniobj has color. - Color(me;aniobj:InteractiveObject from AIS) - returns NameOfColor from Quantity; - - Color(me; aniobj: InteractiveObject from AIS; - acolor: out Color from Quantity); ----Purpose: --- Returns the color Color of the entity aniobj in the interactive context. - Width(me; - aniobj : InteractiveObject from AIS) - returns Real from Standard is virtual; ----Purpose: --- Returns the width of the Interactive Object aniobj in --- the interactive context. - - Status(me; - anObj : InteractiveObject from AIS; - astatus : in out ExtendedString from TCollection); ----Purpose: --- Returns the status astatus of the Interactive Context --- for the view of the Interactive Object anObj. - - UpdateCurrentViewer(me:mutable); - ---Purpose: --- Updates the current viewer, the viewer in Neutral Point. --- Objects selected when there is no open local context --- are called current objects; those selected in open --- local context, selected objects. - - ---Category: General Attributes for the session - - DisplayMode(me) returns Integer from Standard; - ---C++: inline - ---Purpose: Returns the display mode setting. - -- Note that mode 3 is only used. - - HilightColor(me) returns NameOfColor from Quantity; -- dynamic selection - ---C++: inline - ---Purpose: - -- Returns the name of the color used to show - -- highlighted entities, that is, entities picked out by the mouse. - - SelectionColor(me) returns NameOfColor from Quantity; - ---C++: inline - ---Purpose: - -- Returns the name of the color used to show selected entities. - -- By default, this is Quantity_NOC_GRAY80. - - PreSelectionColor(me) returns NameOfColor from Quantity; - ---C++: inline - ---Purpose: Returns the name of the color used to show preselection. - -- By default, this is Quantity_NOC_GREEN. - - DefaultColor(me) returns NameOfColor from Quantity; - ---C++: inline - ---Purpose: - -- Returns the name of the color used by default. - -- By default, this is Quantity_NOC_GOLDENROD. - - SubIntensityColor(me) returns NameOfColor from Quantity; - ---C++: inline - ---Purpose: - -- Returns the name of the color used to show that an - -- object is not currently selected. - -- By default, this is Quantity_NOC_GRAY40. - - SetHilightColor(me:mutable;aHiCol:NameOfColor from Quantity); - ---C++: inline - ---Purpose: - -- Sets the color used to show highlighted entities, that - -- is, entities picked by the mouse. - -- By default, this is Quantity_NOC_CYAN1. - - SelectionColor(me:mutable;aCol:NameOfColor from Quantity); - ---C++: inline - ---Purpose: - -- Sets the color used to show selected entities. - -- By default, this is Quantity_NOC_GRAY80. - - SetPreselectionColor(me:mutable;aCol:NameOfColor from Quantity); - ---C++: inline - ---Purpose: - -- Allows you to set the color used to show preselection. - -- By default, this is Quantity_NOC_GREEN. - -- A preselected entity is one which has been selected - -- as the domain of application of a function such as a fillet. - - SetSubIntensityColor(me:mutable;aCol:NameOfColor from Quantity); - ---C++: inline - ---Purpose: - -- Sets the color used to show that an object is not currently selected. - -- By default, this is Quantity_NOC_GRAY40. - - SetDisplayMode(me:mutable;AMode: DisplayMode from AIS; - updateviewer: Boolean from Standard = Standard_True); - ---Purpose: - -- Sets the display mode of seen Interactive Objects. - -- aMode provides the display mode index of the entity aniobj. - -- If updateviewer equals Standard_True, the - -- predominant mode aMode will overule the context mode. - -- If a local context is open and if updateviewer equals - -- Standard_False, the presentation of the Interactive - -- Object returns to the default selection mode; the - -- object is displayed but no viewer will be updated. - -- Note that display mode 3 is only used if you have an - -- AIS_Textured Shape. - - - SetDeviationCoefficient(me : mutable; - aniobj : InteractiveObject from AIS; - aCoefficient : Real from Standard ; - updateviewer : Boolean from Standard = Standard_True); - --- Purpose: - -- Sets the deviation coefficient aCoefficient. - -- 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 - -- aCoefficient 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. - -- default 0.001 - - SetDeviationAngle(me : mutable; - aniobj : InteractiveObject from AIS; - anAngle : Real from Standard ; - updateviewer : Boolean from Standard = Standard_True); - - SetAngleAndDeviation(me : mutable; - aniobj : InteractiveObject from AIS; - anAngle : Real from Standard ; - updateviewer : Boolean from Standard = Standard_True); - ---Purpose: Calls the AIS_Shape SetAngleAndDeviation to set - -- both Angle and Deviation coefficients - SetHLRDeviationCoefficient(me : mutable; - aniobj : InteractiveObject from AIS; - aCoefficient : Real from Standard ; - updateviewer : Boolean from Standard = Standard_True); ----Purpose: --- Sets the deviation coefficient aCoefficient for --- removal of hidden lines created by different --- viewpoints in different presentations. The Default value is 0.02. - - SetHLRDeviationAngle(me : mutable; - aniobj : InteractiveObject from AIS; - anAngle : Real from Standard ; - updateviewer : Boolean from Standard = Standard_True); - - - SetHLRAngleAndDeviation(me : mutable; - aniobj : InteractiveObject from AIS; - anAngle : Real from Standard ; - updateviewer : Boolean from Standard = Standard_True); - ---Purpose : Computes a HLRAngle and a --- HLRDeviationCoefficient by means of the angle --- anAngle and sets the corresponding methods in the --- default drawing tool with these values. - -- - - SetDeviationCoefficient(me: mutable; aCoefficient: Real from Standard); - ---Purpose: Sets the deviation coefficient aCoefficient. --- 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 --- aCoefficient 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. --- default 0.001 - - DeviationCoefficient(me) returns Real from Standard ; ----Purpose: 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. - - SetDeviationAngle(me : mutable; anAngle : Real from Standard) ; - ---Purpose: default 6degrees - DeviationAngle(me) returns Real from Standard ; - - SetHLRDeviationCoefficient(me: mutable; aCoefficient: Real from Standard); - ---Purpose: Sets the deviation coefficient aCoefficient for --- removal of hidden lines created by different --- viewpoints in different presentations. The Default value is 0.02. - HLRDeviationCoefficient(me) returns Real from Standard ; ----Purpose: --- Returns the real number value of the hidden line --- removal deviation coefficient. --- 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 give 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. --- To find the hidden lines, hidden line display mode --- entails recalculation of the view at each different --- projector perspective. --- Because hidden lines entail calculations of more than --- usual complexity to decompose them into these --- triangles, a deviation coefficient allowing greater --- tolerance is used. This increases efficiency in calculation. --- The Default value is 0.02. - - SetHLRAngle(me: mutable; anAngle: Real from Standard); - ---Purpose: Sets the HLR angle anAngle. - HLRAngle(me) returns Real from Standard - is static; ---- Purpose: --- Returns the real number value of the deviation angle --- in hidden line removal views in this interactive context. --- The default value is 20*PI/180. - - SetHLRAngleAndDeviation(me: mutable; anAngle: Real from Standard); - ---Purpose: compute with anangle a HLRAngle and a HLRDeviationCoefficient - -- and set them in myHLRAngle and in myHLRDeviationCoefficient - -- of myDefaultDrawer ; - -- anAngle is in radian ; ( 1 deg < angle in deg < 20 deg) - - HiddenLineAspect(me) returns LineAspect from Prs3d - ---Purpose: 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. - is static; - - SetHiddenLineAspect(me; anAspect: LineAspect from Prs3d) - is static; ---- Purpose: --- Sets the hidden line aspect anAspect. --- anAspect defines display attributes for hidden lines in --- HLR projections. - - DrawHiddenLine(me) returns Boolean from Standard - ---Purpose: returns Standard_True if the hidden lines are to be drawn. - -- By default the hidden lines are not drawn. - is static; - - EnableDrawHiddenLine(me) - ---Purpose: - is static; - - DisableDrawHiddenLine(me) - ---Purpose: - is static; - - - SetIsoNumber(me : mutable; - NbIsos : Integer from Standard; - WhichIsos : TypeOfIso from AIS = AIS_TOI_Both); ----Purpose: Sets the number of U and V isoparameters displayed. - - IsoNumber(me : mutable; - WhichIsos : TypeOfIso from AIS = AIS_TOI_Both) - returns Integer from Standard; ----Purpose: Returns the number of U and V isoparameters displayed. - - - IsoOnPlane(me:mutable; SwitchOn :Boolean from Standard); ----Purpose: Returns True if drawing isoparameters on planes is enabled. - IsoOnPlane(me) returns Boolean from Standard; ----Purpose: Returns True if drawing isoparameters on planes is enabled. - - ---Purpose: if = False, - - SetSelectedAspect ( me : mutable; anAspect: any BasicAspect from Prs3d; - globalChange: Boolean from Standard = Standard_True; - updateViewer: Boolean from Standard = Standard_True) - is static; - ---Level: Public - ---Purpose: Sets the graphic basic aspect to the current presentation of - -- ALL selected objects. - -- When is TRUE , the full object presentation - -- is changed. - -- When is FALSE , only the current group - -- of the object presentation is changed. - -- Updates the viewer when is TRUE - ---Category: Graphic attributes management - - ---Category: GRAPHIC DETECTION / SELECTION - - MoveTo (me : mutable; - theXPix, theYPix : Integer from Standard; - theView : View from V3d; - theToRedrawOnUpdate : Boolean from Standard = Standard_True) - returns StatusOfDetection from AIS; - ---Purpose: 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. - -- Functions in both Neutral Point and local contexts. - -- If theToRedrawOnUpdate is set to false, callee should call RedrawImmediate() to highlight detected object. - - HasNextDetected(me) returns Boolean from Standard; - ---Purpose: returns True if other entities were detected in the - -- last mouse detection - - HilightNextDetected (me : mutable; - theView : View from V3d; - theToRedrawImmediate : Boolean from Standard = Standard_True) - returns Integer from Standard; - ---Purpose: 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! - -- returns the Rank of hilighted entity - -- WARNING : Loop Method. When all the detected entities - -- have been hilighted , the next call will hilight - -- the first one again - - HilightPreviousDetected (me : mutable; - theView : View from V3d; - theToRedrawImmediate : Boolean from Standard = Standard_True) - returns Integer from Standard; - ---Purpose: Same as previous methods in reverse direction... - - Select(me:mutable;XPMin,YPMin,XPMax,YPMax:Integer from Standard;aView:View from V3d; - updateviewer: Boolean from Standard = Standard_True) - returns StatusOfPick from AIS; - ---Purpose: Selects everything found in the bounding rectangle --- defined by the pixel minima and maxima, XPMin, --- YPMin, XPMax, and YPMax in the view, aView --- The objects detected are passed to the main viewer, --- which is then updated. - - Select(me:mutable; Polyline:Array1OfPnt2d from TColgp;aView:View from V3d; - updateviewer: Boolean from Standard = Standard_True) - returns StatusOfPick from AIS; - ---Purpose: polyline selection; clears the previous picked list - - Select(me : mutable; - updateviewer: Boolean from Standard = Standard_True) - returns StatusOfPick from AIS; - ---Purpose: Stores and hilights the previous detected; Unhilights - -- the previous picked. - - ShiftSelect(me : mutable; - updateviewer : Boolean from Standard = Standard_True) - returns StatusOfPick from AIS; - ---Purpose: 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. - - ShiftSelect( me : mutable; Polyline : Array1OfPnt2d from TColgp; aView : View from V3d; - updateviewer : Boolean from Standard = Standard_True) - returns StatusOfPick from AIS; - ---Purpose: 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. - - - ShiftSelect(me:mutable;XPMin,YPMin,XPMax,YPMax:Integer from Standard;aView:View from V3d; - updateviewer : Boolean from Standard = Standard_True) - returns StatusOfPick from AIS; - ---Purpose: rectangle of selection ; adds new detected entities into the - -- picked list, removes the detected entities that were already stored... - - SetToHilightSelected(me: mutable; toHilight: Boolean from Standard); - ---C++: inline - ---Purpose: 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. - - ToHilightSelected(me) returns Boolean from Standard; - ---C++: inline - ---Purpose: Return value specified whether selected object must be hilighted - --- when mouse cursor is moved above it - - - ---Category: non interactive actions about Selection - -- 2 categories are distinct: - -- - Current Objects - -- - Selected Objects - -- a Current object is the object picked - -- at neutral Point. - -- The Selected objects are objects picked - -- when a local context is opened - - - SetCurrentObject(me:mutable; - aniobj: InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True); ---- Purpose: --- 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. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - AddOrRemoveCurrentObject(me:mutable; - aniobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True); ----Purpose: --- Allows you to add a current object to the list of current --- objects or remove it from that list. --- Objects selected when there is no open local context --- are called current objects; those selected in open --- local context, selected objects. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - UpdateCurrent (me:mutable); - ---Purpose: 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. - -- - - WasCurrentTouched(me) returns Boolean from Standard; - ---Purpose: - -- Returns the current selection touched by the cursor. - -- Objects selected when there is no open local context - -- are called current objects; those selected in open - -- local context, selected objects. - ---C++: inline - - SetOkCurrent(me:mutable); - ---C++: inline - - IsCurrent(me;aniobj: InteractiveObject from AIS) returns Boolean from Standard; ---- Purpose: --- 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. - - InitCurrent(me:mutable); ---- Purpose: --- 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. - - MoreCurrent(me) returns Boolean from Standard; ---- Purpose: --- 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. - - NextCurrent(me:mutable); ----Purpose: --- 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. - - Current(me) returns InteractiveObject from AIS; ----Purpose: --- 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. - - NbCurrents(me:mutable) returns Integer from Standard; - - FirstCurrentObject(me:mutable) returns InteractiveObject from AIS; ----Purpose: --- Returns the first current 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. - - HilightCurrents(me : mutable; - updateviewer : Boolean from Standard=Standard_True); - ---Purpose: ---- Highlights current objects. --- Objects selected when there is no open local context --- are called current objects; those selected in open --- local context, selected objects. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - UnhilightCurrents(me : mutable; - updateviewer : Boolean from Standard=Standard_True); ----Purpose: --- 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. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - ClearCurrents(me:mutable; - updateviewer : Boolean from Standard=Standard_True); ----Purpose: --- 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. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - SetSelected(me:mutable;aniObj: InteractiveObject from AIS; - updateviewer : Boolean from Standard=Standard_True); - ---Purpose: Puts the interactive object aniObj in the list of - -- selected objects. - -- If a local context is open and if updateviewer equals - -- Standard_False, the presentation of the Interactive - -- Object activates the selection mode; the object is - -- displayed but no viewer will be updated. - - SetSelectedCurrent(me:mutable); - ---Purpose: puts the selected list in the current objects List. - UpdateSelected(me:mutable; - updateviewer : Boolean from Standard=Standard_True); - ---Purpose: updates the list of selected objects - -- i.e. hilights the new selected - -- unhilights old selected objects - AddOrRemoveSelected(me:mutable; - aniobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard=Standard_True); - ---Purpose:Allows you to add a selected object to the list of --- selected objects or remove it from that list. This entity --- can be an Interactive Object aniobj or its owner --- aShape as can be seen in the two syntaxes above. --- Objects selected when there is no open local context --- are called current objects; those selected in open --- local context, selected objects. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - HilightSelected(me : mutable; - updateviewer : Boolean from Standard=Standard_True); ----Purpose: --- Highlights selected objects. --- Objects selected when there is no open local context --- are called current objects; those selected in open --- local context, selected objects. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - UnhilightSelected(me : mutable; - updateviewer : Boolean from Standard=Standard_True); ----Purpose: --- Removes highlighting from selected objects. --- Objects selected when there is no open local context --- are called current objects; those selected in open --- local context, selected objects. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - ClearSelected(me:mutable; - updateviewer : Boolean from Standard=Standard_True); ----Purpose: --- Empties previous selected objects in order to get the --- selected objects detected by the selector using --- UpdateSelected. --- Objects selected when there is no open local context --- are called current objects; those selected in open --- local context, selected objects. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - AddOrRemoveSelected(me:mutable;aShape:Shape from TopoDS; - updateviewer : Boolean from Standard=Standard_True); - ---Purpose: No right to Add a selected Shape (Internal Management - -- of shape Selection). - -- A Previous selected shape may only be removed. - - - AddOrRemoveSelected(me:mutable;anOwner : EntityOwner from SelectMgr; - updateviewer: Boolean from Standard=Standard_True); - ---Purpose: allows to add/remove in the selected list the entities - -- represented by in the selection process. - - ---Category: Selection Process - - IsSelected(me;aniobj: InteractiveObject from AIS) returns Boolean from Standard; - --- Purpose: --- Finds the selected object aniobj in local context and --- returns its name. --- Objects selected when there is no open local context --- are called current objects; those selected in open --- local context, selected objects. - - InitSelected(me:mutable); ----Purpose: --- Initializes a scan of the selected objects in local context. --- Objects selected when there is no open local context --- are called current objects; those selected in open --- local context, selected objects. - - MoreSelected(me) returns Boolean from Standard; ----Purpose: --- Returns true if there is another object found by the --- scan of the list of selected objects. --- Objects selected when there is no open local context --- are called current objects; those selected in open --- local context, selected objects. - - - NextSelected(me:mutable); ----Purpose: --- Continues the scan to the next object in the list of --- selected objects. --- Objects selected when there is no open local context --- are called current objects; those selected in open --- local context, selected objects. - - NbSelected(me:mutable) returns Integer from Standard; - - HasSelectedShape(me) returns Boolean from Standard; ---- Purpose: --- Returns true if the interactive context has a shape --- selected in it which results from the decomposition of --- another entity in local context. --- If HasSelectedShape returns true, SelectedShape --- returns the shape which has been shown to be --- selected. Interactive returns the Interactive Object --- from which the shape has been selected. --- If HasSelectedShape returns false, Interactive --- returns the interactive entity selected by the click of the mouse. - - SelectedShape(me) returns Shape from TopoDS; ----Purpose: --- Returns the selected shape in the open local context. --- Objects selected when there is no open local context --- are called current objects; those selected in open --- local context, selected objects. - - SelectedOwner(me) returns EntityOwner from SelectMgr; ----Purpose: --- Returns the owner of the selected entity resulting --- from the decomposition of another entity in local context. - - EntityOwners(me; theOwners : out IndexedMapOfOwner from SelectMgr; - theIObj : InteractiveObject from AIS; - theMode : Integer from Standard = -1); - ---Purpose: Returns a collection containing all entity owners - --- created for the interactive object in - --- the selection mode theMode (in all active modes - --- if the Mode == -1) - - Interactive(me) returns InteractiveObject from AIS; - ---Purpose: Returns the location of the selected Interactive Object. - SelectedInteractive(me) returns InteractiveObject from AIS; - - HasApplicative(me) returns Boolean from Standard; ---- Purpose: --- Returns true if the applicative object has an owner --- from Interactive attributed to it. - - Applicative(me) returns Transient from Standard; ----Purpose: --- Returns the owner of the applicative entity detected --- in interactive context. The owner can be a shape for --- a set of sub-shapes or a sub-shape for sub-shapes --- which it is composed of. - - ---Category: information about detection... - - HasDetected (me) returns Boolean from Standard; ----Purpose: --- Returns true if there is a mouse-detected entity in local context. --- If there is no open local context, the objects selected --- are called current objects; selected objects if there is --- one. Iterators allow entities to be recovered in either --- case. This method is one of a set which allows you to --- manipulate the objects which have been placed in these two lists. - - HasDetectedShape(me) returns Boolean from Standard; ----Purpose: --- Returns true if there is a detected shape in local context. --- If there is no open local context, the objects selected --- are called current objects; selected objects if there is --- one. Iterators allow entities to be recovered in either --- case. This method is one of a set which allows you to --- manipulate the objects which have been placed in these two lists. - - DetectedShape (me) returns Shape from TopoDS; - ---Purpose: - -- Returns the shape detected in local context. - -- If there is no open local context, the objects selected - -- are called current objects; selected objects if there is - -- one. Iterators allow entities to be recovered in either - -- case. This method is one of a set which allows you to - -- manipulate the objects which have been placed in these two lists. - ---C++: return const & - - DetectedInteractive(me) returns InteractiveObject from AIS; ----Purpose: --- Returns the interactive objects last detected in open context. --- If there is no open local context, the objects selected --- are called current objects; selected objects if there is --- one. Iterators allow entities to be recovered in either --- case. This method is one of a set which allows you to --- manipulate the objects which have been placed in these two lists. - - DetectedOwner(me) returns EntityOwner from SelectMgr; - ---Purpose: returns the owner of the detected sensitive primitive. - - InitDetected(me: mutable); - ---Purpose: - -- Initialization for iteration through mouse-detected objects in - -- interactive context or in local context if it is opened. - MoreDetected(me) returns Boolean from Standard; - ---Purpose: - -- @return true if there is more mouse-detected objects after the current one - -- during iteration through mouse-detected interactive objects. - NextDetected(me: mutable); - ---Purpose: - -- Gets next current object during iteration through mouse-detected - -- interactive objects. - DetectedCurrentShape(me) returns Shape from TopoDS; - ---C++: return const & - ---Purpose: - -- @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. - DetectedCurrentObject(me) returns InteractiveObject from AIS; - --Purpose: - -- @return current mouse-detected interactive object or null object if there is no current detected. - - - ---Category: SPECIFIC LOCAL CONTEXT ACTIONS. - - - - OpenLocalContext(me : mutable; - UseDisplayedObjects : Boolean from Standard = Standard_True; - AllowShapeDecomposition : Boolean from Standard = Standard_True; - AcceptEraseOfObjects : Boolean from Standard = Standard_False; - BothViewers : Boolean from Standard = Standard_False) - returns Integer from Standard; - ---Purpose: --- Opens local contexts and specifies how this is to be --- done. The options listed above function in the following manner: --- - UseDisplayedObjects -allows you to load or not --- load the interactive objects visualized at Neutral --- Point in the local context which you open. If false, --- the local context is empty after being opened. If --- true, the objects at Neutral Point are loaded by their --- default selection mode. --- - AllowShapeDecomposition -AIS_Shape allows or --- prevents decomposition in standard shape location --- mode of objects at Neutral Point which are --- type-"privileged". This Flag is only taken into --- account when UseDisplayedObjects is true. --- - AcceptEraseOfObjects -authorises other local --- contexts to erase the interactive objects present in --- this context. This option is rarely used. --- - BothViewers - Has no use currently defined. --- This method returns the index of the created local --- context. It should be kept and used to close the context. --- Opening a local context allows you to prepare an --- environment for temporary presentations and --- selections which will disappear once the local context is closed. --- You can open several local contexts, but only the last --- one will be active. - - - - CloseLocalContext(me:mutable; - Index : Integer from Standard = -1; - updateviewer:Boolean from Standard=Standard_True); - ---Purpose: Allows you to close local contexts. For greater --- security, you should close the context with the --- index Index given on opening. --- When you close a local context, the one before, --- which is still on the stack, reactivates. If none is --- left, you return to Neutral Point. --- If a local context is open and if updateviewer --- equals Standard_False, the presentation of the --- Interactive Object activates the selection mode; the --- object is displayed but no viewer will be updated. --- Warning --- When the index isn't specified, the current context --- is closed. This option can be dangerous, as other --- Interactive Functions can open local contexts --- without necessarily warning the user. - - IndexOfCurrentLocal(me) returns Integer from Standard; - ---Purpose: returns -1 if no opened local context. - - CloseAllContexts (me:mutable;updateviewer:Boolean from Standard = Standard_True); ----Purpose: --- Allows you to close all local contexts at one go and --- return to Neutral Point. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - ResetOriginalState(me:mutable;updateviewer:Boolean from Standard = Standard_True); - ---Level: Internal - ---Purpose: to be used only with no opened - -- local context.. displays and activates objects in their - -- original state before local contexts were opened... - - ClearLocalContext(me:mutable;TheMode : ClearMode from AIS = AIS_CM_All); - ---Purpose: clears Objects/Filters/Activated Modes list in the current opened - -- local context. - - - UseDisplayedObjects(me:mutable); - NotUseDisplayedObjects(me:mutable); - ---Purpose: when a local Context is opened, one is able to - -- use/not use the displayed objects at neutral point - -- at anytime. - - - - ---Category: Immediate Mode : Used For Simulation - -- - -- CAUTION - -- 1] NO UPDATE OF VIEWER MUST BE DONE - -- BETWEEN BeginImmediateDraw() and EndImmediateDraw() - -- 2] Available only Inside Opened Local Contexts. - -- 3} During the Immediate Mode Displays, no Selection - -- is available. - -- - -- How To Use It? - -- - -- 1. BeginImmediateDraw() - -- 2. ImmediateAdd (Iobj,mode) - -- - -- 4.EndImmediateDraw() draws all the stored objects... - -- - - BeginImmediateDraw (me : mutable) - returns Boolean from Standard; - ---Purpose: initializes the list of presentations to be displayed - -- returns False if No Local COnte - - ImmediateAdd (me : mutable; - theObj : InteractiveObject from AIS; - theMode : Integer from Standard = 0) - returns Boolean from Standard; - ---Purpose: returns True if has been stored in the list. - - EndImmediateDraw (me : mutable; - theView : View from V3d) - returns Boolean from Standard; - ---Purpose: returns True if the immediate display has been done. - - EndImmediateDraw (me : mutable) - returns Boolean from Standard; - ---Purpose: Uses the First Active View of Main Viewer! - -- returns True if the immediate display has been done. - - IsImmediateModeOn(me) returns Boolean from Standard; - - ---Category: Activation/Deactivation of Selection Modes. - - SetAutomaticHilight(me:mutable;aStatus:Boolean); ----Purpose: --- Sets the highlighting status aStatus of detected and --- selected entities. --- Whether you are in Neutral Point or local context, this --- is automatically managed by the Interactive Context. --- This function allows you to disconnect the automatic mode. - AutomaticHilight(me) returns Boolean from Standard; ----Purpose: --- Returns true if the automatic highlight mode is active --- in an open context. - - SetZDetection(me:mutable; aStatus:Boolean = Standard_False); - ---Purpose: Enables/Disables the Z detection. - -- If TRUE the detection echo can be partially hidden by the - -- detected object. - ---Warning: The hidden part of the object is not visible but - -- stay selectable. - - ZDetection(me) returns Boolean; - ---Purpose: Retrieves the Z detection state. - - Activate(me : mutable; - anIobj : InteractiveObject from AIS; - aMode : Integer from Standard = 0; - theIsForce : Boolean from Standard = Standard_False); - ---Purpose: Activates the selection mode aMode whose index is --- given, for the given interactive entity anIobj. - - - Deactivate(me :mutable; - anIObj : InteractiveObject from AIS); - ---Purpose: Deactivates all the activated selection modes - -- of an object. - - Deactivate(me : mutable; - anIobj : InteractiveObject from AIS; - aMode : Integer from Standard); ----Purpose: --- Deactivates all the activated selection modes of the --- interactive object anIobj with a given selection mode aMode. - - ActivatedModes(me; - anIobj : InteractiveObject from AIS; - theList : in out ListOfInteger from TColStd); ----Purpose: --- Returns the list of activated selection modes in an open context. - - SetShapeDecomposition( me:mutable; - anIobj : InteractiveObject from AIS; - aStatus: Boolean from Standard); - ---Purpose: to be Used only with opened local context and - -- if is of type shape... - -- if = True will be sensitive to - -- shape selection modes activation. - -- = False, will not be senstive - -- any more. - -- - - SetTemporaryAttributes(me : mutable; - anObj : InteractiveObject from AIS; - aDrawer : Drawer from Prs3d; - updateviewer : Boolean = Standard_True); - ----Purpose: --- Sets the temporary graphic attributes of the entity --- anObj. These are provided by the attribute manager --- aDrawer and are valid for a particular local context only. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - SubIntensityOn(me : mutable; - aniobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard =Standard_True); ----Purpose: --- Highlights, and removes highlights from, the displayed --- object aniobj 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 and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - SubIntensityOff(me : mutable; - aniobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard =Standard_True); ----Purpose: --- Removes the subintensity option for the entity aniobj. --- If a local context is open and if updateviewer equals --- Standard_False, the presentation of the Interactive --- Object activates the selection mode; the object is --- displayed but no viewer will be updated. - - SubIntensityOn(me:mutable; - updateviewer : Boolean from Standard = Standard_True); - ---Purpose: hilights/unhilights displayed objects which are displayed at - -- neutral state with subintensity color; - -- available only for active local context. - -- No effect if no local context. - - - SubIntensityOff(me:mutable; - updateviewer : Boolean from Standard = Standard_True); - ---Purpose: removes subintensity option for all objects. - - - - - - - - ---Category: FILTERS - -- - -- - -- - - AddFilter(me :mutable; aFilter : Filter from SelectMgr); - ---Purpose: Allows you to add the filter aFilter to Neutral Point or --- to a local context if one or more selection modes have been activated. --- Only type filters may be active in Neutral Point. - - RemoveFilter(me:mutable;aFilter : Filter from SelectMgr); - ----Purpose: --- Removes a filter from Neutral Point or a local context --- if one or more selection modes have been activated. --- Only type filters are activated in Neutral Point. - - RemoveFilters(me:mutable); - ---Purpose: Remove a filter to Neutral Point or a local context if --- one or more selection modes have been activated. --- Only type filters are active in Neutral Point. - - ActivateStandardMode(me:mutable; aStandardActivation : ShapeEnum from TopAbs); - ---Purpose: Provides an alternative to the Display methods when --- activating specific selection modes. This has the --- effect of activating the corresponding selection mode --- aStandardActivation for all objects in Local Context --- which accept decomposition into sub-shapes. --- Every new Object which has been loaded into the --- interactive context and which answers these --- decomposition criteria is automatically activated --- according to these modes. --- Warning --- If you have opened a local context by loading an --- object with the default options --- (= Standard_True), all --- objects of the "Shape" type are also activated with --- the same modes. You can act on the state of these --- "Standard" objects by using SetShapeDecomposition(Status). - - - DeactivateStandardMode (me:mutable; aStandardActivation : ShapeEnum from TopAbs); ----Purpose: --- Provides an alternative to the Display methods when --- deactivating specific selection modes. This has the --- effect of deactivating the corresponding selection --- mode aStandardActivation for all objects in Local --- Context which accept decomposition into sub-shapes. - - ActivatedStandardModes(me) returns ListOfInteger from TColStd; - ---Purpose: - -- Returns the list of activated standard selection modes - -- available in a local context. - ---C++: return const& - - Filters(me) returns ListOfFilter from SelectMgr; - ---Purpose: - -- Returns the list of filters active in a local context. - ---C++: return const& - - - ---Category: INFORMATION METHODS - GET FIELDS - - DefaultDrawer(me) returns any Drawer from Prs3d; - ---Purpose: - -- 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. - ---C++: inline - ---C++: return const & - - CurrentViewer(me) returns any Viewer from V3d; - ---C++: return const & - ---C++: inline - ---Purpose: Returns the current viewer. - - DisplayedObjects(me; - aListOfIO : in out ListOfInteractive from AIS; - OnlyFromNeutral : Boolean from Standard = Standard_False); - ---Purpose: 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. - - DisplayedObjects(me; - WhichKind :KindOfInteractive from AIS; - WhichSignature :Integer from Standard; - aListOfIO : in out ListOfInteractive from AIS; - OnlyFromNeutral : Boolean from Standard = Standard_False); - ---Purpose: gives the list of displayed objects of a particular - -- Type and signature. - -- by Default, = -1 means - -- control only on . - - ErasedObjects (me;theListOfIO : in out ListOfInteractive from AIS); - ---Purpose: - -- 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. - - ErasedObjects (me; - WhichKind :KindOfInteractive from AIS; - WhichSignature :Integer from Standard; - theListOfIO : in out ListOfInteractive from AIS); - ---Purpose: gives the list of erased objects (hidden objects) - -- Type and signature - -- by Default, = -1 means - -- control only on . - - ObjectsByDisplayStatus (me;theStatus : DisplayStatus from AIS; - theListOfIO : in out ListOfInteractive from AIS); - ---Purpose: - -- 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. - - ObjectsByDisplayStatus (me; - WhichKind :KindOfInteractive from AIS; - WhichSignature :Integer from Standard; - theStatus : DisplayStatus from AIS; - theListOfIO : in out ListOfInteractive from AIS); - ---Purpose: gives the list of objects with indicated display status - -- Type and signature - -- by Default, = -1 means - -- control only on . - - ObjectsInside(me; - aListOfIO : in out ListOfInteractive from AIS; - WhichKind : KindOfInteractive from AIS = AIS_KOI_None; - WhichSignature : Integer from Standard = -1); - ---Purpose: fills with objects of a particular - -- Type and Signature with no consideration of display status. - -- by Default, = -1 means - -- control only on . - -- if = AIS_KOI_None and = -1, - -- all the objects are put into the list. - - - HasOpenedContext(me) returns Boolean from Standard; - ---Purpose: Returns true if there is an open context. - ---C++: inline - - CurrentName(me) returns AsciiString from TCollection; - ---Purpose: - -- Returns the name of the current selected entity in Neutral Point. - -- Objects selected when there is no open local context - -- are called current objects; those selected in open - -- local context, selected objects. - ---C++: inline - ---C++: return const& - - SelectionName(me) returns AsciiString from TCollection; - ---Purpose: - -- Returns the name of the current selected entity in - -- open local context. - -- Objects selected when there is no open local context - -- are called current objects; those selected in open - -- local context, selected objects. - ---C++: return const& - - DomainOfMainViewer(me) returns CString from Standard; - ---Purpose: Returns the domain name of the main viewer. - - ---Category: Internal - - ---Category: Internal - - LocalContext(me) returns LocalContext from AIS; - ---Level: Internal - ---Purpose: - -- This method is only intended for advanced operation, particularly with - -- the aim to improve performance when many objects have to be selected - -- together. Otherwise, you should use other (non-internal) methods of - -- class AIS_InteractiveContext without trying to obtain an instance of - -- AIS_LocalContext. - ---C++: inline - - SelectionManager(me) returns any SelectionManager from SelectMgr; - ---C++: inline - ---C++: return const & - - MainPrsMgr (me) returns any PresentationManager3d from PrsMgr; - ---C++: inline - ---C++: return const & - - MainSelector(me) returns ViewerSelector3d from StdSelect; - ---C++: inline - ---C++: return const & - LocalSelector(me) returns ViewerSelector3d from StdSelect; - - PurgeDisplay(me:mutable) - returns Integer from Standard; - ---Level: Internal - ---Purpose: Clears all the structures which don't - -- belong to objects displayed at neutral point - -- only effective when no Local Context is opened... - -- returns the number of removed structures from the viewers. - - - HighestIndex(me) returns Integer from Standard; - - DisplayActiveSensitive(me:mutable;aView : View from V3d) is static; - - ClearActiveSensitive(me:mutable;aView:View from V3d) is static; - - FitSelected (me : mutable; - theView : View from V3d; - theMargin : Real from Standard = 0.01; - theToUpdate : Boolean from Standard = Standard_True) - is static; - ---Level: Public - ---Purpose: Fits the view correspondingly to the bounds of selected objects. - -- Infinite objects are ignored if infinite state of AIS_InteractiveObject - -- is set to true. - - - - DisplayActiveSensitive(me:mutable; - anObject: InteractiveObject from AIS; - aView : View from V3d) is static; - - GetDefModes(me; - anIobj : InteractiveObject from AIS; - Dmode,HiMod,SelMode : in out Integer from Standard) is static private; - - - EraseGlobal(me : mutable; - anObj : InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True) is static private; - - ClearGlobal(me : mutable; - anObj : InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True) is static private; - - ClearGlobalPrs(me : mutable; - anObj : InteractiveObject from AIS; - aMode : Integer from Standard; - updateviewer : Boolean from Standard = Standard_True) is static private; - - - ---Category: Private Methods - - IsInLocal(me; - anObject : InteractiveObject from AIS; - TheIndex : in out Integer from Standard) - returns Boolean from Standard; - ---Purpose: returns if possible, - -- the first local context where the object is seen - - RebuildSelectionStructs (me : mutable); - ---Purpose: Rebuilds 1st level of BVH selection forcibly - SetViewAffinity (me : mutable; - theIObj : InteractiveObject from AIS; - theView : View from V3d; - theIsVisible : Boolean from Standard) is static; - ---Purpose: setup object visibility in specified view, - -- has no effect if object is not disaplyed in this context. - - Disconnect (me : mutable; - theAssembly : InteractiveObject from AIS; - theObjToDisconnect : InteractiveObject from AIS = NULL) - is static; - ---Purpose: Disconnects theObjToDisconnect from theAssembly and removes dependent selection structures - - ObjectsForView (me; - theListOfIO : in out ListOfInteractive from AIS; - theView : View from V3d; - theIsVisibleInView : Boolean from Standard; - theStatus : DisplayStatus from AIS = AIS_DS_None) is static; - ---Purpose: Query objects visible or hidden in specified view due to affinity mask. - - InitAttributes(me:mutable) is static private; - - - PurgeViewer(me:mutable;Vwr:Viewer from V3d) - returns Integer from Standard is static private; - - redisplayPrsModes (me : mutable; - theIObj : InteractiveObject from AIS; - theToUpdateViewer : Boolean from Standard = Standard_True) is static private; - ---Purpose: UNKNOWN - - redisplayPrsRecModes (me : mutable; - theIObj : InteractiveObject from AIS; - theToUpdateViewer : Boolean from Standard = Standard_True) is static private; - ---Purpose: UNKNOWN - -fields - - myObjects : DataMapOfIOStatus from AIS; - - -- the viewers, prsmgr, selectors - mgrSelector : SelectionManager from SelectMgr; - - myMainPM : PresentationManager3d from PrsMgr; - myMainVwr : Viewer from V3d; - myMainSel : ViewerSelector3d from StdSelect; - - -- the selection and current objects. - - mySelectionName : AsciiString from TCollection; - myCurrentName : AsciiString from TCollection; - - myLastPicked : InteractiveObject from AIS; - myLastinMain : InteractiveObject from AIS; - - - myWasLastMain : Boolean from Standard; - myCurrentTouched : Boolean from Standard; - mySelectedTouched : Boolean from Standard; - myToHilightSelected : Boolean from Standard; - - -- the neutral point filter... - - myFilters : OrFilter from SelectMgr; - - -- the attributes of session... - - myDefaultDrawer : Drawer from Prs3d; - myDefaultColor : NameOfColor from Quantity; -- for shading.... - myHilightColor : NameOfColor from Quantity; - mySelectionColor : NameOfColor from Quantity; - myPreselectionColor : NameOfColor from Quantity; - mySubIntensity : NameOfColor from Quantity; - myDisplayMode : Integer from Standard; - - -- The Local Context... - - myLocalContexts : DataMapOfILC from AIS; - myCurLocalIndex : Integer from Standard; - mylastmoveview : View from V3d; - - -- The detected objects - - myAISDetectedSeq : SequenceOfInteractive from AIS; - -- the sequence of detected interative objects. - myAISCurDetected : Integer from Standard; - -- current detected interactive object. - -- This variable is used by following functions: - -- InitDetected(), MoreDetected(), NextDetected(), DetectedCurrentShape(), DetectedCurrentObject(). - myZDetectionFlag: Boolean from Standard; - -- This variable is used by SetZDetection() and ZDetection() methods - - -- abd: - myIsAutoActivateSelMode : Boolean from Standard; - -friends - class LocalContext from AIS - -end InteractiveContext; diff --git a/src/AIS/AIS_InteractiveContext.cxx b/src/AIS/AIS_InteractiveContext.cxx index 9aba993f94..f4f8977354 100644 --- a/src/AIS/AIS_InteractiveContext.cxx +++ b/src/AIS/AIS_InteractiveContext.cxx @@ -16,44 +16,55 @@ // Modified by XAB & Serguei Dec 97 (angle &deviation coeffts) -#include - -//#include -#include -#include -#include -#include -#include -#include -#include #include -#include #include +#include #include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include +#include +#include #include +#include +#include #include #include -#include +#include +#include +#include #include +#include +#include #include +#include +#include #include +#include +#include +#include +#include +#include #include +#include +#include #include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include -#include -#include -#include - -#include -#include -#include - +//#include namespace { static volatile Standard_Integer THE_AIS_INDEX_SEL = 0; diff --git a/src/AIS/AIS_InteractiveContext.hxx b/src/AIS/AIS_InteractiveContext.hxx new file mode 100644 index 0000000000..28847b1e3c --- /dev/null +++ b/src/AIS/AIS_InteractiveContext.hxx @@ -0,0 +1,1656 @@ +// 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 +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class SelectMgr_SelectionManager; +class V3d_Viewer; +class AIS_InteractiveObject; +class SelectMgr_OrFilter; +class V3d_View; +class AIS_LocalContext; +class TopLoc_Location; +class Quantity_Color; +class TCollection_ExtendedString; +class Prs3d_LineAspect; +class Prs3d_BasicAspect; +class TopoDS_Shape; +class SelectMgr_EntityOwner; +class Standard_Transient; +class SelectMgr_Filter; +class TCollection_AsciiString; + + +class AIS_InteractiveContext; +DEFINE_STANDARD_HANDLE(AIS_InteractiveContext, MMgt_TShared) + +//! 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. +//! You must distinguish two states in the Interactive Context: +//! - No Open Local Context, also known as the Neutral Point. +//! - One or several open local contexts, each +//! representing a temporary state of selection and presentation. +//! Some methods can only be used in open Local +//! Context; others in closed Local Context; others do +//! not have the same behavior in one state as in the other. +//! The possiblities of use for local contexts are +//! numerous depending on the type of operation that +//! you want to perform, for example: +//! - working on all visualized interactive objects, +//! - working on only a few objects, +//! - working on a single object. +//! 1. When you want ot work on one type of entity, you +//! should open a local context with the option +//! UseDisplayedObjects set to false. DisplayedObjects +//! allows you to recover the visualized Interactive +//! Objects which have a given Type and +//! Signature from Neutral Point. +//! 2. You must keep in mind the fact that when you open +//! a Local Context with default options: +//! - The Interactive Objects visualized at Neutral Point +//! are activated with their default selection mode. You +//! must deactivate those which you do not want ot use. +//! - The Shape type Interactive Objects are +//! automatically decomposed into sub-shapes when +//! standard activation modes are launched. +//! - The "temporary" Interactive Objects present in the +//! Local Contexts are not automatically taken into +//! account. You have to load them manually if you +//! want to use them. +//! - The stages could be the following: +//! - Open a Local Context with the right options; +//! - Load/Visualize the required complementary +//! objects with the desired activation modes. +//! - Activate Standard modes if necessary +//! - Create its filters and add them to the Local Context +//! - Detect/Select/recover the desired entities +//! - Close the Local Context with the adequate index. +//! - It is useful to create an interactive editor, to which +//! you pass the Interactive Context. This will take care +//! of setting up the different contexts of +//! selection/presentation according to the operation +//! which you want to perform. +class AIS_InteractiveContext : public MMgt_TShared +{ + +public: + + + + //! Constructs the interactive context object defined by + //! the principal viewer MainViewer. + Standard_EXPORT AIS_InteractiveContext(const Handle(V3d_Viewer)& MainViewer); + + Standard_EXPORT virtual void Delete() const Standard_OVERRIDE; + + Standard_EXPORT void SetAutoActivateSelection (const Standard_Boolean Auto); + + Standard_EXPORT Standard_Boolean GetAutoActivateSelection() const; + + //! Controls the choice between the using the display + //! and selection modes of open local context which you + //! have defined and activating those available by default. + //! If a local context is open and if updateviewer equals + //! Standard_False, the Interactive Object anIobj is + //! displayed in the default active 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. In + //! general, this is 0. + //! This syntax has the same behavior as local context, + //! open or closed. If you want to view the object in open + //! local context without selection, use the syntax below, + //! setting aSelectionMode to -1. + Standard_EXPORT void Display (const Handle(AIS_InteractiveObject)& anIobj, const Standard_Boolean updateviewer = Standard_True); + + //! Controls the choice between the using the display + //! and selection modes of open local context which you + //! have defined and activating those available by default. + //! If no Local Context is opened. and the Interactive + //! Object theIObj has no display mode of its own, the + //! default display mode, 0, is used. Likewise, if theIObj + //! has no selection mode of its own, the default one, 0, is used. + //! If a local context is open and if theToUpdateViewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + //! If theSelectionMode equals -1, theIObj will not be + //! activated: it will be displayed but will not be selectable. + //! Use this if you want to view the object in open local + //! context without selection. Note: This option is only + //! available in Local Context. + //! If theToAllowDecomposition equals true, theIObj can have + //! subshapes detected by selection mechanisms. theIObj + //! must be able to give a shape selection modes which + //! fit the AIS_Shape selection modes: + //! - vertices: 1 + //! - edges: 2 + //! - wires: 3. + Standard_EXPORT void Display (const Handle(AIS_InteractiveObject)& theIObj, const Standard_Integer theDispMode, const Standard_Integer theSelectionMode, const Standard_Boolean theToUpdateViewer = Standard_True, const Standard_Boolean theToAllowDecomposition = Standard_True, const AIS_DisplayStatus theDispStatus = AIS_DS_None); + + //! Allows you to load the Interactive Object aniobj + //! with a given selection mode SelectionMode, and/or + //! with the desired decomposition option, whether the + //! object is visualized or not. If AllowDecomp = + //! Standard_True and, if the interactive object is of + //! the "Shape" type, these "standard" selection + //! modes will be automatically activated as a function + //! of the modes present in the Local Context. + //! The loaded objects will be selectable but + //! displayable in highlighting only when detected by the Selector. + //! This method is available only when Local Contexts are open. + Standard_EXPORT void Load (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Integer SelectionMode = -1, const Standard_Boolean AllowDecomp = Standard_False); + + //! 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)& aniobj, const Standard_Boolean updateviewer = Standard_True); + + //! 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 updateviewer = Standard_True); + + //! Displays all hidden objects. + Standard_EXPORT void DisplayAll (const Standard_Boolean updateviewer = Standard_True); + + + //! 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 updateviewer = Standard_True); + + //! Displays selected objects if a local context is open. + //! Displays current objects if there is no active local context. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void DisplaySelected (const Standard_Boolean updateviewer = Standard_True); + + //! Changes the status of a temporary object. It will be + //! kept at the neutral point, i.e. put in the list of + //! displayed objects along withwith its temporary + //! attributes. These include display mode and + //! selection mode, for example. + //! Returns true if done. + //! inWhichLocal gives the local context in which anIObj + //! is displayed. By default, the index -1 refers to the last + //! Local Context opened. + Standard_EXPORT Standard_Boolean KeepTemporary (const Handle(AIS_InteractiveObject)& anIObj, const Standard_Integer InWhichLocal = -1); + + //! Empties the graphic presentation of the mode + //! indexed by aMode. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + //! Warning + //! Removes anIobj. anIobj is still active if it was + //! previously activated. + Standard_EXPORT void ClearPrs (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Integer aMode = 0, const Standard_Boolean updateviewer = Standard_True); + + //! Removes aniobj from every viewer. aniobj is no + //! longer referenced in the Context. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void Remove (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Boolean updateviewer = Standard_True); + + //! Removes all the objects from all opened Local Contexts + //! and from the Neutral Point + Standard_EXPORT void RemoveAll (const Standard_Boolean updateviewer = Standard_True); + + + //! 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. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void Hilight (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Boolean updateviewer = Standard_True); + + + //! Changes the color of all the lines of the object in view, + //! aniobj. It paints these lines the color passed as the + //! argument, aCol. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void HilightWithColor (const Handle(AIS_InteractiveObject)& aniobj, const Quantity_NameOfColor aCol, const Standard_Boolean updateviewer = Standard_True); + + + //! Removes hilighting from the entity aniobj. Updates the viewer. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void Unhilight (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Boolean updateviewer = Standard_True); + + //! Sets the display priority aPriority of the seen parts + //! presentation of the entity anIobj. + Standard_EXPORT void SetDisplayPriority (const Handle(AIS_InteractiveObject)& anIobj, const Standard_Integer aPriority); + + //! 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 Standard_Integer theLayerId); + + //! Get Z layer id set for displayed interactive object. + Standard_EXPORT Standard_Integer GetZLayer (const Handle(AIS_InteractiveObject)& theIObj) const; + + //! Recomputes the seen parts presentation of the entity + //! aniobj. If allmodes equals true, all presentations are + //! present in the object even if unseen. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void Redisplay (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Boolean updateviewer = Standard_True, const Standard_Boolean allmodes = Standard_False); + + //! Recomputes the Prs/Selection of displayed objects of + //! a given type and a given signature. + //! if signature = -1 doesnt take signature criterion. + Standard_EXPORT void Redisplay (const AIS_KindOfInteractive aTypeOfObject, const Standard_Integer Signature = -1, const Standard_Boolean updateviewer = Standard_True); + + //! Recomputes the displayed presentations, flags the others + //! Doesn't update presentations + Standard_EXPORT void RecomputePrsOnly (const Handle(AIS_InteractiveObject)& anIobj, const Standard_Boolean updateviewer = Standard_True, const Standard_Boolean allmodes = 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 = Standard_True); + + + //! Sets the display mode of seen Interactive Objects. + //! aMode provides the display mode index of the entity aniobj. + //! If updateviewer equals Standard_True, the + //! predominant mode aMode will overule the context mode. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object returns to the default selection mode; the + //! object is displayed but no viewer will be updated. + //! Note that display mode 3 is only used if you have an + //! AIS_Textured Shape. + Standard_EXPORT void SetDisplayMode (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Integer aMode, const Standard_Boolean updateviewer = Standard_True); + + + //! Unsets the display mode of seen Interactive Objects. + //! aMode provides the display mode index of the entity aniobj. + //! If updateviewer equals Standard_True, the + //! predominant mode aMode will overule the context mode. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object returns to the default selection mode; the + //! object is displayed but no viewer will be updated. + Standard_EXPORT void UnsetDisplayMode (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Boolean updateviewer = Standard_True); + + + //! Sets the selection mode of Interactive Objects. + //! aMode provides the selection mode index of the entity aniobj. + Standard_EXPORT void SetSelectionMode (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Integer aMode); + + + //! Removes selection mode from Interactive Objects. + //! aMode provides the selection mode index of the entity aniobj. + Standard_EXPORT void UnsetSelectionMode (const Handle(AIS_InteractiveObject)& aniobj); + + //! Disables the mechanism of adaptive tolerance calculation in SelectMgr_ViewerSelector and + //! sets the given tolerance for ALL sensitive entities activated. For more information, see + //! SelectMgr_ViewerSelector documentation + //! Warning: When a local context is open the sensitivity is apply on it + //! instead on the main context. + Standard_EXPORT void SetPixelTolerance (const Standard_Real aPrecision = 2.0); + + //! Returns the pixel tolerance. + Standard_EXPORT Standard_Real PixelTolerance() const; + + //! Puts the location aLocation on the initial graphic + //! representation and the selection for the entity aniobj. + //! In other words, aniobj is visible and selectable at a + //! position other than initial position. + //! Graphic and selection primitives are not recomputed. + //! To clean the view correctly, you must reset the previous location. + Standard_EXPORT void SetLocation (const Handle(AIS_InteractiveObject)& aniobj, const TopLoc_Location& aLocation); + + //! Puts the entity aniobj back into its initial position. + Standard_EXPORT void ResetLocation (const Handle(AIS_InteractiveObject)& aniobj); + + + //! Returns true if the entity aniobj has a location. + Standard_EXPORT Standard_Boolean HasLocation (const Handle(AIS_InteractiveObject)& aniobj) const; + + + //! Returns the location of the entity aniobj. + Standard_EXPORT TopLoc_Location Location (const Handle(AIS_InteractiveObject)& aniobj) const; + + //! 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); + + Standard_EXPORT void SetColor (const Handle(AIS_InteractiveObject)& aniobj, const Quantity_NameOfColor aColor, const Standard_Boolean updateviewer = Standard_True); + + + //! Sets the color of the selected entity. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void SetColor (const Handle(AIS_InteractiveObject)& aniobj, const Quantity_Color& aColor, const Standard_Boolean updateviewer = Standard_True); + + //! Removes the color selection for the selected entity. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void UnsetColor (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Boolean updateviewer = Standard_True); + + + //! Sets the width of the entity aniobj. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT virtual void SetWidth (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Real aValue, const Standard_Boolean updateviewer = Standard_True); + + + //! Removes the width setting of the entity aniobj. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT virtual void UnsetWidth (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Boolean updateviewer = Standard_True); + + + //! Provides the type of material setting for the view of + //! the entity aniobj. + //! The range of settings includes: BRASS, BRONZE, + //! GOLD, PEWTER, SILVER, STONE. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void SetMaterial (const Handle(AIS_InteractiveObject)& aniobj, const Graphic3d_NameOfMaterial aName, const Standard_Boolean updateviewer = Standard_True); + + + //! Removes the type of material setting for viewing the + //! entity aniobj. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void UnsetMaterial (const Handle(AIS_InteractiveObject)& anObj, const Standard_Boolean updateviewer = Standard_True); + + //! Provides the transparency settings for viewing the + //! entity aniobj. The transparency value aValue may be + //! between 0.0, opaque, and 1.0, fully transparent. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void SetTransparency (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Real aValue = 0.6, const Standard_Boolean updateviewer = Standard_True); + + + //! Removes the transparency settings for viewing the + //! entity aniobj. The transparency value aValue may be + //! between 0.0, opaque, and 1.0, fully transparent. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void UnsetTransparency (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Boolean updateviewer = Standard_True); + + + //! Sets the attributes of the interactive object aniobj by + //! plugging the attribute manager aDrawer into the local + //! context. The graphic attributes of aDrawer such as + //! visualization mode, color, and material, are then used + //! to display aniobj. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void SetLocalAttributes (const Handle(AIS_InteractiveObject)& aniobj, const Handle(Prs3d_Drawer)& aDrawer, const Standard_Boolean updateviewer = Standard_True); + + + //! Removes the settings for local attributes of the entity + //! anObj and returns to the Neutral Point attributes or + //! those of the previous local context. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void UnsetLocalAttributes (const Handle(AIS_InteractiveObject)& anObj, const Standard_Boolean updateviewer = Standard_True); + + //! Sets up polygon offsets for the given AIS_InteractiveObject. + //! It simply calls anObj->SetPolygonOffsets() + Standard_EXPORT void SetPolygonOffsets (const Handle(AIS_InteractiveObject)& anObj, const Standard_Integer aMode, const Standard_ShortReal aFactor = 1.0, const Standard_ShortReal aUnits = 0.0, const Standard_Boolean updateviewer = Standard_True); + + //! simply calls anObj->HasPolygonOffsets() + Standard_EXPORT Standard_Boolean HasPolygonOffsets (const Handle(AIS_InteractiveObject)& anObj) const; + + //! Retrieves current polygon offsets settings for . + Standard_EXPORT void PolygonOffsets (const Handle(AIS_InteractiveObject)& anObj, Standard_Integer& aMode, Standard_ShortReal& aFactor, Standard_ShortReal& aUnits) const; + + //! 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. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void SetTrihedronSize (const Standard_Real aSize, const Standard_Boolean updateviewer = Standard_True); + + //! returns the current value of trihedron size. + Standard_EXPORT Standard_Real TrihedronSize() const; + + + //! Sets the plane size defined by the length in the X + //! direction XSize and that in the Y direction YSize. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void SetPlaneSize (const Standard_Real aSizeX, const Standard_Real aSizeY, const Standard_Boolean updateviewer = Standard_True); + + + //! Sets the plane size aSize. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + //! May be used if PlaneSize returns true. + Standard_EXPORT void SetPlaneSize (const Standard_Real aSize, const Standard_Boolean updateviewer = Standard_True); + + //! 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; + + //! Returns the display status of the entity anIobj. + //! This will be one of the following: + //! - DS_Displayed displayed in main viewer + //! - DS_Erased hidden in main viewer + //! - DS_Temporary temporarily displayed + //! - DS_None nowhere displayed. + Standard_EXPORT AIS_DisplayStatus DisplayStatus (const Handle(AIS_InteractiveObject)& anIobj) const; + + + //! Returns the list of active display modes for the entity aniobj. + Standard_EXPORT const TColStd_ListOfInteger& DisplayedModes (const Handle(AIS_InteractiveObject)& aniobj) const; + + //! Returns true if anIobj 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; + + Standard_EXPORT Standard_Boolean IsHilighted (const Handle(AIS_InteractiveObject)& aniobj) const; + + //! if is hilighted with a specific color + //! will be returned TRUE + //! gives the name of the hilightcolor + Standard_EXPORT Standard_Boolean IsHilighted (const Handle(AIS_InteractiveObject)& anIobj, Standard_Boolean& WithColor, Quantity_NameOfColor& theHiCol) const; + + + //! Returns the display priority of the entity anIobj. This + //! will be display mode of anIobj if it is in the main + //! viewer. + Standard_EXPORT Standard_Integer DisplayPriority (const Handle(AIS_InteractiveObject)& anIobj) const; + + + //! Returns true if a view of the Interactive Object aniobj has color. + Standard_EXPORT Standard_Boolean HasColor (const Handle(AIS_InteractiveObject)& aniobj) const; + + Standard_EXPORT Quantity_NameOfColor Color (const Handle(AIS_InteractiveObject)& aniobj) const; + + + //! Returns the color Color of the entity aniobj in the interactive context. + Standard_EXPORT void Color (const Handle(AIS_InteractiveObject)& aniobj, Quantity_Color& acolor) const; + + + //! Returns the width of the Interactive Object aniobj in + //! the interactive context. + Standard_EXPORT virtual Standard_Real Width (const Handle(AIS_InteractiveObject)& aniobj) const; + + + //! Returns the status astatus of the Interactive Context + //! for the view of the Interactive Object anObj. + Standard_EXPORT void Status (const Handle(AIS_InteractiveObject)& anObj, TCollection_ExtendedString& astatus) const; + + + //! Updates the current viewer, the viewer 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_EXPORT void UpdateCurrentViewer(); + + //! Returns the display mode setting. + //! Note that mode 3 is only used. + Standard_Integer DisplayMode() const; + + + //! Returns the name of the color used to show + //! highlighted entities, that is, entities picked out by the mouse. + Quantity_NameOfColor HilightColor() const; + + + //! Returns the name of the color used to show selected entities. + //! By default, this is Quantity_NOC_GRAY80. + Quantity_NameOfColor SelectionColor() const; + + //! Returns the name of the color used to show preselection. + //! By default, this is Quantity_NOC_GREEN. + Quantity_NameOfColor PreSelectionColor() const; + + + //! Returns the name of the color used by default. + //! By default, this is Quantity_NOC_GOLDENROD. + Quantity_NameOfColor DefaultColor() const; + + + //! Returns the name of the color used to show that an + //! object is not currently selected. + //! By default, this is Quantity_NOC_GRAY40. + Quantity_NameOfColor SubIntensityColor() const; + + + //! Sets the color used to show highlighted entities, that + //! is, entities picked by the mouse. + //! By default, this is Quantity_NOC_CYAN1. + void SetHilightColor (const Quantity_NameOfColor aHiCol); + + + //! Sets the color used to show selected entities. + //! By default, this is Quantity_NOC_GRAY80. + void SelectionColor (const Quantity_NameOfColor aCol); + + + //! Allows you to set the color used to show preselection. + //! By default, this is Quantity_NOC_GREEN. + //! A preselected entity is one which has been selected + //! as the domain of application of a function such as a fillet. + void SetPreselectionColor (const Quantity_NameOfColor aCol); + + + //! Sets the color used to show that an object is not currently selected. + //! By default, this is Quantity_NOC_GRAY40. + void SetSubIntensityColor (const Quantity_NameOfColor aCol); + + + //! Sets the display mode of seen Interactive Objects. + //! aMode provides the display mode index of the entity aniobj. + //! If updateviewer equals Standard_True, the + //! predominant mode aMode will overule the context mode. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object returns to the default selection mode; the + //! object is displayed but no viewer will be updated. + //! Note that display mode 3 is only used if you have an + //! AIS_Textured Shape. + Standard_EXPORT void SetDisplayMode (const AIS_DisplayMode AMode, const Standard_Boolean updateviewer = Standard_True); + + + //! Sets the deviation coefficient aCoefficient. + //! 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 + //! aCoefficient 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. + //! default 0.001 + Standard_EXPORT void SetDeviationCoefficient (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Real aCoefficient, const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT void SetDeviationAngle (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Real anAngle, const Standard_Boolean updateviewer = Standard_True); + + //! Calls the AIS_Shape SetAngleAndDeviation to set + //! both Angle and Deviation coefficients + Standard_EXPORT void SetAngleAndDeviation (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Real anAngle, const Standard_Boolean updateviewer = Standard_True); + + + //! Sets the deviation coefficient aCoefficient for + //! removal of hidden lines created by different + //! viewpoints in different presentations. The Default value is 0.02. + Standard_EXPORT void SetHLRDeviationCoefficient (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Real aCoefficient, const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT void SetHLRDeviationAngle (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Real anAngle, const Standard_Boolean updateviewer = Standard_True); + + //! Computes a HLRAngle and a + //! HLRDeviationCoefficient by means of the angle + //! anAngle and sets the corresponding methods in the + //! default drawing tool with these values. + Standard_EXPORT void SetHLRAngleAndDeviation (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Real anAngle, const Standard_Boolean updateviewer = Standard_True); + + //! Sets the deviation coefficient aCoefficient. + //! 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 + //! aCoefficient 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. + //! default 0.001 + Standard_EXPORT void SetDeviationCoefficient (const Standard_Real aCoefficient); + + //! 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_EXPORT Standard_Real DeviationCoefficient() const; + + //! default 6degrees + Standard_EXPORT void SetDeviationAngle (const Standard_Real anAngle); + + Standard_EXPORT Standard_Real DeviationAngle() const; + + //! Sets the deviation coefficient aCoefficient for + //! removal of hidden lines created by different + //! viewpoints in different presentations. The Default value is 0.02. + Standard_EXPORT void SetHLRDeviationCoefficient (const Standard_Real aCoefficient); + + + //! Returns the real number value of the hidden line + //! removal deviation coefficient. + //! 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 give 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. + //! To find the hidden lines, hidden line display mode + //! entails recalculation of the view at each different + //! projector perspective. + //! Because hidden lines entail calculations of more than + //! usual complexity to decompose them into these + //! triangles, a deviation coefficient allowing greater + //! tolerance is used. This increases efficiency in calculation. + //! The Default value is 0.02. + Standard_EXPORT Standard_Real HLRDeviationCoefficient() const; + + //! Sets the HLR angle anAngle. + Standard_EXPORT void SetHLRAngle (const Standard_Real anAngle); + + + //! Returns the real number value of the deviation angle + //! in hidden line removal views in this interactive context. + //! The default value is 20*PI/180. + Standard_EXPORT Standard_Real HLRAngle() const; + + //! compute with anangle a HLRAngle and a HLRDeviationCoefficient + //! and set them in myHLRAngle and in myHLRDeviationCoefficient + //! of myDefaultDrawer ; + //! anAngle is in radian ; ( 1 deg < angle in deg < 20 deg) + Standard_EXPORT void SetHLRAngleAndDeviation (const Standard_Real anAngle); + + //! 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. + Standard_EXPORT Handle(Prs3d_LineAspect) HiddenLineAspect() const; + + + //! Sets the hidden line aspect anAspect. + //! anAspect defines display attributes for hidden lines in + //! HLR projections. + Standard_EXPORT void SetHiddenLineAspect (const Handle(Prs3d_LineAspect)& anAspect) const; + + //! returns Standard_True if the hidden lines are to be drawn. + //! By default the hidden lines are not drawn. + Standard_EXPORT Standard_Boolean DrawHiddenLine() const; + + Standard_EXPORT void EnableDrawHiddenLine() const; + + Standard_EXPORT void DisableDrawHiddenLine() const; + + //! 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. + Standard_EXPORT void IsoOnPlane (const Standard_Boolean SwitchOn); + + //! Returns True if drawing isoparameters on planes is enabled. + //! if = False, + Standard_EXPORT Standard_Boolean IsoOnPlane() const; + + //! Sets the graphic basic aspect to the current presentation of + //! ALL selected objects. + //! When is TRUE , the full object presentation + //! is changed. + //! When is FALSE , only the current group + //! of the object presentation is changed. + //! Updates the viewer when is TRUE + Standard_EXPORT void SetSelectedAspect (const Handle(Prs3d_BasicAspect)& anAspect, const Standard_Boolean globalChange = Standard_True, const Standard_Boolean updateViewer = Standard_True); + + //! 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. + //! Functions in both Neutral Point and local contexts. + //! If theToRedrawOnUpdate is set to false, callee should call RedrawImmediate() to highlight detected object. + Standard_EXPORT AIS_StatusOfDetection MoveTo (const Standard_Integer theXPix, const Standard_Integer theYPix, const Handle(V3d_View)& theView, const Standard_Boolean theToRedrawOnUpdate = Standard_True); + + //! returns True if other entities were detected in the + //! last mouse detection + Standard_EXPORT Standard_Boolean HasNextDetected() const; + + //! 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! + //! returns the Rank of hilighted entity + //! WARNING : Loop Method. When all the detected entities + //! have been hilighted , the next call will hilight + //! the first one again + Standard_EXPORT Standard_Integer HilightNextDetected (const Handle(V3d_View)& theView, const Standard_Boolean theToRedrawImmediate = Standard_True); + + //! Same as previous methods in reverse direction... + Standard_EXPORT Standard_Integer HilightPreviousDetected (const Handle(V3d_View)& theView, const Standard_Boolean theToRedrawImmediate = Standard_True); + + //! Selects everything found in the bounding rectangle + //! defined by the pixel minima and maxima, XPMin, + //! YPMin, XPMax, and YPMax in the view, aView + //! The objects detected are passed to the main viewer, + //! which is then updated. + Standard_EXPORT AIS_StatusOfPick Select (const Standard_Integer XPMin, const Standard_Integer YPMin, const Standard_Integer XPMax, const Standard_Integer YPMax, const Handle(V3d_View)& aView, const Standard_Boolean updateviewer = Standard_True); + + //! polyline selection; clears the previous picked list + Standard_EXPORT AIS_StatusOfPick Select (const TColgp_Array1OfPnt2d& Polyline, const Handle(V3d_View)& aView, const Standard_Boolean updateviewer = Standard_True); + + //! Stores and hilights the previous detected; Unhilights + //! the previous picked. + Standard_EXPORT AIS_StatusOfPick Select (const Standard_Boolean updateviewer = Standard_True); + + //! 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_EXPORT AIS_StatusOfPick ShiftSelect (const Standard_Boolean updateviewer = Standard_True); + + //! 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_EXPORT AIS_StatusOfPick ShiftSelect (const TColgp_Array1OfPnt2d& Polyline, const Handle(V3d_View)& aView, const Standard_Boolean updateviewer = Standard_True); + + //! rectangle of selection ; adds new detected entities into the + //! picked list, removes the detected entities that were already stored... + Standard_EXPORT AIS_StatusOfPick ShiftSelect (const Standard_Integer XPMin, const Standard_Integer YPMin, const Standard_Integer XPMax, const Standard_Integer YPMax, const Handle(V3d_View)& aView, const Standard_Boolean updateviewer = Standard_True); + + //! 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. + void SetToHilightSelected (const Standard_Boolean toHilight); + + //! Return value specified whether selected object must be hilighted + //! when mouse cursor is moved above it + Standard_Boolean ToHilightSelected() const; + + + //! 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. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void SetCurrentObject (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Boolean updateviewer = Standard_True); + + + //! Allows you to add a current object to the list of current + //! objects or remove it from that list. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void AddOrRemoveCurrentObject (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Boolean updateviewer = Standard_True); + + //! 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_EXPORT void UpdateCurrent(); + + + //! Returns the current selection touched by the cursor. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + Standard_Boolean WasCurrentTouched() const; + + void SetOkCurrent(); + + + //! 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_EXPORT Standard_Boolean IsCurrent (const Handle(AIS_InteractiveObject)& aniobj) const; + + + //! 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_EXPORT void InitCurrent(); + + + //! 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_EXPORT Standard_Boolean MoreCurrent() const; + + + //! 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_EXPORT void NextCurrent(); + + + //! 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_EXPORT Handle(AIS_InteractiveObject) Current() const; + + Standard_EXPORT Standard_Integer NbCurrents(); + + + //! Returns the first current 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_EXPORT Handle(AIS_InteractiveObject) FirstCurrentObject(); + + + //! Highlights current objects. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void HilightCurrents (const Standard_Boolean updateviewer = Standard_True); + + + //! 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. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void UnhilightCurrents (const Standard_Boolean updateviewer = Standard_True); + + + //! 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. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void ClearCurrents (const Standard_Boolean updateviewer = Standard_True); + + //! Puts the interactive object aniObj in the list of + //! selected objects. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void SetSelected (const Handle(AIS_InteractiveObject)& aniObj, const Standard_Boolean updateviewer = Standard_True); + + //! puts the selected list in the current objects List. + Standard_EXPORT void SetSelectedCurrent(); + + //! updates the list of selected objects + //! i.e. hilights the new selected + //! unhilights old selected objects + Standard_EXPORT void UpdateSelected (const Standard_Boolean updateviewer = Standard_True); + + //! Allows you to add a selected object to the list of + //! selected objects or remove it from that list. This entity + //! can be an Interactive Object aniobj or its owner + //! aShape as can be seen in the two syntaxes above. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void AddOrRemoveSelected (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Boolean updateviewer = Standard_True); + + + //! Highlights selected objects. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void HilightSelected (const Standard_Boolean updateviewer = Standard_True); + + + //! Removes highlighting from selected objects. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void UnhilightSelected (const Standard_Boolean updateviewer = Standard_True); + + + //! Empties previous selected objects in order to get the + //! selected objects detected by the selector using + //! UpdateSelected. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void ClearSelected (const Standard_Boolean updateviewer = Standard_True); + + //! No right to Add a selected Shape (Internal Management + //! of shape Selection). + //! A Previous selected shape may only be removed. + Standard_EXPORT void AddOrRemoveSelected (const TopoDS_Shape& aShape, const Standard_Boolean updateviewer = Standard_True); + + //! allows to add/remove in the selected list the entities + //! represented by in the selection process. + Standard_EXPORT void AddOrRemoveSelected (const Handle(SelectMgr_EntityOwner)& anOwner, const Standard_Boolean updateviewer = Standard_True); + + + //! Finds the selected object aniobj in local context and + //! returns its name. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + Standard_EXPORT Standard_Boolean IsSelected (const Handle(AIS_InteractiveObject)& aniobj) const; + + + //! Initializes a scan of the selected objects in local context. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + Standard_EXPORT void InitSelected(); + + + //! Returns true if there is another object found by the + //! scan of the list of selected objects. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + Standard_EXPORT Standard_Boolean MoreSelected() const; + + + //! Continues the scan to the next object in the list of + //! selected objects. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + Standard_EXPORT void NextSelected(); + + Standard_EXPORT Standard_Integer NbSelected(); + + + //! Returns true if the interactive context has a shape + //! selected in it which results from the decomposition of + //! another entity in local context. + //! If HasSelectedShape returns true, SelectedShape + //! returns the shape which has been shown to be + //! selected. Interactive returns the Interactive Object + //! from which the shape has been selected. + //! If HasSelectedShape returns false, Interactive + //! returns the interactive entity selected by the click of the mouse. + Standard_EXPORT Standard_Boolean HasSelectedShape() const; + + + //! Returns the selected shape in the open local context. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + Standard_EXPORT TopoDS_Shape SelectedShape() const; + + + //! Returns the owner of the selected entity resulting + //! from the decomposition of another entity in local context. + Standard_EXPORT Handle(SelectMgr_EntityOwner) SelectedOwner() const; + + //! Returns a collection containing all entity owners + //! created for the interactive object in + //! the selection mode theMode (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; + + //! Returns the location of the selected Interactive Object. + Standard_EXPORT Handle(AIS_InteractiveObject) Interactive() const; + + Standard_EXPORT Handle(AIS_InteractiveObject) SelectedInteractive() const; + + + //! Returns true if the applicative object has an owner + //! from Interactive attributed to it. + Standard_EXPORT Standard_Boolean HasApplicative() const; + + + //! Returns the owner of the applicative entity detected + //! in interactive context. The owner can be a shape for + //! a set of sub-shapes or a sub-shape for sub-shapes + //! which it is composed of. + Standard_EXPORT Handle(Standard_Transient) Applicative() const; + + + //! Returns true if there is a mouse-detected entity in local context. + //! If there is no open local context, the objects selected + //! are called current objects; selected objects if there is + //! one. Iterators allow entities to be recovered in either + //! case. This method is one of a set which allows you to + //! manipulate the objects which have been placed in these two lists. + Standard_EXPORT Standard_Boolean HasDetected() const; + + + //! Returns true if there is a detected shape in local context. + //! If there is no open local context, the objects selected + //! are called current objects; selected objects if there is + //! one. Iterators allow entities to be recovered in either + //! case. This method is one of a set which allows you to + //! manipulate the objects which have been placed in these two lists. + Standard_EXPORT Standard_Boolean HasDetectedShape() const; + + + //! Returns the shape detected in local context. + //! If there is no open local context, the objects selected + //! are called current objects; selected objects if there is + //! one. Iterators allow entities to be recovered in either + //! case. This method is one of a set which allows you to + //! manipulate the objects which have been placed in these two lists. + Standard_EXPORT const TopoDS_Shape& DetectedShape() const; + + + //! Returns the interactive objects last detected in open context. + //! If there is no open local context, the objects selected + //! are called current objects; selected objects if there is + //! one. Iterators allow entities to be recovered in either + //! case. This method is one of a set which allows you to + //! manipulate the objects which have been placed in these two lists. + Standard_EXPORT Handle(AIS_InteractiveObject) DetectedInteractive() const; + + //! returns the owner of the detected sensitive primitive. + Standard_EXPORT Handle(SelectMgr_EntityOwner) DetectedOwner() const; + + + //! Initialization for iteration through mouse-detected objects in + //! interactive context or in local context if it is opened. + Standard_EXPORT void InitDetected(); + + + //! @return true if there is more mouse-detected objects after the current one + //! during iteration through mouse-detected interactive objects. + Standard_EXPORT Standard_Boolean MoreDetected() const; + + + //! Gets next current object during iteration through mouse-detected + //! interactive objects. + Standard_EXPORT void NextDetected(); + + + //! @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. + Standard_EXPORT const TopoDS_Shape& DetectedCurrentShape() const; + + Standard_EXPORT Handle(AIS_InteractiveObject) DetectedCurrentObject() const; + + + //! Opens local contexts and specifies how this is to be + //! done. The options listed above function in the following manner: + //! - UseDisplayedObjects -allows you to load or not + //! load the interactive objects visualized at Neutral + //! Point in the local context which you open. If false, + //! the local context is empty after being opened. If + //! true, the objects at Neutral Point are loaded by their + //! default selection mode. + //! - AllowShapeDecomposition -AIS_Shape allows or + //! prevents decomposition in standard shape location + //! mode of objects at Neutral Point which are + //! type-"privileged". This Flag is only taken into + //! account when UseDisplayedObjects is true. + //! - AcceptEraseOfObjects -authorises other local + //! contexts to erase the interactive objects present in + //! this context. This option is rarely used. + //! - BothViewers - Has no use currently defined. + //! This method returns the index of the created local + //! context. It should be kept and used to close the context. + //! Opening a local context allows you to prepare an + //! environment for temporary presentations and + //! selections which will disappear once the local context is closed. + //! You can open several local contexts, but only the last + //! one will be active. + Standard_EXPORT Standard_Integer OpenLocalContext (const Standard_Boolean UseDisplayedObjects = Standard_True, const Standard_Boolean AllowShapeDecomposition = Standard_True, const Standard_Boolean AcceptEraseOfObjects = Standard_False, const Standard_Boolean BothViewers = Standard_False); + + //! Allows you to close local contexts. For greater + //! security, you should close the context with the + //! index Index given on opening. + //! When you close a local context, the one before, + //! which is still on the stack, reactivates. If none is + //! left, you return to Neutral Point. + //! If a local context is open and if updateviewer + //! equals Standard_False, the presentation of the + //! Interactive Object activates the selection mode; the + //! object is displayed but no viewer will be updated. + //! Warning + //! When the index isn't specified, the current context + //! is closed. This option can be dangerous, as other + //! Interactive Functions can open local contexts + //! without necessarily warning the user. + Standard_EXPORT void CloseLocalContext (const Standard_Integer Index = -1, const Standard_Boolean updateviewer = Standard_True); + + //! returns -1 if no opened local context. + Standard_EXPORT Standard_Integer IndexOfCurrentLocal() const; + + + //! Allows you to close all local contexts at one go and + //! return to Neutral Point. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void CloseAllContexts (const Standard_Boolean updateviewer = Standard_True); + + //! to be used only with no opened + //! local context.. displays and activates objects in their + //! original state before local contexts were opened... + Standard_EXPORT void ResetOriginalState (const Standard_Boolean updateviewer = Standard_True); + + //! clears Objects/Filters/Activated Modes list in the current opened + //! local context. + Standard_EXPORT void ClearLocalContext (const AIS_ClearMode TheMode = AIS_CM_All); + + Standard_EXPORT void UseDisplayedObjects(); + + //! when a local Context is opened, one is able to + //! use/not use the displayed objects at neutral point + //! at anytime. + Standard_EXPORT void NotUseDisplayedObjects(); + + //! initializes the list of presentations to be displayed + //! returns False if No Local COnte + 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; + + + //! Sets the highlighting status aStatus of detected and + //! selected entities. + //! Whether you are in Neutral Point or local context, this + //! is automatically managed by the Interactive Context. + //! This function allows you to disconnect the automatic mode. + Standard_EXPORT void SetAutomaticHilight (const Standard_Boolean aStatus); + + + //! Returns true if the automatic highlight mode is active + //! in an open context. + Standard_EXPORT Standard_Boolean AutomaticHilight() const; + + //! Enables/Disables the Z detection. + //! If TRUE the detection echo can be partially hidden by the + //! detected object. + Standard_EXPORT void SetZDetection (const Standard_Boolean aStatus = Standard_False); + + //! Retrieves the Z detection state. + Standard_EXPORT Standard_Boolean ZDetection() const; + + //! Activates the selection mode aMode whose index is + //! given, for the given interactive entity anIobj. + Standard_EXPORT void Activate (const Handle(AIS_InteractiveObject)& anIobj, const Standard_Integer aMode = 0, const Standard_Boolean theIsForce = Standard_False); + + //! Deactivates all the activated selection modes + //! of an object. + Standard_EXPORT void Deactivate (const Handle(AIS_InteractiveObject)& anIObj); + + + //! Deactivates all the activated selection modes of the + //! interactive object anIobj with a given selection mode aMode. + Standard_EXPORT void Deactivate (const Handle(AIS_InteractiveObject)& anIobj, const Standard_Integer aMode); + + + //! Returns the list of activated selection modes in an open context. + Standard_EXPORT void ActivatedModes (const Handle(AIS_InteractiveObject)& anIobj, TColStd_ListOfInteger& theList) const; + + //! to be Used only with opened local context and + //! if is of type shape... + //! if = True will be sensitive to + //! shape selection modes activation. + //! = False, will not be senstive + //! any more. + Standard_EXPORT void SetShapeDecomposition (const Handle(AIS_InteractiveObject)& anIobj, const Standard_Boolean aStatus); + + + //! Sets the temporary graphic attributes of the entity + //! anObj. These are provided by the attribute manager + //! aDrawer and are valid for a particular local context only. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void SetTemporaryAttributes (const Handle(AIS_InteractiveObject)& anObj, const Handle(Prs3d_Drawer)& aDrawer, const Standard_Boolean updateviewer = Standard_True); + + + //! Highlights, and removes highlights from, the displayed + //! object aniobj 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 and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void SubIntensityOn (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Boolean updateviewer = Standard_True); + + + //! Removes the subintensity option for the entity aniobj. + //! If a local context is open and if updateviewer equals + //! Standard_False, the presentation of the Interactive + //! Object activates the selection mode; the object is + //! displayed but no viewer will be updated. + Standard_EXPORT void SubIntensityOff (const Handle(AIS_InteractiveObject)& aniobj, const Standard_Boolean updateviewer = Standard_True); + + //! hilights/unhilights displayed objects which are displayed at + //! neutral state with subintensity color; + //! available only for active local context. + //! No effect if no local context. + Standard_EXPORT void SubIntensityOn (const Standard_Boolean updateviewer = Standard_True); + + //! removes subintensity option for all objects. + Standard_EXPORT void SubIntensityOff (const Standard_Boolean updateviewer = Standard_True); + + //! Allows you to add the filter aFilter to Neutral Point or + //! to a local context if one or more selection modes have been activated. + //! Only type filters may be active in Neutral Point. + Standard_EXPORT void AddFilter (const Handle(SelectMgr_Filter)& aFilter); + + + //! Removes a filter from Neutral Point or a local context + //! if one or more selection modes have been activated. + //! Only type filters are activated in Neutral Point. + Standard_EXPORT void RemoveFilter (const Handle(SelectMgr_Filter)& aFilter); + + //! Remove a filter to Neutral Point or a local context if + //! one or more selection modes have been activated. + //! Only type filters are active in Neutral Point. + Standard_EXPORT void RemoveFilters(); + + //! Provides an alternative to the Display methods when + //! activating specific selection modes. This has the + //! effect of activating the corresponding selection mode + //! aStandardActivation for all objects in Local Context + //! which accept decomposition into sub-shapes. + //! Every new Object which has been loaded into the + //! interactive context and which answers these + //! decomposition criteria is automatically activated + //! according to these modes. + //! Warning + //! If you have opened a local context by loading an + //! object with the default options + //! (= Standard_True), all + //! objects of the "Shape" type are also activated with + //! the same modes. You can act on the state of these + //! "Standard" objects by using SetShapeDecomposition(Status). + Standard_EXPORT void ActivateStandardMode (const TopAbs_ShapeEnum aStandardActivation); + + + //! Provides an alternative to the Display methods when + //! deactivating specific selection modes. This has the + //! effect of deactivating the corresponding selection + //! mode aStandardActivation for all objects in Local + //! Context which accept decomposition into sub-shapes. + Standard_EXPORT void DeactivateStandardMode (const TopAbs_ShapeEnum aStandardActivation); + + + //! Returns the list of activated standard selection modes + //! available in a local context. + Standard_EXPORT const TColStd_ListOfInteger& ActivatedStandardModes() const; + + + //! Returns the list of filters active in a local context. + Standard_EXPORT const SelectMgr_ListOfFilter& Filters() const; + + + //! 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; + + //! Returns the current viewer. + const Handle(V3d_Viewer)& CurrentViewer() const; + + //! 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 Standard_Boolean OnlyFromNeutral = Standard_False) 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 WhichKind, const Standard_Integer WhichSignature, AIS_ListOfInteractive& aListOfIO, const Standard_Boolean OnlyFromNeutral = Standard_False) 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 WhichKind, const Standard_Integer WhichSignature, 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 AIS_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 AIS_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_KOI_None and = -1, + //! all the objects are put into the list. + Standard_EXPORT void ObjectsInside (AIS_ListOfInteractive& aListOfIO, const AIS_KindOfInteractive WhichKind = AIS_KOI_None, const Standard_Integer WhichSignature = -1) const; + + //! Returns true if there is an open context. + Standard_Boolean HasOpenedContext() const; + + + //! Returns the name of the current selected entity in Neutral Point. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + const TCollection_AsciiString& CurrentName() const; + + + //! Returns the name of the current selected entity in + //! open local context. + //! Objects selected when there is no open local context + //! are called current objects; those selected in open + //! local context, selected objects. + Standard_EXPORT const TCollection_AsciiString& SelectionName() const; + + //! Returns the domain name of the main viewer. + Standard_EXPORT Standard_CString DomainOfMainViewer() const; + + + //! This method is only intended for advanced operation, particularly with + //! the aim to improve performance when many objects have to be selected + //! together. Otherwise, you should use other (non-internal) methods of + //! class AIS_InteractiveContext without trying to obtain an instance of + //! AIS_LocalContext. + Handle(AIS_LocalContext) LocalContext() const; + + const Handle(SelectMgr_SelectionManager)& SelectionManager() const; + + const Handle(PrsMgr_PresentationManager3d)& MainPrsMgr() const; + + const Handle(StdSelect_ViewerSelector3d)& MainSelector() const; + + Standard_EXPORT Handle(StdSelect_ViewerSelector3d) LocalSelector() const; + + //! Clears all the structures which don't + //! belong to objects displayed at neutral point + //! only effective when no Local Context is opened... + //! returns the number of removed structures from the viewers. + Standard_EXPORT Standard_Integer PurgeDisplay(); + + Standard_EXPORT Standard_Integer HighestIndex() const; + + Standard_EXPORT void DisplayActiveSensitive (const Handle(V3d_View)& aView); + + Standard_EXPORT void ClearActiveSensitive (const Handle(V3d_View)& aView); + + //! 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 = 0.01, const Standard_Boolean theToUpdate = Standard_True); + + Standard_EXPORT void DisplayActiveSensitive (const Handle(AIS_InteractiveObject)& anObject, const Handle(V3d_View)& aView); + + //! returns if possible, + //! the first local context where the object is seen + Standard_EXPORT Standard_Boolean IsInLocal (const Handle(AIS_InteractiveObject)& anObject, Standard_Integer& TheIndex) const; + + //! Rebuilds 1st level of BVH selection forcibly + Standard_EXPORT void RebuildSelectionStructs(); + + //! setup object visibility in specified view, + //! has no effect if object is not disaplyed in this context. + Standard_EXPORT void SetViewAffinity (const Handle(AIS_InteractiveObject)& theIObj, const Handle(V3d_View)& theView, const Standard_Boolean theIsVisible); + + //! 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 AIS_DisplayStatus theStatus = AIS_DS_None) const; + + +friend class AIS_LocalContext; + + + DEFINE_STANDARD_RTTI(AIS_InteractiveContext,MMgt_TShared) + +protected: + + + + +private: + + + 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)& anObj, const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT void ClearGlobal (const Handle(AIS_InteractiveObject)& anObj, const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT void ClearGlobalPrs (const Handle(AIS_InteractiveObject)& anObj, const Standard_Integer aMode, const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT void InitAttributes(); + + Standard_EXPORT Standard_Integer PurgeViewer (const Handle(V3d_Viewer)& Vwr); + + //! UNKNOWN + Standard_EXPORT void redisplayPrsModes (const Handle(AIS_InteractiveObject)& theIObj, const Standard_Boolean theToUpdateViewer = Standard_True); + + //! UNKNOWN + Standard_EXPORT void redisplayPrsRecModes (const Handle(AIS_InteractiveObject)& theIObj, const Standard_Boolean theToUpdateViewer = Standard_True); + + AIS_DataMapOfIOStatus myObjects; + Handle(SelectMgr_SelectionManager) mgrSelector; + Handle(PrsMgr_PresentationManager3d) myMainPM; + Handle(V3d_Viewer) myMainVwr; + Handle(StdSelect_ViewerSelector3d) myMainSel; + TCollection_AsciiString mySelectionName; + TCollection_AsciiString myCurrentName; + Handle(AIS_InteractiveObject) myLastPicked; + Handle(AIS_InteractiveObject) myLastinMain; + Standard_Boolean myWasLastMain; + Standard_Boolean myCurrentTouched; + Standard_Boolean mySelectedTouched; + Standard_Boolean myToHilightSelected; + Handle(SelectMgr_OrFilter) myFilters; + Handle(Prs3d_Drawer) myDefaultDrawer; + Quantity_NameOfColor myDefaultColor; + Quantity_NameOfColor myHilightColor; + Quantity_NameOfColor mySelectionColor; + Quantity_NameOfColor myPreselectionColor; + Quantity_NameOfColor mySubIntensity; + Standard_Integer myDisplayMode; + AIS_DataMapOfILC myLocalContexts; + Standard_Integer myCurLocalIndex; + Handle(V3d_View) mylastmoveview; + AIS_SequenceOfInteractive myAISDetectedSeq; + Standard_Integer myAISCurDetected; + Standard_Boolean myZDetectionFlag; + Standard_Boolean myIsAutoActivateSelMode; + + +}; + + +#include + + + + + +#endif // _AIS_InteractiveContext_HeaderFile diff --git a/src/AIS/AIS_InteractiveContext_1.cxx b/src/AIS/AIS_InteractiveContext_1.cxx index 4b7b25e24c..99928e8dea 100644 --- a/src/AIS/AIS_InteractiveContext_1.cxx +++ b/src/AIS/AIS_InteractiveContext_1.cxx @@ -14,37 +14,45 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include -#include #include -#include #include +#include +#include +#include +#include +#include +#include #include - +#include +#include #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include -#include -#include +#include +#include #include -#include -#include -#include - -#include - -#include -#include -#include - //======================================================================= //function : MoveTo //purpose : diff --git a/src/AIS/AIS_InteractiveContext_2.cxx b/src/AIS/AIS_InteractiveContext_2.cxx index 0b58c79f90..4c92373211 100644 --- a/src/AIS/AIS_InteractiveContext_2.cxx +++ b/src/AIS/AIS_InteractiveContext_2.cxx @@ -14,28 +14,39 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include - -#include -#include - -#include #include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : OpenLocalContext //purpose : //======================================================================= - Standard_Integer AIS_InteractiveContext:: OpenLocalContext(const Standard_Boolean UseDisplayedObjects, const Standard_Boolean AllowShapeDecomposition, diff --git a/src/AIS/AIS_InteractiveContext_3.cxx b/src/AIS/AIS_InteractiveContext_3.cxx index a34f65e596..80fcd2a098 100644 --- a/src/AIS/AIS_InteractiveContext_3.cxx +++ b/src/AIS/AIS_InteractiveContext_3.cxx @@ -15,13 +15,28 @@ // Modified: 22/03/04 ; SAN : OCC4895 High-level interface for controlling polygon offsets -#include -// OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets #include -// OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets - +// OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets +// OCC4895 SAN 22/03/04 High-level interface for controlling polygon offsets //======================================================================= //function : SetPolygonOffsets //purpose : diff --git a/src/AIS/AIS_InteractiveObject.cdl b/src/AIS/AIS_InteractiveObject.cdl deleted file mode 100644 index 235a468a70..0000000000 --- a/src/AIS/AIS_InteractiveObject.cdl +++ /dev/null @@ -1,626 +0,0 @@ --- Created on: 1996-12-11 --- 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. - -deferred class InteractiveObject from AIS inherits SelectableObject from SelectMgr - - ---Purpose: - -- Defines a class of objects with display and selection services. - -- Entities which are visualized and selected are - -- Interactive Objects. You can make use of classes of - -- standard Interactive Objects for which all necessary - -- methods have already been programmed, or you can - -- implement your own classes of Interactive Objects. - -- Specific attributes of entities such as arrow aspect for - -- dimensions must be loaded in a Drawer. This Drawer - -- is then applied to the Interactive Object in view. - -- There are four types of Interactive Object in AIS: the - -- construction element or Datum, the Relation, which - -- includes both dimensions and constraints, the Object, - -- and finally, when the object is of an unknown type, the None type. - -- Inside these categories, a signature, or index, - -- provides the possibility of additional characterization. - -- By default, the Interactive Object has a None type - -- and a signature of 0. If you want to give a particular - -- type and signature to your interactive object, you must - -- redefine the methods, Signature and Type. - -- Warning - -- In the case of attribute methods, methods for - -- standard attributes are virtual. They must be - -- redefined by the inheriting classes. Setcolor for a - -- point and Setcolor for a plane, for example, do not - -- affect the same attributes in the Drawer. - -uses - Trsf from gp, - NameOfColor from Quantity, - Color from Quantity, - Ratio from Quantity, - ListOfTransient from TColStd, - ListOfInteger from TColStd, - Box from Bnd, - NameOfMaterial from Graphic3d, - MaterialAspect from Graphic3d, - PToContext from AIS, - TypeOfPresentation3d from PrsMgr, - InteractiveContext from AIS, - KindOfInteractive from AIS, - TypeOfFacingModel from Aspect, - Transformation from Geom, - Presentation from Prs3d, - BasicAspect from Prs3d, - -- 22-03-04 OCC4895 SAN High-level interface for controlling polygon offsets - PresentationManager from PrsMgr, - Presentation from PrsMgr - -- 22-03-04 OCC4895 SAN High-level interface for controlling polygon offsets - -is - Initialize (aTypeOfPresentation3d: TypeOfPresentation3d from PrsMgr = PrsMgr_TOP_AllView) ; - ---Purpose: The TypeOfPresention3d means that the interactive object - -- may have a presentation dependant of the view of Display - - - - ---Category: Virtual methods to be redefined... - - Type (me) returns KindOfInteractive from AIS is virtual; - ---Purpose: - -- Returns the kind of Interactive Object: - -- - None - -- - Datum - -- - Relation - -- - Object - -- By default, the interactive object has a None type. - -- Because specific shapes entail different behavior - -- according to their sub-shapes, you may need to - -- create a Local Context. This will allow you to - -- specify the additional characteristics which you - -- need to handle these shapes. - - Signature(me) returns Integer from Standard is virtual; - ---Purpose: Specifies additional characteristics of Interactive - -- Objects. A signature is, in fact, an index with integer - -- values assigned different properties. - -- This method is frequently used in conjuction with - -- Type to give a particular type and signature to an - -- Interactive Object. By default, the Interactive Object - -- has a None type and a signature of 0. Among the - -- datums, this signature is attributed to the shape - -- The remaining datums have the following default signatures: - -- - Point signature 1 - -- - Axis signature 2 - -- - Trihedron signature 3 - -- - PlaneTrihedron signature 4 - -- - Line signature 5 - -- - Circle signature 6 - -- - Plane signature 7. - - - AcceptShapeDecomposition(me) returns Boolean from Standard is virtual; - ---C++: inline - ---Purpose: Informs the graphic context that the interactive Object - -- may be decomposed into sub-shapes for dynamic selection. - -- The most used Interactive Object is AIS_Shape. - -- Activation methods for standard selection modes are - -- proposed in the Interactive Context. These include - -- selection by vertex or by edges. For datums with the - -- same behavior as AIS_Shape, such as vetices and - -- edges, we must redefine the virtual method so that - -- AcceptShapeDecomposition returns false. - -- Rule for selection : - -- Mode 0 : Selection of the interactive Object itself - -- Mode 1 : Selection of vertices - -- Mode 2 : Selection Of Edges - -- Mode 3 : Selection Of Wires - -- Mode 4 : Selection Of Faces ... - - - SetCurrentFacingModel(me: mutable; - aModel: TypeOfFacingModel from Aspect = Aspect_TOFM_BOTH_SIDE); - ---Purpose: 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. - - CurrentFacingModel(me) returns TypeOfFacingModel from Aspect; - ---Purpose: Returns the current facing model which is in effect. - - SetColor(me:mutable;aColor:Color from Quantity) is virtual; - - SetColor(me:mutable;aColor:NameOfColor from Quantity) is virtual; - ---Purpose: only the interactive obj knowns which Drawer attribute - -- is affected by the color (ex: for a wire, it's the - -- wireaspect field of the drawer, but for a vertex, only - -- the point aspect field is affected by the color) - -- WARNING : Do not forget to set the corresponding fields - -- here (hasOwnColor and myOwnColor) - - UnsetColor(me:mutable) is virtual; - ---Purpose: Removes color settings. Only the Interactive Object - -- knows which Drawer attribute is affected by the color - -- setting. For a wire, for example, wire aspect is the - -- attribute affected. For a vertex, however, only point - -- aspect is affected by the color setting. - - SetWidth(me:mutable; aValue:Real from Standard) is virtual; - ---Purpose: Allows you to provide the setting aValue for width. - -- Only the Interactive Object knows which Drawer - -- attribute is affected by the width setting. - - UnsetWidth(me:mutable) is virtual; - - AcceptDisplayMode(me;aMode:Integer from Standard) returns Boolean from Standard is virtual; - ---Purpose: Returns true if the class of objects accepts the display mode aMode. - -- The interactive context can have a default mode of - -- representation for the set of Interactive Objects. This - -- mode may not be accepted by a given class of - -- objects. Consequently, this virtual method allowing us - -- to get information about the class in question must be implemented. - DefaultDisplayMode(me) returns Integer from Standard is virtual; - ---Purpose: Returns the default display mode. This method is to - -- be implemented when the main mode is not mode 0. - - - Redisplay (me:mutable; AllModes:Boolean from Standard =Standard_False); - ---Purpose: Updates the active presentation; if = Standard_True - -- all the presentations inside are recomputed. - -- IMPORTANT: It is preferable to call Redisplay method of - -- corresponding AIS_InteractiveContext instance for cases when it - -- is accessible. This method just redirects call to myCTXPtr, - -- so this class field must be up to date for proper result. - - - SetInfiniteState(me:mutable;aFlag:Boolean from Standard = Standard_True); - ---Purpose: Sets the infinite state flag aFlage. - -- if = True , the interactiveObject is - -- considered as infinite, i.e. its graphic presentations - -- are not taken in account for View FitAll... - - IsInfinite(me) returns Boolean from Standard; - ---C++: inline - ---Purpose: - -- Returns true if the interactive object is infinite. In this - -- case, its graphic presentations are not taken into - -- account in the fit-all view. - - - ---Category: Link To InteractiveContext - - HasInteractiveContext(me) returns Boolean from Standard; - ---Purpose: Indicates whether the Interactive Object has a pointer - -- to an interactive context. - - GetContext(me) returns InteractiveContext from AIS; - ---Purpose: Returns the context pointer to the interactive context. - - SetContext(me:mutable; aCtx : InteractiveContext from AIS) is virtual; - ---Purpose: Sets the interactive context aCtx and provides a link - -- to the default drawing tool or "Drawer" if there is none. - - HasOwner (me) returns Boolean from Standard; - ---Purpose: Returns true if the object has an owner attributed to it. - -- The owner can be a shape for a set of sub-shapes or - -- a sub-shape for sub-shapes which it is composed of, - -- and takes the form of a transient. - - GetOwner (me) returns any Transient from Standard; - ---Purpose: Returns the owner of the Interactive Object. - -- The owner can be a shape for a set of sub-shapes or - -- a sub-shape for sub-shapes which it is composed of, - -- and takes the form of a transient. - -- There are two types of owners: - -- - Direct owners, decomposition shapes such as - -- edges, wires, and faces. - -- - Users, presentable objects connecting to sensitive - -- primitives, or a shape which has been decomposed. - ---C++: inline - ---C++: return const& - - - - SetOwner (me : mutable; - ApplicativeEntity : Transient from Standard); - ---Purpose: Allows you to attribute the owner ApplicativeEntity to - -- an Interactive Object. This can be a shape for a set of - -- sub-shapes or a sub-shape for sub-shapes which it - -- is composed of. The owner takes the form of a transient. - ---C++: inline - - ClearOwner(me:mutable); - ---Purpose: Each Interactive Object has methods which allow us - -- to attribute an Owner to it in the form of a Transient. - -- This method removes the owner from the graphic entity. - - - HasUsers(me) returns Boolean from Standard; - - Users(me) returns ListOfTransient from TColStd; - ---C++: inline - ---C++: return const& - - - AddUser(me:mutable; aUser : Transient from Standard); - - ClearUsers(me:mutable); - - - - ---Category: "STANDARD" LOCAL ATTRIBUTES : - -- - -- -Local DisplayMode - -- -Color - -- -width of lines or points - -- -typeOfLine or Marker Aspect - -- -material name (if needed) - -- -transparency (if needed) - -- - -- Specific attributes of entities (such as - -- arrow aspect for dimensions) must be - -- loaded in a Drawer; this drawer is then - -- applied to InteractiveObject WARNING : - -- Here the Methods for standard attributes - -- are virtual and do nothing they must be - -- redefined by the inheriting classes - -- (setcolor for a point and setcolor for a plane - -- don't affect the same attributes in the Drawer) - - - HasDisplayMode (me) - returns Boolean from Standard; - ---Purpose: - -- Returns true if the Interactive Object has a display - -- mode setting. Otherwise, it is displayed in Neutral Point. - ---C++: inline - - SetDisplayMode(me : mutable; aMode : Integer from Standard); - ---Purpose: Sets the display mode aMode for the interactive object. - -- An object can have its own temporary display mode, - -- which is different from that proposed by the interactive context. - -- The range of possibilities currently proposed is the following: - -- - AIS_WireFrame - -- - AIS_Shaded - -- This range can, however, be extended through the creation of new display modes. - - UnsetDisplayMode(me : mutable); - ---Purpose: Removes display mode settings from the interactive object. - ---C++: inline - - DisplayMode(me) - returns Integer; - ---C++: inline - ---Purpose: Returns the display mode setting of the Interactive Object. - -- The range of possibilities is the following: - -- - AIS_WireFrame - -- - AIS_Shaded - -- This range can, however, be extended through the - -- creation of new display modes. - - - HasSelectionMode(me) returns Boolean from Standard; - ---Purpose: Allows you to change the selection mode of an - -- Interactive Object. - -- The default selection mode setting is 0. - -- For shapes, for example, the selection modes are as follows: - -- - mode 0 - selection of the shape itself - -- - mode 1 - selection of vertices - -- - mode 2 - selection of edges - -- - mode 3 - selection of wires - -- - mode 4 - selection of faces - -- - mode 5 - selection of shells - -- - mode 6 - selection of solids - -- - mode 7 - selection of compounds - -- For trihedra, on the other hand, the selection modes are the following four: - -- - mode 0 - selection of a trihedron - -- - mode 1 - selection of its origin - -- - mode 2 - selection of its axes - -- - mode 3 - selection of its planes - - SelectionMode(me) returns Integer from Standard; - ---Purpose: Returns the selection mode of the interactive object. - - SetSelectionMode(me:mutable; aMode: Integer from Standard); - ---Purpose: You can change the default selection mode index - -- aMode of an Interactive Object. - -- This is only of interest if you decide that mode 0 - -- adopted by convention will not do. - - UnsetSelectionMode(me:mutable); - ---Purpose: You can change the default selection mode index of - -- an Interactive Object. - -- This is only of interest if you decide that the 0 mode - -- adopted by convention will not do. - ---C++: inline - - - SelectionPriority(me) returns Integer from Standard; - ---C++: inline - ---Purpose: Returns the selection priority setting. -1 indicates that there is none. - -- You can modify the selection priority of an owner to - -- make one entity more selectionable than another one. - -- The default selection priority for an owner is 5, for - -- example. To increase selection priority, choose a - -- setting between 5 and 10. An entity with priority 7 will - -- take priority over one with a setting of 6 if both - -- objects are selected at the same time. - -- You could give vertices priority 8, edges priority 7, - -- faces priority 6, and shapes priority 5. If a vertex, an - -- edge and a face are simultaneously detected during - -- selection, only the vertex will then be highlighted. - -- For trihedra, for example, the default priorities are the following four: - -- - priority 1 - a trihedron - -- - priority 5 - its origin - -- - priority 3 - its axes - -- - priority 2 - its planes - - SetSelectionPriority(me:mutable; aPriority : Integer from Standard); - ---C++: inline - ---Purpose: Allows you to provide a setting aPriority for selection priority. - -- You can modify selection priority of an owner to make - -- one entity more selectionable than another one. The - -- default selection priority for an owner is 5, for - -- example. To increase selection priority, choose a - -- setting between 5 and 10. An entity with priority 7 will - -- take priority over one with a setting of 6. - - UnsetSelectionPriority(me:mutable); - ---C++: inline - ---Purpose: Removes the setting for selection priority. SelectionPriority then returns -1. - - HasSelectionPriority(me) returns Boolean from Standard; - ---C++: inline - ---Purpose: Returns true if there is a setting for selection priority. - -- You can modify selection priority of an owner to make - -- one entity more selectionable than another one. The - -- default selection priority for an owner is 5, for - -- example. To increase selection priority, choose a - -- setting between 5 and 10. An entity with priority 7 will - -- take priority over one with a setting of 6. - - HasHilightMode(me) returns Boolean from Standard; - ---C++: inline - ---Purpose: Returns true if the Interactive Object is in highlight mode. - - HilightMode(me) returns Integer from Standard ; - ---C++: inline - ---Purpose: Returns the setting for highlight mode. - -- At dynamic detection, the presentation echoed by the - -- Interactive Context, is by default the presentation - -- already on the screen. You can specify a Highlight - -- presentation mode which is valid no matter what the - -- active representation of the object. It makes no - -- difference whether this choice is temporary or - -- definitive. To do this, we use the following functions: - -- - SetHilightMode - -- - UnSetHilightMode - -- In the case of a shape, whether it is visualized in - -- wireframe presentation or with shading, we want to - -- systematically highlight the wireframe presentation. - -- Consequently, we set the highlight mode to 0. - - SetHilightMode(me:mutable;anIndex : Integer from Standard); - ---C++: inline - ---Purpose: Sets the highlight mode anIndex for the interactive object. - -- If, for example, you want to systematically highlight - -- the wireframe presentation of a shape - whether - -- visualized in wireframe presentation or with shading - - -- you set the highlight mode to 0. - - UnsetHilightMode(me:mutable); - ---C++: inline - ---Purpose: Allows the user to take a given Prs for hilight - -- ex : for a shape which would be displayed in shading mode - -- the hilight Prs is the wireframe mode. - -- if No specific hilight mode is defined, the displayed Prs - -- will be the hilighted one. - - HasColor (me) returns Boolean from Standard; - ---C++: inline - ---Purpose: Returns true if the Interactive Object has color. - - Color(me) returns NameOfColor from Quantity is virtual; - ---C++: inline - ---Purpose: Returns the color setting of the Interactive Object. - - Color(me; aColor: out Color from Quantity) is virtual; - ---C++: inline - - HasWidth(me) returns Boolean from Standard; - ---C++: inline - ---Purpose: Returns true if the Interactive Object has width. - - Width(me) returns Real from Standard ; - --- Purpose: Returns the width setting of the Interactive Object. - - HasMaterial(me) returns Boolean from Standard ; - ---Purpose: Returns true if the Interactive Object has a setting for material. - Material(me) returns NameOfMaterial from Graphic3d is virtual; - ---Purpose: Returns the current material setting. - -- This will be on of the following materials: - -- - Brass - -- - Bronze - -- - Gold - -- - Pewter - -- - Silver - -- - Stone. - - SetMaterial(me:mutable;aName:NameOfMaterial from Graphic3d) is virtual; - ---Purpose: Sets the name aName for material defining this - -- display attribute for the interactive object. - -- Material aspect determines shading aspect, color and - -- transparency of visible entities. - - - SetMaterial(me:mutable;aName:MaterialAspect from Graphic3d) is virtual; - --- Purpose: Sets the material aMat defining this display attribute - -- for the interactive object. - -- Material aspect determines shading aspect, color and - -- transparency of visible entities. - - UnsetMaterial(me:mutable) is virtual; - ---Purpose: Removes the setting for material. - - SetTransparency(me:mutable;aValue : Real from Standard=0.6) is virtual; - ---Purpose: Attributes a setting aValue for transparency. - -- The transparency value should be between 0.0 and 1.0. - -- At 0.0 an object will be totally opaque, and at 1.0, fully transparent. - -- Warning At a value of 1.0, there may be nothing visible. - - IsTransparent(me) returns Boolean from Standard; - ---C++: inline - ---Purpose: Returns true if there is a transparency setting. - - Transparency(me) returns Real from Standard is virtual; - ---Purpose: Returns the transparency setting. - -- This will be between 0.0 and 1.0. - -- At 0.0 an object will be totally opaque, and at 1.0, fully transparent. - - UnsetTransparency(me:mutable) is virtual; - ---Purpose: Removes the transparency setting. The object is opaque by default. - - UnsetAttributes(me:mutable) is redefined virtual; - ---Purpose: Clears settings provided by the drawing tool aDrawer. - - ---Category: information about Prs to be recomputed - -- after local attributes change... to be removed... - - RecomputeEveryPrs(me) returns Boolean is virtual private; - - MustRecomputePrs(me;aMode : Integer from Standard) is private; - - ListOfRecomputeModes(me)returns ListOfInteger from TColStd is private; - ---C++: return const& - SetRecomputeOk(me:mutable) is private; - - State(me:mutable;theState: Integer from Standard) ; - ---C++: inline - State(me) returns Integer from Standard ; - ---C++: inline - - HasPresentation ( me ) returns Boolean from Standard - is static; - ---Level: Public - ---Purpose: Returns TRUE when this object has a presentation - -- in the current DisplayMode() - ---Category: Inquire transformation method - - Presentation ( me ) returns Presentation from Prs3d - is static; - ---Level: Public - ---Purpose: Returns the current presentation of this object - -- according to the current DisplayMode() - ---Category: Inquire transformation method - - SetAspect ( me : mutable; anAspect: any BasicAspect from Prs3d; - globalChange: Boolean from Standard = Standard_True) - is static; - ---Level: Public - ---Purpose: Sets the graphic basic aspect to the current presentation. - -- When is TRUE , the full object presentation - -- is changed. - -- When is FALSE , only the current group - -- of the object presentation is changed. - ---Category: Graphic attributes management - - -- 22-03-04 OCC4895 SAN High-level interface for controlling polygon offsets - SetPolygonOffsets ( me : mutable; - aMode : Integer from Standard; - aFactor : ShortReal from Standard = 1.0; - aUnits : ShortReal from Standard = 0.0 ) is virtual; - ---Level: Public - ---Purpose: Sets up polygon offsets for this object. - -- It modifies all existing presentations of (if any), - -- so it is reasonable to call this method after has been displayed. - -- Otherwise, Compute() method should pass Graphic3d_AspectFillArea3d - -- aspect from to Graphic3d_Group to make polygon offsets work. - -- - -- parameter can contain various combinations of - -- Aspect_PolygonOffsetMode enumeration elements (Aspect_POM_None means - -- that polygon offsets are not changed). - -- If is different from Aspect_POM_Off and Aspect_POM_None, then and - -- arguments are used by graphic renderer to calculate a depth offset value: - -- - -- offset = * m + * r, where - -- m - maximum depth slope for the polygon currently being displayed, - -- r - minimum window coordinates depth resolution (implementation-specific). - -- - -- Deafult settings for OCC 3D viewer: mode = Aspect_POM_Fill, factor = 1., units = 0. - -- - -- Negative offset values move polygons closer to the viewport, - -- while positive values shift polygons away. - -- Consult OpenGL reference for details (glPolygonOffset function description). - -- - -- NOTE: This method has a side effect - it creates own shading aspect - -- if not yet created, so it is better to set up object material, - -- color, etc. first. - ---Category: Graphic attributes management - - HasPolygonOffsets ( me ) - returns Boolean from Standard - is virtual; - ---Level: Public - ---Purpose: Returns Standard_True if has non-null shading aspect - ---Category: Inquire methods - - PolygonOffsets ( me; - aMode : out Integer from Standard; - aFactor : out ShortReal from Standard; - aUnits : out ShortReal from Standard ) is virtual; - ---Level: Public - ---Purpose: Retrieves current polygon offsets settings from . - ---Category: Inquire methods - - BoundingBox (me : mutable; - theBndBox : out Box from Bnd) - is redefined; - ---Level: Public - ---Purpose: Returns bounding box of object correspondingly to its current display mode. - -fields - - myCTXPtr : PToContext from AIS; - - -- The reference to applicative World... - - myOwner : Transient from Standard; - myUsers : ListOfTransient from TColStd; - - -- The Information Fields - - myTransparency : Real from Standard is protected; - myOwnColor : Color from Quantity is protected; - myOwnMaterial : NameOfMaterial from Graphic3d is protected; - ---myOwnMaterial : NameOfPhysicalMaterial from Graphic3d is protected; - mySelPriority : Integer from Standard; - myDisplayMode : Integer from Standard ; - mySelectionMode : Integer from Standard; - myHilightMode : Integer from Standard is protected; - myOwnWidth : Real from Standard is protected; - myInfiniteState : Boolean from Standard is protected; - hasOwnColor : Boolean from Standard is protected; - hasOwnMaterial : Boolean from Standard is protected ; - myCurrentFacingModel: TypeOfFacingModel from Aspect is protected; - - -- the management field (to be removed)... - myRecomputeEveryPrs : Boolean from Standard is protected; - - myToRecomputeModes : ListOfInteger from TColStd is protected; - mystate : Integer from Standard; - - -friends - class InteractiveContext from AIS - -end InteractiveObject; - diff --git a/src/AIS/AIS_InteractiveObject.cxx b/src/AIS/AIS_InteractiveObject.cxx index 65a284be13..2eeea8a430 100644 --- a/src/AIS/AIS_InteractiveObject.cxx +++ b/src/AIS/AIS_InteractiveObject.cxx @@ -16,19 +16,11 @@ // Modified : 22/03/04 ; SAN : OCC4895 High-level interface for controlling polygon offsets -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include +#include +#include +#include +#include #include #include #include @@ -36,14 +28,26 @@ #include #include #include +#include #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : AIS_InteractiveObject //purpose : //======================================================================= - AIS_InteractiveObject:: AIS_InteractiveObject(const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d): SelectMgr_SelectableObject(aTypeOfPresentation3d), diff --git a/src/AIS/AIS_InteractiveObject.hxx b/src/AIS/AIS_InteractiveObject.hxx new file mode 100644 index 0000000000..91af12d38f --- /dev/null +++ b/src/AIS/AIS_InteractiveObject.hxx @@ -0,0 +1,546 @@ +// Created on: 1996-12-11 +// 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_InteractiveObject_HeaderFile +#define _AIS_InteractiveObject_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_Transient; +class AIS_InteractiveContext; +class Quantity_Color; +class Graphic3d_MaterialAspect; +class Prs3d_Presentation; +class Prs3d_BasicAspect; +class Bnd_Box; + + +class AIS_InteractiveObject; +DEFINE_STANDARD_HANDLE(AIS_InteractiveObject, SelectMgr_SelectableObject) + + +//! Defines a class of objects with display and selection services. +//! Entities which are visualized and selected are +//! Interactive Objects. You can make use of classes of +//! standard Interactive Objects for which all necessary +//! methods have already been programmed, or you can +//! implement your own classes of Interactive Objects. +//! Specific attributes of entities such as arrow aspect for +//! dimensions must be loaded in a Drawer. This Drawer +//! is then applied to the Interactive Object in view. +//! There are four types of Interactive Object in AIS: the +//! construction element or Datum, the Relation, which +//! includes both dimensions and constraints, the Object, +//! and finally, when the object is of an unknown type, the None type. +//! Inside these categories, a signature, or index, +//! provides the possibility of additional characterization. +//! By default, the Interactive Object has a None type +//! and a signature of 0. If you want to give a particular +//! type and signature to your interactive object, you must +//! redefine the methods, Signature and Type. +//! Warning +//! In the case of attribute methods, methods for +//! standard attributes are virtual. They must be +//! redefined by the inheriting classes. Setcolor for a +//! point and Setcolor for a plane, for example, do not +//! affect the same attributes in the Drawer. +class AIS_InteractiveObject : public SelectMgr_SelectableObject +{ + +public: + + + + //! Returns the kind of Interactive Object: + //! - None + //! - Datum + //! - Relation + //! - Object + //! By default, the interactive object has a None type. + //! Because specific shapes entail different behavior + //! according to their sub-shapes, you may need to + //! create a Local Context. This will allow you to + //! specify the additional characteristics which you + //! need to handle these shapes. + Standard_EXPORT virtual AIS_KindOfInteractive Type() const; + + //! Specifies additional characteristics of Interactive + //! Objects. A signature is, in fact, an index with integer + //! values assigned different properties. + //! This method is frequently used in conjuction with + //! Type to give a particular type and signature to an + //! Interactive Object. By default, the Interactive Object + //! has a None type and a signature of 0. Among the + //! datums, this signature is attributed to the shape + //! The remaining datums have the following default signatures: + //! - Point signature 1 + //! - Axis signature 2 + //! - Trihedron signature 3 + //! - PlaneTrihedron signature 4 + //! - Line signature 5 + //! - Circle signature 6 + //! - Plane signature 7. + Standard_EXPORT virtual Standard_Integer Signature() const; + + //! Informs the graphic context that the interactive Object + //! may be decomposed into sub-shapes for dynamic selection. + //! The most used Interactive Object is AIS_Shape. + //! Activation methods for standard selection modes are + //! proposed in the Interactive Context. These include + //! selection by vertex or by edges. For datums with the + //! same behavior as AIS_Shape, such as vetices and + //! edges, we must redefine the virtual method so that + //! AcceptShapeDecomposition returns false. + //! Rule for selection : + //! Mode 0 : Selection of the interactive Object itself + //! Mode 1 : Selection of vertices + //! Mode 2 : Selection Of Edges + //! Mode 3 : Selection Of Wires + //! Mode 4 : Selection Of Faces ... + virtual Standard_Boolean AcceptShapeDecomposition() const; + + //! 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 Aspect_TypeOfFacingModel aModel = Aspect_TOFM_BOTH_SIDE); + + //! Returns the current facing model which is in effect. + Standard_EXPORT Aspect_TypeOfFacingModel CurrentFacingModel() const; + + Standard_EXPORT virtual void SetColor (const Quantity_Color& aColor); + + //! only the interactive obj knowns which Drawer attribute + //! is affected by the color (ex: for a wire, it's the + //! wireaspect field of the drawer, but for a vertex, only + //! the point aspect field is affected by the color) + //! WARNING : Do not forget to set the corresponding fields + //! here (hasOwnColor and myOwnColor) + Standard_EXPORT virtual void SetColor (const Quantity_NameOfColor aColor); + + //! Removes color settings. Only the Interactive Object + //! knows which Drawer attribute is affected by the color + //! setting. For a wire, for example, wire aspect is the + //! attribute affected. For a vertex, however, only point + //! aspect is affected by the color setting. + Standard_EXPORT virtual void UnsetColor(); + + //! Allows you to provide the setting aValue for width. + //! Only the Interactive Object knows which Drawer + //! attribute is affected by the width setting. + Standard_EXPORT virtual void SetWidth (const Standard_Real aValue); + + Standard_EXPORT virtual void UnsetWidth(); + + //! Returns true if the class of objects accepts the display mode aMode. + //! The interactive context can have a default mode of + //! representation for the set of Interactive Objects. This + //! mode may not be accepted by a given class of + //! objects. Consequently, this virtual method allowing us + //! to get information about the class in question must be implemented. + Standard_EXPORT virtual Standard_Boolean AcceptDisplayMode (const Standard_Integer aMode) const; + + //! Returns the default display mode. This method is to + //! be implemented when the main mode is not mode 0. + Standard_EXPORT virtual Standard_Integer DefaultDisplayMode() const; + + //! Updates the active presentation; if = Standard_True + //! all the presentations inside are recomputed. + //! IMPORTANT: It is preferable to call Redisplay method of + //! corresponding AIS_InteractiveContext instance for cases when it + //! is accessible. This method just redirects call to myCTXPtr, + //! so this class field must be up to date for proper result. + Standard_EXPORT void Redisplay (const Standard_Boolean AllModes = Standard_False); + + //! Sets the infinite state flag aFlage. + //! if = True , the interactiveObject is + //! considered as infinite, i.e. its graphic presentations + //! are not taken in account for View FitAll... + Standard_EXPORT void SetInfiniteState (const Standard_Boolean aFlag = Standard_True); + + + //! Returns true if the interactive object is infinite. In this + //! case, its graphic presentations are not taken into + //! account in the fit-all view. + Standard_Boolean IsInfinite() const; + + //! Indicates whether the Interactive Object has a pointer + //! to an interactive context. + Standard_EXPORT Standard_Boolean HasInteractiveContext() const; + + //! Returns the context pointer to the interactive context. + Standard_EXPORT Handle(AIS_InteractiveContext) GetContext() const; + + //! Sets the interactive context aCtx and provides a link + //! to the default drawing tool or "Drawer" if there is none. + Standard_EXPORT virtual void SetContext (const Handle(AIS_InteractiveContext)& aCtx); + + //! Returns true if the object has an owner attributed to it. + //! The owner can be a shape for a set of sub-shapes or + //! a sub-shape for sub-shapes which it is composed of, + //! and takes the form of a transient. + Standard_EXPORT Standard_Boolean HasOwner() const; + + //! Returns the owner of the Interactive Object. + //! The owner can be a shape for a set of sub-shapes or + //! a sub-shape for sub-shapes which it is composed of, + //! and takes the form of a transient. + //! There are two types of owners: + //! - Direct owners, decomposition shapes such as + //! edges, wires, and faces. + //! - Users, presentable objects connecting to sensitive + //! primitives, or a shape which has been decomposed. + const Handle(Standard_Transient)& GetOwner() const; + + //! Allows you to attribute the owner ApplicativeEntity to + //! an Interactive Object. This can be a shape for a set of + //! sub-shapes or a sub-shape for sub-shapes which it + //! is composed of. The owner takes the form of a transient. + void SetOwner (const Handle(Standard_Transient)& ApplicativeEntity); + + //! Each Interactive Object has methods which allow us + //! to attribute an Owner to it in the form of a Transient. + //! This method removes the owner from the graphic entity. + Standard_EXPORT void ClearOwner(); + + Standard_EXPORT Standard_Boolean HasUsers() const; + + const TColStd_ListOfTransient& Users() const; + + Standard_EXPORT void AddUser (const Handle(Standard_Transient)& aUser); + + Standard_EXPORT void ClearUsers(); + + + //! Returns true if the Interactive Object has a display + //! mode setting. Otherwise, it is displayed in Neutral Point. + Standard_Boolean HasDisplayMode() const; + + //! Sets the display mode aMode for the interactive object. + //! An object can have its own temporary display mode, + //! which is different from that proposed by the interactive context. + //! The range of possibilities currently proposed is the following: + //! - AIS_WireFrame + //! - AIS_Shaded + //! This range can, however, be extended through the creation of new display modes. + Standard_EXPORT void SetDisplayMode (const Standard_Integer aMode); + + //! Removes display mode settings from the interactive object. + void UnsetDisplayMode(); + + //! Returns the display mode setting of the Interactive Object. + //! The range of possibilities is the following: + //! - AIS_WireFrame + //! - AIS_Shaded + //! This range can, however, be extended through the + //! creation of new display modes. + Standard_Integer DisplayMode() const; + + //! Allows you to change the selection mode of an + //! Interactive Object. + //! The default selection mode setting is 0. + //! For shapes, for example, the selection modes are as follows: + //! - mode 0 - selection of the shape itself + //! - mode 1 - selection of vertices + //! - mode 2 - selection of edges + //! - mode 3 - selection of wires + //! - mode 4 - selection of faces + //! - mode 5 - selection of shells + //! - mode 6 - selection of solids + //! - mode 7 - selection of compounds + //! For trihedra, on the other hand, the selection modes are the following four: + //! - mode 0 - selection of a trihedron + //! - mode 1 - selection of its origin + //! - mode 2 - selection of its axes + //! - mode 3 - selection of its planes + Standard_EXPORT Standard_Boolean HasSelectionMode() const; + + //! Returns the selection mode of the interactive object. + Standard_EXPORT Standard_Integer SelectionMode() const; + + //! You can change the default selection mode index + //! aMode of an Interactive Object. + //! This is only of interest if you decide that mode 0 + //! adopted by convention will not do. + Standard_EXPORT void SetSelectionMode (const Standard_Integer aMode); + + //! You can change the default selection mode index of + //! an Interactive Object. + //! This is only of interest if you decide that the 0 mode + //! adopted by convention will not do. + void UnsetSelectionMode(); + + //! Returns the selection priority setting. -1 indicates that there is none. + //! You can modify the selection priority of an owner to + //! make one entity more selectionable than another one. + //! The default selection priority for an owner is 5, for + //! example. To increase selection priority, choose a + //! setting between 5 and 10. An entity with priority 7 will + //! take priority over one with a setting of 6 if both + //! objects are selected at the same time. + //! You could give vertices priority 8, edges priority 7, + //! faces priority 6, and shapes priority 5. If a vertex, an + //! edge and a face are simultaneously detected during + //! selection, only the vertex will then be highlighted. + //! For trihedra, for example, the default priorities are the following four: + //! - priority 1 - a trihedron + //! - priority 5 - its origin + //! - priority 3 - its axes + //! - priority 2 - its planes + Standard_Integer SelectionPriority() const; + + //! Allows you to provide a setting aPriority for selection priority. + //! You can modify selection priority of an owner to make + //! one entity more selectionable than another one. The + //! default selection priority for an owner is 5, for + //! example. To increase selection priority, choose a + //! setting between 5 and 10. An entity with priority 7 will + //! take priority over one with a setting of 6. + void SetSelectionPriority (const Standard_Integer aPriority); + + //! Removes the setting for selection priority. SelectionPriority then returns -1. + void UnsetSelectionPriority(); + + //! Returns true if there is a setting for selection priority. + //! You can modify selection priority of an owner to make + //! one entity more selectionable than another one. The + //! default selection priority for an owner is 5, for + //! example. To increase selection priority, choose a + //! setting between 5 and 10. An entity with priority 7 will + //! take priority over one with a setting of 6. + Standard_Boolean HasSelectionPriority() const; + + //! Returns true if the Interactive Object is in highlight mode. + Standard_Boolean HasHilightMode() const; + + //! Returns the setting for highlight mode. + //! At dynamic detection, the presentation echoed by the + //! Interactive Context, is by default the presentation + //! already on the screen. You can specify a Highlight + //! presentation mode which is valid no matter what the + //! active representation of the object. It makes no + //! difference whether this choice is temporary or + //! definitive. To do this, we use the following functions: + //! - SetHilightMode + //! - UnSetHilightMode + //! In the case of a shape, whether it is visualized in + //! wireframe presentation or with shading, we want to + //! systematically highlight the wireframe presentation. + //! Consequently, we set the highlight mode to 0. + Standard_Integer HilightMode() const; + + //! Sets the highlight mode anIndex for the interactive object. + //! If, for example, you want to systematically highlight + //! the wireframe presentation of a shape - whether + //! visualized in wireframe presentation or with shading - + //! you set the highlight mode to 0. + void SetHilightMode (const Standard_Integer anIndex); + + //! Allows the user to take a given Prs for hilight + //! ex : for a shape which would be displayed in shading mode + //! the hilight Prs is the wireframe mode. + //! if No specific hilight mode is defined, the displayed Prs + //! will be the hilighted one. + void UnsetHilightMode(); + + //! Returns true if the Interactive Object has color. + Standard_Boolean HasColor() const; + + //! Returns the color setting of the Interactive Object. + virtual Quantity_NameOfColor Color() const; + + virtual void Color (Quantity_Color& aColor) const; + + //! Returns true if the Interactive Object has width. + Standard_Boolean HasWidth() const; + + //! Returns the width setting of the Interactive Object. + Standard_EXPORT Standard_Real Width() const; + + //! Returns true if the Interactive Object has a setting for material. + Standard_EXPORT Standard_Boolean HasMaterial() const; + + //! Returns the current material setting. + //! This will be on of the following materials: + //! - Brass + //! - Bronze + //! - Gold + //! - Pewter + //! - Silver + //! - Stone. + Standard_EXPORT virtual Graphic3d_NameOfMaterial Material() const; + + //! Sets the name aName for material defining this + //! display attribute for the interactive object. + //! Material aspect determines shading aspect, color and + //! transparency of visible entities. + Standard_EXPORT virtual void SetMaterial (const Graphic3d_NameOfMaterial aName); + + //! Sets the material aMat defining this display attribute + //! for the interactive object. + //! Material aspect determines shading aspect, color and + //! transparency of visible entities. + Standard_EXPORT virtual void SetMaterial (const Graphic3d_MaterialAspect& aName); + + //! Removes the setting for material. + Standard_EXPORT virtual void UnsetMaterial(); + + //! Attributes a setting aValue for transparency. + //! The transparency value should be between 0.0 and 1.0. + //! At 0.0 an object will be totally opaque, and at 1.0, fully transparent. + //! Warning At a value of 1.0, there may be nothing visible. + Standard_EXPORT virtual void SetTransparency (const Standard_Real aValue = 0.6); + + //! Returns true if there is a transparency setting. + Standard_Boolean IsTransparent() const; + + //! Returns the transparency setting. + //! This will be between 0.0 and 1.0. + //! At 0.0 an object will be totally opaque, and at 1.0, fully transparent. + Standard_EXPORT virtual Standard_Real Transparency() const; + + //! Removes the transparency setting. The object is opaque by default. + Standard_EXPORT virtual void UnsetTransparency(); + + //! Clears settings provided by the drawing tool aDrawer. + Standard_EXPORT virtual void UnsetAttributes() Standard_OVERRIDE; + + void State (const Standard_Integer theState); + + Standard_Integer State() const; + + //! Returns TRUE when this object has a presentation + //! in the current DisplayMode() + Standard_EXPORT Standard_Boolean HasPresentation() const; + + //! Returns the current presentation of this object + //! according to the current DisplayMode() + Standard_EXPORT Handle(Prs3d_Presentation) Presentation() const; + + //! Sets the graphic basic aspect to the current presentation. + //! When is TRUE , the full object presentation + //! is changed. + //! When is FALSE , only the current group + //! of the object presentation is changed. + Standard_EXPORT void SetAspect (const Handle(Prs3d_BasicAspect)& anAspect, const Standard_Boolean globalChange = Standard_True); + + //! Sets up polygon offsets for this object. + //! It modifies all existing presentations of (if any), + //! so it is reasonable to call this method after has been displayed. + //! Otherwise, Compute() method should pass Graphic3d_AspectFillArea3d + //! aspect from to Graphic3d_Group to make polygon offsets work. + //! + //! parameter can contain various combinations of + //! Aspect_PolygonOffsetMode enumeration elements (Aspect_POM_None means + //! that polygon offsets are not changed). + //! If is different from Aspect_POM_Off and Aspect_POM_None, then and + //! arguments are used by graphic renderer to calculate a depth offset value: + //! + //! offset = * m + * r, where + //! m - maximum depth slope for the polygon currently being displayed, + //! r - minimum window coordinates depth resolution (implementation-specific). + //! + //! Deafult settings for OCC 3D viewer: mode = Aspect_POM_Fill, factor = 1., units = 0. + //! + //! Negative offset values move polygons closer to the viewport, + //! while positive values shift polygons away. + //! Consult OpenGL reference for details (glPolygonOffset function description). + //! + //! NOTE: This method has a side effect - it creates own shading aspect + //! if not yet created, so it is better to set up object material, + //! color, etc. first. + Standard_EXPORT virtual void SetPolygonOffsets (const Standard_Integer aMode, const Standard_ShortReal aFactor = 1.0, const Standard_ShortReal aUnits = 0.0); + + //! Returns Standard_True if has non-null shading aspect + Standard_EXPORT virtual Standard_Boolean HasPolygonOffsets() const; + + //! Retrieves current polygon offsets settings from . + Standard_EXPORT virtual void PolygonOffsets (Standard_Integer& aMode, Standard_ShortReal& aFactor, Standard_ShortReal& aUnits) const; + + //! Returns bounding box of object correspondingly to its current display mode. + Standard_EXPORT virtual void BoundingBox (Bnd_Box& theBndBox) Standard_OVERRIDE; + + +friend class AIS_InteractiveContext; + + + DEFINE_STANDARD_RTTI(AIS_InteractiveObject,SelectMgr_SelectableObject) + +protected: + + + //! The TypeOfPresention3d means that the interactive object + //! may have a presentation dependant of the view of Display + Standard_EXPORT AIS_InteractiveObject(const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d = PrsMgr_TOP_AllView); + + Standard_Real myTransparency; + Quantity_Color myOwnColor; + Graphic3d_NameOfMaterial myOwnMaterial; + Standard_Integer myHilightMode; + Standard_Real myOwnWidth; + Standard_Boolean myInfiniteState; + Standard_Boolean hasOwnColor; + Standard_Boolean hasOwnMaterial; + Aspect_TypeOfFacingModel myCurrentFacingModel; + Standard_Boolean myRecomputeEveryPrs; + TColStd_ListOfInteger myToRecomputeModes; + + +private: + + + Standard_EXPORT virtual Standard_Boolean RecomputeEveryPrs() const; + + Standard_EXPORT void MustRecomputePrs (const Standard_Integer aMode) const; + + Standard_EXPORT const TColStd_ListOfInteger& ListOfRecomputeModes() const; + + Standard_EXPORT void SetRecomputeOk(); + + AIS_PToContext myCTXPtr; + Handle(Standard_Transient) myOwner; + TColStd_ListOfTransient myUsers; + Standard_Integer mySelPriority; + Standard_Integer myDisplayMode; + Standard_Integer mySelectionMode; + Standard_Integer mystate; + + +}; + + +#include + + + + + +#endif // _AIS_InteractiveObject_HeaderFile diff --git a/src/AIS/AIS_KindOfDimension.hxx b/src/AIS/AIS_KindOfDimension.hxx new file mode 100644 index 0000000000..a4e910cddb --- /dev/null +++ b/src/AIS/AIS_KindOfDimension.hxx @@ -0,0 +1,40 @@ +// Created on: 1996-12-11 +// 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_KindOfDimension_HeaderFile +#define _AIS_KindOfDimension_HeaderFile + +//! Declares the kinds of dimensions needed in the +//! display of Interactive Objects. +enum AIS_KindOfDimension +{ +AIS_KOD_NONE, +AIS_KOD_LENGTH, +AIS_KOD_PLANEANGLE, +AIS_KOD_SOLIDANGLE, +AIS_KOD_AREA, +AIS_KOD_VOLUME, +AIS_KOD_MASS, +AIS_KOD_TIME, +AIS_KOD_RADIUS, +AIS_KOD_DIAMETER, +AIS_KOD_CHAMF2D, +AIS_KOD_CHAMF3D, +AIS_KOD_OFFSET, +AIS_KOD_ELLIPSERADIUS +}; + +#endif // _AIS_KindOfDimension_HeaderFile diff --git a/src/AIS/AIS_KindOfInteractive.hxx b/src/AIS/AIS_KindOfInteractive.hxx new file mode 100644 index 0000000000..4754e79975 --- /dev/null +++ b/src/AIS/AIS_KindOfInteractive.hxx @@ -0,0 +1,44 @@ +// Created on: 1996-12-11 +// 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_KindOfInteractive_HeaderFile +#define _AIS_KindOfInteractive_HeaderFile + +//! Declares the type of Interactive Object. +//! This is one of the following: +//! - the Datum +//! - the Object +//! - the Relation +//! - the Dimension +//! - the None type. +//! The Datum is the construction element. These include +//! points, lines, axes and planes. The object brings +//! together topological shapes. The Relation includes +//! dimensions and constraints. The Dimension includes +//! length, radius, diameter and angle dimensions. +//! When the object is of an unknown type, the None +//! type is declared. +enum AIS_KindOfInteractive +{ +AIS_KOI_None, +AIS_KOI_Datum, +AIS_KOI_Shape, +AIS_KOI_Object, +AIS_KOI_Relation, +AIS_KOI_Dimension +}; + +#endif // _AIS_KindOfInteractive_HeaderFile diff --git a/src/AIS/AIS_KindOfSurface.hxx b/src/AIS/AIS_KindOfSurface.hxx new file mode 100644 index 0000000000..b20773d724 --- /dev/null +++ b/src/AIS/AIS_KindOfSurface.hxx @@ -0,0 +1,33 @@ +// Created on: 1996-12-11 +// 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_KindOfSurface_HeaderFile +#define _AIS_KindOfSurface_HeaderFile + + +enum AIS_KindOfSurface +{ +AIS_KOS_Plane, +AIS_KOS_Cylinder, +AIS_KOS_Cone, +AIS_KOS_Sphere, +AIS_KOS_Torus, +AIS_KOS_Revolution, +AIS_KOS_Extrusion, +AIS_KOS_OtherSurface +}; + +#endif // _AIS_KindOfSurface_HeaderFile diff --git a/src/AIS/AIS_KindOfUnit.hxx b/src/AIS/AIS_KindOfUnit.hxx new file mode 100644 index 0000000000..835bfa24de --- /dev/null +++ b/src/AIS/AIS_KindOfUnit.hxx @@ -0,0 +1,33 @@ +// Created on: 1996-12-11 +// 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_KindOfUnit_HeaderFile +#define _AIS_KindOfUnit_HeaderFile + +//! Declares the type of Interactive Object unit. +enum AIS_KindOfUnit +{ +AIS_TOU_LENGTH, +AIS_TOU_SURFACE, +AIS_TOU_VOLUME, +AIS_TOU_PLANE_ANGLE, +AIS_TOU_SOLID_ANGLE, +AIS_TOU_MASS, +AIS_TOU_FORCE, +AIS_TOU_TIME +}; + +#endif // _AIS_KindOfUnit_HeaderFile diff --git a/src/AIS/AIS_Line.cdl b/src/AIS/AIS_Line.cdl deleted file mode 100644 index 02bee35dd5..0000000000 --- a/src/AIS/AIS_Line.cdl +++ /dev/null @@ -1,150 +0,0 @@ --- Created on: 1997-01-21 --- Created by: Prestataire Christiane ARMAND --- 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. - -class Line from AIS inherits InteractiveObject from AIS - - ---Purpose: Constructs line datums to be used in construction of - -- composite shapes. - -uses - Line from Geom, - Point from Geom, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - NameOfColor from Quantity, - Color from Quantity, - Selection from SelectMgr, - Projector from Prs3d, - Transformation from Geom, - Line from AIS, - KindOfInteractive from AIS - -is - Create(aLine : Line from Geom) - returns Line from AIS; - ---Purpose: Initializes the line aLine. - - Create(aStartPoint : Point from Geom; - aEndPoint : Point from Geom) - returns Line from AIS; - ---Purpose: Initializes a starting point aStartPoint - -- and a finishing point aEndPoint for the line. - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard = 0) - is redefined static private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard)is private; - - --- Methods from InteractiveObject - - Signature(me) returns Integer from Standard is redefined; - ---Purpose: Returns the signature 5. - ---C++: inline - - Type(me) returns KindOfInteractive from AIS is redefined; - ---Purpose: Returns the type Datum. - ---C++: inline - - Line(me) returns any Line from Geom; - ---C++: inline - ---C++: return const & - ---Purpose: Constructs an infinite line. - - Points(me;PStart,PEnd: out Point from Geom); - ---Purpose: Returns the starting point PStart and the end point - -- PEnd of the line set by SetPoints. - ---C++: inline - - SetLine(me:mutable;L : Line from Geom); - ---C++: inline - ---Purpose: instantiates an infinite line. - - SetPoints(me:mutable;P1,P2:Point from Geom); - --- Purpose: - -- Sets the starting point P1 and ending point P2 of the - -- infinite line to create a finite line segment. - ---C++: inline - - SetColor(me :mutable; aColor : NameOfColor from Quantity) - is redefined static; - ---Purpose: Provides a new color setting aColor for the line in the - -- drawing tool, or "Drawer". - SetColor(me :mutable; aColor : Color from Quantity) - is redefined static; - - SetWidth(me:mutable; aValue:Real from Standard) - is redefined static; - ---Purpose: Provides the new width setting aValue for the line in - -- the drawing tool, or "Drawer". - UnsetColor(me:mutable) - is redefined static; - ---Purpose: Removes the color setting and returns the original color. - UnsetWidth(me:mutable) - is redefined static; - ---Purpose: Removes the width setting and returns the original width. - - - ComputeInfiniteLine(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - ComputeSegmentLine(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - ComputeInfiniteLineSelection(me: mutable; - aSelection : Selection from SelectMgr) - is private; - - ComputeSegmentLineSelection(me: mutable; - aSelection : Selection from SelectMgr) - is private; - -fields - - - myComponent : Line from Geom; - myStartPoint : Point from Geom; - myEndPoint : Point from Geom; - myLineIsSegment : Boolean from Standard; - -end Line; diff --git a/src/AIS/AIS_Line.cxx b/src/AIS/AIS_Line.cxx index 8cc19f814c..cf10bd6c00 100644 --- a/src/AIS/AIS_Line.cxx +++ b/src/AIS/AIS_Line.cxx @@ -14,24 +14,29 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include #include -#include -#include -#include +#include +#include +#include +#include +#include #include #include -#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include +#include #include -#include -#include -#include -#include -#include -#include +#include #include //================================================================== @@ -49,8 +54,6 @@ static void FindLimits(const Adaptor3d_Curve& aCurve, Standard_Real Last = aCurve.LastParameter(); Standard_Boolean firstInf = Precision::IsNegativeInfinite(First); Standard_Boolean lastInf = Precision::IsPositiveInfinite(Last); - - if (firstInf || lastInf) { Standard_Real delta = 1; if (firstInf && lastInf) { @@ -82,7 +85,6 @@ static void FindLimits(const Adaptor3d_Curve& aCurve, } #endif */ - //======================================================================= //function : AIS_Line //purpose : diff --git a/src/AIS/AIS_Line.hxx b/src/AIS/AIS_Line.hxx new file mode 100644 index 0000000000..2d5726fe98 --- /dev/null +++ b/src/AIS/AIS_Line.hxx @@ -0,0 +1,145 @@ +// Created on: 1997-01-21 +// Created by: Prestataire Christiane ARMAND +// 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_Line_HeaderFile +#define _AIS_Line_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class Geom_Line; +class Geom_Point; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; +class Quantity_Color; + + +class AIS_Line; +DEFINE_STANDARD_HANDLE(AIS_Line, AIS_InteractiveObject) + +//! Constructs line datums to be used in construction of +//! composite shapes. +class AIS_Line : public AIS_InteractiveObject +{ + +public: + + + //! Initializes the line aLine. + Standard_EXPORT AIS_Line(const Handle(Geom_Line)& aLine); + + //! Initializes a starting point aStartPoint + //! and a finishing point aEndPoint for the line. + Standard_EXPORT AIS_Line(const Handle(Geom_Point)& aStartPoint, const Handle(Geom_Point)& aEndPoint); + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + //! Returns the signature 5. + virtual Standard_Integer Signature() const Standard_OVERRIDE; + + //! Returns the type Datum. + virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE; + + //! Constructs an infinite line. + const Handle(Geom_Line)& Line() const; + + //! Returns the starting point PStart and the end point + //! PEnd of the line set by SetPoints. + void Points (Handle(Geom_Point)& PStart, Handle(Geom_Point)& PEnd) const; + + //! instantiates an infinite line. + void SetLine (const Handle(Geom_Line)& L); + + + //! Sets the starting point P1 and ending point P2 of the + //! infinite line to create a finite line segment. + void SetPoints (const Handle(Geom_Point)& P1, const Handle(Geom_Point)& P2); + + //! Provides a new color setting aColor for the line in the + //! drawing tool, or "Drawer". + Standard_EXPORT void SetColor (const Quantity_NameOfColor aColor) Standard_OVERRIDE; + + Standard_EXPORT void SetColor (const Quantity_Color& aColor) Standard_OVERRIDE; + + //! Provides the new width setting aValue for the line in + //! the drawing tool, or "Drawer". + Standard_EXPORT void SetWidth (const Standard_Real aValue) Standard_OVERRIDE; + + //! Removes the color setting and returns the original color. + Standard_EXPORT void UnsetColor() Standard_OVERRIDE; + + //! Removes the width setting and returns the original width. + Standard_EXPORT void UnsetWidth() Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_Line,AIS_InteractiveObject) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode); + + Standard_EXPORT void ComputeInfiniteLine (const Handle(Prs3d_Presentation)& aPresentation); + + Standard_EXPORT void ComputeSegmentLine (const Handle(Prs3d_Presentation)& aPresentation); + + Standard_EXPORT void ComputeInfiniteLineSelection (const Handle(SelectMgr_Selection)& aSelection); + + Standard_EXPORT void ComputeSegmentLineSelection (const Handle(SelectMgr_Selection)& aSelection); + + Handle(Geom_Line) myComponent; + Handle(Geom_Point) myStartPoint; + Handle(Geom_Point) myEndPoint; + Standard_Boolean myLineIsSegment; + + +}; + + +#include + + + + + +#endif // _AIS_Line_HeaderFile diff --git a/src/AIS/AIS_LocalContext.cdl b/src/AIS/AIS_LocalContext.cdl deleted file mode 100644 index 6462590514..0000000000 --- a/src/AIS/AIS_LocalContext.cdl +++ /dev/null @@ -1,601 +0,0 @@ --- Created on: 1996-09-04 --- 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. - --- Modified May 20th 98 : --- Modification in Management of selected entities --- Now we store the selected entity Owner in AIS_Selection. --- (no more links with Session...) --- Modifications in Management of hilight of detected entities --- VTN 23/11/99 BUC60614 Avoid to crash because --- myStdFilters array is too short. - -class LocalContext from AIS inherits TShared from MMgt - - ---Purpose: Defines a specific context for selection. - -- It becomes possible to: - -- + Load InteractiveObjects with a mode to be - -- activated + associate InteractiveObjects with a - -- set of temporary selectable Objects.... + + - -- activate StandardMode of selection for Entities - -- inheriting BasicShape from AIS (Selection Of - -- vertices, edges, wires,faces... + Add Filters - -- acting on detected owners of sensitive primitives - -- - -- - -- - automatically highlight shapes and - -- InteractiveObjects (highlight of detected shape + - -- highlight of detected selectable... - -- - -uses - AsciiString from TCollection, - ListOfInteger from TColStd, - SequenceOfInteger from TColStd, - MapOfTransient from TColStd, - Array1OfPnt2d from TColgp, - NameOfColor from Quantity, - ShapeEnum from TopAbs, - Shape from TopoDS, - View from V3d, - PresentationManager3d from PrsMgr, - IndexedMapOfOwner from SelectMgr, - EntityOwner from SelectMgr, - OrFilter from SelectMgr, - Filter from SelectMgr, - SelectionManager from SelectMgr, - SelectableObject from SelectMgr , - ListOfFilter from SelectMgr, - BRepOwner from StdSelect, - ViewerSelector3d from StdSelect, - SensitivityMode from StdSelect, - InteractiveContext from AIS, - ClearMode from AIS, - InteractiveObject from AIS, - Shape from AIS, - DataMapOfSelStat from AIS, - LocalStatus from AIS, - StatusOfPick from AIS, - StatusOfDetection from AIS, - SequenceOfInteractive from AIS - -is - - Create returns LocalContext from AIS; - - - Create (aCtx : InteractiveContext from AIS; - anIndex : Integer from Standard; - LoadDisplayed : Boolean from Standard=Standard_True; - AcceptStandardModes : Boolean from Standard=Standard_True; - AcceptErase : Boolean from Standard= Standard_False; - UseBothViewers : Boolean from Standard= Standard_False) - returns LocalContext from AIS; - ---Purpose: Constructor By Default, the displayed objects are - -- automatically loaded. - - - AcceptErase(me:mutable;aStatus : Boolean from Standard); - ---C++: inline - ---Purpose: authorize or not others contexts to erase - -- temporary displayed objects here; - - AcceptErase(me) returns Boolean from Standard; - ---C++: inline - - SetContext(me:mutable;aCtx:InteractiveContext from AIS); - - SelectionName(me) returns AsciiString from TCollection; - ---C++: inline - ---C++: return const& - - - Terminate(me: mutable; updateviewer : Boolean from Standard = Standard_True); - - Reactivate(me:mutable); - ---Purpose: to be called when a upper local context was closed... - -- useful to put pack the right projector... - - ---Category: LOAD AND PREPARE - -- - INTERACTIVE OBJECTS... - -- - FILTERS - -- - STANDARD MODES OF ACTIVATION - - - - - Display(me : mutable; - anInteractive : InteractiveObject from AIS; - DisplayMode : Integer from Standard = 0; - AllowShapeDecomposition: Boolean from Standard = Standard_True; - ActivationMode : Integer from Standard = 0) - returns Boolean from Standard; - ---Purpose: returns true if done... - - Load(me : mutable; - anInteractive : InteractiveObject from AIS; - AllowShapeDecomposition: Boolean from Standard = Standard_True; - ActivationMode : Integer from Standard = 0) - returns Boolean from Standard; - ---Purpose: loads with nodisplay... - -- returns true if done - - Erase(me: mutable; - anInteractive : InteractiveObject from AIS) - returns Boolean from Standard; - ---Purpose: returns true if done... - - - Remove(me : mutable; - aSelectable : InteractiveObject from AIS) - returns Boolean from Standard; - - - ClearPrs (me : mutable; - anInteractive : InteractiveObject from AIS; - aMode : Integer from Standard) - returns Boolean from Standard; - - SetShapeDecomposition(me : mutable; - aStoredObject : InteractiveObject from AIS; - aStatus : Boolean from Standard); - ---Purpose: allows or forbids the shape decomposition into - -- Activated Standard Mode for - -- does nothing if the object doesn't inherits - -- BasicShape from AIS - - - Clear(me:mutable;atype: ClearMode from AIS = AIS_CM_All); - ---Purpose: according to , clears the different parts of - -- the selector (filters, modeof activation, objects...) - - - - - ActivateMode (me : mutable; - aSelectable: InteractiveObject from AIS; - aMode : Integer from Standard ); - ---Purpose: optional : activation of a mode which is not 0 for a selectable... - - DeactivateMode(me : mutable; - aSelectable: InteractiveObject from AIS; - aMode : Integer from Standard ); - Deactivate(me : mutable; - aSelectable: InteractiveObject from AIS); - - ActivateStandardMode(me:mutable;aType:ShapeEnum from TopAbs); - ---Purpose: decomposition of shapes into - - - DeactivateStandardMode(me:mutable;aType:ShapeEnum from TopAbs); - - StandardModes(me) returns ListOfInteger from TColStd; - ---C++: return const & - ---C++: inline - - - - AddFilter(me:mutable;aFilter:Filter from SelectMgr); - - RemoveFilter(me:mutable;aFilter: Filter from SelectMgr); - - - ListOfFilter(me) returns ListOfFilter from SelectMgr; - ---C++: return const & - ---C++: inline - - Filter(me) returns any OrFilter from SelectMgr; - ---C++: return const & - ---C++: inline - - - SetAutomaticHilight(me:mutable ; aStatus:Boolean) ; - ---Purpose: if = True , the shapes or subshapes detected - -- by the selector will be automatically hilighted in the - -- main viewer. - -- Else the user has to manage the detected shape outside the - -- Shape Selector.... - ---C++: inline - - - - AutomaticHilight(me) returns Boolean; - ---C++: inline - - ---Category: THE SELECTION PROCESS - - MoveTo (me : mutable; - theXpix, theYpix : Integer from Standard; - theView : View from V3d; - theToRedrawImmediate : Boolean from Standard) - returns StatusOfDetection from AIS; - - - HasNextDetected(me) returns Boolean from Standard; - ---C++: inline - ---Purpose: returns True if more than one entity - -- was detected at the last Mouse position. - - HilightNextDetected (me : mutable; - theView : View from V3d; - theToRedrawImmediate : Boolean from Standard) - returns Integer from Standard; - ---Purpose: returns True if last detected. the next detected will - -- be first one (endless loop) - - HilightPreviousDetected (me : mutable; - theView : View from V3d; - theToRedrawImmediate : Boolean from Standard) - returns Integer from Standard; - - UnhilightLastDetected(me:mutable;aView:View from V3d) returns Boolean from Standard; - ---Purpose: returns True if something was done... - - Select(me: mutable;updateviewer : Boolean from Standard = Standard_True) - returns StatusOfPick from AIS; - ---Purpose: returns the number of selected - - ShiftSelect(me: mutable;updateviewer : Boolean from Standard = Standard_True) - returns StatusOfPick from AIS; - - Select(me : mutable; - XPMin,YPMin,XPMax,YPMax : Integer from Standard; - aView : View from V3d; - updateviewer : Boolean from Standard = Standard_True) - returns StatusOfPick from AIS; - - - ShiftSelect(me : mutable; - XPMin,YPMin,XPMax,YPMax : Integer from Standard; - aView : View from V3d; - updateviewer : Boolean from Standard = Standard_True) - returns StatusOfPick from AIS; - - Select(me : mutable; - Polyline : Array1OfPnt2d from TColgp; - aView : View from V3d; - updateviewer : Boolean from Standard = Standard_True) - returns StatusOfPick from AIS; - - ShiftSelect(me : mutable; - Polyline : Array1OfPnt2d from TColgp; - aView : View from V3d; - updateviewer : Boolean from Standard = Standard_True) - returns StatusOfPick from AIS; - - HilightPicked(me:mutable;updateviewer:Boolean from Standard =Standard_True) ; - - UnhilightPicked(me:mutable;updateviewer:Boolean from Standard = Standard_True) ; - - - UpdateSelected (me : mutable; - updateviewer : Boolean from Standard = Standard_True); - - UpdateSelected (me : mutable; - anobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard = Standard_True); - ---Purpose: Part of advanced selection highlighting mechanism. - -- If no owners belonging to anobj are selected, calls anobj->ClearSelected(), - -- otherwise calls anobj->HilightSelected(). This method can be used to avoid - -- redrawing the whole selection belonging to several Selectable Objects. - - - SetSelected(me : mutable; - anobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard=Standard_True); - ---Purpose: useful to update selection with objects coming from - -- Collector or stack - - AddOrRemoveSelected(me : mutable; - anobj : InteractiveObject from AIS; - updateviewer : Boolean from Standard=Standard_True); - ---Purpose: useful to update selection with objects coming from - -- Collector or stack - AddOrRemoveSelected(me : mutable; - aShape : Shape from TopoDS; - updateviewer : Boolean from Standard=Standard_True); - - AddOrRemoveSelected(me : mutable; - theOwner : EntityOwner from SelectMgr; - toUpdateViewer : Boolean from Standard = Standard_True); - - ClearSelected (me : mutable; - toUpdateViewer : Boolean from Standard = Standard_True); - ---Purpose: Clears local context selection. - -- @param toUpdateViewer [in] if TRUE the viewer will be updated. - - ClearOutdatedSelection (me : mutable; - theIO : InteractiveObject from AIS; - toClearDeactivated : Boolean from Standard); - ---Purpose: Clears outdated selection and detection of owners for the - -- interactive object. Use this method if selection structures - -- of the interactive object have changed. The method unhilights - -- and removes outdated entity owners from lists of selected - -- and detected owners. - -- @param theIO [in] the interactive object. - -- @param toClearDeactivated [in] pass TRUE to treat deactivated - -- entity owners as 'outdated' when clearing the selection. - - ---Category: GET THE DETECTED - - HasDetected (me) returns Boolean from Standard; - ---C++: inline - - InitDetected(me: mutable); - ---Purpose: - -- Initialization for iteration through mouse-detected objects in local context. - - MoreDetected(me) returns Boolean from Standard; - ---Purpose: - -- @return true if there is more mouse-detected objects after the current one - -- during iteration through mouse-detected interactive objects. - - NextDetected(me: mutable); - ---Purpose: - -- Gets next current object during iteration through mouse-detected - -- interactive objects. - - DetectedCurrentShape(me) returns Shape from TopoDS; - ---C++: return const & - ---Purpose: - -- @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. - - DetectedCurrentObject(me) returns InteractiveObject from AIS; - ---Purpose: - -- @return current mouse-detected interactive object or null object if there is no current detected. - - HasDetectedShape(me) returns Boolean from Standard; - DetectedShape (me) returns Shape from TopoDS; - ---C++: return const & - DetectedInteractive(me) returns InteractiveObject from AIS; - DetectedOwner (me) returns EntityOwner from SelectMgr; - - - ---Category: GET THE SELECTED - - InitSelected (me: mutable); - MoreSelected(me) returns Boolean from Standard; - NextSelected(me:mutable); - HasShape(me) returns Boolean from Standard; - ---Purpose: returns TRUE if the detected entity is a shape - -- coming from a Decomposition of an element. - HasSelectedShape(me) returns Boolean from Standard; - ---Purpose: returns true if current selection is not empty - -- and the owner of selected object contains a shape. - -- This method does not take into account decomposition - -- status of detected shape. - SelectedShape(me) returns Shape from TopoDS; - - SelectedOwner(me) returns EntityOwner from SelectMgr; - IsSelected(me;aniobj: InteractiveObject from AIS) returns Boolean from Standard; - IsSelected(me;anOwner: EntityOwner from SelectMgr) returns Boolean from Standard; - SelectedInteractive(me) returns InteractiveObject from AIS; - HasApplicative (me) returns Boolean from Standard; - ---Purpose: returns TRUE if an interactive element - -- was associated with the current picked entity. - SelectedApplicative(me) returns any Transient from Standard; - ---C++: return const & - - - - - - - ---Category: Management Of Temporary Attributes - - SetDisplayPriority(me : mutable; - anObject: InteractiveObject from AIS; - Prior : Integer from Standard); - - DisplayedObjects(me;theMapToFill : in out MapOfTransient from TColStd) - returns Integer from Standard; - - IsIn(me;anObject : InteractiveObject from AIS) - returns Boolean from Standard; - - - IsDisplayed(me;anObject : InteractiveObject from AIS) - returns Boolean from Standard; - - IsDisplayed(me;anObject : InteractiveObject from AIS; - aMode : Integer from Standard) - returns Boolean from Standard; - - SelectionModes(me;anObject:InteractiveObject from AIS) - returns ListOfInteger from TColStd; - ---C++: return const & - - SubIntensityOn(me:mutable; anObject : InteractiveObject from AIS ); - - SubIntensityOff(me:mutable; anObject : InteractiveObject from AIS ); - - Hilight(me: mutable; anObject : InteractiveObject from AIS); - - Hilight(me:mutable; anObject : InteractiveObject from AIS;aCol:NameOfColor from Quantity); - - Unhilight(me:mutable; anObject : InteractiveObject from AIS); - - IsHilighted(me;anObject : InteractiveObject from AIS) - returns Boolean from Standard; - - IsHilighted(me; - anObject : InteractiveObject from AIS; - WithColor : out Boolean from Standard; - HiCol : out NameOfColor from Quantity) - returns Boolean from Standard; - - SetPixelTolerance(me:mutable; - aPrecision: Real from Standard = 2); - ---Level: Public - ---Purpose: Define the current selection sensitivity for - -- this local context according to the view size. - - PixelTolerance(me) returns Real from Standard; - ---Level: Public - ---Purpose: Returns the pixel tolerance. - - ---Category: IMMEDIATE MODE - - - BeginImmediateDraw (me : mutable) - returns Boolean from Standard; - ---Purpose: Resets the transient list of presentations previously displayed in immediate mode - -- and begins accumulation of new list by following AddToImmediateList()/Color()/Highlight() calls. - - ClearImmediateDraw (me : mutable) is virtual; - ---Purpose: Resets the transient list of presentations previously displayed in immediate mode. - - ImmediateAdd (me : mutable; - theObj : InteractiveObject from AIS; - theMode : Integer from Standard = 0) - returns Boolean from Standard; - ---Purpose: Stores presentation theMode of object theObj in the transient list of presentations to be displayed in immediate mode. - -- Will be taken in account in EndImmediateDraw method. - - EndImmediateDraw (me : mutable; - theView : View from V3d) - returns Boolean from Standard; - ---Purpose: Allows rapid drawing of the view theView by avoiding an update of the whole background. - - IsImmediateModeOn (me) returns Boolean from Standard; - ---Purpose: Returns true if Presentation Manager is accumulating transient list of presentations to be displayed in immediate mode. - - ---Category: INTERNAL METHODS; - - - Status(me) returns AsciiString from TCollection; - - Status(me;anObject : InteractiveObject from AIS) - returns any LocalStatus from AIS; - ---C++: return const& - - - - LoadContextObjects(me:mutable); - - UnloadContextObjects(me:mutable); - - Process(me : mutable; - anObject : SelectableObject from SelectMgr) is static private; - - Process(me:mutable) is static private; - - - ActivateStandardModes(me:mutable;anObject: SelectableObject from SelectMgr) is static private; - - manageDetected (me : mutable; - thePickOwner : EntityOwner from SelectMgr; - theView : View from V3d; - theToRedrawImmediate : Boolean from Standard) is static private; - - DetectedIndex(me:mutable) returns Integer from Standard is static private; - ---C++: inline - ---Purpose: returns 0 if the detected entity was Not FilterOK... - - Hilight(me:mutable;Own:EntityOwner from SelectMgr;aview: View from V3d) is static private; - - - Unhilight(me:mutable;Ownr:EntityOwner from SelectMgr;aview: View from V3d) is static private; - - - ClearObjects(me:mutable) is static private; - - ClearDetected(me:mutable) is static private; - - IsDecompositionOn(me) returns Boolean from Standard is static private; - - IsShape(me;anIndex:Integer from Standard) returns Boolean from Standard is static private; - - IsValidForSelection(me;anIObj:InteractiveObject from AIS) returns Boolean from Standard is static private; - - IsValidIndex(me;anIndex:Integer from Standard) - returns Boolean from Standard is static private; - ---C++: inline - - ComesFromDecomposition(me; aPickedIndex : Integer from Standard) - returns Boolean from Standard is static private; - - HasFilters(me;aType:ShapeEnum from TopAbs) - returns Boolean from Standard is private; - - DisplaySensitive(me:mutable;aView : View from V3d) is static; - - ClearSensitive(me:mutable;aView:View from V3d) is static; - - MainSelector(me) returns ViewerSelector3d from StdSelect; - ---C++: inline - ---C++: return const& - - FindSelectedOwnerFromIO(me;anIObj:InteractiveObject from AIS) - returns EntityOwner from SelectMgr; - - FindSelectedOwnerFromShape(me;aShape : Shape from TopoDS) - returns EntityOwner from SelectMgr; - - - -fields - - myCTX : InteractiveContext from AIS; - myLoadDisplayed,myAcceptStdMode : Boolean from Standard; - myAcceptErase : Boolean from Standard; - - mySM : SelectionManager from SelectMgr; - myMainVS : ViewerSelector3d from StdSelect; - myMainPM : PresentationManager3d from PrsMgr; - mySelName : AsciiString from TCollection; - myCollVS : ViewerSelector3d from StdSelect; - - -- The Objects and their attributes... - - myActiveObjects : DataMapOfSelStat from AIS; - - - -- The Filters... - - myFilters : OrFilter from SelectMgr; - myListOfStandardMode : ListOfInteger from TColStd; - - -- VTN myStdFilters : Filter from SelectMgr [7]; --internal mgt - myStdFilters : Filter from SelectMgr [9]; --internal mgt - - -- Selection Process - - myAutoHilight : Boolean from Standard; - myMapOfOwner : IndexedMapOfOwner from SelectMgr; - mylastindex : Integer from Standard; - mylastgood : Integer from Standard; - myCurrentOwner : Integer from Standard; - - - myDetectedSeq : SequenceOfInteger from TColStd; - myCurDetected : Integer from Standard; - - -- The detected objects. - - myAISDetectedSeq : SequenceOfInteractive from AIS; - -- the sequence of detected interative objects. - myAISCurDetected : Integer from Standard; - -- current detected interactive object. - -- This variable is used by following functions: - -- InitDetected(), MoreDetected(), NextDetected(), DetectedCurrentShape(), DetectedCurrentObject(). - -end LocalContext; - - - - - diff --git a/src/AIS/AIS_LocalContext.cxx b/src/AIS/AIS_LocalContext.cxx index 8a8ec68b92..fd34c9f7a1 100644 --- a/src/AIS/AIS_LocalContext.cxx +++ b/src/AIS/AIS_LocalContext.cxx @@ -16,32 +16,40 @@ //Modified by ROB : Traque des UpdateConversion intempestifs. -#include -#include -#include -#include -#include -#include +#include +#include +#include #include #include -#include -#include +#include +#include +#include +#include +#include #include #include #include #include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include +#include +#include +#include +#include #include +#include #include -#include #include - static TCollection_AsciiString AIS_Local_SelName(const Standard_Address address, const Standard_Integer anIndex) { diff --git a/src/AIS/AIS_LocalContext.hxx b/src/AIS/AIS_LocalContext.hxx new file mode 100644 index 0000000000..73c7eb5d2f --- /dev/null +++ b/src/AIS/AIS_LocalContext.hxx @@ -0,0 +1,432 @@ +// Created on: 1996-09-04 +// 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_LocalContext_HeaderFile +#define _AIS_LocalContext_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class AIS_InteractiveContext; +class SelectMgr_SelectionManager; +class SelectMgr_OrFilter; +class SelectMgr_Filter; +class TCollection_AsciiString; +class AIS_InteractiveObject; +class V3d_View; +class TopoDS_Shape; +class SelectMgr_EntityOwner; +class Standard_Transient; +class AIS_LocalStatus; +class SelectMgr_SelectableObject; + + +class AIS_LocalContext; +DEFINE_STANDARD_HANDLE(AIS_LocalContext, MMgt_TShared) + +//! Defines a specific context for selection. +//! It becomes possible to: +//! + Load InteractiveObjects with a mode to be +//! activated + associate InteractiveObjects with a +//! set of temporary selectable Objects.... + + +//! activate StandardMode of selection for Entities +//! inheriting BasicShape from AIS (Selection Of +//! vertices, edges, wires,faces... + Add Filters +//! acting on detected owners of sensitive primitives +//! +//! - automatically highlight shapes and +//! InteractiveObjects (highlight of detected shape + +//! highlight of detected selectable... +class AIS_LocalContext : public MMgt_TShared +{ + +public: + + + Standard_EXPORT AIS_LocalContext(); + + //! Constructor By Default, the displayed objects are + //! automatically loaded. + Standard_EXPORT AIS_LocalContext(const Handle(AIS_InteractiveContext)& aCtx, const Standard_Integer anIndex, const Standard_Boolean LoadDisplayed = Standard_True, const Standard_Boolean AcceptStandardModes = Standard_True, const Standard_Boolean AcceptErase = Standard_False, const Standard_Boolean UseBothViewers = Standard_False); + + //! authorize or not others contexts to erase + //! temporary displayed objects here; + void AcceptErase (const Standard_Boolean aStatus); + + Standard_Boolean AcceptErase() const; + + Standard_EXPORT void SetContext (const Handle(AIS_InteractiveContext)& aCtx); + + const TCollection_AsciiString& SelectionName() const; + + Standard_EXPORT void Terminate (const Standard_Boolean updateviewer = Standard_True); + + //! to be called when a upper local context was closed... + //! useful to put pack the right projector... + Standard_EXPORT void Reactivate(); + + //! returns true if done... + Standard_EXPORT Standard_Boolean Display (const Handle(AIS_InteractiveObject)& anInteractive, const Standard_Integer DisplayMode = 0, const Standard_Boolean AllowShapeDecomposition = Standard_True, const Standard_Integer ActivationMode = 0); + + //! loads with nodisplay... + //! returns true if done + Standard_EXPORT Standard_Boolean Load (const Handle(AIS_InteractiveObject)& anInteractive, const Standard_Boolean AllowShapeDecomposition = Standard_True, const Standard_Integer ActivationMode = 0); + + //! returns true if done... + Standard_EXPORT Standard_Boolean Erase (const Handle(AIS_InteractiveObject)& anInteractive); + + Standard_EXPORT Standard_Boolean Remove (const Handle(AIS_InteractiveObject)& aSelectable); + + Standard_EXPORT Standard_Boolean ClearPrs (const Handle(AIS_InteractiveObject)& anInteractive, const Standard_Integer aMode); + + //! allows or forbids the shape decomposition into + //! Activated Standard Mode for + //! does nothing if the object doesn't inherits + //! BasicShape from AIS + Standard_EXPORT void SetShapeDecomposition (const Handle(AIS_InteractiveObject)& aStoredObject, const Standard_Boolean aStatus); + + //! according to , clears the different parts of + //! the selector (filters, modeof activation, objects...) + Standard_EXPORT void Clear (const AIS_ClearMode atype = AIS_CM_All); + + //! optional : activation of a mode which is not 0 for a selectable... + Standard_EXPORT void ActivateMode (const Handle(AIS_InteractiveObject)& aSelectable, const Standard_Integer aMode); + + Standard_EXPORT void DeactivateMode (const Handle(AIS_InteractiveObject)& aSelectable, const Standard_Integer aMode); + + Standard_EXPORT void Deactivate (const Handle(AIS_InteractiveObject)& aSelectable); + + //! decomposition of shapes into + Standard_EXPORT void ActivateStandardMode (const TopAbs_ShapeEnum aType); + + Standard_EXPORT void DeactivateStandardMode (const TopAbs_ShapeEnum aType); + + const TColStd_ListOfInteger& StandardModes() const; + + Standard_EXPORT void AddFilter (const Handle(SelectMgr_Filter)& aFilter); + + Standard_EXPORT void RemoveFilter (const Handle(SelectMgr_Filter)& aFilter); + + const SelectMgr_ListOfFilter& ListOfFilter() const; + + const Handle(SelectMgr_OrFilter)& Filter() const; + + //! if = True , the shapes or subshapes detected + //! by the selector will be automatically hilighted in the + //! main viewer. + //! Else the user has to manage the detected shape outside the + //! Shape Selector.... + void SetAutomaticHilight (const Standard_Boolean aStatus); + + Standard_Boolean AutomaticHilight() const; + + Standard_EXPORT AIS_StatusOfDetection MoveTo (const Standard_Integer theXpix, const Standard_Integer theYpix, const Handle(V3d_View)& theView, const Standard_Boolean theToRedrawImmediate); + + //! returns True if more than one entity + //! was detected at the last Mouse position. + Standard_Boolean HasNextDetected() const; + + //! returns True if last detected. the next detected will + //! be first one (endless loop) + Standard_EXPORT Standard_Integer HilightNextDetected (const Handle(V3d_View)& theView, const Standard_Boolean theToRedrawImmediate); + + Standard_EXPORT Standard_Integer HilightPreviousDetected (const Handle(V3d_View)& theView, const Standard_Boolean theToRedrawImmediate); + + //! returns True if something was done... + Standard_EXPORT Standard_Boolean UnhilightLastDetected (const Handle(V3d_View)& aView); + + //! returns the number of selected + Standard_EXPORT AIS_StatusOfPick Select (const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT AIS_StatusOfPick ShiftSelect (const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT AIS_StatusOfPick Select (const Standard_Integer XPMin, const Standard_Integer YPMin, const Standard_Integer XPMax, const Standard_Integer YPMax, const Handle(V3d_View)& aView, const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT AIS_StatusOfPick ShiftSelect (const Standard_Integer XPMin, const Standard_Integer YPMin, const Standard_Integer XPMax, const Standard_Integer YPMax, const Handle(V3d_View)& aView, const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT AIS_StatusOfPick Select (const TColgp_Array1OfPnt2d& Polyline, const Handle(V3d_View)& aView, const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT AIS_StatusOfPick ShiftSelect (const TColgp_Array1OfPnt2d& Polyline, const Handle(V3d_View)& aView, const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT void HilightPicked (const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT void UnhilightPicked (const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT void UpdateSelected (const Standard_Boolean updateviewer = Standard_True); + + //! Part of advanced selection highlighting mechanism. + //! If no owners belonging to anobj are selected, calls anobj->ClearSelected(), + //! otherwise calls anobj->HilightSelected(). This method can be used to avoid + //! redrawing the whole selection belonging to several Selectable Objects. + Standard_EXPORT void UpdateSelected (const Handle(AIS_InteractiveObject)& anobj, const Standard_Boolean updateviewer = Standard_True); + + //! useful to update selection with objects coming from + //! Collector or stack + Standard_EXPORT void SetSelected (const Handle(AIS_InteractiveObject)& anobj, const Standard_Boolean updateviewer = Standard_True); + + //! useful to update selection with objects coming from + //! Collector or stack + Standard_EXPORT void AddOrRemoveSelected (const Handle(AIS_InteractiveObject)& anobj, const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT void AddOrRemoveSelected (const TopoDS_Shape& aShape, const Standard_Boolean updateviewer = Standard_True); + + Standard_EXPORT void AddOrRemoveSelected (const Handle(SelectMgr_EntityOwner)& theOwner, const Standard_Boolean toUpdateViewer = Standard_True); + + //! Clears local context selection. + //! @param toUpdateViewer [in] if TRUE the viewer will be updated. + Standard_EXPORT void ClearSelected (const Standard_Boolean toUpdateViewer = Standard_True); + + //! Clears outdated selection and detection of owners for the + //! interactive object. Use this method if selection structures + //! of the interactive object have changed. The method unhilights + //! and removes outdated entity owners from lists of selected + //! and detected owners. + //! @param theIO [in] the interactive object. + //! @param toClearDeactivated [in] pass TRUE to treat deactivated + //! entity owners as 'outdated' when clearing the selection. + Standard_EXPORT void ClearOutdatedSelection (const Handle(AIS_InteractiveObject)& theIO, const Standard_Boolean toClearDeactivated); + + Standard_Boolean HasDetected() const; + + + //! Initialization for iteration through mouse-detected objects in local context. + Standard_EXPORT void InitDetected(); + + + //! @return true if there is more mouse-detected objects after the current one + //! during iteration through mouse-detected interactive objects. + Standard_EXPORT Standard_Boolean MoreDetected() const; + + + //! Gets next current object during iteration through mouse-detected + //! interactive objects. + Standard_EXPORT void NextDetected(); + + + //! @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. + Standard_EXPORT const TopoDS_Shape& DetectedCurrentShape() const; + + + //! @return current mouse-detected interactive object or null object if there is no current detected. + Standard_EXPORT Handle(AIS_InteractiveObject) DetectedCurrentObject() const; + + Standard_EXPORT Standard_Boolean HasDetectedShape() const; + + Standard_EXPORT const TopoDS_Shape& DetectedShape() const; + + Standard_EXPORT Handle(AIS_InteractiveObject) DetectedInteractive() const; + + Standard_EXPORT Handle(SelectMgr_EntityOwner) DetectedOwner() const; + + Standard_EXPORT void InitSelected(); + + Standard_EXPORT Standard_Boolean MoreSelected() const; + + Standard_EXPORT void NextSelected(); + + //! returns TRUE if the detected entity is a shape + //! coming from a Decomposition of an element. + Standard_EXPORT Standard_Boolean HasShape() const; + + //! returns true if current selection is not empty + //! and the owner of selected object contains a shape. + //! This method does not take into account decomposition + //! status of detected shape. + Standard_EXPORT Standard_Boolean HasSelectedShape() const; + + Standard_EXPORT TopoDS_Shape SelectedShape() const; + + Standard_EXPORT Handle(SelectMgr_EntityOwner) SelectedOwner() const; + + Standard_EXPORT Standard_Boolean IsSelected (const Handle(AIS_InteractiveObject)& aniobj) const; + + Standard_EXPORT Standard_Boolean IsSelected (const Handle(SelectMgr_EntityOwner)& anOwner) const; + + Standard_EXPORT Handle(AIS_InteractiveObject) SelectedInteractive() const; + + //! returns TRUE if an interactive element + //! was associated with the current picked entity. + Standard_EXPORT Standard_Boolean HasApplicative() const; + + Standard_EXPORT const Handle(Standard_Transient)& SelectedApplicative() const; + + Standard_EXPORT void SetDisplayPriority (const Handle(AIS_InteractiveObject)& anObject, const Standard_Integer Prior); + + Standard_EXPORT Standard_Integer DisplayedObjects (TColStd_MapOfTransient& theMapToFill) const; + + Standard_EXPORT Standard_Boolean IsIn (const Handle(AIS_InteractiveObject)& anObject) const; + + Standard_EXPORT Standard_Boolean IsDisplayed (const Handle(AIS_InteractiveObject)& anObject) const; + + Standard_EXPORT Standard_Boolean IsDisplayed (const Handle(AIS_InteractiveObject)& anObject, const Standard_Integer aMode) const; + + Standard_EXPORT const TColStd_ListOfInteger& SelectionModes (const Handle(AIS_InteractiveObject)& anObject) const; + + Standard_EXPORT void SubIntensityOn (const Handle(AIS_InteractiveObject)& anObject); + + Standard_EXPORT void SubIntensityOff (const Handle(AIS_InteractiveObject)& anObject); + + Standard_EXPORT void Hilight (const Handle(AIS_InteractiveObject)& anObject); + + Standard_EXPORT void Hilight (const Handle(AIS_InteractiveObject)& anObject, const Quantity_NameOfColor aCol); + + Standard_EXPORT void Unhilight (const Handle(AIS_InteractiveObject)& anObject); + + Standard_EXPORT Standard_Boolean IsHilighted (const Handle(AIS_InteractiveObject)& anObject) const; + + Standard_EXPORT Standard_Boolean IsHilighted (const Handle(AIS_InteractiveObject)& anObject, Standard_Boolean& WithColor, Quantity_NameOfColor& HiCol) const; + + //! Define the current selection sensitivity for + //! this local context according to the view size. + Standard_EXPORT void SetPixelTolerance (const Standard_Real aPrecision = 2); + + //! Returns the pixel tolerance. + Standard_EXPORT Standard_Real PixelTolerance() const; + + //! Resets the transient list of presentations previously displayed in immediate mode + //! and begins accumulation of new list by following AddToImmediateList()/Color()/Highlight() calls. + Standard_EXPORT Standard_Boolean BeginImmediateDraw(); + + //! Resets the transient list of presentations previously displayed in immediate mode. + Standard_EXPORT virtual void ClearImmediateDraw(); + + //! Stores presentation theMode of object theObj in the transient list of presentations to be displayed in immediate mode. + //! Will be taken in account in EndImmediateDraw method. + Standard_EXPORT Standard_Boolean ImmediateAdd (const Handle(AIS_InteractiveObject)& theObj, const Standard_Integer theMode = 0); + + //! Allows rapid drawing of the view theView by avoiding an update of the whole background. + Standard_EXPORT Standard_Boolean EndImmediateDraw (const Handle(V3d_View)& theView); + + //! Returns true if Presentation Manager is accumulating transient list of presentations to be displayed in immediate mode. + Standard_EXPORT Standard_Boolean IsImmediateModeOn() const; + + Standard_EXPORT TCollection_AsciiString Status() const; + + Standard_EXPORT const Handle(AIS_LocalStatus)& Status (const Handle(AIS_InteractiveObject)& anObject) const; + + Standard_EXPORT void LoadContextObjects(); + + Standard_EXPORT void UnloadContextObjects(); + + Standard_EXPORT void DisplaySensitive (const Handle(V3d_View)& aView); + + Standard_EXPORT void ClearSensitive (const Handle(V3d_View)& aView); + + const Handle(StdSelect_ViewerSelector3d)& MainSelector() const; + + Standard_EXPORT Handle(SelectMgr_EntityOwner) FindSelectedOwnerFromIO (const Handle(AIS_InteractiveObject)& anIObj) const; + + Standard_EXPORT Handle(SelectMgr_EntityOwner) FindSelectedOwnerFromShape (const TopoDS_Shape& aShape) const; + + + + + DEFINE_STANDARD_RTTI(AIS_LocalContext,MMgt_TShared) + +protected: + + + + +private: + + + Standard_EXPORT void Process (const Handle(SelectMgr_SelectableObject)& anObject); + + Standard_EXPORT void Process(); + + Standard_EXPORT void ActivateStandardModes (const Handle(SelectMgr_SelectableObject)& anObject); + + Standard_EXPORT void manageDetected (const Handle(SelectMgr_EntityOwner)& thePickOwner, const Handle(V3d_View)& theView, const Standard_Boolean theToRedrawImmediate); + + //! returns 0 if the detected entity was Not FilterOK... + Standard_Integer DetectedIndex(); + + Standard_EXPORT void Hilight (const Handle(SelectMgr_EntityOwner)& Own, const Handle(V3d_View)& aview); + + Standard_EXPORT void Unhilight (const Handle(SelectMgr_EntityOwner)& Ownr, const Handle(V3d_View)& aview); + + Standard_EXPORT void ClearObjects(); + + Standard_EXPORT void ClearDetected(); + + Standard_EXPORT Standard_Boolean IsDecompositionOn() const; + + Standard_EXPORT Standard_Boolean IsShape (const Standard_Integer anIndex) const; + + Standard_EXPORT Standard_Boolean IsValidForSelection (const Handle(AIS_InteractiveObject)& anIObj) const; + + Standard_Boolean IsValidIndex (const Standard_Integer anIndex) const; + + Standard_EXPORT Standard_Boolean ComesFromDecomposition (const Standard_Integer aPickedIndex) const; + + Standard_EXPORT Standard_Boolean HasFilters (const TopAbs_ShapeEnum aType) const; + + Handle(AIS_InteractiveContext) myCTX; + Standard_Boolean myLoadDisplayed; + Standard_Boolean myAcceptStdMode; + Standard_Boolean myAcceptErase; + Handle(SelectMgr_SelectionManager) mySM; + Handle(StdSelect_ViewerSelector3d) myMainVS; + Handle(PrsMgr_PresentationManager3d) myMainPM; + TCollection_AsciiString mySelName; + Handle(StdSelect_ViewerSelector3d) myCollVS; + AIS_DataMapOfSelStat myActiveObjects; + Handle(SelectMgr_OrFilter) myFilters; + TColStd_ListOfInteger myListOfStandardMode; + Handle(SelectMgr_Filter) myStdFilters[9]; + Standard_Boolean myAutoHilight; + Handle(SelectMgr_IndexedMapOfOwner) myMapOfOwner; + Standard_Integer mylastindex; + Standard_Integer mylastgood; + Standard_Integer myCurrentOwner; + TColStd_SequenceOfInteger myDetectedSeq; + Standard_Integer myCurDetected; + AIS_SequenceOfInteractive myAISDetectedSeq; + Standard_Integer myAISCurDetected; + + +}; + + +#include + + + + + +#endif // _AIS_LocalContext_HeaderFile diff --git a/src/AIS/AIS_LocalContext_1.cxx b/src/AIS/AIS_LocalContext_1.cxx index 0d62d977b6..140a845d92 100644 --- a/src/AIS/AIS_LocalContext_1.cxx +++ b/src/AIS/AIS_LocalContext_1.cxx @@ -18,35 +18,41 @@ // - use of optimisation in SelectMgr_ViewerSelector // -> Best management in detected entities... -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include #include +#include +#include +#include +#include #include #include +#include +#include +#include +#include +#include #include -#include #include -#include -#include -#include - +#include +#include +#include +#include #include +#include #include -#include - -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include static Standard_Integer GetHiMod(const Handle(AIS_InteractiveObject)& IO) { diff --git a/src/AIS/AIS_LocalStatus.cdl b/src/AIS/AIS_LocalStatus.cdl deleted file mode 100644 index a7823b81b2..0000000000 --- a/src/AIS/AIS_LocalStatus.cdl +++ /dev/null @@ -1,105 +0,0 @@ --- Created on: 1997-01-20 --- 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. - -class LocalStatus from AIS inherits TShared from MMgt - - ---Purpose: Stored Info about temporary objects. -uses - ListOfInteger from TColStd, - NameOfColor from Quantity -is - - Create(IsTemporary : Boolean from Standard = Standard_True; - Decompose : Boolean from Standard = Standard_False; - DisplayMode : Integer from Standard = -1; - SelectionMode : Integer from Standard = -1; - HilightMode : Integer from Standard = 0; - SubIntensity : Boolean from Standard = 0; - TheHiCol : NameOfColor from Quantity = Quantity_NOC_WHITE) - returns LocalStatus from AIS; - - - - ---Category: Read - - Decomposed(me) returns Boolean from Standard; - ---C++: inline - IsTemporary(me) returns Boolean from Standard; - ---C++: inline - DisplayMode(me) returns Integer from Standard; - ---C++: inline - SelectionModes(me) returns ListOfInteger from TColStd; - ---C++: return const& - ---C++: inline - IsActivated(me; aSelMode :Integer from Standard) - returns Boolean from Standard; - HilightMode(me) returns Integer from Standard; - ---C++: inline - IsSubIntensityOn(me) returns Boolean from Standard; - ---C++: inline - HilightColor(me) returns NameOfColor from Quantity; - ---C++: inline - - - SetDecomposition (me:mutable; astatus : Boolean from Standard); - ---C++: inline - SetTemporary (me:mutable; astatus : Boolean from Standard); - ---C++: inline - SetDisplayMode (me:mutable; aMode : Integer from Standard); - ---C++: inline - SetFirstDisplay (me:mutable; aStatus : Boolean from Standard) ; - ---C++: inline - IsFirstDisplay(me) returns Boolean from Standard; - ---C++: inline - - AddSelectionMode (me:mutable; aMode : Integer from Standard); - - RemoveSelectionMode(me:mutable; aMode : Integer from Standard); - - ClearSelectionModes(me:mutable); - - IsSelModeIn(me;aMode:Integer from Standard) - returns Boolean from Standard; - - SetHilightMode (me:mutable; aMode : Integer from Standard); - ---C++: inline - SetHilightColor (me:mutable;aHiCol:NameOfColor from Quantity); - ---C++: inline - SubIntensityOn (me:mutable); - ---C++: inline - SubIntensityOff (me:mutable); - ---C++: inline - - - SetPreviousState(me:mutable;aStatus : Transient from Standard); - ---C++: inline - PreviousState(me) returns any Transient from Standard; - ---C++: inline - ---C++: return const & - -fields - myDecomposition : Boolean from Standard; - myIsTemporary : Boolean from Standard; - myDMode : Integer from Standard; - myFirstDisplay : Boolean from Standard; - myHMode : Integer from Standard; - mySModes : ListOfInteger from TColStd; - mySubIntensity : Boolean from Standard; - myHiCol : NameOfColor from Quantity; - - myPreviousState : Transient from Standard; - -end LocalStatus; diff --git a/src/AIS/AIS_LocalStatus.cxx b/src/AIS/AIS_LocalStatus.cxx index 32c3f0fb40..aa4389280f 100644 --- a/src/AIS/AIS_LocalStatus.cxx +++ b/src/AIS/AIS_LocalStatus.cxx @@ -12,9 +12,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include +#include AIS_LocalStatus::AIS_LocalStatus(const Standard_Boolean IsTemp, const Standard_Boolean Decomp, diff --git a/src/AIS/AIS_LocalStatus.hxx b/src/AIS/AIS_LocalStatus.hxx new file mode 100644 index 0000000000..255db73e10 --- /dev/null +++ b/src/AIS/AIS_LocalStatus.hxx @@ -0,0 +1,122 @@ +// Created on: 1997-01-20 +// 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_LocalStatus_HeaderFile +#define _AIS_LocalStatus_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +class Standard_Transient; + + +class AIS_LocalStatus; +DEFINE_STANDARD_HANDLE(AIS_LocalStatus, MMgt_TShared) + +//! Stored Info about temporary objects. +class AIS_LocalStatus : public MMgt_TShared +{ + +public: + + + Standard_EXPORT AIS_LocalStatus(const Standard_Boolean IsTemporary = Standard_True, const Standard_Boolean Decompose = Standard_False, const Standard_Integer DisplayMode = -1, const Standard_Integer SelectionMode = -1, const Standard_Integer HilightMode = 0, const Standard_Boolean SubIntensity = 0, const Quantity_NameOfColor TheHiCol = Quantity_NOC_WHITE); + + Standard_Boolean Decomposed() const; + + Standard_Boolean IsTemporary() const; + + Standard_Integer DisplayMode() const; + + const TColStd_ListOfInteger& SelectionModes() const; + + Standard_EXPORT Standard_Boolean IsActivated (const Standard_Integer aSelMode) const; + + Standard_Integer HilightMode() const; + + Standard_Boolean IsSubIntensityOn() const; + + Quantity_NameOfColor HilightColor() const; + + void SetDecomposition (const Standard_Boolean astatus); + + void SetTemporary (const Standard_Boolean astatus); + + void SetDisplayMode (const Standard_Integer aMode); + + void SetFirstDisplay (const Standard_Boolean aStatus); + + Standard_Boolean IsFirstDisplay() const; + + Standard_EXPORT void AddSelectionMode (const Standard_Integer aMode); + + Standard_EXPORT void RemoveSelectionMode (const Standard_Integer aMode); + + Standard_EXPORT void ClearSelectionModes(); + + Standard_EXPORT Standard_Boolean IsSelModeIn (const Standard_Integer aMode) const; + + void SetHilightMode (const Standard_Integer aMode); + + void SetHilightColor (const Quantity_NameOfColor aHiCol); + + void SubIntensityOn(); + + void SubIntensityOff(); + + void SetPreviousState (const Handle(Standard_Transient)& aStatus); + + const Handle(Standard_Transient)& PreviousState() const; + + + + + DEFINE_STANDARD_RTTI(AIS_LocalStatus,MMgt_TShared) + +protected: + + + + +private: + + + Standard_Boolean myDecomposition; + Standard_Boolean myIsTemporary; + Standard_Integer myDMode; + Standard_Boolean myFirstDisplay; + Standard_Integer myHMode; + TColStd_ListOfInteger mySModes; + Standard_Boolean mySubIntensity; + Quantity_NameOfColor myHiCol; + Handle(Standard_Transient) myPreviousState; + + +}; + + +#include + + + + + +#endif // _AIS_LocalStatus_HeaderFile diff --git a/src/AIS/AIS_MaxRadiusDimension.cdl b/src/AIS/AIS_MaxRadiusDimension.cdl deleted file mode 100644 index 3a4b602275..0000000000 --- a/src/AIS/AIS_MaxRadiusDimension.cdl +++ /dev/null @@ -1,120 +0,0 @@ --- Created on: 1998-01-22 --- Created by: Sergey ZARITCHNY --- 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. - -class MaxRadiusDimension from AIS inherits EllipseRadiusDimension from AIS - - ---Purpose: - -- Ellipse Max radius dimension of a Shape which can be Edge - -- or Face (planar or cylindrical(surface of extrusion or - -- surface of offset)) - -uses - Shape from TopoDS, - Elips from gp, - Pnt from gp, - Pln from gp, - Ellipse from Geom, - OffsetCurve from Geom, - Plane from Geom, - Surface from Geom, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - Selection from SelectMgr, - Projector from Prs3d, - Transformation from Geom, - ExtendedString from TCollection, - ArrowSide from DsgPrs, - KindOfSurface from AIS, - KindOfDimension from AIS - -raises ConstructionError from Standard - -is - - Create (aShape : Shape from TopoDS; - aVal : Real from Standard; - aText : ExtendedString from TCollection) - ---Purpose: Max Ellipse radius dimension - -- Shape can be edge , planar face or cylindrical face - -- - returns MaxRadiusDimension from AIS; - - Create (aShape : Shape from TopoDS; - aVal : Real from Standard; - aText : ExtendedString from TCollection; - aPosition : Pnt from gp; - aSymbolPrs : ArrowSide from DsgPrs; - anArrowSize : Real from Standard = 0.0) - ---Purpose: Max Ellipse radius dimension with position - -- Shape can be edge , planar face or cylindrical face - -- - returns MaxRadiusDimension from AIS; - - - - --- Methods from PresentableObject - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0) - is redefined private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard) - is redefined private; - --- --- Computation private methods --- - - ComputeEllipse(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - ComputeArcOfEllipse(me: mutable; - aPresentation : Presentation from Prs3d ) - is private; - -fields - - myApexP : Pnt from gp; - myApexN : Pnt from gp; - myEndOfArrow : Pnt from gp; - -end MaxRadiusDimension; diff --git a/src/AIS/AIS_MaxRadiusDimension.cxx b/src/AIS/AIS_MaxRadiusDimension.cxx index cb60705562..00f3110fcf 100644 --- a/src/AIS/AIS_MaxRadiusDimension.cxx +++ b/src/AIS/AIS_MaxRadiusDimension.cxx @@ -14,59 +14,54 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include #include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - +#include +#include +#include +#include #include #include - -#include - -#include -#include - +#include #include #include -#include #include #include -#include -#include -#include #include - -#include -#include -#include +#include +#include +#include #include #include +#include +#include +#include #include - -#include - #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : AIS_MaxRadiusDimension //purpose : //======================================================================= - AIS_MaxRadiusDimension::AIS_MaxRadiusDimension(const TopoDS_Shape& aShape, const Standard_Real aVal, const TCollection_ExtendedString& aText) diff --git a/src/AIS/AIS_MaxRadiusDimension.hxx b/src/AIS/AIS_MaxRadiusDimension.hxx new file mode 100644 index 0000000000..42b8e7f66b --- /dev/null +++ b/src/AIS/AIS_MaxRadiusDimension.hxx @@ -0,0 +1,105 @@ +// Created on: 1998-01-22 +// Created by: Sergey ZARITCHNY +// 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_MaxRadiusDimension_HeaderFile +#define _AIS_MaxRadiusDimension_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Standard_ConstructionError; +class TopoDS_Shape; +class TCollection_ExtendedString; +class gp_Pnt; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; + + +class AIS_MaxRadiusDimension; +DEFINE_STANDARD_HANDLE(AIS_MaxRadiusDimension, AIS_EllipseRadiusDimension) + + +//! Ellipse Max radius dimension of a Shape which can be Edge +//! or Face (planar or cylindrical(surface of extrusion or +//! surface of offset)) +class AIS_MaxRadiusDimension : public AIS_EllipseRadiusDimension +{ + +public: + + + //! Max Ellipse radius dimension + //! Shape can be edge , planar face or cylindrical face + Standard_EXPORT AIS_MaxRadiusDimension(const TopoDS_Shape& aShape, const Standard_Real aVal, const TCollection_ExtendedString& aText); + + //! Max Ellipse radius dimension with position + //! Shape can be edge , planar face or cylindrical face + Standard_EXPORT AIS_MaxRadiusDimension(const TopoDS_Shape& aShape, const Standard_Real aVal, const TCollection_ExtendedString& aText, const gp_Pnt& aPosition, const DsgPrs_ArrowSide aSymbolPrs, const Standard_Real anArrowSize = 0.0); + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_MaxRadiusDimension,AIS_EllipseRadiusDimension) + +protected: + + + + +private: + + + Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode) Standard_OVERRIDE; + + Standard_EXPORT void ComputeEllipse (const Handle(Prs3d_Presentation)& aPresentation); + + Standard_EXPORT void ComputeArcOfEllipse (const Handle(Prs3d_Presentation)& aPresentation); + + gp_Pnt myApexP; + gp_Pnt myApexN; + gp_Pnt myEndOfArrow; + + +}; + + + + + + + +#endif // _AIS_MaxRadiusDimension_HeaderFile diff --git a/src/AIS/AIS_MidPointRelation.cdl b/src/AIS/AIS_MidPointRelation.cdl deleted file mode 100644 index f6bc2333e2..0000000000 --- a/src/AIS/AIS_MidPointRelation.cdl +++ /dev/null @@ -1,134 +0,0 @@ --- Created on: 2000-10-20 --- Created by: Julia DOROVSKIKH --- Copyright (c) 2000-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. - -class MidPointRelation from AIS inherits Relation from AIS - - ---Purpose: presentation of equal distance to point myMidPoint - -uses - ExtendedString from TCollection, - Projector from Prs3d, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - Selection from SelectMgr, - Dir from gp, - Pnt from gp, - Lin from gp, - Circ from gp, - Elips from gp, - Plane from Geom, - Transformation from Geom, - Shape from TopoDS - -is - Create(aSymmTool : Shape from TopoDS; - FirstShape : Shape from TopoDS; - SecondShape : Shape from TopoDS; - aPlane : Plane from Geom) - returns MidPointRelation from AIS; - - IsMovable(me) returns Boolean from Standard - ---C++: inline - is redefined; - - SetTool(me: mutable; aMidPointTool : Shape from TopoDS); - ---C++: inline - - GetTool(me) - ---C++: inline - ---C++: return const & - returns Shape from TopoDS; - --- Methods from PresentableObject - Compute(me: mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0) - is redefined static private; - - Compute(me: mutable; - aProjector : Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me: mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: Computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard)is private; - --- Computation private methods - ComputeFaceFromPnt(me: mutable; aprs : Presentation from Prs3d; first : Boolean from Standard) - is private; - - ComputeEdgeFromPnt(me: mutable; aprs : Presentation from Prs3d; first : Boolean from Standard) - is private; - - ComputeVertexFromPnt(me: mutable; aprs : Presentation from Prs3d; first : Boolean from Standard) - is private; - - - ComputePointsOnLine(me: mutable; aLin : Lin from gp; - first : Boolean from Standard) - is private; - - ComputePointsOnLine(me: mutable; pnt1,pnt2 : Pnt from gp; - first : Boolean from Standard) - is private; - - ComputePointsOnCirc(me: mutable; aCirc : Circ from gp; pnt1,pnt2 : Pnt from gp; - first : Boolean from Standard) - is private; - - ComputePointsOnElips(me: mutable; anEll : Elips from gp; pnt1,pnt2 : Pnt from gp; - first : Boolean from Standard) - is private; - ---Purpose: ComputePointsOn... methods set myFAttach, myFirstPnt and myLastPnt - -- from the following initial data: curve, end points, myMidPoint. - -- End points (pnt1 & pnt2) and curve define the trimmed curve. - -- If end points are equal, curve is not trimmed (line - special case). - -- - -- .------. pnt2 - -- / \ - -- . circle . myLastPnt - -- | | - -- . pnt1 . myFAttach - -- \ arc / . myMidPoint - -- .______. myFirstPnt -fields - myTool : Shape from TopoDS; - myMidPoint : Pnt from gp; -- point of symmetry - - myFAttach : Pnt from gp; -- position on myFShape to be connected with myMidPoint by segment - myFirstPnt1 : Pnt from gp; -- points on myFShape, - myFirstPnt2 : Pnt from gp; -- defining a segment of it to be drawn - - mySAttach : Pnt from gp; -- position on mySShape to be connected with myMidPoint by segment - mySecondPnt1 : Pnt from gp; -- points on mySShape, - mySecondPnt2 : Pnt from gp; -- defining a segment of it to be drawn - -end MidPointRelation; diff --git a/src/AIS/AIS_MidPointRelation.cxx b/src/AIS/AIS_MidPointRelation.cxx index d6000540e3..6145474ec3 100644 --- a/src/AIS/AIS_MidPointRelation.cxx +++ b/src/AIS/AIS_MidPointRelation.cxx @@ -13,46 +13,44 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include - -#include #include - -#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include -#include -#include - -#include -#include +#include #include #include +#include +#include +#include #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include - -#include +#include +#include #include -#include -#include -#include - -#include -#include -#include - -#include +#include +#include #include //======================================================================= diff --git a/src/AIS/AIS_MidPointRelation.hxx b/src/AIS/AIS_MidPointRelation.hxx new file mode 100644 index 0000000000..b527d86dd8 --- /dev/null +++ b/src/AIS/AIS_MidPointRelation.hxx @@ -0,0 +1,131 @@ +// Created on: 2000-10-20 +// Created by: Julia DOROVSKIKH +// Copyright (c) 2000-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_MidPointRelation_HeaderFile +#define _AIS_MidPointRelation_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class Geom_Plane; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; +class gp_Lin; +class gp_Pnt; +class gp_Circ; +class gp_Elips; + + +class AIS_MidPointRelation; +DEFINE_STANDARD_HANDLE(AIS_MidPointRelation, AIS_Relation) + +//! presentation of equal distance to point myMidPoint +class AIS_MidPointRelation : public AIS_Relation +{ + +public: + + + Standard_EXPORT AIS_MidPointRelation(const TopoDS_Shape& aSymmTool, const TopoDS_Shape& FirstShape, const TopoDS_Shape& SecondShape, const Handle(Geom_Plane)& aPlane); + + virtual Standard_Boolean IsMovable() const Standard_OVERRIDE; + + void SetTool (const TopoDS_Shape& aMidPointTool); + + const TopoDS_Shape& GetTool() const; + + //! Computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_MidPointRelation,AIS_Relation) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode); + + Standard_EXPORT void ComputeFaceFromPnt (const Handle(Prs3d_Presentation)& aprs, const Standard_Boolean first); + + Standard_EXPORT void ComputeEdgeFromPnt (const Handle(Prs3d_Presentation)& aprs, const Standard_Boolean first); + + Standard_EXPORT void ComputeVertexFromPnt (const Handle(Prs3d_Presentation)& aprs, const Standard_Boolean first); + + Standard_EXPORT void ComputePointsOnLine (const gp_Lin& aLin, const Standard_Boolean first); + + Standard_EXPORT void ComputePointsOnLine (const gp_Pnt& pnt1, const gp_Pnt& pnt2, const Standard_Boolean first); + + Standard_EXPORT void ComputePointsOnCirc (const gp_Circ& aCirc, const gp_Pnt& pnt1, const gp_Pnt& pnt2, const Standard_Boolean first); + + //! ComputePointsOn... methods set myFAttach, myFirstPnt and myLastPnt + //! from the following initial data: curve, end points, myMidPoint. + //! End points (pnt1 & pnt2) and curve define the trimmed curve. + //! If end points are equal, curve is not trimmed (line - special case). + //! + //! .------. pnt2 + //! / + //! . circle . myLastPnt + //! | | + //! . pnt1 . myFAttach + //! \ arc / . myMidPoint + //! .______. myFirstPnt + Standard_EXPORT void ComputePointsOnElips (const gp_Elips& anEll, const gp_Pnt& pnt1, const gp_Pnt& pnt2, const Standard_Boolean first); + + TopoDS_Shape myTool; + gp_Pnt myMidPoint; + gp_Pnt myFAttach; + gp_Pnt myFirstPnt1; + gp_Pnt myFirstPnt2; + gp_Pnt mySAttach; + gp_Pnt mySecondPnt1; + gp_Pnt mySecondPnt2; + + +}; + + +#include + + + + + +#endif // _AIS_MidPointRelation_HeaderFile diff --git a/src/AIS/AIS_MinRadiusDimension.cdl b/src/AIS/AIS_MinRadiusDimension.cdl deleted file mode 100644 index a9a15ab0fe..0000000000 --- a/src/AIS/AIS_MinRadiusDimension.cdl +++ /dev/null @@ -1,121 +0,0 @@ --- Created on: 1998-01-22 --- Created by: Sergey ZARITCHNY --- 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. - -class MinRadiusDimension from AIS inherits EllipseRadiusDimension from AIS - - ---Purpose:-- Ellipse Min radius dimension of a Shape which - -- can be Edge or Face (planar or cylindrical(surface of - -- extrusion or surface of offset)) - -uses - - Shape from TopoDS, - Elips from gp, - Pnt from gp, - Pln from gp, - Ellipse from Geom, - Plane from Geom, - Surface from Geom, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - Selection from SelectMgr, - Projector from Prs3d, - Transformation from Geom, - ExtendedString from TCollection, - ArrowSide from DsgPrs, - KindOfSurface from AIS, - KindOfDimension from AIS - - -raises ConstructionError from Standard - -is - - - Create (aShape : Shape from TopoDS; - aVal : Real from Standard; - aText : ExtendedString from TCollection) - ---Purpose: Max Ellipse radius dimension - -- Shape can be edge , planar face or cylindrical face - -- - returns MinRadiusDimension from AIS; - - Create (aShape : Shape from TopoDS; - aVal : Real from Standard; - aText : ExtendedString from TCollection; - aPosition : Pnt from gp; - aSymbolPrs : ArrowSide from DsgPrs; - anArrowSize : Real from Standard = 0.0) - ---Purpose: Max Ellipse radius dimension with position - -- Shape can be edge , planar face or cylindrical face - -- - returns MinRadiusDimension from AIS; - - - - --- Methods from PresentableObject - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0) - is redefined private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard) - is redefined private; - --- --- Computation private methods --- - - ComputeEllipse(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - ComputeArcOfEllipse(me: mutable; - aPresentation : Presentation from Prs3d ) - is private; - -fields - - myApexP : Pnt from gp; - myApexN : Pnt from gp; - myEndOfArrow : Pnt from gp; - -end MinRadiusDimension; diff --git a/src/AIS/AIS_MinRadiusDimension.cxx b/src/AIS/AIS_MinRadiusDimension.cxx index b130c9bf07..5ee9dfd646 100644 --- a/src/AIS/AIS_MinRadiusDimension.cxx +++ b/src/AIS/AIS_MinRadiusDimension.cxx @@ -14,61 +14,54 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include +#include #include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - +#include +#include +#include +#include #include #include - -#include - -#include -#include - +#include #include #include -#include #include #include -#include -#include -#include #include - -#include -#include -#include +#include +#include +#include #include #include +#include +#include +#include #include - -#include - #include -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : AIS_MinRadiusDimension //purpose : //======================================================================= - AIS_MinRadiusDimension::AIS_MinRadiusDimension(const TopoDS_Shape& aShape, const Standard_Real aVal, const TCollection_ExtendedString& aText) diff --git a/src/AIS/AIS_MinRadiusDimension.hxx b/src/AIS/AIS_MinRadiusDimension.hxx new file mode 100644 index 0000000000..09aaf80188 --- /dev/null +++ b/src/AIS/AIS_MinRadiusDimension.hxx @@ -0,0 +1,104 @@ +// Created on: 1998-01-22 +// Created by: Sergey ZARITCHNY +// 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_MinRadiusDimension_HeaderFile +#define _AIS_MinRadiusDimension_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Standard_ConstructionError; +class TopoDS_Shape; +class TCollection_ExtendedString; +class gp_Pnt; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; + + +class AIS_MinRadiusDimension; +DEFINE_STANDARD_HANDLE(AIS_MinRadiusDimension, AIS_EllipseRadiusDimension) + +//! -- Ellipse Min radius dimension of a Shape which +//! can be Edge or Face (planar or cylindrical(surface of +//! extrusion or surface of offset)) +class AIS_MinRadiusDimension : public AIS_EllipseRadiusDimension +{ + +public: + + + //! Max Ellipse radius dimension + //! Shape can be edge , planar face or cylindrical face + Standard_EXPORT AIS_MinRadiusDimension(const TopoDS_Shape& aShape, const Standard_Real aVal, const TCollection_ExtendedString& aText); + + //! Max Ellipse radius dimension with position + //! Shape can be edge , planar face or cylindrical face + Standard_EXPORT AIS_MinRadiusDimension(const TopoDS_Shape& aShape, const Standard_Real aVal, const TCollection_ExtendedString& aText, const gp_Pnt& aPosition, const DsgPrs_ArrowSide aSymbolPrs, const Standard_Real anArrowSize = 0.0); + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_MinRadiusDimension,AIS_EllipseRadiusDimension) + +protected: + + + + +private: + + + Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode) Standard_OVERRIDE; + + Standard_EXPORT void ComputeEllipse (const Handle(Prs3d_Presentation)& aPresentation); + + Standard_EXPORT void ComputeArcOfEllipse (const Handle(Prs3d_Presentation)& aPresentation); + + gp_Pnt myApexP; + gp_Pnt myApexN; + gp_Pnt myEndOfArrow; + + +}; + + + + + + + +#endif // _AIS_MinRadiusDimension_HeaderFile diff --git a/src/AIS/AIS_MultipleConnectedInteractive.cdl b/src/AIS/AIS_MultipleConnectedInteractive.cdl deleted file mode 100644 index ddc1dcc7fb..0000000000 --- a/src/AIS/AIS_MultipleConnectedInteractive.cdl +++ /dev/null @@ -1,138 +0,0 @@ --- Created on: 1997-04-22 --- Created by: Guest Design --- 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. - -class MultipleConnectedInteractive from AIS inherits InteractiveObject from AIS - - - ---Purpose: Defines an Interactive Object by gathering together - -- several object presentations. This is done through a - -- list of interactive objects. These can also be - -- Connected objects. That way memory-costly - -- calculations of presentation are avoided. - - -uses - - - TypeOfPresentation3d from PrsMgr, - InteractiveObject from AIS, - Boolean from Standard, - SequenceOfInteractive from AIS, - KindOfInteractive from AIS, - PresentationManager3d from PrsMgr, - Presentation from Prs3d, - Projector from Prs3d, - Transformation from Geom, - Integer from Standard, - Selection from SelectMgr, - Trsf from gp, - Pnt from gp, - TransModeFlags from Graphic3d - -is - - Create - returns MultipleConnectedInteractive from AIS; - ---Purpose: Initializes the Interactive Object with multiple - -- connections to AIS_Interactive objects. - - Connect (me : mutable; - theInteractive : InteractiveObject from AIS) - returns InteractiveObject from AIS; - ---Purpose: Establishes the connection between the Connected Interactive Object, theInteractive, and its reference. - -- Copies local transformation and transformation persistence mode from theInteractive. - -- @return created instance object (AIS_ConnectedInteractive or AIS_MultipleConnectedInteractive) - - Connect (me : mutable; - theInteractive : InteractiveObject from AIS; - theLocation : Trsf from gp) - returns InteractiveObject from AIS; - ---Purpose: Establishes the connection between the Connected Interactive Object, theInteractive, and its reference. - -- Locates instance in theLocation and copies transformation persistence mode from theInteractive. - -- @return created instance object (AIS_ConnectedInteractive or AIS_MultipleConnectedInteractive) - - Connect (me : mutable; - theInteractive : InteractiveObject from AIS; - theLocation : Trsf from gp; - theTrsfPersFlag : TransModeFlags from Graphic3d; - theTrsfPersPoint : Pnt from gp ) - returns InteractiveObject from AIS - is virtual; - ---Purpose: Establishes the connection between the Connected Interactive Object, theInteractive, and its reference. - -- Locates instance in theLocation and applies specified transformation persistence mode. - -- @return created instance object (AIS_ConnectedInteractive or AIS_MultipleConnectedInteractive) - - Type(me) returns KindOfInteractive from AIS - is redefined virtual; - - Signature(me) returns Integer from Standard - is redefined virtual; - - HasConnection(me) returns Boolean from Standard; - ---Purpose: Returns true if the object is connected to others. - - Disconnect(me : mutable; - theInteractive : InteractiveObject from AIS); - ---Purpose: Removes the connection with theInteractive. - - DisconnectAll(me:mutable); - ---Purpose: Clears all the connections to objects. - - Compute(me:mutable; - aPresentationManager : PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard = 0) - ---Level: Internal - ---Purpose: 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. - is redefined virtual protected; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined ; - - AcceptShapeDecomposition(me) returns Boolean from Standard is redefined virtual; - ---Purpose: Informs the graphic context that the interactive Object - -- may be decomposed into sub-shapes for dynamic selection. - - - ComputeSelection(me:mutable; aSelection : Selection from SelectMgr; - aMode : Integer from Standard) - is redefined virtual private; - ---Purpose: Computes the selection for whole subtree in scene hierarchy. - - - - -end MultipleConnectedInteractive; diff --git a/src/AIS/AIS_MultipleConnectedInteractive.cxx b/src/AIS/AIS_MultipleConnectedInteractive.cxx index c22ea9a190..75aad63e95 100644 --- a/src/AIS/AIS_MultipleConnectedInteractive.cxx +++ b/src/AIS/AIS_MultipleConnectedInteractive.cxx @@ -14,19 +14,24 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include #include #include - +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include #include +#include +#include +#include #include -#include -#include namespace { diff --git a/src/AIS/AIS_MultipleConnectedInteractive.hxx b/src/AIS/AIS_MultipleConnectedInteractive.hxx new file mode 100644 index 0000000000..43b7cf7409 --- /dev/null +++ b/src/AIS/AIS_MultipleConnectedInteractive.hxx @@ -0,0 +1,133 @@ +// Created on: 1997-04-22 +// Created by: Guest Design +// 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_MultipleConnectedInteractive_HeaderFile +#define _AIS_MultipleConnectedInteractive_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class AIS_InteractiveObject; +class gp_Trsf; +class gp_Pnt; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; + + +class AIS_MultipleConnectedInteractive; +DEFINE_STANDARD_HANDLE(AIS_MultipleConnectedInteractive, AIS_InteractiveObject) + +//! Defines an Interactive Object by gathering together +//! several object presentations. This is done through a +//! list of interactive objects. These can also be +//! Connected objects. That way memory-costly +//! calculations of presentation are avoided. +class AIS_MultipleConnectedInteractive : public AIS_InteractiveObject +{ + +public: + + + //! Initializes the Interactive Object with multiple + //! connections to AIS_Interactive objects. + Standard_EXPORT AIS_MultipleConnectedInteractive(); + + //! Establishes the connection between the Connected Interactive Object, theInteractive, and its reference. + //! Copies local transformation and transformation persistence mode from theInteractive. + //! @return created instance object (AIS_ConnectedInteractive or AIS_MultipleConnectedInteractive) + Standard_EXPORT Handle(AIS_InteractiveObject) Connect (const Handle(AIS_InteractiveObject)& theInteractive); + + //! Establishes the connection between the Connected Interactive Object, theInteractive, and its reference. + //! Locates instance in theLocation and copies transformation persistence mode from theInteractive. + //! @return created instance object (AIS_ConnectedInteractive or AIS_MultipleConnectedInteractive) + Standard_EXPORT Handle(AIS_InteractiveObject) Connect (const Handle(AIS_InteractiveObject)& theInteractive, const gp_Trsf& theLocation); + + //! Establishes the connection between the Connected Interactive Object, theInteractive, and its reference. + //! Locates instance in theLocation and applies specified transformation persistence mode. + //! @return created instance object (AIS_ConnectedInteractive or AIS_MultipleConnectedInteractive) + Standard_EXPORT virtual Handle(AIS_InteractiveObject) Connect (const Handle(AIS_InteractiveObject)& theInteractive, const gp_Trsf& theLocation, const Graphic3d_TransModeFlags& theTrsfPersFlag, const gp_Pnt& theTrsfPersPoint); + + Standard_EXPORT virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE; + + Standard_EXPORT virtual Standard_Integer Signature() const Standard_OVERRIDE; + + //! Returns true if the object is connected to others. + Standard_EXPORT Standard_Boolean HasConnection() const; + + //! Removes the connection with theInteractive. + Standard_EXPORT void Disconnect (const Handle(AIS_InteractiveObject)& theInteractive); + + //! Clears all the connections to objects. + Standard_EXPORT void DisconnectAll(); + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + //! Informs the graphic context that the interactive Object + //! may be decomposed into sub-shapes for dynamic selection. + Standard_EXPORT virtual Standard_Boolean AcceptShapeDecomposition() const Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_MultipleConnectedInteractive,AIS_InteractiveObject) + +protected: + + + //! 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_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + + +private: + + + //! Computes the selection for whole subtree in scene hierarchy. + Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode) Standard_OVERRIDE; + + + +}; + + + + + + + +#endif // _AIS_MultipleConnectedInteractive_HeaderFile diff --git a/src/AIS/AIS_OffsetDimension.cdl b/src/AIS/AIS_OffsetDimension.cdl deleted file mode 100644 index f8538cea04..0000000000 --- a/src/AIS/AIS_OffsetDimension.cdl +++ /dev/null @@ -1,119 +0,0 @@ --- Created on: 1997-03-04 --- Created by: Jean-Pierre COMBE --- 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. - -class OffsetDimension from AIS inherits Relation from AIS - - ---Purpose: A framework to display dimensions of offsets. - -- The relation between the offset and the basis shape - -- is indicated. This relation is displayed with arrows and - -- text. The text gives the dsitance between the offset - -- and the basis shape. - -uses - Shape from TopoDS, - Presentation from Prs3d, - Projector from Prs3d, - Transformation from Geom, - PresentationManager3d from PrsMgr, - Selection from SelectMgr, - Dir from gp, - Pnt from gp, - Trsf from gp, - KindOfDimension from AIS, - ExtendedString from TCollection - -is - Create (FistShape, SecondShape : Shape from TopoDS; - aVal : Real from Standard; - aText : ExtendedString from TCollection) - returns OffsetDimension from AIS; - ---Purpose: Constructs the offset display object defined by the - -- first shape aFShape, the second shape aSShape, the - -- dimension aVal, and the text aText. - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0) - is redefined private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard) - is redefined private; - - KindOfDimension(me) - ---Purpose: - -- Indicates that the dimension we are concerned with is an offset. - ---C++: inline - returns KindOfDimension from AIS - is redefined; - - IsMovable(me) - ---C++: inline - ---Purpose: Returns true if the offset datum is movable. - returns Boolean from Standard - is redefined; - - SetRelativePos (me:mutable; aTrsf: Trsf from gp); - ---C++: inline - ---Purpose: Sets a transformation aTrsf for presentation and - -- selection to a relative position. - - ComputeTwoFacesOffset(me: mutable; - aPresentation : Presentation from Prs3d; - aTrsf : Trsf from gp) - is private; - - ComputeTwoAxesOffset(me: mutable; - aPresentation : Presentation from Prs3d; - aTrsf : Trsf from gp) - is private; - - ComputeAxeFaceOffset(me: mutable; - aPresentation : Presentation from Prs3d; - aTrsf : Trsf from gp) - is private; - -fields - - myFAttach : Pnt from gp; - mySAttach : Pnt from gp; - myDirAttach : Dir from gp; - myDirAttach2 : Dir from gp; - myRelativePos : Trsf from gp; - -end OffsetDimension; diff --git a/src/AIS/AIS_OffsetDimension.cxx b/src/AIS/AIS_OffsetDimension.cxx index 376bf99a93..dd557b99a3 100644 --- a/src/AIS/AIS_OffsetDimension.cxx +++ b/src/AIS/AIS_OffsetDimension.cxx @@ -14,43 +14,47 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include #include -#include -#include +#include #include +#include +#include #include #include #include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include -#include #include +#include #include +#include +#include #include #include #include #include +#include +#include #include -#include #include +#include #include #include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include //======================================================================= //function : AIS_OffsetDimension diff --git a/src/AIS/AIS_OffsetDimension.hxx b/src/AIS/AIS_OffsetDimension.hxx new file mode 100644 index 0000000000..23e2690051 --- /dev/null +++ b/src/AIS/AIS_OffsetDimension.hxx @@ -0,0 +1,121 @@ +// Created on: 1997-03-04 +// Created by: Jean-Pierre COMBE +// 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_OffsetDimension_HeaderFile +#define _AIS_OffsetDimension_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class TCollection_ExtendedString; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; +class gp_Trsf; + + +class AIS_OffsetDimension; +DEFINE_STANDARD_HANDLE(AIS_OffsetDimension, AIS_Relation) + +//! A framework to display dimensions of offsets. +//! The relation between the offset and the basis shape +//! is indicated. This relation is displayed with arrows and +//! text. The text gives the dsitance between the offset +//! and the basis shape. +class AIS_OffsetDimension : public AIS_Relation +{ + +public: + + + //! Constructs the offset display object defined by the + //! first shape aFShape, the second shape aSShape, the + //! dimension aVal, and the text aText. + Standard_EXPORT AIS_OffsetDimension(const TopoDS_Shape& FistShape, const TopoDS_Shape& SecondShape, const Standard_Real aVal, const TCollection_ExtendedString& aText); + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + + //! Indicates that the dimension we are concerned with is an offset. + virtual AIS_KindOfDimension KindOfDimension() const Standard_OVERRIDE; + + //! Returns true if the offset datum is movable. + virtual Standard_Boolean IsMovable() const Standard_OVERRIDE; + + //! Sets a transformation aTrsf for presentation and + //! selection to a relative position. + void SetRelativePos (const gp_Trsf& aTrsf); + + + + + DEFINE_STANDARD_RTTI(AIS_OffsetDimension,AIS_Relation) + +protected: + + + + +private: + + + Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode) Standard_OVERRIDE; + + Standard_EXPORT void ComputeTwoFacesOffset (const Handle(Prs3d_Presentation)& aPresentation, const gp_Trsf& aTrsf); + + Standard_EXPORT void ComputeTwoAxesOffset (const Handle(Prs3d_Presentation)& aPresentation, const gp_Trsf& aTrsf); + + Standard_EXPORT void ComputeAxeFaceOffset (const Handle(Prs3d_Presentation)& aPresentation, const gp_Trsf& aTrsf); + + gp_Pnt myFAttach; + gp_Pnt mySAttach; + gp_Dir myDirAttach; + gp_Dir myDirAttach2; + gp_Trsf myRelativePos; + + +}; + + +#include + + + + + +#endif // _AIS_OffsetDimension_HeaderFile diff --git a/src/AIS/AIS_PToContext.hxx b/src/AIS/AIS_PToContext.hxx new file mode 100644 index 0000000000..ab5cbca0bb --- /dev/null +++ b/src/AIS/AIS_PToContext.hxx @@ -0,0 +1,23 @@ +// Created on: 1996-12-11 +// 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_PToContext_HeaderFile +#define _AIS_PToContext_HeaderFile + +class AIS_InteractiveContext; +typedef AIS_InteractiveContext* AIS_PToContext; + +#endif // _AIS_PToContext_HeaderFile diff --git a/src/AIS/AIS_ParallelRelation.cdl b/src/AIS/AIS_ParallelRelation.cdl deleted file mode 100644 index 588c90c92a..0000000000 --- a/src/AIS/AIS_ParallelRelation.cdl +++ /dev/null @@ -1,115 +0,0 @@ --- Created on: 1996-12-05 --- Created by: Jean-Pierre COMBE/Odile Olivier --- 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. - -class ParallelRelation from AIS inherits Relation from AIS - - ---Purpose: A framework to display constraints of parallelism - -- between two or more Interactive Objects. These - -- entities can be faces or edges. - -uses Shape from TopoDS, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - Selection from SelectMgr, - Plane from Geom, - Dir from gp, - Pnt from gp, - Projector from Prs3d, - Transformation from Geom, - ArrowSide from DsgPrs - -is - Create (aFShape : Shape from TopoDS; - aSShape : Shape from TopoDS; - aPlane : Plane from Geom) - ---Purpose: Constructs an object to display parallel constraints. - -- This object is defined by the first shape aFShape and - -- the second shape aSShape and the plane aPlane. - returns ParallelRelation from AIS; - - Create (aFShape : Shape from TopoDS; - aSShape : Shape from TopoDS; - aPlane : Plane from Geom; - aPosition : Pnt from gp; - aSymbolPrs : ArrowSide from DsgPrs; - anArrowSize : Real from Standard = 0.01) - ---Purpose: Constructs an object to display parallel constraints. - -- This object is defined by the first shape aFShape and - -- the second shape aSShape the plane aPlane, the - -- position aPosition, the type of arrow, aSymbolPrs and - -- its size anArrowSize. - returns ParallelRelation from AIS; - - IsMovable(me) returns Boolean from Standard - ---Purpose: Returns true if the parallelism is movable. - ---C++: inline - is redefined; - --- Methods from PresentableObject - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0) - is redefined static private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard)is private; - - - --- --- Computation private methods --- - - ComputeTwoFacesParallel(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - ComputeTwoEdgesParallel(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - -fields - - myFAttach : Pnt from gp; - mySAttach : Pnt from gp; - myDirAttach : Dir from gp; - -end ParallelRelation; - diff --git a/src/AIS/AIS_ParallelRelation.cxx b/src/AIS/AIS_ParallelRelation.cxx index f1c60acb78..d3a594c8d4 100644 --- a/src/AIS/AIS_ParallelRelation.cxx +++ b/src/AIS/AIS_ParallelRelation.cxx @@ -14,48 +14,43 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include -#include - -#include - -#include -#include - -#include - -#include -#include -#include #include - -#include -#include -#include -#include - -#include -#include +#include #include -#include #include - -#include -#include +#include +#include #include -#include -#include -#include -#include - #include - -#include -#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : Constructor diff --git a/src/AIS/AIS_ParallelRelation.hxx b/src/AIS/AIS_ParallelRelation.hxx new file mode 100644 index 0000000000..9e36859a2b --- /dev/null +++ b/src/AIS/AIS_ParallelRelation.hxx @@ -0,0 +1,113 @@ +// Created on: 1996-12-05 +// Created by: Jean-Pierre COMBE/Odile Olivier +// 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_ParallelRelation_HeaderFile +#define _AIS_ParallelRelation_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class Geom_Plane; +class gp_Pnt; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; + + +class AIS_ParallelRelation; +DEFINE_STANDARD_HANDLE(AIS_ParallelRelation, AIS_Relation) + +//! A framework to display constraints of parallelism +//! between two or more Interactive Objects. These +//! entities can be faces or edges. +class AIS_ParallelRelation : public AIS_Relation +{ + +public: + + + //! Constructs an object to display parallel constraints. + //! This object is defined by the first shape aFShape and + //! the second shape aSShape and the plane aPlane. + Standard_EXPORT AIS_ParallelRelation(const TopoDS_Shape& aFShape, const TopoDS_Shape& aSShape, const Handle(Geom_Plane)& aPlane); + + //! Constructs an object to display parallel constraints. + //! This object is defined by the first shape aFShape and + //! the second shape aSShape the plane aPlane, the + //! position aPosition, the type of arrow, aSymbolPrs and + //! its size anArrowSize. + Standard_EXPORT AIS_ParallelRelation(const TopoDS_Shape& aFShape, const TopoDS_Shape& aSShape, const Handle(Geom_Plane)& aPlane, const gp_Pnt& aPosition, const DsgPrs_ArrowSide aSymbolPrs, const Standard_Real anArrowSize = 0.01); + + //! Returns true if the parallelism is movable. + virtual Standard_Boolean IsMovable() const Standard_OVERRIDE; + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_ParallelRelation,AIS_Relation) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode); + + Standard_EXPORT void ComputeTwoFacesParallel (const Handle(Prs3d_Presentation)& aPresentation); + + Standard_EXPORT void ComputeTwoEdgesParallel (const Handle(Prs3d_Presentation)& aPresentation); + + gp_Pnt myFAttach; + gp_Pnt mySAttach; + gp_Dir myDirAttach; + + +}; + + +#include + + + + + +#endif // _AIS_ParallelRelation_HeaderFile diff --git a/src/AIS/AIS_PerpendicularRelation.cdl b/src/AIS/AIS_PerpendicularRelation.cdl deleted file mode 100644 index fc7fd914ad..0000000000 --- a/src/AIS/AIS_PerpendicularRelation.cdl +++ /dev/null @@ -1,105 +0,0 @@ --- Created on: 1996-12-05 --- Created by: Jean-Pierre COMBE/Odile Olivier --- 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. - -class PerpendicularRelation from AIS inherits Relation from AIS - ---Purpose: A framework to display constraints of perpendicularity - -- between two or more interactive datums. These - -- datums can be edges or faces. -uses Shape from TopoDS, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - Selection from SelectMgr, - Pnt from gp, - Dir from gp, - Projector from Prs3d, - Transformation from Geom, - Plane from Geom - -is - Create (aFShape : Shape from TopoDS; - aSShape : Shape from TopoDS; - aPlane : Plane from Geom) - ---Purpose: Constructs an object to display constraints of - -- perpendicularity on shapes. - -- This object is defined by a first shape aFShape, a - -- second shape aSShape, and a plane aPlane. - -- aPlane is the plane of reference to show and test the - -- perpendicular relation between two shapes, at least - -- one of which has a revolved surface. - returns PerpendicularRelation from AIS; - - Create (aFShape : Shape from TopoDS; - aSShape : Shape from TopoDS) - ---Purpose: Constructs an object to display constraints of - -- perpendicularity on shapes. - -- This object is defined by a first shape aFShape and a - -- second shape aSShape. - returns PerpendicularRelation from AIS; - --- -- Methods from PresentableObject - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0) - is redefined static private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard)is private; - - --- --- Computation private methods --- - - ComputeTwoFacesPerpendicular(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - ComputeTwoEdgesPerpendicular(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - -fields - - myFAttach : Pnt from gp; - mySAttach : Pnt from gp; - -end PerpendicularRelation; - - diff --git a/src/AIS/AIS_PerpendicularRelation.cxx b/src/AIS/AIS_PerpendicularRelation.cxx index b636bddc17..26610923f0 100644 --- a/src/AIS/AIS_PerpendicularRelation.cxx +++ b/src/AIS/AIS_PerpendicularRelation.cxx @@ -14,49 +14,42 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include #include - -#include -#include +#include #include - +#include +#include #include - #include - +#include #include -#include -#include +#include #include #include - +#include +#include +#include +#include +#include +#include +#include #include #include - #include - +#include +#include #include #include #include - +#include +#include #include #include #include +#include #include -#include - -#include -#include -#include -#include -#include -#include - //======================================================================= //function : Constructor //purpose : TwoEdgesPerpendicular diff --git a/src/AIS/AIS_PerpendicularRelation.hxx b/src/AIS/AIS_PerpendicularRelation.hxx new file mode 100644 index 0000000000..d0271edf7e --- /dev/null +++ b/src/AIS/AIS_PerpendicularRelation.hxx @@ -0,0 +1,106 @@ +// Created on: 1996-12-05 +// Created by: Jean-Pierre COMBE/Odile Olivier +// 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_PerpendicularRelation_HeaderFile +#define _AIS_PerpendicularRelation_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +class TopoDS_Shape; +class Geom_Plane; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; + + +class AIS_PerpendicularRelation; +DEFINE_STANDARD_HANDLE(AIS_PerpendicularRelation, AIS_Relation) + +//! A framework to display constraints of perpendicularity +//! between two or more interactive datums. These +//! datums can be edges or faces. +class AIS_PerpendicularRelation : public AIS_Relation +{ + +public: + + + //! Constructs an object to display constraints of + //! perpendicularity on shapes. + //! This object is defined by a first shape aFShape, a + //! second shape aSShape, and a plane aPlane. + //! aPlane is the plane of reference to show and test the + //! perpendicular relation between two shapes, at least + //! one of which has a revolved surface. + Standard_EXPORT AIS_PerpendicularRelation(const TopoDS_Shape& aFShape, const TopoDS_Shape& aSShape, const Handle(Geom_Plane)& aPlane); + + //! Constructs an object to display constraints of + //! perpendicularity on shapes. + //! This object is defined by a first shape aFShape and a + //! second shape aSShape. + Standard_EXPORT AIS_PerpendicularRelation(const TopoDS_Shape& aFShape, const TopoDS_Shape& aSShape); + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_PerpendicularRelation,AIS_Relation) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode); + + Standard_EXPORT void ComputeTwoFacesPerpendicular (const Handle(Prs3d_Presentation)& aPresentation); + + Standard_EXPORT void ComputeTwoEdgesPerpendicular (const Handle(Prs3d_Presentation)& aPresentation); + + gp_Pnt myFAttach; + gp_Pnt mySAttach; + + +}; + + + + + + + +#endif // _AIS_PerpendicularRelation_HeaderFile diff --git a/src/AIS/AIS_Plane.cdl b/src/AIS/AIS_Plane.cdl deleted file mode 100644 index 7ebca81cca..0000000000 --- a/src/AIS/AIS_Plane.cdl +++ /dev/null @@ -1,258 +0,0 @@ --- Created on: 1995-08-02 --- Created by: Arnaud BOUZY/Odile Olivier --- 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. - ---Modified by rob Wed 11 feb 98 : add Size Methods - - -class Plane from AIS inherits InteractiveObject from AIS - - ---Purpose: Constructs plane datums to be used in construction of - -- composite shapes. - -uses - Plane from Geom, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - NameOfColor from Quantity, - Color from Quantity, - Selection from SelectMgr, - TypeOfSensitivity from Select3D, - Pnt from gp, - Projector from Prs3d, - Transformation from Geom, - NameOfMaterial from Graphic3d, - TypeOfPlane from AIS, - Axis2Placement from Geom, - InteractiveContext from AIS, - KindOfInteractive from AIS - -is - Create(aComponent : Plane from Geom; - aCurrentMode : Boolean from Standard = Standard_False) - returns Plane from AIS; - ---Purpose: initializes the plane aComponent. If - -- the mode aCurrentMode equals true, the drawing - -- tool, "Drawer" is not initialized. - - Create(aComponent : Plane from Geom; - aCenter : Pnt from gp; - aCurrentMode : Boolean from Standard = Standard_False) - returns Plane from AIS; - --- Purpose: initializes the plane aComponent and - -- the point aCenter. If the mode aCurrentMode - -- equals true, the drawing tool, "Drawer" is not - -- initialized. aCurrentMode equals true, the drawing - -- tool, "Drawer" is not initialized. - - Create(aComponent : Plane from Geom; - aCenter : Pnt from gp; - aPmin : Pnt from gp; - aPmax : Pnt from gp; - aCurrentMode : Boolean from Standard = Standard_False) - returns Plane from AIS; - ---Purpose: initializes the plane aComponent, the - -- point aCenter, and the minimum and maximum - -- points, aPmin and aPmax. If the mode - -- aCurrentMode equals true, the drawing tool, "Drawer" is not initialized. - - Create(aComponent : Axis2Placement from Geom; - aPlaneType : TypeOfPlane from AIS; - aCurrentMode : Boolean from Standard = Standard_False) - returns Plane from AIS; - - - ---Category: Size Modifications... - - SetSize(me:mutable;aValue:Real from Standard); - ---Purpose: Same value for x and y directions - - SetSize(me:mutable;Xval,YVal:Real from Standard); - ---Purpose: Sets the size defined by the length along the X axis - -- XVal and the length along the Y axis YVal. - - UnsetSize(me:mutable) ; - - Size(me;X,Y:out Real from Standard) returns Boolean from Standard; - - HasOwnSize(me) returns Boolean from Standard; - ---C++: inline - - - - Signature(me) returns Integer from Standard is redefined; - - Type(me) returns KindOfInteractive from AIS is redefined; - - - - Component(me: mutable) returns Plane from Geom - is static; - ---Purpose: Returns the component specified in SetComponent. - ---C++: inline - ---C++: return const& - - SetComponent(me: mutable;aComponent : Plane from Geom) is static; - ---Purpose: Creates an instance of the plane aComponent. - - PlaneAttributes(me: mutable; - aComponent : out Plane from Geom; - aCenter : out Pnt from gp; - aPmin : out Pnt from gp; - aPmax : out Pnt from gp) - returns Boolean from Standard; - ---Purpose: Returns the settings for the selected plane - -- aComponent, provided in SetPlaneAttributes. - -- These include the points aCenter, aPmin, and aPmax - - SetPlaneAttributes(me: mutable; - aComponent : Plane from Geom; - aCenter : Pnt from gp; - aPmin : Pnt from gp; - aPmax : Pnt from gp) - is static; - ---Purpose: Allows you to provide settings other than default ones - -- for the selected plane. These include: center point - -- aCenter, maximum aPmax and minimum aPmin. - - Center (me) returns Pnt from gp; - ---Purpose: Returns the coordinates of the center point. - ---C++: inline - ---C++: return const& - - SetCenter (me: mutable; aCenter : Pnt from gp); - ---Purpose: - -- Provides settings for the center aCenter other than (0, 0, 0). - ---C++: inline - - SetAxis2Placement(me: mutable; - aComponent : Axis2Placement from Geom; - aPlaneType : TypeOfPlane from AIS) - is static; - ---Purpose: Allows you to provide settings for the position and - -- direction of one of the plane's axes, aComponent, in - -- 3D space. The coordinate system used is - -- right-handed, and the type of plane aPlaneType is one of: - -- - AIS_ TOPL_Unknown - -- - AIS_ TOPL_XYPlane - -- - AIS_ TOPL_XZPlane - -- - AIS_ TOPL_YZPlane}. - - Axis2Placement(me: mutable) returns Axis2Placement from Geom - is static; - ---Purpose: Returns the position of the plane's axis2 system - -- identifying the x, y, or z axis and giving the plane a - -- direction in 3D space. An axis2 system is a right-handed coordinate system. - - TypeOfPlane (me : mutable) returns TypeOfPlane from AIS; - ---Purpose: Returns the type of plane - xy, yz, xz or unknown. - ---C++: inline - - - IsXYZPlane (me : mutable) returns Boolean from Standard; - ---Purpose: Returns the type of plane - xy, yz, or xz. - ---C++: inline - - CurrentMode (me : mutable) returns Boolean from Standard; - ---Purpose: Returns the non-default current display mode set by SetCurrentMode. - ---C++: inline - - SetCurrentMode (me : mutable; aCurrentMode : Boolean from Standard ) ; - ---Purpose: - -- Allows you to provide settings for a non-default - -- current display mode. - ---C++: inline - - AcceptDisplayMode(me;aMode:Integer from Standard) returns Boolean from Standard - is redefined virtual; - ---Purpose: Returns true if the display mode selected, aMode, is valid for planes. - - SetContext(me:mutable; aCtx : InteractiveContext from AIS) is redefined; - ---Purpose: connection to default drawer implies a recomputation of Frame values. - - TypeOfSensitivity (me) returns TypeOfSensitivity from Select3D; - ---C++: inline - ---Purpose: Returns the type of sensitivity for the plane; - - SetTypeOfSensitivity (me: mutable; - theTypeOfSensitivity: TypeOfSensitivity from Select3D); - ---C++: inline - ---Purpose: Sets the type of sensitivity for the plane. - --- Methods from PresentableObject - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard = 0) - is redefined virtual private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined virtual private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection (me : mutable; - theSelection : Selection from SelectMgr; - theMode : Integer from Standard) is redefined virtual; - --- Methods from InteractiveObject - - SetColor(me :mutable; aColor : NameOfColor from Quantity) - is redefined static; - - SetColor(me :mutable; aColor : Color from Quantity) - is redefined static; - - UnsetColor(me:mutable) is redefined static; - - ComputeFrame(me: mutable) - is private; - - ComputeFields(me: mutable) - is private; - - InitDrawerAttributes(me:mutable) is private; - -fields - - myComponent : Plane from Geom; - myAx2 : Axis2Placement from Geom; - myCenter : Pnt from gp; - myPmin : Pnt from gp; - myPmax : Pnt from gp; - myCurrentMode : Boolean from Standard; - myAutomaticPosition : Boolean from Standard; - myTypeOfPlane : TypeOfPlane from AIS; - myIsXYZPlane : Boolean from Standard; - myHasOwnSize : Boolean from Standard; - myTypeOfSensitivity: TypeOfSensitivity from Select3D; - -end Plane; diff --git a/src/AIS/AIS_Plane.cxx b/src/AIS/AIS_Plane.cxx index ecadb66dd4..64fd3e1f69 100644 --- a/src/AIS/AIS_Plane.cxx +++ b/src/AIS/AIS_Plane.cxx @@ -14,46 +14,45 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include - -#include -#include +#include +#include +#include +#include +#include #include - +#include +#include +#include +#include +#include #include +#include +#include #include +#include +#include +#include +#include +#include #include #include #include -#include +#include +#include #include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - +#include #include #include #include +#include +#include #include - -#include - +#include +#include +#include #include +#include //======================================================================= //function : AIS_Plane diff --git a/src/AIS/AIS_Plane.hxx b/src/AIS/AIS_Plane.hxx new file mode 100644 index 0000000000..f1eef41cf6 --- /dev/null +++ b/src/AIS/AIS_Plane.hxx @@ -0,0 +1,218 @@ +// Created on: 1995-08-02 +// Created by: Arnaud BOUZY/Odile Olivier +// 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 _AIS_Plane_HeaderFile +#define _AIS_Plane_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Geom_Plane; +class Geom_Axis2Placement; +class gp_Pnt; +class AIS_InteractiveContext; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; +class Quantity_Color; + + +class AIS_Plane; +DEFINE_STANDARD_HANDLE(AIS_Plane, AIS_InteractiveObject) + +//! Constructs plane datums to be used in construction of +//! composite shapes. +class AIS_Plane : public AIS_InteractiveObject +{ + +public: + + + //! initializes the plane aComponent. If + //! the mode aCurrentMode equals true, the drawing + //! tool, "Drawer" is not initialized. + Standard_EXPORT AIS_Plane(const Handle(Geom_Plane)& aComponent, const Standard_Boolean aCurrentMode = Standard_False); + + //! initializes the plane aComponent and + //! the point aCenter. If the mode aCurrentMode + //! equals true, the drawing tool, "Drawer" is not + //! initialized. aCurrentMode equals true, the drawing + //! tool, "Drawer" is not initialized. + Standard_EXPORT AIS_Plane(const Handle(Geom_Plane)& aComponent, const gp_Pnt& aCenter, const Standard_Boolean aCurrentMode = Standard_False); + + //! initializes the plane aComponent, the + //! point aCenter, and the minimum and maximum + //! points, aPmin and aPmax. If the mode + //! aCurrentMode equals true, the drawing tool, "Drawer" is not initialized. + Standard_EXPORT AIS_Plane(const Handle(Geom_Plane)& aComponent, const gp_Pnt& aCenter, const gp_Pnt& aPmin, const gp_Pnt& aPmax, const Standard_Boolean aCurrentMode = Standard_False); + + Standard_EXPORT AIS_Plane(const Handle(Geom_Axis2Placement)& aComponent, const AIS_TypeOfPlane aPlaneType, const Standard_Boolean aCurrentMode = Standard_False); + + //! Same value for x and y directions + Standard_EXPORT void SetSize (const Standard_Real aValue); + + //! Sets the size defined by the length along the X axis + //! XVal and the length along the Y axis YVal. + Standard_EXPORT void SetSize (const Standard_Real Xval, const Standard_Real YVal); + + Standard_EXPORT void UnsetSize(); + + Standard_EXPORT Standard_Boolean Size (Standard_Real& X, Standard_Real& Y) const; + + Standard_Boolean HasOwnSize() const; + + Standard_EXPORT virtual Standard_Integer Signature() const Standard_OVERRIDE; + + Standard_EXPORT virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE; + + //! Returns the component specified in SetComponent. + const Handle(Geom_Plane)& Component(); + + //! Creates an instance of the plane aComponent. + Standard_EXPORT void SetComponent (const Handle(Geom_Plane)& aComponent); + + //! Returns the settings for the selected plane + //! aComponent, provided in SetPlaneAttributes. + //! These include the points aCenter, aPmin, and aPmax + Standard_EXPORT Standard_Boolean PlaneAttributes (Handle(Geom_Plane)& aComponent, gp_Pnt& aCenter, gp_Pnt& aPmin, gp_Pnt& aPmax); + + //! Allows you to provide settings other than default ones + //! for the selected plane. These include: center point + //! aCenter, maximum aPmax and minimum aPmin. + Standard_EXPORT void SetPlaneAttributes (const Handle(Geom_Plane)& aComponent, const gp_Pnt& aCenter, const gp_Pnt& aPmin, const gp_Pnt& aPmax); + + //! Returns the coordinates of the center point. + const gp_Pnt& Center() const; + + + //! Provides settings for the center aCenter other than (0, 0, 0). + void SetCenter (const gp_Pnt& aCenter); + + //! Allows you to provide settings for the position and + //! direction of one of the plane's axes, aComponent, in + //! 3D space. The coordinate system used is + //! right-handed, and the type of plane aPlaneType is one of: + //! - AIS_ TOPL_Unknown + //! - AIS_ TOPL_XYPlane + //! - AIS_ TOPL_XZPlane + //! - AIS_ TOPL_YZPlane}. + Standard_EXPORT void SetAxis2Placement (const Handle(Geom_Axis2Placement)& aComponent, const AIS_TypeOfPlane aPlaneType); + + //! Returns the position of the plane's axis2 system + //! identifying the x, y, or z axis and giving the plane a + //! direction in 3D space. An axis2 system is a right-handed coordinate system. + Standard_EXPORT Handle(Geom_Axis2Placement) Axis2Placement(); + + //! Returns the type of plane - xy, yz, xz or unknown. + AIS_TypeOfPlane TypeOfPlane(); + + //! Returns the type of plane - xy, yz, or xz. + Standard_Boolean IsXYZPlane(); + + //! Returns the non-default current display mode set by SetCurrentMode. + Standard_Boolean CurrentMode(); + + + //! Allows you to provide settings for a non-default + //! current display mode. + void SetCurrentMode (const Standard_Boolean aCurrentMode); + + //! Returns true if the display mode selected, aMode, is valid for planes. + Standard_EXPORT virtual Standard_Boolean AcceptDisplayMode (const Standard_Integer aMode) const Standard_OVERRIDE; + + //! connection to default drawer implies a recomputation of Frame values. + Standard_EXPORT virtual void SetContext (const Handle(AIS_InteractiveContext)& aCtx) Standard_OVERRIDE; + + //! Returns the type of sensitivity for the plane; + Select3D_TypeOfSensitivity TypeOfSensitivity() const; + + //! Sets the type of sensitivity for the plane. + void SetTypeOfSensitivity (const Select3D_TypeOfSensitivity& theTypeOfSensitivity); + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& theSelection, const Standard_Integer theMode) Standard_OVERRIDE; + + Standard_EXPORT void SetColor (const Quantity_NameOfColor aColor) Standard_OVERRIDE; + + Standard_EXPORT void SetColor (const Quantity_Color& aColor) Standard_OVERRIDE; + + Standard_EXPORT void UnsetColor() Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_Plane,AIS_InteractiveObject) + +protected: + + + + +private: + + + Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeFrame(); + + Standard_EXPORT void ComputeFields(); + + Standard_EXPORT void InitDrawerAttributes(); + + Handle(Geom_Plane) myComponent; + Handle(Geom_Axis2Placement) myAx2; + gp_Pnt myCenter; + gp_Pnt myPmin; + gp_Pnt myPmax; + Standard_Boolean myCurrentMode; + Standard_Boolean myAutomaticPosition; + AIS_TypeOfPlane myTypeOfPlane; + Standard_Boolean myIsXYZPlane; + Standard_Boolean myHasOwnSize; + Select3D_TypeOfSensitivity myTypeOfSensitivity; + + +}; + + +#include + + + + + +#endif // _AIS_Plane_HeaderFile diff --git a/src/AIS/AIS_PlaneTrihedron.cdl b/src/AIS/AIS_PlaneTrihedron.cdl deleted file mode 100644 index 9c13a78333..0000000000 --- a/src/AIS/AIS_PlaneTrihedron.cdl +++ /dev/null @@ -1,149 +0,0 @@ --- Created on: 1996-12-13 --- Created by: Jean-Pierre COMBE/Odile Olivier --- 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. - -class PlaneTrihedron from AIS inherits InteractiveObject from AIS - - ---Purpose: To construct a selectable 2d axis system in a 3d - -- drawing. This can be placed anywhere in the 3d - -- system, and provides a coordinate system for - -- drawing curves and shapes in a plane. - -- There are 3 selection modes: - -- - mode 0 selection of the whole plane "trihedron" - -- - mode 1 selection of the origin of the plane "trihedron" - -- - mode 2 selection of the axes. - -- Warning - -- For the presentation of planes and trihedra, the - -- millimetre is default unit of length, and 100 the default - -- value for the representation of the axes. If you modify - -- these dimensions, you must temporarily recover the - -- Drawer object. From inside it, take the Aspects in - -- which the values for length are stocked, for example, - -- PlaneAspect for planes and FirstAxisAspect for - -- trihedra. Change these values and recalculate the presentation. - - -uses - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - NameOfColor from Quantity, - Color from Quantity, - Selection from SelectMgr, - Projector from Prs3d, - Transformation from Geom, - Drawer from Prs3d, - Line from AIS, - Point from AIS, - Plane from Geom, - KindOfInteractive from AIS, - AsciiString from TCollection - -is - - Create(aPlane : Plane from Geom) - returns PlaneTrihedron from AIS; - ---Purpose: Initializes the plane aPlane. The plane trihedron is - -- constructed from this and an axis. - - Component(me: mutable) returns Plane from Geom - is static; - ---Purpose: Returns the component specified in SetComponent. - - SetComponent(me: mutable;aPlane : Plane from Geom) - is static; - ---Purpose: Creates an instance of the component object aPlane. - - XAxis (me) returns Line from AIS; - ---Purpose : Returns the "XAxis". - - YAxis (me) returns Line from AIS; - ---Purpose : Returns the "YAxis". - - Position (me) returns Point from AIS; - ---Purpose : Returns the point of origin of the plane trihedron. - - SetLength(me : mutable; - theLength : Real from Standard); - ---Purpose: Sets the length of the X and Y axes. - - GetLength(me) - ---Purpose: Returns the length of X and Y axes. - returns Real from Standard; - - AcceptDisplayMode(me;aMode:Integer from Standard) returns Boolean from Standard is redefined static; - ---Purpose: Returns true if the display mode selected, aMode, is valid. - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard = 0) - is redefined protected; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard)is private; - --- Methods from InteractiveObject - - Signature(me) returns Integer from Standard is redefined; - ---C++: inline - - Type(me) returns KindOfInteractive from AIS is redefined; - ---C++: inline - ---Purpose: Returns datum as the type of Interactive Object. - - SetColor(me :mutable; aColor : NameOfColor from Quantity) - is redefined static ; - ---Purpose: Allows you to provide settings for the color aColor. - - SetColor(me :mutable; aColor : Color from Quantity) - is redefined static ; - - SetXLabel(me : mutable; aLabel : AsciiString from TCollection); - ---C++: inline - - SetYLabel(me : mutable; aLabel : AsciiString from TCollection); - ---C++: inline - - -fields - - myPlane : Plane from Geom; - myShapes : InteractiveObject from AIS [3]; - myXLabel : AsciiString from TCollection; - myYLabel : AsciiString from TCollection; - -end PlaneTrihedron from AIS; diff --git a/src/AIS/AIS_PlaneTrihedron.cxx b/src/AIS/AIS_PlaneTrihedron.cxx index ac9583c065..469fb70b40 100644 --- a/src/AIS/AIS_PlaneTrihedron.cxx +++ b/src/AIS/AIS_PlaneTrihedron.cxx @@ -18,34 +18,41 @@ // + (-1) selection mode token into account // (SAMTECH specific) -#include +#include #include -#include - -#include - +#include +#include +#include #include -#include -#include -#include -#include +#include #include #include #include +#include +#include +#include #include #include #include #include -#include -#include -#include +#include #include -#include #include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include void ExtremityPoints(TColgp_Array1OfPnt& PP,const Handle(Geom_Plane)& myPlane,const Handle(Prs3d_Drawer)& myDrawer); diff --git a/src/AIS/AIS_PlaneTrihedron.hxx b/src/AIS/AIS_PlaneTrihedron.hxx new file mode 100644 index 0000000000..a7182d55c7 --- /dev/null +++ b/src/AIS/AIS_PlaneTrihedron.hxx @@ -0,0 +1,154 @@ +// Created on: 1996-12-13 +// Created by: Jean-Pierre COMBE/Odile Olivier +// 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_PlaneTrihedron_HeaderFile +#define _AIS_PlaneTrihedron_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Geom_Plane; +class AIS_InteractiveObject; +class AIS_Line; +class AIS_Point; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; +class Quantity_Color; +class TCollection_AsciiString; + + +class AIS_PlaneTrihedron; +DEFINE_STANDARD_HANDLE(AIS_PlaneTrihedron, AIS_InteractiveObject) + +//! To construct a selectable 2d axis system in a 3d +//! drawing. This can be placed anywhere in the 3d +//! system, and provides a coordinate system for +//! drawing curves and shapes in a plane. +//! There are 3 selection modes: +//! - mode 0 selection of the whole plane "trihedron" +//! - mode 1 selection of the origin of the plane "trihedron" +//! - mode 2 selection of the axes. +//! Warning +//! For the presentation of planes and trihedra, the +//! millimetre is default unit of length, and 100 the default +//! value for the representation of the axes. If you modify +//! these dimensions, you must temporarily recover the +//! Drawer object. From inside it, take the Aspects in +//! which the values for length are stocked, for example, +//! PlaneAspect for planes and FirstAxisAspect for +//! trihedra. Change these values and recalculate the presentation. +class AIS_PlaneTrihedron : public AIS_InteractiveObject +{ + +public: + + + //! Initializes the plane aPlane. The plane trihedron is + //! constructed from this and an axis. + Standard_EXPORT AIS_PlaneTrihedron(const Handle(Geom_Plane)& aPlane); + + //! Returns the component specified in SetComponent. + Standard_EXPORT Handle(Geom_Plane) Component(); + + //! Creates an instance of the component object aPlane. + Standard_EXPORT void SetComponent (const Handle(Geom_Plane)& aPlane); + + //! Returns the "XAxis". + Standard_EXPORT Handle(AIS_Line) XAxis() const; + + //! Returns the "YAxis". + Standard_EXPORT Handle(AIS_Line) YAxis() const; + + //! Returns the point of origin of the plane trihedron. + Standard_EXPORT Handle(AIS_Point) Position() const; + + //! Sets the length of the X and Y axes. + Standard_EXPORT void SetLength (const Standard_Real theLength); + + //! Returns the length of X and Y axes. + Standard_EXPORT Standard_Real GetLength() const; + + //! Returns true if the display mode selected, aMode, is valid. + Standard_EXPORT Standard_Boolean AcceptDisplayMode (const Standard_Integer aMode) const Standard_OVERRIDE; + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + virtual Standard_Integer Signature() const Standard_OVERRIDE; + + //! Returns datum as the type of Interactive Object. + virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE; + + //! Allows you to provide settings for the color aColor. + Standard_EXPORT void SetColor (const Quantity_NameOfColor aColor) Standard_OVERRIDE; + + Standard_EXPORT void SetColor (const Quantity_Color& aColor) Standard_OVERRIDE; + + void SetXLabel (const TCollection_AsciiString& aLabel); + + void SetYLabel (const TCollection_AsciiString& aLabel); + + + + + DEFINE_STANDARD_RTTI(AIS_PlaneTrihedron,AIS_InteractiveObject) + +protected: + + + Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + + +private: + + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode); + + Handle(Geom_Plane) myPlane; + Handle(AIS_InteractiveObject) myShapes[3]; + TCollection_AsciiString myXLabel; + TCollection_AsciiString myYLabel; + + +}; + + +#include + + + + + +#endif // _AIS_PlaneTrihedron_HeaderFile diff --git a/src/AIS/AIS_Point.cdl b/src/AIS/AIS_Point.cdl deleted file mode 100644 index bb4a4f6b75..0000000000 --- a/src/AIS/AIS_Point.cdl +++ /dev/null @@ -1,124 +0,0 @@ --- Created on: 1995-08-09 --- Created by: Arnaud BOUZY --- 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. - -class Point from AIS inherits InteractiveObject from AIS - - ---Purpose: Constructs point datums to be used in construction of - -- composite shapes. The datum is displayed as the plus marker +. - -uses - Point from Geom, - TypeOfMarker from Aspect, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - NameOfColor from Quantity, - Color from Quantity, - Selection from SelectMgr, - Projector from Prs3d, - Transformation from Geom, - Vertex from TopoDS, - KindOfInteractive from AIS - - -is - Create(aComponent : Point from Geom) - returns Point from AIS; - ---Purpose: - -- Initializes the point aComponent from which the point - -- datum will be built. - - Signature(me) returns Integer from Standard is redefined; - ---Purpose: Returns index 1, the default index for a point. - ---C++: inline - - Type(me) returns KindOfInteractive from AIS is redefined; - ---Purpose: Indicates that a point is a datum. - ---C++: inline - - Component(me: mutable) returns Point from Geom - is static; - ---Purpose: Returns the component specified in SetComponent. - SetComponent(me: mutable;aComponent:Point from Geom ) - is static; - ---Purpose: Constructs an instance of the point aComponent. - AcceptDisplayMode(me;aMode:Integer from Standard) returns Boolean from Standard is redefined static; - ---Purpose: Returns true if the display mode selected is valid for point datums. - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard = 0) - is redefined virtual protected; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard )is private; - --- Methods from InteractiveObject - - SetColor(me :mutable; aColor : NameOfColor from Quantity) - is redefined static; - ---Purpose: Allows you to provide settings for the cp;pr aColor. - SetColor(me :mutable; aColor : Color from Quantity) - is redefined static; - - UnsetColor(me:mutable) is redefined static; - ---Purpose: Allows you to remove color settings. - SetMarker(me:mutable; aType : TypeOfMarker from Aspect); - ---Purpose: Allows you to provide settings for a marker. These include - -- - type of marker, - -- - marker color, - -- - scale factor. - - UnsetMarker(me:mutable); - ---Purpose: Removes the marker settings. - HasMarker(me) returns Boolean from Standard; - ---Purpose: Returns true if the point datum has a marker. - ---C++: inline - - Vertex(me) returns Vertex from TopoDS; - ---Purpose: Converts a point into a vertex. - UpdatePointValues(me:mutable) is private; - ---Level: Internal - - - -fields - - myComponent : Point from Geom; - myHasTOM : Boolean from Standard; - myTOM : TypeOfMarker from Aspect; -end Point; diff --git a/src/AIS/AIS_Point.cxx b/src/AIS/AIS_Point.cxx index 64f0a42b18..f974357849 100644 --- a/src/AIS/AIS_Point.cxx +++ b/src/AIS/AIS_Point.cxx @@ -14,23 +14,29 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include #include +#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include +#include +#include #include -#include -#include -#include -#include #include +#include +#include +#include #include -#include -#include +#include -#include //======================================================================= //function : AIS_Point //purpose : diff --git a/src/AIS/AIS_Point.hxx b/src/AIS/AIS_Point.hxx new file mode 100644 index 0000000000..db56f97295 --- /dev/null +++ b/src/AIS/AIS_Point.hxx @@ -0,0 +1,137 @@ +// Created on: 1995-08-09 +// Created by: Arnaud BOUZY +// 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 _AIS_Point_HeaderFile +#define _AIS_Point_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class Geom_Point; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; +class Quantity_Color; +class TopoDS_Vertex; + + +class AIS_Point; +DEFINE_STANDARD_HANDLE(AIS_Point, AIS_InteractiveObject) + +//! Constructs point datums to be used in construction of +//! composite shapes. The datum is displayed as the plus marker +. +class AIS_Point : public AIS_InteractiveObject +{ + +public: + + + + //! Initializes the point aComponent from which the point + //! datum will be built. + Standard_EXPORT AIS_Point(const Handle(Geom_Point)& aComponent); + + //! Returns index 1, the default index for a point. + virtual Standard_Integer Signature() const Standard_OVERRIDE; + + //! Indicates that a point is a datum. + virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE; + + //! Returns the component specified in SetComponent. + Standard_EXPORT Handle(Geom_Point) Component(); + + //! Constructs an instance of the point aComponent. + Standard_EXPORT void SetComponent (const Handle(Geom_Point)& aComponent); + + //! Returns true if the display mode selected is valid for point datums. + Standard_EXPORT Standard_Boolean AcceptDisplayMode (const Standard_Integer aMode) const Standard_OVERRIDE; + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + //! Allows you to provide settings for the cp;pr aColor. + Standard_EXPORT void SetColor (const Quantity_NameOfColor aColor) Standard_OVERRIDE; + + Standard_EXPORT void SetColor (const Quantity_Color& aColor) Standard_OVERRIDE; + + //! Allows you to remove color settings. + Standard_EXPORT void UnsetColor() Standard_OVERRIDE; + + //! Allows you to provide settings for a marker. These include + //! - type of marker, + //! - marker color, + //! - scale factor. + Standard_EXPORT void SetMarker (const Aspect_TypeOfMarker aType); + + //! Removes the marker settings. + Standard_EXPORT void UnsetMarker(); + + //! Returns true if the point datum has a marker. + Standard_Boolean HasMarker() const; + + //! Converts a point into a vertex. + Standard_EXPORT TopoDS_Vertex Vertex() const; + + + + + DEFINE_STANDARD_RTTI(AIS_Point,AIS_InteractiveObject) + +protected: + + + Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + + +private: + + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode); + + Standard_EXPORT void UpdatePointValues(); + + Handle(Geom_Point) myComponent; + Standard_Boolean myHasTOM; + Aspect_TypeOfMarker myTOM; + + +}; + + +#include + + + + + +#endif // _AIS_Point_HeaderFile diff --git a/src/AIS/AIS_Relation.cdl b/src/AIS/AIS_Relation.cdl deleted file mode 100644 index a57c110e77..0000000000 --- a/src/AIS/AIS_Relation.cdl +++ /dev/null @@ -1,286 +0,0 @@ --- Created on: 1997-02-27 --- Created by: Odile Olivier --- 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. - -deferred class Relation from AIS inherits InteractiveObject from AIS - - ---Purpose: One of the four types of interactive object in - -- AIS,comprising dimensions and constraints. Serves - -- as the abstract class for the seven relation classes as - -- well as the seven dimension classes. - -- The statuses available for relations between shapes are as follows: - -- - 0 - there is no connection to a shape; - -- - 1 - there is a connection to the first shape; - -- - 2 - there is a connection to the second shape. - -- The connection takes the form of an edge between the two shapes. - -uses - TypeOfPresentation3d from PrsMgr, - Shape from TopoDS, - Edge from TopoDS, - Vertex from TopoDS, - Pnt from gp, - ExtendedString from TCollection, - Plane from Geom, - ArrowSide from DsgPrs, - KindOfDimension from AIS, - Presentation from Prs3d, - Curve from Geom, - NameOfColor from Quantity, - Color from Quantity, - TypeOfLine from Aspect, - TypeOfMarker from Aspect, - KindOfInteractive from AIS, - - Pln from gp, - Surface from Geom, - KindOfSurface from AIS, - Box from Bnd -is - Initialize(aTypeOfPresentation3d: TypeOfPresentation3d from PrsMgr = PrsMgr_TOP_AllView) ; - - SetColor(me :mutable; aColor : NameOfColor from Quantity) - is redefined static; - ---Purpose: Allows you to provide settings for the color aColor - -- of the lines representing the relation between the two shapes. - - SetColor(me :mutable; aColor : Color from Quantity) - is redefined static; - - UnsetColor(me:mutable) - is redefined static; - ---Purpose: Allows you to remove settings for the color of the - -- lines representing the relation between the two shapes. - - Type(me) returns KindOfInteractive from AIS is redefined; - ---C++: inline - - KindOfDimension(me) returns KindOfDimension from AIS is virtual; - ---Purpose: Indicates that the type of dimension is unknown. - - IsMovable(me) returns Boolean from Standard is virtual; - ---Purpose: Returns true if the interactive object is movable. - - FirstShape(me) returns Shape from TopoDS - is static; - ---C++: return const & - ---C++: inline - - SetFirstShape(me: mutable;aFShape : Shape from TopoDS) - is virtual; - - SecondShape(me) returns Shape from TopoDS - is static; - ---Purpose: Returns the second shape. - ---C++: inline - ---C++: return const & - - SetSecondShape(me: mutable;aSShape : Shape from TopoDS) - is virtual; - --- Purpose: Allows you to identify the second shape aSShape - -- relative to the first. - - SetBndBox( me: mutable; Xmin, Ymin, Zmin, Xmax, Ymax, Zmax : Real from Standard ); - ---C++: inline - - UnsetBndBox( me: mutable ); - ---C++: inline - - Plane(me) returns any Plane from Geom - is static; - ---Purpose: Returns the plane. - ---C++: inline - ---C++: return const & - - SetPlane(me: mutable;aPlane : Plane from Geom) - is static; - ---Purpose: - -- Allows you to set the plane aPlane. This is used to - -- define relations and dimensions in several daughter classes. - ---C++: inline - - Value(me) returns Real from Standard - is static; - ---Purpose: Returns the value of each object in the relation. - ---C++: inline - - SetValue(me: mutable;aVal : Real from Standard) - is static; - ---Purpose: Allows you to provide settings for the value aVal for - -- each object in the relation. - ---C++: inline - - Position(me) returns Pnt from gp - is static; - ---Purpose: Returns the position set using SetPosition. - ---C++: inline - ---C++: return const & - - SetPosition(me: mutable;aPosition: Pnt from gp) - is static; - ---Purpose: - -- Allows you to provide the objects in the relation with - -- settings for a non-default position. - ---C++: inline - - Text(me) returns ExtendedString from TCollection - is static; - ---Purpose: Returns settings for text aspect. - ---C++: inline - ---C++: return const & - - SetText(me: mutable;aText:ExtendedString from TCollection) - is static; - ---Purpose: Allows you to provide the settings aText for text aspect. - ---C++: inline - - ArrowSize (me) returns Real from Standard - is static; - ---Purpose: - -- Returns the value for the size of the arrow identifying - -- the relation between the two shapes. - ---C++: inline - - SetArrowSize(me: mutable;anArrowSize: Real from Standard) - is static; - ---C++: inline - ---Purpose: - -- Allows you to provide settings for the size of the - -- arrow anArrowsize identifying the relation between the two shapes. - - SymbolPrs (me) returns ArrowSide from DsgPrs - is static; - ---C++: inline - ---Purpose: - -- Returns the value of the symbol presentation. This will be one of: - -- - AS_NONE - none - -- - AS_FIRSTAR - first arrow - -- - AS_LASTAR - last arrow - -- - AS_BOTHAR - both arrows - -- - AS_FIRSTPT - first point - -- - AS_LASTPT - last point - -- - AS_BOTHPT - both points - -- - AS_FIRSTAR_LASTPT - first arrow, last point - -- - AS_FIRSTPT_LASTAR - first point, last arrow - - SetSymbolPrs(me: mutable;aSymbolPrs: ArrowSide from DsgPrs) - is static; - ---C++: inline - ---Purpose: - -- Allows you to provide settings for the symbol presentation. - - SetExtShape(me:mutable; aIndex : Integer from Standard); - ---C++: inline - ---Purpose: - -- Allows you to set the status of the extension shape by - -- the index aIndex. - -- The status will be one of the following: - -- - 0 - there is no connection to a shape; - -- - 1 - there is a connection to the first shape; - -- - 2 - there is a connection to the second shape. - - ExtShape(me) - returns Integer from Standard; - ---Purpose: - -- Returns the status index of the extension shape. - ---C++: inline - - AcceptDisplayMode(me;aMode:Integer from Standard) returns Boolean from Standard is redefined virtual; - ---Purpose: - -- Returns true if the display mode aMode is accepted - -- for the Interactive Objects in the relation. - -- ComputeProjPresentation(me; - -- aPres : Presentation from Prs3d; - -- Curve1 : Curve from Geom; - -- Curve2 : Curve from Geom; - -- FirstP1 : Pnt from gp; - -- LastP1 : Pnt from gp; - -- FirstP2 : Pnt from gp; - -- LastP2 : Pnt from gp; - -- aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE; - -- aWidth : Real from Standard = 2; - -- aProjTOL : TypeOfLine from Aspect = Aspect_TOL_DASH; - -- aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT) - --is protected; - - ComputeProjEdgePresentation(me; - aPres : Presentation from Prs3d; - anEdge : Edge from TopoDS; - ProjCurve: Curve from Geom; - FirstP : Pnt from gp; - LastP : Pnt from gp; - aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE; - aWidth : Real from Standard = 2; - aProjTOL : TypeOfLine from Aspect = Aspect_TOL_DASH; - aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT) - is protected; - ---Purpose: Calculates the presentation aPres of the the edge - -- anEdge and the curve it defines, ProjCurve. The later - -- is also specified by the first point FirstP and the last point LastP. - -- The presentation includes settings for color aColor, - -- type - aProjTOL and aCallTOL - and width of line, aWidth. - - ComputeProjVertexPresentation(me; - aPres : Presentation from Prs3d; - aVertex : Vertex from TopoDS; - ProjPoint: Pnt from gp; - aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE; - aWidth : Real from Standard = 2; - aProjTOM : TypeOfMarker from Aspect = Aspect_TOM_PLUS; - aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT) - is protected; - - ---Purpose: Calculates the presentation aPres of the the vertex - -- aVertex and the point it defines, ProjPoint. - -- The presentation includes settings for color aColor, - -- type - aProjTOM and aCallTOL - and width of line, aWidth. - - SetAutomaticPosition ( me : mutable ; aStatus : Boolean from Standard ); - ---C++: inline - - AutomaticPosition ( me ) - returns Boolean from Standard ; - ---C++: inline - -fields - - myFShape : Shape from TopoDS is protected; - mySShape : Shape from TopoDS is protected; - myPlane : Plane from Geom is protected; - myVal : Real from Standard is protected; - myPosition : Pnt from gp is protected; - myText : ExtendedString from TCollection is protected; - myArrowSize: Real from Standard is protected; - myAutomaticPosition : Boolean from Standard is protected; - mySymbolPrs: ArrowSide from DsgPrs is protected; - myExtShape : Integer from Standard is protected; - ---purpose: (0 no attachment,1 attachment with first shape, 2 attachment with second shape) - - myFirstPlane : Pln from gp is protected; - mySecondPlane : Pln from gp is protected; - myFirstBasisSurf : Surface from Geom is protected; - mySecondBasisSurf : Surface from Geom is protected; - - myFirstSurfType : KindOfSurface from AIS is protected; - mySecondSurfType : KindOfSurface from AIS is protected; - - myFirstOffset : Real from Standard is protected; - mySecondOffset : Real from Standard is protected; - - myBndBox : Box from Bnd is protected; - myIsSetBndBox : Boolean from Standard is protected; - myArrowSizeIsDefined: Boolean from Standard is protected; - -end Relation; diff --git a/src/AIS/AIS_Relation.cxx b/src/AIS/AIS_Relation.cxx index 2b771b4c72..a25b5f2d04 100644 --- a/src/AIS/AIS_Relation.cxx +++ b/src/AIS/AIS_Relation.cxx @@ -14,38 +14,41 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include - -#include +#include #include -#include +#include #include +#include +#include +#include +#include #include +#include #include -#include - +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include #include +#include #include - -#include +#include +#include #include - +#include +#include +#include #include #include -#include -#include -#include -#include -#include - - -#include -#include +#include +#include //======================================================================= //function : AIS_Relation diff --git a/src/AIS/AIS_Relation.hxx b/src/AIS/AIS_Relation.hxx new file mode 100644 index 0000000000..28e7e7e043 --- /dev/null +++ b/src/AIS/AIS_Relation.hxx @@ -0,0 +1,253 @@ +// Created on: 1997-02-27 +// Created by: Odile Olivier +// 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_Relation_HeaderFile +#define _AIS_Relation_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Geom_Plane; +class Geom_Surface; +class Quantity_Color; +class TopoDS_Shape; +class gp_Pnt; +class TCollection_ExtendedString; +class Prs3d_Presentation; +class TopoDS_Edge; +class Geom_Curve; +class TopoDS_Vertex; + + +class AIS_Relation; +DEFINE_STANDARD_HANDLE(AIS_Relation, AIS_InteractiveObject) + +//! One of the four types of interactive object in +//! AIS,comprising dimensions and constraints. Serves +//! as the abstract class for the seven relation classes as +//! well as the seven dimension classes. +//! The statuses available for relations between shapes are as follows: +//! - 0 - there is no connection to a shape; +//! - 1 - there is a connection to the first shape; +//! - 2 - there is a connection to the second shape. +//! The connection takes the form of an edge between the two shapes. +class AIS_Relation : public AIS_InteractiveObject +{ + +public: + + + //! Allows you to provide settings for the color aColor + //! of the lines representing the relation between the two shapes. + Standard_EXPORT void SetColor (const Quantity_NameOfColor aColor) Standard_OVERRIDE; + + Standard_EXPORT void SetColor (const Quantity_Color& aColor) Standard_OVERRIDE; + + //! Allows you to remove settings for the color of the + //! lines representing the relation between the two shapes. + Standard_EXPORT void UnsetColor() Standard_OVERRIDE; + + virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE; + + //! Indicates that the type of dimension is unknown. + Standard_EXPORT virtual AIS_KindOfDimension KindOfDimension() const; + + //! Returns true if the interactive object is movable. + Standard_EXPORT virtual Standard_Boolean IsMovable() const; + + const TopoDS_Shape& FirstShape() const; + + Standard_EXPORT virtual void SetFirstShape (const TopoDS_Shape& aFShape); + + //! Returns the second shape. + const TopoDS_Shape& SecondShape() const; + + //! Allows you to identify the second shape aSShape + //! relative to the first. + Standard_EXPORT virtual void SetSecondShape (const TopoDS_Shape& aSShape); + + void SetBndBox (const Standard_Real Xmin, const Standard_Real Ymin, const Standard_Real Zmin, const Standard_Real Xmax, const Standard_Real Ymax, const Standard_Real Zmax); + + void UnsetBndBox(); + + //! Returns the plane. + const Handle(Geom_Plane)& Plane() const; + + + //! Allows you to set the plane aPlane. This is used to + //! define relations and dimensions in several daughter classes. + void SetPlane (const Handle(Geom_Plane)& aPlane); + + //! Returns the value of each object in the relation. + Standard_Real Value() const; + + //! Allows you to provide settings for the value aVal for + //! each object in the relation. + void SetValue (const Standard_Real aVal); + + //! Returns the position set using SetPosition. + const gp_Pnt& Position() const; + + + //! Allows you to provide the objects in the relation with + //! settings for a non-default position. + void SetPosition (const gp_Pnt& aPosition); + + //! Returns settings for text aspect. + const TCollection_ExtendedString& Text() const; + + //! Allows you to provide the settings aText for text aspect. + void SetText (const TCollection_ExtendedString& aText); + + + //! Returns the value for the size of the arrow identifying + //! the relation between the two shapes. + Standard_Real ArrowSize() const; + + + //! Allows you to provide settings for the size of the + //! arrow anArrowsize identifying the relation between the two shapes. + void SetArrowSize (const Standard_Real anArrowSize); + + + //! Returns the value of the symbol presentation. This will be one of: + //! - AS_NONE - none + //! - AS_FIRSTAR - first arrow + //! - AS_LASTAR - last arrow + //! - AS_BOTHAR - both arrows + //! - AS_FIRSTPT - first point + //! - AS_LASTPT - last point + //! - AS_BOTHPT - both points + //! - AS_FIRSTAR_LASTPT - first arrow, last point + //! - AS_FIRSTPT_LASTAR - first point, last arrow + DsgPrs_ArrowSide SymbolPrs() const; + + + //! Allows you to provide settings for the symbol presentation. + void SetSymbolPrs (const DsgPrs_ArrowSide aSymbolPrs); + + + //! Allows you to set the status of the extension shape by + //! the index aIndex. + //! The status will be one of the following: + //! - 0 - there is no connection to a shape; + //! - 1 - there is a connection to the first shape; + //! - 2 - there is a connection to the second shape. + void SetExtShape (const Standard_Integer aIndex); + + + //! Returns the status index of the extension shape. + Standard_Integer ExtShape() const; + + + //! Returns true if the display mode aMode is accepted + //! for the Interactive Objects in the relation. + //! ComputeProjPresentation(me; + //! aPres : Presentation from Prs3d; + //! Curve1 : Curve from Geom; + //! Curve2 : Curve from Geom; + //! FirstP1 : Pnt from gp; + //! LastP1 : Pnt from gp; + //! FirstP2 : Pnt from gp; + //! LastP2 : Pnt from gp; + //! aColor : NameOfColor from Quantity = Quantity_NOC_PURPLE; + //! aWidth : Real from Standard = 2; + //! aProjTOL : TypeOfLine from Aspect = Aspect_TOL_DASH; + //! aCallTOL : TypeOfLine from Aspect = Aspect_TOL_DOT) + Standard_EXPORT virtual Standard_Boolean AcceptDisplayMode (const Standard_Integer aMode) const Standard_OVERRIDE; + + void SetAutomaticPosition (const Standard_Boolean aStatus); + + Standard_Boolean AutomaticPosition() const; + + + + + DEFINE_STANDARD_RTTI(AIS_Relation,AIS_InteractiveObject) + +protected: + + + Standard_EXPORT AIS_Relation(const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d = PrsMgr_TOP_AllView); + + //! Calculates the presentation aPres of the the edge + //! anEdge and the curve it defines, ProjCurve. The later + //! is also specified by the first point FirstP and the last point LastP. + //! The presentation includes settings for color aColor, + //! type - aProjTOL and aCallTOL - and width of line, aWidth. + Standard_EXPORT void ComputeProjEdgePresentation (const Handle(Prs3d_Presentation)& aPres, const TopoDS_Edge& anEdge, const Handle(Geom_Curve)& ProjCurve, const gp_Pnt& FirstP, const gp_Pnt& LastP, const Quantity_NameOfColor aColor = Quantity_NOC_PURPLE, const Standard_Real aWidth = 2, const Aspect_TypeOfLine aProjTOL = Aspect_TOL_DASH, const Aspect_TypeOfLine aCallTOL = Aspect_TOL_DOT) const; + + //! Calculates the presentation aPres of the the vertex + //! aVertex and the point it defines, ProjPoint. + //! The presentation includes settings for color aColor, + //! type - aProjTOM and aCallTOL - and width of line, aWidth. + Standard_EXPORT void ComputeProjVertexPresentation (const Handle(Prs3d_Presentation)& aPres, const TopoDS_Vertex& aVertex, const gp_Pnt& ProjPoint, const Quantity_NameOfColor aColor = Quantity_NOC_PURPLE, const Standard_Real aWidth = 2, const Aspect_TypeOfMarker aProjTOM = Aspect_TOM_PLUS, const Aspect_TypeOfLine aCallTOL = Aspect_TOL_DOT) const; + + TopoDS_Shape myFShape; + TopoDS_Shape mySShape; + Handle(Geom_Plane) myPlane; + Standard_Real myVal; + gp_Pnt myPosition; + TCollection_ExtendedString myText; + Standard_Real myArrowSize; + Standard_Boolean myAutomaticPosition; + DsgPrs_ArrowSide mySymbolPrs; + Standard_Integer myExtShape; + gp_Pln myFirstPlane; + gp_Pln mySecondPlane; + Handle(Geom_Surface) myFirstBasisSurf; + Handle(Geom_Surface) mySecondBasisSurf; + AIS_KindOfSurface myFirstSurfType; + AIS_KindOfSurface mySecondSurfType; + Standard_Real myFirstOffset; + Standard_Real mySecondOffset; + Bnd_Box myBndBox; + Standard_Boolean myIsSetBndBox; + Standard_Boolean myArrowSizeIsDefined; + + +private: + + + + +}; + + +#include + + + + + +#endif // _AIS_Relation_HeaderFile diff --git a/src/AIS/AIS_SelectStatus.hxx b/src/AIS/AIS_SelectStatus.hxx new file mode 100644 index 0000000000..085fdeabe9 --- /dev/null +++ b/src/AIS/AIS_SelectStatus.hxx @@ -0,0 +1,28 @@ +// Created on: 1996-12-11 +// 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_SelectStatus_HeaderFile +#define _AIS_SelectStatus_HeaderFile + + +enum AIS_SelectStatus +{ +AIS_SS_Added, +AIS_SS_Removed, +AIS_SS_NotDone +}; + +#endif // _AIS_SelectStatus_HeaderFile diff --git a/src/AIS/AIS_Selection.cdl b/src/AIS/AIS_Selection.cdl deleted file mode 100644 index eb5dc5828f..0000000000 --- a/src/AIS/AIS_Selection.cdl +++ /dev/null @@ -1,160 +0,0 @@ --- Created on: 1995-03-21 --- 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. - --- Modified by rob Sep 98 : a) Replace List by HArray1 - --- SAV : 18/03/02 OCC189 - array was replaced with list - --- san : 18/04/03 USE_MAP - additional datamap is used to speed up access --- to certain owners in list - -class Selection from AIS inherits TShared from MMgt - -uses --- SAV : OCC189 HArray1OfTransient from TColStd, - AsciiString from TCollection, - SelectStatus from AIS, --- san : USE_MAP --- DataMapOfTransientListIteratorOfListOfTransient from AIS - NListTransient from AIS, - NListIteratorOfListTransient from AIS, - NDataMapOfTransientIteratorOfListTransient from AIS -raises NoSuchObject,MultiplyDefined from Standard,TypeMismatch from Standard - -is - - Create(aName: CString from Standard) - returns Selection from AIS; - ---Purpose: creates a new selection and make it current in the session. - -- the selection will be accessible later through its name - -- to make it again current. - -- - -- Note that if a session has been created, a session with - -- the name "default" is created. - -- - -- In this case, the is always a current selection which - -- is the last one created until SetCurrentSelection is used. - -- - -- The class methods deals with the current selection. - -- - -- Warning : Better Call AIS_Selection::CreateSelection. - -- - - - Remove(myclass; aName: CString from Standard) - raises NoSuchObject from Standard; - ---Warning: raises NoSuchObject from Standard if no selection having this name - -- exists. - - Find(myclass; aName: CString from Standard) - ---Purpose: returns True if a selection having this name exsits. - - returns Boolean from Standard; - - CreateSelection(myclass;aName:CString from Standard) - returns Boolean from Standard; - ---Purpose: calls the private constructor and puts the new Selection - -- in the list of existing selections. - -- returns False if the selection exists. - - Selection(myclass; aName: CString from Standard) - ---Purpose: - returns Selection from AIS; - - SetCurrentSelection(myclass; aName: CString from Standard) - ---Purpose: - returns Boolean from Standard; - ---Purpose: returns False if There is no selection of name - - CurrentSelection(myclass) - ---Purpose: - returns Selection from AIS; - - ClearCurrentSelection(myclass); - ---Purpose: Clears selection. - - Select(myclass); - ---Purpose: removes all the object of the currentselection. - - Select(myclass; anObject: Transient from Standard) - returns SelectStatus from AIS; - ---Purpose: if the object is not yet in the current selection, it will be added. - -- if the object is already in the current selection, it will be removed. - - AddSelect(myclass; anObject: Transient from Standard) - returns SelectStatus from AIS; - ---Purpose: the object is always add int the selection. - -- faster when the number of objects selected is great. - - ClearAndSelect(myclass; anObject: Transient from Standard); - ---Purpose: clears the selection and adds the object in the selection. - - - IsSelected(myclass; anObject: Transient from Standard) - returns Boolean from Standard; - - - Extent(myclass) returns Integer from Standard; - ---Purpose: returns the number of objects selected. - - Single(myclass) returns Transient from Standard - ---Purpose: returns the single object selected. - -- Warning: raises TypeMismatch from Standard if Extent is not equal to 1. - - raises TypeMismatch from Standard; - - - ---Category: Instance Methods - - Init(me: mutable); - ---Purpose: - ---C++: inline - - More(me) returns Boolean from Standard; - ---Purpose: - ---C++: inline - - Next(me: mutable); - ---Purpose: - ---C++: inline - - Value(me) returns Transient from Standard; - ---Purpose: - ---C++: inline - ---C++: return const& - - NbStored(me) returns Integer from Standard; - ---C++: inline - --- SAV : OCC189 Objects(me) returns HArray1OfTransient from TColStd; - Objects(me) returns NListTransient from AIS; - ---C++: inline - ---C++: return const& - ----Category: private methods. - Index(myclass;aName:CString from Standard) - returns Integer from Standard; - -fields - myName : AsciiString from TCollection; --- SAV : OCC189 myresult : HArray1OfTransient from TColStd; - myresult : NListTransient from AIS; - myIterator : NListIteratorOfListTransient from AIS; --- san : USE_MAP - myResultMap: NDataMapOfTransientIteratorOfListTransient from AIS; - myNb : Integer from Standard; -end Selection from AIS; - diff --git a/src/AIS/AIS_Selection.cxx b/src/AIS/AIS_Selection.cxx index cc0583a447..fadca41ba6 100644 --- a/src/AIS/AIS_Selection.cxx +++ b/src/AIS/AIS_Selection.cxx @@ -12,13 +12,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include - -#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #define MaxSizeOfResult 100000 diff --git a/src/AIS/AIS_Selection.hxx b/src/AIS/AIS_Selection.hxx new file mode 100644 index 0000000000..61884ee66e --- /dev/null +++ b/src/AIS/AIS_Selection.hxx @@ -0,0 +1,149 @@ +// Created on: 1995-03-21 +// 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 _AIS_Selection_HeaderFile +#define _AIS_Selection_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_NoSuchObject; +class Standard_MultiplyDefined; +class Standard_TypeMismatch; +class Standard_Transient; + + +class AIS_Selection; +DEFINE_STANDARD_HANDLE(AIS_Selection, MMgt_TShared) + + +class AIS_Selection : public MMgt_TShared +{ + +public: + + + //! creates a new selection and make it current in the session. + //! the selection will be accessible later through its name + //! to make it again current. + //! + //! Note that if a session has been created, a session with + //! the name "default" is created. + //! + //! In this case, the is always a current selection which + //! is the last one created until SetCurrentSelection is used. + //! + //! The class methods deals with the current selection. + //! + //! Warning : Better Call AIS_Selection::CreateSelection. + Standard_EXPORT AIS_Selection(const Standard_CString aName); + + Standard_EXPORT static void Remove (const Standard_CString aName); + + //! returns True if a selection having this name exsits. + Standard_EXPORT static Standard_Boolean Find (const Standard_CString aName); + + //! calls the private constructor and puts the new Selection + //! in the list of existing selections. + //! returns False if the selection exists. + Standard_EXPORT static Standard_Boolean CreateSelection (const Standard_CString aName); + + Standard_EXPORT static Handle(AIS_Selection) Selection (const Standard_CString aName); + + //! returns False if There is no selection of name + Standard_EXPORT static Standard_Boolean SetCurrentSelection (const Standard_CString aName); + + Standard_EXPORT static Handle(AIS_Selection) CurrentSelection(); + + //! Clears selection. + Standard_EXPORT static void ClearCurrentSelection(); + + //! removes all the object of the currentselection. + Standard_EXPORT static void Select(); + + //! if the object is not yet in the current selection, it will be added. + //! if the object is already in the current selection, it will be removed. + Standard_EXPORT static AIS_SelectStatus Select (const Handle(Standard_Transient)& anObject); + + //! the object is always add int the selection. + //! faster when the number of objects selected is great. + Standard_EXPORT static AIS_SelectStatus AddSelect (const Handle(Standard_Transient)& anObject); + + //! clears the selection and adds the object in the selection. + Standard_EXPORT static void ClearAndSelect (const Handle(Standard_Transient)& anObject); + + Standard_EXPORT static Standard_Boolean IsSelected (const Handle(Standard_Transient)& anObject); + + //! returns the number of objects selected. + Standard_EXPORT static Standard_Integer Extent(); + + //! returns the single object selected. + //! Warning: raises TypeMismatch from Standard if Extent is not equal to 1. + Standard_EXPORT static Handle(Standard_Transient) Single(); + + void Init(); + + Standard_Boolean More() const; + + void Next(); + + const Handle(Standard_Transient)& Value() const; + + Standard_Integer NbStored() const; + + const AIS_NListTransient& Objects() const; + + Standard_EXPORT static Standard_Integer Index (const Standard_CString aName); + + + + + DEFINE_STANDARD_RTTI(AIS_Selection,MMgt_TShared) + +protected: + + + + +private: + + + TCollection_AsciiString myName; + AIS_NListTransient myresult; + AIS_NListIteratorOfListTransient myIterator; + AIS_NDataMapOfTransientIteratorOfListTransient myResultMap; + Standard_Integer myNb; + + +}; + + +#include + + + + + +#endif // _AIS_Selection_HeaderFile diff --git a/src/AIS/AIS_Shape.cdl b/src/AIS/AIS_Shape.cdl deleted file mode 100644 index e71a0d5d01..0000000000 --- a/src/AIS/AIS_Shape.cdl +++ /dev/null @@ -1,313 +0,0 @@ --- Created on: 1996-12-20 --- 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. - -class Shape from AIS inherits InteractiveObject from AIS - - ---Purpose: A framework to manage presentation and selection of shapes. - -- AIS_Shape is the interactive object which is used the - -- most by applications. There are standard functions - -- available which allow you to prepare selection - -- operations on the constituent elements of shapes - - -- vertices, edges, faces etc - in an open local context. - -- The selection modes specific to "Shape" type objects - -- are referred to as Standard Activation Mode. These - -- modes are only taken into account in open local - -- context and only act on Interactive Objects which - -- have redefined the virtual method - -- AcceptShapeDecomposition so that it returns true. - -- Several advanced functions are also available. These - -- include functions to manage deviation angle and - -- deviation coefficient - both HLR and non-HLR - of - -- an inheriting shape class. These services allow you to - -- select one type of shape interactive object for higher - -- precision drawing. When you do this, the - -- Prs3d_Drawer::IsOwn... functions corresponding to the - -- above deviation angle and coefficient functions return - -- true indicating that there is a local setting available - -- for the specific object. - -uses - NameOfColor from Quantity, - Color from Quantity, - Box from Bnd, - ShapeEnum from TopAbs, - Shape from TopoDS, - NameOfMaterial from Graphic3d , - ---NameOfPhysicalMaterial from Graphic3d , - MaterialAspect from Graphic3d, - Presentation from Prs3d, - Projector from Prs3d, - PresentationManager3d from PrsMgr, - Selection from SelectMgr, - KindOfInteractive from AIS, - Transformation from Geom, - Drawer from Prs3d, - TypeOfHLR from Prs3d - is - - Create(shap: Shape from TopoDS) - returns Shape from AIS; - ---Purpose: Initializes construction of the shape shap from wires, - -- edges and vertices. - - Signature(me) returns Integer from Standard is redefined virtual ; - ---Purpose: Returns index 0. This value refers to SHAPE from TopAbs_ShapeEnum - - Type(me) returns KindOfInteractive from AIS is redefined virtual; - ---Purpose: Returns Object as the type of Interactive Object. - - AcceptShapeDecomposition(me) returns Boolean from Standard is redefined virtual; - ---Purpose: Returns true if the Interactive Object accepts shape decomposition. - - Set(me:mutable;ashap : Shape from TopoDS) is static; - ---Purpose: Constructs an instance of the shape object ashape. - ---C++: inline - - Shape(me) returns Shape from TopoDS ; - ---Purpose: Returns this shape object. - ---C++: inline - ---C++: return const& - - - --------------------------------------------------------------------- - SetOwnDeviationCoefficient(me: mutable) returns Boolean from Standard ; - ---Purpose: Sets a local value for deviation coefficient for this specific shape. - SetOwnHLRDeviationCoefficient(me: mutable) returns Boolean from Standard ; - ---Purpose: Sets a local value for HLR deviation coefficient for this specific shape. - SetOwnDeviationAngle(me: mutable) returns Boolean from Standard ; - ---Purpose: Sets a local value for deviation angle for this specific shape. - - SetOwnHLRDeviationAngle(me: mutable) returns Boolean from Standard ; - ---Purpose: Sets a local value for HLR deviation angle for this specific shape. - - - SetOwnDeviationCoefficient(me: mutable; aCoefficient: Real from Standard) ; - ---Purpose: Sets a local value for deviation coefficient for this specific shape. - - SetOwnHLRDeviationCoefficient(me: mutable; aCoefficient : Real from Standard) ; - ---Purpose: sets myOwnHLRDeviationCoefficient field in Prs3d_Drawer & - -- recomputes presentation - - SetAngleAndDeviation(me: mutable; anAngle: Real from Standard) ; - ---Purpose: this compute a new angle and Deviation from the value anAngle - -- and set the values stored in myDrawer with these that become local to the shape - - UserAngle(me) returns Real from Standard; - ---Purpose: gives back the angle initial value put by the User. - - SetOwnDeviationAngle(me: mutable; anAngle: Real from Standard) ; - ---Purpose: sets myOwnDeviationAngle field in Prs3d_Drawer & recomputes presentation - - - SetHLRAngleAndDeviation(me: mutable; anAngle: Real from Standard) ; - ---Purpose: this compute a new Angle and Deviation from the value anAngle for HLR - -- and set the values stored in myDrawer for with these that become local to the shape - - SetOwnHLRDeviationAngle(me: mutable; anAngle: Real from Standard) ; - ---Purpose: sets myOwnHLRDeviationAngle field in Prs3d_Drawer & recomputes presentation - - - OwnDeviationCoefficient(me; aCoefficient : out Real from Standard ; - aPreviousCoefficient : out Real from Standard ) returns Boolean from Standard; - ---Purpose: Returns true and the values of the deviation - -- coefficient aCoefficient and the previous deviation - -- coefficient aPreviousCoefficient. If these values are - -- not already set, false is returned. - - OwnHLRDeviationCoefficient(me; aCoefficient : out Real from Standard; - aPreviousCoefficient : out Real from Standard ) returns Boolean from Standard; - ---Purpose: Returns true and the values of the HLR deviation - -- coefficient aCoefficient and the previous HLR - -- deviation coefficient aPreviousCoefficient. If these - -- values are not already set, false is returned. - - OwnDeviationAngle(me; anAngle: out Real from Standard; - aPreviousAngle : out Real from Standard ) returns Boolean from Standard; - ---Purpose: Returns true and the values of the deviation angle - -- anAngle and the previous deviation angle aPreviousAngle. - -- If these values are not already set, false is returned. - - - OwnHLRDeviationAngle(me; anAngle : out Real from Standard ; - aPreviousAngle : out Real from Standard ) returns Boolean from Standard; - ---Purpose: Returns true and the values of the HLR deviation - -- angle anAngle and of the previous HLR deviation - -- angle aPreviousAngle. If these values are not - -- already set, false is returned. - - - SetTypeOfHLR(me: mutable; theTypeOfHLR: TypeOfHLR from Prs3d); - ---Purpose: Sets the type of HLR algorithm used by the shape - ---C++: inline - - TypeOfHLR(me) returns TypeOfHLR from Prs3d; - ---Purpose: Gets the type of HLR algorithm - ---C++: inline - - - ---Category: Redefine Compute Methods... - - Compute(me : mutable; - aPresentationManager : PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard = 0) - is redefined virtual protected; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aPresentation : Presentation from Prs3d) - is redefined virtual protected; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined virtual protected; - - - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard) - is redefined virtual protected; - - - ---Category: The Attributes to be redefined - - - SetColor(me:mutable;aColor:NameOfColor from Quantity) - is redefined virtual; - ---Purpose: Sets the color aColor in the reconstructed - -- compound shape. Acts via the Drawer methods below on the appearance of: - -- - free boundaries: - -- Prs3d_Drawer_FreeBoundaryAspect, - -- - isos: Prs3d_Drawer_UIsoAspect, - -- Prs3dDrawer_VIsoAspect, - -- - shared boundaries: - -- Prs3d_Drawer_UnFreeBoundaryAspect, - -- - shading: Prs3d_Drawer_ShadingAspect, - -- - visible line color in hidden line mode: - -- Prs3d_Drawer_SeenLineAspect - -- - hidden line color in hidden line mode: - -- Prs3d_Drawer_HiddenLineAspect. - - SetColor(me:mutable;aColor:Color from Quantity) - is redefined virtual; - - UnsetColor(me:mutable) is redefined virtual; - ---Purpose: Removes settings for color in the reconstructed compound shape. - - SetWidth(me:mutable; aValue:Real from Standard) is redefined virtual; - ---Purpose: Sets the value aValue for line width in the reconstructed compound shape. - -- Changes line aspects for lines-only presentation modes like Wireframe and Bounding Box. - -- Doesn't change face boundary line aspect. - UnsetWidth(me:mutable) is redefined virtual; - ---Purpose: Removes the setting for line width in the reconstructed compound shape. - - SetMaterial(me:mutable;aName:NameOfMaterial from Graphic3d) is redefined virtual; - - SetMaterial(me:mutable;aName:MaterialAspect from Graphic3d) is redefined virtual; - ---Purpose: Allows you to provide settings for the material aName - -- in the reconstructed compound shape. - - UnsetMaterial(me:mutable) is redefined virtual; - --- Purpose: Removes settings for material in the reconstructed compound shape. - - SetTransparency(me:mutable;aValue : Real from Standard=0.6) is redefined virtual; - ---Purpose: Sets the value aValue for transparency in the reconstructed compound shape. - - UnsetTransparency(me:mutable) is redefined virtual; - ---Purpose: Removes the setting for transparency in the reconstructed compound shape. - - BoundingBox(me:mutable) returns Box from Bnd is virtual; - ---Purpose: Constructs a bounding box with which to reconstruct - -- compound topological shapes for presentation. - ---C++: return const & - - Color(me) returns NameOfColor from Quantity is redefined; - ---Purpose: Returns the NameOfColor attributes of the shape accordingly to - -- the current facing model; - - Color(me; aColor: out Color from Quantity) is redefined; - ---Purpose: Returns the Color attributes of the shape accordingly to - -- the current facing model; - - Material(me) returns NameOfMaterial from Graphic3d is redefined; - ---Purpose: Returns the NameOfMaterial attributes of the shape accordingly to - -- the current facing model; - - Transparency(me) returns Real from Standard is redefined; - ---Purpose: Returns the transparency attributes of the shape accordingly to - -- the current facing model; - - - ---Category: - - - SelectionType(myclass; aDecompositionMode : Integer from Standard) - returns ShapeEnum from TopAbs; - ---Purpose: Activates the same TopAbs shape enumerations as - -- those used by SelectionMode assigning a type to the mode aDecompositionMode. - - SelectionMode(myclass; aShapeType : ShapeEnum from TopAbs) - returns Integer from Standard; - ---Purpose: Establishes an equivalence between a mode and the - -- type, aShapeType, of selection. The correspondences are as follows: - -- - mode 0 - Shape - -- - mode 1 - Vertex - -- - mode 2 - Edge - -- - mode 3 - Wire - -- - mode 4 - Face - -- - mode 5 - Shell - -- - mode 6 - Solid - -- - mode 7 - Compsolid - -- - mode 8 - Compound - - LoadRecomputable(me:mutable;TheMode : Integer from Standard) is static protected; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aPresentation : Presentation from Prs3d; - ashape : Shape from TopoDS) is static private; - - setColor (me; - theDrawer : Drawer from Prs3d; - theColor : Color from Quantity) - is protected; - - setWidth (me; - theDrawer : Drawer from Prs3d; - theWidth : Real from Standard) - is protected; - - setTransparency (me; - theDrawer : Drawer from Prs3d; - theValue : Real from Standard) - is protected; - - setMaterial (me; - theDrawer : Drawer from Prs3d; - theMaterial : MaterialAspect from Graphic3d; - theToKeepColor : Boolean from Standard; - theToKeepTransp : Boolean from Standard) - is protected; - -fields - myshape : Shape from TopoDS is protected; - myBB : Box from Bnd is protected; - myCompBB : Boolean from Standard is protected; - myInitAng : Real from Standard; -end Shape; diff --git a/src/AIS/AIS_Shape.cxx b/src/AIS/AIS_Shape.cxx index cda29b33e4..2e381f7f9f 100644 --- a/src/AIS/AIS_Shape.cxx +++ b/src/AIS/AIS_Shape.cxx @@ -14,65 +14,58 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include -#include -#include - -#include - -#include +#include +#include +#include +#include #include #include -#include -#include #include -#include -#include - -#include -#include -#include +#include +#include +#include +#include +#include +#include #include -#include #include -#include -#include +#include +#include #include #include - +#include +#include +#include +#include #include +#include +#include #include +#include #include #include -#include -#include - -#include -#include -#include -#include -#include - #include - +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include #include +#include #include - -#include -#include -#include -#include - -#include -#include -#include +#include +#include +#include #include +#include static Standard_Boolean myFirstCompute; diff --git a/src/AIS/AIS_Shape.hxx b/src/AIS/AIS_Shape.hxx new file mode 100644 index 0000000000..4ba1b1d91c --- /dev/null +++ b/src/AIS/AIS_Shape.hxx @@ -0,0 +1,289 @@ +// Created on: 1996-12-20 +// 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_Shape_HeaderFile +#define _AIS_Shape_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; +class Quantity_Color; +class Graphic3d_MaterialAspect; +class Bnd_Box; + + +class AIS_Shape; +DEFINE_STANDARD_HANDLE(AIS_Shape, AIS_InteractiveObject) + +//! A framework to manage presentation and selection of shapes. +//! AIS_Shape is the interactive object which is used the +//! most by applications. There are standard functions +//! available which allow you to prepare selection +//! operations on the constituent elements of shapes - +//! vertices, edges, faces etc - in an open local context. +//! The selection modes specific to "Shape" type objects +//! are referred to as Standard Activation Mode. These +//! modes are only taken into account in open local +//! context and only act on Interactive Objects which +//! have redefined the virtual method +//! AcceptShapeDecomposition so that it returns true. +//! Several advanced functions are also available. These +//! include functions to manage deviation angle and +//! deviation coefficient - both HLR and non-HLR - of +//! an inheriting shape class. These services allow you to +//! select one type of shape interactive object for higher +//! precision drawing. When you do this, the +//! Prs3d_Drawer::IsOwn... functions corresponding to the +//! above deviation angle and coefficient functions return +//! true indicating that there is a local setting available +//! for the specific object. +class AIS_Shape : public AIS_InteractiveObject +{ + +public: + + + //! Initializes construction of the shape shap from wires, + //! edges and vertices. + Standard_EXPORT AIS_Shape(const TopoDS_Shape& shap); + + //! Returns index 0. This value refers to SHAPE from TopAbs_ShapeEnum + Standard_EXPORT virtual Standard_Integer Signature() const Standard_OVERRIDE; + + //! Returns Object as the type of Interactive Object. + Standard_EXPORT virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE; + + //! Returns true if the Interactive Object accepts shape decomposition. + Standard_EXPORT virtual Standard_Boolean AcceptShapeDecomposition() const Standard_OVERRIDE; + + //! Constructs an instance of the shape object ashape. + void Set (const TopoDS_Shape& ashap); + + //! Returns this shape object. + const TopoDS_Shape& Shape() const; + + //! Sets a local value for deviation coefficient for this specific shape. + Standard_EXPORT Standard_Boolean SetOwnDeviationCoefficient(); + + //! Sets a local value for HLR deviation coefficient for this specific shape. + Standard_EXPORT Standard_Boolean SetOwnHLRDeviationCoefficient(); + + //! Sets a local value for deviation angle for this specific shape. + Standard_EXPORT Standard_Boolean SetOwnDeviationAngle(); + + //! Sets a local value for HLR deviation angle for this specific shape. + Standard_EXPORT Standard_Boolean SetOwnHLRDeviationAngle(); + + //! Sets a local value for deviation coefficient for this specific shape. + Standard_EXPORT void SetOwnDeviationCoefficient (const Standard_Real aCoefficient); + + //! sets myOwnHLRDeviationCoefficient field in Prs3d_Drawer & + //! recomputes presentation + Standard_EXPORT void SetOwnHLRDeviationCoefficient (const Standard_Real aCoefficient); + + //! this compute a new angle and Deviation from the value anAngle + //! and set the values stored in myDrawer with these that become local to the shape + Standard_EXPORT void SetAngleAndDeviation (const Standard_Real anAngle); + + //! gives back the angle initial value put by the User. + Standard_EXPORT Standard_Real UserAngle() const; + + //! sets myOwnDeviationAngle field in Prs3d_Drawer & recomputes presentation + Standard_EXPORT void SetOwnDeviationAngle (const Standard_Real anAngle); + + //! this compute a new Angle and Deviation from the value anAngle for HLR + //! and set the values stored in myDrawer for with these that become local to the shape + Standard_EXPORT void SetHLRAngleAndDeviation (const Standard_Real anAngle); + + //! sets myOwnHLRDeviationAngle field in Prs3d_Drawer & recomputes presentation + Standard_EXPORT void SetOwnHLRDeviationAngle (const Standard_Real anAngle); + + //! Returns true and the values of the deviation + //! coefficient aCoefficient and the previous deviation + //! coefficient aPreviousCoefficient. If these values are + //! not already set, false is returned. + Standard_EXPORT Standard_Boolean OwnDeviationCoefficient (Standard_Real& aCoefficient, Standard_Real& aPreviousCoefficient) const; + + //! Returns true and the values of the HLR deviation + //! coefficient aCoefficient and the previous HLR + //! deviation coefficient aPreviousCoefficient. If these + //! values are not already set, false is returned. + Standard_EXPORT Standard_Boolean OwnHLRDeviationCoefficient (Standard_Real& aCoefficient, Standard_Real& aPreviousCoefficient) const; + + //! Returns true and the values of the deviation angle + //! anAngle and the previous deviation angle aPreviousAngle. + //! If these values are not already set, false is returned. + Standard_EXPORT Standard_Boolean OwnDeviationAngle (Standard_Real& anAngle, Standard_Real& aPreviousAngle) const; + + //! Returns true and the values of the HLR deviation + //! angle anAngle and of the previous HLR deviation + //! angle aPreviousAngle. If these values are not + //! already set, false is returned. + Standard_EXPORT Standard_Boolean OwnHLRDeviationAngle (Standard_Real& anAngle, Standard_Real& aPreviousAngle) const; + + //! Sets the type of HLR algorithm used by the shape + void SetTypeOfHLR (const Prs3d_TypeOfHLR theTypeOfHLR); + + //! Gets the type of HLR algorithm + Prs3d_TypeOfHLR TypeOfHLR() const; + + //! Sets the color aColor in the reconstructed + //! compound shape. Acts via the Drawer methods below on the appearance of: + //! - free boundaries: + //! Prs3d_Drawer_FreeBoundaryAspect, + //! - isos: Prs3d_Drawer_UIsoAspect, + //! Prs3dDrawer_VIsoAspect, + //! - shared boundaries: + //! Prs3d_Drawer_UnFreeBoundaryAspect, + //! - shading: Prs3d_Drawer_ShadingAspect, + //! - visible line color in hidden line mode: + //! Prs3d_Drawer_SeenLineAspect + //! - hidden line color in hidden line mode: + //! Prs3d_Drawer_HiddenLineAspect. + Standard_EXPORT virtual void SetColor (const Quantity_NameOfColor aColor) Standard_OVERRIDE; + + Standard_EXPORT virtual void SetColor (const Quantity_Color& aColor) Standard_OVERRIDE; + + //! Removes settings for color in the reconstructed compound shape. + Standard_EXPORT virtual void UnsetColor() Standard_OVERRIDE; + + //! Sets the value aValue for line width in the reconstructed compound shape. + //! Changes line aspects for lines-only presentation modes like Wireframe and Bounding Box. + //! Doesn't change face boundary line aspect. + Standard_EXPORT virtual void SetWidth (const Standard_Real aValue) Standard_OVERRIDE; + + //! Removes the setting for line width in the reconstructed compound shape. + Standard_EXPORT virtual void UnsetWidth() Standard_OVERRIDE; + + Standard_EXPORT virtual void SetMaterial (const Graphic3d_NameOfMaterial aName) Standard_OVERRIDE; + + //! Allows you to provide settings for the material aName + //! in the reconstructed compound shape. + Standard_EXPORT virtual void SetMaterial (const Graphic3d_MaterialAspect& aName) Standard_OVERRIDE; + + //! Removes settings for material in the reconstructed compound shape. + Standard_EXPORT virtual void UnsetMaterial() Standard_OVERRIDE; + + //! Sets the value aValue for transparency in the reconstructed compound shape. + Standard_EXPORT virtual void SetTransparency (const Standard_Real aValue = 0.6) Standard_OVERRIDE; + + //! Removes the setting for transparency in the reconstructed compound shape. + Standard_EXPORT virtual void UnsetTransparency() Standard_OVERRIDE; + + //! Constructs a bounding box with which to reconstruct + //! compound topological shapes for presentation. + Standard_EXPORT virtual const Bnd_Box& BoundingBox(); + + //! Returns the NameOfColor attributes of the shape accordingly to + //! the current facing model; + Standard_EXPORT virtual Quantity_NameOfColor Color() const Standard_OVERRIDE; + + //! Returns the Color attributes of the shape accordingly to + //! the current facing model; + Standard_EXPORT virtual void Color (Quantity_Color& aColor) const Standard_OVERRIDE; + + //! Returns the NameOfMaterial attributes of the shape accordingly to + //! the current facing model; + Standard_EXPORT virtual Graphic3d_NameOfMaterial Material() const Standard_OVERRIDE; + + //! Returns the transparency attributes of the shape accordingly to + //! the current facing model; + Standard_EXPORT virtual Standard_Real Transparency() const Standard_OVERRIDE; + + //! Activates the same TopAbs shape enumerations as + //! those used by SelectionMode assigning a type to the mode aDecompositionMode. + Standard_EXPORT static TopAbs_ShapeEnum SelectionType (const Standard_Integer aDecompositionMode); + + //! Establishes an equivalence between a mode and the + //! type, aShapeType, of selection. The correspondences are as follows: + //! - mode 0 - Shape + //! - mode 1 - Vertex + //! - mode 2 - Edge + //! - mode 3 - Wire + //! - mode 4 - Face + //! - mode 5 - Shell + //! - mode 6 - Solid + //! - mode 7 - Compsolid + //! - mode 8 - Compound + Standard_EXPORT static Standard_Integer SelectionMode (const TopAbs_ShapeEnum aShapeType); + + + + + DEFINE_STANDARD_RTTI(AIS_Shape,AIS_InteractiveObject) + +protected: + + + Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode) Standard_OVERRIDE; + + Standard_EXPORT void LoadRecomputable (const Standard_Integer TheMode); + + Standard_EXPORT void setColor (const Handle(Prs3d_Drawer)& theDrawer, const Quantity_Color& theColor) const; + + Standard_EXPORT void setWidth (const Handle(Prs3d_Drawer)& theDrawer, const Standard_Real theWidth) const; + + Standard_EXPORT void setTransparency (const Handle(Prs3d_Drawer)& theDrawer, const Standard_Real theValue) const; + + Standard_EXPORT void setMaterial (const Handle(Prs3d_Drawer)& theDrawer, const Graphic3d_MaterialAspect& theMaterial, const Standard_Boolean theToKeepColor, const Standard_Boolean theToKeepTransp) const; + + TopoDS_Shape myshape; + Bnd_Box myBB; + Standard_Boolean myCompBB; + + +private: + + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation, const TopoDS_Shape& ashape); + + Standard_Real myInitAng; + + +}; + + +#include + + + + + +#endif // _AIS_Shape_HeaderFile diff --git a/src/AIS/AIS_SignatureFilter.cdl b/src/AIS/AIS_SignatureFilter.cdl deleted file mode 100644 index d8cbadea71..0000000000 --- a/src/AIS/AIS_SignatureFilter.cdl +++ /dev/null @@ -1,72 +0,0 @@ --- Created on: 1997-03-04 --- 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. - -class SignatureFilter from AIS inherits TypeFilter from AIS - - ---Purpose: Selects Interactive Objects through their signatures - -- and types. The signature provides an - -- additional characterization of an object's type, and - -- takes the form of an index. The filter questions each - -- Interactive Object in local context to determine - -- whether it has an non-null owner, and if so, whether - -- it has the desired signature. If the object returns true - -- in each case, it is kept. If not, it is rejected. - -- By default, the interactive object has a None type - -- and a signature of 0. If you want to give a particular - -- type and signature to your Interactive Object, you - -- must redefine two virtual methods: Type and Signature. - -- This filter is only used in an open local contexts. - -- In the Collector viewer, you can only locate - -- Interactive Objects which answer positively to the - -- positioned filters when a local context is open. - -- Warning - -- Some signatures have already been used by standard - -- objects delivered in AIS. These include: - -- - signature 0 - Shape - -- - signature 1 - Point - -- - signature 2 - Axis - -- - signature 3 - Trihedron - -- - signature 4 - PlaneTrihedron - -- - signature 5 - Line - -- - signature 6 - Circle - -- - signature 7 - Plane - - - -uses - - KindOfInteractive from AIS, - EntityOwner from SelectMgr - -is - - Create(aGivenKind : KindOfInteractive from AIS; - aGivenSignature : Integer from Standard) - returns SignatureFilter from AIS; - --- Purpose: Initializes the signature filter, adding the signature - -- specification, aGivenSignature, to that for type, - -- aGivenKind, in AIS_TypeFilter. - - IsOk (me;anobj : EntityOwner from SelectMgr) - returns Boolean from Standard is redefined static; - ---Purpose: Returns False if the transient is not an AIS_InteractiveObject. - -- Returns False if the signature of InteractiveObject - -- is not the same as the stored one in the filter... - - -fields - mySig : Integer from Standard; -end SignatureFilter; diff --git a/src/AIS/AIS_SignatureFilter.cxx b/src/AIS/AIS_SignatureFilter.cxx index 578686258e..228b01f5df 100644 --- a/src/AIS/AIS_SignatureFilter.cxx +++ b/src/AIS/AIS_SignatureFilter.cxx @@ -14,9 +14,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include #include +#include +#include +#include AIS_SignatureFilter::AIS_SignatureFilter(const AIS_KindOfInteractive TheKind, const Standard_Integer TheSignature): diff --git a/src/AIS/AIS_SignatureFilter.hxx b/src/AIS/AIS_SignatureFilter.hxx new file mode 100644 index 0000000000..d77b1710e2 --- /dev/null +++ b/src/AIS/AIS_SignatureFilter.hxx @@ -0,0 +1,100 @@ +// Created on: 1997-03-04 +// 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_SignatureFilter_HeaderFile +#define _AIS_SignatureFilter_HeaderFile + +#include +#include + +#include +#include +#include +#include +class SelectMgr_EntityOwner; + + +class AIS_SignatureFilter; +DEFINE_STANDARD_HANDLE(AIS_SignatureFilter, AIS_TypeFilter) + +//! Selects Interactive Objects through their signatures +//! and types. The signature provides an +//! additional characterization of an object's type, and +//! takes the form of an index. The filter questions each +//! Interactive Object in local context to determine +//! whether it has an non-null owner, and if so, whether +//! it has the desired signature. If the object returns true +//! in each case, it is kept. If not, it is rejected. +//! By default, the interactive object has a None type +//! and a signature of 0. If you want to give a particular +//! type and signature to your Interactive Object, you +//! must redefine two virtual methods: Type and Signature. +//! This filter is only used in an open local contexts. +//! In the Collector viewer, you can only locate +//! Interactive Objects which answer positively to the +//! positioned filters when a local context is open. +//! Warning +//! Some signatures have already been used by standard +//! objects delivered in AIS. These include: +//! - signature 0 - Shape +//! - signature 1 - Point +//! - signature 2 - Axis +//! - signature 3 - Trihedron +//! - signature 4 - PlaneTrihedron +//! - signature 5 - Line +//! - signature 6 - Circle +//! - signature 7 - Plane +class AIS_SignatureFilter : public AIS_TypeFilter +{ + +public: + + + //! Initializes the signature filter, adding the signature + //! specification, aGivenSignature, to that for type, + //! aGivenKind, in AIS_TypeFilter. + Standard_EXPORT AIS_SignatureFilter(const AIS_KindOfInteractive aGivenKind, const Standard_Integer aGivenSignature); + + //! Returns False if the transient is not an AIS_InteractiveObject. + //! Returns False if the signature of InteractiveObject + //! is not the same as the stored one in the filter... + Standard_EXPORT Standard_Boolean IsOk (const Handle(SelectMgr_EntityOwner)& anobj) const Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_SignatureFilter,AIS_TypeFilter) + +protected: + + + + +private: + + + Standard_Integer mySig; + + +}; + + + + + + + +#endif // _AIS_SignatureFilter_HeaderFile diff --git a/src/AIS/AIS_StandardDatum.hxx b/src/AIS/AIS_StandardDatum.hxx new file mode 100644 index 0000000000..39dab81dce --- /dev/null +++ b/src/AIS/AIS_StandardDatum.hxx @@ -0,0 +1,33 @@ +// Created on: 1996-12-11 +// 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_StandardDatum_HeaderFile +#define _AIS_StandardDatum_HeaderFile + +//! Declares the type of standard datum of an Interactive Object. +enum AIS_StandardDatum +{ +AIS_SD_None, +AIS_SD_Point, +AIS_SD_Axis, +AIS_SD_Trihedron, +AIS_SD_PlaneTrihedron, +AIS_SD_Line, +AIS_SD_Circle, +AIS_SD_Plane +}; + +#endif // _AIS_StandardDatum_HeaderFile diff --git a/src/AIS/AIS_StatusOfDetection.hxx b/src/AIS/AIS_StatusOfDetection.hxx new file mode 100644 index 0000000000..0ea74c96f8 --- /dev/null +++ b/src/AIS/AIS_StatusOfDetection.hxx @@ -0,0 +1,32 @@ +// Created on: 1996-12-11 +// 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_StatusOfDetection_HeaderFile +#define _AIS_StatusOfDetection_HeaderFile + + +enum AIS_StatusOfDetection +{ +AIS_SOD_Error, +AIS_SOD_Nothing, +AIS_SOD_AllBad, +AIS_SOD_Selected, +AIS_SOD_OnlyOneDetected, +AIS_SOD_OnlyOneGood, +AIS_SOD_SeveralGood +}; + +#endif // _AIS_StatusOfDetection_HeaderFile diff --git a/src/AIS/AIS_StatusOfPick.hxx b/src/AIS/AIS_StatusOfPick.hxx new file mode 100644 index 0000000000..e042ce4f1d --- /dev/null +++ b/src/AIS/AIS_StatusOfPick.hxx @@ -0,0 +1,30 @@ +// Created on: 1996-12-11 +// 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_StatusOfPick_HeaderFile +#define _AIS_StatusOfPick_HeaderFile + + +enum AIS_StatusOfPick +{ +AIS_SOP_Error, +AIS_SOP_NothingSelected, +AIS_SOP_Removed, +AIS_SOP_OneSelected, +AIS_SOP_SeveralSelected +}; + +#endif // _AIS_StatusOfPick_HeaderFile diff --git a/src/AIS/AIS_SymmetricRelation.cdl b/src/AIS/AIS_SymmetricRelation.cdl deleted file mode 100644 index b3a35f0bec..0000000000 --- a/src/AIS/AIS_SymmetricRelation.cdl +++ /dev/null @@ -1,123 +0,0 @@ --- Created on: 1997-03-03 --- Created by: Jean-Pierre COMBE --- 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. - -class SymmetricRelation from AIS inherits Relation from AIS - - ---Purpose: A framework to display constraints of symmetricity - -- between two or more datum Interactive Objects. - -- A plane serves as the axis of symmetry between the - -- shapes of which the datums are parts. - -uses Shape from TopoDS, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - Selection from SelectMgr, - Dir from gp, - Pnt from gp, - Projector from Prs3d, - Transformation from Geom, - ExtendedString from TCollection, - Plane from Geom - -is - Create(aSymmTool : Shape from TopoDS; - FirstShape : Shape from TopoDS; - SecondShape : Shape from TopoDS; - aPlane : Plane from Geom) - returns SymmetricRelation from AIS; - --- Purpose: Constructs an object to display constraints of symmetricity. - -- This object is defined by a tool aSymmTool, a first - -- shape FirstShape, a second shape SecondShape, and a plane aPlane. - -- aPlane serves as the axis of symmetry. - -- aSymmTool is the shape composed of FirstShape - -- SecondShape and aPlane. It may be queried and - -- edited using the functions GetTool and SetTool. - -- The two shapes are typically two edges, two vertices or two points. - - IsMovable(me) returns Boolean from Standard - ---Purpose: Returns true if the symmetric constraint display is movable. - ---C++: inline - - is redefined; - - SetTool(me:mutable; aSymmetricTool : Shape from TopoDS); - ---Purpose: Sets the tool aSymmetricTool composed of a first - -- shape, a second shape, and a plane. - -- This tool is initially created at construction time. - ---C++: inline - - GetTool(me) - ---Purpose: Returns the tool composed of a first shape, a second - -- shape, and a plane. This tool is created at construction time. - ---C++: inline - ---C++: return const & - returns Shape from TopoDS; - --- Methods from PresentableObject - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0) - is redefined static private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- SymmetricRelation Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard)is private; - --- --- Computation private methods --- - - ComputeTwoFacesSymmetric(me: mutable; aprs : Presentation from Prs3d) - is private; - - ComputeTwoEdgesSymmetric(me: mutable; aprs : Presentation from Prs3d) - is private; - - ComputeTwoVerticesSymmetric(me: mutable; aprs : Presentation from Prs3d) - is private; - - -fields - - myTool : Shape from TopoDS; - myFAttach : Pnt from gp; - mySAttach : Pnt from gp; - myFDirAttach : Dir from gp; - myAxisDirAttach : Dir from gp; - -end SymmetricRelation; diff --git a/src/AIS/AIS_SymmetricRelation.cxx b/src/AIS/AIS_SymmetricRelation.cxx index 4155f2dfcc..fc48372a28 100644 --- a/src/AIS/AIS_SymmetricRelation.cxx +++ b/src/AIS/AIS_SymmetricRelation.cxx @@ -14,41 +14,41 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include #include - -#include -#include -#include -#include -#include -#include -#include +#include #include -#include #include -#include -#include -#include +#include +#include #include -#include -#include +#include +#include +#include +#include +#include #include #include - -#include -#include -#include -#include - +#include +#include +#include +#include +#include #include -#include #include #include - -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : AIS_SymmetricRelation diff --git a/src/AIS/AIS_SymmetricRelation.hxx b/src/AIS/AIS_SymmetricRelation.hxx new file mode 100644 index 0000000000..fd718bdba3 --- /dev/null +++ b/src/AIS/AIS_SymmetricRelation.hxx @@ -0,0 +1,123 @@ +// Created on: 1997-03-03 +// Created by: Jean-Pierre COMBE +// 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_SymmetricRelation_HeaderFile +#define _AIS_SymmetricRelation_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class Geom_Plane; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; + + +class AIS_SymmetricRelation; +DEFINE_STANDARD_HANDLE(AIS_SymmetricRelation, AIS_Relation) + +//! A framework to display constraints of symmetricity +//! between two or more datum Interactive Objects. +//! A plane serves as the axis of symmetry between the +//! shapes of which the datums are parts. +class AIS_SymmetricRelation : public AIS_Relation +{ + +public: + + + //! Constructs an object to display constraints of symmetricity. + //! This object is defined by a tool aSymmTool, a first + //! shape FirstShape, a second shape SecondShape, and a plane aPlane. + //! aPlane serves as the axis of symmetry. + //! aSymmTool is the shape composed of FirstShape + //! SecondShape and aPlane. It may be queried and + //! edited using the functions GetTool and SetTool. + //! The two shapes are typically two edges, two vertices or two points. + Standard_EXPORT AIS_SymmetricRelation(const TopoDS_Shape& aSymmTool, const TopoDS_Shape& FirstShape, const TopoDS_Shape& SecondShape, const Handle(Geom_Plane)& aPlane); + + //! Returns true if the symmetric constraint display is movable. + virtual Standard_Boolean IsMovable() const Standard_OVERRIDE; + + //! Sets the tool aSymmetricTool composed of a first + //! shape, a second shape, and a plane. + //! This tool is initially created at construction time. + void SetTool (const TopoDS_Shape& aSymmetricTool); + + //! Returns the tool composed of a first shape, a second + //! shape, and a plane. This tool is created at construction time. + const TopoDS_Shape& GetTool() const; + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_SymmetricRelation,AIS_Relation) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode); + + Standard_EXPORT void ComputeTwoFacesSymmetric (const Handle(Prs3d_Presentation)& aprs); + + Standard_EXPORT void ComputeTwoEdgesSymmetric (const Handle(Prs3d_Presentation)& aprs); + + Standard_EXPORT void ComputeTwoVerticesSymmetric (const Handle(Prs3d_Presentation)& aprs); + + TopoDS_Shape myTool; + gp_Pnt myFAttach; + gp_Pnt mySAttach; + gp_Dir myFDirAttach; + gp_Dir myAxisDirAttach; + + +}; + + +#include + + + + + +#endif // _AIS_SymmetricRelation_HeaderFile diff --git a/src/AIS/AIS_TangentRelation.cdl b/src/AIS/AIS_TangentRelation.cdl deleted file mode 100644 index d29f615644..0000000000 --- a/src/AIS/AIS_TangentRelation.cdl +++ /dev/null @@ -1,114 +0,0 @@ --- Created on: 1996-12-05 --- Created by: Jean-Pierre COMBE/Odile Olivier --- 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. - -class TangentRelation from AIS inherits Relation from AIS - ---Purpose: A framework to display tangency constraints between - -- two or more Interactive Objects of the datum type. - -- The datums are normally faces or edges. -uses Shape from TopoDS, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - Selection from SelectMgr, - Pnt from gp, - Dir from gp, - Projector from Prs3d, - Transformation from Geom, - Plane from Geom - -is - Create (aFShape : Shape from TopoDS; - aSShape : Shape from TopoDS; - aPlane : Plane from Geom; - anExternRef : Integer from Standard = 0) - ---Purpose: TwoFacesTangent or TwoEdgesTangent relation - returns TangentRelation from AIS; - ---Purpose: Constructs an object to display tangency constraints. - -- This object is defined by the first shape aFShape, the - -- second shape aSShape, the plane aPlane and the index anExternRef. - -- aPlane serves as an optional axis. - -- anExternRef set to 0 indicates that there is no relation. - - ExternRef(me: mutable) returns Integer from Standard - is static; - ---Purpose: Returns the external reference for tangency. - -- The values are as follows: - -- - 0 - there is no connection; - -- - 1 - there is a connection to the first shape; - -- - 2 - there is a connection to the second shape. - -- This reference is defined at construction time. - - SetExternRef(me: mutable;aRef : Integer from Standard) - is static; - ---Purpose: Sets the external reference for tangency, aRef. - -- The values are as follows: - -- - 0 - there is no connection; - -- - 1 - there is a connection to the first shape; - -- - 2 - there is a connection to the second shape. - -- This reference is initially defined at construction time. - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard= 0) - is redefined static private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard)is private; - - --- --- Computation private methods --- - - ComputeTwoFacesTangent(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - ComputeTwoEdgesTangent(me: mutable; - aPresentation : Presentation from Prs3d) - is private; - - -fields - - myAttach : Pnt from gp; - myDir : Dir from gp; - myLength : Real from Standard; - myExternRef : Integer from Standard; ---purpose: (0 no attachment,1 attachment with first shape, 2 attachment with second shape) - -end TangentRelation; - diff --git a/src/AIS/AIS_TangentRelation.cxx b/src/AIS/AIS_TangentRelation.cxx index 24c987b9eb..31ef2882c5 100644 --- a/src/AIS/AIS_TangentRelation.cxx +++ b/src/AIS/AIS_TangentRelation.cxx @@ -14,44 +14,43 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include -#include - -#include -#include -#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include #include #include -#include - - -#include -#include -#include - +#include #include -#include -#include +#include +#include +#include +#include +#include +#include #include +#include +#include #include #include - -#include -#include -#include -#include #include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : Constructor diff --git a/src/AIS/AIS_TangentRelation.hxx b/src/AIS/AIS_TangentRelation.hxx new file mode 100644 index 0000000000..4b02478909 --- /dev/null +++ b/src/AIS/AIS_TangentRelation.hxx @@ -0,0 +1,119 @@ +// Created on: 1996-12-05 +// Created by: Jean-Pierre COMBE/Odile Olivier +// 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_TangentRelation_HeaderFile +#define _AIS_TangentRelation_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class Geom_Plane; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; + + +class AIS_TangentRelation; +DEFINE_STANDARD_HANDLE(AIS_TangentRelation, AIS_Relation) + +//! A framework to display tangency constraints between +//! two or more Interactive Objects of the datum type. +//! The datums are normally faces or edges. +class AIS_TangentRelation : public AIS_Relation +{ + +public: + + + //! TwoFacesTangent or TwoEdgesTangent relation + //! Constructs an object to display tangency constraints. + //! This object is defined by the first shape aFShape, the + //! second shape aSShape, the plane aPlane and the index anExternRef. + //! aPlane serves as an optional axis. + //! anExternRef set to 0 indicates that there is no relation. + Standard_EXPORT AIS_TangentRelation(const TopoDS_Shape& aFShape, const TopoDS_Shape& aSShape, const Handle(Geom_Plane)& aPlane, const Standard_Integer anExternRef = 0); + + //! Returns the external reference for tangency. + //! The values are as follows: + //! - 0 - there is no connection; + //! - 1 - there is a connection to the first shape; + //! - 2 - there is a connection to the second shape. + //! This reference is defined at construction time. + Standard_EXPORT Standard_Integer ExternRef(); + + //! Sets the external reference for tangency, aRef. + //! The values are as follows: + //! - 0 - there is no connection; + //! - 1 - there is a connection to the first shape; + //! - 2 - there is a connection to the second shape. + //! This reference is initially defined at construction time. + Standard_EXPORT void SetExternRef (const Standard_Integer aRef); + + //! computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_TangentRelation,AIS_Relation) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode); + + Standard_EXPORT void ComputeTwoFacesTangent (const Handle(Prs3d_Presentation)& aPresentation); + + Standard_EXPORT void ComputeTwoEdgesTangent (const Handle(Prs3d_Presentation)& aPresentation); + + gp_Pnt myAttach; + gp_Dir myDir; + Standard_Real myLength; + Standard_Integer myExternRef; + + +}; + + + + + + + +#endif // _AIS_TangentRelation_HeaderFile diff --git a/src/AIS/AIS_Triangulation.cdl b/src/AIS/AIS_Triangulation.cdl deleted file mode 100644 index a68ab54d30..0000000000 --- a/src/AIS/AIS_Triangulation.cdl +++ /dev/null @@ -1,102 +0,0 @@ --- Created on: 2009-12-10 --- Created by: Paul SUPRYATKIN --- Copyright (c) 2009-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. - -class Triangulation from AIS inherits InteractiveObject from AIS - - - ---Purpose: Interactive object that draws data from Poly_Triangulation, optionally with colors associated - -- with each triangulation vertex. For maximum efficiency colors are represented as 32-bit integers - -- instead of classic Quantity_Color values. - -- Interactive selection of triangles and vertices is not yet implemented. - - -uses - Triangulation from Poly, - HArray1OfInteger from TColStd, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - Selection from SelectMgr - -is - - Create(aTriangulation : Triangulation from Poly) - returns Triangulation from AIS; - ---Purpose: Constructs the Triangulation display object - --- -- Methods from PresentableObject - - Compute(me : mutable; - aPresentationManager : PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard = 0) - is redefined private; - --- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard) - is redefined private; - --- Empty implementation, does nothing - - SetColors(me : mutable; - aColor : HArray1OfInteger from TColStd); - ---Level: Public - ---Purpose: - -- Set the color for each node. - -- Each 32-bit color is Alpha << 24 + Blue << 16 + Green << 8 + Red - -- Order of color components is essential for further usage by OpenGL - - GetColors(me) - ---Level: Public - ---Purpose: - -- Get the color for each node. - -- Each 32-bit color is Alpha << 24 + Blue << 16 + Green << 8 + Red - - returns HArray1OfInteger from TColStd; - - - SetTriangulation( me : mutable; - aTriangulation : Triangulation from Poly); - ---Level: Public - - - GetTriangulation( me ) - returns Triangulation from Poly; - ---Level: Public - ---Purpose: Returns Poly_Triangulation . - - AttenuateColor( me : mutable; - aColor : Integer from Standard; - aComponent : Real from Standard ) - returns Integer from Standard - is private; - ---Level: Private - ---Purpose: Attenuates 32-bit color by a given attenuation factor (0...1): - -- aColor = Alpha << 24 + Blue << 16 + Green << 8 + Red - -- All color components are multiplied by aComponent, the result is then packed again as 32-bit integer. - -- Color attenuation is applied to the vertex colors in order to have correct visual result - -- after glColorMaterial(GL_AMBIENT_AND_DIFFUSE). Without it, colors look unnatural and flat. - - -fields - - myTriangulation : Triangulation from Poly; - myColor : HArray1OfInteger from TColStd; - myFlagColor : Integer from Standard; - myNbNodes : Integer from Standard; - myNbTriangles : Integer from Standard; - -end Triangulation; diff --git a/src/AIS/AIS_Triangulation.hxx b/src/AIS/AIS_Triangulation.hxx new file mode 100644 index 0000000000..fe28387316 --- /dev/null +++ b/src/AIS/AIS_Triangulation.hxx @@ -0,0 +1,103 @@ +// Created on: 2009-12-10 +// Created by: Paul SUPRYATKIN +// Copyright (c) 2009-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_Triangulation_HeaderFile +#define _AIS_Triangulation_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +class Poly_Triangulation; +class Prs3d_Presentation; + + +class AIS_Triangulation; +DEFINE_STANDARD_HANDLE(AIS_Triangulation, AIS_InteractiveObject) + +//! Interactive object that draws data from Poly_Triangulation, optionally with colors associated +//! with each triangulation vertex. For maximum efficiency colors are represented as 32-bit integers +//! instead of classic Quantity_Color values. +//! Interactive selection of triangles and vertices is not yet implemented. +class AIS_Triangulation : public AIS_InteractiveObject +{ + +public: + + + //! Constructs the Triangulation display object + Standard_EXPORT AIS_Triangulation(const Handle(Poly_Triangulation)& aTriangulation); + + + //! Set the color for each node. + //! Each 32-bit color is Alpha << 24 + Blue << 16 + Green << 8 + Red + //! Order of color components is essential for further usage by OpenGL + Standard_EXPORT void SetColors (const Handle(TColStd_HArray1OfInteger)& aColor); + + + //! Get the color for each node. + //! Each 32-bit color is Alpha << 24 + Blue << 16 + Green << 8 + Red + Standard_EXPORT Handle(TColStd_HArray1OfInteger) GetColors() const; + + Standard_EXPORT void SetTriangulation (const Handle(Poly_Triangulation)& aTriangulation); + + //! Returns Poly_Triangulation . + Standard_EXPORT Handle(Poly_Triangulation) GetTriangulation() const; + + + + + DEFINE_STANDARD_RTTI(AIS_Triangulation,AIS_InteractiveObject) + +protected: + + + + +private: + + + Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode) Standard_OVERRIDE; + + //! Attenuates 32-bit color by a given attenuation factor (0...1): + //! aColor = Alpha << 24 + Blue << 16 + Green << 8 + Red + //! All color components are multiplied by aComponent, the result is then packed again as 32-bit integer. + //! Color attenuation is applied to the vertex colors in order to have correct visual result + //! after glColorMaterial(GL_AMBIENT_AND_DIFFUSE). Without it, colors look unnatural and flat. + Standard_EXPORT Standard_Integer AttenuateColor (const Standard_Integer aColor, const Standard_Real aComponent); + + Handle(Poly_Triangulation) myTriangulation; + Handle(TColStd_HArray1OfInteger) myColor; + Standard_Integer myFlagColor; + Standard_Integer myNbNodes; + Standard_Integer myNbTriangles; + + +}; + + + + + + + +#endif // _AIS_Triangulation_HeaderFile diff --git a/src/AIS/AIS_Trihedron.cdl b/src/AIS/AIS_Trihedron.cdl deleted file mode 100644 index 149c659f34..0000000000 --- a/src/AIS/AIS_Trihedron.cdl +++ /dev/null @@ -1,211 +0,0 @@ --- Created on: 1995-10-09 --- Created by: Arnaud BOUZY/Odile Olivier --- 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. - --- Modified by: rob Wed Feb 11 -> Size of Trihedron - -class Trihedron from AIS inherits InteractiveObject from AIS - - ---Purpose: Create a selectable trihedron - -- there are 4 modes of selection : - -- mode = 0 to select triedron ,priority = 1 - -- mode = 1 to select its origine ,priority = 5 - -- mode = 2 to select its axis ,priority = 3 - -- mode = 3 to select its planes ,priority = 2 - -- a trihedron has 1 origine,3 axes,3 planes. - -- Warning - -- For the presentation of trihedra, the default unit of - -- length is the millimetre, and the default value for the - -- representation of the axes is 100. If you modify these - -- dimensions, you must temporarily recover the Drawer. - -- From inside it, you take the aspect in which the values - -- for length are stocked. For trihedra, this is - -- Prs3d_Drawer_FirstAxisAspect. You change the - -- values inside this Aspect and recalculate the presentation. - -- If you want to use extended selection modes, different than 0, - -- you should take care of removing of the shapes from the interactive - -- context that has been computed for selection; it might be necessary - -- when you change selection mode. You can use methods Axis, Point, - -- Plane to retrieve the shapes. - -uses - Axis2Placement from Geom, - Trsf from gp, - Presentation from Prs3d, - PresentationManager3d from PrsMgr, - NameOfColor from Quantity, - Color from Quantity, - Selection from SelectMgr, - Projector from Prs3d, - Transformation from Geom, - Axis from AIS, - Point from AIS, - Plane from AIS, - KindOfInteractive from AIS, - InteractiveContext from AIS, - Array1OfPnt from TColgp, - Location from TopLoc -is - - Create(aComponent : Axis2Placement from Geom) - returns Trihedron from AIS; - --- Purpose: Initializes a trihedron entity. - - Component(me) returns any Axis2Placement from Geom - is static; - ---Purpose: Returns the right-handed coordinate system set in SetComponent. - ---C++: inline - ---C++: return const& - - SetComponent(me: mutable;aComponent : Axis2Placement from Geom) - is static; - ---Purpose: Constructs the right-handed coordinate system aComponent. - - HasOwnSize(me) returns Boolean from Standard; - ---Purpose: Returns true if the trihedron object has a size other - -- than the default size of 100 mm. along each axis. - ---C++: inline - - SetSize(me:mutable;aValue : Real from Standard); - ---Purpose: Sets the size aValue for the trihedron object. - -- The default value is 100 mm. - - UnsetSize(me:mutable); - ---Purpose: Removes any non-default settings for size of this - -- trihedron object. - - Size(me) returns Real from Standard; - - - XAxis (me) returns Axis from AIS; - ---Purpose : Returns the "XAxis". - - YAxis (me) returns Axis from AIS; - ---Purpose : Returns the "YAxis". - - Axis (me) returns Axis from AIS; - ---Purpose : Returns the main Axis. - - Position (me) returns Point from AIS; - ---Purpose : Returns the origine. - - XYPlane (me) returns Plane from AIS; - ---Purpose : Returns the "XYPlane". - - XZPlane (me) returns Plane from AIS; - ---Purpose : Returns the "XZPlane". - - YZPlane (me) returns Plane from AIS; - ---Purpose : Returns the "YZPlane". - - - SetContext(me:mutable; aCtx : InteractiveContext from AIS) - is redefined; - ---Purpose: connection to default drawer implies a recomputation - -- of SubObjects values. - - AcceptDisplayMode(me;aMode:Integer from Standard) returns Boolean from Standard is redefined static; - ---Purpose: Returns true if the display mode selected, aMode, is - -- valid for trihedron datums. - - Compute(me : mutable; - aPresentationManager: PresentationManager3d from PrsMgr; - aPresentation : Presentation from Prs3d; - aMode : Integer from Standard = 0) - is redefined static private; - - Compute(me:mutable; - aProjector: Projector from Prs3d; - aPresentation: Presentation from Prs3d) - is redefined static private; - - - - Compute(me : mutable; - aProjector : Projector from Prs3d; - aTrsf : Transformation from Geom; - aPresentation : Presentation from Prs3d) - is redefined; - ---Purpose: Computes the presentation according to a point of view - -- given by . - -- To be Used when the associated degenerated Presentations - -- have been transformed by which is not a Pure - -- Translation. The HLR Prs can't be deducted automatically - -- WARNING : must be applied - -- to the object to display before computation !!! - --- Methods from PresentableObject - - SetLocalTransformation(me:mutable; theTransformation:Trsf from gp) is redefined static; - --- Methods from SelectableObject - - ComputeSelection(me : mutable; - aSelection : Selection from SelectMgr; - aMode : Integer from Standard)is private; - --- Methods from InteractiveObject - - Signature(me) returns Integer from Standard is redefined; - ---Purpose: Returns index 3, selection of the planes XOY, YOZ, XOZ. - Type(me) returns KindOfInteractive from AIS is redefined; - ---Purpose: Indicates that the type of Interactive Object is datum. - SetColor(me :mutable; aColor : NameOfColor from Quantity) - is redefined static ; - - SetColor(me :mutable; aColor : Color from Quantity) - is redefined static ; - ---Purpose: Sets the color aColor for this trihedron object. - SetTextColor(me :mutable; aColor : NameOfColor from Quantity) - is static ; - - HasTextColor(me) returns Boolean from Standard - is static ; - - TextColor(me) returns NameOfColor from Quantity - is static ; - - SetArrowColor(me :mutable; aColor : NameOfColor from Quantity) - is static ; - - HasArrowColor(me) returns Boolean from Standard - is static ; - - ArrowColor(me) returns NameOfColor from Quantity - is static ; - - ExtremityPoints(me;TheExtrem : in out Array1OfPnt from TColgp); - ---Purpose: Returns the four extremities of the trihedron from the - -- array of points, TheExtrem. - - - UnsetColor(me:mutable) is redefined static; - ---Purpose: Removes the settings for color. - UnsetWidth(me:mutable) is redefined static; - ---Purpose: Removes the non-default settings for width set in SetWidth. - - LoadSubObjects(me:mutable) is static private; - - -fields - myComponent : Axis2Placement from Geom; - myShapes : InteractiveObject from AIS [7]; - myHasOwnSize: Boolean from Standard; - myHasOwnTextColor : Boolean from Standard; - myOwnTextColor: NameOfColor from Quantity; - myHasOwnArrowColor : Boolean from Standard; - myOwnArrowColor: NameOfColor from Quantity; - -end Trihedron from AIS; diff --git a/src/AIS/AIS_Trihedron.cxx b/src/AIS/AIS_Trihedron.cxx index 34decac954..bbfe3761d8 100644 --- a/src/AIS/AIS_Trihedron.cxx +++ b/src/AIS/AIS_Trihedron.cxx @@ -14,42 +14,48 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include #include +#include #include -#include #include -#include -#include +#include +#include #include #include +#include #include +#include #include +#include +#include +#include +#include +#include +#include #include #include +#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - +#include #include +#include +#include #include +#include +#include +#include #include - - +#include //======================================================================= //function : AIS_Trihedron diff --git a/src/AIS/AIS_Trihedron.hxx b/src/AIS/AIS_Trihedron.hxx new file mode 100644 index 0000000000..8b02b8a02d --- /dev/null +++ b/src/AIS/AIS_Trihedron.hxx @@ -0,0 +1,210 @@ +// Created on: 1995-10-09 +// Created by: Arnaud BOUZY/Odile Olivier +// 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 _AIS_Trihedron_HeaderFile +#define _AIS_Trihedron_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Geom_Axis2Placement; +class AIS_InteractiveObject; +class AIS_Axis; +class AIS_Point; +class AIS_Plane; +class AIS_InteractiveContext; +class Prs3d_Presentation; +class Prs3d_Projector; +class Geom_Transformation; +class gp_Trsf; +class Quantity_Color; + + +class AIS_Trihedron; +DEFINE_STANDARD_HANDLE(AIS_Trihedron, AIS_InteractiveObject) + +//! Create a selectable trihedron +//! there are 4 modes of selection : +//! mode = 0 to select triedron ,priority = 1 +//! mode = 1 to select its origine ,priority = 5 +//! mode = 2 to select its axis ,priority = 3 +//! mode = 3 to select its planes ,priority = 2 +//! a trihedron has 1 origine,3 axes,3 planes. +//! Warning +//! For the presentation of trihedra, the default unit of +//! length is the millimetre, and the default value for the +//! representation of the axes is 100. If you modify these +//! dimensions, you must temporarily recover the Drawer. +//! From inside it, you take the aspect in which the values +//! for length are stocked. For trihedra, this is +//! Prs3d_Drawer_FirstAxisAspect. You change the +//! values inside this Aspect and recalculate the presentation. +//! If you want to use extended selection modes, different than 0, +//! you should take care of removing of the shapes from the interactive +//! context that has been computed for selection; it might be necessary +//! when you change selection mode. You can use methods Axis, Point, +//! Plane to retrieve the shapes. +class AIS_Trihedron : public AIS_InteractiveObject +{ + +public: + + + //! Initializes a trihedron entity. + Standard_EXPORT AIS_Trihedron(const Handle(Geom_Axis2Placement)& aComponent); + + //! Returns the right-handed coordinate system set in SetComponent. + const Handle(Geom_Axis2Placement)& Component() const; + + //! Constructs the right-handed coordinate system aComponent. + Standard_EXPORT void SetComponent (const Handle(Geom_Axis2Placement)& aComponent); + + //! Returns true if the trihedron object has a size other + //! than the default size of 100 mm. along each axis. + Standard_Boolean HasOwnSize() const; + + //! Sets the size aValue for the trihedron object. + //! The default value is 100 mm. + Standard_EXPORT void SetSize (const Standard_Real aValue); + + //! Removes any non-default settings for size of this + //! trihedron object. + Standard_EXPORT void UnsetSize(); + + Standard_EXPORT Standard_Real Size() const; + + //! Returns the "XAxis". + Standard_EXPORT Handle(AIS_Axis) XAxis() const; + + //! Returns the "YAxis". + Standard_EXPORT Handle(AIS_Axis) YAxis() const; + + //! Returns the main Axis. + Standard_EXPORT Handle(AIS_Axis) Axis() const; + + //! Returns the origine. + Standard_EXPORT Handle(AIS_Point) Position() const; + + //! Returns the "XYPlane". + Standard_EXPORT Handle(AIS_Plane) XYPlane() const; + + //! Returns the "XZPlane". + Standard_EXPORT Handle(AIS_Plane) XZPlane() const; + + //! Returns the "YZPlane". + Standard_EXPORT Handle(AIS_Plane) YZPlane() const; + + //! connection to default drawer implies a recomputation + //! of SubObjects values. + Standard_EXPORT virtual void SetContext (const Handle(AIS_InteractiveContext)& aCtx) Standard_OVERRIDE; + + //! Returns true if the display mode selected, aMode, is + //! valid for trihedron datums. + Standard_EXPORT Standard_Boolean AcceptDisplayMode (const Standard_Integer aMode) const Standard_OVERRIDE; + + //! Computes the presentation according to a point of view + //! given by . + //! To be Used when the associated degenerated Presentations + //! have been transformed by which is not a Pure + //! Translation. The HLR Prs can't be deducted automatically + //! WARNING : must be applied + //! to the object to display before computation !!! + Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void SetLocalTransformation (const gp_Trsf& theTransformation) Standard_OVERRIDE; + + //! Returns index 3, selection of the planes XOY, YOZ, XOZ. + Standard_EXPORT virtual Standard_Integer Signature() const Standard_OVERRIDE; + + //! Indicates that the type of Interactive Object is datum. + Standard_EXPORT virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE; + + Standard_EXPORT void SetColor (const Quantity_NameOfColor aColor) Standard_OVERRIDE; + + //! Sets the color aColor for this trihedron object. + Standard_EXPORT void SetColor (const Quantity_Color& aColor) Standard_OVERRIDE; + + Standard_EXPORT void SetTextColor (const Quantity_NameOfColor aColor); + + Standard_EXPORT Standard_Boolean HasTextColor() const; + + Standard_EXPORT Quantity_NameOfColor TextColor() const; + + Standard_EXPORT void SetArrowColor (const Quantity_NameOfColor aColor); + + Standard_EXPORT Standard_Boolean HasArrowColor() const; + + Standard_EXPORT Quantity_NameOfColor ArrowColor() const; + + //! Returns the four extremities of the trihedron from the + //! array of points, TheExtrem. + Standard_EXPORT void ExtremityPoints (TColgp_Array1OfPnt& TheExtrem) const; + + //! Removes the settings for color. + Standard_EXPORT void UnsetColor() Standard_OVERRIDE; + + //! Removes the non-default settings for width set in SetWidth. + Standard_EXPORT void UnsetWidth() Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_Trihedron,AIS_InteractiveObject) + +protected: + + + + +private: + + + Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE; + + Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE; + + Standard_EXPORT void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode); + + Standard_EXPORT void LoadSubObjects(); + + Handle(Geom_Axis2Placement) myComponent; + Handle(AIS_InteractiveObject) myShapes[7]; + Standard_Boolean myHasOwnSize; + Standard_Boolean myHasOwnTextColor; + Quantity_NameOfColor myOwnTextColor; + Standard_Boolean myHasOwnArrowColor; + Quantity_NameOfColor myOwnArrowColor; + + +}; + + +#include + + + + + +#endif // _AIS_Trihedron_HeaderFile diff --git a/src/AIS/AIS_TypeFilter.cdl b/src/AIS/AIS_TypeFilter.cdl deleted file mode 100644 index ec68021814..0000000000 --- a/src/AIS/AIS_TypeFilter.cdl +++ /dev/null @@ -1,60 +0,0 @@ --- Created on: 1997-03-06 --- 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. - -class TypeFilter from AIS inherits Filter from SelectMgr - - ---Purpose: Selects Interactive Objects through their types. The - -- filter questions each Interactive Object in local context - -- to determine whether it has an non-null owner, and if - -- so, whether it is of the desired type. If the object - -- returns true in each case, it is kept. If not, it is rejected. - -- By default, the interactive object has a None type - -- and a signature of 0. A filter for type specifies a - -- choice of type out of a range at any level enumerated - -- for type or kind. The choice could be for kind of - -- interactive object, of dimension, of unit, or type of axis, - -- plane or attribute. - -- If you want to give a particular type and signature to - -- your Interactive Object, you must redefine two virtual - -- methods: Type and Signature. - -- This filter is used in both Neutral Point and open local contexts. - -- In the Collector viewer, you can only locate - -- Interactive Objects which answer positively to the - -- positioned filters when a local context is open. - -- Warning - -- When you close a local context, all temporary - -- interactive objects are deleted, all selection modes - -- concerning the context are cancelled, and all content - -- filters are emptied. - -uses - KindOfInteractive from AIS, - EntityOwner from SelectMgr - -is - Create(aGivenKind : KindOfInteractive from AIS) - returns TypeFilter from AIS; - ---Purpose: Initializes filter for type, aGivenKind. - IsOk (me;anobj : EntityOwner from SelectMgr) - returns Boolean from Standard is redefined virtual; - ---Purpose: Returns False if the transient is not an Interactive - -- Object, or if the type of the Interactive Object is not - -- the same as that stored in the filter. - -fields - myKind : KindOfInteractive from AIS is protected; - -end TypeFilter; diff --git a/src/AIS/AIS_TypeFilter.cxx b/src/AIS/AIS_TypeFilter.cxx index 185bd917ac..74715cd7fa 100644 --- a/src/AIS/AIS_TypeFilter.cxx +++ b/src/AIS/AIS_TypeFilter.cxx @@ -14,8 +14,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + #include +#include +#include +#include AIS_TypeFilter::AIS_TypeFilter(const AIS_KindOfInteractive TheKind): myKind(TheKind){} diff --git a/src/AIS/AIS_TypeFilter.hxx b/src/AIS/AIS_TypeFilter.hxx new file mode 100644 index 0000000000..a0ddfb44d4 --- /dev/null +++ b/src/AIS/AIS_TypeFilter.hxx @@ -0,0 +1,93 @@ +// Created on: 1997-03-06 +// 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_TypeFilter_HeaderFile +#define _AIS_TypeFilter_HeaderFile + +#include +#include + +#include +#include +#include +class SelectMgr_EntityOwner; + + +class AIS_TypeFilter; +DEFINE_STANDARD_HANDLE(AIS_TypeFilter, SelectMgr_Filter) + +//! Selects Interactive Objects through their types. The +//! filter questions each Interactive Object in local context +//! to determine whether it has an non-null owner, and if +//! so, whether it is of the desired type. If the object +//! returns true in each case, it is kept. If not, it is rejected. +//! By default, the interactive object has a None type +//! and a signature of 0. A filter for type specifies a +//! choice of type out of a range at any level enumerated +//! for type or kind. The choice could be for kind of +//! interactive object, of dimension, of unit, or type of axis, +//! plane or attribute. +//! If you want to give a particular type and signature to +//! your Interactive Object, you must redefine two virtual +//! methods: Type and Signature. +//! This filter is used in both Neutral Point and open local contexts. +//! In the Collector viewer, you can only locate +//! Interactive Objects which answer positively to the +//! positioned filters when a local context is open. +//! Warning +//! When you close a local context, all temporary +//! interactive objects are deleted, all selection modes +//! concerning the context are cancelled, and all content +//! filters are emptied. +class AIS_TypeFilter : public SelectMgr_Filter +{ + +public: + + + //! Initializes filter for type, aGivenKind. + Standard_EXPORT AIS_TypeFilter(const AIS_KindOfInteractive aGivenKind); + + //! Returns False if the transient is not an Interactive + //! Object, or if the type of the Interactive Object is not + //! the same as that stored in the filter. + Standard_EXPORT virtual Standard_Boolean IsOk (const Handle(SelectMgr_EntityOwner)& anobj) const Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(AIS_TypeFilter,SelectMgr_Filter) + +protected: + + + AIS_KindOfInteractive myKind; + + +private: + + + + +}; + + + + + + + +#endif // _AIS_TypeFilter_HeaderFile diff --git a/src/AIS/AIS_TypeOfAttribute.hxx b/src/AIS/AIS_TypeOfAttribute.hxx new file mode 100644 index 0000000000..c31efd19e2 --- /dev/null +++ b/src/AIS/AIS_TypeOfAttribute.hxx @@ -0,0 +1,40 @@ +// Created on: 1996-12-11 +// 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_TypeOfAttribute_HeaderFile +#define _AIS_TypeOfAttribute_HeaderFile + + +enum AIS_TypeOfAttribute +{ +AIS_TOA_Line, +AIS_TOA_Dimension, +AIS_TOA_Wire, +AIS_TOA_Plane, +AIS_TOA_Vector, +AIS_TOA_UIso, +AIS_TOA_VIso, +AIS_TOA_Free, +AIS_TOA_UnFree, +AIS_TOA_Section, +AIS_TOA_Hidden, +AIS_TOA_Seen, +AIS_TOA_FirstAxis, +AIS_TOA_SecondAxis, +AIS_TOA_ThirdAxis +}; + +#endif // _AIS_TypeOfAttribute_HeaderFile diff --git a/src/AIS/AIS_TypeOfAxis.hxx b/src/AIS/AIS_TypeOfAxis.hxx new file mode 100644 index 0000000000..d4437deec7 --- /dev/null +++ b/src/AIS/AIS_TypeOfAxis.hxx @@ -0,0 +1,29 @@ +// Created on: 1996-12-11 +// 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_TypeOfAxis_HeaderFile +#define _AIS_TypeOfAxis_HeaderFile + +//! Declares the type of axis. +enum AIS_TypeOfAxis +{ +AIS_TOAX_Unknown, +AIS_TOAX_XAxis, +AIS_TOAX_YAxis, +AIS_TOAX_ZAxis +}; + +#endif // _AIS_TypeOfAxis_HeaderFile diff --git a/src/AIS/AIS_TypeOfDist.hxx b/src/AIS/AIS_TypeOfDist.hxx new file mode 100644 index 0000000000..38cbb3087e --- /dev/null +++ b/src/AIS/AIS_TypeOfDist.hxx @@ -0,0 +1,28 @@ +// Created on: 1996-12-11 +// 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_TypeOfDist_HeaderFile +#define _AIS_TypeOfDist_HeaderFile + +//! To declare the type of distance. +enum AIS_TypeOfDist +{ +AIS_TOD_Unknown, +AIS_TOD_Horizontal, +AIS_TOD_Vertical +}; + +#endif // _AIS_TypeOfDist_HeaderFile diff --git a/src/AIS/AIS_TypeOfIso.hxx b/src/AIS/AIS_TypeOfIso.hxx new file mode 100644 index 0000000000..65f7d46f64 --- /dev/null +++ b/src/AIS/AIS_TypeOfIso.hxx @@ -0,0 +1,28 @@ +// Created on: 1996-12-11 +// 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_TypeOfIso_HeaderFile +#define _AIS_TypeOfIso_HeaderFile + +//! Declares the type of isoparameter displayed. +enum AIS_TypeOfIso +{ +AIS_TOI_IsoU, +AIS_TOI_IsoV, +AIS_TOI_Both +}; + +#endif // _AIS_TypeOfIso_HeaderFile diff --git a/src/AIS/AIS_TypeOfPlane.hxx b/src/AIS/AIS_TypeOfPlane.hxx new file mode 100644 index 0000000000..b5dadb261b --- /dev/null +++ b/src/AIS/AIS_TypeOfPlane.hxx @@ -0,0 +1,29 @@ +// Created on: 1996-12-11 +// 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_TypeOfPlane_HeaderFile +#define _AIS_TypeOfPlane_HeaderFile + +//! Declares the type of plane. +enum AIS_TypeOfPlane +{ +AIS_TOPL_Unknown, +AIS_TOPL_XYPlane, +AIS_TOPL_XZPlane, +AIS_TOPL_YZPlane +}; + +#endif // _AIS_TypeOfPlane_HeaderFile diff --git a/src/AIS/FILES b/src/AIS/FILES index 07fc277519..82d10b5873 100755 --- a/src/AIS/FILES +++ b/src/AIS/FILES @@ -1,42 +1,174 @@ +AIS.cxx +AIS.hxx +AIS_AngleDimension.cxx +AIS_AngleDimension.hxx +AIS_AttributeFilter.cxx +AIS_AttributeFilter.hxx +AIS_AttributeFilter.lxx +AIS_Axis.cxx +AIS_Axis.hxx +AIS_Axis.lxx +AIS_BadEdgeFilter.cxx +AIS_BadEdgeFilter.hxx +AIS_C0RegularityFilter.cxx +AIS_C0RegularityFilter.hxx +AIS_Chamf2dDimension.cxx +AIS_Chamf2dDimension.hxx +AIS_Chamf2dDimension.lxx +AIS_Chamf3dDimension.cxx +AIS_Chamf3dDimension.hxx +AIS_Chamf3dDimension.lxx +AIS_Circle.cxx +AIS_Circle.hxx +AIS_Circle.lxx +AIS_ClearMode.hxx +AIS_ColoredShape.cxx +AIS_ColoredShape.hxx +AIS_ConcentricRelation.cxx +AIS_ConcentricRelation.hxx +AIS_ConnectedInteractive.cxx +AIS_ConnectedInteractive.hxx +AIS_ConnectedInteractive.lxx +AIS_ConnectStatus.hxx +AIS_DataMapIteratorOfDataMapOfILC.hxx +AIS_DataMapIteratorOfDataMapofIntegerListOfinteractive.hxx +AIS_DataMapIteratorOfDataMapOfIOStatus.hxx +AIS_DataMapIteratorOfDataMapOfSelStat.hxx +AIS_DataMapOfILC.hxx +AIS_DataMapofIntegerListOfinteractive.hxx +AIS_DataMapOfIOStatus.hxx +AIS_DataMapOfSelStat.hxx +AIS_DiameterDimension.cxx +AIS_DiameterDimension.hxx +AIS_Dimension.cxx +AIS_Dimension.hxx +AIS_DimensionOwner.cxx +AIS_DimensionOwner.hxx +AIS_DimensionSelectionMode.hxx +AIS_DisplayMode.hxx +AIS_DisplaySpecialSymbol.hxx +AIS_DisplayStatus.hxx +AIS_EllipseRadiusDimension.cxx +AIS_EllipseRadiusDimension.hxx +AIS_EqualDistanceRelation.cxx +AIS_EqualDistanceRelation.hxx +AIS_EqualDistanceRelation.lxx +AIS_EqualRadiusRelation.cxx +AIS_EqualRadiusRelation.hxx +AIS_ExclusionFilter.cxx +AIS_ExclusionFilter.hxx +AIS_ExclusionFilter.lxx +AIS_FixRelation.cxx +AIS_FixRelation.hxx +AIS_FixRelation.lxx +AIS_GlobalStatus.cxx +AIS_GlobalStatus.hxx +AIS_GlobalStatus.lxx +AIS_GraphicTool.cxx +AIS_GraphicTool.hxx +AIS_IdenticRelation.cxx +AIS_IdenticRelation.hxx +AIS_IdenticRelation.lxx +AIS_IndexedDataMapOfOwnerPrs.hxx +AIS_InteractiveContext.cxx +AIS_InteractiveContext.hxx +AIS_InteractiveContext.lxx AIS_InteractiveContext_1.cxx AIS_InteractiveContext_2.cxx AIS_InteractiveContext_3.cxx +AIS_InteractiveObject.cxx +AIS_InteractiveObject.hxx +AIS_InteractiveObject.lxx +AIS_KindOfDimension.hxx +AIS_KindOfInteractive.hxx +AIS_KindOfSurface.hxx +AIS_KindOfUnit.hxx +AIS_LengthDimension.cxx +AIS_LengthDimension.hxx +AIS_Line.cxx +AIS_Line.hxx +AIS_Line.lxx +AIS_ListIteratorOfListOfInteractive.hxx +AIS_ListOfInteractive.hxx +AIS_LocalContext.cxx +AIS_LocalContext.hxx +AIS_LocalContext.lxx AIS_LocalContext_1.cxx -AIS_NListTransient.hxx -AIS_NListIteratorOfListTransient.hxx +AIS_LocalStatus.cxx +AIS_LocalStatus.hxx +AIS_LocalStatus.lxx +AIS_MapIteratorOfMapOfInteractive.hxx +AIS_MapOfInteractive.hxx +AIS_MaxRadiusDimension.cxx +AIS_MaxRadiusDimension.hxx +AIS_MidPointRelation.cxx +AIS_MidPointRelation.hxx +AIS_MidPointRelation.lxx +AIS_MinRadiusDimension.cxx +AIS_MinRadiusDimension.hxx +AIS_MultipleConnectedInteractive.cxx +AIS_MultipleConnectedInteractive.hxx +AIS_MultipleConnectedInteractive.lxx AIS_NDataMapOfTransientIteratorOfListTransient.hxx -AIS_ColoredShape.hxx -AIS_ColoredShape.cxx -AIS_TexturedShape.hxx -AIS_TexturedShape.cxx -AIS_Triangulation.cdl -AIS_Triangulation.cxx -AIS_Dimension.hxx -AIS_Dimension.cxx -AIS_LengthDimension.hxx -AIS_LengthDimension.cxx -AIS_AngleDimension.hxx -AIS_AngleDimension.cxx -AIS_DiameterDimension.hxx -AIS_DiameterDimension.cxx -AIS_RadiusDimension.hxx -AIS_RadiusDimension.cxx -AIS_PointCloud.hxx +AIS_NListIteratorOfListTransient.hxx +AIS_NListTransient.hxx +AIS_OffsetDimension.cxx +AIS_OffsetDimension.hxx +AIS_OffsetDimension.lxx +AIS_ParallelRelation.cxx +AIS_ParallelRelation.hxx +AIS_ParallelRelation.lxx +AIS_PerpendicularRelation.cxx +AIS_PerpendicularRelation.hxx +AIS_Plane.cxx +AIS_Plane.hxx +AIS_Plane.lxx +AIS_PlaneTrihedron.cxx +AIS_PlaneTrihedron.hxx +AIS_PlaneTrihedron.lxx +AIS_Point.cxx +AIS_Point.hxx +AIS_Point.lxx AIS_PointCloud.cxx -AIS_TextLabel.hxx -AIS_TextLabel.cxx -AIS_ListOfInteractive.hxx -AIS_ListIteratorOfListOfInteractive.hxx -AIS_SequenceOfInteractive.hxx +AIS_PointCloud.hxx +AIS_PToContext.hxx +AIS_RadiusDimension.cxx +AIS_RadiusDimension.hxx +AIS_Relation.cxx +AIS_Relation.hxx +AIS_Relation.lxx +AIS_Selection.cxx +AIS_Selection.hxx +AIS_Selection.lxx +AIS_SelectStatus.hxx AIS_SequenceOfDimension.hxx -AIS_MapOfInteractive.hxx -AIS_MapIteratorOfMapOfInteractive.hxx -AIS_DataMapofIntegerListOfinteractive.hxx -AIS_DataMapIteratorOfDataMapofIntegerListOfinteractive.hxx -AIS_DataMapOfIOStatus.hxx -AIS_DataMapIteratorOfDataMapOfIOStatus.hxx -AIS_IndexedDataMapOfOwnerPrs.hxx -AIS_DataMapOfILC.hxx -AIS_DataMapIteratorOfDataMapOfILC.hxx -AIS_DataMapOfSelStat.hxx -AIS_DataMapIteratorOfDataMapOfSelStat.hxx +AIS_SequenceOfInteractive.hxx +AIS_Shape.cxx +AIS_Shape.hxx +AIS_Shape.lxx +AIS_SignatureFilter.cxx +AIS_SignatureFilter.hxx +AIS_StandardDatum.hxx +AIS_StatusOfDetection.hxx +AIS_StatusOfPick.hxx +AIS_SymmetricRelation.cxx +AIS_SymmetricRelation.hxx +AIS_SymmetricRelation.lxx +AIS_TangentRelation.cxx +AIS_TangentRelation.hxx +AIS_TextLabel.cxx +AIS_TextLabel.hxx +AIS_TexturedShape.cxx +AIS_TexturedShape.hxx +AIS_Triangulation.cxx +AIS_Triangulation.hxx +AIS_Trihedron.cxx +AIS_Trihedron.hxx +AIS_Trihedron.lxx +AIS_TypeFilter.cxx +AIS_TypeFilter.hxx +AIS_TypeOfAttribute.hxx +AIS_TypeOfAxis.hxx +AIS_TypeOfDist.hxx +AIS_TypeOfIso.hxx +AIS_TypeOfPlane.hxx diff --git a/src/APIHeaderSection/APIHeaderSection.cdl b/src/APIHeaderSection/APIHeaderSection.cdl deleted file mode 100644 index 6453ba0597..0000000000 --- a/src/APIHeaderSection/APIHeaderSection.cdl +++ /dev/null @@ -1,30 +0,0 @@ --- Created on: 1994-09-21 --- Created by: Christian CAILLET --- 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. - -package APIHeaderSection - - ---Purpose : This package gives the means to access to the Header of a - -- Step Model - -uses Standard, TCollection, Interface, IFSelect, StepData, HeaderSection - -is - - class MakeHeader; -- which provide basic access services to Step Header - - class EditHeader; -- to edit a Step Header - -end APIHeaderSection; diff --git a/src/APIHeaderSection/APIHeaderSection_EditHeader.cdl b/src/APIHeaderSection/APIHeaderSection_EditHeader.cdl deleted file mode 100644 index dcb5d54f7f..0000000000 --- a/src/APIHeaderSection/APIHeaderSection_EditHeader.cdl +++ /dev/null @@ -1,38 +0,0 @@ --- Created on: 1998-07-08 --- Created by: Christian CAILLET --- 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. - -class EditHeader from APIHeaderSection inherits Editor from IFSelect - -uses Transient, AsciiString, HAsciiString, InterfaceModel, EditForm - -is - - Create returns EditHeader; - - Label (me) returns AsciiString; - - Recognize (me; form : EditForm) returns Boolean; - - StringValue (me; form : EditForm; num : Integer) - returns HAsciiString from TCollection; - - Apply (me; form : EditForm; ent : Transient; model : InterfaceModel) - returns Boolean; - - Load (me; form : EditForm; ent : Transient; model : InterfaceModel) - returns Boolean; - -end EditHeader; diff --git a/src/APIHeaderSection/APIHeaderSection_EditHeader.cxx b/src/APIHeaderSection/APIHeaderSection_EditHeader.cxx index 5c1444bc29..9bbdca62a1 100644 --- a/src/APIHeaderSection/APIHeaderSection_EditHeader.cxx +++ b/src/APIHeaderSection/APIHeaderSection_EditHeader.cxx @@ -11,11 +11,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include #include +#include +#include +#include +#include +#include #include +#include +#include static Standard_Boolean IsTimeStamp (const Handle(TCollection_HAsciiString)& val) diff --git a/src/APIHeaderSection/APIHeaderSection_EditHeader.hxx b/src/APIHeaderSection/APIHeaderSection_EditHeader.hxx new file mode 100644 index 0000000000..52c8c414c7 --- /dev/null +++ b/src/APIHeaderSection/APIHeaderSection_EditHeader.hxx @@ -0,0 +1,78 @@ +// Created on: 1998-07-08 +// Created by: Christian CAILLET +// 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 _APIHeaderSection_EditHeader_HeaderFile +#define _APIHeaderSection_EditHeader_HeaderFile + +#include +#include + +#include +#include +#include +class TCollection_AsciiString; +class IFSelect_EditForm; +class TCollection_HAsciiString; +class Standard_Transient; +class Interface_InterfaceModel; + + +class APIHeaderSection_EditHeader; +DEFINE_STANDARD_HANDLE(APIHeaderSection_EditHeader, IFSelect_Editor) + + +class APIHeaderSection_EditHeader : public IFSelect_Editor +{ + +public: + + + Standard_EXPORT APIHeaderSection_EditHeader(); + + Standard_EXPORT TCollection_AsciiString Label() const; + + Standard_EXPORT Standard_Boolean Recognize (const Handle(IFSelect_EditForm)& form) const; + + Standard_EXPORT Handle(TCollection_HAsciiString) StringValue (const Handle(IFSelect_EditForm)& form, const Standard_Integer num) const; + + Standard_EXPORT Standard_Boolean Apply (const Handle(IFSelect_EditForm)& form, const Handle(Standard_Transient)& ent, const Handle(Interface_InterfaceModel)& model) const; + + Standard_EXPORT Standard_Boolean Load (const Handle(IFSelect_EditForm)& form, const Handle(Standard_Transient)& ent, const Handle(Interface_InterfaceModel)& model) const; + + + + + DEFINE_STANDARD_RTTI(APIHeaderSection_EditHeader,IFSelect_Editor) + +protected: + + + + +private: + + + + +}; + + + + + + + +#endif // _APIHeaderSection_EditHeader_HeaderFile diff --git a/src/APIHeaderSection/APIHeaderSection_MakeHeader.cdl b/src/APIHeaderSection/APIHeaderSection_MakeHeader.cdl deleted file mode 100644 index 60c90e3e4d..0000000000 --- a/src/APIHeaderSection/APIHeaderSection_MakeHeader.cdl +++ /dev/null @@ -1,168 +0,0 @@ --- Created on: 1993-08-12 --- Created by: Frederic MAUPAS --- 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. - -class MakeHeader from APIHeaderSection - - ---Purpose : This class allows to consult and prepare/edit data stored in - -- a Step Model Header - - uses - - StepModel from StepData, - Protocol from Interface, - FileName from HeaderSection, - FileSchema from HeaderSection, - FileDescription from HeaderSection, - Integer from Standard, - Boolean from Standard, - HAsciiString from TCollection, - HArray1OfHAsciiString from Interface - --- raises NotDone from StdFail - - is - - Create(shapetype : Integer = 0) returns MakeHeader; - ---Purpose : Prepares a new MakeHeader from scratch - - Create(model : StepModel) returns MakeHeader; - ---Purpose : Prepares a MakeHeader from the content of a StepModel - -- See IsDone to know if the Header is well defined - - Init (me : in out; nameval : CString); - ---Purpose : Cancels the former definition and gives a FileName - -- To be used when a Model has no well defined Header - - IsDone(me) returns Boolean; - ---Purpose : Returns True if all data have been defined (see also - -- HasFn, HasFs, HasFd) - - Apply (me; model : StepModel); - ---Purpose : Creates an empty header for a new - -- STEP model and allows the header fields to be completed. - - - NewModel (me; protocol : Protocol from Interface) returns StepModel; - ---Purpose : Builds a Header, creates a new StepModel, then applies the - -- Header to the StepModel - -- The Schema Name is taken from the Protocol (if it inherits - -- from StepData, else it is left in blanks) - - --- Specific Methods for FileName Entity - - HasFn (me) returns Boolean; - ---Purpose: Checks whether there is a - -- file_name entity. Returns True if there is one. - - FnValue (me) returns FileName from HeaderSection; - ---Purpose: Returns the file_name entity. - -- Returns an empty entity if the file_name entity is not initialized. - - SetName(me : in out; aName : HAsciiString); - - Name (me) returns HAsciiString; - ---Purpose: Returns the name attribute for the file_name entity. - SetTimeStamp(me : in out; aTimeStamp : HAsciiString); - TimeStamp (me) returns HAsciiString; - --- Purpose: Returns the value of the time_stamp attribute for the file_name entity. - SetAuthor(me : in out; aAuthor : HArray1OfHAsciiString); - SetAuthorValue(me : in out; num : Integer; aAuthor : HAsciiString); - Author (me) returns HArray1OfHAsciiString; - AuthorValue (me; num : Integer) returns HAsciiString; - ---Purpose: Returns the value of the name attribute for the file_name entity. - - NbAuthor (me) returns Integer; - ---Purpose: Returns the number of values for the author attribute in the file_name entity. - - SetOrganization(me : in out; - aOrganization : HArray1OfHAsciiString); - SetOrganizationValue(me : in out; num : Integer; - aOrganization : HAsciiString); - Organization (me) returns HArray1OfHAsciiString; - OrganizationValue (me; num : Integer) returns HAsciiString; - --- Purpose: Returns the value of attribute - -- organization for the file_name entity. - - NbOrganization (me) returns Integer; - --- Purpose: Returns the number of values for - -- the organization attribute in the file_name entity. - - SetPreprocessorVersion(me : in out; - aPreprocessorVersion : HAsciiString); - PreprocessorVersion (me) returns HAsciiString; - ---Purpose: Returns the name of the preprocessor_version for the file_name entity. - - SetOriginatingSystem(me : in out; aOriginatingSystem : HAsciiString); - OriginatingSystem (me) returns HAsciiString; - SetAuthorisation(me : in out; aAuthorisation : HAsciiString); - Authorisation (me) returns HAsciiString; - ---Purpose: Returns the value of the authorization attribute for the file_name entity. - - HasFs (me) returns Boolean; - ---Purpose: Checks whether there is a file_schema entity. Returns True if there is one. - - FsValue (me) returns FileSchema from HeaderSection; - ---Purpose: Returns the file_schema entity. Returns an empty entity if the file_schema entity is not initialized. - - SetSchemaIdentifiers(me : in out; aSchemaIdentifiers : HArray1OfHAsciiString); - SetSchemaIdentifiersValue(me : in out; num : Integer; - aSchemaIdentifier : HAsciiString); - SchemaIdentifiers (me) returns HArray1OfHAsciiString; - SchemaIdentifiersValue (me; num : Integer) returns HAsciiString; - --- Purpose: Returns the value of the schema_identifier attribute for the file_schema entity. - - NbSchemaIdentifiers (me) returns Integer; - ---Purpose: Returns the number of values for the schema_identifier attribute in the file_schema entity. - - AddSchemaIdentifier (me: in out; aSchemaIdentifier : HAsciiString); - ---Purpose: Add a subname of schema (if not yet in the list) - - --- Specific Methods for FileDescription Entity - - HasFd (me) returns Boolean; - --- Purpose: Checks whether there is a file_description entity. Returns True if there is one. - - FdValue (me) returns FileDescription from HeaderSection; - ---Purpose: Returns the file_description - -- entity. Returns an empty entity if the file_description entity is not initialized. - - SetDescription(me : in out; - aDescription : HArray1OfHAsciiString); - SetDescriptionValue(me : in out; num : Integer; - aDescription : HAsciiString); - Description (me) returns HArray1OfHAsciiString; - DescriptionValue (me; num : Integer) returns HAsciiString; - --- Purpose: Returns the value of the - -- description attribute for the file_description entity. - - NbDescription (me) returns Integer; - --- Purpose: Returns the number of values for - -- the file_description entity in the STEP file header. - - SetImplementationLevel(me : in out; - aImplementationLevel : HAsciiString); - ImplementationLevel (me) returns HAsciiString; - ---Purpose: Returns the value of the - -- implementation_level attribute for the file_description entity. - - fields - - done : Boolean; - fn : FileName; - fs : FileSchema; - fd : FileDescription; - -end MakeHeader; diff --git a/src/APIHeaderSection/APIHeaderSection_MakeHeader.cxx b/src/APIHeaderSection/APIHeaderSection_MakeHeader.cxx index 1680da0c6f..1ce12440d2 100644 --- a/src/APIHeaderSection/APIHeaderSection_MakeHeader.cxx +++ b/src/APIHeaderSection/APIHeaderSection_MakeHeader.cxx @@ -17,26 +17,22 @@ //#58 rln 28.12.98 STEP header fields (NOTE: more parameterization is necessary) //pdn 11.01.99 including for compilation on NT -#include -#include -#include -#include - -#include -#include +#include #include - -#include - +#include +#include +#include #include - +#include #include +#include #include -#include +#include +#include +#include +#include // This is a generic header for any STEP sheme - - static Handle(TCollection_HAsciiString) nulstr; static Handle(Interface_HArray1OfHAsciiString) nularr; diff --git a/src/APIHeaderSection/APIHeaderSection_MakeHeader.hxx b/src/APIHeaderSection/APIHeaderSection_MakeHeader.hxx new file mode 100644 index 0000000000..30897dec5d --- /dev/null +++ b/src/APIHeaderSection/APIHeaderSection_MakeHeader.hxx @@ -0,0 +1,203 @@ +// Created on: 1993-08-12 +// Created by: Frederic MAUPAS +// 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 _APIHeaderSection_MakeHeader_HeaderFile +#define _APIHeaderSection_MakeHeader_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class HeaderSection_FileName; +class HeaderSection_FileSchema; +class HeaderSection_FileDescription; +class StepData_StepModel; +class Interface_Protocol; +class TCollection_HAsciiString; + + +//! This class allows to consult and prepare/edit data stored in +//! a Step Model Header +class APIHeaderSection_MakeHeader +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Prepares a new MakeHeader from scratch + Standard_EXPORT APIHeaderSection_MakeHeader(const Standard_Integer shapetype = 0); + + //! Prepares a MakeHeader from the content of a StepModel + //! See IsDone to know if the Header is well defined + Standard_EXPORT APIHeaderSection_MakeHeader(const Handle(StepData_StepModel)& model); + + //! Cancels the former definition and gives a FileName + //! To be used when a Model has no well defined Header + Standard_EXPORT void Init (const Standard_CString nameval); + + //! Returns True if all data have been defined (see also + //! HasFn, HasFs, HasFd) + Standard_EXPORT Standard_Boolean IsDone() const; + + //! Creates an empty header for a new + //! STEP model and allows the header fields to be completed. + Standard_EXPORT void Apply (const Handle(StepData_StepModel)& model) const; + + //! Builds a Header, creates a new StepModel, then applies the + //! Header to the StepModel + //! The Schema Name is taken from the Protocol (if it inherits + //! from StepData, else it is left in blanks) + Standard_EXPORT Handle(StepData_StepModel) NewModel (const Handle(Interface_Protocol)& protocol) const; + + //! Checks whether there is a + //! file_name entity. Returns True if there is one. + Standard_EXPORT Standard_Boolean HasFn() const; + + //! Returns the file_name entity. + //! Returns an empty entity if the file_name entity is not initialized. + Standard_EXPORT Handle(HeaderSection_FileName) FnValue() const; + + Standard_EXPORT void SetName (const Handle(TCollection_HAsciiString)& aName); + + //! Returns the name attribute for the file_name entity. + Standard_EXPORT Handle(TCollection_HAsciiString) Name() const; + + Standard_EXPORT void SetTimeStamp (const Handle(TCollection_HAsciiString)& aTimeStamp); + + //! Returns the value of the time_stamp attribute for the file_name entity. + Standard_EXPORT Handle(TCollection_HAsciiString) TimeStamp() const; + + Standard_EXPORT void SetAuthor (const Handle(Interface_HArray1OfHAsciiString)& aAuthor); + + Standard_EXPORT void SetAuthorValue (const Standard_Integer num, const Handle(TCollection_HAsciiString)& aAuthor); + + Standard_EXPORT Handle(Interface_HArray1OfHAsciiString) Author() const; + + //! Returns the value of the name attribute for the file_name entity. + Standard_EXPORT Handle(TCollection_HAsciiString) AuthorValue (const Standard_Integer num) const; + + //! Returns the number of values for the author attribute in the file_name entity. + Standard_EXPORT Standard_Integer NbAuthor() const; + + Standard_EXPORT void SetOrganization (const Handle(Interface_HArray1OfHAsciiString)& aOrganization); + + Standard_EXPORT void SetOrganizationValue (const Standard_Integer num, const Handle(TCollection_HAsciiString)& aOrganization); + + Standard_EXPORT Handle(Interface_HArray1OfHAsciiString) Organization() const; + + //! Returns the value of attribute + //! organization for the file_name entity. + Standard_EXPORT Handle(TCollection_HAsciiString) OrganizationValue (const Standard_Integer num) const; + + //! Returns the number of values for + //! the organization attribute in the file_name entity. + Standard_EXPORT Standard_Integer NbOrganization() const; + + Standard_EXPORT void SetPreprocessorVersion (const Handle(TCollection_HAsciiString)& aPreprocessorVersion); + + //! Returns the name of the preprocessor_version for the file_name entity. + Standard_EXPORT Handle(TCollection_HAsciiString) PreprocessorVersion() const; + + Standard_EXPORT void SetOriginatingSystem (const Handle(TCollection_HAsciiString)& aOriginatingSystem); + + Standard_EXPORT Handle(TCollection_HAsciiString) OriginatingSystem() const; + + Standard_EXPORT void SetAuthorisation (const Handle(TCollection_HAsciiString)& aAuthorisation); + + //! Returns the value of the authorization attribute for the file_name entity. + Standard_EXPORT Handle(TCollection_HAsciiString) Authorisation() const; + + //! Checks whether there is a file_schema entity. Returns True if there is one. + Standard_EXPORT Standard_Boolean HasFs() const; + + //! Returns the file_schema entity. Returns an empty entity if the file_schema entity is not initialized. + Standard_EXPORT Handle(HeaderSection_FileSchema) FsValue() const; + + Standard_EXPORT void SetSchemaIdentifiers (const Handle(Interface_HArray1OfHAsciiString)& aSchemaIdentifiers); + + Standard_EXPORT void SetSchemaIdentifiersValue (const Standard_Integer num, const Handle(TCollection_HAsciiString)& aSchemaIdentifier); + + Standard_EXPORT Handle(Interface_HArray1OfHAsciiString) SchemaIdentifiers() const; + + //! Returns the value of the schema_identifier attribute for the file_schema entity. + Standard_EXPORT Handle(TCollection_HAsciiString) SchemaIdentifiersValue (const Standard_Integer num) const; + + //! Returns the number of values for the schema_identifier attribute in the file_schema entity. + Standard_EXPORT Standard_Integer NbSchemaIdentifiers() const; + + //! Add a subname of schema (if not yet in the list) + Standard_EXPORT void AddSchemaIdentifier (const Handle(TCollection_HAsciiString)& aSchemaIdentifier); + + //! Checks whether there is a file_description entity. Returns True if there is one. + Standard_EXPORT Standard_Boolean HasFd() const; + + //! Returns the file_description + //! entity. Returns an empty entity if the file_description entity is not initialized. + Standard_EXPORT Handle(HeaderSection_FileDescription) FdValue() const; + + Standard_EXPORT void SetDescription (const Handle(Interface_HArray1OfHAsciiString)& aDescription); + + Standard_EXPORT void SetDescriptionValue (const Standard_Integer num, const Handle(TCollection_HAsciiString)& aDescription); + + Standard_EXPORT Handle(Interface_HArray1OfHAsciiString) Description() const; + + //! Returns the value of the + //! description attribute for the file_description entity. + Standard_EXPORT Handle(TCollection_HAsciiString) DescriptionValue (const Standard_Integer num) const; + + //! Returns the number of values for + //! the file_description entity in the STEP file header. + Standard_EXPORT Standard_Integer NbDescription() const; + + Standard_EXPORT void SetImplementationLevel (const Handle(TCollection_HAsciiString)& aImplementationLevel); + + //! Returns the value of the + //! implementation_level attribute for the file_description entity. + Standard_EXPORT Handle(TCollection_HAsciiString) ImplementationLevel() const; + + + + +protected: + + + + + +private: + + + + Standard_Boolean done; + Handle(HeaderSection_FileName) fn; + Handle(HeaderSection_FileSchema) fs; + Handle(HeaderSection_FileDescription) fd; + + +}; + + + + + + + +#endif // _APIHeaderSection_MakeHeader_HeaderFile diff --git a/src/APIHeaderSection/FILES b/src/APIHeaderSection/FILES new file mode 100644 index 0000000000..41bf0dd0ec --- /dev/null +++ b/src/APIHeaderSection/FILES @@ -0,0 +1,4 @@ +APIHeaderSection_EditHeader.cxx +APIHeaderSection_EditHeader.hxx +APIHeaderSection_MakeHeader.cxx +APIHeaderSection_MakeHeader.hxx diff --git a/src/Adaptor2d/Adaptor2d.cdl b/src/Adaptor2d/Adaptor2d.cdl deleted file mode 100644 index 2563f42bbe..0000000000 --- a/src/Adaptor2d/Adaptor2d.cdl +++ /dev/null @@ -1,168 +0,0 @@ --- Created on: 1992-10-08 --- Created by: Isabelle GRIGNON --- 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. - -package Adaptor2d - - ---Purpose: The Adaptor2d package is used to help defining - -- reusable geometric algorithms. i.e. that can be - -- used on curves and surfaces. - -- - -- It defines general services for objects : - -- - -- - the 2d curve. Curve2d - -- - -- The services are : - -- - -- - Usual services found in Geom or Geom2d : - -- - -- * parameter range, value and derivatives, etc... - -- - -- - Continuity breakout services : - -- - -- * Allows to divide a curve or a surfaces in - -- parts with a given derivation order. - -- - -- - Special geometries detection services : - -- - -- * Allows to test for special cases that can - -- be processed more easily : - -- - Conics, Quadrics, Bezier, BSpline ... - -- - -- And to get the correponding data form the - -- package gp or Geom. The special type - -- OtherCurve means that no special case has - -- been detected and the algorithm may use - -- only the evaluation methods (D0, D1, ...) - -- - -- - -- For each category Curve2d, Curve, Surface we - -- define three classes, we illustrate now the - -- principles with the Curve, the same applies to - -- Curve2d and Surface. - -- - -- The class Curve is the abstract root for all - -- Curves used by algorithms, it is handled by value - -- and provides as deferred methods the services - -- described above. - -- - -- Some services (breakout) requires to create new - -- curves, this leads to memory allocation - -- considerations (who create the curve, who deletes - -- it ?). To solve this problem elegantly the curve - -- will return a HCurve, the HCurve is a curve - -- handled by reference so it will be deallocated - -- automatically when it is not used. - -- - -- A third class GenHCurve is provided, this class is - -- generic and its utility is to provide automatic - -- generation of the HCurve class when you have - -- written the Curve class. - -- - -- - -- * Let us show an example (with 2d curves) : - -- - -- Imagine an algorithm to intersect curves, this - -- algorithms is written to process Curve2d from - -- Adaptor2d : - -- - -- A method may look like : - -- - -- Intersect(C1,C2 : Curve2d from Adaptor2d); - -- - -- Which will look like in C++ - -- - -- Intersect(const Adaptor2d_Curve2d& C1, - -- const Adaptor2d_Curve2d& C2) - -- { - -- // you can call any method - -- Standard_Real first1 = C1.FirstParameter(); - -- - -- // but avoid to copy in an Adaptor2d_Curve which - -- // is an Abstract class, use a reference or a pointer - -- - -- const Adaptor2d_Curve& C = C1; - -- const Adaptor2d_Curve *pC = &C1; - -- - -- // If you are interseted in Intervals you must - -- // store them in a HCurve to ensure they are kept - -- // in memory. Then a referrence may be used. - -- - -- Handle(Adaptor2d_HCurve) HCI = C1.Interval(1); - -- - -- const Adaptor2d_Curve& CI = HCI->Curve(); - -- pC = &(HCI->Curve()); - -- - -- - -- * The Adaptor2d provides also Generic classes - -- implementing algorithmic curves and surfaces. - -- - -- - IsoCurve : Isoparametric curve on a surface. - -- - CurveOnSurface : 2D curve in the parametric - -- space of a surface. - -- - -- - -- - OffsetCurve2d : 2d offset curve - -- - ProjectedCurve : 3d curve projected on a plane - -- - SurfaceOfLinearExtrusion - -- - SurfaceOfRevolution - -- - -- They are instantiated with HCurve, HSurface, HCurved2d - -uses - Standard, - MMgt, - TColStd, - GeomAbs, - TColgp, - gp, - Geom2d, - math - -is - - deferred class Curve2d; - - pointer Curve2dPtr to Curve2d from Adaptor2d; - - deferred class HCurve2d; - - generic class GenHCurve2d; - - - - - -- - -- The following classes are used to define an abstract - -- simplified "topology" for surfaces. This is used by - -- algorithm as mass properties or surface intersections. - -- - - - class Line2d; - - class HLine2d instantiates GenHCurve2d(Line2d from Adaptor2d); - ---Purpose: Use by the TopolTool to trim a surface. - - -- - -- The following classes provides algorithmic curves and - -- surface, they are inheriting from Curve and Surface and the - -- correponding HCurve and HSurface is instantiated. - -- - -- - - - -end Adaptor2d; diff --git a/src/Adaptor2d/Adaptor2d_Curve2d.cdl b/src/Adaptor2d/Adaptor2d_Curve2d.cdl deleted file mode 100644 index 70ccdaa66e..0000000000 --- a/src/Adaptor2d/Adaptor2d_Curve2d.cdl +++ /dev/null @@ -1,234 +0,0 @@ --- Created on: 1993-04-02 --- Created by: Bruno DUMORTIER --- 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. - -deferred class Curve2d from Adaptor2d - - ---Purpose: Root class for 2D curves on which geometric - -- algorithms work. - -- An adapted curve is an interface between the - -- services provided by a curve, and those required of - -- the curve by algorithms, which use it. - -- A derived concrete class is provided: - -- Geom2dAdaptor_Curve for a curve from the Geom2d package. - -uses - - Array1OfReal from TColStd, - Shape from GeomAbs, - CurveType from GeomAbs, - Vec2d from gp, - Pnt2d from gp, - Circ2d from gp, - Elips2d from gp, - Hypr2d from gp, - Parab2d from gp, - Lin2d from gp, - BezierCurve from Geom2d, - BSplineCurve from Geom2d, - HCurve2d from Adaptor2d - -raises - - OutOfRange from Standard, - NoSuchObject from Standard, - DomainError from Standard - -is - - -- - -- Global methods - Apply to the whole curve. - -- - - FirstParameter(me) returns Real - is virtual; - - LastParameter(me) returns Real - is virtual; - - Continuity(me) returns Shape from GeomAbs - is virtual; - - NbIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: If necessary, breaks the curve in intervals of - -- continuity . And returns the number of - -- intervals. - is virtual; - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - raises - OutOfRange from Standard - is virtual; - - Trim(me; First, Last, Tol : Real) returns HCurve2d from Adaptor2d - ---Purpose: Returns a curve equivalent of between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is virtual; - - -- - -- Local methods - Apply to the current interval. - -- By default the current interval is the first. - -- - - IsClosed(me) returns Boolean - is virtual; - - IsPeriodic(me) returns Boolean - is virtual; - - Period(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - is virtual; - - Value(me; U : Real) returns Pnt2d from gp - --- Purpose : Computes the point of parameter U on the curve. - is virtual; - - D0 (me; U : Real; P : out Pnt2d from gp) - --- Purpose : Computes the point of parameter U on the curve. - is virtual; - - D1 (me; U : Real; P : out Pnt2d from gp ; V : out Vec2d from gp) - --- Purpose : Computes the point of parameter U on the curve with its - -- first derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C1. - is virtual; - - D2 (me; U : Real; P : out Pnt2d from gp; V1, V2 : out Vec2d from gp) - --- Purpose : - -- Returns the point P of parameter U, the first and second - -- derivatives V1 and V2. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C2. - is virtual; - - D3 (me; U : Real; P : out Pnt2d from gp; V1, V2, V3 : out Vec2d from gp) - --- Purpose : - -- Returns the point P of parameter U, the first, the second - -- and the third derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C3. - is virtual; - - DN (me; U : Real; N : Integer) returns Vec2d from gp - --- Purpose : - -- The returned vector gives the value of the derivative for the - -- order of derivation N. - raises - DomainError from Standard, - --- Purpose : Raised if the continuity of the current interval - -- is not CN. - OutOfRange from Standard - --- Purpose : Raised if N < 1. - is virtual; - - Resolution(me; R3d : Real) returns Real - ---Purpose : Returns the parametric resolution corresponding - -- to the real space resolution . - is virtual; - - GetType(me) returns CurveType from GeomAbs - ---Purpose: Returns the type of the curve in the current - -- interval : Line, Circle, Ellipse, Hyperbola, - -- Parabola, BezierCurve, BSplineCurve, OtherCurve. - is virtual; - - -- - -- The following methods must be called when GetType returned - -- the corresponding type. - -- - - Line(me) returns Lin2d from gp - raises - NoSuchObject from Standard - is virtual; - - Circle(me) returns Circ2d from gp - raises - NoSuchObject from Standard - is virtual; - - Ellipse(me) returns Elips2d from gp - raises - NoSuchObject from Standard - is virtual; - - Hyperbola(me) returns Hypr2d from gp - raises - NoSuchObject from Standard - is virtual; - - Parabola(me) returns Parab2d from gp - raises - NoSuchObject from Standard - is virtual; - - - Degree(me) returns Integer - raises - NoSuchObject from Standard - is virtual; - - IsRational(me) returns Boolean - raises - NoSuchObject from Standard - is virtual; - - NbPoles(me) returns Integer - raises - NoSuchObject from Standard - is virtual; - - - NbKnots(me) returns Integer - raises - NoSuchObject from Standard - is virtual; - - NbSamples(me) returns Integer from Standard is virtual; - - Bezier(me) returns BezierCurve from Geom2d - raises - NoSuchObject from Standard - is virtual; - - BSpline(me) returns BSplineCurve from Geom2d - raises - NoSuchObject from Standard - is virtual; - - ---C++: alias " Standard_EXPORT virtual ~Adaptor2d_Curve2d();" - -end Curve2d; - - diff --git a/src/Adaptor2d/Adaptor2d_Curve2d.cxx b/src/Adaptor2d/Adaptor2d_Curve2d.cxx index f029cdaba6..52411099ce 100644 --- a/src/Adaptor2d/Adaptor2d_Curve2d.cxx +++ b/src/Adaptor2d/Adaptor2d_Curve2d.cxx @@ -14,15 +14,27 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : ~Adaptor2d_Curve2d //purpose : Destructor //======================================================================= - Adaptor2d_Curve2d::~Adaptor2d_Curve2d() { } diff --git a/src/Adaptor2d/Adaptor2d_Curve2d.hxx b/src/Adaptor2d/Adaptor2d_Curve2d.hxx new file mode 100644 index 0000000000..5d119884bd --- /dev/null +++ b/src/Adaptor2d/Adaptor2d_Curve2d.hxx @@ -0,0 +1,180 @@ +// Created on: 1993-04-02 +// Created by: Bruno DUMORTIER +// 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 _Adaptor2d_Curve2d_HeaderFile +#define _Adaptor2d_Curve2d_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class Adaptor2d_HCurve2d; +class gp_Pnt2d; +class gp_Vec2d; +class gp_Lin2d; +class gp_Circ2d; +class gp_Elips2d; +class gp_Hypr2d; +class gp_Parab2d; +class Geom2d_BezierCurve; +class Geom2d_BSplineCurve; + + +//! Root class for 2D curves on which geometric +//! algorithms work. +//! An adapted curve is an interface between the +//! services provided by a curve, and those required of +//! the curve by algorithms, which use it. +//! A derived concrete class is provided: +//! Geom2dAdaptor_Curve for a curve from the Geom2d package. +class Adaptor2d_Curve2d +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT virtual Standard_Real FirstParameter() const; + + Standard_EXPORT virtual Standard_Real LastParameter() const; + + Standard_EXPORT virtual GeomAbs_Shape Continuity() const; + + //! If necessary, breaks the curve in intervals of + //! continuity . And returns the number of + //! intervals. + Standard_EXPORT virtual Standard_Integer NbIntervals (const GeomAbs_Shape S) const; + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! + //! The array must provide enough room to accomodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT virtual void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const; + + //! Returns a curve equivalent of between + //! parameters and . is used to + //! test for 3d points confusion. + //! If >= + Standard_EXPORT virtual Handle(Adaptor2d_HCurve2d) Trim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const; + + Standard_EXPORT virtual Standard_Boolean IsClosed() const; + + Standard_EXPORT virtual Standard_Boolean IsPeriodic() const; + + Standard_EXPORT virtual Standard_Real Period() const; + + //! Computes the point of parameter U on the curve. + Standard_EXPORT virtual gp_Pnt2d Value (const Standard_Real U) const; + + //! Computes the point of parameter U on the curve. + Standard_EXPORT virtual void D0 (const Standard_Real U, gp_Pnt2d& P) const; + + //! 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 virtual void D1 (const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V) const; + + + //! 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 virtual void D2 (const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2) const; + + + //! 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 virtual void D3 (const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2, gp_Vec2d& V3) const; + + + //! 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 virtual gp_Vec2d DN (const Standard_Real U, const Standard_Integer N) const; + + //! Returns the parametric resolution corresponding + //! to the real space resolution . + Standard_EXPORT virtual Standard_Real Resolution (const Standard_Real R3d) const; + + //! Returns the type of the curve in the current + //! interval : Line, Circle, Ellipse, Hyperbola, + //! Parabola, BezierCurve, BSplineCurve, OtherCurve. + Standard_EXPORT virtual GeomAbs_CurveType GetType() const; + + Standard_EXPORT virtual gp_Lin2d Line() const; + + Standard_EXPORT virtual gp_Circ2d Circle() const; + + Standard_EXPORT virtual gp_Elips2d Ellipse() const; + + Standard_EXPORT virtual gp_Hypr2d Hyperbola() const; + + Standard_EXPORT virtual gp_Parab2d Parabola() const; + + Standard_EXPORT virtual Standard_Integer Degree() const; + + Standard_EXPORT virtual Standard_Boolean IsRational() const; + + Standard_EXPORT virtual Standard_Integer NbPoles() const; + + Standard_EXPORT virtual Standard_Integer NbKnots() const; + + Standard_EXPORT virtual Standard_Integer NbSamples() const; + + Standard_EXPORT virtual Handle(Geom2d_BezierCurve) Bezier() const; + + Standard_EXPORT virtual Handle(Geom2d_BSplineCurve) BSpline() const; + Standard_EXPORT virtual ~Adaptor2d_Curve2d(); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _Adaptor2d_Curve2d_HeaderFile diff --git a/src/Adaptor2d/Adaptor2d_Curve2dPtr.hxx b/src/Adaptor2d/Adaptor2d_Curve2dPtr.hxx new file mode 100644 index 0000000000..1c781d4de8 --- /dev/null +++ b/src/Adaptor2d/Adaptor2d_Curve2dPtr.hxx @@ -0,0 +1,23 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 _Adaptor2d_Curve2dPtr_HeaderFile +#define _Adaptor2d_Curve2dPtr_HeaderFile + +class Adaptor2d_Curve2d; +typedef Adaptor2d_Curve2d* Adaptor2d_Curve2dPtr; + +#endif // _Adaptor2d_Curve2dPtr_HeaderFile diff --git a/src/Adaptor2d/Adaptor2d_GenHCurve2d.cdl b/src/Adaptor2d/Adaptor2d_GenHCurve2d.cdl deleted file mode 100644 index 25d792b7fc..0000000000 --- a/src/Adaptor2d/Adaptor2d_GenHCurve2d.cdl +++ /dev/null @@ -1,78 +0,0 @@ --- Created on: 1994-02-23 --- Created by: model --- 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. - -generic class GenHCurve2d from Adaptor2d - (TheCurve as Curve2d from Adaptor2d) - -inherits HCurve2d from Adaptor2d - - ---Purpose: Generic class used to create a curve2d manipulated - -- with Handle from a curve2d described by the class Curve2d. - -uses - - Curve2d from Adaptor2d - - -raises - - OutOfRange from Standard, - NoSuchObject from Standard, - DomainError from Standard - -is - - Create - ---Purpose: Creates an empty GenHCurve2d. - returns GenHCurve2d from Adaptor2d; - - - Create(C: TheCurve) - - ---Purpose: Creates a GenHCurve2d from a Curve - returns GenHCurve2d from Adaptor2d; - - - Set(me: mutable; C: TheCurve) - - ---Purpose: Sets the field of the GenHCurve2d. - is static; - - Curve2d(me) - - ---Purpose: Returns the curve used to create the GenHCurve2d. - -- This is redefined from HCurve2d, cannot be inline. - -- - ---C++: return const & - - returns Curve2d from Adaptor2d - is static; - - ChangeCurve2d(me : mutable) - - ---Purpose: Returns the curve used to create the GenHCurve. - -- - ---C++: return & - ---C++: inline - - returns TheCurve; - - -fields - - myCurve : TheCurve is protected; - -end GenHCurve2d; diff --git a/src/Adaptor2d/Adaptor2d_HCurve2d.cdl b/src/Adaptor2d/Adaptor2d_HCurve2d.cdl deleted file mode 100644 index 034e33f700..0000000000 --- a/src/Adaptor2d/Adaptor2d_HCurve2d.cdl +++ /dev/null @@ -1,215 +0,0 @@ --- Created on: 1994-02-23 --- Created by: model --- 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. - -deferred class HCurve2d from Adaptor2d inherits TShared from MMgt - - ---Purpose: Root class for 2D curves manipulated by handles, on - -- which geometric algorithms work. - -- An adapted curve is an interface between the - -- services provided by a curve, and those required of - -- the curve by algorithms, which use it. - -- A derived specific class is provided: - -- Geom2dAdaptor_HCurve for a curve from the Geom2d package. - - - -uses - - Array1OfReal from TColStd, - Shape from GeomAbs, - CurveType from GeomAbs, - Vec2d from gp, - Pnt2d from gp, - Circ2d from gp, - Elips2d from gp, - Hypr2d from gp, - Parab2d from gp, - Lin2d from gp, - BezierCurve from Geom2d, - BSplineCurve from Geom2d, - Curve2d from Adaptor2d - -raises - - OutOfRange from Standard, - NoSuchObject from Standard, - DomainError from Standard, - NotImplemented from Standard - -is - - -- - -- Access to the curve - -- - - Curve2d(me) returns Curve2d from Adaptor2d - ---Purpose: Returns a reference to the Curve2d inside the HCurve2d. - -- - ---C++: return const & - is deferred; - - - -- Curve methods, they are provided for convenience. Each - -- method M() is defined inline as : - -- - -- Adaptor_HCurve::M() { Curve().M(); } - -- - -- See the class Curve for comments on the methods. - -- - -- - -- Global methods - Apply to the whole curve. - -- - - FirstParameter(me) returns Real ; - ---C++: inline - LastParameter(me) returns Real ; - ---C++: inline - - Continuity(me) returns Shape from GeomAbs ; - ---C++: inline - -- - - NbIntervals(me ; S : Shape from GeomAbs) returns Integer ; - ---C++: inline - -- - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---C++: inline - raises - OutOfRange from Standard - is static; - - Trim(me; First, Last, Tol : Real) returns HCurve2d from Adaptor2d - ---C++: inline - raises - OutOfRange from Standard - ---Purpose: If >= - is static; - - -- - -- Local methods - Apply to the current interval. - -- By default the current interval is the first. - -- - - IsClosed(me) returns Boolean ; - ---C++: inline - -- - - IsPeriodic(me) returns Boolean ; - ---C++: inline - -- - - Period(me) returns Real ; - ---C++: inline - -- - - Value(me; U : Real) returns Pnt2d from gp ; - ---C++: inline - -- - - D0 (me; U : Real; P : out Pnt2d from gp) ; - ---C++: inline - -- - - D1 (me; U : Real; P : out Pnt2d from gp ; V : out Vec2d from gp) ; - ---C++: inline - -- - - D2 (me; U : Real; P : out Pnt2d from gp; - V1, V2 : out Vec2d from gp) ; - ---C++: inline - -- - - D3 (me; U : Real; P : out Pnt2d from gp; - V1, V2, V3 : out Vec2d from gp) ; - ---C++: inline - -- - - DN (me; U : Real; N : Integer) returns Vec2d from gp ; - ---C++: inline - -- - - Resolution(me; R3d : Real) returns Real ; - ---C++: inline - -- - - GetType(me) returns CurveType from GeomAbs ; - ---C++: inline - -- - - -- - -- The following methods must be called when GetType returned - -- the corresponding type. - -- - - Line(me) returns Lin2d from gp ; - ---C++: inline - -- - - Circle(me) returns Circ2d from gp ; - ---C++: inline - -- - - Ellipse(me) returns Elips2d from gp ; - ---C++: inline - -- - - Hyperbola(me) returns Hypr2d from gp ; - ---C++: inline - -- - - Parabola(me) returns Parab2d from gp ; - ---C++: inline - -- - - Degree(me) returns Integer - ---C++: inline - raises - NoSuchObject from Standard ; - - IsRational(me) returns Boolean - ---C++: inline - raises - NoSuchObject from Standard ; - - - NbPoles(me) returns Integer - ---C++: inline - raises - NoSuchObject from Standard ; - - - NbKnots(me) returns Integer - ---C++: inline - raises - NoSuchObject from Standard ; - - - Bezier(me) returns BezierCurve from Geom2d - ---C++: inline - raises - NoSuchObject from Standard; - - BSpline(me) returns BSplineCurve from Geom2d - ---C++: inline - raises - NoSuchObject from Standard, - OutOfRange from Standard -- if TK has not length NbKnots - is virtual; - - -end HCurve2d; diff --git a/src/Adaptor2d/Adaptor2d_HCurve2d.cxx b/src/Adaptor2d/Adaptor2d_HCurve2d.cxx index fb0d25c290..b4a7e3b40b 100644 --- a/src/Adaptor2d/Adaptor2d_HCurve2d.cxx +++ b/src/Adaptor2d/Adaptor2d_HCurve2d.cxx @@ -11,5 +11,15 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include diff --git a/src/Adaptor2d/Adaptor2d_HCurve2d.hxx b/src/Adaptor2d/Adaptor2d_HCurve2d.hxx new file mode 100644 index 0000000000..13053640d2 --- /dev/null +++ b/src/Adaptor2d/Adaptor2d_HCurve2d.hxx @@ -0,0 +1,148 @@ +// Created on: 1994-02-23 +// Created by: model +// 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 _Adaptor2d_HCurve2d_HeaderFile +#define _Adaptor2d_HCurve2d_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class Standard_NotImplemented; +class Adaptor2d_Curve2d; +class gp_Pnt2d; +class gp_Vec2d; +class Geom2d_BezierCurve; +class Geom2d_BSplineCurve; + + +class Adaptor2d_HCurve2d; +DEFINE_STANDARD_HANDLE(Adaptor2d_HCurve2d, MMgt_TShared) + +//! Root class for 2D curves manipulated by handles, on +//! which geometric algorithms work. +//! An adapted curve is an interface between the +//! services provided by a curve, and those required of +//! the curve by algorithms, which use it. +//! A derived specific class is provided: +//! Geom2dAdaptor_HCurve for a curve from the Geom2d package. +class Adaptor2d_HCurve2d : public MMgt_TShared +{ + +public: + + + //! Returns a reference to the Curve2d inside the HCurve2d. + Standard_EXPORT virtual const Adaptor2d_Curve2d& Curve2d() const = 0; + + Standard_Real FirstParameter() const; + + Standard_Real LastParameter() const; + + GeomAbs_Shape Continuity() const; + + Standard_Integer NbIntervals (const GeomAbs_Shape S) const; + + void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const; + + //! If >= + Handle(Adaptor2d_HCurve2d) Trim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const; + + Standard_Boolean IsClosed() const; + + Standard_Boolean IsPeriodic() const; + + Standard_Real Period() const; + + gp_Pnt2d Value (const Standard_Real U) const; + + void D0 (const Standard_Real U, gp_Pnt2d& P) const; + + void D1 (const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V) const; + + void D2 (const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2) const; + + void D3 (const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2, gp_Vec2d& V3) const; + + gp_Vec2d DN (const Standard_Real U, const Standard_Integer N) const; + + Standard_Real Resolution (const Standard_Real R3d) const; + + GeomAbs_CurveType GetType() const; + + gp_Lin2d Line() const; + + gp_Circ2d Circle() const; + + gp_Elips2d Ellipse() const; + + gp_Hypr2d Hyperbola() const; + + gp_Parab2d Parabola() const; + + Standard_Integer Degree() const; + + Standard_Boolean IsRational() const; + + Standard_Integer NbPoles() const; + + Standard_Integer NbKnots() const; + + Handle(Geom2d_BezierCurve) Bezier() const; + + virtual Handle(Geom2d_BSplineCurve) BSpline() const; + + + + + DEFINE_STANDARD_RTTI(Adaptor2d_HCurve2d,MMgt_TShared) + +protected: + + + + +private: + + + + +}; + + +#include + + + + + +#endif // _Adaptor2d_HCurve2d_HeaderFile diff --git a/src/Adaptor2d/Adaptor2d_HLine2d.hxx b/src/Adaptor2d/Adaptor2d_HLine2d.hxx new file mode 100644 index 0000000000..4e3480ed4c --- /dev/null +++ b/src/Adaptor2d/Adaptor2d_HLine2d.hxx @@ -0,0 +1,87 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 _Adaptor2d_HLine2d_HeaderFile +#define _Adaptor2d_HLine2d_HeaderFile + +#include +#include + +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class Adaptor2d_Line2d; +class Adaptor2d_Curve2d; + + +class Adaptor2d_HLine2d; +DEFINE_STANDARD_HANDLE(Adaptor2d_HLine2d, Adaptor2d_HCurve2d) + + +class Adaptor2d_HLine2d : public Adaptor2d_HCurve2d +{ + +public: + + + Standard_EXPORT Adaptor2d_HLine2d(); + + Standard_EXPORT Adaptor2d_HLine2d(const Adaptor2d_Line2d& C); + + Standard_EXPORT void Set (const Adaptor2d_Line2d& C); + + Standard_EXPORT const Adaptor2d_Curve2d& Curve2d() const; + + Adaptor2d_Line2d& ChangeCurve2d(); + + + + + DEFINE_STANDARD_RTTI(Adaptor2d_HLine2d,Adaptor2d_HCurve2d) + +protected: + + + Adaptor2d_Line2d myCurve; + + +private: + + + + +}; + +#define TheCurve Adaptor2d_Line2d +#define TheCurve_hxx +#define Adaptor2d_GenHCurve2d Adaptor2d_HLine2d +#define Adaptor2d_GenHCurve2d_hxx +#define Handle_Adaptor2d_GenHCurve2d Handle(Adaptor2d_HLine2d) + +#include + +#undef TheCurve +#undef TheCurve_hxx +#undef Adaptor2d_GenHCurve2d +#undef Adaptor2d_GenHCurve2d_hxx +#undef Handle_Adaptor2d_GenHCurve2d + + + + +#endif // _Adaptor2d_HLine2d_HeaderFile diff --git a/src/Adaptor2d/Adaptor2d_HLine2d_0.cxx b/src/Adaptor2d/Adaptor2d_HLine2d_0.cxx new file mode 100644 index 0000000000..2f143dace6 --- /dev/null +++ b/src/Adaptor2d/Adaptor2d_HLine2d_0.cxx @@ -0,0 +1,42 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 + +#include + +#include +#include +#include +#include +#include + + + + + + + + + + +#define TheCurve Adaptor2d_Line2d +#define TheCurve_hxx +#define Adaptor2d_GenHCurve2d Adaptor2d_HLine2d +#define Adaptor2d_GenHCurve2d_hxx +#define Handle_Adaptor2d_GenHCurve2d Handle(Adaptor2d_HLine2d) +#include + diff --git a/src/Adaptor2d/Adaptor2d_Line2d.cdl b/src/Adaptor2d/Adaptor2d_Line2d.cdl deleted file mode 100644 index aaa22f22d0..0000000000 --- a/src/Adaptor2d/Adaptor2d_Line2d.cdl +++ /dev/null @@ -1,207 +0,0 @@ --- Created on: 1995-05-02 --- 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. - -class Line2d from Adaptor2d inherits Curve2d from Adaptor2d - -uses - Array1OfReal from TColStd, - Pnt2d from gp, - Dir2d from gp, - Vec2d from gp, - Lin2d from gp, - Ax2d from gp, - Circ2d from gp, - Elips2d from gp, - Hypr2d from gp, - Parab2d from gp, - Shape from GeomAbs, - CurveType from GeomAbs, - BezierCurve from Geom2d, - BSplineCurve from Geom2d, - HCurve2d from Adaptor2d - -raises - - OutOfRange from Standard, - NoSuchObject from Standard, - DomainError from Standard - -is - - Create returns Line2d from Adaptor2d; - - Create(P: Pnt2d from gp; - D: Dir2d from gp; - UFirst,ULast: Real from Standard) - returns Line2d from Adaptor2d; - - Load(me : in out; L : Lin2d from gp) - is static; - - Load(me : in out; L : Lin2d from gp; - UFirst,ULast: Real from Standard) - is static; - - FirstParameter(me) - returns Real from Standard - is redefined static; - - LastParameter(me) - returns Real from Standard - is redefined static; - - Continuity(me) - returns Shape from GeomAbs - is redefined static; - - NbIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: If necessary, breaks the curve in intervals of - -- continuity . And returns the number of - -- intervals. - is redefined static; - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - raises - OutOfRange from Standard - is redefined static; - - Trim(me; First, Last, Tol : Real) returns HCurve2d from Adaptor2d - ---Purpose: Returns a curve equivalent of between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is redefined static; - - IsClosed(me) - returns Boolean from Standard - is redefined static; - - IsPeriodic(me) - returns Boolean from Standard - is redefined static; - - Period(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - is redefined static; - - Value(me; X: Real from Standard) - returns Pnt2d from gp - is redefined static; - - D0(me; X: Real from Standard; P: out Pnt2d from gp) - is redefined static; - - D1(me; X: Real from Standard; - P: out Pnt2d from gp; V: out Vec2d from gp) - is redefined static; - - D2(me; X: Real from Standard; - P: out Pnt2d from gp; V1,V2: out Vec2d from gp) - is redefined static; - - D3(me; X: Real from Standard; - P: out Pnt2d from gp; V1,V2,V3: out Vec2d from gp) - is redefined static; - - DN (me; U : Real; N : Integer) - returns Vec2d from gp - is redefined static; - - - Resolution(me; R3d : Real) - returns Real from Standard - is redefined static; - - - GetType(me) - returns CurveType from GeomAbs - is redefined static; - - - Line(me) - returns Lin2d from gp - is redefined static; - - Circle(me) returns Circ2d from gp - raises - NoSuchObject from Standard - is redefined static; - - Ellipse(me) returns Elips2d from gp - raises - NoSuchObject from Standard - is redefined static; - - Hyperbola(me) returns Hypr2d from gp - raises - NoSuchObject from Standard - is redefined static; - - Parabola(me) returns Parab2d from gp - raises - NoSuchObject from Standard - is redefined static; - - - Degree(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - IsRational(me) returns Boolean - raises - NoSuchObject from Standard - is redefined static; - - NbPoles(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - - NbKnots(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - - - Bezier(me) returns BezierCurve from Geom2d - raises - NoSuchObject from Standard - is redefined static; - - BSpline(me) returns BSplineCurve from Geom2d - raises - NoSuchObject from Standard - is redefined static; - -fields - - myUfirst : Real from Standard; - myUlast : Real from Standard; - myAx2d : Ax2d from gp; - -end Line2d; diff --git a/src/Adaptor2d/Adaptor2d_Line2d.cxx b/src/Adaptor2d/Adaptor2d_Line2d.cxx index 0419f1a599..cca4207e6b 100644 --- a/src/Adaptor2d/Adaptor2d_Line2d.cxx +++ b/src/Adaptor2d/Adaptor2d_Line2d.cxx @@ -11,19 +11,30 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include +#include //======================================================================= //function : Adaptor2d_Line2d //purpose : //======================================================================= - Adaptor2d_Line2d::Adaptor2d_Line2d() : myUfirst(0.0), myUlast (0.0) { diff --git a/src/Adaptor2d/Adaptor2d_Line2d.hxx b/src/Adaptor2d/Adaptor2d_Line2d.hxx new file mode 100644 index 0000000000..d0ff748027 --- /dev/null +++ b/src/Adaptor2d/Adaptor2d_Line2d.hxx @@ -0,0 +1,158 @@ +// Created on: 1995-05-02 +// 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 _Adaptor2d_Line2d_HeaderFile +#define _Adaptor2d_Line2d_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class gp_Pnt2d; +class gp_Dir2d; +class gp_Lin2d; +class Adaptor2d_HCurve2d; +class gp_Vec2d; +class gp_Circ2d; +class gp_Elips2d; +class gp_Hypr2d; +class gp_Parab2d; +class Geom2d_BezierCurve; +class Geom2d_BSplineCurve; + + + +class Adaptor2d_Line2d : public Adaptor2d_Curve2d +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT Adaptor2d_Line2d(); + + Standard_EXPORT Adaptor2d_Line2d(const gp_Pnt2d& P, const gp_Dir2d& D, const Standard_Real UFirst, const Standard_Real ULast); + + Standard_EXPORT void Load (const gp_Lin2d& L); + + Standard_EXPORT void Load (const gp_Lin2d& L, const Standard_Real UFirst, const Standard_Real ULast); + + Standard_EXPORT Standard_Real FirstParameter() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real LastParameter() const Standard_OVERRIDE; + + Standard_EXPORT GeomAbs_Shape Continuity() const Standard_OVERRIDE; + + //! If necessary, breaks the curve in intervals of + //! continuity . And returns the number of + //! intervals. + 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 accomodate + //! 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(Adaptor2d_HCurve2d) 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; + + Standard_EXPORT gp_Pnt2d Value (const Standard_Real X) const Standard_OVERRIDE; + + Standard_EXPORT void D0 (const Standard_Real X, gp_Pnt2d& P) const Standard_OVERRIDE; + + Standard_EXPORT void D1 (const Standard_Real X, gp_Pnt2d& P, gp_Vec2d& V) const Standard_OVERRIDE; + + Standard_EXPORT void D2 (const Standard_Real X, gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2) const Standard_OVERRIDE; + + Standard_EXPORT void D3 (const Standard_Real X, gp_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2, gp_Vec2d& V3) const Standard_OVERRIDE; + + Standard_EXPORT gp_Vec2d DN (const Standard_Real U, const Standard_Integer N) const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real Resolution (const Standard_Real R3d) const Standard_OVERRIDE; + + Standard_EXPORT GeomAbs_CurveType GetType() const Standard_OVERRIDE; + + Standard_EXPORT gp_Lin2d Line() const Standard_OVERRIDE; + + Standard_EXPORT gp_Circ2d Circle() const Standard_OVERRIDE; + + Standard_EXPORT gp_Elips2d Ellipse() const Standard_OVERRIDE; + + Standard_EXPORT gp_Hypr2d Hyperbola() const Standard_OVERRIDE; + + Standard_EXPORT gp_Parab2d 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(Geom2d_BezierCurve) Bezier() const Standard_OVERRIDE; + + Standard_EXPORT Handle(Geom2d_BSplineCurve) BSpline() const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + Standard_Real myUfirst; + Standard_Real myUlast; + gp_Ax2d myAx2d; + + +}; + + + + + + + +#endif // _Adaptor2d_Line2d_HeaderFile diff --git a/src/Adaptor2d/FILES b/src/Adaptor2d/FILES new file mode 100644 index 0000000000..842fa8a602 --- /dev/null +++ b/src/Adaptor2d/FILES @@ -0,0 +1,12 @@ +Adaptor2d_Curve2d.cxx +Adaptor2d_Curve2d.hxx +Adaptor2d_Curve2dPtr.hxx +Adaptor2d_GenHCurve2d.gxx +Adaptor2d_GenHCurve2d.lxx +Adaptor2d_HCurve2d.cxx +Adaptor2d_HCurve2d.hxx +Adaptor2d_HCurve2d.lxx +Adaptor2d_HLine2d.hxx +Adaptor2d_HLine2d_0.cxx +Adaptor2d_Line2d.cxx +Adaptor2d_Line2d.hxx diff --git a/src/Adaptor3d/Adaptor3d.cdl b/src/Adaptor3d/Adaptor3d.cdl deleted file mode 100644 index 2f2873d82c..0000000000 --- a/src/Adaptor3d/Adaptor3d.cdl +++ /dev/null @@ -1,213 +0,0 @@ --- Created on: 1992-10-08 --- Created by: Isabelle GRIGNON --- 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. - -package Adaptor3d - - ---Purpose: The Adaptor3d package is used to help defining - -- reusable geometric algorithms. i.e. that can be - -- used on curves and surfaces. - -- - -- It defines general services for 3 kind of objects : - -- - -- - the 2d curve. Curve2d - -- - the 3d curve. Curve - -- - the 3d surface. Surface - -- - -- The services are : - -- - -- - Usual services found in Geom or Geom2d : - -- - -- * parameter range, value and derivatives, etc... - -- - -- - Continuity breakout services : - -- - -- * Allows to divide a curve or a surfaces in - -- parts with a given derivation order. - -- - -- - Special geometries detection services : - -- - -- * Allows to test for special cases that can - -- be processed more easily : - -- - Conics, Quadrics, Bezier, BSpline ... - -- - -- And to get the correponding data form the - -- package gp or Geom. The special type - -- OtherCurve means that no special case has - -- been detected and the algorithm may use - -- only the evaluation methods (D0, D1, ...) - -- - -- - -- For each category Curve2d, Curve, Surface we - -- define three classes, we illustrate now the - -- principles with the Curve, the same applies to - -- Curve2d and Surface. - -- - -- The class Curve is the abstract root for all - -- Curves used by algorithms, it is handled by value - -- and provides as deferred methods the services - -- described above. - -- - -- Some services (breakout) requires to create new - -- curves, this leads to memory allocation - -- considerations (who create the curve, who deletes - -- it ?). To solve this problem elegantly the curve - -- will return a HCurve, the HCurve is a curve - -- handled by reference so it will be deallocated - -- automatically when it is not used. - -- - -- A third class GenHCurve is provided, this class is - -- generic and its utility is to provide automatic - -- generation of the HCurve class when you have - -- written the Curve class. - -- - -- - -- * Let us show an example (with 2d curves) : - -- - -- Imagine an algorithm to intersect curves, this - -- algorithms is written to process Curve2d from - -- Adaptor3d : - -- - -- A method may look like : - -- - -- Intersect(C1,C2 : Curve2d from Adaptor3d); - -- - -- Which will look like in C++ - -- - -- Intersect(const Adaptor2d_Curve2d& C1, - -- const Adaptor2d_Curve2d& C2) - -- { - -- // you can call any method - -- Standard_Real first1 = C1.FirstParameter(); - -- - -- // but avoid to copy in an Adaptor3d_Curve which - -- // is an Abstract class, use a reference or a pointer - -- - -- const Adaptor3d_Curve& C = C1; - -- const Adaptor3d_Curve *pC = &C1; - -- - -- // If you are interseted in Intervals you must - -- // store them in a HCurve to ensure they are kept - -- // in memory. Then a referrence may be used. - -- - -- Handle(Adaptor3d_HCurve) HCI = C1.Interval(1); - -- - -- const Adaptor3d_Curve& CI = HCI->Curve(); - -- pC = &(HCI->Curve()); - -- - -- - -- * The Adaptor3d provides also Generic classes - -- implementing algorithmic curves and surfaces. - -- - -- - IsoCurve : Isoparametric curve on a surface. - -- - CurveOnSurface : 2D curve in the parametric - -- space of a surface. - -- - -- - -- - OffsetCurve2d : 2d offset curve - -- - ProjectedCurve : 3d curve projected on a plane - -- - SurfaceOfLinearExtrusion - -- - SurfaceOfRevolution - -- - -- They are instantiated with HCurve, HSurface, HCurved2d - -uses - Standard, - MMgt, - TColStd, - GeomAbs, - TopAbs, - TColgp, - gp, - Geom2d, - Geom, - math, - Adaptor2d - -is - - deferred class Curve; - - pointer CurvePtr to Curve from Adaptor3d; - - deferred class HCurve; - - generic class GenHCurve; - - deferred class Surface; - - pointer SurfacePtr to Surface from Adaptor3d; - - deferred class HSurface; - - generic class GenHSurface; - - - -- - -- The following classes are used to define an abstract - -- simplified "topology" for surfaces. This is used by - -- algorithm as mass properties or surface intersections. - -- - - - class HVertex; - - class HSurfaceTool; - - class TopolTool; - - -- - -- The following classes provides algorithmic curves and - -- surface, they are inheriting from Curve and Surface and the - -- correponding HCurve and HSurface is instantiated. - -- - -- - - - class IsoCurve; - - class HIsoCurve instantiates GenHCurve from Adaptor3d - (IsoCurve from Adaptor3d); - - - class CurveOnSurface; - - pointer CurveOnSurfacePtr to CurveOnSurface from Adaptor3d; - - class HCurveOnSurface instantiates GenHCurve from Adaptor3d - (CurveOnSurface from Adaptor3d); - - - - class OffsetCurve; - - class HOffsetCurve instantiates GenHCurve2d from Adaptor2d - (OffsetCurve from Adaptor3d); - - class SurfaceOfRevolution; - - class HSurfaceOfRevolution instantiates GenHSurface from Adaptor3d - (SurfaceOfRevolution from Adaptor3d); - - - - class SurfaceOfLinearExtrusion; - - class HSurfaceOfLinearExtrusion instantiates GenHSurface from Adaptor3d - (SurfaceOfLinearExtrusion from Adaptor3d); - - private class InterFunc; - -end Adaptor3d; diff --git a/src/Adaptor3d/Adaptor3d_Curve.cdl b/src/Adaptor3d/Adaptor3d_Curve.cdl deleted file mode 100644 index e11c657915..0000000000 --- a/src/Adaptor3d/Adaptor3d_Curve.cdl +++ /dev/null @@ -1,250 +0,0 @@ --- Created on: 1993-03-31 --- Created by: Bruno DUMORTIER --- 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. - -deferred class Curve from Adaptor3d - - ---Purpose: Root class for 3D curves on which geometric - -- algorithms work. - -- An adapted curve is an interface between the - -- services provided by a curve and those required of - -- the curve by algorithms which use it. - -- Two derived concrete classes are provided: - -- - GeomAdaptor_Curve for a curve from the Geom package - -- - Adaptor3d_CurveOnSurface for a curve lying on - -- a surface from the Geom package. - - -uses - Array1OfReal from TColStd, - Shape from GeomAbs, - CurveType from GeomAbs, - Vec from gp, - Pnt from gp, - Circ from gp, - Elips from gp, - Hypr from gp, - Parab from gp, - Lin from gp, - BezierCurve from Geom, - BSplineCurve from Geom, - HCurve from Adaptor3d - -raises - - OutOfRange from Standard, - NoSuchObject from Standard, - DomainError from Standard - -is - - -- - -- Global methods - Apply to the whole curve. - -- - - FirstParameter(me) returns Real - is virtual; - - LastParameter(me) returns Real - is virtual; - - -- - -- Services to break the curves to the expected continuity - -- - -- If for example you need the curve to be C2 and the method - -- Continuity returns you something lower than C2 (say C1 for - -- example). - -- - -- First compute the number of intervals with the requested - -- continuity with the method NbIntervals(). Note that if the - -- continuity is higher than the one you need NbIntervals will - -- return 1. - -- - -- Then you get the parameters bounding the intervals with the - -- method Intervals, using an array of length at least - -- NbIntervals()+1. - -- - -- If you need to create a curve with a restricted span you can - -- use the method Trim(). - - - Continuity(me) returns Shape from GeomAbs - ---Purpose: - is virtual; - - NbIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of intervals for continuity - -- . May be one if Continuity(me) >= - is virtual; - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - raises - OutOfRange from Standard - is virtual; - - Trim(me; First, Last, Tol : Real) returns HCurve from Adaptor3d - ---Purpose: Returns a curve equivalent of between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is virtual; - - - IsClosed(me) returns Boolean - is virtual; - - IsPeriodic(me) returns Boolean - is virtual; - - Period(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - is virtual; - - Value(me; U : Real) returns Pnt from gp - --- Purpose : Computes the point of parameter U on the curve. - is virtual; - - D0 (me; U : Real; P : out Pnt from gp) - --- Purpose : Computes the point of parameter U on the curve. - is virtual; - - D1 (me; U : Real; P : out Pnt from gp ; V : out Vec from gp) - --- Purpose : Computes the point of parameter U on the curve with its - -- first derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C1. - is virtual; - - D2 (me; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp) - --- Purpose : - -- Returns the point P of parameter U, the first and second - -- derivatives V1 and V2. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C2. - is virtual; - - D3 (me; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp) - --- Purpose : - -- Returns the point P of parameter U, the first, the second - -- and the third derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C3. - is virtual; - - DN (me; U : Real; N : Integer) returns Vec from gp - --- Purpose : - -- The returned vector gives the value of the derivative for the - -- order of derivation N. - raises - DomainError from Standard, - --- Purpose : Raised if the continuity of the current interval - -- is not CN. - OutOfRange from Standard - --- Purpose : Raised if N < 1. - is virtual; - - Resolution(me; R3d : Real) returns Real - ---Purpose : Returns the parametric resolution corresponding - -- to the real space resolution . - is virtual; - - GetType(me) returns CurveType from GeomAbs - ---Purpose: Returns the type of the curve in the current - -- interval : Line, Circle, Ellipse, Hyperbola, - -- Parabola, BezierCurve, BSplineCurve, OtherCurve. - is virtual; - - -- - -- The following methods must be called when GetType returned - -- the corresponding type. - -- - - Line(me) returns Lin from gp - raises - NoSuchObject from Standard - is virtual; - - Circle(me) returns Circ from gp - raises - NoSuchObject from Standard - is virtual; - - Ellipse(me) returns Elips from gp - raises - NoSuchObject from Standard - is virtual; - - Hyperbola(me) returns Hypr from gp - raises - NoSuchObject from Standard - is virtual; - - Parabola(me) returns Parab from gp - raises - NoSuchObject from Standard - is virtual; - - - Degree(me) returns Integer - raises - NoSuchObject from Standard - is virtual; - - IsRational(me) returns Boolean - raises - NoSuchObject from Standard - is virtual; - - NbPoles(me) returns Integer - raises - NoSuchObject from Standard - is virtual; - - - NbKnots(me) returns Integer - raises - NoSuchObject from Standard - is virtual; - - Bezier(me) returns BezierCurve from Geom - raises - NoSuchObject from Standard - is virtual; - - BSpline(me) returns BSplineCurve from Geom - raises - NoSuchObject from Standard - is virtual; - - ---C++: alias " Standard_EXPORT virtual ~Adaptor3d_Curve();" - -end Curve; - - diff --git a/src/Adaptor3d/Adaptor3d_Curve.cxx b/src/Adaptor3d/Adaptor3d_Curve.cxx index 3530738745..487dd59a0d 100644 --- a/src/Adaptor3d/Adaptor3d_Curve.cxx +++ b/src/Adaptor3d/Adaptor3d_Curve.cxx @@ -14,14 +14,27 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include //======================================================================= //function : ~Adaptor3d_Curve //purpose : Destructor //======================================================================= - Adaptor3d_Curve::~Adaptor3d_Curve() { } diff --git a/src/Adaptor3d/Adaptor3d_Curve.hxx b/src/Adaptor3d/Adaptor3d_Curve.hxx new file mode 100644 index 0000000000..8e37d2f6ea --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_Curve.hxx @@ -0,0 +1,179 @@ +// Created on: 1993-03-31 +// Created by: Bruno DUMORTIER +// 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_Curve_HeaderFile +#define _Adaptor3d_Curve_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class Adaptor3d_HCurve; +class gp_Pnt; +class gp_Vec; +class gp_Lin; +class gp_Circ; +class gp_Elips; +class gp_Hypr; +class gp_Parab; +class Geom_BezierCurve; +class Geom_BSplineCurve; + + +//! Root class for 3D curves on which geometric +//! algorithms work. +//! An adapted curve is an interface between the +//! services provided by a curve and those required of +//! the curve by algorithms which use it. +//! Two derived concrete classes are provided: +//! - GeomAdaptor_Curve for a curve from the Geom package +//! - Adaptor3d_CurveOnSurface for a curve lying on +//! a surface from the Geom package. +class Adaptor3d_Curve +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT virtual Standard_Real FirstParameter() const; + + Standard_EXPORT virtual Standard_Real LastParameter() const; + + Standard_EXPORT virtual GeomAbs_Shape Continuity() const; + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(me) >= + Standard_EXPORT virtual Standard_Integer NbIntervals (const GeomAbs_Shape S) const; + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! + //! The array must provide enough room to accomodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT virtual void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const; + + //! Returns a curve equivalent of between + //! parameters and . is used to + //! test for 3d points confusion. + //! If >= + Standard_EXPORT virtual Handle(Adaptor3d_HCurve) Trim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const; + + Standard_EXPORT virtual Standard_Boolean IsClosed() const; + + Standard_EXPORT virtual Standard_Boolean IsPeriodic() const; + + Standard_EXPORT virtual Standard_Real Period() const; + + //! Computes the point of parameter U on the curve. + Standard_EXPORT virtual gp_Pnt Value (const Standard_Real U) const; + + //! Computes the point of parameter U on the curve. + Standard_EXPORT virtual void D0 (const Standard_Real U, gp_Pnt& P) const; + + //! 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 virtual void D1 (const Standard_Real U, gp_Pnt& P, gp_Vec& V) const; + + + //! 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 virtual void D2 (const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2) const; + + + //! 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 virtual void D3 (const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2, gp_Vec& V3) const; + + + //! 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 virtual gp_Vec DN (const Standard_Real U, const Standard_Integer N) const; + + //! Returns the parametric resolution corresponding + //! to the real space resolution . + Standard_EXPORT virtual Standard_Real Resolution (const Standard_Real R3d) const; + + //! Returns the type of the curve in the current + //! interval : Line, Circle, Ellipse, Hyperbola, + //! Parabola, BezierCurve, BSplineCurve, OtherCurve. + Standard_EXPORT virtual GeomAbs_CurveType GetType() const; + + Standard_EXPORT virtual gp_Lin Line() const; + + Standard_EXPORT virtual gp_Circ Circle() const; + + Standard_EXPORT virtual gp_Elips Ellipse() const; + + Standard_EXPORT virtual gp_Hypr Hyperbola() const; + + Standard_EXPORT virtual gp_Parab Parabola() const; + + Standard_EXPORT virtual Standard_Integer Degree() const; + + Standard_EXPORT virtual Standard_Boolean IsRational() const; + + Standard_EXPORT virtual Standard_Integer NbPoles() const; + + Standard_EXPORT virtual Standard_Integer NbKnots() const; + + Standard_EXPORT virtual Handle(Geom_BezierCurve) Bezier() const; + + Standard_EXPORT virtual Handle(Geom_BSplineCurve) BSpline() const; + Standard_EXPORT virtual ~Adaptor3d_Curve(); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _Adaptor3d_Curve_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_CurveOnSurface.cdl b/src/Adaptor3d/Adaptor3d_CurveOnSurface.cdl deleted file mode 100644 index 55867ee5ff..0000000000 --- a/src/Adaptor3d/Adaptor3d_CurveOnSurface.cdl +++ /dev/null @@ -1,330 +0,0 @@ --- 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. - -class CurveOnSurface from Adaptor3d inherits Curve from Adaptor3d - - ---Purpose: 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. - - -uses - Array1OfReal from TColStd, - Pnt from gp, - Vec from gp, - Circ from gp, - Elips from gp, - Hypr from gp, - Parab from gp, - Lin from gp, - CurveType from GeomAbs, - Shape from GeomAbs, - BezierCurve from Geom, - BSplineCurve from Geom, - BSplineSurface from Geom, - HCurve from Adaptor3d, - HCurve2d from Adaptor2d, - HSurface from Adaptor3d, - HSequenceOfReal from TColStd, - Pnt2d from gp, - Vec2d from gp - -raises NoSuchObject from Standard, - DomainError from Standard, - OutOfRange from Standard - -is - - Create returns CurveOnSurface; - - Create(S : HSurface from Adaptor3d) returns CurveOnSurface; - - Create (C : HCurve2d from Adaptor2d; S : HSurface from Adaptor3d) - returns CurveOnSurface; - ---Purpose: Creates a CurveOnSurface from the 2d curve and - -- the surface . - - Load(me : in out;S : HSurface from Adaptor3d) - ---Purpose: Changes the surface. - is static; - - Load(me : in out; C : HCurve2d from Adaptor2d) - ---Purpose: Changes the 2d curve. - is static; - - Load(me : in out; C : HCurve2d from Adaptor2d; - S : HSurface from Adaptor3d) - ---Purpose: Load both curve and surface. - is static; - - GetCurve(me) returns HCurve2d from Adaptor2d - ---C++: return const & - is static; - - GetSurface(me) returns HSurface from Adaptor3d - ---C++: return const & - is static; - - ChangeCurve(me : in out) returns HCurve2d from Adaptor2d - ---C++: return & - is static; - - ChangeSurface(me : in out) returns HSurface from Adaptor3d - ---C++: return & - is static; - - -- - -- Implementation of Curve from Adaptor3d methods - -- - - -- - -- Global methods - Apply to the whole curve. - -- - - FirstParameter(me) returns Real - is redefined static; - - LastParameter(me) returns Real - is redefined static; - - Continuity(me) returns Shape from GeomAbs - is redefined static; - - NbIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of intervals for continuity - -- . May be one if Continuity(me) >= - is redefined static; - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - raises - OutOfRange from Standard - is redefined static; - - Trim(me; First, Last, Tol : Real) returns HCurve from Adaptor3d - ---Purpose: Returns a curve equivalent of between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is redefined static; - - IsClosed(me) returns Boolean - is redefined static; - - IsPeriodic(me) returns Boolean - is redefined static; - - Period(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - is redefined static; - - Value(me; U : Real) returns Pnt from gp - --- Purpose : Computes the point of parameter U on the curve. - is redefined static; - - D0 (me; U : Real; P : out Pnt from gp) - --- Purpose : Computes the point of parameter U on the curve. - is redefined static; - - D1 (me; U : Real; P : out Pnt from gp ; V : out Vec from gp) - --- Purpose : Computes the point of parameter U on the curve with its - -- first derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C1. - is redefined static; - - D2 (me; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp) - --- Purpose : - -- Returns the point P of parameter U, the first and second - -- derivatives V1 and V2. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C2. - is redefined static; - - D3 (me; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp) - --- Purpose : - -- Returns the point P of parameter U, the first, the second - -- and the third derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C3. - is redefined static; - - DN (me; U : Real; N : Integer) returns Vec from gp - --- Purpose : - -- The returned vector gives the value of the derivative for the - -- order of derivation N. - raises - DomainError from Standard, - --- Purpose : Raised if the continuity of the current interval - -- is not CN. - OutOfRange from Standard - --- Purpose : Raised if N < 1. - is redefined static; - - Resolution(me; R3d : Real) returns Real - ---Purpose : Returns the parametric resolution corresponding - -- to the real space resolution . - is redefined static; - - GetType(me) returns CurveType from GeomAbs - ---Purpose: Returns the type of the curve in the current - -- interval : Line, Circle, Ellipse, Hyperbola, - -- Parabola, BezierCurve, BSplineCurve, OtherCurve. - is redefined static; - - -- - -- The following methods must be called when GetType returned - -- the corresponding type. - -- - - Line(me) returns Lin from gp - raises - NoSuchObject from Standard - is redefined static; - - Circle(me) returns Circ from gp - raises - NoSuchObject from Standard - is redefined static; - - Ellipse(me) returns Elips from gp - raises - NoSuchObject from Standard - is redefined static; - - Hyperbola(me) returns Hypr from gp - raises - NoSuchObject from Standard - is redefined static; - - Parabola(me) returns Parab from gp - raises - NoSuchObject from Standard - is redefined static; - - Degree(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - - IsRational(me) returns Boolean - raises - NoSuchObject from Standard - is redefined static; - - NbPoles(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - - NbKnots(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - ---Warning: will raize if this asked on a curve - -- that is not planar - - Bezier(me) returns BezierCurve from Geom - raises - NoSuchObject from Standard - is redefined static; - - BSpline(me) returns BSplineCurve from Geom - raises - NoSuchObject from Standard - is redefined static; - - EvalKPart(me : in out) - is static private; - - EvalFirstLastSurf(me : in out) - ---Purpose: Evaluates myFirstSurf and myLastSurf - -- for trimming the curve on surface. - is static private; - - - ---Purpose: Following methods output left-bottom and right-top points - -- of located part on surface - -- for trimming the curve on surface. - - LocatePart(me; UV : Pnt2d from gp; DUV : Vec2d from gp; - S : HSurface from Adaptor3d; - LeftBot, RightTop : out Pnt2d from gp) - is static private; - - LocatePart_RevExt(me; UV : Pnt2d from gp; DUV : Vec2d from gp; - S : HSurface from Adaptor3d; - LeftBot, RightTop : out Pnt2d from gp) - returns Boolean - is static private; - - LocatePart_Offset(me; UV : Pnt2d from gp; DUV : Vec2d from gp; - S : HSurface from Adaptor3d; - LeftBot, RightTop : out Pnt2d from gp) - returns Boolean - is static private; - - FindBounds(me; Arr : Array1OfReal from TColStd; - XYComp : Real from Standard; - DUVComp : Real from Standard; - Bnd1 : out Integer from Standard; - Bnd2 : out Integer from Standard; - DerIsNull : out Boolean from Standard) - ---Purpose: Extracts the numbers of knots which equal - -- the point and checks derivative components - -- by zero equivalence. - is static private; - - - -fields - - mySurface : HSurface from Adaptor3d; - myCurve : HCurve2d from Adaptor2d; - - myType : CurveType from GeomAbs; - myCirc : Circ from gp; - myLin : Lin from gp; - - myFirstSurf : HSurface from Adaptor3d; - myLastSurf : HSurface from Adaptor3d; - - myIntervals : HSequenceOfReal from TColStd; - myIntCont : Shape from GeomAbs; - -end CurveOnSurface; - - - - diff --git a/src/Adaptor3d/Adaptor3d_CurveOnSurface.cxx b/src/Adaptor3d/Adaptor3d_CurveOnSurface.cxx index ea6de7e105..a6153e098c 100644 --- a/src/Adaptor3d/Adaptor3d_CurveOnSurface.cxx +++ b/src/Adaptor3d/Adaptor3d_CurveOnSurface.cxx @@ -13,36 +13,50 @@ #define No_Standard_OutOfRange -#include +#include +#include +#include #include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include +#include #include +#include #include +#include #include +#include +#include +#include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include -#include +#include +#include +#include +#include #include -#include +#include #include +#include #include -#include -#include -#include -#include -#include -#include static gp_Pnt to3d(const gp_Pln& Pl, const gp_Pnt2d& P) { diff --git a/src/Adaptor3d/Adaptor3d_CurveOnSurface.hxx b/src/Adaptor3d/Adaptor3d_CurveOnSurface.hxx new file mode 100644 index 0000000000..c7431f67a4 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_CurveOnSurface.hxx @@ -0,0 +1,236 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Adaptor3d_HSurface; +class Adaptor2d_HCurve2d; +class Standard_NoSuchObject; +class Standard_DomainError; +class Standard_OutOfRange; +class Adaptor3d_HCurve; +class gp_Pnt; +class gp_Vec; +class gp_Lin; +class gp_Circ; +class gp_Elips; +class gp_Hypr; +class gp_Parab; +class Geom_BezierCurve; +class Geom_BSplineCurve; +class gp_Pnt2d; +class gp_Vec2d; + + +//! 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 +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT Adaptor3d_CurveOnSurface(); + + Standard_EXPORT Adaptor3d_CurveOnSurface(const Handle(Adaptor3d_HSurface)& S); + + //! Creates a CurveOnSurface from the 2d curve and + //! the surface . + Standard_EXPORT Adaptor3d_CurveOnSurface(const Handle(Adaptor2d_HCurve2d)& C, const Handle(Adaptor3d_HSurface)& S); + + //! Changes the surface. + Standard_EXPORT void Load (const Handle(Adaptor3d_HSurface)& S); + + //! Changes the 2d curve. + Standard_EXPORT void Load (const Handle(Adaptor2d_HCurve2d)& C); + + //! Load both curve and surface. + Standard_EXPORT void Load (const Handle(Adaptor2d_HCurve2d)& C, const Handle(Adaptor3d_HSurface)& S); + + Standard_EXPORT const Handle(Adaptor2d_HCurve2d)& GetCurve() const; + + Standard_EXPORT const Handle(Adaptor3d_HSurface)& GetSurface() const; + + Standard_EXPORT Handle(Adaptor2d_HCurve2d)& ChangeCurve(); + + Standard_EXPORT Handle(Adaptor3d_HSurface)& 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 accomodate + //! 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_HCurve) 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; + + + + +protected: + + + + + +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_HSurface)& 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_HSurface)& 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_HSurface)& 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; + + + Handle(Adaptor3d_HSurface) mySurface; + Handle(Adaptor2d_HCurve2d) myCurve; + GeomAbs_CurveType myType; + gp_Circ myCirc; + gp_Lin myLin; + Handle(Adaptor3d_HSurface) myFirstSurf; + Handle(Adaptor3d_HSurface) myLastSurf; + Handle(TColStd_HSequenceOfReal) myIntervals; + GeomAbs_Shape myIntCont; + + +}; + + + + + + + +#endif // _Adaptor3d_CurveOnSurface_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_CurveOnSurfacePtr.hxx b/src/Adaptor3d/Adaptor3d_CurveOnSurfacePtr.hxx new file mode 100644 index 0000000000..c991c72e7f --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_CurveOnSurfacePtr.hxx @@ -0,0 +1,23 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 _Adaptor3d_CurveOnSurfacePtr_HeaderFile +#define _Adaptor3d_CurveOnSurfacePtr_HeaderFile + +class Adaptor3d_CurveOnSurface; +typedef Adaptor3d_CurveOnSurface* Adaptor3d_CurveOnSurfacePtr; + +#endif // _Adaptor3d_CurveOnSurfacePtr_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_CurvePtr.hxx b/src/Adaptor3d/Adaptor3d_CurvePtr.hxx new file mode 100644 index 0000000000..ab8ae1fc0a --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_CurvePtr.hxx @@ -0,0 +1,23 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 _Adaptor3d_CurvePtr_HeaderFile +#define _Adaptor3d_CurvePtr_HeaderFile + +class Adaptor3d_Curve; +typedef Adaptor3d_Curve* Adaptor3d_CurvePtr; + +#endif // _Adaptor3d_CurvePtr_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_GenHCurve.cdl b/src/Adaptor3d/Adaptor3d_GenHCurve.cdl deleted file mode 100644 index 7b77743f91..0000000000 --- a/src/Adaptor3d/Adaptor3d_GenHCurve.cdl +++ /dev/null @@ -1,85 +0,0 @@ --- Created on: 1994-02-23 --- Created by: model --- 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. - -generic class GenHCurve from Adaptor3d - (TheCurve as Curve from Adaptor3d) - -inherits HCurve from Adaptor3d - - ---Purpose: Generic class used to create a curve manipulated - -- with Handle from a curve described by the class Curve. - -uses - Curve from Adaptor3d - - -raises - - OutOfRange from Standard, - NoSuchObject from Standard, - DomainError from Standard - -is - - Create - ---Purpose: Creates an empty GenHCurve. - returns GenHCurve from Adaptor3d; - - - Create(C: TheCurve) - - ---Purpose: Creates a GenHCurve from a Curve - returns GenHCurve from Adaptor3d; - - - Set(me: mutable; C: TheCurve) - - ---Purpose: Sets the field of the GenHCurve. - is static; - - Curve(me) - - ---Purpose: Returns the curve used to create the GenHCurve. - -- This is redefined from HCurve, cannot be inline. - -- - ---C++: return const & - - returns Curve from Adaptor3d; - - GetCurve(me:mutable) - - ---Purpose: Returns the curve used to create the GenHCurve. - -- This is redefined from HCurve, cannot be inline. - -- - ---C++: return & - - returns Curve from Adaptor3d; - - - ChangeCurve(me : mutable) - - ---Purpose: Returns the curve used to create the GenHCurve. - -- - ---C++: return & - ---C++: inline - - returns TheCurve; - -fields - - myCurve : TheCurve is protected; - -end GenHCurve; diff --git a/src/Adaptor3d/Adaptor3d_GenHSurface.cdl b/src/Adaptor3d/Adaptor3d_GenHSurface.cdl deleted file mode 100644 index b4f0f68294..0000000000 --- a/src/Adaptor3d/Adaptor3d_GenHSurface.cdl +++ /dev/null @@ -1,80 +0,0 @@ --- Created on: 1994-02-14 --- Created by: model --- 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. - -generic class GenHSurface from Adaptor3d - (TheSurface as Surface from Adaptor3d) - -inherits HSurface from Adaptor3d - - ---Purpose: Generic class used to create a surface manipulated - -- with Handle from a surface described by the class Surface. - -uses - - Surface from Adaptor3d - - -raises - - OutOfRange from Standard, - NoSuchObject from Standard, - DomainError from Standard - - -is - - Create - - ---Purpose: Creates an empty GenHSurface. - returns GenHSurface from Adaptor3d; - - - Create(S: TheSurface) - - ---Purpose: Creates a GenHSurface from a Surface. - returns GenHSurface from Adaptor3d; - - - Set(me: mutable; S: TheSurface) - - ---Purpose: Sets the field of the GenHSurface. - is static; - - -- - -- Access to the surface - -- - - Surface(me) returns Surface from Adaptor3d; - ---Purpose: Returns a reference to the Surface inside the HSurface. - -- This is redefined from HSurface, cannot be inline. - -- - ---C++: return const & - - ChangeSurface(me : mutable) - - ---Purpose: Returns the surface used to create the GenHSurface. - -- - ---C++: return & - ---C++: inline - - returns TheSurface; - - -fields - - mySurf: TheSurface is protected; - -end GenHSurface; diff --git a/src/Adaptor3d/Adaptor3d_HCurve.cdl b/src/Adaptor3d/Adaptor3d_HCurve.cdl deleted file mode 100644 index 4c568b3fd7..0000000000 --- a/src/Adaptor3d/Adaptor3d_HCurve.cdl +++ /dev/null @@ -1,223 +0,0 @@ --- Created on: 1994-02-23 --- Created by: model --- 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. - -deferred class HCurve from Adaptor3d inherits TShared from MMgt - - ---Purpose: Root class for 3D curves manipulated by handles, on - -- which geometric algorithms work. - -- An adapted curve is an interface between the - -- services provided by a curve and those required of - -- the curve by algorithms which use it. - -- Two derived concrete classes are provided: - -- - GeomAdaptor_HCurve for a curve from the Geom package - -- - Adaptor3d_HCurveOnSurface for a curve lying - -- on a surface from the Geom package. - - -uses - Array1OfReal from TColStd, - Shape from GeomAbs, - CurveType from GeomAbs, - Vec from gp, - Pnt from gp, - Circ from gp, - Elips from gp, - Hypr from gp, - Parab from gp, - Lin from gp, - BezierCurve from Geom, - BSplineCurve from Geom, - Curve from Adaptor3d - -raises - - OutOfRange from Standard, - NoSuchObject from Standard, - DomainError from Standard - -is - - - -- - -- Access to the curve - -- - - Curve(me) returns Curve from Adaptor3d - ---Purpose: Returns a pointer to the Curve inside the HCurve. - -- - ---C++: return const & - is deferred; - - GetCurve(me:mutable) returns Curve from Adaptor3d - ---Purpose: Returns a pointer to the Curve inside the HCurve. - -- - ---C++: return & - is deferred; - - -- - -- Curve methods, they are provided for convenience. Each - -- method M() is defined inline as : - -- - -- Adaptor3d_HCurve::M() { Curve().M(); } - -- - -- See the class Curve for comments on the methods. - -- - - FirstParameter(me) returns Real; - ---C++: inline - - LastParameter(me) returns Real; - ---C++: inline - - Continuity(me) returns Shape from GeomAbs ; - ---C++: inline - - NbIntervals(me; S : Shape from GeomAbs) returns Integer; - ---C++: inline - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - -- - ---C++: inline - raises - OutOfRange from Standard - is static; - - Trim(me; First, Last, Tol : Real) returns HCurve from Adaptor3d - ---Purpose: Returns a curve equivalent of between - -- parameters and . is used to - -- test for 3d points confusion. - -- - ---C++: inline - raises - OutOfRange from Standard - ---Purpose: If >= - is static; - - - IsClosed(me) returns Boolean; - ---C++: inline - - IsPeriodic(me) returns Boolean; - ---C++: inline - - Period(me) returns Real - ---C++: inline - raises - DomainError from Standard; - - Value(me; U : Real) returns Pnt from gp; - ---C++: inline - - D0 (me; U : Real; P : out Pnt from gp); - ---C++: inline - - D1 (me; U : Real; P : out Pnt from gp ; V : out Vec from gp) - ---C++: inline - raises - DomainError from Standard; - - D2 (me; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp) - ---C++: inline - raises - DomainError from Standard; - - D3 (me; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp) - ---C++: inline - raises - DomainError from Standard; - - DN (me; U : Real; N : Integer) returns Vec from gp - ---C++: inline - raises - DomainError from Standard, - OutOfRange from Standard; - - Resolution(me; R3d : Real) returns Real; - ---C++: inline - - GetType(me) returns CurveType from GeomAbs; - ---C++: inline - - Line(me) returns Lin from gp - ---C++: inline - raises - NoSuchObject from Standard; - - Circle(me) returns Circ from gp - ---C++: inline - raises - NoSuchObject from Standard; - - Ellipse(me) returns Elips from gp - ---C++: inline - raises - NoSuchObject from Standard; - - Hyperbola(me) returns Hypr from gp - ---C++: inline - raises - NoSuchObject from Standard; - - Parabola(me) returns Parab from gp - ---C++: inline - raises - NoSuchObject from Standard; - - Degree(me) returns Integer - ---C++: inline - raises - NoSuchObject from Standard ; - - - IsRational(me) returns Boolean - ---C++: inline - raises - NoSuchObject from Standard ; - - - NbPoles(me) returns Integer - ---C++: inline - raises - NoSuchObject from Standard ; - - - NbKnots(me) returns Integer - ---C++: inline - raises - NoSuchObject from Standard ; - - - Bezier(me) returns BezierCurve from Geom - ---C++: inline - raises - NoSuchObject from Standard; - - BSpline(me) returns BSplineCurve from Geom - ---C++: inline - raises - NoSuchObject from Standard; - - -end HCurve; - - - diff --git a/src/Adaptor3d/Adaptor3d_HCurve.cxx b/src/Adaptor3d/Adaptor3d_HCurve.cxx index 85d6298ab7..ce006dfe39 100644 --- a/src/Adaptor3d/Adaptor3d_HCurve.cxx +++ b/src/Adaptor3d/Adaptor3d_HCurve.cxx @@ -11,5 +11,14 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include diff --git a/src/Adaptor3d/Adaptor3d_HCurve.hxx b/src/Adaptor3d/Adaptor3d_HCurve.hxx new file mode 100644 index 0000000000..4b8e51806e --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_HCurve.hxx @@ -0,0 +1,161 @@ +// Created on: 1994-02-23 +// Created by: model +// 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 _Adaptor3d_HCurve_HeaderFile +#define _Adaptor3d_HCurve_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class Adaptor3d_Curve; +class gp_Pnt; +class gp_Vec; +class Geom_BezierCurve; +class Geom_BSplineCurve; + + +class Adaptor3d_HCurve; +DEFINE_STANDARD_HANDLE(Adaptor3d_HCurve, MMgt_TShared) + +//! Root class for 3D curves manipulated by handles, on +//! which geometric algorithms work. +//! An adapted curve is an interface between the +//! services provided by a curve and those required of +//! the curve by algorithms which use it. +//! Two derived concrete classes are provided: +//! - GeomAdaptor_HCurve for a curve from the Geom package +//! - Adaptor3d_HCurveOnSurface for a curve lying +//! on a surface from the Geom package. +class Adaptor3d_HCurve : public MMgt_TShared +{ + +public: + + + //! Returns a pointer to the Curve inside the HCurve. + Standard_EXPORT virtual const Adaptor3d_Curve& Curve() const = 0; + + //! Returns a pointer to the Curve inside the HCurve. + Standard_EXPORT virtual Adaptor3d_Curve& GetCurve() = 0; + + Standard_Real FirstParameter() const; + + Standard_Real LastParameter() const; + + GeomAbs_Shape Continuity() const; + + Standard_Integer NbIntervals (const GeomAbs_Shape S) const; + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! + //! The array must provide enough room to accomodate + //! for the parameters. i.e. T.Length() > NbIntervals() + void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const; + + //! Returns a curve equivalent of between + //! parameters and . is used to + //! test for 3d points confusion. + //! + //! If >= + Handle(Adaptor3d_HCurve) Trim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const; + + Standard_Boolean IsClosed() const; + + Standard_Boolean IsPeriodic() const; + + Standard_Real Period() const; + + gp_Pnt Value (const Standard_Real U) const; + + void D0 (const Standard_Real U, gp_Pnt& P) const; + + void D1 (const Standard_Real U, gp_Pnt& P, gp_Vec& V) const; + + void D2 (const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2) const; + + void D3 (const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2, gp_Vec& V3) const; + + gp_Vec DN (const Standard_Real U, const Standard_Integer N) const; + + Standard_Real Resolution (const Standard_Real R3d) const; + + GeomAbs_CurveType GetType() const; + + gp_Lin Line() const; + + gp_Circ Circle() const; + + gp_Elips Ellipse() const; + + gp_Hypr Hyperbola() const; + + gp_Parab Parabola() const; + + Standard_Integer Degree() const; + + Standard_Boolean IsRational() const; + + Standard_Integer NbPoles() const; + + Standard_Integer NbKnots() const; + + Handle(Geom_BezierCurve) Bezier() const; + + Handle(Geom_BSplineCurve) BSpline() const; + + + + + DEFINE_STANDARD_RTTI(Adaptor3d_HCurve,MMgt_TShared) + +protected: + + + + +private: + + + + +}; + + +#include + + + + + +#endif // _Adaptor3d_HCurve_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_HCurveOnSurface.hxx b/src/Adaptor3d/Adaptor3d_HCurveOnSurface.hxx new file mode 100644 index 0000000000..274f4b99e3 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_HCurveOnSurface.hxx @@ -0,0 +1,89 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 _Adaptor3d_HCurveOnSurface_HeaderFile +#define _Adaptor3d_HCurveOnSurface_HeaderFile + +#include +#include + +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class Adaptor3d_CurveOnSurface; +class Adaptor3d_Curve; + + +class Adaptor3d_HCurveOnSurface; +DEFINE_STANDARD_HANDLE(Adaptor3d_HCurveOnSurface, Adaptor3d_HCurve) + + +class Adaptor3d_HCurveOnSurface : public Adaptor3d_HCurve +{ + +public: + + + Standard_EXPORT Adaptor3d_HCurveOnSurface(); + + Standard_EXPORT Adaptor3d_HCurveOnSurface(const Adaptor3d_CurveOnSurface& C); + + Standard_EXPORT void Set (const Adaptor3d_CurveOnSurface& C); + + Standard_EXPORT const Adaptor3d_Curve& Curve() const; + + Standard_EXPORT Adaptor3d_Curve& GetCurve(); + + Adaptor3d_CurveOnSurface& ChangeCurve(); + + + + + DEFINE_STANDARD_RTTI(Adaptor3d_HCurveOnSurface,Adaptor3d_HCurve) + +protected: + + + Adaptor3d_CurveOnSurface myCurve; + + +private: + + + + +}; + +#define TheCurve Adaptor3d_CurveOnSurface +#define TheCurve_hxx +#define Adaptor3d_GenHCurve Adaptor3d_HCurveOnSurface +#define Adaptor3d_GenHCurve_hxx +#define Handle_Adaptor3d_GenHCurve Handle(Adaptor3d_HCurveOnSurface) + +#include + +#undef TheCurve +#undef TheCurve_hxx +#undef Adaptor3d_GenHCurve +#undef Adaptor3d_GenHCurve_hxx +#undef Handle_Adaptor3d_GenHCurve + + + + +#endif // _Adaptor3d_HCurveOnSurface_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_HCurveOnSurface_0.cxx b/src/Adaptor3d/Adaptor3d_HCurveOnSurface_0.cxx new file mode 100644 index 0000000000..dedb934068 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_HCurveOnSurface_0.cxx @@ -0,0 +1,42 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 + +#include + +#include +#include +#include +#include +#include + + + + + + + + + + +#define TheCurve Adaptor3d_CurveOnSurface +#define TheCurve_hxx +#define Adaptor3d_GenHCurve Adaptor3d_HCurveOnSurface +#define Adaptor3d_GenHCurve_hxx +#define Handle_Adaptor3d_GenHCurve Handle(Adaptor3d_HCurveOnSurface) +#include + diff --git a/src/Adaptor3d/Adaptor3d_HIsoCurve.hxx b/src/Adaptor3d/Adaptor3d_HIsoCurve.hxx new file mode 100644 index 0000000000..18e92ca3c6 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_HIsoCurve.hxx @@ -0,0 +1,89 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 _Adaptor3d_HIsoCurve_HeaderFile +#define _Adaptor3d_HIsoCurve_HeaderFile + +#include +#include + +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class Adaptor3d_IsoCurve; +class Adaptor3d_Curve; + + +class Adaptor3d_HIsoCurve; +DEFINE_STANDARD_HANDLE(Adaptor3d_HIsoCurve, Adaptor3d_HCurve) + + +class Adaptor3d_HIsoCurve : public Adaptor3d_HCurve +{ + +public: + + + Standard_EXPORT Adaptor3d_HIsoCurve(); + + Standard_EXPORT Adaptor3d_HIsoCurve(const Adaptor3d_IsoCurve& C); + + Standard_EXPORT void Set (const Adaptor3d_IsoCurve& C); + + Standard_EXPORT const Adaptor3d_Curve& Curve() const; + + Standard_EXPORT Adaptor3d_Curve& GetCurve(); + + Adaptor3d_IsoCurve& ChangeCurve(); + + + + + DEFINE_STANDARD_RTTI(Adaptor3d_HIsoCurve,Adaptor3d_HCurve) + +protected: + + + Adaptor3d_IsoCurve myCurve; + + +private: + + + + +}; + +#define TheCurve Adaptor3d_IsoCurve +#define TheCurve_hxx +#define Adaptor3d_GenHCurve Adaptor3d_HIsoCurve +#define Adaptor3d_GenHCurve_hxx +#define Handle_Adaptor3d_GenHCurve Handle(Adaptor3d_HIsoCurve) + +#include + +#undef TheCurve +#undef TheCurve_hxx +#undef Adaptor3d_GenHCurve +#undef Adaptor3d_GenHCurve_hxx +#undef Handle_Adaptor3d_GenHCurve + + + + +#endif // _Adaptor3d_HIsoCurve_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_HIsoCurve_0.cxx b/src/Adaptor3d/Adaptor3d_HIsoCurve_0.cxx new file mode 100644 index 0000000000..791880cb10 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_HIsoCurve_0.cxx @@ -0,0 +1,42 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 + +#include + +#include +#include +#include +#include +#include + + + + + + + + + + +#define TheCurve Adaptor3d_IsoCurve +#define TheCurve_hxx +#define Adaptor3d_GenHCurve Adaptor3d_HIsoCurve +#define Adaptor3d_GenHCurve_hxx +#define Handle_Adaptor3d_GenHCurve Handle(Adaptor3d_HIsoCurve) +#include + diff --git a/src/Adaptor3d/Adaptor3d_HOffsetCurve.hxx b/src/Adaptor3d/Adaptor3d_HOffsetCurve.hxx new file mode 100644 index 0000000000..04dd1466a5 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_HOffsetCurve.hxx @@ -0,0 +1,87 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 _Adaptor3d_HOffsetCurve_HeaderFile +#define _Adaptor3d_HOffsetCurve_HeaderFile + +#include +#include + +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class Adaptor3d_OffsetCurve; +class Adaptor2d_Curve2d; + + +class Adaptor3d_HOffsetCurve; +DEFINE_STANDARD_HANDLE(Adaptor3d_HOffsetCurve, Adaptor2d_HCurve2d) + + +class Adaptor3d_HOffsetCurve : public Adaptor2d_HCurve2d +{ + +public: + + + Standard_EXPORT Adaptor3d_HOffsetCurve(); + + Standard_EXPORT Adaptor3d_HOffsetCurve(const Adaptor3d_OffsetCurve& C); + + Standard_EXPORT void Set (const Adaptor3d_OffsetCurve& C); + + Standard_EXPORT const Adaptor2d_Curve2d& Curve2d() const; + + Adaptor3d_OffsetCurve& ChangeCurve2d(); + + + + + DEFINE_STANDARD_RTTI(Adaptor3d_HOffsetCurve,Adaptor2d_HCurve2d) + +protected: + + + Adaptor3d_OffsetCurve myCurve; + + +private: + + + + +}; + +#define TheCurve Adaptor3d_OffsetCurve +#define TheCurve_hxx +#define Adaptor2d_GenHCurve2d Adaptor3d_HOffsetCurve +#define Adaptor2d_GenHCurve2d_hxx +#define Handle_Adaptor2d_GenHCurve2d Handle(Adaptor3d_HOffsetCurve) + +#include + +#undef TheCurve +#undef TheCurve_hxx +#undef Adaptor2d_GenHCurve2d +#undef Adaptor2d_GenHCurve2d_hxx +#undef Handle_Adaptor2d_GenHCurve2d + + + + +#endif // _Adaptor3d_HOffsetCurve_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_HOffsetCurve_0.cxx b/src/Adaptor3d/Adaptor3d_HOffsetCurve_0.cxx new file mode 100644 index 0000000000..2c05465472 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_HOffsetCurve_0.cxx @@ -0,0 +1,42 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 + +#include + +#include +#include +#include +#include +#include + + + + + + + + + + +#define TheCurve Adaptor3d_OffsetCurve +#define TheCurve_hxx +#define Adaptor2d_GenHCurve2d Adaptor3d_HOffsetCurve +#define Adaptor2d_GenHCurve2d_hxx +#define Handle_Adaptor2d_GenHCurve2d Handle(Adaptor3d_HOffsetCurve) +#include + diff --git a/src/Adaptor3d/Adaptor3d_HSurface.cdl b/src/Adaptor3d/Adaptor3d_HSurface.cdl deleted file mode 100644 index 4a817345bb..0000000000 --- a/src/Adaptor3d/Adaptor3d_HSurface.cdl +++ /dev/null @@ -1,240 +0,0 @@ --- Created on: 1994-02-14 --- Created by: model --- 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. - -deferred class HSurface from Adaptor3d - -inherits TShared from MMgt - - ---Purpose: Root class for surfaces manipulated by handles, on - -- which geometric algorithms work. - -- An adapted surface is an interface between the - -- services provided by a surface and those required of - -- the surface by algorithms which use it. - -- A derived concrete class is provided: - -- GeomAdaptor_HSurface for a surface from the Geom package. - -uses - Array1OfReal from TColStd, - Shape from GeomAbs, - SurfaceType from GeomAbs, - Vec from gp, - Dir from gp, - Pnt from gp, - Pln from gp, - Cone from gp, - Cylinder from gp, - Sphere from gp, - Torus from gp, - Ax1 from gp, - BezierSurface from Geom, - BSplineSurface from Geom, - Surface from Adaptor3d, - HCurve from Adaptor3d - -raises - - OutOfRange from Standard, - NoSuchObject from Standard, - DomainError from Standard, - NotImplemented from Standard - - -is - - - -- - -- Access to the surface - -- - - Surface(me) returns Surface from Adaptor3d - ---Purpose: Returns a reference to the Surface inside the HSurface. - -- - ---C++: return const & - is deferred; - - - -- - -- Surface methods, they are provided for convenience. Each - -- method M() is defined inline as : - -- - -- Adaptor3d_HSurface::M() { Surface()->M(); } - -- - -- See the class Surface for comments on the methods. - -- - -- - - FirstUParameter(me) returns Real ; - ---C++: inline - - - LastUParameter(me) returns Real ; - ---C++: inline - - FirstVParameter(me) returns Real ; - ---C++: inline - - LastVParameter(me) returns Real ; - ---C++: inline - - UContinuity(me) returns Shape from GeomAbs ; - ---C++: inline - - VContinuity(me) returns Shape from GeomAbs ; - ---C++: inline - - NbUIntervals(me ; S : Shape from GeomAbs) returns Integer ; - ---C++: inline - - NbVIntervals(me ; S : Shape from GeomAbs) returns Integer ; - ---C++: inline - - UIntervals(me ;T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs ) ; - ---C++: inline - - VIntervals(me ; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs ) ; - ---C++: inline - -- - UTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d ; - ---C++: inline - -- - VTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d ; - ---C++: inline - -- - IsUClosed(me) returns Boolean ; - ---C++: inline - - IsVClosed(me) returns Boolean ; - ---C++: inline - - IsUPeriodic(me) returns Boolean ; - ---C++: inline - - UPeriod(me) returns Real ; - ---C++: inline - - IsVPeriodic(me) returns Boolean ; - ---C++: inline - - VPeriod(me) returns Real ; - ---C++: inline - - Value (me; U, V : Real) returns Pnt from gp; - ---C++: inline - - D0 (me; U, V : Real; P : out Pnt from gp) ; - ---C++: inline - - D1 (me; U, V : Real; P : out Pnt from gp; - D1U, D1V : out Vec from gp) ; - ---C++: inline - - D2 (me; U, V : Real; P : out Pnt from gp; - D1U, D1V, D2U, D2V, D2UV : out Vec from gp) ; - ---C++: inline - - - D3 (me; U, V : Real; P : out Pnt from gp; - D1U, D1V, D2U, D2V, D2UV, - D3U, D3V, D3UUV, D3UVV : out Vec from gp) ; - ---C++: inline - - DN (me; U, V : Real; Nu, Nv : Integer) returns Vec from gp ; - ---C++: inline - - UResolution(me; R3d : Real ) returns Real ; - ---C++: inline - - VResolution(me; R3d : Real ) returns Real ; - ---C++: inline - - GetType(me) returns SurfaceType from GeomAbs ; - ---C++: inline - - Plane(me) returns Pln from gp ; - ---C++: inline - - Cylinder(me) returns Cylinder from gp ; - ---C++: inline - - Cone(me) returns Cone from gp ; - ---C++: inline - - Sphere(me) returns Sphere from gp ; - ---C++: inline - - Torus(me) returns Torus from gp ; - ---C++: inline - - UDegree(me) returns Integer ; - ---C++: inline - - - NbUPoles(me) returns Integer ; - ---C++: inline - - VDegree(me) returns Integer ; - ---C++: inline - - - NbVPoles(me) returns Integer ; - ---C++: inline - - - - NbUKnots(me) returns Integer ; - ---C++: inline - - - NbVKnots(me) returns Integer ; - ---C++: inline - - - IsURational(me) returns Boolean ; - ---C++: inline - - - IsVRational(me) returns Boolean ; - ---C++: inline - - - Bezier(me) returns BezierSurface from Geom ; - ---C++: inline - - BSpline(me) returns BSplineSurface from Geom ; - ---C++: inline - - AxeOfRevolution(me) returns Ax1 from gp ; - ---C++: inline - - Direction(me) returns Dir from gp ; - ---C++: inline - - BasisCurve(me) returns HCurve from Adaptor3d ; - ---C++: inline - - BasisSurface(me) returns HSurface from Adaptor3d; - ---C++: inline - - OffsetValue(me) returns Real from Standard; - ---C++: inline - -end HSurface; - - - - diff --git a/src/Adaptor3d/Adaptor3d_HSurface.cxx b/src/Adaptor3d/Adaptor3d_HSurface.cxx index 2c06887e4c..9cbdd327cb 100644 --- a/src/Adaptor3d/Adaptor3d_HSurface.cxx +++ b/src/Adaptor3d/Adaptor3d_HSurface.cxx @@ -11,5 +11,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include diff --git a/src/Adaptor3d/Adaptor3d_HSurface.hxx b/src/Adaptor3d/Adaptor3d_HSurface.hxx new file mode 100644 index 0000000000..86ee29f54b --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_HSurface.hxx @@ -0,0 +1,188 @@ +// Created on: 1994-02-14 +// Created by: model +// 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 _Adaptor3d_HSurface_HeaderFile +#define _Adaptor3d_HSurface_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class Standard_NotImplemented; +class Adaptor3d_Surface; +class gp_Pnt; +class gp_Vec; +class Geom_BezierSurface; +class Geom_BSplineSurface; +class Adaptor3d_HCurve; + + +class Adaptor3d_HSurface; +DEFINE_STANDARD_HANDLE(Adaptor3d_HSurface, MMgt_TShared) + +//! Root class for surfaces manipulated by handles, on +//! which geometric algorithms work. +//! An adapted surface is an interface between the +//! services provided by a surface and those required of +//! the surface by algorithms which use it. +//! A derived concrete class is provided: +//! GeomAdaptor_HSurface for a surface from the Geom package. +class Adaptor3d_HSurface : public MMgt_TShared +{ + +public: + + + //! Returns a reference to the Surface inside the HSurface. + Standard_EXPORT virtual const Adaptor3d_Surface& Surface() const = 0; + + Standard_Real FirstUParameter() const; + + Standard_Real LastUParameter() const; + + Standard_Real FirstVParameter() const; + + Standard_Real LastVParameter() const; + + GeomAbs_Shape UContinuity() const; + + GeomAbs_Shape VContinuity() const; + + Standard_Integer NbUIntervals (const GeomAbs_Shape S) const; + + Standard_Integer NbVIntervals (const GeomAbs_Shape S) const; + + void UIntervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const; + + void VIntervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const; + + Handle(Adaptor3d_HSurface) UTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const; + + Handle(Adaptor3d_HSurface) VTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const; + + Standard_Boolean IsUClosed() const; + + Standard_Boolean IsVClosed() const; + + Standard_Boolean IsUPeriodic() const; + + Standard_Real UPeriod() const; + + Standard_Boolean IsVPeriodic() const; + + Standard_Real VPeriod() const; + + gp_Pnt Value (const Standard_Real U, const Standard_Real V) const; + + void D0 (const Standard_Real U, const Standard_Real V, gp_Pnt& P) const; + + void D1 (const Standard_Real U, const Standard_Real V, gp_Pnt& P, gp_Vec& D1U, gp_Vec& D1V) const; + + void D2 (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) const; + + void D3 (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) const; + + gp_Vec DN (const Standard_Real U, const Standard_Real V, const Standard_Integer Nu, const Standard_Integer Nv) const; + + Standard_Real UResolution (const Standard_Real R3d) const; + + Standard_Real VResolution (const Standard_Real R3d) const; + + GeomAbs_SurfaceType GetType() const; + + gp_Pln Plane() const; + + gp_Cylinder Cylinder() const; + + gp_Cone Cone() const; + + gp_Sphere Sphere() const; + + gp_Torus Torus() const; + + Standard_Integer UDegree() const; + + Standard_Integer NbUPoles() const; + + Standard_Integer VDegree() const; + + Standard_Integer NbVPoles() const; + + Standard_Integer NbUKnots() const; + + Standard_Integer NbVKnots() const; + + Standard_Boolean IsURational() const; + + Standard_Boolean IsVRational() const; + + Handle(Geom_BezierSurface) Bezier() const; + + Handle(Geom_BSplineSurface) BSpline() const; + + gp_Ax1 AxeOfRevolution() const; + + gp_Dir Direction() const; + + Handle(Adaptor3d_HCurve) BasisCurve() const; + + Handle(Adaptor3d_HSurface) BasisSurface() const; + + Standard_Real OffsetValue() const; + + + + + DEFINE_STANDARD_RTTI(Adaptor3d_HSurface,MMgt_TShared) + +protected: + + + + +private: + + + + +}; + + +#include + + + + + +#endif // _Adaptor3d_HSurface_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_HSurfaceOfLinearExtrusion.hxx b/src/Adaptor3d/Adaptor3d_HSurfaceOfLinearExtrusion.hxx new file mode 100644 index 0000000000..947b62d11b --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_HSurfaceOfLinearExtrusion.hxx @@ -0,0 +1,87 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 _Adaptor3d_HSurfaceOfLinearExtrusion_HeaderFile +#define _Adaptor3d_HSurfaceOfLinearExtrusion_HeaderFile + +#include +#include + +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class Adaptor3d_SurfaceOfLinearExtrusion; +class Adaptor3d_Surface; + + +class Adaptor3d_HSurfaceOfLinearExtrusion; +DEFINE_STANDARD_HANDLE(Adaptor3d_HSurfaceOfLinearExtrusion, Adaptor3d_HSurface) + + +class Adaptor3d_HSurfaceOfLinearExtrusion : public Adaptor3d_HSurface +{ + +public: + + + Standard_EXPORT Adaptor3d_HSurfaceOfLinearExtrusion(); + + Standard_EXPORT Adaptor3d_HSurfaceOfLinearExtrusion(const Adaptor3d_SurfaceOfLinearExtrusion& S); + + Standard_EXPORT void Set (const Adaptor3d_SurfaceOfLinearExtrusion& S); + + Standard_EXPORT const Adaptor3d_Surface& Surface() const; + + Adaptor3d_SurfaceOfLinearExtrusion& ChangeSurface(); + + + + + DEFINE_STANDARD_RTTI(Adaptor3d_HSurfaceOfLinearExtrusion,Adaptor3d_HSurface) + +protected: + + + Adaptor3d_SurfaceOfLinearExtrusion mySurf; + + +private: + + + + +}; + +#define TheSurface Adaptor3d_SurfaceOfLinearExtrusion +#define TheSurface_hxx +#define Adaptor3d_GenHSurface Adaptor3d_HSurfaceOfLinearExtrusion +#define Adaptor3d_GenHSurface_hxx +#define Handle_Adaptor3d_GenHSurface Handle(Adaptor3d_HSurfaceOfLinearExtrusion) + +#include + +#undef TheSurface +#undef TheSurface_hxx +#undef Adaptor3d_GenHSurface +#undef Adaptor3d_GenHSurface_hxx +#undef Handle_Adaptor3d_GenHSurface + + + + +#endif // _Adaptor3d_HSurfaceOfLinearExtrusion_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_HSurfaceOfLinearExtrusion_0.cxx b/src/Adaptor3d/Adaptor3d_HSurfaceOfLinearExtrusion_0.cxx new file mode 100644 index 0000000000..d9360595c1 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_HSurfaceOfLinearExtrusion_0.cxx @@ -0,0 +1,42 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 + +#include + +#include +#include +#include +#include +#include + + + + + + + + + + +#define TheSurface Adaptor3d_SurfaceOfLinearExtrusion +#define TheSurface_hxx +#define Adaptor3d_GenHSurface Adaptor3d_HSurfaceOfLinearExtrusion +#define Adaptor3d_GenHSurface_hxx +#define Handle_Adaptor3d_GenHSurface Handle(Adaptor3d_HSurfaceOfLinearExtrusion) +#include + diff --git a/src/Adaptor3d/Adaptor3d_HSurfaceOfRevolution.hxx b/src/Adaptor3d/Adaptor3d_HSurfaceOfRevolution.hxx new file mode 100644 index 0000000000..bfc7d23fc1 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_HSurfaceOfRevolution.hxx @@ -0,0 +1,87 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 _Adaptor3d_HSurfaceOfRevolution_HeaderFile +#define _Adaptor3d_HSurfaceOfRevolution_HeaderFile + +#include +#include + +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class Adaptor3d_SurfaceOfRevolution; +class Adaptor3d_Surface; + + +class Adaptor3d_HSurfaceOfRevolution; +DEFINE_STANDARD_HANDLE(Adaptor3d_HSurfaceOfRevolution, Adaptor3d_HSurface) + + +class Adaptor3d_HSurfaceOfRevolution : public Adaptor3d_HSurface +{ + +public: + + + Standard_EXPORT Adaptor3d_HSurfaceOfRevolution(); + + Standard_EXPORT Adaptor3d_HSurfaceOfRevolution(const Adaptor3d_SurfaceOfRevolution& S); + + Standard_EXPORT void Set (const Adaptor3d_SurfaceOfRevolution& S); + + Standard_EXPORT const Adaptor3d_Surface& Surface() const; + + Adaptor3d_SurfaceOfRevolution& ChangeSurface(); + + + + + DEFINE_STANDARD_RTTI(Adaptor3d_HSurfaceOfRevolution,Adaptor3d_HSurface) + +protected: + + + Adaptor3d_SurfaceOfRevolution mySurf; + + +private: + + + + +}; + +#define TheSurface Adaptor3d_SurfaceOfRevolution +#define TheSurface_hxx +#define Adaptor3d_GenHSurface Adaptor3d_HSurfaceOfRevolution +#define Adaptor3d_GenHSurface_hxx +#define Handle_Adaptor3d_GenHSurface Handle(Adaptor3d_HSurfaceOfRevolution) + +#include + +#undef TheSurface +#undef TheSurface_hxx +#undef Adaptor3d_GenHSurface +#undef Adaptor3d_GenHSurface_hxx +#undef Handle_Adaptor3d_GenHSurface + + + + +#endif // _Adaptor3d_HSurfaceOfRevolution_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_HSurfaceOfRevolution_0.cxx b/src/Adaptor3d/Adaptor3d_HSurfaceOfRevolution_0.cxx new file mode 100644 index 0000000000..e8d2c0c2a3 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_HSurfaceOfRevolution_0.cxx @@ -0,0 +1,42 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 + +#include + +#include +#include +#include +#include +#include + + + + + + + + + + +#define TheSurface Adaptor3d_SurfaceOfRevolution +#define TheSurface_hxx +#define Adaptor3d_GenHSurface Adaptor3d_HSurfaceOfRevolution +#define Adaptor3d_GenHSurface_hxx +#define Handle_Adaptor3d_GenHSurface Handle(Adaptor3d_HSurfaceOfRevolution) +#include + diff --git a/src/Adaptor3d/Adaptor3d_HSurfaceTool.cdl b/src/Adaptor3d/Adaptor3d_HSurfaceTool.cdl deleted file mode 100644 index f6fde2adc3..0000000000 --- a/src/Adaptor3d/Adaptor3d_HSurfaceTool.cdl +++ /dev/null @@ -1,245 +0,0 @@ --- 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. - -class HSurfaceTool from Adaptor3d - -uses - - Shape from GeomAbs, - SurfaceType from GeomAbs, - Pln from gp, - Cone from gp, - Cylinder from gp, - Sphere from gp, - Torus from gp, - Pnt from gp, - Vec from gp, - Array1OfReal from TColStd, - BezierSurface from Geom, - BSplineSurface from Geom, - HSurface from Adaptor3d, - HCurve from Adaptor3d, - Ax1 from gp, - Dir from gp - -raises - - NoSuchObject from Standard, - OutOfRange from Standard - -is - - FirstUParameter(myclass; S: HSurface from Adaptor3d) - ---C++: inline - returns Real from Standard; - - FirstVParameter(myclass; S: HSurface from Adaptor3d) - ---C++: inline - returns Real from Standard; - - LastUParameter(myclass; S: HSurface from Adaptor3d) - ---C++: inline - returns Real from Standard; - - LastVParameter(myclass; S: HSurface from Adaptor3d) - ---C++: inline - returns Real from Standard; - - - - NbUIntervals(myclass; S: HSurface from Adaptor3d; - Sh : Shape from GeomAbs) - ---C++: inline - returns Integer from Standard; - - NbVIntervals(myclass; S: HSurface from Adaptor3d; - Sh : Shape from GeomAbs) - ---C++: inline - returns Integer from Standard; - - - - UIntervals(myclass; S : HSurface from Adaptor3d; - T : in out Array1OfReal from TColStd; - Sh : Shape from GeomAbs); - ---C++: inline - - VIntervals(myclass; S : HSurface from Adaptor3d; - T : in out Array1OfReal from TColStd; - Sh : Shape from GeomAbs) ; - ---C++: inline - - - UTrim(myclass; S : HSurface from Adaptor3d; - First, Last, Tol : Real) - ---C++: inline - returns HSurface from Adaptor3d - raises - OutOfRange from Standard; - ---Purpose: If >= - - VTrim(myclass; S : HSurface from Adaptor3d; - First, Last, Tol : Real) - ---C++: inline - returns HSurface from Adaptor3d - raises - OutOfRange from Standard; - ---Purpose: If >= - - - IsUClosed(myclass; S: HSurface from Adaptor3d) - ---C++: inline - returns Boolean from Standard; - - IsVClosed(myclass; S: HSurface from Adaptor3d) - ---C++: inline - returns Boolean from Standard; - - - IsUPeriodic(myclass; S: HSurface from Adaptor3d) - ---C++: inline - returns Boolean from Standard; - - UPeriod(myclass; S: HSurface from Adaptor3d) - ---C++: inline - returns Real from Standard; - - IsVPeriodic(myclass; S: HSurface from Adaptor3d) - ---C++: inline - returns Boolean from Standard; - - VPeriod(myclass; S: HSurface from Adaptor3d) - ---C++: inline - returns Real from Standard; - - - - Value(myclass; S : HSurface from Adaptor3d; - u,v : Real from Standard) - ---C++: inline - returns Pnt from gp; - - D0(myclass; S : HSurface from Adaptor3d; - u,v : Real from Standard; - P : out Pnt from gp); - ---C++: inline - - D1(myclass; S : HSurface from Adaptor3d; - u,v : Real from Standard; - P : out Pnt from gp; - D1u,D1v: out Vec from gp); - ---C++: inline - - D2(myclass; S : HSurface from Adaptor3d; - u,v : Real from Standard; - P : out Pnt from gp; - D1U,D1V,D2U,D2V,D2UV: out Vec from gp); - ---C++: inline - - D3(myclass; S : HSurface from Adaptor3d; - u,v : Real from Standard; - P : out Pnt from gp; - D1U, D1V, D2U, D2V, D2UV, D3U, D3V, D3UUV, D3UVV: out Vec from gp); - ---C++: inline - - DN(myclass; S : HSurface from Adaptor3d; - u,v : Real from Standard; - Nu,Nv : Integer from Standard) - ---C++: inline - returns Vec from gp; - - - - UResolution(myclass; S:HSurface from Adaptor3d; R3d: Real from Standard) - ---C++: inline - returns Real from Standard; - - VResolution(myclass; S:HSurface from Adaptor3d; R3d: Real from Standard) - ---C++: inline - returns Real from Standard; - - GetType(myclass; S: HSurface from Adaptor3d) - ---C++: inline - returns SurfaceType from GeomAbs; - - - Plane(myclass; S: HSurface from Adaptor3d) - ---C++: inline - returns Pln from gp; - - Cylinder(myclass; S : HSurface from Adaptor3d) returns Cylinder from gp - raises NoSuchObject from Standard; - ---C++: inline - - - Cone(myclass; S : HSurface from Adaptor3d) returns Cone from gp - raises NoSuchObject from Standard; - ---C++: inline - - Torus(myclass; S : HSurface from Adaptor3d) returns Torus from gp - raises NoSuchObject from Standard; - ---C++: inline - - - Sphere(myclass; S : HSurface from Adaptor3d) returns Sphere from gp - raises NoSuchObject from Standard; - ---C++: inline - - Bezier(myclass; S : HSurface from Adaptor3d) returns BezierSurface from Geom - raises NoSuchObject from Standard; - ---C++: inline - - BSpline(myclass; S : HSurface from Adaptor3d) returns BSplineSurface from Geom - raises NoSuchObject from Standard; - ---C++: inline - - AxeOfRevolution(myclass; S: HSurface from Adaptor3d) returns Ax1 from gp - raises NoSuchObject from Standard; - ---C++: inline - - Direction(myclass; S: HSurface from Adaptor3d) returns Dir from gp - raises NoSuchObject from Standard; - ---C++: inline - - BasisCurve(myclass; S:HSurface from Adaptor3d) returns HCurve from Adaptor3d - raises NoSuchObject from Standard; - ---C++: inline - - BasisSurface(myclass; S:HSurface from Adaptor3d) returns HSurface from Adaptor3d - raises NoSuchObject from Standard; - ---C++: inline - - OffsetValue(myclass; S:HSurface from Adaptor3d) returns Real from Standard - raises NoSuchObject from Standard; - ---C++: inline - - --------------------------------------------------------------------------------- - - - NbSamplesU(myclass; S : HSurface from Adaptor3d) returns Integer from Standard; - - - NbSamplesV(myclass; S : HSurface from Adaptor3d) returns Integer from Standard; - - - NbSamplesU(myclass; S : HSurface from Adaptor3d; u1,u2: Real from Standard) returns Integer from Standard; - - - NbSamplesV(myclass; S : HSurface from Adaptor3d; v1,v2: Real from Standard) returns Integer from Standard; - - -end HSurfaceTool; diff --git a/src/Adaptor3d/Adaptor3d_HSurfaceTool.cxx b/src/Adaptor3d/Adaptor3d_HSurfaceTool.cxx index b3e93773f6..a2aa0ee872 100644 --- a/src/Adaptor3d/Adaptor3d_HSurfaceTool.cxx +++ b/src/Adaptor3d/Adaptor3d_HSurfaceTool.cxx @@ -13,7 +13,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include Standard_Integer Adaptor3d_HSurfaceTool::NbSamplesU(const Handle(Adaptor3d_HSurface)& S) { diff --git a/src/Adaptor3d/Adaptor3d_HSurfaceTool.hxx b/src/Adaptor3d/Adaptor3d_HSurfaceTool.hxx new file mode 100644 index 0000000000..6fd07573f3 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_HSurfaceTool.hxx @@ -0,0 +1,165 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_NoSuchObject; +class Standard_OutOfRange; +class Adaptor3d_HSurface; +class gp_Pnt; +class gp_Vec; +class Geom_BezierSurface; +class Geom_BSplineSurface; +class Adaptor3d_HCurve; + + + +class Adaptor3d_HSurfaceTool +{ +public: + + DEFINE_STANDARD_ALLOC + + + static Standard_Real FirstUParameter (const Handle(Adaptor3d_HSurface)& S); + + static Standard_Real FirstVParameter (const Handle(Adaptor3d_HSurface)& S); + + static Standard_Real LastUParameter (const Handle(Adaptor3d_HSurface)& S); + + static Standard_Real LastVParameter (const Handle(Adaptor3d_HSurface)& S); + + static Standard_Integer NbUIntervals (const Handle(Adaptor3d_HSurface)& S, const GeomAbs_Shape Sh); + + static Standard_Integer NbVIntervals (const Handle(Adaptor3d_HSurface)& S, const GeomAbs_Shape Sh); + + static void UIntervals (const Handle(Adaptor3d_HSurface)& S, TColStd_Array1OfReal& T, const GeomAbs_Shape Sh); + + static void VIntervals (const Handle(Adaptor3d_HSurface)& S, TColStd_Array1OfReal& T, const GeomAbs_Shape Sh); + + //! If >= + static Handle(Adaptor3d_HSurface) UTrim (const Handle(Adaptor3d_HSurface)& S, const Standard_Real First, const Standard_Real Last, const Standard_Real Tol); + + //! If >= + static Handle(Adaptor3d_HSurface) VTrim (const Handle(Adaptor3d_HSurface)& S, const Standard_Real First, const Standard_Real Last, const Standard_Real Tol); + + static Standard_Boolean IsUClosed (const Handle(Adaptor3d_HSurface)& S); + + static Standard_Boolean IsVClosed (const Handle(Adaptor3d_HSurface)& S); + + static Standard_Boolean IsUPeriodic (const Handle(Adaptor3d_HSurface)& S); + + static Standard_Real UPeriod (const Handle(Adaptor3d_HSurface)& S); + + static Standard_Boolean IsVPeriodic (const Handle(Adaptor3d_HSurface)& S); + + static Standard_Real VPeriod (const Handle(Adaptor3d_HSurface)& S); + + static gp_Pnt Value (const Handle(Adaptor3d_HSurface)& S, const Standard_Real u, const Standard_Real v); + + static void D0 (const Handle(Adaptor3d_HSurface)& S, const Standard_Real u, const Standard_Real v, gp_Pnt& P); + + static void D1 (const Handle(Adaptor3d_HSurface)& S, const Standard_Real u, const Standard_Real v, gp_Pnt& P, gp_Vec& D1u, gp_Vec& D1v); + + static void D2 (const Handle(Adaptor3d_HSurface)& 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 Handle(Adaptor3d_HSurface)& 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 Handle(Adaptor3d_HSurface)& S, const Standard_Real u, const Standard_Real v, const Standard_Integer Nu, const Standard_Integer Nv); + + static Standard_Real UResolution (const Handle(Adaptor3d_HSurface)& S, const Standard_Real R3d); + + static Standard_Real VResolution (const Handle(Adaptor3d_HSurface)& S, const Standard_Real R3d); + + static GeomAbs_SurfaceType GetType (const Handle(Adaptor3d_HSurface)& S); + + static gp_Pln Plane (const Handle(Adaptor3d_HSurface)& S); + + static gp_Cylinder Cylinder (const Handle(Adaptor3d_HSurface)& S); + + static gp_Cone Cone (const Handle(Adaptor3d_HSurface)& S); + + static gp_Torus Torus (const Handle(Adaptor3d_HSurface)& S); + + static gp_Sphere Sphere (const Handle(Adaptor3d_HSurface)& S); + + static Handle(Geom_BezierSurface) Bezier (const Handle(Adaptor3d_HSurface)& S); + + static Handle(Geom_BSplineSurface) BSpline (const Handle(Adaptor3d_HSurface)& S); + + static gp_Ax1 AxeOfRevolution (const Handle(Adaptor3d_HSurface)& S); + + static gp_Dir Direction (const Handle(Adaptor3d_HSurface)& S); + + static Handle(Adaptor3d_HCurve) BasisCurve (const Handle(Adaptor3d_HSurface)& S); + + static Handle(Adaptor3d_HSurface) BasisSurface (const Handle(Adaptor3d_HSurface)& S); + + static Standard_Real OffsetValue (const Handle(Adaptor3d_HSurface)& S); + + Standard_EXPORT static Standard_Integer NbSamplesU (const Handle(Adaptor3d_HSurface)& S); + + Standard_EXPORT static Standard_Integer NbSamplesV (const Handle(Adaptor3d_HSurface)& S); + + Standard_EXPORT static Standard_Integer NbSamplesU (const Handle(Adaptor3d_HSurface)& S, const Standard_Real u1, const Standard_Real u2); + + Standard_EXPORT static Standard_Integer NbSamplesV (const Handle(Adaptor3d_HSurface)& S, const Standard_Real v1, const Standard_Real v2); + + + + +protected: + + + + + +private: + + + + + +}; + + +#include + + + + + +#endif // _Adaptor3d_HSurfaceTool_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_HVertex.cdl b/src/Adaptor3d/Adaptor3d_HVertex.cdl deleted file mode 100644 index 98058fe7f8..0000000000 --- a/src/Adaptor3d/Adaptor3d_HVertex.cdl +++ /dev/null @@ -1,79 +0,0 @@ --- Created on: 1994-03-25 --- Created by: model --- 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. - -class HVertex from Adaptor3d - - ---Purpose: - - -inherits TShared from MMgt - -uses Pnt2d from gp, - Orientation from TopAbs, - HCurve2d from Adaptor2d - -is - - Create - - returns HVertex from Adaptor3d; - - - Create(P: Pnt2d from gp; Ori: Orientation from TopAbs; - Resolution: Real from Standard) - - returns HVertex from Adaptor3d; - - - Value(me: mutable) - - returns Pnt2d from gp - is virtual; - - - Parameter(me: mutable; C: HCurve2d from Adaptor2d) - - returns Real from Standard - is virtual; - - - Resolution(me: mutable; C: HCurve2d from Adaptor2d) - - ---Purpose: Parametric resolution (2d). - - returns Real from Standard - is virtual; - - - Orientation(me: mutable) - - returns Orientation from TopAbs - is virtual; - - - IsSame(me: mutable; Other: like me) - - returns Boolean from Standard - is virtual; - - -fields - - myPnt : Pnt2d from gp; - myTol : Real from Standard; - myOri : Orientation from TopAbs; - -end HVertex; diff --git a/src/Adaptor3d/Adaptor3d_HVertex.cxx b/src/Adaptor3d/Adaptor3d_HVertex.cxx index 89d4c2c389..8252cdc307 100644 --- a/src/Adaptor3d/Adaptor3d_HVertex.cxx +++ b/src/Adaptor3d/Adaptor3d_HVertex.cxx @@ -11,12 +11,13 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include #include - +#include +#include +#include +#include +#include Adaptor3d_HVertex::Adaptor3d_HVertex () {} diff --git a/src/Adaptor3d/Adaptor3d_HVertex.hxx b/src/Adaptor3d/Adaptor3d_HVertex.hxx new file mode 100644 index 0000000000..498b63b3ee --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_HVertex.hxx @@ -0,0 +1,83 @@ +// Created on: 1994-03-25 +// Created by: model +// 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 _Adaptor3d_HVertex_HeaderFile +#define _Adaptor3d_HVertex_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +class gp_Pnt2d; +class Adaptor2d_HCurve2d; + + +class Adaptor3d_HVertex; +DEFINE_STANDARD_HANDLE(Adaptor3d_HVertex, MMgt_TShared) + + +class Adaptor3d_HVertex : public MMgt_TShared +{ + +public: + + + Standard_EXPORT Adaptor3d_HVertex(); + + Standard_EXPORT Adaptor3d_HVertex(const gp_Pnt2d& P, const TopAbs_Orientation Ori, const Standard_Real Resolution); + + Standard_EXPORT virtual gp_Pnt2d Value(); + + Standard_EXPORT virtual Standard_Real Parameter (const Handle(Adaptor2d_HCurve2d)& C); + + //! Parametric resolution (2d). + Standard_EXPORT virtual Standard_Real Resolution (const Handle(Adaptor2d_HCurve2d)& C); + + Standard_EXPORT virtual TopAbs_Orientation Orientation(); + + Standard_EXPORT virtual Standard_Boolean IsSame (const Handle(Adaptor3d_HVertex)& Other); + + + + + DEFINE_STANDARD_RTTI(Adaptor3d_HVertex,MMgt_TShared) + +protected: + + + + +private: + + + gp_Pnt2d myPnt; + Standard_Real myTol; + TopAbs_Orientation myOri; + + +}; + + + + + + + +#endif // _Adaptor3d_HVertex_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_InterFunc.cdl b/src/Adaptor3d/Adaptor3d_InterFunc.cdl deleted file mode 100644 index 0a076b89ea..0000000000 --- a/src/Adaptor3d/Adaptor3d_InterFunc.cdl +++ /dev/null @@ -1,72 +0,0 @@ --- Created on: 1998-02-18 --- Created by: Jeanine PANCIATICI --- 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. - -private class InterFunc from Adaptor3d inherits FunctionWithDerivative from math - - ---Purpose: Used to find the points U(t) = U0 or V(t) = V0 in - -- order to determine the Cn discontinuities of an - -- Adpator_CurveOnSurface relativly to the - -- discontinuities of the surface. Used to - -- find the roots of the functions - -uses - HCurve2d from Adaptor2d - -raises ConstructionError - -is - Create (C : HCurve2d from Adaptor2d; FixVal: Real from Standard; - Fix: Integer) - returns InterFunc - raises ConstructionError from Standard; - ---Purpose: build the function U(t)=FixVal if Fix =1 or - -- V(t)=FixVal if Fix=2 - - Value(me: in out; X: Real; F: out Real) - ---Purpose: computes the value of the function for the variable . - -- Returns True if the calculation were successfully done, - -- False otherwise. - - returns Boolean; - - - Derivative(me: in out; X: Real; D: out Real) - ---Purpose: computes the derivative of the function - -- for the variable . - -- Returns True if the calculation were successfully done, - -- False otherwise. - - returns Boolean; - - - Values(me: in out; X: Real; F, D: out Real) - ---Purpose: computes the value and the derivative of the - -- function for the variable . - -- Returns True if the calculation were successfully done, - -- False otherwise. - - returns Boolean; - -fields - - myCurve2d : HCurve2d from Adaptor2d; - myFixVal : Real from Standard; - myFix : Integer from Standard; - - - -end InterFunc; - diff --git a/src/Adaptor3d/Adaptor3d_InterFunc.cxx b/src/Adaptor3d/Adaptor3d_InterFunc.cxx index 50dbf2d9af..b89837f1db 100644 --- a/src/Adaptor3d/Adaptor3d_InterFunc.cxx +++ b/src/Adaptor3d/Adaptor3d_InterFunc.cxx @@ -14,10 +14,12 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + #include +#include #include #include +#include Adaptor3d_InterFunc::Adaptor3d_InterFunc(const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real FixVal, const Standard_Integer Fix) : myCurve2d(C),myFixVal(FixVal),myFix(Fix) { diff --git a/src/Adaptor3d/Adaptor3d_InterFunc.hxx b/src/Adaptor3d/Adaptor3d_InterFunc.hxx new file mode 100644 index 0000000000..71c5b6f27a --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_InterFunc.hxx @@ -0,0 +1,91 @@ +// Created on: 1998-02-18 +// Created by: Jeanine PANCIATICI +// 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 _Adaptor3d_InterFunc_HeaderFile +#define _Adaptor3d_InterFunc_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class Adaptor2d_HCurve2d; +class Standard_ConstructionError; + + +//! Used to find the points U(t) = U0 or V(t) = V0 in +//! order to determine the Cn discontinuities of an +//! Adpator_CurveOnSurface relativly to the +//! discontinuities of the surface. Used to +//! find the roots of the functions +class Adaptor3d_InterFunc : public math_FunctionWithDerivative +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! build the function U(t)=FixVal if Fix =1 or + //! V(t)=FixVal if Fix=2 + Standard_EXPORT Adaptor3d_InterFunc(const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real FixVal, const Standard_Integer Fix); + + //! computes the value of the function for the variable . + //! Returns True if the calculation were successfully done, + //! False otherwise. + Standard_EXPORT Standard_Boolean Value (const Standard_Real X, Standard_Real& F); + + //! computes the derivative of the function + //! for the variable . + //! Returns True if the calculation were successfully done, + //! False otherwise. + Standard_EXPORT Standard_Boolean Derivative (const Standard_Real X, Standard_Real& D); + + //! computes the value and the derivative of the + //! function for the variable . + //! Returns True if the calculation were successfully done, + //! False otherwise. + Standard_EXPORT Standard_Boolean Values (const Standard_Real X, Standard_Real& F, Standard_Real& D); + + + + +protected: + + + + + +private: + + + + Handle(Adaptor2d_HCurve2d) myCurve2d; + Standard_Real myFixVal; + Standard_Integer myFix; + + +}; + + + + + + + +#endif // _Adaptor3d_InterFunc_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_IsoCurve.cdl b/src/Adaptor3d/Adaptor3d_IsoCurve.cdl deleted file mode 100644 index 77b499ba2e..0000000000 --- a/src/Adaptor3d/Adaptor3d_IsoCurve.cdl +++ /dev/null @@ -1,300 +0,0 @@ --- Created on: 1993-03-11 --- Created by: Isabelle GRIGNON --- 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. - --- modified 01-1994 by rob (time comsumption) - - -class IsoCurve from Adaptor3d inherits Curve from Adaptor3d - - ---Purpose: Defines an isoparametric curve on a surface. The - -- type of isoparametric curve (U or V) is defined - -- with the enumeration IsoType from GeomAbs if - -- NoneIso is given an error is raised. - -uses - Array1OfReal from TColStd, - IsoType from GeomAbs, - Shape from GeomAbs, - CurveType from GeomAbs, - Vec from gp, - Pnt from gp, - Circ from gp, - Elips from gp, - Hypr from gp, - Parab from gp, - Lin from gp, - BezierCurve from Geom, - BSplineCurve from Geom, - HCurve from Adaptor3d, - HSurface from Adaptor3d - -raises - NoSuchObject from Standard, - OutOfRange from Standard, - DomainError from Standard - -is - - -- - -- Methods specific of IsoCurve - -- - - Create returns IsoCurve from Adaptor3d; - ---Purpose: The iso is set to NoneIso. - - Create(S : HSurface from Adaptor3d) returns IsoCurve from Adaptor3d; - ---Purpose: The surface is loaded. The iso is set to NoneIso. - - Create(S : HSurface from Adaptor3d; - Iso : IsoType from GeomAbs; Param : Real) - returns IsoCurve from Adaptor3d; - ---Purpose: Creates an IsoCurve curve. Iso defines the - -- type (isoU or isoU) Param defines the value of - -- the iso. The bounds of the iso are the bounds - -- of the surface. - - Create(S : HSurface from Adaptor3d; - Iso : IsoType from GeomAbs; Param : Real; WFirst,WLast : Real) - returns IsoCurve from Adaptor3d; - ---Purpose: Create an IsoCurve curve. Iso defines the type - -- (isoU or isov). Param defines the value of the - -- iso. WFirst,WLast define the bounds of the iso. - - - Load( me:in out ;S : HSurface from Adaptor3d) - ---Purpose: Changes the surface. The iso is reset to - -- NoneIso. - is static; - - Load (me : in out ; Iso : IsoType from GeomAbs; Param : Real) - ---Purpose: Changes the iso on the current surface. - is static; - - Load (me : in out ; - Iso : IsoType from GeomAbs; Param : Real; WFirst,WLast : Real) - ---Purpose: Changes the iso on the current surface. - is static; - - Surface(me) returns HSurface from Adaptor3d - ---C++: inline - ---C++: return const & - is static; - - Iso(me) returns IsoType from GeomAbs - ---C++: inline - is static; - - Parameter(me) returns Real - ---C++: inline - is static; - - -- - -- Implementation of Curve from Adaptor3d methods - -- - - -- - -- Global methods - Apply to the whole curve. - -- - - FirstParameter(me) returns Real - ---C++: inline - is redefined static; - - LastParameter(me) returns Real - ---C++: inline - is redefined static; - - Continuity(me) returns Shape from GeomAbs - is redefined static; - - NbIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of intervals for continuity - -- . May be one if Continuity(me) >= - is redefined static; - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - raises - OutOfRange from Standard - is redefined static; - - Trim(me; First, Last, Tol : Real) returns HCurve from Adaptor3d - ---Purpose: Returns a curve equivalent of between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is redefined static; - - - IsClosed(me) returns Boolean - is redefined static; - - IsPeriodic(me) returns Boolean - is redefined static; - - Period(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - is redefined static; - - Value(me; U : Real) returns Pnt from gp - --- Purpose : Computes the point of parameter U on the curve. - is redefined static; - - D0 (me; U : Real; P : out Pnt from gp) - --- Purpose : Computes the point of parameter U on the curve. - is redefined static; - - D1 (me; U : Real; P : out Pnt from gp ; V : out Vec from gp) - --- Purpose : Computes the point of parameter U on the curve with its - -- first derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C1. - is redefined static; - - D2 (me; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp) - --- Purpose : - -- Returns the point P of parameter U, the first and second - -- derivatives V1 and V2. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C2. - is redefined static; - - D3 (me; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp) - --- Purpose : - -- Returns the point P of parameter U, the first, the second - -- and the third derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C3. - is redefined static; - - DN (me; U : Real; N : Integer) returns Vec from gp - --- Purpose : - -- The returned vector gives the value of the derivative for the - -- order of derivation N. - raises - DomainError from Standard, - --- Purpose : Raised if the continuity of the current interval - -- is not CN. - OutOfRange from Standard - --- Purpose : Raised if N < 1. - is redefined static; - - Resolution(me; R3d : Real) returns Real - ---Purpose : Returns the parametric resolution corresponding - -- to the real space resolution . - is redefined static; - - GetType(me) returns CurveType from GeomAbs - ---Purpose: Returns the type of the curve in the current - -- interval : Line, Circle, Ellipse, Hyperbola, - -- Parabola, BezierCurve, BSplineCurve, OtherCurve. - is redefined static; - - -- - -- The following methods must be called when GetType returned - -- the corresponding type. - -- - - Line(me) returns Lin from gp - raises - NoSuchObject from Standard - is redefined static; - - Circle(me) returns Circ from gp - raises - NoSuchObject from Standard - is redefined static; - - Ellipse(me) returns Elips from gp - raises - NoSuchObject from Standard - is redefined static; - - Hyperbola(me) returns Hypr from gp - raises - NoSuchObject from Standard - is redefined static; - - Parabola(me) returns Parab from gp - raises - NoSuchObject from Standard - is redefined static; - - - - Degree(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - IsRational(me) returns Boolean - raises - NoSuchObject from Standard - is redefined static; - - NbPoles(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - - NbKnots(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - - - - - Bezier(me) returns BezierCurve from Geom - raises - NoSuchObject from Standard - is redefined static; - - BSpline(me) returns BSplineCurve from Geom - raises - NoSuchObject from Standard - is redefined static; - - -fields - - mySurface : HSurface from Adaptor3d; - myIso : IsoType from GeomAbs; - myFirst : Real; - myLast : Real; - myParameter : Real; -end IsoCurve; - - - - - diff --git a/src/Adaptor3d/Adaptor3d_IsoCurve.cxx b/src/Adaptor3d/Adaptor3d_IsoCurve.cxx index 01bd8e1e5a..c583dacb23 100644 --- a/src/Adaptor3d/Adaptor3d_IsoCurve.cxx +++ b/src/Adaptor3d/Adaptor3d_IsoCurve.cxx @@ -11,32 +11,41 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include #include +#include #include +#include +#include +#include +#include +#include +#include #include +#include #include #include -#include -#include #include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include #include #include -#include -#include - //======================================================================= //function : Adaptor3d_IsoCurve //purpose : //======================================================================= - Adaptor3d_IsoCurve::Adaptor3d_IsoCurve() : myIso (GeomAbs_NoneIso), myFirst (0.0), diff --git a/src/Adaptor3d/Adaptor3d_IsoCurve.hxx b/src/Adaptor3d/Adaptor3d_IsoCurve.hxx new file mode 100644 index 0000000000..2032eb9888 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_IsoCurve.hxx @@ -0,0 +1,215 @@ +// Created on: 1993-03-11 +// Created by: Isabelle GRIGNON +// 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_IsoCurve_HeaderFile +#define _Adaptor3d_IsoCurve_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class Adaptor3d_HSurface; +class Standard_NoSuchObject; +class Standard_OutOfRange; +class Standard_DomainError; +class Adaptor3d_HCurve; +class gp_Pnt; +class gp_Vec; +class gp_Lin; +class gp_Circ; +class gp_Elips; +class gp_Hypr; +class gp_Parab; +class Geom_BezierCurve; +class Geom_BSplineCurve; + + +//! Defines an isoparametric curve on a surface. The +//! type of isoparametric curve (U or V) is defined +//! with the enumeration IsoType from GeomAbs if +//! NoneIso is given an error is raised. +class Adaptor3d_IsoCurve : public Adaptor3d_Curve +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! The iso is set to NoneIso. + Standard_EXPORT Adaptor3d_IsoCurve(); + + //! The surface is loaded. The iso is set to NoneIso. + Standard_EXPORT Adaptor3d_IsoCurve(const Handle(Adaptor3d_HSurface)& S); + + //! Creates an IsoCurve curve. Iso defines the + //! type (isoU or isoU) Param defines the value of + //! the iso. The bounds of the iso are the bounds + //! of the surface. + Standard_EXPORT Adaptor3d_IsoCurve(const Handle(Adaptor3d_HSurface)& S, const GeomAbs_IsoType Iso, const Standard_Real Param); + + //! Create an IsoCurve curve. Iso defines the type + //! (isoU or isov). Param defines the value of the + //! iso. WFirst,WLast define the bounds of the iso. + Standard_EXPORT Adaptor3d_IsoCurve(const Handle(Adaptor3d_HSurface)& S, const GeomAbs_IsoType Iso, const Standard_Real Param, const Standard_Real WFirst, const Standard_Real WLast); + + //! Changes the surface. The iso is reset to + //! NoneIso. + Standard_EXPORT void Load (const Handle(Adaptor3d_HSurface)& S); + + //! Changes the iso on the current surface. + Standard_EXPORT void Load (const GeomAbs_IsoType Iso, const Standard_Real Param); + + //! Changes the iso on the current surface. + Standard_EXPORT void Load (const GeomAbs_IsoType Iso, const Standard_Real Param, const Standard_Real WFirst, const Standard_Real WLast); + + const Handle(Adaptor3d_HSurface)& Surface() const; + + GeomAbs_IsoType Iso() const; + + Standard_Real Parameter() const; + + Standard_Real FirstParameter() const Standard_OVERRIDE; + + 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 accomodate + //! 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_HCurve) 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; + + + + +protected: + + + + + +private: + + + + Handle(Adaptor3d_HSurface) mySurface; + GeomAbs_IsoType myIso; + Standard_Real myFirst; + Standard_Real myLast; + Standard_Real myParameter; + + +}; + + +#include + + + + + +#endif // _Adaptor3d_IsoCurve_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_OffsetCurve.cdl b/src/Adaptor3d/Adaptor3d_OffsetCurve.cdl deleted file mode 100644 index e9727be660..0000000000 --- a/src/Adaptor3d/Adaptor3d_OffsetCurve.cdl +++ /dev/null @@ -1,277 +0,0 @@ --- Created on: 1993-04-15 --- Created by: Bruno DUMORTIER --- 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. - -class OffsetCurve from Adaptor3d inherits Curve2d from Adaptor2d - - ---Purpose: Defines an Offset curve (algorithmic 2d curve). - -- - -uses - Array1OfReal from TColStd, - Shape from GeomAbs, - CurveType from GeomAbs, - Vec2d from gp, - Pnt2d from gp, - Circ2d from gp, - Elips2d from gp, - Hypr2d from gp, - Parab2d from gp, - Lin2d from gp, - BezierCurve from Geom2d, - BSplineCurve from Geom2d, - HCurve2d from Adaptor2d - - -raises - NoSuchObject from Standard, - DomainError from Standard, - OutOfRange from Standard, - TypeMismatch from Standard - -is - - -- - -- Methods specific of OffsetCurve - -- - - Create returns OffsetCurve from Adaptor3d; - ---Purpose: The Offset is set to 0. - - Create(C : HCurve2d from Adaptor2d) returns OffsetCurve from Adaptor3d; - ---Purpose: The curve is loaded. The Offset is set to 0. - - Create(C : HCurve2d from Adaptor2d; Offset : Real) - returns OffsetCurve from Adaptor3d; - ---Purpose: Creates an OffsetCurve curve. - -- The Offset is set to Offset. - -- - - Create(C : HCurve2d from Adaptor2d; Offset : Real; WFirst,WLast : Real) - returns OffsetCurve from Adaptor3d; - ---Purpose: Create an Offset curve. - -- WFirst,WLast define the bounds of the Offset curve. - - - Load( me:in out ;S : HCurve2d from Adaptor2d) - ---Purpose: Changes the curve. The Offset is reset to 0. - is static; - - Load (me : in out ; Offset : Real) - ---Purpose: Changes the Offset on the current Curve. - is static; - - Load (me : in out ; Offset : Real; WFirst,WLast : Real) - ---Purpose: Changes the Offset Curve on the current Curve. - is static; - - Curve(me) returns HCurve2d from Adaptor2d - ---C++: inline - ---C++: return const & - is static; - - Offset(me) returns Real - ---C++: inline - is static; - - - -- - -- Implementation of Curve2d from Adaptor2d methods - -- - - -- - -- Global methods - Apply to the whole curve. - -- - - FirstParameter(me) returns Real - ---C++: inline - is redefined static; - - LastParameter(me) returns Real - ---C++: inline - is redefined static; - - Continuity(me) returns Shape from GeomAbs - is redefined static; - - NbIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: If necessary, breaks the curve in intervals of - -- continuity . And returns the number of - -- intervals. - is redefined static; - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - raises - OutOfRange from Standard - is redefined static; - - Trim(me; First, Last, Tol : Real) returns HCurve2d from Adaptor2d - ---Purpose: Returns a curve equivalent of between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is redefined static; - - IsClosed(me) returns Boolean - is redefined static; - - IsPeriodic(me) returns Boolean - is redefined static; - - Period(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - is redefined static; - - Value(me; U : Real) returns Pnt2d from gp - --- Purpose : Computes the point of parameter U on the curve. - is redefined static; - - D0 (me; U : Real; P : out Pnt2d from gp) - --- Purpose : Computes the point of parameter U on the curve. - is redefined static; - - D1 (me; U : Real; P : out Pnt2d from gp ; V : out Vec2d from gp) - --- Purpose : Computes the point of parameter U on the curve with its - -- first derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C1. - is redefined static; - - D2 (me; U : Real; P : out Pnt2d from gp; V1, V2 : out Vec2d from gp) - --- Purpose : - -- Returns the point P of parameter U, the first and second - -- derivatives V1 and V2. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C2. - is redefined static; - - D3 (me; U : Real; P : out Pnt2d from gp; V1, V2, V3 : out Vec2d from gp) - --- Purpose : - -- Returns the point P of parameter U, the first, the second - -- and the third derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C3. - is redefined static; - - DN (me; U : Real; N : Integer) returns Vec2d from gp - --- Purpose : - -- The returned vector gives the value of the derivative for the - -- order of derivation N. - raises - DomainError from Standard, - --- Purpose : Raised if the continuity of the current interval - -- is not CN. - OutOfRange from Standard - --- Purpose : Raised if N < 1. - is redefined static; - - Resolution(me; R3d : Real) returns Real - ---Purpose : Returns the parametric resolution corresponding - -- to the real space resolution . - is redefined static; - - GetType(me) returns CurveType from GeomAbs - ---Purpose: Returns the type of the curve in the current - -- interval : Line, Circle, Ellipse, Hyperbola, - -- Parabola, BezierCurve, BSplineCurve, OtherCurve. - is redefined static; - - -- - -- The following methods must be called when GetType returned - -- the corresponding type. - -- - - Line(me) returns Lin2d from gp - raises - NoSuchObject from Standard - is redefined static; - - Circle(me) returns Circ2d from gp - raises - NoSuchObject from Standard - is redefined static; - - Ellipse(me) returns Elips2d from gp - raises - NoSuchObject from Standard - is redefined static; - - Hyperbola(me) returns Hypr2d from gp - raises - NoSuchObject from Standard - is redefined static; - - Parabola(me) returns Parab2d from gp - raises - NoSuchObject from Standard - is redefined static; - - - Degree(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - IsRational(me) returns Boolean - raises - NoSuchObject from Standard - is redefined static; - - NbPoles(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - - NbKnots(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - - Bezier(me) returns BezierCurve from Geom2d - raises - NoSuchObject from Standard - is redefined static; - - BSpline(me) returns BSplineCurve from Geom2d - raises - NoSuchObject from Standard - is redefined static; - -fields - - myCurve : HCurve2d from Adaptor2d; - myOffset : Real; - myFirst : Real; - myLast : Real; - -end OffsetCurve; - diff --git a/src/Adaptor3d/Adaptor3d_OffsetCurve.cxx b/src/Adaptor3d/Adaptor3d_OffsetCurve.cxx index ff182b90a6..93b88ba7e5 100644 --- a/src/Adaptor3d/Adaptor3d_OffsetCurve.cxx +++ b/src/Adaptor3d/Adaptor3d_OffsetCurve.cxx @@ -11,23 +11,35 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include #include +#include +#include +#include #include -#include -#include -#include -#include +#include #include +#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : Adaptor3d_OffsetCurve //purpose : //======================================================================= - Adaptor3d_OffsetCurve::Adaptor3d_OffsetCurve() : myOffset(0.0), myFirst (0.0), diff --git a/src/Adaptor3d/Adaptor3d_OffsetCurve.hxx b/src/Adaptor3d/Adaptor3d_OffsetCurve.hxx new file mode 100644 index 0000000000..6b692cd402 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_OffsetCurve.hxx @@ -0,0 +1,205 @@ +// Created on: 1993-04-15 +// Created by: Bruno DUMORTIER +// 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_OffsetCurve_HeaderFile +#define _Adaptor3d_OffsetCurve_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Adaptor2d_HCurve2d; +class Standard_NoSuchObject; +class Standard_DomainError; +class Standard_OutOfRange; +class Standard_TypeMismatch; +class gp_Pnt2d; +class gp_Vec2d; +class gp_Lin2d; +class gp_Circ2d; +class gp_Elips2d; +class gp_Hypr2d; +class gp_Parab2d; +class Geom2d_BezierCurve; +class Geom2d_BSplineCurve; + + +//! Defines an Offset curve (algorithmic 2d curve). +class Adaptor3d_OffsetCurve : public Adaptor2d_Curve2d +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! The Offset is set to 0. + Standard_EXPORT Adaptor3d_OffsetCurve(); + + //! The curve is loaded. The Offset is set to 0. + Standard_EXPORT Adaptor3d_OffsetCurve(const Handle(Adaptor2d_HCurve2d)& C); + + //! Creates an OffsetCurve curve. + //! The Offset is set to Offset. + Standard_EXPORT Adaptor3d_OffsetCurve(const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real Offset); + + //! Create an Offset curve. + //! WFirst,WLast define the bounds of the Offset curve. + Standard_EXPORT Adaptor3d_OffsetCurve(const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real Offset, const Standard_Real WFirst, const Standard_Real WLast); + + //! Changes the curve. The Offset is reset to 0. + Standard_EXPORT void Load (const Handle(Adaptor2d_HCurve2d)& S); + + //! Changes the Offset on the current Curve. + Standard_EXPORT void Load (const Standard_Real Offset); + + //! Changes the Offset Curve on the current Curve. + Standard_EXPORT void Load (const Standard_Real Offset, const Standard_Real WFirst, const Standard_Real WLast); + + const Handle(Adaptor2d_HCurve2d)& Curve() const; + + Standard_Real Offset() const; + + Standard_Real FirstParameter() const Standard_OVERRIDE; + + Standard_Real LastParameter() const Standard_OVERRIDE; + + Standard_EXPORT GeomAbs_Shape Continuity() const Standard_OVERRIDE; + + //! If necessary, breaks the curve in intervals of + //! continuity . And returns the number of + //! intervals. + 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 accomodate + //! 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(Adaptor2d_HCurve2d) 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_Pnt2d 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_Pnt2d& 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_Pnt2d& P, gp_Vec2d& 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_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& 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_Pnt2d& P, gp_Vec2d& V1, gp_Vec2d& V2, gp_Vec2d& 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_Vec2d 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_Lin2d Line() const Standard_OVERRIDE; + + Standard_EXPORT gp_Circ2d Circle() const Standard_OVERRIDE; + + Standard_EXPORT gp_Elips2d Ellipse() const Standard_OVERRIDE; + + Standard_EXPORT gp_Hypr2d Hyperbola() const Standard_OVERRIDE; + + Standard_EXPORT gp_Parab2d 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(Geom2d_BezierCurve) Bezier() const Standard_OVERRIDE; + + Standard_EXPORT Handle(Geom2d_BSplineCurve) BSpline() const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + Handle(Adaptor2d_HCurve2d) myCurve; + Standard_Real myOffset; + Standard_Real myFirst; + Standard_Real myLast; + + +}; + + +#include + + + + + +#endif // _Adaptor3d_OffsetCurve_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_Surface.cdl b/src/Adaptor3d/Adaptor3d_Surface.cdl deleted file mode 100644 index 1ddeb8ad41..0000000000 --- a/src/Adaptor3d/Adaptor3d_Surface.cdl +++ /dev/null @@ -1,326 +0,0 @@ --- Created on: 1993-03-31 --- Created by: Bruno DUMORTIER --- 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. - -deferred class Surface from Adaptor3d - - ---Purpose: Root class for surfaces on which geometric algorithms work. - -- An adapted surface is an interface between the - -- services provided by a surface and those required of - -- the surface by algorithms which use it. - -- A derived concrete class is provided: - -- GeomAdaptor_Surface for a surface from the Geom package. - -- The Surface class describes the standard behaviour - -- of a surface for generic algorithms. - -- - -- The Surface can be decomposed in intervals of any - -- continuity in U and V using the method - -- NbIntervals. A current interval can be set. Most - -- of the methods apply to the current interval. - -- Warning: All the methods are virtual and implemented with a - -- raise to allow to redefined only the methods realy - -- used. -uses - Array1OfReal from TColStd, - Shape from GeomAbs, - SurfaceType from GeomAbs, - Vec from gp, - Dir from gp, - Pnt from gp, - Pln from gp, - Cone from gp, - Cylinder from gp, - Sphere from gp, - Torus from gp, - Ax1 from gp, - BezierSurface from Geom, - BSplineSurface from Geom, - HSurface from Adaptor3d, - HCurve from Adaptor3d - -raises - - OutOfRange from Standard, - NoSuchObject from Standard, - DomainError from Standard - -is - - -- - -- Global methods - Apply to the whole surface. - -- - - FirstUParameter(me) returns Real - is virtual; - - LastUParameter(me) returns Real - is virtual; - - FirstVParameter(me) returns Real - is virtual; - - LastVParameter(me) returns Real - is virtual; - - UContinuity(me) returns Shape from GeomAbs - is virtual; - - VContinuity(me) returns Shape from GeomAbs - is virtual; - - NbUIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of U intervals for continuity - -- . May be one if UContinuity(me) >= - is virtual; - - NbVIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of V intervals for continuity - -- . May be one if VContinuity(me) >= - is virtual; - - UIntervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs ) - ---Purpose: Returns the intervals with the requested continuity - -- in the U direction. - raises - OutOfRange from Standard -- if the Length of the array does - -- have enought slots to accomodate - -- the result. - is virtual; - - VIntervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs ) - ---Purpose: Returns the intervals with the requested continuity - -- in the V direction. - raises - OutOfRange from Standard -- if the Length of the array does - -- have enought slots to accomodate - -- the result. - is virtual; - - UTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d - ---Purpose: Returns a surface trimmed in the U direction - -- equivalent of between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is virtual ; - - VTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d - ---Purpose: Returns a surface trimmed in the V direction between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is virtual ; - - IsUClosed(me) returns Boolean - is virtual; - - IsVClosed(me) returns Boolean - is virtual; - - IsUPeriodic(me) returns Boolean - is virtual; - - UPeriod(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - is virtual; - - IsVPeriodic(me) returns Boolean - is virtual; - - VPeriod(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - is virtual; - - Value (me; U, V : Real) returns Pnt from gp - --- Purpose : Computes the point of parameters U,V on the surface. - is virtual; - - D0 (me; U, V : Real; P : out Pnt from gp) - --- Purpose : Computes the point of parameters U,V on the surface. - is virtual; - - D1 (me; U, V : Real; P : out Pnt from gp; D1U, D1V : out Vec from gp) - --- Purpose : Computes the point and the first derivatives on - -- the surface. - raises DomainError from Standard - --- Purpose : Raised if the continuity of the current - -- intervals is not C1. - is virtual; - - D2 (me; U, V : Real; P : out Pnt from gp; D1U, D1V, D2U, D2V, D2UV : out Vec from gp) - --- Purpose : Computes the point, the first and second - -- derivatives on the surface. - raises DomainError from Standard - --- Purpose : Raised if the continuity of the current - -- intervals is not C2. - is virtual; - - D3 (me; U, V : Real; P : out Pnt from gp; - D1U, D1V, D2U, D2V, D2UV, D3U, D3V, D3UUV, D3UVV : out Vec from gp) - --- Purpose : Computes the point, the first, second and third - -- derivatives on the surface. - raises DomainError from Standard - --- Purpose : Raised if the continuity of the current - -- intervals is not C3. - is virtual; - - DN (me; U, V : Real; Nu, Nv : Integer) returns Vec from gp - --- Purpose : Computes the derivative of order Nu in the direction U and Nv - -- in the direction V at the point P(U, V). - raises DomainError from Standard, - --- Purpose : Raised if the current U interval is not not CNu - -- and the current V interval is not CNv. - OutOfRange from Standard - --- Purpose : Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0. - is virtual; - - UResolution(me; R3d : Real ) returns Real - ---Purpose : Returns the parametric U resolution corresponding - -- to the real space resolution . - is virtual; - - VResolution(me; R3d : Real ) returns Real - ---Purpose : Returns the parametric V resolution corresponding - -- to the real space resolution . - is virtual; - - GetType(me) returns SurfaceType from GeomAbs - ---Purpose: Returns the type of the surface : Plane, Cylinder, - -- Cone, Sphere, Torus, BezierSurface, - -- BSplineSurface, SurfaceOfRevolution, - -- SurfaceOfExtrusion, OtherSurface - is virtual; - - -- - -- The following methods must be called when GetType returned - -- the corresponding type. - -- - - Plane(me) returns Pln from gp - raises NoSuchObject from Standard - is virtual; - - Cylinder(me) returns Cylinder from gp - raises NoSuchObject from Standard - is virtual; - - Cone(me) returns Cone from gp - raises NoSuchObject from Standard - is virtual; - - Sphere(me) returns Sphere from gp - raises NoSuchObject from Standard - is virtual; - - Torus(me) returns Torus from gp - raises NoSuchObject from Standard - is virtual; - - - UDegree(me) returns Integer - raises NoSuchObject from Standard - is virtual; - - NbUPoles(me) returns Integer - raises NoSuchObject from Standard - is virtual; - - VDegree(me) returns Integer - raises NoSuchObject from Standard - is virtual; - - NbVPoles(me) returns Integer - raises NoSuchObject from Standard - is virtual; - - - NbUKnots(me) returns Integer - raises - NoSuchObject from Standard - is virtual; - - - NbVKnots(me) returns Integer - raises - NoSuchObject from Standard - is virtual; - - - IsURational(me) returns Boolean - raises - NoSuchObject from Standard - is virtual; - - IsVRational(me) returns Boolean - raises - NoSuchObject from Standard - is virtual; - - - - Bezier(me) returns BezierSurface from Geom - raises - NoSuchObject from Standard - is virtual; - - BSpline(me) returns BSplineSurface from Geom - raises - NoSuchObject from Standard - is virtual; - - AxeOfRevolution(me) returns Ax1 from gp - raises - NoSuchObject from Standard -- only for SurfaceOfRevolution - is virtual; - - Direction(me) returns Dir from gp - raises - NoSuchObject from Standard -- only for SurfaceOfExtrusion - is virtual; - - BasisCurve(me) returns HCurve from Adaptor3d - raises - NoSuchObject from Standard -- only for SurfaceOfExtrusion - is virtual; - - BasisSurface(me) returns HSurface from Adaptor3d - raises - NoSuchObject from Standard -- only for Offset Surface - is virtual; - - OffsetValue(me) returns Real from Standard - raises - NoSuchObject from Standard -- only for Offset Surface - is virtual; - - ---C++: alias " Standard_EXPORT virtual ~Adaptor3d_Surface();" - -end Surface; - - - - - - - - diff --git a/src/Adaptor3d/Adaptor3d_Surface.cxx b/src/Adaptor3d/Adaptor3d_Surface.cxx index 7596ad6b3f..4c15f07a98 100644 --- a/src/Adaptor3d/Adaptor3d_Surface.cxx +++ b/src/Adaptor3d/Adaptor3d_Surface.cxx @@ -14,14 +14,30 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include //======================================================================= //function : ~Adaptor3d_Surface //purpose : Destructor //======================================================================= - Adaptor3d_Surface::~Adaptor3d_Surface() { } diff --git a/src/Adaptor3d/Adaptor3d_Surface.hxx b/src/Adaptor3d/Adaptor3d_Surface.hxx new file mode 100644 index 0000000000..844588c98d --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_Surface.hxx @@ -0,0 +1,233 @@ +// Created on: 1993-03-31 +// Created by: Bruno DUMORTIER +// 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_Surface_HeaderFile +#define _Adaptor3d_Surface_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class Adaptor3d_HSurface; +class gp_Pnt; +class gp_Vec; +class gp_Pln; +class gp_Cylinder; +class gp_Cone; +class gp_Sphere; +class gp_Torus; +class Geom_BezierSurface; +class Geom_BSplineSurface; +class gp_Ax1; +class gp_Dir; +class Adaptor3d_HCurve; + + +//! Root class for surfaces on which geometric algorithms work. +//! An adapted surface is an interface between the +//! services provided by a surface and those required of +//! the surface by algorithms which use it. +//! A derived concrete class is provided: +//! GeomAdaptor_Surface for a surface from the Geom package. +//! The Surface class describes the standard behaviour +//! of a surface for generic algorithms. +//! +//! The Surface can be decomposed in intervals of any +//! continuity in U and V using the method +//! NbIntervals. A current interval can be set. Most +//! of the methods apply to the current interval. +//! Warning: All the methods are virtual and implemented with a +//! raise to allow to redefined only the methods realy +//! used. +class Adaptor3d_Surface +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT virtual Standard_Real FirstUParameter() const; + + Standard_EXPORT virtual Standard_Real LastUParameter() const; + + Standard_EXPORT virtual Standard_Real FirstVParameter() const; + + Standard_EXPORT virtual Standard_Real LastVParameter() const; + + Standard_EXPORT virtual GeomAbs_Shape UContinuity() const; + + Standard_EXPORT virtual GeomAbs_Shape VContinuity() const; + + //! Returns the number of U intervals for continuity + //! . May be one if UContinuity(me) >= + Standard_EXPORT virtual Standard_Integer NbUIntervals (const GeomAbs_Shape S) const; + + //! Returns the number of V intervals for continuity + //! . May be one if VContinuity(me) >= + Standard_EXPORT virtual Standard_Integer NbVIntervals (const GeomAbs_Shape S) const; + + //! Returns the intervals with the requested continuity + //! in the U direction. + Standard_EXPORT virtual void UIntervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const; + + //! Returns the intervals with the requested continuity + //! in the V direction. + Standard_EXPORT virtual void VIntervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const; + + //! Returns a surface trimmed in the U direction + //! equivalent of between + //! parameters and . is used to + //! test for 3d points confusion. + //! If >= + Standard_EXPORT virtual Handle(Adaptor3d_HSurface) UTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const; + + //! Returns a surface trimmed in the V direction between + //! parameters and . is used to + //! test for 3d points confusion. + //! If >= + Standard_EXPORT virtual Handle(Adaptor3d_HSurface) VTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const; + + Standard_EXPORT virtual Standard_Boolean IsUClosed() const; + + Standard_EXPORT virtual Standard_Boolean IsVClosed() const; + + Standard_EXPORT virtual Standard_Boolean IsUPeriodic() const; + + Standard_EXPORT virtual Standard_Real UPeriod() const; + + Standard_EXPORT virtual Standard_Boolean IsVPeriodic() const; + + Standard_EXPORT virtual Standard_Real VPeriod() const; + + //! Computes the point of parameters U,V on the surface. + Standard_EXPORT virtual gp_Pnt Value (const Standard_Real U, const Standard_Real V) const; + + //! Computes the point of parameters U,V on the surface. + Standard_EXPORT virtual void D0 (const Standard_Real U, const Standard_Real V, gp_Pnt& P) const; + + //! Computes the point and the first derivatives on + //! the surface. + //! Raised if the continuity of the current + //! intervals is not C1. + Standard_EXPORT virtual void D1 (const Standard_Real U, const Standard_Real V, gp_Pnt& P, gp_Vec& D1U, gp_Vec& D1V) const; + + //! Computes the point, the first and second + //! derivatives on the surface. + //! Raised if the continuity of the current + //! intervals is not C2. + Standard_EXPORT virtual void D2 (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) const; + + //! Computes the point, the first, second and third + //! derivatives on the surface. + //! Raised if the continuity of the current + //! intervals is not C3. + Standard_EXPORT virtual void D3 (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) const; + + //! Computes the derivative of order Nu in the direction U and Nv + //! in the direction V at the point P(U, V). + //! Raised if the current U interval is not not CNu + //! and the current V interval is not CNv. + //! Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0. + Standard_EXPORT virtual gp_Vec DN (const Standard_Real U, const Standard_Real V, const Standard_Integer Nu, const Standard_Integer Nv) const; + + //! Returns the parametric U resolution corresponding + //! to the real space resolution . + Standard_EXPORT virtual Standard_Real UResolution (const Standard_Real R3d) const; + + //! Returns the parametric V resolution corresponding + //! to the real space resolution . + Standard_EXPORT virtual Standard_Real VResolution (const Standard_Real R3d) const; + + //! Returns the type of the surface : Plane, Cylinder, + //! Cone, Sphere, Torus, BezierSurface, + //! BSplineSurface, SurfaceOfRevolution, + //! SurfaceOfExtrusion, OtherSurface + Standard_EXPORT virtual GeomAbs_SurfaceType GetType() const; + + Standard_EXPORT virtual gp_Pln Plane() const; + + Standard_EXPORT virtual gp_Cylinder Cylinder() const; + + Standard_EXPORT virtual gp_Cone Cone() const; + + Standard_EXPORT virtual gp_Sphere Sphere() const; + + Standard_EXPORT virtual gp_Torus Torus() const; + + Standard_EXPORT virtual Standard_Integer UDegree() const; + + Standard_EXPORT virtual Standard_Integer NbUPoles() const; + + Standard_EXPORT virtual Standard_Integer VDegree() const; + + Standard_EXPORT virtual Standard_Integer NbVPoles() const; + + Standard_EXPORT virtual Standard_Integer NbUKnots() const; + + Standard_EXPORT virtual Standard_Integer NbVKnots() const; + + Standard_EXPORT virtual Standard_Boolean IsURational() const; + + Standard_EXPORT virtual Standard_Boolean IsVRational() const; + + Standard_EXPORT virtual Handle(Geom_BezierSurface) Bezier() const; + + Standard_EXPORT virtual Handle(Geom_BSplineSurface) BSpline() const; + + Standard_EXPORT virtual gp_Ax1 AxeOfRevolution() const; + + Standard_EXPORT virtual gp_Dir Direction() const; + + Standard_EXPORT virtual Handle(Adaptor3d_HCurve) BasisCurve() const; + + Standard_EXPORT virtual Handle(Adaptor3d_HSurface) BasisSurface() const; + + Standard_EXPORT virtual Standard_Real OffsetValue() const; + Standard_EXPORT virtual ~Adaptor3d_Surface(); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _Adaptor3d_Surface_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_SurfaceOfLinearExtrusion.cdl b/src/Adaptor3d/Adaptor3d_SurfaceOfLinearExtrusion.cdl deleted file mode 100644 index 9c3b1c9a9f..0000000000 --- a/src/Adaptor3d/Adaptor3d_SurfaceOfLinearExtrusion.cdl +++ /dev/null @@ -1,332 +0,0 @@ --- Created on: 1993-04-21 --- Created by: Bruno DUMORTIER --- 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. - -class SurfaceOfLinearExtrusion from Adaptor3d inherits Surface from Adaptor3d - - --- Purpose: Generalised cylinder. This surface is obtained by sweeping a curve in a given - -- direction. The parametrization range for the parameter U is defined - -- with referenced the curve. - -- The parametrization range for the parameter V is ]-infinite,+infinite[ - -- The position of the curve gives the origin for the - -- parameter V. - -- The continuity of the surface is CN in the V direction. - -uses - Array1OfReal from TColStd, - Shape from GeomAbs, - SurfaceType from GeomAbs, - Vec from gp, - Pnt from gp, - Pln from gp, - Cone from gp, - Cylinder from gp, - Sphere from gp, - Torus from gp, - Ax1 from gp, - Dir from gp, - BezierSurface from Geom, - BSplineSurface from Geom, - HSurface from Adaptor3d, - HCurve from Adaptor3d - -raises - - OutOfRange from Standard, - NoSuchObject from Standard, - DomainError from Standard - -is - -- - -- Methods specific of SurfaceOfLinearExtrusion. - -- - - Create returns SurfaceOfLinearExtrusion from Adaptor3d; - - - Create(C : HCurve from Adaptor3d) - returns SurfaceOfLinearExtrusion from Adaptor3d; - ---Purpose: The Curve is loaded. - - Create(C : HCurve from Adaptor3d; V : Dir from gp) - returns SurfaceOfLinearExtrusion from Adaptor3d; - ---Purpose: Thew Curve and the Direction are loaded. - - - Load( me : in out ; C : HCurve from Adaptor3d) - ---Purpose: Changes the Curve - is static; - - Load( me : in out ; V : Dir from gp) - ---Purpose: Changes the Direction - is static; - - - -- - -- Implementation of Surface from Adaptor3d methods. - -- - - -- - -- Global methods - Apply to the whole surface. - -- - - FirstUParameter(me) returns Real - is redefined static; - - LastUParameter(me) returns Real - is redefined static; - - FirstVParameter(me) returns Real - is redefined static; - - LastVParameter(me) returns Real - is redefined static; - - UContinuity(me) returns Shape from GeomAbs - is redefined static; - - VContinuity(me) returns Shape from GeomAbs - ---Purpose: Return CN. - is redefined static; - - NbUIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of U intervals for continuity - -- . May be one if UContinuity(me) >= - is redefined static; - - NbVIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of V intervals for continuity - -- . May be one if VContinuity(me) >= - is redefined static; - - UIntervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs ) - ---Purpose: Returns the intervals with the requested continuity - -- in the U direction. - - raises - OutOfRange from Standard -- if Index < 1 or Index > NbIntervals - is redefined static; - - VIntervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs ) - ---Purpose: Returns the intervals with the requested continuity - -- in the V direction. - raises - OutOfRange from Standard -- if Index < 1 or Index > NbIntervals - is redefined static; - - UTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d - ---Purpose: Returns a surface trimmed in the U direction - -- equivalent of between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is redefined static ; - - VTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d - ---Purpose: Returns a surface trimmed in the V direction between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is redefined static ; - - IsUClosed(me) returns Boolean - is redefined static; - - IsVClosed(me) returns Boolean - is redefined static; - - IsUPeriodic(me) returns Boolean - is redefined static; - - UPeriod(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - is redefined static; - - IsVPeriodic(me) returns Boolean - is redefined static; - - VPeriod(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - is redefined static; - - Value (me; U, V : Real) returns Pnt from gp - --- Purpose : Computes the point of parameters U,V on the surface. - is redefined static; - - D0 (me; U, V : Real; P : out Pnt from gp) - --- Purpose : Computes the point of parameters U,V on the surface. - is redefined static; - - D1 (me; U, V : Real; P : out Pnt from gp; D1U, D1V : out Vec from gp) - --- Purpose : Computes the point and the first derivatives on - -- the surface. - raises DomainError from Standard - --- Purpose : Raised if the continuity of the current - -- intervals is not C1. - is redefined static; - - D2 (me; U, V : Real; P : out Pnt from gp; D1U, D1V, D2U, D2V, D2UV : out Vec from gp) - --- Purpose : Computes the point, the first and second - -- derivatives on the surface. - raises DomainError from Standard - --- Purpose : Raised if the continuity of the current - -- intervals is not C2. - is redefined static; - - D3 (me; U, V : Real; P : out Pnt from gp; - D1U, D1V, D2U, D2V, D2UV, D3U, D3V, D3UUV, D3UVV : out Vec from gp) - --- Purpose : Computes the point, the first, second and third - -- derivatives on the surface. - raises DomainError from Standard - --- Purpose : Raised if the continuity of the current - -- intervals is not C3. - is redefined static; - - DN (me; U, V : Real; Nu, Nv : Integer) returns Vec from gp - --- Purpose : Computes the derivative of order Nu in the direction U and Nv - -- in the direction V at the point P(U, V). - raises DomainError from Standard, - --- Purpose : Raised if the current U interval is not not CNu - -- and the current V interval is not CNv. - OutOfRange from Standard - --- Purpose : Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0. - is redefined static; - - UResolution(me; R3d : Real ) returns Real - ---Purpose : Returns the parametric U resolution corresponding - -- to the real space resolution . - is redefined static; - - VResolution(me; R3d : Real ) returns Real - ---Purpose : Returns the parametric V resolution corresponding - -- to the real space resolution . - is redefined static; - - GetType(me) returns SurfaceType from GeomAbs - ---Purpose: Returns the type of the surface : Plane, Cylinder, - -- Cone, Sphere, Torus, BezierSurface, - -- BSplineSurface, SurfaceOfRevolution, - -- SurfaceOfExtrusion, OtherSurface - is redefined static; - - -- - -- The following methods must be called when GetType returned - -- the corresponding type. - -- - - Plane(me) returns Pln from gp - raises NoSuchObject from Standard - is redefined static; - - Cylinder(me) returns Cylinder from gp - raises NoSuchObject from Standard - is redefined static; - - Cone(me) returns Cone from gp - raises NoSuchObject from Standard - is redefined static; - - Sphere(me) returns Sphere from gp - raises NoSuchObject from Standard - is redefined static; - - Torus(me) returns Torus from gp - raises NoSuchObject from Standard - is redefined static; - - - UDegree(me) returns Integer - raises NoSuchObject from Standard - is redefined static; - - NbUPoles(me) returns Integer - raises NoSuchObject from Standard - is redefined static; - - VDegree(me) returns Integer - raises NoSuchObject from Standard - is redefined static; - - NbVPoles(me) returns Integer - raises NoSuchObject from Standard - is redefined static; - - - NbUKnots(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - - NbVKnots(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - - IsURational(me) returns Boolean - raises - NoSuchObject from Standard - is redefined static; - - IsVRational(me) returns Boolean - raises - NoSuchObject from Standard - is redefined static; - - - - Bezier(me) returns BezierSurface from Geom - raises - NoSuchObject from Standard - is redefined static; - - BSpline(me) returns BSplineSurface from Geom - raises - NoSuchObject from Standard - is redefined static; - - AxeOfRevolution(me) returns Ax1 from gp - raises - NoSuchObject from Standard -- only for SurfaceOfRevolution - is redefined static; - - Direction(me) returns Dir from gp - raises - NoSuchObject from Standard -- only for SurfaceOfExtrusion - is redefined static; - - BasisCurve(me) returns HCurve from Adaptor3d - raises - NoSuchObject from Standard - -- Only for SurfaceOfExtrusion and SurfaceOfRevolution - is redefined static; - -fields - - myBasisCurve : HCurve from Adaptor3d; - myDirection : Dir from gp; - - - -end SurfaceOfLinearExtrusion; diff --git a/src/Adaptor3d/Adaptor3d_SurfaceOfLinearExtrusion.cxx b/src/Adaptor3d/Adaptor3d_SurfaceOfLinearExtrusion.cxx index 437170c274..6eec03e0c6 100644 --- a/src/Adaptor3d/Adaptor3d_SurfaceOfLinearExtrusion.cxx +++ b/src/Adaptor3d/Adaptor3d_SurfaceOfLinearExtrusion.cxx @@ -14,16 +14,32 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include #include -#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : Adaptor3d_SurfaceOfLinearExtrusion //purpose : //======================================================================= - Adaptor3d_SurfaceOfLinearExtrusion::Adaptor3d_SurfaceOfLinearExtrusion() {} diff --git a/src/Adaptor3d/Adaptor3d_SurfaceOfLinearExtrusion.hxx b/src/Adaptor3d/Adaptor3d_SurfaceOfLinearExtrusion.hxx new file mode 100644 index 0000000000..3a5d72b688 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_SurfaceOfLinearExtrusion.hxx @@ -0,0 +1,238 @@ +// Created on: 1993-04-21 +// Created by: Bruno DUMORTIER +// 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_SurfaceOfLinearExtrusion_HeaderFile +#define _Adaptor3d_SurfaceOfLinearExtrusion_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class Adaptor3d_HCurve; +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class gp_Dir; +class Adaptor3d_HSurface; +class gp_Pnt; +class gp_Vec; +class gp_Pln; +class gp_Cylinder; +class gp_Cone; +class gp_Sphere; +class gp_Torus; +class Geom_BezierSurface; +class Geom_BSplineSurface; +class gp_Ax1; + + +//! Generalised cylinder. This surface is obtained by sweeping a curve in a given +//! direction. The parametrization range for the parameter U is defined +//! with referenced the curve. +//! The parametrization range for the parameter V is ]-infinite,+infinite[ +//! The position of the curve gives the origin for the +//! parameter V. +//! The continuity of the surface is CN in the V direction. +class Adaptor3d_SurfaceOfLinearExtrusion : public Adaptor3d_Surface +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT Adaptor3d_SurfaceOfLinearExtrusion(); + + //! The Curve is loaded. + Standard_EXPORT Adaptor3d_SurfaceOfLinearExtrusion(const Handle(Adaptor3d_HCurve)& C); + + //! Thew Curve and the Direction are loaded. + Standard_EXPORT Adaptor3d_SurfaceOfLinearExtrusion(const Handle(Adaptor3d_HCurve)& C, const gp_Dir& V); + + //! Changes the Curve + Standard_EXPORT void Load (const Handle(Adaptor3d_HCurve)& C); + + //! Changes the Direction + Standard_EXPORT void Load (const gp_Dir& V); + + Standard_EXPORT Standard_Real FirstUParameter() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real LastUParameter() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real FirstVParameter() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real LastVParameter() const Standard_OVERRIDE; + + Standard_EXPORT GeomAbs_Shape UContinuity() const Standard_OVERRIDE; + + //! Return CN. + Standard_EXPORT GeomAbs_Shape VContinuity() const Standard_OVERRIDE; + + //! Returns the number of U intervals for continuity + //! . May be one if UContinuity(me) >= + Standard_EXPORT Standard_Integer NbUIntervals (const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Returns the number of V intervals for continuity + //! . May be one if VContinuity(me) >= + Standard_EXPORT Standard_Integer NbVIntervals (const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Returns the intervals with the requested continuity + //! in the U direction. + Standard_EXPORT void UIntervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Returns the intervals with the requested continuity + //! in the V direction. + Standard_EXPORT void VIntervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Returns a surface trimmed in the U direction + //! equivalent of between + //! parameters and . is used to + //! test for 3d points confusion. + //! If >= + Standard_EXPORT Handle(Adaptor3d_HSurface) UTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const Standard_OVERRIDE; + + //! Returns a surface trimmed in the V direction between + //! parameters and . is used to + //! test for 3d points confusion. + //! If >= + Standard_EXPORT Handle(Adaptor3d_HSurface) VTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsUClosed() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsVClosed() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsUPeriodic() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real UPeriod() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsVPeriodic() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real VPeriod() const Standard_OVERRIDE; + + //! Computes the point of parameters U,V on the surface. + Standard_EXPORT gp_Pnt Value (const Standard_Real U, const Standard_Real V) const Standard_OVERRIDE; + + //! Computes the point of parameters U,V on the surface. + Standard_EXPORT void D0 (const Standard_Real U, const Standard_Real V, gp_Pnt& P) const Standard_OVERRIDE; + + //! Computes the point and the first derivatives on + //! the surface. + //! Raised if the continuity of the current + //! intervals is not C1. + Standard_EXPORT void D1 (const Standard_Real U, const Standard_Real V, gp_Pnt& P, gp_Vec& D1U, gp_Vec& D1V) const Standard_OVERRIDE; + + //! Computes the point, the first and second + //! derivatives on the surface. + //! Raised if the continuity of the current + //! intervals is not C2. + Standard_EXPORT void D2 (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) const Standard_OVERRIDE; + + //! Computes the point, the first, second and third + //! derivatives on the surface. + //! Raised if the continuity of the current + //! intervals is not C3. + Standard_EXPORT void D3 (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) const Standard_OVERRIDE; + + //! Computes the derivative of order Nu in the direction U and Nv + //! in the direction V at the point P(U, V). + //! Raised if the current U interval is not not CNu + //! and the current V interval is not CNv. + //! Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0. + Standard_EXPORT gp_Vec DN (const Standard_Real U, const Standard_Real V, const Standard_Integer Nu, const Standard_Integer Nv) const Standard_OVERRIDE; + + //! Returns the parametric U resolution corresponding + //! to the real space resolution . + Standard_EXPORT Standard_Real UResolution (const Standard_Real R3d) const Standard_OVERRIDE; + + //! Returns the parametric V resolution corresponding + //! to the real space resolution . + Standard_EXPORT Standard_Real VResolution (const Standard_Real R3d) const Standard_OVERRIDE; + + //! Returns the type of the surface : Plane, Cylinder, + //! Cone, Sphere, Torus, BezierSurface, + //! BSplineSurface, SurfaceOfRevolution, + //! SurfaceOfExtrusion, OtherSurface + Standard_EXPORT GeomAbs_SurfaceType GetType() const Standard_OVERRIDE; + + Standard_EXPORT gp_Pln Plane() const Standard_OVERRIDE; + + Standard_EXPORT gp_Cylinder Cylinder() const Standard_OVERRIDE; + + Standard_EXPORT gp_Cone Cone() const Standard_OVERRIDE; + + Standard_EXPORT gp_Sphere Sphere() const Standard_OVERRIDE; + + Standard_EXPORT gp_Torus Torus() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer UDegree() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer NbUPoles() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer VDegree() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer NbVPoles() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer NbUKnots() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer NbVKnots() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsURational() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsVRational() const Standard_OVERRIDE; + + Standard_EXPORT Handle(Geom_BezierSurface) Bezier() const Standard_OVERRIDE; + + Standard_EXPORT Handle(Geom_BSplineSurface) BSpline() const Standard_OVERRIDE; + + Standard_EXPORT gp_Ax1 AxeOfRevolution() const Standard_OVERRIDE; + + Standard_EXPORT gp_Dir Direction() const Standard_OVERRIDE; + + Standard_EXPORT Handle(Adaptor3d_HCurve) BasisCurve() const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + Handle(Adaptor3d_HCurve) myBasisCurve; + gp_Dir myDirection; + + +}; + + + + + + + +#endif // _Adaptor3d_SurfaceOfLinearExtrusion_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_SurfaceOfRevolution.cdl b/src/Adaptor3d/Adaptor3d_SurfaceOfRevolution.cdl deleted file mode 100644 index 9875cd518e..0000000000 --- a/src/Adaptor3d/Adaptor3d_SurfaceOfRevolution.cdl +++ /dev/null @@ -1,357 +0,0 @@ --- Created on: 1993-04-21 --- Created by: Bruno DUMORTIER --- 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. - -class SurfaceOfRevolution from Adaptor3d inherits Surface from Adaptor3d - - - --- Purpose : This class defines a complete surface of revolution. - -- The surface is obtained by rotating a curve a complete revolution - -- about an axis. The curve and the axis must be in the same plane. - -- If the curve and the axis are not in the same plane it is always - -- possible to be in the previous case after a cylindrical projection - -- of the curve in a referenced plane. - -- For a complete surface of revolution the parametric range is - -- 0 <= U <= 2*PI. -- - -- The parametric range for V is defined with the revolved curve. - -- The origin of the U parametrization is given by the position - -- of the revolved curve (reference). The direction of the revolution - -- axis defines the positive sense of rotation (trigonometric sense) - -- corresponding to the increasing of the parametric value U. - -- The derivatives are always defined for the u direction. - -- For the v direction the definition of the derivatives depends on - -- the degree of continuity of the referenced curve. - -- Curve and Axis are coplanar. - -- Curve doesn't intersect Axis. - - - -uses - Array1OfReal from TColStd, - Shape from GeomAbs, - SurfaceType from GeomAbs, - Vec from gp, - Pnt from gp, - Pln from gp, - Cone from gp, - Cylinder from gp, - Sphere from gp, - Torus from gp, - Ax3 from gp, - Ax1 from gp, - Dir from gp, - BezierSurface from Geom, - BSplineSurface from Geom, - HSurface from Adaptor3d, - HCurve from Adaptor3d - -raises - - OutOfRange from Standard, - NoSuchObject from Standard, - DomainError from Standard - -is - -- - -- Methods specific of SurfaceOfRevolution. - -- - - Create returns SurfaceOfRevolution from Adaptor3d; - - - Create(C : HCurve from Adaptor3d) returns SurfaceOfRevolution from Adaptor3d; - ---Purpose: The Curve is loaded. - - Create(C : HCurve from Adaptor3d; V : Ax1 from gp) - returns SurfaceOfRevolution from Adaptor3d; - ---Purpose: The Curve and the Direction are loaded. - - - Load( me : in out ; C : HCurve from Adaptor3d) - ---Purpose: Changes the Curve - is static; - - Load( me : in out ; V : Ax1 from gp) - ---Purpose: Changes the Direction - is static; - - - AxeOfRevolution( me) returns Ax1 from gp - is redefined static; - - - -- - -- Implementation of Surface from Adaptor3d methods. - -- - - -- - -- Global methods - Apply to the whole surface. - -- - - FirstUParameter(me) returns Real - is redefined static; - - LastUParameter(me) returns Real - is redefined static; - - FirstVParameter(me) returns Real - is redefined static; - - LastVParameter(me) returns Real - is redefined static; - - UContinuity(me) returns Shape from GeomAbs - is redefined static; - - VContinuity(me) returns Shape from GeomAbs - ---Purpose: Return CN. - is redefined static; - - NbUIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of U intervals for continuity - -- . May be one if UContinuity(me) >= - is redefined static; - - NbVIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of V intervals for continuity - -- . May be one if VContinuity(me) >= - is redefined static; - - UIntervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs ) - ---Purpose: Returns the intervals with the requested continuity - -- in the U direction. - raises - OutOfRange from Standard -- if the Length of the array does - -- have enought slots to accomodate - -- the result. - is redefined static ; - - VIntervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs ) - ---Purpose: Returns the intervals with the requested continuity - -- in the V direction. - raises - OutOfRange from Standard -- if the Length of the array does - -- have enought slots to accomodate - -- the result. - is redefined static ; - - UTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d - ---Purpose: Returns a surface trimmed in the U direction - -- equivalent of between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is redefined static ; - - VTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d - ---Purpose: Returns a surface trimmed in the V direction between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is redefined static ; - - IsUClosed(me) returns Boolean - is redefined static; - - IsVClosed(me) returns Boolean - is redefined static; - - IsUPeriodic(me) returns Boolean - is redefined static; - - UPeriod(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - is redefined static; - - IsVPeriodic(me) returns Boolean - is redefined static; - - VPeriod(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - is redefined static; - - Value (me; U, V : Real) returns Pnt from gp - --- Purpose : Computes the point of parameters U,V on the surface. - is redefined static; - - D0 (me; U, V : Real; P : out Pnt from gp) - --- Purpose : Computes the point of parameters U,V on the surface. - is redefined static; - - D1 (me; U, V : Real; P : out Pnt from gp; D1U, D1V : out Vec from gp) - --- Purpose : Computes the point and the first derivatives on - -- the surface. - raises DomainError from Standard - --- Purpose : Raised if the continuity of the current - -- intervals is not C1. - is redefined static; - - D2 (me; U, V : Real; - P : out Pnt from gp; - D1U, D1V, D2U, D2V, D2UV : out Vec from gp) - --- Purpose : Computes the point, the first and second - -- derivatives on the surface. - raises DomainError from Standard - --- Purpose : Raised if the continuity of the current - -- intervals is not C2. - is redefined static; - - D3 (me; U, V : Real; - P : out Pnt from gp; - D1U, D1V, D2U, D2V, D2UV, D3U, D3V, D3UUV, D3UVV : out Vec from gp) - --- Purpose : Computes the point, the first, second and third - -- derivatives on the surface. - raises DomainError from Standard - --- Purpose : Raised if the continuity of the current - -- intervals is not C3. - is redefined static; - - DN (me; U, V : Real; Nu, Nv : Integer) returns Vec from gp - --- Purpose : Computes the derivative of order Nu - -- in the direction U and Nv in the direction V - -- at the point P(U, V). - raises DomainError from Standard, - --- Purpose : Raised if the current U interval is not not CNu - -- and the current V interval is not CNv. - OutOfRange from Standard - --- Purpose : Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0. - is redefined static; - - UResolution(me; R3d : Real ) returns Real - ---Purpose : Returns the parametric U resolution corresponding - -- to the real space resolution . - is redefined static; - - VResolution(me; R3d : Real ) returns Real - ---Purpose : Returns the parametric V resolution corresponding - -- to the real space resolution . - is redefined static; - - GetType(me) returns SurfaceType from GeomAbs - ---Purpose: Returns the type of the surface : Plane, Cylinder, - -- Cone, Sphere, Torus, BezierSurface, - -- BSplineSurface, SurfaceOfRevolution, - -- SurfaceOfExtrusion, OtherSurface - is redefined static; - - -- - -- The following methods must be called when GetType returned - -- the corresponding type. - -- - - Plane(me) returns Pln from gp - raises NoSuchObject from Standard - is redefined static; - - Cylinder(me) returns Cylinder from gp - raises NoSuchObject from Standard - is redefined static; - - Cone(me) returns Cone from gp - raises NoSuchObject from Standard - ---Purpose : Apex of the Cone = Cone.Position().Location() - -- ==> ReferenceRadius = 0. - is redefined static; - - Sphere(me) returns Sphere from gp - raises NoSuchObject from Standard - is redefined static; - - Torus(me) returns Torus from gp - raises NoSuchObject from Standard - is redefined static; - - - UDegree(me) returns Integer - raises NoSuchObject from Standard - is redefined static; - - NbUPoles(me) returns Integer - raises NoSuchObject from Standard - is redefined static; - - VDegree(me) returns Integer - raises NoSuchObject from Standard - is redefined static; - - NbVPoles(me) returns Integer - raises NoSuchObject from Standard - is redefined static; - - NbUKnots(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - - NbVKnots(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - - IsURational(me) returns Boolean - raises - NoSuchObject from Standard - is redefined static; - - IsVRational(me) returns Boolean - raises - NoSuchObject from Standard - is redefined static; - - - Bezier(me) returns BezierSurface from Geom - raises - NoSuchObject from Standard - is redefined static; - - BSpline(me) returns BSplineSurface from Geom - raises - NoSuchObject from Standard - is redefined static; - - Axis(me) returns Ax3 from gp - raises - NoSuchObject from Standard -- only for SurfaceOfRevolution - is static; - - Direction(me) returns Dir from gp - raises - NoSuchObject from Standard -- only for SurfaceOfExtrusion - is redefined static; - - BasisCurve(me) returns HCurve from Adaptor3d - raises - NoSuchObject from Standard - -- Only for SurfaceOfExtrusion and SurfaceOfRevolution - is redefined static; -fields - - myBasisCurve : HCurve from Adaptor3d; - myAxis : Ax1 from gp; - myHaveAxis : Boolean from Standard; - myAxeRev : Ax3 from gp; - - -end SurfaceOfRevolution; diff --git a/src/Adaptor3d/Adaptor3d_SurfaceOfRevolution.cxx b/src/Adaptor3d/Adaptor3d_SurfaceOfRevolution.cxx index 23c45f1c63..e7496be9c1 100644 --- a/src/Adaptor3d/Adaptor3d_SurfaceOfRevolution.cxx +++ b/src/Adaptor3d/Adaptor3d_SurfaceOfRevolution.cxx @@ -14,18 +14,34 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include #include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include +#include +#include +#include //======================================================================= //function : Adaptor3d_SurfaceOfRevolution //purpose : //======================================================================= - Adaptor3d_SurfaceOfRevolution::Adaptor3d_SurfaceOfRevolution() :myHaveAxis(Standard_False) {} diff --git a/src/Adaptor3d/Adaptor3d_SurfaceOfRevolution.hxx b/src/Adaptor3d/Adaptor3d_SurfaceOfRevolution.hxx new file mode 100644 index 0000000000..2d993b18c2 --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_SurfaceOfRevolution.hxx @@ -0,0 +1,258 @@ +// Created on: 1993-04-21 +// Created by: Bruno DUMORTIER +// 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_SurfaceOfRevolution_HeaderFile +#define _Adaptor3d_SurfaceOfRevolution_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Adaptor3d_HCurve; +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class gp_Ax1; +class Adaptor3d_HSurface; +class gp_Pnt; +class gp_Vec; +class gp_Pln; +class gp_Cylinder; +class gp_Cone; +class gp_Sphere; +class gp_Torus; +class Geom_BezierSurface; +class Geom_BSplineSurface; +class gp_Ax3; +class gp_Dir; + + +//! This class defines a complete surface of revolution. +//! The surface is obtained by rotating a curve a complete revolution +//! about an axis. The curve and the axis must be in the same plane. +//! If the curve and the axis are not in the same plane it is always +//! possible to be in the previous case after a cylindrical projection +//! of the curve in a referenced plane. +//! For a complete surface of revolution the parametric range is +//! 0 <= U <= 2*PI. -- +//! The parametric range for V is defined with the revolved curve. +//! The origin of the U parametrization is given by the position +//! of the revolved curve (reference). The direction of the revolution +//! axis defines the positive sense of rotation (trigonometric sense) +//! corresponding to the increasing of the parametric value U. +//! The derivatives are always defined for the u direction. +//! For the v direction the definition of the derivatives depends on +//! the degree of continuity of the referenced curve. +//! Curve and Axis are coplanar. +//! Curve doesn't intersect Axis. +class Adaptor3d_SurfaceOfRevolution : public Adaptor3d_Surface +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT Adaptor3d_SurfaceOfRevolution(); + + //! The Curve is loaded. + Standard_EXPORT Adaptor3d_SurfaceOfRevolution(const Handle(Adaptor3d_HCurve)& C); + + //! The Curve and the Direction are loaded. + Standard_EXPORT Adaptor3d_SurfaceOfRevolution(const Handle(Adaptor3d_HCurve)& C, const gp_Ax1& V); + + //! Changes the Curve + Standard_EXPORT void Load (const Handle(Adaptor3d_HCurve)& C); + + //! Changes the Direction + Standard_EXPORT void Load (const gp_Ax1& V); + + Standard_EXPORT gp_Ax1 AxeOfRevolution() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real FirstUParameter() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real LastUParameter() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real FirstVParameter() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real LastVParameter() const Standard_OVERRIDE; + + Standard_EXPORT GeomAbs_Shape UContinuity() const Standard_OVERRIDE; + + //! Return CN. + Standard_EXPORT GeomAbs_Shape VContinuity() const Standard_OVERRIDE; + + //! Returns the number of U intervals for continuity + //! . May be one if UContinuity(me) >= + Standard_EXPORT Standard_Integer NbUIntervals (const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Returns the number of V intervals for continuity + //! . May be one if VContinuity(me) >= + Standard_EXPORT Standard_Integer NbVIntervals (const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Returns the intervals with the requested continuity + //! in the U direction. + Standard_EXPORT void UIntervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Returns the intervals with the requested continuity + //! in the V direction. + Standard_EXPORT void VIntervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Returns a surface trimmed in the U direction + //! equivalent of between + //! parameters and . is used to + //! test for 3d points confusion. + //! If >= + Standard_EXPORT Handle(Adaptor3d_HSurface) UTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const Standard_OVERRIDE; + + //! Returns a surface trimmed in the V direction between + //! parameters and . is used to + //! test for 3d points confusion. + //! If >= + Standard_EXPORT Handle(Adaptor3d_HSurface) VTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsUClosed() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsVClosed() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsUPeriodic() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real UPeriod() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsVPeriodic() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real VPeriod() const Standard_OVERRIDE; + + //! Computes the point of parameters U,V on the surface. + Standard_EXPORT gp_Pnt Value (const Standard_Real U, const Standard_Real V) const Standard_OVERRIDE; + + //! Computes the point of parameters U,V on the surface. + Standard_EXPORT void D0 (const Standard_Real U, const Standard_Real V, gp_Pnt& P) const Standard_OVERRIDE; + + //! Computes the point and the first derivatives on + //! the surface. + //! Raised if the continuity of the current + //! intervals is not C1. + Standard_EXPORT void D1 (const Standard_Real U, const Standard_Real V, gp_Pnt& P, gp_Vec& D1U, gp_Vec& D1V) const Standard_OVERRIDE; + + //! Computes the point, the first and second + //! derivatives on the surface. + //! Raised if the continuity of the current + //! intervals is not C2. + Standard_EXPORT void D2 (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) const Standard_OVERRIDE; + + //! Computes the point, the first, second and third + //! derivatives on the surface. + //! Raised if the continuity of the current + //! intervals is not C3. + Standard_EXPORT void D3 (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) const Standard_OVERRIDE; + + //! Computes the derivative of order Nu + //! in the direction U and Nv in the direction V + //! at the point P(U, V). + //! Raised if the current U interval is not not CNu + //! and the current V interval is not CNv. + //! Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0. + Standard_EXPORT gp_Vec DN (const Standard_Real U, const Standard_Real V, const Standard_Integer Nu, const Standard_Integer Nv) const Standard_OVERRIDE; + + //! Returns the parametric U resolution corresponding + //! to the real space resolution . + Standard_EXPORT Standard_Real UResolution (const Standard_Real R3d) const Standard_OVERRIDE; + + //! Returns the parametric V resolution corresponding + //! to the real space resolution . + Standard_EXPORT Standard_Real VResolution (const Standard_Real R3d) const Standard_OVERRIDE; + + //! Returns the type of the surface : Plane, Cylinder, + //! Cone, Sphere, Torus, BezierSurface, + //! BSplineSurface, SurfaceOfRevolution, + //! SurfaceOfExtrusion, OtherSurface + Standard_EXPORT GeomAbs_SurfaceType GetType() const Standard_OVERRIDE; + + Standard_EXPORT gp_Pln Plane() const Standard_OVERRIDE; + + Standard_EXPORT gp_Cylinder Cylinder() const Standard_OVERRIDE; + + //! Apex of the Cone = Cone.Position().Location() + //! ==> ReferenceRadius = 0. + Standard_EXPORT gp_Cone Cone() const Standard_OVERRIDE; + + Standard_EXPORT gp_Sphere Sphere() const Standard_OVERRIDE; + + Standard_EXPORT gp_Torus Torus() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer UDegree() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer NbUPoles() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer VDegree() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer NbVPoles() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer NbUKnots() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Integer NbVKnots() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsURational() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Boolean IsVRational() const Standard_OVERRIDE; + + Standard_EXPORT Handle(Geom_BezierSurface) Bezier() const Standard_OVERRIDE; + + Standard_EXPORT Handle(Geom_BSplineSurface) BSpline() const Standard_OVERRIDE; + + Standard_EXPORT gp_Ax3 Axis() const; + + Standard_EXPORT gp_Dir Direction() const Standard_OVERRIDE; + + Standard_EXPORT Handle(Adaptor3d_HCurve) BasisCurve() const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + Handle(Adaptor3d_HCurve) myBasisCurve; + gp_Ax1 myAxis; + Standard_Boolean myHaveAxis; + gp_Ax3 myAxeRev; + + +}; + + + + + + + +#endif // _Adaptor3d_SurfaceOfRevolution_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_SurfacePtr.hxx b/src/Adaptor3d/Adaptor3d_SurfacePtr.hxx new file mode 100644 index 0000000000..5d0471cf9e --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_SurfacePtr.hxx @@ -0,0 +1,23 @@ +// Created on: 1992-10-08 +// Created by: Isabelle GRIGNON +// 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 _Adaptor3d_SurfacePtr_HeaderFile +#define _Adaptor3d_SurfacePtr_HeaderFile + +class Adaptor3d_Surface; +typedef Adaptor3d_Surface* Adaptor3d_SurfacePtr; + +#endif // _Adaptor3d_SurfacePtr_HeaderFile diff --git a/src/Adaptor3d/Adaptor3d_TopolTool.cdl b/src/Adaptor3d/Adaptor3d_TopolTool.cdl deleted file mode 100644 index 555711fc06..0000000000 --- a/src/Adaptor3d/Adaptor3d_TopolTool.cdl +++ /dev/null @@ -1,282 +0,0 @@ --- Created on: 1994-03-24 --- Created by: model --- 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. - -class TopolTool from Adaptor3d - - ---Purpose: This class provides a default topological tool, - -- based on the Umin,Vmin,Umax,Vmax of an HSurface - -- from Adaptor3d. - -- All methods and fields may be redefined when - -- inheriting from this class. - -- This class is used to instantiate algorithmes - -- as Intersection, outlines,... - - -inherits TShared from MMgt - -uses HSurface from Adaptor3d, - HCurve2d from Adaptor2d, - HVertex from Adaptor3d, - HLine2d from Adaptor2d, - Pnt2d from gp, - Pnt from gp, - State from TopAbs, - Orientation from TopAbs, - HArray1OfReal from TColStd, - Array1OfReal from TColStd - -raises DomainError from Standard - -is - - Create - - returns TopolTool from Adaptor3d; - - - Create(Surface: HSurface from Adaptor3d) - - returns TopolTool from Adaptor3d; - - - Initialize(me: mutable) - is virtual; - - Initialize(me: mutable; S: HSurface from Adaptor3d) - is virtual; - - - Initialize(me: mutable; Curve: HCurve2d from Adaptor2d) - is virtual; - - - ---- Arc iterator - - - Init(me: mutable) - is virtual; - - - More(me: mutable) - - returns Boolean from Standard - is virtual; - - - Value(me: mutable) - - returns HCurve2d from Adaptor2d - raises DomainError from Standard - is virtual; - - - Next(me: mutable) - is virtual; - - ---- Vertex iterator - - - InitVertexIterator(me: mutable) - is virtual; - - - MoreVertex(me: mutable) - - returns Boolean from Standard - is virtual; - - - Vertex(me: mutable) - - returns HVertex from Adaptor3d - raises DomainError from Standard - is virtual; - - - NextVertex(me: mutable) - is virtual; - - ---- Other methods - - Classify(me: mutable; - P: Pnt2d from gp; - Tol: Real from Standard; - ReacdreOnPeriodic: Boolean from Standard = Standard_True) - - returns State from TopAbs - is virtual; - - IsThePointOn(me: mutable; - P: Pnt2d from gp; - Tol: Real from Standard; - ReacdreOnPeriodic: Boolean from Standard = Standard_True) - - returns Boolean from Standard - is virtual; - - - Orientation(me: mutable; C: HCurve2d from Adaptor2d) - - ---Purpose: If the function returns the orientation of the arc. - -- If the orientation is FORWARD or REVERSED, the arc is - -- a "real" limit of the surface. - -- If the orientation is INTERNAL or EXTERNAL, the arc is - -- considered as an arc on the surface. - - returns Orientation from TopAbs - is virtual; - - - Orientation(me: mutable; V: HVertex from Adaptor3d) - - ---Purpose: Returns the orientation of the vertex V. - -- The vertex has been found with an exploration on - -- a given arc. The orientation is the orientation - -- of the vertex on this arc. - - returns Orientation from TopAbs - is virtual; - - - Identical(me: mutable; V1,V2: HVertex from Adaptor3d) - - ---Purpose: Returns True if the vertices V1 and V2 are identical. - -- This method does not take the orientation of the - -- vertices in account. - - returns Boolean from Standard - is virtual; - - - Has3d(me) - ---Purpose: answers if arcs and vertices may have 3d representations, - -- so that we could use Tol3d and Pnt methods. - returns Boolean from Standard - is virtual; - - - Tol3d(me; C: HCurve2d from Adaptor2d) - ---Purpose: returns 3d tolerance of the arc C - returns Real from Standard - raises DomainError from Standard - is virtual; - - - Tol3d(me; V: HVertex from Adaptor3d) - ---Purpose: returns 3d tolerance of the vertex V - returns Real from Standard - raises DomainError from Standard - is virtual; - - - Pnt(me; V: HVertex from Adaptor3d) - ---Purpose: returns 3d point of the vertex V - returns Pnt from gp - raises DomainError from Standard - is virtual; - - ---- sample points tools - - ComputeSamplePoints(me: mutable) - is virtual; - - - NbSamplesU(me: mutable) - ---Purpose: compute the sample-points for the intersections algorithms - returns Integer from Standard - is virtual; - - NbSamplesV(me: mutable) - ---Purpose: compute the sample-points for the intersections algorithms - returns Integer from Standard - is virtual; - - NbSamples(me: mutable) - ---Purpose: compute the sample-points for the intersections algorithms - returns Integer from Standard - is virtual; - - UParameters(me; theArray: out Array1OfReal from TColStd); - ---Purpose: return the set of U parameters on the surface - -- obtained by the method SamplePnts - - VParameters(me; theArray: out Array1OfReal from TColStd); - ---Purpose: return the set of V parameters on the surface - -- obtained by the method SamplePnts - - SamplePoint(me: mutable; Index: Integer from Standard; - P2d : out Pnt2d from gp; - P3d : out Pnt from gp) - is virtual; - - DomainIsInfinite(me: mutable) - returns Boolean from Standard - is virtual; - - --modified by NIZNHY-PKV Mon Apr 23 15:54:51 2001 f - Edge (me) - returns Address from Standard - is virtual; - --modified by NIZNHY-PKV Mon Apr 23 15:54:46 2001 t - - --modified by NIZNHY-IFV Mon Sep 16 16:01:38 2005 f - - SamplePnts(me: mutable; theDefl: Real from Standard; theNUmin, theNVmin: Integer from Standard) - ---Purpose: compute the sample-points for the intersections algorithms - -- by adaptive algorithm for BSpline surfaces. For other surfaces algorithm - -- is the same as in method ComputeSamplePoints(), but only fill arrays of U - -- and V sample parameters; - -- theDefl is a requred deflection - -- theNUmin, theNVmin are minimal nb points for U and V. - is virtual; - - BSplSamplePnts(me: mutable; theDefl: Real from Standard; theNUmin, theNVmin: Integer from Standard) - ---Purpose: compute the sample-points for the intersections algorithms - -- by adaptive algorithm for BSpline surfaces - is used in SamplePnts - -- theDefl is a requred deflection - -- theNUmin, theNVmin are minimal nb points for U and V. - is virtual; - - IsUniformSampling(me) - ---Purpose: Returns true if provide uniform sampling of points. - returns Boolean from Standard - is virtual; - -fields - - nbRestr : Integer from Standard; - idRestr : Integer from Standard; - Uinf : Real from Standard; - Usup : Real from Standard; - Vinf : Real from Standard; - Vsup : Real from Standard; - myRestr : HLine2d from Adaptor2d [4]; - nbVtx : Integer from Standard; - idVtx : Integer from Standard; - myVtx : HVertex from Adaptor3d [2]; - - myS : HSurface from Adaptor3d is protected; - myNbSamplesU : Integer from Standard is protected; - myNbSamplesV : Integer from Standard is protected; - - myUPars : HArray1OfReal from TColStd is protected; - myVPars : HArray1OfReal from TColStd is protected; - -end TopolTool; diff --git a/src/Adaptor3d/Adaptor3d_TopolTool.cxx b/src/Adaptor3d/Adaptor3d_TopolTool.cxx index deed6c2a1b..2747c0bfd6 100644 --- a/src/Adaptor3d/Adaptor3d_TopolTool.cxx +++ b/src/Adaptor3d/Adaptor3d_TopolTool.cxx @@ -11,14 +11,21 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include +#include #include +#include +#include +#include +#include #define myInfinite Precision::Infinite() diff --git a/src/Adaptor3d/Adaptor3d_TopolTool.hxx b/src/Adaptor3d/Adaptor3d_TopolTool.hxx new file mode 100644 index 0000000000..da92a6226f --- /dev/null +++ b/src/Adaptor3d/Adaptor3d_TopolTool.hxx @@ -0,0 +1,198 @@ +// Created on: 1994-03-24 +// Created by: model +// 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 _Adaptor3d_TopolTool_HeaderFile +#define _Adaptor3d_TopolTool_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Adaptor2d_HLine2d; +class Adaptor3d_HVertex; +class Adaptor3d_HSurface; +class Standard_DomainError; +class Adaptor2d_HCurve2d; +class gp_Pnt2d; +class gp_Pnt; + + +class Adaptor3d_TopolTool; +DEFINE_STANDARD_HANDLE(Adaptor3d_TopolTool, MMgt_TShared) + +//! This class provides a default topological tool, +//! based on the Umin,Vmin,Umax,Vmax of an HSurface +//! from Adaptor3d. +//! All methods and fields may be redefined when +//! inheriting from this class. +//! This class is used to instantiate algorithmes +//! as Intersection, outlines,... +class Adaptor3d_TopolTool : public MMgt_TShared +{ + +public: + + + Standard_EXPORT Adaptor3d_TopolTool(); + + Standard_EXPORT Adaptor3d_TopolTool(const Handle(Adaptor3d_HSurface)& Surface); + + Standard_EXPORT virtual void Initialize(); + + Standard_EXPORT virtual void Initialize (const Handle(Adaptor3d_HSurface)& S); + + Standard_EXPORT virtual void Initialize (const Handle(Adaptor2d_HCurve2d)& Curve); + + Standard_EXPORT virtual void Init(); + + Standard_EXPORT virtual Standard_Boolean More(); + + Standard_EXPORT virtual Handle(Adaptor2d_HCurve2d) Value(); + + Standard_EXPORT virtual void Next(); + + Standard_EXPORT virtual void InitVertexIterator(); + + Standard_EXPORT virtual Standard_Boolean MoreVertex(); + + Standard_EXPORT virtual Handle(Adaptor3d_HVertex) Vertex(); + + Standard_EXPORT virtual void NextVertex(); + + Standard_EXPORT virtual TopAbs_State Classify (const gp_Pnt2d& P, const Standard_Real Tol, const Standard_Boolean ReacdreOnPeriodic = Standard_True); + + Standard_EXPORT virtual Standard_Boolean IsThePointOn (const gp_Pnt2d& P, const Standard_Real Tol, const Standard_Boolean ReacdreOnPeriodic = Standard_True); + + //! If the function returns the orientation of the arc. + //! If the orientation is FORWARD or REVERSED, the arc is + //! a "real" limit of the surface. + //! If the orientation is INTERNAL or EXTERNAL, the arc is + //! considered as an arc on the surface. + Standard_EXPORT virtual TopAbs_Orientation Orientation (const Handle(Adaptor2d_HCurve2d)& C); + + //! Returns the orientation of the vertex V. + //! The vertex has been found with an exploration on + //! a given arc. The orientation is the orientation + //! of the vertex on this arc. + Standard_EXPORT virtual TopAbs_Orientation Orientation (const Handle(Adaptor3d_HVertex)& V); + + //! Returns True if the vertices V1 and V2 are identical. + //! This method does not take the orientation of the + //! vertices in account. + Standard_EXPORT virtual Standard_Boolean Identical (const Handle(Adaptor3d_HVertex)& V1, const Handle(Adaptor3d_HVertex)& V2); + + //! answers if arcs and vertices may have 3d representations, + //! so that we could use Tol3d and Pnt methods. + Standard_EXPORT virtual Standard_Boolean Has3d() const; + + //! returns 3d tolerance of the arc C + Standard_EXPORT virtual Standard_Real Tol3d (const Handle(Adaptor2d_HCurve2d)& C) const; + + //! returns 3d tolerance of the vertex V + Standard_EXPORT virtual Standard_Real Tol3d (const Handle(Adaptor3d_HVertex)& V) const; + + //! returns 3d point of the vertex V + Standard_EXPORT virtual gp_Pnt Pnt (const Handle(Adaptor3d_HVertex)& V) const; + + Standard_EXPORT virtual void ComputeSamplePoints(); + + //! compute the sample-points for the intersections algorithms + Standard_EXPORT virtual Standard_Integer NbSamplesU(); + + //! compute the sample-points for the intersections algorithms + Standard_EXPORT virtual Standard_Integer NbSamplesV(); + + //! compute the sample-points for the intersections algorithms + Standard_EXPORT virtual Standard_Integer NbSamples(); + + //! return the set of U parameters on the surface + //! obtained by the method SamplePnts + Standard_EXPORT void UParameters (TColStd_Array1OfReal& theArray) const; + + //! return the set of V parameters on the surface + //! obtained by the method SamplePnts + Standard_EXPORT void VParameters (TColStd_Array1OfReal& theArray) const; + + Standard_EXPORT virtual void SamplePoint (const Standard_Integer Index, gp_Pnt2d& P2d, gp_Pnt& P3d); + + Standard_EXPORT virtual Standard_Boolean DomainIsInfinite(); + + Standard_EXPORT virtual Standard_Address Edge() const; + + //! compute the sample-points for the intersections algorithms + //! by adaptive algorithm for BSpline surfaces. For other surfaces algorithm + //! is the same as in method ComputeSamplePoints(), but only fill arrays of U + //! and V sample parameters; + //! theDefl is a requred deflection + //! theNUmin, theNVmin are minimal nb points for U and V. + Standard_EXPORT virtual void SamplePnts (const Standard_Real theDefl, const Standard_Integer theNUmin, const Standard_Integer theNVmin); + + //! compute the sample-points for the intersections algorithms + //! by adaptive algorithm for BSpline surfaces - is used in SamplePnts + //! theDefl is a requred deflection + //! theNUmin, theNVmin are minimal nb points for U and V. + Standard_EXPORT virtual void BSplSamplePnts (const Standard_Real theDefl, const Standard_Integer theNUmin, const Standard_Integer theNVmin); + + //! Returns true if provide uniform sampling of points. + Standard_EXPORT virtual Standard_Boolean IsUniformSampling() const; + + + + + DEFINE_STANDARD_RTTI(Adaptor3d_TopolTool,MMgt_TShared) + +protected: + + + Handle(Adaptor3d_HSurface) myS; + Standard_Integer myNbSamplesU; + Standard_Integer myNbSamplesV; + Handle(TColStd_HArray1OfReal) myUPars; + Handle(TColStd_HArray1OfReal) myVPars; + + +private: + + + Standard_Integer nbRestr; + Standard_Integer idRestr; + Standard_Real Uinf; + Standard_Real Usup; + Standard_Real Vinf; + Standard_Real Vsup; + Handle(Adaptor2d_HLine2d) myRestr[4]; + Standard_Integer nbVtx; + Standard_Integer idVtx; + Handle(Adaptor3d_HVertex) myVtx[2]; + + +}; + + + + + + + +#endif // _Adaptor3d_TopolTool_HeaderFile diff --git a/src/Adaptor3d/FILES b/src/Adaptor3d/FILES new file mode 100644 index 0000000000..01b7dc9043 --- /dev/null +++ b/src/Adaptor3d/FILES @@ -0,0 +1,48 @@ +Adaptor3d_Curve.cxx +Adaptor3d_Curve.hxx +Adaptor3d_CurveOnSurface.cxx +Adaptor3d_CurveOnSurface.hxx +Adaptor3d_CurveOnSurfacePtr.hxx +Adaptor3d_CurvePtr.hxx +Adaptor3d_GenHCurve.gxx +Adaptor3d_GenHCurve.lxx +Adaptor3d_GenHSurface.gxx +Adaptor3d_GenHSurface.lxx +Adaptor3d_HCurve.cxx +Adaptor3d_HCurve.hxx +Adaptor3d_HCurve.lxx +Adaptor3d_HCurveOnSurface.hxx +Adaptor3d_HCurveOnSurface_0.cxx +Adaptor3d_HIsoCurve.hxx +Adaptor3d_HIsoCurve_0.cxx +Adaptor3d_HOffsetCurve.hxx +Adaptor3d_HOffsetCurve_0.cxx +Adaptor3d_HSurface.cxx +Adaptor3d_HSurface.hxx +Adaptor3d_HSurface.lxx +Adaptor3d_HSurfaceOfLinearExtrusion.hxx +Adaptor3d_HSurfaceOfLinearExtrusion_0.cxx +Adaptor3d_HSurfaceOfRevolution.hxx +Adaptor3d_HSurfaceOfRevolution_0.cxx +Adaptor3d_HSurfaceTool.cxx +Adaptor3d_HSurfaceTool.hxx +Adaptor3d_HSurfaceTool.lxx +Adaptor3d_HVertex.cxx +Adaptor3d_HVertex.hxx +Adaptor3d_InterFunc.cxx +Adaptor3d_InterFunc.hxx +Adaptor3d_IsoCurve.cxx +Adaptor3d_IsoCurve.hxx +Adaptor3d_IsoCurve.lxx +Adaptor3d_OffsetCurve.cxx +Adaptor3d_OffsetCurve.hxx +Adaptor3d_OffsetCurve.lxx +Adaptor3d_Surface.cxx +Adaptor3d_Surface.hxx +Adaptor3d_SurfaceOfLinearExtrusion.cxx +Adaptor3d_SurfaceOfLinearExtrusion.hxx +Adaptor3d_SurfaceOfRevolution.cxx +Adaptor3d_SurfaceOfRevolution.hxx +Adaptor3d_SurfacePtr.hxx +Adaptor3d_TopolTool.cxx +Adaptor3d_TopolTool.hxx diff --git a/src/AdvApp2Var/AdvApp2Var.cdl b/src/AdvApp2Var/AdvApp2Var.cdl deleted file mode 100644 index d8bc11f561..0000000000 --- a/src/AdvApp2Var/AdvApp2Var.cdl +++ /dev/null @@ -1,187 +0,0 @@ --- 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. - --- Modified: Wed Jan 15 09:45:42 1997 --- by: Joelle CHAUVET --- G1135 : Approximation with criterion --- class Criterion and enumeration CriterionType --- G1134 : Approximation with regular cuttings --- enumeration CriterionRepartition - - - -package AdvApp2Var - - ---Purpose: This package provides algorithms to approximate a - -- function of 2 variables that can be multidimensional; - -- the result is a BSpline function with the required continuity - -- Warning: only one 3D BSpline for the moment - -- - - - -uses - gp, - Geom, - GeomAbs, - TColStd, - TColgp, - TColGeom, - AdvApprox, - Standard - -is - - enumeration CriterionType is - ---Purpose: influency of the criterion on cutting process - Absolute, - ---Purpose: cutting when criterion is not satisfied - -- desactivation of the compute of the error max - Relative - ---Purpose: cutting when error max is not good or if error - -- max is good and criterion is not satisfied - - end CriterionType; - - - enumeration CriterionRepartition is - ---Purpose: way of cutting process - Regular, - ---Purpose: all new cutting points at each step of cutting - -- process : (a+i(b-a)/N)i at step N, - -- (a+i(b-a)/(N+1))i at step N+1,... - -- where (a,b) is the global interval - Incremental - ---Purpose: add one new cutting point at each step - -- of cutting process - - end CriterionRepartition; - -- - -- - -- public classes - -- - -- - - class ApproxAFunc2Var from AdvApp2Var ; - - imported EvaluatorFunc2Var ; - - deferred class Criterion from AdvApp2Var ; - - - - -- - -- - -- private classes for Data - -- - -- - -- Basic Data - - class Context from AdvApp2Var; - - class Node from AdvApp2Var; - - class Iso from AdvApp2Var; - - class Patch from AdvApp2Var; - - imported Strip; - ---Purpose : - -- set of constraints along a same type of Iso on the same level - - -- - -- - -- Structured Data - - imported SequenceOfNode; - imported SequenceOfPatch; - imported SequenceOfStrip; - - -- - -- - -- Final Data - - class Network from AdvApp2Var; - -- contains all the result patches and the associated parameters U and V - -- - - class Framework from AdvApp2Var; - -- contains all the constraints (Nodes and Isos) - -- - - -end AdvApp2Var; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/AdvApp2Var/AdvApp2Var_ApproxAFunc2Var.cdl b/src/AdvApp2Var/AdvApp2Var_ApproxAFunc2Var.cdl deleted file mode 100644 index f4bd1c50b5..0000000000 --- a/src/AdvApp2Var/AdvApp2Var_ApproxAFunc2Var.cdl +++ /dev/null @@ -1,426 +0,0 @@ --- Created on: 1996-02-14 --- 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. - --- Modified: Wed Jan 15 09:45:42 1997 --- by: Joelle CHAUVET --- G1135 : Constructor with criterion --- G1135 : Private methods 'Init','InitGrid','Perform','ConvertBS', --- 'ComputePatches','ComputeConstraints', --- Compute3DErrors','ComputeCritError' --- G1135 : Fields 'myConditions','myResults','myConstraints', --- G1134 : Option 0 for myPrecisionCode - -class ApproxAFunc2Var from AdvApp2Var - - ---Purpose: Perform the approximation of F(U,V) - -- Arguments are : - -- Num1DSS, Num2DSS, Num3DSS :The numbers of 1,2,3 dimensional subspaces - -- OneDTol, TwoDTol, ThreeDTol: The tolerance of approximation in each - -- subspaces - -- OneDTolFr, TwoDTolFr, ThreeDTolFr: The tolerance of approximation on - -- the boundarys in each subspaces - -- [FirstInU, LastInU]: The Bounds in U of the Approximation - -- [FirstInV, LastInV]: The Bounds in V of the Approximation - -- FavorIso : Give preference to extract u-iso or v-iso on F(U,V) - -- This can be usefull to optimize the methode - -- ContInU, ContInV : Continuity waiting in u and v - -- PrecisCode : Precision on approximation's error mesurement - -- 1 : Fast computation and average precision - -- 2 : Average computation and good precision - -- 3 : Slow computation and very good precision - -- MaxDegInU : Maximum u-degree waiting in U - -- MaxDegInV : Maximum u-degree waiting in V - -- Warning: - -- MaxDegInU (resp. MaxDegInV) must be >= 2*iu (resp. iv) + 1, - -- where iu (resp. iv) = 0 if ContInU (resp. ContInV) = GeomAbs_C0, - -- = 1 if = GeomAbs_C1, - -- = 2 if = GeomAbs_C2. - -- MaxPatch : Maximun number of Patch waiting - -- number of Patch is number of u span * number of v span - -- Func : The external method to evaluate F(U,V) - -- Crit : To (re)defined condition of convergence - -- UChoice, VChoice : To define the way in U (or V) Knot insertion - -- Warning: - -- for the moment, the result is a 3D Surface - -- so Num1DSS and Num2DSS must be equals to 0 - -- and Num3DSS must be equal to 1. - -- Warning: - -- the Function of type EvaluatorFunc2Var from Approx - -- must be a subclass of AdvApp2Var_EvaluatorFunc2Var - -- - -- the result should be formatted in the following way : - -- <--Num1DSS--> <--2 * Num2DSS--> <--3 * Num3DSS--> - -- R[0,0] .... R[Num1DSS,0]..... R[Dimension-1,0] for the 1st parameter - -- R[0,i] .... R[Num1DSS,i]..... R[Dimension-1,i] for the ith parameter - -- R[0,N-1] .... R[Num1DSS,N-1].... R[Dimension-1,N-1] for the Nth parameter - -- - -- 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 : - -- Surface(n) will correspond to the nth entry described by Num3DSS - -uses Array1OfInteger from TColStd, - HArray1OfInteger from TColStd, - Array1OfReal from TColStd, - Array1OfPnt2d from TColgp, - Array1OfPnt from TColgp, - HArray1OfReal from TColStd, - HArray1OfPnt2d from TColgp, - HArray1OfPnt from TColgp, - HArray2OfInteger from TColStd, - HArray2OfReal from TColStd, - HArray2OfPnt2d from TColgp, - HArray2OfPnt from TColgp, - HArray1OfSurface from TColGeom, - BSplineSurface from Geom, - Pnt from gp, - Pnt2d from gp, - Shape from GeomAbs, - IsoType from GeomAbs, - EvaluatorFunc2Var from AdvApp2Var, - Criterion from AdvApp2Var, - Context from AdvApp2Var, - Network from AdvApp2Var, - Framework from AdvApp2Var, - Cutting from AdvApprox - - -raises - - OutOfRange from Standard, - ConstructionError from Standard - -is - Create(Num1DSS : Integer ; - Num2DSS : Integer ; - Num3DSS : Integer ; - OneDTol : HArray1OfReal from TColStd ; - TwoDTol : HArray1OfReal from TColStd ; - ThreeDTol : HArray1OfReal from TColStd ; - OneDTolFr : HArray2OfReal from TColStd ; - TwoDTolFr : HArray2OfReal from TColStd ; - ThreeDTolFr: HArray2OfReal from TColStd ; - FirstInU : Real ; - LastInU : Real ; - FirstInV : Real ; - LastInV : Real ; - FavorIso : IsoType from GeomAbs ; - ContInU : Shape from GeomAbs ; - ContInV : Shape from GeomAbs ; - PrecisCode : Integer ; - MaxDegInU : Integer ; - MaxDegInV : Integer ; - MaxPatch : Integer ; - Func : EvaluatorFunc2Var from AdvApp2Var; - UChoice : in out Cutting from AdvApprox; - VChoice : in out Cutting from AdvApprox) - returns ApproxAFunc2Var from AdvApp2Var - raises ConstructionError; - - Create(Num1DSS : Integer ; - Num2DSS : Integer ; - Num3DSS : Integer ; - OneDTol : HArray1OfReal from TColStd ; - TwoDTol : HArray1OfReal from TColStd ; - ThreeDTol : HArray1OfReal from TColStd ; - OneDTolFr : HArray2OfReal from TColStd ; - TwoDTolFr : HArray2OfReal from TColStd ; - ThreeDTolFr: HArray2OfReal from TColStd ; - FirstInU : Real ; - LastInU : Real ; - FirstInV : Real ; - LastInV : Real ; - FavorIso : IsoType from GeomAbs ; - ContInU : Shape from GeomAbs ; - ContInV : Shape from GeomAbs ; - PrecisCode : Integer ; - MaxDegInU : Integer ; - MaxDegInV : Integer ; - MaxPatch : Integer ; - Func : EvaluatorFunc2Var from AdvApp2Var; - Crit : Criterion from AdvApp2Var; - UChoice : in out Cutting from AdvApprox; - VChoice : in out Cutting from AdvApprox) - returns ApproxAFunc2Var from AdvApp2Var - raises ConstructionError; - - - - Init(me : in out) - is private; - ---Purpose: Initialisation of the approximation ; used by Create - - InitGrid(me : in out; NbInt : Integer) - is private; - ---Purpose: Initialisation of the approximation with a grid of regular cuttings ; - -- used by Init and Perform - - Perform(me : in out; UChoice, VChoice : Cutting from AdvApprox; - Func : EvaluatorFunc2Var from AdvApp2Var) - is private; - ---Purpose: Computation of the approximation result ; used by Create - - - Perform(me : in out; UChoice, VChoice : Cutting from AdvApprox; - Func : EvaluatorFunc2Var from AdvApp2Var; - Crit : Criterion from AdvApp2Var) - is private; - ---Purpose: Computation of the approximation result ; used by Create - - - ComputePatches(me : in out; UChoice, VChoice : Cutting from AdvApprox; - Func : EvaluatorFunc2Var from AdvApp2Var) - is private; - ---Purpose: Computation of the polynomial approximations ; used by Perform - - - ComputePatches(me : in out; UChoice, VChoice : Cutting from AdvApprox; - Func : EvaluatorFunc2Var from AdvApp2Var; - Crit : Criterion from AdvApp2Var) - is private; - ---Purpose: Computation of the polynomial approximations ; used by Perform - - - ComputeConstraints(me : in out; UChoice, VChoice : Cutting from AdvApprox; - Func : EvaluatorFunc2Var from AdvApp2Var) - is private; - ---Purpose: Approximation of the constraints ; used by ComputePatches - - ComputeConstraints(me : in out; UChoice, VChoice : Cutting from AdvApprox; - Func : EvaluatorFunc2Var from AdvApp2Var; - Crit : Criterion from AdvApp2Var) - is private; - ---Purpose: Approximation of the constraints ; used by ComputePatches - - - Compute3DErrors(me : in out) - is private; - ---Purpose: Computation of the 3D errors on the approximation result ; used by Perform - - ComputeCritError(me : in out) - is private; - ---Purpose: Computation of the max value of the criterion on the approximation result ; - -- used by Perform - - ConvertBS(me : in out) - is private; - ---Purpose: Conversion of the approximation result in BSpline; used by Create - - - IsDone(me) - ---C++: inline - returns Boolean; - ---Purpose: True if the approximation succeeded within the imposed - -- tolerances and the wished continuities - -- - - HasResult(me) - ---C++: inline - returns Boolean; - ---Purpose: True if the approximation did come out with a result that - -- is not NECESSARELY within the required tolerance or a result - -- that is not recognized with the wished continuities - -- - - Surface (me; Index : Integer) - ---Purpose: returns the BSplineSurface of range Index - ---Warning: - -- Index must be equal to 1. - ---C++: inline - returns BSplineSurface from Geom; - - - UDegree(me) returns Integer ; - ---C++: inline - - VDegree(me) returns Integer ; - ---C++: inline - - - - NumSubSpaces(me; Dimension : Integer) returns Integer; - ---C++: inline - ---Warning: - -- Dimension must be equal to 1, 2 or 3. - - - - - MaxError (me; Dimension : Integer) returns HArray1OfReal from TColStd ; - ---Purpose: returns the errors max - ---Warning: - -- Dimension must be equal to 3. - - AverageError(me; Dimension : Integer) returns HArray1OfReal from TColStd ; - ---Purpose: returns the average errors - ---Warning: - -- Dimension must be equal to 3. - - UFrontError(me; Dimension : Integer) returns HArray1OfReal from TColStd ; - ---Purpose: returns the errors max on UFrontiers - -- Warning: - -- Dimension must be equal to 3. - - VFrontError(me; Dimension : Integer) returns HArray1OfReal from TColStd ; - ---Purpose: returns the errors max on VFrontiers - -- Warning: - -- Dimension must be equal to 3. - - - MaxError (me; Dimension : Integer ; Index : Integer) returns Real ; - ---Purpose: returns the error max of the BSplineSurface of range Index - ---Warning: - -- Dimension must be equal to 3, Index must be equal to 1. - - AverageError(me; Dimension : Integer; Index : Integer) returns Real ; - ---Purpose: returns the average error of the BSplineSurface of range Index - ---Warning: - -- Dimension must be equal to 3, Index must be equal to 1. - - UFrontError(me; Dimension : Integer; Index : Integer) returns Real ; - ---Purpose: returns the error max of the BSplineSurface of range Index on a UFrontier - ---Warning: - -- Dimension must be equal to 3, Index must be equal to 1. - - VFrontError(me; Dimension : Integer; Index : Integer) returns Real ; - ---Purpose: returns the error max of the BSplineSurface of range Index on a VFrontier - ---Warning: - -- Dimension must be equal to 3, Index must be equal to 1. - - CritError(me; Dimension : Integer; Index : Integer) returns Real ; - -- Computation of the max value of the criterion on the BSplineSurface of range Index - ---Warning: - -- Dimension must be equal to 3, Index must be equal to 1. - - Dump(me ; o : in out OStream); - ---Purpose: Prints on the stream o informations on the current state - -- of the object. - -- - -fields - -- - -- Input fields - -- - myNumSubSpaces : Integer[3] ; - -- Number of subspaces [0] = number of 1 dimensional subspaces - -- [1] = number of 2 dimensional subspaces - -- [2] = number of 3 dimensional subspaces - ---Warning: - -- for the moment, the result is a 3D Surface so - -- myNumSubSpaces[0] = Num1DSS = 0, - -- myNumSubSpaces[1] = Num2DSS = 0, - -- myNumSubSpaces[2] = Num3DSS = 1. - -- - - my1DTolerances : HArray1OfReal from TColStd ; - -- unused for the moment - my2DTolerances : HArray1OfReal from TColStd ; - -- unused for the moment - - my3DTolerances : HArray1OfReal from TColStd ; - -- one tolerance per subspace - - my1DTolOnFront : HArray2OfReal from TColStd ; - -- unused for the moment - my2DTolOnFront : HArray2OfReal from TColStd ; - -- unused for the moment - - my3DTolOnFront : HArray2OfReal from TColStd ; - -- 4 tolerances per subspace, - -- one for each frontier U=U0, U=U1, V=V0, V=V1 - - myFirstParInU : Real ; - -- U0 : first U parameter for the approximation - myLastParInU : Real ; - -- U1 : last U parameter for the approximation - myFirstParInV : Real ; - -- V0 : first V parameter for the approximation - myLastParInV : Real ; - -- V1 : last V parameter for the approximation - -- - -- - myFavoriteIso : IsoType from GeomAbs ; - myContInU : Shape from GeomAbs ; - myContInV : Shape from GeomAbs ; - -- continuity requested for the approximation - ---Warning: - -- The evaluator of the function to approximate must - -- provide the derivatives up to the requested order - -- - myPrecisionCode : Integer ; - myMaxDegInU : Integer ; - -- maximum U-degree for the approximation - myMaxDegInV : Integer ; - -- maximum V-degree for the approximation - ---Warning: - -- Because of the unstable evaluation after degree 14 - -- there are limited to 14 - myMaxPatches : Integer ; - -- maximum of patches allowed - -- - -- - myConditions : Context from AdvApp2Var; - myResult : Network from AdvApp2Var; - myConstraints : Framework from AdvApp2Var; - -- - -- - -- Output fields - -- - myDone : Boolean ; - -- tells if the approximation succeeded within the requested - -- tolerances and continuities. - -- - myHasResult : Boolean ; - -- tells if the approximation returned a result although - -- it might not be within the requested tolerances or - -- the BSpline result surface has not the wished continuities. - -- In those cases myDone will be false. - -- - -- - mySurfaces : HArray1OfSurface from TColGeom; - -- one surface per subspace - -- - myDegreeInU : Integer ; - myDegreeInV : Integer ; - -- - -- The Errors - -- 1DErrors and 2DErrors are unused for the moment - -- - my1DMaxError : HArray1OfReal from TColStd ; - my1DAverageError : HArray1OfReal from TColStd ; - my1DUFrontError : HArray1OfReal from TColStd ; - my1DVFrontError : HArray1OfReal from TColStd ; - - my2DMaxError : HArray1OfReal from TColStd ; - my2DAverageError : HArray1OfReal from TColStd ; - my2DUFrontError : HArray1OfReal from TColStd ; - my2DVFrontError : HArray1OfReal from TColStd ; - - -- each array contains one error - my3DMaxError : HArray1OfReal from TColStd ; - my3DAverageError : HArray1OfReal from TColStd ; - my3DUFrontError : HArray1OfReal from TColStd ; - my3DVFrontError : HArray1OfReal from TColStd ; - - myCriterionError : Real from Standard ; - -end ApproxAFunc2Var ; - - - - - - diff --git a/src/AdvApp2Var/AdvApp2Var_ApproxAFunc2Var.hxx b/src/AdvApp2Var/AdvApp2Var_ApproxAFunc2Var.hxx new file mode 100644 index 0000000000..3930a949c1 --- /dev/null +++ b/src/AdvApp2Var/AdvApp2Var_ApproxAFunc2Var.hxx @@ -0,0 +1,251 @@ +// Created on: 1996-02-14 +// 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_ApproxAFunc2Var_HeaderFile +#define _AdvApp2Var_ApproxAFunc2Var_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Standard_ConstructionError; +class AdvApprox_Cutting; +class AdvApp2Var_Criterion; +class Geom_BSplineSurface; + + +//! Perform the approximation of F(U,V) +//! Arguments are : +//! Num1DSS, Num2DSS, Num3DSS :The numbers of 1,2,3 dimensional subspaces +//! OneDTol, TwoDTol, ThreeDTol: The tolerance of approximation in each +//! subspaces +//! OneDTolFr, TwoDTolFr, ThreeDTolFr: The tolerance of approximation on +//! the boundarys in each subspaces +//! [FirstInU, LastInU]: The Bounds in U of the Approximation +//! [FirstInV, LastInV]: The Bounds in V of the Approximation +//! FavorIso : Give preference to extract u-iso or v-iso on F(U,V) +//! This can be usefull to optimize the methode +//! ContInU, ContInV : Continuity waiting in u and v +//! PrecisCode : Precision on approximation's error mesurement +//! 1 : Fast computation and average precision +//! 2 : Average computation and good precision +//! 3 : Slow computation and very good precision +//! MaxDegInU : Maximum u-degree waiting in U +//! MaxDegInV : Maximum u-degree waiting in V +//! Warning: +//! MaxDegInU (resp. MaxDegInV) must be >= 2*iu (resp. iv) + 1, +//! where iu (resp. iv) = 0 if ContInU (resp. ContInV) = GeomAbs_C0, +//! = 1 if = GeomAbs_C1, +//! = 2 if = GeomAbs_C2. +//! MaxPatch : Maximun number of Patch waiting +//! number of Patch is number of u span * number of v span +//! Func : The external method to evaluate F(U,V) +//! Crit : To (re)defined condition of convergence +//! UChoice, VChoice : To define the way in U (or V) Knot insertion +//! Warning: +//! for the moment, the result is a 3D Surface +//! so Num1DSS and Num2DSS must be equals to 0 +//! and Num3DSS must be equal to 1. +//! Warning: +//! the Function of type EvaluatorFunc2Var from Approx +//! must be a subclass of AdvApp2Var_EvaluatorFunc2Var +//! +//! the result should be formatted in the following way : +//! <--Num1DSS--> <--2 * Num2DSS--> <--3 * Num3DSS--> +//! R[0,0] .... R[Num1DSS,0]..... R[Dimension-1,0] for the 1st parameter +//! R[0,i] .... R[Num1DSS,i]..... R[Dimension-1,i] for the ith parameter +//! R[0,N-1] .... R[Num1DSS,N-1].... R[Dimension-1,N-1] for the Nth parameter +//! +//! 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 : +//! Surface(n) will correspond to the nth entry described by Num3DSS +class AdvApp2Var_ApproxAFunc2Var +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AdvApp2Var_ApproxAFunc2Var(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 Handle(TColStd_HArray2OfReal)& OneDTolFr, const Handle(TColStd_HArray2OfReal)& TwoDTolFr, const Handle(TColStd_HArray2OfReal)& ThreeDTolFr, const Standard_Real FirstInU, const Standard_Real LastInU, const Standard_Real FirstInV, const Standard_Real LastInV, const GeomAbs_IsoType FavorIso, const GeomAbs_Shape ContInU, const GeomAbs_Shape ContInV, const Standard_Integer PrecisCode, const Standard_Integer MaxDegInU, const Standard_Integer MaxDegInV, const Standard_Integer MaxPatch, const AdvApp2Var_EvaluatorFunc2Var& Func, AdvApprox_Cutting& UChoice, AdvApprox_Cutting& VChoice); + + Standard_EXPORT AdvApp2Var_ApproxAFunc2Var(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 Handle(TColStd_HArray2OfReal)& OneDTolFr, const Handle(TColStd_HArray2OfReal)& TwoDTolFr, const Handle(TColStd_HArray2OfReal)& ThreeDTolFr, const Standard_Real FirstInU, const Standard_Real LastInU, const Standard_Real FirstInV, const Standard_Real LastInV, const GeomAbs_IsoType FavorIso, const GeomAbs_Shape ContInU, const GeomAbs_Shape ContInV, const Standard_Integer PrecisCode, const Standard_Integer MaxDegInU, const Standard_Integer MaxDegInV, const Standard_Integer MaxPatch, const AdvApp2Var_EvaluatorFunc2Var& Func, const AdvApp2Var_Criterion& Crit, AdvApprox_Cutting& UChoice, AdvApprox_Cutting& VChoice); + + //! True if the approximation succeeded within the imposed + //! tolerances and the wished continuities + Standard_Boolean IsDone() const; + + //! True if the approximation did come out with a result that + //! is not NECESSARELY within the required tolerance or a result + //! that is not recognized with the wished continuities + Standard_Boolean HasResult() const; + + //! returns the BSplineSurface of range Index + Handle(Geom_BSplineSurface) Surface (const Standard_Integer Index) const; + + Standard_Integer UDegree() const; + + Standard_Integer VDegree() const; + + Standard_Integer NumSubSpaces (const Standard_Integer Dimension) const; + + //! returns the errors max + Standard_EXPORT Handle(TColStd_HArray1OfReal) MaxError (const Standard_Integer Dimension) const; + + //! returns the average errors + Standard_EXPORT Handle(TColStd_HArray1OfReal) AverageError (const Standard_Integer Dimension) const; + + //! returns the errors max on UFrontiers + //! Warning: + //! Dimension must be equal to 3. + Standard_EXPORT Handle(TColStd_HArray1OfReal) UFrontError (const Standard_Integer Dimension) const; + + //! returns the errors max on VFrontiers + //! Warning: + //! Dimension must be equal to 3. + Standard_EXPORT Handle(TColStd_HArray1OfReal) VFrontError (const Standard_Integer Dimension) const; + + //! returns the error max of the BSplineSurface of range Index + Standard_EXPORT Standard_Real MaxError (const Standard_Integer Dimension, const Standard_Integer Index) const; + + //! returns the average error of the BSplineSurface of range Index + Standard_EXPORT Standard_Real AverageError (const Standard_Integer Dimension, const Standard_Integer Index) const; + + //! returns the error max of the BSplineSurface of range Index on a UFrontier + Standard_EXPORT Standard_Real UFrontError (const Standard_Integer Dimension, const Standard_Integer Index) const; + + //! returns the error max of the BSplineSurface of range Index on a VFrontier + Standard_EXPORT Standard_Real VFrontError (const Standard_Integer Dimension, const Standard_Integer Index) const; + + Standard_EXPORT Standard_Real CritError (const Standard_Integer Dimension, const Standard_Integer Index) const; + + //! Prints on the stream o informations on the current state + //! of the object. + Standard_EXPORT void Dump (Standard_OStream& o) const; + + + + +protected: + + + + + +private: + + + //! Initialisation of the approximation ; used by Create + Standard_EXPORT void Init(); + + //! Initialisation of the approximation with a grid of regular cuttings ; + //! used by Init and Perform + Standard_EXPORT void InitGrid (const Standard_Integer NbInt); + + //! Computation of the approximation result ; used by Create + Standard_EXPORT void Perform (const AdvApprox_Cutting& UChoice, const AdvApprox_Cutting& VChoice, const AdvApp2Var_EvaluatorFunc2Var& Func); + + //! Computation of the approximation result ; used by Create + Standard_EXPORT void Perform (const AdvApprox_Cutting& UChoice, const AdvApprox_Cutting& VChoice, const AdvApp2Var_EvaluatorFunc2Var& Func, const AdvApp2Var_Criterion& Crit); + + //! Computation of the polynomial approximations ; used by Perform + Standard_EXPORT void ComputePatches (const AdvApprox_Cutting& UChoice, const AdvApprox_Cutting& VChoice, const AdvApp2Var_EvaluatorFunc2Var& Func); + + //! Computation of the polynomial approximations ; used by Perform + Standard_EXPORT void ComputePatches (const AdvApprox_Cutting& UChoice, const AdvApprox_Cutting& VChoice, const AdvApp2Var_EvaluatorFunc2Var& Func, const AdvApp2Var_Criterion& Crit); + + //! Approximation of the constraints ; used by ComputePatches + Standard_EXPORT void ComputeConstraints (const AdvApprox_Cutting& UChoice, const AdvApprox_Cutting& VChoice, const AdvApp2Var_EvaluatorFunc2Var& Func); + + //! Approximation of the constraints ; used by ComputePatches + Standard_EXPORT void ComputeConstraints (const AdvApprox_Cutting& UChoice, const AdvApprox_Cutting& VChoice, const AdvApp2Var_EvaluatorFunc2Var& Func, const AdvApp2Var_Criterion& Crit); + + //! Computation of the 3D errors on the approximation result ; used by Perform + Standard_EXPORT void Compute3DErrors(); + + //! Computation of the max value of the criterion on the approximation result ; + //! used by Perform + Standard_EXPORT void ComputeCritError(); + + //! Conversion of the approximation result in BSpline; used by Create + Standard_EXPORT void ConvertBS(); + + + Standard_Integer myNumSubSpaces[3]; + Handle(TColStd_HArray1OfReal) my1DTolerances; + Handle(TColStd_HArray1OfReal) my2DTolerances; + Handle(TColStd_HArray1OfReal) my3DTolerances; + Handle(TColStd_HArray2OfReal) my1DTolOnFront; + Handle(TColStd_HArray2OfReal) my2DTolOnFront; + Handle(TColStd_HArray2OfReal) my3DTolOnFront; + Standard_Real myFirstParInU; + Standard_Real myLastParInU; + Standard_Real myFirstParInV; + Standard_Real myLastParInV; + GeomAbs_IsoType myFavoriteIso; + GeomAbs_Shape myContInU; + GeomAbs_Shape myContInV; + Standard_Integer myPrecisionCode; + Standard_Integer myMaxDegInU; + Standard_Integer myMaxDegInV; + Standard_Integer myMaxPatches; + AdvApp2Var_Context myConditions; + AdvApp2Var_Network myResult; + AdvApp2Var_Framework myConstraints; + Standard_Boolean myDone; + Standard_Boolean myHasResult; + Handle(TColGeom_HArray1OfSurface) mySurfaces; + Standard_Integer myDegreeInU; + Standard_Integer myDegreeInV; + Handle(TColStd_HArray1OfReal) my1DMaxError; + Handle(TColStd_HArray1OfReal) my1DAverageError; + Handle(TColStd_HArray1OfReal) my1DUFrontError; + Handle(TColStd_HArray1OfReal) my1DVFrontError; + Handle(TColStd_HArray1OfReal) my2DMaxError; + Handle(TColStd_HArray1OfReal) my2DAverageError; + Handle(TColStd_HArray1OfReal) my2DUFrontError; + Handle(TColStd_HArray1OfReal) my2DVFrontError; + Handle(TColStd_HArray1OfReal) my3DMaxError; + Handle(TColStd_HArray1OfReal) my3DAverageError; + Handle(TColStd_HArray1OfReal) my3DUFrontError; + Handle(TColStd_HArray1OfReal) my3DVFrontError; + Standard_Real myCriterionError; + + +}; + + +#include + + + + + +#endif // _AdvApp2Var_ApproxAFunc2Var_HeaderFile diff --git a/src/AdvApp2Var/AdvApp2Var_Context.cdl b/src/AdvApp2Var/AdvApp2Var_Context.cdl deleted file mode 100644 index 5fe426a7f4..0000000000 --- a/src/AdvApp2Var/AdvApp2Var_Context.cdl +++ /dev/null @@ -1,69 +0,0 @@ --- Created on: 1996-04-16 --- 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. - --- Modified: Mon Dec 9 10:30:56 1996 --- by: Joelle CHAUVET --- G1135 : Empty constructor - - -class Context from AdvApp2Var - ---Purpose : - -- contains all the parameters for approximation - -- ( tolerancy, computing option, ...) - -uses - HArray1OfReal from TColStd, - HArray2OfReal from TColStd - -is - Create returns Context; - Create(ifav,iu,iv : Integer; nlimu,nlimv : Integer; iprecis : Integer; - nb1Dss,nb2Dss,nb3Dss : Integer; tol1D,tol2D,tol3D : HArray1OfReal; - tof1D,tof2D,tof3D : HArray2OfReal) returns Context; - TotalDimension(me) returns Integer; - TotalNumberSSP(me) returns Integer; - FavorIso(me) returns Integer; - UOrder(me) returns Integer; - VOrder(me) returns Integer; - ULimit(me) returns Integer; - VLimit(me) returns Integer; - UJacDeg(me) returns Integer; - VJacDeg(me) returns Integer; - UJacMax(me) returns HArray1OfReal; - VJacMax(me) returns HArray1OfReal; - URoots(me) returns HArray1OfReal; - VRoots(me) returns HArray1OfReal; - UGauss(me) returns HArray1OfReal; - VGauss(me) returns HArray1OfReal; - IToler(me) returns HArray1OfReal; - FToler(me) returns HArray2OfReal; - CToler(me) returns HArray2OfReal; - -fields - myFav : Integer; - myOrdU, myOrdV : Integer; - myLimU, myLimV : Integer; - myNb1DSS, myNb2DSS, myNb3DSS: Integer; - myNbURoot, myNbVRoot : Integer; - myJDegU, myJDegV : Integer; - myJMaxU, myJMaxV : HArray1OfReal; - myURoots, myVRoots : HArray1OfReal; - myUGauss, myVGauss : HArray1OfReal; - myInternalTol : HArray1OfReal; - myFrontierTol : HArray2OfReal; - myCuttingTol : HArray2OfReal; - -end Context; diff --git a/src/AdvApp2Var/AdvApp2Var_Context.cxx b/src/AdvApp2Var/AdvApp2Var_Context.cxx index 9bcbf682f2..7a57352a1d 100644 --- a/src/AdvApp2Var/AdvApp2Var_Context.cxx +++ b/src/AdvApp2Var/AdvApp2Var_Context.cxx @@ -14,9 +14,10 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include + #include +#include +#include // Calculaton of parameters static Standard_Boolean lesparam(const Standard_Integer iordre, diff --git a/src/AdvApp2Var/AdvApp2Var_Context.hxx b/src/AdvApp2Var/AdvApp2Var_Context.hxx new file mode 100644 index 0000000000..1c692a3bd4 --- /dev/null +++ b/src/AdvApp2Var/AdvApp2Var_Context.hxx @@ -0,0 +1,123 @@ +// Created on: 1996-04-16 +// 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_Context_HeaderFile +#define _AdvApp2Var_Context_HeaderFile + +#include +#include +#include + +#include +#include +#include + + + +//! contains all the parameters for approximation +//! ( tolerancy, computing option, ...) +class AdvApp2Var_Context +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AdvApp2Var_Context(); + + Standard_EXPORT AdvApp2Var_Context(const Standard_Integer ifav, const Standard_Integer iu, const Standard_Integer iv, const Standard_Integer nlimu, const Standard_Integer nlimv, const Standard_Integer iprecis, const Standard_Integer nb1Dss, const Standard_Integer nb2Dss, const Standard_Integer nb3Dss, const Handle(TColStd_HArray1OfReal)& tol1D, const Handle(TColStd_HArray1OfReal)& tol2D, const Handle(TColStd_HArray1OfReal)& tol3D, const Handle(TColStd_HArray2OfReal)& tof1D, const Handle(TColStd_HArray2OfReal)& tof2D, const Handle(TColStd_HArray2OfReal)& tof3D); + + Standard_EXPORT Standard_Integer TotalDimension() const; + + Standard_EXPORT Standard_Integer TotalNumberSSP() const; + + Standard_EXPORT Standard_Integer FavorIso() const; + + Standard_EXPORT Standard_Integer UOrder() const; + + Standard_EXPORT Standard_Integer VOrder() const; + + Standard_EXPORT Standard_Integer ULimit() const; + + Standard_EXPORT Standard_Integer VLimit() const; + + Standard_EXPORT Standard_Integer UJacDeg() const; + + Standard_EXPORT Standard_Integer VJacDeg() const; + + Standard_EXPORT Handle(TColStd_HArray1OfReal) UJacMax() const; + + Standard_EXPORT Handle(TColStd_HArray1OfReal) VJacMax() const; + + Standard_EXPORT Handle(TColStd_HArray1OfReal) URoots() const; + + Standard_EXPORT Handle(TColStd_HArray1OfReal) VRoots() const; + + Standard_EXPORT Handle(TColStd_HArray1OfReal) UGauss() const; + + Standard_EXPORT Handle(TColStd_HArray1OfReal) VGauss() const; + + Standard_EXPORT Handle(TColStd_HArray1OfReal) IToler() const; + + Standard_EXPORT Handle(TColStd_HArray2OfReal) FToler() const; + + Standard_EXPORT Handle(TColStd_HArray2OfReal) CToler() const; + + + + +protected: + + + + + +private: + + + + Standard_Integer myFav; + Standard_Integer myOrdU; + Standard_Integer myOrdV; + Standard_Integer myLimU; + Standard_Integer myLimV; + Standard_Integer myNb1DSS; + Standard_Integer myNb2DSS; + Standard_Integer myNb3DSS; + Standard_Integer myNbURoot; + Standard_Integer myNbVRoot; + Standard_Integer myJDegU; + Standard_Integer myJDegV; + Handle(TColStd_HArray1OfReal) myJMaxU; + Handle(TColStd_HArray1OfReal) myJMaxV; + Handle(TColStd_HArray1OfReal) myURoots; + Handle(TColStd_HArray1OfReal) myVRoots; + Handle(TColStd_HArray1OfReal) myUGauss; + Handle(TColStd_HArray1OfReal) myVGauss; + Handle(TColStd_HArray1OfReal) myInternalTol; + Handle(TColStd_HArray2OfReal) myFrontierTol; + Handle(TColStd_HArray2OfReal) myCuttingTol; + + +}; + + + + + + + +#endif // _AdvApp2Var_Context_HeaderFile diff --git a/src/AdvApp2Var/AdvApp2Var_Criterion.cdl b/src/AdvApp2Var/AdvApp2Var_Criterion.cdl deleted file mode 100644 index df404528b1..0000000000 --- a/src/AdvApp2Var/AdvApp2Var_Criterion.cdl +++ /dev/null @@ -1,48 +0,0 @@ --- Created on: 1997-01-15 --- 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. - -deferred class Criterion from AdvApp2Var - ---Purpose: - -- this class contains a given criterion to be satisfied - -uses - Patch,Context from AdvApp2Var, - CriterionType,CriterionRepartition from AdvApp2Var - -is - - Delete(me:out) is virtual; - ---C++: alias "Standard_EXPORT virtual ~AdvApp2Var_Criterion(){Delete() ; }" - - Value(me; P : in out Patch; C : Context ) - is deferred; - - IsSatisfied(me; P : Patch ) returns Boolean - is deferred; - - MaxValue(me) returns Real; - - Type(me) returns CriterionType; - - Repartition(me) returns CriterionRepartition; - - -fields - myMaxValue : Real is protected; - myType : CriterionType is protected; - myRepartition : CriterionRepartition is protected; - -end Criterion; diff --git a/src/AdvApp2Var/AdvApp2Var_Criterion.cxx b/src/AdvApp2Var/AdvApp2Var_Criterion.cxx index bab715d07d..a4ed4b2fff 100644 --- a/src/AdvApp2Var/AdvApp2Var_Criterion.cxx +++ b/src/AdvApp2Var/AdvApp2Var_Criterion.cxx @@ -14,8 +14,10 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include void AdvApp2Var_Criterion::Delete() {} diff --git a/src/AdvApp2Var/AdvApp2Var_Criterion.hxx b/src/AdvApp2Var/AdvApp2Var_Criterion.hxx new file mode 100644 index 0000000000..12c8a2ead2 --- /dev/null +++ b/src/AdvApp2Var/AdvApp2Var_Criterion.hxx @@ -0,0 +1,80 @@ +// Created on: 1997-01-15 +// 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 _AdvApp2Var_Criterion_HeaderFile +#define _AdvApp2Var_Criterion_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class AdvApp2Var_Patch; +class AdvApp2Var_Context; + + + +//! this class contains a given criterion to be satisfied +class AdvApp2Var_Criterion +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT virtual void Delete(); +Standard_EXPORT virtual ~AdvApp2Var_Criterion(){Delete() ; } + + Standard_EXPORT virtual void Value (AdvApp2Var_Patch& P, const AdvApp2Var_Context& C) const = 0; + + Standard_EXPORT virtual Standard_Boolean IsSatisfied (const AdvApp2Var_Patch& P) const = 0; + + Standard_EXPORT Standard_Real MaxValue() const; + + Standard_EXPORT AdvApp2Var_CriterionType Type() const; + + Standard_EXPORT AdvApp2Var_CriterionRepartition Repartition() const; + + + + +protected: + + + + Standard_Real myMaxValue; + AdvApp2Var_CriterionType myType; + AdvApp2Var_CriterionRepartition myRepartition; + + +private: + + + + + +}; + + + + + + + +#endif // _AdvApp2Var_Criterion_HeaderFile diff --git a/src/AdvApp2Var/AdvApp2Var_CriterionRepartition.hxx b/src/AdvApp2Var/AdvApp2Var_CriterionRepartition.hxx new file mode 100644 index 0000000000..8474b962a4 --- /dev/null +++ b/src/AdvApp2Var/AdvApp2Var_CriterionRepartition.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_CriterionRepartition_HeaderFile +#define _AdvApp2Var_CriterionRepartition_HeaderFile + +//! way of cutting process//! all new cutting points at each step of cutting +//! process : (a+i(b-a)/N)i at step N, +//! (a+i(b-a)/(N+1))i at step N+1,... +//! where (a,b) is the global interval//! add one new cutting point at each step +//! of cutting process +enum AdvApp2Var_CriterionRepartition +{ +AdvApp2Var_Regular, +AdvApp2Var_Incremental +}; + +#endif // _AdvApp2Var_CriterionRepartition_HeaderFile diff --git a/src/AdvApp2Var/AdvApp2Var_CriterionType.hxx b/src/AdvApp2Var/AdvApp2Var_CriterionType.hxx new file mode 100644 index 0000000000..a562e876b4 --- /dev/null +++ b/src/AdvApp2Var/AdvApp2Var_CriterionType.hxx @@ -0,0 +1,29 @@ +// 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 + +//! influency of the criterion on cutting process//! cutting when criterion is not satisfied +//! desactivation 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/src/AdvApp2Var/AdvApp2Var_Framework.cdl b/src/AdvApp2Var/AdvApp2Var_Framework.cdl deleted file mode 100644 index 962fb74471..0000000000 --- a/src/AdvApp2Var/AdvApp2Var_Framework.cdl +++ /dev/null @@ -1,99 +0,0 @@ --- Created on: 1996-04-10 --- 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. - --- Modified: Mon Dec 9 10:30:56 1996 --- by: Joelle CHAUVET --- G1135 : Empty constructor - -class Framework from AdvApp2Var - -uses - - Boolean,Real,NoSuchObject from Standard, - HArray1OfReal from TColStd, - IsoType from GeomAbs, - SequenceOfNode,SequenceOfStrip,Iso,Node from AdvApp2Var - -raises NoSuchObject from Standard - -is - - Create returns Framework; - Create(Frame : SequenceOfNode; - UFrontier, VFrontier : SequenceOfStrip) - returns Framework; - - FirstNotApprox(me; IndexIso,IndexStrip : out Integer; - anIso : out Iso) - ---Purpose: search the Index of the first Iso not approximated, - -- if all Isos are approximated Standard_False is returned. - returns Boolean; - - FirstNode(me; Type : IsoType; IndexIso,IndexStrip : Integer) - returns Integer; - - LastNode(me; Type : IsoType; IndexIso,IndexStrip : Integer) returns Integer; - - ChangeIso(me: in out; IndexIso,IndexStrip : Integer; anIso : Iso); - - Node(me; IndexNode : Integer) - ---C++: return const& - ---C++: inline - returns Node - raises NoSuchObject from Standard; - - Node(me; U,V : Real) - ---C++: return const& - returns Node - raises NoSuchObject from Standard; - - IsoU(me; U,V0,V1 : Real) - ---C++: return const& - returns Iso - raises NoSuchObject from Standard; - - IsoV(me; U0,U1,V : Real) - ---C++: return const& - returns Iso - raises NoSuchObject from Standard; - - ChangeNode(me: in out; IndexNode : Integer) - ---C++: return & - ---C++: inline - returns Node; - - - UpdateInU(me: in out; CuttingValue : Real); - - UpdateInV(me: in out; CuttingValue : Real); - - UEquation(me; IndexIso,IndexStrip : Integer) - ---C++: return const & - returns HArray1OfReal; - - VEquation(me; IndexIso,IndexStrip : Integer) - ---C++: return const & - returns HArray1OfReal; - - -fields - - myNodeConstraints : SequenceOfNode; - myUConstraints : SequenceOfStrip; - myVConstraints : SequenceOfStrip; - -end Framework; - diff --git a/src/AdvApp2Var/AdvApp2Var_Framework.hxx b/src/AdvApp2Var/AdvApp2Var_Framework.hxx new file mode 100644 index 0000000000..2bcf69aaf2 --- /dev/null +++ b/src/AdvApp2Var/AdvApp2Var_Framework.hxx @@ -0,0 +1,103 @@ +// Created on: 1996-04-10 +// 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_Framework_HeaderFile +#define _AdvApp2Var_Framework_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Standard_NoSuchObject; +class AdvApp2Var_Iso; +class AdvApp2Var_Node; + + + +class AdvApp2Var_Framework +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AdvApp2Var_Framework(); + + Standard_EXPORT AdvApp2Var_Framework(const AdvApp2Var_SequenceOfNode& Frame, const AdvApp2Var_SequenceOfStrip& UFrontier, const AdvApp2Var_SequenceOfStrip& VFrontier); + + //! search the Index of the first Iso not approximated, + //! if all Isos are approximated Standard_False is returned. + Standard_EXPORT Standard_Boolean FirstNotApprox (Standard_Integer& IndexIso, Standard_Integer& IndexStrip, AdvApp2Var_Iso& anIso) const; + + Standard_EXPORT Standard_Integer FirstNode (const GeomAbs_IsoType Type, const Standard_Integer IndexIso, const Standard_Integer IndexStrip) const; + + Standard_EXPORT Standard_Integer LastNode (const GeomAbs_IsoType Type, const Standard_Integer IndexIso, const Standard_Integer IndexStrip) const; + + Standard_EXPORT void ChangeIso (const Standard_Integer IndexIso, const Standard_Integer IndexStrip, const AdvApp2Var_Iso& anIso); + + const AdvApp2Var_Node& Node (const Standard_Integer IndexNode) const; + + Standard_EXPORT const AdvApp2Var_Node& Node (const Standard_Real U, const Standard_Real V) const; + + Standard_EXPORT const AdvApp2Var_Iso& IsoU (const Standard_Real U, const Standard_Real V0, const Standard_Real V1) const; + + Standard_EXPORT const AdvApp2Var_Iso& IsoV (const Standard_Real U0, const Standard_Real U1, const Standard_Real V) const; + + AdvApp2Var_Node& ChangeNode (const Standard_Integer IndexNode); + + Standard_EXPORT void UpdateInU (const Standard_Real CuttingValue); + + Standard_EXPORT void UpdateInV (const Standard_Real CuttingValue); + + Standard_EXPORT const Handle(TColStd_HArray1OfReal)& UEquation (const Standard_Integer IndexIso, const Standard_Integer IndexStrip) const; + + Standard_EXPORT const Handle(TColStd_HArray1OfReal)& VEquation (const Standard_Integer IndexIso, const Standard_Integer IndexStrip) const; + + + + +protected: + + + + + +private: + + + + AdvApp2Var_SequenceOfNode myNodeConstraints; + AdvApp2Var_SequenceOfStrip myUConstraints; + AdvApp2Var_SequenceOfStrip myVConstraints; + + +}; + + +#include + + + + + +#endif // _AdvApp2Var_Framework_HeaderFile diff --git a/src/AdvApp2Var/AdvApp2Var_Iso.cdl b/src/AdvApp2Var/AdvApp2Var_Iso.cdl deleted file mode 100644 index b720a302e9..0000000000 --- a/src/AdvApp2Var/AdvApp2Var_Iso.cdl +++ /dev/null @@ -1,92 +0,0 @@ --- Created on: 1996-04-09 --- 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. - -class Iso from AdvApp2Var - ---Purpose : - -- used to store constraints on a line U = Ui or V = Vj - -- - -uses - - Boolean,Integer,Real from Standard, - HArray1OfReal from TColStd, - HArray2OfReal from TColStd, - HArray1OfPnt from TColgp, - IsoType from GeomAbs, - EvaluatorFunc2Var,Context,Node from AdvApp2Var - - -is - - Create returns Iso; - Create(type : IsoType from GeomAbs; iu, iv : Integer) returns Iso; - Create(type : IsoType from GeomAbs; cte : Real; - Ufirst, Ulast, Vfirst, Vlast : Real; - pos, iu, iv : Integer) returns Iso; - Create(Other : Iso) returns Iso is private; - IsApproximated(me) returns Boolean; - HasResult(me) returns Boolean; - MakeApprox(me: in out; Conditions : Context; - a,b,c,d : Real; - func : EvaluatorFunc2Var; - NodeBegin, NodeEnd : in out Node from AdvApp2Var ); - ChangeDomain(me: in out; a,b : Real); - ChangeDomain(me: in out; a,b,c,d : Real); - SetConstante(me: in out; newcte : Real); - SetPosition(me: in out; newpos : Integer); - ResetApprox(me: in out); - OverwriteApprox(me: in out); - Type(me) returns IsoType; - Constante(me) returns Real; - T0(me) returns Real; - T1(me) returns Real; - U0(me) returns Real; - U1(me) returns Real; - V0(me) returns Real; - V1(me) returns Real; - UOrder(me) returns Integer; - VOrder(me) returns Integer; - Position(me) returns Integer; - NbCoeff(me) returns Integer; - Polynom(me) - ---C++: return const & - returns HArray1OfReal; - SomTab(me) returns HArray1OfReal; - DifTab(me) returns HArray1OfReal; - MaxErrors(me) returns HArray2OfReal; - MoyErrors(me) returns HArray2OfReal; - - -fields - - myType : IsoType from GeomAbs; - myConstPar : Real; - myU0, myU1 : Real; - myV0, myV1 : Real; - myPosition : Integer; - myExtremOrder : Integer; - myDerivOrder : Integer; - myNbCoeff : Integer; - myApprIsDone : Boolean; - myHasResult : Boolean; - myEquation : HArray1OfReal; - myMaxErrors : HArray2OfReal; - myMoyErrors : HArray2OfReal; - mySomTab : HArray1OfReal; - myDifTab : HArray1OfReal; - -end Iso; - diff --git a/src/AdvApp2Var/AdvApp2Var_Iso.cxx b/src/AdvApp2Var/AdvApp2Var_Iso.cxx index f675371ad3..1f2c6a0cd7 100644 --- a/src/AdvApp2Var/AdvApp2Var_Iso.cxx +++ b/src/AdvApp2Var/AdvApp2Var_Iso.cxx @@ -14,20 +14,20 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include #include -#include #include -#include -#include - - +#include //======================================================================= //function : AdvApp2Var_Iso //purpose : //======================================================================= - AdvApp2Var_Iso::AdvApp2Var_Iso() : myType(GeomAbs_IsoU), myConstPar(0.5), diff --git a/src/AdvApp2Var/AdvApp2Var_Iso.hxx b/src/AdvApp2Var/AdvApp2Var_Iso.hxx new file mode 100644 index 0000000000..67d601ede7 --- /dev/null +++ b/src/AdvApp2Var/AdvApp2Var_Iso.hxx @@ -0,0 +1,144 @@ +// Created on: 1996-04-09 +// 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_Iso_HeaderFile +#define _AdvApp2Var_Iso_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class AdvApp2Var_Context; +class AdvApp2Var_Node; + + + +//! used to store constraints on a line U = Ui or V = Vj +class AdvApp2Var_Iso +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AdvApp2Var_Iso(); + + Standard_EXPORT AdvApp2Var_Iso(const GeomAbs_IsoType type, const Standard_Integer iu, const Standard_Integer iv); + + Standard_EXPORT AdvApp2Var_Iso(const GeomAbs_IsoType type, const Standard_Real cte, const Standard_Real Ufirst, const Standard_Real Ulast, const Standard_Real Vfirst, const Standard_Real Vlast, const Standard_Integer pos, const Standard_Integer iu, const Standard_Integer iv); + + Standard_EXPORT Standard_Boolean IsApproximated() const; + + Standard_EXPORT Standard_Boolean HasResult() const; + + Standard_EXPORT void MakeApprox (const AdvApp2Var_Context& Conditions, const Standard_Real a, const Standard_Real b, const Standard_Real c, const Standard_Real d, const AdvApp2Var_EvaluatorFunc2Var& func, AdvApp2Var_Node& NodeBegin, AdvApp2Var_Node& NodeEnd); + + Standard_EXPORT void ChangeDomain (const Standard_Real a, const Standard_Real b); + + Standard_EXPORT void ChangeDomain (const Standard_Real a, const Standard_Real b, const Standard_Real c, const Standard_Real d); + + Standard_EXPORT void SetConstante (const Standard_Real newcte); + + Standard_EXPORT void SetPosition (const Standard_Integer newpos); + + Standard_EXPORT void ResetApprox(); + + Standard_EXPORT void OverwriteApprox(); + + Standard_EXPORT GeomAbs_IsoType Type() const; + + Standard_EXPORT Standard_Real Constante() const; + + Standard_EXPORT Standard_Real T0() const; + + Standard_EXPORT Standard_Real T1() const; + + Standard_EXPORT Standard_Real U0() const; + + Standard_EXPORT Standard_Real U1() const; + + Standard_EXPORT Standard_Real V0() const; + + Standard_EXPORT Standard_Real V1() const; + + Standard_EXPORT Standard_Integer UOrder() const; + + Standard_EXPORT Standard_Integer VOrder() const; + + Standard_EXPORT Standard_Integer Position() const; + + Standard_EXPORT Standard_Integer NbCoeff() const; + + Standard_EXPORT const Handle(TColStd_HArray1OfReal)& Polynom() const; + + Standard_EXPORT Handle(TColStd_HArray1OfReal) SomTab() const; + + Standard_EXPORT Handle(TColStd_HArray1OfReal) DifTab() const; + + Standard_EXPORT Handle(TColStd_HArray2OfReal) MaxErrors() const; + + Standard_EXPORT Handle(TColStd_HArray2OfReal) MoyErrors() const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT AdvApp2Var_Iso(const AdvApp2Var_Iso& Other); + + + GeomAbs_IsoType myType; + Standard_Real myConstPar; + Standard_Real myU0; + Standard_Real myU1; + Standard_Real myV0; + Standard_Real myV1; + Standard_Integer myPosition; + Standard_Integer myExtremOrder; + Standard_Integer myDerivOrder; + Standard_Integer myNbCoeff; + Standard_Boolean myApprIsDone; + Standard_Boolean myHasResult; + Handle(TColStd_HArray1OfReal) myEquation; + Handle(TColStd_HArray2OfReal) myMaxErrors; + Handle(TColStd_HArray2OfReal) myMoyErrors; + Handle(TColStd_HArray1OfReal) mySomTab; + Handle(TColStd_HArray1OfReal) myDifTab; + + +}; + + + + + + + +#endif // _AdvApp2Var_Iso_HeaderFile diff --git a/src/AdvApp2Var/AdvApp2Var_Network.cdl b/src/AdvApp2Var/AdvApp2Var_Network.cdl deleted file mode 100644 index ab71d9a0d2..0000000000 --- a/src/AdvApp2Var/AdvApp2Var_Network.cdl +++ /dev/null @@ -1,67 +0,0 @@ --- Created on: 1996-04-10 --- 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. - --- Modified: Mon Dec 9 10:30:56 1996 --- by: Joelle CHAUVET --- G1135 : Empty constructor - - -class Network from AdvApp2Var - -uses - - Boolean,Integer,Real from Standard, - SequenceOfReal,HArray1OfReal from TColStd, - IsoType from GeomAbs, - Patch, SequenceOfPatch, Framework from AdvApp2Var - -raises NoSuchObject from Standard - -is - Create returns Network; - Create(Net : SequenceOfPatch; TheU,TheV : SequenceOfReal) returns Network; - FirstNotApprox(me; Index : out Integer) - ---Purpose: search the Index of the first Patch not approximated, - -- if all Patches are approximated Standard_False is returned - returns Boolean; - ChangePatch(me: in out; Index : Integer) - ---C++: alias operator() - ---C++: return & - ---C++: inline - returns Patch; - UpdateInU(me: in out; CuttingValue : Real); - UpdateInV(me: in out; CuttingValue : Real); - SameDegree(me : in out; iu, iv : Integer; ncfu, ncfv : out Integer); - NbPatch(me) returns Integer; - NbPatchInU(me) returns Integer; - NbPatchInV(me) returns Integer; - UParameter(me; Index : Integer) returns Real; - VParameter(me; Index : Integer) returns Real; - Patch(me; UIndex, VIndex : Integer) - ---C++: alias operator() - ---C++: return const & - ---C++: inline - returns Patch; - - -fields - - myNet : SequenceOfPatch; - myUParameters : SequenceOfReal; - myVParameters : SequenceOfReal; - -end Network; - diff --git a/src/AdvApp2Var/AdvApp2Var_Network.cxx b/src/AdvApp2Var/AdvApp2Var_Network.cxx index 6d73acb941..f90ec77365 100644 --- a/src/AdvApp2Var/AdvApp2Var_Network.cxx +++ b/src/AdvApp2Var/AdvApp2Var_Network.cxx @@ -18,17 +18,16 @@ // by: Joelle CHAUVET // G1135 : empty constructor - -#include +#include #include #include +#include #include //========================================================================================== //function : AdvApp2Var_Network //purpose : //========================================================================================== - AdvApp2Var_Network::AdvApp2Var_Network() { } diff --git a/src/AdvApp2Var/AdvApp2Var_Network.hxx b/src/AdvApp2Var/AdvApp2Var_Network.hxx new file mode 100644 index 0000000000..b651da24c7 --- /dev/null +++ b/src/AdvApp2Var/AdvApp2Var_Network.hxx @@ -0,0 +1,104 @@ +// Created on: 1996-04-10 +// 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_Network_HeaderFile +#define _AdvApp2Var_Network_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class Standard_NoSuchObject; +class AdvApp2Var_Patch; + + + +class AdvApp2Var_Network +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AdvApp2Var_Network(); + + Standard_EXPORT AdvApp2Var_Network(const AdvApp2Var_SequenceOfPatch& Net, const TColStd_SequenceOfReal& TheU, const TColStd_SequenceOfReal& TheV); + + //! search the Index of the first Patch not approximated, + //! if all Patches are approximated Standard_False is returned + Standard_EXPORT Standard_Boolean FirstNotApprox (Standard_Integer& Index) const; + + AdvApp2Var_Patch& ChangePatch (const Standard_Integer Index); + AdvApp2Var_Patch& operator() (const Standard_Integer Index) +{ + return ChangePatch(Index); +} + + Standard_EXPORT void UpdateInU (const Standard_Real CuttingValue); + + Standard_EXPORT void UpdateInV (const Standard_Real CuttingValue); + + Standard_EXPORT void SameDegree (const Standard_Integer iu, const Standard_Integer iv, Standard_Integer& ncfu, Standard_Integer& ncfv); + + Standard_EXPORT Standard_Integer NbPatch() const; + + Standard_EXPORT Standard_Integer NbPatchInU() const; + + Standard_EXPORT Standard_Integer NbPatchInV() const; + + Standard_EXPORT Standard_Real UParameter (const Standard_Integer Index) const; + + Standard_EXPORT Standard_Real VParameter (const Standard_Integer Index) const; + + const AdvApp2Var_Patch& Patch (const Standard_Integer UIndex, const Standard_Integer VIndex) const; + const AdvApp2Var_Patch& operator() (const Standard_Integer UIndex, const Standard_Integer VIndex) const +{ + return Patch(UIndex,VIndex); +} + + + + +protected: + + + + + +private: + + + + AdvApp2Var_SequenceOfPatch myNet; + TColStd_SequenceOfReal myUParameters; + TColStd_SequenceOfReal myVParameters; + + +}; + + +#include + + + + + +#endif // _AdvApp2Var_Network_HeaderFile diff --git a/src/AdvApp2Var/AdvApp2Var_Node.cdl b/src/AdvApp2Var/AdvApp2Var_Node.cdl deleted file mode 100644 index 2852348e53..0000000000 --- a/src/AdvApp2Var/AdvApp2Var_Node.cdl +++ /dev/null @@ -1,57 +0,0 @@ --- Created on: 1996-04-09 --- 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. - -class Node from AdvApp2Var - ---Purpose : - -- used to store constraints on a (Ui,Vj) point - -- - -uses - XY,Pnt from gp, - HArray2OfPnt from TColgp, - HArray2OfReal from TColStd - - -is - Create returns Node; - Create(iu,iv : Integer) returns Node; - Create(UV : XY from gp; iu,iv : Integer) returns Node; - Create(Other : Node) returns Node is private; - Coord(me) returns XY from gp; - SetCoord(me : in out; x1,x2 : Real); - UOrder(me) returns Integer; - VOrder(me) returns Integer; - SetPoint(me : in out; iu,iv : Integer; Cte : Pnt from gp); - Point(me; iu,iv : Integer) returns Pnt from gp; - SetError(me : in out; iu,iv : Integer; error : Real); - Error(me; iu,iv : Integer) returns Real; - - -fields - - myCoord : XY from gp; - myOrdInU, myOrdInV : Integer; - myTruePoints : HArray2OfPnt from TColgp; - myErrors : HArray2OfReal from TColStd; - -end Node; - - - - - - - diff --git a/src/AdvApp2Var/AdvApp2Var_Node.cxx b/src/AdvApp2Var/AdvApp2Var_Node.cxx index 75b91e7b75..cc15392c30 100644 --- a/src/AdvApp2Var/AdvApp2Var_Node.cxx +++ b/src/AdvApp2Var/AdvApp2Var_Node.cxx @@ -14,16 +14,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include #include #include - //======================================================================= //function : AdvApp2Var_Node //purpose : //======================================================================= - AdvApp2Var_Node::AdvApp2Var_Node() : myOrdInU(2), myOrdInV(2) diff --git a/src/AdvApp2Var/AdvApp2Var_Node.hxx b/src/AdvApp2Var/AdvApp2Var_Node.hxx new file mode 100644 index 0000000000..8b2fde5906 --- /dev/null +++ b/src/AdvApp2Var/AdvApp2Var_Node.hxx @@ -0,0 +1,94 @@ +// Created on: 1996-04-09 +// 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_Node_HeaderFile +#define _AdvApp2Var_Node_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class gp_XY; +class gp_Pnt; + + + +//! used to store constraints on a (Ui,Vj) point +class AdvApp2Var_Node +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AdvApp2Var_Node(); + + Standard_EXPORT AdvApp2Var_Node(const Standard_Integer iu, const Standard_Integer iv); + + Standard_EXPORT AdvApp2Var_Node(const gp_XY& UV, const Standard_Integer iu, const Standard_Integer iv); + + Standard_EXPORT gp_XY Coord() const; + + Standard_EXPORT void SetCoord (const Standard_Real x1, const Standard_Real x2); + + Standard_EXPORT Standard_Integer UOrder() const; + + Standard_EXPORT Standard_Integer VOrder() const; + + Standard_EXPORT void SetPoint (const Standard_Integer iu, const Standard_Integer iv, const gp_Pnt& Cte); + + Standard_EXPORT gp_Pnt Point (const Standard_Integer iu, const Standard_Integer iv) const; + + Standard_EXPORT void SetError (const Standard_Integer iu, const Standard_Integer iv, const Standard_Real error); + + Standard_EXPORT Standard_Real Error (const Standard_Integer iu, const Standard_Integer iv) const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT AdvApp2Var_Node(const AdvApp2Var_Node& Other); + + + gp_XY myCoord; + Standard_Integer myOrdInU; + Standard_Integer myOrdInV; + Handle(TColgp_HArray2OfPnt) myTruePoints; + Handle(TColStd_HArray2OfReal) myErrors; + + +}; + + + + + + + +#endif // _AdvApp2Var_Node_HeaderFile diff --git a/src/AdvApp2Var/AdvApp2Var_Patch.cdl b/src/AdvApp2Var/AdvApp2Var_Patch.cdl deleted file mode 100644 index f2ec01e41b..0000000000 --- a/src/AdvApp2Var/AdvApp2Var_Patch.cdl +++ /dev/null @@ -1,112 +0,0 @@ --- Created on: 1996-04-10 --- 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. - --- Modified: Wed Jan 15 09:45:42 1997 --- by: Joelle CHAUVET --- G1135 : Methods CutSense with criterion, Coefficients, --- CritValue, SetCritValue, --- Field 'myCritValue' - -class Patch from AdvApp2Var - ---Purpose : - -- used to store results on a domain [Ui,Ui+1]x[Vj,Vj+1] - -- - -uses - - Boolean,Integer,Real from Standard, - HArray1OfReal,HArray2OfReal from TColStd, - HArray2OfPnt from TColgp, - EvaluatorFunc2Var,Context,Framework,Criterion from AdvApp2Var - -is - - Create returns Patch; - Create(U0,U1,V0,V1 : Real; iu,iv : Integer) returns Patch; - Create(P : Patch) returns Patch is private; - IsDiscretised(me) returns Boolean; - Discretise(me: in out; Conditions : Context; - Constraints: Framework; - func : EvaluatorFunc2Var); - IsApproximated(me) returns Boolean; - HasResult(me) returns Boolean; - MakeApprox(me: in out; Conditions : Context; - Constraints: Framework; - NumDec : Integer); - AddConstraints(me: in out; Conditions : Context; - Constraints: Framework); - AddErrors(me: in out; Constraints: Framework); - ChangeDomain(me: in out; a,b,c,d : Real); - ResetApprox(me: in out); - OverwriteApprox(me: in out); - U0(me) returns Real; - U1(me) returns Real; - V0(me) returns Real; - V1(me) returns Real; - UOrder(me) returns Integer; - VOrder(me) returns Integer; - CutSense(me) returns Integer; - CutSense(me; Crit : Criterion; NumDec : Integer) returns Integer; - NbCoeffInU(me) returns Integer; - NbCoeffInV(me) returns Integer; - ChangeNbCoeff(me: in out; NbCoeffU, NbCoeffV : Integer); - Poles(me; SSPIndex : Integer; Conditions : Context) returns HArray2OfPnt; - Coefficients(me; SSPIndex : Integer; Conditions : Context) returns HArray1OfReal; - MaxErrors(me) returns HArray1OfReal; - AverageErrors(me) returns HArray1OfReal; - IsoErrors(me) returns HArray2OfReal; - CritValue(me) returns Real; - SetCritValue(me: in out; dist : Real); - -fields - - myU0, myU1 : Real; - myV0, myV1 : Real; - myOrdInU : Integer; - myOrdInV : Integer; - myNbCoeffInU : Integer; - myNbCoeffInV : Integer; - myApprIsDone : Boolean; - myHasResult : Boolean; - myEquation : HArray1OfReal; - myMaxErrors : HArray1OfReal; - myMoyErrors : HArray1OfReal; - myIsoErrors : HArray2OfReal; - myCutSense : Integer; - myDiscIsDone : Boolean; - mySosoTab : HArray1OfReal; - myDisoTab : HArray1OfReal; - mySodiTab : HArray1OfReal; - myDidiTab : HArray1OfReal; - myCritValue : Real; - -end Patch; - - - - - - - - - - - - - - - - diff --git a/src/AdvApp2Var/AdvApp2Var_Patch.cxx b/src/AdvApp2Var/AdvApp2Var_Patch.cxx index f74c7dcdb2..7e9030fa99 100644 --- a/src/AdvApp2Var/AdvApp2Var_Patch.cxx +++ b/src/AdvApp2Var/AdvApp2Var_Patch.cxx @@ -22,28 +22,28 @@ // by: Joelle CHAUVET / Jean-Marc LACHAUME // Initialisation de myCritValue pour OSF -#include -#include +#include +#include +#include +#include #include +#include +#include +#include +#include #include -#include +#include #include +#include +#include #include #include #include -#include -#include -#include - -#include -#include - //============================================================================ //function : AdvApp2Var_Patch //purpose : //============================================================================ - AdvApp2Var_Patch::AdvApp2Var_Patch() : myU0(0.), myU1(1.), diff --git a/src/AdvApp2Var/AdvApp2Var_Patch.hxx b/src/AdvApp2Var/AdvApp2Var_Patch.hxx new file mode 100644 index 0000000000..dcff09b793 --- /dev/null +++ b/src/AdvApp2Var/AdvApp2Var_Patch.hxx @@ -0,0 +1,151 @@ +// Created on: 1996-04-10 +// 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_Patch_HeaderFile +#define _AdvApp2Var_Patch_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class AdvApp2Var_Context; +class AdvApp2Var_Framework; +class AdvApp2Var_Criterion; + + + +//! used to store results on a domain [Ui,Ui+1]x[Vj,Vj+1] +class AdvApp2Var_Patch +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AdvApp2Var_Patch(); + + Standard_EXPORT AdvApp2Var_Patch(const Standard_Real U0, const Standard_Real U1, const Standard_Real V0, const Standard_Real V1, const Standard_Integer iu, const Standard_Integer iv); + + Standard_EXPORT Standard_Boolean IsDiscretised() const; + + Standard_EXPORT void Discretise (const AdvApp2Var_Context& Conditions, const AdvApp2Var_Framework& Constraints, const AdvApp2Var_EvaluatorFunc2Var& func); + + Standard_EXPORT Standard_Boolean IsApproximated() const; + + Standard_EXPORT Standard_Boolean HasResult() const; + + Standard_EXPORT void MakeApprox (const AdvApp2Var_Context& Conditions, const AdvApp2Var_Framework& Constraints, const Standard_Integer NumDec); + + Standard_EXPORT void AddConstraints (const AdvApp2Var_Context& Conditions, const AdvApp2Var_Framework& Constraints); + + Standard_EXPORT void AddErrors (const AdvApp2Var_Framework& Constraints); + + Standard_EXPORT void ChangeDomain (const Standard_Real a, const Standard_Real b, const Standard_Real c, const Standard_Real d); + + Standard_EXPORT void ResetApprox(); + + Standard_EXPORT void OverwriteApprox(); + + Standard_EXPORT Standard_Real U0() const; + + Standard_EXPORT Standard_Real U1() const; + + Standard_EXPORT Standard_Real V0() const; + + Standard_EXPORT Standard_Real V1() const; + + Standard_EXPORT Standard_Integer UOrder() const; + + Standard_EXPORT Standard_Integer VOrder() const; + + Standard_EXPORT Standard_Integer CutSense() const; + + Standard_EXPORT Standard_Integer CutSense (const AdvApp2Var_Criterion& Crit, const Standard_Integer NumDec) const; + + Standard_EXPORT Standard_Integer NbCoeffInU() const; + + Standard_EXPORT Standard_Integer NbCoeffInV() const; + + Standard_EXPORT void ChangeNbCoeff (const Standard_Integer NbCoeffU, const Standard_Integer NbCoeffV); + + Standard_EXPORT Handle(TColgp_HArray2OfPnt) Poles (const Standard_Integer SSPIndex, const AdvApp2Var_Context& Conditions) const; + + Standard_EXPORT Handle(TColStd_HArray1OfReal) Coefficients (const Standard_Integer SSPIndex, const AdvApp2Var_Context& Conditions) const; + + Standard_EXPORT Handle(TColStd_HArray1OfReal) MaxErrors() const; + + Standard_EXPORT Handle(TColStd_HArray1OfReal) AverageErrors() const; + + Standard_EXPORT Handle(TColStd_HArray2OfReal) IsoErrors() const; + + Standard_EXPORT Standard_Real CritValue() const; + + Standard_EXPORT void SetCritValue (const Standard_Real dist); + + + + +protected: + + + + + +private: + + + Standard_EXPORT AdvApp2Var_Patch(const AdvApp2Var_Patch& P); + + + Standard_Real myU0; + Standard_Real myU1; + Standard_Real myV0; + Standard_Real myV1; + Standard_Integer myOrdInU; + Standard_Integer myOrdInV; + Standard_Integer myNbCoeffInU; + Standard_Integer myNbCoeffInV; + Standard_Boolean myApprIsDone; + Standard_Boolean myHasResult; + Handle(TColStd_HArray1OfReal) myEquation; + Handle(TColStd_HArray1OfReal) myMaxErrors; + Handle(TColStd_HArray1OfReal) myMoyErrors; + Handle(TColStd_HArray2OfReal) myIsoErrors; + Standard_Integer myCutSense; + Standard_Boolean myDiscIsDone; + Handle(TColStd_HArray1OfReal) mySosoTab; + Handle(TColStd_HArray1OfReal) myDisoTab; + Handle(TColStd_HArray1OfReal) mySodiTab; + Handle(TColStd_HArray1OfReal) myDidiTab; + Standard_Real myCritValue; + + +}; + + + + + + + +#endif // _AdvApp2Var_Patch_HeaderFile diff --git a/src/AdvApp2Var/FILES b/src/AdvApp2Var/FILES index 6b21069b70..700d081356 100755 --- a/src/AdvApp2Var/FILES +++ b/src/AdvApp2Var/FILES @@ -1,3 +1,14 @@ +AdvApp2Var_ApproxAFunc2Var.cxx +AdvApp2Var_ApproxAFunc2Var.hxx +AdvApp2Var_ApproxAFunc2Var.lxx +AdvApp2Var_ApproxF2var.cxx +AdvApp2Var_ApproxF2var.hxx +AdvApp2Var_Context.cxx +AdvApp2Var_Context.hxx +AdvApp2Var_Criterion.cxx +AdvApp2Var_Criterion.hxx +AdvApp2Var_CriterionRepartition.hxx +AdvApp2Var_CriterionType.hxx AdvApp2Var_Data.hxx AdvApp2Var_Data_0.cxx AdvApp2Var_Data_1.cxx @@ -7,17 +18,27 @@ AdvApp2Var_Data_4.cxx AdvApp2Var_Data_5.cxx AdvApp2Var_Data_6.cxx AdvApp2Var_Data_7.cxx -AdvApp2Var_EvaluatorFunc2Var.hxx -AdvApp2Var_ApproxF2var.hxx -AdvApp2Var_ApproxF2var.cxx AdvApp2Var_Data_f2c.hxx -AdvApp2Var_MathBase.hxx +AdvApp2Var_EvaluatorFunc2Var.hxx +AdvApp2Var_Framework.cxx +AdvApp2Var_Framework.hxx +AdvApp2Var_Framework.lxx +AdvApp2Var_Iso.cxx +AdvApp2Var_Iso.hxx AdvApp2Var_MathBase.cxx +AdvApp2Var_MathBase.hxx AdvApp2Var_MathBase_mathinit.cxx -AdvApp2Var_SysBase.hxx -AdvApp2Var_SysBase.cxx -AdvApp2Var_SysBase_baseinit.cxx -AdvApp2Var_Strip.hxx +AdvApp2Var_Network.cxx +AdvApp2Var_Network.hxx +AdvApp2Var_Network.lxx +AdvApp2Var_Node.cxx +AdvApp2Var_Node.hxx +AdvApp2Var_Patch.cxx +AdvApp2Var_Patch.hxx AdvApp2Var_SequenceOfNode.hxx AdvApp2Var_SequenceOfPatch.hxx AdvApp2Var_SequenceOfStrip.hxx +AdvApp2Var_Strip.hxx +AdvApp2Var_SysBase.cxx +AdvApp2Var_SysBase.hxx +AdvApp2Var_SysBase_baseinit.cxx diff --git a/src/AdvApprox/AdvApprox.cdl b/src/AdvApprox/AdvApprox.cdl deleted file mode 100644 index 5cd4781735..0000000000 --- a/src/AdvApprox/AdvApprox.cdl +++ /dev/null @@ -1,51 +0,0 @@ --- 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. - -package AdvApprox - - ---Purpose: This package provides algorithms approximating a function - -- that can be multidimensional creating in the end a - -- BSpline function with the required continuity - -- - -uses gp, - math, - GeomAbs, - TColStd, - TColgp, - StdFail, - PLib - - -is - - - class ApproxAFunction from AdvApprox ; - class SimpleApprox; --- class ApproxAFunction; - - imported EvaluatorFunction ; - - deferred class Cutting; - - class DichoCutting; - - class PrefCutting; - - class PrefAndRec; - - -end AdvApprox; diff --git a/src/AdvApprox/AdvApprox_ApproxAFunction.cdl b/src/AdvApprox/AdvApprox_ApproxAFunction.cdl deleted file mode 100644 index db667f73c8..0000000000 --- a/src/AdvApprox/AdvApprox_ApproxAFunction.cdl +++ /dev/null @@ -1,277 +0,0 @@ --- 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. - -class ApproxAFunction from AdvApprox - ---Purpose: - -- this approximate a given function -uses Array1OfInteger from TColStd, - Vector from math, - HArray1OfInteger from TColStd, - Array1OfReal from TColStd, - Array1OfPnt2d from TColgp, - Array1OfPnt from TColgp, - HArray1OfReal from TColStd, - HArray1OfPnt2d from TColgp, - HArray1OfPnt from TColgp, - HArray2OfReal from TColStd, - HArray2OfPnt2d from TColgp, - HArray2OfPnt from TColgp, - Pnt from gp, - Pnt2d from gp, - Shape from GeomAbs, - EvaluatorFunction from AdvApprox, - Cutting from AdvApprox - -raises - - OutOfRange from Standard, - ConstructionError from Standard - -is - Create(Num1DSS : Integer ; - Num2DSS : Integer ; - Num3DSS : Integer ; - OneDTol : HArray1OfReal from TColStd ; - TwoDTol : HArray1OfReal from TColStd ; - ThreeDTol : HArray1OfReal from TColStd ; - First : Real ; - Last : Real ; - Continuity : Shape from GeomAbs ; - MaxDeg : Integer ; - MaxSeg : Integer ; - Func : EvaluatorFunction from AdvApprox) - - returns ApproxAFunction from AdvApprox - raises ConstructionError; - - ---Purpose: 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. - - - Create(Num1DSS : Integer ; - Num2DSS : Integer ; - Num3DSS : Integer ; - OneDTol : HArray1OfReal from TColStd ; - TwoDTol : HArray1OfReal from TColStd ; - ThreeDTol : HArray1OfReal from TColStd ; - First : Real ; - Last : Real ; - Continuity : Shape from GeomAbs ; - MaxDeg : Integer ; - MaxSeg : Integer ; - Func : EvaluatorFunction from AdvApprox; - CutTool : Cutting from AdvApprox) - - ---Purpose: Approximation with user methode of cutting - - returns ApproxAFunction from AdvApprox - raises ConstructionError; - - Perform(me:in out; - Num1DSS : Integer ; - Num2DSS : Integer ; - Num3DSS : Integer ; - CutTool : Cutting from AdvApprox) - is private; - - Approximation(myclass; - TotalDimension : Integer; - TotalNumSS : Integer; - LocalDimension : Array1OfInteger; - First : Real; - Last : Real; - Evaluator : in out EvaluatorFunction; - CutTool : Cutting from AdvApprox; - ContinuityOrder : Integer; - NumMaxCoeffs : Integer; - MaxSegments : Integer; - TolerancesArray : Array1OfReal; - code_precis : Integer; - NumCurves : in out Integer; - NumCoeffPerCurveArray : in out Array1OfInteger; - LocalCoefficientArray : in out Array1OfReal; - IntervalsArray : in out Array1OfReal; - ErrorMaxArray : in out Array1OfReal; - AverageErrorArray : in out Array1OfReal; - ErrorCode : in out Integer); - - - IsDone(me) returns Boolean - ---C++: inline - ; - -- True if the approximation succeeded within the imposed - -- tolerances - HasResult(me) returns Boolean - ---C++: inline - ; - -- True if the approximation did come out with a result that - -- is not NECESSARELY within the required tolerance - -- - Poles1d (me) - ---C++: inline - ---Purpose: returns the poles from the algorithms as is - returns HArray2OfReal from TColStd ; - - Poles2d (me) - ---Purpose: returns the poles from the algorithms as is - ---C++: inline - returns HArray2OfPnt2d from TColgp ; - - Poles (me) - ---Purpose: -- returns the poles from the algorithms as is - ---C++: inline - returns HArray2OfPnt from TColgp ; - - NbPoles(me) returns Integer - ---Purpose: as the name says - ; - - Poles1d (me; Index : Integer ; - P : in out Array1OfReal from TColStd) - ---Purpose: returns the poles at Index from the 1d subspace - raises OutOfRange ; - - - Poles2d (me; Index : Integer ; - P : in out Array1OfPnt2d from TColgp) - ---Purpose: returns the poles at Index from the 2d subspace - raises OutOfRange ; - - Poles (me; Index : Integer ; - P : in out Array1OfPnt from TColgp) - - ---Purpose: returns the poles at Index from the 3d subspace - raises OutOfRange ; - - Degree(me) returns Integer - ---C++: inline - ; - - NbKnots(me) returns Integer - ---C++: inline - ; - NumSubSpaces(me; Dimension : Integer) returns Integer - ---C++: inline - ; - Knots(me) - ---C++: inline - returns HArray1OfReal from TColStd ; - - Multiplicities(me) - ---C++: inline - returns HArray1OfInteger from TColStd ; - - MaxError (me; Dimension : Integer) - ---Purpose: returns the error as is in the algorithms - returns HArray1OfReal from TColStd ; - - AverageError(me; Dimension : Integer) - - ---Purpose: returns the error as is in the algorithms - returns HArray1OfReal from TColStd ; - - MaxError (me; Dimension : Integer ; - Index : Integer) returns Real - ; - - AverageError(me; Dimension : Integer; - Index : Integer) returns Real - ; - - - Dump(me; o: in out OStream); - ---Purpose: diplay information on approximation. - -fields - -- Input fields - -- - myNumSubSpaces : Integer[3] ; - -- Number of subspaces [0] = number of 1 dimensional subspaces - -- [1] = number of 2 dimensional subspaces - -- [2] = number of 3 dimensional subspaces - - my1DTolerances : HArray1OfReal from TColStd ; - my2DTolerances : HArray1OfReal from TColStd ; - my3DTolerances : HArray1OfReal from TColStd ; - - -- -- self explanatory : one tolerance per subspace - myFirst : Real ; - -- first parameter for the approximation - myLast : Real ; - -- last parameter for the approximation - myContinuity : Shape from GeomAbs ; - - -- continuity requested for the approximation - ---Warning: - -- The evaluator of the function to approximate - -- must provide the derivatives up to the requested - -- order otherwise this will NOT WORK - myMaxDegree : Integer ; - -- maximum degree for the approximation - ---Warning: - -- Because of the unstable evaluation after degree 14 - -- this is limited to 14 - myMaxSegments : Integer ; - -- maximum of segment allowed - -- Output fields - -- - myDone : Boolean ; - -- tells if the approximation succeeded within the requested - -- tolerance - myHasResult : Boolean ; - -- tells if the approximation returned a result although - -- it might not be within the requested tolerance. In - -- that case myDone will be false - -- - my1DPoles : HArray2OfReal from TColStd ; - -- 1D poles if myNumSubSpaces[0] > 0 - my2DPoles : HArray2OfPnt2d from TColgp ; - -- 2D poles if myNumSubSpaces[1] > 0 - my3DPoles : HArray2OfPnt from TColgp ; - -- 3D poles if myNumSubSpaces[2] > 0 - myKnots : HArray1OfReal from TColStd ; - myMults : HArray1OfInteger from TColStd ; - myDegree : Integer ; - - myEvaluator : Address from Standard; - -- - -- The Errors - -- - my1DMaxError : HArray1OfReal from TColStd ; - my1DAverageError : HArray1OfReal from TColStd ; - my2DMaxError : HArray1OfReal from TColStd ; - my2DAverageError : HArray1OfReal from TColStd ; - my3DMaxError : HArray1OfReal from TColStd ; - my3DAverageError : HArray1OfReal from TColStd ; - -end ApproxAFunction ; diff --git a/src/AdvApprox/AdvApprox_ApproxAFunction.cxx b/src/AdvApprox/AdvApprox_ApproxAFunction.cxx index a2ae8d4dfd..65cf6203b1 100644 --- a/src/AdvApprox/AdvApprox_ApproxAFunction.cxx +++ b/src/AdvApprox/AdvApprox_ApproxAFunction.cxx @@ -21,40 +21,31 @@ // facilement approchable ont de petites erreurs. // Modified PMN 15/04/1997 : Gestion fine de la continuite aux lieux de decoupes -#include -#include -#include +#include +#include #include +#include #include - -#include -#include -#include #include - -#include -#include -#include -#include -#include - +#include +#include #include #include - -#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include #include - - -#include -#include - -#include -#include - +#include +#include +#include +#include +#include +#include #ifdef OCCT_DEBUG diff --git a/src/AdvApprox/AdvApprox_ApproxAFunction.hxx b/src/AdvApprox/AdvApprox_ApproxAFunction.hxx new file mode 100644 index 0000000000..727076b52a --- /dev/null +++ b/src/AdvApprox/AdvApprox_ApproxAFunction.hxx @@ -0,0 +1,178 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Standard_ConstructionError; +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; + + //! diplay 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 + + + + + +#endif // _AdvApprox_ApproxAFunction_HeaderFile diff --git a/src/AdvApprox/AdvApprox_Cutting.cdl b/src/AdvApprox/AdvApprox_Cutting.cdl deleted file mode 100644 index 8caa9a34a7..0000000000 --- a/src/AdvApprox/AdvApprox_Cutting.cdl +++ /dev/null @@ -1,31 +0,0 @@ --- 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. - ----Purpose: to choose the way of cutting in approximation - - -deferred class Cutting from AdvApprox -is - Delete(me:out) is virtual; - ---C++: alias "Standard_EXPORT virtual ~AdvApprox_Cutting(){Delete();}" - - Value(me; a,b : Real; - cuttingvalue : out Real) - returns Boolean - is deferred; - -end Cutting; - diff --git a/src/AdvApprox/AdvApprox_Cutting.cxx b/src/AdvApprox/AdvApprox_Cutting.cxx index 2411daf8c9..0b46bba5ee 100644 --- a/src/AdvApprox/AdvApprox_Cutting.cxx +++ b/src/AdvApprox/AdvApprox_Cutting.cxx @@ -14,7 +14,8 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include void AdvApprox_Cutting::Delete() {} diff --git a/src/AdvApprox/AdvApprox_Cutting.hxx b/src/AdvApprox/AdvApprox_Cutting.hxx new file mode 100644 index 0000000000..6f1651bd65 --- /dev/null +++ b/src/AdvApprox/AdvApprox_Cutting.hxx @@ -0,0 +1,64 @@ +// 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_Cutting_HeaderFile +#define _AdvApprox_Cutting_HeaderFile + +#include +#include +#include + +#include +#include + + +//! to choose the way of cutting in approximation +class AdvApprox_Cutting +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT virtual void Delete(); +Standard_EXPORT virtual ~AdvApprox_Cutting(){Delete();} + + Standard_EXPORT virtual Standard_Boolean Value (const Standard_Real a, const Standard_Real b, Standard_Real& cuttingvalue) const = 0; + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _AdvApprox_Cutting_HeaderFile diff --git a/src/AdvApprox/AdvApprox_DichoCutting.cdl b/src/AdvApprox/AdvApprox_DichoCutting.cdl deleted file mode 100644 index bd760931e3..0000000000 --- a/src/AdvApprox/AdvApprox_DichoCutting.cdl +++ /dev/null @@ -1,31 +0,0 @@ --- 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. - ----Purpose : --- if Cutting is necessary in [a,b], we cut at (a+b) / 2. - -class DichoCutting from AdvApprox inherits Cutting from AdvApprox - -uses Real from Standard - -is - Create returns DichoCutting; - Value(me; a,b : Real; - cuttingvalue : out Real) - returns Boolean - is redefined; - -end DichoCutting; diff --git a/src/AdvApprox/AdvApprox_DichoCutting.cxx b/src/AdvApprox/AdvApprox_DichoCutting.cxx index 5f6523fbaa..369c43edc8 100644 --- a/src/AdvApprox/AdvApprox_DichoCutting.cxx +++ b/src/AdvApprox/AdvApprox_DichoCutting.cxx @@ -14,7 +14,8 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include #include AdvApprox_DichoCutting::AdvApprox_DichoCutting() diff --git a/src/AdvApprox/AdvApprox_DichoCutting.hxx b/src/AdvApprox/AdvApprox_DichoCutting.hxx new file mode 100644 index 0000000000..e987e812ce --- /dev/null +++ b/src/AdvApprox/AdvApprox_DichoCutting.hxx @@ -0,0 +1,65 @@ +// 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 +#include +#include + +#include +#include +#include + + + +//! 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/src/AdvApprox/AdvApprox_PrefAndRec.cdl b/src/AdvApprox/AdvApprox_PrefAndRec.cdl deleted file mode 100644 index 76715b2afb..0000000000 --- a/src/AdvApprox/AdvApprox_PrefAndRec.cdl +++ /dev/null @@ -1,53 +0,0 @@ --- Created on: 1996-11-14 --- Created by: Philippe MANGIN --- 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. - -class PrefAndRec from AdvApprox inherits Cutting from AdvApprox - - ---Purpose : - -- inherits class Cutting; contains a list of preferential points (pi)i - -- and a list of Recommended points used in cutting management. - -- if Cutting is necessary in [a,b], we cut at the di nearest from (a+b)/2 - - -uses Array1OfReal from TColStd - -raises DomainError from Standard - -is - Create(RecomendedCut : Array1OfReal; - PrefferedCut : Array1OfReal; - Weight : Real = 5 ) - returns PrefAndRec - raises DomainError; -- if Weight <= 1 - - Value(me; a,b : Real; - cuttingvalue : out Real) - returns Boolean - ---Purpose: - -- cuting value is - -- - the recommended point nerest of (a+b)/2 - -- if pi is in ]a,b[ or else - -- - the preferential point nearest of (a+b) / 2 - -- if pi is in ](r*a+b)/(r+1) , (a+r*b)/(r+1)[ where r = Weight - -- - or (a+b)/2 else. - is redefined; - - -fields - myRecCutting : Array1OfReal from TColStd; - myPrefCutting: Array1OfReal from TColStd; - myWeight : Real; -end PrefAndRec; diff --git a/src/AdvApprox/AdvApprox_PrefAndRec.cxx b/src/AdvApprox/AdvApprox_PrefAndRec.cxx index 4f45c0306a..08b50ed0e9 100644 --- a/src/AdvApprox/AdvApprox_PrefAndRec.cxx +++ b/src/AdvApprox/AdvApprox_PrefAndRec.cxx @@ -14,12 +14,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include #include #include - AdvApprox_PrefAndRec::AdvApprox_PrefAndRec(const TColStd_Array1OfReal& RecCut, const TColStd_Array1OfReal& PrefCut, const Standard_Real Weight): diff --git a/src/AdvApprox/AdvApprox_PrefAndRec.hxx b/src/AdvApprox/AdvApprox_PrefAndRec.hxx new file mode 100644 index 0000000000..7ba2fe5f2c --- /dev/null +++ b/src/AdvApprox/AdvApprox_PrefAndRec.hxx @@ -0,0 +1,79 @@ +// Created on: 1996-11-14 +// Created by: Philippe MANGIN +// 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_PrefAndRec_HeaderFile +#define _AdvApprox_PrefAndRec_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class Standard_DomainError; + + + +//! inherits class Cutting; contains a list of preferential points (pi)i +//! and a list of Recommended points used in cutting management. +//! if Cutting is necessary in [a,b], we cut at the di nearest from (a+b)/2 +class AdvApprox_PrefAndRec : public AdvApprox_Cutting +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AdvApprox_PrefAndRec(const TColStd_Array1OfReal& RecomendedCut, const TColStd_Array1OfReal& PrefferedCut, const Standard_Real Weight = 5); + + + //! cuting value is + //! - the recommended point nerest of (a+b)/2 + //! if pi is in ]a,b[ or else + //! - the preferential point nearest of (a+b) / 2 + //! if pi is in ](r*a+b)/(r+1) , (a+r*b)/(r+1)[ where r = Weight + //! - or (a+b)/2 else. + Standard_EXPORT virtual Standard_Boolean Value (const Standard_Real a, const Standard_Real b, Standard_Real& cuttingvalue) const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + TColStd_Array1OfReal myRecCutting; + TColStd_Array1OfReal myPrefCutting; + Standard_Real myWeight; + + +}; + + + + + + + +#endif // _AdvApprox_PrefAndRec_HeaderFile diff --git a/src/AdvApprox/AdvApprox_PrefCutting.cdl b/src/AdvApprox/AdvApprox_PrefCutting.cdl deleted file mode 100644 index 035ab3f472..0000000000 --- a/src/AdvApprox/AdvApprox_PrefCutting.cdl +++ /dev/null @@ -1,69 +0,0 @@ --- 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. - ----Purpose : --- inherits class Cutting; contains a list of preferential points (di)i --- if Cutting is necessary in [a,b], we cut at the di nearest from (a+b)/2. - -class PrefCutting from AdvApprox inherits Cutting from AdvApprox - -uses Array1OfReal from TColStd - -is - Create(CutPnts : Array1OfReal) returns PrefCutting; - - Value(me; a,b : Real; - cuttingvalue : out Real) - returns Boolean - is redefined; - - -fields - - myPntOfCutting : Array1OfReal from TColStd; - - -end PrefCutting; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/AdvApprox/AdvApprox_PrefCutting.cxx b/src/AdvApprox/AdvApprox_PrefCutting.cxx index b38fac0702..02753ec1f7 100644 --- a/src/AdvApprox/AdvApprox_PrefCutting.cxx +++ b/src/AdvApprox/AdvApprox_PrefCutting.cxx @@ -14,7 +14,8 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include #include AdvApprox_PrefCutting::AdvApprox_PrefCutting(const TColStd_Array1OfReal& CutPnts): diff --git a/src/AdvApprox/AdvApprox_PrefCutting.hxx b/src/AdvApprox/AdvApprox_PrefCutting.hxx new file mode 100644 index 0000000000..05285725de --- /dev/null +++ b/src/AdvApprox/AdvApprox_PrefCutting.hxx @@ -0,0 +1,68 @@ +// 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_PrefCutting_HeaderFile +#define _AdvApprox_PrefCutting_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include + + + +//! inherits class Cutting; contains a list of preferential points (di)i +//! if Cutting is necessary in [a,b], we cut at the di nearest from (a+b)/2. +class AdvApprox_PrefCutting : public AdvApprox_Cutting +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AdvApprox_PrefCutting(const TColStd_Array1OfReal& CutPnts); + + Standard_EXPORT virtual Standard_Boolean Value (const Standard_Real a, const Standard_Real b, Standard_Real& cuttingvalue) const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + TColStd_Array1OfReal myPntOfCutting; + + +}; + + + + + + + +#endif // _AdvApprox_PrefCutting_HeaderFile diff --git a/src/AdvApprox/AdvApprox_SimpleApprox.cdl b/src/AdvApprox/AdvApprox_SimpleApprox.cdl deleted file mode 100644 index ab4a41a778..0000000000 --- a/src/AdvApprox/AdvApprox_SimpleApprox.cdl +++ /dev/null @@ -1,123 +0,0 @@ --- 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. - -class SimpleApprox from AdvApprox - ----Purpose: Approximate a function on an intervall [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 - - -uses HArray1OfReal from TColStd, - HArray2OfReal from TColStd, - Array1OfReal from TColStd, - Array1OfInteger from TColStd, - Shape from GeomAbs, - Vector from math, - EvaluatorFunction from AdvApprox, - JacobiPolynomial from PLib - -raises - - OutOfRange from Standard, - ConstructionError from Standard - -is - Create(TotalDimension : Integer ; - TotalNumSS : Integer ; - Continuity : Shape from GeomAbs ; - WorkDegree : Integer ; - NbGaussPoints : Integer ; - JacobiBase : JacobiPolynomial from PLib; - Func : EvaluatorFunction from AdvApprox) - - returns SimpleApprox from AdvApprox - raises ConstructionError; - - Perform(me:in out ; - LocalDimension : Array1OfInteger from TColStd; - LocalTolerancesArray: Array1OfReal from TColStd ; - First : Real ; - Last : Real ; - MaxDegree : Integer) - raises ConstructionError; - ---Purpose: 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; - -- - - IsDone(me) - returns Boolean; - - Degree (me) - returns Integer; - - Coefficients (me) - ---Purpose: returns the coefficients in the Jacobi Base - returns HArray1OfReal from TColStd; - - FirstConstr (me) - ---Purpose: returns the constraints at First - returns HArray2OfReal from TColStd; - - LastConstr (me) - ---Purpose: returns the constraints at Last - returns HArray2OfReal from TColStd; - - SomTab (me) - returns HArray1OfReal from TColStd; - - DifTab (me) - returns HArray1OfReal from TColStd; - - MaxError (me; Index : Integer) - returns Real; - - AverageError (me; Index : Integer) - returns Real; - - Dump(me; o: in out OStream); - ---Purpose: display information on approximation - -fields - - myTotalNumSS : Integer; - myTotalDimension : Integer; - myNbGaussPoints : Integer; - myWorkDegree : Integer; - myNivConstr : Integer ; - myJacPol : JacobiPolynomial from PLib; - myTabPoints : HArray1OfReal from TColStd; - myTabWeights : HArray2OfReal from TColStd; - myEvaluator : Address from Standard; - myDegree : Integer; - myCoeff : HArray1OfReal from TColStd; - myFirstConstr : HArray2OfReal from TColStd; - myLastConstr : HArray2OfReal from TColStd; - mySomTab : HArray1OfReal from TColStd; - myDifTab : HArray1OfReal from TColStd; - myMaxError : HArray1OfReal from TColStd; - myAverageError : HArray1OfReal from TColStd; - done : Boolean; - -end SimpleApprox; - - diff --git a/src/AdvApprox/AdvApprox_SimpleApprox.cxx b/src/AdvApprox/AdvApprox_SimpleApprox.cxx index ede4baa706..d2bdd60f07 100644 --- a/src/AdvApprox/AdvApprox_SimpleApprox.cxx +++ b/src/AdvApprox/AdvApprox_SimpleApprox.cxx @@ -15,24 +15,24 @@ #define No_Standard_RangeError #define No_Standard_OutOfRange -#include -#include #include -#include -#include -#include -#include -#include +#include #include #include #include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : AdvApprox_SimpleApprox //purpose : //======================================================================= - AdvApprox_SimpleApprox:: AdvApprox_SimpleApprox(const Standard_Integer TotalDimension, const Standard_Integer TotalNumSS, diff --git a/src/AdvApprox/AdvApprox_SimpleApprox.hxx b/src/AdvApprox/AdvApprox_SimpleApprox.hxx new file mode 100644 index 0000000000..8c23d48a5c --- /dev/null +++ b/src/AdvApprox/AdvApprox_SimpleApprox.hxx @@ -0,0 +1,127 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class PLib_JacobiPolynomial; +class Standard_OutOfRange; +class Standard_ConstructionError; + + +//! Approximate a function on an intervall [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/src/AdvApprox/FILES b/src/AdvApprox/FILES index 29c1358605..d0ba9f56ec 100755 --- a/src/AdvApprox/FILES +++ b/src/AdvApprox/FILES @@ -1 +1,14 @@ +AdvApprox_ApproxAFunction.cxx +AdvApprox_ApproxAFunction.hxx +AdvApprox_ApproxAFunction.lxx +AdvApprox_Cutting.cxx +AdvApprox_Cutting.hxx +AdvApprox_DichoCutting.cxx +AdvApprox_DichoCutting.hxx AdvApprox_EvaluatorFunction.hxx +AdvApprox_PrefAndRec.cxx +AdvApprox_PrefAndRec.hxx +AdvApprox_PrefCutting.cxx +AdvApprox_PrefCutting.hxx +AdvApprox_SimpleApprox.cxx +AdvApprox_SimpleApprox.hxx diff --git a/src/AppBlend/AppBlend.cdl b/src/AppBlend/AppBlend.cdl deleted file mode 100644 index 1cb1d915c7..0000000000 --- a/src/AppBlend/AppBlend.cdl +++ /dev/null @@ -1,27 +0,0 @@ --- Created on: 1993-12-13 --- 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. - -package AppBlend - -uses StdFail, MMgt, TCollection, TColStd, TColgp, GeomAbs - -is - - deferred class Approx; - - generic class AppSurf; - -end AppBlend; diff --git a/src/AppBlend/AppBlend_AppSurf.cdl b/src/AppBlend/AppBlend_AppSurf.cdl deleted file mode 100644 index 37cbe97daa..0000000000 --- a/src/AppBlend/AppBlend_AppSurf.cdl +++ /dev/null @@ -1,342 +0,0 @@ --- Created on: 1993-12-13 --- 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. - --- Modified: Fri Jul 10 11:23:35 1998 --- JCT : Add SpApprox in Perform - - - -generic class AppSurf from AppBlend - (TheSectionGenerator as any; - TheLine as Transient) - inherits Approx from AppBlend - - ---Purpose: Bspline approximation of a surface. - -uses Array2OfPnt from TColgp, - HArray2OfPnt from TColgp, - Array2OfReal from TColStd, - HArray2OfReal from TColStd, - Array1OfReal from TColStd, - HArray1OfReal from TColStd, - Array1OfInteger from TColStd, - HArray1OfInteger from TColStd, - Array1OfPnt2d from TColgp, - SequenceOfArray1OfPnt2d from TColgp, - ParametrizationType from Approx, - Shape from GeomAbs - - -raises NotDone from StdFail, - DomainError from Standard, - OutOfRange from Standard - -is - - - Create - - returns AppSurf from AppBlend; - - - Create(Degmin,Degmax: Integer from Standard; - Tol3d,Tol2d : Real from Standard; - NbIt: Integer from Standard; - KnownParameters : Boolean from Standard = Standard_False) - - returns AppSurf from AppBlend; - - - Init(me: in out; Degmin,Degmax: Integer from Standard; - Tol3d,Tol2d : Real from Standard; - NbIt: Integer from Standard; - KnownParameters : Boolean from Standard = Standard_False) - - is static; - - SetParType(me: in out; ParType : ParametrizationType from Approx) - ---Purpose: Define the type of parametrization used in the approximation - is static; - - - SetContinuity(me: in out; C : Shape from GeomAbs) - ---Purpose: Define the Continuity used in the approximation - is static; - - - SetCriteriumWeight(me : in out; - W1, W2, W3 : Real) - ---Purpose: define the Weights associed to the criterium used in - -- the optimization. - -- - raises DomainError -- if Wi <= 0 - is static; - - - ParType(me) - ---Purpose: returns the type of parametrization used in the approximation - returns ParametrizationType from Approx - is static; - - - Continuity(me) - ---Purpose: returns the Continuity used in the approximation - returns Shape from GeomAbs - is static; - - - CriteriumWeight(me ; - W1, W2, W3 : out Real) - ---Purpose: returns the Weights (as percent) associed to the criterium used in - -- the optimization. - is static; - - Perform(me: in out; Lin: TheLine; - SecGen: in out TheSectionGenerator; - SpApprox : Boolean from Standard = Standard_False) - - is static; - - PerformSmoothing(me: in out; Lin: TheLine; - SecGen: in out TheSectionGenerator) - - is static; - - - Perform(me: in out; Lin: TheLine; - SecGen: in out TheSectionGenerator; - NbMaxP: Integer from Standard) - - is static; - - - InternalPerform(me: in out; Lin: TheLine; - SecGen: in out TheSectionGenerator; - SpApprox : Boolean from Standard; - UseVariational: Boolean from Standard) - - is static private; - - IsDone(me) - - returns Boolean from Standard - ---C++: inline - - is static; - - - SurfShape(me; UDegree,VDegree : out Integer from Standard; - NbUPoles,NbVPoles: out Integer from Standard; - NbUKnots,NbVKnots: out Integer from Standard) - raises NotDone from StdFail - is static; - - - Surface(me; TPoles : out Array2OfPnt from TColgp; - TWeights : out Array2OfReal from TColStd; - TUKnots,TVKnots : out Array1OfReal from TColStd; - TUMults,TVMults : out Array1OfInteger from TColStd) - raises NotDone from StdFail - is static; - - - UDegree(me) - - returns Integer from Standard - ---C++: inline - - raises NotDone from StdFail - is static; - - - VDegree(me) - - returns Integer from Standard - ---C++: inline - - raises NotDone from StdFail - is static; - - - SurfPoles(me) - - returns Array2OfPnt from TColgp - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfWeights(me) - - returns Array2OfReal from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfUKnots(me) - - returns Array1OfReal from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfVKnots(me) - - returns Array1OfReal from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfUMults(me) - - returns Array1OfInteger from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfVMults(me) - - returns Array1OfInteger from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - NbCurves2d(me) - - returns Integer from Standard - ---C++: inline - - raises NotDone from StdFail - is static; - - - Curves2dShape(me; Degree,NbPoles,NbKnots: out Integer from Standard) - - raises NotDone from StdFail, - DomainError from Standard - - is static; - - - Curve2d(me; Index: Integer from Standard; - TPoles : out Array1OfPnt2d from TColgp; - TKnots : out Array1OfReal from TColStd; - TMults : out Array1OfInteger from TColStd) - - raises NotDone from StdFail, - OutOfRange from Standard, - DomainError from Standard - - is static; - - - Curves2dDegree(me) - - returns Integer from Standard - ---C++: inline - - raises NotDone from StdFail, - DomainError from Standard - is static; - - - Curve2dPoles(me; Index: Integer from Standard) - - returns Array1OfPnt2d from TColgp - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail, - OutOfRange from Standard, - DomainError from Standard - is static; - - - Curves2dKnots(me) - - returns Array1OfReal from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail, - DomainError from Standard - is static; - - - Curves2dMults(me) - - returns Array1OfInteger from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail, - DomainError from Standard - is static; - - - TolReached(me; Tol3d, Tol2d : out Real from Standard) - ---C++: inline - raises NotDone from StdFail - is static; - - TolCurveOnSurf(me; Index : Integer from Standard) - returns Real from Standard - raises NotDone from StdFail - is static; - - -fields - - done : Boolean from Standard; - dmin : Integer from Standard; - dmax : Integer from Standard; - tol3d : Real from Standard; - tol2d : Real from Standard; - nbit : Integer from Standard; - udeg : Integer from Standard; - vdeg : Integer from Standard; - knownp : Boolean from Standard; - tabPoles : HArray2OfPnt from TColgp; - tabWeights : HArray2OfReal from TColStd; - tabUKnots : HArray1OfReal from TColStd; - tabVKnots : HArray1OfReal from TColStd; - tabUMults : HArray1OfInteger from TColStd; - tabVMults : HArray1OfInteger from TColStd; - seqPoles2d : SequenceOfArray1OfPnt2d from TColgp; - tol3dreached : Real from Standard; - tol2dreached : Real from Standard; - paramtype : ParametrizationType from Approx; - continuity : Shape from GeomAbs; - critweights : Real[3]; - -end AppSurf; diff --git a/src/AppBlend/AppBlend_Approx.cdl b/src/AppBlend/AppBlend_Approx.cdl deleted file mode 100644 index 7a0e0eb733..0000000000 --- a/src/AppBlend/AppBlend_Approx.cdl +++ /dev/null @@ -1,202 +0,0 @@ --- Created on: 1996-08-27 --- Created by: Philippe MANGIN --- 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. - -deferred class Approx from AppBlend - - - ---Purpose: Bspline approximation of a surface. - -uses Array2OfPnt from TColgp, - HArray2OfPnt from TColgp, - Array2OfReal from TColStd, - HArray2OfReal from TColStd, - Array1OfReal from TColStd, - HArray1OfReal from TColStd, - Array1OfInteger from TColStd, - HArray1OfInteger from TColStd, - Array1OfPnt2d from TColgp - -raises NotDone from StdFail, - DomainError from Standard, - OutOfRange from Standard - -is - - IsDone(me) - returns Boolean from Standard - is deferred; - - - SurfShape(me; UDegree,VDegree : out Integer from Standard; - NbUPoles,NbVPoles: out Integer from Standard; - NbUKnots,NbVKnots: out Integer from Standard) - raises NotDone from StdFail - is deferred; - - - Surface(me; TPoles : out Array2OfPnt from TColgp; - TWeights : out Array2OfReal from TColStd; - TUKnots,TVKnots : out Array1OfReal from TColStd; - TUMults,TVMults : out Array1OfInteger from TColStd) - raises NotDone from StdFail - is deferred; - - - UDegree(me) - - returns Integer from Standard - raises NotDone from StdFail - is deferred; - - - VDegree(me) - - returns Integer from Standard - raises NotDone from StdFail - is deferred; - - - SurfPoles(me) - - returns Array2OfPnt from TColgp - ---C++: return const& - - raises NotDone from StdFail - is deferred; - - - SurfWeights(me) - - returns Array2OfReal from TColStd - ---C++: return const& - - raises NotDone from StdFail - is deferred; - - - SurfUKnots(me) - - returns Array1OfReal from TColStd - ---C++: return const& - - raises NotDone from StdFail - is deferred; - - - SurfVKnots(me) - - returns Array1OfReal from TColStd - ---C++: return const& - - raises NotDone from StdFail - is deferred; - - - SurfUMults(me) - - returns Array1OfInteger from TColStd - ---C++: return const& - - raises NotDone from StdFail - is deferred; - - - SurfVMults(me) - - returns Array1OfInteger from TColStd - ---C++: return const& - - raises NotDone from StdFail - is deferred; - - - NbCurves2d(me) - - returns Integer from Standard - raises NotDone from StdFail - is deferred; - - - Curves2dShape(me; Degree,NbPoles,NbKnots: out Integer from Standard) - - raises NotDone from StdFail, - DomainError from Standard - - is deferred; - - - Curve2d(me; Index: Integer from Standard; - TPoles : out Array1OfPnt2d from TColgp; - TKnots : out Array1OfReal from TColStd; - TMults : out Array1OfInteger from TColStd) - - raises NotDone from StdFail, - OutOfRange from Standard, - DomainError from Standard - - is deferred; - - - Curves2dDegree(me) - - returns Integer from Standard - raises NotDone from StdFail, - DomainError from Standard - is deferred; - - - Curve2dPoles(me; Index: Integer from Standard) - - returns Array1OfPnt2d from TColgp - ---C++: return const& - - raises NotDone from StdFail, - OutOfRange from Standard, - DomainError from Standard - is deferred; - - - Curves2dKnots(me) - - returns Array1OfReal from TColStd - ---C++: return const& - - raises NotDone from StdFail, - DomainError from Standard - is deferred; - - - Curves2dMults(me) - - returns Array1OfInteger from TColStd - ---C++: return const& - - raises NotDone from StdFail, - DomainError from Standard - is deferred; - - TolReached(me; Tol3d, Tol2d : out Real from Standard) - raises NotDone from StdFail - is deferred; - - TolCurveOnSurf(me; Index : Integer from Standard) - returns Real from Standard - raises NotDone from StdFail - is deferred; - - ---C++: alias " Standard_EXPORT virtual ~AppBlend_Approx();" - -end Approx; diff --git a/src/AppBlend/AppBlend_Approx.cxx b/src/AppBlend/AppBlend_Approx.cxx index 71871392c7..386c4589d7 100644 --- a/src/AppBlend/AppBlend_Approx.cxx +++ b/src/AppBlend/AppBlend_Approx.cxx @@ -14,7 +14,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include //======================================================================= //function : AppBlend_Approx diff --git a/src/AppBlend/AppBlend_Approx.hxx b/src/AppBlend/AppBlend_Approx.hxx new file mode 100644 index 0000000000..be0502936f --- /dev/null +++ b/src/AppBlend/AppBlend_Approx.hxx @@ -0,0 +1,109 @@ +// Created on: 1996-08-27 +// Created by: Philippe MANGIN +// 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 _AppBlend_Approx_HeaderFile +#define _AppBlend_Approx_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class StdFail_NotDone; +class Standard_DomainError; +class Standard_OutOfRange; + + +//! Bspline approximation of a surface. +class AppBlend_Approx +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT virtual Standard_Boolean IsDone() const = 0; + + Standard_EXPORT virtual void SurfShape (Standard_Integer& UDegree, Standard_Integer& VDegree, Standard_Integer& NbUPoles, Standard_Integer& NbVPoles, Standard_Integer& NbUKnots, Standard_Integer& NbVKnots) const = 0; + + Standard_EXPORT virtual void Surface (TColgp_Array2OfPnt& TPoles, TColStd_Array2OfReal& TWeights, TColStd_Array1OfReal& TUKnots, TColStd_Array1OfReal& TVKnots, TColStd_Array1OfInteger& TUMults, TColStd_Array1OfInteger& TVMults) const = 0; + + Standard_EXPORT virtual Standard_Integer UDegree() const = 0; + + Standard_EXPORT virtual Standard_Integer VDegree() const = 0; + + Standard_EXPORT virtual const TColgp_Array2OfPnt& SurfPoles() const = 0; + + Standard_EXPORT virtual const TColStd_Array2OfReal& SurfWeights() const = 0; + + Standard_EXPORT virtual const TColStd_Array1OfReal& SurfUKnots() const = 0; + + Standard_EXPORT virtual const TColStd_Array1OfReal& SurfVKnots() const = 0; + + Standard_EXPORT virtual const TColStd_Array1OfInteger& SurfUMults() const = 0; + + Standard_EXPORT virtual const TColStd_Array1OfInteger& SurfVMults() const = 0; + + Standard_EXPORT virtual Standard_Integer NbCurves2d() const = 0; + + Standard_EXPORT virtual void Curves2dShape (Standard_Integer& Degree, Standard_Integer& NbPoles, Standard_Integer& NbKnots) const = 0; + + Standard_EXPORT virtual void Curve2d (const Standard_Integer Index, TColgp_Array1OfPnt2d& TPoles, TColStd_Array1OfReal& TKnots, TColStd_Array1OfInteger& TMults) const = 0; + + Standard_EXPORT virtual Standard_Integer Curves2dDegree() const = 0; + + Standard_EXPORT virtual const TColgp_Array1OfPnt2d& Curve2dPoles (const Standard_Integer Index) const = 0; + + Standard_EXPORT virtual const TColStd_Array1OfReal& Curves2dKnots() const = 0; + + Standard_EXPORT virtual const TColStd_Array1OfInteger& Curves2dMults() const = 0; + + Standard_EXPORT virtual void TolReached (Standard_Real& Tol3d, Standard_Real& Tol2d) const = 0; + + Standard_EXPORT virtual Standard_Real TolCurveOnSurf (const Standard_Integer Index) const = 0; + Standard_EXPORT virtual ~AppBlend_Approx(); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _AppBlend_Approx_HeaderFile diff --git a/src/AppBlend/FILES b/src/AppBlend/FILES index 8e06d2ab12..a0e129bdee 100755 --- a/src/AppBlend/FILES +++ b/src/AppBlend/FILES @@ -1 +1,5 @@ +AppBlend_Approx.cxx +AppBlend_Approx.hxx +AppBlend_AppSurf.gxx +AppBlend_AppSurf.lxx AppBlend_Debug.cxx diff --git a/src/AppCont/AppCont.cdl b/src/AppCont/AppCont.cdl deleted file mode 100644 index f795b1586a..0000000000 --- a/src/AppCont/AppCont.cdl +++ /dev/null @@ -1,50 +0,0 @@ --- Created on: 1993-04-22 --- 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. - -package AppCont - - ---Purpose: This package provides the least square algorithms - -- necessary to approximate a set of continous curves - -- or a continous surface. - -- - -- - -- It also provides an instantiation of these algorithms - -- for a class Function, a function f(t). - -- The user will have to inherit class Function to use it. - - - ---Level : Advanced. - -- All methods of all classes will be advanced. - -uses AppParCurves, Geom, math, StdFail, TCollection, TColStd, gp, - TColgp, Standard - -is - - ------------------------------- - --- Algorithms: - ------------------------------- - - imported LeastSquare; - - ------------------------------------------------------ - --- Necessary class for approximation a function f(t): - ------------------------------------------------------ - - imported Function; - -end AppCont; - diff --git a/src/AppCont/FILES b/src/AppCont/FILES index e4baeec0cf..bcce21885b 100755 --- a/src/AppCont/FILES +++ b/src/AppCont/FILES @@ -1,9 +1,9 @@ -AppCont_ContMatrices.hxx AppCont_ContMatrices.cxx +AppCont_ContMatrices.hxx AppCont_ContMatrices_1.cxx AppCont_ContMatrices_2.cxx AppCont_ContMatrices_3.cxx AppCont_ContMatrices_4.cxx AppCont_Function.hxx +AppCont_LeastSquare.cxx AppCont_LeastSquare.hxx -AppCont_LeastSquare.cxx \ No newline at end of file diff --git a/src/AppDef/AppDef.cdl b/src/AppDef/AppDef.cdl deleted file mode 100644 index d324545115..0000000000 --- a/src/AppDef/AppDef.cdl +++ /dev/null @@ -1,101 +0,0 @@ --- 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. - --- 06/06/96 : JPI : ajout Variational - - - -package AppDef - - ---Purpose: This package describes all the classes needed to approximate - -- points in Bezier curves. It is used in the package - -- AppParCurves. - -- The points of the same range for the approximation are - -- organised in MultiPointConstraints. These MultiPointConstraints - -- - -- are organized in a MultiLine. - -- The corresponding result of a MultiLine approximation is - -- a MultiCurve (set of Bezier curves) which has the same - -- structure as a MultiLine: The MultiCurve is a set of - -- MultiPoint. - -- A point of a MultiLine can have many significations: the approximation curve - -- can go through this point or not, can have a given tangency, or can - -- have a given curvature. - -- Note: a CurvaturePoint is also a PassPoint and a TangencyPoint. - -- A TangencyPoint is also a PassPoint. - -uses AppParCurves, Approx, gp, TColgp, TCollection, Standard, MMgt, math, FEmTool, TColStd, GeomAbs, PLib - - -is - -class MultiPointConstraint; - -class MultiLine; - -class MyLineTool; - -deferred class SmoothCriterion; - -class LinearCriteria; - -class Variational; - - ---- Classes instanciees: - - -class TheLeastSquares instantiates LeastSquare from AppParCurves - (MultiLine from AppDef, - MyLineTool from AppDef); - - -class TheResol instantiates ResolConstraint from AppParCurves - (MultiLine from AppDef, - MyLineTool from AppDef); - - -class TheFunction instantiates Function from AppParCurves - (MultiLine from AppDef, - MyLineTool from AppDef, - - TheLeastSquares from AppDef, - TheResol from AppDef); - - -class TheGradient instantiates Gradient from AppParCurves - (MultiLine from AppDef, - MyLineTool from AppDef); - - -class Compute instantiates ComputeLine from Approx - - (MultiLine from AppDef, - MyLineTool from AppDef); - - -class BSplineCompute instantiates BSplComputeLine from Approx - (MultiLine from AppDef, - MyLineTool from AppDef); - - - -imported Array1OfMultiPointConstraint; - -imported transient class HArray1OfMultiPointConstraint; - - -end AppDef; diff --git a/src/AppDef/AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute.hxx b/src/AppDef/AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute.hxx new file mode 100644 index 0000000000..7b54be12d1 --- /dev/null +++ b/src/AppDef/AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute.hxx @@ -0,0 +1,74 @@ +// 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_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute_HeaderFile +#define _AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_MyBSplGradientOfBSplineCompute; +class AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute; +class AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute; +class math_MultipleVarFunctionWithGradient; + + + +class AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute : public math_BFGS +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute(math_MultipleVarFunctionWithGradient& F, const math_Vector& StartingPoint, const Standard_Real Tolerance3d, const Standard_Real Tolerance2d, const Standard_Real Eps, const Standard_Integer NbIterations = 200); + + Standard_EXPORT virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunctionWithGradient& F) const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + Standard_Real myTol3d; + Standard_Real myTol2d; + + +}; + + + + + + + +#endif // _AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute_HeaderFile diff --git a/src/AppDef/AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute_0.cxx b/src/AppDef/AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute_0.cxx new file mode 100644 index 0000000000..e32940dc4e --- /dev/null +++ b/src/AppDef/AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute_0.cxx @@ -0,0 +1,40 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_BSpParLeastSquare AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute +#define AppParCurves_BSpParLeastSquare_hxx +#define AppParCurves_BSpParFunction AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute +#define AppParCurves_BSpParFunction_hxx +#define AppParCurves_BSpGradient_BFGS AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute +#define AppParCurves_BSpGradient_BFGS_hxx +#define AppParCurves_BSpGradient AppDef_MyBSplGradientOfBSplineCompute +#define AppParCurves_BSpGradient_hxx +#include + diff --git a/src/AppDef/AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute.hxx b/src/AppDef/AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute.hxx new file mode 100644 index 0000000000..86e92fdddf --- /dev/null +++ b/src/AppDef/AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute.hxx @@ -0,0 +1,140 @@ +// 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_BSpParFunctionOfMyBSplGradientOfBSplineCompute_HeaderFile +#define _AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute; +class AppParCurves_MultiBSpCurve; +class math_Matrix; + + + +class AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute : public math_MultipleVarFunctionWithGradient +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer NbPol); + + Standard_EXPORT Standard_Integer NbVariables() const; + + Standard_EXPORT Standard_Boolean Value (const math_Vector& X, Standard_Real& F); + + Standard_EXPORT Standard_Boolean Gradient (const math_Vector& X, math_Vector& G); + + Standard_EXPORT Standard_Boolean Values (const math_Vector& X, Standard_Real& F, math_Vector& G); + + Standard_EXPORT const math_Vector& NewParameters() const; + + Standard_EXPORT AppParCurves_MultiBSpCurve CurveValue(); + + Standard_EXPORT Standard_Real Error (const Standard_Integer IPoint, const Standard_Integer CurveIndex); + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT const math_Matrix& FunctionMatrix() const; + + Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const; + + Standard_EXPORT const math_IntegerVector& Index() const; + + Standard_EXPORT AppParCurves_Constraint FirstConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer FirstPoint) const; + + Standard_EXPORT AppParCurves_Constraint LastConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer LastPoint) const; + + Standard_EXPORT void SetFirstLambda (const Standard_Real l1); + + Standard_EXPORT void SetLastLambda (const Standard_Real l2); + + + + +protected: + + + Standard_EXPORT void Perform (const math_Vector& X); + + + + +private: + + + + Standard_Boolean Done; + AppDef_MultiLine MyMultiLine; + AppParCurves_MultiBSpCurve MyMultiBSpCurve; + Standard_Integer nbpoles; + math_Vector myParameters; + Standard_Real FVal; + math_Vector ValGrad_F; + math_Matrix MyF; + math_Matrix PTLX; + math_Matrix PTLY; + math_Matrix PTLZ; + math_Matrix A; + math_Matrix DA; + AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute MyLeastSquare; + Standard_Boolean Contraintes; + Standard_Integer NbP; + Standard_Integer NbCu; + Standard_Integer Adeb; + Standard_Integer Afin; + Handle(TColStd_HArray1OfInteger) tabdim; + Standard_Real ERR3d; + Standard_Real ERR2d; + Standard_Integer FirstP; + Standard_Integer LastP; + Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints; + Standard_Real mylambda1; + Standard_Real mylambda2; + + +}; + + + + + + + +#endif // _AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute_HeaderFile diff --git a/src/AppDef/AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute_0.cxx b/src/AppDef/AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute_0.cxx new file mode 100644 index 0000000000..453fc74e8f --- /dev/null +++ b/src/AppDef/AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute_0.cxx @@ -0,0 +1,35 @@ +// 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. + +#include + +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define Squares AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute +#define Squares_hxx +#define AppParCurves_BSpFunction AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute +#define AppParCurves_BSpFunction_hxx +#include + diff --git a/src/AppDef/AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute.hxx b/src/AppDef/AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute.hxx new file mode 100644 index 0000000000..3931f599a5 --- /dev/null +++ b/src/AppDef/AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute.hxx @@ -0,0 +1,175 @@ +// 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_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute_HeaderFile +#define _AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +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_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute(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); + + Standard_EXPORT AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol); + + Standard_EXPORT AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute(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); + + Standard_EXPORT AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute(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); + + Standard_EXPORT void Perform (const math_Vector& Parameters); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const Standard_Real l1, const Standard_Real l2); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const Standard_Real l1, const Standard_Real l2); + + 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); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiCurve BezierValue(); + + Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue(); + + Standard_EXPORT const math_Matrix& FunctionMatrix() const; + + Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const; + + Standard_EXPORT void ErrorGradient (math_Vector& Grad, Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT const math_Matrix& Distance(); + + Standard_EXPORT void Error (Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT Standard_Real FirstLambda() const; + + Standard_EXPORT Standard_Real LastLambda() const; + + Standard_EXPORT const math_Matrix& Points() const; + + Standard_EXPORT const math_Matrix& Poles() const; + + Standard_EXPORT const math_IntegerVector& KIndex() const; + + + + +protected: + + + Standard_EXPORT void Init (const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint); + + Standard_EXPORT Standard_Integer NbBColumns (const AppDef_MultiLine& SSP) const; + + Standard_EXPORT Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const; + + Standard_EXPORT Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const; + + 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); + + Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Vector& TheB); + + Standard_EXPORT void MakeTAA (math_Vector& TheA); + + 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_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute_HeaderFile diff --git a/src/AppDef/AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute_0.cxx b/src/AppDef/AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute_0.cxx new file mode 100644 index 0000000000..c38078dcaf --- /dev/null +++ b/src/AppDef/AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute_0.cxx @@ -0,0 +1,37 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_LeastSquare AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute +#define AppParCurves_LeastSquare_hxx +#include + diff --git a/src/AppDef/AppDef_BSplineCompute.hxx b/src/AppDef/AppDef_BSplineCompute.hxx new file mode 100644 index 0000000000..9e7e3d5051 --- /dev/null +++ b/src/AppDef/AppDef_BSplineCompute.hxx @@ -0,0 +1,167 @@ +// 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_BSplineCompute_HeaderFile +#define _AppDef_BSplineCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_MyBSplGradientOfBSplineCompute; +class AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute; +class AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute; +class AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute; +class AppDef_MyGradientbisOfBSplineCompute; +class AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute; +class AppDef_ResConstraintOfMyGradientbisOfBSplineCompute; +class AppDef_ParFunctionOfMyGradientbisOfBSplineCompute; +class AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute; +class AppParCurves_MultiBSpCurve; +class AppParCurves_MultiCurve; + + + +class AppDef_BSplineCompute +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_BSplineCompute(const AppDef_MultiLine& Line, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-3, const Standard_Real Tolerance2d = 1.0e-6, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT AppDef_BSplineCompute(const AppDef_MultiLine& Line, const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT AppDef_BSplineCompute(const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT AppDef_BSplineCompute(const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT void Interpol (const AppDef_MultiLine& Line); + + Standard_EXPORT void Init (const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT void Perform (const AppDef_MultiLine& Line); + + Standard_EXPORT void SetParameters (const math_Vector& ThePar); + + Standard_EXPORT void SetKnots (const TColStd_Array1OfReal& Knots); + + Standard_EXPORT void SetKnotsAndMultiplicities (const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults); + + Standard_EXPORT void SetDegrees (const Standard_Integer degreemin, const Standard_Integer degreemax); + + Standard_EXPORT void SetTolerances (const Standard_Real Tolerance3d, const Standard_Real Tolerance2d); + + Standard_EXPORT void SetContinuity (const Standard_Integer C); + + Standard_EXPORT void SetConstraints (const AppParCurves_Constraint firstC, const AppParCurves_Constraint lastC); + + Standard_EXPORT Standard_Boolean IsAllApproximated() const; + + Standard_EXPORT Standard_Boolean IsToleranceReached() const; + + Standard_EXPORT void Error (Standard_Real& tol3d, Standard_Real& tol2d) const; + + Standard_EXPORT const AppParCurves_MultiBSpCurve& Value() const; + + Standard_EXPORT AppParCurves_MultiBSpCurve& ChangeValue(); + + Standard_EXPORT const TColStd_Array1OfReal& Parameters() const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT Standard_Boolean Compute (const AppDef_MultiLine& Line, const Standard_Integer fpt, const Standard_Integer lpt, math_Vector& Para, const TColStd_Array1OfReal& Knots, TColStd_Array1OfInteger& Mults); + + Standard_EXPORT Standard_Boolean ComputeCurve (const AppDef_MultiLine& Line, const Standard_Integer firspt, const Standard_Integer lastpt); + + Standard_EXPORT void Parameters (const AppDef_MultiLine& Line, const Standard_Integer firstP, const Standard_Integer LastP, math_Vector& TheParameters) const; + + Standard_EXPORT Standard_Real SearchFirstLambda (const AppDef_MultiLine& Line, const math_Vector& Para, const TColStd_Array1OfReal& Knots, const math_Vector& V, const Standard_Integer index) const; + + Standard_EXPORT Standard_Real SearchLastLambda (const AppDef_MultiLine& Line, const math_Vector& Para, const TColStd_Array1OfReal& Knots, const math_Vector& V, const Standard_Integer index) const; + + Standard_EXPORT void TangencyVector (const AppDef_MultiLine& Line, const AppParCurves_MultiCurve& C, const Standard_Real U, math_Vector& V) const; + + Standard_EXPORT void FirstTangencyVector (const AppDef_MultiLine& Line, const Standard_Integer index, math_Vector& V) const; + + Standard_EXPORT void LastTangencyVector (const AppDef_MultiLine& Line, const Standard_Integer index, math_Vector& V) const; + + Standard_EXPORT void FindRealConstraints (const AppDef_MultiLine& Line); + + + AppParCurves_MultiBSpCurve TheMultiBSpCurve; + Standard_Boolean alldone; + Standard_Boolean tolreached; + Approx_ParametrizationType Par; + Handle(TColStd_HArray1OfReal) myParameters; + Handle(TColStd_HArray1OfReal) myfirstParam; + Handle(TColStd_HArray1OfReal) myknots; + Handle(TColStd_HArray1OfInteger) mymults; + Standard_Boolean myhasknots; + Standard_Boolean myhasmults; + Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints; + Standard_Integer mydegremin; + Standard_Integer mydegremax; + Standard_Real mytol3d; + Standard_Real mytol2d; + Standard_Real currenttol3d; + Standard_Real currenttol2d; + Standard_Boolean mycut; + Standard_Boolean mysquares; + Standard_Integer myitermax; + AppParCurves_Constraint myfirstC; + AppParCurves_Constraint mylastC; + AppParCurves_Constraint realfirstC; + AppParCurves_Constraint reallastC; + Standard_Integer mycont; + Standard_Real mylambda1; + Standard_Real mylambda2; + + +}; + + + + + + + +#endif // _AppDef_BSplineCompute_HeaderFile diff --git a/src/AppDef/AppDef_BSplineCompute_0.cxx b/src/AppDef/AppDef_BSplineCompute_0.cxx new file mode 100644 index 0000000000..503991db2f --- /dev/null +++ b/src/AppDef/AppDef_BSplineCompute_0.cxx @@ -0,0 +1,73 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define LineTool AppDef_MyLineTool +#define LineTool_hxx +#define Approx_MyBSplGradient AppDef_MyBSplGradientOfBSplineCompute +#define Approx_MyBSplGradient_hxx +#define Approx_BSpParLeastSquareOfMyBSplGradient AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute +#define Approx_BSpParLeastSquareOfMyBSplGradient_hxx +#define Approx_BSpParFunctionOfMyBSplGradient AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute +#define Approx_BSpParFunctionOfMyBSplGradient_hxx +#define Approx_BSpGradient_BFGSOfMyBSplGradient AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute +#define Approx_BSpGradient_BFGSOfMyBSplGradient_hxx +#define Approx_BSpParLeastSquareOfMyBSplGradient AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute +#define Approx_BSpParLeastSquareOfMyBSplGradient_hxx +#define Approx_BSpParFunctionOfMyBSplGradient AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute +#define Approx_BSpParFunctionOfMyBSplGradient_hxx +#define Approx_BSpGradient_BFGSOfMyBSplGradient AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute +#define Approx_BSpGradient_BFGSOfMyBSplGradient_hxx +#define Approx_MyGradientbis AppDef_MyGradientbisOfBSplineCompute +#define Approx_MyGradientbis_hxx +#define Approx_ParLeastSquareOfMyGradientbis AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute +#define Approx_ParLeastSquareOfMyGradientbis_hxx +#define Approx_ResConstraintOfMyGradientbis AppDef_ResConstraintOfMyGradientbisOfBSplineCompute +#define Approx_ResConstraintOfMyGradientbis_hxx +#define Approx_ParFunctionOfMyGradientbis AppDef_ParFunctionOfMyGradientbisOfBSplineCompute +#define Approx_ParFunctionOfMyGradientbis_hxx +#define Approx_Gradient_BFGSOfMyGradientbis AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute +#define Approx_Gradient_BFGSOfMyGradientbis_hxx +#define Approx_ParLeastSquareOfMyGradientbis AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute +#define Approx_ParLeastSquareOfMyGradientbis_hxx +#define Approx_ResConstraintOfMyGradientbis AppDef_ResConstraintOfMyGradientbisOfBSplineCompute +#define Approx_ResConstraintOfMyGradientbis_hxx +#define Approx_ParFunctionOfMyGradientbis AppDef_ParFunctionOfMyGradientbisOfBSplineCompute +#define Approx_ParFunctionOfMyGradientbis_hxx +#define Approx_Gradient_BFGSOfMyGradientbis AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute +#define Approx_Gradient_BFGSOfMyGradientbis_hxx +#define Approx_BSplComputeLine AppDef_BSplineCompute +#define Approx_BSplComputeLine_hxx +#include + diff --git a/src/AppDef/AppDef_Compute.hxx b/src/AppDef/AppDef_Compute.hxx new file mode 100644 index 0000000000..91a6ed031c --- /dev/null +++ b/src/AppDef/AppDef_Compute.hxx @@ -0,0 +1,155 @@ +// 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_Compute_HeaderFile +#define _AppDef_Compute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_MyGradientOfCompute; +class AppDef_ParLeastSquareOfMyGradientOfCompute; +class AppDef_ResConstraintOfMyGradientOfCompute; +class AppDef_ParFunctionOfMyGradientOfCompute; +class AppDef_Gradient_BFGSOfMyGradientOfCompute; +class AppParCurves_MultiCurve; +class AppParCurves_MultiBSpCurve; + + + +class AppDef_Compute +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_Compute(const AppDef_MultiLine& Line, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-3, const Standard_Real Tolerance2d = 1.0e-6, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT AppDef_Compute(const AppDef_MultiLine& Line, const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT AppDef_Compute(const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT AppDef_Compute(const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT void Init (const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT void Perform (const AppDef_MultiLine& Line); + + Standard_EXPORT void SetDegrees (const Standard_Integer degreemin, const Standard_Integer degreemax); + + Standard_EXPORT void SetTolerances (const Standard_Real Tolerance3d, const Standard_Real Tolerance2d); + + Standard_EXPORT void SetConstraints (const AppParCurves_Constraint firstC, const AppParCurves_Constraint lastC); + + Standard_EXPORT Standard_Boolean IsAllApproximated() const; + + Standard_EXPORT Standard_Boolean IsToleranceReached() const; + + Standard_EXPORT void Error (const Standard_Integer Index, Standard_Real& tol3d, Standard_Real& tol2d) const; + + Standard_EXPORT Standard_Integer NbMultiCurves() const; + + Standard_EXPORT const AppParCurves_MultiCurve& Value (const Standard_Integer Index = 1) const; + + Standard_EXPORT AppParCurves_MultiCurve& ChangeValue (const Standard_Integer Index = 1); + + Standard_EXPORT const AppParCurves_MultiBSpCurve& SplineValue(); + + Standard_EXPORT void Parametrization (Approx_ParametrizationType& partype) const; + + Standard_EXPORT const TColStd_Array1OfReal& Parameters (const Standard_Integer Index = 1) const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT Standard_Boolean Compute (const AppDef_MultiLine& Line, const Standard_Integer fpt, const Standard_Integer lpt, math_Vector& Para, Standard_Real& TheTol3d, Standard_Real& TheTol2d); + + Standard_EXPORT Standard_Boolean ComputeCurve (const AppDef_MultiLine& Line, const Standard_Integer firspt, const Standard_Integer lastpt); + + Standard_EXPORT void Parameters (const AppDef_MultiLine& Line, const Standard_Integer firstP, const Standard_Integer LastP, math_Vector& TheParameters) const; + + Standard_EXPORT Standard_Real SearchFirstLambda (const AppDef_MultiLine& Line, const math_Vector& Para, const math_Vector& V, const Standard_Integer index) const; + + Standard_EXPORT Standard_Real SearchLastLambda (const AppDef_MultiLine& Line, const math_Vector& Para, const math_Vector& V, const Standard_Integer index) const; + + Standard_EXPORT void FirstTangencyVector (const AppDef_MultiLine& Line, const Standard_Integer index, math_Vector& V) const; + + Standard_EXPORT void LastTangencyVector (const AppDef_MultiLine& Line, const Standard_Integer index, math_Vector& V) const; + + + AppParCurves_SequenceOfMultiCurve myMultiCurves; + AppParCurves_MultiCurve TheMultiCurve; + AppParCurves_MultiBSpCurve myspline; + Standard_Boolean alldone; + Standard_Boolean tolreached; + Approx_ParametrizationType Par; + Handle(TColStd_HArray1OfReal) myParameters; + Handle(TColStd_HArray1OfReal) myfirstParam; + Approx_SequenceOfHArray1OfReal myPar; + TColStd_SequenceOfReal Tolers3d; + TColStd_SequenceOfReal Tolers2d; + Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints; + Standard_Integer mydegremin; + Standard_Integer mydegremax; + Standard_Real mytol3d; + Standard_Real mytol2d; + Standard_Real currenttol3d; + Standard_Real currenttol2d; + Standard_Boolean mycut; + Standard_Boolean mysquares; + Standard_Integer myitermax; + AppParCurves_Constraint myfirstC; + AppParCurves_Constraint mylastC; + Standard_Integer myMultiLineNb; + Standard_Boolean myIsClear; + + +}; + + + + + + + +#endif // _AppDef_Compute_HeaderFile diff --git a/src/AppDef/AppDef_Compute_0.cxx b/src/AppDef/AppDef_Compute_0.cxx new file mode 100644 index 0000000000..2ed50bbc2d --- /dev/null +++ b/src/AppDef/AppDef_Compute_0.cxx @@ -0,0 +1,55 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define LineTool AppDef_MyLineTool +#define LineTool_hxx +#define Approx_MyGradient AppDef_MyGradientOfCompute +#define Approx_MyGradient_hxx +#define Approx_ParLeastSquareOfMyGradient AppDef_ParLeastSquareOfMyGradientOfCompute +#define Approx_ParLeastSquareOfMyGradient_hxx +#define Approx_ResConstraintOfMyGradient AppDef_ResConstraintOfMyGradientOfCompute +#define Approx_ResConstraintOfMyGradient_hxx +#define Approx_ParFunctionOfMyGradient AppDef_ParFunctionOfMyGradientOfCompute +#define Approx_ParFunctionOfMyGradient_hxx +#define Approx_Gradient_BFGSOfMyGradient AppDef_Gradient_BFGSOfMyGradientOfCompute +#define Approx_Gradient_BFGSOfMyGradient_hxx +#define Approx_ParLeastSquareOfMyGradient AppDef_ParLeastSquareOfMyGradientOfCompute +#define Approx_ParLeastSquareOfMyGradient_hxx +#define Approx_ResConstraintOfMyGradient AppDef_ResConstraintOfMyGradientOfCompute +#define Approx_ResConstraintOfMyGradient_hxx +#define Approx_ParFunctionOfMyGradient AppDef_ParFunctionOfMyGradientOfCompute +#define Approx_ParFunctionOfMyGradient_hxx +#define Approx_Gradient_BFGSOfMyGradient AppDef_Gradient_BFGSOfMyGradientOfCompute +#define Approx_Gradient_BFGSOfMyGradient_hxx +#define Approx_ComputeLine AppDef_Compute +#define Approx_ComputeLine_hxx +#include + diff --git a/src/AppDef/AppDef_Gradient_BFGSOfMyGradientOfCompute.hxx b/src/AppDef/AppDef_Gradient_BFGSOfMyGradientOfCompute.hxx new file mode 100644 index 0000000000..0628b2115c --- /dev/null +++ b/src/AppDef/AppDef_Gradient_BFGSOfMyGradientOfCompute.hxx @@ -0,0 +1,75 @@ +// 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_Gradient_BFGSOfMyGradientOfCompute_HeaderFile +#define _AppDef_Gradient_BFGSOfMyGradientOfCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_MyGradientOfCompute; +class AppDef_ParLeastSquareOfMyGradientOfCompute; +class AppDef_ResConstraintOfMyGradientOfCompute; +class AppDef_ParFunctionOfMyGradientOfCompute; +class math_MultipleVarFunctionWithGradient; + + + +class AppDef_Gradient_BFGSOfMyGradientOfCompute : public math_BFGS +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_Gradient_BFGSOfMyGradientOfCompute(math_MultipleVarFunctionWithGradient& F, const math_Vector& StartingPoint, const Standard_Real Tolerance3d, const Standard_Real Tolerance2d, const Standard_Real Eps, const Standard_Integer NbIterations = 200); + + Standard_EXPORT virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunctionWithGradient& F) const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + Standard_Real myTol3d; + Standard_Real myTol2d; + + +}; + + + + + + + +#endif // _AppDef_Gradient_BFGSOfMyGradientOfCompute_HeaderFile diff --git a/src/AppDef/AppDef_Gradient_BFGSOfMyGradientOfCompute_0.cxx b/src/AppDef/AppDef_Gradient_BFGSOfMyGradientOfCompute_0.cxx new file mode 100644 index 0000000000..18e63b77b1 --- /dev/null +++ b/src/AppDef/AppDef_Gradient_BFGSOfMyGradientOfCompute_0.cxx @@ -0,0 +1,43 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_ParLeastSquare AppDef_ParLeastSquareOfMyGradientOfCompute +#define AppParCurves_ParLeastSquare_hxx +#define AppParCurves_ResConstraint AppDef_ResConstraintOfMyGradientOfCompute +#define AppParCurves_ResConstraint_hxx +#define AppParCurves_ParFunction AppDef_ParFunctionOfMyGradientOfCompute +#define AppParCurves_ParFunction_hxx +#define AppParCurves_Gradient_BFGS AppDef_Gradient_BFGSOfMyGradientOfCompute +#define AppParCurves_Gradient_BFGS_hxx +#define AppParCurves_Gradient AppDef_MyGradientOfCompute +#define AppParCurves_Gradient_hxx +#include + diff --git a/src/AppDef/AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute.hxx b/src/AppDef/AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute.hxx new file mode 100644 index 0000000000..f9442d93d2 --- /dev/null +++ b/src/AppDef/AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute.hxx @@ -0,0 +1,75 @@ +// 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_Gradient_BFGSOfMyGradientbisOfBSplineCompute_HeaderFile +#define _AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_MyGradientbisOfBSplineCompute; +class AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute; +class AppDef_ResConstraintOfMyGradientbisOfBSplineCompute; +class AppDef_ParFunctionOfMyGradientbisOfBSplineCompute; +class math_MultipleVarFunctionWithGradient; + + + +class AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute : public math_BFGS +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute(math_MultipleVarFunctionWithGradient& F, const math_Vector& StartingPoint, const Standard_Real Tolerance3d, const Standard_Real Tolerance2d, const Standard_Real Eps, const Standard_Integer NbIterations = 200); + + Standard_EXPORT virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunctionWithGradient& F) const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + Standard_Real myTol3d; + Standard_Real myTol2d; + + +}; + + + + + + + +#endif // _AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute_HeaderFile diff --git a/src/AppDef/AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute_0.cxx b/src/AppDef/AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute_0.cxx new file mode 100644 index 0000000000..0cdf67f51c --- /dev/null +++ b/src/AppDef/AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute_0.cxx @@ -0,0 +1,43 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_ParLeastSquare AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute +#define AppParCurves_ParLeastSquare_hxx +#define AppParCurves_ResConstraint AppDef_ResConstraintOfMyGradientbisOfBSplineCompute +#define AppParCurves_ResConstraint_hxx +#define AppParCurves_ParFunction AppDef_ParFunctionOfMyGradientbisOfBSplineCompute +#define AppParCurves_ParFunction_hxx +#define AppParCurves_Gradient_BFGS AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute +#define AppParCurves_Gradient_BFGS_hxx +#define AppParCurves_Gradient AppDef_MyGradientbisOfBSplineCompute +#define AppParCurves_Gradient_hxx +#include + diff --git a/src/AppDef/AppDef_Gradient_BFGSOfTheGradient.hxx b/src/AppDef/AppDef_Gradient_BFGSOfTheGradient.hxx new file mode 100644 index 0000000000..45476317be --- /dev/null +++ b/src/AppDef/AppDef_Gradient_BFGSOfTheGradient.hxx @@ -0,0 +1,75 @@ +// 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_Gradient_BFGSOfTheGradient_HeaderFile +#define _AppDef_Gradient_BFGSOfTheGradient_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_TheGradient; +class AppDef_ParLeastSquareOfTheGradient; +class AppDef_ResConstraintOfTheGradient; +class AppDef_ParFunctionOfTheGradient; +class math_MultipleVarFunctionWithGradient; + + + +class AppDef_Gradient_BFGSOfTheGradient : public math_BFGS +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_Gradient_BFGSOfTheGradient(math_MultipleVarFunctionWithGradient& F, const math_Vector& StartingPoint, const Standard_Real Tolerance3d, const Standard_Real Tolerance2d, const Standard_Real Eps, const Standard_Integer NbIterations = 200); + + Standard_EXPORT virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunctionWithGradient& F) const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + Standard_Real myTol3d; + Standard_Real myTol2d; + + +}; + + + + + + + +#endif // _AppDef_Gradient_BFGSOfTheGradient_HeaderFile diff --git a/src/AppDef/AppDef_Gradient_BFGSOfTheGradient_0.cxx b/src/AppDef/AppDef_Gradient_BFGSOfTheGradient_0.cxx new file mode 100644 index 0000000000..6ea918159e --- /dev/null +++ b/src/AppDef/AppDef_Gradient_BFGSOfTheGradient_0.cxx @@ -0,0 +1,43 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_ParLeastSquare AppDef_ParLeastSquareOfTheGradient +#define AppParCurves_ParLeastSquare_hxx +#define AppParCurves_ResConstraint AppDef_ResConstraintOfTheGradient +#define AppParCurves_ResConstraint_hxx +#define AppParCurves_ParFunction AppDef_ParFunctionOfTheGradient +#define AppParCurves_ParFunction_hxx +#define AppParCurves_Gradient_BFGS AppDef_Gradient_BFGSOfTheGradient +#define AppParCurves_Gradient_BFGS_hxx +#define AppParCurves_Gradient AppDef_TheGradient +#define AppParCurves_Gradient_hxx +#include + diff --git a/src/AppDef/AppDef_LinearCriteria.cdl b/src/AppDef/AppDef_LinearCriteria.cdl deleted file mode 100644 index 799442d6c1..0000000000 --- a/src/AppDef/AppDef_LinearCriteria.cdl +++ /dev/null @@ -1,130 +0,0 @@ --- 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. - -class LinearCriteria from AppDef inherits SmoothCriterion from AppDef - - ---Purpose: defined an Linear Criteria to used in variational - -- Smoothing of points. - - -uses - Vector from math, - Matrix from math, - Curve from FEmTool, - HAssemblyTable from FEmTool, - ElementaryCriterion from FEmTool, - HArray2OfInteger from TColStd, - HArray1OfReal from TColStd, - Array1OfReal from TColStd, - MultiLine from AppDef, - MyLineTool from AppDef - -raises - NotImplemented, - DomainError - - - -is - Create(SSP: MultiLine from AppDef; - FirstPoint, LastPoint: Integer) returns LinearCriteria; - - SetParameters(me : mutable; Parameters : HArray1OfReal); - - SetCurve(me : mutable; C :Curve from FEmTool) - is static; - - GetCurve(me; C : out Curve from FEmTool) - is static; - - SetEstimation(me : mutable; E1, E2, E3 : Real) - is static; - - EstLength(me : mutable) - ---C++: return & - returns Real is static; - - GetEstimation(me; E1, E2, E3 : out Real) - is static; - - AssemblyTable(me) - returns HAssemblyTable from FEmTool - is static; - - DependenceTable(me) - returns HArray2OfInteger from TColStd - is static; - - - QualityValues (me : mutable; J1min, J2min, J3min : Real; - J1, J2, J3 : out Real) - returns Integer is static; - - ErrorValues(me : mutable; - MaxError, QuadraticError, AverageError : out Real) - is static; - - Hessian(me : mutable ; - Element : Integer; - Dimension1 : Integer; - Dimension2 : Integer; - H : out Matrix from math) - raises DomainError -- If DependenceTable(Dimension1,Dimension2) is False - is static; - - - Gradient(me : mutable; - Element : Integer; - Dimension : Integer; - G : out Vector from math) - is static; - - InputVector(me : mutable; X : Vector from math; - AssTable : HAssemblyTable from FEmTool) - ---Purpose: Convert the assembly Vector in an Curve; - -- - raises DomainError; - - SetWeight(me: mutable; - QuadraticWeight, QualityWeight : Real; - percentJ1, percentJ2, percentJ3 : Real) - is static; - - GetWeight(me; QuadraticWeight, QualityWeight : out Real) - is static; - - SetWeight(me: mutable; - Weight : Array1OfReal) - is static; - - BuildCache(me: mutable; E : Integer) is private; - -fields -mySSP : MultiLine from AppDef; -myParameters : HArray1OfReal; -myCache : HArray1OfReal; -myCriteria : ElementaryCriterion from FEmTool[3]; -myEstimation: Real[3]; -myQuadraticWeight, myQualityWeight : Real; -myPercent : Real[3]; -myPntWeight : Array1OfReal; -myCurve : Curve from FEmTool; -myLength : Real; -myE : Integer; -IF, IL : Integer; -end LinearCriteria; - - diff --git a/src/AppDef/AppDef_LinearCriteria.cxx b/src/AppDef/AppDef_LinearCriteria.cxx index f00ef8c697..6a167eb375 100644 --- a/src/AppDef/AppDef_LinearCriteria.cxx +++ b/src/AppDef/AppDef_LinearCriteria.cxx @@ -14,23 +14,29 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include -#include -#include -#include +#include +#include #include -#include +#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include static Standard_Integer order(const Handle(PLib_Base)& B) { diff --git a/src/AppDef/AppDef_LinearCriteria.hxx b/src/AppDef/AppDef_LinearCriteria.hxx new file mode 100644 index 0000000000..2163021f78 --- /dev/null +++ b/src/AppDef/AppDef_LinearCriteria.hxx @@ -0,0 +1,125 @@ +// 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_LinearCriteria_HeaderFile +#define _AppDef_LinearCriteria_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class FEmTool_ElementaryCriterion; +class FEmTool_Curve; +class Standard_NotImplemented; +class Standard_DomainError; +class AppDef_MultiLine; +class math_Matrix; + + +class AppDef_LinearCriteria; +DEFINE_STANDARD_HANDLE(AppDef_LinearCriteria, AppDef_SmoothCriterion) + +//! defined an Linear Criteria to used in variational +//! Smoothing of points. +class AppDef_LinearCriteria : public AppDef_SmoothCriterion +{ + +public: + + + Standard_EXPORT AppDef_LinearCriteria(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint); + + Standard_EXPORT void SetParameters (const Handle(TColStd_HArray1OfReal)& Parameters); + + Standard_EXPORT void SetCurve (const Handle(FEmTool_Curve)& C); + + Standard_EXPORT void GetCurve (Handle(FEmTool_Curve)& C) const; + + Standard_EXPORT void SetEstimation (const Standard_Real E1, const Standard_Real E2, const Standard_Real E3); + + Standard_EXPORT Standard_Real& EstLength(); + + Standard_EXPORT void GetEstimation (Standard_Real& E1, Standard_Real& E2, Standard_Real& E3) const; + + Standard_EXPORT Handle(FEmTool_HAssemblyTable) AssemblyTable() const; + + Standard_EXPORT Handle(TColStd_HArray2OfInteger) DependenceTable() const; + + Standard_EXPORT Standard_Integer QualityValues (const Standard_Real J1min, const Standard_Real J2min, const Standard_Real J3min, Standard_Real& J1, Standard_Real& J2, Standard_Real& J3); + + Standard_EXPORT void ErrorValues (Standard_Real& MaxError, Standard_Real& QuadraticError, Standard_Real& AverageError); + + Standard_EXPORT void Hessian (const Standard_Integer Element, const Standard_Integer Dimension1, const Standard_Integer Dimension2, math_Matrix& H); + + Standard_EXPORT void Gradient (const Standard_Integer Element, const Standard_Integer Dimension, math_Vector& G); + + //! Convert the assembly Vector in an Curve; + Standard_EXPORT void InputVector (const math_Vector& X, const Handle(FEmTool_HAssemblyTable)& AssTable); + + Standard_EXPORT void SetWeight (const Standard_Real QuadraticWeight, const Standard_Real QualityWeight, const Standard_Real percentJ1, const Standard_Real percentJ2, const Standard_Real percentJ3); + + Standard_EXPORT void GetWeight (Standard_Real& QuadraticWeight, Standard_Real& QualityWeight) const; + + Standard_EXPORT void SetWeight (const TColStd_Array1OfReal& Weight); + + + + + DEFINE_STANDARD_RTTI(AppDef_LinearCriteria,AppDef_SmoothCriterion) + +protected: + + + + +private: + + + Standard_EXPORT void BuildCache (const Standard_Integer E); + + AppDef_MultiLine mySSP; + Handle(TColStd_HArray1OfReal) myParameters; + Handle(TColStd_HArray1OfReal) myCache; + Handle(FEmTool_ElementaryCriterion) myCriteria[3]; + Standard_Real myEstimation[3]; + Standard_Real myQuadraticWeight; + Standard_Real myQualityWeight; + Standard_Real myPercent[3]; + TColStd_Array1OfReal myPntWeight; + Handle(FEmTool_Curve) myCurve; + Standard_Real myLength; + Standard_Integer myE; + Standard_Integer IF; + Standard_Integer IL; + + +}; + + + + + + + +#endif // _AppDef_LinearCriteria_HeaderFile diff --git a/src/AppDef/AppDef_MultiLine.cdl b/src/AppDef/AppDef_MultiLine.cdl deleted file mode 100644 index 8d37552deb..0000000000 --- a/src/AppDef/AppDef_MultiLine.cdl +++ /dev/null @@ -1,161 +0,0 @@ --- 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. - -class MultiLine from AppDef - - - ---Purpose: This class describes the organized set of points used in the - -- approximations. A MultiLine is composed of n - -- MultiPointConstraints. - -- The approximation of the MultiLine will be done in the order - -- of the given n MultiPointConstraints. - -- - -- - -- Example of a MultiLine composed of MultiPointConstraints: - -- - -- P1______P2_____P3______P4________........_____PNbMult - -- - -- Q1______Q2_____Q3______Q4________........_____QNbMult - -- . . - -- . . - -- . . - -- R1______R2_____R3______R4________........_____RNbMult - -- - -- - -- Pi, Qi, ..., Ri are points of dimension 2 or 3. - -- - -- (P1, Q1, ...R1), ...(Pn, Qn, ...Rn) n= 1,...NbMult are - -- MultiPointConstraints. - -- There are NbPoints points in each MultiPointConstraint. - - - -uses MultiPointConstraint from AppDef, - HArray1OfMultiPointConstraint from AppDef, - Array1OfMultiPointConstraint from AppDef, - Array1OfPnt from TColgp, - Array1OfPnt2d from TColgp, - OStream from Standard - - -raises ConstructionError from Standard, - DimensionError from Standard, - OutOfRange from Standard - -is - - - Create - ---Purpose: creates an undefined MultiLine. - - returns MultiLine from AppDef; - - - Create(NbMult: Integer) - ---Purpose: given the number NbMult of MultiPointConstraints of this - -- MultiLine , it initializes all the fields.SetValue must be - -- called in order for the values of the multipoint - -- constraint to be taken into account. - -- An exception is raised if NbMult < 0. - - returns MultiLine from AppDef - raises ConstructionError from Standard; - - - Create(tabMultiP: Array1OfMultiPointConstraint) - ---Purpose: Constructs a MultiLine with an array of MultiPointConstraints. - - returns MultiLine from AppDef - raises ConstructionError from Standard; - - - Create(tabP3d: Array1OfPnt) - ---Purpose: The MultiLine constructed will have one line of - -- 3d points without their tangencies. - - returns MultiLine from AppDef - raises ConstructionError from Standard; - - - Create(tabP2d: Array1OfPnt2d) - ---Purpose: The MultiLine constructed will have one line of - -- 2d points without their tangencies. - - returns MultiLine from AppDef - raises ConstructionError from Standard; - - - NbMultiPoints(me) - ---Purpose: returns the number of MultiPointConstraints of the - -- MultiLine. - - returns Integer - is static; - - - NbPoints(me) - ---Purpose: returns the number of Points from MultiPoints composing - -- the MultiLine. - - returns Integer - is static; - - - SetParameter(me: in out; Index: Integer; U: Real) - ---Purpose: Sets the value of the parameter for the - -- MultiPointConstraint at position Index. - -- Exceptions - -- - Standard_OutOfRange if Index is less - -- than 0 or Index is greater than the number - -- of Multipoint constraints in the MultiLine. - raises OutOfRange from Standard - is static; - - - SetValue(me: in out; Index: Integer; MPoint: MultiPointConstraint) - ---Purpose: It sets the MultiPointConstraint of range Index to the - -- value MPoint. - -- An exception is raised if Index < 0 or Index> MPoint. - -- An exception is raised if the dimensions of the - -- MultiPoints are different. - - raises OutOfRange from Standard, - DimensionError from Standard - is static; - - - Value(me; Index: Integer) - ---Purpose: returns the MultiPointConstraint of range Index - -- An exception is raised if Index<0 or Index>MPoint. - - returns MultiPointConstraint from AppDef - raises OutOfRange from Standard - is static; - - - Dump(me; o: in out OStream) - ---Purpose: Prints on the stream o information on the current - -- state of the object. - -- Is used to redefine the operator <<. - - is static; - - -fields - -tabMult: HArray1OfMultiPointConstraint from AppDef is protected; - -end MultiLine from AppDef; diff --git a/src/AppDef/AppDef_MultiLine.cxx b/src/AppDef/AppDef_MultiLine.cxx index 51b136d4dd..dd980ca6f6 100644 --- a/src/AppDef/AppDef_MultiLine.cxx +++ b/src/AppDef/AppDef_MultiLine.cxx @@ -14,11 +14,12 @@ // Lpa, le 3/12/91 -#include -#include #include +#include +#include #include - +#include +#include AppDef_MultiLine::AppDef_MultiLine(){} diff --git a/src/AppDef/AppDef_MultiLine.hxx b/src/AppDef/AppDef_MultiLine.hxx new file mode 100644 index 0000000000..5ff98794c2 --- /dev/null +++ b/src/AppDef/AppDef_MultiLine.hxx @@ -0,0 +1,142 @@ +// 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_MultiLine_HeaderFile +#define _AppDef_MultiLine_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Standard_ConstructionError; +class Standard_DimensionError; +class Standard_OutOfRange; +class AppDef_MultiPointConstraint; + + +//! This class describes the organized set of points used in the +//! approximations. A MultiLine is composed of n +//! MultiPointConstraints. +//! The approximation of the MultiLine will be done in the order +//! of the given n MultiPointConstraints. +//! +//! Example of a MultiLine composed of MultiPointConstraints: +//! +//! P1______P2_____P3______P4________........_____PNbMult +//! +//! Q1______Q2_____Q3______Q4________........_____QNbMult +//! . . +//! . . +//! . . +//! R1______R2_____R3______R4________........_____RNbMult +//! +//! Pi, Qi, ..., Ri are points of dimension 2 or 3. +//! +//! (P1, Q1, ...R1), ...(Pn, Qn, ...Rn) n= 1,...NbMult are +//! MultiPointConstraints. +//! There are NbPoints points in each MultiPointConstraint. +class AppDef_MultiLine +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! creates an undefined MultiLine. + Standard_EXPORT AppDef_MultiLine(); + + //! given the number NbMult of MultiPointConstraints of this + //! MultiLine , it initializes all the fields.SetValue must be + //! called in order for the values of the multipoint + //! constraint to be taken into account. + //! An exception is raised if NbMult < 0. + Standard_EXPORT AppDef_MultiLine(const Standard_Integer NbMult); + + //! Constructs a MultiLine with an array of MultiPointConstraints. + Standard_EXPORT AppDef_MultiLine(const AppDef_Array1OfMultiPointConstraint& tabMultiP); + + //! The MultiLine constructed will have one line of + //! 3d points without their tangencies. + Standard_EXPORT AppDef_MultiLine(const TColgp_Array1OfPnt& tabP3d); + + //! The MultiLine constructed will have one line of + //! 2d points without their tangencies. + Standard_EXPORT AppDef_MultiLine(const TColgp_Array1OfPnt2d& tabP2d); + + //! returns the number of MultiPointConstraints of the + //! MultiLine. + Standard_EXPORT Standard_Integer NbMultiPoints() const; + + //! returns the number of Points from MultiPoints composing + //! the MultiLine. + Standard_EXPORT Standard_Integer NbPoints() const; + + //! Sets the value of the parameter for the + //! MultiPointConstraint at position Index. + //! Exceptions + //! - Standard_OutOfRange if Index is less + //! than 0 or Index is greater than the number + //! of Multipoint constraints in the MultiLine. + Standard_EXPORT void SetParameter (const Standard_Integer Index, const Standard_Real U); + + //! It sets the MultiPointConstraint of range Index to the + //! value MPoint. + //! An exception is raised if Index < 0 or Index> MPoint. + //! An exception is raised if the dimensions of the + //! MultiPoints are different. + Standard_EXPORT void SetValue (const Standard_Integer Index, const AppDef_MultiPointConstraint& MPoint); + + //! returns the MultiPointConstraint of range Index + //! An exception is raised if Index<0 or Index>MPoint. + Standard_EXPORT AppDef_MultiPointConstraint Value (const Standard_Integer Index) const; + + //! Prints on the stream o information on the current + //! state of the object. + //! Is used to redefine the operator <<. + Standard_EXPORT void Dump (Standard_OStream& o) const; + + + + +protected: + + + + Handle(AppDef_HArray1OfMultiPointConstraint) tabMult; + + +private: + + + + + +}; + + + + + + + +#endif // _AppDef_MultiLine_HeaderFile diff --git a/src/AppDef/AppDef_MultiPointConstraint.cdl b/src/AppDef/AppDef_MultiPointConstraint.cdl deleted file mode 100644 index 64ca3dc35e..0000000000 --- a/src/AppDef/AppDef_MultiPointConstraint.cdl +++ /dev/null @@ -1,293 +0,0 @@ --- 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. - -class MultiPointConstraint from AppDef - - inherits MultiPoint from AppParCurves - - ---Purpose: Describes a MultiPointConstraint used in a - -- Multiline. MultiPointConstraints are composed - -- of several two or three-dimensional points. - -- The purpose is to define the corresponding - -- points that share a common constraint in order - -- to compute the approximation of several lines in parallel. - -- Notes: - -- - The order of points of a MultiPointConstraints is very important. - -- Users must give 3D points first, and then 2D points. - -- - The constraints for the points included in a - -- MultiPointConstraint are always identical for - -- all points, including the parameter. - -- - If a MultiPointConstraint is a "tangency" - -- point, the point is also a "passing" point. - - - -uses Pnt from gp, - Pnt2d from gp, - Vec from gp, - Vec2d from gp, - Array1OfPnt from TColgp, - Array1OfPnt2d from TColgp, - Array1OfVec from TColgp, - Array1OfVec2d from TColgp, - Constraint from AppParCurves, - OStream from Standard, - TShared from MMgt - -raises OutOfRange from Standard, - ConstructionError from Standard, - DimensionError from Standard - - -is - - Create - ---Purpose: creates an undefined MultiPointConstraint. - - returns MultiPointConstraint from AppDef; - - - Create(NbPoints, NbPoints2d: Integer) - ---Purpose: 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. - - returns MultiPointConstraint from AppDef; - - - - Create(tabP: Array1OfPnt) - ---Purpose: creates a MultiPoint only composed of 3D points. - - returns MultiPointConstraint from AppDef; - - - Create(tabP: Array1OfPnt2d) - ---Purpose: creates a MultiPoint only composed of 2D points. - - returns MultiPointConstraint from AppDef; - - - Create(tabP: Array1OfPnt; tabP2d: Array1OfPnt2d) - ---Purpose: 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. - - returns MultiPointConstraint from AppDef; - - - - Create(tabP: Array1OfPnt; tabP2d: Array1OfPnt2d; - tabVec: Array1OfVec; tabVec2d: Array1OfVec2d; - tabCur: Array1OfVec; tabCur2d: Array1OfVec2d) - ---Purpose: creates a MultiPointConstraint with a constraint of - -- Curvature. - -- An exception is raised if - -- (length of + length of ) is different - -- from (length of + length of ) or - -- from (length of + length of ) - - returns MultiPointConstraint from AppDef - raises ConstructionError from Standard; - - - - Create(tabP: Array1OfPnt; tabP2d: Array1OfPnt2d; - tabVec: Array1OfVec; tabVec2d: Array1OfVec2d) - ---Purpose: creates a MultiPointConstraint with a constraint of - -- Tangency. - -- An exception is raised if - -- (length of + length of ) is different - -- from (length of + length of ) - - returns MultiPointConstraint from AppDef - raises ConstructionError from Standard; - - - - - Create(tabP: Array1OfPnt; tabVec: Array1OfVec; tabCur: Array1OfVec) - ---Purpose: creates a MultiPointConstraint only composed of 3d points - -- with constraints of curvature. - -- An exception is raised if the length of tabP is different - -- from the length of tabVec or from tabCur. - - returns MultiPointConstraint from AppDef - raises ConstructionError; - - - Create(tabP: Array1OfPnt; tabVec: Array1OfVec) - ---Purpose: creates a MultiPointConstraint only composed of 3d points - -- with constraints of tangency. - -- An exception is raised if the length of tabP is different - -- from the length of tabVec. - - returns MultiPointConstraint - raises ConstructionError; - - - - Create(tabP2d: Array1OfPnt2d; tabVec2d: Array1OfVec2d) - ---Purpose: creates a MultiPointConstraint only composed of 2d points - -- with constraints of tangency. - -- An exception is raised if the length of tabP is different - -- from the length of tabVec2d. - - returns MultiPointConstraint from AppDef - raises ConstructionError from Standard; - - - Create(tabP2d: Array1OfPnt2d; - tabVec2d: Array1OfVec2d; - tabCur2d: Array1OfVec2d) - ---Purpose: creates a MultiPointConstraint only composed of 2d points - -- with constraints of curvature. - -- An exception is raised if the length of tabP is different - -- from the length of tabVec2d or from tabCur2d. - - returns MultiPointConstraint from AppDef - raises ConstructionError from Standard; - - - - - SetTang(me: in out; Index: Integer; Tang: Vec) - ---Purpose: sets the value of the tangency of the point of range - -- Index. - -- An exception is raised if Index <0 or if Index > number - -- of 3d points. - -- An exception is raised if Tang has an incorrect number of - -- dimensions. - - raises OutOfRange from Standard, - DimensionError from Standard - is static; - - - Tang(me; Index: Integer) - ---Purpose: returns the tangency value of the point of range Index. - -- An exception is raised if Index < 0 or if Index > number - -- of 3d points. - - returns Vec from gp - raises OutOfRange from Standard - is static; - - - SetTang2d(me: in out; Index: Integer; Tang2d: Vec2d) - ---Purpose: sets the value of the tangency of the point of range - -- Index. - -- An exception is raised if Index total number of Points - -- An exception is raised if Tang has an incorrect number of - -- dimensions. - - raises OutOfRange from Standard, - DimensionError from Standard - is static; - - - Tang2d(me; Index: Integer) - ---Purpose: returns the tangency value of the point of range Index. - -- An exception is raised if Index < number of 3d points or - -- if Index > total number of points. - - returns Vec2d from gp - raises OutOfRange from Standard - is static; - - - SetCurv(me: in out; Index: Integer; Curv: Vec) - ---Purpose: Vec sets the value of the normal vector at the - -- point of index Index. The norm of the normal - -- vector at the point of position Index is set to the normal curvature. - -- An exception is raised if Index <0 or if Index > number - -- of 3d points. - -- An exception is raised if Curv has an incorrect number of - -- dimensions. - - raises OutOfRange from Standard, - DimensionError from Standard - is static; - - - Curv(me; Index: Integer) - ---Purpose: returns the normal vector at the point of range Index. - -- An exception is raised if Index < 0 or if Index > number - -- of 3d points. - - returns Vec from gp - raises OutOfRange from Standard - is static; - - - - SetCurv2d(me: in out; Index: Integer; Curv2d: Vec2d) - ---Purpose: Vec sets the value of the normal vector at the - -- point of index Index. The norm of the normal - -- vector at the point of position Index is set to the normal curvature. - -- An exception is raised if Index <0 or if Index > number - -- of 3d points. - -- An exception is raised if Curv has an incorrect number of - -- dimensions. - - raises OutOfRange from Standard, - DimensionError from Standard - is static; - - - Curv2d(me; Index: Integer) - ---Purpose: returns the normal vector at the point of range Index. - -- An exception is raised if Index < 0 or if Index > number - -- of 3d points. - - returns Vec2d from gp - is static; - - - IsTangencyPoint(me) - ---Purpose: returns True if the MultiPoint has a tangency value. - - returns Boolean - raises OutOfRange from Standard - is static; - - IsCurvaturePoint(me) - ---Purpose: returns True if the MultiPoint has a curvature value. - - returns Boolean - raises OutOfRange from Standard - is static; - - - Dump(me; o: in out OStream) - ---Purpose: Prints on the stream o information on the current - -- state of the object. - -- Is used to redefine the operator <<. - - is redefined; - - - -fields - -ttabTang: TShared from MMgt; -ttabCurv: TShared from MMgt; -ttabTang2d: TShared from MMgt; -ttabCurv2d: TShared from MMgt; - - -end MultiPointConstraint from AppDef; diff --git a/src/AppDef/AppDef_MultiPointConstraint.cxx b/src/AppDef/AppDef_MultiPointConstraint.cxx index 90731d59ee..be5005da25 100644 --- a/src/AppDef/AppDef_MultiPointConstraint.cxx +++ b/src/AppDef/AppDef_MultiPointConstraint.cxx @@ -14,16 +14,19 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include +#include #include +#include +#include #include #include #include #include - #define tabTang Handle(TColgp_HArray1OfVec)::DownCast (ttabTang) #define tabCurv Handle(TColgp_HArray1OfVec)::DownCast (ttabCurv) #define tabTang2d Handle(TColgp_HArray1OfVec2d)::DownCast (ttabTang2d) diff --git a/src/AppDef/AppDef_MultiPointConstraint.hxx b/src/AppDef/AppDef_MultiPointConstraint.hxx new file mode 100644 index 0000000000..12333778fa --- /dev/null +++ b/src/AppDef/AppDef_MultiPointConstraint.hxx @@ -0,0 +1,211 @@ +// 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_MultiPointConstraint_HeaderFile +#define _AppDef_MultiPointConstraint_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class MMgt_TShared; +class Standard_OutOfRange; +class Standard_ConstructionError; +class Standard_DimensionError; +class gp_Vec; +class gp_Vec2d; + + +//! Describes a MultiPointConstraint used in a +//! Multiline. MultiPointConstraints are composed +//! of several two or three-dimensional points. +//! The purpose is to define the corresponding +//! points that share a common constraint in order +//! to compute the approximation of several lines in parallel. +//! Notes: +//! - The order of points of a MultiPointConstraints is very important. +//! Users must give 3D points first, and then 2D points. +//! - The constraints for the points included in a +//! MultiPointConstraint are always identical for +//! all points, including the parameter. +//! - If a MultiPointConstraint is a "tangency" +//! point, the point is also a "passing" point. +class AppDef_MultiPointConstraint : public AppParCurves_MultiPoint +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! creates an undefined MultiPointConstraint. + Standard_EXPORT AppDef_MultiPointConstraint(); + + //! 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. + Standard_EXPORT AppDef_MultiPointConstraint(const Standard_Integer NbPoints, const Standard_Integer NbPoints2d); + + //! creates a MultiPoint only composed of 3D points. + Standard_EXPORT AppDef_MultiPointConstraint(const TColgp_Array1OfPnt& tabP); + + //! creates a MultiPoint only composed of 2D points. + Standard_EXPORT AppDef_MultiPointConstraint(const TColgp_Array1OfPnt2d& tabP); + + //! 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. + Standard_EXPORT AppDef_MultiPointConstraint(const TColgp_Array1OfPnt& tabP, const TColgp_Array1OfPnt2d& tabP2d); + + //! creates a MultiPointConstraint with a constraint of + //! Curvature. + //! An exception is raised if + //! (length of + length of ) is different + //! from (length of + length of ) or + //! from (length of + length of ) + Standard_EXPORT AppDef_MultiPointConstraint(const TColgp_Array1OfPnt& tabP, const TColgp_Array1OfPnt2d& tabP2d, const TColgp_Array1OfVec& tabVec, const TColgp_Array1OfVec2d& tabVec2d, const TColgp_Array1OfVec& tabCur, const TColgp_Array1OfVec2d& tabCur2d); + + //! creates a MultiPointConstraint with a constraint of + //! Tangency. + //! An exception is raised if + //! (length of + length of ) is different + //! from (length of + length of ) + Standard_EXPORT AppDef_MultiPointConstraint(const TColgp_Array1OfPnt& tabP, const TColgp_Array1OfPnt2d& tabP2d, const TColgp_Array1OfVec& tabVec, const TColgp_Array1OfVec2d& tabVec2d); + + //! creates a MultiPointConstraint only composed of 3d points + //! with constraints of curvature. + //! An exception is raised if the length of tabP is different + //! from the length of tabVec or from tabCur. + Standard_EXPORT AppDef_MultiPointConstraint(const TColgp_Array1OfPnt& tabP, const TColgp_Array1OfVec& tabVec, const TColgp_Array1OfVec& tabCur); + + //! creates a MultiPointConstraint only composed of 3d points + //! with constraints of tangency. + //! An exception is raised if the length of tabP is different + //! from the length of tabVec. + Standard_EXPORT AppDef_MultiPointConstraint(const TColgp_Array1OfPnt& tabP, const TColgp_Array1OfVec& tabVec); + + //! creates a MultiPointConstraint only composed of 2d points + //! with constraints of tangency. + //! An exception is raised if the length of tabP is different + //! from the length of tabVec2d. + Standard_EXPORT AppDef_MultiPointConstraint(const TColgp_Array1OfPnt2d& tabP2d, const TColgp_Array1OfVec2d& tabVec2d); + + //! creates a MultiPointConstraint only composed of 2d points + //! with constraints of curvature. + //! An exception is raised if the length of tabP is different + //! from the length of tabVec2d or from tabCur2d. + Standard_EXPORT AppDef_MultiPointConstraint(const TColgp_Array1OfPnt2d& tabP2d, const TColgp_Array1OfVec2d& tabVec2d, const TColgp_Array1OfVec2d& tabCur2d); + + //! sets the value of the tangency of the point of range + //! Index. + //! An exception is raised if Index <0 or if Index > number + //! of 3d points. + //! An exception is raised if Tang has an incorrect number of + //! dimensions. + Standard_EXPORT void SetTang (const Standard_Integer Index, const gp_Vec& Tang); + + //! returns the tangency value of the point of range Index. + //! An exception is raised if Index < 0 or if Index > number + //! of 3d points. + Standard_EXPORT gp_Vec Tang (const Standard_Integer Index) const; + + //! sets the value of the tangency of the point of range + //! Index. + //! An exception is raised if Index total number of Points + //! An exception is raised if Tang has an incorrect number of + //! dimensions. + Standard_EXPORT void SetTang2d (const Standard_Integer Index, const gp_Vec2d& Tang2d); + + //! returns the tangency value of the point of range Index. + //! An exception is raised if Index < number of 3d points or + //! if Index > total number of points. + Standard_EXPORT gp_Vec2d Tang2d (const Standard_Integer Index) const; + + //! Vec sets the value of the normal vector at the + //! point of index Index. The norm of the normal + //! vector at the point of position Index is set to the normal curvature. + //! An exception is raised if Index <0 or if Index > number + //! of 3d points. + //! An exception is raised if Curv has an incorrect number of + //! dimensions. + Standard_EXPORT void SetCurv (const Standard_Integer Index, const gp_Vec& Curv); + + //! returns the normal vector at the point of range Index. + //! An exception is raised if Index < 0 or if Index > number + //! of 3d points. + Standard_EXPORT gp_Vec Curv (const Standard_Integer Index) const; + + //! Vec sets the value of the normal vector at the + //! point of index Index. The norm of the normal + //! vector at the point of position Index is set to the normal curvature. + //! An exception is raised if Index <0 or if Index > number + //! of 3d points. + //! An exception is raised if Curv has an incorrect number of + //! dimensions. + Standard_EXPORT void SetCurv2d (const Standard_Integer Index, const gp_Vec2d& Curv2d); + + //! returns the normal vector at the point of range Index. + //! An exception is raised if Index < 0 or if Index > number + //! of 3d points. + Standard_EXPORT gp_Vec2d Curv2d (const Standard_Integer Index) const; + + //! returns True if the MultiPoint has a tangency value. + Standard_EXPORT Standard_Boolean IsTangencyPoint() const; + + //! returns True if the MultiPoint has a curvature value. + Standard_EXPORT Standard_Boolean IsCurvaturePoint() 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 Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + Handle(MMgt_TShared) ttabTang; + Handle(MMgt_TShared) ttabCurv; + Handle(MMgt_TShared) ttabTang2d; + Handle(MMgt_TShared) ttabCurv2d; + + +}; + + + + + + + +#endif // _AppDef_MultiPointConstraint_HeaderFile diff --git a/src/AppDef/AppDef_MyBSplGradientOfBSplineCompute.hxx b/src/AppDef/AppDef_MyBSplGradientOfBSplineCompute.hxx new file mode 100644 index 0000000000..4d08cc0d75 --- /dev/null +++ b/src/AppDef/AppDef_MyBSplGradientOfBSplineCompute.hxx @@ -0,0 +1,100 @@ +// 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_MyBSplGradientOfBSplineCompute_HeaderFile +#define _AppDef_MyBSplGradientOfBSplineCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class StdFail_NotDone; +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute; +class AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute; +class AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute; +class AppParCurves_MultiBSpCurve; + + + +class AppDef_MyBSplGradientOfBSplineCompute +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_MyBSplGradientOfBSplineCompute(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 1); + + Standard_EXPORT AppDef_MyBSplGradientOfBSplineCompute(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations, const Standard_Real lambda1, const Standard_Real lambda2); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiBSpCurve Value() const; + + Standard_EXPORT Standard_Real Error (const Standard_Integer Index) const; + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT Standard_Real AverageError() const; + + + + +protected: + + + Standard_EXPORT void Perform (const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 200); + + + + +private: + + + + AppParCurves_MultiBSpCurve SCU; + math_Vector ParError; + Standard_Real AvError; + Standard_Real MError3d; + Standard_Real MError2d; + Standard_Real mylambda1; + Standard_Real mylambda2; + Standard_Boolean myIsLambdaDefined; + Standard_Boolean Done; + + +}; + + + + + + + +#endif // _AppDef_MyBSplGradientOfBSplineCompute_HeaderFile diff --git a/src/AppDef/AppDef_MyBSplGradientOfBSplineCompute_0.cxx b/src/AppDef/AppDef_MyBSplGradientOfBSplineCompute_0.cxx new file mode 100644 index 0000000000..25f34074e5 --- /dev/null +++ b/src/AppDef/AppDef_MyBSplGradientOfBSplineCompute_0.cxx @@ -0,0 +1,42 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_BSpParLeastSquare AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute +#define AppParCurves_BSpParLeastSquare_hxx +#define AppParCurves_BSpParFunction AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute +#define AppParCurves_BSpParFunction_hxx +#define AppParCurves_BSpGradient_BFGS AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute +#define AppParCurves_BSpGradient_BFGS_hxx +#define AppParCurves_BSpGradient AppDef_MyBSplGradientOfBSplineCompute +#define AppParCurves_BSpGradient_hxx +#include + diff --git a/src/AppDef/AppDef_MyGradientOfCompute.hxx b/src/AppDef/AppDef_MyGradientOfCompute.hxx new file mode 100644 index 0000000000..9051722f6d --- /dev/null +++ b/src/AppDef/AppDef_MyGradientOfCompute.hxx @@ -0,0 +1,92 @@ +// 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_MyGradientOfCompute_HeaderFile +#define _AppDef_MyGradientOfCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class StdFail_NotDone; +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_ParLeastSquareOfMyGradientOfCompute; +class AppDef_ResConstraintOfMyGradientOfCompute; +class AppDef_ParFunctionOfMyGradientOfCompute; +class AppDef_Gradient_BFGSOfMyGradientOfCompute; +class AppParCurves_MultiCurve; + + + +class AppDef_MyGradientOfCompute +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_MyGradientOfCompute(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 200); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiCurve Value() const; + + Standard_EXPORT Standard_Real Error (const Standard_Integer Index) const; + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT Standard_Real AverageError() const; + + + + +protected: + + + + + +private: + + + + AppParCurves_MultiCurve SCU; + math_Vector ParError; + Standard_Real AvError; + Standard_Real MError3d; + Standard_Real MError2d; + Standard_Boolean Done; + + +}; + + + + + + + +#endif // _AppDef_MyGradientOfCompute_HeaderFile diff --git a/src/AppDef/AppDef_MyGradientOfCompute_0.cxx b/src/AppDef/AppDef_MyGradientOfCompute_0.cxx new file mode 100644 index 0000000000..cc0c08ed6e --- /dev/null +++ b/src/AppDef/AppDef_MyGradientOfCompute_0.cxx @@ -0,0 +1,45 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_ParLeastSquare AppDef_ParLeastSquareOfMyGradientOfCompute +#define AppParCurves_ParLeastSquare_hxx +#define AppParCurves_ResConstraint AppDef_ResConstraintOfMyGradientOfCompute +#define AppParCurves_ResConstraint_hxx +#define AppParCurves_ParFunction AppDef_ParFunctionOfMyGradientOfCompute +#define AppParCurves_ParFunction_hxx +#define AppParCurves_Gradient_BFGS AppDef_Gradient_BFGSOfMyGradientOfCompute +#define AppParCurves_Gradient_BFGS_hxx +#define AppParCurves_Gradient AppDef_MyGradientOfCompute +#define AppParCurves_Gradient_hxx +#include + diff --git a/src/AppDef/AppDef_MyGradientbisOfBSplineCompute.hxx b/src/AppDef/AppDef_MyGradientbisOfBSplineCompute.hxx new file mode 100644 index 0000000000..d4052518e0 --- /dev/null +++ b/src/AppDef/AppDef_MyGradientbisOfBSplineCompute.hxx @@ -0,0 +1,92 @@ +// 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_MyGradientbisOfBSplineCompute_HeaderFile +#define _AppDef_MyGradientbisOfBSplineCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class StdFail_NotDone; +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute; +class AppDef_ResConstraintOfMyGradientbisOfBSplineCompute; +class AppDef_ParFunctionOfMyGradientbisOfBSplineCompute; +class AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute; +class AppParCurves_MultiCurve; + + + +class AppDef_MyGradientbisOfBSplineCompute +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_MyGradientbisOfBSplineCompute(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 200); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiCurve Value() const; + + Standard_EXPORT Standard_Real Error (const Standard_Integer Index) const; + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT Standard_Real AverageError() const; + + + + +protected: + + + + + +private: + + + + AppParCurves_MultiCurve SCU; + math_Vector ParError; + Standard_Real AvError; + Standard_Real MError3d; + Standard_Real MError2d; + Standard_Boolean Done; + + +}; + + + + + + + +#endif // _AppDef_MyGradientbisOfBSplineCompute_HeaderFile diff --git a/src/AppDef/AppDef_MyGradientbisOfBSplineCompute_0.cxx b/src/AppDef/AppDef_MyGradientbisOfBSplineCompute_0.cxx new file mode 100644 index 0000000000..a23a696a8a --- /dev/null +++ b/src/AppDef/AppDef_MyGradientbisOfBSplineCompute_0.cxx @@ -0,0 +1,45 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_ParLeastSquare AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute +#define AppParCurves_ParLeastSquare_hxx +#define AppParCurves_ResConstraint AppDef_ResConstraintOfMyGradientbisOfBSplineCompute +#define AppParCurves_ResConstraint_hxx +#define AppParCurves_ParFunction AppDef_ParFunctionOfMyGradientbisOfBSplineCompute +#define AppParCurves_ParFunction_hxx +#define AppParCurves_Gradient_BFGS AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute +#define AppParCurves_Gradient_BFGS_hxx +#define AppParCurves_Gradient AppDef_MyGradientbisOfBSplineCompute +#define AppParCurves_Gradient_hxx +#include + diff --git a/src/AppDef/AppDef_MyLineTool.cdl b/src/AppDef/AppDef_MyLineTool.cdl deleted file mode 100644 index f8ef4f689e..0000000000 --- a/src/AppDef/AppDef_MyLineTool.cdl +++ /dev/null @@ -1,122 +0,0 @@ --- Created on: 1993-01-20 --- 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. - -class MyLineTool from AppDef - ---Purpose: example of MultiLine tool corresponding to the tools of the packages - -- AppParCurves and Approx. For Approx, the tool will not addd points - -- if the algorithms want some. - -uses MultiLine from AppDef, - Pnt from gp, - Pnt2d from gp, - Vec from gp, - Vec2d from gp, - Array1OfPnt from TColgp, - Array1OfPnt2d from TColgp, - Array1OfVec from TColgp, - Array1OfVec2d from TColgp, - Status from Approx - -is - - - FirstPoint(myclass; ML: MultiLine) returns Integer; - ---Purpose: Returns the first index of multipoints of the MultiLine. - - - LastPoint(myclass; ML: MultiLine) returns Integer; - ---Purpose: Returns the last index of multipoints of the MultiLine. - - - - NbP2d(myclass; ML: MultiLine) returns Integer; - ---Purpose: Returns the number of 2d points of a MultiLine. - - - NbP3d(myclass; ML: MultiLine) returns Integer; - ---Purpose: Returns the number of 3d points of a MultiLine. - - - Value(myclass; ML: MultiLine; MPointIndex: Integer; - tabPt: out Array1OfPnt); - ---Purpose: returns the 3d points of the multipoint - -- when only 3d points exist. - - - Value(myclass; ML: MultiLine; MPointIndex: Integer; - tabPt2d: out Array1OfPnt2d); - ---Purpose: returns the 2d points of the multipoint - -- when only 2d points exist. - - - Value(myclass; ML: MultiLine; MPointIndex: Integer; - tabPt: out Array1OfPnt; tabPt2d: out Array1OfPnt2d); - ---Purpose: returns the 3d and 2d points of the multipoint - -- . - - - Tangency(myclass; ML: MultiLine; MPointIndex: Integer; - tabV: out Array1OfVec) returns Boolean; - ---Purpose: returns the 3d points of the multipoint - -- when only 3d points exist. - - - Tangency(myclass; ML: MultiLine; MPointIndex: Integer; - tabV2d: out Array1OfVec2d) returns Boolean; - ---Purpose: returns the 2d tangency points of the multipoint - -- only when 2d points exist. - - - Tangency(myclass; ML: MultiLine; MPointIndex: Integer; - tabV: out Array1OfVec; tabV2d: out Array1OfVec2d) - returns Boolean; - ---Purpose: returns the 3d and 2d points of the multipoint - -- . - - - Curvature(myclass; ML: MultiLine; MPointIndex: Integer; - tabV: out Array1OfVec) returns Boolean; - ---Purpose: returns the 3d curvatures of the multipoint - -- when only 3d points exist. - - - Curvature(myclass; ML: MultiLine; MPointIndex: Integer; - tabV2d: out Array1OfVec2d) returns Boolean; - ---Purpose: returns the 2d curvatures of the multipoint - -- only when 2d points exist. - - - Curvature(myclass; ML: MultiLine; MPointIndex: Integer; - tabV: out Array1OfVec; tabV2d: out Array1OfVec2d) - returns Boolean; - ---Purpose: returns the 3d and 2d curvatures of the multipoint - -- . - - - - WhatStatus(myclass; ML: MultiLine; I1, I2: Integer) - returns Status from Approx; - ---Purpose: returns NoPointsAdded - - MakeMLBetween(myclass; ML: MultiLine; I1, I2: Integer; - NbPMin: Integer) - returns MultiLine; - ---Purpose: Is never called in the algorithms. - -- Nothing is done. - ---C++: return & - - -end MyLineTool; diff --git a/src/AppDef/AppDef_MyLineTool.cxx b/src/AppDef/AppDef_MyLineTool.cxx index 114cdc238f..1e3aa579a1 100644 --- a/src/AppDef/AppDef_MyLineTool.cxx +++ b/src/AppDef/AppDef_MyLineTool.cxx @@ -14,8 +14,9 @@ // AppDef_MyLineTool.cxx -#include +#include #include +#include #include #include #include diff --git a/src/AppDef/AppDef_MyLineTool.hxx b/src/AppDef/AppDef_MyLineTool.hxx new file mode 100644 index 0000000000..5e6881f8c4 --- /dev/null +++ b/src/AppDef/AppDef_MyLineTool.hxx @@ -0,0 +1,122 @@ +// Created on: 1993-01-20 +// 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 _AppDef_MyLineTool_HeaderFile +#define _AppDef_MyLineTool_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class AppDef_MultiLine; + + +//! example of MultiLine tool corresponding to the tools of the packages +//! AppParCurves and Approx. For Approx, the tool will not addd points +//! if the algorithms want some. +class AppDef_MyLineTool +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Returns the first index of multipoints of the MultiLine. + Standard_EXPORT static Standard_Integer FirstPoint (const AppDef_MultiLine& ML); + + //! Returns the last index of multipoints of the MultiLine. + Standard_EXPORT static Standard_Integer LastPoint (const AppDef_MultiLine& ML); + + //! Returns the number of 2d points of a MultiLine. + Standard_EXPORT static Standard_Integer NbP2d (const AppDef_MultiLine& ML); + + //! Returns the number of 3d points of a MultiLine. + Standard_EXPORT static Standard_Integer NbP3d (const AppDef_MultiLine& ML); + + //! returns the 3d points of the multipoint + //! when only 3d points exist. + Standard_EXPORT static void Value (const AppDef_MultiLine& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt); + + //! returns the 2d points of the multipoint + //! when only 2d points exist. + Standard_EXPORT static void Value (const AppDef_MultiLine& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt2d& tabPt2d); + + //! returns the 3d and 2d points of the multipoint + //! . + Standard_EXPORT static void Value (const AppDef_MultiLine& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt, TColgp_Array1OfPnt2d& tabPt2d); + + //! returns the 3d points of the multipoint + //! when only 3d points exist. + Standard_EXPORT static Standard_Boolean Tangency (const AppDef_MultiLine& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV); + + //! returns the 2d tangency points of the multipoint + //! only when 2d points exist. + Standard_EXPORT static Standard_Boolean Tangency (const AppDef_MultiLine& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec2d& tabV2d); + + //! returns the 3d and 2d points of the multipoint + //! . + Standard_EXPORT static Standard_Boolean Tangency (const AppDef_MultiLine& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV, TColgp_Array1OfVec2d& tabV2d); + + //! returns the 3d curvatures of the multipoint + //! when only 3d points exist. + Standard_EXPORT static Standard_Boolean Curvature (const AppDef_MultiLine& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV); + + //! returns the 2d curvatures of the multipoint + //! only when 2d points exist. + Standard_EXPORT static Standard_Boolean Curvature (const AppDef_MultiLine& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec2d& tabV2d); + + //! returns the 3d and 2d curvatures of the multipoint + //! . + Standard_EXPORT static Standard_Boolean Curvature (const AppDef_MultiLine& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV, TColgp_Array1OfVec2d& tabV2d); + + //! returns NoPointsAdded + Standard_EXPORT static Approx_Status WhatStatus (const AppDef_MultiLine& ML, const Standard_Integer I1, const Standard_Integer I2); + + //! Is never called in the algorithms. + //! Nothing is done. + Standard_EXPORT static AppDef_MultiLine& MakeMLBetween (const AppDef_MultiLine& ML, const Standard_Integer I1, const Standard_Integer I2, const Standard_Integer NbPMin); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _AppDef_MyLineTool_HeaderFile diff --git a/src/AppDef/AppDef_ParFunctionOfMyGradientOfCompute.hxx b/src/AppDef/AppDef_ParFunctionOfMyGradientOfCompute.hxx new file mode 100644 index 0000000000..b557a4e2ed --- /dev/null +++ b/src/AppDef/AppDef_ParFunctionOfMyGradientOfCompute.hxx @@ -0,0 +1,125 @@ +// 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_ParFunctionOfMyGradientOfCompute_HeaderFile +#define _AppDef_ParFunctionOfMyGradientOfCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_ParLeastSquareOfMyGradientOfCompute; +class AppDef_ResConstraintOfMyGradientOfCompute; +class AppParCurves_MultiCurve; + + + +class AppDef_ParFunctionOfMyGradientOfCompute : public math_MultipleVarFunctionWithGradient +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_ParFunctionOfMyGradientOfCompute(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const math_Vector& Parameters, const Standard_Integer Deg); + + Standard_EXPORT Standard_Integer NbVariables() const; + + Standard_EXPORT Standard_Boolean Value (const math_Vector& X, Standard_Real& F); + + Standard_EXPORT Standard_Boolean Gradient (const math_Vector& X, math_Vector& G); + + Standard_EXPORT Standard_Boolean Values (const math_Vector& X, Standard_Real& F, math_Vector& G); + + Standard_EXPORT const math_Vector& NewParameters() const; + + Standard_EXPORT const AppParCurves_MultiCurve& CurveValue(); + + Standard_EXPORT Standard_Real Error (const Standard_Integer IPoint, const Standard_Integer CurveIndex) const; + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT AppParCurves_Constraint FirstConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer FirstPoint) const; + + Standard_EXPORT AppParCurves_Constraint LastConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer LastPoint) const; + + + + +protected: + + + Standard_EXPORT void Perform (const math_Vector& X); + + + + +private: + + + + Standard_Boolean Done; + AppDef_MultiLine MyMultiLine; + AppParCurves_MultiCurve MyMultiCurve; + Standard_Integer Degre; + math_Vector myParameters; + Standard_Real FVal; + math_Vector ValGrad_F; + math_Matrix MyF; + math_Matrix PTLX; + math_Matrix PTLY; + math_Matrix PTLZ; + math_Matrix A; + math_Matrix DA; + AppDef_ParLeastSquareOfMyGradientOfCompute MyLeastSquare; + Standard_Boolean Contraintes; + Standard_Integer NbP; + Standard_Integer NbCu; + Standard_Integer Adeb; + Standard_Integer Afin; + Handle(TColStd_HArray1OfInteger) tabdim; + Standard_Real ERR3d; + Standard_Real ERR2d; + Standard_Integer FirstP; + Standard_Integer LastP; + Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints; + + +}; + + + + + + + +#endif // _AppDef_ParFunctionOfMyGradientOfCompute_HeaderFile diff --git a/src/AppDef/AppDef_ParFunctionOfMyGradientOfCompute_0.cxx b/src/AppDef/AppDef_ParFunctionOfMyGradientOfCompute_0.cxx new file mode 100644 index 0000000000..32c7a21e1f --- /dev/null +++ b/src/AppDef/AppDef_ParFunctionOfMyGradientOfCompute_0.cxx @@ -0,0 +1,37 @@ +// 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. + +#include + +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define Squares AppDef_ParLeastSquareOfMyGradientOfCompute +#define Squares_hxx +#define ResolCons AppDef_ResConstraintOfMyGradientOfCompute +#define ResolCons_hxx +#define AppParCurves_Function AppDef_ParFunctionOfMyGradientOfCompute +#define AppParCurves_Function_hxx +#include + diff --git a/src/AppDef/AppDef_ParFunctionOfMyGradientbisOfBSplineCompute.hxx b/src/AppDef/AppDef_ParFunctionOfMyGradientbisOfBSplineCompute.hxx new file mode 100644 index 0000000000..8fed57ee99 --- /dev/null +++ b/src/AppDef/AppDef_ParFunctionOfMyGradientbisOfBSplineCompute.hxx @@ -0,0 +1,125 @@ +// 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_ParFunctionOfMyGradientbisOfBSplineCompute_HeaderFile +#define _AppDef_ParFunctionOfMyGradientbisOfBSplineCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute; +class AppDef_ResConstraintOfMyGradientbisOfBSplineCompute; +class AppParCurves_MultiCurve; + + + +class AppDef_ParFunctionOfMyGradientbisOfBSplineCompute : public math_MultipleVarFunctionWithGradient +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_ParFunctionOfMyGradientbisOfBSplineCompute(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const math_Vector& Parameters, const Standard_Integer Deg); + + Standard_EXPORT Standard_Integer NbVariables() const; + + Standard_EXPORT Standard_Boolean Value (const math_Vector& X, Standard_Real& F); + + Standard_EXPORT Standard_Boolean Gradient (const math_Vector& X, math_Vector& G); + + Standard_EXPORT Standard_Boolean Values (const math_Vector& X, Standard_Real& F, math_Vector& G); + + Standard_EXPORT const math_Vector& NewParameters() const; + + Standard_EXPORT const AppParCurves_MultiCurve& CurveValue(); + + Standard_EXPORT Standard_Real Error (const Standard_Integer IPoint, const Standard_Integer CurveIndex) const; + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT AppParCurves_Constraint FirstConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer FirstPoint) const; + + Standard_EXPORT AppParCurves_Constraint LastConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer LastPoint) const; + + + + +protected: + + + Standard_EXPORT void Perform (const math_Vector& X); + + + + +private: + + + + Standard_Boolean Done; + AppDef_MultiLine MyMultiLine; + AppParCurves_MultiCurve MyMultiCurve; + Standard_Integer Degre; + math_Vector myParameters; + Standard_Real FVal; + math_Vector ValGrad_F; + math_Matrix MyF; + math_Matrix PTLX; + math_Matrix PTLY; + math_Matrix PTLZ; + math_Matrix A; + math_Matrix DA; + AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute MyLeastSquare; + Standard_Boolean Contraintes; + Standard_Integer NbP; + Standard_Integer NbCu; + Standard_Integer Adeb; + Standard_Integer Afin; + Handle(TColStd_HArray1OfInteger) tabdim; + Standard_Real ERR3d; + Standard_Real ERR2d; + Standard_Integer FirstP; + Standard_Integer LastP; + Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints; + + +}; + + + + + + + +#endif // _AppDef_ParFunctionOfMyGradientbisOfBSplineCompute_HeaderFile diff --git a/src/AppDef/AppDef_ParFunctionOfMyGradientbisOfBSplineCompute_0.cxx b/src/AppDef/AppDef_ParFunctionOfMyGradientbisOfBSplineCompute_0.cxx new file mode 100644 index 0000000000..41d34d82f1 --- /dev/null +++ b/src/AppDef/AppDef_ParFunctionOfMyGradientbisOfBSplineCompute_0.cxx @@ -0,0 +1,37 @@ +// 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. + +#include + +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define Squares AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute +#define Squares_hxx +#define ResolCons AppDef_ResConstraintOfMyGradientbisOfBSplineCompute +#define ResolCons_hxx +#define AppParCurves_Function AppDef_ParFunctionOfMyGradientbisOfBSplineCompute +#define AppParCurves_Function_hxx +#include + diff --git a/src/AppDef/AppDef_ParFunctionOfTheGradient.hxx b/src/AppDef/AppDef_ParFunctionOfTheGradient.hxx new file mode 100644 index 0000000000..c697ff1870 --- /dev/null +++ b/src/AppDef/AppDef_ParFunctionOfTheGradient.hxx @@ -0,0 +1,125 @@ +// 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_ParFunctionOfTheGradient_HeaderFile +#define _AppDef_ParFunctionOfTheGradient_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_ParLeastSquareOfTheGradient; +class AppDef_ResConstraintOfTheGradient; +class AppParCurves_MultiCurve; + + + +class AppDef_ParFunctionOfTheGradient : public math_MultipleVarFunctionWithGradient +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_ParFunctionOfTheGradient(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const math_Vector& Parameters, const Standard_Integer Deg); + + Standard_EXPORT Standard_Integer NbVariables() const; + + Standard_EXPORT Standard_Boolean Value (const math_Vector& X, Standard_Real& F); + + Standard_EXPORT Standard_Boolean Gradient (const math_Vector& X, math_Vector& G); + + Standard_EXPORT Standard_Boolean Values (const math_Vector& X, Standard_Real& F, math_Vector& G); + + Standard_EXPORT const math_Vector& NewParameters() const; + + Standard_EXPORT const AppParCurves_MultiCurve& CurveValue(); + + Standard_EXPORT Standard_Real Error (const Standard_Integer IPoint, const Standard_Integer CurveIndex) const; + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT AppParCurves_Constraint FirstConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer FirstPoint) const; + + Standard_EXPORT AppParCurves_Constraint LastConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer LastPoint) const; + + + + +protected: + + + Standard_EXPORT void Perform (const math_Vector& X); + + + + +private: + + + + Standard_Boolean Done; + AppDef_MultiLine MyMultiLine; + AppParCurves_MultiCurve MyMultiCurve; + Standard_Integer Degre; + math_Vector myParameters; + Standard_Real FVal; + math_Vector ValGrad_F; + math_Matrix MyF; + math_Matrix PTLX; + math_Matrix PTLY; + math_Matrix PTLZ; + math_Matrix A; + math_Matrix DA; + AppDef_ParLeastSquareOfTheGradient MyLeastSquare; + Standard_Boolean Contraintes; + Standard_Integer NbP; + Standard_Integer NbCu; + Standard_Integer Adeb; + Standard_Integer Afin; + Handle(TColStd_HArray1OfInteger) tabdim; + Standard_Real ERR3d; + Standard_Real ERR2d; + Standard_Integer FirstP; + Standard_Integer LastP; + Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints; + + +}; + + + + + + + +#endif // _AppDef_ParFunctionOfTheGradient_HeaderFile diff --git a/src/AppDef/AppDef_ParFunctionOfTheGradient_0.cxx b/src/AppDef/AppDef_ParFunctionOfTheGradient_0.cxx new file mode 100644 index 0000000000..c063452277 --- /dev/null +++ b/src/AppDef/AppDef_ParFunctionOfTheGradient_0.cxx @@ -0,0 +1,37 @@ +// 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. + +#include + +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define Squares AppDef_ParLeastSquareOfTheGradient +#define Squares_hxx +#define ResolCons AppDef_ResConstraintOfTheGradient +#define ResolCons_hxx +#define AppParCurves_Function AppDef_ParFunctionOfTheGradient +#define AppParCurves_Function_hxx +#include + diff --git a/src/AppDef/AppDef_ParLeastSquareOfMyGradientOfCompute.hxx b/src/AppDef/AppDef_ParLeastSquareOfMyGradientOfCompute.hxx new file mode 100644 index 0000000000..b26db72965 --- /dev/null +++ b/src/AppDef/AppDef_ParLeastSquareOfMyGradientOfCompute.hxx @@ -0,0 +1,175 @@ +// 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_ParLeastSquareOfMyGradientOfCompute_HeaderFile +#define _AppDef_ParLeastSquareOfMyGradientOfCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +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_ParLeastSquareOfMyGradientOfCompute +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_ParLeastSquareOfMyGradientOfCompute(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); + + Standard_EXPORT AppDef_ParLeastSquareOfMyGradientOfCompute(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol); + + Standard_EXPORT AppDef_ParLeastSquareOfMyGradientOfCompute(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); + + Standard_EXPORT AppDef_ParLeastSquareOfMyGradientOfCompute(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); + + Standard_EXPORT void Perform (const math_Vector& Parameters); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const Standard_Real l1, const Standard_Real l2); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const Standard_Real l1, const Standard_Real l2); + + 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); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiCurve BezierValue(); + + Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue(); + + Standard_EXPORT const math_Matrix& FunctionMatrix() const; + + Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const; + + Standard_EXPORT void ErrorGradient (math_Vector& Grad, Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT const math_Matrix& Distance(); + + Standard_EXPORT void Error (Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT Standard_Real FirstLambda() const; + + Standard_EXPORT Standard_Real LastLambda() const; + + Standard_EXPORT const math_Matrix& Points() const; + + Standard_EXPORT const math_Matrix& Poles() const; + + Standard_EXPORT const math_IntegerVector& KIndex() const; + + + + +protected: + + + Standard_EXPORT void Init (const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint); + + Standard_EXPORT Standard_Integer NbBColumns (const AppDef_MultiLine& SSP) const; + + Standard_EXPORT Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const; + + Standard_EXPORT Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const; + + 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); + + Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Vector& TheB); + + Standard_EXPORT void MakeTAA (math_Vector& TheA); + + 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_ParLeastSquareOfMyGradientOfCompute_HeaderFile diff --git a/src/AppDef/AppDef_ParLeastSquareOfMyGradientOfCompute_0.cxx b/src/AppDef/AppDef_ParLeastSquareOfMyGradientOfCompute_0.cxx new file mode 100644 index 0000000000..88f9208c5d --- /dev/null +++ b/src/AppDef/AppDef_ParLeastSquareOfMyGradientOfCompute_0.cxx @@ -0,0 +1,37 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_LeastSquare AppDef_ParLeastSquareOfMyGradientOfCompute +#define AppParCurves_LeastSquare_hxx +#include + diff --git a/src/AppDef/AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute.hxx b/src/AppDef/AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute.hxx new file mode 100644 index 0000000000..3faee51fa5 --- /dev/null +++ b/src/AppDef/AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute.hxx @@ -0,0 +1,175 @@ +// 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_ParLeastSquareOfMyGradientbisOfBSplineCompute_HeaderFile +#define _AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +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_ParLeastSquareOfMyGradientbisOfBSplineCompute +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute(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); + + Standard_EXPORT AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol); + + Standard_EXPORT AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute(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); + + Standard_EXPORT AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute(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); + + Standard_EXPORT void Perform (const math_Vector& Parameters); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const Standard_Real l1, const Standard_Real l2); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const Standard_Real l1, const Standard_Real l2); + + 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); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiCurve BezierValue(); + + Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue(); + + Standard_EXPORT const math_Matrix& FunctionMatrix() const; + + Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const; + + Standard_EXPORT void ErrorGradient (math_Vector& Grad, Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT const math_Matrix& Distance(); + + Standard_EXPORT void Error (Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT Standard_Real FirstLambda() const; + + Standard_EXPORT Standard_Real LastLambda() const; + + Standard_EXPORT const math_Matrix& Points() const; + + Standard_EXPORT const math_Matrix& Poles() const; + + Standard_EXPORT const math_IntegerVector& KIndex() const; + + + + +protected: + + + Standard_EXPORT void Init (const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint); + + Standard_EXPORT Standard_Integer NbBColumns (const AppDef_MultiLine& SSP) const; + + Standard_EXPORT Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const; + + Standard_EXPORT Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const; + + 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); + + Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Vector& TheB); + + Standard_EXPORT void MakeTAA (math_Vector& TheA); + + 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_ParLeastSquareOfMyGradientbisOfBSplineCompute_HeaderFile diff --git a/src/AppDef/AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute_0.cxx b/src/AppDef/AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute_0.cxx new file mode 100644 index 0000000000..fa4b9a8dc0 --- /dev/null +++ b/src/AppDef/AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute_0.cxx @@ -0,0 +1,37 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_LeastSquare AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute +#define AppParCurves_LeastSquare_hxx +#include + diff --git a/src/AppDef/AppDef_ParLeastSquareOfTheGradient.hxx b/src/AppDef/AppDef_ParLeastSquareOfTheGradient.hxx new file mode 100644 index 0000000000..6b142dd963 --- /dev/null +++ b/src/AppDef/AppDef_ParLeastSquareOfTheGradient.hxx @@ -0,0 +1,175 @@ +// 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_ParLeastSquareOfTheGradient_HeaderFile +#define _AppDef_ParLeastSquareOfTheGradient_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +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_ParLeastSquareOfTheGradient +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_ParLeastSquareOfTheGradient(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); + + Standard_EXPORT AppDef_ParLeastSquareOfTheGradient(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol); + + Standard_EXPORT AppDef_ParLeastSquareOfTheGradient(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); + + Standard_EXPORT AppDef_ParLeastSquareOfTheGradient(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); + + Standard_EXPORT void Perform (const math_Vector& Parameters); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const Standard_Real l1, const Standard_Real l2); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const Standard_Real l1, const Standard_Real l2); + + 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); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiCurve BezierValue(); + + Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue(); + + Standard_EXPORT const math_Matrix& FunctionMatrix() const; + + Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const; + + Standard_EXPORT void ErrorGradient (math_Vector& Grad, Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT const math_Matrix& Distance(); + + Standard_EXPORT void Error (Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT Standard_Real FirstLambda() const; + + Standard_EXPORT Standard_Real LastLambda() const; + + Standard_EXPORT const math_Matrix& Points() const; + + Standard_EXPORT const math_Matrix& Poles() const; + + Standard_EXPORT const math_IntegerVector& KIndex() const; + + + + +protected: + + + Standard_EXPORT void Init (const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint); + + Standard_EXPORT Standard_Integer NbBColumns (const AppDef_MultiLine& SSP) const; + + Standard_EXPORT Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const; + + Standard_EXPORT Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const; + + 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); + + Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Vector& TheB); + + Standard_EXPORT void MakeTAA (math_Vector& TheA); + + 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_ParLeastSquareOfTheGradient_HeaderFile diff --git a/src/AppDef/AppDef_ParLeastSquareOfTheGradient_0.cxx b/src/AppDef/AppDef_ParLeastSquareOfTheGradient_0.cxx new file mode 100644 index 0000000000..f634d57566 --- /dev/null +++ b/src/AppDef/AppDef_ParLeastSquareOfTheGradient_0.cxx @@ -0,0 +1,37 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_LeastSquare AppDef_ParLeastSquareOfTheGradient +#define AppParCurves_LeastSquare_hxx +#include + diff --git a/src/AppDef/AppDef_ResConstraintOfMyGradientOfCompute.hxx b/src/AppDef/AppDef_ResConstraintOfMyGradientOfCompute.hxx new file mode 100644 index 0000000000..10f1b6b582 --- /dev/null +++ b/src/AppDef/AppDef_ResConstraintOfMyGradientOfCompute.hxx @@ -0,0 +1,100 @@ +// 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_ResConstraintOfMyGradientOfCompute_HeaderFile +#define _AppDef_ResConstraintOfMyGradientOfCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppParCurves_MultiCurve; +class math_Matrix; + + + +class AppDef_ResConstraintOfMyGradientOfCompute +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_ResConstraintOfMyGradientOfCompute(const AppDef_MultiLine& SSP, AppParCurves_MultiCurve& SCurv, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& Constraints, const math_Matrix& Bern, const math_Matrix& DerivativeBern, const Standard_Real Tolerance = 1.0e-10); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT Standard_Real Error() const; + + Standard_EXPORT const math_Matrix& ConstraintMatrix() const; + + Standard_EXPORT const math_Vector& Duale() const; + + Standard_EXPORT const math_Matrix& ConstraintDerivative (const AppDef_MultiLine& SSP, const math_Vector& Parameters, const Standard_Integer Deg, const math_Matrix& DA); + + Standard_EXPORT const math_Matrix& InverseMatrix() const; + + + + +protected: + + + Standard_EXPORT Standard_Integer NbConstraints (const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints) const; + + Standard_EXPORT Standard_Integer NbColumns (const AppDef_MultiLine& SSP, const Standard_Integer Deg) const; + + + + +private: + + + + Standard_Boolean Done; + Standard_Real Err; + math_Matrix Cont; + math_Matrix DeCont; + math_Vector Secont; + math_Matrix CTCinv; + math_Vector Vardua; + Standard_Integer IncPass; + Standard_Integer IncTan; + Standard_Integer IncCurv; + TColStd_Array1OfInteger IPas; + TColStd_Array1OfInteger ITan; + TColStd_Array1OfInteger ICurv; + + +}; + + + + + + + +#endif // _AppDef_ResConstraintOfMyGradientOfCompute_HeaderFile diff --git a/src/AppDef/AppDef_ResConstraintOfMyGradientOfCompute_0.cxx b/src/AppDef/AppDef_ResConstraintOfMyGradientOfCompute_0.cxx new file mode 100644 index 0000000000..8d6f405167 --- /dev/null +++ b/src/AppDef/AppDef_ResConstraintOfMyGradientOfCompute_0.cxx @@ -0,0 +1,33 @@ +// 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. + +#include + +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_ResolConstraint AppDef_ResConstraintOfMyGradientOfCompute +#define AppParCurves_ResolConstraint_hxx +#include + diff --git a/src/AppDef/AppDef_ResConstraintOfMyGradientbisOfBSplineCompute.hxx b/src/AppDef/AppDef_ResConstraintOfMyGradientbisOfBSplineCompute.hxx new file mode 100644 index 0000000000..c7e8d87d10 --- /dev/null +++ b/src/AppDef/AppDef_ResConstraintOfMyGradientbisOfBSplineCompute.hxx @@ -0,0 +1,100 @@ +// 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_ResConstraintOfMyGradientbisOfBSplineCompute_HeaderFile +#define _AppDef_ResConstraintOfMyGradientbisOfBSplineCompute_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppParCurves_MultiCurve; +class math_Matrix; + + + +class AppDef_ResConstraintOfMyGradientbisOfBSplineCompute +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_ResConstraintOfMyGradientbisOfBSplineCompute(const AppDef_MultiLine& SSP, AppParCurves_MultiCurve& SCurv, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& Constraints, const math_Matrix& Bern, const math_Matrix& DerivativeBern, const Standard_Real Tolerance = 1.0e-10); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT Standard_Real Error() const; + + Standard_EXPORT const math_Matrix& ConstraintMatrix() const; + + Standard_EXPORT const math_Vector& Duale() const; + + Standard_EXPORT const math_Matrix& ConstraintDerivative (const AppDef_MultiLine& SSP, const math_Vector& Parameters, const Standard_Integer Deg, const math_Matrix& DA); + + Standard_EXPORT const math_Matrix& InverseMatrix() const; + + + + +protected: + + + Standard_EXPORT Standard_Integer NbConstraints (const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints) const; + + Standard_EXPORT Standard_Integer NbColumns (const AppDef_MultiLine& SSP, const Standard_Integer Deg) const; + + + + +private: + + + + Standard_Boolean Done; + Standard_Real Err; + math_Matrix Cont; + math_Matrix DeCont; + math_Vector Secont; + math_Matrix CTCinv; + math_Vector Vardua; + Standard_Integer IncPass; + Standard_Integer IncTan; + Standard_Integer IncCurv; + TColStd_Array1OfInteger IPas; + TColStd_Array1OfInteger ITan; + TColStd_Array1OfInteger ICurv; + + +}; + + + + + + + +#endif // _AppDef_ResConstraintOfMyGradientbisOfBSplineCompute_HeaderFile diff --git a/src/AppDef/AppDef_ResConstraintOfMyGradientbisOfBSplineCompute_0.cxx b/src/AppDef/AppDef_ResConstraintOfMyGradientbisOfBSplineCompute_0.cxx new file mode 100644 index 0000000000..7f924b3db2 --- /dev/null +++ b/src/AppDef/AppDef_ResConstraintOfMyGradientbisOfBSplineCompute_0.cxx @@ -0,0 +1,33 @@ +// 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. + +#include + +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_ResolConstraint AppDef_ResConstraintOfMyGradientbisOfBSplineCompute +#define AppParCurves_ResolConstraint_hxx +#include + diff --git a/src/AppDef/AppDef_ResConstraintOfTheGradient.hxx b/src/AppDef/AppDef_ResConstraintOfTheGradient.hxx new file mode 100644 index 0000000000..3d726a642f --- /dev/null +++ b/src/AppDef/AppDef_ResConstraintOfTheGradient.hxx @@ -0,0 +1,100 @@ +// 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_ResConstraintOfTheGradient_HeaderFile +#define _AppDef_ResConstraintOfTheGradient_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppParCurves_MultiCurve; +class math_Matrix; + + + +class AppDef_ResConstraintOfTheGradient +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_ResConstraintOfTheGradient(const AppDef_MultiLine& SSP, AppParCurves_MultiCurve& SCurv, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& Constraints, const math_Matrix& Bern, const math_Matrix& DerivativeBern, const Standard_Real Tolerance = 1.0e-10); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT Standard_Real Error() const; + + Standard_EXPORT const math_Matrix& ConstraintMatrix() const; + + Standard_EXPORT const math_Vector& Duale() const; + + Standard_EXPORT const math_Matrix& ConstraintDerivative (const AppDef_MultiLine& SSP, const math_Vector& Parameters, const Standard_Integer Deg, const math_Matrix& DA); + + Standard_EXPORT const math_Matrix& InverseMatrix() const; + + + + +protected: + + + Standard_EXPORT Standard_Integer NbConstraints (const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints) const; + + Standard_EXPORT Standard_Integer NbColumns (const AppDef_MultiLine& SSP, const Standard_Integer Deg) const; + + + + +private: + + + + Standard_Boolean Done; + Standard_Real Err; + math_Matrix Cont; + math_Matrix DeCont; + math_Vector Secont; + math_Matrix CTCinv; + math_Vector Vardua; + Standard_Integer IncPass; + Standard_Integer IncTan; + Standard_Integer IncCurv; + TColStd_Array1OfInteger IPas; + TColStd_Array1OfInteger ITan; + TColStd_Array1OfInteger ICurv; + + +}; + + + + + + + +#endif // _AppDef_ResConstraintOfTheGradient_HeaderFile diff --git a/src/AppDef/AppDef_ResConstraintOfTheGradient_0.cxx b/src/AppDef/AppDef_ResConstraintOfTheGradient_0.cxx new file mode 100644 index 0000000000..dbb3cce6f2 --- /dev/null +++ b/src/AppDef/AppDef_ResConstraintOfTheGradient_0.cxx @@ -0,0 +1,33 @@ +// 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. + +#include + +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_ResolConstraint AppDef_ResConstraintOfTheGradient +#define AppParCurves_ResolConstraint_hxx +#include + diff --git a/src/AppDef/AppDef_SmoothCriterion.cdl b/src/AppDef/AppDef_SmoothCriterion.cdl deleted file mode 100644 index b81eb3176a..0000000000 --- a/src/AppDef/AppDef_SmoothCriterion.cdl +++ /dev/null @@ -1,109 +0,0 @@ --- 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. - -deferred class SmoothCriterion from AppDef -inherits TShared from MMgt - - ---Purpose: defined criterion to smooth points in curve - - -uses - Vector from math, - Matrix from math, - Curve from FEmTool, - HAssemblyTable from FEmTool, - HArray2OfInteger from TColStd, - HArray1OfReal from TColStd, - Array1OfReal from TColStd - -raises - NotImplemented, - DomainError - - - -is - SetParameters(me : mutable; Parameters : HArray1OfReal) - is deferred; - - SetCurve(me : mutable; C :Curve from FEmTool) - is deferred; - - GetCurve(me; C : out Curve from FEmTool) - is deferred; - - SetEstimation(me : mutable; E1, E2, E3 : Real) - is deferred; - - EstLength(me : mutable) - ---C++: return & - returns Real is deferred; - - GetEstimation(me; E1, E2, E3 : out Real) - is deferred; - - AssemblyTable(me) - returns HAssemblyTable from FEmTool - is deferred; - - DependenceTable(me) - returns HArray2OfInteger from TColStd - is deferred; - - QualityValues (me : mutable; J1min, J2min, J3min : Real; - J1, J2, J3 : out Real) - returns Integer is deferred; - - ErrorValues(me : mutable; - MaxError, QuadraticError, AverageError : out Real) - is deferred; - - Hessian(me : mutable ; - Element : Integer; - Dimension1 : Integer; - Dimension2 : Integer; - H : out Matrix from math) - raises DomainError -- If DependenceTable(Dimension1,Dimension2) is False - is deferred; - - - Gradient(me : mutable; - Element : Integer; - Dimension : Integer; - G : out Vector from math) - is deferred; - - InputVector(me : mutable; X : Vector from math; - AssTable : HAssemblyTable from FEmTool) - ---Purpose: Convert the assembly Vector in an Curve; - -- - raises DomainError is deferred; - - SetWeight(me: mutable; - QuadraticWeight, QualityWeight : Real; - percentJ1, percentJ2, percentJ3 : Real) - is deferred; - - GetWeight(me; QuadraticWeight, QualityWeight : out Real) - is deferred; - - SetWeight(me: mutable; - Weight : Array1OfReal) - is deferred; - -end SmoothCriterion; - - diff --git a/src/AppDef/AppDef_SmoothCriterion.cxx b/src/AppDef/AppDef_SmoothCriterion.cxx index b316d20e53..5cd0fb9eea 100644 --- a/src/AppDef/AppDef_SmoothCriterion.cxx +++ b/src/AppDef/AppDef_SmoothCriterion.cxx @@ -14,4 +14,10 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include diff --git a/src/AppDef/AppDef_SmoothCriterion.hxx b/src/AppDef/AppDef_SmoothCriterion.hxx new file mode 100644 index 0000000000..74f10bee3d --- /dev/null +++ b/src/AppDef/AppDef_SmoothCriterion.hxx @@ -0,0 +1,103 @@ +// 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 +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_NotImplemented; +class Standard_DomainError; +class FEmTool_Curve; +class math_Matrix; + + +class AppDef_SmoothCriterion; +DEFINE_STANDARD_HANDLE(AppDef_SmoothCriterion, MMgt_TShared) + +//! defined criterion to smooth points in curve +class AppDef_SmoothCriterion : public MMgt_TShared +{ + +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_RTTI(AppDef_SmoothCriterion,MMgt_TShared) + +protected: + + + + +private: + + + + +}; + + + + + + + +#endif // _AppDef_SmoothCriterion_HeaderFile diff --git a/src/AppDef/AppDef_TheFunction.hxx b/src/AppDef/AppDef_TheFunction.hxx new file mode 100644 index 0000000000..1d99c450f5 --- /dev/null +++ b/src/AppDef/AppDef_TheFunction.hxx @@ -0,0 +1,125 @@ +// 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_TheFunction_HeaderFile +#define _AppDef_TheFunction_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_TheLeastSquares; +class AppDef_TheResol; +class AppParCurves_MultiCurve; + + + +class AppDef_TheFunction : public math_MultipleVarFunctionWithGradient +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_TheFunction(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const math_Vector& Parameters, const Standard_Integer Deg); + + Standard_EXPORT Standard_Integer NbVariables() const; + + Standard_EXPORT Standard_Boolean Value (const math_Vector& X, Standard_Real& F); + + Standard_EXPORT Standard_Boolean Gradient (const math_Vector& X, math_Vector& G); + + Standard_EXPORT Standard_Boolean Values (const math_Vector& X, Standard_Real& F, math_Vector& G); + + Standard_EXPORT const math_Vector& NewParameters() const; + + Standard_EXPORT const AppParCurves_MultiCurve& CurveValue(); + + Standard_EXPORT Standard_Real Error (const Standard_Integer IPoint, const Standard_Integer CurveIndex) const; + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT AppParCurves_Constraint FirstConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer FirstPoint) const; + + Standard_EXPORT AppParCurves_Constraint LastConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer LastPoint) const; + + + + +protected: + + + Standard_EXPORT void Perform (const math_Vector& X); + + + + +private: + + + + Standard_Boolean Done; + AppDef_MultiLine MyMultiLine; + AppParCurves_MultiCurve MyMultiCurve; + Standard_Integer Degre; + math_Vector myParameters; + Standard_Real FVal; + math_Vector ValGrad_F; + math_Matrix MyF; + math_Matrix PTLX; + math_Matrix PTLY; + math_Matrix PTLZ; + math_Matrix A; + math_Matrix DA; + AppDef_TheLeastSquares MyLeastSquare; + Standard_Boolean Contraintes; + Standard_Integer NbP; + Standard_Integer NbCu; + Standard_Integer Adeb; + Standard_Integer Afin; + Handle(TColStd_HArray1OfInteger) tabdim; + Standard_Real ERR3d; + Standard_Real ERR2d; + Standard_Integer FirstP; + Standard_Integer LastP; + Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints; + + +}; + + + + + + + +#endif // _AppDef_TheFunction_HeaderFile diff --git a/src/AppDef/AppDef_TheFunction_0.cxx b/src/AppDef/AppDef_TheFunction_0.cxx new file mode 100644 index 0000000000..0b3e01f3ee --- /dev/null +++ b/src/AppDef/AppDef_TheFunction_0.cxx @@ -0,0 +1,37 @@ +// 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. + +#include + +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define Squares AppDef_TheLeastSquares +#define Squares_hxx +#define ResolCons AppDef_TheResol +#define ResolCons_hxx +#define AppParCurves_Function AppDef_TheFunction +#define AppParCurves_Function_hxx +#include + diff --git a/src/AppDef/AppDef_TheGradient.hxx b/src/AppDef/AppDef_TheGradient.hxx new file mode 100644 index 0000000000..8406f5ba15 --- /dev/null +++ b/src/AppDef/AppDef_TheGradient.hxx @@ -0,0 +1,92 @@ +// 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_TheGradient_HeaderFile +#define _AppDef_TheGradient_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class StdFail_NotDone; +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppDef_ParLeastSquareOfTheGradient; +class AppDef_ResConstraintOfTheGradient; +class AppDef_ParFunctionOfTheGradient; +class AppDef_Gradient_BFGSOfTheGradient; +class AppParCurves_MultiCurve; + + + +class AppDef_TheGradient +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_TheGradient(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 200); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiCurve Value() const; + + Standard_EXPORT Standard_Real Error (const Standard_Integer Index) const; + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT Standard_Real AverageError() const; + + + + +protected: + + + + + +private: + + + + AppParCurves_MultiCurve SCU; + math_Vector ParError; + Standard_Real AvError; + Standard_Real MError3d; + Standard_Real MError2d; + Standard_Boolean Done; + + +}; + + + + + + + +#endif // _AppDef_TheGradient_HeaderFile diff --git a/src/AppDef/AppDef_TheGradient_0.cxx b/src/AppDef/AppDef_TheGradient_0.cxx new file mode 100644 index 0000000000..af80e8f5b8 --- /dev/null +++ b/src/AppDef/AppDef_TheGradient_0.cxx @@ -0,0 +1,45 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_ParLeastSquare AppDef_ParLeastSquareOfTheGradient +#define AppParCurves_ParLeastSquare_hxx +#define AppParCurves_ResConstraint AppDef_ResConstraintOfTheGradient +#define AppParCurves_ResConstraint_hxx +#define AppParCurves_ParFunction AppDef_ParFunctionOfTheGradient +#define AppParCurves_ParFunction_hxx +#define AppParCurves_Gradient_BFGS AppDef_Gradient_BFGSOfTheGradient +#define AppParCurves_Gradient_BFGS_hxx +#define AppParCurves_Gradient AppDef_TheGradient +#define AppParCurves_Gradient_hxx +#include + diff --git a/src/AppDef/AppDef_TheLeastSquares.hxx b/src/AppDef/AppDef_TheLeastSquares.hxx new file mode 100644 index 0000000000..76b8b536f0 --- /dev/null +++ b/src/AppDef/AppDef_TheLeastSquares.hxx @@ -0,0 +1,175 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +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 + + + 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); + + 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); + + 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); + + 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); + + Standard_EXPORT void Perform (const math_Vector& Parameters); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const Standard_Real l1, const Standard_Real l2); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const Standard_Real l1, const Standard_Real l2); + + 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); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiCurve BezierValue(); + + Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue(); + + Standard_EXPORT const math_Matrix& FunctionMatrix() const; + + Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const; + + Standard_EXPORT void ErrorGradient (math_Vector& Grad, Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT const math_Matrix& Distance(); + + Standard_EXPORT void Error (Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT Standard_Real FirstLambda() const; + + Standard_EXPORT Standard_Real LastLambda() const; + + Standard_EXPORT const math_Matrix& Points() const; + + Standard_EXPORT const math_Matrix& Poles() const; + + Standard_EXPORT const math_IntegerVector& KIndex() const; + + + + +protected: + + + Standard_EXPORT void Init (const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint); + + Standard_EXPORT Standard_Integer NbBColumns (const AppDef_MultiLine& SSP) const; + + Standard_EXPORT Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const; + + Standard_EXPORT Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const; + + 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); + + Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Vector& TheB); + + Standard_EXPORT void MakeTAA (math_Vector& TheA); + + 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/src/AppDef/AppDef_TheLeastSquares_0.cxx b/src/AppDef/AppDef_TheLeastSquares_0.cxx new file mode 100644 index 0000000000..c9aa92c491 --- /dev/null +++ b/src/AppDef/AppDef_TheLeastSquares_0.cxx @@ -0,0 +1,37 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_LeastSquare AppDef_TheLeastSquares +#define AppParCurves_LeastSquare_hxx +#include + diff --git a/src/AppDef/AppDef_TheResol.hxx b/src/AppDef/AppDef_TheResol.hxx new file mode 100644 index 0000000000..996ac8601b --- /dev/null +++ b/src/AppDef/AppDef_TheResol.hxx @@ -0,0 +1,100 @@ +// 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_TheResol_HeaderFile +#define _AppDef_TheResol_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class AppDef_MultiLine; +class AppDef_MyLineTool; +class AppParCurves_MultiCurve; +class math_Matrix; + + + +class AppDef_TheResol +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT AppDef_TheResol(const AppDef_MultiLine& SSP, AppParCurves_MultiCurve& SCurv, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& Constraints, const math_Matrix& Bern, const math_Matrix& DerivativeBern, const Standard_Real Tolerance = 1.0e-10); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT Standard_Real Error() const; + + Standard_EXPORT const math_Matrix& ConstraintMatrix() const; + + Standard_EXPORT const math_Vector& Duale() const; + + Standard_EXPORT const math_Matrix& ConstraintDerivative (const AppDef_MultiLine& SSP, const math_Vector& Parameters, const Standard_Integer Deg, const math_Matrix& DA); + + Standard_EXPORT const math_Matrix& InverseMatrix() const; + + + + +protected: + + + Standard_EXPORT Standard_Integer NbConstraints (const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints) const; + + Standard_EXPORT Standard_Integer NbColumns (const AppDef_MultiLine& SSP, const Standard_Integer Deg) const; + + + + +private: + + + + Standard_Boolean Done; + Standard_Real Err; + math_Matrix Cont; + math_Matrix DeCont; + math_Vector Secont; + math_Matrix CTCinv; + math_Vector Vardua; + Standard_Integer IncPass; + Standard_Integer IncTan; + Standard_Integer IncCurv; + TColStd_Array1OfInteger IPas; + TColStd_Array1OfInteger ITan; + TColStd_Array1OfInteger ICurv; + + +}; + + + + + + + +#endif // _AppDef_TheResol_HeaderFile diff --git a/src/AppDef/AppDef_TheResol_0.cxx b/src/AppDef/AppDef_TheResol_0.cxx new file mode 100644 index 0000000000..8b9ba45854 --- /dev/null +++ b/src/AppDef/AppDef_TheResol_0.cxx @@ -0,0 +1,33 @@ +// 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. + +#include + +#include +#include +#include +#include +#include + + +#define MultiLine AppDef_MultiLine +#define MultiLine_hxx +#define ToolLine AppDef_MyLineTool +#define ToolLine_hxx +#define AppParCurves_ResolConstraint AppDef_TheResol +#define AppParCurves_ResolConstraint_hxx +#include + diff --git a/src/AppDef/AppDef_Variational.cdl b/src/AppDef/AppDef_Variational.cdl deleted file mode 100644 index 6312c06df3..0000000000 --- a/src/AppDef/AppDef_Variational.cdl +++ /dev/null @@ -1,441 +0,0 @@ --- Created on: 1996-05-14 --- Created by: Philippe MANGIN / Jeannine PANCIATICI --- 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. - --- Igor FEOKTISTOV - correction 14/12/98 - - -class Variational from AppDef - - - ---Purpose: This class is used to smooth N points with constraints - -- by minimization of quadratic criterium but also - -- variational criterium in order to obtain " fair Curve " - -- Computes the approximation of a Multiline by - -- Variational optimization. - -uses Matrix from math, - Vector from math, - HArray1OfReal from TColStd, - Array1OfReal from TColStd, - HArray1OfInteger from TColStd, - Shape from GeomAbs, - HArray1OfConstraintCouple from AppParCurves, - MultiBSpCurve from AppParCurves, - SmoothCriterion from AppDef, - Curve from FEmTool, - Assembly from FEmTool, - Base from PLib, - Constraint from AppParCurves, - MultiLine from AppDef, - MyLineTool from AppDef - -raises OutOfRange from Standard, - DimensionError from Standard, - DomainError from Standard, - ConstructionError from Standard, - NotDone from StdFail, - VectorWithNullMagnitude from gp - - -is - Create(SSP: MultiLine from AppDef; - FirstPoint, LastPoint: Integer; - TheConstraints: HArray1OfConstraintCouple; - MaxDegree: Integer = 14; - MaxSegment: Integer = 100; - Continuity : Shape from GeomAbs = GeomAbs_C2; - WithMinMax : Boolean = Standard_False; - WithCutting: Boolean = Standard_True; - Tolerance : Real = 1.0; - NbIterations: Integer = 2) - ---Purpose: Constructor. - -- Initialization of the fields. - -- warning : Nc0 : number of PassagePoint consraints - -- Nc2 : number of TangencyPoint constraints - -- Nc3 : number of CurvaturePoint constraints - -- if - -- ((MaxDegree-Continuity)*MaxSegment -Nc0 - 2*Nc1 - -- -3*Nc2) - -- is negative - -- The problem is over-constrained. - -- - -- Limitation : The MultiLine from AppDef has to be composed by - -- only one Line ( Dimension 2 or 3). - - returns Variational from AppDef; - - - Approximate(me : in out) - ---Purpose: Makes the approximation with the current fields. - raises NotDone from StdFail - is static; - - - --- ==================== The Selectors =========================== - - IsCreated(me) - ---Purpose: returns True if the creation is done - -- and correspond to the current fields. - returns Boolean - is static; - - - IsDone(me) - ---Purpose: returns True if the approximation is ok - -- and correspond to the current fields. - returns Boolean - is static; - - IsOverConstrained(me) - ---Purpose: returns True if the problem is overconstrained - -- in this case, approximation cannot be done. - returns Boolean - is static; - - Value(me) - ---Purpose: returns all the BSpline curves approximating the - -- MultiLine from AppDef SSP after minimization of the parameter. - - returns MultiBSpCurve from AppParCurves - raises NotDone from StdFail - is static; - - - MaxError(me) - ---Purpose: returns the maximum of the distances between - -- the points of the multiline and the approximation - -- curves. - returns Real - raises NotDone from StdFail - is static; - - MaxErrorIndex(me) - ---Purpose: returns the index of the MultiPoint of ErrorMax - returns Integer - - raises NotDone from StdFail - is static; - - - QuadraticError(me) - ---Purpose: returns the quadratic average of the distances between - -- the points of the multiline and the approximation - -- curves. - returns Real - raises NotDone from StdFail - is static; - - Distance(me : in out ; mat : out Matrix from math) - ---Purpose: returns the distances between the points of the - -- multiline and the approximation curves. - raises NotDone from StdFail - is static; - - AverageError(me) - ---Purpose: returns the average error between - -- the MultiLine from AppDef and the approximation. - - returns Real - raises NotDone from StdFail - is static; - - Parameters(me) - ---Purpose: returns the parameters uses to the approximations - ---C++: return const& - - returns HArray1OfReal - raises NotDone from StdFail - is static; - - Knots(me) - ---Purpose: returns the knots uses to the approximations - ---C++: return const& - returns HArray1OfReal - raises NotDone from StdFail - is static; - - Criterium(me; VFirstOrder, - VSecondOrder, - VThirdOrder : out Real) - ---Purpose: returns the values of the quality criterium. - raises NotDone from StdFail - is static; - - CriteriumWeight(me ; - Percent1, Percent2, Percent3 : out Real) - ---Purpose: returns the Weights (as percent) associed to the criterium used in - -- the optimization. - is static; - - MaxDegree(me) - ---Purpose: returns the Maximum Degree used in the approximation - returns Integer - is static; - - MaxSegment(me) - ---Purpose: returns the Maximum of segment used in the approximation - returns Integer - is static; - - Continuity(me) - ---Purpose: returns the Continuity used in the approximation - returns Shape from GeomAbs - is static; - - - WithMinMax(me) - ---Purpose: returns if the approximation search to minimize the - -- maximum Error or not. - returns Boolean - is static; - - WithCutting(me) - ---Purpose: returns if the approximation can insert new Knots or not. - returns Boolean - is static; - - Tolerance(me) - ---Purpose: returns the tolerance used in the approximation. - returns Real - is static; - - NbIterations(me) - ---Purpose: returns the number of iterations used in the approximation. - returns Integer - is static; - - Dump(me ; o : in out OStream) - ---Purpose: Prints on the stream o information on the current state - -- of the object. - -- MaxError,MaxErrorIndex,AverageError,QuadraticError,Criterium - -- Distances,Degre,Nombre de poles, parametres, noeuds - is static; - - SetConstraints(me:in out; aConstrainst:HArray1OfConstraintCouple) - ---Purpose: Define the constraints to approximate - -- If this value is incompatible with the others fields - -- this method modify nothing and returns false - returns Boolean - is static; - - SetParameters(me:in out; param : HArray1OfReal) - ---Purpose: Defines the parameters used by the approximations. - raises DimensionError - is static; - - SetKnots(me:in out; knots : HArray1OfReal) - ---Purpose: Defines the knots used by the approximations - -- If this value is incompatible with the others fields - -- this method modify nothing and returns false - returns Boolean - raises DimensionError, - DomainError - is static; - - SetMaxDegree(me: in out; Degree : Integer) - ---Purpose: Define the Maximum Degree used in the approximation - -- If this value is incompatible with the others fields - -- this method modify nothing and returns false - returns Boolean - is static; - - SetMaxSegment(me: in out; NbSegment : Integer) - ---Purpose: Define the maximum number of segments used in the approximation - -- If this value is incompatible with the others fields - -- this method modify nothing and returns false - returns Boolean - is static; - - SetContinuity(me: in out; C : Shape from GeomAbs) - ---Purpose: Define the Continuity used in the approximation - -- If this value is incompatible with the others fields - -- this method modify nothing and returns false - returns Boolean - raises ConstructionError from Standard - is static; - - - SetWithMinMax(me: in out; MinMax : Boolean) - ---Purpose: Define if the approximation search to minimize the - -- maximum Error or not. - is static; - - SetWithCutting(me : in out; Cutting : Boolean ) - ---Purpose: Define if the approximation can insert new Knots or not. - -- If this value is incompatible with the others fields - -- this method modify nothing and returns false - returns Boolean - is static; - - SetCriteriumWeight(me : in out; - Percent1, Percent2, Percent3 : Real) - ---Purpose: define the Weights (as percent) associed to the criterium used in - -- the optimization. - -- - raises DomainError -- if Percent <= 0 - is static; - - SetCriteriumWeight(me : in out; - Order : Integer; - Percent : Real) - ---Purpose: define the Weight (as percent) associed to the - -- criterium Order used in the optimization : Others - -- weights are updated. - raises DomainError, -- if Percent < 0 - OutOfRange -- if Order < 1 or Order > 3 - is static; - - SetTolerance(me:in out; Tol : Real) - ---Purpose: define the tolerance used in the approximation. - is static; - - SetNbIterations(me:in out; Iter : Integer) - ---Purpose: define the number of iterations used in the approximation. - raises DomainError -- if Iter < 1 - is static; - - --- ====================== The Private methods ====================== - - TheMotor(me : in out; - J : in out SmoothCriterion from AppDef; - WQuadratic, WQuality : Real; - TheCurve : in out Curve from FEmTool; - Ecarts : out Array1OfReal from TColStd) is private; - - Adjusting(me : in out; - J : in out SmoothCriterion from AppDef; - WQuadratic, WQuality : in out Real; - TheCurve : in out Curve from FEmTool; - Ecarts : out Array1OfReal from TColStd) is private; - - Optimization(me; - J : in out SmoothCriterion from AppDef; - A : in out Assembly from FEmTool; - ToAssemble : in Boolean; - EpsDeg : Real; - Curve : out Curve from FEmTool; - Parameters : Array1OfReal from TColStd) is private; - - Project(me; C : Curve from FEmTool; - Ti : Array1OfReal from TColStd; - ProjTi : out Array1OfReal from TColStd; - Distance : out Array1OfReal from TColStd; - NumPoints : out Integer; - MaxErr, QuaErr, AveErr : out Real; - NbIterations: Integer=2) is private; - - ACR(me; Curve : in out Curve from FEmTool; - Ti : in out Array1OfReal from TColStd; - Decima: Integer) is private; - - SplitCurve(me; InCurve : Curve from FEmTool; - Ti : Array1OfReal from TColStd; - CurveTol: Real; - OutCurve: out Curve from FEmTool; - iscut : out Boolean) is private; - - Init(me : in out) - raises NotDone from StdFail, - ConstructionError from Standard, - DimensionError from Standard - is private; - - InitSmoothCriterion(me : in out) - is private; - - InitParameters(me : in out; Length : out Real) - raises ConstructionError from Standard - is private; - - InitCriterionEstimations(me; Length : Real; J1, J2, J3 : out Real) - is private; - - EstTangent(me; ipnt : Integer; VTang : out Vector from math) - is private; - - EstSecnd(me; ipnt : Integer; VTang1, VTang2 : Vector from math; - Length : Real; VScnd : out Vector from math) - is private; - - InitCutting(me; aBase : Base from PLib; CurvTol : Real; - aCurve : out Curve from FEmTool) - raises ConstructionError from Standard - is private; - - AssemblingConstraints(me; Curve : Curve from FEmTool; - Parameters : Array1OfReal from TColStd; - CBLONG : Real from Standard; - A : out Assembly from FEmTool) - is private; - - InitTthetaF(me : in out; ndimen : Integer from Standard; - typcon : Constraint from AppParCurves; - begin : Integer from Standard; - jndex : Integer from Standard) - returns Boolean - is private; - - -fields - -- Description of the points to smooth and the constraints -mySSP : MultiLine from AppDef; -myNbP3d : Integer; -myNbP2d : Integer; -myDimension : Integer; -myFirstPoint : Integer; -myLastPoint : Integer; -myNbPoints : Integer; -myTabPoints : HArray1OfReal; -myConstraints : HArray1OfConstraintCouple; -myNbConstraints : Integer; -myTabConstraints : HArray1OfReal; -myNbPassPoints : Integer; -myNbTangPoints : Integer; -myNbCurvPoints : Integer; -myTypConstraints : HArray1OfInteger; -myTtheta : HArray1OfReal; -myTfthet : HArray1OfReal; - - -- Context parameters -myMaxDegree : Integer; -myMaxSegment : Integer; -myNbIterations: Integer; -myTolerance : Real; - - -- Options -myContinuity : Shape from GeomAbs; -myNivCont : Integer; -myWithMinMax : Boolean; -myWithCutting: Boolean; -myPercent : Real[3]; -myCriterium : Real[4]; -mySmoothCriterion : SmoothCriterion from AppDef; - - -- output -myParameters : HArray1OfReal; -myKnots : HArray1OfReal; -myMBSpCurve : MultiBSpCurve; - -myMaxError : Real; -myMaxErrorIndex: Integer; -myAverageError : Real; -myIsCreated : Boolean; -myIsDone : Boolean; -myIsOverConstr : Boolean; - -end Variational; diff --git a/src/AppDef/AppDef_Variational.cxx b/src/AppDef/AppDef_Variational.cxx index 0788f51ea5..622d255915 100644 --- a/src/AppDef/AppDef_Variational.cxx +++ b/src/AppDef/AppDef_Variational.cxx @@ -17,7 +17,20 @@ // Approximation d une MultiLine de points decrite par le tool MLineTool. // avec criteres variationnels -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #define No_Standard_RangeError #define No_Standard_OutOfRange diff --git a/src/AppDef/AppDef_Variational.hxx b/src/AppDef/AppDef_Variational.hxx new file mode 100644 index 0000000000..bb9b2c52d5 --- /dev/null +++ b/src/AppDef/AppDef_Variational.hxx @@ -0,0 +1,307 @@ +// Created on: 1996-05-14 +// Created by: Philippe MANGIN / Jeannine PANCIATICI +// 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 _AppDef_Variational_HeaderFile +#define _AppDef_Variational_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class AppDef_SmoothCriterion; +class Standard_OutOfRange; +class Standard_DimensionError; +class Standard_DomainError; +class Standard_ConstructionError; +class StdFail_NotDone; +class gp_VectorWithNullMagnitude; +class AppDef_MultiLine; +class AppParCurves_MultiBSpCurve; +class math_Matrix; +class FEmTool_Curve; +class FEmTool_Assembly; +class PLib_Base; + + +//! This class is used to smooth N points with constraints +//! by minimization of quadratic criterium but also +//! variational criterium in order to obtain " fair Curve " +//! Computes the approximation of a Multiline by +//! Variational optimization. +class AppDef_Variational +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Constructor. + //! Initialization of the fields. + //! warning : Nc0 : number of PassagePoint consraints + //! Nc2 : number of TangencyPoint constraints + //! Nc3 : number of CurvaturePoint constraints + //! if + //! ((MaxDegree-Continuity)*MaxSegment -Nc0 - 2*Nc1 + //! -3*Nc2) + //! is negative + //! The problem is over-constrained. + //! + //! Limitation : The MultiLine from AppDef has to be composed by + //! only one Line ( Dimension 2 or 3). + Standard_EXPORT AppDef_Variational(const AppDef_MultiLine& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer MaxDegree = 14, const Standard_Integer MaxSegment = 100, const GeomAbs_Shape Continuity = GeomAbs_C2, const Standard_Boolean WithMinMax = Standard_False, const Standard_Boolean WithCutting = Standard_True, const Standard_Real Tolerance = 1.0, const Standard_Integer NbIterations = 2); + + //! Makes the approximation with the current fields. + Standard_EXPORT void Approximate(); + + //! returns True if the creation is done + //! and correspond to the current fields. + Standard_EXPORT Standard_Boolean IsCreated() const; + + //! returns True if the approximation is ok + //! and correspond to the current fields. + Standard_EXPORT Standard_Boolean IsDone() const; + + //! returns True if the problem is overconstrained + //! in this case, approximation cannot be done. + Standard_EXPORT Standard_Boolean IsOverConstrained() const; + + //! returns all the BSpline curves approximating the + //! MultiLine from AppDef SSP after minimization of the parameter. + Standard_EXPORT AppParCurves_MultiBSpCurve Value() const; + + //! returns the maximum of the distances between + //! the points of the multiline and the approximation + //! curves. + Standard_EXPORT Standard_Real MaxError() const; + + //! returns the index of the MultiPoint of ErrorMax + Standard_EXPORT Standard_Integer MaxErrorIndex() const; + + //! returns the quadratic average of the distances between + //! the points of the multiline and the approximation + //! curves. + Standard_EXPORT Standard_Real QuadraticError() const; + + //! returns the distances between the points of the + //! multiline and the approximation curves. + Standard_EXPORT void Distance (math_Matrix& mat); + + //! returns the average error between + //! the MultiLine from AppDef and the approximation. + Standard_EXPORT Standard_Real AverageError() const; + + //! returns the parameters uses to the approximations + Standard_EXPORT const Handle(TColStd_HArray1OfReal)& Parameters() const; + + //! returns the knots uses to the approximations + Standard_EXPORT const Handle(TColStd_HArray1OfReal)& Knots() const; + + //! returns the values of the quality criterium. + Standard_EXPORT void Criterium (Standard_Real& VFirstOrder, Standard_Real& VSecondOrder, Standard_Real& VThirdOrder) const; + + //! returns the Weights (as percent) associed to the criterium used in + //! the optimization. + Standard_EXPORT void CriteriumWeight (Standard_Real& Percent1, Standard_Real& Percent2, Standard_Real& Percent3) const; + + //! returns the Maximum Degree used in the approximation + Standard_EXPORT Standard_Integer MaxDegree() const; + + //! returns the Maximum of segment used in the approximation + Standard_EXPORT Standard_Integer MaxSegment() const; + + //! returns the Continuity used in the approximation + Standard_EXPORT GeomAbs_Shape Continuity() const; + + //! returns if the approximation search to minimize the + //! maximum Error or not. + Standard_EXPORT Standard_Boolean WithMinMax() const; + + //! returns if the approximation can insert new Knots or not. + Standard_EXPORT Standard_Boolean WithCutting() const; + + //! returns the tolerance used in the approximation. + Standard_EXPORT Standard_Real Tolerance() const; + + //! returns the number of iterations used in the approximation. + Standard_EXPORT Standard_Integer NbIterations() const; + + //! Prints on the stream o information on the current state + //! of the object. + //! MaxError,MaxErrorIndex,AverageError,QuadraticError,Criterium + //! Distances,Degre,Nombre de poles, parametres, noeuds + Standard_EXPORT void Dump (Standard_OStream& o) const; + + //! Define the constraints to approximate + //! If this value is incompatible with the others fields + //! this method modify nothing and returns false + Standard_EXPORT Standard_Boolean SetConstraints (const Handle(AppParCurves_HArray1OfConstraintCouple)& aConstrainst); + + //! Defines the parameters used by the approximations. + Standard_EXPORT void SetParameters (const Handle(TColStd_HArray1OfReal)& param); + + //! Defines the knots used by the approximations + //! If this value is incompatible with the others fields + //! this method modify nothing and returns false + Standard_EXPORT Standard_Boolean SetKnots (const Handle(TColStd_HArray1OfReal)& knots); + + //! Define the Maximum Degree used in the approximation + //! If this value is incompatible with the others fields + //! this method modify nothing and returns false + Standard_EXPORT Standard_Boolean SetMaxDegree (const Standard_Integer Degree); + + //! Define the maximum number of segments used in the approximation + //! If this value is incompatible with the others fields + //! this method modify nothing and returns false + Standard_EXPORT Standard_Boolean SetMaxSegment (const Standard_Integer NbSegment); + + //! Define the Continuity used in the approximation + //! If this value is incompatible with the others fields + //! this method modify nothing and returns false + Standard_EXPORT Standard_Boolean SetContinuity (const GeomAbs_Shape C); + + //! Define if the approximation search to minimize the + //! maximum Error or not. + Standard_EXPORT void SetWithMinMax (const Standard_Boolean MinMax); + + //! Define if the approximation can insert new Knots or not. + //! If this value is incompatible with the others fields + //! this method modify nothing and returns false + Standard_EXPORT Standard_Boolean SetWithCutting (const Standard_Boolean Cutting); + + //! define the Weights (as percent) associed to the criterium used in + //! the optimization. + //! + //! if Percent <= 0 + Standard_EXPORT void SetCriteriumWeight (const Standard_Real Percent1, const Standard_Real Percent2, const Standard_Real Percent3); + + //! define the Weight (as percent) associed to the + //! criterium Order used in the optimization : Others + //! weights are updated. + //! if Percent < 0 + //! if Order < 1 or Order > 3 + Standard_EXPORT void SetCriteriumWeight (const Standard_Integer Order, const Standard_Real Percent); + + //! define the tolerance used in the approximation. + Standard_EXPORT void SetTolerance (const Standard_Real Tol); + + //! define the number of iterations used in the approximation. + //! if Iter < 1 + Standard_EXPORT void SetNbIterations (const Standard_Integer Iter); + + + + +protected: + + + + + +private: + + + Standard_EXPORT void TheMotor (Handle(AppDef_SmoothCriterion)& J, const Standard_Real WQuadratic, const Standard_Real WQuality, Handle(FEmTool_Curve)& TheCurve, TColStd_Array1OfReal& Ecarts); + + Standard_EXPORT void Adjusting (Handle(AppDef_SmoothCriterion)& J, Standard_Real& WQuadratic, Standard_Real& WQuality, Handle(FEmTool_Curve)& TheCurve, TColStd_Array1OfReal& Ecarts); + + Standard_EXPORT void Optimization (Handle(AppDef_SmoothCriterion)& J, FEmTool_Assembly& A, const Standard_Boolean ToAssemble, const Standard_Real EpsDeg, Handle(FEmTool_Curve)& Curve, const TColStd_Array1OfReal& Parameters) const; + + Standard_EXPORT void Project (const Handle(FEmTool_Curve)& C, const TColStd_Array1OfReal& Ti, TColStd_Array1OfReal& ProjTi, TColStd_Array1OfReal& Distance, Standard_Integer& NumPoints, Standard_Real& MaxErr, Standard_Real& QuaErr, Standard_Real& AveErr, const Standard_Integer NbIterations = 2) const; + + Standard_EXPORT void ACR (Handle(FEmTool_Curve)& Curve, TColStd_Array1OfReal& Ti, const Standard_Integer Decima) const; + + Standard_EXPORT void SplitCurve (const Handle(FEmTool_Curve)& InCurve, const TColStd_Array1OfReal& Ti, const Standard_Real CurveTol, Handle(FEmTool_Curve)& OutCurve, Standard_Boolean& iscut) const; + + Standard_EXPORT void Init(); + + Standard_EXPORT void InitSmoothCriterion(); + + Standard_EXPORT void InitParameters (Standard_Real& Length); + + Standard_EXPORT void InitCriterionEstimations (const Standard_Real Length, Standard_Real& J1, Standard_Real& J2, Standard_Real& J3) const; + + Standard_EXPORT void EstTangent (const Standard_Integer ipnt, math_Vector& VTang) const; + + Standard_EXPORT void EstSecnd (const Standard_Integer ipnt, const math_Vector& VTang1, const math_Vector& VTang2, const Standard_Real Length, math_Vector& VScnd) const; + + Standard_EXPORT void InitCutting (const Handle(PLib_Base)& aBase, const Standard_Real CurvTol, Handle(FEmTool_Curve)& aCurve) const; + + Standard_EXPORT void AssemblingConstraints (const Handle(FEmTool_Curve)& Curve, const TColStd_Array1OfReal& Parameters, const Standard_Real CBLONG, FEmTool_Assembly& A) const; + + Standard_EXPORT Standard_Boolean InitTthetaF (const Standard_Integer ndimen, const AppParCurves_Constraint typcon, const Standard_Integer begin, const Standard_Integer jndex); + + + AppDef_MultiLine mySSP; + Standard_Integer myNbP3d; + Standard_Integer myNbP2d; + Standard_Integer myDimension; + Standard_Integer myFirstPoint; + Standard_Integer myLastPoint; + Standard_Integer myNbPoints; + Handle(TColStd_HArray1OfReal) myTabPoints; + Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints; + Standard_Integer myNbConstraints; + Handle(TColStd_HArray1OfReal) myTabConstraints; + Standard_Integer myNbPassPoints; + Standard_Integer myNbTangPoints; + Standard_Integer myNbCurvPoints; + Handle(TColStd_HArray1OfInteger) myTypConstraints; + Handle(TColStd_HArray1OfReal) myTtheta; + Handle(TColStd_HArray1OfReal) myTfthet; + Standard_Integer myMaxDegree; + Standard_Integer myMaxSegment; + Standard_Integer myNbIterations; + Standard_Real myTolerance; + GeomAbs_Shape myContinuity; + Standard_Integer myNivCont; + Standard_Boolean myWithMinMax; + Standard_Boolean myWithCutting; + Standard_Real myPercent[3]; + Standard_Real myCriterium[4]; + Handle(AppDef_SmoothCriterion) mySmoothCriterion; + Handle(TColStd_HArray1OfReal) myParameters; + Handle(TColStd_HArray1OfReal) myKnots; + AppParCurves_MultiBSpCurve myMBSpCurve; + Standard_Real myMaxError; + Standard_Integer myMaxErrorIndex; + Standard_Real myAverageError; + Standard_Boolean myIsCreated; + Standard_Boolean myIsDone; + Standard_Boolean myIsOverConstr; + + +}; + + + + + + + +#endif // _AppDef_Variational_HeaderFile diff --git a/src/AppDef/FILES b/src/AppDef/FILES index d59577b056..a92e66e729 100644 --- a/src/AppDef/FILES +++ b/src/AppDef/FILES @@ -1,2 +1,62 @@ AppDef_Array1OfMultiPointConstraint.hxx +AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute.hxx +AppDef_BSpGradient_BFGSOfMyBSplGradientOfBSplineCompute_0.cxx +AppDef_BSplineCompute.hxx +AppDef_BSplineCompute_0.cxx +AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute.hxx +AppDef_BSpParFunctionOfMyBSplGradientOfBSplineCompute_0.cxx +AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute.hxx +AppDef_BSpParLeastSquareOfMyBSplGradientOfBSplineCompute_0.cxx +AppDef_Compute.hxx +AppDef_Compute_0.cxx +AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute.hxx +AppDef_Gradient_BFGSOfMyGradientbisOfBSplineCompute_0.cxx +AppDef_Gradient_BFGSOfMyGradientOfCompute.hxx +AppDef_Gradient_BFGSOfMyGradientOfCompute_0.cxx +AppDef_Gradient_BFGSOfTheGradient.hxx +AppDef_Gradient_BFGSOfTheGradient_0.cxx AppDef_HArray1OfMultiPointConstraint.hxx +AppDef_LinearCriteria.cxx +AppDef_LinearCriteria.hxx +AppDef_MultiLine.cxx +AppDef_MultiLine.hxx +AppDef_MultiPointConstraint.cxx +AppDef_MultiPointConstraint.hxx +AppDef_MyBSplGradientOfBSplineCompute.hxx +AppDef_MyBSplGradientOfBSplineCompute_0.cxx +AppDef_MyGradientbisOfBSplineCompute.hxx +AppDef_MyGradientbisOfBSplineCompute_0.cxx +AppDef_MyGradientOfCompute.hxx +AppDef_MyGradientOfCompute_0.cxx +AppDef_MyLineTool.cxx +AppDef_MyLineTool.hxx +AppDef_ParFunctionOfMyGradientbisOfBSplineCompute.hxx +AppDef_ParFunctionOfMyGradientbisOfBSplineCompute_0.cxx +AppDef_ParFunctionOfMyGradientOfCompute.hxx +AppDef_ParFunctionOfMyGradientOfCompute_0.cxx +AppDef_ParFunctionOfTheGradient.hxx +AppDef_ParFunctionOfTheGradient_0.cxx +AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute.hxx +AppDef_ParLeastSquareOfMyGradientbisOfBSplineCompute_0.cxx +AppDef_ParLeastSquareOfMyGradientOfCompute.hxx +AppDef_ParLeastSquareOfMyGradientOfCompute_0.cxx +AppDef_ParLeastSquareOfTheGradient.hxx +AppDef_ParLeastSquareOfTheGradient_0.cxx +AppDef_ResConstraintOfMyGradientbisOfBSplineCompute.hxx +AppDef_ResConstraintOfMyGradientbisOfBSplineCompute_0.cxx +AppDef_ResConstraintOfMyGradientOfCompute.hxx +AppDef_ResConstraintOfMyGradientOfCompute_0.cxx +AppDef_ResConstraintOfTheGradient.hxx +AppDef_ResConstraintOfTheGradient_0.cxx +AppDef_SmoothCriterion.cxx +AppDef_SmoothCriterion.hxx +AppDef_TheFunction.hxx +AppDef_TheFunction_0.cxx +AppDef_TheGradient.hxx +AppDef_TheGradient_0.cxx +AppDef_TheLeastSquares.hxx +AppDef_TheLeastSquares_0.cxx +AppDef_TheResol.hxx +AppDef_TheResol_0.cxx +AppDef_Variational.cxx +AppDef_Variational.hxx diff --git a/src/AppParCurves/AppParCurves.cdl b/src/AppParCurves/AppParCurves.cdl deleted file mode 100644 index 7fd24abfde..0000000000 --- a/src/AppParCurves/AppParCurves.cdl +++ /dev/null @@ -1,117 +0,0 @@ --- 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. - -package AppParCurves - - ---Purpose: Parallel Approximation in n curves. - -- This package gives all the algorithms used to approximate a MultiLine - -- described by the tool MLineTool. - -- The result of the approximation will be a MultiCurve. - -uses math, FEmTool, gp, TColgp, StdFail, TColStd, TCollection, Standard, MMgt, GeomAbs, PLib - -is - - enumeration Constraint is - NoConstraint, - PassPoint, - TangencyPoint, - CurvaturePoint - end Constraint; ----Purpose: --- - 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. - - - class MultiPoint; - - class MultiCurve; - - class MultiBSpCurve; - - class ConstraintCouple; - - --- Algorithms: - - - generic class LeastSquare; - - generic class ResolConstraint; - - generic class Function; - - - generic class BSpFunction; - - - generic class Gradient, Gradient_BFGS, ParLeastSquare, ResConstraint, ParFunction; - - generic class BSpGradient, BSpGradient_BFGS, BSpParLeastSquare, BSpParFunction; - - - --- instantiate classes: - -- - - imported Array1OfConstraintCouple; - - imported transient class HArray1OfConstraintCouple; - - - imported Array1OfMultiPoint; - - imported transient class HArray1OfMultiPoint; - - - imported Array1OfMultiCurve; - - imported transient class HArray1OfMultiCurve; - - imported SequenceOfMultiCurve; - - - imported Array1OfMultiBSpCurve; - - imported transient class HArray1OfMultiBSpCurve; - - imported SequenceOfMultiBSpCurve; - - - BernsteinMatrix(NbPoles: in Integer from Standard; - U : in Vector from math; - A : in out Matrix from math); - - - Bernstein(NbPoles: in Integer from Standard; - U : in Vector from math; - A : in out Matrix from math; - DA : in out Matrix from math); - - - SecondDerivativeBernstein(U: Real; DDA: in out Vector from math); - - - SplineFunction(NbPoles : in Integer from Standard; - Degree : in Integer from Standard; - Parameters : in Vector from math; - FlatKnots : in Vector from math; - A : in out Matrix from math; - DA : in out Matrix from math; - Index : in out IntegerVector from math); - -end AppParCurves; diff --git a/src/AppParCurves/AppParCurves.cxx b/src/AppParCurves/AppParCurves.cxx index be95f3099f..1987547084 100644 --- a/src/AppParCurves/AppParCurves.cxx +++ b/src/AppParCurves/AppParCurves.cxx @@ -15,12 +15,13 @@ #define No_Standard_RangeError #define No_Standard_OutOfRange -#include + +#include #include -#include #include #include - +#include +#include void AppParCurves::BernsteinMatrix(const Standard_Integer NbPoles, const math_Vector& U, diff --git a/src/AppParCurves/AppParCurves.hxx b/src/AppParCurves/AppParCurves.hxx new file mode 100644 index 0000000000..5e8b5f0d3c --- /dev/null +++ b/src/AppParCurves/AppParCurves.hxx @@ -0,0 +1,107 @@ +// 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_HeaderFile +#define _AppParCurves_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class math_Matrix; +class AppParCurves_MultiPoint; +class AppParCurves_MultiCurve; +class AppParCurves_MultiBSpCurve; +class AppParCurves_ConstraintCouple; +class AppParCurves_LeastSquare; +class AppParCurves_ResolConstraint; +class AppParCurves_Function; +class AppParCurves_BSpFunction; +class AppParCurves_Gradient; +class AppParCurves_Gradient_BFGS; +class AppParCurves_ParLeastSquare; +class AppParCurves_ResConstraint; +class AppParCurves_ParFunction; +class AppParCurves_BSpGradient; +class AppParCurves_BSpGradient_BFGS; +class AppParCurves_BSpParLeastSquare; +class AppParCurves_BSpParFunction; + + +//! Parallel Approximation in n curves. +//! This package gives all the algorithms used to approximate a MultiLine +//! described by the tool MLineTool. +//! The result of the approximation will be a MultiCurve. +class AppParCurves +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT static void BernsteinMatrix (const Standard_Integer NbPoles, const math_Vector& U, math_Matrix& A); + + Standard_EXPORT static void Bernstein (const Standard_Integer NbPoles, const math_Vector& U, math_Matrix& A, math_Matrix& DA); + + Standard_EXPORT static void SecondDerivativeBernstein (const Standard_Real U, math_Vector& DDA); + + Standard_EXPORT static void SplineFunction (const Standard_Integer NbPoles, const Standard_Integer Degree, const math_Vector& Parameters, const math_Vector& FlatKnots, math_Matrix& A, math_Matrix& DA, math_IntegerVector& Index); + + + + +protected: + + + + + +private: + + + + +friend class AppParCurves_MultiPoint; +friend class AppParCurves_MultiCurve; +friend class AppParCurves_MultiBSpCurve; +friend class AppParCurves_ConstraintCouple; +friend class AppParCurves_LeastSquare; +friend class AppParCurves_ResolConstraint; +friend class AppParCurves_Function; +friend class AppParCurves_BSpFunction; +friend class AppParCurves_Gradient; +friend class AppParCurves_Gradient_BFGS; +friend class AppParCurves_ParLeastSquare; +friend class AppParCurves_ResConstraint; +friend class AppParCurves_ParFunction; +friend class AppParCurves_BSpGradient; +friend class AppParCurves_BSpGradient_BFGS; +friend class AppParCurves_BSpParLeastSquare; +friend class AppParCurves_BSpParFunction; + +}; + + + + + + + +#endif // _AppParCurves_HeaderFile diff --git a/src/AppParCurves/AppParCurves_BSpFunction.cdl b/src/AppParCurves/AppParCurves_BSpFunction.cdl deleted file mode 100644 index 1deca98641..0000000000 --- a/src/AppParCurves/AppParCurves_BSpFunction.cdl +++ /dev/null @@ -1,221 +0,0 @@ --- Created on: 1993-09-21 --- 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. - -generic class BSpFunction from AppParCurves ( - MultiLine as any; - ToolLine as any; -- as ToolLine(MultiLine) - Squares as any) - - inherits MultipleVarFunctionWithGradient from math - - ---Purpose: This function inherits MultipleVarFunctionWithGradient to be - -- used in the mathematical algorithm BFGS. - -- It computes the value of the function - -- F=sum(||Qui - B*Pi||)2 where Pi are Poles of the BSpline - -- curves approximating the given MultiLine SSP and ui the - -- parameters associated to the points Qi of SSP. - -- It also computes the gradient for values ui of the parameter. - - -uses MultiBSpCurve from AppParCurves, - HArray1OfConstraintCouple from AppParCurves, - Constraint from AppParCurves, - Vector from math, - IntegerVector from math, - Matrix from math, - HArray1OfInteger from TColStd, - Array1OfReal from TColStd, - Array1OfInteger from TColStd - -is - - Create(SSP: MultiLine; FirstPoint, LastPoint: Integer; - TheConstraints: HArray1OfConstraintCouple; - Parameters: Vector; Knots: Array1OfReal; - Mults: Array1OfInteger; NbPol: Integer) - ---Purpose: initializes the fields of the function. The approximating - -- curve has control points. - - returns BSpFunction from AppParCurves; - - - NbVariables(me) - ---Purpose: returns the number of variables of the function. It - -- corresponds to the number of MultiPoints. - - returns Integer - is static; - - - - Perform(me: in out; X: Vector) - ---Purpose: this method is used each time Value or Gradient is - -- needed. - - is static protected; - - - Value(me: in out; X: Vector; F: out Real) - ---Purpose: this method computes the new approximation of the - -- MultiLine - -- SSP and calculates F = sum (||Pui - Bi*Pi||2) for each - -- point of the MultiLine. - - returns Boolean - is static; - - - Gradient(me: in out; X: Vector; G: out Vector) - ---Purpose: returns the gradient G of the sum above for the - -- parameters Xi. - - returns Boolean - is static; - - - Values(me: in out; X: Vector; F: out Real; G: out Vector) - ---Purpose: returns the value F=sum(||Pui - Bi*Pi||)2. - -- returns the value G = grad(F) for the parameters Xi. - - returns Boolean - is static; - - - - NewParameters(me) - ---Purpose: returns the new parameters of the MultiLine. - ---C++: return const& - returns Vector - is static; - - - CurveValue(me: in out) - ---Purpose: returns the MultiBSpCurve approximating the set after - -- computing the value F or Grad(F). - - returns MultiBSpCurve from AppParCurves - is static; - - - Error(me: in out; IPoint, CurveIndex: Integer) - ---Purpose: returns the distance between the MultiPoint of range - -- IPoint and the curve CurveIndex. - - returns Real - is static; - - - MaxError3d(me) - ---Purpose: returns the maximum distance between the points - -- and the MultiBSpCurve. - - returns Real - is static; - - MaxError2d(me) - ---Purpose: returns the maximum distance between the points - -- and the MultiBSpCurve. - - returns Real - is static; - - - FunctionMatrix(me) - ---Purpose: returns the function matrix used to approximate the - -- multiline. - ---C++: return const& - - returns Matrix from math - is static; - - - DerivativeFunctionMatrix(me) - ---Purpose: returns the derivative function matrix used to approximate the - -- multiline. - ---C++: return const& - - returns Matrix from math - is static; - - - - Index(me) - ---Purpose: 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. - ---C++: return const& - - returns IntegerVector - is static; - - - FirstConstraint(me; TheConstraints: HArray1OfConstraintCouple; - FirstPoint: Integer) - ---Purpose: - - returns Constraint from AppParCurves - is static; - - - LastConstraint(me; TheConstraints: HArray1OfConstraintCouple; - LastPoint: Integer) - ---Purpose: - - returns Constraint from AppParCurves - is static; - - - - SetFirstLambda(me: in out; l1: Real) - is static; - - - SetLastLambda(me: in out; l2: Real) - is static; - - -fields - -Done: Boolean; -MyMultiLine : MultiLine; -MyMultiBSpCurve: MultiBSpCurve from AppParCurves; -nbpoles: Integer; -myParameters: Vector; -FVal: Real; -ValGrad_F: Vector from math; -MyF: Matrix from math; -PTLX : Matrix from math; -PTLY : Matrix from math; -PTLZ : Matrix from math; -A: Matrix from math; -DA: Matrix from math; -MyLeastSquare : Squares; -Contraintes: Boolean; -NbP: Integer; -NbCu: Integer; -Adeb: Integer; -Afin: Integer; -tabdim: HArray1OfInteger from TColStd; -ERR3d: Real; -ERR2d: Real; -FirstP: Integer; -LastP: Integer; -myConstraints: HArray1OfConstraintCouple from AppParCurves; -mylambda1: Real; -mylambda2: Real; - -end BSpFunction; diff --git a/src/AppParCurves/AppParCurves_BSpGradient.cdl b/src/AppParCurves/AppParCurves_BSpGradient.cdl deleted file mode 100644 index 69c8fd46bc..0000000000 --- a/src/AppParCurves/AppParCurves_BSpGradient.cdl +++ /dev/null @@ -1,185 +0,0 @@ --- Created on: 1993-09-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. - -generic class BSpGradient from AppParCurves - (MultiLine as any; - ToolLine as any) -- as ToolLine(MultiLine) - - - ---Purpose: This algorithm uses the algorithms LeastSquare, - -- ResConstraint and a gradient method to approximate a set - -- of points (AppDef_MultiLine) with a minimization of the - -- sum(square(|F(i)-Qi|)) by changing the parameter. - -- The algorithm used is from of the mathematical - -- package: math_BFGS, a gradient method. - -- The Result is a Bspline set. - - -uses Vector from math, - MultipleVarFunctionWithGradient from math, - MultiBSpCurve from AppParCurves, - HArray1OfConstraintCouple from AppParCurves, - Array1OfReal from TColStd, - Array1OfInteger from TColStd - - -raises OutOfRange from Standard, - NotDone from StdFail - - -private class BSpParLeastSquare instantiates LeastSquare from AppParCurves - (MultiLine, ToolLine); - -private class BSpParFunction instantiates BSpFunction from AppParCurves - (MultiLine, ToolLine, BSpParLeastSquare); - - -class BSpGradient_BFGS from AppParCurves - inherits BFGS from math - uses MultipleVarFunctionWithGradient from math, - Vector from math - - is - - Create ( F : in out MultipleVarFunctionWithGradient from math ; - StartingPoint : Vector from math ; - Tolerance3d : Real from Standard ; - Tolerance2d : Real from Standard ; - Eps : Real from Standard ; - NbIterations : Integer from Standard = 200 ); - - IsSolutionReached ( me ; - F : in out MultipleVarFunctionWithGradient from math ) - returns Boolean from Standard is redefined ; - - fields - - myTol3d : Real from Standard ; - myTol2d : Real from Standard ; - - end BSpGradient_BFGS from AppParCurves ; -is - - Create(SSP: MultiLine; FirstPoint, LastPoint: Integer; - TheConstraints: HArray1OfConstraintCouple; - Parameters: in out Vector; - Knots: Array1OfReal; Mults: Array1OfInteger; - Deg: Integer; - Tol3d, Tol2d: Real; NbIterations: Integer = 1) - ---Purpose: Tries to minimize the sum (square(||Qui - Bi*Pi||)) - -- where Pui describe the approximating BSpline curves'Poles - -- and Qi the MultiLine points with a parameter ui. - -- In this algorithm, the parameters ui are the unknowns. - -- The tolerance required on this sum is given by Tol. - -- The desired degree of the resulting curve is Deg. - - returns BSpGradient from AppParCurves; - - - Create(SSP: MultiLine; FirstPoint, LastPoint: Integer; - TheConstraints: HArray1OfConstraintCouple; - Parameters: in out Vector; - Knots: Array1OfReal; Mults: Array1OfInteger; - Deg: Integer; - Tol3d, Tol2d: Real; NbIterations: Integer; - lambda1, lambda2: Real) - ---Purpose: Tries to minimize the sum (square(||Qui - Bi*Pi||)) - -- where Pui describe the approximating BSpline curves'Poles - -- and Qi the MultiLine points with a parameter ui. - -- In this algorithm, the parameters ui are the unknowns. - -- The tolerance required on this sum is given by Tol. - -- The desired degree of the resulting curve is Deg. - - returns BSpGradient from AppParCurves; - - - Perform(me: in out; SSP: MultiLine; FirstPoint, LastPoint: Integer; - TheConstraints: HArray1OfConstraintCouple; - Parameters: in out Vector; - Knots: Array1OfReal; Mults: Array1OfInteger; - Deg: Integer; - Tol3d, Tol2d: Real; NbIterations: Integer = 200) - is static protected; - - - IsDone(me) - ---Purpose: returns True if all has been correctly done. - - returns Boolean - is static; - - - Value(me) - ---Purpose: returns all the BSpline curves approximating the - -- MultiLine SSP after minimization of the parameter. - - returns MultiBSpCurve from AppParCurves - raises NotDone from StdFail - is static; - - - Error(me; Index: Integer) - ---Purpose: returns the difference between the old and the new - -- approximation. - -- An exception is raised if NotDone. - -- An exception is raised if Index<1 or Index>NbParameters. - - returns Real - raises NotDone from StdFail, - OutOfRange from Standard - is static; - - - MaxError3d(me) - ---Purpose: returns the maximum difference between the old and the - -- new approximation. - - returns Real - raises NotDone from StdFail - is static; - - - MaxError2d(me) - ---Purpose: returns the maximum difference between the old and the - -- new approximation. - - returns Real - raises NotDone from StdFail - is static; - - - AverageError(me) - ---Purpose: returns the average error between the old and the - -- new approximation. - - returns Real - raises NotDone from StdFail - is static; - - -fields - -SCU: MultiBSpCurve from AppParCurves; -ParError: Vector from math; -AvError: Real; -MError3d: Real; -MError2d: Real; -mylambda1: Real; -mylambda2: Real; -myIsLambdaDefined: Boolean; -Done: Boolean; - -end BSpGradient from AppParCurves; diff --git a/src/AppParCurves/AppParCurves_Constraint.hxx b/src/AppParCurves/AppParCurves_Constraint.hxx new file mode 100644 index 0000000000..67f159d244 --- /dev/null +++ b/src/AppParCurves/AppParCurves_Constraint.hxx @@ -0,0 +1,33 @@ +// 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/src/AppParCurves/AppParCurves_ConstraintCouple.cdl b/src/AppParCurves/AppParCurves_ConstraintCouple.cdl deleted file mode 100644 index 3597f39504..0000000000 --- a/src/AppParCurves/AppParCurves_ConstraintCouple.cdl +++ /dev/null @@ -1,65 +0,0 @@ --- Created on: 1993-02-24 --- 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. - -class ConstraintCouple from AppParCurves - ---Purpose: associates an index and a constraint for an object. - -- This couple is used by AppDef_TheVariational when performing approximations. -uses Constraint from AppParCurves - -is - - Create returns ConstraintCouple; - ---Purpose: returns an indefinite ConstraintCouple. - - Create(TheIndex: Integer; Cons: Constraint) - ---Purpose: Create a couple the object will have the - -- constraint . - - returns ConstraintCouple; - - - Index(me) - ---Purpose: returns the index of the constraint object. - - returns Integer - is static; - - - Constraint(me) - ---Purpose: returns the constraint of the object. - - returns Constraint - is static; - - - SetIndex(me: in out; TheIndex: Integer) - ---Purpose: Changes the index of the constraint object. - - is static; - - - SetConstraint(me: in out; Cons: Constraint) - ---Purpose: Changes the constraint of the object. - - is static; - - -fields - -myIndex: Integer; -myConstraint: Constraint from AppParCurves; - -end ConstraintCouple; diff --git a/src/AppParCurves/AppParCurves_ConstraintCouple.cxx b/src/AppParCurves/AppParCurves_ConstraintCouple.cxx index 8adc16745f..ada65285bb 100644 --- a/src/AppParCurves/AppParCurves_ConstraintCouple.cxx +++ b/src/AppParCurves/AppParCurves_ConstraintCouple.cxx @@ -12,9 +12,8 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - +#include AppParCurves_ConstraintCouple:: AppParCurves_ConstraintCouple() {} diff --git a/src/AppParCurves/AppParCurves_ConstraintCouple.hxx b/src/AppParCurves/AppParCurves_ConstraintCouple.hxx new file mode 100644 index 0000000000..2d796a1622 --- /dev/null +++ b/src/AppParCurves/AppParCurves_ConstraintCouple.hxx @@ -0,0 +1,81 @@ +// Created on: 1993-02-24 +// 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 _AppParCurves_ConstraintCouple_HeaderFile +#define _AppParCurves_ConstraintCouple_HeaderFile + +#include +#include +#include + +#include +#include + + +//! associates an index and a constraint for an object. +//! This couple is used by AppDef_TheVariational when performing approximations. +class AppParCurves_ConstraintCouple +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! returns an indefinite ConstraintCouple. + Standard_EXPORT AppParCurves_ConstraintCouple(); + + //! Create a couple the object will have the + //! constraint . + Standard_EXPORT AppParCurves_ConstraintCouple(const Standard_Integer TheIndex, const AppParCurves_Constraint Cons); + + //! returns the index of the constraint object. + Standard_EXPORT Standard_Integer Index() const; + + //! returns the constraint of the object. + Standard_EXPORT AppParCurves_Constraint Constraint() const; + + //! Changes the index of the constraint object. + Standard_EXPORT void SetIndex (const Standard_Integer TheIndex); + + //! Changes the constraint of the object. + Standard_EXPORT void SetConstraint (const AppParCurves_Constraint Cons); + + + + +protected: + + + + + +private: + + + + Standard_Integer myIndex; + AppParCurves_Constraint myConstraint; + + +}; + + + + + + + +#endif // _AppParCurves_ConstraintCouple_HeaderFile diff --git a/src/AppParCurves/AppParCurves_Function.cdl b/src/AppParCurves/AppParCurves_Function.cdl deleted file mode 100644 index afdd105777..0000000000 --- a/src/AppParCurves/AppParCurves_Function.cdl +++ /dev/null @@ -1,177 +0,0 @@ --- Created on: 1991-09-20 --- 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. - -generic class Function from AppParCurves ( - MultiLine as any; - ToolLine as any; -- as ToolLine(MultiLine) - Squares as any; - ResolCons as any) - - inherits MultipleVarFunctionWithGradient from math - - ---Purpose: This function inherits MultipleVarFunctionWithGradient to be - -- used in the mathematical algorithm BFGS. - -- It computes the value of the function - -- F=sum(||Qui - B*Pi||)2 where Pi are Poles of the Bezier curves - -- approximating the given MultiLine SSP and ui the parameters - -- associated to the points Qi of SSP. - -- It also computes the gradient for values ui of the parameter. - - -uses MultiCurve from AppParCurves, - HArray1OfConstraintCouple from AppParCurves, - Constraint from AppParCurves, - Vector from math, - Matrix from math, - HArray1OfInteger from TColStd - -is - - Create(SSP: MultiLine; FirstPoint, LastPoint: Integer; - TheConstraints: HArray1OfConstraintCouple; - Parameters: Vector; Deg: Integer) - ---Purpose: initializes the fields of the function. The approximating - -- curve has the desired degree Deg. - - returns Function from AppParCurves; - - - NbVariables(me) - ---Purpose: returns the number of variables of the function. It - -- corresponds to the number of MultiPoints. - - returns Integer - is static; - - - - Perform(me: in out; X: Vector) - ---Purpose: this method is used each time Value or Gradient is - -- needed. - - is static protected; - - - Value(me: in out; X: Vector; F: out Real) - ---Purpose: this method computes the new approximation of the - -- MultiLine - -- SSP and calculates F = sum (||Pui - Bi*Pi||2) for each - -- point of the MultiLine. - - returns Boolean - is static; - - - Gradient(me: in out; X: Vector; G: out Vector) - ---Purpose: returns the gradient G of the sum above for the - -- parameters Xi. - - returns Boolean - is static; - - - Values(me: in out; X: Vector; F: out Real; G: out Vector) - ---Purpose: returns the value F=sum(||Pui - Bi*Pi||)2. - -- returns the value G = grad(F) for the parameters Xi. - - returns Boolean - is static; - - - - NewParameters(me) - ---Purpose: returns the new parameters of the MultiLine. - ---C++: return const& - returns Vector - is static; - - - CurveValue(me: in out) - ---Purpose: returns the MultiCurve approximating the set after - -- computing the value F or Grad(F). - ---C++: return const& - returns MultiCurve from AppParCurves - is static; - - - Error(me; IPoint, CurveIndex: Integer) - ---Purpose: returns the distance between the MultiPoint of range - -- IPoint and the curve CurveIndex. - - returns Real - is static; - - - MaxError3d(me) - ---Purpose: returns the maximum distance between the points - -- and the MultiCurve. - - returns Real - is static; - - MaxError2d(me) - ---Purpose: returns the maximum distance between the points - -- and the MultiCurve. - - returns Real - is static; - - - FirstConstraint(me; TheConstraints: HArray1OfConstraintCouple; - FirstPoint: Integer) - ---Purpose: - - returns Constraint from AppParCurves - is static; - - - LastConstraint(me; TheConstraints: HArray1OfConstraintCouple; - LastPoint: Integer) - ---Purpose: - - returns Constraint from AppParCurves - is static; - - -fields - -Done: Boolean; -MyMultiLine : MultiLine; -MyMultiCurve: MultiCurve from AppParCurves; -Degre: Integer; -myParameters: Vector; -FVal: Real; -ValGrad_F: Vector from math; -MyF: Matrix from math; -PTLX : Matrix from math; -PTLY : Matrix from math; -PTLZ : Matrix from math; -A: Matrix from math; -DA: Matrix from math; -MyLeastSquare : Squares; -Contraintes: Boolean; -NbP: Integer; -NbCu: Integer; -Adeb: Integer; -Afin: Integer; -tabdim: HArray1OfInteger from TColStd; -ERR3d: Real; -ERR2d: Real; -FirstP: Integer; -LastP: Integer; -myConstraints: HArray1OfConstraintCouple from AppParCurves; - -end Function; diff --git a/src/AppParCurves/AppParCurves_Gradient.cdl b/src/AppParCurves/AppParCurves_Gradient.cdl deleted file mode 100644 index bfedfeb3f1..0000000000 --- a/src/AppParCurves/AppParCurves_Gradient.cdl +++ /dev/null @@ -1,154 +0,0 @@ --- Created on: 1991-07-25 --- 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. - -generic class Gradient from AppParCurves - (MultiLine as any; - ToolLine as any) -- as ToolLine(MultiLine) - - - ---Purpose: This algorithm uses the algorithms LeastSquare, - -- ResConstraint and a gradient method to approximate a set - -- of points (AppDef_MultiLine) with a minimization of the - -- sum(square(|F(i)-Qi|)) by changing the parameter. - -- The algorithm used is from of the mathematical - -- package: math_BFGS, a gradient method. - - - -uses Vector from math, - MultipleVarFunctionWithGradient from math, - MultiCurve from AppParCurves, - HArray1OfConstraintCouple from AppParCurves - - -raises OutOfRange from Standard, - NotDone from StdFail - - -private class ParLeastSquare instantiates LeastSquare from AppParCurves - (MultiLine, ToolLine); - -private class ResConstraint instantiates ResolConstraint from AppParCurves - (MultiLine, ToolLine); - -private class ParFunction instantiates Function from AppParCurves - (MultiLine, ToolLine, ParLeastSquare, ResConstraint); - -class Gradient_BFGS from AppParCurves - inherits BFGS from math - uses MultipleVarFunctionWithGradient from math, - Vector from math - is - - Create ( F : in out MultipleVarFunctionWithGradient from math ; - StartingPoint : Vector from math ; - Tolerance3d : Real from Standard ; - Tolerance2d : Real from Standard ; - Eps : Real from Standard ; - NbIterations : Integer from Standard = 200 ); - - IsSolutionReached ( me ; - F : in out MultipleVarFunctionWithGradient from math ) - returns Boolean from Standard is redefined ; - - fields - - myTol3d : Real from Standard ; - myTol2d : Real from Standard ; - - end Gradient_BFGS from AppParCurves ; - -is - - Create(SSP: MultiLine; FirstPoint, LastPoint: Integer; - TheConstraints: HArray1OfConstraintCouple; - Parameters: in out Vector; Deg: Integer; - Tol3d, Tol2d: Real; NbIterations: Integer = 200) - ---Purpose: Tries to minimize the sum (square(||Qui - Bi*Pi||)) - -- where Pui describe the approximating Bezier curves'Poles - -- and Qi the MultiLine points with a parameter ui. - -- In this algorithm, the parameters ui are the unknowns. - -- The tolerance required on this sum is given by Tol. - -- The desired degree of the resulting curve is Deg. - - returns Gradient from AppParCurves; - - - IsDone(me) - ---Purpose: returns True if all has been correctly done. - - returns Boolean - is static; - - - Value(me) - ---Purpose: returns all the Bezier curves approximating the - -- MultiLine SSP after minimization of the parameter. - - returns MultiCurve from AppParCurves - raises NotDone from StdFail - is static; - - - Error(me; Index: Integer) - ---Purpose: returns the difference between the old and the new - -- approximation. - -- An exception is raised if NotDone. - -- An exception is raised if Index<1 or Index>NbParameters. - - returns Real - raises NotDone from StdFail, - OutOfRange from Standard - is static; - - - MaxError3d(me) - ---Purpose: returns the maximum difference between the old and the - -- new approximation. - - returns Real - raises NotDone from StdFail - is static; - - - MaxError2d(me) - ---Purpose: returns the maximum difference between the old and the - -- new approximation. - - returns Real - raises NotDone from StdFail - is static; - - - AverageError(me) - ---Purpose: returns the average error between the old and the - -- new approximation. - - returns Real - raises NotDone from StdFail - is static; - - -fields - -SCU: MultiCurve from AppParCurves; -ParError: Vector from math; -AvError: Real; -MError3d: Real; -MError2d: Real; -Done: Boolean; - -end Gradient from AppParCurves; diff --git a/src/AppParCurves/AppParCurves_LeastSquare.cdl b/src/AppParCurves/AppParCurves_LeastSquare.cdl deleted file mode 100644 index cb7456131c..0000000000 --- a/src/AppParCurves/AppParCurves_LeastSquare.cdl +++ /dev/null @@ -1,390 +0,0 @@ --- Created on: 1991-07-25 --- 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. - -generic class LeastSquare from AppParCurves - (MultiLine as any; - ToolLine as any) -- as ToolLine(MultiLine) - - - ---Purpose: This class describes the least square fitting of a - -- MultiLine using the Householder method from the - -- mathematical package. - -- Computes in parallel the least square resolution of a - -- set of points (MultiLine). The result is a - -- set of Bezier curves (MultiCurve). - -- The problem to solve is the following one: - -- minimizing the sum(|C(ui)- Qi|)2 where Qi are the points of - -- the MultiLine and C(ui) the points of the approximating - -- curves. - - - -uses Matrix from math, - Vector from math, - IntegerVector from math, - Constraint from AppParCurves, - MultiCurve from AppParCurves, - MultiBSpCurve from AppParCurves, - Array1OfInteger from TColStd, - Array1OfReal from TColStd, - HArray1OfInteger from TColStd, - HArray1OfReal from TColStd - - -raises NotDone from StdFail, - OutOfRange from Standard, - DimensionError from Standard, - NoSuchObject from Standard - -is - - Create(SSP: MultiLine; FirstPoint, LastPoint: Integer; - FirstCons, LastCons: Constraint; - Parameters: Vector from math; NbPol: Integer) - ---Purpose: 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). - - returns LeastSquare from AppParCurves - raises DimensionError from Standard; - - - - Create(SSP: MultiLine; FirstPoint, LastPoint: Integer; - FirstCons, LastCons: Constraint; NbPol: Integer) - ---Purpose: Initializes the fields of the object. - - returns LeastSquare; - - - Create(SSP: MultiLine; Knots: Array1OfReal; Mults: Array1OfInteger; - FirstPoint, LastPoint: Integer; - FirstCons, LastCons: Constraint; - Parameters: Vector from math; NbPol: Integer) - ---Purpose: 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). - - returns LeastSquare from AppParCurves - raises DimensionError from Standard; - - - - Create(SSP: MultiLine; Knots: Array1OfReal; Mults: Array1OfInteger; - FirstPoint, LastPoint: Integer; - FirstCons, LastCons: Constraint; NbPol: Integer) - ---Purpose: Initializes the fields of the object. - - returns LeastSquare; - - - - Init(me: in out; SSP: MultiLine; FirstPoint, LastPoint: Integer) - ---Purpose: is used by the constuctors above. - - is static protected; - - - Perform(me: in out; Parameters: Vector) - ---Purpose: Is used after having initialized the fields. - -- The case "CurvaturePoint" is not treated in this method. - - is static; - - - Perform(me: in out; Parameters: Vector; - l1, l2: Real) - ---Purpose: Is used after having initialized the fields. - - is static; - - - ---------------------------------------------------------------------- - -- for the two following methods, vectors must be constructed - -- as follow: - -- V(v1x, v1y, v1z, ....., vnx, vny, vnz, v1x, v1y, ....., vmx, vmy) - -- 3d curve 3d curve 2d curve 2d curve - -- - -- the length of V must be Nb3dpoints*3 + Nb2dpoints*2 - - - Perform(me: in out; Parameters: Vector; - V1t, V2t: Vector; - l1, l2: Real) - ---Purpose: Is used after having initialized the fields. - --- is the tangent vector at the first point. - --- is the tangent vector at the last point. - is static; - - Perform(me: in out; Parameters: Vector; - V1t, V2t, V1c, V2c: Vector; - l1, l2: Real) - ---Purpose: 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. - - is static; - - - ------------------------------- - --- Result methods: - ------------------------------- - - - IsDone(me) - ---Purpose: returns True if all has been correctly done. - - returns Boolean - is static; - - - BezierValue(me: in out) - ---Purpose: returns the result of the approximation, i.e. all the - -- Curves. - -- An exception is raised if NotDone. - - returns MultiCurve from AppParCurves - raises NotDone from StdFail, - NoSuchObject from Standard - is static; - - - BSplineValue(me: in out) - ---Purpose: returns the result of the approximation, i.e. all the - -- Curves. - -- An exception is raised if NotDone. - ---C++: return const & - - returns MultiBSpCurve from AppParCurves - raises NotDone from StdFail, - NoSuchObject from Standard - is static; - - - FunctionMatrix(me) - ---Purpose: returns the function matrix used to approximate the - -- set. - ---C++: return const & - - returns Matrix from math - raises NotDone from StdFail - is static; - - - - DerivativeFunctionMatrix(me) - ---Purpose: returns the derivative function matrix used - -- to approximate the set. - ---C++: return const & - - returns Matrix from math - raises NotDone from StdFail - is static; - - - ErrorGradient(me: in out; Grad: in out Vector; - F: in out Real; MaxE3d, MaxE2d: in out Real) - ---Purpose: 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. - - is static; - - - Distance(me: in out) - ---Purpose: returns the distances between the points of the - -- multiline and the approximation curves. - ---C++: return const& - - returns Matrix from math - is static; - - - Error(me: in out; F: in out Real; - MaxE3d, MaxE2d: in out Real) - ---Purpose: returns the maximum errors between the MultiLine - -- and the approximation curves. F is the sum of the square - -- distances. - - is static; - - - FirstLambda(me) - ---Purpose: returns the value (P2 - P1)/ V1 if the first point - -- was a tangency point. - - returns Real - is static; - - - LastLambda(me) - ---Purpose: returns the value (PN - PN-1)/ VN if the last point - -- was a tangency point. - - returns Real - is static; - - - Points(me) - ---Purpose: returns the matrix of points value. - ---C++: return const& - - returns Matrix - is static; - - - Poles(me) - ---Purpose: returns the matrix of resulting control points value. - ---C++: return const& - - returns Matrix - is static; - - - KIndex(me) - ---Purpose: 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. - ---C++: return const& - - returns IntegerVector - is static; - - - - ------------------------------- - --- internal methods: - ------------------------------- - - NbBColumns(me; SSP: MultiLine) - ---Purpose: returns the number of second member columns. - -- Is used internally to initialize the fields. - returns Integer - is static protected; - - - TheFirstPoint(me; FirstCons: Constraint; FirstPoint: Integer) - ---Purpose: returns the first point beeing fitted. - returns Integer - is static protected; - - - TheLastPoint(me; LastCons: Constraint; LastPoint: Integer) - ---Purpose: returns the last point beeing fitted. - returns Integer - is static protected; - - - Affect(me: in out; SSP: MultiLine; Index: Integer; - Cons: in out Constraint; Vt, Vc: in out Vector) - ---Purpose: Affects the fields in the case of a constraint point. - is static protected; - - - ComputeFunction(me: in out; Parameters: Vector) - ---Purpose: - is static protected; - - - SearchIndex(me: in out; Index: in out IntegerVector) - is static protected; - - - MakeTAA(me: in out; TheA, TheB: in out Vector) - ---Purpose: computes internal matrixes for the resolution - is static protected; - - MakeTAA(me: in out; TheA: in out Vector) - ---Purpose: computes internal matrixes for the resolution - is static protected; - - MakeTAA(me: in out; TheA: in out Vector; TheB: in out Matrix) - ---Purpose: computes internal matrixes for the resolution - is static protected; - -fields - - -FirstConstraint : Constraint from AppParCurves; -LastConstraint : Constraint from AppParCurves; -SCU: MultiBSpCurve from AppParCurves; -myknots: HArray1OfReal from TColStd; -mymults: HArray1OfInteger from TColStd; -mypoles: Matrix from math; -A: Matrix from math; -DA: Matrix from math; -B2: Matrix from math; -mypoints: Matrix from math; -Vflatknots: Vector from math; -Vec1t: Vector from math; -Vec1c: Vector from math; -Vec2t: Vector from math; -Vec2c: Vector from math; -theError: Matrix from math; -myindex: IntegerVector from math; - -lambda1: Real; -lambda2: Real; - -FirstP: Integer; -LastP: Integer; -Nlignes: Integer; -Ninc: Integer; -NA: Integer; -myfirstp: Integer; -mylastp: Integer; -resinit: Integer; -resfin: Integer; -nbP2d: Integer; -nbP: Integer; - -nbpoles: Integer; -deg: Integer; - -done: Boolean; -iscalculated : Boolean; -isready : Boolean; -end LeastSquare; - diff --git a/src/AppParCurves/AppParCurves_MultiBSpCurve.cdl b/src/AppParCurves/AppParCurves_MultiBSpCurve.cdl deleted file mode 100644 index e94dfdf6d6..0000000000 --- a/src/AppParCurves/AppParCurves_MultiBSpCurve.cdl +++ /dev/null @@ -1,215 +0,0 @@ --- Created on: 1993-09-20 --- 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. - -class MultiBSpCurve from AppParCurves - inherits MultiCurve from AppParCurves - - ---Purpose: This class describes a MultiBSpCurve approximating a Multiline. - -- Just as a Multiline is a set of a given number of lines, a MultiBSpCurve is a set - -- of a specified number of bsplines defined by: - -- - A specified number of MultiPoints - the poles of a specified number of curves - -- - The degree of approximation identical for each of the specified number of curves. - -- - -- - -- Example of a MultiBSpCurve composed of a specified number 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. - -- MultiBSpCurves are created by the SplineValue method in the ComputeLine - -- class, and by the Value method in TheVariational class. MultiBSpCurve - -- provides the information required to create the BSpline defined by the approximation. - -uses MultiPoint from AppParCurves, - HArray1OfMultiPoint from AppParCurves, - Array1OfMultiPoint from AppParCurves, - Array1OfPnt from TColgp, - Array1OfPnt2d from TColgp, - Array1OfReal from TColStd, - Array1OfInteger from TColStd, - HArray1OfReal from TColStd, - HArray1OfInteger from TColStd, - Pnt from gp, - Pnt2d from gp, - Vec from gp, - Vec2d from gp, - OStream from Standard - - -raises OutOfRange from Standard, - DimensionError from Standard, - ConstructionError from Standard - -is - - Create returns MultiBSpCurve; - ---Purpose: returns an indefinite MultiBSpCurve. - - - Create(NbPol: Integer) - ---Purpose: creates a MultiBSpCurve, describing BSpline curves all - -- containing the same number of MultiPoint. - -- An exception is raised if Degree < 0. - - - returns MultiBSpCurve from AppParCurves - raises OutOfRange from Standard; - - - Create(tabMU: Array1OfMultiPoint; Knots: Array1OfReal; - Mults: Array1OfInteger) - ---Purpose: creates a MultiBSpCurve, describing BSpline curves all - -- containing the same number of MultiPoint. - -- Each MultiPoint must have NbCurves Poles. - - returns MultiBSpCurve from AppParCurves - raises ConstructionError from Standard; - - - - Create(SC: MultiCurve; Knots: Array1OfReal; - Mults: Array1OfInteger) - ---Purpose: creates a MultiBSpCurve, describing BSpline - -- curves, taking control points from . - - returns MultiBSpCurve from AppParCurves - raises ConstructionError from Standard; - - - SetKnots(me: in out; theKnots: Array1OfReal) - ---Purpose: Knots of the multiBSpCurve are assigned to . - is static; - - - SetMultiplicities(me: in out; theMults: Array1OfInteger) - ---Purpose: Multiplicities of the multiBSpCurve are assigned - -- to . - is static; - - - Knots(me) - ---Purpose: Returns an array of Reals containing - -- the multiplicities of curves resulting from the approximation. - ---C++: return const& - returns Array1OfReal - is static; - - Multiplicities(me) - ---Purpose: Returns an array of Reals containing the - -- multiplicities of curves resulting from the approximation. - ---C++: return const& - returns Array1OfInteger - is static; - - - Degree(me) - ---Purpose: returns the degree of the curve(s). - - returns Integer - is redefined; - - - Value(me; CuIndex: Integer; U: Real; Pt: out Pnt) - ---Purpose: returns the value of the point with a parameter U - -- on the BSpline curve number CuIndex. - -- An exception is raised if CuIndex <0 or > NbCurves. - -- An exception is raised if the curve dimension is 2d. - - raises OutOfRange from Standard, - DimensionError from Standard - is redefined; - - - Value(me; CuIndex: Integer; U: Real; Pt: out Pnt2d) - ---Purpose: returns the value of the point with a parameter U - -- on the BSpline curve number CuIndex. - -- An exception is raised if CuIndex <0 or > NbCurves. - -- An exception is raised if the curve dimension is 3d. - - raises OutOfRange from Standard, - DimensionError from Standard - is redefined; - - - D1(me; CuIndex: Integer; U: Real; Pt: out Pnt; V1: out Vec) - ---Purpose: returns the value of the point with a parameter U - -- on the BSpline curve number CuIndex. - -- An exception is raised if CuIndex <0 or > NbCurves. - -- An exception is raised if the curve dimension is 3d. - - raises OutOfRange from Standard, - DimensionError from Standard - is redefined; - - - D1(me; CuIndex: Integer; U: Real; Pt: out Pnt2d; V1: out Vec2d) - ---Purpose: returns the value of the point with a parameter U - -- on the BSpline curve number CuIndex. - -- An exception is raised if CuIndex <0 or > NbCurves. - -- An exception is raised if the curve dimension is 2d. - - raises OutOfRange from Standard, - DimensionError from Standard - is redefined; - - D2(me; CuIndex: Integer; U: Real; Pt: out Pnt; V1: out Vec; V2: out Vec) - ---Purpose: returns the value of the point with a parameter U - -- on the BSpline curve number CuIndex. - -- An exception is raised if CuIndex <0 or > NbCurves. - -- An exception is raised if the curve dimension is 3d. - - raises OutOfRange from Standard, - DimensionError from Standard - is redefined; - - - D2(me; CuIndex: Integer; U: Real; Pt: out Pnt2d; - V1: out Vec2d; V2: out Vec2d) - ---Purpose: returns the value of the point with a parameter U - -- on the BSpline curve number CuIndex. - -- An exception is raised if CuIndex <0 or > NbCurves. - -- An exception is raised if the curve dimension is 2d. - - raises OutOfRange from Standard, - DimensionError from Standard - is redefined; - - - Dump(me; o: in out OStream) - ---Purpose: Prints on the stream o information on the current - -- state of the object. - -- Is used to redefine the operator <<. - - is redefined; - - -fields - - myknots: HArray1OfReal; - mymults: HArray1OfInteger; - myDegree : Integer; - -end MultiBSpCurve; diff --git a/src/AppParCurves/AppParCurves_MultiBSpCurve.cxx b/src/AppParCurves/AppParCurves_MultiBSpCurve.cxx index 20d1a2683a..3655fa9258 100644 --- a/src/AppParCurves/AppParCurves_MultiBSpCurve.cxx +++ b/src/AppParCurves/AppParCurves_MultiBSpCurve.cxx @@ -12,18 +12,25 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include + #include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : ComputeDegree //purpose : //======================================================================= - static Standard_Integer ComputeDegree(const TColStd_Array1OfInteger& mults, const Standard_Integer nbPoles) { diff --git a/src/AppParCurves/AppParCurves_MultiBSpCurve.hxx b/src/AppParCurves/AppParCurves_MultiBSpCurve.hxx new file mode 100644 index 0000000000..456110252d --- /dev/null +++ b/src/AppParCurves/AppParCurves_MultiBSpCurve.hxx @@ -0,0 +1,175 @@ +// Created on: 1993-09-20 +// 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 _AppParCurves_MultiBSpCurve_HeaderFile +#define _AppParCurves_MultiBSpCurve_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Standard_DimensionError; +class Standard_ConstructionError; +class AppParCurves_MultiCurve; +class gp_Pnt; +class gp_Pnt2d; +class gp_Vec; +class gp_Vec2d; + + +//! This class describes a MultiBSpCurve approximating a Multiline. +//! Just as a Multiline is a set of a given number of lines, a MultiBSpCurve is a set +//! of a specified number of bsplines defined by: +//! - A specified number of MultiPoints - the poles of a specified number of curves +//! - The degree of approximation identical for each of the specified number of curves. +//! +//! Example of a MultiBSpCurve composed of a specified number 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. +//! MultiBSpCurves are created by the SplineValue method in the ComputeLine +//! class, and by the Value method in TheVariational class. MultiBSpCurve +//! provides the information required to create the BSpline defined by the approximation. +class AppParCurves_MultiBSpCurve : public AppParCurves_MultiCurve +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! returns an indefinite MultiBSpCurve. + Standard_EXPORT AppParCurves_MultiBSpCurve(); + + //! creates a MultiBSpCurve, describing BSpline curves all + //! containing the same number of MultiPoint. + //! An exception is raised if Degree < 0. + Standard_EXPORT AppParCurves_MultiBSpCurve(const Standard_Integer NbPol); + + //! creates a MultiBSpCurve, describing BSpline curves all + //! containing the same number of MultiPoint. + //! Each MultiPoint must have NbCurves Poles. + Standard_EXPORT AppParCurves_MultiBSpCurve(const AppParCurves_Array1OfMultiPoint& tabMU, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults); + + //! creates a MultiBSpCurve, describing BSpline + //! curves, taking control points from . + Standard_EXPORT AppParCurves_MultiBSpCurve(const AppParCurves_MultiCurve& SC, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults); + + //! Knots of the multiBSpCurve are assigned to . + Standard_EXPORT void SetKnots (const TColStd_Array1OfReal& theKnots); + + //! Multiplicities of the multiBSpCurve are assigned + //! to . + Standard_EXPORT void SetMultiplicities (const TColStd_Array1OfInteger& theMults); + + //! Returns an array of Reals containing + //! the multiplicities of curves resulting from the approximation. + Standard_EXPORT const TColStd_Array1OfReal& Knots() const; + + //! Returns an array of Reals containing the + //! multiplicities of curves resulting from the approximation. + Standard_EXPORT const TColStd_Array1OfInteger& Multiplicities() const; + + //! returns the degree of the curve(s). + Standard_EXPORT virtual Standard_Integer Degree() const Standard_OVERRIDE; + + //! returns the value of the point with a parameter U + //! on the BSpline 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 Standard_OVERRIDE; + + //! returns the value of the point with a parameter U + //! on the BSpline 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 Standard_OVERRIDE; + + //! returns the value of the point with a parameter U + //! on the BSpline 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 Standard_OVERRIDE; + + //! returns the value of the point with a parameter U + //! on the BSpline 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 Standard_OVERRIDE; + + //! returns the value of the point with a parameter U + //! on the BSpline 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 Standard_OVERRIDE; + + //! returns the value of the point with a parameter U + //! on the BSpline 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 Standard_OVERRIDE; + + //! 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 Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + Handle(TColStd_HArray1OfReal) myknots; + Handle(TColStd_HArray1OfInteger) mymults; + Standard_Integer myDegree; + + +}; + + + + + + + +#endif // _AppParCurves_MultiBSpCurve_HeaderFile diff --git a/src/AppParCurves/AppParCurves_MultiCurve.cdl b/src/AppParCurves/AppParCurves_MultiCurve.cdl deleted file mode 100644 index 56f554f1cc..0000000000 --- a/src/AppParCurves/AppParCurves_MultiCurve.cdl +++ /dev/null @@ -1,286 +0,0 @@ --- 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. - -class MultiCurve from AppParCurves - - ---Purpose: 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. - - -uses MultiPoint from AppParCurves, - HArray1OfMultiPoint from AppParCurves, - Array1OfMultiPoint from AppParCurves, - Array1OfPnt from TColgp, - Array1OfPnt2d from TColgp, - Pnt from gp, - Pnt2d from gp, - Vec from gp, - Vec2d from gp, - OStream from Standard - - -raises OutOfRange from Standard, - DimensionError from Standard, - ConstructionError from Standard - -is - - Create returns MultiCurve; - ---Purpose: returns an indefinite MultiCurve. - - - Create(NbPol: Integer) - ---Purpose: creates a MultiCurve, describing Bezier curves all - -- containing the same number of MultiPoint. - -- An exception is raised if Degree < 0. - - - returns MultiCurve from AppParCurves - raises OutOfRange from Standard; - - - Create(tabMU: Array1OfMultiPoint) - ---Purpose: creates a MultiCurve, describing Bezier curves all - -- containing the same number of MultiPoint. - -- Each MultiPoint must have NbCurves Poles. - - returns MultiCurve from AppParCurves - raises ConstructionError from Standard; - - ---C++: alias " Standard_EXPORT virtual ~AppParCurves_MultiCurve();" - - SetNbPoles(me: in out; nbPoles: Integer) - ---Purpose: The number of poles of the MultiCurve - -- will be set to . - - is static; - - - - SetValue(me: in out; Index: Integer; - MPoint: MultiPoint from AppParCurves) - ---Purpose: sets the MultiPoint of range Index to the value - -- . - -- An exception is raised if Index <0 or Index >NbMPoint. - - raises OutOfRange from Standard, - DimensionError from Standard - is static; - - - - NbCurves(me) - ---Purpose: Returns the number of curves resulting from the - -- approximation of a MultiLine. - - returns Integer - is static; - - - NbPoles(me) - ---Purpose: Returns the number of poles on curves resulting from the approximation of a MultiLine. - - returns Integer - is virtual; - - - Degree(me) - ---Purpose: returns the degree of the curves. - - returns Integer - is virtual; - - - Dimension(me; CuIndex: Integer) - ---Purpose: returns the dimension of the CuIndex curve. - -- An exception is raised if CuIndex<0 or CuIndex>NbCurves. - returns Integer - raises OutOfRange from Standard - is static; - - - Curve(me; CuIndex: Integer; TabPnt: in out Array1OfPnt) - ---Purpose: returns the Pole array of the curve of range CuIndex. - -- An exception is raised if the dimension of the curve - -- is 2d. - - raises OutOfRange from Standard, - DimensionError from Standard - is static; - - - Curve(me; CuIndex: Integer; TabPnt: in out Array1OfPnt2d) - ---Purpose: returns the Pole array of the curve of range CuIndex. - -- An exception is raised if the dimension of the curve - -- is 3d. - - raises OutOfRange from Standard, - DimensionError from Standard - is static; - - - Value(me; Index: Integer) - ---Purpose: returns the Index MultiPoint. - -- An exception is raised if Index <0 or Index >Degree+1. - ---C++: return const& - - returns MultiPoint from AppParCurves - raises OutOfRange from Standard - is static; - - - Pole(me; CuIndex, Nieme: Integer) - ---Purpose: returns the Nieme pole of the CuIndex curve. - -- the curve must be a 3D curve. - ---C++: return const& - - returns Pnt from gp - raises OutOfRange from Standard - is static; - - - Pole2d(me; CuIndex, Nieme: Integer) - ---Purpose: returns the Nieme pole of the CuIndex curve. - -- the curve must be a 2D curve. - ---C++: return const& - - returns Pnt2d from gp - raises OutOfRange from Standard - is static; - - - Transform(me: in out; CuIndex: Integer; x, dx, y, dy, z, dz: Real) - ---Purpose: 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 - - raises OutOfRange from Standard - is static; - - - Transform2d(me: in out; CuIndex: Integer; x, dx, y, dy: Real) - ---Purpose: Applies a transformation to the Curve of range - -- . - -- newx = x + dx*oldx - -- newy = y + dy*oldy for all points of the curve. - - raises OutOfRange from Standard - is static; - - - Value(me; CuIndex: Integer; U: Real; Pt: out Pnt) - ---Purpose: 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. - - raises OutOfRange from Standard, - DimensionError from Standard - is virtual; - - - Value(me; CuIndex: Integer; U: Real; Pt: out Pnt2d) - ---Purpose: 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. - - raises OutOfRange from Standard, - DimensionError from Standard - is virtual; - - - D1(me; CuIndex: Integer; U: Real; Pt: out Pnt; V1: out Vec) - ---Purpose: 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. - - raises OutOfRange from Standard, - DimensionError from Standard - is virtual; - - - D1(me; CuIndex: Integer; U: Real; Pt: out Pnt2d; V1: out Vec2d) - ---Purpose: 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. - - raises OutOfRange from Standard, - DimensionError from Standard - is virtual; - - D2(me; CuIndex: Integer; U: Real; Pt: out Pnt; V1: out Vec; V2: out Vec) - ---Purpose: 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. - - raises OutOfRange from Standard, - DimensionError from Standard - is virtual; - - - D2(me; CuIndex: Integer; U: Real; Pt: out Pnt2d; - V1: out Vec2d; V2: out Vec2d) - ---Purpose: 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. - - raises OutOfRange from Standard, - DimensionError from Standard - is virtual; - - - Dump(me; o: in out OStream) - ---Purpose: Prints on the stream o information on the current - -- state of the object. - -- Is used to redefine the operator <<. - - is virtual; - - -fields - -tabPoint: HArray1OfMultiPoint from AppParCurves is protected; - - -end MultiCurve; diff --git a/src/AppParCurves/AppParCurves_MultiCurve.cxx b/src/AppParCurves/AppParCurves_MultiCurve.cxx index a40d02669a..bbf1b64068 100644 --- a/src/AppParCurves/AppParCurves_MultiCurve.cxx +++ b/src/AppParCurves/AppParCurves_MultiCurve.cxx @@ -12,13 +12,20 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include + +#include +#include #include +#include +#include +#include +#include #include - +#include +#include +#include +#include +#include AppParCurves_MultiCurve::AppParCurves_MultiCurve() {} diff --git a/src/AppParCurves/AppParCurves_MultiCurve.hxx b/src/AppParCurves/AppParCurves_MultiCurve.hxx new file mode 100644 index 0000000000..e7f6ca1252 --- /dev/null +++ b/src/AppParCurves/AppParCurves_MultiCurve.hxx @@ -0,0 +1,206 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Standard_DimensionError; +class Standard_ConstructionError; +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/src/AppParCurves/AppParCurves_MultiPoint.cdl b/src/AppParCurves/AppParCurves_MultiPoint.cdl deleted file mode 100644 index 2687844e80..0000000000 --- a/src/AppParCurves/AppParCurves_MultiPoint.cdl +++ /dev/null @@ -1,185 +0,0 @@ --- 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. - -class MultiPoint from AppParCurves - ---Purpose: 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. - - -uses Pnt from gp, - Pnt2d from gp, - Vec from gp, - Vec2d from gp, - Array1OfPnt from TColgp, - Array1OfPnt2d from TColgp, - HArray1OfPnt from TColgp, - HArray1OfPnt2d from TColgp, - OStream from Standard, - TShared from MMgt - -raises OutOfRange from Standard, - DimensionError from Standard - -is - - Create returns MultiPoint; - ---Purpose: creates an indefinite MultiPoint. - - - Create(NbPoints, NbPoints2d: Integer) - ---Purpose: 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. - - returns MultiPoint from AppParCurves; - - - Create(tabP: Array1OfPnt) - ---Purpose: creates a MultiPoint only composed of 3D points. - - returns MultiPoint from AppParCurves; - - - Create(tabP2d: Array1OfPnt2d) - ---Purpose: creates a MultiPoint only composed of 2D points. - - returns MultiPoint from AppParCurves; - - - Create(tabP: Array1OfPnt; tabP2d: Array1OfPnt2d) - ---Purpose: 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. - - returns MultiPoint from AppParCurves; - - ---C++: alias " Standard_EXPORT virtual ~AppParCurves_MultiPoint();" - - SetPoint(me: in out; Index: Integer; Point: Pnt) - ---Purpose: 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. - - raises OutOfRange from Standard - is static; - - - - Point(me; Index: Integer) - ---Purpose: returns the 3d Point of range Index. - -- An exception is raised if Index < 0 or - -- Index < number of 3d Points. - ---C++: return const& - - returns Pnt from gp - raises OutOfRange from Standard - is static; - - - SetPoint2d(me: in out; Index: Integer; Point: Pnt2d) - ---Purpose: The 2d Point of range Index is set to . - -- An exception is raised if Index > 3d Points or - -- Index > total number of Points. - - raises OutOfRange from Standard, - DimensionError from Standard - is static; - - - Point2d(me; Index: Integer) - ---Purpose: returns the 2d Point of range Index. - -- An exception is raised if index <= number of - -- 3d Points or Index > total number of Points. - ---C++: return const& - - returns Pnt2d from gp - raises OutOfRange from Standard - is static; - - - - Dimension(me; Index: Integer) - ---Purpose: returns the dimension of the point of range Index. - -- An exception is raised if Index <0 or Index > NbCurves. - ---C++: inline - - returns Integer - raises OutOfRange from Standard - is static; - - - NbPoints(me) - ---Purpose: returns the number of points of dimension 3D. - ---C++: inline - - returns Integer - is static; - - - NbPoints2d(me) - ---Purpose: returns the number of points of dimension 2D. - ---C++: inline - - returns Integer - is static; - - - Transform(me: in out; CuIndex: Integer; x, dx, y, dy, z, dz: Real) - ---Purpose: 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 - - raises OutOfRange from Standard - is static; - - - Transform2d(me: in out; CuIndex: Integer; x, dx, y, dy: Real) - ---Purpose: Applies a transformation to the Curve of range - -- . - -- newx = x + dx*oldx - -- newy = y + dy*oldy for all points of the curve. - - raises OutOfRange from Standard - is static; - - - Dump(me; o: in out OStream) - ---Purpose: Prints on the stream o information on the current - -- state of the object. - -- Is used to redefine the operator <<. - is virtual; - -fields - -ttabPoint : TShared from MMgt is protected; -ttabPoint2d: TShared from MMgt is protected; -nbP : Integer is protected; -nbP2d : Integer is protected; - -end MultiPoint; - diff --git a/src/AppParCurves/AppParCurves_MultiPoint.cxx b/src/AppParCurves/AppParCurves_MultiPoint.cxx index f18aedd0c1..cd46435b9a 100644 --- a/src/AppParCurves/AppParCurves_MultiPoint.cxx +++ b/src/AppParCurves/AppParCurves_MultiPoint.cxx @@ -12,11 +12,15 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include +#include +#include +#include +#include +#include #include +#include +#include #define tabPoint Handle(TColgp_HArray1OfPnt)::DownCast (ttabPoint) #define tabPoint2d Handle(TColgp_HArray1OfPnt2d)::DownCast (ttabPoint2d) diff --git a/src/AppParCurves/AppParCurves_MultiPoint.hxx b/src/AppParCurves/AppParCurves_MultiPoint.hxx new file mode 100644 index 0000000000..cbce46c1b5 --- /dev/null +++ b/src/AppParCurves/AppParCurves_MultiPoint.hxx @@ -0,0 +1,151 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +class MMgt_TShared; +class Standard_OutOfRange; +class Standard_DimensionError; +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(MMgt_TShared) ttabPoint; + Handle(MMgt_TShared) ttabPoint2d; + Standard_Integer nbP; + Standard_Integer nbP2d; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _AppParCurves_MultiPoint_HeaderFile diff --git a/src/AppParCurves/AppParCurves_ResolConstraint.cdl b/src/AppParCurves/AppParCurves_ResolConstraint.cdl deleted file mode 100644 index 028c6a5fa7..0000000000 --- a/src/AppParCurves/AppParCurves_ResolConstraint.cdl +++ /dev/null @@ -1,140 +0,0 @@ --- Created on: 1991-07-25 --- 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. - -generic class ResolConstraint from AppParCurves - (MultiLine as any; - ToolLine as any) -- as ToolLine(MultiLine) - - - ---Purpose: This classe describes the algorithm to find the approximate - -- solution of a MultiLine with constraints. The resolution - -- algorithm is the Uzawa method. See the math package - -- for more information. - -- All the tangencies of MultiPointConstraint's points - -- will be colinear. - -- Be careful of the curvature: it is possible to have some - -- curvAature points only for one curve. In this case, the Uzawa - -- method is used with a non-linear resolution, much more longer. - - -uses Matrix from math, - Vector from math, - Array1OfInteger from TColStd, - MultiCurve from AppParCurves, - HArray1OfConstraintCouple from AppParCurves - - -raises OutOfRange from Standard - -is - - Create(SSP: MultiLine; SCurv: in out MultiCurve; - FirstPoint, LastPoint: Integer; - Constraints: HArray1OfConstraintCouple; - Bern, DerivativeBern: Matrix; Tolerance: Real = 1.0e-10) - ---Purpose: Given a MultiLine SSP with constraints points, this - -- algorithm finds the best curve solution to approximate it. - -- The poles from SCurv issued for example from the least - -- squares are used as a guess solution for the uzawa - -- algorithm. The tolerance used in the Uzawa algorithms - -- is Tolerance. - -- A is the Bernstein matrix associated to the MultiLine - -- and DA is the derivative bernstein matrix.(They can come - -- from an approximation with ParLeastSquare.) - -- The MultiCurve is modified. New MultiPoles are given. - - - returns ResolConstraint from AppParCurves; - - - IsDone(me) - ---Purpose: returns True if all has been correctly done. - - returns Boolean - is static; - - - Error(me) - ---Purpose: returns the maximum difference value between the curve - -- and the given points. - - returns Real - is static; - - - ConstraintMatrix(me) - ---Purpose: - ---C++: return const& - - returns Matrix - is static; - - - Duale(me) - ---Purpose: returns the duale variables of the system. - ---C++: return const& - returns Vector - is static; - - - ConstraintDerivative(me: in out; SSP: MultiLine; Parameters: Vector; - Deg: Integer; DA: Matrix) - ---Purpose: Returns the derivative of the constraint matrix. - ---C++: return const& - returns Matrix - is static; - - - InverseMatrix(me) - ---Purpose: returns the Inverse of Cont*Transposed(Cont), where - -- Cont is the constraint matrix for the algorithm. - ---C++: return const& - - returns Matrix - is static; - - NbConstraints(me; SSP: MultiLine; FirstPoint, LastPoint: Integer; - TheConstraints: HArray1OfConstraintCouple) - ---Purpose: is used internally to create the fields. - - returns Integer - is static protected; - - - NbColumns(me; SSP: MultiLine; Deg: Integer) - ---Purpose: is internally used for the fields creation. - - returns Integer - is static protected; - - -fields - -Done: Boolean; -Err: Real; -Cont: Matrix; -DeCont: Matrix; -Secont: Vector; -CTCinv: Matrix; -Vardua: Vector; -IncPass: Integer; -IncTan: Integer; -IncCurv: Integer; -IPas: Array1OfInteger; -ITan: Array1OfInteger; -ICurv: Array1OfInteger; - -end ResolConstraint; diff --git a/src/AppParCurves/FILES b/src/AppParCurves/FILES index 6751bccdf9..a704643cf6 100644 --- a/src/AppParCurves/FILES +++ b/src/AppParCurves/FILES @@ -1,10 +1,30 @@ +AppParCurves.cxx +AppParCurves.hxx AppParCurves_Array1OfConstraintCouple.hxx -AppParCurves_HArray1OfConstraintCouple.hxx -AppParCurves_Array1OfMultiPoint.hxx -AppParCurves_HArray1OfMultiPoint.hxx -AppParCurves_Array1OfMultiCurve.hxx -AppParCurves_HArray1OfMultiCurve.hxx -AppParCurves_SequenceOfMultiCurve.hxx AppParCurves_Array1OfMultiBSpCurve.hxx +AppParCurves_Array1OfMultiCurve.hxx +AppParCurves_Array1OfMultiPoint.hxx +AppParCurves_BSpFunction.gxx +AppParCurves_BSpGradient.gxx +AppParCurves_BSpGradient_BFGS.gxx +AppParCurves_Constraint.hxx +AppParCurves_ConstraintCouple.cxx +AppParCurves_ConstraintCouple.hxx +AppParCurves_Function.gxx +AppParCurves_Gradient.gxx +AppParCurves_Gradient_BFGS.gxx +AppParCurves_HArray1OfConstraintCouple.hxx AppParCurves_HArray1OfMultiBSpCurve.hxx +AppParCurves_HArray1OfMultiCurve.hxx +AppParCurves_HArray1OfMultiPoint.hxx +AppParCurves_LeastSquare.gxx +AppParCurves_MultiBSpCurve.cxx +AppParCurves_MultiBSpCurve.hxx +AppParCurves_MultiCurve.cxx +AppParCurves_MultiCurve.hxx +AppParCurves_MultiPoint.cxx +AppParCurves_MultiPoint.hxx +AppParCurves_MultiPoint.lxx +AppParCurves_ResolConstraint.gxx AppParCurves_SequenceOfMultiBSpCurve.hxx +AppParCurves_SequenceOfMultiCurve.hxx diff --git a/src/AppStd/AppStd.cdl b/src/AppStd/AppStd.cdl deleted file mode 100644 index 2a3775ad4d..0000000000 --- a/src/AppStd/AppStd.cdl +++ /dev/null @@ -1,26 +0,0 @@ --- Created on: 2000-09-07 --- Created by: TURIN Anatoliy --- Copyright (c) 2000-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. - -package AppStd - -uses - - Standard, TCollection, TColStd, Resource, CDM, TDocStd -is - class Application; - -end AppStd; - - diff --git a/src/AppStd/AppStd_Application.cdl b/src/AppStd/AppStd_Application.cdl deleted file mode 100644 index b89b8fc750..0000000000 --- a/src/AppStd/AppStd_Application.cdl +++ /dev/null @@ -1,42 +0,0 @@ --- Created on: 2000-09-07 --- Created by: TURIN Anatoliy --- Copyright (c) 2000-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. - -class Application from AppStd inherits Application from TDocStd - -uses MessageDriver from CDM, - SequenceOfExtendedString from TColStd, - ExtendedString from TCollection - -is - - Create returns Application from AppStd; - - MessageDriver(me: mutable) - returns MessageDriver from CDM - is redefined; - - Formats(me: mutable; theFormats: out SequenceOfExtendedString from TColStd) - ---Purpose: returns supported format for application documents. - is redefined; - - ResourcesName (me: mutable) - ---Purpose: returns the file name which contains application - -- resources - returns CString from Standard; - -fields - myMessageDriver : MessageDriver from CDM; - -end Application; diff --git a/src/AppStd/AppStd_Application.cxx b/src/AppStd/AppStd_Application.cxx index ad375fc446..aabc8fbc54 100644 --- a/src/AppStd/AppStd_Application.cxx +++ b/src/AppStd/AppStd_Application.cxx @@ -15,14 +15,15 @@ //AGV 15/10/01 : Add XmlOcaf support; add MessageDriver support -#include +#include #include +#include +#include //======================================================================= //function : AppStd_Application //purpose : //======================================================================= - AppStd_Application::AppStd_Application() { myMessageDriver = new CDM_COutMessageDriver; diff --git a/src/AppStd/AppStd_Application.hxx b/src/AppStd/AppStd_Application.hxx new file mode 100644 index 0000000000..e78ad2442e --- /dev/null +++ b/src/AppStd/AppStd_Application.hxx @@ -0,0 +1,73 @@ +// Created on: 2000-09-07 +// Created by: TURIN Anatoliy +// Copyright (c) 2000-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 _AppStd_Application_HeaderFile +#define _AppStd_Application_HeaderFile + +#include +#include + +#include +#include +#include +class CDM_MessageDriver; + + +class AppStd_Application; +DEFINE_STANDARD_HANDLE(AppStd_Application, TDocStd_Application) + + +class AppStd_Application : public TDocStd_Application +{ + +public: + + + Standard_EXPORT AppStd_Application(); + + Standard_EXPORT virtual Handle(CDM_MessageDriver) MessageDriver() Standard_OVERRIDE; + + //! returns supported format for application documents. + Standard_EXPORT virtual void Formats (TColStd_SequenceOfExtendedString& theFormats) Standard_OVERRIDE; + + //! returns the file name which contains application + //! resources + Standard_EXPORT Standard_CString ResourcesName(); + + + + + DEFINE_STANDARD_RTTI(AppStd_Application,TDocStd_Application) + +protected: + + + + +private: + + + Handle(CDM_MessageDriver) myMessageDriver; + + +}; + + + + + + + +#endif // _AppStd_Application_HeaderFile diff --git a/src/AppStd/FILES b/src/AppStd/FILES new file mode 100644 index 0000000000..ff457fa471 --- /dev/null +++ b/src/AppStd/FILES @@ -0,0 +1,2 @@ +AppStd_Application.cxx +AppStd_Application.hxx diff --git a/src/AppStdL/AppStdL.cdl b/src/AppStdL/AppStdL.cdl deleted file mode 100644 index 1e4904ce91..0000000000 --- a/src/AppStdL/AppStdL.cdl +++ /dev/null @@ -1,26 +0,0 @@ --- Created on: 2004-06-29 --- Created by: Eugeny NAPALKOV --- 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. - -package AppStdL - -uses - - Standard, TCollection, TColStd, Resource, CDM, TDocStd -is - class Application; - -end AppStdL; - - diff --git a/src/AppStdL/AppStdL_Application.cdl b/src/AppStdL/AppStdL_Application.cdl deleted file mode 100644 index d75149e2e5..0000000000 --- a/src/AppStdL/AppStdL_Application.cdl +++ /dev/null @@ -1,42 +0,0 @@ --- Created on: 2004-06-29 --- Created by: Eugeny NAPALKOV --- 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. - -class Application from AppStdL inherits Application from TDocStd - -uses MessageDriver from CDM, - SequenceOfExtendedString from TColStd, - ExtendedString from TCollection - -is - - Create returns Application from AppStdL; - - MessageDriver(me: mutable) - returns MessageDriver from CDM - is redefined; - - Formats(me: mutable; theFormats: out SequenceOfExtendedString from TColStd) - ---Purpose: returns supported format for application documents. - is redefined; - - ResourcesName (me: mutable) - ---Purpose: returns the file name which contains application - -- resources - returns CString from Standard; - -fields - myMessageDriver : MessageDriver from CDM; - -end Application; diff --git a/src/AppStdL/AppStdL_Application.cxx b/src/AppStdL/AppStdL_Application.cxx index 6fc95ba13e..17609f67b9 100644 --- a/src/AppStdL/AppStdL_Application.cxx +++ b/src/AppStdL/AppStdL_Application.cxx @@ -15,14 +15,15 @@ //AGV 15/10/01 : Add XmlOcaf support; add MessageDriver support -#include +#include #include +#include +#include //======================================================================= //function : AppStdL_Application //purpose : //======================================================================= - AppStdL_Application::AppStdL_Application() { myMessageDriver = new CDM_COutMessageDriver; diff --git a/src/AppStdL/AppStdL_Application.hxx b/src/AppStdL/AppStdL_Application.hxx new file mode 100644 index 0000000000..adea61dbae --- /dev/null +++ b/src/AppStdL/AppStdL_Application.hxx @@ -0,0 +1,73 @@ +// Created on: 2004-06-29 +// Created by: Eugeny NAPALKOV +// 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 _AppStdL_Application_HeaderFile +#define _AppStdL_Application_HeaderFile + +#include +#include + +#include +#include +#include +class CDM_MessageDriver; + + +class AppStdL_Application; +DEFINE_STANDARD_HANDLE(AppStdL_Application, TDocStd_Application) + + +class AppStdL_Application : public TDocStd_Application +{ + +public: + + + Standard_EXPORT AppStdL_Application(); + + Standard_EXPORT virtual Handle(CDM_MessageDriver) MessageDriver() Standard_OVERRIDE; + + //! returns supported format for application documents. + Standard_EXPORT virtual void Formats (TColStd_SequenceOfExtendedString& theFormats) Standard_OVERRIDE; + + //! returns the file name which contains application + //! resources + Standard_EXPORT Standard_CString ResourcesName(); + + + + + DEFINE_STANDARD_RTTI(AppStdL_Application,TDocStd_Application) + +protected: + + + + +private: + + + Handle(CDM_MessageDriver) myMessageDriver; + + +}; + + + + + + + +#endif // _AppStdL_Application_HeaderFile diff --git a/src/AppStdL/FILES b/src/AppStdL/FILES new file mode 100644 index 0000000000..d02c95b984 --- /dev/null +++ b/src/AppStdL/FILES @@ -0,0 +1,2 @@ +AppStdL_Application.cxx +AppStdL_Application.hxx diff --git a/src/Approx/Approx.cdl b/src/Approx/Approx.cdl deleted file mode 100644 index 7abc237335..0000000000 --- a/src/Approx/Approx.cdl +++ /dev/null @@ -1,130 +0,0 @@ --- 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. - -package Approx - - ---Purpose: Tis package provides algorithms approximating a set of - -- points or curves with the possibility of dividing into - -- one or many bezier curves. - -- It also provides an instantiation for approximating - -- a continous function f(t) into one or many curves. - -uses AdvApprox, - AppCont, - AppParCurves, - math, - gp, - GeomAbs, - Geom, - Geom2d, - Adaptor3d, - Adaptor2d, - TColStd, - TColGeom, - TColgp, - TCollection, - Standard, - StdFail - - -is - -enumeration ParametrizationType is - ChordLength, - Centripetal, - IsoParametric -end; - -enumeration Status is - PointsAdded, - NoPointsAdded, - NoApproximation -end; - - ---------------------------------------------- ----Algorithms for Bezier curves construction: ---------------------------------------------- - - - generic class ComputeLine, MyGradient; - - generic class ComputeCLine; - ----------------------------------------------- ----Algorithms for BSpline curves construction: ----------------------------------------------- - - - generic class BSplComputeLine, MyBSplGradient, MyGradientbis; - ----------------------------------------------- ----Algorithms for BSpline Surface construction: ----------------------------------------------- - class SweepApproximation; - deferred class SweepFunction; ------------------------------------------------------------------ ---- Transformation of connecting MultiCurves into a MultiBSpCurve ------------------------------------------------------------------ - - - class MCurvesToBSpCurve; - ------------------------------------------------- ----Algorithms for PCurve approximation: ------------------------------------------------- - class CurveOnSurface; - class Curve3d; - class Curve2d; ------------------------------------------------- ----Algorithms for PCurve approximation: ------------------------------------------------- - class CurvilinearParameter; - class CurvlinFunc; --------------------------- ---- instantiate classes: --------------------------- - - imported SequenceOfHArray1OfReal; - - ------------------------------------------------------------------ ---- the folowing classes approximate a continous function f(t) in ---- one or many bezier curves. ------------------------------------------------------------------ - - class FitAndDivide instantiates ComputeCLine from Approx - (Function from AppCont); - - class FitAndDivide2d instantiates ComputeCLine from Approx - (Function from AppCont); - - class SameParameter from Approx ; - - imported Array1OfAdHSurface; - imported transient class HArray1OfAdHSurface; - imported Array1OfGTrsf2d; - - imported transient class HArray1OfGTrsf2d; - - -- class ApproxPoints from Approx ; - -- class ApproxPoints from Approx ; - -- this approximates a series of points - -- Boundary conditions can be given as well - -- a given parameterisation - -- - -end Approx; diff --git a/src/Approx/Approx_BSplComputeLine.cdl b/src/Approx/Approx_BSplComputeLine.cdl deleted file mode 100644 index b90f25ffd0..0000000000 --- a/src/Approx/Approx_BSplComputeLine.cdl +++ /dev/null @@ -1,318 +0,0 @@ --- Created on: 1993-09-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. - -generic class BSplComputeLine from Approx - (MultiLine as any; - LineTool as any) - - - -uses ParametrizationType from Approx, - SequenceOfReal from TColStd, - HArray1OfReal from TColStd, - HArray1OfInteger from TColStd, - Array1OfReal from TColStd, - Array1OfInteger from TColStd, - HArray1OfConstraintCouple from AppParCurves, - Constraint from AppParCurves, - MultiBSpCurve from AppParCurves, - MultiCurve from AppParCurves, - Vector from math - - - -private class MyBSplGradient instantiates BSpGradient from AppParCurves - (MultiLine, - LineTool); - - -private class MyGradientbis instantiates Gradient from AppParCurves - (MultiLine, - LineTool); - -is - - - Create(Line: MultiLine; - degreemin: Integer = 4; - degreemax: Integer = 8; - Tolerance3d: Real = 1.0e-3; - Tolerance2d: Real = 1.0e-6; - NbIterations: Integer = 5; - cutting: Boolean = Standard_True; - parametrization: ParametrizationType from Approx = - Approx_ChordLength; - Squares: Boolean = Standard_False) - - ---Purpose: The MultiLine will be approximated until tolerances - -- will be reached. - -- The approximation will be done from degreemin to degreemax - -- with a cutting if the corresponding boolean is True. - -- If is True, the computation will be done with - -- no iteration at all. - -- - -- The multiplicities of the internal knots is set by - -- default. - - returns BSplComputeLine; - - - Create(Line: MultiLine; - Parameters: Vector from math; - degreemin: Integer = 4; - degreemax: Integer = 8; - Tolerance3d: Real = 1.0e-03; - Tolerance2d: Real = 1.0e-06; - NbIterations: Integer = 5; - cutting: Boolean = Standard_True; - Squares: Boolean = Standard_False) - - ---Purpose: The MultiLine will be approximated until tolerances - -- will be reached. - -- The approximation will be done from degreemin to degreemax - -- with a cutting if the corresponding boolean is True. - -- If is True, the computation will be done with - -- no iteration at all. - - returns BSplComputeLine; - - - Create(Parameters: Vector from math; - degreemin: Integer = 4; - degreemax: Integer = 8; - Tolerance3d: Real = 1.0e-03; - Tolerance2d: Real = 1.0e-06; - NbIterations: Integer = 5; - cutting: Boolean = Standard_True; - Squares: Boolean = Standard_False) - - ---Purpose: Initializes the fields of the algorithm. - - returns BSplComputeLine; - - - Create(degreemin: Integer = 4; - degreemax: Integer = 8; - Tolerance3d: Real = 1.0e-03; - Tolerance2d: Real = 1.0e-06; - NbIterations: Integer = 5; - cutting: Boolean = Standard_True; - parametrization: ParametrizationType from Approx = - Approx_ChordLength; - Squares: Boolean = Standard_False) - - ---Purpose: Initializes the fields of the algorithm. - - returns BSplComputeLine; - - - Interpol(me: in out; Line: MultiLine) - ---Purpose: Constructs an interpolation of the MultiLine - -- The result will be a C2 curve of degree 3. - is static; - - - - Init(me: in out; degreemin: Integer = 4; - degreemax: Integer = 8; - Tolerance3d: Real = 1.0e-03; - Tolerance2d: Real = 1.0e-06; - NbIterations: Integer = 5; - cutting: Boolean = Standard_True; - parametrization: ParametrizationType from Approx = - Approx_ChordLength; - Squares: Boolean = Standard_False) - - ---Purpose: Initializes the fields of the algorithm. - - is static; - - - Perform(me: in out; Line: MultiLine) - ---Purpose: runs the algorithm after having initialized the fields. - - is static; - - - Compute(me: in out; Line: MultiLine; fpt, lpt: Integer; - Para: in out Vector from math; Knots: Array1OfReal; - Mults: in out Array1OfInteger) - ---Purpose: is internally used in the algorithm. - - returns Boolean - is static private; - - - ComputeCurve(me: in out; Line: MultiLine; firspt, lastpt: Integer) - ---Purpose: is internally used in the algorithm. - - returns Boolean - is static private; - - - Parameters(me; Line: MultiLine; firstP, LastP: Integer; - TheParameters: in out Vector) - ---Purpose: computes new parameters between firstP and lastP. - - is static private; - - - SetParameters(me: in out; ThePar: Vector from math) - ---Purpose: The approximation will begin with the - -- set of parameters . - is static; - - - SetKnots(me: in out; Knots: Array1OfReal from TColStd) - ---Purpose: The approximation will be done with the - -- set of knots . The multiplicities will be set - -- with the degree and the desired continuity. - is static; - - - SetKnotsAndMultiplicities(me: in out; - Knots: Array1OfReal from TColStd; - Mults: Array1OfInteger from TColStd) - ---Purpose: The approximation will be done with the - -- set of knots and the multiplicities . - is static; - - - SetDegrees(me: in out; degreemin, degreemax: Integer) - ---Purpose: changes the degrees of the approximation. - - is static; - - - SetTolerances(me: in out; Tolerance3d, Tolerance2d: Real) - ---Purpose: Changes the tolerances of the approximation. - - is static; - - - SetContinuity(me: in out; C: Integer) - ---Purpose: sets the continuity of the spline. - -- if C = 2, the spline will be C2. - - is static; - - - SetConstraints(me: in out; firstC, lastC: Constraint from AppParCurves) - ---Purpose: changes the first and the last constraint points. - is static; - - - IsAllApproximated(me) - ---Purpose: returns False if at a moment of the approximation, - -- the status NoApproximation has been sent by the user - -- when more points were needed. - - returns Boolean - is static; - - - IsToleranceReached(me) - ---Purpose: returns False if the status NoPointsAdded has been sent. - - returns Boolean - is static; - - - Error(me; tol3d: in out Real; tol2d: in out Real) - ---Purpose: returns the tolerances 2d and 3d of the MultiBSpCurve. - - is static; - - - Value(me) - ---Purpose: returns the result of the approximation. - ---C++: return const& - returns MultiBSpCurve from AppParCurves; - - - ChangeValue(me: in out) - ---Purpose: returns the result of the approximation. - ---C++: return & - returns MultiBSpCurve from AppParCurves; - - - - Parameters(me) - ---Purpose: returns the new parameters of the approximation - -- corresponding to the points of the MultiBSpCurve. - ---C++: return const& - returns Array1OfReal from TColStd - is static; - - - - SearchFirstLambda(me; Line: MultiLine; Para: Vector; - Knots: Array1OfReal from TColStd; - V: Vector; index: Integer) - returns Real - is static private; - - SearchLastLambda(me: ; Line: MultiLine; Para: Vector; - Knots: Array1OfReal from TColStd; - V: Vector; index: Integer) - returns Real - is static private; - - TangencyVector(me; Line: MultiLine; C: MultiCurve from AppParCurves; - U: Real from Standard; V: in out Vector from math) - is static private; - - - FirstTangencyVector(me; Line: MultiLine; index: Integer; V: out Vector) - is static private; - - LastTangencyVector(me; Line: MultiLine; index: Integer; V: out Vector) - is static private; - - FindRealConstraints(me: in out; Line: MultiLine) - is static private; - -fields - -TheMultiBSpCurve: MultiBSpCurve from AppParCurves; -alldone : Boolean from Standard; -tolreached : Boolean from Standard; -Par : ParametrizationType from Approx; -myParameters : HArray1OfReal from TColStd; -myfirstParam : HArray1OfReal from TColStd; -myknots : HArray1OfReal from TColStd; -mymults : HArray1OfInteger from TColStd; -myhasknots : Boolean from Standard; -myhasmults : Boolean from Standard; -myConstraints : HArray1OfConstraintCouple from AppParCurves; -mydegremin : Integer from Standard; -mydegremax : Integer from Standard; -mytol3d : Real from Standard; -mytol2d : Real from Standard; -currenttol3d : Real from Standard; -currenttol2d : Real from Standard; -mycut : Boolean from Standard; -mysquares : Boolean from Standard; -myitermax : Integer from Standard; -myfirstC : Constraint from AppParCurves; -mylastC : Constraint from AppParCurves; -realfirstC : Constraint from AppParCurves; -reallastC : Constraint from AppParCurves; -mycont : Integer from Standard; -mylambda1 : Real from Standard; -mylambda2 : Real from Standard; - -end BSplComputeLine; diff --git a/src/Approx/Approx_ComputeCLine.cdl b/src/Approx/Approx_ComputeCLine.cdl deleted file mode 100644 index 691e327cde..0000000000 --- a/src/Approx/Approx_ComputeCLine.cdl +++ /dev/null @@ -1,160 +0,0 @@ --- Created on: 1993-05-14 --- 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. - -generic class ComputeCLine from Approx - (MultiLine as any) - ---Purpose: Approximate a continous MultiLine with a cutting. - -- The Tool of the line is the tool from AppCont. - -uses ParametrizationType from Approx, - SequenceOfReal from TColStd, - HArray1OfReal from TColStd, - SequenceOfMultiCurve from AppParCurves, - MultiCurve from AppParCurves, - Constraint from AppParCurves, - Vector from math - - -is - - - Create(Line: MultiLine; - degreemin: Integer = 3; - degreemax: Integer = 8; - Tolerance3d: Real = 1.0e-5; - Tolerance2d: Real = 1.0e-5; - cutting: Boolean = Standard_False; - FirstC: Constraint = AppParCurves_TangencyPoint; - LastC: Constraint = AppParCurves_TangencyPoint) - - ---Purpose: The MultiLine will be approximated until tolerances - -- will be reached. - -- The approximation will be done from degreemin to degreemax - -- with a cutting if the corresponding boolean is True. - - returns ComputeCLine; - - - - - Create(degreemin: Integer = 3; - degreemax: Integer = 8; - Tolerance3d: Real = 1.0e-05; - Tolerance2d: Real = 1.0e-05; - cutting: Boolean = Standard_False; - FirstC: Constraint = AppParCurves_TangencyPoint; - LastC: Constraint = AppParCurves_TangencyPoint) - - ---Purpose: Initializes the fields of the algorithm. - - returns ComputeCLine; - - - Perform(me: in out; Line: MultiLine) - ---Purpose: runs the algorithm after having initialized the fields. - - is static; - - - Compute(me: in out; Line: MultiLine; Ufirst, Ulast: Real; - TheTol3d, TheTol2d: in out Real) - ---Purpose: is internally used by the algorithms. - - returns Boolean - is static private; - - - SetDegrees(me: in out; degreemin, degreemax: Integer) - ---Purpose: changes the degrees of the approximation. - - is static; - - - SetTolerances(me: in out; Tolerance3d, Tolerance2d: Real) - ---Purpose: Changes the tolerances of the approximation. - - is static; - - - SetConstraints(me: in out; FirstC, LastC: Constraint) - ---Purpose: Changes the constraints of the approximation. - - is static; - - - IsAllApproximated(me) - ---Purpose: returns False if at a moment of the approximation, - -- the status NoApproximation has been sent by the user - -- when more points were needed. - - returns Boolean - is static; - - IsToleranceReached(me) - ---Purpose: returns False if the status NoPointsAdded has been sent. - - returns Boolean - is static; - - - Error(me; Index: Integer; tol3d: in out Real; tol2d: in out Real) - ---Purpose: returns the tolerances 2d and 3d of the MultiCurve. - - is static; - - - NbMultiCurves(me) - ---Purpose: Returns the number of MultiCurve doing the approximation - -- of the MultiLine. - returns Integer - is static; - - - Value(me; Index: Integer = 1) - ---Purpose: returns the approximation MultiCurve of range . - - returns MultiCurve from AppParCurves; - - - Parameters(me; Index: Integer; firstp, lastp: in out Real) - ---purpose: returns the first and last parameters of the - -- MultiCurve. - is static; - - -fields - - -myMultiCurves: SequenceOfMultiCurve from AppParCurves; -myfirstparam: SequenceOfReal from TColStd; -mylastparam: SequenceOfReal from TColStd; -TheMultiCurve: MultiCurve from AppParCurves; -alldone: Boolean; -tolreached: Boolean; -Tolers3d: SequenceOfReal from TColStd; -Tolers2d: SequenceOfReal from TColStd; -mydegremin: Integer; -mydegremax: Integer; -mytol3d: Real; -mytol2d: Real; -currenttol3d: Real; -currenttol2d: Real; -mycut: Boolean; -myfirstC: Constraint; -mylastC: Constraint; - - -end ComputeCLine; diff --git a/src/Approx/Approx_ComputeLine.cdl b/src/Approx/Approx_ComputeLine.cdl deleted file mode 100644 index 9b79919bcc..0000000000 --- a/src/Approx/Approx_ComputeLine.cdl +++ /dev/null @@ -1,284 +0,0 @@ --- 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. - -generic class ComputeLine from Approx - (MultiLine as any; - LineTool as any) - ---Purpose: Approximate a MultiLine with a cutting. - -uses ParametrizationType from Approx, - SequenceOfReal from TColStd, - HArray1OfReal from TColStd, - Array1OfReal from TColStd, - SequenceOfMultiCurve from AppParCurves, - HArray1OfMultiCurve from AppParCurves, - HArray1OfConstraintCouple from AppParCurves, - Constraint from AppParCurves, - SequenceOfHArray1OfReal from Approx, - MultiCurve from AppParCurves, - MultiBSpCurve from AppParCurves, - Vector from math - - - -private class MyGradient instantiates Gradient from AppParCurves - (MultiLine, - LineTool); - -is - - - Create(Line: MultiLine; - degreemin: Integer = 4; - degreemax: Integer = 8; - Tolerance3d: Real = 1.0e-3; - Tolerance2d: Real = 1.0e-6; - NbIterations: Integer = 5; - cutting: Boolean = Standard_True; - parametrization: ParametrizationType from Approx = - Approx_ChordLength; - Squares: Boolean = Standard_False) - - ---Purpose: The MultiLine will be approximated until tolerances - -- will be reached. - -- The approximation will be done from degreemin to degreemax - -- with a cutting if the corresponding boolean is True. - -- If is True, the computation will be done with - -- no iteration at all. - - returns ComputeLine; - - - Create(Line: MultiLine; - Parameters: Vector from math; - degreemin: Integer = 4; - degreemax: Integer = 8; - Tolerance3d: Real = 1.0e-03; - Tolerance2d: Real = 1.0e-06; - NbIterations: Integer = 5; - cutting: Boolean = Standard_True; - Squares: Boolean = Standard_False) - - ---Purpose: The MultiLine will be approximated until tolerances - -- will be reached. - -- The approximation will be done from degreemin to degreemax - -- with a cutting if the corresponding boolean is True. - -- If is True, the computation will be done with - -- no iteration at all. - - returns ComputeLine; - - - Create(Parameters: Vector from math; - degreemin: Integer = 4; - degreemax: Integer = 8; - Tolerance3d: Real = 1.0e-03; - Tolerance2d: Real = 1.0e-06; - NbIterations: Integer = 5; - cutting: Boolean = Standard_True; - Squares: Boolean = Standard_False) - - ---Purpose: Initializes the fields of the algorithm. - - returns ComputeLine; - - - Create(degreemin: Integer = 4; - degreemax: Integer = 8; - Tolerance3d: Real = 1.0e-03; - Tolerance2d: Real = 1.0e-06; - NbIterations: Integer = 5; - cutting: Boolean = Standard_True; - parametrization: ParametrizationType from Approx = - Approx_ChordLength; - Squares: Boolean = Standard_False) - - ---Purpose: Initializes the fields of the algorithm. - - returns ComputeLine; - - - Init(me: in out; degreemin: Integer = 4; - degreemax: Integer = 8; - Tolerance3d: Real = 1.0e-03; - Tolerance2d: Real = 1.0e-06; - NbIterations: Integer = 5; - cutting: Boolean = Standard_True; - parametrization: ParametrizationType from Approx = - Approx_ChordLength; - Squares: Boolean = Standard_False) - - ---Purpose: Initializes the fields of the algorithm. - - is static; - - - - - Perform(me: in out; Line: MultiLine) - ---Purpose: runs the algorithm after having initialized the fields. - - is static; - - - Compute(me: in out; Line: MultiLine; fpt, lpt: Integer; - Para: in out Vector from math; TheTol3d, TheTol2d: in out Real) - ---Purpose: is internally used in the algorithm. - - returns Boolean - is static private; - - - ComputeCurve(me: in out; Line: MultiLine; firspt, lastpt: Integer) - ---Purpose: is internally used in the algorithm. - - returns Boolean - is static private; - - - Parameters(me; Line: MultiLine; firstP, LastP: Integer; - TheParameters: in out Vector) - ---Purpose: computes new parameters between firstP and lastP. - - is static private; - - - SetDegrees(me: in out; degreemin, degreemax: Integer) - ---Purpose: changes the degrees of the approximation. - - is static; - - - SetTolerances(me: in out; Tolerance3d, Tolerance2d: Real) - ---Purpose: Changes the tolerances of the approximation. - - is static; - - - SetConstraints(me: in out; firstC, lastC: Constraint from AppParCurves) - ---Purpose: changes the first and the last constraint points. - is static; - - - IsAllApproximated(me) - ---Purpose: returns False if at a moment of the approximation, - -- the status NoApproximation has been sent by the user - -- when more points were needed. - - returns Boolean - is static; - - - IsToleranceReached(me) - ---Purpose: returns False if the status NoPointsAdded has been sent. - - returns Boolean - is static; - - - Error(me; Index: Integer; tol3d: in out Real; tol2d: in out Real) - ---Purpose: returns the tolerances 2d and 3d of the MultiCurve. - - is static; - - - NbMultiCurves(me) - ---Purpose: Returns the number of MultiCurve doing the approximation - -- of the MultiLine. - returns Integer - is static; - - - Value(me; Index: Integer = 1) - ---Purpose: returns the result of the approximation. - ---C++: return const& - returns MultiCurve from AppParCurves - is static; - - ChangeValue(me: in out; Index: Integer = 1) - ---Purpose: returns the result of the approximation. - ---C++: return & - returns MultiCurve from AppParCurves - is static; - - - SplineValue(me: in out) - ---Purpose: returns the result of the approximation. - ---C++: return const& - returns MultiBSpCurve from AppParCurves - is static; - - Parametrization(me; partype : in out ParametrizationType from Approx) - ---Purpose: returns the type of parametrization - is static; - - - Parameters(me; Index: Integer = 1) - ---Purpose: returns the new parameters of the approximation - -- corresponding to the points of the multicurve . - ---C++: return const& - returns Array1OfReal from TColStd - is static; - - - - SearchFirstLambda(me; Line: MultiLine; Para: Vector; - V: Vector; index: Integer) - returns Real - is static private; - - SearchLastLambda(me: ; Line: MultiLine; Para: Vector; - V: Vector; index: Integer) - returns Real - is static private; - - FirstTangencyVector(me; Line: MultiLine; index: Integer; V: in out Vector) - is static private; - - LastTangencyVector(me; Line: MultiLine; index: Integer; V: in out Vector) - is static private; - - -fields - - -myMultiCurves: SequenceOfMultiCurve from AppParCurves; -TheMultiCurve: MultiCurve from AppParCurves; -myspline : MultiBSpCurve from AppParCurves; -alldone: Boolean from Standard; -tolreached: Boolean from Standard; -Par: ParametrizationType from Approx; -myParameters: HArray1OfReal from TColStd; -myfirstParam: HArray1OfReal from TColStd; -myPar: SequenceOfHArray1OfReal from Approx; -Tolers3d: SequenceOfReal from TColStd; -Tolers2d: SequenceOfReal from TColStd; -myConstraints: HArray1OfConstraintCouple from AppParCurves; -mydegremin: Integer from Standard; -mydegremax: Integer from Standard; -mytol3d: Real from Standard; -mytol2d: Real from Standard; -currenttol3d: Real from Standard; -currenttol2d: Real from Standard; -mycut: Boolean from Standard; -mysquares: Boolean from Standard; -myitermax: Integer from Standard; -myfirstC: Constraint from AppParCurves; -mylastC: Constraint from AppParCurves; -myMultiLineNb: Integer from Standard; -myIsClear : Boolean from Standard; - -end ComputeLine; diff --git a/src/Approx/Approx_Curve2d.cdl b/src/Approx/Approx_Curve2d.cdl deleted file mode 100644 index bfaebc174a..0000000000 --- a/src/Approx/Approx_Curve2d.cdl +++ /dev/null @@ -1,55 +0,0 @@ --- Created on: 1997-10-28 --- 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. - -class Curve2d from Approx - - ---Purpose: Makes an approximation for HCurve2d from Adaptor3d - -uses - HCurve2d from Adaptor2d, - Shape from GeomAbs, - BSplineCurve from Geom2d - -is - Create(C2D : HCurve2d from Adaptor2d; - First, - Last, - TolU, TolV : Real; - Continuity : Shape from GeomAbs; - MaxDegree : Integer ; - MaxSegments : Integer) - - returns Curve2d; - - IsDone(me) returns Boolean from Standard; - - HasResult(me) returns Boolean from Standard; - - Curve(me) - returns BSplineCurve from Geom2d; - - MaxError2dU(me) returns Real; - MaxError2dV(me) returns Real; - -fields - - myCurve : BSplineCurve from Geom2d; - myIsDone : Boolean from Standard; - myHasResult : Boolean from Standard; - myMaxError2dU : Real from Standard; - myMaxError2dV : Real from Standard; - -end Curve2d; diff --git a/src/Approx/Approx_Curve2d.cxx b/src/Approx/Approx_Curve2d.cxx index 5e3d514ea6..5d53152f08 100644 --- a/src/Approx/Approx_Curve2d.cxx +++ b/src/Approx/Approx_Curve2d.cxx @@ -14,17 +14,19 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include + +#include #include -#include +#include +#include +#include #include +#include //======================================================================= //class : Approx_Curve2d_Eval //purpose: evaluator class for approximation //======================================================================= - class Approx_Curve2d_Eval : public AdvApprox_EvaluatorFunction { public: diff --git a/src/Approx/Approx_Curve2d.hxx b/src/Approx/Approx_Curve2d.hxx new file mode 100644 index 0000000000..a215fcd6f3 --- /dev/null +++ b/src/Approx/Approx_Curve2d.hxx @@ -0,0 +1,80 @@ +// Created on: 1997-10-28 +// 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 _Approx_Curve2d_HeaderFile +#define _Approx_Curve2d_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class Geom2d_BSplineCurve; +class Adaptor2d_HCurve2d; + + +//! Makes an approximation for HCurve2d from Adaptor3d +class Approx_Curve2d +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT Approx_Curve2d(const Handle(Adaptor2d_HCurve2d)& C2D, const Standard_Real First, const Standard_Real Last, const Standard_Real TolU, const Standard_Real TolV, const GeomAbs_Shape Continuity, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT Standard_Boolean HasResult() const; + + Standard_EXPORT Handle(Geom2d_BSplineCurve) Curve() const; + + Standard_EXPORT Standard_Real MaxError2dU() const; + + Standard_EXPORT Standard_Real MaxError2dV() const; + + + + +protected: + + + + + +private: + + + + Handle(Geom2d_BSplineCurve) myCurve; + Standard_Boolean myIsDone; + Standard_Boolean myHasResult; + Standard_Real myMaxError2dU; + Standard_Real myMaxError2dV; + + +}; + + + + + + + +#endif // _Approx_Curve2d_HeaderFile diff --git a/src/Approx/Approx_Curve3d.cdl b/src/Approx/Approx_Curve3d.cdl deleted file mode 100644 index a860d6dbe1..0000000000 --- a/src/Approx/Approx_Curve3d.cdl +++ /dev/null @@ -1,62 +0,0 @@ --- Created on: 1998-08-20 --- 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. - -class Curve3d from Approx - -uses - HCurve from Adaptor3d, - BSplineCurve from Geom, - Shape from GeomAbs, - OutOfRange from Standard - -raises OutOfRange from Standard, - ConstructionError from Standard - -is - - Create(Curve: HCurve from Adaptor3d; - Tol3d: Real; - Order: Shape from GeomAbs; - MaxSegments: Integer; - MaxDegree: Integer) returns Curve3d from Approx; - ---Purpose: Approximation of a curve with respect of the - -- requiered tolerance Tol3D. - - Curve(me) returns BSplineCurve from Geom; - - IsDone(me) returns Boolean from Standard; - ---Purpose: returns Standard_True if the approximation has - -- been done within requiered tolerance - - HasResult(me) returns Boolean; - ---Purpose: returns Standard_True if the approximation did come out - -- with a result that is not NECESSARELY within the required - -- tolerance - - MaxError(me) returns Real from Standard; - ---Purpose: returns the Maximum Error (>0 when an approximation - -- has been done, 0 if no approximation) - - Dump(me; o: in out OStream); - ---Purpose: Print on the stream o information about the object - -fields - myIsDone : Boolean from Standard; - myHasResult : Boolean from Standard; - myBSplCurve : BSplineCurve from Geom; - myMaxError : Real from Standard; - -end Curve3d; diff --git a/src/Approx/Approx_Curve3d.cxx b/src/Approx/Approx_Curve3d.cxx index 064c12a853..e837ede5cd 100644 --- a/src/Approx/Approx_Curve3d.cxx +++ b/src/Approx/Approx_Curve3d.cxx @@ -14,21 +14,25 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include #include #include -#include -#include -#include -#include -#include #include +#include +#include +#include +#include //======================================================================= //class : Approx_Curve3d_Eval //purpose: evaluator class for approximation //======================================================================= - class Approx_Curve3d_Eval : public AdvApprox_EvaluatorFunction { public: diff --git a/src/Approx/Approx_Curve3d.hxx b/src/Approx/Approx_Curve3d.hxx new file mode 100644 index 0000000000..170b233921 --- /dev/null +++ b/src/Approx/Approx_Curve3d.hxx @@ -0,0 +1,92 @@ +// Created on: 1998-08-20 +// 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 _Approx_Curve3d_HeaderFile +#define _Approx_Curve3d_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class Geom_BSplineCurve; +class Standard_OutOfRange; +class Standard_ConstructionError; +class Adaptor3d_HCurve; + + + +class Approx_Curve3d +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Approximation of a curve with respect of the + //! requiered tolerance Tol3D. + Standard_EXPORT Approx_Curve3d(const Handle(Adaptor3d_HCurve)& Curve, const Standard_Real Tol3d, const GeomAbs_Shape Order, const Standard_Integer MaxSegments, const Standard_Integer MaxDegree); + + Standard_EXPORT Handle(Geom_BSplineCurve) Curve() const; + + //! returns Standard_True if the approximation has + //! been done within requiered tolerance + Standard_EXPORT Standard_Boolean IsDone() const; + + //! returns Standard_True if the approximation did come out + //! with a result that is not NECESSARELY within the required + //! tolerance + Standard_EXPORT Standard_Boolean HasResult() const; + + //! returns the Maximum Error (>0 when an approximation + //! has been done, 0 if no approximation) + Standard_EXPORT Standard_Real MaxError() const; + + //! Print on the stream o information about the object + Standard_EXPORT void Dump (Standard_OStream& o) const; + + + + +protected: + + + + + +private: + + + + Standard_Boolean myIsDone; + Standard_Boolean myHasResult; + Handle(Geom_BSplineCurve) myBSplCurve; + Standard_Real myMaxError; + + +}; + + + + + + + +#endif // _Approx_Curve3d_HeaderFile diff --git a/src/Approx/Approx_CurveOnSurface.cdl b/src/Approx/Approx_CurveOnSurface.cdl deleted file mode 100644 index ce6fc881a9..0000000000 --- a/src/Approx/Approx_CurveOnSurface.cdl +++ /dev/null @@ -1,79 +0,0 @@ --- Created on: 1997-09-30 --- 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. - -class CurveOnSurface from Approx - - ---Purpose: - ---Purpose: Approximation of curve on surface - -uses - Surface from Geom, - HCurve2d from Adaptor2d, - HSurface from Adaptor3d, - BSplineCurve from Geom, - BSplineCurve from Geom2d, - Shape from GeomAbs - -raises OutOfRange from Standard, - ConstructionError from Standard - -is - -Create (C2D : HCurve2d from Adaptor2d; - Surf : HSurface from Adaptor3d; - First, - Last, - Tol : Real; - Continuity : Shape from GeomAbs; - MaxDegree : Integer ; - MaxSegments : Integer; - Only3d, - Only2d : Boolean from Standard = Standard_False) - returns CurveOnSurface from Approx - raises ConstructionError; - - - IsDone(me) returns Boolean from Standard; - - HasResult(me) returns Boolean from Standard; - - Curve3d(me) - returns BSplineCurve from Geom; - - MaxError3d(me) returns Real; - - Curve2d(me) - - ---Purpose: - returns BSplineCurve from Geom2d; - - MaxError2dU(me) returns Real; - MaxError2dV(me) returns Real; - - ---Purpose : returns the maximum errors relativly to the U component or the V component of the - -- 2d Curve - -fields - - myCurve2d : BSplineCurve from Geom2d; - myCurve3d : BSplineCurve from Geom; - myIsDone : Boolean from Standard; - myHasResult : Boolean from Standard; - myError3d : Real from Standard; - myError2dU : Real from Standard; - myError2dV : Real from Standard; - -end CurveOnSurface; diff --git a/src/Approx/Approx_CurveOnSurface.cxx b/src/Approx/Approx_CurveOnSurface.cxx index 56ae7cfe51..e1b867a3a7 100644 --- a/src/Approx/Approx_CurveOnSurface.cxx +++ b/src/Approx/Approx_CurveOnSurface.cxx @@ -14,29 +14,35 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include + +#include #include -#include -#include #include -#include -#include -#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include +#include //======================================================================= //class : Approx_CurveOnSurface_Eval //purpose: evaluator class for approximation of both 2d and 3d curves //======================================================================= - class Approx_CurveOnSurface_Eval : public AdvApprox_EvaluatorFunction { public: diff --git a/src/Approx/Approx_CurveOnSurface.hxx b/src/Approx/Approx_CurveOnSurface.hxx new file mode 100644 index 0000000000..ce5cf4be86 --- /dev/null +++ b/src/Approx/Approx_CurveOnSurface.hxx @@ -0,0 +1,92 @@ +// Created on: 1997-09-30 +// 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 _Approx_CurveOnSurface_HeaderFile +#define _Approx_CurveOnSurface_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class Geom2d_BSplineCurve; +class Geom_BSplineCurve; +class Standard_OutOfRange; +class Standard_ConstructionError; +class Adaptor2d_HCurve2d; +class Adaptor3d_HSurface; + + +//! Approximation of curve on surface +class Approx_CurveOnSurface +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT Approx_CurveOnSurface(const Handle(Adaptor2d_HCurve2d)& C2D, const Handle(Adaptor3d_HSurface)& Surf, const Standard_Real First, const Standard_Real Last, const Standard_Real Tol, const GeomAbs_Shape Continuity, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments, const Standard_Boolean Only3d = Standard_False, const Standard_Boolean Only2d = Standard_False); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT Standard_Boolean HasResult() const; + + Standard_EXPORT Handle(Geom_BSplineCurve) Curve3d() const; + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Handle(Geom2d_BSplineCurve) Curve2d() const; + + Standard_EXPORT Standard_Real MaxError2dU() const; + + //! returns the maximum errors relativly to the U component or the V component of the + //! 2d Curve + Standard_EXPORT Standard_Real MaxError2dV() const; + + + + +protected: + + + + + +private: + + + + Handle(Geom2d_BSplineCurve) myCurve2d; + Handle(Geom_BSplineCurve) myCurve3d; + Standard_Boolean myIsDone; + Standard_Boolean myHasResult; + Standard_Real myError3d; + Standard_Real myError2dU; + Standard_Real myError2dV; + + +}; + + + + + + + +#endif // _Approx_CurveOnSurface_HeaderFile diff --git a/src/Approx/Approx_CurvilinearParameter.cdl b/src/Approx/Approx_CurvilinearParameter.cdl deleted file mode 100644 index abfbed9238..0000000000 --- a/src/Approx/Approx_CurvilinearParameter.cdl +++ /dev/null @@ -1,124 +0,0 @@ --- Created on: 1997-08-22 --- Created by: Jeannine PANCIATICI, Sergey SOKOLOV --- 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. - -class CurvilinearParameter from Approx - - ---Purpose: Approximation of a Curve to make its parameter be its - -- curvilinear abscissa - -- If the curve is a curve on a surface S, C2D is the corresponding Pcurve, - -- we considere the curve is given by its representation S(C2D(u)) - -- If the curve is a curve on 2 surfaces S1 and S2 and C2D1 C2D2 are - -- the two corresponding Pcurve, we considere the curve is given - -- by its representation 1/2(S1(C2D1(u) + S2 (C2D2(u))) - -uses - Shape from GeomAbs, - HSurface from Adaptor3d, - HCurve from Adaptor3d, - HCurve2d from Adaptor2d, - BSplineCurve from Geom, - BSplineCurve from Geom2d - -raises OutOfRange from Standard, - ConstructionError from Standard - -is - Create (C3D : HCurve from Adaptor3d; - Tol : Real; - Order : Shape from GeomAbs; - MaxDegree : Integer; - MaxSegments : Integer) - - returns CurvilinearParameter from Approx - ---Purpose : case of a free 3D curve - -- - raises ConstructionError; - -- If the length of the curve can't be computed or if the length is null - - Create (C2D : HCurve2d from Adaptor2d; - Surf : HSurface from Adaptor3d; - Tol : Real; - Order : Shape from GeomAbs; - MaxDegree : Integer; - MaxSegments : Integer) - returns CurvilinearParameter from Approx - ---Purpose : case of a curve on one surface - -- - raises ConstructionError; - -- If the length of the curve can't be computed or if the length is null - - Create (C2D1 : HCurve2d from Adaptor2d; - Surf1 : HSurface from Adaptor3d; - C2D2 : HCurve2d from Adaptor2d; - Surf2 : HSurface from Adaptor3d; - Tol : Real; - Order : Shape from GeomAbs; - MaxDegree : Integer; - MaxSegments : Integer) - returns CurvilinearParameter from Approx - ---Purpose : case of a curve on two surfaces - -- - raises ConstructionError; - -- If the length of the curve can't be computed or if the length is null - - IsDone(me) returns Boolean from Standard; - -- True if the approximation succeeded within the imposed - -- tolerances - - HasResult(me) returns Boolean from Standard; - -- True if the approximation did come out with a result that - -- is not NECESSARELY within the required tolerance - - Curve3d(me) returns BSplineCurve from Geom; - --- Purpose: returns the Bspline curve corresponding to the reparametrized 3D curve - - MaxError3d (me) returns Real; - --- Purpose: returns the maximum error on the reparametrized 3D curve - - Curve2d1(me) returns BSplineCurve from Geom2d; - ---Purpose: returns the BsplineCurve representing the reparametrized 2D curve on the - -- first surface (case of a curve on one or two surfaces) - - MaxError2d1(me) returns Real; - ---Purpose: returns the maximum error on the first reparametrized 2D curve - - Curve2d2(me) returns BSplineCurve from Geom2d; - ---Purpose: returns the BsplineCurve representing the reparametrized 2D curve on the - -- second surface (case of a curve on two surfaces) - - MaxError2d2(me) returns Real; - ---Purpose: returns the maximum error on the second reparametrized 2D curve - - Dump(me; o: in out OStream); - ---Purpose: print the maximum errors(s) - - ToleranceComputation(myclass; C2D : HCurve2d from Adaptor2d; S : HSurface from Adaptor3d; - MaxNumber : Integer; Tol : Real; TolV, TolW : out Real) - is private; - -fields - - myCase : Integer from Standard; - myDone : Boolean from Standard; - myHasResult : Boolean from Standard; - myCurve3d : BSplineCurve from Geom; - myMaxError3d : Real from Standard; - myCurve2d1 : BSplineCurve from Geom2d; - myMaxError2d1 : Real from Standard; - myCurve2d2 : BSplineCurve from Geom2d; - myMaxError2d2 : Real from Standard; - -end CurvilinearParameter; diff --git a/src/Approx/Approx_CurvilinearParameter.cxx b/src/Approx/Approx_CurvilinearParameter.cxx index 2a1c997726..be46c182d5 100644 --- a/src/Approx/Approx_CurvilinearParameter.cxx +++ b/src/Approx/Approx_CurvilinearParameter.cxx @@ -14,31 +14,36 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include #include #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include #include -#include +#include +#include +#include #include -#include -#include -#include +#include +#include +#include #ifdef OCCT_DEBUG_CHRONO #include diff --git a/src/Approx/Approx_CurvilinearParameter.hxx b/src/Approx/Approx_CurvilinearParameter.hxx new file mode 100644 index 0000000000..0f03b02ba3 --- /dev/null +++ b/src/Approx/Approx_CurvilinearParameter.hxx @@ -0,0 +1,122 @@ +// Created on: 1997-08-22 +// Created by: Jeannine PANCIATICI, Sergey SOKOLOV +// 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_CurvilinearParameter_HeaderFile +#define _Approx_CurvilinearParameter_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class Geom_BSplineCurve; +class Geom2d_BSplineCurve; +class Standard_OutOfRange; +class Standard_ConstructionError; +class Adaptor3d_HCurve; +class Adaptor2d_HCurve2d; +class Adaptor3d_HSurface; + + +//! Approximation of a Curve to make its parameter be its +//! curvilinear abscissa +//! If the curve is a curve on a surface S, C2D is the corresponding Pcurve, +//! we considere the curve is given by its representation S(C2D(u)) +//! If the curve is a curve on 2 surfaces S1 and S2 and C2D1 C2D2 are +//! the two corresponding Pcurve, we considere the curve is given +//! by its representation 1/2(S1(C2D1(u) + S2 (C2D2(u))) +class Approx_CurvilinearParameter +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! case of a free 3D curve + Standard_EXPORT Approx_CurvilinearParameter(const Handle(Adaptor3d_HCurve)& C3D, const Standard_Real Tol, const GeomAbs_Shape Order, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments); + + //! case of a curve on one surface + Standard_EXPORT Approx_CurvilinearParameter(const Handle(Adaptor2d_HCurve2d)& C2D, const Handle(Adaptor3d_HSurface)& Surf, const Standard_Real Tol, const GeomAbs_Shape Order, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments); + + //! case of a curve on two surfaces + Standard_EXPORT Approx_CurvilinearParameter(const Handle(Adaptor2d_HCurve2d)& C2D1, const Handle(Adaptor3d_HSurface)& Surf1, const Handle(Adaptor2d_HCurve2d)& C2D2, const Handle(Adaptor3d_HSurface)& Surf2, const Standard_Real Tol, const GeomAbs_Shape Order, const Standard_Integer MaxDegree, const Standard_Integer MaxSegments); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT Standard_Boolean HasResult() const; + + //! returns the Bspline curve corresponding to the reparametrized 3D curve + Standard_EXPORT Handle(Geom_BSplineCurve) Curve3d() const; + + //! returns the maximum error on the reparametrized 3D curve + Standard_EXPORT Standard_Real MaxError3d() const; + + //! returns the BsplineCurve representing the reparametrized 2D curve on the + //! first surface (case of a curve on one or two surfaces) + Standard_EXPORT Handle(Geom2d_BSplineCurve) Curve2d1() const; + + //! returns the maximum error on the first reparametrized 2D curve + Standard_EXPORT Standard_Real MaxError2d1() const; + + //! returns the BsplineCurve representing the reparametrized 2D curve on the + //! second surface (case of a curve on two surfaces) + Standard_EXPORT Handle(Geom2d_BSplineCurve) Curve2d2() const; + + //! returns the maximum error on the second reparametrized 2D curve + Standard_EXPORT Standard_Real MaxError2d2() const; + + //! print the maximum errors(s) + Standard_EXPORT void Dump (Standard_OStream& o) const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT static void ToleranceComputation (const Handle(Adaptor2d_HCurve2d)& C2D, const Handle(Adaptor3d_HSurface)& S, const Standard_Integer MaxNumber, const Standard_Real Tol, Standard_Real& TolV, Standard_Real& TolW); + + + Standard_Integer myCase; + Standard_Boolean myDone; + Standard_Boolean myHasResult; + Handle(Geom_BSplineCurve) myCurve3d; + Standard_Real myMaxError3d; + Handle(Geom2d_BSplineCurve) myCurve2d1; + Standard_Real myMaxError2d1; + Handle(Geom2d_BSplineCurve) myCurve2d2; + Standard_Real myMaxError2d2; + + +}; + + + + + + + +#endif // _Approx_CurvilinearParameter_HeaderFile diff --git a/src/Approx/Approx_CurvlinFunc.cdl b/src/Approx/Approx_CurvlinFunc.cdl deleted file mode 100644 index d8dab594ed..0000000000 --- a/src/Approx/Approx_CurvlinFunc.cdl +++ /dev/null @@ -1,160 +0,0 @@ --- Created on: 1998-05-12 --- Created by: Roman BORISOV --- 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. - -class CurvlinFunc from Approx inherits TShared from MMgt - - ---Purpose: defines an abstract curve with - -- curvilinear parametrization - -- - -- - -- - -- - -uses - HCurve from Adaptor3d, - Curve from Adaptor3d, - HCurve2d from Adaptor2d, - HSurface from Adaptor3d, - Shape from GeomAbs, - Array1OfReal from TColStd, - HArray1OfReal from TColStd, - Pnt from gp, - Vec from gp - -raises - OutOfRange from Standard, - DomainError from Standard, - ConstructionError from Standard - -is - Create(C: HCurve from Adaptor3d; Tol: Real) - returns CurvlinFunc; - - Create(C2D: HCurve2d from Adaptor2d; S: HSurface from Adaptor3d; Tol: Real) - returns CurvlinFunc; - - Create(C2D1, C2D2: HCurve2d from Adaptor2d; S1, S2: HSurface from Adaptor3d; Tol: Real) - returns CurvlinFunc; - - SetTol(me: mutable; Tol: Real) - ---Purpose Update the tolerance to used - is static; - - Init(me: mutable) - is private; - - Init(me; C: in out Curve from Adaptor3d; - Si: out HArray1OfReal from TColStd; - Ui: out HArray1OfReal from TColStd) - is private; - - FirstParameter(me) returns Real; - - LastParameter(me) returns Real; - - NbIntervals(me; S : Shape from GeomAbs) returns Integer; - ---Purpose: Returns the number of intervals for continuity - -- . May be one if Continuity(me) >= - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs); - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - - Trim(me: mutable; First, Last, Tol: Real from Standard) - raises OutOfRange from Standard; - --- Purpose : if First < 0 or Last > 1 - - Length(me: mutable) - --- Purpose : Computes length of the curve. - is static; - - Length(me; C: in out Curve from Adaptor3d; - FirstU, LasrU: Real) returns Real - --- Purpose : Computes length of the curve segment. - - is static; - GetLength(me) returns Real; - - GetUParameter(me; C: in out Curve from Adaptor3d; S: Real; NumberOfCurve: Integer) returns Real; - --- Purpose : returns original parameter correponding S. if - -- Case == 1 computation is performed on myC2D1 and mySurf1, - -- otherwise it is done on myC2D2 and mySurf2. - - GetSParameter(me; U: Real) returns Real; - --- Purpose : returns original parameter correponding S. - - GetSParameter(me; C: in out Curve from Adaptor3d; U, Length: Real) returns Real - --- Purpose : returns curvilinear parameter correponding U. - is private; - - EvalCase1(me; S: Real; Order: Integer; - Result: out Array1OfReal from TColStd) -- dim(Result) = 3 - returns Boolean from Standard - - raises - ConstructionError from Standard; - --- Purpose : if myCase != 1 - - EvalCase2(me; S: Real; Order: Integer; - Result: out Array1OfReal from TColStd) -- dim(Result) = 5 - returns Boolean from Standard - raises - ConstructionError from Standard; - --- Purpose : if myCase != 2 - - EvalCase3(me: mutable; S: Real; Order: Integer; - Result: out Array1OfReal from TColStd) -- dim(Result) = 7 - returns Boolean from Standard - raises - ConstructionError from Standard; - --- Purpose : if myCase != 3 - - EvalCurOnSur(me; S: Real; Order: Integer; - Result: out Array1OfReal from TColStd; - NumberOfCurve: Integer) - returns Boolean from Standard - is private; - -fields - - myC3D : HCurve from Adaptor3d; - myC2D1 : HCurve2d from Adaptor2d; - myC2D2 : HCurve2d from Adaptor2d; - mySurf1 : HSurface from Adaptor3d; - mySurf2 : HSurface from Adaptor3d; - myCase : Integer from Standard; -- [1..3] - myFirstS : Real from Standard; - myLastS : Real from Standard; - myFirstU1: Real from Standard; - myLastU1 : Real from Standard; - myFirstU2: Real from Standard; - myLastU2 : Real from Standard; - myLength : Real from Standard; - myLength1: Real from Standard; - myLength2: Real from Standard; - myTolLen : Real from Standard; - myPrevS : Real from Standard; -- should be mutable - myPrevU : Real from Standard; -- should be mutable - - myUi_1 : HArray1OfReal from TColStd; - mySi_1 : HArray1OfReal from TColStd; - myUi_2 : HArray1OfReal from TColStd; - mySi_2 : HArray1OfReal from TColStd; -end CurvlinFunc; diff --git a/src/Approx/Approx_CurvlinFunc.cxx b/src/Approx/Approx_CurvlinFunc.cxx index 971b8ff731..00f7b8b95c 100644 --- a/src/Approx/Approx_CurvlinFunc.cxx +++ b/src/Approx/Approx_CurvlinFunc.cxx @@ -14,13 +14,22 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include #include +#include #include -#include -#include +#include +#include #include +#include #include +#include +#include +#include +#include +#include #ifdef OCCT_DEBUG_CHRONO #include diff --git a/src/Approx/Approx_CurvlinFunc.hxx b/src/Approx/Approx_CurvlinFunc.hxx new file mode 100644 index 0000000000..e73848ddea --- /dev/null +++ b/src/Approx/Approx_CurvlinFunc.hxx @@ -0,0 +1,156 @@ +// Created on: 1998-05-12 +// Created by: Roman BORISOV +// 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 _Approx_CurvlinFunc_HeaderFile +#define _Approx_CurvlinFunc_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Adaptor3d_HCurve; +class Adaptor2d_HCurve2d; +class Adaptor3d_HSurface; +class Standard_OutOfRange; +class Standard_DomainError; +class Standard_ConstructionError; +class Adaptor3d_Curve; + + +class Approx_CurvlinFunc; +DEFINE_STANDARD_HANDLE(Approx_CurvlinFunc, MMgt_TShared) + +//! defines an abstract curve with +//! curvilinear parametrization +class Approx_CurvlinFunc : public MMgt_TShared +{ + +public: + + + Standard_EXPORT Approx_CurvlinFunc(const Handle(Adaptor3d_HCurve)& C, const Standard_Real Tol); + + Standard_EXPORT Approx_CurvlinFunc(const Handle(Adaptor2d_HCurve2d)& C2D, const Handle(Adaptor3d_HSurface)& S, const Standard_Real Tol); + + Standard_EXPORT Approx_CurvlinFunc(const Handle(Adaptor2d_HCurve2d)& C2D1, const Handle(Adaptor2d_HCurve2d)& C2D2, const Handle(Adaptor3d_HSurface)& S1, const Handle(Adaptor3d_HSurface)& S2, const Standard_Real Tol); + + //! ---Purpose Update the tolerance to used + Standard_EXPORT void SetTol (const Standard_Real Tol); + + Standard_EXPORT Standard_Real FirstParameter() const; + + Standard_EXPORT Standard_Real LastParameter() const; + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(me) >= + Standard_EXPORT Standard_Integer NbIntervals (const GeomAbs_Shape S) const; + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! + //! The array must provide enough room to accomodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const; + + //! if First < 0 or Last > 1 + Standard_EXPORT void Trim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol); + + //! Computes length of the curve. + Standard_EXPORT void Length(); + + //! Computes length of the curve segment. + Standard_EXPORT Standard_Real Length (Adaptor3d_Curve& C, const Standard_Real FirstU, const Standard_Real LasrU) const; + + Standard_EXPORT Standard_Real GetLength() const; + + //! returns original parameter correponding S. if + //! Case == 1 computation is performed on myC2D1 and mySurf1, + //! otherwise it is done on myC2D2 and mySurf2. + Standard_EXPORT Standard_Real GetUParameter (Adaptor3d_Curve& C, const Standard_Real S, const Standard_Integer NumberOfCurve) const; + + //! returns original parameter correponding S. + Standard_EXPORT Standard_Real GetSParameter (const Standard_Real U) const; + + //! if myCase != 1 + Standard_EXPORT Standard_Boolean EvalCase1 (const Standard_Real S, const Standard_Integer Order, TColStd_Array1OfReal& Result) const; + + //! if myCase != 2 + Standard_EXPORT Standard_Boolean EvalCase2 (const Standard_Real S, const Standard_Integer Order, TColStd_Array1OfReal& Result) const; + + //! if myCase != 3 + Standard_EXPORT Standard_Boolean EvalCase3 (const Standard_Real S, const Standard_Integer Order, TColStd_Array1OfReal& Result); + + + + + DEFINE_STANDARD_RTTI(Approx_CurvlinFunc,MMgt_TShared) + +protected: + + + + +private: + + + Standard_EXPORT void Init(); + + Standard_EXPORT void Init (Adaptor3d_Curve& C, Handle(TColStd_HArray1OfReal)& Si, Handle(TColStd_HArray1OfReal)& Ui) const; + + //! returns curvilinear parameter correponding U. + Standard_EXPORT Standard_Real GetSParameter (Adaptor3d_Curve& C, const Standard_Real U, const Standard_Real Length) const; + + Standard_EXPORT Standard_Boolean EvalCurOnSur (const Standard_Real S, const Standard_Integer Order, TColStd_Array1OfReal& Result, const Standard_Integer NumberOfCurve) const; + + Handle(Adaptor3d_HCurve) myC3D; + Handle(Adaptor2d_HCurve2d) myC2D1; + Handle(Adaptor2d_HCurve2d) myC2D2; + Handle(Adaptor3d_HSurface) mySurf1; + Handle(Adaptor3d_HSurface) mySurf2; + Standard_Integer myCase; + Standard_Real myFirstS; + Standard_Real myLastS; + Standard_Real myFirstU1; + Standard_Real myLastU1; + Standard_Real myFirstU2; + Standard_Real myLastU2; + Standard_Real myLength; + Standard_Real myLength1; + Standard_Real myLength2; + Standard_Real myTolLen; + Standard_Real myPrevS; + Standard_Real myPrevU; + Handle(TColStd_HArray1OfReal) myUi_1; + Handle(TColStd_HArray1OfReal) mySi_1; + Handle(TColStd_HArray1OfReal) myUi_2; + Handle(TColStd_HArray1OfReal) mySi_2; + + +}; + + + + + + + +#endif // _Approx_CurvlinFunc_HeaderFile diff --git a/src/Approx/Approx_FitAndDivide.hxx b/src/Approx/Approx_FitAndDivide.hxx new file mode 100644 index 0000000000..5751905678 --- /dev/null +++ b/src/Approx/Approx_FitAndDivide.hxx @@ -0,0 +1,109 @@ +// 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_FitAndDivide_HeaderFile +#define _Approx_FitAndDivide_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class AppParCurves_MultiCurve; + + + +class Approx_FitAndDivide +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT Approx_FitAndDivide(const AppCont_Function& Line, const Standard_Integer degreemin = 3, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-5, const Standard_Real Tolerance2d = 1.0e-5, const Standard_Boolean cutting = Standard_False, const AppParCurves_Constraint FirstC = AppParCurves_TangencyPoint, const AppParCurves_Constraint LastC = AppParCurves_TangencyPoint); + + Standard_EXPORT Approx_FitAndDivide(const Standard_Integer degreemin = 3, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-05, const Standard_Real Tolerance2d = 1.0e-05, const Standard_Boolean cutting = Standard_False, const AppParCurves_Constraint FirstC = AppParCurves_TangencyPoint, const AppParCurves_Constraint LastC = AppParCurves_TangencyPoint); + + Standard_EXPORT void Perform (const AppCont_Function& Line); + + Standard_EXPORT void SetDegrees (const Standard_Integer degreemin, const Standard_Integer degreemax); + + Standard_EXPORT void SetTolerances (const Standard_Real Tolerance3d, const Standard_Real Tolerance2d); + + Standard_EXPORT void SetConstraints (const AppParCurves_Constraint FirstC, const AppParCurves_Constraint LastC); + + Standard_EXPORT Standard_Boolean IsAllApproximated() const; + + Standard_EXPORT Standard_Boolean IsToleranceReached() const; + + Standard_EXPORT void Error (const Standard_Integer Index, Standard_Real& tol3d, Standard_Real& tol2d) const; + + Standard_EXPORT Standard_Integer NbMultiCurves() const; + + Standard_EXPORT AppParCurves_MultiCurve Value (const Standard_Integer Index = 1) const; + + Standard_EXPORT void Parameters (const Standard_Integer Index, Standard_Real& firstp, Standard_Real& lastp) const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT Standard_Boolean Compute (const AppCont_Function& Line, const Standard_Real Ufirst, const Standard_Real Ulast, Standard_Real& TheTol3d, Standard_Real& TheTol2d); + + + AppParCurves_SequenceOfMultiCurve myMultiCurves; + TColStd_SequenceOfReal myfirstparam; + TColStd_SequenceOfReal mylastparam; + AppParCurves_MultiCurve TheMultiCurve; + Standard_Boolean alldone; + Standard_Boolean tolreached; + TColStd_SequenceOfReal Tolers3d; + TColStd_SequenceOfReal Tolers2d; + Standard_Integer mydegremin; + Standard_Integer mydegremax; + Standard_Real mytol3d; + Standard_Real mytol2d; + Standard_Real currenttol3d; + Standard_Real currenttol2d; + Standard_Boolean mycut; + AppParCurves_Constraint myfirstC; + AppParCurves_Constraint mylastC; + + +}; + + + + + + + +#endif // _Approx_FitAndDivide_HeaderFile diff --git a/src/Approx/Approx_FitAndDivide2d.hxx b/src/Approx/Approx_FitAndDivide2d.hxx new file mode 100644 index 0000000000..7d92659d70 --- /dev/null +++ b/src/Approx/Approx_FitAndDivide2d.hxx @@ -0,0 +1,109 @@ +// 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_FitAndDivide2d_HeaderFile +#define _Approx_FitAndDivide2d_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class AppParCurves_MultiCurve; + + + +class Approx_FitAndDivide2d +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT Approx_FitAndDivide2d(const AppCont_Function& Line, const Standard_Integer degreemin = 3, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-5, const Standard_Real Tolerance2d = 1.0e-5, const Standard_Boolean cutting = Standard_False, const AppParCurves_Constraint FirstC = AppParCurves_TangencyPoint, const AppParCurves_Constraint LastC = AppParCurves_TangencyPoint); + + Standard_EXPORT Approx_FitAndDivide2d(const Standard_Integer degreemin = 3, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-05, const Standard_Real Tolerance2d = 1.0e-05, const Standard_Boolean cutting = Standard_False, const AppParCurves_Constraint FirstC = AppParCurves_TangencyPoint, const AppParCurves_Constraint LastC = AppParCurves_TangencyPoint); + + Standard_EXPORT void Perform (const AppCont_Function& Line); + + Standard_EXPORT void SetDegrees (const Standard_Integer degreemin, const Standard_Integer degreemax); + + Standard_EXPORT void SetTolerances (const Standard_Real Tolerance3d, const Standard_Real Tolerance2d); + + Standard_EXPORT void SetConstraints (const AppParCurves_Constraint FirstC, const AppParCurves_Constraint LastC); + + Standard_EXPORT Standard_Boolean IsAllApproximated() const; + + Standard_EXPORT Standard_Boolean IsToleranceReached() const; + + Standard_EXPORT void Error (const Standard_Integer Index, Standard_Real& tol3d, Standard_Real& tol2d) const; + + Standard_EXPORT Standard_Integer NbMultiCurves() const; + + Standard_EXPORT AppParCurves_MultiCurve Value (const Standard_Integer Index = 1) const; + + Standard_EXPORT void Parameters (const Standard_Integer Index, Standard_Real& firstp, Standard_Real& lastp) const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT Standard_Boolean Compute (const AppCont_Function& Line, const Standard_Real Ufirst, const Standard_Real Ulast, Standard_Real& TheTol3d, Standard_Real& TheTol2d); + + + AppParCurves_SequenceOfMultiCurve myMultiCurves; + TColStd_SequenceOfReal myfirstparam; + TColStd_SequenceOfReal mylastparam; + AppParCurves_MultiCurve TheMultiCurve; + Standard_Boolean alldone; + Standard_Boolean tolreached; + TColStd_SequenceOfReal Tolers3d; + TColStd_SequenceOfReal Tolers2d; + Standard_Integer mydegremin; + Standard_Integer mydegremax; + Standard_Real mytol3d; + Standard_Real mytol2d; + Standard_Real currenttol3d; + Standard_Real currenttol2d; + Standard_Boolean mycut; + AppParCurves_Constraint myfirstC; + AppParCurves_Constraint mylastC; + + +}; + + + + + + + +#endif // _Approx_FitAndDivide2d_HeaderFile diff --git a/src/Approx/Approx_FitAndDivide2d_0.cxx b/src/Approx/Approx_FitAndDivide2d_0.cxx new file mode 100644 index 0000000000..4cdf460414 --- /dev/null +++ b/src/Approx/Approx_FitAndDivide2d_0.cxx @@ -0,0 +1,27 @@ +// 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. + +#include + +#include + + +#define MultiLine AppCont_Function +#define MultiLine_hxx +#define Approx_ComputeCLine Approx_FitAndDivide2d +#define Approx_ComputeCLine_hxx +#include + diff --git a/src/Approx/Approx_FitAndDivide_0.cxx b/src/Approx/Approx_FitAndDivide_0.cxx new file mode 100644 index 0000000000..4c2b4eb2fe --- /dev/null +++ b/src/Approx/Approx_FitAndDivide_0.cxx @@ -0,0 +1,27 @@ +// 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. + +#include + +#include + + +#define MultiLine AppCont_Function +#define MultiLine_hxx +#define Approx_ComputeCLine Approx_FitAndDivide +#define Approx_ComputeCLine_hxx +#include + diff --git a/src/Approx/Approx_MCurvesToBSpCurve.cdl b/src/Approx/Approx_MCurvesToBSpCurve.cdl deleted file mode 100644 index c02c4b4d46..0000000000 --- a/src/Approx/Approx_MCurvesToBSpCurve.cdl +++ /dev/null @@ -1,68 +0,0 @@ --- 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. - -class MCurvesToBSpCurve from Approx - - - -uses MultiBSpCurve from AppParCurves, - MultiCurve from AppParCurves, - SequenceOfMultiCurve from AppParCurves - -is - - - Create returns MCurvesToBSpCurve; - - Reset(me: in out) - --- Clear the internal Sequence Of MultiCurve - is static; - - Append(me: in out; MC: MultiCurve from AppParCurves) - is static; - - - Perform(me: in out) - is static; - - Perform(me: in out; TheSeq: SequenceOfMultiCurve from AppParCurves) - is static; - - - Value(me) - ---Purpose: return the composite MultiCurves as a MultiBSpCurve. - ---C++: return const& - - returns MultiBSpCurve - is static; - - - ChangeValue(me: in out) - ---Purpose: return the composite MultiCurves as a MultiBSpCurve. - ---C++: return const& - - returns MultiBSpCurve - is static; - - -fields - - -mySpline: MultiBSpCurve from AppParCurves; -myDone : Boolean from Standard; -myCurves: SequenceOfMultiCurve from AppParCurves; - -end MCurvesToBSpCurve; diff --git a/src/Approx/Approx_MCurvesToBSpCurve.cxx b/src/Approx/Approx_MCurvesToBSpCurve.cxx index 6557889d9f..42a06ae392 100644 --- a/src/Approx/Approx_MCurvesToBSpCurve.cxx +++ b/src/Approx/Approx_MCurvesToBSpCurve.cxx @@ -12,18 +12,20 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include + +#include +#include +#include +#include +#include +#include #include +#include +#include #include #include -#include -#include -#include #include #include -#include -#include #ifdef OCCT_DEBUG static void DEBUG(const AppParCurves_MultiCurve& MC) { diff --git a/src/Approx/Approx_MCurvesToBSpCurve.hxx b/src/Approx/Approx_MCurvesToBSpCurve.hxx new file mode 100644 index 0000000000..e4f8df9ce2 --- /dev/null +++ b/src/Approx/Approx_MCurvesToBSpCurve.hxx @@ -0,0 +1,81 @@ +// 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 +#include +#include + +#include +#include +#include +class AppParCurves_MultiCurve; +class AppParCurves_MultiBSpCurve; + + + +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/src/Approx/Approx_ParametrizationType.hxx b/src/Approx/Approx_ParametrizationType.hxx new file mode 100644 index 0000000000..121f5bfd37 --- /dev/null +++ b/src/Approx/Approx_ParametrizationType.hxx @@ -0,0 +1,28 @@ +// 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_ParametrizationType_HeaderFile +#define _Approx_ParametrizationType_HeaderFile + + +enum Approx_ParametrizationType +{ +Approx_ChordLength, +Approx_Centripetal, +Approx_IsoParametric +}; + +#endif // _Approx_ParametrizationType_HeaderFile diff --git a/src/Approx/Approx_SameParameter.cdl b/src/Approx/Approx_SameParameter.cdl deleted file mode 100644 index 596fb61634..0000000000 --- a/src/Approx/Approx_SameParameter.cdl +++ /dev/null @@ -1,115 +0,0 @@ --- Created on: 1995-06-02 --- 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. - -class SameParameter from Approx - - ---Purpose: Approximation of a PCurve on a surface to make its - -- parameter be the same that the parameter of a given 3d - -- reference curve. - -uses - HSurface from Adaptor3d, - HCurve from Adaptor3d, - HCurve2d from Adaptor2d, - Surface from Geom, - Curve from Geom, - Curve from Geom2d, - BSplineCurve from Geom2d - -raises OutOfRange from Standard, - ConstructionError from Standard - -is - - Create (C3D : Curve from Geom; - C2D : Curve from Geom2d; - S : Surface from Geom; - Tol : Real) - - returns SameParameter from Approx - ---Purpose: - -- Warning: the C3D and C2D must have the same parametric domain. - -- - raises ConstructionError; - - - Create (C3D : HCurve from Adaptor3d; - C2D : Curve from Geom2d; - S : HSurface from Adaptor3d; - Tol : Real) - - returns SameParameter from Approx - ---Purpose: - --Warning: the C3D and C2D must have the same parametric domain. - - raises ConstructionError; - - - Create (C3D : HCurve from Adaptor3d; - C2D : HCurve2d from Adaptor2d; - S : HSurface from Adaptor3d; - Tol : Real) - - returns SameParameter from Approx - ---Purpose: - -- Warning: the C3D and C2D must have the same parametric domain. - -- - raises ConstructionError; - - - Build (me : in out; - Tol : Real from Standard) - ---Purpose: Compute the Pcurve (internal use only). - is static private; - - - IsDone(me) returns Boolean from Standard; - ---C++: inline - - TolReached(me) returns Real from Standard; - ---C++: inline - - - IsSameParameter(me) - ---C++: inline - - ---Purpose: Tells whether the original data had already the same - -- parameter up to the tolerance : in that case nothing - -- is done. - - returns Boolean from Standard; - - - Curve2d(me) - ---C++: inline - - ---Purpose: Returns the 2D curve that has the same parameter as - -- the 3D curve once evaluated on the surface up to the - -- specified tolerance - returns BSplineCurve from Geom2d; - - -fields - - mySameParameter : Boolean from Standard; - myDone : Boolean from Standard; - myTolReached : Real from Standard; - myCurve2d : BSplineCurve from Geom2d; - myHCurve2d : HCurve2d from Adaptor2d; - myC3d : HCurve from Adaptor3d; - mySurf : HSurface from Adaptor3d; - -end SameParameter; diff --git a/src/Approx/Approx_SameParameter.cxx b/src/Approx/Approx_SameParameter.cxx index 22dfc58025..794d3e62ef 100644 --- a/src/Approx/Approx_SameParameter.cxx +++ b/src/Approx/Approx_SameParameter.cxx @@ -16,22 +16,31 @@ // Modified by skv - Wed Jun 2 11:49:59 2004 OCC5898 -#include -#include -#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include +#include +#include #include #include -#include #include -#include -#include -#include +#include #include #include -#include +#include +#include +#include #ifdef OCCT_DEBUG #ifdef DRAW diff --git a/src/Approx/Approx_SameParameter.hxx b/src/Approx/Approx_SameParameter.hxx new file mode 100644 index 0000000000..4d69b22433 --- /dev/null +++ b/src/Approx/Approx_SameParameter.hxx @@ -0,0 +1,105 @@ +// Created on: 1995-06-02 +// 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 _Approx_SameParameter_HeaderFile +#define _Approx_SameParameter_HeaderFile + +#include +#include +#include + +#include +#include +class Geom2d_BSplineCurve; +class Adaptor2d_HCurve2d; +class Adaptor3d_HCurve; +class Adaptor3d_HSurface; +class Standard_OutOfRange; +class Standard_ConstructionError; +class Geom_Curve; +class Geom2d_Curve; +class Geom_Surface; + + +//! Approximation of a PCurve on a surface to make its +//! parameter be the same that the parameter of a given 3d +//! reference curve. +class Approx_SameParameter +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Warning: the C3D and C2D must have the same parametric domain. + Standard_EXPORT Approx_SameParameter(const Handle(Geom_Curve)& C3D, const Handle(Geom2d_Curve)& C2D, const Handle(Geom_Surface)& S, const Standard_Real Tol); + + Standard_EXPORT Approx_SameParameter(const Handle(Adaptor3d_HCurve)& C3D, const Handle(Geom2d_Curve)& C2D, const Handle(Adaptor3d_HSurface)& S, const Standard_Real Tol); + + + //! Warning: the C3D and C2D must have the same parametric domain. + Standard_EXPORT Approx_SameParameter(const Handle(Adaptor3d_HCurve)& C3D, const Handle(Adaptor2d_HCurve2d)& C2D, const Handle(Adaptor3d_HSurface)& S, const Standard_Real Tol); + + Standard_Boolean IsDone() const; + + Standard_Real TolReached() const; + + //! Tells whether the original data had already the same + //! parameter up to the tolerance : in that case nothing + //! is done. + Standard_Boolean IsSameParameter() const; + + //! Returns the 2D curve that has the same parameter as + //! the 3D curve once evaluated on the surface up to the + //! specified tolerance + Handle(Geom2d_BSplineCurve) Curve2d() const; + + + + +protected: + + + + + +private: + + + //! Compute the Pcurve (internal use only). + Standard_EXPORT void Build (const Standard_Real Tol); + + + Standard_Boolean mySameParameter; + Standard_Boolean myDone; + Standard_Real myTolReached; + Handle(Geom2d_BSplineCurve) myCurve2d; + Handle(Adaptor2d_HCurve2d) myHCurve2d; + Handle(Adaptor3d_HCurve) myC3d; + Handle(Adaptor3d_HSurface) mySurf; + + +}; + + +#include + + + + + +#endif // _Approx_SameParameter_HeaderFile diff --git a/src/Approx/Approx_Status.hxx b/src/Approx/Approx_Status.hxx new file mode 100644 index 0000000000..a578539264 --- /dev/null +++ b/src/Approx/Approx_Status.hxx @@ -0,0 +1,28 @@ +// 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_Status_HeaderFile +#define _Approx_Status_HeaderFile + + +enum Approx_Status +{ +Approx_PointsAdded, +Approx_NoPointsAdded, +Approx_NoApproximation +}; + +#endif // _Approx_Status_HeaderFile diff --git a/src/Approx/Approx_SweepApproximation.cdl b/src/Approx/Approx_SweepApproximation.cdl deleted file mode 100644 index c12379d1e0..0000000000 --- a/src/Approx/Approx_SweepApproximation.cdl +++ /dev/null @@ -1,373 +0,0 @@ --- 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. - -class SweepApproximation from Approx - - ---Purpose: 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... - - - -uses Array2OfReal from TColStd, - HArray2OfReal from TColStd, - Array1OfReal from TColStd, - HArray1OfReal from TColStd, - Array1OfInteger from TColStd, - HArray1OfInteger from TColStd, - - Vec from gp, - Array1OfPnt2d from TColgp, - HArray1OfPnt2d from TColgp, - HArray1OfPnt from TColgp, - HArray1OfVec2d from TColgp, - HArray1OfVec from TColgp, - Array2OfPnt from TColgp, - HArray2OfPnt from TColgp, - - HArray1OfGTrsf2d from Approx, - SequenceOfArray1OfPnt2d from TColgp, - Shape from GeomAbs, - EvaluatorFunction from AdvApprox, - Cutting from AdvApprox, - SweepFunction from Approx - -raises NotDone from StdFail, - DomainError, - OutOfRange - -is - Create(Func : SweepFunction from Approx) - returns SweepApproximation from Approx; - - Perform(me : in out; - First, Last : Real; - Tol3d, BoundTol, Tol2d, TolAngular : Real; - Continuity : Shape = GeomAbs_C0; - Degmax : Integer = 11; - Segmax : Integer = 50) - ---Purpose: Perform the Approximation - -- [First, Last] : Approx_SweepApproximation.cdl - -- Tol3d : Tolerance to surface approximation - -- Tol2d : Tolerance used to perform curve approximation - -- Normaly 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 - -- beetween tangents on the section law and - -- tangent of iso-v on approximed surface - -- Continuity : The continuity in v waiting on the surface - -- Degmax : The maximum degree in v requiered on the surface - -- Segmax : The maximum number of span in v requiered on - -- the surface - -- Warning : The continuity ci can be obtained only if Ft is Ci - raises DomainError from Standard; - -- if not in {C0, C1, C2} - -- if < 2 or degmax > Geom_BSplineSurface::MaxDegree() - -- if < 1 - -- if one tolerance is <= 0 - - Approximation(me : in out; - OneDTol, TwoDTol, ThreeDTol : HArray1OfReal; - BounTol : Real; - First, Last : Real; - Continuity : Shape; - Degmax, Segmax : Integer; - TheApproxFunction : EvaluatorFunction from AdvApprox; - TheCuttingTool : Cutting from AdvApprox) - is private; - - Eval(me : in out; - Parameter : Real; - DerivativeRequest : Integer; - First, Last : Real; - Result : in out Real) - ---Purpose : The EvaluatorFunction from AdvApprox; - returns Integer from Standard; - - D0(me : in out; - Param: Real; - First, Last : Real; - Result:in out Real) - returns Boolean is private; - - D1(me : in out; - Param: Real; - First, Last : Real; - Result:in out Real) - returns Boolean is private; - - D2(me : in out; - Param: Real; - First, Last : Real; - Result:in out Real) - returns Boolean is private; - - - IsDone(me) - ---Purpose : returns if we have an result - returns Boolean from Standard - ---C++: inline - is static; - - - SurfShape(me; UDegree,VDegree : out Integer from Standard; - NbUPoles,NbVPoles: out Integer from Standard; - NbUKnots,NbVKnots: out Integer from Standard) - raises NotDone from StdFail - is static; - - - Surface(me; TPoles : out Array2OfPnt from TColgp; - TWeights : out Array2OfReal from TColStd; - TUKnots,TVKnots : out Array1OfReal from TColStd; - TUMults,TVMults : out Array1OfInteger from TColStd) - raises NotDone from StdFail - is static; - - - UDegree(me) - - returns Integer from Standard - ---C++: inline - - raises NotDone from StdFail - is static; - - - VDegree(me) - - returns Integer from Standard - ---C++: inline - - raises NotDone from StdFail - is static; - - - SurfPoles(me) - - returns Array2OfPnt from TColgp - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfWeights(me) - - returns Array2OfReal from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfUKnots(me) - - returns Array1OfReal from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfVKnots(me) - - returns Array1OfReal from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfUMults(me) - - returns Array1OfInteger from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfVMults(me) - - returns Array1OfInteger from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - MaxErrorOnSurf (me) - ---Purpose: returns the maximum error in the suface approximation. - returns Real; - - - AverageErrorOnSurf(me) - ---Purpose: returns the average error in the suface approximation. - returns Real; - - - NbCurves2d(me) - - returns Integer from Standard - ---C++: inline - - raises NotDone from StdFail - is static; - - - Curves2dShape(me; Degree,NbPoles,NbKnots: out Integer from Standard) - - raises NotDone from StdFail, - DomainError from Standard - - is static; - - - Curve2d(me; Index: Integer from Standard; - TPoles : out Array1OfPnt2d from TColgp; - TKnots : out Array1OfReal from TColStd; - TMults : out Array1OfInteger from TColStd) - - raises NotDone from StdFail, - OutOfRange from Standard, - DomainError from Standard - - is static; - - - Curves2dDegree(me) - - returns Integer from Standard - ---C++: inline - - raises NotDone from StdFail, - DomainError from Standard - is static; - - - Curve2dPoles(me; Index: Integer from Standard) - - returns Array1OfPnt2d from TColgp - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail, - OutOfRange from Standard, - DomainError from Standard - is static; - - - Curves2dKnots(me) - - returns Array1OfReal from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail, - DomainError from Standard - is static; - - - Curves2dMults(me) - - returns Array1OfInteger from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail, - DomainError from Standard - is static; - - - Max2dError (me; Index : Integer) - ---Purpose: returns the maximum error of the - -- 2d curve approximation. - returns Real; - - - Average2dError(me; Index : Integer ) - ---Purpose: returns the average error of the - -- 2d curve approximation. - returns Real; - - TolCurveOnSurf(me; Index : Integer from Standard) - ---Purpose: returns the maximum 3d error of the - -- 2d curve approximation on the Surface. - returns Real from Standard - raises NotDone from StdFail - is static; - - Dump(me; o: in out OStream); - ---Purpose: display information on approximation. - -fields - myFunc : SweepFunction from Approx; - done : Boolean from Standard; - Num1DSS : Integer from Standard; - Num2DSS : Integer from Standard; - Num3DSS : Integer from Standard; - - udeg : Integer from Standard; - vdeg : Integer from Standard; - deg2d : Integer from Standard; - tabPoles : HArray2OfPnt from TColgp; - tabWeights: HArray2OfReal from TColStd; - tabUKnots : HArray1OfReal from TColStd; - tabVKnots : HArray1OfReal from TColStd; - tab2dKnots: HArray1OfReal from TColStd; - tabUMults : HArray1OfInteger from TColStd; - tabVMults : HArray1OfInteger from TColStd; - tab2dMults: HArray1OfInteger from TColStd; - seqPoles2d: SequenceOfArray1OfPnt2d from TColgp; - MError1d : HArray1OfReal from TColStd; - tab2dError: HArray1OfReal from TColStd; - MError3d : HArray1OfReal from TColStd; - AError1d : HArray1OfReal from TColStd; - Ave2dError: HArray1OfReal from TColStd; - AError3d : HArray1OfReal from TColStd; - AAffin : HArray1OfGTrsf2d from Approx; - COnSurfErr: HArray1OfReal from TColStd; - Translation : Vec from gp; --- --- To Accelerate Evaluation : --- - myPoles : HArray1OfPnt; - myPoles2d : HArray1OfPnt2d; - myWeigths : HArray1OfReal; - myDPoles : HArray1OfVec; - myD2Poles : HArray1OfVec; - myDPoles2d : HArray1OfVec2d; - myD2Poles2d: HArray1OfVec2d; - myDWeigths : HArray1OfReal; - myD2Weigths: HArray1OfReal; - - myOrder : Integer; - myParam : Real; - first, last: Real; -end SweepApproximation; diff --git a/src/Approx/Approx_SweepApproximation.cxx b/src/Approx/Approx_SweepApproximation.cxx index 8466bbda51..681f288c8f 100644 --- a/src/Approx/Approx_SweepApproximation.cxx +++ b/src/Approx/Approx_SweepApproximation.cxx @@ -14,28 +14,28 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include #include +#include #include #include - +#include +#include +#include +#include +#include +#include +#include #include #include #include #include - #include -#include - //======================================================================= //class : Approx_SweepApproximation_Eval //purpose: evaluator class for approximation //======================================================================= - class Approx_SweepApproximation_Eval : public AdvApprox_EvaluatorFunction { public: diff --git a/src/Approx/Approx_SweepApproximation.hxx b/src/Approx/Approx_SweepApproximation.hxx new file mode 100644 index 0000000000..514391f9dc --- /dev/null +++ b/src/Approx/Approx_SweepApproximation.hxx @@ -0,0 +1,220 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Approx_SweepFunction; +class StdFail_NotDone; +class Standard_DomainError; +class Standard_OutOfRange; +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 + //! Normaly 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 + //! beetween tangents on the section law and + //! tangent of iso-v on approximed surface + //! Continuity : The continuity in v waiting on the surface + //! Degmax : The maximum degree in v requiered on the surface + //! Segmax : The maximum number of span in v requiered 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 suface approximation. + Standard_EXPORT Standard_Real MaxErrorOnSurf() const; + + //! returns the average error in the suface 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 + + + + + +#endif // _Approx_SweepApproximation_HeaderFile diff --git a/src/Approx/Approx_SweepFunction.cdl b/src/Approx/Approx_SweepFunction.cdl deleted file mode 100644 index a75599af6c..0000000000 --- a/src/Approx/Approx_SweepFunction.cdl +++ /dev/null @@ -1,203 +0,0 @@ --- Created on: 1997-06-25 --- 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. - -deferred class SweepFunction from Approx inherits TShared from MMgt - - ---Purpose: defined the function used by SweepApproximation to - -- perform sweeping application. - - -uses - Shape from GeomAbs, - Pnt from gp, - Array1OfPnt from TColgp, - Array1OfPnt2d from TColgp, - Array1OfVec from TColgp, - Array1OfVec2d from TColgp, - Array1OfInteger from TColStd, - Array1OfReal from TColStd - -raises NotImplemented , - OutOfRange from Standard - -is - --- ---========== To compute Sections and derivatives Sections --- - D0(me : mutable; - Param: Real; - First, Last : Real; - Poles : out Array1OfPnt from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - Weigths : out Array1OfReal from TColStd) - ---Purpose: compute the section for v = param - returns Boolean is deferred; - - D1(me : mutable; - Param: Real; - First, Last : Real; - Poles : out Array1OfPnt from TColgp; - DPoles : out Array1OfVec from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - DPoles2d : out Array1OfVec2d from TColgp; - Weigths : out Array1OfReal from TColStd; - DWeigths : out Array1OfReal from TColStd) - ---Purpose: compute the first derivative in v direction of the - -- section for v = param - -- Warning : It used only for C1 or C2 aproximation - returns Boolean - raises NotImplemented - is virtual; - - D2(me : mutable; - Param: Real; - First, Last : Real; - Poles : out Array1OfPnt from TColgp; - DPoles : out Array1OfVec from TColgp; - D2Poles : out Array1OfVec from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - DPoles2d : out Array1OfVec2d from TColgp; - D2Poles2d : out Array1OfVec2d from TColgp; - Weigths : out Array1OfReal from TColStd; - DWeigths : out Array1OfReal from TColStd; - D2Weigths : out Array1OfReal from TColStd) - ---Purpose: compute the second derivative in v direction of the - -- section for v = param - -- Warning : It used only for C2 aproximation - returns Boolean - raises NotImplemented - is virtual; - --- --- =================== General Information On The Function =================== --- - Nb2dCurves(me) - ---Purpose: get the number of 2d curves to approximate. - returns Integer is deferred; - - SectionShape(me; NbPoles : out Integer from Standard; - NbKnots : out Integer from Standard; - Degree : out Integer from Standard) - ---Purpose: get the format of an section - is deferred; - - Knots(me; TKnots: out Array1OfReal from TColStd) - ---Purpose: get the Knots of the section - is deferred; - - Mults(me; TMults: out Array1OfInteger from TColStd) - ---Purpose: get the Multplicities of the section - is deferred; - - IsRational(me) - ---Purpose: Returns if the sections are rationnal or not - returns Boolean is deferred; - - --- --- =================== Management of continuity =================== --- - NbIntervals(me; S : Shape from GeomAbs) - ---Purpose: Returns the number of intervals for continuity - -- . - -- May be one if Continuity(me) >= - returns Integer is deferred; - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - raises - OutOfRange from Standard - is deferred; - - - SetInterval(me: mutable; First, Last: Real from Standard) - ---Purpose: Sets the bounds of the parametric interval on - -- the fonction - -- This determines the derivatives in these values if the - -- function is not Cn. - is deferred; - - --- ===================== To help computation of Tolerance ====== --- Evaluation of error, in 2d space, or on rational function, is --- difficult. The following methods can help the approximation to --- make good evaluation and use good tolerances. --- --- It is not necessary for the following informations to be very --- precise. A fast evaluation is sufficient. - - Resolution(me; - Index : Integer from Standard; - Tol : Real from Standard; - TolU, TolV : out Real from Standard) - ---Purpose: Returns the resolutions in the sub-space 2d - -- This information is usfull to find an good tolerance in - -- 2d approximation. - ---Warning: Used only if Nb2dCurve > 0 - raises NotImplemented - is virtual; - - - GetTolerance(me; - BoundTol, SurfTol, AngleTol : Real; - Tol3d : out Array1OfReal) - ---Purpose: Returns the tolerance to reach in approximation - -- to satisfy. - -- BoundTol error at the Boundary - -- AngleTol tangent error at the Boundary (in radian) - -- SurfTol error inside the surface. - is deferred; - - - SetTolerance(me : mutable; Tol3d, Tol2d : Real) - ---Purpose: Is usefull, if (me) have to run numerical - -- algorithm to perform D0, D1 or D2 - is deferred; - - BarycentreOfSurf(me) - ---Purpose: Get the barycentre of Surface. - -- An very poor estimation is sufficent. - -- This information is usefull to perform well - -- conditioned rational approximation. - -- Warning: Used only if IsRational - returns Pnt from gp - raises NotImplemented - is virtual; - - - MaximalSection(me) returns Real - ---Purpose: Returns the length of the greater section. This - -- information is usefull to G1's control. - -- Warning: With an little value, approximation can be slower. - raises NotImplemented - is virtual; - - GetMinimalWeight(me; Weigths : out Array1OfReal from TColStd) - ---Purpose: Compute the minimal value of weight for each poles - -- in all sections. - -- This information is usefull to control error - -- in rational approximation. - -- Warning: Used only if IsRational - raises NotImplemented - is virtual; - -end SweepFunction; diff --git a/src/Approx/Approx_SweepFunction.cxx b/src/Approx/Approx_SweepFunction.cxx index e113fd26e8..b2ae480cab 100644 --- a/src/Approx/Approx_SweepFunction.cxx +++ b/src/Approx/Approx_SweepFunction.cxx @@ -14,7 +14,12 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include // Standard_Boolean Approx_SweepFunction::D1(const Standard_Real Param,const Standard_Real First,const Standard_Real Last,TColgp_Array1OfPnt& Poles,TColgp_Array1OfVec& DPoles,TColgp_Array1OfPnt2d& Poles2d,TColgp_Array1OfVec2d& DPoles2d,TColStd_Array1OfReal& Weigths,TColStd_Array1OfReal& DWeigths) Standard_Boolean Approx_SweepFunction::D1(const Standard_Real ,const Standard_Real ,const Standard_Real ,TColgp_Array1OfPnt& ,TColgp_Array1OfVec& ,TColgp_Array1OfPnt2d& ,TColgp_Array1OfVec2d& ,TColStd_Array1OfReal& ,TColStd_Array1OfReal& ) diff --git a/src/Approx/Approx_SweepFunction.hxx b/src/Approx/Approx_SweepFunction.hxx new file mode 100644 index 0000000000..21682d9899 --- /dev/null +++ b/src/Approx/Approx_SweepFunction.hxx @@ -0,0 +1,154 @@ +// Created on: 1997-06-25 +// 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_SweepFunction_HeaderFile +#define _Approx_SweepFunction_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_NotImplemented; +class Standard_OutOfRange; +class gp_Pnt; + + +class Approx_SweepFunction; +DEFINE_STANDARD_HANDLE(Approx_SweepFunction, MMgt_TShared) + +//! defined the function used by SweepApproximation to +//! perform sweeping application. +class Approx_SweepFunction : public MMgt_TShared +{ + +public: + + + //! compute the section for v = param + Standard_EXPORT virtual Standard_Boolean D0 (const Standard_Real Param, const Standard_Real First, const Standard_Real Last, TColgp_Array1OfPnt& Poles, TColgp_Array1OfPnt2d& Poles2d, TColStd_Array1OfReal& Weigths) = 0; + + //! compute the first derivative in v direction of the + //! section for v = param + //! Warning : It used only for C1 or C2 aproximation + Standard_EXPORT virtual Standard_Boolean D1 (const Standard_Real Param, const Standard_Real First, const Standard_Real Last, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths); + + //! compute the second derivative in v direction of the + //! section for v = param + //! Warning : It used only for C2 aproximation + Standard_EXPORT virtual Standard_Boolean D2 (const Standard_Real Param, const Standard_Real First, const Standard_Real Last, 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); + + //! get the number of 2d curves to approximate. + Standard_EXPORT virtual Standard_Integer Nb2dCurves() const = 0; + + //! get the format of an section + Standard_EXPORT virtual void SectionShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree) const = 0; + + //! get the Knots of the section + Standard_EXPORT virtual void Knots (TColStd_Array1OfReal& TKnots) const = 0; + + //! get the Multplicities of the section + Standard_EXPORT virtual void Mults (TColStd_Array1OfInteger& TMults) const = 0; + + //! Returns if the sections are rationnal or not + Standard_EXPORT virtual Standard_Boolean IsRational() const = 0; + + //! Returns the number of intervals for continuity + //! . + //! May be one if Continuity(me) >= + Standard_EXPORT virtual Standard_Integer NbIntervals (const GeomAbs_Shape S) const = 0; + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! + //! The array must provide enough room to accomodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT virtual void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const = 0; + + //! Sets the bounds of the parametric interval on + //! the fonction + //! This determines the derivatives in these values if the + //! function is not Cn. + Standard_EXPORT virtual void SetInterval (const Standard_Real First, const Standard_Real Last) = 0; + + //! Returns the resolutions in the sub-space 2d + //! This information is usfull to find an good tolerance in + //! 2d approximation. + Standard_EXPORT virtual void Resolution (const Standard_Integer Index, const Standard_Real Tol, Standard_Real& TolU, Standard_Real& TolV) const; + + //! Returns the tolerance to reach in approximation + //! to satisfy. + //! BoundTol error at the Boundary + //! AngleTol tangent error at the Boundary (in radian) + //! SurfTol error inside the surface. + Standard_EXPORT virtual void GetTolerance (const Standard_Real BoundTol, const Standard_Real SurfTol, const Standard_Real AngleTol, TColStd_Array1OfReal& Tol3d) const = 0; + + //! Is usefull, if (me) have to run numerical + //! algorithm to perform D0, D1 or D2 + Standard_EXPORT virtual void SetTolerance (const Standard_Real Tol3d, const Standard_Real Tol2d) = 0; + + //! Get the barycentre of Surface. + //! An very poor estimation is sufficent. + //! This information is usefull to perform well + //! conditioned rational approximation. + //! Warning: Used only if IsRational + Standard_EXPORT virtual gp_Pnt BarycentreOfSurf() const; + + //! Returns the length of the greater section. This + //! information is usefull to G1's control. + //! Warning: With an little value, approximation can be slower. + Standard_EXPORT virtual Standard_Real MaximalSection() const; + + //! Compute the minimal value of weight for each poles + //! in all sections. + //! This information is usefull to control error + //! in rational approximation. + //! Warning: Used only if IsRational + Standard_EXPORT virtual void GetMinimalWeight (TColStd_Array1OfReal& Weigths) const; + + + + + DEFINE_STANDARD_RTTI(Approx_SweepFunction,MMgt_TShared) + +protected: + + + + +private: + + + + +}; + + + + + + + +#endif // _Approx_SweepFunction_HeaderFile diff --git a/src/Approx/FILES b/src/Approx/FILES index d87fd84c18..6cd02d9bc1 100644 --- a/src/Approx/FILES +++ b/src/Approx/FILES @@ -1,5 +1,34 @@ -Approx_SequenceOfHArray1OfReal.hxx Approx_Array1OfAdHSurface.hxx -Approx_HArray1OfAdHSurface.hxx Approx_Array1OfGTrsf2d.hxx +Approx_BSplComputeLine.gxx +Approx_ComputeCLine.gxx +Approx_ComputeLine.gxx +Approx_Curve2d.cxx +Approx_Curve2d.hxx +Approx_Curve3d.cxx +Approx_Curve3d.hxx +Approx_CurveOnSurface.cxx +Approx_CurveOnSurface.hxx +Approx_CurvilinearParameter.cxx +Approx_CurvilinearParameter.hxx +Approx_CurvlinFunc.cxx +Approx_CurvlinFunc.hxx +Approx_FitAndDivide.hxx +Approx_FitAndDivide2d.hxx +Approx_FitAndDivide2d_0.cxx +Approx_FitAndDivide_0.cxx +Approx_HArray1OfAdHSurface.hxx Approx_HArray1OfGTrsf2d.hxx +Approx_MCurvesToBSpCurve.cxx +Approx_MCurvesToBSpCurve.hxx +Approx_ParametrizationType.hxx +Approx_SameParameter.cxx +Approx_SameParameter.hxx +Approx_SameParameter.lxx +Approx_SequenceOfHArray1OfReal.hxx +Approx_Status.hxx +Approx_SweepApproximation.cxx +Approx_SweepApproximation.hxx +Approx_SweepApproximation.lxx +Approx_SweepFunction.cxx +Approx_SweepFunction.hxx diff --git a/src/ApproxInt/ApproxInt.cdl b/src/ApproxInt/ApproxInt.cdl deleted file mode 100644 index a18bbaf358..0000000000 --- a/src/ApproxInt/ApproxInt.cdl +++ /dev/null @@ -1,38 +0,0 @@ --- Created on: 1993-04-23 --- 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. - -package ApproxInt - -uses - Standard,TCollection,math,gp,TColStd,TColgp, - IntImp,IntSurf, - AppParCurves,StdFail,Approx,MMgt - -is - - deferred class SvSurfaces; - generic class PrmPrmSvSurfaces,TheInt2S; - generic class ImpPrmSvSurfaces,TheZerImpFunc; - generic class MultiLine; - generic class MultiLineTool; - generic class Approx,ThePrmPrmSvSurfaces, - TheImpPrmSvSurfaces, - TheMultiLine, - TheMultiLineTool, - TheComputeLine, - TheComputeLineBezier; - -end ApproxInt; diff --git a/src/ApproxInt/ApproxInt_Approx.cdl b/src/ApproxInt/ApproxInt_Approx.cdl deleted file mode 100644 index e2efd488f0..0000000000 --- a/src/ApproxInt/ApproxInt_Approx.cdl +++ /dev/null @@ -1,179 +0,0 @@ --- Created on: 1993-03-17 --- 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. - -generic class Approx from ApproxInt ( - ThePSurface as any; - ThePSurfaceTool as any; - TheISurface as any; - TheISurfaceTool as any; - TheWLine as Transient) - -uses - MCurvesToBSpCurve from Approx, - MultiBSpCurve from AppParCurves, - Pnt from gp, - Pnt2d from gp, - Vec from gp, - Vec2d from gp, - ParametrizationType from Approx - -raises - OutOfRange from Standard, - NotDone from StdFail - -class ThePrmPrmSvSurfaces instantiates PrmPrmSvSurfaces from ApproxInt ( - ThePSurface, - ThePSurfaceTool, - TheWLine); - -class TheImpPrmSvSurfaces instantiates ImpPrmSvSurfaces from ApproxInt ( - ThePSurface, - ThePSurfaceTool, - TheISurface, - TheISurfaceTool, - TheWLine); - -class TheMultiLine instantiates MultiLine from ApproxInt ( - TheWLine, - SvSurfaces from ApproxInt); - -class TheMultiLineTool instantiates MultiLineTool from ApproxInt( - TheMultiLine, - SvSurfaces from ApproxInt); - -class TheComputeLine instantiates BSplComputeLine from Approx ( - TheMultiLine, - TheMultiLineTool); - -class TheComputeLineBezier instantiates ComputeLine from Approx ( - TheMultiLine, - TheMultiLineTool); - -is - - Create - returns Approx from ApproxInt; - - Perform(me: in out; - Surf1,Surf2 : ThePSurface; - aLine : TheWLine; - ApproxXYZ : Boolean from Standard = Standard_True; - ApproxU1V1 : Boolean from Standard = Standard_True; - ApproxU2V2 : Boolean from Standard = Standard_True; - indicemin : Integer from Standard = 0; - indicemax : Integer from Standard = 0) - is static; - - Perform(me: in out; - aLine : TheWLine; - ApproxXYZ : Boolean from Standard = Standard_True; - ApproxU1V1 : Boolean from Standard = Standard_True; - ApproxU2V2 : Boolean from Standard = Standard_True; - indicemin : Integer from Standard = 0; - indicemax : Integer from Standard = 0) - is static; - - - SetParameters(me: in out; Tol3d : Real from Standard; - Tol2d : Real from Standard; - DegMin : Integer from Standard; - DegMax : Integer from Standard; - NbIterMax : Integer from Standard; - ApproxWithTangency : Boolean from Standard = Standard_True; - Parametrization : ParametrizationType from Approx = Approx_ChordLength) - is static; - - SetParameters(me: in out; Tol3d : Real from Standard; - Tol2d : Real from Standard; - RelativeTol : Boolean from Standard; - DegMin : Integer from Standard; - DegMax : Integer from Standard; - NbIterMax : Integer from Standard; - NbPntMax : Integer from Standard; - ApproxWithTangency : Boolean from Standard = Standard_True; - Parametrization : ParametrizationType from Approx = Approx_ChordLength) - is static; - - Perform(me:in out) - is static; - - TolReached3d(me) returns Real from Standard - is static; - - TolReached2d(me) returns Real from Standard - is static; - - IsDone(me) returns Boolean from Standard - is static; - - NbMultiCurves(me) returns Integer from Standard - is static ; - - Value(me; Index: Integer from Standard) - ---C++: return const & - returns MultiBSpCurve from AppParCurves - is static; - - - ----- private methods - - Perform(me: in out ;Surf1 : ThePSurface; - Surf2 : TheISurface; - aLine : TheWLine; - ApproxXYZ : Boolean from Standard; - ApproxU1V1 : Boolean from Standard; - ApproxU2V2 : Boolean from Standard; - indicemin : Integer from Standard; - indicemax : Integer from Standard) - - is static private; - - Perform(me: in out ;Surf1 : TheISurface; - Surf2 : ThePSurface; - aLine : TheWLine; - ApproxXYZ : Boolean from Standard; - ApproxU1V1 : Boolean from Standard; - ApproxU2V2 : Boolean from Standard; - indicemin : Integer from Standard; - indicemax : Integer from Standard) - is static private; - - UpdateTolReached(me: in out) - is static private; - -fields - myComputeLine : TheComputeLine from ApproxInt; - myComputeLineBezier : TheComputeLineBezier from ApproxInt; - myBezToBSpl : MCurvesToBSpCurve from Approx; - myTolReached : Boolean from Standard; - myApproxBez : Boolean from Standard; - - myWithTangency : Boolean from Standard; - myTol3d : Real from Standard; - myTol2d : Real from Standard; - myRelativeTol : Boolean from Standard; - myDegMin : Integer from Standard; - myDegMax : Integer from Standard; - myNbPntMax : Integer from Standard; - myNbIterMax : Integer from Standard; - - myMinFactorXYZ : Real from Standard; - myMinFactorUV : Real from Standard; - myTolReached3d : Real from Standard; - myTolReached2d : Real from Standard; - -end Approx; diff --git a/src/ApproxInt/ApproxInt_ImpPrmSvSurfaces.cdl b/src/ApproxInt/ApproxInt_ImpPrmSvSurfaces.cdl deleted file mode 100644 index faf6943eff..0000000000 --- a/src/ApproxInt/ApproxInt_ImpPrmSvSurfaces.cdl +++ /dev/null @@ -1,95 +0,0 @@ --- Created on: 1993-03-17 --- 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. - -generic class ImpPrmSvSurfaces from ApproxInt ( - ThePSurface as any; - ThePSurfaceTool as any; - TheISurface as any; - TheISurfaceTool as any; -- as ISurfaceTool from IntImp - TheLine as Transient) - -inherits SvSurfaces from ApproxInt - -uses - Pnt from gp, - Pnt2d from gp, - Vec from gp, - Vec2d from gp - - class TheZerImpFunc instantiates ZerImpFunc from IntImp( - ThePSurface,ThePSurfaceTool,TheISurface,TheISurfaceTool); - -is - Create(Surf1: ThePSurface; Surf2: TheISurface); - - Create(Surf1: TheISurface; Surf2: ThePSurface); - - Compute(me: in out; - u1,v1,u2,v2: in out Real from Standard; - Pt: out Pnt from gp; - Tg: out Vec from gp; - Tguv1,Tguv2: out Vec2d from gp) - ---Purpose: returns True if Tg,Tguv1 Tguv2 can be computed. - returns Boolean from Standard is static; - - Pnt(me: in out; - u1,v1,u2,v2: in Real from Standard; - P: out Pnt from gp) is static; - Tangency(me: in out; - u1,v1,u2,v2: in Real from Standard; - Tg: out Vec from gp) - returns Boolean from Standard is static; - - TangencyOnSurf1(me: in out; - u1,v1,u2,v2: in Real from Standard; - Tg: out Vec2d from gp) - returns Boolean from Standard is static; - - TangencyOnSurf2(me: in out; - u1,v1,u2,v2: in Real from Standard; - Tg: out Vec2d from gp) - returns Boolean from Standard is static; - -fields - - MyParOnS1 : Pnt2d from gp; - MyParOnS2 : Pnt2d from gp; - MyPnt : Pnt from gp; - MyTguv1 : Vec2d from gp; - MyTguv2 : Vec2d from gp; - MyTg : Vec from gp; - MyIsTangent : Boolean from Standard; - MyHasBeenComputed : Boolean from Standard; - - - - MyParOnS1bis : Pnt2d from gp; - MyParOnS2bis : Pnt2d from gp; - MyPntbis : Pnt from gp; - MyTguv1bis : Vec2d from gp; - MyTguv2bis : Vec2d from gp; - MyTgbis : Vec from gp; - MyIsTangentbis : Boolean from Standard; - MyHasBeenComputedbis : Boolean from Standard; - - - MyImplicitFirst : Boolean from Standard; - MyZerImpFunc : TheZerImpFunc from ApproxInt; - -end ImpPrmSvSurfaces; - - - diff --git a/src/ApproxInt/ApproxInt_MultiLine.cdl b/src/ApproxInt/ApproxInt_MultiLine.cdl deleted file mode 100644 index 8b00c88447..0000000000 --- a/src/ApproxInt/ApproxInt_MultiLine.cdl +++ /dev/null @@ -1,151 +0,0 @@ --- Created on: 1993-03-18 --- 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. - -generic class MultiLine from ApproxInt ( - TheLine as Transient; - TheSvSurfaces as any) - -uses Array1OfPnt from TColgp, - Array1OfPnt2d from TColgp, - Array1OfVec from TColgp, - Array1OfVec2d from TColgp, - Status from Approx, - Trsf from gp, - Trsf2d from gp - - -is - - Create(line : TheLine; - PtrSvSurfaces : Address from Standard; - NbP3d : Integer from Standard; - NbP2d : Integer from Standard; - xo,ax,yo,ay,zo,az : Real from Standard; - u1o,a1u,v1o,a1v : Real from Standard; - u2o,a2u,v2o,a2v : Real from Standard; - P2DOnFirst : Boolean from Standard; - IndMin : Integer from Standard = 0; - IndMax : Integer from Standard = 0) - - - returns MultiLine from ApproxInt; - - ---Purpose: The class SvSurfaces is used when the - -- approximation algorithm needs some extra points on - -- the line . A New line is then created which - -- shares the same surfaces and functions. - -- - -- SvSurfaces is a deferred class which allows - -- several implementations of this algorithm with - -- different surfaces (bi-parametric ones, or - -- implicit and biparametric ones) - - Create(line : TheLine; - NbP3d : Integer from Standard; - NbP2d : Integer from Standard; - xo,ax,yo,ay,zo,az : Real from Standard; - u1o,a1u,v1o,a1v : Real from Standard; - u2o,a2u,v2o,a2v : Real from Standard; - P2DOnFirst : Boolean from Standard; - IndMin : Integer from Standard = 0; - IndMax : Integer from Standard = 0) - - ---Purpose: No Extra points will be added on the current line - -- - returns MultiLine from ApproxInt; - - - FirstPoint(me) returns Integer from Standard is static; - - LastPoint(me) returns Integer from Standard is static; - - NbP2d(me) returns Integer is static; - ---Purpose: Returns the number of 2d points of a TheLine. - -- - - NbP3d(me) returns Integer is static; - ---Purpose: Returns the number of 3d points of a TheLine. - -- - - WhatStatus(me) returns Status from Approx is static; - - Value(me; MPointIndex: Integer; tabPt: out Array1OfPnt) is static; - ---Purpose: returns the 3d points of the multipoint - -- when only 3d points exist. - - Value(me; MPointIndex: Integer; - tabPt2d: out Array1OfPnt2d) is static; - ---Purpose: returns the 2d points of the multipoint - -- when only 2d points exist. - - Value(me; MPointIndex: Integer; - tabPt: out Array1OfPnt; tabPt2d: out Array1OfPnt2d from TColgp) is static; - ---Purpose: returns the 3d and 2d points of the multipoint - -- . - - Tangency(me; MPointIndex: Integer; tabV: out Array1OfVec from TColgp) - returns Boolean is static; - ---Purpose: returns the 3d points of the multipoint - -- when only 3d points exist. - - Tangency(me; MPointIndex: Integer; - tabV2d: out Array1OfVec2d) - returns Boolean is static; - ---Purpose: returns the 2d tangency points of the multipoint - -- only when 2d points exist. - - Tangency(me; MPointIndex: Integer; - tabV: out Array1OfVec from TColgp; tabV2d: out Array1OfVec2d from TColgp) - returns Boolean is static; - ---Purpose: returns the 3d and 2d points of the multipoint - -- . - -- - - MakeMLBetween(me; Low,High,NbPointsToInsert: Integer from Standard) - returns MultiLine from ApproxInt is static; - - Dump(me); - ---Purpose: Dump of the current multi-line. - --------------------------------------------------------------------------------- - -fields - PtrOnmySvSurfaces : Address from Standard; - myLine : TheLine; - indicemin : Integer from Standard; - indicemax : Integer from Standard; - nbp3d : Integer from Standard; - nbp2d : Integer from Standard; - p2donfirst : Boolean from Standard; - - - --- The Points of the line are transformed - -- as follow : - -- Modified_X = Xo + Ax * TheLine.Point().X() - -- Modified_Y = Yo + Ay * TheLine.Point().Y() - -- Modified_Z = Zo + Az * TheLine.Point().Z() - -- Modified_U1 = U1o + A1u * TheLine.Point().u1() - -- Modified_V1 = V1o + A1v * TheLine.Point().v1() - -- Modified_U2 = U2o + A2u * TheLine.Point().u2() - -- Modified_V2 = V2o + A2v * TheLine.Point().v2() - - Xo,Ax,Yo,Ay,Zo,Az : Real from Standard; - U1o,A1u,V1o,A1v : Real from Standard; - U2o,A2u,V2o,A2v : Real from Standard; - -end MultiLine; - - diff --git a/src/ApproxInt/ApproxInt_MultiLineTool.cdl b/src/ApproxInt/ApproxInt_MultiLineTool.cdl deleted file mode 100644 index 68766583ab..0000000000 --- a/src/ApproxInt/ApproxInt_MultiLineTool.cdl +++ /dev/null @@ -1,134 +0,0 @@ --- Created on: 1993-03-26 --- 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. - -generic class MultiLineTool from ApproxInt (TheMultiLine as any; - TheMultiMPoint as any) - - -uses - Status from Approx, - Array1OfPnt from TColgp, - Array1OfPnt2d from TColgp, - Array1OfVec from TColgp, - Array1OfVec2d from TColgp - -is - - - FirstPoint(myclass; ML: TheMultiLine) returns Integer; - ---C++:inline - ---Purpose: Returns the number of multipoints of the TheMultiLine. - - LastPoint(myclass; ML: TheMultiLine) returns Integer; - ---C++:inline - ---Purpose: Returns the number of multipoints of the TheMultiLine. - - NbP2d(myclass; ML: TheMultiLine) returns Integer; - ---C++:inline - ---Purpose: Returns the number of 2d points of a TheMultiLine. - - - NbP3d(myclass; ML: TheMultiLine) returns Integer; - ---C++:inline - ---Purpose: Returns the number of 3d points of a TheMultiLine. - - - Value(myclass; ML: TheMultiLine; MPointIndex: Integer; tabPt: out Array1OfPnt); - ---C++:inline - ---Purpose: returns the 3d points of the multipoint - -- when only 3d points exist. - - - Value(myclass; ML: TheMultiLine; MPointIndex: Integer; - tabPt2d: out Array1OfPnt2d from TColgp); - ---C++:inline - ---Purpose: returns the 2d points of the multipoint - -- when only 2d points exist. - - - Value(myclass; ML: TheMultiLine; MPointIndex: Integer; - tabPt: out Array1OfPnt from TColgp; tabPt2d: out Array1OfPnt2d); - ---C++:inline - ---Purpose: returns the 3d and 2d points of the multipoint - -- . - - Tangency(myclass; ML: TheMultiLine; MPointIndex: Integer; tabV: out Array1OfVec from TColgp) - returns Boolean; - ---C++:inline - ---Purpose: returns the 3d points of the multipoint - -- when only 3d points exist. - - - Tangency(myclass; ML: TheMultiLine; MPointIndex: Integer; - tabV2d: out Array1OfVec2d from TColgp) - returns Boolean; - ---C++:inline - ---Purpose: returns the 2d tangency points of the multipoint - -- only when 2d points exist. - - - Tangency(myclass; ML: TheMultiLine; MPointIndex: Integer; - tabV: out Array1OfVec from TColgp; tabV2d: out Array1OfVec2d from TColgp) - returns Boolean; - ---C++:inline - ---Purpose: returns the 3d and 2d points of the multipoint - -- . - - ---- methods not used but necessary - - - Curvature(myclass; ML: TheMultiLine; MPointIndex: Integer; - tabV: out Array1OfVec from TColgp) - returns Boolean; - ---C++:inline - ---Purpose: returns the 3d curvature of the multipoint - -- when only 3d points exist. - - - Curvature(myclass; ML: TheMultiLine; MPointIndex: Integer; - tabV2d: out Array1OfVec2d from TColgp) - returns Boolean; - ---C++:inline - ---Purpose: returns the 2d curvature points of the multipoint - -- only when 2d points exist. - - - Curvature(myclass; ML: TheMultiLine; MPointIndex: Integer; - tabV: out Array1OfVec from TColgp; - tabV2d: out Array1OfVec2d from TColgp) - returns Boolean; - ---C++:inline - ---Purpose: returns the 3d and 2d curvature of the multipoint - -- . - - - - MakeMLBetween(myclass; ML: TheMultiLine; I1, I2: Integer; - NbPMin: Integer) - returns TheMultiLine; - ---C++:inline - ---Purpose: Is called if WhatStatus returned "PointsAdded". - - WhatStatus(myclass; ML: TheMultiLine; I1, I2: Integer) - ---C++:inline - returns Status from Approx; - - Dump(myclass; ML: TheMultiLine); - ---Purpose: Dump of the current multi-line. - -end MultiLineTool; - diff --git a/src/ApproxInt/ApproxInt_PrmPrmSvSurfaces.cdl b/src/ApproxInt/ApproxInt_PrmPrmSvSurfaces.cdl deleted file mode 100644 index c6a3e8b625..0000000000 --- a/src/ApproxInt/ApproxInt_PrmPrmSvSurfaces.cdl +++ /dev/null @@ -1,87 +0,0 @@ --- Created on: 1993-03-17 --- 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. - -generic class PrmPrmSvSurfaces from ApproxInt ( - ThePSurface as any; - ThePSurfaceTool as any; - TheLine as Transient) - -inherits SvSurfaces from ApproxInt - -uses - Pnt from gp, - Pnt2d from gp, - Vec from gp, - Vec2d from gp - - class TheInt2S instantiates Int2S from IntImp( - ThePSurface,ThePSurfaceTool); - -is - Create(Surf1,Surf2: ThePSurface); - - Compute(me: in out; - u1,v1,u2,v2: in out Real from Standard; - Pt: out Pnt from gp; - Tg: out Vec from gp; - Tguv1,Tguv2: out Vec2d from gp) - ---Purpose: returns True if Tg,Tguv1 Tguv2 can be computed. - returns Boolean from Standard is static; - - Pnt(me: in out; - u1,v1,u2,v2: in Real from Standard; - P: out Pnt from gp) is static; - - Tangency(me: in out; - u1,v1,u2,v2: in Real from Standard; - Tg: out Vec from gp) - returns Boolean from Standard is static; - - TangencyOnSurf1(me: in out; - u1,v1,u2,v2: in Real from Standard; - Tg: out Vec2d from gp) - returns Boolean from Standard is static; - - TangencyOnSurf2(me: in out; - u1,v1,u2,v2: in Real from Standard; - Tg: out Vec2d from gp) - returns Boolean from Standard is static; - -fields - MyParOnS1 : Pnt2d from gp; - MyParOnS2 : Pnt2d from gp; - MyPnt : Pnt from gp; - MyTguv1 : Vec2d from gp; - MyTguv2 : Vec2d from gp; - MyTg : Vec from gp; - MyIsTangent : Boolean from Standard; - MyHasBeenComputed : Boolean from Standard; - - MyParOnS1bis : Pnt2d from gp; - MyParOnS2bis : Pnt2d from gp; - MyPntbis : Pnt from gp; - MyTguv1bis : Vec2d from gp; - MyTguv2bis : Vec2d from gp; - MyTgbis : Vec from gp; - MyIsTangentbis : Boolean from Standard; - MyHasBeenComputedbis : Boolean from Standard; - - MyIntersectionOn2S : TheInt2S; - -end PrmPrmSvSurfaces; - - - diff --git a/src/ApproxInt/ApproxInt_SvSurfaces.cdl b/src/ApproxInt/ApproxInt_SvSurfaces.cdl deleted file mode 100644 index 00433dd45a..0000000000 --- a/src/ApproxInt/ApproxInt_SvSurfaces.cdl +++ /dev/null @@ -1,59 +0,0 @@ --- Created on: 1993-03-17 --- 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. - -deferred class SvSurfaces from ApproxInt - -uses - Pnt from gp, - Pnt2d from gp, - Vec from gp, - Vec2d from gp - -is - - Compute(me: in out; - u1,v1,u2,v2: in out Real from Standard; - Pt: out Pnt from gp; - Tg: out Vec from gp; - Tguv1,Tguv2: out Vec2d from gp) - ---Purpose: returns True if Tg,Tguv1 Tguv2 can be computed. - returns Boolean from Standard is deferred; - - Pnt(me: in out; - u1,v1,u2,v2: in Real from Standard; - P: out Pnt from gp) is deferred; - - Tangency(me: in out; - u1,v1,u2,v2: in Real from Standard; - Tg: out Vec from gp) - returns Boolean from Standard is deferred; - - TangencyOnSurf1(me: in out; - u1,v1,u2,v2: in Real from Standard; - Tg: out Vec2d from gp) - returns Boolean from Standard is deferred; - - TangencyOnSurf2(me: in out; - u1,v1,u2,v2: in Real from Standard; - Tg: out Vec2d from gp) - returns Boolean from Standard is deferred; - - ---C++: alias " Standard_EXPORT virtual ~ApproxInt_SvSurfaces();" - -end SvSurfaces; - - - diff --git a/src/ApproxInt/ApproxInt_SvSurfaces.cxx b/src/ApproxInt/ApproxInt_SvSurfaces.cxx index f73cd50518..cb9b568031 100644 --- a/src/ApproxInt/ApproxInt_SvSurfaces.cxx +++ b/src/ApproxInt/ApproxInt_SvSurfaces.cxx @@ -12,7 +12,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include //======================================================================= //function : ~ApproxInt_SvSurfaces diff --git a/src/ApproxInt/ApproxInt_SvSurfaces.hxx b/src/ApproxInt/ApproxInt_SvSurfaces.hxx new file mode 100644 index 0000000000..825ba24c3f --- /dev/null +++ b/src/ApproxInt/ApproxInt_SvSurfaces.hxx @@ -0,0 +1,74 @@ +// Created on: 1993-03-17 +// 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 _ApproxInt_SvSurfaces_HeaderFile +#define _ApproxInt_SvSurfaces_HeaderFile + +#include +#include +#include + +#include +#include +class gp_Pnt; +class gp_Vec; +class gp_Vec2d; + + + +class ApproxInt_SvSurfaces +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! returns True if Tg,Tguv1 Tguv2 can be computed. + Standard_EXPORT virtual Standard_Boolean Compute (Standard_Real& u1, Standard_Real& v1, Standard_Real& u2, Standard_Real& v2, gp_Pnt& Pt, gp_Vec& Tg, gp_Vec2d& Tguv1, gp_Vec2d& Tguv2) = 0; + + Standard_EXPORT virtual void Pnt (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Pnt& P) = 0; + + Standard_EXPORT virtual Standard_Boolean Tangency (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec& Tg) = 0; + + Standard_EXPORT virtual Standard_Boolean TangencyOnSurf1 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg) = 0; + + Standard_EXPORT virtual Standard_Boolean TangencyOnSurf2 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg) = 0; + Standard_EXPORT virtual ~ApproxInt_SvSurfaces(); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _ApproxInt_SvSurfaces_HeaderFile diff --git a/src/ApproxInt/FILES b/src/ApproxInt/FILES index 48770f4f16..f7d483df56 100755 --- a/src/ApproxInt/FILES +++ b/src/ApproxInt/FILES @@ -1,2 +1,8 @@ +ApproxInt_Approx.gxx +ApproxInt_ImpPrmSvSurfaces.gxx +ApproxInt_MultiLine.gxx ApproxInt_MultiLineTool.gxx - +ApproxInt_MultiLineTool.lxx +ApproxInt_PrmPrmSvSurfaces.gxx +ApproxInt_SvSurfaces.cxx +ApproxInt_SvSurfaces.hxx diff --git a/src/Aspect/Aspect.cdl b/src/Aspect/Aspect.cdl deleted file mode 100644 index 4d4e424244..0000000000 --- a/src/Aspect/Aspect.cdl +++ /dev/null @@ -1,529 +0,0 @@ --- 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. - -package Aspect - - ---Version: - - ---Purpose: This package contains the group of graphic elements common - -- to different types of visualisers. It allows the description - -- of a screen background, a window, an edge, and groups of - -- graphic attributes that can be used in describing 2D - -- and 3D objects. - - ---Keywords: Window, Aspect, FillArea, Line, Marker, Edge - -- Highlight, Hatch, Background, GradientBackground, Color map, - -- Type map, Width map, Font map - ---Warning: - ---References: - -uses - TCollection, - TColStd, - TShort, - Quantity, - TColQuantity, - Resource, - MMgt - -is - --------------------------- - -- Category: Imported types - --------------------------- - imported FStream; - -- waiting for RBA creating this class in Standard ... - - imported IFStream; - -- G002A study - - imported CLayer2d; - - ---Category: Imported types - - primitive Handle; - primitive Drawable; - - primitive Display; - - primitive RenderingContext; - - imported GraphicCallbackProc; - - -- 22-03-04 OCC4895 SAN High-level interface for controlling polygon offsets - imported PolygonOffsetMode; - - ----------------------- - -- Category: Exceptions - ----------------------- - - exception AspectLineDefinitionError inherits OutOfRange; - ---Category: Exceptions - - exception AspectFillAreaDefinitionError inherits OutOfRange; - ---Category: Exceptions - - exception AspectMarkerDefinitionError inherits OutOfRange; - ---Category: Exceptions - - exception BadAccess inherits DomainError; - ---Category: Exceptions - - exception IdentDefinitionError inherits OutOfRange; - ---Category: Exceptions - - exception WindowDefinitionError inherits OutOfRange; - ---Category: The exceptions - - exception WindowError inherits OutOfRange; - ---Category: The exceptions - - exception DriverDefinitionError inherits OutOfRange; - ---Category: The exceptions - - exception GraphicDeviceDefinitionError inherits OutOfRange; - ---Category: The exceptions - - exception DisplayConnectionDefinitionError inherits OutOfRange; - ---Category: The exceptions - - --------------------------- - -- Category: Classes Aspect - --------------------------- - - deferred class AspectLine; - ---Category: Classes Aspect - - deferred class AspectMarker; - ---Category: Classes Aspect - - deferred class AspectFillArea; - ---Category: Classes Aspect - - -------------------- - -- Category: Classes - -------------------- - - class Background; - ---Category: Classes - - class GradientBackground; - ---Category: Classes - - class GenId; - ---Category: Classes - - deferred class Window; - ---Category: Classes - - deferred class Grid; - class RectangularGrid; - class CircularGrid; - - deferred class ColorScale; - - imported transient class DisplayConnection; - - ------------------------- - -- Category: Enumerations - ------------------------- - - enumeration HatchStyle is HS_HORIZONTAL, - HS_HORIZONTAL_WIDE, - HS_VERTICAL, - HS_VERTICAL_WIDE, - HS_DIAGONAL_45, - HS_DIAGONAL_45_WIDE, - HS_DIAGONAL_135, - HS_DIAGONAL_135_WIDE, - HS_GRID, - HS_GRID_WIDE, - HS_GRID_DIAGONAL, - HS_GRID_DIAGONAL_WIDE - end HatchStyle; - ---Purpose: Definition of all available hatch styles. - -- - -- HS_HORIZONTAL - -- HS_HORIZONTAL_WIDE - -- HS_VERTICAL - -- HS_VERTICAL_WIDE - -- HS_DIAGONAL_45 - -- HS_DIAGONAL_45_WIDE - -- HS_DIAGONAL_135 - -- HS_DIAGONAL_135_WIDE - -- HS_GRID - -- HS_GRID_WIDE - -- HS_GRID_DIAGONAL - -- HS_GRID_DIAGONAL_WIDE - -- - ---Category: Enumerations - - enumeration InteriorStyle is IS_EMPTY, - IS_HOLLOW, - IS_HATCH, - IS_SOLID, - IS_HIDDENLINE, - IS_POINT - end InteriorStyle; - ---Purpose: Definition of interior types for primitive - -- faces. - -- - -- IS_EMPTY no interior. - -- IS_HOLLOW display the boundaries of the surface. - -- IS_HATCH display hatched with a hatch style. - -- IS_SOLID display the interior entirely filled. - -- IS_HIDDENLINE display in hidden lines removed. - -- IS_POINT display only vertices. - -- - ---Category: Enumerations - - enumeration TypeOfConstraint is TOC_BOTTOM_LEFT, - TOC_BOTTOM_RIGHT, - TOC_TOP_LEFT, - TOC_TOP_RIGHT - end TypeOfConstraint; - ---Purpose: Definition of the attachment for the layers - -- - ---Category: Enumerations - - enumeration TypeOfDrawMode is TODM_REPLACE, - TODM_ERASE, - TODM_XOR, - TODM_XORLIGHT - end TypeOfDrawMode; - ---Purpose: Definition of the draw modes - -- - ---Category: Enumerations - - enumeration TypeOfEdge is TOE_VISIBLE, - TOE_INVISIBLE - end TypeOfEdge; - ---Purpose: Definition of edge visibility - -- - -- TOE_VISIBLE Edge is displayed - -- TOE_INVISIBLE Edge is not displayed - -- - ---Category: Enumerations - - enumeration TypeOfHighlightMethod is TOHM_COLOR, - TOHM_BOUNDBOX - end TypeOfHighlightMethod; - ---Purpose: Definition of a highlight method - -- - -- TOHM_COLOR drawn in the highlight color - -- (default white) - -- TOHM_BOUNDBOX enclosed by the boundary box - -- (default white) - -- - ---Category: Enumerations - - enumeration TypeOfLine is TOL_SOLID, - TOL_DASH, - TOL_DOT, - TOL_DOTDASH, - TOL_USERDEFINED - end TypeOfLine; - ---Purpose: Definition of line types - -- - -- TOL_SOLID continuous - -- TOL_DASH dashed 2.0,1.0 (MM) - -- TOL_DOT dotted 0.2,0.5 (MM) - -- TOL_DOTDASH mixed 10.0,1.0,2.0,1.0 (MM) - -- TOL_USERDEFINED defined by Users - ---Category: Enumerations - - enumeration WidthOfLine is WOL_THIN, - WOL_MEDIUM, - WOL_THICK, - WOL_VERYTHICK, - WOL_USERDEFINED - end WidthOfLine; - ---Purpose: Definition of line types - -- - -- WOL_THIN thin line (1 pixel width) - -- WOL_MEDIUM medium width of 0.5 MM - -- WOL_THICK thick width of 0.7 MM - -- WOL_VERYTHICK very thick width of 1.5 MM - -- WOL_USERDEFINED defined by Users - ---Category: Enumerations - - enumeration TypeOfStyleText is TOST_NORMAL, - TOST_ANNOTATION - end TypeOfStyleText; - ---Purpose: 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. - ---Category: Enumerations - - enumeration TypeOfDisplayText is TODT_NORMAL, - TODT_SUBTITLE, - TODT_DEKALE, - TODT_BLEND, - TODT_DIMENSION - end TypeOfDisplayText; - ---Purpose: Define the display type of the text. - -- - -- TODT_NORMAL Default display. Text only. - -- TODT_SUBTITLE There is a subtitle under the text. - -- TODT_DEKALE The text is displayed with a 3D style. - -- TODT_BLEND The text is displayed in XOR. - -- TODT_DIMENSION Dimension line under text will be invisible. - ---Category: Enumerations - - enumeration TypeOfMarker is TOM_POINT, - TOM_PLUS, - TOM_STAR, - TOM_X, - TOM_O, - TOM_O_POINT, - TOM_O_PLUS, - TOM_O_STAR, - TOM_O_X, - TOM_RING1, - TOM_RING2, - TOM_RING3, - TOM_BALL, - TOM_USERDEFINED - end TypeOfMarker; - ---Purpose: Definition of types of markers - -- - -- TOM_POINT point . - -- TOM_PLUS plus + - -- TOM_STAR star * - -- TOM_X cross x - -- TOM_O circle O - -- TOM_O_POINT a point in a circle - -- TOM_O_PLUS a plus in a circle - -- TOM_O_STAR a star in a circle - -- TOM_O_X a cross in a circle - -- TOM_RING1 a large ring - -- TOM_RING2 a medium ring - -- TOM_RING3 a small ring - -- TOM_BALL a ball with 1 color and different saturations - -- TOM_USERDEFINED defined by Users - -- - ---Category: Enumerations - - enumeration TypeOfUpdate is TOU_ASAP, - TOU_WAIT - end TypeOfUpdate; - ---Purpose: Definition of screen refresh mode - -- - -- TOU_ASAP as soon as possible - -- TOU_WAIT on demand (Update) - -- - ---Category: Enumerations - - enumeration TypeOfDeflection is TOD_RELATIVE, - TOD_ABSOLUTE - end TypeOfDeflection; - ---Purpose: Defines if the maximal chordial deflection used when - -- drawing an object is absolute or relative to the size - -- of the object. - - enumeration TypeOfResize is TOR_UNKNOWN, - TOR_NO_BORDER, - TOR_TOP_BORDER, - TOR_RIGHT_BORDER, - TOR_BOTTOM_BORDER, - TOR_LEFT_BORDER, - TOR_TOP_AND_RIGHT_BORDER, - TOR_RIGHT_AND_BOTTOM_BORDER, - TOR_BOTTOM_AND_LEFT_BORDER, - TOR_LEFT_AND_TOP_BORDER - end TypeOfResize; - ---Purpose: Defines the type of Resize Window method applied - -- by the user. - - enumeration TypeOfPrimitive is - TOP_UNKNOWN, - TOP_POLYLINE, - TOP_POLYGON, - TOP_SEGMENTS, - TOP_ARCS, - TOP_POLYARCS, - TOP_POINTS, - TOP_MARKERS - end TypeOfPrimitive; - ---Purpose: - - enumeration GridDrawMode is GDM_Lines, - GDM_Points, - GDM_None - end GridDrawMode; - ---Purpose: Defines the grid draw mode. The grid may be drawn - -- by using lines or points. - - enumeration GridType is GT_Rectangular, - GT_Circular - end GridType; - ---Purpose: Defines the grid type : Rectangular or Circular. - - enumeration TypeOfTriedronEcho is TOTE_NONE, - TOTE_ORIGIN, - TOTE_AXIS_X, - TOTE_AXIS_Y, - TOTE_AXIS_Z, - TOTE_TEXT_X, - TOTE_TEXT_Y, - TOTE_TEXT_Z, - TOTE_01, - TOTE_02, - TOTE_03, - TOTE_04, - TOTE_05, - TOTE_06, - TOTE_07, - TOTE_08, - TOTE_09, - TOTE_10 - end TypeOfTriedronEcho; - ---Purpose: Definition of the Triedron echo zone to highlight - -- - -- TOTE_NONE no echo zone - -- TOTE_ORIGIN a box on origin of the Triedron - -- TOTE_AXIS_X highlights the X axis - -- TOTE_AXIS_Y highlights the Y axis - -- TOTE_AXIS_Z highlights the Z axis - -- TOTE_TEXT_X highlights the X character - -- TOTE_TEXT_Y highlights the Y character - -- TOTE_TEXT_Z highlights the Z character - -- TOTE_01 to TOTE_10 not yet implemented. - ---Category: The enumerations - - - enumeration TypeOfTriedronPosition is TOTP_CENTER, - TOTP_LEFT_LOWER, - TOTP_LEFT_UPPER, - TOTP_RIGHT_LOWER, - TOTP_RIGHT_UPPER, - TOTP_01, - TOTP_02, - TOTP_03, - TOTP_04, - TOTP_05, - TOTP_06, - TOTP_07, - TOTP_08, - TOTP_09, - TOTP_10 - end TypeOfTriedronPosition; - ---Purpose: Definition of the Triedron position in the views - -- - -- TOTP_CENTER at the center of the view - -- TOTP_LEFT_LOWER at the left lower corner - -- TOTP_LEFT_UPPER at the left upper corner - -- TOTP_RIGHT_LOWER at the right lower corner - -- TOTP_RIGHT_UPPER at the right upper corner - -- TOTP_01 to TOTP_10 not yet implemented. - ---Category: The enumerations - - enumeration TypeOfLayer is TOL_OVERLAY, - TOL_UNDERLAY - end TypeOfLayer; - ---Purpose: Modes of drawing for the objects in a layer - -- - -- TOL_OVERLAY, the graphic of the layer is draw - -- after the 3d graphic. - -- TOL_UNDERLAY, the graphic of the layer is draw - -- before the 3d graphic. - ---Category: The enumerations - - enumeration TypeOfFacingModel is TOFM_BOTH_SIDE, - TOFM_BACK_SIDE, - TOFM_FRONT_SIDE - end TypeOfFacingModel; - - enumeration FillMethod is - FM_NONE, - FM_CENTERED, - FM_TILED, - FM_STRETCH - end FillMethod; - ---Purpose: Defines the fill methods to - -- write bitmaps in a window. - - enumeration GradientFillMethod is - GFM_NONE, - GFM_HOR, - GFM_VER, - GFM_DIAG1, - GFM_DIAG2, - GFM_CORNER1, - GFM_CORNER2, - GFM_CORNER3, - GFM_CORNER4 - end GradientFillMethod; - ---Purpose: Defines the fill methods to - -- write gradient background in a window. - - enumeration TypeOfColorScaleData is - TOCSD_AUTO, - TOCSD_USER - end TypeOfColorScaleData; - ---Purpose: Defines the using type of colors and labels - - enumeration TypeOfColorScalePosition is - TOCSP_NONE, - TOCSP_LEFT, - TOCSP_RIGHT, - TOCSP_CENTER - end TypeOfColorScalePosition; - ---Purpose: Defines the type of position for color scale labels - - enumeration TypeOfColorScaleOrientation is - TOCSO_NONE, - TOCSO_LEFT, - TOCSO_RIGHT, - TOCSO_CENTER - end TypeOfColorScaleOrientation; - ---Purpose: Defines the type of color scale orientation - - enumeration PrintAlgo is - PA_STRETCH, - PA_TILE - end PrintAlgo; - ---Purpose: Defines print algorithm - -- Aspect_PrintAlgo: - -- 1) PA_STRETCH - Stretch offscreen printing frame - -- if its dimensions are smaller than - -- the printer's printing area dimensions; - -- This algorithm is more reliable as it - -- works on any hardware and is recommended - -- to be used with average printing resolutions, - -- as it more RAM memory dependent than PA_TILE; - -- Stretching is performend using bicubic interpolation - -- algorithm from FreeImage library if OCCT is built - -- with FreeImage support, otherwise Windows API - -- StretchBlt() function in STRETCH_HALFTONE mode - -- is used; - -- 2) PA_TILE - If the offscreen printing frame dimensions - -- are smaller than the printer's printing - -- area dimensions - use multiple printing - -- frames to cover the whole printing area - enumeration XAtom is - XA_DELETE_WINDOW - end XAtom; - ---Purpose: Defines custom identifiers(atoms) for X window custom named properties - --------------------------------- - -- Category: Instantiated classes - --------------------------------- - - imported SequenceOfColor; - -end Aspect; diff --git a/src/Aspect/Aspect_AspectFillArea.cdl b/src/Aspect/Aspect_AspectFillArea.cdl deleted file mode 100644 index 2afa8ba86d..0000000000 --- a/src/Aspect/Aspect_AspectFillArea.cdl +++ /dev/null @@ -1,210 +0,0 @@ --- Created on: 1991-11-04 --- 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. - --- Modified: 15/01/98 ; FMN : Ajout Hidden Line --- 08/01/03 ; SAV : Added method and field to control back face interior --- color - -deferred class AspectFillArea from Aspect - - ---Purpose: Group of attributes for the FACE primitives. - -- The attributes are: - -- * type of interior - -- * type of hatch - -- * interior colour - -- * border colour - -- * type of border - -- * thickness of border - -- when the value of the group is modified, all graphic - -- objects using this group are modified. - - -inherits - - TShared - -uses - - Color from Quantity, - - HatchStyle from Aspect, - InteriorStyle from Aspect, - TypeOfLine from Aspect - -raises - - AspectFillAreaDefinitionError from Aspect - -is - - Initialize; - ---Level: Public - ---Purpose: Initialise the constructor - -- of Graphic3d_AspectFillArea3d. - -- - -- default values : - -- - -- InteriorStyle = Aspect_IS_EMPTY; - -- InteriorColor = Quantity_NOC_CYAN1; - -- EdgeColor = Quantity_NOC_WHITE; - -- EdgeType = Aspect_TOL_SOLID; - -- EdgeWidth = 1.0; - -- HatchStyle = Aspect_HS_VERTICAL; - - Initialize ( InteriorStyle : InteriorStyle from Aspect; - InteriorColor : Color from Quantity; - EdgeColor : Color from Quantity; - EdgeLineType : TypeOfLine from Aspect; - EdgeLineWidth : Real from Standard ) - ---Level: Public - ---Purpose: Initialise the values for the constructor of - -- Graphic3d_AspectFillArea3d. - -- - -- InteriorStyle : - -- IS_EMPTY no interior. - -- IS_HOLLOW display the boundaries of the surface. - -- IS_HATCH display hatched with a hatch style. - -- IS_SOLID display the interior entirely filled. - -- - -- EdgeLineType : - -- TOL_SOLID continuous - -- TOL_DASH dashed - -- TOL_DOT dotted - -- TOL_DOTDASH mixed - -- - -- default values : - -- HatchStyle = Aspect_HS_VERTICAL; - -- - -- Warning: Raises AspectFillAreaDefinitionError if the - -- width is a negative value. - raises AspectFillAreaDefinitionError from Aspect; - - --------------------------------------------------- - -- Category: Methods to modify the class definition - --------------------------------------------------- - - SetEdgeColor ( me : mutable; - AColor : Color from Quantity ); - ---Level: Public - ---Purpose: Modifies the colour of the edge of the face - ---Category: Methods to modify the class definition - - SetEdgeLineType ( me : mutable; - AType : TypeOfLine from Aspect ); - ---Level: Public - ---Purpose: Modifies the edge line type - ---Category: Methods to modify the class definition - - SetEdgeWidth ( me : mutable; - AWidth : Real from Standard ) - ---Level: Public - ---Purpose: Modifies the edge thickness - -- - -- Category: Methods to modify the class definition - -- - -- Warning: Raises AspectFillAreaDefinitionError if the - -- width is a negative value. - raises AspectFillAreaDefinitionError from Aspect; - - SetHatchStyle ( me : mutable; - AStyle : HatchStyle from Aspect ); - ---Level: Public - ---Purpose: Modifies the hatch type used when InteriorStyle - -- is IS_HATCH - ---Category: Methods to modify the class definition - - SetInteriorColor ( me : mutable; - AColor : Color from Quantity ); - ---Level: Public - ---Purpose: Modifies the colour of the interior of the face - ---Category: Methods to modify the class definition - - SetBackInteriorColor( me : mutable; color : Color from Quantity ); - ---Level: Public - ---Purpose: Modifies the colour of the interior of the back face - ---Category: Methods to modify the class definition - - SetInteriorStyle ( me : mutable; - AStyle : InteriorStyle from Aspect ); - ---Level: Public - ---Purpose: Modifies the interior type used for rendering - -- - -- InteriorStyle : IS_EMPTY no interior - -- IS_HOLLOW display the boundaries of the surface - -- IS_HATCH display hatching - -- IS_SOLID display interior entirely filled - -- - ---Category: Methods to modify the class definition - - ---------------------------- - -- Category: Inquire methods - ---------------------------- - - HatchStyle ( me ) - returns HatchStyle from Aspect; - ---Level: Public - ---Purpose: Returns the hatch type used when InteriorStyle - -- is IS_HATCH - ---Category: Inquire methods - - Values ( me; - AStyle : out InteriorStyle from Aspect; - AIntColor : out Color from Quantity; - AEdgeColor : out Color from Quantity; - AType : out TypeOfLine from Aspect; - AWidth : out Real from Standard ); - - Values ( me; - AStyle : out InteriorStyle from Aspect; - AIntColor : out Color from Quantity; - BackIntColor : out Color from Quantity; - AEdgeColor : out Color from Quantity; - AType : out TypeOfLine from Aspect; - AWidth : out Real from Standard ); - ---Level: Public - ---Purpose: Returns the current values of the group. - ---Category: Inquire methods - --- - -fields - --- --- Class : Aspect_AspectFillArea --- --- Purpose : Declaration of specific variables in the context of --- drawing faces --- --- Reminder : The drawing context of a face is defined by: --- - the interior style and color of the face --- - the style, color and thickness of the face edge --- - - -- the interior - MyInteriorStyle : InteriorStyle from Aspect; - MyInteriorColor : Color from Quantity; - - MyBackInteriorColor : Color from Quantity; - - -- the edge - MyEdgeColor : Color from Quantity; - MyEdgeType : TypeOfLine from Aspect; - MyEdgeWidth : Real from Standard; - - -- the hatch - MyHatchStyle : HatchStyle from Aspect; - -end AspectFillArea; diff --git a/src/Aspect/Aspect_AspectFillArea.cxx b/src/Aspect/Aspect_AspectFillArea.cxx index 3f5de12912..5469ef8c3e 100644 --- a/src/Aspect/Aspect_AspectFillArea.cxx +++ b/src/Aspect/Aspect_AspectFillArea.cxx @@ -14,50 +14,37 @@ // commercial license or contractual agreement. // Modified: 15/01/98 ; FMN : Ajout Hidden Line - - //-Version - //-Design Declaration of variables specific to the context // of tracing facets - //-Warning Context of tracing facets id defined by: // - the style of the interior of the facet // - the style of the border of the facet // - the color - //-References - //-Language C++ 2.0 - //-Declarations - // for the class -#include -//-Aliases +#include +#include +#include +#include +//-Aliases //-Global data definitions - // -- interior // MyInteriorStyle : InteriorStyle; // MyInteriorColor : Color; - // -- border // MyEdgeColor : Color; // MyEdgeType : TypeOfLine; // MyEdgeWidth : Standard_Real; - // -- shading // MyHatchStyle : HatchStyle; - - //-Constructors - //-Destructors - //-Methods, in order - Aspect_AspectFillArea::Aspect_AspectFillArea () { MyInteriorStyle = Aspect_IS_EMPTY; diff --git a/src/Aspect/Aspect_AspectFillArea.hxx b/src/Aspect/Aspect_AspectFillArea.hxx new file mode 100644 index 0000000000..768d4304ef --- /dev/null +++ b/src/Aspect/Aspect_AspectFillArea.hxx @@ -0,0 +1,158 @@ +// Created on: 1991-11-04 +// 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_AspectFillArea_HeaderFile +#define _Aspect_AspectFillArea_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +class Aspect_AspectFillAreaDefinitionError; +class Quantity_Color; + + +class Aspect_AspectFillArea; +DEFINE_STANDARD_HANDLE(Aspect_AspectFillArea, MMgt_TShared) + +//! Group of attributes for the FACE primitives. +//! The attributes are: +//! * type of interior +//! * type of hatch +//! * interior colour +//! * border colour +//! * type of border +//! * thickness of border +//! when the value of the group is modified, all graphic +//! objects using this group are modified. +class Aspect_AspectFillArea : public MMgt_TShared +{ + +public: + + + //! Modifies the colour of the edge of the face + Standard_EXPORT void SetEdgeColor (const Quantity_Color& AColor); + + //! Modifies the edge line type + Standard_EXPORT void SetEdgeLineType (const Aspect_TypeOfLine AType); + + //! Modifies the edge thickness + //! + //! Category: Methods to modify the class definition + //! + //! Warning: Raises AspectFillAreaDefinitionError if the + //! width is a negative value. + Standard_EXPORT void SetEdgeWidth (const Standard_Real AWidth); + + //! Modifies the hatch type used when InteriorStyle + //! is IS_HATCH + Standard_EXPORT void SetHatchStyle (const Aspect_HatchStyle AStyle); + + //! Modifies the colour of the interior of the face + Standard_EXPORT void SetInteriorColor (const Quantity_Color& AColor); + + //! Modifies the colour of the interior of the back face + Standard_EXPORT void SetBackInteriorColor (const Quantity_Color& color); + + //! Modifies the interior type used for rendering + //! + //! InteriorStyle : IS_EMPTY no interior + //! IS_HOLLOW display the boundaries of the surface + //! IS_HATCH display hatching + //! IS_SOLID display interior entirely filled + Standard_EXPORT void SetInteriorStyle (const Aspect_InteriorStyle AStyle); + + //! Returns the hatch type used when InteriorStyle + //! is IS_HATCH + Standard_EXPORT Aspect_HatchStyle HatchStyle() const; + + Standard_EXPORT void Values (Aspect_InteriorStyle& AStyle, Quantity_Color& AIntColor, Quantity_Color& AEdgeColor, Aspect_TypeOfLine& AType, Standard_Real& AWidth) const; + + //! Returns the current values of the group. + Standard_EXPORT void Values (Aspect_InteriorStyle& AStyle, Quantity_Color& AIntColor, Quantity_Color& BackIntColor, Quantity_Color& AEdgeColor, Aspect_TypeOfLine& AType, Standard_Real& AWidth) const; + + + + + DEFINE_STANDARD_RTTI(Aspect_AspectFillArea,MMgt_TShared) + +protected: + + + //! Initialise the constructor + //! of Graphic3d_AspectFillArea3d. + //! + //! default values : + //! + //! InteriorStyle = Aspect_IS_EMPTY; + //! InteriorColor = Quantity_NOC_CYAN1; + //! EdgeColor = Quantity_NOC_WHITE; + //! EdgeType = Aspect_TOL_SOLID; + //! EdgeWidth = 1.0; + //! HatchStyle = Aspect_HS_VERTICAL; + Standard_EXPORT Aspect_AspectFillArea(); + + //! Initialise the values for the constructor of + //! Graphic3d_AspectFillArea3d. + //! + //! InteriorStyle : + //! IS_EMPTY no interior. + //! IS_HOLLOW display the boundaries of the surface. + //! IS_HATCH display hatched with a hatch style. + //! IS_SOLID display the interior entirely filled. + //! + //! EdgeLineType : + //! TOL_SOLID continuous + //! TOL_DASH dashed + //! TOL_DOT dotted + //! TOL_DOTDASH mixed + //! + //! default values : + //! HatchStyle = Aspect_HS_VERTICAL; + //! + //! Warning: Raises AspectFillAreaDefinitionError if the + //! width is a negative value. + Standard_EXPORT Aspect_AspectFillArea(const Aspect_InteriorStyle InteriorStyle, const Quantity_Color& InteriorColor, const Quantity_Color& EdgeColor, const Aspect_TypeOfLine EdgeLineType, const Standard_Real EdgeLineWidth); + + + +private: + + + Aspect_InteriorStyle MyInteriorStyle; + Quantity_Color MyInteriorColor; + Quantity_Color MyBackInteriorColor; + Quantity_Color MyEdgeColor; + Aspect_TypeOfLine MyEdgeType; + Standard_Real MyEdgeWidth; + Aspect_HatchStyle MyHatchStyle; + + +}; + + + + + + + +#endif // _Aspect_AspectFillArea_HeaderFile diff --git a/src/Aspect/Aspect_AspectFillAreaDefinitionError.hxx b/src/Aspect/Aspect_AspectFillAreaDefinitionError.hxx new file mode 100644 index 0000000000..6d7102bda4 --- /dev/null +++ b/src/Aspect/Aspect_AspectFillAreaDefinitionError.hxx @@ -0,0 +1,36 @@ +// 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_AspectFillAreaDefinitionError_HeaderFile +#define _Aspect_AspectFillAreaDefinitionError_HeaderFile + +#include +#include +#include +#include + +class Aspect_AspectFillAreaDefinitionError; +DEFINE_STANDARD_HANDLE(Aspect_AspectFillAreaDefinitionError, Standard_OutOfRange) + +#if !defined No_Exception && !defined No_Aspect_AspectFillAreaDefinitionError + #define Aspect_AspectFillAreaDefinitionError_Raise_if(CONDITION, MESSAGE) \ + if (CONDITION) Aspect_AspectFillAreaDefinitionError::Raise(MESSAGE); +#else + #define Aspect_AspectFillAreaDefinitionError_Raise_if(CONDITION, MESSAGE) +#endif + +DEFINE_STANDARD_EXCEPTION(Aspect_AspectFillAreaDefinitionError, Standard_OutOfRange) + +#endif // _Aspect_AspectFillAreaDefinitionError_HeaderFile diff --git a/src/Aspect/Aspect_AspectLine.cdl b/src/Aspect/Aspect_AspectLine.cdl deleted file mode 100644 index b4cb0882fc..0000000000 --- a/src/Aspect/Aspect_AspectLine.cdl +++ /dev/null @@ -1,125 +0,0 @@ --- 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. - -deferred class AspectLine from Aspect - -inherits - - TShared - - ---Purpose: This class allows the definition of a group - -- of attributes for the LINE primitive - -- The attributes are: - -- * Colour - -- * Type - -- * Thickness - -- When any value of the group is modified - -- all graphic objects using the group are modified. - -uses - - Color from Quantity, - - TypeOfLine from Aspect - -raises - - AspectLineDefinitionError from Aspect - -is - - Initialize; - ---Level: Public - ---Purpose: Initialise the constructor for Graphic3d_AspectLine3d. - -- - -- Default values : - -- Color = Quantity_NOC_YELLOW; - -- Type = Aspect_TOL_SOLID; - -- Width = 1.0; - -- - - Initialize ( AColor : Color from Quantity; - AType : TypeOfLine from Aspect; - AWidth : Real from Standard ) - ---Level: Public - ---Purpose: Initialise the values for the - -- constructor of Graphic3d_AspectLine3d. - -- - raises AspectLineDefinitionError from Aspect; - -- if the width is a negative value. - - --------------------------------------------------- - -- Category: Methods to modify the class definition - --------------------------------------------------- - - SetColor ( me : mutable; - AColor : Color from Quantity ); - ---Level: Public - ---Purpose: Modifies the colour of . - ---Category: Methods to modify the class definition - - SetType ( me : mutable; - AType : TypeOfLine from Aspect ); - ---Level: Public - ---Purpose: Modifies the type of . - ---Category: Methods to modify the class definition - - SetWidth ( me : mutable; - AWidth : Real from Standard ) - ---Level: Public - ---Purpose: Modifies the thickness of . - -- Category: Methods to modify the class definition - -- Warning: Raises AspectLineDefinitionError if the - -- width is a negative value. - raises AspectLineDefinitionError from Aspect; - - ---------------------------- - -- Category: Inquire methods - ---------------------------- - - Values ( me; - AColor : out Color from Quantity; - AType : out TypeOfLine from Aspect; - AWidth : out Real from Standard ); - ---Level: Public - ---Purpose: Returns the current values of the group . - ---Category: Inquire methods - --- - -fields - --- --- Class : Aspect_AspectLine --- --- Purpose : Declaration of variables specific to --- drawing lines --- --- Reminder : A line drawing context is defined by: --- - the colour --- - the type --- - the thickness --- - - -- the colour - MyColor : Color from Quantity; - - -- the type - MyType : TypeOfLine from Aspect; - - -- the thickness - MyWidth : Real from Standard; - -end AspectLine; diff --git a/src/Aspect/Aspect_AspectLine.cxx b/src/Aspect/Aspect_AspectLine.cxx index 354adcb29a..598aeb1682 100644 --- a/src/Aspect/Aspect_AspectLine.cxx +++ b/src/Aspect/Aspect_AspectLine.cxx @@ -14,43 +14,33 @@ // commercial license or contractual agreement. //-Version - //-Design Declaration of variables specific to the context // of line tracing - //-Warning A context of line tracing is defined by : // - the color // - the type of line // - the thickness - //-References - //-Language C++ 2.0 - //-Declarations - // for the class -#include -//-Aliases +#include +#include +#include +#include +//-Aliases //-Global data definitions - // -- color // MyColor : Color; - // -- type of line // MyType : TypeOfLine; - // -- thickness // MyWidth : Standard_Real; - //-Constructors - //-Destructors - //-Methods, in order - Aspect_AspectLine::Aspect_AspectLine () { MyColor = Quantity_NOC_YELLOW; diff --git a/src/Aspect/Aspect_AspectLine.hxx b/src/Aspect/Aspect_AspectLine.hxx new file mode 100644 index 0000000000..3c0fcf196d --- /dev/null +++ b/src/Aspect/Aspect_AspectLine.hxx @@ -0,0 +1,100 @@ +// 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_AspectLine_HeaderFile +#define _Aspect_AspectLine_HeaderFile + +#include +#include + +#include +#include +#include +#include +class Aspect_AspectLineDefinitionError; +class Quantity_Color; + + +class Aspect_AspectLine; +DEFINE_STANDARD_HANDLE(Aspect_AspectLine, MMgt_TShared) + +//! This class allows the definition of a group +//! of attributes for the LINE primitive +//! The attributes are: +//! * Colour +//! * Type +//! * Thickness +//! When any value of the group is modified +//! all graphic objects using the group are modified. +class Aspect_AspectLine : public MMgt_TShared +{ + +public: + + + //! Modifies the colour of . + Standard_EXPORT void SetColor (const Quantity_Color& AColor); + + //! Modifies the type of . + Standard_EXPORT void SetType (const Aspect_TypeOfLine AType); + + //! Modifies the thickness of . + //! Category: Methods to modify the class definition + //! Warning: Raises AspectLineDefinitionError if the + //! width is a negative value. + Standard_EXPORT void SetWidth (const Standard_Real AWidth); + + //! Returns the current values of the group . + Standard_EXPORT void Values (Quantity_Color& AColor, Aspect_TypeOfLine& AType, Standard_Real& AWidth) const; + + + + + DEFINE_STANDARD_RTTI(Aspect_AspectLine,MMgt_TShared) + +protected: + + + //! Initialise the constructor for Graphic3d_AspectLine3d. + //! + //! Default values : + //! Color = Quantity_NOC_YELLOW; + //! Type = Aspect_TOL_SOLID; + //! Width = 1.0; + Standard_EXPORT Aspect_AspectLine(); + + //! Initialise the values for the + //! constructor of Graphic3d_AspectLine3d. + Standard_EXPORT Aspect_AspectLine(const Quantity_Color& AColor, const Aspect_TypeOfLine AType, const Standard_Real AWidth); + + + +private: + + + Quantity_Color MyColor; + Aspect_TypeOfLine MyType; + Standard_Real MyWidth; + + +}; + + + + + + + +#endif // _Aspect_AspectLine_HeaderFile diff --git a/src/Aspect/Aspect_AspectLineDefinitionError.hxx b/src/Aspect/Aspect_AspectLineDefinitionError.hxx new file mode 100644 index 0000000000..38eae75b83 --- /dev/null +++ b/src/Aspect/Aspect_AspectLineDefinitionError.hxx @@ -0,0 +1,36 @@ +// 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_AspectLineDefinitionError_HeaderFile +#define _Aspect_AspectLineDefinitionError_HeaderFile + +#include +#include +#include +#include + +class Aspect_AspectLineDefinitionError; +DEFINE_STANDARD_HANDLE(Aspect_AspectLineDefinitionError, Standard_OutOfRange) + +#if !defined No_Exception && !defined No_Aspect_AspectLineDefinitionError + #define Aspect_AspectLineDefinitionError_Raise_if(CONDITION, MESSAGE) \ + if (CONDITION) Aspect_AspectLineDefinitionError::Raise(MESSAGE); +#else + #define Aspect_AspectLineDefinitionError_Raise_if(CONDITION, MESSAGE) +#endif + +DEFINE_STANDARD_EXCEPTION(Aspect_AspectLineDefinitionError, Standard_OutOfRange) + +#endif // _Aspect_AspectLineDefinitionError_HeaderFile diff --git a/src/Aspect/Aspect_AspectMarker.cdl b/src/Aspect/Aspect_AspectMarker.cdl deleted file mode 100644 index 768eb0167d..0000000000 --- a/src/Aspect/Aspect_AspectMarker.cdl +++ /dev/null @@ -1,128 +0,0 @@ --- Created on: 1991-09-02 --- 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. - -deferred class AspectMarker from Aspect - -inherits - - TShared - - ---Purpose: This class allows the definition of a group - -- of attributes for the primitive MARKER. - -- the attributes are: - -- * Colour - -- * Type - -- * Scale factor - -- When any value of the group is modified - -- all graphic objects using the group are modified - -uses - - Color from Quantity, - - TypeOfMarker from Aspect - -raises - - AspectMarkerDefinitionError from Aspect - -is - - Initialize; - ---Level: Public - ---Purpose: Initialise the constructor for Graphic3d_AspectMarker3d. - -- - -- defaults values : - -- - -- Color = Quantity_NOC_YELLOW; - -- Type = Aspect_TOM_X; - -- Scale = 1.0; - - Initialize ( AColor : Color from Quantity; - AType : TypeOfMarker from Aspect; - AScale : Real from Standard ) - ---Level: Public - ---Purpose: Initialise the values for the - -- constructor of Graphic3d_AspectMarker3d. - -- Warning: Raises AspectMarkerDefinitionError if the - -- scale is a negative value. - raises AspectMarkerDefinitionError from Aspect; - - --------------------------------------------------- - -- Category: Methods to modify the class definition - --------------------------------------------------- - - SetColor ( me : mutable; - AColor : Color from Quantity ); - ---Level: Public - ---Purpose: Modifies the colour of . - ---Category: Methods to modify the class definition - - SetScale ( me : mutable; - AScale : Real from Standard ) - ---Level: Public - ---Purpose: Modifies the scale factor of . - -- Marker type Aspect_TOM_POINT is not affected - -- by the marker size scale factor. It is always - -- the smallest displayable dot. - -- Warning: Raises AspectMarkerDefinitionError if the - -- scale is a negative value. - raises AspectMarkerDefinitionError from Aspect; - - SetType ( me : mutable; - AType : TypeOfMarker from Aspect ); - ---Level: Public - ---Purpose: Modifies the type of marker . - ---Category: Methods to modify the class definition - - ---------------------------- - -- Category: Inquire methods - ---------------------------- - - Values ( me; - AColor : out Color from Quantity; - AType : out TypeOfMarker from Aspect; - AScale : out Real from Standard ); - ---Level: Public - ---Purpose: Returns the current values of the group . - ---Category: Inquire methods - --- - -fields - --- --- Class : Aspect_AspectMarker --- --- Purpose : Declaration of variables specific to the context of --- drawing markers --- --- Reminder : A drawing context for markers is defined by : --- - the colour --- - the type --- - the scale --- - - -- the colour - MyColor : Color from Quantity; - - -- the type - MyType : TypeOfMarker from Aspect; - - -- the scale - MyScale : Real from Standard; - -end AspectMarker; diff --git a/src/Aspect/Aspect_AspectMarker.cxx b/src/Aspect/Aspect_AspectMarker.cxx index 359218d267..8e6e52efcf 100644 --- a/src/Aspect/Aspect_AspectMarker.cxx +++ b/src/Aspect/Aspect_AspectMarker.cxx @@ -14,43 +14,33 @@ // commercial license or contractual agreement. //-Version - //-Design Declaration of variables specific to the context // of tracing of markers - //-Warning Context of tracing of markers is defined by : // - the color // - the type // - the scale - //-References - //-Language C++ 2.0 - //-Declarations - // for the class -#include -//-Aliases +#include +#include +#include +#include +//-Aliases //-Global data definitions - // -- color // MyColor : Color; - // -- type // MyType : TypeOfMarker; - // -- scale // MyScale : Standard_Real; - //-Constructors - //-Destructors - //-Methods, in order - Aspect_AspectMarker::Aspect_AspectMarker () { MyColor = Quantity_NOC_YELLOW; diff --git a/src/Aspect/Aspect_AspectMarker.hxx b/src/Aspect/Aspect_AspectMarker.hxx new file mode 100644 index 0000000000..f44ac071e5 --- /dev/null +++ b/src/Aspect/Aspect_AspectMarker.hxx @@ -0,0 +1,106 @@ +// Created on: 1991-09-02 +// 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_AspectMarker_HeaderFile +#define _Aspect_AspectMarker_HeaderFile + +#include +#include + +#include +#include +#include +#include +class Aspect_AspectMarkerDefinitionError; +class Quantity_Color; + + +class Aspect_AspectMarker; +DEFINE_STANDARD_HANDLE(Aspect_AspectMarker, MMgt_TShared) + +//! This class allows the definition of a group +//! of attributes for the primitive MARKER. +//! the attributes are: +//! * Colour +//! * Type +//! * Scale factor +//! When any value of the group is modified +//! all graphic objects using the group are modified +class Aspect_AspectMarker : public MMgt_TShared +{ + +public: + + + //! Modifies the colour of . + Standard_EXPORT void SetColor (const Quantity_Color& AColor); + + //! Modifies the scale factor of . + //! Marker type Aspect_TOM_POINT is not affected + //! by the marker size scale factor. It is always + //! the smallest displayable dot. + //! Warning: Raises AspectMarkerDefinitionError if the + //! scale is a negative value. + Standard_EXPORT void SetScale (const Standard_Real AScale); + + //! Modifies the type of marker . + Standard_EXPORT void SetType (const Aspect_TypeOfMarker AType); + + //! Returns the current values of the group . + Standard_EXPORT void Values (Quantity_Color& AColor, Aspect_TypeOfMarker& AType, Standard_Real& AScale) const; + + + + + DEFINE_STANDARD_RTTI(Aspect_AspectMarker,MMgt_TShared) + +protected: + + + //! Initialise the constructor for Graphic3d_AspectMarker3d. + //! + //! defaults values : + //! + //! Color = Quantity_NOC_YELLOW; + //! Type = Aspect_TOM_X; + //! Scale = 1.0; + Standard_EXPORT Aspect_AspectMarker(); + + //! Initialise the values for the + //! constructor of Graphic3d_AspectMarker3d. + //! Warning: Raises AspectMarkerDefinitionError if the + //! scale is a negative value. + Standard_EXPORT Aspect_AspectMarker(const Quantity_Color& AColor, const Aspect_TypeOfMarker AType, const Standard_Real AScale); + + + +private: + + + Quantity_Color MyColor; + Aspect_TypeOfMarker MyType; + Standard_Real MyScale; + + +}; + + + + + + + +#endif // _Aspect_AspectMarker_HeaderFile diff --git a/src/Aspect/Aspect_AspectMarkerDefinitionError.hxx b/src/Aspect/Aspect_AspectMarkerDefinitionError.hxx new file mode 100644 index 0000000000..825a74239f --- /dev/null +++ b/src/Aspect/Aspect_AspectMarkerDefinitionError.hxx @@ -0,0 +1,36 @@ +// 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_AspectMarkerDefinitionError_HeaderFile +#define _Aspect_AspectMarkerDefinitionError_HeaderFile + +#include +#include +#include +#include + +class Aspect_AspectMarkerDefinitionError; +DEFINE_STANDARD_HANDLE(Aspect_AspectMarkerDefinitionError, Standard_OutOfRange) + +#if !defined No_Exception && !defined No_Aspect_AspectMarkerDefinitionError + #define Aspect_AspectMarkerDefinitionError_Raise_if(CONDITION, MESSAGE) \ + if (CONDITION) Aspect_AspectMarkerDefinitionError::Raise(MESSAGE); +#else + #define Aspect_AspectMarkerDefinitionError_Raise_if(CONDITION, MESSAGE) +#endif + +DEFINE_STANDARD_EXCEPTION(Aspect_AspectMarkerDefinitionError, Standard_OutOfRange) + +#endif // _Aspect_AspectMarkerDefinitionError_HeaderFile diff --git a/src/Aspect/Aspect_Background.cdl b/src/Aspect/Aspect_Background.cdl deleted file mode 100644 index a92f2247df..0000000000 --- a/src/Aspect/Aspect_Background.cdl +++ /dev/null @@ -1,76 +0,0 @@ --- Created on: 1991-10-02 --- 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. - -class Background from Aspect - - - ---Purpose: This class allows the definition of - -- a window background. - -uses - - Color from Quantity - -is - - Create - returns Background from Aspect; - ---Level: Public - ---Purpose: Creates a window background. - -- Default color : NOC_MATRAGRAY. - - Create ( AColor : Color from Quantity ) - returns Background from Aspect; - ---Level: Public - ---Purpose: Creates a window background with the colour . - - --------------------------------------------------- - -- Category: Methods to modify the class definition - --------------------------------------------------- - - SetColor ( me : in out; - AColor : Color from Quantity ); - ---Level: Public - ---Purpose: Modifies the colour of the window background . - ---Category: Methods to modify the class definition - - ---------------------------- - -- Category: Inquire methods - ---------------------------- - - Color ( me ) - returns Color from Quantity; - ---Level: Public - ---Purpose: Returns the colour of the window background . - ---Category: Inquire methods - --- - -fields - --- --- Class : Aspect_Background --- --- Purpose : Declaration of variables specific to the window --- background. --- --- Reminder : A background is defined by one colour --- - - -- the colour associated with the window background - MyColor : Color from Quantity; - -end Background; diff --git a/src/Aspect/Aspect_Background.cxx b/src/Aspect/Aspect_Background.cxx index 24e3ac08e5..220c9332ae 100644 --- a/src/Aspect/Aspect_Background.cxx +++ b/src/Aspect/Aspect_Background.cxx @@ -14,33 +14,23 @@ // commercial license or contractual agreement. //-Version - //-Design Declaration des variables specifiques aux fonds d'ecran. - //-Warning Un fond d'ecran est defini par une couleur. - //-References - //-Language C++ 2.0 - //-Declarations - // for the class -#include -//-Aliases +#include +#include +//-Aliases //-Global data definitions - // -- la couleur associee au fond d'ecran // MyColor : Color; - //-Constructors - //-Destructors - //-Methods, in order - Aspect_Background::Aspect_Background () { Quantity_Color MatraGray (Quantity_NOC_MATRAGRAY); diff --git a/src/Aspect/Aspect_Background.hxx b/src/Aspect/Aspect_Background.hxx new file mode 100644 index 0000000000..f37eec2613 --- /dev/null +++ b/src/Aspect/Aspect_Background.hxx @@ -0,0 +1,74 @@ +// Created on: 1991-10-02 +// 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_Background_HeaderFile +#define _Aspect_Background_HeaderFile + +#include +#include +#include + +#include +class Quantity_Color; + + +//! This class allows the definition of +//! a window background. +class Aspect_Background +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Creates a window background. + //! Default color : NOC_MATRAGRAY. + Standard_EXPORT Aspect_Background(); + + //! Creates a window background with the colour . + Standard_EXPORT Aspect_Background(const Quantity_Color& AColor); + + //! Modifies the colour of the window background . + Standard_EXPORT void SetColor (const Quantity_Color& AColor); + + //! Returns the colour of the window background . + Standard_EXPORT Quantity_Color Color() const; + + + + +protected: + + + + + +private: + + + + Quantity_Color MyColor; + + +}; + + + + + + + +#endif // _Aspect_Background_HeaderFile diff --git a/src/Aspect/Aspect_BadAccess.hxx b/src/Aspect/Aspect_BadAccess.hxx new file mode 100644 index 0000000000..8a071fbb2b --- /dev/null +++ b/src/Aspect/Aspect_BadAccess.hxx @@ -0,0 +1,36 @@ +// 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_BadAccess_HeaderFile +#define _Aspect_BadAccess_HeaderFile + +#include +#include +#include +#include + +class Aspect_BadAccess; +DEFINE_STANDARD_HANDLE(Aspect_BadAccess, Standard_DomainError) + +#if !defined No_Exception && !defined No_Aspect_BadAccess + #define Aspect_BadAccess_Raise_if(CONDITION, MESSAGE) \ + if (CONDITION) Aspect_BadAccess::Raise(MESSAGE); +#else + #define Aspect_BadAccess_Raise_if(CONDITION, MESSAGE) +#endif + +DEFINE_STANDARD_EXCEPTION(Aspect_BadAccess, Standard_DomainError) + +#endif // _Aspect_BadAccess_HeaderFile diff --git a/src/Aspect/Aspect_CMPLRS.edl b/src/Aspect/Aspect_CMPLRS.edl deleted file mode 100644 index b177102345..0000000000 --- a/src/Aspect/Aspect_CMPLRS.edl +++ /dev/null @@ -1,27 +0,0 @@ --- Created on: 1997-04-17 --- Created by: Stephane Callegari --- 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. - --- 03-06-98 BGN: (S3553) portage MFT sur NT. -@ifnotdefined ( %Aspect_CMPLRS_EDL) then - @set %Aspect_CMPLRS_EDL = ""; - - @if ( %Station == "wnt" ) then - --- @set %CModeOpt = "-Zi -O2 -DNDEBUG -G5 -Oi"; - @string %CMPLRS_CXX_Options = %CMPLRS_CXX_Options " -D_AFXDLL "; - @endif; - -@endif; - diff --git a/src/Aspect/Aspect_CircularGrid.cdl b/src/Aspect/Aspect_CircularGrid.cdl deleted file mode 100644 index fd27cf405c..0000000000 --- a/src/Aspect/Aspect_CircularGrid.cdl +++ /dev/null @@ -1,95 +0,0 @@ --- Created on: 1995-03-17 --- Created by: Mister rmi --- 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. - -class CircularGrid from Aspect - -inherits Grid from Aspect - - -uses - PlaneAngle, Length from Quantity - -raises - NegativeValue,NullValue,NumericError from Standard - -is - - Create(aRadiusStep: Length from Quantity; - aDivisionNumber: Integer from Standard; - XOrigin: Length from Quantity = 0; - anYOrigin: Length from Quantity = 0; - aRotationAngle: PlaneAngle from Quantity = 0) - returns CircularGrid from Aspect; - ---Purpose: creates a new grid. By default this grid is not - -- active. - ----Category: grid definition methods - - - SetRadiusStep(me: mutable; aStep: Length from Quantity) - ---Purpose: defines the x step of the grid. - raises NegativeValue,NullValue from Standard - ---Warning: raises an exception if is not strictly positive. - is static; - - SetDivisionNumber(me: mutable; aNumber: Integer from Standard) - ---Purpose: defines the step of the grid. - raises NegativeValue,NullValue from Standard - ---Warning: raises an exception if is not strictly positive. - is static; - - SetGridValues(me: mutable; XOrigin, YOrigin: Length from Quantity; - RadiusStep: Length from Quantity; - DivisionNumber: Integer from Standard; - RotationAngle: PlaneAngle from Quantity) - raises NegativeValue,NullValue from Standard - ---Warning: raises an exception if is not strictly positive. - ---Warning: raises an exception if is not strictly positive. - is static; - - ----Category: Pick methods --- - Compute(me; X,Y: Length from Quantity; gridX, gridY : out Length from Quantity) - ---Purpose: returns the point of the grid the closest to the point X,Y - is static; - - - ----Category: inquire methods - - RadiusStep(me) returns Length from Quantity - ---Purpose: returns the x step of the grid. - is static; - - DivisionNumber(me) returns Integer from Standard - ---Purpose: returns the x step of the grid. - is static; - ----Category: private methods. - - - Init(me: mutable) - is redefined static; - -fields - - myRadiusStep: Length from Quantity; - myDivisionNumber: Integer from Standard; - myAlpha: Real from Standard; - myA1,myB1: Real from Standard; - -end CircularGrid from Aspect; diff --git a/src/Aspect/Aspect_CircularGrid.cxx b/src/Aspect/Aspect_CircularGrid.cxx index 13ba72e32f..6834f5eede 100644 --- a/src/Aspect/Aspect_CircularGrid.cxx +++ b/src/Aspect/Aspect_CircularGrid.cxx @@ -13,9 +13,13 @@ // Modified 23/02/98 : FMN ; Remplacement PI par Standard_PI -#include +#include #include +#include +#include #include +#include + Aspect_CircularGrid::Aspect_CircularGrid (const Quantity_Length aRadiusStep, const Standard_Integer aDivisionNumber, diff --git a/src/Aspect/Aspect_CircularGrid.hxx b/src/Aspect/Aspect_CircularGrid.hxx new file mode 100644 index 0000000000..ea8989716c --- /dev/null +++ b/src/Aspect/Aspect_CircularGrid.hxx @@ -0,0 +1,94 @@ +// Created on: 1995-03-17 +// Created by: Mister rmi +// 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_CircularGrid_HeaderFile +#define _Aspect_CircularGrid_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +class Standard_NegativeValue; +class Standard_NullValue; +class Standard_NumericError; + + +class Aspect_CircularGrid; +DEFINE_STANDARD_HANDLE(Aspect_CircularGrid, Aspect_Grid) + + +class Aspect_CircularGrid : public Aspect_Grid +{ + +public: + + + //! creates a new grid. By default this grid is not + //! active. + Standard_EXPORT Aspect_CircularGrid(const Quantity_Length aRadiusStep, const Standard_Integer aDivisionNumber, const Quantity_Length XOrigin = 0, const Quantity_Length anYOrigin = 0, const Quantity_PlaneAngle aRotationAngle = 0); + + //! defines the x step of the grid. + Standard_EXPORT void SetRadiusStep (const Quantity_Length aStep); + + //! defines the step of the grid. + Standard_EXPORT void SetDivisionNumber (const Standard_Integer aNumber); + + Standard_EXPORT void SetGridValues (const Quantity_Length XOrigin, const Quantity_Length YOrigin, const Quantity_Length RadiusStep, const Standard_Integer DivisionNumber, const Quantity_PlaneAngle RotationAngle); + + //! returns the point of the grid the closest to the point X,Y + Standard_EXPORT void Compute (const Quantity_Length X, const Quantity_Length Y, Quantity_Length& gridX, Quantity_Length& gridY) const; + + //! returns the x step of the grid. + Standard_EXPORT Quantity_Length RadiusStep() const; + + //! returns the x step of the grid. + Standard_EXPORT Standard_Integer DivisionNumber() const; + + Standard_EXPORT void Init() Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(Aspect_CircularGrid,Aspect_Grid) + +protected: + + + + +private: + + + Quantity_Length myRadiusStep; + Standard_Integer myDivisionNumber; + Standard_Real myAlpha; + Standard_Real myA1; + Standard_Real myB1; + + +}; + + + + + + + +#endif // _Aspect_CircularGrid_HeaderFile diff --git a/src/Aspect/Aspect_ColorScale.cdl b/src/Aspect/Aspect_ColorScale.cdl deleted file mode 100644 index 7f315f4922..0000000000 --- a/src/Aspect/Aspect_ColorScale.cdl +++ /dev/null @@ -1,338 +0,0 @@ --- Created on: 2004-06-22 --- Created by: STV --- 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. - -deferred class ColorScale from Aspect inherits TShared from MMgt - ---Purpose: Defines a color scale for viewer. -uses - - TypeOfColorScaleData from Aspect, - TypeOfColorScalePosition from Aspect, - SequenceOfColor from Aspect, - Color from Quantity, - AsciiString from TCollection, - ExtendedString from TCollection, - SequenceOfExtendedString from TColStd - -is - - ---Category: Public - - FindColor( me; theValue : Real from Standard; - theColor : in out Color from Quantity ) returns Boolean from Standard; - ---Purpose: Calculate color according passed value; returns true if value is in range or false, if isn't - - - FindColor( myclass; theValue : Real from Standard; - theMin, theMax : Real from Standard; - theColorsCount : Integer from Standard; - theColor : in out Color from Quantity ) returns Boolean from Standard; - - GetMin(me) - returns Real from Standard; - ---Purpose: Returns minimal value of color scale; - - GetMax(me) - returns Real from Standard; - ---Purpose: Returns maximal value of color scale; - - GetRange(me; theMin : in out Real from Standard; - theMax : in out Real from Standard); - ---Purpose: Returns minimal and maximal values of color scale; - - GetLabelType(me) - returns TypeOfColorScaleData from Aspect; - ---Purpose: Returns the type of labels; - --- Aspect_TOCSD_AUTO - labels as boundary values for intervals - --- Aspect_TOCSD_USER - user specified label is used - - GetColorType(me) - returns TypeOfColorScaleData from Aspect; - ---Purpose: Returns the type of colors; - --- Aspect_TOCSD_AUTO - value between Red and Blue - --- Aspect_TOCSD_USER - user specified color from color map - - GetNumberOfIntervals(me) - returns Integer from Standard; - ---Purpose: Returns the number of color scale intervals; - - GetTitle(me) - returns ExtendedString from TCollection; - ---Purpose: Returns the color scale title string; - - GetFormat(me) - returns AsciiString from TCollection; - ---Purpose: Returns the format for numbers. - -- The same like format for function printf(). - -- Used if GetLabelType() is TOCSD_AUTO; - - GetLabel(me; theIndex : Integer from Standard) - returns ExtendedString from TCollection; - ---Purpose: Returns the user specified label with index . - -- Returns empty string if label not defined. - - GetColor(me; theIndex : Integer from Standard) - returns Color from Quantity; - ---Purpose: Returns the user specified color from color map with index . - -- Returns default color if index out of range in color map. - - GetLabels(me; theLabels : in out SequenceOfExtendedString from TColStd); - ---Purpose: Returns the user specified labels. - - GetColors(me; theColors : in out SequenceOfColor from Aspect); - ---Purpose: Returns the user specified colors. - - GetLabelPosition(me) - returns TypeOfColorScalePosition from Aspect; - ---Purpose: Returns the position of labels concerning color filled rectangles. - - GetTitlePosition(me) - returns TypeOfColorScalePosition from Aspect; - ---Purpose: Returns the position of color scale title. - - IsReversed(me) - returns Boolean from Standard; - ---Purpose: Returns true if the labels and colors used in reversed order. - - IsLabelAtBorder(me) - returns Boolean from Standard; - ---Purpose: Returns true if the labels placed at border of color filled rectangles. - - SetMin(me : mutable; theMin : Real from Standard); - ---Purpose: Sets the minimal value of color scale. - - SetMax(me : mutable; theMax : Real from Standard); - ---Purpose: Sets the maximal value of color scale. - - SetRange(me : mutable; theMin : Real from Standard; - theMax : Real from Standard); - ---Purpose: Sets the minimal and maximal value of color scale. - - SetLabelType(me : mutable; theType : TypeOfColorScaleData from Aspect); - ---Purpose: Sets the type of labels. - -- Aspect_TOCSD_AUTO - labels as boundary values for intervals - -- Aspect_TOCSD_USER - user specified label is used - - SetColorType(me : mutable; theType : TypeOfColorScaleData from Aspect); - ---Purpose: Sets the type of colors. - -- Aspect_TOCSD_AUTO - value between Red and Blue - -- Aspect_TOCSD_USER - user specified color from color map - - SetNumberOfIntervals(me : mutable; theNum : Integer from Standard); - ---Purpose: Sets the number of color scale intervals. - - SetTitle(me : mutable; theTitle : ExtendedString from TCollection); - ---Purpose: Sets the color scale title string. - - SetFormat(me : mutable; theFormat : AsciiString from TCollection); - ---Purpose: Sets the color scale auto label format specification. - - SetLabel(me : mutable; theLabel : ExtendedString from TCollection; - anIndex : Integer from Standard = -1); - ---Purpose: Sets the color scale label at index. Index started from 1. - - SetColor(me : mutable; theColor : Color from Quantity; - theIndex : Integer from Standard = -1); - ---Purpose: Sets the color scale color at index. Index started from 1. - - SetLabels(me : mutable; theSeq : SequenceOfExtendedString from TColStd); - ---Purpose: Sets the color scale labels. - - SetColors(me : mutable; theSeq : SequenceOfColor from Aspect); - ---Purpose: Sets the color scale colors. - - SetLabelPosition(me : mutable; thePos : TypeOfColorScalePosition from Aspect); - ---Purpose: Sets the color scale labels position concerning color filled rectangles. - - SetTitlePosition(me : mutable; thePos : TypeOfColorScalePosition from Aspect); - ---Purpose: Sets the color scale title position. - - SetReversed(me : mutable; theReverse : Boolean from Standard); - ---Purpose: Sets true if the labels and colors used in reversed order. - - SetLabelAtBorder(me : mutable; theOn : Boolean from Standard); - ---Purpose: Sets true if the labels placed at border of color filled rectangles. - - --- Size and position management - --- Size and position are values relative to view size (between 0 and 1) - - GetSize(me; theWidth : in out Real from Standard; - theHeight : in out Real from Standard); - ---Purpose: Returns the size of color scale. - - GetWidth(me) - returns Real from Standard; - ---Purpose: Returns the width of color scale. - - GetHeight(me) - returns Real from Standard; - ---Purpose: Returns the height of color scale. - - SetSize(me : mutable; theWidth : Real from Standard; - theHeight : Real from Standard); - ---Purpose: Sets the size of color scale. - - SetWidth(me : mutable; theWidth : Real from Standard); - ---Purpose: Sets the width of color scale. - - SetHeight(me : mutable; theHeight : Real from Standard); - ---Purpose: Sets the height of color scale. - - GetPosition(me; theX : in out Real from Standard; - theY : in out Real from Standard); - ---Purpose: Returns the position of color scale. - - GetXPosition(me) - returns Real from Standard; - ---Purpose: Returns the X position of color scale. - - GetYPosition(me) - returns Real from Standard; - ---Purpose: Returns the height of color scale. - - SetPosition(me : mutable; theX : Real from Standard; - theY : Real from Standard); - ---Purpose: Sets the position of color scale. - - SetXPosition(me : mutable; theX : Real from Standard); - ---Purpose: Sets the X position of color scale. - - SetYPosition(me : mutable; theY : Real from Standard); - ---Purpose: Sets the Y position of color scale. - - GetTextHeight(me) - returns Integer from Standard; - ---Purpose: Returns the height of text of color scale. - - SetTextHeight(me: mutable; theHeight : Integer from Standard); - ---Purpose: Sets the height of text of color scale. - - ---Category: Protected - - - Initialize - returns ColorScale from Aspect - is protected; - ---Purpose: Default constructor. - - SizeHint(me; theWidth : in out Integer from Standard; - theHeight : in out Integer from Standard) - is protected; - ---Purpose: Returns the size of color scale. - -- @param theWidth [out] the width of color scale. - -- @param theHeight [out] the height of color scale. - - - UpdateColorScale(me : mutable) - is virtual protected; - ---Purpose: updates color scale parameters. - - DrawScale(me : mutable; theBgColor : Color from Quantity; - theX, theY, theWidth, theHeight : Integer from Standard) - is protected; - ---Purpose: Draws color scale. - -- @param theBgColor [in] background color - -- @param theX [in] the X coordinate of color scale position. - -- @param theY [in] the Y coordinate of color scale position. - -- @param theWidth [in] the width of color scale. - -- @param theHeight [in] the height of color scale. - - BeginPaint(me : mutable) - returns Boolean from Standard - is virtual protected; - - EndPaint(me : mutable) - returns Boolean from Standard - is virtual protected; - - PaintRect(me : mutable; theX, theY, theWidth, theHeight : Integer from Standard; - theColor : Color from Quantity; - theFilled : Boolean from Standard = Standard_False) - is deferred; - ---Purpose: Draws a rectangle. - -- @param theX [in] the X coordinate of rectangle position. - -- @param theY [in] the Y coordinate of rectangle position. - -- @param theWidth [in] the width of rectangle. - -- @param theHeight [in] the height of rectangle. - -- @param theColor [in] the color of rectangle. - -- @param theFilled [in] defines if rectangle must be filled. - - PaintText(me : mutable; theText : ExtendedString from TCollection; - theX, theY : Integer from Standard; - theColor : Color from Quantity) - is deferred; - ---Purpose: Draws a text. - -- @param theText [in] the text to draw. - -- @param theX [in] the X coordinate of text position. - -- @param theY [in] the Y coordinate of text position. - -- @param theColor [in] the color of text. - - TextWidth(me; theText : ExtendedString from TCollection) - returns Integer from Standard - is deferred; - ---Purpose: Returns the width of text. - -- @param theText [in] the text of which to calculate width. - - TextHeight(me; theText : ExtendedString from TCollection) - returns Integer from Standard - is deferred; - ---Purpose: Returns the height of text. - -- @param theText [in] the text of which to calculate height. - - ---Category: Private - - Format(me) - returns AsciiString from TCollection - is private; - ---Purpose: Returns the format of text. - - GetNumber(me; theIndex : Integer from Standard) - returns Real from Standard - is private; - ---Purpose: Returns the value of given interval. - - HueFromValue(myclass; theValue : Integer from Standard; - theMin : Integer from Standard; - theMax : Integer from Standard) - returns Integer from Standard - is private; - ---Purpose: Returns the color's hue for the given value in the given interval. - -- @param theValue [in] the current value of interval. - -- @param theMin [in] the min value of interval. - -- @param theMax [in] the max value of interval. - -fields - - myMin, myMax : Real from Standard; - myTitle : ExtendedString from TCollection; - myFormat : AsciiString from TCollection; - myInterval : Integer from Standard; - myColorType : TypeOfColorScaleData from Aspect; - myLabelType : TypeOfColorScaleData from Aspect; - - myAtBorder : Boolean from Standard; - myReversed : Boolean from Standard; - - myColors : SequenceOfColor from Aspect; - myLabels : SequenceOfExtendedString from TColStd; - - myLabelPos : TypeOfColorScalePosition from Aspect; - myTitlePos : TypeOfColorScalePosition from Aspect; - - myXPos, myYPos : Real from Standard; - myWidth, myHeight : Real from Standard; - - myTextHeight : Integer from Standard; - -end ColorScale; diff --git a/src/Aspect/Aspect_ColorScale.cxx b/src/Aspect/Aspect_ColorScale.cxx index 146f78aea9..c564f98d86 100644 --- a/src/Aspect/Aspect_ColorScale.cxx +++ b/src/Aspect/Aspect_ColorScale.cxx @@ -13,20 +13,19 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include #include #include #include - +#include +#include +#include #include #include #include -#include - #include - Aspect_ColorScale::Aspect_ColorScale() : MMgt_TShared(), myMin( 0.0 ), diff --git a/src/Aspect/Aspect_ColorScale.hxx b/src/Aspect/Aspect_ColorScale.hxx new file mode 100644 index 0000000000..c1823e98a6 --- /dev/null +++ b/src/Aspect/Aspect_ColorScale.hxx @@ -0,0 +1,302 @@ +// Created on: 2004-06-22 +// Created by: STV +// 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 _Aspect_ColorScale_HeaderFile +#define _Aspect_ColorScale_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Quantity_Color; +class TCollection_ExtendedString; +class TCollection_AsciiString; + + +class Aspect_ColorScale; +DEFINE_STANDARD_HANDLE(Aspect_ColorScale, MMgt_TShared) + +//! Defines a color scale for viewer. +class Aspect_ColorScale : public MMgt_TShared +{ + +public: + + + //! Calculate color according passed value; returns true if value is in range or false, if isn't + Standard_EXPORT Standard_Boolean FindColor (const Standard_Real theValue, Quantity_Color& theColor) const; + + Standard_EXPORT static Standard_Boolean FindColor (const Standard_Real theValue, const Standard_Real theMin, const Standard_Real theMax, const Standard_Integer theColorsCount, Quantity_Color& theColor); + + //! Returns minimal value of color scale; + Standard_EXPORT Standard_Real GetMin() const; + + //! Returns maximal value of color scale; + Standard_EXPORT Standard_Real GetMax() const; + + //! Returns minimal and maximal values of color scale; + Standard_EXPORT void GetRange (Standard_Real& theMin, Standard_Real& theMax) const; + + //! Returns the type of labels; + //! Aspect_TOCSD_AUTO - labels as boundary values for intervals + //! Aspect_TOCSD_USER - user specified label is used + Standard_EXPORT Aspect_TypeOfColorScaleData GetLabelType() const; + + //! Returns the type of colors; + //! Aspect_TOCSD_AUTO - value between Red and Blue + //! Aspect_TOCSD_USER - user specified color from color map + Standard_EXPORT Aspect_TypeOfColorScaleData GetColorType() const; + + //! Returns the number of color scale intervals; + Standard_EXPORT Standard_Integer GetNumberOfIntervals() const; + + //! Returns the color scale title string; + Standard_EXPORT TCollection_ExtendedString GetTitle() const; + + //! Returns the format for numbers. + //! The same like format for function printf(). + //! Used if GetLabelType() is TOCSD_AUTO; + Standard_EXPORT TCollection_AsciiString GetFormat() const; + + //! Returns the user specified label with index . + //! Returns empty string if label not defined. + Standard_EXPORT TCollection_ExtendedString GetLabel (const Standard_Integer theIndex) const; + + //! Returns the user specified color from color map with index . + //! Returns default color if index out of range in color map. + Standard_EXPORT Quantity_Color GetColor (const Standard_Integer theIndex) const; + + //! Returns the user specified labels. + Standard_EXPORT void GetLabels (TColStd_SequenceOfExtendedString& theLabels) const; + + //! Returns the user specified colors. + Standard_EXPORT void GetColors (Aspect_SequenceOfColor& theColors) const; + + //! Returns the position of labels concerning color filled rectangles. + Standard_EXPORT Aspect_TypeOfColorScalePosition GetLabelPosition() const; + + //! Returns the position of color scale title. + Standard_EXPORT Aspect_TypeOfColorScalePosition GetTitlePosition() const; + + //! Returns true if the labels and colors used in reversed order. + Standard_EXPORT Standard_Boolean IsReversed() const; + + //! Returns true if the labels placed at border of color filled rectangles. + Standard_EXPORT Standard_Boolean IsLabelAtBorder() const; + + //! Sets the minimal value of color scale. + Standard_EXPORT void SetMin (const Standard_Real theMin); + + //! Sets the maximal value of color scale. + Standard_EXPORT void SetMax (const Standard_Real theMax); + + //! Sets the minimal and maximal value of color scale. + Standard_EXPORT void SetRange (const Standard_Real theMin, const Standard_Real theMax); + + //! Sets the type of labels. + //! Aspect_TOCSD_AUTO - labels as boundary values for intervals + //! Aspect_TOCSD_USER - user specified label is used + Standard_EXPORT void SetLabelType (const Aspect_TypeOfColorScaleData theType); + + //! Sets the type of colors. + //! Aspect_TOCSD_AUTO - value between Red and Blue + //! Aspect_TOCSD_USER - user specified color from color map + Standard_EXPORT void SetColorType (const Aspect_TypeOfColorScaleData theType); + + //! Sets the number of color scale intervals. + Standard_EXPORT void SetNumberOfIntervals (const Standard_Integer theNum); + + //! Sets the color scale title string. + Standard_EXPORT void SetTitle (const TCollection_ExtendedString& theTitle); + + //! Sets the color scale auto label format specification. + Standard_EXPORT void SetFormat (const TCollection_AsciiString& theFormat); + + //! Sets the color scale label at index. Index started from 1. + Standard_EXPORT void SetLabel (const TCollection_ExtendedString& theLabel, const Standard_Integer anIndex = -1); + + //! Sets the color scale color at index. Index started from 1. + Standard_EXPORT void SetColor (const Quantity_Color& theColor, const Standard_Integer theIndex = -1); + + //! Sets the color scale labels. + Standard_EXPORT void SetLabels (const TColStd_SequenceOfExtendedString& theSeq); + + //! Sets the color scale colors. + Standard_EXPORT void SetColors (const Aspect_SequenceOfColor& theSeq); + + //! Sets the color scale labels position concerning color filled rectangles. + Standard_EXPORT void SetLabelPosition (const Aspect_TypeOfColorScalePosition thePos); + + //! Sets the color scale title position. + Standard_EXPORT void SetTitlePosition (const Aspect_TypeOfColorScalePosition thePos); + + //! Sets true if the labels and colors used in reversed order. + Standard_EXPORT void SetReversed (const Standard_Boolean theReverse); + + //! Sets true if the labels placed at border of color filled rectangles. + Standard_EXPORT void SetLabelAtBorder (const Standard_Boolean theOn); + + //! Returns the size of color scale. + Standard_EXPORT void GetSize (Standard_Real& theWidth, Standard_Real& theHeight) const; + + //! Returns the width of color scale. + Standard_EXPORT Standard_Real GetWidth() const; + + //! Returns the height of color scale. + Standard_EXPORT Standard_Real GetHeight() const; + + //! Sets the size of color scale. + Standard_EXPORT void SetSize (const Standard_Real theWidth, const Standard_Real theHeight); + + //! Sets the width of color scale. + Standard_EXPORT void SetWidth (const Standard_Real theWidth); + + //! Sets the height of color scale. + Standard_EXPORT void SetHeight (const Standard_Real theHeight); + + //! Returns the position of color scale. + Standard_EXPORT void GetPosition (Standard_Real& theX, Standard_Real& theY) const; + + //! Returns the X position of color scale. + Standard_EXPORT Standard_Real GetXPosition() const; + + //! Returns the height of color scale. + Standard_EXPORT Standard_Real GetYPosition() const; + + //! Sets the position of color scale. + Standard_EXPORT void SetPosition (const Standard_Real theX, const Standard_Real theY); + + //! Sets the X position of color scale. + Standard_EXPORT void SetXPosition (const Standard_Real theX); + + //! Sets the Y position of color scale. + Standard_EXPORT void SetYPosition (const Standard_Real theY); + + //! Returns the height of text of color scale. + Standard_EXPORT Standard_Integer GetTextHeight() const; + + //! Sets the height of text of color scale. + Standard_EXPORT void SetTextHeight (const Standard_Integer theHeight); + + //! Draws a rectangle. + //! @param theX [in] the X coordinate of rectangle position. + //! @param theY [in] the Y coordinate of rectangle position. + //! @param theWidth [in] the width of rectangle. + //! @param theHeight [in] the height of rectangle. + //! @param theColor [in] the color of rectangle. + //! @param theFilled [in] defines if rectangle must be filled. + Standard_EXPORT virtual void PaintRect (const Standard_Integer theX, const Standard_Integer theY, const Standard_Integer theWidth, const Standard_Integer theHeight, const Quantity_Color& theColor, const Standard_Boolean theFilled = Standard_False) = 0; + + //! Draws a text. + //! @param theText [in] the text to draw. + //! @param theX [in] the X coordinate of text position. + //! @param theY [in] the Y coordinate of text position. + //! @param theColor [in] the color of text. + Standard_EXPORT virtual void PaintText (const TCollection_ExtendedString& theText, const Standard_Integer theX, const Standard_Integer theY, const Quantity_Color& theColor) = 0; + + //! Returns the width of text. + //! @param theText [in] the text of which to calculate width. + Standard_EXPORT virtual Standard_Integer TextWidth (const TCollection_ExtendedString& theText) const = 0; + + //! Returns the height of text. + //! @param theText [in] the text of which to calculate height. + Standard_EXPORT virtual Standard_Integer TextHeight (const TCollection_ExtendedString& theText) const = 0; + + + + + DEFINE_STANDARD_RTTI(Aspect_ColorScale,MMgt_TShared) + +protected: + + + //! Default constructor. + Standard_EXPORT Aspect_ColorScale(); + + //! Returns the size of color scale. + //! @param theWidth [out] the width of color scale. + //! @param theHeight [out] the height of color scale. + Standard_EXPORT void SizeHint (Standard_Integer& theWidth, Standard_Integer& theHeight) const; + + //! updates color scale parameters. + Standard_EXPORT virtual void UpdateColorScale(); + + //! Draws color scale. + //! @param theBgColor [in] background color + //! @param theX [in] the X coordinate of color scale position. + //! @param theY [in] the Y coordinate of color scale position. + //! @param theWidth [in] the width of color scale. + //! @param theHeight [in] the height of color scale. + Standard_EXPORT void DrawScale (const Quantity_Color& theBgColor, const Standard_Integer theX, const Standard_Integer theY, const Standard_Integer theWidth, const Standard_Integer theHeight); + + Standard_EXPORT virtual Standard_Boolean BeginPaint(); + + Standard_EXPORT virtual Standard_Boolean EndPaint(); + + + +private: + + + //! Returns the format of text. + Standard_EXPORT TCollection_AsciiString Format() const; + + //! Returns the value of given interval. + Standard_EXPORT Standard_Real GetNumber (const Standard_Integer theIndex) const; + + //! Returns the color's hue for the given value in the given interval. + //! @param theValue [in] the current value of interval. + //! @param theMin [in] the min value of interval. + //! @param theMax [in] the max value of interval. + Standard_EXPORT static Standard_Integer HueFromValue (const Standard_Integer theValue, const Standard_Integer theMin, const Standard_Integer theMax); + + Standard_Real myMin; + Standard_Real myMax; + TCollection_ExtendedString myTitle; + TCollection_AsciiString myFormat; + Standard_Integer myInterval; + Aspect_TypeOfColorScaleData myColorType; + Aspect_TypeOfColorScaleData myLabelType; + Standard_Boolean myAtBorder; + Standard_Boolean myReversed; + Aspect_SequenceOfColor myColors; + TColStd_SequenceOfExtendedString myLabels; + Aspect_TypeOfColorScalePosition myLabelPos; + Aspect_TypeOfColorScalePosition myTitlePos; + Standard_Real myXPos; + Standard_Real myYPos; + Standard_Real myWidth; + Standard_Real myHeight; + Standard_Integer myTextHeight; + + +}; + + + + + + + +#endif // _Aspect_ColorScale_HeaderFile diff --git a/src/Aspect/Aspect_DisplayConnectionDefinitionError.hxx b/src/Aspect/Aspect_DisplayConnectionDefinitionError.hxx new file mode 100644 index 0000000000..41e24aeb5a --- /dev/null +++ b/src/Aspect/Aspect_DisplayConnectionDefinitionError.hxx @@ -0,0 +1,36 @@ +// 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_DisplayConnectionDefinitionError_HeaderFile +#define _Aspect_DisplayConnectionDefinitionError_HeaderFile + +#include +#include +#include +#include + +class Aspect_DisplayConnectionDefinitionError; +DEFINE_STANDARD_HANDLE(Aspect_DisplayConnectionDefinitionError, Standard_OutOfRange) + +#if !defined No_Exception && !defined No_Aspect_DisplayConnectionDefinitionError + #define Aspect_DisplayConnectionDefinitionError_Raise_if(CONDITION, MESSAGE) \ + if (CONDITION) Aspect_DisplayConnectionDefinitionError::Raise(MESSAGE); +#else + #define Aspect_DisplayConnectionDefinitionError_Raise_if(CONDITION, MESSAGE) +#endif + +DEFINE_STANDARD_EXCEPTION(Aspect_DisplayConnectionDefinitionError, Standard_OutOfRange) + +#endif // _Aspect_DisplayConnectionDefinitionError_HeaderFile diff --git a/src/Aspect/Aspect_DriverDefinitionError.hxx b/src/Aspect/Aspect_DriverDefinitionError.hxx new file mode 100644 index 0000000000..1581d58be8 --- /dev/null +++ b/src/Aspect/Aspect_DriverDefinitionError.hxx @@ -0,0 +1,36 @@ +// 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_DriverDefinitionError_HeaderFile +#define _Aspect_DriverDefinitionError_HeaderFile + +#include +#include +#include +#include + +class Aspect_DriverDefinitionError; +DEFINE_STANDARD_HANDLE(Aspect_DriverDefinitionError, Standard_OutOfRange) + +#if !defined No_Exception && !defined No_Aspect_DriverDefinitionError + #define Aspect_DriverDefinitionError_Raise_if(CONDITION, MESSAGE) \ + if (CONDITION) Aspect_DriverDefinitionError::Raise(MESSAGE); +#else + #define Aspect_DriverDefinitionError_Raise_if(CONDITION, MESSAGE) +#endif + +DEFINE_STANDARD_EXCEPTION(Aspect_DriverDefinitionError, Standard_OutOfRange) + +#endif // _Aspect_DriverDefinitionError_HeaderFile diff --git a/src/Aspect/Aspect_FillMethod.hxx b/src/Aspect/Aspect_FillMethod.hxx new file mode 100644 index 0000000000..ed602cc0a1 --- /dev/null +++ b/src/Aspect/Aspect_FillMethod.hxx @@ -0,0 +1,29 @@ +// 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_FillMethod_HeaderFile +#define _Aspect_FillMethod_HeaderFile + +//! Defines the fill methods to +//! write bitmaps in a window. +enum Aspect_FillMethod +{ +Aspect_FM_NONE, +Aspect_FM_CENTERED, +Aspect_FM_TILED, +Aspect_FM_STRETCH +}; + +#endif // _Aspect_FillMethod_HeaderFile diff --git a/src/Aspect/Aspect_GenId.cdl b/src/Aspect/Aspect_GenId.cdl deleted file mode 100644 index 1464155935..0000000000 --- a/src/Aspect/Aspect_GenId.cdl +++ /dev/null @@ -1,79 +0,0 @@ --- Created on: 1992-05-13 --- Created by: NW,JPB,CAL --- 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. - -class GenId from Aspect - - ---Purpose: This class permits the creation and control of integer identifiers. - -uses - - ListOfInteger from TColStd - -raises - - IdentDefinitionError from Aspect - -is - - Create - returns GenId from Aspect; - ---Purpose: Creates an available set of identifiers with the lower bound 0 and the upper bound INT_MAX / 2. - - Create (theLow, theUpper : Integer from Standard) - returns GenId from Aspect - ---Purpose: Creates an available set of identifiers with specified range. - -- Raises IdentDefinitionError if theUpper is less than theLow. - raises IdentDefinitionError from Aspect; - - Free (me : in out); - ---Level: Internal - ---Purpose: Free all identifiers - make the whole range available again. - - Free (me : in out; - theId : Integer from Standard); - ---Purpose: Free specified identifier. Warning - method has no protection against double-freeing! - - HasFree (me) - returns Boolean from Standard; - ---Purpose: Returns true if there are available identifiers in range. - - Available (me) - returns Integer from Standard; - ---Purpose: Returns the number of available identifiers. - - Lower (me) - returns Integer from Standard; - ---Purpose: Returns the lower identifier in range. - - Next (me : in out) - returns Integer from Standard - ---Purpose: Returns the next available identifier. - -- Warning: Raises IdentDefinitionError if all identifiers are busy. - raises IdentDefinitionError from Aspect; - - Upper (me) - returns Integer from Standard; - ---Purpose: Returns the upper identifier in range. - -fields - - myFreeCount : Integer from Standard; -- the current number of available identifiers in range, excluding freed numbers - myLength : Integer from Standard; -- the number of identifiers - myLowerBound : Integer from Standard; -- the lower limit for identifiers - myUpperBound : Integer from Standard; -- the upper limit for identifiers - myFreeIds : ListOfInteger from TColStd; -- to save free identifiers - -end GenId; diff --git a/src/Aspect/Aspect_GenId.cxx b/src/Aspect/Aspect_GenId.cxx index bc4800ad98..1f3bbaddf4 100644 --- a/src/Aspect/Aspect_GenId.cxx +++ b/src/Aspect/Aspect_GenId.cxx @@ -14,7 +14,9 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include // ======================================================================= // function : Aspect_GenId diff --git a/src/Aspect/Aspect_GenId.hxx b/src/Aspect/Aspect_GenId.hxx new file mode 100644 index 0000000000..6518c6cf16 --- /dev/null +++ b/src/Aspect/Aspect_GenId.hxx @@ -0,0 +1,95 @@ +// Created on: 1992-05-13 +// Created by: NW,JPB,CAL +// 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 _Aspect_GenId_HeaderFile +#define _Aspect_GenId_HeaderFile + +#include +#include +#include + +#include +#include +#include +class Aspect_IdentDefinitionError; + + +//! This class permits the creation and control of integer identifiers. +class Aspect_GenId +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Creates an available set of identifiers with the lower bound 0 and the upper bound INT_MAX / 2. + Standard_EXPORT Aspect_GenId(); + + //! Creates an available set of identifiers with specified range. + //! Raises IdentDefinitionError if theUpper is less than theLow. + Standard_EXPORT Aspect_GenId(const Standard_Integer theLow, const Standard_Integer theUpper); + + //! Free all identifiers - make the whole range available again. + Standard_EXPORT void Free(); + + //! Free specified identifier. Warning - method has no protection against double-freeing! + Standard_EXPORT void Free (const Standard_Integer theId); + + //! Returns true if there are available identifiers in range. + Standard_EXPORT Standard_Boolean HasFree() const; + + //! Returns the number of available identifiers. + Standard_EXPORT Standard_Integer Available() const; + + //! Returns the lower identifier in range. + Standard_EXPORT Standard_Integer Lower() const; + + //! Returns the next available identifier. + //! Warning: Raises IdentDefinitionError if all identifiers are busy. + Standard_EXPORT Standard_Integer Next(); + + //! Returns the upper identifier in range. + Standard_EXPORT Standard_Integer Upper() const; + + + + +protected: + + + + + +private: + + + + Standard_Integer myFreeCount; + Standard_Integer myLength; + Standard_Integer myLowerBound; + Standard_Integer myUpperBound; + TColStd_ListOfInteger myFreeIds; + + +}; + + + + + + + +#endif // _Aspect_GenId_HeaderFile diff --git a/src/Aspect/Aspect_GradientBackground.cdl b/src/Aspect/Aspect_GradientBackground.cdl deleted file mode 100644 index f0d8caab41..0000000000 --- a/src/Aspect/Aspect_GradientBackground.cdl +++ /dev/null @@ -1,89 +0,0 @@ --- 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. - -class GradientBackground from Aspect -inherits Background from Aspect - - - ---Purpose: This class allows the definition of - -- a window gradient background. - -uses - - Color from Quantity, - GradientFillMethod from Aspect - -is - - Create - returns GradientBackground from Aspect; - ---Level: Public - ---Purpose: Creates a window gradient background. - -- Default colors : Quantity_NOC_BLACK. - -- Default fill method : Aspect_GFM_NONE - - Create ( AColor1 : Color from Quantity; - AColor2 : Color from Quantity; - AMethod : GradientFillMethod from Aspect = Aspect_GFM_HOR) - returns GradientBackground from Aspect; - ---Level: Public - ---Purpose: Creates a window gradient background with colours . - - --------------------------------------------------- - -- Category: Methods to modify the class definition - --------------------------------------------------- - - SetColors ( me : in out; - AColor1 : Color from Quantity ; - AColor2 : Color from Quantity ; - AMethod : GradientFillMethod from Aspect = Aspect_GFM_HOR - ); - ---Level: Public - ---Purpose: Modifies the colours of the window gradient background . - ---Category: Methods to modify the class definition - - ---------------------------- - -- Category: Inquire methods - ---------------------------- - - Colors ( me; - AColor1 : out Color from Quantity; - AColor2 : out Color from Quantity - ); - ---Level: Public - ---Purpose: Returns colours of the window gradient background . - ---Category: Inquire methods - - BgGradientFillMethod( me ) returns GradientFillMethod from Aspect; - ---Level: Public - ---Purpose: Returns the current gradient background fill mode. - - -fields - --- --- Class : Aspect_GradientBackground --- --- Purpose : Declaration of variables specific to the window --- gradient background. --- --- Reminder : A Gradient background is defined by two colours --- - - -- the colour associated with the window background - MyColor2 : Color from Quantity; - MyGradientMethod : GradientFillMethod from Aspect; - -end GradientBackground ; diff --git a/src/Aspect/Aspect_GradientBackground.hxx b/src/Aspect/Aspect_GradientBackground.hxx new file mode 100644 index 0000000000..ea3e7d594f --- /dev/null +++ b/src/Aspect/Aspect_GradientBackground.hxx @@ -0,0 +1,80 @@ +// 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 +#include +#include + +#include +#include +#include +class Quantity_Color; + + +//! 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 colors : Quantity_NOC_BLACK. + //! Default fill method : Aspect_GFM_NONE + Standard_EXPORT Aspect_GradientBackground(); + + //! Creates a window gradient background with colours . + Standard_EXPORT Aspect_GradientBackground(const Quantity_Color& AColor1, const Quantity_Color& AColor2, const Aspect_GradientFillMethod AMethod = Aspect_GFM_HOR); + + //! Modifies the colours of the window gradient background . + Standard_EXPORT void SetColors (const Quantity_Color& AColor1, const Quantity_Color& AColor2, const Aspect_GradientFillMethod AMethod = Aspect_GFM_HOR); + + //! Returns colours of the window gradient background . + Standard_EXPORT void Colors (Quantity_Color& AColor1, Quantity_Color& AColor2) const; + + //! Returns the current gradient background fill mode. + Standard_EXPORT Aspect_GradientFillMethod BgGradientFillMethod() const; + + + + +protected: + + + + + +private: + + + + Quantity_Color MyColor2; + Aspect_GradientFillMethod MyGradientMethod; + + +}; + + + + + + + +#endif // _Aspect_GradientBackground_HeaderFile diff --git a/src/Aspect/Aspect_GradientFillMethod.hxx b/src/Aspect/Aspect_GradientFillMethod.hxx new file mode 100644 index 0000000000..cb6315defb --- /dev/null +++ b/src/Aspect/Aspect_GradientFillMethod.hxx @@ -0,0 +1,34 @@ +// 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_GFM_NONE, +Aspect_GFM_HOR, +Aspect_GFM_VER, +Aspect_GFM_DIAG1, +Aspect_GFM_DIAG2, +Aspect_GFM_CORNER1, +Aspect_GFM_CORNER2, +Aspect_GFM_CORNER3, +Aspect_GFM_CORNER4 +}; + +#endif // _Aspect_GradientFillMethod_HeaderFile diff --git a/src/Aspect/Aspect_GraphicDeviceDefinitionError.hxx b/src/Aspect/Aspect_GraphicDeviceDefinitionError.hxx new file mode 100644 index 0000000000..5c4b9f07f4 --- /dev/null +++ b/src/Aspect/Aspect_GraphicDeviceDefinitionError.hxx @@ -0,0 +1,36 @@ +// 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_GraphicDeviceDefinitionError_HeaderFile +#define _Aspect_GraphicDeviceDefinitionError_HeaderFile + +#include +#include +#include +#include + +class Aspect_GraphicDeviceDefinitionError; +DEFINE_STANDARD_HANDLE(Aspect_GraphicDeviceDefinitionError, Standard_OutOfRange) + +#if !defined No_Exception && !defined No_Aspect_GraphicDeviceDefinitionError + #define Aspect_GraphicDeviceDefinitionError_Raise_if(CONDITION, MESSAGE) \ + if (CONDITION) Aspect_GraphicDeviceDefinitionError::Raise(MESSAGE); +#else + #define Aspect_GraphicDeviceDefinitionError_Raise_if(CONDITION, MESSAGE) +#endif + +DEFINE_STANDARD_EXCEPTION(Aspect_GraphicDeviceDefinitionError, Standard_OutOfRange) + +#endif // _Aspect_GraphicDeviceDefinitionError_HeaderFile diff --git a/src/Aspect/Aspect_Grid.cdl b/src/Aspect/Aspect_Grid.cdl deleted file mode 100644 index a8fede640b..0000000000 --- a/src/Aspect/Aspect_Grid.cdl +++ /dev/null @@ -1,174 +0,0 @@ --- 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. - -deferred class Grid from Aspect -inherits TShared from MMgt - -uses - PlaneAngle, Length from Quantity, - GridDrawMode from Aspect, - Color from Quantity -is - - Initialize(anXOrigin: Length from Quantity = 0.0; - anYOrigin: Length from Quantity = 0.0; - aRotationAngle: PlaneAngle from Quantity = 0; - aColor: Color from Quantity = Quantity_NOC_GRAY50; - aTenthColor: Color from Quantity = Quantity_NOC_GRAY70); - - ---Purpose: creates a new grid. By default this grid is not - -- active. - - ---Category: grid definition methods - - SetXOrigin(me: mutable; anOrigin: Length from Quantity) - is static; - ---Level: Public - ---Purpose: defines the x Origin of the grid. - - SetYOrigin(me: mutable; anOrigin: Length from Quantity) - is static; - ---Level: Public - ---Purpose: defines the y Origin of the grid. - - SetRotationAngle(me: mutable; anAngle: PlaneAngle from Quantity) - is static; - ---Level: Public - ---Purpose: defines the orientation of the the grid. - - Rotate(me: mutable; anAngle: PlaneAngle from Quantity) - is static; - ---Level: Public - ---Purpose: Rotate the grid from a relative angle. - - Translate(me: mutable; aDx, aDy: Length from Quantity) - is static; - ---Level: Public - ---Purpose: Translate the grid from a relative distance. - - SetColors ( me : mutable; - aColor : Color from Quantity; - aTenthColor : Color from Quantity ) - is virtual; - ---Level: Public - ---Purpose: Change the colors of the grid - ----Category: Pick methods --- - Hit(me; X,Y: Length from Quantity; gridX, gridY : out Length from Quantity) - is static; - ---Level: Public - ---Purpose: returns the point of the grid the closest to the point X,Y - -- if the grid is active. If the grid is not active returns - -- X,Y. - - Compute(me; X,Y: Length from Quantity; gridX, gridY : out Length from Quantity) - is deferred; - ---Level: Internal - ---Purpose: returns the point of the grid the closest to the point X,Y ----Category: Managment methods. - - Activate(me: mutable) - is static; - ---Level: Public - ---Purpose: activates the grid. The Hit method will return - -- gridx and gridx computed according to the steps - -- of the grid. - - Deactivate(me: mutable) - is static; - ---Level: Public - ---Purpose: deactivates the grid. The hit method will return - -- gridx and gridx as the enter value X & Y. - ----Category: inquire methods - - XOrigin(me) returns Length from Quantity - is static; - ---Level: Public - ---Purpose: returns the x Origin of the grid. - - YOrigin(me) returns Length from Quantity - is static; - ---Level: Public - ---Purpose: returns the x Origin of the grid. - - - RotationAngle(me) returns PlaneAngle from Quantity - is static; - ---Level: Public - ---Purpose: returns the x Angle of the grid. - - - IsActive(me) returns Boolean from Standard - is static; - ---Level: Public - ---Purpose: Returns TRUE when the grid is active. - - Colors(me ; aColor,aTenthColor: out Color from Quantity) - is static; - ---Level: Public - ---Purpose: Returns the colors of the grid. - ----Category: display methods - - SetDrawMode(me: mutable; aDrawMode: GridDrawMode from Aspect) - is static; - ---Level: Public - ---Purpose: Change the grid aspect. - - DrawMode(me) returns GridDrawMode from Aspect - is static; - ---Level: Public - ---Purpose: Returns the grid aspect. - - Display(me: mutable) - is virtual; - ---Level: Public - ---Purpose: Display the grid at screen. - - Erase(me) - is virtual; - ---Level: Public - ---Purpose: Erase the grid from screen. - - IsDisplayed(me) - returns Boolean from Standard - is virtual; - ---Level: Public - ---Purpose: Returns TRUE when the grid is displayed at screen. - - UpdateDisplay(me: mutable) - is virtual protected; - ---Level: Internal - ---Purpose: Updates the grid parameters. - - Init(me: mutable) - is deferred; - ---Level: Internal - - -fields - - myRotationAngle: PlaneAngle from Quantity is protected; - myXOrigin: Length from Quantity is protected; - myYOrigin: Length from Quantity is protected; - myColor: Color from Quantity is protected; - myTenthColor: Color from Quantity is protected; - myIsActive :Boolean from Standard; - myDrawMode: GridDrawMode from Aspect; - -end Grid from Aspect; diff --git a/src/Aspect/Aspect_Grid.cxx b/src/Aspect/Aspect_Grid.cxx index 2728e6805f..c68d809fab 100644 --- a/src/Aspect/Aspect_Grid.cxx +++ b/src/Aspect/Aspect_Grid.cxx @@ -11,8 +11,10 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include Aspect_Grid::Aspect_Grid( const Quantity_Length anXOrigin, diff --git a/src/Aspect/Aspect_Grid.hxx b/src/Aspect/Aspect_Grid.hxx new file mode 100644 index 0000000000..06d838d317 --- /dev/null +++ b/src/Aspect/Aspect_Grid.hxx @@ -0,0 +1,146 @@ +// 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_Grid_HeaderFile +#define _Aspect_Grid_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +class Quantity_Color; + + +class Aspect_Grid; +DEFINE_STANDARD_HANDLE(Aspect_Grid, MMgt_TShared) + + +class Aspect_Grid : public MMgt_TShared +{ + +public: + + + //! defines the x Origin of the grid. + Standard_EXPORT void SetXOrigin (const Quantity_Length anOrigin); + + //! defines the y Origin of the grid. + Standard_EXPORT void SetYOrigin (const Quantity_Length anOrigin); + + //! defines the orientation of the the grid. + Standard_EXPORT void SetRotationAngle (const Quantity_PlaneAngle anAngle); + + //! Rotate the grid from a relative angle. + Standard_EXPORT void Rotate (const Quantity_PlaneAngle anAngle); + + //! Translate the grid from a relative distance. + Standard_EXPORT void Translate (const Quantity_Length aDx, const Quantity_Length aDy); + + //! Change the colors of the grid + Standard_EXPORT virtual void SetColors (const Quantity_Color& aColor, const Quantity_Color& aTenthColor); + + //! returns the point of the grid the closest to the point X,Y + //! if the grid is active. If the grid is not active returns + //! X,Y. + Standard_EXPORT void Hit (const Quantity_Length X, const Quantity_Length Y, Quantity_Length& gridX, Quantity_Length& gridY) const; + + //! returns the point of the grid the closest to the point X,Y + Standard_EXPORT virtual void Compute (const Quantity_Length X, const Quantity_Length Y, Quantity_Length& gridX, Quantity_Length& gridY) const = 0; + + //! activates the grid. The Hit method will return + //! gridx and gridx computed according to the steps + //! of the grid. + Standard_EXPORT void Activate(); + + //! deactivates the grid. The hit method will return + //! gridx and gridx as the enter value X & Y. + Standard_EXPORT void Deactivate(); + + //! returns the x Origin of the grid. + Standard_EXPORT Quantity_Length XOrigin() const; + + //! returns the x Origin of the grid. + Standard_EXPORT Quantity_Length YOrigin() const; + + //! returns the x Angle of the grid. + Standard_EXPORT Quantity_PlaneAngle RotationAngle() const; + + //! Returns TRUE when the grid is active. + Standard_EXPORT Standard_Boolean IsActive() const; + + //! Returns the colors of the grid. + Standard_EXPORT void Colors (Quantity_Color& aColor, Quantity_Color& aTenthColor) const; + + //! Change the grid aspect. + Standard_EXPORT void SetDrawMode (const Aspect_GridDrawMode aDrawMode); + + //! Returns the grid aspect. + Standard_EXPORT Aspect_GridDrawMode DrawMode() const; + + //! Display the grid at screen. + Standard_EXPORT virtual void Display(); + + //! Erase the grid from screen. + Standard_EXPORT virtual void Erase() const; + + //! Returns TRUE when the grid is displayed at screen. + Standard_EXPORT virtual Standard_Boolean IsDisplayed() const; + + Standard_EXPORT virtual void Init() = 0; + + + + + DEFINE_STANDARD_RTTI(Aspect_Grid,MMgt_TShared) + +protected: + + + //! creates a new grid. By default this grid is not + //! active. + Standard_EXPORT Aspect_Grid(const Quantity_Length anXOrigin = 0.0, const Quantity_Length anYOrigin = 0.0, const Quantity_PlaneAngle aRotationAngle = 0, const Quantity_Color& aColor = Quantity_NOC_GRAY50, const Quantity_Color& aTenthColor = Quantity_NOC_GRAY70); + + //! Updates the grid parameters. + Standard_EXPORT virtual void UpdateDisplay(); + + Quantity_PlaneAngle myRotationAngle; + Quantity_Length myXOrigin; + Quantity_Length myYOrigin; + Quantity_Color myColor; + Quantity_Color myTenthColor; + + +private: + + + Standard_Boolean myIsActive; + Aspect_GridDrawMode myDrawMode; + + +}; + + + + + + + +#endif // _Aspect_Grid_HeaderFile diff --git a/src/Aspect/Aspect_GridDrawMode.hxx b/src/Aspect/Aspect_GridDrawMode.hxx new file mode 100644 index 0000000000..b04ef7463f --- /dev/null +++ b/src/Aspect/Aspect_GridDrawMode.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_GridDrawMode_HeaderFile +#define _Aspect_GridDrawMode_HeaderFile + +//! Defines the grid draw mode. The grid may be drawn +//! by using lines or points. +enum Aspect_GridDrawMode +{ +Aspect_GDM_Lines, +Aspect_GDM_Points, +Aspect_GDM_None +}; + +#endif // _Aspect_GridDrawMode_HeaderFile diff --git a/src/Aspect/Aspect_GridType.hxx b/src/Aspect/Aspect_GridType.hxx new file mode 100644 index 0000000000..33a9cc95b5 --- /dev/null +++ b/src/Aspect/Aspect_GridType.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_GridType_HeaderFile +#define _Aspect_GridType_HeaderFile + +//! Defines the grid type : Rectangular or Circular. +enum Aspect_GridType +{ +Aspect_GT_Rectangular, +Aspect_GT_Circular +}; + +#endif // _Aspect_GridType_HeaderFile diff --git a/src/Aspect/Aspect_HatchStyle.hxx b/src/Aspect/Aspect_HatchStyle.hxx new file mode 100644 index 0000000000..bb57fd56b3 --- /dev/null +++ b/src/Aspect/Aspect_HatchStyle.hxx @@ -0,0 +1,49 @@ +// 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_HatchStyle_HeaderFile +#define _Aspect_HatchStyle_HeaderFile + +//! Definition of all available hatch styles. +//! +//! HS_HORIZONTAL +//! HS_HORIZONTAL_WIDE +//! HS_VERTICAL +//! HS_VERTICAL_WIDE +//! HS_DIAGONAL_45 +//! HS_DIAGONAL_45_WIDE +//! HS_DIAGONAL_135 +//! HS_DIAGONAL_135_WIDE +//! HS_GRID +//! HS_GRID_WIDE +//! HS_GRID_DIAGONAL +//! HS_GRID_DIAGONAL_WIDE +enum Aspect_HatchStyle +{ +Aspect_HS_HORIZONTAL, +Aspect_HS_HORIZONTAL_WIDE, +Aspect_HS_VERTICAL, +Aspect_HS_VERTICAL_WIDE, +Aspect_HS_DIAGONAL_45, +Aspect_HS_DIAGONAL_45_WIDE, +Aspect_HS_DIAGONAL_135, +Aspect_HS_DIAGONAL_135_WIDE, +Aspect_HS_GRID, +Aspect_HS_GRID_WIDE, +Aspect_HS_GRID_DIAGONAL, +Aspect_HS_GRID_DIAGONAL_WIDE +}; + +#endif // _Aspect_HatchStyle_HeaderFile diff --git a/src/Aspect/Aspect_IdentDefinitionError.hxx b/src/Aspect/Aspect_IdentDefinitionError.hxx new file mode 100644 index 0000000000..ecb91a08b8 --- /dev/null +++ b/src/Aspect/Aspect_IdentDefinitionError.hxx @@ -0,0 +1,36 @@ +// 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_IdentDefinitionError_HeaderFile +#define _Aspect_IdentDefinitionError_HeaderFile + +#include +#include +#include +#include + +class Aspect_IdentDefinitionError; +DEFINE_STANDARD_HANDLE(Aspect_IdentDefinitionError, Standard_OutOfRange) + +#if !defined No_Exception && !defined No_Aspect_IdentDefinitionError + #define Aspect_IdentDefinitionError_Raise_if(CONDITION, MESSAGE) \ + if (CONDITION) Aspect_IdentDefinitionError::Raise(MESSAGE); +#else + #define Aspect_IdentDefinitionError_Raise_if(CONDITION, MESSAGE) +#endif + +DEFINE_STANDARD_EXCEPTION(Aspect_IdentDefinitionError, Standard_OutOfRange) + +#endif // _Aspect_IdentDefinitionError_HeaderFile diff --git a/src/Aspect/Aspect_InteriorStyle.hxx b/src/Aspect/Aspect_InteriorStyle.hxx new file mode 100644 index 0000000000..e69a2589f2 --- /dev/null +++ b/src/Aspect/Aspect_InteriorStyle.hxx @@ -0,0 +1,38 @@ +// 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_InteriorStyle_HeaderFile +#define _Aspect_InteriorStyle_HeaderFile + +//! Definition of interior types for primitive +//! faces. +//! +//! IS_EMPTY no interior. +//! IS_HOLLOW display the boundaries of the surface. +//! IS_HATCH display hatched with a hatch style. +//! IS_SOLID display the interior entirely filled. +//! IS_HIDDENLINE display in hidden lines removed. +//! IS_POINT display only vertices. +enum Aspect_InteriorStyle +{ +Aspect_IS_EMPTY, +Aspect_IS_HOLLOW, +Aspect_IS_HATCH, +Aspect_IS_SOLID, +Aspect_IS_HIDDENLINE, +Aspect_IS_POINT +}; + +#endif // _Aspect_InteriorStyle_HeaderFile diff --git a/src/Aspect/Aspect_PrintAlgo.hxx b/src/Aspect/Aspect_PrintAlgo.hxx new file mode 100644 index 0000000000..3435419d9b --- /dev/null +++ b/src/Aspect/Aspect_PrintAlgo.hxx @@ -0,0 +1,43 @@ +// 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_PrintAlgo_HeaderFile +#define _Aspect_PrintAlgo_HeaderFile + +//! Defines print algorithm +//! Aspect_PrintAlgo: +//! 1) PA_STRETCH - Stretch offscreen printing frame +//! if its dimensions are smaller than +//! the printer's printing area dimensions; +//! This algorithm is more reliable as it +//! works on any hardware and is recommended +//! to be used with average printing resolutions, +//! as it more RAM memory dependent than PA_TILE; +//! Stretching is performend using bicubic interpolation +//! algorithm from FreeImage library if OCCT is built +//! with FreeImage support, otherwise Windows API +//! StretchBlt() function in STRETCH_HALFTONE mode +//! is used; +//! 2) PA_TILE - If the offscreen printing frame dimensions +//! are smaller than the printer's printing +//! area dimensions - use multiple printing +//! frames to cover the whole printing area +enum Aspect_PrintAlgo +{ +Aspect_PA_STRETCH, +Aspect_PA_TILE +}; + +#endif // _Aspect_PrintAlgo_HeaderFile diff --git a/src/Aspect/Aspect_RectangularGrid.cdl b/src/Aspect/Aspect_RectangularGrid.cdl deleted file mode 100644 index 0cf5541112..0000000000 --- a/src/Aspect/Aspect_RectangularGrid.cdl +++ /dev/null @@ -1,122 +0,0 @@ --- 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. - -class RectangularGrid from Aspect -inherits Grid from Aspect - -uses - PlaneAngle, Length from Quantity - -raises - NegativeValue,NullValue,NumericError from Standard - -is - - Create(aXStep, aYStep: Length from Quantity; - anXOrigin: Length from Quantity = 0; - anYOrigin: Length from Quantity = 0; - aFirstAngle: PlaneAngle from Quantity = 0; - aSecondAngle: PlaneAngle from Quantity = 0; - aRotationAngle: PlaneAngle from Quantity = 0) - returns RectangularGrid from Aspect - ---Purpose: 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. - raises NumericError from Standard; - ---Warning: raises NumericError from Standard if the two - -- networks are parallel. - ----Category: grid definition methods - - - SetXStep(me: mutable; aStep: Length from Quantity) - ---Purpose: defines the x step of the grid. - raises NegativeValue,NullValue from Standard - ---Warning: raises an exception is the step is not strictly positive. - is static; - - SetYStep(me: mutable; aStep: Length from Quantity) - ---Purpose: defines the y step of the grid. - raises NegativeValue,NullValue from Standard - ---Warning: raises an exception is the step is not strictly positive. - is static; - - SetAngle(me: mutable; anAngle1: PlaneAngle from Quantity; - anAngle2: PlaneAngle from Quantity) - ---Purpose: 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. - raises NumericError from Standard - ---Warning: raises NumericError from Standard if the two - -- line networks are parallel. - is static; - - SetGridValues(me: mutable; XOrigin, YOrigin: Length from Quantity; - XStep, YStep: Length from Quantity; - RotationAngle: PlaneAngle from Quantity) - is static; - ----Category: Pick methods --- - Compute(me; X,Y: Length from Quantity; gridX, gridY : out Length from Quantity) - ---Purpose: returns the point of the grid the closest to the point X,Y - is static; - - - ----Category: inquire methods - - XStep(me) returns Length from Quantity - ---Purpose: returns the x step of the grid. - is static; - - YStep(me) returns Length from Quantity - ---Purpose: returns the x step of the grid. - is static; - - FirstAngle(me) returns PlaneAngle from Quantity - ---Purpose: returns the x Angle of the grid, relatively to the horizontal. - is static; - - SecondAngle(me) returns PlaneAngle from Quantity - ---Purpose: returns the y Angle of the grid, relatively to the vertical. - is static; - - - - ----Category: private methods. - - - Init(me: mutable) - is redefined static; - - CheckAngle(me;alpha,beta: PlaneAngle from Quantity) - returns Boolean from Standard - is static private; - -fields - - myXStep: Length from Quantity; - myYStep: Length from Quantity; - myFirstAngle: PlaneAngle from Quantity; - mySecondAngle: PlaneAngle from Quantity; - a1,b1,c1: Real from Standard; - a2,b2,c2: Real from Standard; - - -end RectangularGrid from Aspect; diff --git a/src/Aspect/Aspect_RectangularGrid.cxx b/src/Aspect/Aspect_RectangularGrid.cxx index 6ee7c871c6..9d76801e55 100644 --- a/src/Aspect/Aspect_RectangularGrid.cxx +++ b/src/Aspect/Aspect_RectangularGrid.cxx @@ -13,8 +13,11 @@ // Modified 23/02/98 : FMN ; Remplacement PI par Standard_PI -#include - +#include +#include +#include +#include +#include Aspect_RectangularGrid::Aspect_RectangularGrid( const Quantity_Length aXStep, diff --git a/src/Aspect/Aspect_RectangularGrid.hxx b/src/Aspect/Aspect_RectangularGrid.hxx new file mode 100644 index 0000000000..a9525193c4 --- /dev/null +++ b/src/Aspect/Aspect_RectangularGrid.hxx @@ -0,0 +1,114 @@ +// 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 +#include + +#include +#include +#include +#include +#include +class Standard_NegativeValue; +class Standard_NullValue; +class Standard_NumericError; + + +class Aspect_RectangularGrid; +DEFINE_STANDARD_HANDLE(Aspect_RectangularGrid, Aspect_Grid) + + +class Aspect_RectangularGrid : public 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 Quantity_Length aXStep, const Quantity_Length aYStep, const Quantity_Length anXOrigin = 0, const Quantity_Length anYOrigin = 0, const Quantity_PlaneAngle aFirstAngle = 0, const Quantity_PlaneAngle aSecondAngle = 0, const Quantity_PlaneAngle aRotationAngle = 0); + + //! defines the x step of the grid. + Standard_EXPORT void SetXStep (const Quantity_Length aStep); + + //! defines the y step of the grid. + Standard_EXPORT void SetYStep (const Quantity_Length 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 Quantity_PlaneAngle anAngle1, const Quantity_PlaneAngle anAngle2); + + Standard_EXPORT void SetGridValues (const Quantity_Length XOrigin, const Quantity_Length YOrigin, const Quantity_Length XStep, const Quantity_Length YStep, const Quantity_PlaneAngle RotationAngle); + + //! returns the point of the grid the closest to the point X,Y + Standard_EXPORT void Compute (const Quantity_Length X, const Quantity_Length Y, Quantity_Length& gridX, Quantity_Length& gridY) const; + + //! returns the x step of the grid. + Standard_EXPORT Quantity_Length XStep() const; + + //! returns the x step of the grid. + Standard_EXPORT Quantity_Length YStep() const; + + //! returns the x Angle of the grid, relatively to the horizontal. + Standard_EXPORT Quantity_PlaneAngle FirstAngle() const; + + //! returns the y Angle of the grid, relatively to the vertical. + Standard_EXPORT Quantity_PlaneAngle SecondAngle() const; + + Standard_EXPORT void Init() Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(Aspect_RectangularGrid,Aspect_Grid) + +protected: + + + + +private: + + + Standard_EXPORT Standard_Boolean CheckAngle (const Quantity_PlaneAngle alpha, const Quantity_PlaneAngle beta) const; + + Quantity_Length myXStep; + Quantity_Length myYStep; + Quantity_PlaneAngle myFirstAngle; + Quantity_PlaneAngle mySecondAngle; + Standard_Real a1; + Standard_Real b1; + Standard_Real c1; + Standard_Real a2; + Standard_Real b2; + Standard_Real c2; + + +}; + + + + + + + +#endif // _Aspect_RectangularGrid_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfColorScaleData.hxx b/src/Aspect/Aspect_TypeOfColorScaleData.hxx new file mode 100644 index 0000000000..319f645fae --- /dev/null +++ b/src/Aspect/Aspect_TypeOfColorScaleData.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_TypeOfColorScaleData_HeaderFile +#define _Aspect_TypeOfColorScaleData_HeaderFile + +//! Defines the using type of colors and labels +enum Aspect_TypeOfColorScaleData +{ +Aspect_TOCSD_AUTO, +Aspect_TOCSD_USER +}; + +#endif // _Aspect_TypeOfColorScaleData_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfColorScaleOrientation.hxx b/src/Aspect/Aspect_TypeOfColorScaleOrientation.hxx new file mode 100644 index 0000000000..32c9c3342c --- /dev/null +++ b/src/Aspect/Aspect_TypeOfColorScaleOrientation.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_TypeOfColorScaleOrientation_HeaderFile +#define _Aspect_TypeOfColorScaleOrientation_HeaderFile + +//! Defines the type of color scale orientation +enum Aspect_TypeOfColorScaleOrientation +{ +Aspect_TOCSO_NONE, +Aspect_TOCSO_LEFT, +Aspect_TOCSO_RIGHT, +Aspect_TOCSO_CENTER +}; + +#endif // _Aspect_TypeOfColorScaleOrientation_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfColorScalePosition.hxx b/src/Aspect/Aspect_TypeOfColorScalePosition.hxx new file mode 100644 index 0000000000..a74c8a77a2 --- /dev/null +++ b/src/Aspect/Aspect_TypeOfColorScalePosition.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_TypeOfColorScalePosition_HeaderFile +#define _Aspect_TypeOfColorScalePosition_HeaderFile + +//! Defines the type of position for color scale labels +enum Aspect_TypeOfColorScalePosition +{ +Aspect_TOCSP_NONE, +Aspect_TOCSP_LEFT, +Aspect_TOCSP_RIGHT, +Aspect_TOCSP_CENTER +}; + +#endif // _Aspect_TypeOfColorScalePosition_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfConstraint.hxx b/src/Aspect/Aspect_TypeOfConstraint.hxx new file mode 100644 index 0000000000..7cc78f11da --- /dev/null +++ b/src/Aspect/Aspect_TypeOfConstraint.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_TypeOfConstraint_HeaderFile +#define _Aspect_TypeOfConstraint_HeaderFile + +//! Definition of the attachment for the layers +enum Aspect_TypeOfConstraint +{ +Aspect_TOC_BOTTOM_LEFT, +Aspect_TOC_BOTTOM_RIGHT, +Aspect_TOC_TOP_LEFT, +Aspect_TOC_TOP_RIGHT +}; + +#endif // _Aspect_TypeOfConstraint_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfDeflection.hxx b/src/Aspect/Aspect_TypeOfDeflection.hxx new file mode 100644 index 0000000000..064ce365ae --- /dev/null +++ b/src/Aspect/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/src/Aspect/Aspect_TypeOfDisplayText.hxx b/src/Aspect/Aspect_TypeOfDisplayText.hxx new file mode 100644 index 0000000000..ee9a2bea0a --- /dev/null +++ b/src/Aspect/Aspect_TypeOfDisplayText.hxx @@ -0,0 +1,35 @@ +// 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. +//! +//! TODT_NORMAL Default display. Text only. +//! TODT_SUBTITLE There is a subtitle under the text. +//! TODT_DEKALE The text is displayed with a 3D style. +//! TODT_BLEND The text is displayed in XOR. +//! TODT_DIMENSION Dimension line under text will be invisible. +enum Aspect_TypeOfDisplayText +{ +Aspect_TODT_NORMAL, +Aspect_TODT_SUBTITLE, +Aspect_TODT_DEKALE, +Aspect_TODT_BLEND, +Aspect_TODT_DIMENSION +}; + +#endif // _Aspect_TypeOfDisplayText_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfDrawMode.hxx b/src/Aspect/Aspect_TypeOfDrawMode.hxx new file mode 100644 index 0000000000..6a87e5701c --- /dev/null +++ b/src/Aspect/Aspect_TypeOfDrawMode.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_TypeOfDrawMode_HeaderFile +#define _Aspect_TypeOfDrawMode_HeaderFile + +//! Definition of the draw modes +enum Aspect_TypeOfDrawMode +{ +Aspect_TODM_REPLACE, +Aspect_TODM_ERASE, +Aspect_TODM_XOR, +Aspect_TODM_XORLIGHT +}; + +#endif // _Aspect_TypeOfDrawMode_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfEdge.hxx b/src/Aspect/Aspect_TypeOfEdge.hxx new file mode 100644 index 0000000000..6756a131b1 --- /dev/null +++ b/src/Aspect/Aspect_TypeOfEdge.hxx @@ -0,0 +1,29 @@ +// 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_TypeOfEdge_HeaderFile +#define _Aspect_TypeOfEdge_HeaderFile + +//! Definition of edge visibility +//! +//! TOE_VISIBLE Edge is displayed +//! TOE_INVISIBLE Edge is not displayed +enum Aspect_TypeOfEdge +{ +Aspect_TOE_VISIBLE, +Aspect_TOE_INVISIBLE +}; + +#endif // _Aspect_TypeOfEdge_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfFacingModel.hxx b/src/Aspect/Aspect_TypeOfFacingModel.hxx new file mode 100644 index 0000000000..9701a90381 --- /dev/null +++ b/src/Aspect/Aspect_TypeOfFacingModel.hxx @@ -0,0 +1,27 @@ +// 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/src/Aspect/Aspect_TypeOfHighlightMethod.hxx b/src/Aspect/Aspect_TypeOfHighlightMethod.hxx new file mode 100644 index 0000000000..0365a34c43 --- /dev/null +++ b/src/Aspect/Aspect_TypeOfHighlightMethod.hxx @@ -0,0 +1,31 @@ +// 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_TypeOfHighlightMethod_HeaderFile +#define _Aspect_TypeOfHighlightMethod_HeaderFile + +//! Definition of a highlight method +//! +//! TOHM_COLOR drawn in the highlight color +//! (default white) +//! TOHM_BOUNDBOX enclosed by the boundary box +//! (default white) +enum Aspect_TypeOfHighlightMethod +{ +Aspect_TOHM_COLOR, +Aspect_TOHM_BOUNDBOX +}; + +#endif // _Aspect_TypeOfHighlightMethod_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfLayer.hxx b/src/Aspect/Aspect_TypeOfLayer.hxx new file mode 100644 index 0000000000..3bd4ff2c78 --- /dev/null +++ b/src/Aspect/Aspect_TypeOfLayer.hxx @@ -0,0 +1,31 @@ +// 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_TypeOfLayer_HeaderFile +#define _Aspect_TypeOfLayer_HeaderFile + +//! Modes of drawing for the objects in a layer +//! +//! TOL_OVERLAY, the graphic of the layer is draw +//! after the 3d graphic. +//! TOL_UNDERLAY, the graphic of the layer is draw +//! before the 3d graphic. +enum Aspect_TypeOfLayer +{ +Aspect_TOL_OVERLAY, +Aspect_TOL_UNDERLAY +}; + +#endif // _Aspect_TypeOfLayer_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfLine.hxx b/src/Aspect/Aspect_TypeOfLine.hxx new file mode 100644 index 0000000000..0439b6827c --- /dev/null +++ b/src/Aspect/Aspect_TypeOfLine.hxx @@ -0,0 +1,35 @@ +// 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_TypeOfLine_HeaderFile +#define _Aspect_TypeOfLine_HeaderFile + +//! Definition of line types +//! +//! TOL_SOLID continuous +//! TOL_DASH dashed 2.0,1.0 (MM) +//! TOL_DOT dotted 0.2,0.5 (MM) +//! TOL_DOTDASH mixed 10.0,1.0,2.0,1.0 (MM) +//! TOL_USERDEFINED defined by Users +enum Aspect_TypeOfLine +{ +Aspect_TOL_SOLID, +Aspect_TOL_DASH, +Aspect_TOL_DOT, +Aspect_TOL_DOTDASH, +Aspect_TOL_USERDEFINED +}; + +#endif // _Aspect_TypeOfLine_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfMarker.hxx b/src/Aspect/Aspect_TypeOfMarker.hxx new file mode 100644 index 0000000000..01bb14b06e --- /dev/null +++ b/src/Aspect/Aspect_TypeOfMarker.hxx @@ -0,0 +1,53 @@ +// 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_TypeOfMarker_HeaderFile +#define _Aspect_TypeOfMarker_HeaderFile + +//! Definition of types of markers +//! +//! TOM_POINT point . +//! TOM_PLUS plus + +//! TOM_STAR star * +//! TOM_X cross x +//! TOM_O circle O +//! TOM_O_POINT a point in a circle +//! TOM_O_PLUS a plus in a circle +//! TOM_O_STAR a star in a circle +//! TOM_O_X a cross in a circle +//! TOM_RING1 a large ring +//! TOM_RING2 a medium ring +//! TOM_RING3 a small ring +//! TOM_BALL a ball with 1 color and different saturations +//! TOM_USERDEFINED defined by Users +enum Aspect_TypeOfMarker +{ +Aspect_TOM_POINT, +Aspect_TOM_PLUS, +Aspect_TOM_STAR, +Aspect_TOM_X, +Aspect_TOM_O, +Aspect_TOM_O_POINT, +Aspect_TOM_O_PLUS, +Aspect_TOM_O_STAR, +Aspect_TOM_O_X, +Aspect_TOM_RING1, +Aspect_TOM_RING2, +Aspect_TOM_RING3, +Aspect_TOM_BALL, +Aspect_TOM_USERDEFINED +}; + +#endif // _Aspect_TypeOfMarker_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfPrimitive.hxx b/src/Aspect/Aspect_TypeOfPrimitive.hxx new file mode 100644 index 0000000000..0daf356e48 --- /dev/null +++ b/src/Aspect/Aspect_TypeOfPrimitive.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_TypeOfPrimitive_HeaderFile +#define _Aspect_TypeOfPrimitive_HeaderFile + + +enum Aspect_TypeOfPrimitive +{ +Aspect_TOP_UNKNOWN, +Aspect_TOP_POLYLINE, +Aspect_TOP_POLYGON, +Aspect_TOP_SEGMENTS, +Aspect_TOP_ARCS, +Aspect_TOP_POLYARCS, +Aspect_TOP_POINTS, +Aspect_TOP_MARKERS +}; + +#endif // _Aspect_TypeOfPrimitive_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfResize.hxx b/src/Aspect/Aspect_TypeOfResize.hxx new file mode 100644 index 0000000000..4792fbbc7f --- /dev/null +++ b/src/Aspect/Aspect_TypeOfResize.hxx @@ -0,0 +1,35 @@ +// 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_TypeOfResize_HeaderFile +#define _Aspect_TypeOfResize_HeaderFile + +//! Defines the type of Resize Window method applied +//! by the user. +enum Aspect_TypeOfResize +{ +Aspect_TOR_UNKNOWN, +Aspect_TOR_NO_BORDER, +Aspect_TOR_TOP_BORDER, +Aspect_TOR_RIGHT_BORDER, +Aspect_TOR_BOTTOM_BORDER, +Aspect_TOR_LEFT_BORDER, +Aspect_TOR_TOP_AND_RIGHT_BORDER, +Aspect_TOR_RIGHT_AND_BOTTOM_BORDER, +Aspect_TOR_BOTTOM_AND_LEFT_BORDER, +Aspect_TOR_LEFT_AND_TOP_BORDER +}; + +#endif // _Aspect_TypeOfResize_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfStyleText.hxx b/src/Aspect/Aspect_TypeOfStyleText.hxx new file mode 100644 index 0000000000..68623079a4 --- /dev/null +++ b/src/Aspect/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/src/Aspect/Aspect_TypeOfTriedronEcho.hxx b/src/Aspect/Aspect_TypeOfTriedronEcho.hxx new file mode 100644 index 0000000000..b04324d6e5 --- /dev/null +++ b/src/Aspect/Aspect_TypeOfTriedronEcho.hxx @@ -0,0 +1,52 @@ +// 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_TypeOfTriedronEcho_HeaderFile +#define _Aspect_TypeOfTriedronEcho_HeaderFile + +//! Definition of the Triedron echo zone to highlight +//! +//! TOTE_NONE no echo zone +//! TOTE_ORIGIN a box on origin of the Triedron +//! TOTE_AXIS_X highlights the X axis +//! TOTE_AXIS_Y highlights the Y axis +//! TOTE_AXIS_Z highlights the Z axis +//! TOTE_TEXT_X highlights the X character +//! TOTE_TEXT_Y highlights the Y character +//! TOTE_TEXT_Z highlights the Z character +//! TOTE_01 to TOTE_10 not yet implemented. +enum Aspect_TypeOfTriedronEcho +{ +Aspect_TOTE_NONE, +Aspect_TOTE_ORIGIN, +Aspect_TOTE_AXIS_X, +Aspect_TOTE_AXIS_Y, +Aspect_TOTE_AXIS_Z, +Aspect_TOTE_TEXT_X, +Aspect_TOTE_TEXT_Y, +Aspect_TOTE_TEXT_Z, +Aspect_TOTE_01, +Aspect_TOTE_02, +Aspect_TOTE_03, +Aspect_TOTE_04, +Aspect_TOTE_05, +Aspect_TOTE_06, +Aspect_TOTE_07, +Aspect_TOTE_08, +Aspect_TOTE_09, +Aspect_TOTE_10 +}; + +#endif // _Aspect_TypeOfTriedronEcho_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfTriedronPosition.hxx b/src/Aspect/Aspect_TypeOfTriedronPosition.hxx new file mode 100644 index 0000000000..cbc875aeb5 --- /dev/null +++ b/src/Aspect/Aspect_TypeOfTriedronPosition.hxx @@ -0,0 +1,46 @@ +// 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_TypeOfTriedronPosition_HeaderFile +#define _Aspect_TypeOfTriedronPosition_HeaderFile + +//! Definition of the Triedron position in the views +//! +//! TOTP_CENTER at the center of the view +//! TOTP_LEFT_LOWER at the left lower corner +//! TOTP_LEFT_UPPER at the left upper corner +//! TOTP_RIGHT_LOWER at the right lower corner +//! TOTP_RIGHT_UPPER at the right upper corner +//! TOTP_01 to TOTP_10 not yet implemented. +enum Aspect_TypeOfTriedronPosition +{ +Aspect_TOTP_CENTER, +Aspect_TOTP_LEFT_LOWER, +Aspect_TOTP_LEFT_UPPER, +Aspect_TOTP_RIGHT_LOWER, +Aspect_TOTP_RIGHT_UPPER, +Aspect_TOTP_01, +Aspect_TOTP_02, +Aspect_TOTP_03, +Aspect_TOTP_04, +Aspect_TOTP_05, +Aspect_TOTP_06, +Aspect_TOTP_07, +Aspect_TOTP_08, +Aspect_TOTP_09, +Aspect_TOTP_10 +}; + +#endif // _Aspect_TypeOfTriedronPosition_HeaderFile diff --git a/src/Aspect/Aspect_TypeOfUpdate.hxx b/src/Aspect/Aspect_TypeOfUpdate.hxx new file mode 100644 index 0000000000..69fa6a5a40 --- /dev/null +++ b/src/Aspect/Aspect_TypeOfUpdate.hxx @@ -0,0 +1,29 @@ +// 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_TypeOfUpdate_HeaderFile +#define _Aspect_TypeOfUpdate_HeaderFile + +//! Definition of screen refresh mode +//! +//! TOU_ASAP as soon as possible +//! TOU_WAIT on demand (Update) +enum Aspect_TypeOfUpdate +{ +Aspect_TOU_ASAP, +Aspect_TOU_WAIT +}; + +#endif // _Aspect_TypeOfUpdate_HeaderFile diff --git a/src/Aspect/Aspect_WOKSteps.edl b/src/Aspect/Aspect_WOKSteps.edl deleted file mode 100644 index 6a6732707b..0000000000 --- a/src/Aspect/Aspect_WOKSteps.edl +++ /dev/null @@ -1,15 +0,0 @@ --- Created by: bgn - Creation - 03-06-98 --- 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. - -@set %WOKSteps_UseSourceInclude = ""; diff --git a/src/Aspect/Aspect_WidthOfLine.hxx b/src/Aspect/Aspect_WidthOfLine.hxx new file mode 100644 index 0000000000..e8eb031331 --- /dev/null +++ b/src/Aspect/Aspect_WidthOfLine.hxx @@ -0,0 +1,35 @@ +// 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_WidthOfLine_HeaderFile +#define _Aspect_WidthOfLine_HeaderFile + +//! Definition of line types +//! +//! WOL_THIN thin line (1 pixel width) +//! WOL_MEDIUM medium width of 0.5 MM +//! WOL_THICK thick width of 0.7 MM +//! WOL_VERYTHICK very thick width of 1.5 MM +//! WOL_USERDEFINED defined by Users +enum Aspect_WidthOfLine +{ +Aspect_WOL_THIN, +Aspect_WOL_MEDIUM, +Aspect_WOL_THICK, +Aspect_WOL_VERYTHICK, +Aspect_WOL_USERDEFINED +}; + +#endif // _Aspect_WidthOfLine_HeaderFile diff --git a/src/Aspect/Aspect_Window.cdl b/src/Aspect/Aspect_Window.cdl deleted file mode 100644 index 69ecfb7624..0000000000 --- a/src/Aspect/Aspect_Window.cdl +++ /dev/null @@ -1,175 +0,0 @@ --- 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. - -deferred class Window from Aspect - ---Purpose: Defines a window. -inherits - TShared from MMgt - -uses - Background from Aspect, - Drawable from Aspect, - GradientBackground from Aspect, - TypeOfResize from Aspect, - FillMethod from Aspect, - GradientFillMethod from Aspect, - Handle from Aspect, - Ratio from Quantity, - Parameter from Quantity, - NameOfColor from Quantity, - Color from Quantity, - AsciiString from TCollection - -raises - WindowDefinitionError from Aspect, - WindowError from Aspect - -is - Initialize; - ---Level: Public - ---Purpose: Initializes the datas of a Window. - - --------------------------------------------------- - -- Category: Methods to modify the class definition - --------------------------------------------------- - - SetBackground ( me : mutable; - ABack : Background from Aspect ); - ---Level: Public - ---Purpose: Modifies the window background. - ---Category: Methods to modify the class definition - - SetBackground ( me : mutable ; - theNameOfColor : NameOfColor from Quantity ); - ---Level: Public - ---Purpose: Modifies the window background from a Named Color. - ---Category: Methods to modify the class definition - - SetBackground ( me : mutable; color : Color from Quantity ); - ---Level: Public - ---Purpose: Modifies the window background. - ---Category: Methods to modify the class definition - - SetBackground( me: mutable; - ABackground: GradientBackground from Aspect); - ---Level: Public - ---Purpose: Modifies the window gradient background. - ---Category: Methods to modify the class definition - - SetBackground( me: mutable; - theFirstColor: Color from Quantity; - theSecondColor: Color from Quantity; - theFillMethod: GradientFillMethod from Aspect); - ---Level: Public - ---Purpose: Modifies the window gradient background. - ---Category: Methods to modify the class definition - - Map ( me ) - raises WindowError from Aspect is deferred; - ---Level: Public - ---Purpose: Opens the window . - ---Category: Methods to modify the class definition - - Unmap ( me ) - raises WindowError from Aspect is deferred; - ---Level: Public - ---Purpose: Closes the window . - ---Category: Methods to modify the class definition - - DoResize ( me ) returns TypeOfResize from Aspect - raises WindowError from Aspect is deferred; - ---Level: Advanced - ---Purpose: Apply the resizing to the window . - ---Category: Methods to modify the class definition - - DoMapping ( me ) returns Boolean from Standard - raises WindowError from Aspect is deferred; - ---Level: Advanced - ---Purpose: Apply the mapping change to the window . - -- and returns TRUE if the window is mapped at screen. - ---Category: Methods to modify the class definition - - Destroy ( me : mutable ) - raises WindowError from Aspect is deferred; - ---Level: Advanced - ---Purpose: Destroy the Window - ---Category: Methods to modify the class definition - - ---------------------------- - -- Category: Inquire methods - ---------------------------- - - Background ( me ) returns Background from Aspect; - ---Level: Public - ---Purpose: Returns the window background. - ---Category: Inquire methods - - BackgroundFillMethod( me ) returns FillMethod from Aspect; - ---Level: Public - ---Purpose: Returns the current image background fill mode. - - GradientBackground ( me ) returns GradientBackground from Aspect; - ---Level: Public - ---Purpose: Returns the window gradient background. - - IsMapped ( me ) returns Boolean from Standard is deferred; - ---Level: Public - ---Purpose: Returns True if the window is opened - -- and False if the window is closed. - ---Category: Inquire methods - - IsVirtual ( me ) returns Boolean from Standard; - ---Level: Public - ---Purpose: Returns True if the window is virtual - ---Category: Inquire methods - - SetVirtual ( me : mutable; - theVirtual : Boolean from Standard ); - ---Level: Public - ---Purpose: Setup the virtual state - ---Category: Inquire methods - - Ratio ( me ) returns Ratio from Quantity is deferred; - ---Level: Public - ---Purpose: Returns The Window RATIO equal to the physical - -- WIDTH/HEIGHT dimensions - ---Category: Inquire methods - - Position ( me ; - X1, Y1, X2, Y2 : out Integer from Standard ) - is deferred; - ---Level: Public - ---Purpose: Returns The Window POSITION in PIXEL - ---Category: Inquire methods - - Size ( me ; - Width, Height : out Integer from Standard ) - is deferred; - ---Level: Public - ---Purpose: Returns The Window SIZE in PIXEL - ---Category: Inquire methods - - NativeHandle ( me ) returns Drawable from Aspect is deferred; - ---Purpose: Returns native Window handle (HWND on Windows, Window with Xlib, and so on) - - NativeParentHandle ( me ) returns Drawable from Aspect is deferred; - ---Purpose: Returns parent of native Window handle (HWND on Windows, Window with Xlib, and so on) - -fields - MyBackground : Background from Aspect is protected; - MyGradientBackground : GradientBackground from Aspect is protected; - MyBackgroundFillMethod : FillMethod from Aspect is protected; - MyIsVirtual : Boolean from Standard is protected; -end Window; diff --git a/src/Aspect/Aspect_Window.cxx b/src/Aspect/Aspect_Window.cxx index f9b31231d7..0add021068 100644 --- a/src/Aspect/Aspect_Window.cxx +++ b/src/Aspect/Aspect_Window.cxx @@ -15,31 +15,26 @@ // Modified: GG 28/11/00 G002 // Add BackgroundImage() and BackgroundFillMethod() methods - - //-Version - //-Design Creation d'une fenetre - //-Warning - //-References - //-Language C++ 2.0 - //-Declarations - // for the class -#include -//-Aliases +#include +#include +#include +#include +#include +#include +#include +//-Aliases //-Global data definitions - //-Destructors - //-Constructors - Aspect_Window::Aspect_Window() : MyBackground(), MyGradientBackground(), diff --git a/src/Aspect/Aspect_Window.hxx b/src/Aspect/Aspect_Window.hxx new file mode 100644 index 0000000000..690f7b99e5 --- /dev/null +++ b/src/Aspect/Aspect_Window.hxx @@ -0,0 +1,146 @@ +// 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_Window_HeaderFile +#define _Aspect_Window_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Aspect_WindowDefinitionError; +class Aspect_WindowError; +class Aspect_Background; +class Quantity_Color; +class Aspect_GradientBackground; + + +class Aspect_Window; +DEFINE_STANDARD_HANDLE(Aspect_Window, MMgt_TShared) + +//! Defines a window. +class Aspect_Window : public MMgt_TShared +{ + +public: + + + //! Modifies the window background. + Standard_EXPORT void SetBackground (const Aspect_Background& ABack); + + //! Modifies the window background from a Named Color. + Standard_EXPORT void SetBackground (const Quantity_NameOfColor theNameOfColor); + + //! Modifies the window background. + Standard_EXPORT void SetBackground (const Quantity_Color& color); + + //! Modifies the window gradient background. + Standard_EXPORT void SetBackground (const Aspect_GradientBackground& ABackground); + + //! Modifies the window gradient background. + Standard_EXPORT void SetBackground (const Quantity_Color& theFirstColor, const Quantity_Color& theSecondColor, const Aspect_GradientFillMethod theFillMethod); + + //! Opens the window . + Standard_EXPORT virtual void Map() const = 0; + + //! Closes the window . + Standard_EXPORT virtual void Unmap() const = 0; + + //! Apply the resizing to the window . + Standard_EXPORT virtual Aspect_TypeOfResize DoResize() const = 0; + + //! Apply the mapping change to the window . + //! and returns TRUE if the window is mapped at screen. + Standard_EXPORT virtual Standard_Boolean DoMapping() const = 0; + + //! Destroy the Window + Standard_EXPORT virtual void Destroy() = 0; + + //! Returns the window background. + Standard_EXPORT Aspect_Background Background() const; + + //! Returns the current image background fill mode. + Standard_EXPORT Aspect_FillMethod BackgroundFillMethod() const; + + //! Returns the window gradient background. + Standard_EXPORT Aspect_GradientBackground GradientBackground() const; + + //! Returns True if the window is opened + //! and False if the window is closed. + Standard_EXPORT virtual Standard_Boolean IsMapped() const = 0; + + //! Returns True if the window is virtual + Standard_EXPORT Standard_Boolean IsVirtual() const; + + //! Setup the virtual state + Standard_EXPORT void SetVirtual (const Standard_Boolean theVirtual); + + //! Returns The Window RATIO equal to the physical + //! WIDTH/HEIGHT dimensions + Standard_EXPORT virtual Quantity_Ratio Ratio() const = 0; + + //! Returns The Window POSITION in PIXEL + Standard_EXPORT virtual void Position (Standard_Integer& X1, Standard_Integer& Y1, Standard_Integer& X2, Standard_Integer& Y2) const = 0; + + //! Returns The Window SIZE in PIXEL + Standard_EXPORT virtual void Size (Standard_Integer& Width, Standard_Integer& Height) const = 0; + + //! Returns native Window handle (HWND on Windows, Window with Xlib, and so on) + Standard_EXPORT virtual Aspect_Drawable NativeHandle() const = 0; + + //! Returns parent of native Window handle (HWND on Windows, Window with Xlib, and so on) + Standard_EXPORT virtual Aspect_Drawable NativeParentHandle() const = 0; + + + + + DEFINE_STANDARD_RTTI(Aspect_Window,MMgt_TShared) + +protected: + + + //! Initializes the datas of a Window. + Standard_EXPORT Aspect_Window(); + + Aspect_Background MyBackground; + Aspect_GradientBackground MyGradientBackground; + Aspect_FillMethod MyBackgroundFillMethod; + Standard_Boolean MyIsVirtual; + + +private: + + + + +}; + + + + + + + +#endif // _Aspect_Window_HeaderFile diff --git a/src/Aspect/Aspect_WindowDefinitionError.hxx b/src/Aspect/Aspect_WindowDefinitionError.hxx new file mode 100644 index 0000000000..08df89a61a --- /dev/null +++ b/src/Aspect/Aspect_WindowDefinitionError.hxx @@ -0,0 +1,36 @@ +// 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_WindowDefinitionError_HeaderFile +#define _Aspect_WindowDefinitionError_HeaderFile + +#include +#include +#include +#include + +class Aspect_WindowDefinitionError; +DEFINE_STANDARD_HANDLE(Aspect_WindowDefinitionError, Standard_OutOfRange) + +#if !defined No_Exception && !defined No_Aspect_WindowDefinitionError + #define Aspect_WindowDefinitionError_Raise_if(CONDITION, MESSAGE) \ + if (CONDITION) Aspect_WindowDefinitionError::Raise(MESSAGE); +#else + #define Aspect_WindowDefinitionError_Raise_if(CONDITION, MESSAGE) +#endif + +DEFINE_STANDARD_EXCEPTION(Aspect_WindowDefinitionError, Standard_OutOfRange) + +#endif // _Aspect_WindowDefinitionError_HeaderFile diff --git a/src/Aspect/Aspect_WindowError.hxx b/src/Aspect/Aspect_WindowError.hxx new file mode 100644 index 0000000000..42bdfa9ebd --- /dev/null +++ b/src/Aspect/Aspect_WindowError.hxx @@ -0,0 +1,36 @@ +// 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_WindowError_HeaderFile +#define _Aspect_WindowError_HeaderFile + +#include +#include +#include +#include + +class Aspect_WindowError; +DEFINE_STANDARD_HANDLE(Aspect_WindowError, Standard_OutOfRange) + +#if !defined No_Exception && !defined No_Aspect_WindowError + #define Aspect_WindowError_Raise_if(CONDITION, MESSAGE) \ + if (CONDITION) Aspect_WindowError::Raise(MESSAGE); +#else + #define Aspect_WindowError_Raise_if(CONDITION, MESSAGE) +#endif + +DEFINE_STANDARD_EXCEPTION(Aspect_WindowError, Standard_OutOfRange) + +#endif // _Aspect_WindowError_HeaderFile diff --git a/src/Aspect/Aspect_XAtom.hxx b/src/Aspect/Aspect_XAtom.hxx new file mode 100644 index 0000000000..cb6f7eaf9b --- /dev/null +++ b/src/Aspect/Aspect_XAtom.hxx @@ -0,0 +1,27 @@ +// 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_XAtom_HeaderFile +#define _Aspect_XAtom_HeaderFile + +//! Defines custom identifiers(atoms) for X window custom named properties +//! +//! Category: Instantiated classes +enum Aspect_XAtom +{ +Aspect_XA_DELETE_WINDOW +}; + +#endif // _Aspect_XAtom_HeaderFile diff --git a/src/Aspect/FILES b/src/Aspect/FILES index dde6c290e4..9a4c62b8f7 100755 --- a/src/Aspect/FILES +++ b/src/Aspect/FILES @@ -1,17 +1,74 @@ -EXTERNLIB -Aspect_WOKSteps.edl -Aspect_CMPLRS.edl +Aspect_AspectFillArea.cxx +Aspect_AspectFillArea.hxx +Aspect_AspectFillAreaDefinitionError.hxx +Aspect_AspectLine.cxx +Aspect_AspectLine.hxx +Aspect_AspectLineDefinitionError.hxx +Aspect_AspectMarker.cxx +Aspect_AspectMarker.hxx +Aspect_AspectMarkerDefinitionError.hxx +Aspect_Background.cxx +Aspect_Background.hxx +Aspect_BadAccess.hxx +Aspect_CircularGrid.cxx +Aspect_CircularGrid.hxx Aspect_CLayer2d.hxx -Aspect_Handle.hxx -Aspect_XWD.hxx -Aspect_Units.hxx -Aspect_RenderingContext.hxx -Aspect_GraphicCallbackProc.hxx +Aspect_ColorScale.cxx +Aspect_ColorScale.hxx +Aspect_Convert.hxx Aspect_Display.hxx +Aspect_DisplayConnection.cxx +Aspect_DisplayConnection.hxx +Aspect_DisplayConnectionDefinitionError.hxx Aspect_Drawable.hxx -Aspect_PolygonOffsetMode.hxx +Aspect_DriverDefinitionError.hxx +Aspect_FillMethod.hxx +Aspect_GenId.cxx +Aspect_GenId.hxx Aspect_GradientBackground.cxx -Aspect_Convert.hxx -Aspect_DisplayConnection.hxx -Aspect_DisplayConnection.cxx +Aspect_GradientBackground.hxx +Aspect_GradientFillMethod.hxx +Aspect_GraphicCallbackProc.hxx +Aspect_GraphicDeviceDefinitionError.hxx +Aspect_Grid.cxx +Aspect_Grid.hxx +Aspect_GridDrawMode.hxx +Aspect_GridType.hxx +Aspect_Handle.hxx +Aspect_HatchStyle.hxx +Aspect_IdentDefinitionError.hxx +Aspect_InteriorStyle.hxx +Aspect_PolygonOffsetMode.hxx +Aspect_PrintAlgo.hxx +Aspect_RectangularGrid.cxx +Aspect_RectangularGrid.hxx +Aspect_RenderingContext.hxx Aspect_SequenceOfColor.hxx +Aspect_TypeOfColorScaleData.hxx +Aspect_TypeOfColorScaleOrientation.hxx +Aspect_TypeOfColorScalePosition.hxx +Aspect_TypeOfConstraint.hxx +Aspect_TypeOfDeflection.hxx +Aspect_TypeOfDisplayText.hxx +Aspect_TypeOfDrawMode.hxx +Aspect_TypeOfEdge.hxx +Aspect_TypeOfFacingModel.hxx +Aspect_TypeOfHighlightMethod.hxx +Aspect_TypeOfLayer.hxx +Aspect_TypeOfLine.hxx +Aspect_TypeOfMarker.hxx +Aspect_TypeOfPrimitive.hxx +Aspect_TypeOfResize.hxx +Aspect_TypeOfStyleText.hxx +Aspect_TypeOfTriedronEcho.hxx +Aspect_TypeOfTriedronPosition.hxx +Aspect_TypeOfUpdate.hxx +Aspect_Units.hxx +Aspect_WidthOfLine.hxx +Aspect_Window.cxx +Aspect_Window.hxx +Aspect_WindowDefinitionError.hxx +Aspect_WindowError.hxx +Aspect_XAtom.hxx +Aspect_XWD.hxx +EXTERNLIB diff --git a/src/BOPAlgo/BOPAlgo.cdl b/src/BOPAlgo/BOPAlgo.cdl deleted file mode 100644 index f59c73f7bd..0000000000 --- a/src/BOPAlgo/BOPAlgo.cdl +++ /dev/null @@ -1,93 +0,0 @@ --- 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. - -package BOPAlgo ----Purpose: - -uses - gp, - Bnd, - Message, - TopAbs, - Geom, - GeomAPI, - BRepClass3d, - TopoDS, - TopTools, - IntTools, - IntSurf, - -- - BOPDS, - BOPCol, - BOPTools -is - enumeration Operation is - COMMON, - FUSE, - CUT, - CUT21, - SECTION, - UNKNOWN - end Operation; - - enumeration CheckStatus is - CheckUnknown, - BadType, - SelfIntersect, - TooSmallEdge, - NonRecoverableFace, - IncompatibilityOfVertex, - IncompatibilityOfEdge, - IncompatibilityOfFace, - OperationAborted, - GeomAbs_C0, - InvalidCurveOnSurface, - NotValid - end CheckStatus; - - -- - -- classes - -- - deferred class Algo; - deferred class BuilderShape; - class PaveFiller; - class Builder; - class BOP; - class Section; - -- - deferred class BuilderArea; - class BuilderFace; - class WireEdgeSet; - class WireSplitter; - class ShellSplitter; - class BuilderSolid; - class Tools; - class SectionAttribute; - class CheckerSI; - class ArgumentAnalyzer; - class CheckResult; - class MakerVolume; - -- - -- pointers - -- - pointer PPaveFiller to PaveFiller from BOPAlgo; - pointer PWireEdgeSet to WireEdgeSet from BOPAlgo; - pointer PSection to Section from BOPAlgo; - pointer PBOP to BOP from BOPAlgo; - pointer PBuilder to Builder from BOPAlgo; - pointer PArgumentAnalyzer to ArgumentAnalyzer from BOPAlgo; - -- - imported ListOfCheckResult; - -end BOPAlgo; diff --git a/src/BOPAlgo/BOPAlgo_Algo.cdl b/src/BOPAlgo/BOPAlgo_Algo.cdl deleted file mode 100644 index 5af0c4466a..0000000000 --- a/src/BOPAlgo/BOPAlgo_Algo.cdl +++ /dev/null @@ -1,87 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -deferred class Algo from BOPAlgo - ---Purpose: provides the root interface for algorithms - -uses - BaseAllocator from BOPCol, - ProgressIndicator from Message - ---raises - -is - Initialize - returns Algo from BOPAlgo; - ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_Algo();" - - Initialize (theAllocator: BaseAllocator from BOPCol) - returns Algo from BOPAlgo; - - GetParallelMode(myclass) - returns Boolean; - - SetParallelMode(myclass; - theNewMode: Boolean from Standard); - - Perform(me:out) - is deferred; - - ErrorStatus (me) - returns Integer from Standard; - - WarningStatus (me) - returns Integer from Standard; - - CheckData(me:out) - is virtual protected; - - CheckResult(me:out) - is virtual protected; - - Allocator(me) - returns BaseAllocator from BOPCol; - ---C++: return const & - - SetRunParallel(me:out; - theFlag:Boolean from Standard); - ---Purpose: Set the flag of parallel processing - -- if is true the parallel processing is switched on - -- if is false the parallel processing is switched off - -- - RunParallel(me) - returns Boolean from Standard; - ---Purpose: Returns the flag of parallel processing - - SetProgressIndicator(me:out; - theObj: ProgressIndicator from Message); - ---Purpose: Set the Progress Indicator object. - - UserBreak(me) - is protected; - ---Purpose: Breaks the execution if the break signal - -- is indicated by myProgressIndicator. - - -fields - myAllocator : BaseAllocator from BOPCol is protected; - myErrorStatus : Integer from Standard is protected; - myWarningStatus : Integer from Standard is protected; - myRunParallel : Boolean from Standard is protected; - myProgressIndicator : ProgressIndicator from Message is protected; - -end Algo; diff --git a/src/BOPAlgo/BOPAlgo_Algo.cxx b/src/BOPAlgo/BOPAlgo_Algo.cxx index 6a34b54332..b51db21e81 100644 --- a/src/BOPAlgo/BOPAlgo_Algo.cxx +++ b/src/BOPAlgo/BOPAlgo_Algo.cxx @@ -15,12 +15,12 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include #include - -#include #include +#include namespace { diff --git a/src/BOPAlgo/BOPAlgo_Algo.hxx b/src/BOPAlgo/BOPAlgo_Algo.hxx new file mode 100644 index 0000000000..6e83b43aca --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_Algo.hxx @@ -0,0 +1,103 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_Algo_HeaderFile +#define _BOPAlgo_Algo_HeaderFile + +#include +#include +#include + +#include +#include +#include +class Message_ProgressIndicator; + + +//! provides the root interface for algorithms +class BOPAlgo_Algo +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT static Standard_Boolean GetParallelMode(); + + Standard_EXPORT static void SetParallelMode (const Standard_Boolean theNewMode); + + Standard_EXPORT virtual void Perform() = 0; + + Standard_EXPORT Standard_Integer ErrorStatus() const; + + Standard_EXPORT Standard_Integer WarningStatus() const; + + Standard_EXPORT const BOPCol_BaseAllocator& Allocator() const; + + //! Set the flag of parallel processing + //! if is true the parallel processing is switched on + //! if is false the parallel processing is switched off + Standard_EXPORT void SetRunParallel (const Standard_Boolean theFlag); + + //! Returns the flag of parallel processing + Standard_EXPORT Standard_Boolean RunParallel() const; + + //! Set the Progress Indicator object. + Standard_EXPORT void SetProgressIndicator (const Handle(Message_ProgressIndicator)& theObj); + + + + +protected: + + + Standard_EXPORT BOPAlgo_Algo(); +Standard_EXPORT virtual ~BOPAlgo_Algo(); + + Standard_EXPORT BOPAlgo_Algo(const BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT virtual void CheckData(); + + Standard_EXPORT virtual void CheckResult(); + + //! Breaks the execution if the break signal + //! is indicated by myProgressIndicator. + Standard_EXPORT void UserBreak() const; + + + BOPCol_BaseAllocator myAllocator; + Standard_Integer myErrorStatus; + Standard_Integer myWarningStatus; + Standard_Boolean myRunParallel; + Handle(Message_ProgressIndicator) myProgressIndicator; + + +private: + + + + + +}; + + + + + + + +#endif // _BOPAlgo_Algo_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cdl b/src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cdl deleted file mode 100644 index 90cfb123aa..0000000000 --- a/src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cdl +++ /dev/null @@ -1,213 +0,0 @@ --- 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. - -class ArgumentAnalyzer from BOPAlgo - inherits Algo from BOPAlgo - ---Purpose: check the validity of argument(s) for Boolean Operations - -uses - Shape from TopoDS, - Operation from BOPAlgo, - CheckStatus from BOPAlgo, - ShapeEnum from TopAbs, - ListOfCheckResult from BOPAlgo, - DataMapOfShapeReal from BOPCol - -is - Create - returns ArgumentAnalyzer; - ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_ArgumentAnalyzer();" - ---Purpose: empty constructor - - SetShape1(me: in out; TheShape: Shape from TopoDS); - ---Purpose: sets object shape - - SetShape2(me: in out; TheShape: Shape from TopoDS); - ---Purpose: sets tool shape - - GetShape1(me) - returns Shape from TopoDS; - ---C++: return const & - ---Purpose: returns object shape; - - GetShape2(me) - returns Shape from TopoDS; - ---C++: return const & - ---Purpose: returns tool shape - - ---options - OperationType(me: in out) - returns Operation from BOPAlgo; - ---C++: return & - ---Purpose: returns ref - - StopOnFirstFaulty(me: in out) - returns Boolean from Standard; - ---C++: return & - ---Purpose: returns ref - - ArgumentTypeMode(me: in out) - returns Boolean from Standard; - ---C++: return & - ---C++: inline - ---Purpose: Returns (modifiable) mode - -- that means checking types of shapes. - - Prepare(me: in out) - is protected; - ---Purpose: Prepares data; - - SelfInterMode(me: in out) - returns Boolean from Standard; - ---C++: return & - ---C++: inline - ---Purpose: Returns (modifiable) mode that means - -- checking of self-intersection of shapes. - - SmallEdgeMode(me: in out) - returns Boolean from Standard; - ---C++: return & - ---C++: inline - ---Purpose: Returns (modifiable) mode that means - -- checking of small edges. - - RebuildFaceMode(me: in out) - returns Boolean from Standard; - ---C++: return & - ---C++: inline - ---Purpose: Returns (modifiable) mode that means - -- checking of possibility to split or rebuild faces. - - TangentMode(me: in out) - returns Boolean from Standard; - ---C++: return & - ---C++: inline - ---Purpose: Returns (modifiable) mode that means - -- checking of tangency between subshapes. - - MergeVertexMode(me: in out) - returns Boolean from Standard; - ---C++: return & - ---C++: inline - ---Purpose: Returns (modifiable) mode that means - -- checking of problem of merging vertices. - - MergeEdgeMode(me: in out) - returns Boolean from Standard; - ---C++: return & - ---C++: inline - ---Purpose: Returns (modifiable) mode that means - -- checking of problem of merging edges. - - ContinuityMode(me: in out) - returns Boolean from Standard; - ---C++: return & - ---C++: inline - ---Purpose: Returns (modifiable) mode that means - -- checking of problem of continuity of the shape. - - CurveOnSurfaceMode(me: in out) - returns Boolean from Standard; - ---C++: return & - ---C++: inline - ---Purpose: Returns (modifiable) mode that means - -- checking of problem of invalid curve on surface. - - --- - Perform(me: out); - ---Purpose: performs analysis - - HasFaulty(me) - returns Boolean from Standard; - ---Purpose: result of test - - GetCheckResult(me) - returns ListOfCheckResult from BOPAlgo; - ---C++: return const & - ---Purpose: returns a result of test - - --- protected - TestTypes(me: out) - is protected; - - TestSelfInterferences(me: out) - is protected; - - TestSmallEdge(me: out) - is protected; - - TestRebuildFace(me: out) - is protected; - - TestTangent(me: out) - is protected; - - TestMergeSubShapes(me: out; theType: ShapeEnum from TopAbs) - is protected; - - TestMergeVertex(me: out) - is protected; - - TestMergeEdge(me: out) - is protected; - - TestContinuity(me: out) - is protected; - - TestCurveOnSurface(me: out) - is protected; - --- TestMergeFace(me: out) --- is protected; - - SetFuzzyValue(me:out; - theFuzz : Real from Standard); - ---C++: inline - ---Purpose: Sets the additional tolerance - - FuzzyValue(me) - returns Real from Standard; - ---C++: inline - ---Purpose: Returns the additional tolerance - - UpdateTolerances(me:out) - is protected; - ---Purpose: Updates the shapes tolerance values. - - SetDefaultTolerances(me:out) - is protected; - ---Purpose: Reverts the tolerance values for all entities to default values. - -fields - - myShape1 : Shape from TopoDS; - myShape2 : Shape from TopoDS; - myStopOnFirst : Boolean from Standard; - myOperation : Operation from BOPAlgo; - myArgumentTypeMode : Boolean from Standard; - mySelfInterMode : Boolean from Standard; - mySmallEdgeMode : Boolean from Standard; - myRebuildFaceMode : Boolean from Standard; - myTangentMode : Boolean from Standard; - myMergeVertexMode : Boolean from Standard; - myMergeEdgeMode : Boolean from Standard; - myContinuityMode : Boolean from Standard; - myCurveOnSurfaceMode : Boolean from Standard; - myEmpty1, myEmpty2 : Boolean from Standard; - myResult : ListOfCheckResult from BOPAlgo; - myFuzzyValue : Real from Standard; - myToleranceMap : DataMapOfShapeReal from BOPCol; - -end ArgumentAnalyzer; diff --git a/src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cxx b/src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cxx index 71c0e1e6e9..bb075bf244 100644 --- a/src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cxx +++ b/src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cxx @@ -12,57 +12,46 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include - #include - -#include - -#include - -#include +#include +#include #include -#include #include -#include +#include +#include #include #include +#include +#include -#include -#include -#include -#include -#include - -#include -#include - -#include // -#include -#include -#include - -#include -#include -#include - -#include - -#include -#include -#include - -#include -#include - -#include -#include -#include - // ================================================================================ // function: Constructor // purpose: diff --git a/src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.hxx b/src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.hxx new file mode 100644 index 0000000000..78ce595d53 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.hxx @@ -0,0 +1,186 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; + + +//! 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(); + + //! result of test + Standard_EXPORT Standard_Boolean HasFaulty() const; + + //! returns a result of test + Standard_EXPORT const BOPAlgo_ListOfCheckResult& GetCheckResult() const; + + //! Sets the additional tolerance + void SetFuzzyValue (const Standard_Real theFuzz); + + //! Returns the additional tolerance + Standard_Real FuzzyValue() const; + + + + +protected: + + + //! Prepares data; + Standard_EXPORT void Prepare(); + + Standard_EXPORT void TestTypes(); + + Standard_EXPORT void TestSelfInterferences(); + + 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(); + + //! Updates the shapes tolerance values. + Standard_EXPORT void UpdateTolerances(); + + //! Reverts the tolerance values for all entities to default values. + Standard_EXPORT void SetDefaultTolerances(); + + + + +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; + Standard_Real myFuzzyValue; + BOPCol_DataMapOfShapeReal myToleranceMap; + + +}; + + +#include + + + + + +#endif // _BOPAlgo_ArgumentAnalyzer_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_BOP.cdl b/src/BOPAlgo/BOPAlgo_BOP.cdl deleted file mode 100644 index 97646d045d..0000000000 --- a/src/BOPAlgo/BOPAlgo_BOP.cdl +++ /dev/null @@ -1,109 +0,0 @@ --- 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. - - -class BOP from BOPAlgo - inherits Builder from BOPAlgo - ----Purpose: - -uses - ShapeEnum from TopAbs, - Shape from TopoDS, - ListOfShape from TopTools, - -- - BaseAllocator from BOPCol, - ListOfShape from BOPCol, - MapOfShape from BOPCol, - IndexedDataMapOfShapeListOfShape from BOPCol, - -- - Operation from BOPAlgo, - PaveFiller from BOPAlgo - ---raises - -is - Create - ---Purpose: Empty constructor - returns BOP from BOPAlgo; - ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_BOP();" - - Create (theAllocator: BaseAllocator from BOPCol) - returns BOP from BOPAlgo; - - Clear(me:out) - is redefined; - ---Purpose: Clears internal fields and arguments - - AddTool (me:out; - theShape: Shape from TopoDS) - ---Purpose: Adds Tool argument of the operation - is virtual; - - SetTools (me:out; - theShapes: ListOfShape from BOPCol) - is virtual; - - SetOperation(me:out; - theOperation: Operation from BOPAlgo); - - Operation(me) - returns Operation from BOPAlgo; - -- - Perform(me:out) - is redefined; - -- - -- protected methods - -- - CheckData(me:out) - is redefined protected; - - Prepare(me:out) - is redefined protected; - ---Purpose: Provides preparing actions - - PerformInternal1(me:out; - thePF:PaveFiller from BOPAlgo) - is redefined protected; - ---Purpose: Performs calculations using prepared Filler - -- object - - BuildResult(me:out; - theType: ShapeEnum from TopAbs) - is redefined protected; - - BuildShape(me:out) - is protected; - - BuildRC(me:out) - is protected; - - BuildSolid(me:out) - is protected; - - IsBoundSplits(me:out; - theS:Shape from TopoDS; - theMEF:out IndexedDataMapOfShapeListOfShape from BOPCol) - returns Boolean from Standard - is protected; - -fields - myOperation : Operation from BOPAlgo is protected; - myDims : Integer from Standard[2] is protected; - -- - myRC : Shape from TopoDS is protected; - myTools : ListOfShape from BOPCol is protected; - myMapTools : MapOfShape from BOPCol is protected; - -end BOP; diff --git a/src/BOPAlgo/BOPAlgo_BOP.cxx b/src/BOPAlgo/BOPAlgo_BOP.cxx index 53f9c41a4e..234bfd81f9 100644 --- a/src/BOPAlgo/BOPAlgo_BOP.cxx +++ b/src/BOPAlgo/BOPAlgo_BOP.cxx @@ -12,39 +12,34 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include - -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include -#include - #include - #include #include #include -#include - -#include - -#include -#include -// #include #include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include #include +// typedef NCollection_DataMap +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class BOPAlgo_PaveFiller; + + + +class BOPAlgo_BOP : public BOPAlgo_Builder +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor + Standard_EXPORT BOPAlgo_BOP(); +Standard_EXPORT virtual ~BOPAlgo_BOP(); + + Standard_EXPORT BOPAlgo_BOP(const BOPCol_BaseAllocator& theAllocator); + + //! Clears internal fields and arguments + Standard_EXPORT virtual void Clear() Standard_OVERRIDE; + + //! Adds Tool argument of the operation + Standard_EXPORT virtual void AddTool (const TopoDS_Shape& theShape); + + Standard_EXPORT virtual void SetTools (const BOPCol_ListOfShape& theShapes); + + Standard_EXPORT void SetOperation (const BOPAlgo_Operation theOperation); + + Standard_EXPORT BOPAlgo_Operation Operation() const; + + Standard_EXPORT virtual void Perform() Standard_OVERRIDE; + + + + +protected: + + + Standard_EXPORT virtual void CheckData() Standard_OVERRIDE; + + //! Provides preparing actions + Standard_EXPORT virtual void Prepare() Standard_OVERRIDE; + + //! Performs calculations using prepared Filler + //! object + Standard_EXPORT virtual void PerformInternal1 (const BOPAlgo_PaveFiller& thePF) Standard_OVERRIDE; + + Standard_EXPORT virtual void BuildResult (const TopAbs_ShapeEnum theType) Standard_OVERRIDE; + + Standard_EXPORT void BuildShape(); + + Standard_EXPORT void BuildRC(); + + Standard_EXPORT void BuildSolid(); + + Standard_EXPORT Standard_Boolean IsBoundSplits (const TopoDS_Shape& theS, BOPCol_IndexedDataMapOfShapeListOfShape& theMEF); + + + BOPAlgo_Operation myOperation; + Standard_Integer myDims[2]; + TopoDS_Shape myRC; + BOPCol_ListOfShape myTools; + BOPCol_MapOfShape myMapTools; + + +private: + + + + + +}; + + + + + + + +#endif // _BOPAlgo_BOP_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_Builder.cdl b/src/BOPAlgo/BOPAlgo_Builder.cdl deleted file mode 100644 index 5f7d974ae7..0000000000 --- a/src/BOPAlgo/BOPAlgo_Builder.cdl +++ /dev/null @@ -1,248 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -class Builder from BOPAlgo - inherits BuilderShape from BOPAlgo - ----Purpose: - -uses - Box from Bnd, - ShapeEnum from TopAbs, - Shape from TopoDS, - ListOfShape from TopTools, - -- - BaseAllocator from BOPCol, - ListOfInteger from BOPCol, - ListOfShape from BOPCol, - MapOfShape from BOPCol, - DataMapOfShapeShape from BOPCol, - DataMapOfShapeListOfShape from BOPCol, - Context from IntTools, - PDS from BOPDS, - PaveFiller from BOPAlgo, - PPaveFiller from BOPAlgo - - ---raises - -is - - Create - returns Builder from BOPAlgo; - ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_Builder();" - - Create (theAllocator: BaseAllocator from BOPCol) - returns Builder from BOPAlgo; - - Clear(me:out) - is virtual; - - PPaveFiller(me:out) - returns PPaveFiller from BOPAlgo; - - PDS(me:out) - returns PDS from BOPDS; - - AddArgument (me:out; - theShape: Shape from TopoDS) - is virtual; - - SetArguments (me:out; - theLS: ListOfShape from BOPCol) - is virtual; - - Arguments(me) - returns ListOfShape from BOPCol; - ---C++: return const & - - - Perform(me:out) - is redefined; - - PerformWithFiller(me:out; - theFiller: PaveFiller from BOPAlgo) - is virtual; - - -- - -- History support - -- - PrepareHistory (me:out) - ---Purpose: Prepare information for history support - is redefined protected; - - Generated (me:out; - theS : Shape from TopoDS) - ---Purpose: Returns the list of shapes generated from the - -- shape theS. - returns ListOfShape from TopTools - is redefined; - ---C++: return const & - - Modified (me:out; - theS : Shape from TopoDS) - ---Purpose: Returns the list of shapes modified from the shape - -- theS. - returns ListOfShape from TopTools - is redefined; - ---C++: return const & - - IsDeleted (me:out; - theS : Shape from TopoDS) - ---Purpose: Returns true if the shape theS has been deleted. - returns Boolean from Standard - is redefined; - -- - -- Debug - -- - Images(me) - returns DataMapOfShapeListOfShape from BOPCol; - ---C++: return const & - - -- - -- - -- protected methods - -- - PerformInternal(me:out; - thePF: PaveFiller from BOPAlgo) - is virtual protected; - - PerformInternal1(me:out; - thePF: PaveFiller from BOPAlgo) - is virtual protected; - - CheckData(me:out) - is redefined protected; - - Prepare(me:out) - is virtual protected; - - FillImagesVertices(me:out) - is protected; - - FillImagesEdges(me:out) - is protected; - - - BuildResult(me:out; - theType: ShapeEnum from TopAbs) - is virtual protected; - - IsInterferred(me; - theS:Shape from TopoDS) - returns Boolean from Standard; - - FillImagesContainers(me:out; - theType:ShapeEnum from TopAbs) - is protected; - - FillImagesCompounds(me:out) - is protected; - - FillImagesContainer(me:out; - theS:Shape from TopoDS; - theType:ShapeEnum from TopAbs) - is protected; - - FillImagesCompound(me:out; - theS:Shape from TopoDS; - theMF:out MapOfShape from BOPCol) - is protected; - - FillImagesFaces (me:out) - is protected; - - BuildSplitFaces (me:out) - is virtual protected; - - FillSameDomainFaces (me:out) - is protected; - - FillImagesFaces1 (me:out) - is protected; - -- - -- solids - -- - FillImagesSolids(me:out) - is protected; - - BuildDraftSolid(me:out; - theSolid:Shape from TopoDS; - theDraftSolid:out Shape from TopoDS; - theLIF:out ListOfShape from BOPCol) - is protected; - - FillIn3DParts(me:out; - theInParts:out DataMapOfShapeListOfShape from BOPCol; - theDraftSolids:out DataMapOfShapeShape from BOPCol; - theAllocator:BaseAllocator from BOPCol) - is virtual protected; - - BuildSplitSolids(me:out; - theInParts:out DataMapOfShapeListOfShape from BOPCol; - theDraftSolids:out DataMapOfShapeShape from BOPCol; - theAllocator:BaseAllocator from BOPCol) - is protected; - - FillInternalShapes(me:out) - is protected; - -- - -- misc - -- - PostTreat (me:out) - is virtual protected; - - Origins(me) - returns DataMapOfShapeShape from BOPCol; - ---C++: return const & - ---Purpose: Returns myOrigins. - - ShapesSD(me) - returns DataMapOfShapeShape from BOPCol; - ---C++: return const & - ---Purpose: Returns myShapesSD. - - Splits (me) - returns DataMapOfShapeListOfShape from BOPCol; - ---C++: return const & - ---Purpose: Returns mySplits. - - SetFuzzyValue(me:out; - theFuzz : Real from Standard); - ---Purpose: Sets the additional tolerance - - FuzzyValue(me) - returns Real from Standard; - ---Purpose: Returns the additional tolerance - -fields - myArguments : ListOfShape from BOPCol is protected; - myMapFence : MapOfShape from BOPCol is protected; - myPaveFiller : PPaveFiller from BOPAlgo is protected; - myDS : PDS from BOPDS is protected; - myContext : Context from IntTools is protected; - myEntryPoint : Integer from Standard is protected; - -- - myImages : DataMapOfShapeListOfShape from BOPCol is protected; - myShapesSD : DataMapOfShapeShape from BOPCol is protected; - -- - mySplits : DataMapOfShapeListOfShape from BOPCol is protected; - myOrigins : DataMapOfShapeShape from BOPCol is protected; - myFuzzyValue : Real from Standard is protected; - -end Builder; - diff --git a/src/BOPAlgo/BOPAlgo_Builder.cxx b/src/BOPAlgo/BOPAlgo_Builder.cxx index 6a979d789f..8ef995ebe5 100644 --- a/src/BOPAlgo/BOPAlgo_Builder.cxx +++ b/src/BOPAlgo/BOPAlgo_Builder.cxx @@ -15,17 +15,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include #include #include - -#include - #include -#include - -#include +#include #include //======================================================================= diff --git a/src/BOPAlgo/BOPAlgo_Builder.hxx b/src/BOPAlgo/BOPAlgo_Builder.hxx new file mode 100644 index 0000000000..c98a8f0c3b --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_Builder.hxx @@ -0,0 +1,181 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_Builder_HeaderFile +#define _BOPAlgo_Builder_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class IntTools_Context; +class TopoDS_Shape; +class BOPAlgo_PaveFiller; + + + +class BOPAlgo_Builder : public BOPAlgo_BuilderShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BOPAlgo_Builder(); +Standard_EXPORT virtual ~BOPAlgo_Builder(); + + Standard_EXPORT BOPAlgo_Builder(const BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT virtual void Clear(); + + Standard_EXPORT BOPAlgo_PPaveFiller PPaveFiller(); + + Standard_EXPORT BOPDS_PDS PDS(); + + Standard_EXPORT virtual void AddArgument (const TopoDS_Shape& theShape); + + Standard_EXPORT virtual void SetArguments (const BOPCol_ListOfShape& theLS); + + Standard_EXPORT const BOPCol_ListOfShape& Arguments() const; + + Standard_EXPORT virtual void Perform() Standard_OVERRIDE; + + Standard_EXPORT virtual void PerformWithFiller (const BOPAlgo_PaveFiller& theFiller); + + //! Returns the list of shapes generated from the + //! shape theS. + Standard_EXPORT virtual const TopTools_ListOfShape& Generated (const TopoDS_Shape& theS) Standard_OVERRIDE; + + //! Returns the list of shapes modified from the shape + //! theS. + Standard_EXPORT virtual const TopTools_ListOfShape& Modified (const TopoDS_Shape& theS) Standard_OVERRIDE; + + //! Returns true if the shape theS has been deleted. + Standard_EXPORT virtual Standard_Boolean IsDeleted (const TopoDS_Shape& theS) Standard_OVERRIDE; + + Standard_EXPORT const BOPCol_DataMapOfShapeListOfShape& Images() const; + + Standard_EXPORT Standard_Boolean IsInterferred (const TopoDS_Shape& theS) const; + + //! Returns myOrigins. + Standard_EXPORT const BOPCol_DataMapOfShapeShape& Origins() const; + + //! Returns myShapesSD. + Standard_EXPORT const BOPCol_DataMapOfShapeShape& ShapesSD() const; + + //! Returns mySplits. + Standard_EXPORT const BOPCol_DataMapOfShapeListOfShape& Splits() const; + + //! Sets the additional tolerance + Standard_EXPORT void SetFuzzyValue (const Standard_Real theFuzz); + + //! Returns the additional tolerance + Standard_EXPORT Standard_Real FuzzyValue() const; + + + + +protected: + + + //! Prepare information for history support + Standard_EXPORT virtual void PrepareHistory() Standard_OVERRIDE; + + Standard_EXPORT virtual void PerformInternal (const BOPAlgo_PaveFiller& thePF); + + Standard_EXPORT virtual void PerformInternal1 (const BOPAlgo_PaveFiller& thePF); + + Standard_EXPORT virtual void CheckData() Standard_OVERRIDE; + + Standard_EXPORT virtual void Prepare(); + + Standard_EXPORT void FillImagesVertices(); + + Standard_EXPORT void FillImagesEdges(); + + Standard_EXPORT virtual void BuildResult (const TopAbs_ShapeEnum theType); + + Standard_EXPORT void FillImagesContainers (const TopAbs_ShapeEnum theType); + + Standard_EXPORT void FillImagesCompounds(); + + Standard_EXPORT void FillImagesContainer (const TopoDS_Shape& theS, const TopAbs_ShapeEnum theType); + + Standard_EXPORT void FillImagesCompound (const TopoDS_Shape& theS, BOPCol_MapOfShape& theMF); + + Standard_EXPORT void FillImagesFaces(); + + Standard_EXPORT virtual void BuildSplitFaces(); + + Standard_EXPORT void FillSameDomainFaces(); + + Standard_EXPORT void FillImagesFaces1(); + + Standard_EXPORT void FillImagesSolids(); + + Standard_EXPORT void BuildDraftSolid (const TopoDS_Shape& theSolid, TopoDS_Shape& theDraftSolid, BOPCol_ListOfShape& theLIF); + + Standard_EXPORT virtual void FillIn3DParts (BOPCol_DataMapOfShapeListOfShape& theInParts, BOPCol_DataMapOfShapeShape& theDraftSolids, const BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT void BuildSplitSolids (BOPCol_DataMapOfShapeListOfShape& theInParts, BOPCol_DataMapOfShapeShape& theDraftSolids, const BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT void FillInternalShapes(); + + Standard_EXPORT virtual void PostTreat(); + + + BOPCol_ListOfShape myArguments; + BOPCol_MapOfShape myMapFence; + BOPAlgo_PPaveFiller myPaveFiller; + BOPDS_PDS myDS; + Handle(IntTools_Context) myContext; + Standard_Integer myEntryPoint; + BOPCol_DataMapOfShapeListOfShape myImages; + BOPCol_DataMapOfShapeShape myShapesSD; + BOPCol_DataMapOfShapeListOfShape mySplits; + BOPCol_DataMapOfShapeShape myOrigins; + Standard_Real myFuzzyValue; + + +private: + + + + + +}; + + + + + + + +#endif // _BOPAlgo_Builder_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_BuilderArea.cdl b/src/BOPAlgo/BOPAlgo_BuilderArea.cdl deleted file mode 100644 index 7d6fa7876b..0000000000 --- a/src/BOPAlgo/BOPAlgo_BuilderArea.cdl +++ /dev/null @@ -1,79 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -deferred class BuilderArea from BOPAlgo - inherits Algo from BOPAlgo - - ---Purpose: The root class for algorithms to build - -- faces/solids from set of edges/faces - -uses - Shape from TopoDS, - BaseAllocator from BOPCol, - ListOfShape from BOPCol, - MapOfOrientedShape from BOPCol, - Context from IntTools - ---raises - -is - Initialize - returns BuilderArea from BOPAlgo; - ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_BuilderArea();" - - Initialize(theAllocator: BaseAllocator from BOPCol) - returns BuilderArea from BOPAlgo; - - SetContext(me:out; - theContext:Context from IntTools); - - Shapes(me) - returns ListOfShape from BOPCol; - ---C++: return const & - ---C++: alias "Standard_EXPORT void SetShapes(const BOPCol_ListOfShape& theLS);" - - Loops(me) - returns ListOfShape from BOPCol; - ---C++: return const & - - Areas(me) - returns ListOfShape from BOPCol; - ---C++: return const & - - PerformShapesToAvoid(me:out) - is deferred protected; - - PerformLoops(me:out) - is deferred protected; - - PerformAreas(me:out) - is deferred protected; - - PerformInternalShapes(me:out) - is deferred protected; - -fields - myContext : Context from IntTools is protected; - myShapes : ListOfShape from BOPCol is protected; - myLoops : ListOfShape from BOPCol is protected; - myLoopsInternal : ListOfShape from BOPCol is protected; - - myAreas : ListOfShape from BOPCol is protected; - myShapesToAvoid : MapOfOrientedShape from BOPCol is protected; - -end BuilderArea; - diff --git a/src/BOPAlgo/BOPAlgo_BuilderArea.cxx b/src/BOPAlgo/BOPAlgo_BuilderArea.cxx index 46145708a7..3acd2404d0 100644 --- a/src/BOPAlgo/BOPAlgo_BuilderArea.cxx +++ b/src/BOPAlgo/BOPAlgo_BuilderArea.cxx @@ -15,11 +15,12 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include #include -#include +#include #include +#include //======================================================================= //function : diff --git a/src/BOPAlgo/BOPAlgo_BuilderArea.hxx b/src/BOPAlgo/BOPAlgo_BuilderArea.hxx new file mode 100644 index 0000000000..092d479168 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_BuilderArea.hxx @@ -0,0 +1,92 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_BuilderArea_HeaderFile +#define _BOPAlgo_BuilderArea_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class IntTools_Context; + + +//! The root class for algorithms to build +//! faces/solids from set of edges/faces +class BOPAlgo_BuilderArea : public BOPAlgo_Algo +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT void SetContext (const Handle(IntTools_Context)& theContext); + + Standard_EXPORT const BOPCol_ListOfShape& Shapes() const; +Standard_EXPORT void SetShapes(const BOPCol_ListOfShape& theLS); + + Standard_EXPORT const BOPCol_ListOfShape& Loops() const; + + Standard_EXPORT const BOPCol_ListOfShape& Areas() const; + + + + +protected: + + + Standard_EXPORT BOPAlgo_BuilderArea(); +Standard_EXPORT virtual ~BOPAlgo_BuilderArea(); + + Standard_EXPORT BOPAlgo_BuilderArea(const BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT virtual void PerformShapesToAvoid() = 0; + + Standard_EXPORT virtual void PerformLoops() = 0; + + Standard_EXPORT virtual void PerformAreas() = 0; + + Standard_EXPORT virtual void PerformInternalShapes() = 0; + + + Handle(IntTools_Context) myContext; + BOPCol_ListOfShape myShapes; + BOPCol_ListOfShape myLoops; + BOPCol_ListOfShape myLoopsInternal; + BOPCol_ListOfShape myAreas; + BOPCol_MapOfOrientedShape myShapesToAvoid; + + +private: + + + + + +}; + + + + + + + +#endif // _BOPAlgo_BuilderArea_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_BuilderFace.cdl b/src/BOPAlgo/BOPAlgo_BuilderFace.cdl deleted file mode 100644 index e587cd36d6..0000000000 --- a/src/BOPAlgo/BOPAlgo_BuilderFace.cdl +++ /dev/null @@ -1,83 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -class BuilderFace from BOPAlgo - inherits BuilderArea from BOPAlgo - - ---Purpose: The algorithm to build faces from set of edges - -uses - Orientation from TopAbs, - Face from TopoDS, - BaseAllocator from BOPCol ---raises - -is - Create - returns BuilderFace from BOPAlgo; - ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_BuilderFace();" - - Create (theAllocator: BaseAllocator from BOPCol) - returns BuilderFace from BOPAlgo; - - SetFace(me:out; - theFace:Face from TopoDS); - ---Purpose: Sets the face generatix - - Face(me) - ---Purpose: Returns the face generatix - returns Face from TopoDS; - ---C++: return const & - - Perform(me:out) - ---Purpose: Performs the algorithm - is redefined; - - PerformShapesToAvoid(me:out) - ---Purpose: Collect the edges that - -- a) are internal - -- b) are the same and have different orientation - is redefined protected; - - PerformLoops(me:out) - ---Purpose: Build draft wires - -- a)myLoops - draft wires that consist of - -- boundary edges - -- b)myLoopsInternal - draft wires that contains - -- inner edges - is redefined protected; - - PerformAreas(me:out) - ---Purpose: Build draft faces that contains boundary edges - is redefined protected; - - PerformInternalShapes(me:out) - ---Purpose: Build finalized faces with internals - is redefined protected; - - CheckData(me:out) - is redefined protected; - - Orientation(me) - returns Orientation from TopAbs; - -fields - myFace : Face from TopoDS is protected; - myOrientation: Orientation from TopAbs is protected; - -end BuilderFace; - diff --git a/src/BOPAlgo/BOPAlgo_BuilderFace.cxx b/src/BOPAlgo/BOPAlgo_BuilderFace.cxx index b1c5387c0d..9f27d2a2c3 100644 --- a/src/BOPAlgo/BOPAlgo_BuilderFace.cxx +++ b/src/BOPAlgo/BOPAlgo_BuilderFace.cxx @@ -16,60 +16,60 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -// -#include -#include -// -#include -// -#include -#include -#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include -// -#include -// +#include +#include +#include +#include +#include +#include +#include #include +#include +#include #include -// -#include +#include #include +#include #include -#include -#include #include +#include + +// +// +// +// +// +// // -#include -#include -#include // -#include // -#include // -#include -#include - -#include -#include // -#include -#include -#include // -#include -#include -#include // -#include -#include -#include -#include // -#include - static Standard_Boolean IsGrowthWire(const TopoDS_Shape& , const BOPCol_IndexedMapOfShape& ); diff --git a/src/BOPAlgo/BOPAlgo_BuilderFace.hxx b/src/BOPAlgo/BOPAlgo_BuilderFace.hxx new file mode 100644 index 0000000000..2b4377b2ea --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_BuilderFace.hxx @@ -0,0 +1,101 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_BuilderFace_HeaderFile +#define _BOPAlgo_BuilderFace_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class TopoDS_Face; + + +//! The algorithm to build faces from set of edges +class BOPAlgo_BuilderFace : public BOPAlgo_BuilderArea +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BOPAlgo_BuilderFace(); +Standard_EXPORT virtual ~BOPAlgo_BuilderFace(); + + Standard_EXPORT BOPAlgo_BuilderFace(const BOPCol_BaseAllocator& theAllocator); + + //! Sets the face generatix + Standard_EXPORT void SetFace (const TopoDS_Face& theFace); + + //! Returns the face generatix + Standard_EXPORT const TopoDS_Face& Face() const; + + //! Performs the algorithm + Standard_EXPORT virtual void Perform() Standard_OVERRIDE; + + Standard_EXPORT TopAbs_Orientation Orientation() const; + + + + +protected: + + + //! Collect the edges that + //! a) are internal + //! b) are the same and have different orientation + Standard_EXPORT virtual void PerformShapesToAvoid() Standard_OVERRIDE; + + //! Build draft wires + //! a)myLoops - draft wires that consist of + //! boundary edges + //! b)myLoopsInternal - draft wires that contains + //! inner edges + Standard_EXPORT virtual void PerformLoops() Standard_OVERRIDE; + + //! Build draft faces that contains boundary edges + Standard_EXPORT virtual void PerformAreas() Standard_OVERRIDE; + + //! Build finalized faces with internals + Standard_EXPORT virtual void PerformInternalShapes() Standard_OVERRIDE; + + Standard_EXPORT virtual void CheckData() Standard_OVERRIDE; + + + TopoDS_Face myFace; + TopAbs_Orientation myOrientation; + + +private: + + + + + +}; + + + + + + + +#endif // _BOPAlgo_BuilderFace_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_BuilderShape.cdl b/src/BOPAlgo/BOPAlgo_BuilderShape.cdl deleted file mode 100644 index 3608120004..0000000000 --- a/src/BOPAlgo/BOPAlgo_BuilderShape.cdl +++ /dev/null @@ -1,108 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -deferred class BuilderShape from BOPAlgo - inherits Algo from BOPAlgo - - ---Purpose: Root class for algorithms that has shape as result - -uses - Shape from TopoDS, - ListOfShape from TopTools, - BaseAllocator from BOPCol, - MapOfShape from BOPCol, - IndexedDataMapOfShapeListOfShape from BOPCol - ---raises - -is - Initialize - returns BuilderShape from BOPAlgo; - ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_BuilderShape();" - - Initialize (theAllocator: BaseAllocator from BOPCol) - returns BuilderShape from BOPAlgo; - - Shape(me) - ---Purpose: Returns the result of algorithm - returns Shape from TopoDS; - ---C++: return const & - - ------------------------------------------------------------------ - --- The following methods are not implemented at this level. - -- An empty list is returned. - --- They are optional and can be redefined. - ------------------------------------------------------------------ - Generated (me:out; - theS : Shape from TopoDS) - ---Purpose: Returns the list of shapes generated from the - -- shape theS. - returns ListOfShape from TopTools - is virtual; - ---C++: return const & - - Modified (me:out; - theS : Shape from TopoDS) - ---Purpose: Returns the list of shapes modified from the - -- shape theS. - returns ListOfShape from TopTools - is virtual; - ---C++: return const & - - IsDeleted (me:out; - theS : Shape from TopoDS) - ---Purpose: Returns true if the shape theS has been deleted. - returns Boolean from Standard - is virtual; - - HasDeleted (me) - ---Purpose: Returns true if the at least one shape(or subshape) - -- of arguments has been deleted. - returns Boolean from Standard; - - HasGenerated (me) - ---Purpose: Returns true if the at least one shape(or subshape) - -- of arguments has generated shapes. - returns Boolean from Standard; - - HasModified (me) - ---Purpose: Returns true if the at least one shape(or subshape) - -- of arguments has modified shapes. - returns Boolean from Standard; - - PrepareHistory (me:out) - ---Purpose: Prepare information for history support - is virtual protected; - - ImagesResult(me) - returns IndexedDataMapOfShapeListOfShape from BOPCol; - ---C++: return const & - -fields - myShape : Shape from TopoDS is protected; - -- - myHistShapes : ListOfShape from TopTools is protected; - myMapShape : MapOfShape from BOPCol is protected; - myHasDeleted : Boolean from Standard is protected; - myHasGenerated : Boolean from Standard is protected; - myHasModified : Boolean from Standard is protected; - myImagesResult : IndexedDataMapOfShapeListOfShape from BOPCol is protected; - myFlagHistory : Boolean from Standard is protected; - -end BuilderShape; - - diff --git a/src/BOPAlgo/BOPAlgo_BuilderShape.cxx b/src/BOPAlgo/BOPAlgo_BuilderShape.cxx index 56a09f165f..b14d3987e8 100644 --- a/src/BOPAlgo/BOPAlgo_BuilderShape.cxx +++ b/src/BOPAlgo/BOPAlgo_BuilderShape.cxx @@ -15,7 +15,10 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include + //======================================================================= //function : //purpose : diff --git a/src/BOPAlgo/BOPAlgo_BuilderShape.hxx b/src/BOPAlgo/BOPAlgo_BuilderShape.hxx new file mode 100644 index 0000000000..8ca97082b0 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_BuilderShape.hxx @@ -0,0 +1,110 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_BuilderShape_HeaderFile +#define _BOPAlgo_BuilderShape_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; + + +//! Root class for algorithms that has shape as result +class BOPAlgo_BuilderShape : public BOPAlgo_Algo +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Returns the result of algorithm + Standard_EXPORT const TopoDS_Shape& Shape() const; + + //! Returns the list of shapes generated from the + //! shape theS. + Standard_EXPORT virtual const TopTools_ListOfShape& Generated (const TopoDS_Shape& theS); + + //! Returns the list of shapes modified from the + //! shape theS. + Standard_EXPORT virtual const TopTools_ListOfShape& Modified (const TopoDS_Shape& theS); + + //! Returns true if the shape theS has been deleted. + Standard_EXPORT virtual Standard_Boolean IsDeleted (const TopoDS_Shape& theS); + + //! Returns true if the at least one shape(or subshape) + //! of arguments has been deleted. + Standard_EXPORT Standard_Boolean HasDeleted() const; + + //! Returns true if the at least one shape(or subshape) + //! of arguments has generated shapes. + Standard_EXPORT Standard_Boolean HasGenerated() const; + + //! Returns true if the at least one shape(or subshape) + //! of arguments has modified shapes. + Standard_EXPORT Standard_Boolean HasModified() const; + + Standard_EXPORT const BOPCol_IndexedDataMapOfShapeListOfShape& ImagesResult() const; + + + + +protected: + + + Standard_EXPORT BOPAlgo_BuilderShape(); +Standard_EXPORT virtual ~BOPAlgo_BuilderShape(); + + Standard_EXPORT BOPAlgo_BuilderShape(const BOPCol_BaseAllocator& theAllocator); + + //! Prepare information for history support + Standard_EXPORT virtual void PrepareHistory(); + + + TopoDS_Shape myShape; + TopTools_ListOfShape myHistShapes; + BOPCol_MapOfShape myMapShape; + Standard_Boolean myHasDeleted; + Standard_Boolean myHasGenerated; + Standard_Boolean myHasModified; + BOPCol_IndexedDataMapOfShapeListOfShape myImagesResult; + Standard_Boolean myFlagHistory; + + +private: + + + + + +}; + + + + + + + +#endif // _BOPAlgo_BuilderShape_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_BuilderSolid.cdl b/src/BOPAlgo/BOPAlgo_BuilderSolid.cdl deleted file mode 100644 index 1daf10cea7..0000000000 --- a/src/BOPAlgo/BOPAlgo_BuilderSolid.cdl +++ /dev/null @@ -1,76 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -class BuilderSolid from BOPAlgo - inherits BuilderArea from BOPAlgo - ----Purpose: The algorithm to build solids from set of faces - -uses - BaseAllocator from BOPCol, - Solid from TopoDS - ---raises - -is - Create - returns BuilderSolid from BOPAlgo; - ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_BuilderSolid();" - - - Create (theAllocator: BaseAllocator from BOPCol) - returns BuilderSolid from BOPAlgo; - - SetSolid(me:out; - theSolid:Solid from TopoDS); - ---Purpose: Sets the source solid - - Solid(me) - returns Solid from TopoDS; - ---C++: return const & - ---Purpose: Returns the source solid - - Perform(me:out) - ---Purpose: Performs the algorithm - is redefined; - - PerformShapesToAvoid(me:out) - ---Purpose: Collect the faces that - -- a) are internal - -- b) are the same and have different orientation - is redefined protected; - - PerformLoops(me:out) - ---Purpose: Build draft shells - -- a)myLoops - draft shells that consist of - -- boundary faces - -- b)myLoopsInternal - draft shells that contains - -- inner faces - is redefined protected; - - PerformAreas(me:out) - ---Purpose: Build draft solids that contains boundary faces - is redefined protected; - - PerformInternalShapes(me:out) - ---Purpose: Build finalized solids with internal shells - is redefined protected; - -fields - mySolid:Solid from TopoDS is protected; - -end BuilderSolid; diff --git a/src/BOPAlgo/BOPAlgo_BuilderSolid.cxx b/src/BOPAlgo/BOPAlgo_BuilderSolid.cxx index c361954c15..292a58cf03 100644 --- a/src/BOPAlgo/BOPAlgo_BuilderSolid.cxx +++ b/src/BOPAlgo/BOPAlgo_BuilderSolid.cxx @@ -15,66 +15,66 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. // -#include -// -#include -#include -#include -#include -// -#include -#include -#include + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include -// +#include +#include +#include +#include +#include +#include +#include #include -// -#include -#include -#include -// #include -// -#include +#include +#include +#include +#include #include +#include #include #include -#include #include #include -#include -#include -#include // -#include -#include // -#include -#include // -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // -#include -#include -#include -#include // -#include // -#include - - +// +// +// +// +// +// static Standard_Boolean IsGrowthShell(const TopoDS_Shape& , const BOPCol_IndexedMapOfShape& ); diff --git a/src/BOPAlgo/BOPAlgo_BuilderSolid.hxx b/src/BOPAlgo/BOPAlgo_BuilderSolid.hxx new file mode 100644 index 0000000000..e1cba049c9 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_BuilderSolid.hxx @@ -0,0 +1,95 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_BuilderSolid_HeaderFile +#define _BOPAlgo_BuilderSolid_HeaderFile + +#include +#include +#include + +#include +#include +#include +class TopoDS_Solid; + + +//! The algorithm to build solids from set of faces +class BOPAlgo_BuilderSolid : public BOPAlgo_BuilderArea +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BOPAlgo_BuilderSolid(); +Standard_EXPORT virtual ~BOPAlgo_BuilderSolid(); + + Standard_EXPORT BOPAlgo_BuilderSolid(const BOPCol_BaseAllocator& theAllocator); + + //! Sets the source solid + Standard_EXPORT void SetSolid (const TopoDS_Solid& theSolid); + + //! Returns the source solid + Standard_EXPORT const TopoDS_Solid& Solid() const; + + //! Performs the algorithm + Standard_EXPORT virtual void Perform() Standard_OVERRIDE; + + + + +protected: + + + //! Collect the faces that + //! a) are internal + //! b) are the same and have different orientation + Standard_EXPORT virtual void PerformShapesToAvoid() Standard_OVERRIDE; + + //! Build draft shells + //! a)myLoops - draft shells that consist of + //! boundary faces + //! b)myLoopsInternal - draft shells that contains + //! inner faces + Standard_EXPORT virtual void PerformLoops() Standard_OVERRIDE; + + //! Build draft solids that contains boundary faces + Standard_EXPORT virtual void PerformAreas() Standard_OVERRIDE; + + //! Build finalized solids with internal shells + Standard_EXPORT virtual void PerformInternalShapes() Standard_OVERRIDE; + + + TopoDS_Solid mySolid; + + +private: + + + + + +}; + + + + + + + +#endif // _BOPAlgo_BuilderSolid_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_Builder_1.cxx b/src/BOPAlgo/BOPAlgo_Builder_1.cxx index fd628c7500..0458073f4e 100644 --- a/src/BOPAlgo/BOPAlgo_Builder_1.cxx +++ b/src/BOPAlgo/BOPAlgo_Builder_1.cxx @@ -15,25 +15,23 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include -#include -#include -#include - +#include +#include #include #include #include - #include -#include -#include #include +#include #include - +#include #include +#include +#include +#include +#include +#include //======================================================================= //function : FillImagesVertices diff --git a/src/BOPAlgo/BOPAlgo_Builder_2.cxx b/src/BOPAlgo/BOPAlgo_Builder_2.cxx index 7ba2e5c29b..0db8de23b8 100644 --- a/src/BOPAlgo/BOPAlgo_Builder_2.cxx +++ b/src/BOPAlgo/BOPAlgo_Builder_2.cxx @@ -15,52 +15,53 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -// -#include -// -#include -#include -#include -#include -#include -// -#include -#include -// -#include -// -#include -#include -#include + +#include +#include +#include #include #include +#include +#include +#include #include #include -// -#include -// -#include -#include #include #include -#include -#include #include +#include +#include +#include #include +#include #include -// #include #include #include #include -#include #include +#include #include #include -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +// +// +// +// +// +// +// +// static Standard_Boolean HasPaveBlocksOnIn(const BOPDS_FaceInfo& aFI1, const BOPDS_FaceInfo& aFI2); diff --git a/src/BOPAlgo/BOPAlgo_Builder_4.cxx b/src/BOPAlgo/BOPAlgo_Builder_4.cxx index 1fd79f78fb..7d07bbcf3a 100644 --- a/src/BOPAlgo/BOPAlgo_Builder_4.cxx +++ b/src/BOPAlgo/BOPAlgo_Builder_4.cxx @@ -15,18 +15,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include +#include +#include #include #include - #include - -#include #include - +#include +#include +#include +#include //======================================================================= //function : Generated diff --git a/src/BOPAlgo/BOPAlgo_CheckResult.cdl b/src/BOPAlgo/BOPAlgo_CheckResult.cdl deleted file mode 100644 index 541a91bffa..0000000000 --- a/src/BOPAlgo/BOPAlgo_CheckResult.cdl +++ /dev/null @@ -1,115 +0,0 @@ --- 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. - -class CheckResult from BOPAlgo - ---Purpose: contains information about faulty shapes and faulty types - --- can't be processed by Boolean Operations - -uses - - Shape from TopoDS, - CheckStatus from BOPAlgo, - ListOfShape from BOPCol - -is - - Create - returns CheckResult; - ---Purpose: empty constructor - - SetShape1(me: in out; TheShape : Shape from TopoDS); - ---Purpose: sets ancestor shape (object) for faulty sub-shapes - - AddFaultyShape1(me: in out; TheShape: Shape from TopoDS); - ---Purpose: adds faulty sub-shapes from object to a list - - SetShape2(me: in out; TheShape: Shape from TopoDS); - ---Purpose: sets ancestor shape (tool) for faulty sub-shapes - - AddFaultyShape2(me: in out; TheShape: Shape from TopoDS); - ---Purpose: adds faulty sub-shapes from tool to a list - - GetShape1(me) - returns Shape from TopoDS; - ---C++: return const& - ---Purpose: returns ancestor shape (object) for faulties - - GetShape2(me) - returns Shape from TopoDS; - ---C++: return const& - ---Purpose: returns ancestor shape (tool) for faulties - - GetFaultyShapes1(me) - returns ListOfShape from BOPCol; - ---C++: return const& - ---Purpose: returns list of faulty shapes for object - - GetFaultyShapes2(me) - returns ListOfShape from BOPCol; - ---C++: return const& - ---Purpose: returns list of faulty shapes for tool - - SetCheckStatus(me: in out; TheStatus: CheckStatus from BOPAlgo); - ---Purpose: set status of faulty - - GetCheckStatus(me) - returns CheckStatus from BOPAlgo; - ---Purpose: gets status of faulty - - SetMaxDistance1(me:out; - theDist : Real from Standard); - ---Purpose: Sets max distance for the first shape - - SetMaxDistance2(me:out; - theDist : Real from Standard); - ---Purpose: Sets max distance for the second shape - - SetMaxParameter1(me:out; - thePar : Real from Standard); - ---Purpose: Sets the parameter for the first shape - - SetMaxParameter2(me:out; - thePar : Real from Standard); - ---Purpose: Sets the parameter for the second shape - - GetMaxDistance1(me) - returns Real from Standard; - ---Purpose: Returns the distance for the first shape - - GetMaxDistance2(me) - returns Real from Standard; - ---Purpose: Returns the distance for the second shape - - GetMaxParameter1(me) - returns Real from Standard; - ---Purpose: Returns the parameter for the fircst shape - - GetMaxParameter2(me) - returns Real from Standard; - ---Purpose: Returns the parameter for the second shape - -fields - - myShape1 : Shape from TopoDS; - myShape2 : Shape from TopoDS; - myStatus : CheckStatus from BOPAlgo; - myFaulty1 : ListOfShape from BOPCol; - myFaulty2 : ListOfShape from BOPCol; - myMaxDist1 : Real from Standard; - myMaxDist2 : Real from Standard; - myMaxPar1 : Real from Standard; - myMaxPar2 : Real from Standard; - -end CheckResult; diff --git a/src/BOPAlgo/BOPAlgo_CheckResult.cxx b/src/BOPAlgo/BOPAlgo_CheckResult.cxx index 9a87b82ca0..767b1b384c 100644 --- a/src/BOPAlgo/BOPAlgo_CheckResult.cxx +++ b/src/BOPAlgo/BOPAlgo_CheckResult.cxx @@ -13,7 +13,9 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include //======================================================================= // function: BOPAlgo_CheckResult() diff --git a/src/BOPAlgo/BOPAlgo_CheckResult.hxx b/src/BOPAlgo/BOPAlgo_CheckResult.hxx new file mode 100644 index 0000000000..16a1c0cd5c --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_CheckResult.hxx @@ -0,0 +1,128 @@ +// 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_CheckResult_HeaderFile +#define _BOPAlgo_CheckResult_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class TopoDS_Shape; + + +//! contains information about faulty shapes and faulty types +//! can't be processed by Boolean Operations +class BOPAlgo_CheckResult +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! empty constructor + Standard_EXPORT BOPAlgo_CheckResult(); + + //! sets ancestor shape (object) for faulty sub-shapes + Standard_EXPORT void SetShape1 (const TopoDS_Shape& TheShape); + + //! adds faulty sub-shapes from object to a list + Standard_EXPORT void AddFaultyShape1 (const TopoDS_Shape& TheShape); + + //! sets ancestor shape (tool) for faulty sub-shapes + Standard_EXPORT void SetShape2 (const TopoDS_Shape& TheShape); + + //! adds faulty sub-shapes from tool to a list + Standard_EXPORT void AddFaultyShape2 (const TopoDS_Shape& TheShape); + + //! returns ancestor shape (object) for faulties + Standard_EXPORT const TopoDS_Shape& GetShape1() const; + + //! returns ancestor shape (tool) for faulties + Standard_EXPORT const TopoDS_Shape& GetShape2() const; + + //! returns list of faulty shapes for object + Standard_EXPORT const BOPCol_ListOfShape& GetFaultyShapes1() const; + + //! returns list of faulty shapes for tool + Standard_EXPORT const BOPCol_ListOfShape& GetFaultyShapes2() const; + + //! set status of faulty + Standard_EXPORT void SetCheckStatus (const BOPAlgo_CheckStatus TheStatus); + + //! gets status of faulty + Standard_EXPORT BOPAlgo_CheckStatus GetCheckStatus() const; + + //! Sets max distance for the first shape + Standard_EXPORT void SetMaxDistance1 (const Standard_Real theDist); + + //! Sets max distance for the second shape + Standard_EXPORT void SetMaxDistance2 (const Standard_Real theDist); + + //! Sets the parameter for the first shape + Standard_EXPORT void SetMaxParameter1 (const Standard_Real thePar); + + //! Sets the parameter for the second shape + Standard_EXPORT void SetMaxParameter2 (const Standard_Real thePar); + + //! Returns the distance for the first shape + Standard_EXPORT Standard_Real GetMaxDistance1() const; + + //! Returns the distance for the second shape + Standard_EXPORT Standard_Real GetMaxDistance2() const; + + //! Returns the parameter for the fircst shape + Standard_EXPORT Standard_Real GetMaxParameter1() const; + + //! Returns the parameter for the second shape + Standard_EXPORT Standard_Real GetMaxParameter2() const; + + + + +protected: + + + + + +private: + + + + TopoDS_Shape myShape1; + TopoDS_Shape myShape2; + BOPAlgo_CheckStatus myStatus; + BOPCol_ListOfShape myFaulty1; + BOPCol_ListOfShape myFaulty2; + Standard_Real myMaxDist1; + Standard_Real myMaxDist2; + Standard_Real myMaxPar1; + Standard_Real myMaxPar2; + + +}; + + + + + + + +#endif // _BOPAlgo_CheckResult_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_CheckStatus.hxx b/src/BOPAlgo/BOPAlgo_CheckStatus.hxx new file mode 100644 index 0000000000..d0fdf811eb --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_CheckStatus.hxx @@ -0,0 +1,35 @@ +// 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_CheckStatus_HeaderFile +#define _BOPAlgo_CheckStatus_HeaderFile + + +enum BOPAlgo_CheckStatus +{ +BOPAlgo_CheckUnknown, +BOPAlgo_BadType, +BOPAlgo_SelfIntersect, +BOPAlgo_TooSmallEdge, +BOPAlgo_NonRecoverableFace, +BOPAlgo_IncompatibilityOfVertex, +BOPAlgo_IncompatibilityOfEdge, +BOPAlgo_IncompatibilityOfFace, +BOPAlgo_OperationAborted, +BOPAlgo_GeomAbs_C0, +BOPAlgo_InvalidCurveOnSurface, +BOPAlgo_NotValid +}; + +#endif // _BOPAlgo_CheckStatus_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_CheckerSI.cdl b/src/BOPAlgo/BOPAlgo_CheckerSI.cdl deleted file mode 100644 index 9578c091f1..0000000000 --- a/src/BOPAlgo/BOPAlgo_CheckerSI.cdl +++ /dev/null @@ -1,82 +0,0 @@ --- Created by: Peter Kurnev --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - --- -class CheckerSI from BOPAlgo - inherits PaveFiller from BOPAlgo - - ---Purpose: Checks shape on self-interference. - -uses - DataMapOfShapeShape from BOPCol - -is - Create - returns CheckerSI from BOPAlgo; - ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_CheckerSI();" - - - Perform(me:out) - is redefined; - - - Init (me:out) - is redefined protected; - - SetLevelOfCheck(me:out; - theLevel: Integer from Standard); - ---Purpose: Sets the level of checking shape on self-interference. - -- It defines which interferferences will be checked: - -- 0 - only V/V; - -- 1 - V/V and V/E; - -- 2 - V/V, V/E and E/E; - -- 3 - V/V, V/E, E/E and V/F; - -- 4 - V/V, V/E, E/E, V/F and E/F; - -- 5 - all interferences, default value. - - SetNonDestructive(me:out; - theFlag: Boolean from Standard); - ---Purpose: Sets the flag that defines - -- the mode of the treatment: - -- the copy of the argument when theFlag is true - -- the argument itself when theFlag is false - - NonDestructive(me) - returns Boolean from Standard; - ---Purpose: Returns the flag that defines the - -- mode of the treatment: - -- true when the copy of the argument is used - -- false when the argument itself is used - - PostTreat (me:out) - is protected; - ---Purpose: Provides post-treatment actions - - PrepareCopy(me:out) - is virtual protected; - - PostTreatCopy (me:out) - is protected; - ---Purpose: Provides post-treatment actions for the copy - - -fields - myLevelOfCheck: Integer from Standard is protected; - myNonDestructive: Boolean from Standard is protected; - myNewOldMap : DataMapOfShapeShape from BOPCol is protected; - -end CheckerSI; diff --git a/src/BOPAlgo/BOPAlgo_CheckerSI.cxx b/src/BOPAlgo/BOPAlgo_CheckerSI.cxx index b22be8b282..b8252eb015 100644 --- a/src/BOPAlgo/BOPAlgo_CheckerSI.cxx +++ b/src/BOPAlgo/BOPAlgo_CheckerSI.cxx @@ -16,33 +16,27 @@ // commercial license or contractual agreement. // -#include - -#include -#include - -#include -#include +#include #include - #include -#include -#include #include +#include #include #include -#include -#include -#include -#include +#include #include #include - -#include - +#include +#include +#include #include #include +#include +#include +#include +#include +#include //======================================================================= //function : diff --git a/src/BOPAlgo/BOPAlgo_CheckerSI.hxx b/src/BOPAlgo/BOPAlgo_CheckerSI.hxx new file mode 100644 index 0000000000..6e649aa111 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_CheckerSI.hxx @@ -0,0 +1,102 @@ +// Created by: Peter Kurnev +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_CheckerSI_HeaderFile +#define _BOPAlgo_CheckerSI_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include + + +//! Checks shape on self-interference. +class BOPAlgo_CheckerSI : public BOPAlgo_PaveFiller +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BOPAlgo_CheckerSI(); +Standard_EXPORT virtual ~BOPAlgo_CheckerSI(); + + Standard_EXPORT virtual void Perform() Standard_OVERRIDE; + + //! Sets the level of checking shape on self-interference. + //! It defines which interferferences will be checked: + //! 0 - only V/V; + //! 1 - V/V and V/E; + //! 2 - V/V, V/E and E/E; + //! 3 - V/V, V/E, E/E and V/F; + //! 4 - V/V, V/E, E/E, V/F and E/F; + //! 5 - all interferences, default value. + Standard_EXPORT void SetLevelOfCheck (const Standard_Integer theLevel); + + //! Sets the flag that defines + //! the mode of the treatment: + //! the copy of the argument when theFlag is true + //! the argument itself when theFlag is false + Standard_EXPORT void SetNonDestructive (const Standard_Boolean theFlag); + + //! Returns the flag that defines the + //! mode of the treatment: + //! true when the copy of the argument is used + //! false when the argument itself is used + Standard_EXPORT Standard_Boolean NonDestructive() const; + + + + +protected: + + + Standard_EXPORT virtual void Init() Standard_OVERRIDE; + + //! Provides post-treatment actions + Standard_EXPORT void PostTreat(); + + Standard_EXPORT virtual void PrepareCopy(); + + //! Provides post-treatment actions for the copy + Standard_EXPORT void PostTreatCopy(); + + + Standard_Integer myLevelOfCheck; + Standard_Boolean myNonDestructive; + BOPCol_DataMapOfShapeShape myNewOldMap; + + +private: + + + + + +}; + + + + + + + +#endif // _BOPAlgo_CheckerSI_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_MakerVolume.cdl b/src/BOPAlgo/BOPAlgo_MakerVolume.cdl deleted file mode 100644 index 6f5e559583..0000000000 --- a/src/BOPAlgo/BOPAlgo_MakerVolume.cdl +++ /dev/null @@ -1,218 +0,0 @@ --- Created by: Eugeny MALTCHIKOV --- 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. - -class MakerVolume from BOPAlgo - inherits Builder from BOPAlgo - ---Purpose: - -- The algorithm is to build solids from set of shapes. - -- It uses the BOPAlgo_Builder algorithm to intersect the given shapes - -- and build the images of faces (if needed) and BOPAlgo_BuilderSolid - -- algorithm to build the solids. - -- - -- Steps of the algorithm: - -- 1. Collect all faces: intersect the shapes if necessary and collect - -- the images of faces, otherwise just collect the faces to the - -- list; - -- All faces on this step added twice, with orientation FORWARD - -- and REVERSED; - -- - -- 2. Create bounding box covering all the faces from and - -- create solid box from corner points of that bounding box - -- (myBBox, mySBox). Add faces from that box to ; - -- - -- 3. Build solids from using BOPAlgo_BuilderSolid algorithm; - -- - -- 4. Treat the result: Eliminate solid containig faces from ; - -- - -- 5. Fill internal shapes: add internal vertices and edges into - -- created solids; - -- - -- 6. Prepare the history. - -- - -- Fields: - -- - boolean flag. It defines whether intersect shapes - -- from (if set to TRUE) or not (FALSE). - -- The default value is TRUE. By setting it to FALSE - -- the user should guarantee that shapes in - -- do not interfere with each other, otherwise the result - -- is unpredictable. - -- - -- - bounding box, covering all faces from . - -- - -- - Solid box created from the corner points of . - -- - -- - the list is to keep the "final" faces, that will be - -- given to the BOPAlgo_BuilderSolid algorithm. - -- If the shapes have been interfered it should contain - -- the images of the source shapes, otherwise its just - -- the original faces. - -- It also contains the faces from . - -- - -- - -- Fields inherited from BOPAlgo_Builder: - -- - -- - list of the source shapes. The source shapes can have - -- any type, but each shape must not be self-interfered. - -- - -- - Result shape: - -- - empty compound - if no solids were created; - -- - solid - if created only one solid; - -- - compound of solids - if created more than one solid. - -- - -- - -- Fields inherited from BOPAlgo_Algo: - -- - -- - Defines whether the parallel processing is - -- switched on or not. - -- - Error status of the operation: - -- 0 - operation successful; - -- 100 - no shapes to process; - -- 102 - BOPAlgo_PaveFiller algorithm has failed; - -- 103 - BOPAlgo_BuilderSolid algorithm has failed. - -- - -- Example: - -- - -- BOPAlgo_MakerVolume aMV; - -- // - -- aMV.SetArguments(aLS); //source shapes - -- aMV.SetRunParallel(bRunParallel); //parallel or single mode - -- aMV.SetIntersect(bIntersect); //intersect or not the shapes from - -- // - -- aMV.Perform(); //perform the operation - -- if (aMV.ErrorStatus()) { //check error status - -- return; - -- } - -- // - -- const TopoDS_Shape& aResult = aMV.Shape(); //result of the operation - -- - -uses - Shape from TopoDS, - BaseAllocator from BOPCol, - ListOfShape from BOPCol, - MapOfShape from BOPCol, - Box from Bnd, - Solid from TopoDS, - PaveFiller from BOPAlgo - -is - - Create - returns MakerVolume from BOPAlgo; - ---C++: alias "virtual ~BOPAlgo_MakerVolume();" - ---C++: inline - ---Purpose: - -- Empty contructor. - - Create(theAllocator: BaseAllocator from BOPCol) - returns MakerVolume from BOPAlgo; - ---C++: inline - ---Purpose: - -- Empty contructor. - - Clear(me:out) - is redefined; - ---C++: inline - ---Purpose: - -- Clears the data. - - SetIntersect(me:out; - bIntersect : Boolean from Standard); - ---C++: inline - ---Purpose: - -- Sets the flag myIntersect: - -- if is TRUE the shapes from will be intersected. - -- if is FALSE no intersection will be done. - - IsIntersect(me) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - -- Returns the flag . - - Box(me) - returns Solid from TopoDS; - ---C++: return const& - ---C++: inline - ---Purpose: - -- Returns the solid box . - - Faces(me) - returns ListOfShape from BOPCol; - ---C++: return const& - ---C++: inline - ---Purpose: - -- Returns the processed faces . - - CheckData(me:out) - is redefined protected; - ---Purpose: - -- Checks the data. - - Perform(me:out) - is redefined; - ---Purpose: - -- Performs the operation. - - PerformInternal1(me:out; - thePF: PaveFiller from BOPAlgo) - is redefined protected; - ---Purpose: - -- Performs the operation. - - CollectFaces(me:out) - is protected; - ---Purpose: - -- Collects all faces. - - MakeBox(me:out; - theBoxFaces : out MapOfShape from BOPCol) - is protected; - ---Purpose: - -- Makes solid box. - - BuildSolids(me:out; - theLSR : out ListOfShape from BOPCol) - is protected; - ---Purpose: - -- Builds solids. - - RemoveBox(me:out; - theLSR : out ListOfShape from BOPCol; - theBoxFaces : MapOfShape from BOPCol) - is protected; - ---Purpose: - -- Removes the covering box. - - FillInternalShapes(me:out; - theLSR : ListOfShape from BOPCol) - is protected; - ---Purpose: - -- Fills the solids with internal shapes. - - BuildShape(me:out; - theLSR : ListOfShape from BOPCol) - is protected; - ---Purpose: - -- Builds the result. - -fields - - myIntersect : Boolean from Standard is protected; - myBBox : Box from Bnd is protected; - mySBox : Solid from TopoDS is protected; - myFaces : ListOfShape from BOPCol is protected; - -end MakerVolume; - diff --git a/src/BOPAlgo/BOPAlgo_MakerVolume.cxx b/src/BOPAlgo/BOPAlgo_MakerVolume.cxx index 3e4f1a8189..14f4832cee 100644 --- a/src/BOPAlgo/BOPAlgo_MakerVolume.cxx +++ b/src/BOPAlgo/BOPAlgo_MakerVolume.cxx @@ -12,28 +12,20 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include #include - -#include - -#include - -#include - -#include +#include +#include +#include #include - +#include #include - -#include -#include - #include #include +#include +#include +#include +#include static void AddFace(const TopoDS_Shape& theF, diff --git a/src/BOPAlgo/BOPAlgo_MakerVolume.hxx b/src/BOPAlgo/BOPAlgo_MakerVolume.hxx new file mode 100644 index 0000000000..08ae2c177d --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_MakerVolume.hxx @@ -0,0 +1,214 @@ +// Created by: Eugeny MALTCHIKOV +// 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 _BOPAlgo_MakerVolume_HeaderFile +#define _BOPAlgo_MakerVolume_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Solid; +class BOPAlgo_PaveFiller; + + + +//! The algorithm is to build solids from set of shapes. +//! It uses the BOPAlgo_Builder algorithm to intersect the given shapes +//! and build the images of faces (if needed) and BOPAlgo_BuilderSolid +//! algorithm to build the solids. +//! +//! Steps of the algorithm: +//! 1. Collect all faces: intersect the shapes if necessary and collect +//! the images of faces, otherwise just collect the faces to the +//! list; +//! All faces on this step added twice, with orientation FORWARD +//! and REVERSED; +//! +//! 2. Create bounding box covering all the faces from and +//! create solid box from corner points of that bounding box +//! (myBBox, mySBox). Add faces from that box to ; +//! +//! 3. Build solids from using BOPAlgo_BuilderSolid algorithm; +//! +//! 4. Treat the result: Eliminate solid containig faces from ; +//! +//! 5. Fill internal shapes: add internal vertices and edges into +//! created solids; +//! +//! 6. Prepare the history. +//! +//! Fields: +//! - boolean flag. It defines whether intersect shapes +//! from (if set to TRUE) or not (FALSE). +//! The default value is TRUE. By setting it to FALSE +//! the user should guarantee that shapes in +//! do not interfere with each other, otherwise the result +//! is unpredictable. +//! +//! - bounding box, covering all faces from . +//! +//! - Solid box created from the corner points of . +//! +//! - the list is to keep the "final" faces, that will be +//! given to the BOPAlgo_BuilderSolid algorithm. +//! If the shapes have been interfered it should contain +//! the images of the source shapes, otherwise its just +//! the original faces. +//! It also contains the faces from . +//! +//! Fields inherited from BOPAlgo_Builder: +//! +//! - list of the source shapes. The source shapes can have +//! any type, but each shape must not be self-interfered. +//! +//! - Result shape: +//! - empty compound - if no solids were created; +//! - solid - if created only one solid; +//! - compound of solids - if created more than one solid. +//! +//! Fields inherited from BOPAlgo_Algo: +//! +//! - Defines whether the parallel processing is +//! switched on or not. +//! - Error status of the operation: +//! 0 - operation successful; +//! 100 - no shapes to process; +//! 102 - BOPAlgo_PaveFiller algorithm has failed; +//! 103 - BOPAlgo_BuilderSolid algorithm has failed. +//! +//! Example: +//! +//! BOPAlgo_MakerVolume aMV; +//! // +//! aMV.SetArguments(aLS); //source shapes +//! aMV.SetRunParallel(bRunParallel); //parallel or single mode +//! aMV.SetIntersect(bIntersect); //intersect or not the shapes from +//! // +//! aMV.Perform(); //perform the operation +//! if (aMV.ErrorStatus()) { //check error status +//! return; +//! } +//! // +//! const TopoDS_Shape& aResult = aMV.Shape(); //result of the operation +class BOPAlgo_MakerVolume : public BOPAlgo_Builder +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Empty contructor. + BOPAlgo_MakerVolume(); +virtual ~BOPAlgo_MakerVolume(); + + + //! Empty contructor. + BOPAlgo_MakerVolume(const BOPCol_BaseAllocator& theAllocator); + + + //! Clears the data. + virtual void Clear() Standard_OVERRIDE; + + + //! Sets the flag myIntersect: + //! if is TRUE the shapes from will be intersected. + //! if is FALSE no intersection will be done. + void SetIntersect (const Standard_Boolean bIntersect); + + + //! Returns the flag . + Standard_Boolean IsIntersect() const; + + + //! Returns the solid box . + const TopoDS_Solid& Box() const; + + + //! Returns the processed faces . + const BOPCol_ListOfShape& Faces() const; + + + //! Performs the operation. + Standard_EXPORT virtual void Perform() Standard_OVERRIDE; + + + + +protected: + + + + //! Checks the data. + Standard_EXPORT virtual void CheckData() Standard_OVERRIDE; + + + //! Performs the operation. + Standard_EXPORT virtual void PerformInternal1 (const BOPAlgo_PaveFiller& thePF) Standard_OVERRIDE; + + + //! Collects all faces. + Standard_EXPORT void CollectFaces(); + + + //! Makes solid box. + Standard_EXPORT void MakeBox (BOPCol_MapOfShape& theBoxFaces); + + + //! Builds solids. + Standard_EXPORT void BuildSolids (BOPCol_ListOfShape& theLSR); + + + //! Removes the covering box. + Standard_EXPORT void RemoveBox (BOPCol_ListOfShape& theLSR, const BOPCol_MapOfShape& theBoxFaces); + + + //! Fills the solids with internal shapes. + Standard_EXPORT void FillInternalShapes (const BOPCol_ListOfShape& theLSR); + + + //! Builds the result. + Standard_EXPORT void BuildShape (const BOPCol_ListOfShape& theLSR); + + + Standard_Boolean myIntersect; + Bnd_Box myBBox; + TopoDS_Solid mySBox; + BOPCol_ListOfShape myFaces; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPAlgo_MakerVolume_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_Operation.hxx b/src/BOPAlgo/BOPAlgo_Operation.hxx new file mode 100644 index 0000000000..db8bb571cd --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_Operation.hxx @@ -0,0 +1,29 @@ +// 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_Operation_HeaderFile +#define _BOPAlgo_Operation_HeaderFile + + +enum BOPAlgo_Operation +{ +BOPAlgo_COMMON, +BOPAlgo_FUSE, +BOPAlgo_CUT, +BOPAlgo_CUT21, +BOPAlgo_SECTION, +BOPAlgo_UNKNOWN +}; + +#endif // _BOPAlgo_Operation_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_PArgumentAnalyzer.hxx b/src/BOPAlgo/BOPAlgo_PArgumentAnalyzer.hxx new file mode 100644 index 0000000000..03298443b2 --- /dev/null +++ b/src/BOPAlgo/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/src/BOPAlgo/BOPAlgo_PBOP.hxx b/src/BOPAlgo/BOPAlgo_PBOP.hxx new file mode 100644 index 0000000000..1a48891bbd --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_PBOP.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_PBOP_HeaderFile +#define _BOPAlgo_PBOP_HeaderFile + +class BOPAlgo_BOP; +typedef BOPAlgo_BOP* BOPAlgo_PBOP; + +#endif // _BOPAlgo_PBOP_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_PBuilder.hxx b/src/BOPAlgo/BOPAlgo_PBuilder.hxx new file mode 100644 index 0000000000..8cbda2fb39 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_PBuilder.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_PBuilder_HeaderFile +#define _BOPAlgo_PBuilder_HeaderFile + +class BOPAlgo_Builder; +typedef BOPAlgo_Builder* BOPAlgo_PBuilder; + +#endif // _BOPAlgo_PBuilder_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_PPaveFiller.hxx b/src/BOPAlgo/BOPAlgo_PPaveFiller.hxx new file mode 100644 index 0000000000..d06e3ef547 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_PPaveFiller.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_PPaveFiller_HeaderFile +#define _BOPAlgo_PPaveFiller_HeaderFile + +class BOPAlgo_PaveFiller; +typedef BOPAlgo_PaveFiller* BOPAlgo_PPaveFiller; + +#endif // _BOPAlgo_PPaveFiller_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_PSection.hxx b/src/BOPAlgo/BOPAlgo_PSection.hxx new file mode 100644 index 0000000000..a17be9bd31 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_PSection.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_PSection_HeaderFile +#define _BOPAlgo_PSection_HeaderFile + +class BOPAlgo_Section; +typedef BOPAlgo_Section* BOPAlgo_PSection; + +#endif // _BOPAlgo_PSection_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_PWireEdgeSet.hxx b/src/BOPAlgo/BOPAlgo_PWireEdgeSet.hxx new file mode 100644 index 0000000000..cb89db6634 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_PWireEdgeSet.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_PWireEdgeSet_HeaderFile +#define _BOPAlgo_PWireEdgeSet_HeaderFile + +class BOPAlgo_WireEdgeSet; +typedef BOPAlgo_WireEdgeSet* BOPAlgo_PWireEdgeSet; + +#endif // _BOPAlgo_PWireEdgeSet_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller.cdl b/src/BOPAlgo/BOPAlgo_PaveFiller.cdl deleted file mode 100644 index 7b40eee7a0..0000000000 --- a/src/BOPAlgo/BOPAlgo_PaveFiller.cdl +++ /dev/null @@ -1,486 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -class PaveFiller from BOPAlgo - inherits Algo from BOPAlgo - ---Purpose: - -uses - Pnt from gp, - ShapeEnum from TopAbs, - Vertex from TopoDS, - Face from TopoDS, - Edge from TopoDS, - - ListOfShape from TopTools, - - BaseAllocator from BOPCol, - ListOfShape from BOPCol, - MapOfInteger from BOPCol, - ListOfInteger from BOPCol, - DataMapOfShapeInteger from BOPCol, - IndexedDataMapOfShapeInteger from BOPCol, - DataMapOfIntegerListOfInteger from BOPCol, - DataMapOfShapeListOfShape from BOPCol, - IndexedDataMapOfShapeListOfShape from BOPCol, - DataMapOfIntegerReal from BOPCol, - DataMapOfIntegerInteger from BOPCol, - -- - Context from IntTools, - -- - SectionAttribute from BOPAlgo, - - DS from BOPDS, - PDS from BOPDS, - Iterator from BOPDS, - PIterator from BOPDS, - PaveBlock from BOPDS, - Curve from BOPDS, - IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS, - MapOfPaveBlock from BOPDS, - IndexedMapOfPaveBlock from BOPDS, - ListOfPaveBlock from BOPDS, - ListOfPave from BOPDS, - ListOfPntOn2S from IntSurf, - Curve from IntTools, - - DataMapOfPaveBlockListOfPaveBlock from BOPDS, - VectorOfCurve from BOPDS - ---raises - -is - Create - returns PaveFiller from BOPAlgo; - ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_PaveFiller();" - - Create (theAllocator: BaseAllocator from BOPCol) - returns PaveFiller from BOPAlgo; - - DS(me:out) - returns DS from BOPDS; - ---C++:return const & - - - PDS(me:out) - returns PDS from BOPDS; - - Iterator(me:out) - returns PIterator from BOPDS; - ---C++:return const & - - SetArguments(me:out; - theLS:ListOfShape from BOPCol); - - Arguments(me) - returns ListOfShape from BOPCol; - ---C++: return const & - - Context(me:out) - returns Context from IntTools; - - SetSectionAttribute(me:out; - theSecAttr : SectionAttribute from BOPAlgo); - - Perform(me:out) - is redefined; - -- - -- protected methods - -- - PerformInternal (me:out) - is virtual protected; - - Clear(me:out) - is virtual protected; - - Init(me:out) - is virtual protected; - - Prepare(me:out) - is protected; - - PerformVV(me:out) - is virtual protected; - - PerformVE(me:out) - is virtual protected; - - PerformVF(me:out) - is virtual protected; - - PerformEE(me:out) - is virtual protected; - - PerformEF(me:out) - is virtual protected; - - PerformFF(me:out) - is virtual protected; - - PerformVZ(me:out) - is virtual protected; - --Purpose: Computes Vertex/Solid interferences - - PerformEZ(me:out) - is virtual protected; - --Purpose: Computes Edge/Solid interferences - - PerformFZ(me:out) - is virtual protected; - --Purpose: Computes Face/Solid interferences - PerformZZ(me:out) - is virtual protected; - --Purpose: Computes Solid/Solid interferences - - TreatVerticesEE(me:out) - is protected; - - MakeSplitEdges(me:out) - is protected; - - MakeBlocks(me:out) - is protected; - - MakePCurves(me:out) - is protected; - - ProcessDE(me:out) - is protected; - - FillShrunkData(me:out; - thePB:out PaveBlock from BOPDS) - is protected; - - FillShrunkData(me:out; - theType1: ShapeEnum from TopAbs; - theType2: ShapeEnum from TopAbs) - is protected; - - PerformVerticesEE(me:out; - theMVCPB:out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; - theAllocator:out BaseAllocator from BOPCol) - returns Integer from Standard - is protected; - - PerformVerticesEF(me:out; - theMVCPB:out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; - theAllocator:out BaseAllocator from BOPCol) - returns Integer from Standard - is protected; - - CheckFacePaves(me:out; - theVnew:Vertex from TopoDS; - theMIF:MapOfInteger from BOPCol) - returns Boolean from Standard - is protected; - - CheckFacePaves(myclass; - theN:Integer from Standard; - theMIFOn:MapOfInteger from BOPCol; - theMIFIn:MapOfInteger from BOPCol) - returns Boolean from Standard - is protected; - - IsExistingVertex(me; - theP:Pnt from gp; - theTol:Real from Standard; - theMVOn:MapOfInteger from BOPCol) - returns Boolean from Standard - is protected; - - PutPavesOnCurve(me:out; - theMVOn : MapOfInteger from BOPCol; - theTolR3D : Real from Standard; - theNC : out Curve from BOPDS; - nF1 : Integer from Standard; - nF2 : Integer from Standard; - theMI : MapOfInteger from BOPCol; - theMVEF : MapOfInteger from BOPCol; - theMVTol : out DataMapOfIntegerReal from BOPCol) - is protected; - ---Purpose: - -- Checks and puts paves from on the curve . - - ExtendedTolerance(me:out; - nV : Integer from Standard; - aMI : MapOfInteger from BOPCol; - aTolVExt : out Real from Standard; - aType : Integer from Standard = 0) - returns Boolean from Standard - is protected; - ---Purpose: - -- Depending on the parameter aType it checks whether - -- the vertex nV was created in EE or EF intersections. - -- If so, it increases aTolVExt from tolerance value of vertex to - -- the max distance from vertex nV to the ends of the range of common part. - -- Possible values of aType: - -- 1 - checks only EE; - -- 2 - checks only EF; - -- other - checks both types of intersections. - - PutBoundPaveOnCurve(me:out; - theF1: Face from TopoDS; - theF2: Face from TopoDS; - theTolR3D:Real from Standard; - theNC:out Curve from BOPDS; - theLBV:out ListOfInteger from BOPCol) - is protected; - - IsExistingPaveBlock(me:out; - thePB:PaveBlock from BOPDS; - theNC:Curve from BOPDS; - theTolR3D:Real from Standard; - theMPB:IndexedMapOfPaveBlock from BOPDS; - thePBOut:out PaveBlock from BOPDS) - returns Boolean from Standard - is protected; - - IsExistingPaveBlock(me:out; - thePB:PaveBlock from BOPDS; - theNC:Curve from BOPDS; - theTolR3D:Real from Standard; - theLSE:ListOfInteger from BOPCol) - returns Boolean from Standard - is protected; - - PostTreatFF(me:out; - theMSCPB:out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; - theMVI:out DataMapOfShapeInteger from BOPCol; - theDMExEdges:out DataMapOfPaveBlockListOfPaveBlock from BOPDS; - theDMI:out DataMapOfIntegerInteger from BOPCol; - theAllocator:out BaseAllocator from BOPCol) - returns Integer from Standard - is protected; - ---Purpose: - -- Treatment of section edges. - - -- - -- Treatment of degenerated edges - -- - FindPaveBlocks(me:out; - theV:Integer from Standard; - theF:Integer from Standard; - theLPB:out ListOfPaveBlock from BOPDS) - is protected; - - FillPaves(me:out; - theV:Integer from Standard; - theE:Integer from Standard; - theF:Integer from Standard; - theLPB: ListOfPaveBlock from BOPDS; - thePB: PaveBlock from BOPDS) - is protected; - - MakeSplitEdge(me:out; - theV:Integer from Standard; - theF:Integer from Standard) - is protected; - - GetEFPnts(me:out; - nF1 : Integer from Standard; - nF2 : Integer from Standard; - aListOfPnts: out ListOfPntOn2S from IntSurf) - is protected; - - PutEFPavesOnCurve(me:out; - theNC : out Curve from BOPDS; - theMI : MapOfInteger from BOPCol; - theMVEF : MapOfInteger from BOPCol; - theMVTol : out DataMapOfIntegerReal from BOPCol) - is protected; - ---Purpose: - -- Checks and puts paves created in EF intersections on the curve . - - PutStickPavesOnCurve(me:out; - aF1 : Face from TopoDS; - aF2 : Face from TopoDS; - theMI : MapOfInteger from BOPCol; - theNC : out Curve from BOPDS; - theMVStick : MapOfInteger from BOPCol; - theMVTol : out DataMapOfIntegerReal from BOPCol) - is protected; - ---Purpose: - -- Puts stick paves on the curve - - GetStickVertices(me:out; - nF1 : Integer from Standard; - nF2 : Integer from Standard; - theMVStick : out MapOfInteger from BOPCol; - theMVEF : out MapOfInteger from BOPCol; - theMI : out MapOfInteger from BOPCol) - is protected; - ---Purpose: - -- Collects indices of vertices created in all intersections between - -- two faces ( and ) to the map . - -- Also, it collects indices of EF vertices to the map - -- and indices of all subshapes of these two faces to the map. - - GetFullShapeMap(me:out; - nF : Integer from Standard; - theMI : out MapOfInteger from BOPCol) - is protected; - ---Purpose: - -- Collects index nF and indices of all subshapes of the shape with index - -- to the map . - - RemoveUsedVertices(me:out; - theNC : out Curve from BOPDS; - theMV : out MapOfInteger from BOPCol) - is protected; - ---Purpose: - -- Removes indices of vertices that are already on the - -- curve from the map . - -- It is used in PutEFPavesOnCurve and PutStickPavesOnCurve methods. - - PutPaveOnCurve(me:out; - nV : Integer from Standard; - theTolR3D : Real from Standard; - theNC : out Curve from BOPDS; - theMI : MapOfInteger from BOPCol; - theMVTol : out DataMapOfIntegerReal from BOPCol; - aType : Integer from Standard = 0) - is protected; - ---Purpose: - -- Puts the pave nV on the curve theNC. - -- Parameter aType defines whether to check the pave with - -- extended tolerance: - -- 0 - do not perform the check; - -- other - perform the check (aType goes to ExtendedTolerance). - - ProcessExistingPaveBlocks(me:out; - theInt : Integer from Standard; - theMPBOnIn : IndexedMapOfPaveBlock from BOPDS; - theDMBV : DataMapOfIntegerListOfInteger from BOPCol; - theMSCPB : out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; - theMVI : out DataMapOfShapeInteger from BOPCol; - theMPB : out MapOfPaveBlock from BOPDS) - is protected; - ---Purpose: - -- Adds the existing edges from the map which interfere - -- with the vertices from map to the post treatment of section edges. - - UpdateExistingPaveBlocks(me:out; - thePB : PaveBlock from BOPDS; - theLPB : out ListOfPaveBlock from BOPDS; - nF1 : Integer from Standard; - nF2 : Integer from Standard) - is protected; - ---Purpose: - -- Replaces existing pave block with new pave blocks . - -- The list contains images of which were created in - -- the post treatment of section edges. - - TreatNewVertices(me:out; - theMVI : IndexedDataMapOfShapeInteger from BOPCol; - theImages : out IndexedDataMapOfShapeListOfShape from BOPCol) - is protected; - ---Purpose: - -- Treatment of vertices that were created in EE intersections. - - PutClosingPaveOnCurve (me:out; - aNC :out Curve from BOPDS) - is protected; - ---Purpose: - -- Put paves on the curve in case when - -- is closed 3D-curve - - PreparePostTreatFF(me:out; - aInt : Integer from Standard; - aCur : Integer from Standard; - aPB : PaveBlock from BOPDS; - aMSCPB : out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; - aMVI : out DataMapOfShapeInteger from BOPCol; - aLPB : out ListOfPaveBlock from BOPDS) - is protected; - ---Purpose: - -- Keeps data for post treatment - - RefineFaceInfoOn(me:out) - is protected; - ---Purpose: - -- Refines the state On for the all faces having - -- state information - - UpdateFaceInfo(me:out; - theDME:out DataMapOfPaveBlockListOfPaveBlock from BOPDS; - theDMV: DataMapOfIntegerInteger from BOPCol) - is protected; - ---Purpose: - -- Updates the information about faces - - ForceInterfVE(me:out; - nV : Integer from Standard; - aPB : out PaveBlock from BOPDS; - aMPB : out MapOfPaveBlock from BOPDS) - is protected; - ---Purpose: - -- Updates tolerance of vertex with index - -- to make it interfere with edge - - ForceInterfVF(me:out; - nV : Integer from Standard; - nF : Integer from Standard) - returns Boolean from Standard - is protected; - ---Purpose: - -- Updates tolerance of vertex with index - -- to make it interfere with face with index - - CheckPlanes(me; - nF1 : Integer from Standard; - nF2 : Integer from Standard) - returns Boolean from Standard - is protected; - ---Purpose: - -- Checks if there are any common or intersecting sub shapes - -- between two planar faces. - - SplitEdge(me:out; - nE : Integer from Standard; - nV1 : Integer from Standard; - aT1 : Real from Standard; - nV2 : Integer from Standard; - aT2 : Real from Standard) - returns Integer from Standard - is protected; - ---Purpose: - -- Creates new edge from the edge nE with vertices nV1 and nV2 - -- and returns the index of that new edge in the DS. - - UpdatePaveBlocks(me:out; - theDMI : DataMapOfIntegerInteger from BOPCol) - is protected; - ---Purpose: - -- Updates pave blocks which have the paves with indices contained - -- in the map . - - SetFuzzyValue(me:out; - theFuzz : Real from Standard); - ---Purpose: Sets the additional tolerance - - FuzzyValue(me) - returns Real from Standard; - ---Purpose: Returns the additional tolerance - -fields - myArguments : ListOfShape from BOPCol is protected; - myDS : PDS from BOPDS is protected; - myIterator : PIterator from BOPDS is protected; - myContext : Context from IntTools is protected; - mySectionAttribute : SectionAttribute from BOPAlgo is protected; - myFuzzyValue : Real from Standard is protected; -end PaveFiller; diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller.cxx index 94e1788845..1141abb47a 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller.cxx @@ -15,19 +15,22 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include - -#include - -#include +#include +#include +#include #include #include +#include +#include +#include +#include +#include +#include +#include +#include #include - //======================================================================= //function : //purpose : diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller.hxx b/src/BOPAlgo/BOPAlgo_PaveFiller.hxx new file mode 100644 index 0000000000..da0e91c063 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_PaveFiller.hxx @@ -0,0 +1,300 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_PaveFiller_HeaderFile +#define _BOPAlgo_PaveFiller_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class IntTools_Context; +class BOPDS_DS; +class BOPAlgo_SectionAttribute; +class BOPDS_PaveBlock; +class TopoDS_Vertex; +class gp_Pnt; +class BOPDS_Curve; +class TopoDS_Face; + + + +class BOPAlgo_PaveFiller : public BOPAlgo_Algo +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BOPAlgo_PaveFiller(); +Standard_EXPORT virtual ~BOPAlgo_PaveFiller(); + + Standard_EXPORT BOPAlgo_PaveFiller(const BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT const BOPDS_DS& DS(); + + Standard_EXPORT BOPDS_PDS PDS(); + + Standard_EXPORT const BOPDS_PIterator& Iterator(); + + Standard_EXPORT void SetArguments (const BOPCol_ListOfShape& theLS); + + Standard_EXPORT const BOPCol_ListOfShape& Arguments() const; + + Standard_EXPORT Handle(IntTools_Context) Context(); + + Standard_EXPORT void SetSectionAttribute (const BOPAlgo_SectionAttribute& theSecAttr); + + Standard_EXPORT virtual void Perform() Standard_OVERRIDE; + + //! Sets the additional tolerance + Standard_EXPORT void SetFuzzyValue (const Standard_Real theFuzz); + + //! Returns the additional tolerance + Standard_EXPORT Standard_Real FuzzyValue() const; + + + + +protected: + + + Standard_EXPORT virtual void PerformInternal(); + + Standard_EXPORT virtual void Clear(); + + Standard_EXPORT virtual void Init(); + + Standard_EXPORT void Prepare(); + + Standard_EXPORT virtual void PerformVV(); + + Standard_EXPORT virtual void PerformVE(); + + Standard_EXPORT virtual void PerformVF(); + + Standard_EXPORT virtual void PerformEE(); + + Standard_EXPORT virtual void PerformEF(); + + Standard_EXPORT virtual void PerformFF(); + + Standard_EXPORT virtual void PerformVZ(); + + Standard_EXPORT virtual void PerformEZ(); + + Standard_EXPORT virtual void PerformFZ(); + + Standard_EXPORT virtual void PerformZZ(); + + Standard_EXPORT void TreatVerticesEE(); + + Standard_EXPORT void MakeSplitEdges(); + + Standard_EXPORT void MakeBlocks(); + + Standard_EXPORT void MakePCurves(); + + Standard_EXPORT void ProcessDE(); + + Standard_EXPORT void FillShrunkData (Handle(BOPDS_PaveBlock)& thePB); + + Standard_EXPORT void FillShrunkData (const TopAbs_ShapeEnum theType1, const TopAbs_ShapeEnum theType2); + + Standard_EXPORT Standard_Integer PerformVerticesEE (BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks& theMVCPB, BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT Standard_Integer PerformVerticesEF (BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks& theMVCPB, BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT Standard_Boolean CheckFacePaves (const TopoDS_Vertex& theVnew, const BOPCol_MapOfInteger& theMIF); + + Standard_EXPORT static Standard_Boolean CheckFacePaves (const Standard_Integer theN, const BOPCol_MapOfInteger& theMIFOn, const BOPCol_MapOfInteger& theMIFIn); + + Standard_EXPORT Standard_Boolean IsExistingVertex (const gp_Pnt& theP, const Standard_Real theTol, const BOPCol_MapOfInteger& theMVOn) const; + + + //! Checks and puts paves from on the curve . + Standard_EXPORT void PutPavesOnCurve (const BOPCol_MapOfInteger& theMVOn, const Standard_Real theTolR3D, BOPDS_Curve& theNC, const Standard_Integer nF1, const Standard_Integer nF2, const BOPCol_MapOfInteger& theMI, const BOPCol_MapOfInteger& theMVEF, BOPCol_DataMapOfIntegerReal& theMVTol); + + + //! Depending on the parameter aType it checks whether + //! the vertex nV was created in EE or EF intersections. + //! If so, it increases aTolVExt from tolerance value of vertex to + //! the max distance from vertex nV to the ends of the range of common part. + //! Possible values of aType: + //! 1 - checks only EE; + //! 2 - checks only EF; + //! other - checks both types of intersections. + Standard_EXPORT Standard_Boolean ExtendedTolerance (const Standard_Integer nV, const BOPCol_MapOfInteger& aMI, Standard_Real& aTolVExt, const Standard_Integer aType = 0); + + Standard_EXPORT void PutBoundPaveOnCurve (const TopoDS_Face& theF1, const TopoDS_Face& theF2, const Standard_Real theTolR3D, BOPDS_Curve& theNC, BOPCol_ListOfInteger& theLBV); + + Standard_EXPORT Standard_Boolean IsExistingPaveBlock (const Handle(BOPDS_PaveBlock)& thePB, const BOPDS_Curve& theNC, const Standard_Real theTolR3D, const BOPDS_IndexedMapOfPaveBlock& theMPB, Handle(BOPDS_PaveBlock)& thePBOut); + + Standard_EXPORT Standard_Boolean IsExistingPaveBlock (const Handle(BOPDS_PaveBlock)& thePB, const BOPDS_Curve& theNC, const Standard_Real theTolR3D, const BOPCol_ListOfInteger& theLSE); + + + //! Treatment of section edges. + Standard_EXPORT Standard_Integer PostTreatFF (BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks& theMSCPB, BOPCol_DataMapOfShapeInteger& theMVI, BOPDS_DataMapOfPaveBlockListOfPaveBlock& theDMExEdges, BOPCol_DataMapOfIntegerInteger& theDMI, BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT void FindPaveBlocks (const Standard_Integer theV, const Standard_Integer theF, BOPDS_ListOfPaveBlock& theLPB); + + Standard_EXPORT void FillPaves (const Standard_Integer theV, const Standard_Integer theE, const Standard_Integer theF, const BOPDS_ListOfPaveBlock& theLPB, const Handle(BOPDS_PaveBlock)& thePB); + + Standard_EXPORT void MakeSplitEdge (const Standard_Integer theV, const Standard_Integer theF); + + Standard_EXPORT void GetEFPnts (const Standard_Integer nF1, const Standard_Integer nF2, IntSurf_ListOfPntOn2S& aListOfPnts); + + + //! Checks and puts paves created in EF intersections on the curve . + Standard_EXPORT void PutEFPavesOnCurve (BOPDS_Curve& theNC, const BOPCol_MapOfInteger& theMI, const BOPCol_MapOfInteger& theMVEF, BOPCol_DataMapOfIntegerReal& theMVTol); + + + //! Puts stick paves on the curve + Standard_EXPORT void PutStickPavesOnCurve (const TopoDS_Face& aF1, const TopoDS_Face& aF2, const BOPCol_MapOfInteger& theMI, BOPDS_Curve& theNC, const BOPCol_MapOfInteger& theMVStick, BOPCol_DataMapOfIntegerReal& theMVTol); + + + //! Collects indices of vertices created in all intersections between + //! two faces ( and ) to the map . + //! Also, it collects indices of EF vertices to the map + //! and indices of all subshapes of these two faces to the map. + Standard_EXPORT void GetStickVertices (const Standard_Integer nF1, const Standard_Integer nF2, BOPCol_MapOfInteger& theMVStick, BOPCol_MapOfInteger& theMVEF, BOPCol_MapOfInteger& theMI); + + + //! Collects index nF and indices of all subshapes of the shape with index + //! to the map . + Standard_EXPORT void GetFullShapeMap (const Standard_Integer nF, BOPCol_MapOfInteger& theMI); + + + //! Removes indices of vertices that are already on the + //! curve from the map . + //! It is used in PutEFPavesOnCurve and PutStickPavesOnCurve methods. + Standard_EXPORT void RemoveUsedVertices (BOPDS_Curve& theNC, BOPCol_MapOfInteger& theMV); + + + //! Puts the pave nV on the curve theNC. + //! Parameter aType defines whether to check the pave with + //! extended tolerance: + //! 0 - do not perform the check; + //! other - perform the check (aType goes to ExtendedTolerance). + Standard_EXPORT void PutPaveOnCurve (const Standard_Integer nV, const Standard_Real theTolR3D, BOPDS_Curve& theNC, const BOPCol_MapOfInteger& theMI, BOPCol_DataMapOfIntegerReal& theMVTol, const Standard_Integer aType = 0); + + + //! Adds the existing edges from the map which interfere + //! with the vertices from map to the post treatment of section edges. + Standard_EXPORT void ProcessExistingPaveBlocks (const Standard_Integer theInt, const BOPDS_IndexedMapOfPaveBlock& theMPBOnIn, const BOPCol_DataMapOfIntegerListOfInteger& theDMBV, BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks& theMSCPB, BOPCol_DataMapOfShapeInteger& theMVI, BOPDS_MapOfPaveBlock& theMPB); + + + //! Replaces existing pave block with new pave blocks . + //! The list contains images of which were created in + //! the post treatment of section edges. + Standard_EXPORT void UpdateExistingPaveBlocks (const Handle(BOPDS_PaveBlock)& thePB, BOPDS_ListOfPaveBlock& theLPB, const Standard_Integer nF1, const Standard_Integer nF2); + + + //! Treatment of vertices that were created in EE intersections. + Standard_EXPORT void TreatNewVertices (const BOPCol_IndexedDataMapOfShapeInteger& theMVI, BOPCol_IndexedDataMapOfShapeListOfShape& theImages); + + + //! Put paves on the curve in case when + //! is closed 3D-curve + Standard_EXPORT void PutClosingPaveOnCurve (BOPDS_Curve& aNC); + + + //! Keeps data for post treatment + Standard_EXPORT void PreparePostTreatFF (const Standard_Integer aInt, const Standard_Integer aCur, const Handle(BOPDS_PaveBlock)& aPB, BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks& aMSCPB, BOPCol_DataMapOfShapeInteger& aMVI, BOPDS_ListOfPaveBlock& aLPB); + + + //! Refines the state On for the all faces having + //! state information + Standard_EXPORT void RefineFaceInfoOn(); + + + //! Updates the information about faces + Standard_EXPORT void UpdateFaceInfo (BOPDS_DataMapOfPaveBlockListOfPaveBlock& theDME, const BOPCol_DataMapOfIntegerInteger& theDMV); + + + //! Updates tolerance of vertex with index + //! to make it interfere with edge + Standard_EXPORT void ForceInterfVE (const Standard_Integer nV, Handle(BOPDS_PaveBlock)& aPB, BOPDS_MapOfPaveBlock& aMPB); + + + //! Updates tolerance of vertex with index + //! to make it interfere with face with index + Standard_EXPORT Standard_Boolean ForceInterfVF (const Standard_Integer nV, const Standard_Integer nF); + + + //! Checks if there are any common or intersecting sub shapes + //! between two planar faces. + Standard_EXPORT Standard_Boolean CheckPlanes (const Standard_Integer nF1, const Standard_Integer nF2) const; + + + //! Creates new edge from the edge nE with vertices nV1 and nV2 + //! and returns the index of that new edge in the DS. + Standard_EXPORT Standard_Integer SplitEdge (const Standard_Integer nE, const Standard_Integer nV1, const Standard_Real aT1, const Standard_Integer nV2, const Standard_Real aT2); + + + //! Updates pave blocks which have the paves with indices contained + //! in the map . + Standard_EXPORT void UpdatePaveBlocks (const BOPCol_DataMapOfIntegerInteger& theDMI); + + + BOPCol_ListOfShape myArguments; + BOPDS_PDS myDS; + BOPDS_PIterator myIterator; + Handle(IntTools_Context) myContext; + BOPAlgo_SectionAttribute mySectionAttribute; + Standard_Real myFuzzyValue; + + +private: + + + + + +}; + + + + + + + +#endif // _BOPAlgo_PaveFiller_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx index e918fc915a..4899fe710b 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx @@ -15,27 +15,28 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include -#include #include - -#include -#include - +#include +#include +#include #include -#include #include - +#include +#include #include #include -#include -#include +#include #include -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= // function: PerformVV diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_10.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_10.cxx index de5af544af..68bb407464 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_10.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_10.cxx @@ -15,22 +15,22 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include - -#include - -#include -#include +#include +#include +#include +#include +#include +#include +#include #include #include - +#include #include - -#include -#include -#include +#include +#include +#include +#include //======================================================================= //function : PerformVZ diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx index 69cfa25e38..a8ce76a0a6 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx @@ -15,24 +15,27 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include -#include -#include +#include +#include #include #include - -#include - -#include -#include +#include +#include #include -#include +#include #include -#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //class : BOPAlgo_VertexEdgeEdge diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx index dffce44d40..d5d7e2b51f 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx @@ -15,56 +15,59 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include -#include -#include #include - -#include - -#include -#include -#include -#include -#include -#include -#include -// -#include -#include -#include -#include -#include -// -#include -// +#include +#include +#include +#include +#include #include #include -#include #include -#include #include #include -// -#include -#include -#include -// -#include -#include #include #include +#include #include -#include -#include +#include +#include #include +#include +#include #include -// -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +// +// +// +// +// +// ///////////////////////////////////////////////////////////////////////// //======================================================================= //class : BOPAlgo_EdgeEdge diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx index 1bd5fc0319..4ff9d3ea82 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx @@ -15,29 +15,35 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -// -#include -// -#include -#include -#include -#include -#include -// + +#include +#include #include #include #include -// -#include -// -#include -#include +#include +#include +#include #include -#include +#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +// +// +// +// +// //======================================================================= //class : BOPAlgo_VertexFace //purpose : diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx index 9a1f5b66fe..3f622cbeea 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx @@ -15,47 +15,51 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -// -#include -// #include -// -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include #include -#include -// +#include +#include +#include +#include +#include #include #include #include -#include +#include +#include +#include +#include +#include + +// +// +// +// // -#include -#include -#include // -#include -#include // -#include -#include -#include -#include -#include -#include -#include -#include // -#include // -#include - //======================================================================= //class : BOPAlgo_EdgeFace //purpose : diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx index 9fa26e3e40..521d51c271 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx @@ -15,83 +15,70 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -// -#include -#include -#include - -#include -#include - -#include -#include - -#include -#include -#include -#include - -#include -#include - -#include -#include - -#include - -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include +#include +#include +#include +#include +#include #include -#include #include -#include +#include +#include +#include #include #include - -#include -#include +#include +#include #include -#include +#include +#include #include -#include +#include +#include +#include +#include #include #include +#include +#include #include #include -#include -#include -#include -#include -#include -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +// static void ToleranceFF(const BRepAdaptor_Surface& aBAS1, const BRepAdaptor_Surface& aBAS2, Standard_Real& aTolFF); diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx index 2bf9f0615e..f248d70a9d 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx @@ -15,53 +15,45 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include - -#include -#include -#include -#include - -#include -#include -#include - -#include - -#include -#include - -#include -#include - -#include -#include -#include +#include +#include +#include #include #include -#include - -#include -#include -#include #include +#include +#include +#include +#include +#include +#include +#include #include +#include #include -#include -#include -#include #include #include -#include -#include -#include -#include - +#include +#include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include static Standard_Boolean IsBasedOnPlane(const TopoDS_Face& aF); diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx index 8d784a6e4f..27629cb3d3 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_8.cxx @@ -15,40 +15,36 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include - -#include - -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include - -#include - #include -#include #include +#include #include #include - +#include +#include +#include +#include +#include +#include +#include #include #include #include -#include -#include - -#include - -#include -#include -#include -#include -#include -#include - static void MakeSplitEdge1 (const TopoDS_Edge& aE, const TopoDS_Face& aF, diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller_9.cxx b/src/BOPAlgo/BOPAlgo_PaveFiller_9.cxx index e3208e6b9b..324863bbb0 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller_9.cxx +++ b/src/BOPAlgo/BOPAlgo_PaveFiller_9.cxx @@ -12,24 +12,27 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -// -#include - -#include -#include -#include +#include +#include +#include #include +#include #include - -#include -#include +#include +#include #include #include - +#include +#include +#include +#include #include +#include +#include +#include +// //======================================================================= //class : BOPAlgo_ShrunkRange //purpose : diff --git a/src/BOPAlgo/BOPAlgo_Section.cdl b/src/BOPAlgo/BOPAlgo_Section.cdl deleted file mode 100644 index 177cf81104..0000000000 --- a/src/BOPAlgo/BOPAlgo_Section.cdl +++ /dev/null @@ -1,75 +0,0 @@ --- 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. - - -class Section from BOPAlgo - inherits Builder from BOPAlgo - - ---Purpose: - -- The algorithm to build a Secton between the arguments. - -- The Section consists of vertices and edges. - -- The Section contains: - -- 1. new vertices that are subjects of V/V, E/E, E/F, F/F interferences - -- 2. vertices that are subjects of V/E, V/F interferences - -- 3. new edges that are subjects of F/F interferences - -- 4. edges that are Common Blocks - - -- The vertex is included in Section only when it is not shared - -- between the edges above - -uses - ShapeEnum from TopAbs, - Shape from TopoDS, - ListOfShape from TopTools, - BaseAllocator from BOPCol, - PaveFiller from BOPAlgo - ---raises - -is - Create - returns Section from BOPAlgo; - ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_Section();" - ---Purpose: Empty constructor - - Create (theAllocator: BaseAllocator from BOPCol) - returns Section from BOPAlgo; - ---Purpose: Empty constructor - -- - -- protected methods - -- - CheckData(me:out) - is redefined protected; - ---Purpose: - - PerformInternal1(me:out; - thePF:PaveFiller from BOPAlgo) - is redefined protected; - ---Purpose: Performs calculations using prepared Filler - -- object - - BuildSection(me:out) - is virtual; - -- - -- History - -- - Generated (me:out; - theS : Shape from TopoDS) - returns ListOfShape from TopTools - is redefined; - ---C++: return const & - ---Purpose: Returns the list of shapes generated from the - -- shape theS. - -end Section; diff --git a/src/BOPAlgo/BOPAlgo_Section.cxx b/src/BOPAlgo/BOPAlgo_Section.cxx index f7a1f597f3..3486e4fb7c 100644 --- a/src/BOPAlgo/BOPAlgo_Section.cxx +++ b/src/BOPAlgo/BOPAlgo_Section.cxx @@ -12,42 +12,38 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include - -#include - -#include -#include -#include - -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include -#include - -#include -#include #include +#include #include #include #include -#include +#include #include -// +#include #include #include #include -#include -// -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +// +// //======================================================================= //function : //purpose : diff --git a/src/BOPAlgo/BOPAlgo_Section.hxx b/src/BOPAlgo/BOPAlgo_Section.hxx new file mode 100644 index 0000000000..482084fe61 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_Section.hxx @@ -0,0 +1,88 @@ +// 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_Section_HeaderFile +#define _BOPAlgo_Section_HeaderFile + +#include +#include +#include + +#include +#include +#include +class BOPAlgo_PaveFiller; +class TopoDS_Shape; + + + +//! The algorithm to build a Secton between the arguments. +//! The Section consists of vertices and edges. +//! The Section contains: +//! 1. new vertices that are subjects of V/V, E/E, E/F, F/F interferences +//! 2. vertices that are subjects of V/E, V/F interferences +//! 3. new edges that are subjects of F/F interferences +//! 4. edges that are Common Blocks +class BOPAlgo_Section : public BOPAlgo_Builder +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor + Standard_EXPORT BOPAlgo_Section(); +Standard_EXPORT virtual ~BOPAlgo_Section(); + + //! Empty constructor + //! + //! protected methods + Standard_EXPORT BOPAlgo_Section(const BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT virtual void BuildSection(); + + //! Returns the list of shapes generated from the + //! shape theS. + Standard_EXPORT virtual const TopTools_ListOfShape& Generated (const TopoDS_Shape& theS) Standard_OVERRIDE; + + + + +protected: + + + Standard_EXPORT virtual void CheckData() Standard_OVERRIDE; + + //! Performs calculations using prepared Filler + //! object + Standard_EXPORT virtual void PerformInternal1 (const BOPAlgo_PaveFiller& thePF) Standard_OVERRIDE; + + + + +private: + + + + + +}; + + + + + + + +#endif // _BOPAlgo_Section_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_SectionAttribute.cdl b/src/BOPAlgo/BOPAlgo_SectionAttribute.cdl deleted file mode 100644 index fe34d84224..0000000000 --- a/src/BOPAlgo/BOPAlgo_SectionAttribute.cdl +++ /dev/null @@ -1,71 +0,0 @@ --- 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. - -class SectionAttribute from BOPAlgo - ---Purpose: Class is a container of three flags used - --- by intersection algorithm - --- - -is - - Create(Aproximation : Boolean from Standard = Standard_True; - PCurveOnS1 : Boolean from Standard = Standard_True; - PCurveOnS2 : Boolean from Standard = Standard_True) - returns SectionAttribute from BOPAlgo; - ---Purpose: - --- Initializes me by flags - - Approximation(me: in out; theFlag: Boolean from Standard); - ---Purpose: - --- Modifier - --- - - PCurveOnS1(me: in out; theFlag: Boolean from Standard); - ---Purpose: - --- Modifier - --- - - PCurveOnS2(me: in out; theFlag: Boolean from Standard); - ---Purpose: - --- Modifier - --- - - Approximation(me) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - --- Selector - --- - - PCurveOnS1(me) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - --- Selector - --- - - PCurveOnS2(me) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - --- Selector - --- - -fields - myApproximation : Boolean from Standard; - myPCurve1 : Boolean from Standard; - myPCurve2 : Boolean from Standard; - -end SectionAttribute from BOPAlgo; diff --git a/src/BOPAlgo/BOPAlgo_SectionAttribute.cxx b/src/BOPAlgo/BOPAlgo_SectionAttribute.cxx index 466fcd11a1..8509a716b8 100644 --- a/src/BOPAlgo/BOPAlgo_SectionAttribute.cxx +++ b/src/BOPAlgo/BOPAlgo_SectionAttribute.cxx @@ -13,7 +13,9 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include + //======================================================================= // function: BOPAlgo_SectionAttribute // purpose: diff --git a/src/BOPAlgo/BOPAlgo_SectionAttribute.hxx b/src/BOPAlgo/BOPAlgo_SectionAttribute.hxx new file mode 100644 index 0000000000..3c6bb8bc75 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_SectionAttribute.hxx @@ -0,0 +1,90 @@ +// 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 + +#include +#include +#include + +#include + + +//! Class is a container of three flags used +//! by intersection algorithm +class BOPAlgo_SectionAttribute +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Initializes me by flags + Standard_EXPORT BOPAlgo_SectionAttribute(const Standard_Boolean Aproximation = Standard_True, const Standard_Boolean PCurveOnS1 = Standard_True, const Standard_Boolean PCurveOnS2 = Standard_True); + + + //! Modifier + Standard_EXPORT void Approximation (const Standard_Boolean theFlag); + + + //! Modifier + Standard_EXPORT void PCurveOnS1 (const Standard_Boolean theFlag); + + + //! Modifier + Standard_EXPORT void PCurveOnS2 (const Standard_Boolean theFlag); + + + //! Selector + Standard_Boolean Approximation() const; + + + //! Selector + Standard_Boolean PCurveOnS1() const; + + + //! Selector + Standard_Boolean PCurveOnS2() const; + + + + +protected: + + + + + +private: + + + + Standard_Boolean myApproximation; + Standard_Boolean myPCurve1; + Standard_Boolean myPCurve2; + + +}; + + +#include + + + + + +#endif // _BOPAlgo_SectionAttribute_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_ShellSplitter.cdl b/src/BOPAlgo/BOPAlgo_ShellSplitter.cdl deleted file mode 100644 index 1a960eccfe..0000000000 --- a/src/BOPAlgo/BOPAlgo_ShellSplitter.cdl +++ /dev/null @@ -1,73 +0,0 @@ --- 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. - -class ShellSplitter from BOPAlgo - inherits Algo from BOPAlgo - - ---Purpose: - -- The class provides the splitting of the set of connected faces - -- on separate loops -uses - BaseAllocator from BOPCol, - Shape from TopoDS, - ListOfShape from BOPCol, - ConnexityBlock from BOPTools, - ListOfConnexityBlock from BOPTools - - ---raises - -is - Create - returns ShellSplitter from BOPAlgo; - ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_ShellSplitter();" - ---Purpose: empty constructor - - Create(theAllocator: BaseAllocator from BOPCol) - returns ShellSplitter from BOPAlgo; - ---Purpose: constructor - - AddStartElement(me:out; - theS: Shape from TopoDS); - ---Purpose: adds a face to process - - StartElements(me) - returns ListOfShape from BOPCol; - ---C++: return const & - ---Purpose: return the faces to process - - Perform(me:out) - is redefined; - ---Purpose: performs the algorithm - - Shells(me) - returns ListOfShape from BOPCol; - ---C++: return const & - ---Purpose: returns the loops - - MakeConnexityBlocks(me:out) - is protected; - - MakeShells (me:out) - is protected; - - SplitBlock(myclass; - theCB:out ConnexityBlock from BOPTools); - -fields - myStartShapes: ListOfShape from BOPCol is protected; - myShells: ListOfShape from BOPCol is protected; - myLCB : ListOfConnexityBlock from BOPTools is protected; - -end ShellSplitter; diff --git a/src/BOPAlgo/BOPAlgo_ShellSplitter.cxx b/src/BOPAlgo/BOPAlgo_ShellSplitter.cxx index b188eb1363..ebc4fe58dd 100644 --- a/src/BOPAlgo/BOPAlgo_ShellSplitter.cxx +++ b/src/BOPAlgo/BOPAlgo_ShellSplitter.cxx @@ -15,28 +15,27 @@ // File: BOPAlgo_ShellSplitter.cxx // Created: Thu Jan 16 08:33:50 2014 -#include -// -#include -#include -#include - -#include -#include -// -#include +#include +#include #include -#include #include +#include #include -#include -// -#include -// +#include #include #include #include +#include +#include +#include +#include +#include +#include +// +// +// +// // static void MakeShell(const BOPCol_ListOfShape& , diff --git a/src/BOPAlgo/BOPAlgo_ShellSplitter.hxx b/src/BOPAlgo/BOPAlgo_ShellSplitter.hxx new file mode 100644 index 0000000000..84e10fcf57 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_ShellSplitter.hxx @@ -0,0 +1,91 @@ +// 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_ShellSplitter_HeaderFile +#define _BOPAlgo_ShellSplitter_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class TopoDS_Shape; + + + +//! The class provides the splitting of the set of connected faces +//! on separate loops +class BOPAlgo_ShellSplitter : public BOPAlgo_Algo +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! empty constructor + Standard_EXPORT BOPAlgo_ShellSplitter(); +Standard_EXPORT virtual ~BOPAlgo_ShellSplitter(); + + //! constructor + Standard_EXPORT BOPAlgo_ShellSplitter(const BOPCol_BaseAllocator& theAllocator); + + //! adds a face to process + Standard_EXPORT void AddStartElement (const TopoDS_Shape& theS); + + //! return the faces to process + Standard_EXPORT const BOPCol_ListOfShape& StartElements() const; + + //! performs the algorithm + Standard_EXPORT virtual void Perform() Standard_OVERRIDE; + + //! returns the loops + Standard_EXPORT const BOPCol_ListOfShape& Shells() const; + + Standard_EXPORT static void SplitBlock (BOPTools_ConnexityBlock& theCB); + + + + +protected: + + + Standard_EXPORT void MakeConnexityBlocks(); + + Standard_EXPORT void MakeShells(); + + + BOPCol_ListOfShape myStartShapes; + BOPCol_ListOfShape myShells; + BOPTools_ListOfConnexityBlock myLCB; + + +private: + + + + + +}; + + + + + + + +#endif // _BOPAlgo_ShellSplitter_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_Tools.cdl b/src/BOPAlgo/BOPAlgo_Tools.cdl deleted file mode 100644 index 3414d0c4bc..0000000000 --- a/src/BOPAlgo/BOPAlgo_Tools.cdl +++ /dev/null @@ -1,74 +0,0 @@ --- 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. - -class Tools from BOPAlgo - ----Purpose: - -uses - BaseAllocator from BOPCol, - IndexedDataMapOfIntegerListOfInteger from BOPCol, - DataMapOfIntegerListOfInteger from BOPCol, - PDS from BOPDS, - PaveBlock from BOPDS, - IndexedDataMapOfPaveBlockListOfInteger from BOPDS, - IndexedDataMapOfPaveBlockListOfPaveBlock from BOPDS, - DataMapOfIntegerListOfPaveBlock from BOPDS ---raises - -is - --- - --- static methods - --- - MakeBlocksCnx(myclass; - theMILI :IndexedDataMapOfIntegerListOfInteger from BOPCol; - theMBlocks :out DataMapOfIntegerListOfInteger from BOPCol; - theAllocator:out BaseAllocator from BOPCol); - - MakeBlocks(myclass; - theMILI :IndexedDataMapOfPaveBlockListOfPaveBlock from BOPDS; - theMBlocks :out DataMapOfIntegerListOfPaveBlock from BOPDS; - theAllocator:out BaseAllocator from BOPCol); - - PerformCommonBlocks(myclass; - theMBlocks :out IndexedDataMapOfPaveBlockListOfPaveBlock from BOPDS; - theAllocator:out BaseAllocator from BOPCol; - pDS: out PDS from BOPDS); - - FillMap(myclass; - tneN1:Integer from Standard; - tneN2:Integer from Standard; - theMILI : out IndexedDataMapOfIntegerListOfInteger from BOPCol; - theAllocator: out BaseAllocator from BOPCol); - - - FillMap(myclass; - tnePB1:PaveBlock from BOPDS; - tnePB2:PaveBlock from BOPDS; - theMILI : out IndexedDataMapOfPaveBlockListOfPaveBlock from BOPDS; - theAllocator: out BaseAllocator from BOPCol); - - FillMap(myclass; - tnePB1:PaveBlock from BOPDS; - tneF:Integer from Standard; - theMILI : out IndexedDataMapOfPaveBlockListOfInteger from BOPDS; - theAllocator: out BaseAllocator from BOPCol); - - PerformCommonBlocks(myclass; - theMBlocks :IndexedDataMapOfPaveBlockListOfInteger from BOPDS; - theAllocator:out BaseAllocator from BOPCol; - pDS: out PDS from BOPDS); ---fields - -end Tools; diff --git a/src/BOPAlgo/BOPAlgo_Tools.cxx b/src/BOPAlgo/BOPAlgo_Tools.cxx index edf727cac4..d9488de143 100644 --- a/src/BOPAlgo/BOPAlgo_Tools.cxx +++ b/src/BOPAlgo/BOPAlgo_Tools.cxx @@ -12,13 +12,15 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include + +#include +#include #include #include -#include +#include +#include +#include +#include //======================================================================= //function : MakeBlocksCnx diff --git a/src/BOPAlgo/BOPAlgo_Tools.hxx b/src/BOPAlgo/BOPAlgo_Tools.hxx new file mode 100644 index 0000000000..2e91942d81 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_Tools.hxx @@ -0,0 +1,78 @@ +// 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_Tools_HeaderFile +#define _BOPAlgo_Tools_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class BOPDS_PaveBlock; + + + +class BOPAlgo_Tools +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT static void MakeBlocksCnx (const BOPCol_IndexedDataMapOfIntegerListOfInteger& theMILI, BOPCol_DataMapOfIntegerListOfInteger& theMBlocks, BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT static void MakeBlocks (const BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock& theMILI, BOPDS_DataMapOfIntegerListOfPaveBlock& theMBlocks, BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT static void PerformCommonBlocks (BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock& theMBlocks, BOPCol_BaseAllocator& theAllocator, BOPDS_PDS& pDS); + + Standard_EXPORT static void FillMap (const Standard_Integer tneN1, const Standard_Integer tneN2, BOPCol_IndexedDataMapOfIntegerListOfInteger& theMILI, BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT static void FillMap (const Handle(BOPDS_PaveBlock)& tnePB1, const Handle(BOPDS_PaveBlock)& tnePB2, BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock& theMILI, BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT static void FillMap (const Handle(BOPDS_PaveBlock)& tnePB1, const Standard_Integer tneF, BOPDS_IndexedDataMapOfPaveBlockListOfInteger& theMILI, BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT static void PerformCommonBlocks (const BOPDS_IndexedDataMapOfPaveBlockListOfInteger& theMBlocks, BOPCol_BaseAllocator& theAllocator, BOPDS_PDS& pDS); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BOPAlgo_Tools_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_WireEdgeSet.cdl b/src/BOPAlgo/BOPAlgo_WireEdgeSet.cdl deleted file mode 100644 index 1903fb4ba4..0000000000 --- a/src/BOPAlgo/BOPAlgo_WireEdgeSet.cdl +++ /dev/null @@ -1,75 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -class WireEdgeSet from BOPAlgo - - ---Purpose: - -uses - Face from TopoDS, - Shape from TopoDS, - ListOfShape from BOPCol, - BaseAllocator from BOPCol - ---raises - -is - Create - returns WireEdgeSet from BOPAlgo; - ---C++: inline - ---C++: alias " virtual ~BOPAlgo_WireEdgeSet();" - - Create (theAllocator: BaseAllocator from BOPCol) - returns WireEdgeSet from BOPAlgo; - ---C++: inline - - Clear(me:out); - ---C++: inline - - SetFace(me:out; - aF:Face from TopoDS); - ---C++: inline - - Face(me) - returns Face from TopoDS; - ---C++: return const & - ---C++: inline - - AddStartElement(me:out; - sS: Shape from TopoDS); - ---C++: inline - - StartElements(me) - returns ListOfShape from BOPCol; - ---C++: return const & - ---C++: inline - - AddShape(me:out; - sS:Shape from TopoDS); - ---C++: inline - - Shapes(me) - returns ListOfShape from BOPCol; - ---C++: return const & - ---C++: inline - -fields - myFace : Face from TopoDS is protected; - myStartShapes : ListOfShape from BOPCol is protected; - myShapes : ListOfShape from BOPCol is protected; - -end WireEdgeSet; diff --git a/src/BOPAlgo/BOPAlgo_WireEdgeSet.cxx b/src/BOPAlgo/BOPAlgo_WireEdgeSet.cxx index f2b10a230f..d0af89f660 100644 --- a/src/BOPAlgo/BOPAlgo_WireEdgeSet.cxx +++ b/src/BOPAlgo/BOPAlgo_WireEdgeSet.cxx @@ -15,4 +15,7 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include diff --git a/src/BOPAlgo/BOPAlgo_WireEdgeSet.hxx b/src/BOPAlgo/BOPAlgo_WireEdgeSet.hxx new file mode 100644 index 0000000000..3c27d90db6 --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_WireEdgeSet.hxx @@ -0,0 +1,86 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_WireEdgeSet_HeaderFile +#define _BOPAlgo_WireEdgeSet_HeaderFile + +#include +#include +#include + +#include +#include +#include +class TopoDS_Face; +class TopoDS_Shape; + + + +class BOPAlgo_WireEdgeSet +{ +public: + + DEFINE_STANDARD_ALLOC + + + BOPAlgo_WireEdgeSet(); + virtual ~BOPAlgo_WireEdgeSet(); + + BOPAlgo_WireEdgeSet(const BOPCol_BaseAllocator& theAllocator); + + void Clear(); + + void SetFace (const TopoDS_Face& aF); + + const TopoDS_Face& Face() const; + + void AddStartElement (const TopoDS_Shape& sS); + + const BOPCol_ListOfShape& StartElements() const; + + void AddShape (const TopoDS_Shape& sS); + + const BOPCol_ListOfShape& Shapes() const; + + + + +protected: + + + + TopoDS_Face myFace; + BOPCol_ListOfShape myStartShapes; + BOPCol_ListOfShape myShapes; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPAlgo_WireEdgeSet_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_WireSplitter.cdl b/src/BOPAlgo/BOPAlgo_WireSplitter.cdl deleted file mode 100644 index e07656ff10..0000000000 --- a/src/BOPAlgo/BOPAlgo_WireSplitter.cdl +++ /dev/null @@ -1,78 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 1999-2012 OPEN CASCADE SAS --- --- The content of this file is subject to the Open CASCADE Technology Public --- License Version 6.5 (the "License"). You may not use the content of this file --- except in compliance with the License. Please obtain a copy of the License --- at http://www.opencascade.org and read it completely before using this file. --- --- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its --- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. --- --- The Original Code and all software distributed under the License is --- distributed on an "AS IS" basis, without warranty of any kind, and the --- Initial Developer hereby disclaims all such warranties, including without --- limitation, any warranties of merchantability, fitness for a particular --- purpose or non-infringement. Please see the License for the specific terms --- and conditions governing the rights and limitations under the License. - -class WireSplitter from BOPAlgo - inherits Algo from BOPAlgo - - ---Purpose: - -uses - Wire from TopoDS, - Face from TopoDS, - BaseAllocator from BOPCol, - ListOfShape from BOPCol, - WireEdgeSet from BOPAlgo, - PWireEdgeSet from BOPAlgo, - ConnexityBlock from BOPTools, - ListOfConnexityBlock from BOPTools - - ---raises - -is - Create - returns WireSplitter from BOPAlgo; - ---C++: alias "Standard_EXPORT virtual ~BOPAlgo_WireSplitter();" - - Create(theAllocator: BaseAllocator from BOPCol) - returns WireSplitter from BOPAlgo; - - SetWES(me:out; - theWES: WireEdgeSet from BOPAlgo); - - - WES(me:out) - returns WireEdgeSet from BOPAlgo; - ---C++: return & - - Perform(me:out) - is redefined; - - MakeWire(myclass; - theLE:out ListOfShape from BOPCol; - theW :out Wire from TopoDS); - ---C++: inline - - CheckData(me:out) - is redefined protected; - - MakeConnexityBlocks(me:out) - is protected; - - MakeWires(me:out) - is protected; - - SplitBlock(myclass; - theF :Face from TopoDS; - theCB:out ConnexityBlock from BOPTools); - -fields - myWES : PWireEdgeSet from BOPAlgo is protected; - myLCB : ListOfConnexityBlock from BOPTools is protected; - -end WireSplitter; diff --git a/src/BOPAlgo/BOPAlgo_WireSplitter.cxx b/src/BOPAlgo/BOPAlgo_WireSplitter.cxx index c01423e88f..d34ecedb0a 100644 --- a/src/BOPAlgo/BOPAlgo_WireSplitter.cxx +++ b/src/BOPAlgo/BOPAlgo_WireSplitter.cxx @@ -13,26 +13,24 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include -#include - -#include -#include - -#include +#include +#include +#include #include +#include #include -#include -#include #include - +#include #include - +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : diff --git a/src/BOPAlgo/BOPAlgo_WireSplitter.hxx b/src/BOPAlgo/BOPAlgo_WireSplitter.hxx new file mode 100644 index 0000000000..de1c15394e --- /dev/null +++ b/src/BOPAlgo/BOPAlgo_WireSplitter.hxx @@ -0,0 +1,92 @@ +// Created by: Peter KURNEV +// Copyright (c) 1999-2012 OPEN CASCADE SAS +// +// The content of this file is subject to the Open CASCADE Technology Public +// License Version 6.5 (the "License"). You may not use the content of this file +// except in compliance with the License. Please obtain a copy of the License +// at http://www.opencascade.org and read it completely before using this file. +// +// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its +// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. +// +// The Original Code and all software distributed under the License is +// distributed on an "AS IS" basis, without warranty of any kind, and the +// Initial Developer hereby disclaims all such warranties, including without +// limitation, any warranties of merchantability, fitness for a particular +// purpose or non-infringement. Please see the License for the specific terms +// and conditions governing the rights and limitations under the License. + +#ifndef _BOPAlgo_WireSplitter_HeaderFile +#define _BOPAlgo_WireSplitter_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class BOPAlgo_WireEdgeSet; +class TopoDS_Wire; +class TopoDS_Face; + + + +class BOPAlgo_WireSplitter : public BOPAlgo_Algo +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BOPAlgo_WireSplitter(); +Standard_EXPORT virtual ~BOPAlgo_WireSplitter(); + + Standard_EXPORT BOPAlgo_WireSplitter(const BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT void SetWES (const BOPAlgo_WireEdgeSet& theWES); + + Standard_EXPORT BOPAlgo_WireEdgeSet& WES(); + + Standard_EXPORT virtual void Perform() Standard_OVERRIDE; + + static void MakeWire (BOPCol_ListOfShape& theLE, TopoDS_Wire& theW); + + Standard_EXPORT static void SplitBlock (const TopoDS_Face& theF, BOPTools_ConnexityBlock& theCB); + + + + +protected: + + + Standard_EXPORT virtual void CheckData() Standard_OVERRIDE; + + Standard_EXPORT void MakeConnexityBlocks(); + + Standard_EXPORT void MakeWires(); + + + BOPAlgo_PWireEdgeSet myWES; + BOPTools_ListOfConnexityBlock myLCB; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPAlgo_WireSplitter_HeaderFile diff --git a/src/BOPAlgo/BOPAlgo_WireSplitter_1.cxx b/src/BOPAlgo/BOPAlgo_WireSplitter_1.cxx index 7e6d9fcc98..a1afa2f5e0 100644 --- a/src/BOPAlgo/BOPAlgo_WireSplitter_1.cxx +++ b/src/BOPAlgo/BOPAlgo_WireSplitter_1.cxx @@ -12,50 +12,43 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include - -#include -#include -#include - -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include #include - #include +#include +#include +#include +#include +#include +#include +#include #include #include - +#include +#include +#include #include - #include +#include +#include #include #include -#include -#include -#include - #include -#include -#include - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include typedef NCollection_DataMap \ \ diff --git a/src/BOPAlgo/FILES b/src/BOPAlgo/FILES index e6c81f7ad7..1111870102 100644 --- a/src/BOPAlgo/FILES +++ b/src/BOPAlgo/FILES @@ -1,3 +1,37 @@ +BOPAlgo_Algo.cxx +BOPAlgo_Algo.hxx +BOPAlgo_ArgumentAnalyzer.cxx +BOPAlgo_ArgumentAnalyzer.hxx +BOPAlgo_ArgumentAnalyzer.lxx +BOPAlgo_BOP.cxx +BOPAlgo_BOP.hxx +BOPAlgo_Builder.cxx +BOPAlgo_Builder.hxx +BOPAlgo_Builder_1.cxx +BOPAlgo_Builder_2.cxx +BOPAlgo_Builder_3.cxx +BOPAlgo_Builder_4.cxx +BOPAlgo_BuilderArea.cxx +BOPAlgo_BuilderArea.hxx +BOPAlgo_BuilderFace.cxx +BOPAlgo_BuilderFace.hxx +BOPAlgo_BuilderShape.cxx +BOPAlgo_BuilderShape.hxx +BOPAlgo_BuilderSolid.cxx +BOPAlgo_BuilderSolid.hxx +BOPAlgo_CheckerSI.cxx +BOPAlgo_CheckerSI.hxx +BOPAlgo_CheckResult.cxx +BOPAlgo_CheckResult.hxx +BOPAlgo_CheckStatus.hxx +BOPAlgo_ListOfCheckResult.hxx +BOPAlgo_MakerVolume.cxx +BOPAlgo_MakerVolume.hxx +BOPAlgo_MakerVolume.lxx +BOPAlgo_Operation.hxx +BOPAlgo_PArgumentAnalyzer.hxx +BOPAlgo_PaveFiller.cxx +BOPAlgo_PaveFiller.hxx BOPAlgo_PaveFiller_1.cxx BOPAlgo_PaveFiller_2.cxx BOPAlgo_PaveFiller_3.cxx @@ -8,11 +42,24 @@ BOPAlgo_PaveFiller_7.cxx BOPAlgo_PaveFiller_8.cxx BOPAlgo_PaveFiller_9.cxx BOPAlgo_PaveFiller_10.cxx -BOPAlgo_Builder_1.cxx -BOPAlgo_Builder_2.cxx -BOPAlgo_Builder_3.cxx -BOPAlgo_Builder_4.cxx +BOPAlgo_PBOP.hxx +BOPAlgo_PBuilder.hxx +BOPAlgo_PPaveFiller.hxx +BOPAlgo_PSection.hxx +BOPAlgo_PWireEdgeSet.hxx +BOPAlgo_Section.cxx +BOPAlgo_Section.hxx +BOPAlgo_SectionAttribute.cxx +BOPAlgo_SectionAttribute.hxx +BOPAlgo_SectionAttribute.lxx +BOPAlgo_ShellSplitter.cxx +BOPAlgo_ShellSplitter.hxx +BOPAlgo_Tools.cxx +BOPAlgo_Tools.hxx +BOPAlgo_WireEdgeSet.cxx +BOPAlgo_WireEdgeSet.hxx +BOPAlgo_WireEdgeSet.lxx +BOPAlgo_WireSplitter.cxx +BOPAlgo_WireSplitter.hxx +BOPAlgo_WireSplitter.lxx BOPAlgo_WireSplitter_1.cxx -BOPAlgo_ListOfCheckResult.hxx - - diff --git a/src/BOPCol/BOPCol.cdl b/src/BOPCol/BOPCol.cdl deleted file mode 100644 index 05654dc891..0000000000 --- a/src/BOPCol/BOPCol.cdl +++ /dev/null @@ -1,54 +0,0 @@ --- 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. - -package BOPCol - - ---Purpose: - -- The package contains collection classes - -- that are used by - -- partition and boolean operation algorithms -uses - TCollection - -is - imported BaseAllocator from BOPCol; - imported DataMapOfShapeInteger from BOPCol; - imported DataMapOfShapeReal from BOPCol; - imported MapOfInteger from BOPCol; - imported ListOfInteger from BOPCol; - imported PInteger from BOPCol; - imported DataMapOfIntegerInteger from BOPCol; - imported DataMapOfIntegerReal from BOPCol; - imported DataMapOfIntegerListOfInteger from BOPCol; - imported IndexedDataMapOfShapeBox from BOPCol; - imported IndexedMapOfInteger from BOPCol; - imported ListOfShape from BOPCol; - imported DataMapOfShapeAddress from BOPCol; - imported DataMapOfTransientAddress from BOPCol; - imported PListOfInteger from BOPCol; - imported MapOfShape from BOPCol; - imported DataMapOfShapeShape from BOPCol; - imported DataMapOfShapeListOfShape from BOPCol; - imported MapOfOrientedShape from BOPCol; - imported IndexedDataMapOfShapeListOfShape from BOPCol; - imported IndexedMapOfShape from BOPCol; - imported ListOfListOfShape from BOPCol; - imported SequenceOfShape from BOPCol; - imported SequenceOfPnt2d from BOPCol; - imported DataMapOfIntegerListOfShape from BOPCol; - imported IndexedDataMapOfIntegerListOfInteger from BOPCol; - imported IndexedDataMapOfShapeInteger from BOPCol; - - -end BOPCol; diff --git a/src/BOPCol/FILES b/src/BOPCol/FILES index 8be3e7ddbd..172c1b8ca9 100644 --- a/src/BOPCol/FILES +++ b/src/BOPCol/FILES @@ -1,37 +1,37 @@ -BOPCol_DataMapOfShapeInteger.hxx -BOPCol_DataMapOfShapeReal.hxx -BOPCol_MapOfInteger.hxx -BOPCol_ListOfInteger.hxx -BOPCol_PInteger.hxx -BOPCol_DataMapOfIntegerListOfInteger.hxx -BOPCol_IndexedDataMapOfShapeBox.hxx +BOPCol_BaseAllocator.hxx +BOPCol_Box2DBndTree.cxx +BOPCol_Box2DBndTree.hxx +BOPCol_BoxBndTree.cxx +BOPCol_BoxBndTree.hxx BOPCol_DataMapOfIntegerInteger.hxx -BOPCol_DataMapOfIntegerReal.hxx +BOPCol_DataMapOfIntegerListOfInteger.hxx +BOPCol_DataMapOfIntegerListOfShape.hxx BOPCol_DataMapOfIntegerMapOfInteger.hxx -BOPCol_IndexedMapOfInteger.hxx -BOPCol_ListOfShape.hxx +BOPCol_DataMapOfIntegerReal.hxx +BOPCol_DataMapOfIntegerShape.hxx BOPCol_DataMapOfShapeAddress.hxx -BOPCol_DataMapOfTransientAddress.hxx -BOPCol_PListOfInteger.hxx -BOPCol_MapOfShape.hxx -BOPCol_DataMapOfShapeShape.hxx +BOPCol_DataMapOfShapeInteger.hxx BOPCol_DataMapOfShapeListOfShape.hxx -BOPCol_MapOfOrientedShape.hxx +BOPCol_DataMapOfShapeReal.hxx +BOPCol_DataMapOfShapeShape.hxx +BOPCol_DataMapOfTransientAddress.hxx +BOPCol_IndexedDataMapOfIntegerListOfInteger.hxx +BOPCol_IndexedDataMapOfShapeBox.hxx +BOPCol_IndexedDataMapOfShapeInteger.hxx BOPCol_IndexedDataMapOfShapeListOfShape.hxx +BOPCol_IndexedMapOfInteger.hxx BOPCol_IndexedMapOfShape.hxx +BOPCol_ListOfInteger.hxx BOPCol_ListOfListOfShape.hxx -BOPCol_SequenceOfShape.hxx +BOPCol_ListOfShape.hxx +BOPCol_MapOfInteger.hxx +BOPCol_MapOfOrientedShape.hxx +BOPCol_MapOfShape.hxx +BOPCol_NCVector.hxx +BOPCol_Parallel.hxx +BOPCol_PInteger.hxx +BOPCol_PListOfInteger.hxx BOPCol_SequenceOfPnt2d.hxx -BOPCol_BaseAllocator.hxx -BOPCol_DataMapOfIntegerListOfShape.hxx BOPCol_SequenceOfReal.hxx -BOPCol_DataMapOfIntegerShape.hxx -BOPCol_IndexedDataMapOfIntegerListOfInteger.hxx -BOPCol_IndexedDataMapOfShapeInteger.hxx -BOPCol_Parallel.hxx -BOPCol_NCVector.hxx - -BOPCol_BoxBndTree.hxx -BOPCol_BoxBndTree.cxx -BOPCol_Box2DBndTree.hxx -BOPCol_Box2DBndTree.cxx +BOPCol_SequenceOfShape.hxx +BOPCol_VectorOfInteger.hxx diff --git a/src/BOPDS/BOPDS.cdl b/src/BOPDS/BOPDS.cdl deleted file mode 100644 index 2094b7418e..0000000000 --- a/src/BOPDS/BOPDS.cdl +++ /dev/null @@ -1,119 +0,0 @@ --- 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. - -package BOPDS - - ---Purpose: - -- The package contains classes that implements - -- the data structure for - -- general fuse and boolean operation algorithms - -uses - MMgt, - TCollection, - TColStd, - gp, - Bnd, - TopAbs, - TopoDS, - TopTools, - IntTools, - -- - BOPCol -is - -- - -- classes - -- - class ShapeInfo; - class IndexRange; - class DS; - class PassKey; - class PassKeyBoolean; - class PassKeyMapHasher; - class Tools; - class Iterator; - class Pave; - class PaveMapHasher; - class PaveBlock; - class CommonBlock; - class SubIterator; - class Point; - class Curve; - class FaceInfo; - class IteratorSI; - -- - -- pointers - -- - pointer PDS to DS from BOPDS; - pointer PIterator to Iterator from BOPDS; - pointer PIteratorSI to IteratorSI from BOPDS; - -- - -- primitives - -- - imported VectorOfShapeInfo from BOPDS; - imported VectorOfIndexRange from BOPDS; - imported ListOfPassKeyBoolean from BOPDS; - imported ListIteratorOfListOfPassKeyBoolean from BOPDS; - imported DataMapOfIntegerListOfInteger from BOPDS; - imported MapOfPassKey from BOPDS; - imported MapOfPassKeyBoolean from BOPDS; - imported VectorOfListOfPassKeyBoolean from BOPDS; - imported ListOfPave from BOPDS; - imported ListOfPaveBlock from BOPDS; - imported VectorOfListOfPaveBlock from BOPDS; - imported DataMapOfPaveBlockListOfPaveBlock from BOPDS; - imported MapOfPaveBlock from BOPDS; - imported DataMapOfPaveBlockListOfInteger from BOPDS; - imported DataMapOfPassKeyListOfPaveBlock from BOPDS; - imported CoupleOfPaveBlocks from BOPDS; - imported DataMapOfShapeCoupleOfPaveBlocks from BOPDS; - imported MapOfCommonBlock from BOPDS; - imported VectorOfFaceInfo from BOPDS; - imported MapOfPave from BOPDS; - imported IndexedDataMapOfPaveBlockListOfPaveBlock from BOPDS; - imported DataMapOfIntegerListOfPaveBlock from BOPDS; - imported IndexedMapOfPaveBlock from BOPDS; - imported IndexedDataMapOfPaveBlockListOfInteger from BOPDS; - imported IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; - imported DataMapOfPaveBlockCommonBlock from BOPDS; - -- - imported Interf from BOPDS; - imported InterfVV from BOPDS; - imported InterfVE from BOPDS; - imported InterfVF from BOPDS; - imported InterfEE from BOPDS; - imported InterfEF from BOPDS; - imported InterfFF from BOPDS; - imported InterfVZ from BOPDS; - imported InterfEZ from BOPDS; - imported InterfFZ from BOPDS; - imported InterfZZ from BOPDS; - -- - imported VectorOfInterfVV from BOPDS; - imported VectorOfInterfVE from BOPDS; - imported VectorOfInterfVF from BOPDS; - imported VectorOfInterfEE from BOPDS; - imported VectorOfInterfEF from BOPDS; - imported VectorOfInterfFF from BOPDS; - imported VectorOfInterfVZ from BOPDS; - imported VectorOfInterfEZ from BOPDS; - imported VectorOfInterfFZ from BOPDS; - imported VectorOfInterfZZ from BOPDS; - -- - imported VectorOfPoint from BOPDS; - imported VectorOfCurve from BOPDS; - imported VectorOfPave from BOPDS; - -- -end BOPDS; - diff --git a/src/BOPDS/BOPDS_CommonBlock.cdl b/src/BOPDS/BOPDS_CommonBlock.cdl deleted file mode 100644 index 99242c3c40..0000000000 --- a/src/BOPDS/BOPDS_CommonBlock.cdl +++ /dev/null @@ -1,174 +0,0 @@ --- 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. - -class CommonBlock from BOPDS - inherits TShared from MMgt - ---Purpose: - - ---Purpose: - -- The class BOPDS_CommonBlock is to store - -- the information about pave blocks that have - -- geometry coincidence (in terms of a tolerance) with - -- a) other pave block(s) - -- b) face(s) - -uses - ListOfInteger from BOPCol, - BaseAllocator from BOPCol, - PaveBlock from BOPDS, - ListOfPaveBlock from BOPDS - ---raises - -is - Create - returns CommonBlock from BOPDS; - ---Purpose: - --- Empty contructor - --- - - Create (theAllocator: BaseAllocator from BOPCol) - returns CommonBlock from BOPDS; - ---Purpose: - --- Contructor - --- - the allocator to manage the memory - --- - - AddPaveBlock(me:mutable; - aPB : PaveBlock from BOPDS); - ---Purpose: - --- Modifier - --- Adds the pave block to the list of pave blocks - --- of the common block - - AddPaveBlocks(me:mutable; - aLPB:ListOfPaveBlock from BOPDS); - ---Purpose: - --- Modifier - --- Adds the list of pave blocks - --- to the list of pave blocks - --- of the common block - - AddFace(me:mutable; - aF : Integer from Standard); - ---Purpose: - --- Modifier - --- Adds the index of the face - --- to the list of indices of faces - --- of the common block - - AddFaces (me:mutable; - aLF:ListOfInteger from BOPCol); - ---Purpose: - --- Modifier - --- Adds the list of indices of faces - --- to the list of indices of faces - --- of the common block - - PaveBlocks(me) - returns ListOfPaveBlock from BOPDS; - ---C++: return const & - ---Purpose: - --- Selector - --- Returns the list of pave blocks - --- of the common block - - Faces (me) - returns ListOfInteger from BOPCol; - ---C++: return const & - ---Purpose: - --- Selector - --- Returns the list of indices of faces - --- of the common block - - PaveBlock1 (me) - returns PaveBlock from BOPDS; - ---C++: return const & - ---Purpose: - --- Selector - --- Returns the first pave block - --- of the common block - - PaveBlockOnEdge (me:mutable; - theIndex: Integer from Standard) - returns PaveBlock from BOPDS; - ---C++: return & - ---Purpose: - --- Selector - --- Returns the pave block that belongs - --- to the edge with index - - IsPaveBlockOnFace (me; - theIndex: Integer from Standard) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the common block contains - -- a pave block that belongs - --- to the face with index - - IsPaveBlockOnEdge (me; - theIndex: Integer from Standard) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the common block contains - -- a pave block that belongs - --- to the edge with index - - Contains(me; - thePB:PaveBlock from BOPDS) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the common block contains - -- a pave block that is equal to - - Contains(me; - theF: Integer from Standard) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the common block contains - -- the face with index equal to - - SetEdge(me:mutable; - theEdge:Integer from Standard); - ---Purpose: - --- Modifier - --- Assign the index as the edge index - --- to all pave blocks of the common block - - Edge(me) - returns Integer from Standard; - ---Purpose: - --- Selector - --- Returns the index of the edge - --- of all pave blocks of the common block - - Dump(me); - -fields - myPaveBlocks: ListOfPaveBlock from BOPDS is protected; - myFaces : ListOfInteger from BOPCol is protected; - -end CommonBlock; - - - - - - - - diff --git a/src/BOPDS/BOPDS_CommonBlock.cxx b/src/BOPDS/BOPDS_CommonBlock.cxx index ff0bcf6cb3..b687e844ce 100644 --- a/src/BOPDS/BOPDS_CommonBlock.cxx +++ b/src/BOPDS/BOPDS_CommonBlock.cxx @@ -12,7 +12,10 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include //======================================================================= // function: diff --git a/src/BOPDS/BOPDS_CommonBlock.hxx b/src/BOPDS/BOPDS_CommonBlock.hxx new file mode 100644 index 0000000000..038b0a1472 --- /dev/null +++ b/src/BOPDS/BOPDS_CommonBlock.hxx @@ -0,0 +1,170 @@ +// 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_CommonBlock_HeaderFile +#define _BOPDS_CommonBlock_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +class BOPDS_PaveBlock; + + +class BOPDS_CommonBlock; +DEFINE_STANDARD_HANDLE(BOPDS_CommonBlock, MMgt_TShared) + + +//! The class BOPDS_CommonBlock is to store +//! the information about pave blocks that have +//! geometry coincidence (in terms of a tolerance) with +//! a) other pave block(s) +//! b) face(s) +class BOPDS_CommonBlock : public MMgt_TShared +{ + +public: + + + + //! Empty contructor + Standard_EXPORT BOPDS_CommonBlock(); + + + //! Contructor + //! - the allocator to manage the memory + Standard_EXPORT BOPDS_CommonBlock(const BOPCol_BaseAllocator& theAllocator); + + + //! Modifier + //! Adds the pave block to the list of pave blocks + //! of the common block + Standard_EXPORT void AddPaveBlock (const Handle(BOPDS_PaveBlock)& aPB); + + + //! Modifier + //! Adds the list of pave blocks + //! to the list of pave blocks + //! of the common block + Standard_EXPORT void AddPaveBlocks (const BOPDS_ListOfPaveBlock& aLPB); + + + //! Modifier + //! Adds the index of the face + //! to the list of indices of faces + //! of the common block + Standard_EXPORT void AddFace (const Standard_Integer aF); + + + //! Modifier + //! Adds the list of indices of faces + //! to the list of indices of faces + //! of the common block + Standard_EXPORT void AddFaces (const BOPCol_ListOfInteger& aLF); + + + //! Selector + //! Returns the list of pave blocks + //! of the common block + Standard_EXPORT const BOPDS_ListOfPaveBlock& PaveBlocks() const; + + + //! Selector + //! Returns the list of indices of faces + //! of the common block + Standard_EXPORT const BOPCol_ListOfInteger& Faces() const; + + + //! Selector + //! Returns the first pave block + //! of the common block + Standard_EXPORT const Handle(BOPDS_PaveBlock)& PaveBlock1() const; + + + //! Selector + //! Returns the pave block that belongs + //! to the edge with index + Standard_EXPORT Handle(BOPDS_PaveBlock)& PaveBlockOnEdge (const Standard_Integer theIndex); + + + //! Query + //! Returns true if the common block contains + //! a pave block that belongs + //! to the face with index + Standard_EXPORT Standard_Boolean IsPaveBlockOnFace (const Standard_Integer theIndex) const; + + + //! Query + //! Returns true if the common block contains + //! a pave block that belongs + //! to the edge with index + Standard_EXPORT Standard_Boolean IsPaveBlockOnEdge (const Standard_Integer theIndex) const; + + + //! Query + //! Returns true if the common block contains + //! a pave block that is equal to + Standard_EXPORT Standard_Boolean Contains (const Handle(BOPDS_PaveBlock)& thePB) const; + + + //! Query + //! Returns true if the common block contains + //! the face with index equal to + Standard_EXPORT Standard_Boolean Contains (const Standard_Integer theF) const; + + + //! Modifier + //! Assign the index as the edge index + //! to all pave blocks of the common block + Standard_EXPORT void SetEdge (const Standard_Integer theEdge); + + + //! Selector + //! Returns the index of the edge + //! of all pave blocks of the common block + Standard_EXPORT Standard_Integer Edge() const; + + Standard_EXPORT void Dump() const; + + + + + DEFINE_STANDARD_RTTI(BOPDS_CommonBlock,MMgt_TShared) + +protected: + + + BOPDS_ListOfPaveBlock myPaveBlocks; + BOPCol_ListOfInteger myFaces; + + +private: + + + + +}; + + + + + + + +#endif // _BOPDS_CommonBlock_HeaderFile diff --git a/src/BOPDS/BOPDS_Curve.cdl b/src/BOPDS/BOPDS_Curve.cdl deleted file mode 100644 index 6d5c907caa..0000000000 --- a/src/BOPDS/BOPDS_Curve.cdl +++ /dev/null @@ -1,152 +0,0 @@ --- 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. - -class Curve from BOPDS - - ---Purpose: - -- The class BOPDS_Curve is to store - -- the information about intersection curve - -uses - Box from Bnd, - Curve from IntTools, - ListOfInteger from BOPCol, - BaseAllocator from BOPCol, - ListOfPaveBlock from BOPDS, - PaveBlock from BOPDS - ---raises - -is - Create - returns Curve from BOPDS; - ---C++: alias "virtual ~BOPDS_Curve();" - ---C++: inline - ---Purpose: - --- Empty contructor - --- - Create (theAllocator: BaseAllocator from BOPCol) - returns Curve from BOPDS; - ---C++: inline - ---Purpose: - --- Contructor - --- - the allocator to manage the memory - --- - - SetCurve(me:out; - theC:Curve from IntTools); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets the curve - - Curve(me) - returns Curve from IntTools; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns the curve - - SetBox(me:out; - theBox:Box from Bnd); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets the bounding box of the curve - - Box(me) - returns Box from Bnd; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns the bounding box of the curve - - ChangeBox(me:out) - returns Box from Bnd; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the bounding box of the curve - SetPaveBlocks(me:out; - theLPB:ListOfPaveBlock from BOPDS); - - PaveBlocks (me) - returns ListOfPaveBlock from BOPDS; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns the list of pave blocks - --- of the curve - - ChangePaveBlocks (me:out) - returns ListOfPaveBlock from BOPDS; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the list of pave blocks - --- of the curve - - InitPaveBlock1(me:out); - ---C++: inline - ---Purpose: - --- Creates initial pave block - --- of the curve - - ChangePaveBlock1(me:out) - returns PaveBlock from BOPDS; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns initial pave block - --- of the curve - - TechnoVertices (me) - returns ListOfInteger from BOPCol; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns list of indices of technologic vertices - --- of the curve - - ChangeTechnoVertices (me:out) - returns ListOfInteger from BOPCol; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns list of indices of technologic vertices - --- of the curve - - HasEdge(me) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - --- Query - --- Returns true if at least one pave block of the curve - -- has edge -fields - myAllocator : BaseAllocator from BOPCol is protected; - myCurve : Curve from IntTools is protected; - myPaveBlocks : ListOfPaveBlock from BOPDS is protected; - myTechnoVertices : ListOfInteger from BOPCol is protected; - myBox : Box from Bnd is protected; - -end Curve; diff --git a/src/BOPDS/BOPDS_Curve.cxx b/src/BOPDS/BOPDS_Curve.cxx index bd011ac15d..77771a2df9 100644 --- a/src/BOPDS/BOPDS_Curve.cxx +++ b/src/BOPDS/BOPDS_Curve.cxx @@ -12,4 +12,8 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include diff --git a/src/BOPDS/BOPDS_Curve.hxx b/src/BOPDS/BOPDS_Curve.hxx new file mode 100644 index 0000000000..5952e1f006 --- /dev/null +++ b/src/BOPDS/BOPDS_Curve.hxx @@ -0,0 +1,150 @@ +// 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_Curve_HeaderFile +#define _BOPDS_Curve_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class IntTools_Curve; +class Bnd_Box; +class BOPDS_PaveBlock; + + + +//! The class BOPDS_Curve is to store +//! the information about intersection curve +class BOPDS_Curve +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Empty contructor + BOPDS_Curve(); +virtual ~BOPDS_Curve(); + + + //! Contructor + //! - the allocator to manage the memory + BOPDS_Curve(const BOPCol_BaseAllocator& theAllocator); + + + //! Modifier + //! Sets the curve + void SetCurve (const IntTools_Curve& theC); + + + //! Selector + //! Returns the curve + const IntTools_Curve& Curve() const; + + + //! Modifier + //! Sets the bounding box of the curve + void SetBox (const Bnd_Box& theBox); + + + //! Selector + //! Returns the bounding box of the curve + const Bnd_Box& Box() const; + + + //! Selector/Modifier + //! Returns the bounding box of the curve + Bnd_Box& ChangeBox(); + + Standard_EXPORT void SetPaveBlocks (const BOPDS_ListOfPaveBlock& theLPB); + + + //! Selector + //! Returns the list of pave blocks + //! of the curve + const BOPDS_ListOfPaveBlock& PaveBlocks() const; + + + //! Selector/Modifier + //! Returns the list of pave blocks + //! of the curve + BOPDS_ListOfPaveBlock& ChangePaveBlocks(); + + + //! Creates initial pave block + //! of the curve + void InitPaveBlock1(); + + + //! Selector/Modifier + //! Returns initial pave block + //! of the curve + Handle(BOPDS_PaveBlock)& ChangePaveBlock1(); + + + //! Selector + //! Returns list of indices of technologic vertices + //! of the curve + const BOPCol_ListOfInteger& TechnoVertices() const; + + + //! Selector/Modifier + //! Returns list of indices of technologic vertices + //! of the curve + BOPCol_ListOfInteger& ChangeTechnoVertices(); + + + //! Query + //! Returns true if at least one pave block of the curve + //! has edge + Standard_Boolean HasEdge() const; + + + + +protected: + + + + BOPCol_BaseAllocator myAllocator; + IntTools_Curve myCurve; + BOPDS_ListOfPaveBlock myPaveBlocks; + BOPCol_ListOfInteger myTechnoVertices; + Bnd_Box myBox; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPDS_Curve_HeaderFile diff --git a/src/BOPDS/BOPDS_DS.cdl b/src/BOPDS/BOPDS_DS.cdl deleted file mode 100644 index 4fc375f386..0000000000 --- a/src/BOPDS/BOPDS_DS.cdl +++ /dev/null @@ -1,686 +0,0 @@ --- 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. - -class DS from BOPDS - - ---Purpose: - -- The class BOPDS_DS provides the control - -- the data structure for - -- partition and boolean operation algorithms - -- - -- The data structure has the following contents: - -- 1. the arguments of an operation [myArguments]; - -- 2 the information about arguments/new shapes - -- and their sub-shapes (type of the shape, - -- bounding box, etc) [myLines]; - -- 3. each argument shape(and its subshapes) - -- has/have own range of indices (rank) - -- 4. pave blocks on source edges [myPaveBlocksPool]; - -- 5. the state of source faces [myFaceInfoPool] - -- 6 the collection of same domain shapes [myShapesSD] - -- 7 the collection of interferences [myInterfTB, - -- myInterfVV,..myInterfFF] - -uses - ShapeEnum from TopAbs, - Box from Bnd, - Shape from TopoDS, - -- - ListOfShape from BOPCol, - DataMapOfIntegerInteger from BOPCol, - DataMapOfIntegerReal from BOPCol, - DataMapOfShapeInteger from BOPCol, - ListOfInteger from BOPCol, - MapOfInteger from BOPCol, - BaseAllocator from BOPCol, - -- - ShapeInfo from BOPDS, - IndexRange from BOPDS, - VectorOfIndexRange from BOPDS, - VectorOfShapeInfo from BOPDS, - VectorOfListOfPaveBlock from BOPDS, - ListOfPaveBlock from BOPDS, - ListOfPave from BOPDS, - PaveBlock from BOPDS, - CommonBlock from BOPDS, - MapOfPaveBlock from BOPDS, - IndexedMapOfPaveBlock from BOPDS, - VectorOfFaceInfo from BOPDS, - FaceInfo from BOPDS, - -- - MapOfPassKey from BOPDS, - DataMapOfPaveBlockCommonBlock from BOPDS, - -- - VectorOfInterfVV from BOPDS, - VectorOfInterfVE from BOPDS, - VectorOfInterfVF from BOPDS, - VectorOfInterfEE from BOPDS, - VectorOfInterfEF from BOPDS, - VectorOfInterfFF from BOPDS, - VectorOfInterfVZ from BOPDS, - VectorOfInterfEZ from BOPDS, - VectorOfInterfFZ from BOPDS, - VectorOfInterfZZ from BOPDS - ---raises - -is - Create - returns DS from BOPDS; - ---C++: alias "Standard_EXPORT virtual ~BOPDS_DS();" - ---Purpose: - --- Empty contructor - --- - Create (theAllocator: BaseAllocator from BOPCol) - returns DS from BOPDS; - ---Purpose: - --- Contructor - --- theAllocator - the allocator to manage the memory - --- - - Clear(me:out); - ---Purpose: - -- Clears the contents - - Allocator(me) - returns BaseAllocator from BOPCol; - ---C++: return const & - ---Purpose: - --- Selector - --- - - SetArguments(me:out; - theLS:ListOfShape from BOPCol); - ---Purpose: - --- Modifier - --- Sets the arguments [theLS] of an operation - - Arguments(me) - returns ListOfShape from BOPCol; - ---C++: return const & - ---Purpose: - --- Selector - --- Returns the arguments of an operation - - Init(me:out); - ---Purpose: - --- Initializes the data structure for - -- the arguments - - NbShapes(me) - returns Integer from Standard; - ---Purpose: - --- Selector - --- Returns the total number of shapes stored - - NbSourceShapes(me) - returns Integer from Standard; - ---Purpose: - --- Selector - --- Returns the total number of source shapes stored - - NbRanges(me) - returns Integer from Standard; - ---Purpose: - --- Selector - --- Returns the number of index ranges - - Range(me; - theIndex:Integer from Standard) - returns IndexRange from BOPDS; - ---C++: return const & - ---Purpose: - --- Selector - --- Returns the index range "i" - - Rank (me; - theIndex:Integer from Standard) - returns Integer from Standard; - ---Purpose: - --- Selector - --- Returns the rank of the shape of index "i" - - IsNewShape(me; - theIndex:Integer from Standard) - returns Boolean from Standard; - ---Purpose: - --- Returns true if the shape of index "i" is not - --- the source shape/sub-shape - - -- - -- shapes and auxiliary info - -- - Append(me:out; - theSI:ShapeInfo from BOPDS) - returns Integer from Standard; - ---Purpose: - --- Modifier - --- Appends the information about the shape [theSI] - --- to the data structure - --- Returns the index of theSI in the data structure - - Append(me:out; - theS:Shape from TopoDS) - returns Integer from Standard; - ---Purpose: - --- Modifier - --- Appends the default information about the shape [theS] - --- to the data structure - --- Returns the index of theS in the data structure - - ShapeInfo(me; - theIndex:Integer from Standard) - returns ShapeInfo from BOPDS; - ---C++: return const & - ---Purpose: - --- Selector - --- Returns the information about the shape - --- with index theIndex - - ChangeShapeInfo(me:out; - theIndex:Integer from Standard) - returns ShapeInfo from BOPDS; - ---C++: return & - ---Purpose: - --- Selector/Modifier - --- Returns the information about the shape - --- with index theIndex - - Shape(me; - theIndex:Integer from Standard) - returns Shape from TopoDS; - ---C++: return const & - ---Purpose: - --- Selector - --- Returns the shape - -- with index theIndex - - Index(me; - theS:Shape from TopoDS) - returns Integer from Standard; - ---Purpose: - --- Selector - --- Returns the index of the shape theS - - -- - -- pave blocks - -- - PaveBlocksPool(me) - returns VectorOfListOfPaveBlock from BOPDS; - ---C++: return const & - ---Purpose: - --- Selector - --- Returns the information about pave blocks on source edges - - ChangePaveBlocksPool(me:out) - returns VectorOfListOfPaveBlock from BOPDS; - ---C++: return & - ---Purpose: - --- Selector/Modifier - --- Returns the information about pave blocks on source edges - - HasPaveBlocks(me; - theIndex:Integer from Standard) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the shape with index theIndex has the - --- information about pave blocks - - PaveBlocks (me; - theIndex:Integer from Standard) - returns ListOfPaveBlock from BOPDS; - ---C++: return const & - ---Purpose: - --- Selector - --- Returns the pave blocks for the shape with index theIndex - - ChangePaveBlocks (me:out; - theIndex:Integer from Standard) - returns ListOfPaveBlock from BOPDS; - ---C++: return & - ---Purpose: - --- Selector/Modifier - --- Returns the pave blocks for the shape with index theIndex - - InitPaveBlocks(me:out; - theIndex:Integer from Standard) - is protected; - ---Purpose: - --- Initializes the pave blocks for the shape with index theIndex - - UpdatePaveBlocks(me:out); - ---Purpose: - --- Update the pave blocks for the all shapes in data structure - - UpdatePaveBlock(me:out; - thePB:PaveBlock from BOPDS); - ---Purpose: - --- Update the pave block thePB - - UpdateCommonBlock(me:out; - theCB:CommonBlock from BOPDS); - ---Purpose: - --- Update the common block theCB - - IsCommonBlock(me; - thePB:PaveBlock from BOPDS) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the pave block is common block - - CommonBlock(me; - thePB:PaveBlock from BOPDS) - returns CommonBlock from BOPDS; - ---Purpose: - --- Selector - --- Returns the common block - - SetCommonBlock(me:out; - thePB:PaveBlock from BOPDS; - theCB:CommonBlock from BOPDS); - ---Purpose: - --- Modifier - --- Sets the common block - - RealPaveBlock(me; - thePB:PaveBlock from BOPDS) - returns PaveBlock from BOPDS; - ---Purpose: - --- Selector - --- Returns the real first pave block - - IsCommonBlockOnEdge(me; - thePB:PaveBlock from BOPDS) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if common block contains more then one pave block - - -- - -- face info - -- - FaceInfoPool(me) - returns VectorOfFaceInfo from BOPDS; - ---C++: return const & - ---Purpose: - --- Selector - --- Returns the information about state of faces - - HasFaceInfo(me; - theIndex:Integer from Standard) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the shape with index theIndex has the - --- information about state of face - - FaceInfo(me; - theIndex:Integer from Standard) - returns FaceInfo from BOPDS; - ---C++: return const & - ---Purpose: - --- Selector - --- Returns the state of face with index theIndex - - ChangeFaceInfo(me:out; - theIndex:Integer from Standard) - returns FaceInfo from BOPDS; - ---C++: return & - ---Purpose: - --- Selector/Modifier - --- Returns the state of face with index theIndex - - InitFaceInfo(me:out; - theIndex:Integer from Standard) - is protected; - ---Purpose: - --- Initializes the state of face with index theIndex - - UpdateFaceInfoIn(me:out; - theIndex:Integer from Standard); - ---Purpose: - --- Update the state In of face with index theIndex - - UpdateFaceInfoOn(me:out; - theIndex:Integer from Standard); - ---Purpose: - --- Update the state On of face with index theIndex - - FaceInfoOn(me:out; - theIndex:Integer from Standard; - theMPB:out IndexedMapOfPaveBlock from BOPDS; - theMVP:out MapOfInteger from BOPCol); - ---Purpose: - --- Selector - --- Returns the state On - --- [theMPB,theMVP] of face with index theIndex - - FaceInfoIn(me:out; - theIndex:Integer from Standard; - theMPB:out IndexedMapOfPaveBlock from BOPDS; - theMVP:out MapOfInteger from BOPCol); - ---Purpose: - --- Selector - --- Returns the state In - --- [theMPB,theMVP] of face with index theIndex - - AloneVertices(me; - theF:Integer from Standard; - theLI:out ListOfInteger from BOPCol); - ---Purpose: - --- Selector - --- Returns the indices of alone vertices - --- for the face with index theIndex - - RefineFaceInfoOn(me:out); - ---Purpose: - --- Refine the state On for the all faces having - --- state information - -- - -- ++ - -- - VerticesOnIn(me; - theF1:Integer from Standard; - theF2:Integer from Standard; - theMI:out MapOfInteger from BOPCol; - aMPB: out IndexedMapOfPaveBlock from BOPDS); - ---Purpose: - --- Returns the indices of vertices and pave blocks - --- that are On/In for the faces with indices theF1, theF2 - - SharedEdges(me:out; - theF1:Integer from Standard; - theF2:Integer from Standard; - theLI:out ListOfInteger from BOPCol; - theAllocator:BaseAllocator from BOPCol); - ---Purpose: - --- Returns the indices of edges that are shared - --- for the faces with indices theF1, theF2 - -- - -- same domain shapes - -- - ShapesSD (me:out) - returns DataMapOfIntegerInteger from BOPCol; - ---C++: return & - ---Purpose: - --- Selector - --- Returns the collection same domain shapes - - AddShapeSD(me:out; - theIndex:Integer from Standard; - theIndexSD:Integer from Standard); - ---Purpose: - --- Modifier - --- Adds the information about same domain shapes - --- with indices theIndex, theIndexSD - - HasShapeSD(me; - theIndex:Integer from Standard; - theIndexSD:out Integer from Standard) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the shape with index theIndex has the - --- same domain shape. In this case theIndexSD will contain - -- the index of same domain shape found - -- - -- interferences - -- - InterfVV(me:out) - returns VectorOfInterfVV from BOPDS; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the collection of interferences Vertex/Vertex - - InterfVE(me:out) - returns VectorOfInterfVE from BOPDS; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the collection of interferences Vertex/Edge - - InterfVF(me:out) - returns VectorOfInterfVF from BOPDS; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the collection of interferences Vertex/Face - - InterfEE(me:out) - returns VectorOfInterfEE from BOPDS; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the collection of interferences Edge/Edge - - InterfEF(me:out) - returns VectorOfInterfEF from BOPDS; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the collection of interferences Edge/Face - - InterfFF(me:out) - returns VectorOfInterfFF from BOPDS; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the collection of interferences Face/Face - - InterfVZ(me:out) - returns VectorOfInterfVZ from BOPDS; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the collection of interferences Vertex/Solid - - InterfEZ(me:out) - returns VectorOfInterfEZ from BOPDS; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the collection of interferences Edge/Solid - - InterfFZ(me:out) - returns VectorOfInterfFZ from BOPDS; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the collection of interferences Face/Solid - - InterfZZ(me:out) - returns VectorOfInterfZZ from BOPDS; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the collection of interferences Solid/Solid - - NbInterfTypes(myclass) - returns Integer from Standard; - ---C++: inline - ---Purpose: - -- Returns the number of types of the interferences - -- - - AddInterf(me:out; - theI1:Integer from Standard; - theI2:Integer from Standard); - ---C++: inline - ---Purpose: - --- Modifier - --- Adds the information about an interference between - --- shapes with indices theI1, theI2 to the summary - --- table of interferences - - HasInterf(me; - theI:Integer from Standard) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the shape with index theI - --- is interferred - - HasInterf(me; - theI1:Integer from Standard; - theI2:Integer from Standard) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - --- Query - --- Returns true if the shapes with indices theI1, theI2 - --- are interferred - - HasInterfShapeSubShapes(me; - theI1:Integer from Standard; - theI2:Integer from Standard; - theFlag: Boolean from Standard=Standard_True) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the shape with index theI1 is interfered - --- with - -- any sub-shape of the shape with index theI2 (theFlag=true) - -- all sub-shapes of the shape with index theI2 (theFlag=false) - - HasInterfSubShapes(me; - theI1:Integer from Standard; - theI2:Integer from Standard) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the shapes with indices theI1, theI2 - --- have interferred sub-shapes - - Interferences(me) - returns MapOfPassKey from BOPDS; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns the table of interferences - -- - -- debug - -- - Dump(me); - -- - -- protected methods - -- - InitShape(me:out; - theIndex:Integer from Standard; - theS:Shape from TopoDS; - theAllocator:out BaseAllocator from BOPCol; - theMSI:out DataMapOfShapeInteger from BOPCol) - is protected; - - CheckCoincidence(me:out; - thePB1:PaveBlock from BOPDS; - thePB2:PaveBlock from BOPDS) - returns Boolean from Standard - is protected; - - SortPaveBlocks(me:out; - theCB:CommonBlock from BOPDS); - - IsToSort(me:out; - theCB:CommonBlock from BOPDS; - theI:out Integer from Standard) - returns Boolean from Standard; - - IsSubShape(me:out; - theI1:Integer from Standard; - theI2:Integer from Standard) - returns Boolean from Standard; - - Paves(me:out; - theIndex:Integer from Standard; - theLP:out ListOfPave from BOPDS); - ---Purpose: Fills theLP with sorted paves - -- of the shape with index theIndex - - UpdateEdgeTolerance(me:out; - theIndex:Integer from Standard; - theTolerance:Real from Standard); - ---Purpose: - --- Updates tolerance of the sub-shapes of the shape with index . - --- - - BuildBndBoxSolid (me:out; - theIndex:Integer from Standard; - theBox:out Box from Bnd) - is protected; - ---Purpose: - --- Computes bouding box for the solid with DS-index - --- - - SetFuzzyValue(me:out; - theFuzz : Real from Standard); - ---C++: inline - ---Purpose: Sets the extended tolerance - - FuzzyValue(me) - returns Real from Standard; - ---C++: inline - ---Purpose: Returns the extended tolerance - - SetDefaultTolerances(me:out); - ---Purpose: Reverts the tolerance values of unchanged entities to default values. - -fields - myAllocator : BaseAllocator from BOPCol is protected; - myArguments : ListOfShape from BOPCol is protected; - --contents - myNbShapes : Integer from Standard is protected; - myNbSourceShapes : Integer from Standard is protected; - myRanges : VectorOfIndexRange from BOPDS is protected; - myLines : VectorOfShapeInfo from BOPDS is protected; - myMapShapeIndex : DataMapOfShapeInteger from BOPCol is protected; - -- - myPaveBlocksPool : VectorOfListOfPaveBlock from BOPDS is protected; - myMapPBCB : DataMapOfPaveBlockCommonBlock from BOPDS is protected; - myFaceInfoPool : VectorOfFaceInfo from BOPDS is protected; - -- - --same domain shapes - myShapesSD : DataMapOfIntegerInteger from BOPCol is protected; - -- - --interferences - myInterfTB : MapOfPassKey from BOPDS is protected; - myInterfVV : VectorOfInterfVV from BOPDS is protected; - myInterfVE : VectorOfInterfVE from BOPDS is protected; - myInterfVF : VectorOfInterfVF from BOPDS is protected; - myInterfEE : VectorOfInterfEE from BOPDS is protected; - myInterfEF : VectorOfInterfEF from BOPDS is protected; - myInterfFF : VectorOfInterfFF from BOPDS is protected; - myInterfVZ : VectorOfInterfVZ from BOPDS is protected; - myInterfEZ : VectorOfInterfEZ from BOPDS is protected; - myInterfFZ : VectorOfInterfFZ from BOPDS is protected; - myInterfZZ : VectorOfInterfZZ from BOPDS is protected; - -- - -- extended tolerance for intersection - myFuzzyValue : Real from Standard is protected; - myToleranceMap : DataMapOfIntegerReal from BOPCol is protected; - -end DS; diff --git a/src/BOPDS/BOPDS_DS.cxx b/src/BOPDS/BOPDS_DS.cxx index f4e133a7cc..f58fd6211e 100644 --- a/src/BOPDS/BOPDS_DS.cxx +++ b/src/BOPDS/BOPDS_DS.cxx @@ -12,52 +12,52 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -// -#include -// -#include -#include -#include #include -// -#include -#include -#include -#include -#include -// -#include -#include -#include -#include -// -#include -// -#include -#include -#include #include -// -#include -#include -#include +#include +#include +#include +#include #include -#include +#include +#include +#include #include #include +#include +#include +#include #include - -#include -#include -#include -#include #include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include - +// +// +// +// +// +// +// // static inline void ResetShape(const TopoDS_Shape& aS); diff --git a/src/BOPDS/BOPDS_DS.hxx b/src/BOPDS/BOPDS_DS.hxx new file mode 100644 index 0000000000..bf7fa2e621 --- /dev/null +++ b/src/BOPDS/BOPDS_DS.hxx @@ -0,0 +1,516 @@ +// 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_DS_HeaderFile +#define _BOPDS_DS_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class BOPDS_IndexRange; +class BOPDS_ShapeInfo; +class TopoDS_Shape; +class BOPDS_PaveBlock; +class BOPDS_CommonBlock; +class BOPDS_FaceInfo; +class Bnd_Box; + + + +//! The class BOPDS_DS provides the control +//! the data structure for +//! partition and boolean operation algorithms +//! +//! The data structure has the following contents: +//! 1. the arguments of an operation [myArguments]; +//! 2 the information about arguments/new shapes +//! and their sub-shapes (type of the shape, +//! bounding box, etc) [myLines]; +//! 3. each argument shape(and its subshapes) +//! has/have own range of indices (rank) +//! 4. pave blocks on source edges [myPaveBlocksPool]; +//! 5. the state of source faces [myFaceInfoPool] +//! 6 the collection of same domain shapes [myShapesSD] +//! 7 the collection of interferences [myInterfTB, +//! myInterfVV,..myInterfFF] +class BOPDS_DS +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Empty contructor + Standard_EXPORT BOPDS_DS(); +Standard_EXPORT virtual ~BOPDS_DS(); + + + //! Contructor + //! theAllocator - the allocator to manage the memory + Standard_EXPORT BOPDS_DS(const BOPCol_BaseAllocator& theAllocator); + + + //! Clears the contents + Standard_EXPORT void Clear(); + + + //! Selector + Standard_EXPORT const BOPCol_BaseAllocator& Allocator() const; + + + //! Modifier + //! Sets the arguments [theLS] of an operation + Standard_EXPORT void SetArguments (const BOPCol_ListOfShape& theLS); + + + //! Selector + //! Returns the arguments of an operation + Standard_EXPORT const BOPCol_ListOfShape& Arguments() const; + + + //! Initializes the data structure for + //! the arguments + Standard_EXPORT void Init(); + + + //! Selector + //! Returns the total number of shapes stored + Standard_EXPORT Standard_Integer NbShapes() const; + + + //! Selector + //! Returns the total number of source shapes stored + Standard_EXPORT Standard_Integer NbSourceShapes() const; + + + //! Selector + //! Returns the number of index ranges + Standard_EXPORT Standard_Integer NbRanges() const; + + + //! Selector + //! Returns the index range "i" + Standard_EXPORT const BOPDS_IndexRange& Range (const Standard_Integer theIndex) const; + + + //! Selector + //! Returns the rank of the shape of index "i" + Standard_EXPORT Standard_Integer Rank (const Standard_Integer theIndex) const; + + + //! Returns true if the shape of index "i" is not + //! the source shape/sub-shape + Standard_EXPORT Standard_Boolean IsNewShape (const Standard_Integer theIndex) const; + + + //! Modifier + //! Appends the information about the shape [theSI] + //! to the data structure + //! Returns the index of theSI in the data structure + Standard_EXPORT Standard_Integer Append (const BOPDS_ShapeInfo& theSI); + + + //! Modifier + //! Appends the default information about the shape [theS] + //! to the data structure + //! Returns the index of theS in the data structure + Standard_EXPORT Standard_Integer Append (const TopoDS_Shape& theS); + + + //! Selector + //! Returns the information about the shape + //! with index theIndex + Standard_EXPORT const BOPDS_ShapeInfo& ShapeInfo (const Standard_Integer theIndex) const; + + + //! Selector/Modifier + //! Returns the information about the shape + //! with index theIndex + Standard_EXPORT BOPDS_ShapeInfo& ChangeShapeInfo (const Standard_Integer theIndex); + + + //! Selector + //! Returns the shape + //! with index theIndex + Standard_EXPORT const TopoDS_Shape& Shape (const Standard_Integer theIndex) const; + + + //! Selector + //! Returns the index of the shape theS + Standard_EXPORT Standard_Integer Index (const TopoDS_Shape& theS) const; + + + //! Selector + //! Returns the information about pave blocks on source edges + Standard_EXPORT const BOPDS_VectorOfListOfPaveBlock& PaveBlocksPool() const; + + + //! Selector/Modifier + //! Returns the information about pave blocks on source edges + Standard_EXPORT BOPDS_VectorOfListOfPaveBlock& ChangePaveBlocksPool(); + + + //! Query + //! Returns true if the shape with index theIndex has the + //! information about pave blocks + Standard_EXPORT Standard_Boolean HasPaveBlocks (const Standard_Integer theIndex) const; + + + //! Selector + //! Returns the pave blocks for the shape with index theIndex + Standard_EXPORT const BOPDS_ListOfPaveBlock& PaveBlocks (const Standard_Integer theIndex) const; + + + //! Selector/Modifier + //! Returns the pave blocks for the shape with index theIndex + Standard_EXPORT BOPDS_ListOfPaveBlock& ChangePaveBlocks (const Standard_Integer theIndex); + + + //! Update the pave blocks for the all shapes in data structure + Standard_EXPORT void UpdatePaveBlocks(); + + + //! Update the pave block thePB + Standard_EXPORT void UpdatePaveBlock (const Handle(BOPDS_PaveBlock)& thePB); + + + //! Update the common block theCB + Standard_EXPORT void UpdateCommonBlock (const Handle(BOPDS_CommonBlock)& theCB); + + + //! Query + //! Returns true if the pave block is common block + Standard_EXPORT Standard_Boolean IsCommonBlock (const Handle(BOPDS_PaveBlock)& thePB) const; + + + //! Selector + //! Returns the common block + Standard_EXPORT Handle(BOPDS_CommonBlock) CommonBlock (const Handle(BOPDS_PaveBlock)& thePB) const; + + + //! Modifier + //! Sets the common block + Standard_EXPORT void SetCommonBlock (const Handle(BOPDS_PaveBlock)& thePB, const Handle(BOPDS_CommonBlock)& theCB); + + + //! Selector + //! Returns the real first pave block + Standard_EXPORT Handle(BOPDS_PaveBlock) RealPaveBlock (const Handle(BOPDS_PaveBlock)& thePB) const; + + + //! Query + //! Returns true if common block contains more then one pave block + Standard_EXPORT Standard_Boolean IsCommonBlockOnEdge (const Handle(BOPDS_PaveBlock)& thePB) const; + + + //! Selector + //! Returns the information about state of faces + Standard_EXPORT const BOPDS_VectorOfFaceInfo& FaceInfoPool() const; + + + //! Query + //! Returns true if the shape with index theIndex has the + //! information about state of face + Standard_EXPORT Standard_Boolean HasFaceInfo (const Standard_Integer theIndex) const; + + + //! Selector + //! Returns the state of face with index theIndex + Standard_EXPORT const BOPDS_FaceInfo& FaceInfo (const Standard_Integer theIndex) const; + + + //! Selector/Modifier + //! Returns the state of face with index theIndex + Standard_EXPORT BOPDS_FaceInfo& ChangeFaceInfo (const Standard_Integer theIndex); + + + //! Update the state In of face with index theIndex + Standard_EXPORT void UpdateFaceInfoIn (const Standard_Integer theIndex); + + + //! Update the state On of face with index theIndex + Standard_EXPORT void UpdateFaceInfoOn (const Standard_Integer theIndex); + + + //! Selector + //! Returns the state On + //! [theMPB,theMVP] of face with index theIndex + Standard_EXPORT void FaceInfoOn (const Standard_Integer theIndex, BOPDS_IndexedMapOfPaveBlock& theMPB, BOPCol_MapOfInteger& theMVP); + + + //! Selector + //! Returns the state In + //! [theMPB,theMVP] of face with index theIndex + Standard_EXPORT void FaceInfoIn (const Standard_Integer theIndex, BOPDS_IndexedMapOfPaveBlock& theMPB, BOPCol_MapOfInteger& theMVP); + + + //! Selector + //! Returns the indices of alone vertices + //! for the face with index theIndex + Standard_EXPORT void AloneVertices (const Standard_Integer theF, BOPCol_ListOfInteger& theLI) const; + + + //! Refine the state On for the all faces having + //! state information + //! + //! ++ + Standard_EXPORT void RefineFaceInfoOn(); + + + //! Returns the indices of vertices and pave blocks + //! that are On/In for the faces with indices theF1, theF2 + Standard_EXPORT void VerticesOnIn (const Standard_Integer theF1, const Standard_Integer theF2, BOPCol_MapOfInteger& theMI, BOPDS_IndexedMapOfPaveBlock& aMPB) const; + + + //! Returns the indices of edges that are shared + //! for the faces with indices theF1, theF2 + //! + //! same domain shapes + Standard_EXPORT void SharedEdges (const Standard_Integer theF1, const Standard_Integer theF2, BOPCol_ListOfInteger& theLI, const BOPCol_BaseAllocator& theAllocator); + + + //! Selector + //! Returns the collection same domain shapes + Standard_EXPORT BOPCol_DataMapOfIntegerInteger& ShapesSD(); + + + //! Modifier + //! Adds the information about same domain shapes + //! with indices theIndex, theIndexSD + Standard_EXPORT void AddShapeSD (const Standard_Integer theIndex, const Standard_Integer theIndexSD); + + + //! Query + //! Returns true if the shape with index theIndex has the + //! same domain shape. In this case theIndexSD will contain + //! the index of same domain shape found + //! + //! interferences + Standard_EXPORT Standard_Boolean HasShapeSD (const Standard_Integer theIndex, Standard_Integer& theIndexSD) const; + + + //! Selector/Modifier + //! Returns the collection of interferences Vertex/Vertex + BOPDS_VectorOfInterfVV& InterfVV(); + + + //! Selector/Modifier + //! Returns the collection of interferences Vertex/Edge + BOPDS_VectorOfInterfVE& InterfVE(); + + + //! Selector/Modifier + //! Returns the collection of interferences Vertex/Face + BOPDS_VectorOfInterfVF& InterfVF(); + + + //! Selector/Modifier + //! Returns the collection of interferences Edge/Edge + BOPDS_VectorOfInterfEE& InterfEE(); + + + //! Selector/Modifier + //! Returns the collection of interferences Edge/Face + BOPDS_VectorOfInterfEF& InterfEF(); + + + //! Selector/Modifier + //! Returns the collection of interferences Face/Face + BOPDS_VectorOfInterfFF& InterfFF(); + + + //! Selector/Modifier + //! Returns the collection of interferences Vertex/Solid + BOPDS_VectorOfInterfVZ& InterfVZ(); + + + //! Selector/Modifier + //! Returns the collection of interferences Edge/Solid + BOPDS_VectorOfInterfEZ& InterfEZ(); + + + //! Selector/Modifier + //! Returns the collection of interferences Face/Solid + BOPDS_VectorOfInterfFZ& InterfFZ(); + + + //! Selector/Modifier + //! Returns the collection of interferences Solid/Solid + BOPDS_VectorOfInterfZZ& InterfZZ(); + + + //! Returns the number of types of the interferences + static Standard_Integer NbInterfTypes(); + + + //! Modifier + //! Adds the information about an interference between + //! shapes with indices theI1, theI2 to the summary + //! table of interferences + void AddInterf (const Standard_Integer theI1, const Standard_Integer theI2); + + + //! Query + //! Returns true if the shape with index theI + //! is interferred + Standard_EXPORT Standard_Boolean HasInterf (const Standard_Integer theI) const; + + + //! Query + //! Returns true if the shapes with indices theI1, theI2 + //! are interferred + Standard_Boolean HasInterf (const Standard_Integer theI1, const Standard_Integer theI2) const; + + + //! Query + //! Returns true if the shape with index theI1 is interfered + //! with + //! any sub-shape of the shape with index theI2 (theFlag=true) + //! all sub-shapes of the shape with index theI2 (theFlag=false) + Standard_EXPORT Standard_Boolean HasInterfShapeSubShapes (const Standard_Integer theI1, const Standard_Integer theI2, const Standard_Boolean theFlag = Standard_True) const; + + + //! Query + //! Returns true if the shapes with indices theI1, theI2 + //! have interferred sub-shapes + Standard_EXPORT Standard_Boolean HasInterfSubShapes (const Standard_Integer theI1, const Standard_Integer theI2) const; + + + //! Selector + //! Returns the table of interferences + //! + //! debug + const BOPDS_MapOfPassKey& Interferences() const; + + Standard_EXPORT void Dump() const; + + Standard_EXPORT void SortPaveBlocks (const Handle(BOPDS_CommonBlock)& theCB); + + Standard_EXPORT Standard_Boolean IsToSort (const Handle(BOPDS_CommonBlock)& theCB, Standard_Integer& theI); + + Standard_EXPORT Standard_Boolean IsSubShape (const Standard_Integer theI1, const Standard_Integer theI2); + + //! Fills theLP with sorted paves + //! of the shape with index theIndex + Standard_EXPORT void Paves (const Standard_Integer theIndex, BOPDS_ListOfPave& theLP); + + + //! Updates tolerance of the sub-shapes of the shape with index . + Standard_EXPORT void UpdateEdgeTolerance (const Standard_Integer theIndex, const Standard_Real theTolerance); + + //! Sets the extended tolerance + void SetFuzzyValue (const Standard_Real theFuzz); + + //! Returns the extended tolerance + Standard_Real FuzzyValue() const; + + //! Reverts the tolerance values of unchanged entities to default values. + Standard_EXPORT void SetDefaultTolerances(); + + + + +protected: + + + + //! Initializes the pave blocks for the shape with index theIndex + Standard_EXPORT void InitPaveBlocks (const Standard_Integer theIndex); + + + //! Initializes the state of face with index theIndex + Standard_EXPORT void InitFaceInfo (const Standard_Integer theIndex); + + Standard_EXPORT void InitShape (const Standard_Integer theIndex, const TopoDS_Shape& theS, BOPCol_BaseAllocator& theAllocator, BOPCol_DataMapOfShapeInteger& theMSI); + + Standard_EXPORT Standard_Boolean CheckCoincidence (const Handle(BOPDS_PaveBlock)& thePB1, const Handle(BOPDS_PaveBlock)& thePB2); + + + //! Computes bouding box for the solid with DS-index + Standard_EXPORT void BuildBndBoxSolid (const Standard_Integer theIndex, Bnd_Box& theBox); + + + BOPCol_BaseAllocator myAllocator; + BOPCol_ListOfShape myArguments; + Standard_Integer myNbShapes; + Standard_Integer myNbSourceShapes; + BOPDS_VectorOfIndexRange myRanges; + BOPDS_VectorOfShapeInfo myLines; + BOPCol_DataMapOfShapeInteger myMapShapeIndex; + BOPDS_VectorOfListOfPaveBlock myPaveBlocksPool; + BOPDS_DataMapOfPaveBlockCommonBlock myMapPBCB; + BOPDS_VectorOfFaceInfo myFaceInfoPool; + BOPCol_DataMapOfIntegerInteger myShapesSD; + BOPDS_MapOfPassKey myInterfTB; + BOPDS_VectorOfInterfVV myInterfVV; + BOPDS_VectorOfInterfVE myInterfVE; + BOPDS_VectorOfInterfVF myInterfVF; + BOPDS_VectorOfInterfEE myInterfEE; + BOPDS_VectorOfInterfEF myInterfEF; + BOPDS_VectorOfInterfFF myInterfFF; + BOPDS_VectorOfInterfVZ myInterfVZ; + BOPDS_VectorOfInterfEZ myInterfEZ; + BOPDS_VectorOfInterfFZ myInterfFZ; + BOPDS_VectorOfInterfZZ myInterfZZ; + Standard_Real myFuzzyValue; + BOPCol_DataMapOfIntegerReal myToleranceMap; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPDS_DS_HeaderFile diff --git a/src/BOPDS/BOPDS_FaceInfo.cdl b/src/BOPDS/BOPDS_FaceInfo.cdl deleted file mode 100644 index 7f06eccb8a..0000000000 --- a/src/BOPDS/BOPDS_FaceInfo.cdl +++ /dev/null @@ -1,198 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -class FaceInfo from BOPDS - - ---Purpose: - -- The class BOPDS_FaceInfo is to store - -- handy information about state of face -uses - BaseAllocator from BOPCol, - MapOfInteger from BOPCol, - IndexedMapOfPaveBlock from BOPDS - ---raises - -is - Create - returns FaceInfo from BOPDS; - ---C++: inline - ---C++: alias "virtual ~BOPDS_FaceInfo();" - ---Purpose: - --- Empty contructor - --- - - Create (theAllocator: BaseAllocator from BOPCol) - returns FaceInfo from BOPDS; - ---C++: inline - ---Purpose: - --- Contructor - --- theAllocator - the allocator to manage the memory - --- - - Clear(me:out); - ---Purpose: - --- Clears the contents - - SetIndex(me:out; - theI: Integer from Standard); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets the index of the face - - Index(me) - returns Integer from Standard; - ---C++: inline - ---Purpose: - --- Selector - --- Returns the index of the face - -- - -- In - -- - PaveBlocksIn(me) - returns IndexedMapOfPaveBlock from BOPDS; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns the pave blocks of the face - --- that have state In - - ChangePaveBlocksIn(me:out) - returns IndexedMapOfPaveBlock from BOPDS; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the pave blocks - -- of the face - --- that have state In - - VerticesIn(me) - returns MapOfInteger from BOPCol; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns the list of indices for vertices - -- of the face - --- that have state In - - ChangeVerticesIn(me:out) - returns MapOfInteger from BOPCol; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the list of indices for vertices - -- of the face - --- that have state In - -- - -- On - -- - PaveBlocksOn(me) - returns IndexedMapOfPaveBlock from BOPDS; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns the pave blocks of the face - --- that have state On - - ChangePaveBlocksOn(me:out) - returns IndexedMapOfPaveBlock from BOPDS; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the pave blocks - -- of the face - --- that have state On - VerticesOn(me) - returns MapOfInteger from BOPCol; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns the list of indices for vertices - -- of the face - --- that have state On - - ChangeVerticesOn(me:out) - returns MapOfInteger from BOPCol; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the list of indices for vertices - -- of the face - --- that have state On - -- - -- Sections - -- - PaveBlocksSc(me) - returns IndexedMapOfPaveBlock from BOPDS; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns the pave blocks of the face - --- that are pave blocks of section edges - - ChangePaveBlocksSc(me:out) - returns IndexedMapOfPaveBlock from BOPDS; - ---C++: return & - ---C++: inline - --- Selector/Modifier - --- Returns the pave blocks of the face - --- that are pave blocks of section edges - - VerticesSc(me) - returns MapOfInteger from BOPCol; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns the list of indices for section vertices - -- of the face - - ChangeVerticesSc(me:out) - returns MapOfInteger from BOPCol; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the list of indices for section vertices - -- of the face - -- - -- Others - -- - --Update(me:out) - -- is protected; - -fields - myAllocator : BaseAllocator from BOPCol is protected; - myIndex : Integer from Standard is protected; - myPaveBlocksIn: IndexedMapOfPaveBlock from BOPDS is protected; - myVerticesIn : MapOfInteger from BOPCol is protected; - myPaveBlocksOn: IndexedMapOfPaveBlock from BOPDS is protected; - myVerticesOn : MapOfInteger from BOPCol is protected; - myPaveBlocksSc: IndexedMapOfPaveBlock from BOPDS is protected; - myVerticesSc : MapOfInteger from BOPCol is protected; - -end FaceInfo; diff --git a/src/BOPDS/BOPDS_FaceInfo.cxx b/src/BOPDS/BOPDS_FaceInfo.cxx index c53d16fefc..0d0e6fb587 100644 --- a/src/BOPDS/BOPDS_FaceInfo.cxx +++ b/src/BOPDS/BOPDS_FaceInfo.cxx @@ -15,4 +15,5 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include diff --git a/src/BOPDS/BOPDS_FaceInfo.hxx b/src/BOPDS/BOPDS_FaceInfo.hxx new file mode 100644 index 0000000000..5b103bafc9 --- /dev/null +++ b/src/BOPDS/BOPDS_FaceInfo.hxx @@ -0,0 +1,179 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_FaceInfo_HeaderFile +#define _BOPDS_FaceInfo_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include + + + +//! The class BOPDS_FaceInfo is to store +//! handy information about state of face +class BOPDS_FaceInfo +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Empty contructor + BOPDS_FaceInfo(); +virtual ~BOPDS_FaceInfo(); + + + //! Contructor + //! theAllocator - the allocator to manage the memory + BOPDS_FaceInfo(const BOPCol_BaseAllocator& theAllocator); + + + //! Clears the contents + Standard_EXPORT void Clear(); + + + //! Modifier + //! Sets the index of the face + void SetIndex (const Standard_Integer theI); + + + //! Selector + //! Returns the index of the face + //! + //! In + Standard_Integer Index() const; + + + //! Selector + //! Returns the pave blocks of the face + //! that have state In + const BOPDS_IndexedMapOfPaveBlock& PaveBlocksIn() const; + + + //! Selector/Modifier + //! Returns the pave blocks + //! of the face + //! that have state In + BOPDS_IndexedMapOfPaveBlock& ChangePaveBlocksIn(); + + + //! Selector + //! Returns the list of indices for vertices + //! of the face + //! that have state In + const BOPCol_MapOfInteger& VerticesIn() const; + + + //! Selector/Modifier + //! Returns the list of indices for vertices + //! of the face + //! that have state In + //! + //! On + BOPCol_MapOfInteger& ChangeVerticesIn(); + + + //! Selector + //! Returns the pave blocks of the face + //! that have state On + const BOPDS_IndexedMapOfPaveBlock& PaveBlocksOn() const; + + + //! Selector/Modifier + //! Returns the pave blocks + //! of the face + //! that have state On + BOPDS_IndexedMapOfPaveBlock& ChangePaveBlocksOn(); + + + //! Selector + //! Returns the list of indices for vertices + //! of the face + //! that have state On + const BOPCol_MapOfInteger& VerticesOn() const; + + + //! Selector/Modifier + //! Returns the list of indices for vertices + //! of the face + //! that have state On + //! + //! Sections + BOPCol_MapOfInteger& ChangeVerticesOn(); + + + //! Selector + //! Returns the pave blocks of the face + //! that are pave blocks of section edges + const BOPDS_IndexedMapOfPaveBlock& PaveBlocksSc() const; + + BOPDS_IndexedMapOfPaveBlock& ChangePaveBlocksSc(); + + + //! Selector + //! Returns the list of indices for section vertices + //! of the face + const BOPCol_MapOfInteger& VerticesSc() const; + + + //! Selector/Modifier + //! Returns the list of indices for section vertices + //! of the face + //! + //! Others + BOPCol_MapOfInteger& ChangeVerticesSc(); + + + + +protected: + + + + BOPCol_BaseAllocator myAllocator; + Standard_Integer myIndex; + BOPDS_IndexedMapOfPaveBlock myPaveBlocksIn; + BOPCol_MapOfInteger myVerticesIn; + BOPDS_IndexedMapOfPaveBlock myPaveBlocksOn; + BOPCol_MapOfInteger myVerticesOn; + BOPDS_IndexedMapOfPaveBlock myPaveBlocksSc; + BOPCol_MapOfInteger myVerticesSc; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPDS_FaceInfo_HeaderFile diff --git a/src/BOPDS/BOPDS_IndexRange.cdl b/src/BOPDS/BOPDS_IndexRange.cdl deleted file mode 100644 index 5dd64272ed..0000000000 --- a/src/BOPDS/BOPDS_IndexRange.cdl +++ /dev/null @@ -1,94 +0,0 @@ --- 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. - -class IndexRange from BOPDS - - ---Purpose: - -- The class BOPDS_IndexRange is to store - -- the information about range of two indices ---uses ---raises - -is - Create - returns IndexRange from BOPDS; - ---C++: alias "Standard_EXPORT virtual ~BOPDS_IndexRange();" - ---C++: inline - ---Purpose: - --- Empty contructor - --- - - SetFirst(me:out; - theI1:Integer from Standard); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets the first index of the range - - SetLast(me:out; - theI2:Integer from Standard); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets the second index of the range - - First(me) - returns Integer from Standard; - ---C++: inline - ---Purpose: - --- Selector - --- Returns the first index of the range - - Last(me) - returns Integer from Standard; - ---C++: inline - ---Purpose: - --- Selector - --- Returns the second index of the range - - SetIndices(me:out; - theI1:Integer from Standard; - theI2:Integer from Standard); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets the first index of the range - --- Sets the second index of the range - - Indices(me; - theI1:out Integer from Standard; - theI2:out Integer from Standard); - ---C++: inline - ---Purpose: - --- Selector - --- Returns the first index of the range - --- Returns the second index of the range - - Contains(me; - theIndex:Integer from Standard) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - --- Query - --- Returns true if the range contains - - Dump(me); - - - -fields - myFirst : Integer from Standard is protected; - myLast : Integer from Standard is protected; - -end IndexRange; diff --git a/src/BOPDS/BOPDS_IndexRange.cxx b/src/BOPDS/BOPDS_IndexRange.cxx index 971a457a6b..f88ee8aa63 100644 --- a/src/BOPDS/BOPDS_IndexRange.cxx +++ b/src/BOPDS/BOPDS_IndexRange.cxx @@ -12,9 +12,10 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include + +#include //======================================================================= //function : Dump //purpose : diff --git a/src/BOPDS/BOPDS_IndexRange.hxx b/src/BOPDS/BOPDS_IndexRange.hxx new file mode 100644 index 0000000000..275861f8ec --- /dev/null +++ b/src/BOPDS/BOPDS_IndexRange.hxx @@ -0,0 +1,106 @@ +// 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_IndexRange_HeaderFile +#define _BOPDS_IndexRange_HeaderFile + +#include +#include +#include + +#include +#include + + + +//! The class BOPDS_IndexRange is to store +//! the information about range of two indices +class BOPDS_IndexRange +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Empty contructor + BOPDS_IndexRange(); +Standard_EXPORT virtual ~BOPDS_IndexRange(); + + + //! Modifier + //! Sets the first index of the range + void SetFirst (const Standard_Integer theI1); + + + //! Modifier + //! Sets the second index of the range + void SetLast (const Standard_Integer theI2); + + + //! Selector + //! Returns the first index of the range + Standard_Integer First() const; + + + //! Selector + //! Returns the second index of the range + Standard_Integer Last() const; + + + //! Modifier + //! Sets the first index of the range + //! Sets the second index of the range + void SetIndices (const Standard_Integer theI1, const Standard_Integer theI2); + + + //! Selector + //! Returns the first index of the range + //! Returns the second index of the range + void Indices (Standard_Integer& theI1, Standard_Integer& theI2) const; + + + //! Query + //! Returns true if the range contains + Standard_Boolean Contains (const Standard_Integer theIndex) const; + + Standard_EXPORT void Dump() const; + + + + +protected: + + + + Standard_Integer myFirst; + Standard_Integer myLast; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPDS_IndexRange_HeaderFile diff --git a/src/BOPDS/BOPDS_Iterator.cdl b/src/BOPDS/BOPDS_Iterator.cdl deleted file mode 100644 index 6b15c0bfd5..0000000000 --- a/src/BOPDS/BOPDS_Iterator.cdl +++ /dev/null @@ -1,133 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -class Iterator from BOPDS - - ---Purpose: - -- The class BOPDS_Iterator is - -- 1.to compute intersections between BRep sub-shapes - -- of arguments of an operation (see the class BOPDS_DS) - -- in terms of theirs bounding boxes - -- 2.provides interface to iterare the pairs of - -- intersected sub-shapes of given type - -uses - BaseAllocator from BOPCol, - ShapeEnum from TopAbs, - DS from BOPDS, - PDS from BOPDS, - PassKeyBoolean from BOPDS, - ListOfPassKeyBoolean from BOPDS, - ListIteratorOfListOfPassKeyBoolean from BOPDS, - VectorOfListOfPassKeyBoolean from BOPDS - - -is - Create - returns Iterator from BOPDS; - ---C++: alias "Standard_EXPORT virtual ~BOPDS_Iterator();" - ---Purpose: - --- Empty contructor - --- - - Create (theAllocator: BaseAllocator from BOPCol) - returns Iterator from BOPDS; - ---Purpose: - --- Contructor - --- theAllocator - the allocator to manage the memory - --- - - SetDS(me:out; - pDS:PDS from BOPDS); - ---Purpose: - --- Modifier - --- Sets the data structure to process - - DS(me) - returns DS from BOPDS; - ---C++:return const & - ---Purpose: - --- Selector - --- Returns the data structure - - Initialize(me: out; - theType1: ShapeEnum from TopAbs; - theType2: ShapeEnum from TopAbs); - ---Purpose: - --- Initializes the iterator - --- theType1 - the first type of shape - --- theType2 - the second type of shape - - More(me) - returns Boolean from Standard; - ---Purpose: - --- Returns true if still there are pairs - -- of intersected shapes - - Next(me:out); - ---Purpose: - --- Moves iterations ahead - - Value(me; - theIndex1:out Integer from Standard; - theIndex2:out Integer from Standard; - theWithSubShape: out Boolean from Standard); - ---Purpose: - --- Returns indices (DS) of intersected shapes - --- theIndex1 - the index of the first shape - --- theIndex2 - the index of the second shape - --- theWithSubShape - flag. True if the sub-shapes of - --- shapes are intersected - - Prepare(me:out) - is virtual; - ---Purpose: - --- Perform the intersection algorithm and prepare - --- the results to be used - - ExpectedLength(me) - returns Integer from Standard; - ---Purpose: - --- Returns the number of intersections founded - - BlockLength(me) - returns Integer from Standard; - ---Purpose: - --- Returns the block length - - Intersect(me:out) - is virtual protected; - - SetRunParallel(me:out; - theFlag:Boolean from Standard); - ---Purpose: Set the flag of parallel processing - -- if is true the parallel processing is switched on - -- if is false the parallel processing is switched off - -- - RunParallel(me) - returns Boolean from Standard; - ---Purpose: Returns the flag of parallel processing - -fields - myAllocator: BaseAllocator from BOPCol is protected; - myLength : Integer from Standard is protected; - myDS : PDS from BOPDS is protected; - myLists : VectorOfListOfPassKeyBoolean from BOPDS is protected; - myIterator : ListIteratorOfListOfPassKeyBoolean from BOPDS is protected; - myRunParallel : Boolean from Standard is protected; - -end Iterator; diff --git a/src/BOPDS/BOPDS_Iterator.cxx b/src/BOPDS/BOPDS_Iterator.cxx index 9029348157..af944a986b 100644 --- a/src/BOPDS/BOPDS_Iterator.cxx +++ b/src/BOPDS/BOPDS_Iterator.cxx @@ -15,24 +15,26 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -// + #include -// -#include -#include -// -#include -// +#include #include #include -#include -// +#include #include -#include +#include #include +#include #include +#include +#include +#include +// +// +// +// +// ///////////////////////////////////////////////////////////////////////// //======================================================================= //class : BOPDS_TreeSelector diff --git a/src/BOPDS/BOPDS_Iterator.hxx b/src/BOPDS/BOPDS_Iterator.hxx new file mode 100644 index 0000000000..5b1a714bc7 --- /dev/null +++ b/src/BOPDS/BOPDS_Iterator.hxx @@ -0,0 +1,144 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_Iterator_HeaderFile +#define _BOPDS_Iterator_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class BOPDS_DS; + + + +//! The class BOPDS_Iterator is +//! 1.to compute intersections between BRep sub-shapes +//! of arguments of an operation (see the class BOPDS_DS) +//! in terms of theirs bounding boxes +//! 2.provides interface to iterare the pairs of +//! intersected sub-shapes of given type +class BOPDS_Iterator +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Empty contructor + Standard_EXPORT BOPDS_Iterator(); +Standard_EXPORT virtual ~BOPDS_Iterator(); + + + //! Contructor + //! theAllocator - the allocator to manage the memory + Standard_EXPORT BOPDS_Iterator(const BOPCol_BaseAllocator& theAllocator); + + + //! Modifier + //! Sets the data structure to process + Standard_EXPORT void SetDS (const BOPDS_PDS& pDS); + + + //! Selector + //! Returns the data structure + Standard_EXPORT const BOPDS_DS& DS() const; + + + //! Initializes the iterator + //! theType1 - the first type of shape + //! theType2 - the second type of shape + Standard_EXPORT void Initialize (const TopAbs_ShapeEnum theType1, const TopAbs_ShapeEnum theType2); + + + //! Returns true if still there are pairs + //! of intersected shapes + Standard_EXPORT Standard_Boolean More() const; + + + //! Moves iterations ahead + Standard_EXPORT void Next(); + + + //! Returns indices (DS) of intersected shapes + //! theIndex1 - the index of the first shape + //! theIndex2 - the index of the second shape + //! theWithSubShape - flag. True if the sub-shapes of + //! shapes are intersected + Standard_EXPORT void Value (Standard_Integer& theIndex1, Standard_Integer& theIndex2, Standard_Boolean& theWithSubShape) const; + + + //! Perform the intersection algorithm and prepare + //! the results to be used + Standard_EXPORT virtual void Prepare(); + + + //! Returns the number of intersections founded + Standard_EXPORT Standard_Integer ExpectedLength() const; + + + //! Returns the block length + Standard_EXPORT Standard_Integer BlockLength() const; + + //! Set the flag of parallel processing + //! if is true the parallel processing is switched on + //! if is false the parallel processing is switched off + Standard_EXPORT void SetRunParallel (const Standard_Boolean theFlag); + + //! Returns the flag of parallel processing + Standard_EXPORT Standard_Boolean RunParallel() const; + + + + +protected: + + + Standard_EXPORT virtual void Intersect(); + + + BOPCol_BaseAllocator myAllocator; + Standard_Integer myLength; + BOPDS_PDS myDS; + BOPDS_VectorOfListOfPassKeyBoolean myLists; + BOPDS_ListIteratorOfListOfPassKeyBoolean myIterator; + Standard_Boolean myRunParallel; + + +private: + + + + + +}; + + + + + + + +#endif // _BOPDS_Iterator_HeaderFile diff --git a/src/BOPDS/BOPDS_IteratorSI.cdl b/src/BOPDS/BOPDS_IteratorSI.cdl deleted file mode 100644 index cb154649ee..0000000000 --- a/src/BOPDS/BOPDS_IteratorSI.cdl +++ /dev/null @@ -1,61 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -class IteratorSI from BOPDS - inherits Iterator from BOPDS - ----Purpose: - -- The class BOPDS_IteratorSI is - -- 1.to compute self-intersections between BRep sub-shapes - -- of each argument of an operation (see the class BOPDS_DS) - -- in terms of theirs bounding boxes - -- 2.provides interface to iterare the pairs of - -- intersected sub-shapes of given type - -uses - BaseAllocator from BOPCol - -is - Create - returns IteratorSI from BOPDS; - ---C++: alias "Standard_EXPORT virtual ~BOPDS_IteratorSI();" - ---Purpose: - --- Empty contructor - --- - - Create (theAllocator: BaseAllocator from BOPCol) - returns IteratorSI from BOPDS; - ---Purpose: - --- Contructor - --- theAllocator - the allocator to manage the memory - --- - Intersect(me:out) - is redefined protected; - - UpdateByLevelOfCheck(me:out; - theLevel: Integer from Standard); - ---Purpose: Updates the lists of possible intersections - -- according to the value of . - -- It defines which interferferences will be checked: - -- 0 - only V/V; - -- 1 - V/V and V/E; - -- 2 - V/V, V/E and E/E; - -- 3 - V/V, V/E, E/E and V/F; - -- 4 - V/V, V/E, E/E, V/F and E/F; - -- other - all interferences. - -end IteratorSI; diff --git a/src/BOPDS/BOPDS_IteratorSI.cxx b/src/BOPDS/BOPDS_IteratorSI.cxx index c3ab3c1894..76a4d4f009 100644 --- a/src/BOPDS/BOPDS_IteratorSI.cxx +++ b/src/BOPDS/BOPDS_IteratorSI.cxx @@ -12,36 +12,32 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include #include -// -#include -#include -#include -#include - -#include -#include - #include -#include -#include -#include -#include - -#include -#include -#include #include #include +#include +#include #include -#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +// //======================================================================= //function : //purpose : diff --git a/src/BOPDS/BOPDS_IteratorSI.hxx b/src/BOPDS/BOPDS_IteratorSI.hxx new file mode 100644 index 0000000000..a0d9b9ab45 --- /dev/null +++ b/src/BOPDS/BOPDS_IteratorSI.hxx @@ -0,0 +1,90 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_IteratorSI_HeaderFile +#define _BOPDS_IteratorSI_HeaderFile + +#include +#include +#include + +#include +#include +#include + + + +//! The class BOPDS_IteratorSI is +//! 1.to compute self-intersections between BRep sub-shapes +//! of each argument of an operation (see the class BOPDS_DS) +//! in terms of theirs bounding boxes +//! 2.provides interface to iterare the pairs of +//! intersected sub-shapes of given type +class BOPDS_IteratorSI : public BOPDS_Iterator +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Empty contructor + Standard_EXPORT BOPDS_IteratorSI(); +Standard_EXPORT virtual ~BOPDS_IteratorSI(); + + + //! Contructor + //! theAllocator - the allocator to manage the memory + Standard_EXPORT BOPDS_IteratorSI(const BOPCol_BaseAllocator& theAllocator); + + //! Updates the lists of possible intersections + //! according to the value of . + //! It defines which interferferences will be checked: + //! 0 - only V/V; + //! 1 - V/V and V/E; + //! 2 - V/V, V/E and E/E; + //! 3 - V/V, V/E, E/E and V/F; + //! 4 - V/V, V/E, E/E, V/F and E/F; + //! other - all interferences. + Standard_EXPORT void UpdateByLevelOfCheck (const Standard_Integer theLevel); + + + + +protected: + + + Standard_EXPORT virtual void Intersect() Standard_OVERRIDE; + + + + +private: + + + + + +}; + + + + + + + +#endif // _BOPDS_IteratorSI_HeaderFile diff --git a/src/BOPDS/BOPDS_PDS.hxx b/src/BOPDS/BOPDS_PDS.hxx new file mode 100644 index 0000000000..cad44d5e3e --- /dev/null +++ b/src/BOPDS/BOPDS_PDS.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 _BOPDS_PDS_HeaderFile +#define _BOPDS_PDS_HeaderFile + +class BOPDS_DS; +typedef BOPDS_DS* BOPDS_PDS; + +#endif // _BOPDS_PDS_HeaderFile diff --git a/src/BOPDS/BOPDS_PIterator.hxx b/src/BOPDS/BOPDS_PIterator.hxx new file mode 100644 index 0000000000..be7818d423 --- /dev/null +++ b/src/BOPDS/BOPDS_PIterator.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 _BOPDS_PIterator_HeaderFile +#define _BOPDS_PIterator_HeaderFile + +class BOPDS_Iterator; +typedef BOPDS_Iterator* BOPDS_PIterator; + +#endif // _BOPDS_PIterator_HeaderFile diff --git a/src/BOPDS/BOPDS_PIteratorSI.hxx b/src/BOPDS/BOPDS_PIteratorSI.hxx new file mode 100644 index 0000000000..5a47f2f3d4 --- /dev/null +++ b/src/BOPDS/BOPDS_PIteratorSI.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 _BOPDS_PIteratorSI_HeaderFile +#define _BOPDS_PIteratorSI_HeaderFile + +class BOPDS_IteratorSI; +typedef BOPDS_IteratorSI* BOPDS_PIteratorSI; + +#endif // _BOPDS_PIteratorSI_HeaderFile diff --git a/src/BOPDS/BOPDS_PassKey.cdl b/src/BOPDS/BOPDS_PassKey.cdl deleted file mode 100644 index f213fcbfc1..0000000000 --- a/src/BOPDS/BOPDS_PassKey.cdl +++ /dev/null @@ -1,154 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -class PassKey from BOPDS - - ---Purpose: - -- The class BOPDS_PassKey is to provide - -- possibility to map objects that - -- have a set of integer IDs as a base - -uses - Shape from TopoDS, - ListOfInteger from BOPCol, - PInteger from BOPCol, - BaseAllocator from BOPCol - ---raises - -is - Create - returns PassKey from BOPDS; - ---C++: inline - ---C++: alias "virtual ~BOPDS_PassKey();" - ---Purpose: - --- Empty contructor - --- - - Create (theAllocator: BaseAllocator from BOPCol) - returns PassKey from BOPDS; - ---C++: inline - ---Purpose: - --- Contructor - --- theAllocator - the allocator to manage the memory - --- - - Create(Other:PassKey from BOPDS) - returns PassKey from BOPDS; - ---C++: inline - ---C++: alias "BOPDS_PassKey& operator =(const BOPDS_PassKey& Other);" - ---Purpose: - --- Copy Contructor - - Clear(me:out); - ---C++: inline - ---Purpose: - --- Clear the contents - - SetIds(me:out; - theI1 :Integer from Standard); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets one Id - - SetIds(me:out; - theI1 :Integer from Standard; - theI2 :Integer from Standard); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets two Id , - - SetIds(me:out; - theI1 :Integer from Standard; - theI2 :Integer from Standard; - theI3 :Integer from Standard); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets three Id ,, - SetIds(me:out; - theI1 :Integer from Standard; - theI2 :Integer from Standard; - theI3 :Integer from Standard; - theI4 :Integer from Standard); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets four Id ,,, - SetIds(me:out; - theLI:ListOfInteger from BOPCol); - ---Purpose: - --- Modifier - --- Sets the list of Id - - NbIds(me) - returns Integer from Standard; - ---C++: inline - ---Purpose: - --- Selector - --- Returns the number of Ids> - - IsEqual(me; - theOther:PassKey from BOPDS) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - --- Query - --- Returns true if the PassKey is equal to - - HashCode(me; - theUpper : Integer from Standard) - returns Integer from Standard; - ---C++: inline - ---Purpose: - --- Query - --- Returns hash code - - Id(me; - theIndex: Integer from Standard) - returns Integer from Standard; - ---C++: inline - ---Purpose: - --- Selector - --- Returns Id of index - - Ids(me; - theI1 :out Integer from Standard; - theI2 :out Integer from Standard); - ---C++: inline - ---Purpose: - --- Selector - --- Returns the first two Ids , - - Dump(me; - aHex:Integer from Standard=0); - - Allocate(me:out; - theSize:Integer from Standard) - returns PInteger from BOPCol - is protected; - ---C++: inline - -fields - myAllocator : BaseAllocator from BOPCol is protected; - myNbIds: Integer from Standard is protected; - mySum : Integer from Standard is protected; - myPtr : PInteger from BOPCol is protected; - -end PassKey; diff --git a/src/BOPDS/BOPDS_PassKey.cxx b/src/BOPDS/BOPDS_PassKey.cxx index c76b8cc50e..311ad59163 100644 --- a/src/BOPDS/BOPDS_PassKey.cxx +++ b/src/BOPDS/BOPDS_PassKey.cxx @@ -15,10 +15,10 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include #ifdef WNT #pragma warning( disable : 4101) #endif diff --git a/src/BOPDS/BOPDS_PassKey.hxx b/src/BOPDS/BOPDS_PassKey.hxx new file mode 100644 index 0000000000..042d2fb94b --- /dev/null +++ b/src/BOPDS/BOPDS_PassKey.hxx @@ -0,0 +1,144 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_PassKey_HeaderFile +#define _BOPDS_PassKey_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include + + + +//! The class BOPDS_PassKey is to provide +//! possibility to map objects that +//! have a set of integer IDs as a base +class BOPDS_PassKey +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Empty contructor + BOPDS_PassKey(); +virtual ~BOPDS_PassKey(); + + + //! Contructor + //! theAllocator - the allocator to manage the memory + BOPDS_PassKey(const BOPCol_BaseAllocator& theAllocator); + + + //! Copy Contructor + BOPDS_PassKey(const BOPDS_PassKey& Other); +BOPDS_PassKey& operator =(const BOPDS_PassKey& Other); + + + //! Clear the contents + void Clear(); + + + //! Modifier + //! Sets one Id + void SetIds (const Standard_Integer theI1); + + + //! Modifier + //! Sets two Id , + void SetIds (const Standard_Integer theI1, const Standard_Integer theI2); + + + //! Modifier + //! Sets three Id ,, + void SetIds (const Standard_Integer theI1, const Standard_Integer theI2, const Standard_Integer theI3); + + + //! Modifier + //! Sets four Id ,,, + void SetIds (const Standard_Integer theI1, const Standard_Integer theI2, const Standard_Integer theI3, const Standard_Integer theI4); + + + //! Modifier + //! Sets the list of Id + Standard_EXPORT void SetIds (const BOPCol_ListOfInteger& theLI); + + + //! Selector + //! Returns the number of Ids> + Standard_Integer NbIds() const; + + + //! Query + //! Returns true if the PassKey is equal to + Standard_Boolean IsEqual (const BOPDS_PassKey& theOther) const; + + + //! Query + //! Returns hash code + Standard_Integer HashCode (const Standard_Integer theUpper) const; + + + //! Selector + //! Returns Id of index + Standard_Integer Id (const Standard_Integer theIndex) const; + + + //! Selector + //! Returns the first two Ids , + void Ids (Standard_Integer& theI1, Standard_Integer& theI2) const; + + Standard_EXPORT void Dump (const Standard_Integer aHex = 0) const; + + + + +protected: + + + BOPCol_PInteger Allocate (const Standard_Integer theSize); + + + BOPCol_BaseAllocator myAllocator; + Standard_Integer myNbIds; + Standard_Integer mySum; + BOPCol_PInteger myPtr; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPDS_PassKey_HeaderFile diff --git a/src/BOPDS/BOPDS_PassKeyBoolean.cdl b/src/BOPDS/BOPDS_PassKeyBoolean.cdl deleted file mode 100644 index 5b543fa315..0000000000 --- a/src/BOPDS/BOPDS_PassKeyBoolean.cdl +++ /dev/null @@ -1,53 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -class PassKeyBoolean from BOPDS - inherits PassKey from BOPDS - ---Purpose: - -uses - BaseAllocator from BOPCol - ---raises - -is - Create - returns PassKeyBoolean from BOPDS; - ---C++: inline - ---C++: alias "virtual ~BOPDS_PassKeyBoolean();" - - Create (theAllocator: BaseAllocator from BOPCol) - returns PassKeyBoolean from BOPDS; - ---C++: inline - - Create(Other:PassKeyBoolean from BOPDS) - returns PassKeyBoolean from BOPDS; - ---C++: inline - - SetFlag(me:out; - theFlag: Boolean from Standard); - ---C++: inline - ---C++: alias "BOPDS_PassKeyBoolean& operator =(const BOPDS_PassKeyBoolean& );" - - Flag(me) - returns Boolean from Standard; - ---C++: inline - -fields - myFlag: Boolean from Standard is protected; - -end PassKeyBoolean; diff --git a/src/BOPDS/BOPDS_PassKeyBoolean.cxx b/src/BOPDS/BOPDS_PassKeyBoolean.cxx index bf6c370949..62d91ccfc5 100644 --- a/src/BOPDS/BOPDS_PassKeyBoolean.cxx +++ b/src/BOPDS/BOPDS_PassKeyBoolean.cxx @@ -15,4 +15,5 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include diff --git a/src/BOPDS/BOPDS_PassKeyBoolean.hxx b/src/BOPDS/BOPDS_PassKeyBoolean.hxx new file mode 100644 index 0000000000..e4490cea8b --- /dev/null +++ b/src/BOPDS/BOPDS_PassKeyBoolean.hxx @@ -0,0 +1,75 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_PassKeyBoolean_HeaderFile +#define _BOPDS_PassKeyBoolean_HeaderFile + +#include +#include +#include + +#include +#include +#include + + + +class BOPDS_PassKeyBoolean : public BOPDS_PassKey +{ +public: + + DEFINE_STANDARD_ALLOC + + + BOPDS_PassKeyBoolean(); +virtual ~BOPDS_PassKeyBoolean(); + + BOPDS_PassKeyBoolean(const BOPCol_BaseAllocator& theAllocator); + + BOPDS_PassKeyBoolean(const BOPDS_PassKeyBoolean& Other); + + void SetFlag (const Standard_Boolean theFlag); +BOPDS_PassKeyBoolean& operator =(const BOPDS_PassKeyBoolean& ); + + Standard_Boolean Flag() const; + + + + +protected: + + + + Standard_Boolean myFlag; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPDS_PassKeyBoolean_HeaderFile diff --git a/src/BOPDS/BOPDS_PassKeyMapHasher.cdl b/src/BOPDS/BOPDS_PassKeyMapHasher.cdl deleted file mode 100644 index 82fc8b6ab8..0000000000 --- a/src/BOPDS/BOPDS_PassKeyMapHasher.cdl +++ /dev/null @@ -1,40 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -class PassKeyMapHasher from BOPDS - - ---Purpose: - -uses - PassKey from BOPDS - ---raises - -is - HashCode(myclass; - aPKey : PassKey from BOPDS; - Upper : Integer from Standard) - returns Integer from Standard; - ---C++: inline - - IsEqual(myclass; - aPKey1 : PassKey from BOPDS; - aPKey2 : PassKey from BOPDS) - returns Boolean from Standard; - ---C++: inline - -end PassKeyMapHasher; diff --git a/src/BOPDS/BOPDS_PassKeyMapHasher.cxx b/src/BOPDS/BOPDS_PassKeyMapHasher.cxx index 29a6992431..2cc3270ef0 100644 --- a/src/BOPDS/BOPDS_PassKeyMapHasher.cxx +++ b/src/BOPDS/BOPDS_PassKeyMapHasher.cxx @@ -15,5 +15,6 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include diff --git a/src/BOPDS/BOPDS_PassKeyMapHasher.hxx b/src/BOPDS/BOPDS_PassKeyMapHasher.hxx new file mode 100644 index 0000000000..83bdef29f3 --- /dev/null +++ b/src/BOPDS/BOPDS_PassKeyMapHasher.hxx @@ -0,0 +1,66 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_PassKeyMapHasher_HeaderFile +#define _BOPDS_PassKeyMapHasher_HeaderFile + +#include +#include +#include + +#include +#include +class BOPDS_PassKey; + + + +class BOPDS_PassKeyMapHasher +{ +public: + + DEFINE_STANDARD_ALLOC + + + static Standard_Integer HashCode (const BOPDS_PassKey& aPKey, const Standard_Integer Upper); + + static Standard_Boolean IsEqual (const BOPDS_PassKey& aPKey1, const BOPDS_PassKey& aPKey2); + + + + +protected: + + + + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPDS_PassKeyMapHasher_HeaderFile diff --git a/src/BOPDS/BOPDS_Pave.cdl b/src/BOPDS/BOPDS_Pave.cdl deleted file mode 100644 index 4c995352de..0000000000 --- a/src/BOPDS/BOPDS_Pave.cdl +++ /dev/null @@ -1,93 +0,0 @@ --- 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. - -class Pave from BOPDS - - ---Purpose: - -- The class BOPDS_Pave is to store - -- information about vertex on an edge ---uses ---raises - -is - Create - returns Pave from BOPDS; - ---C++: alias "Standard_EXPORT virtual ~BOPDS_Pave();" - ---C++: inline - ---Purpose: - --- Empty contructor - --- - - SetIndex(me:out; - theIndex: Integer from Standard); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets the index of vertex - - Index(me) - returns Integer from Standard; - ---C++: inline - ---Purpose: - --- Selector - --- Returns the index of vertex - SetParameter(me:out; - theParameter: Real from Standard); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets the parameter of vertex - - Parameter(me) - returns Real from Standard; - ---C++: inline - ---Purpose: - --- Selector - --- Returns the parameter of vertex - Contents(me; - theIndex:out Integer from Standard; - theParameter:out Real from Standard); - ---C++: inline - ---Purpose: - --- Selector - --- Returns the index of vertex - --- Returns the parameter of vertex - - IsLess(me; - theOther: Pave from BOPDS) - returns Boolean from Standard; - ---C++: alias operator < - ---C++: inline - ---Purpose: - --- Query - --- Returns true if thr parameter od this is less - -- than the parameter of - - IsEqual(me; - theOther: Pave from BOPDS) - returns Boolean from Standard; - ---C++: alias operator == - ---C++: inline - ---Purpose: - --- Query - --- Returns true if thr parameter od this is equal - -- to the parameter of - - Dump(me); - -fields - myIndex : Integer from Standard is protected; - myParameter: Real from Standard is protected; - -end Pave; diff --git a/src/BOPDS/BOPDS_Pave.cxx b/src/BOPDS/BOPDS_Pave.cxx index 736787b354..79471f76cf 100644 --- a/src/BOPDS/BOPDS_Pave.cxx +++ b/src/BOPDS/BOPDS_Pave.cxx @@ -12,7 +12,9 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include + #include //======================================================================= //function : Dump diff --git a/src/BOPDS/BOPDS_Pave.hxx b/src/BOPDS/BOPDS_Pave.hxx new file mode 100644 index 0000000000..00cb13dbca --- /dev/null +++ b/src/BOPDS/BOPDS_Pave.hxx @@ -0,0 +1,116 @@ +// 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_Pave_HeaderFile +#define _BOPDS_Pave_HeaderFile + +#include +#include +#include + +#include +#include +#include + + + +//! The class BOPDS_Pave is to store +//! information about vertex on an edge +class BOPDS_Pave +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Empty contructor + BOPDS_Pave(); +Standard_EXPORT virtual ~BOPDS_Pave(); + + + //! Modifier + //! Sets the index of vertex + void SetIndex (const Standard_Integer theIndex); + + + //! Selector + //! Returns the index of vertex + Standard_Integer Index() const; + + + //! Modifier + //! Sets the parameter of vertex + void SetParameter (const Standard_Real theParameter); + + + //! Selector + //! Returns the parameter of vertex + Standard_Real Parameter() const; + + + //! Selector + //! Returns the index of vertex + //! Returns the parameter of vertex + void Contents (Standard_Integer& theIndex, Standard_Real& theParameter) const; + + + //! Query + //! Returns true if thr parameter od this is less + //! than the parameter of + Standard_Boolean IsLess (const BOPDS_Pave& theOther) const; + Standard_Boolean operator < (const BOPDS_Pave& theOther) const +{ + return IsLess(theOther); +} + + + //! Query + //! Returns true if thr parameter od this is equal + //! to the parameter of + Standard_Boolean IsEqual (const BOPDS_Pave& theOther) const; + Standard_Boolean operator == (const BOPDS_Pave& theOther) const +{ + return IsEqual(theOther); +} + + Standard_EXPORT void Dump() const; + + + + +protected: + + + + Standard_Integer myIndex; + Standard_Real myParameter; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPDS_Pave_HeaderFile diff --git a/src/BOPDS/BOPDS_PaveBlock.cdl b/src/BOPDS/BOPDS_PaveBlock.cdl deleted file mode 100644 index b018bc5724..0000000000 --- a/src/BOPDS/BOPDS_PaveBlock.cdl +++ /dev/null @@ -1,247 +0,0 @@ --- 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. - -class PaveBlock from BOPDS - inherits TShared from MMgt - ----Purpose: --- The class BOPDS_PaveBlock is to store --- the information about pave block on an edge. --- Two adjacent paves on edge make up pave block. - -uses - Box from Bnd, - BaseAllocator from BOPCol, - MapOfInteger from BOPCol, - Pave from BOPDS, - ListOfPave from BOPDS, - ListOfPaveBlock from BOPDS - ---raises - -is - Create - returns PaveBlock from BOPDS; - ---Purpose: - --- Empty contructor - --- - Create (theAllocator: BaseAllocator from BOPCol) - returns PaveBlock from BOPDS; - ---Purpose: - --- Contructor - --- - the allocator to manage the memory - --- - - SetPave1(me:mutable; - thePave:Pave from BOPDS); - ---Purpose: - --- Modifier - --- Sets the first pave - - Pave1(me) - returns Pave from BOPDS; - ---C++: return const & - ---Purpose: - --- Selector - --- Returns the first pave - - SetPave2(me:mutable; - thePave:Pave from BOPDS); - ---Purpose: - --- Modifier - --- Sets the second pave - - Pave2(me) - returns Pave from BOPDS; - ---C++: return const & - ---Purpose: - --- Selector - --- Returns the second pave - - SetEdge(me:mutable; - theEdge:Integer from Standard); - ---Purpose: - --- Modifier - --- Sets the index of edge of pave block - Edge(me) - returns Integer from Standard; - ---Purpose: - --- Selector - --- Returns the index of edge of pave block - - HasEdge(me) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the pave block has edge - - HasEdge(me; - theEdge:out Integer from Standard) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the pave block has edge - --- Returns the index of edge - - SetOriginalEdge (me:mutable; - theEdge:Integer from Standard); - ---Purpose: - --- Modifier - --- Sets the index of original edge - --- of the pave block - - OriginalEdge(me) - returns Integer from Standard; - ---Purpose: - --- Selector - --- Returns the index of original edge of pave block - - IsSplitEdge(me) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the edge is equal to the original edge - --- of the pave block - - Range(me; - theT1:out Real from Standard; - theT2:out Real from Standard); - ---Purpose: - --- Selector - --- Returns the parametric range - --- of the pave block - - HasSameBounds(me; - theOther: PaveBlock from BOPDS) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the pave block has pave indices - --- that equal to the pave indices of the pave block - --- - - Indices(me; - theIndex1:out Integer from Standard; - theIndex2:out Integer from Standard); - ---Purpose: - --- Selector - --- Returns the pave indices - --- of the pave block - - -- - -- extras - -- - IsToUpdate(me) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the pave block contains extra paves - - AppendExtPave(me:mutable; - theLP:Pave from BOPDS); - ---Purpose: - --- Modifier - --- Appends extra paves - - AppendExtPave1(me:mutable; - thePave:Pave from BOPDS); - ---Purpose: - --- Modifier - --- Appends extra pave - - ExtPaves(me) - returns ListOfPave from BOPDS; - ---C++: return const & - ---Purpose: - --- Selector - --- Returns the extra paves - - ChangeExtPaves(me:mutable) - returns ListOfPave from BOPDS; - ---C++: return & - ---Purpose: - --- Selector / Modifier - --- Returns the extra paves - - Update(me:mutable; - theLPB : out ListOfPaveBlock from BOPDS; - theFlag : Boolean from Standard=Standard_True); - ---Purpose: - --- Modifier - --- Updates the pave block. The extra paves are used - --- to create new pave blocks . - --- - if true, the first pave and the second - --- pave are used to produce new pave blocks. - - ContainsParameter(me; - thePrm:Real from Standard; - theTol:Real from Standard) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the extra paves contain the pave - --- with given value of the parameter - --- - the value of the tolerance to compare - - -- - -- shrunk data - -- - SetShrunkData(me:mutable; - theTS1:Real from Standard; - theTS2:Real from Standard; - theBox:Box from Bnd); - ---Purpose: - --- Modifier - --- Sets the shrunk data for the pave block - --- , - shrunk range - --- - the bounding box - - ShrunkData(me; - theTS1:out Real from Standard; - theTS2:out Real from Standard; - theBox:out Box from Bnd); - ---Purpose: - --- Selector - --- Returns the shrunk data for the pave block - --- , - shrunk range - --- - the bounding box - - HasShrunkData(me) - returns Boolean from Standard; - ---Purpose: - --- Query - --- Returns true if the pave block contains - --- the shrunk data - - Dump(me); - - -fields - --general - myAllocator : BaseAllocator from BOPCol is protected; - myEdge : Integer from Standard is protected; - myOriginalEdge : Integer from Standard is protected; - myPave1 : Pave from BOPDS is protected; - myPave2 : Pave from BOPDS is protected; - --extras - myExtPaves : ListOfPave from BOPDS is protected; - --shrunk data - myTS1 : Real from Standard is protected; - myTS2 : Real from Standard is protected; - myShrunkBox : Box from Bnd is protected; - --dummies - myMFence : MapOfInteger from BOPCol is protected; - -end PaveBlock; - diff --git a/src/BOPDS/BOPDS_PaveBlock.cxx b/src/BOPDS/BOPDS_PaveBlock.cxx index 14ff6a27c4..a5175f7efb 100755 --- a/src/BOPDS/BOPDS_PaveBlock.cxx +++ b/src/BOPDS/BOPDS_PaveBlock.cxx @@ -12,15 +12,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include #include +#include +#include #include - -#include #include +#include +#include #include - #ifdef WNT #pragma warning ( disable : 4291 ) #endif diff --git a/src/BOPDS/BOPDS_PaveBlock.hxx b/src/BOPDS/BOPDS_PaveBlock.hxx new file mode 100644 index 0000000000..5fd70f3060 --- /dev/null +++ b/src/BOPDS/BOPDS_PaveBlock.hxx @@ -0,0 +1,229 @@ +// 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_PaveBlock_HeaderFile +#define _BOPDS_PaveBlock_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class BOPDS_Pave; +class Bnd_Box; + + +class BOPDS_PaveBlock; +DEFINE_STANDARD_HANDLE(BOPDS_PaveBlock, MMgt_TShared) + + +//! The class BOPDS_PaveBlock is to store +//! the information about pave block on an edge. +//! Two adjacent paves on edge make up pave block. +class BOPDS_PaveBlock : public MMgt_TShared +{ + +public: + + + + //! Empty contructor + Standard_EXPORT BOPDS_PaveBlock(); + + + //! Contructor + //! - the allocator to manage the memory + Standard_EXPORT BOPDS_PaveBlock(const BOPCol_BaseAllocator& theAllocator); + + + //! Modifier + //! Sets the first pave + Standard_EXPORT void SetPave1 (const BOPDS_Pave& thePave); + + + //! Selector + //! Returns the first pave + Standard_EXPORT const BOPDS_Pave& Pave1() const; + + + //! Modifier + //! Sets the second pave + Standard_EXPORT void SetPave2 (const BOPDS_Pave& thePave); + + + //! Selector + //! Returns the second pave + Standard_EXPORT const BOPDS_Pave& Pave2() const; + + + //! Modifier + //! Sets the index of edge of pave block + Standard_EXPORT void SetEdge (const Standard_Integer theEdge); + + + //! Selector + //! Returns the index of edge of pave block + Standard_EXPORT Standard_Integer Edge() const; + + + //! Query + //! Returns true if the pave block has edge + Standard_EXPORT Standard_Boolean HasEdge() const; + + + //! Query + //! Returns true if the pave block has edge + //! Returns the index of edge + Standard_EXPORT Standard_Boolean HasEdge (Standard_Integer& theEdge) const; + + + //! Modifier + //! Sets the index of original edge + //! of the pave block + Standard_EXPORT void SetOriginalEdge (const Standard_Integer theEdge); + + + //! Selector + //! Returns the index of original edge of pave block + Standard_EXPORT Standard_Integer OriginalEdge() const; + + + //! Query + //! Returns true if the edge is equal to the original edge + //! of the pave block + Standard_EXPORT Standard_Boolean IsSplitEdge() const; + + + //! Selector + //! Returns the parametric range + //! of the pave block + Standard_EXPORT void Range (Standard_Real& theT1, Standard_Real& theT2) const; + + + //! Query + //! Returns true if the pave block has pave indices + //! that equal to the pave indices of the pave block + //! + Standard_EXPORT Standard_Boolean HasSameBounds (const Handle(BOPDS_PaveBlock)& theOther) const; + + + //! Selector + //! Returns the pave indices + //! of the pave block + Standard_EXPORT void Indices (Standard_Integer& theIndex1, Standard_Integer& theIndex2) const; + + + //! Query + //! Returns true if the pave block contains extra paves + Standard_EXPORT Standard_Boolean IsToUpdate() const; + + + //! Modifier + //! Appends extra paves + Standard_EXPORT void AppendExtPave (const BOPDS_Pave& theLP); + + + //! Modifier + //! Appends extra pave + Standard_EXPORT void AppendExtPave1 (const BOPDS_Pave& thePave); + + + //! Selector + //! Returns the extra paves + Standard_EXPORT const BOPDS_ListOfPave& ExtPaves() const; + + + //! Selector / Modifier + //! Returns the extra paves + Standard_EXPORT BOPDS_ListOfPave& ChangeExtPaves(); + + + //! Modifier + //! Updates the pave block. The extra paves are used + //! to create new pave blocks . + //! - if true, the first pave and the second + //! pave are used to produce new pave blocks. + Standard_EXPORT void Update (BOPDS_ListOfPaveBlock& theLPB, const Standard_Boolean theFlag = Standard_True); + + + //! Query + //! Returns true if the extra paves contain the pave + //! with given value of the parameter + //! - the value of the tolerance to compare + Standard_EXPORT Standard_Boolean ContainsParameter (const Standard_Real thePrm, const Standard_Real theTol) const; + + + //! Modifier + //! Sets the shrunk data for the pave block + //! , - shrunk range + //! - the bounding box + Standard_EXPORT void SetShrunkData (const Standard_Real theTS1, const Standard_Real theTS2, const Bnd_Box& theBox); + + + //! Selector + //! Returns the shrunk data for the pave block + //! , - shrunk range + //! - the bounding box + Standard_EXPORT void ShrunkData (Standard_Real& theTS1, Standard_Real& theTS2, Bnd_Box& theBox) const; + + + //! Query + //! Returns true if the pave block contains + //! the shrunk data + Standard_EXPORT Standard_Boolean HasShrunkData() const; + + Standard_EXPORT void Dump() const; + + + + + DEFINE_STANDARD_RTTI(BOPDS_PaveBlock,MMgt_TShared) + +protected: + + + BOPCol_BaseAllocator myAllocator; + Standard_Integer myEdge; + Standard_Integer myOriginalEdge; + BOPDS_Pave myPave1; + BOPDS_Pave myPave2; + BOPDS_ListOfPave myExtPaves; + Standard_Real myTS1; + Standard_Real myTS2; + Bnd_Box myShrunkBox; + BOPCol_MapOfInteger myMFence; + + +private: + + + + +}; + + + + + + + +#endif // _BOPDS_PaveBlock_HeaderFile diff --git a/src/BOPDS/BOPDS_PaveMapHasher.cdl b/src/BOPDS/BOPDS_PaveMapHasher.cdl deleted file mode 100644 index ee97ae2cbf..0000000000 --- a/src/BOPDS/BOPDS_PaveMapHasher.cdl +++ /dev/null @@ -1,37 +0,0 @@ --- Created by: Eugeny MALTCHIKOV --- 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. - -class PaveMapHasher from BOPDS - ----Purpose: - -uses - Pave from BOPDS - ---raises - -is - HashCode(myclass; - aPave : Pave from BOPDS; - Upper : Integer from Standard) - returns Integer from Standard; - ---C++: inline - - IsEqual(myclass; - aPave1 : Pave from BOPDS; - aPave2 : Pave from BOPDS) - returns Boolean from Standard; - ---C++: inline - -end PaveMapHasher; diff --git a/src/BOPDS/BOPDS_PaveMapHasher.cxx b/src/BOPDS/BOPDS_PaveMapHasher.cxx index c89e31e208..5171f7cda1 100644 --- a/src/BOPDS/BOPDS_PaveMapHasher.cxx +++ b/src/BOPDS/BOPDS_PaveMapHasher.cxx @@ -12,5 +12,6 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include diff --git a/src/BOPDS/BOPDS_PaveMapHasher.hxx b/src/BOPDS/BOPDS_PaveMapHasher.hxx new file mode 100644 index 0000000000..0e7b9ef425 --- /dev/null +++ b/src/BOPDS/BOPDS_PaveMapHasher.hxx @@ -0,0 +1,63 @@ +// Created by: Eugeny MALTCHIKOV +// 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_PaveMapHasher_HeaderFile +#define _BOPDS_PaveMapHasher_HeaderFile + +#include +#include +#include + +#include +#include +class BOPDS_Pave; + + + +class BOPDS_PaveMapHasher +{ +public: + + DEFINE_STANDARD_ALLOC + + + static Standard_Integer HashCode (const BOPDS_Pave& aPave, const Standard_Integer Upper); + + static Standard_Boolean IsEqual (const BOPDS_Pave& aPave1, const BOPDS_Pave& aPave2); + + + + +protected: + + + + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPDS_PaveMapHasher_HeaderFile diff --git a/src/BOPDS/BOPDS_Point.cdl b/src/BOPDS/BOPDS_Point.cdl deleted file mode 100644 index 3ce061b232..0000000000 --- a/src/BOPDS/BOPDS_Point.cdl +++ /dev/null @@ -1,98 +0,0 @@ --- 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. - -class Point from BOPDS - - ---Purpose: - -- The class BOPDS_Point is to store - -- the information about intersection point -uses - Pnt from gp, - Pnt2d from gp - ---raises - -is - Create - returns Point from BOPDS; - ---C++: alias "virtual ~BOPDS_Point();" - ---C++: inline - ---Purpose: - --- Empty contructor - --- - - SetPnt(me:out; - thePnt:Pnt from gp); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets 3D point - - Pnt(me) - returns Pnt from gp; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns 3D point - - SetPnt2D1(me:out; - thePnt:Pnt2d from gp); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets 2D point on the first face - - Pnt2D1(me) - returns Pnt2d from gp; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns 2D point on the first face - SetPnt2D2(me:out; - thePnt:Pnt2d from gp); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets 2D point on the second face - - Pnt2D2(me) - returns Pnt2d from gp; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns 2D point on the second face - - SetIndex(me:out; - theIndex: Integer from Standard); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets the index of the vertex - Index(me) - returns Integer from Standard; - ---C++: inline - ---Purpose: - --- Selector - --- Returns index of the vertex - -fields - myPnt :Pnt from gp is protected; - myPnt2D1:Pnt2d from gp is protected; - myPnt2D2:Pnt2d from gp is protected; - myIndex : Integer from Standard is protected; - -end Point; diff --git a/src/BOPDS/BOPDS_Point.cxx b/src/BOPDS/BOPDS_Point.cxx index ab6e6cd04e..bea344b697 100644 --- a/src/BOPDS/BOPDS_Point.cxx +++ b/src/BOPDS/BOPDS_Point.cxx @@ -12,4 +12,7 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include diff --git a/src/BOPDS/BOPDS_Point.hxx b/src/BOPDS/BOPDS_Point.hxx new file mode 100644 index 0000000000..b324cf21b3 --- /dev/null +++ b/src/BOPDS/BOPDS_Point.hxx @@ -0,0 +1,112 @@ +// 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_Point_HeaderFile +#define _BOPDS_Point_HeaderFile + +#include +#include +#include + +#include +#include +#include +class gp_Pnt; +class gp_Pnt2d; + + + +//! The class BOPDS_Point is to store +//! the information about intersection point +class BOPDS_Point +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Empty contructor + BOPDS_Point(); +virtual ~BOPDS_Point(); + + + //! Modifier + //! Sets 3D point + void SetPnt (const gp_Pnt& thePnt); + + + //! Selector + //! Returns 3D point + const gp_Pnt& Pnt() const; + + + //! Modifier + //! Sets 2D point on the first face + void SetPnt2D1 (const gp_Pnt2d& thePnt); + + + //! Selector + //! Returns 2D point on the first face + const gp_Pnt2d& Pnt2D1() const; + + + //! Modifier + //! Sets 2D point on the second face + void SetPnt2D2 (const gp_Pnt2d& thePnt); + + + //! Selector + //! Returns 2D point on the second face + const gp_Pnt2d& Pnt2D2() const; + + + //! Modifier + //! Sets the index of the vertex + void SetIndex (const Standard_Integer theIndex); + + + //! Selector + //! Returns index of the vertex + Standard_Integer Index() const; + + + + +protected: + + + + gp_Pnt myPnt; + gp_Pnt2d myPnt2D1; + gp_Pnt2d myPnt2D2; + Standard_Integer myIndex; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPDS_Point_HeaderFile diff --git a/src/BOPDS/BOPDS_ShapeInfo.cdl b/src/BOPDS/BOPDS_ShapeInfo.cdl deleted file mode 100644 index e74faadc03..0000000000 --- a/src/BOPDS/BOPDS_ShapeInfo.cdl +++ /dev/null @@ -1,195 +0,0 @@ --- 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. - -class ShapeInfo from BOPDS - - ---Purpose: - -- The class BOPDS_ShapeInfo is to store - -- handy information about shape -uses - Box from Bnd, - Shape from TopoDS, - BaseAllocator from BOPCol, - ListOfInteger from BOPCol, - ShapeEnum from TopAbs - ---raises - -is - Create - returns ShapeInfo from BOPDS; - ---C++: alias "virtual ~BOPDS_ShapeInfo();" - ---C++: inline - ---Purpose: - --- Empty contructor - --- - Create (theAllocator: BaseAllocator from BOPCol) - returns ShapeInfo from BOPDS; - ---C++: inline - ---Purpose: - --- Contructor - --- theAllocator - the allocator to manage the memory - --- - SetShape(me:out; - theS: Shape from TopoDS); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets the shape - Shape(me) - returns Shape from TopoDS; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns the shape - - SetShapeType(me:out; - theType: ShapeEnum from TopAbs); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets the type of shape theType - - ShapeType(me) - returns ShapeEnum from TopAbs; - ---C++: inline - ---Purpose: - --- Selector - --- Returns the type of shape - - SetBox(me:out; - theBox:Box from Bnd); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets the boundung box of the shape theBox - - - Box(me) - returns Box from Bnd; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns the boundung box of the shape - - ChangeBox(me:out) - returns Box from Bnd; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/Modifier - --- Returns the boundung box of the shape - - SubShapes(me) - returns ListOfInteger from BOPCol; - ---C++: return const & - ---C++: inline - ---Purpose: - --- Selector - --- Returns the list of indices of sub-shapes - - ChangeSubShapes(me:out) - returns ListOfInteger from BOPCol; - ---C++: return & - ---C++: inline - ---Purpose: - --- Selector/ Modifier - --- Returns the list of indices of sub-shapes - - HasSubShape(me; - theI:Integer from Standard) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - --- Query - --- Returns true if the shape has sub-shape with - --- index theI - - HasReference(me) - returns Boolean from Standard; - ---C++: inline - --- Query - --- Returns true if the shape has a reference information - - SetReference(me:out; - theI: Integer from Standard); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets the index of a reference information - - Reference(me) - returns Integer from Standard; - ---C++: inline - ---Purpose: - --- Selector - --- Returns the index of a reference information - - HasBRep(me) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - --- Query - --- Returns true if the shape has boundary representation - - IsInterfering(me) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - --- Returns true if the shape can be participant of - --- an interference - -- - --- Flag - -- - HasFlag(me) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - --- Query - --- Returns true if there is flag. - - HasFlag(me; - theFlag:out Integer from Standard) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - --- Query - --- Returns true if there is flag. - --- Returns the the flag theFlag - - SetFlag(me:out; - theI:Integer from Standard); - ---C++: inline - ---Purpose: - --- Modifier - --- Sets the flag - Flag(me) - returns Integer from Standard; - ---C++: inline - ---Purpose: - --- Returns the flag - - Dump(me); - -fields - myShape : Shape from TopoDS is protected; - myType : ShapeEnum from TopAbs is protected; - myBox : Box from Bnd is protected; - mySubShapes: ListOfInteger from BOPCol is protected; - myReference: Integer from Standard is protected; - myFlag : Integer from Standard is protected; - -end ShapeInfo; diff --git a/src/BOPDS/BOPDS_ShapeInfo.cxx b/src/BOPDS/BOPDS_ShapeInfo.cxx index 78dce5c7ca..1ce444c03e 100644 --- a/src/BOPDS/BOPDS_ShapeInfo.cxx +++ b/src/BOPDS/BOPDS_ShapeInfo.cxx @@ -12,11 +12,13 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include #include +#include +#include +#include static void DumpType(const TopAbs_ShapeEnum aTS); diff --git a/src/BOPDS/BOPDS_ShapeInfo.hxx b/src/BOPDS/BOPDS_ShapeInfo.hxx new file mode 100644 index 0000000000..08d03580e4 --- /dev/null +++ b/src/BOPDS/BOPDS_ShapeInfo.hxx @@ -0,0 +1,180 @@ +// 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_ShapeInfo_HeaderFile +#define _BOPDS_ShapeInfo_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class Bnd_Box; + + + +//! The class BOPDS_ShapeInfo is to store +//! handy information about shape +class BOPDS_ShapeInfo +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Empty contructor + BOPDS_ShapeInfo(); +virtual ~BOPDS_ShapeInfo(); + + + //! Contructor + //! theAllocator - the allocator to manage the memory + BOPDS_ShapeInfo(const BOPCol_BaseAllocator& theAllocator); + + + //! Modifier + //! Sets the shape + void SetShape (const TopoDS_Shape& theS); + + + //! Selector + //! Returns the shape + const TopoDS_Shape& Shape() const; + + + //! Modifier + //! Sets the type of shape theType + void SetShapeType (const TopAbs_ShapeEnum theType); + + + //! Selector + //! Returns the type of shape + TopAbs_ShapeEnum ShapeType() const; + + + //! Modifier + //! Sets the boundung box of the shape theBox + void SetBox (const Bnd_Box& theBox); + + + //! Selector + //! Returns the boundung box of the shape + const Bnd_Box& Box() const; + + + //! Selector/Modifier + //! Returns the boundung box of the shape + Bnd_Box& ChangeBox(); + + + //! Selector + //! Returns the list of indices of sub-shapes + const BOPCol_ListOfInteger& SubShapes() const; + + + //! Selector/ Modifier + //! Returns the list of indices of sub-shapes + BOPCol_ListOfInteger& ChangeSubShapes(); + + + //! Query + //! Returns true if the shape has sub-shape with + //! index theI + Standard_Boolean HasSubShape (const Standard_Integer theI) const; + + Standard_Boolean HasReference() const; + + + //! Modifier + //! Sets the index of a reference information + void SetReference (const Standard_Integer theI); + + + //! Selector + //! Returns the index of a reference information + Standard_Integer Reference() const; + + + //! Query + //! Returns true if the shape has boundary representation + Standard_Boolean HasBRep() const; + + + //! Returns true if the shape can be participant of + //! an interference + //! + //! Flag + Standard_Boolean IsInterfering() const; + + + //! Query + //! Returns true if there is flag. + Standard_Boolean HasFlag() const; + + + //! Query + //! Returns true if there is flag. + //! Returns the the flag theFlag + Standard_Boolean HasFlag (Standard_Integer& theFlag) const; + + + //! Modifier + //! Sets the flag + void SetFlag (const Standard_Integer theI); + + + //! Returns the flag + Standard_Integer Flag() const; + + Standard_EXPORT void Dump() const; + + + + +protected: + + + + TopoDS_Shape myShape; + TopAbs_ShapeEnum myType; + Bnd_Box myBox; + BOPCol_ListOfInteger mySubShapes; + Standard_Integer myReference; + Standard_Integer myFlag; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPDS_ShapeInfo_HeaderFile diff --git a/src/BOPDS/BOPDS_SubIterator.cdl b/src/BOPDS/BOPDS_SubIterator.cdl deleted file mode 100644 index 9badd1dbb3..0000000000 --- a/src/BOPDS/BOPDS_SubIterator.cdl +++ /dev/null @@ -1,134 +0,0 @@ --- 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. - -class SubIterator from BOPDS - - ---Purpose: - -- The class BOPDS_SubIterator is - -- 1.to compute intersections between two sub-sets of - -- BRep sub-shapes - -- of arguments of an operation (see the class BOPDS_DS) - -- in terms of theirs bounding boxes - -- 2.provides interface to iterare the pairs of - -- intersected sub-shapes of given type - -uses - ShapeEnum from TopAbs, - BaseAllocator from BOPCol, - ListOfInteger from BOPCol, - PListOfInteger from BOPCol, - DS from BOPDS, - PDS from BOPDS, - PassKeyBoolean from BOPDS, - ListOfPassKeyBoolean from BOPDS, - ListIteratorOfListOfPassKeyBoolean from BOPDS, - VectorOfListOfPassKeyBoolean from BOPDS - - ---raises - -is - Create - returns SubIterator from BOPDS; - ---C++: alias "Standard_EXPORT virtual ~BOPDS_SubIterator();" - ---Purpose: - --- Empty contructor - --- - - Create (theAllocator: BaseAllocator from BOPCol) - returns SubIterator from BOPDS; - ---Purpose: - --- Contructor - --- theAllocator - the allocator to manage the memory - --- - - SetDS(me:out; - pDS:PDS from BOPDS); - ---Purpose: - --- Modifier - --- Sets the data structure to process - - DS(me) - returns DS from BOPDS; - ---C++:return const & - ---Purpose: - --- Selector - --- Returns the data structure - - SetSubSet1(me:out; - theLI:ListOfInteger from BOPCol); - ---Purpose: - --- Modifier - --- Sets the first set of indices to process - - SubSet1(me) - returns ListOfInteger from BOPCol; - ---C++:return const & - ---Purpose: - --- Selector - --- Returns the first set of indices to process - - SetSubSet2(me:out; - theLI:ListOfInteger from BOPCol); - ---Purpose: - --- Modifier - --- Sets the second set of indices to process - SubSet2(me) - returns ListOfInteger from BOPCol; - ---C++:return const & - ---Purpose: - --- Selector - --- Returns the second set of indices to process - - Initialize(me:out); - ---Purpose: - --- Initializes the iterator - - More(me) - returns Boolean from Standard; - ---Purpose: - --- Returns true if still there are pairs - -- of intersected shapes - - Next(me:out); - ---Purpose: - --- Moves iterations ahead - - Value(me; - theIndex1:out Integer from Standard; - theIndex2:out Integer from Standard); - ---Purpose: - --- Returns indices (DS) of intersected shapes - --- theIndex1 - the index of the first shape - --- theIndex2 - the index of the second shape - - Prepare(me:out) - is virtual; - ---Purpose: - --- Perform the intersection algorithm and prepare - --- the results to be used - - Intersect(me:out) - is virtual protected; - - -fields - myAllocator: BaseAllocator from BOPCol is protected; - myDS : PDS from BOPDS is protected; - myList : ListOfPassKeyBoolean from BOPDS is protected; - myIterator : ListIteratorOfListOfPassKeyBoolean from BOPDS is protected; - mySubSet1 : PListOfInteger from BOPCol is protected; - mySubSet2 : PListOfInteger from BOPCol is protected; - -end SubIterator; diff --git a/src/BOPDS/BOPDS_SubIterator.cxx b/src/BOPDS/BOPDS_SubIterator.cxx index 69aaa97c84..625dbee8cb 100644 --- a/src/BOPDS/BOPDS_SubIterator.cxx +++ b/src/BOPDS/BOPDS_SubIterator.cxx @@ -12,29 +12,30 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -// + #include -// -#include -#include -// -#include -#include -#include -// -#include +#include #include #include +#include #include -#include -// +#include #include -#include #include +#include +#include #include -#include +#include +#include +#include +#include +#include +// +// +// +// +// //======================================================================= //function : //purpose : diff --git a/src/BOPDS/BOPDS_SubIterator.hxx b/src/BOPDS/BOPDS_SubIterator.hxx new file mode 100644 index 0000000000..6b2c76053b --- /dev/null +++ b/src/BOPDS/BOPDS_SubIterator.hxx @@ -0,0 +1,143 @@ +// 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_SubIterator_HeaderFile +#define _BOPDS_SubIterator_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class BOPDS_DS; + + + +//! The class BOPDS_SubIterator is +//! 1.to compute intersections between two sub-sets of +//! BRep sub-shapes +//! of arguments of an operation (see the class BOPDS_DS) +//! in terms of theirs bounding boxes +//! 2.provides interface to iterare the pairs of +//! intersected sub-shapes of given type +class BOPDS_SubIterator +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Empty contructor + Standard_EXPORT BOPDS_SubIterator(); +Standard_EXPORT virtual ~BOPDS_SubIterator(); + + + //! Contructor + //! theAllocator - the allocator to manage the memory + Standard_EXPORT BOPDS_SubIterator(const BOPCol_BaseAllocator& theAllocator); + + + //! Modifier + //! Sets the data structure to process + Standard_EXPORT void SetDS (const BOPDS_PDS& pDS); + + + //! Selector + //! Returns the data structure + Standard_EXPORT const BOPDS_DS& DS() const; + + + //! Modifier + //! Sets the first set of indices to process + Standard_EXPORT void SetSubSet1 (const BOPCol_ListOfInteger& theLI); + + + //! Selector + //! Returns the first set of indices to process + Standard_EXPORT const BOPCol_ListOfInteger& SubSet1() const; + + + //! Modifier + //! Sets the second set of indices to process + Standard_EXPORT void SetSubSet2 (const BOPCol_ListOfInteger& theLI); + + + //! Selector + //! Returns the second set of indices to process + Standard_EXPORT const BOPCol_ListOfInteger& SubSet2() const; + + + //! Initializes the iterator + Standard_EXPORT void Initialize(); + + + //! Returns true if still there are pairs + //! of intersected shapes + Standard_EXPORT Standard_Boolean More() const; + + + //! Moves iterations ahead + Standard_EXPORT void Next(); + + + //! Returns indices (DS) of intersected shapes + //! theIndex1 - the index of the first shape + //! theIndex2 - the index of the second shape + Standard_EXPORT void Value (Standard_Integer& theIndex1, Standard_Integer& theIndex2) const; + + + //! Perform the intersection algorithm and prepare + //! the results to be used + Standard_EXPORT virtual void Prepare(); + + + + +protected: + + + Standard_EXPORT virtual void Intersect(); + + + BOPCol_BaseAllocator myAllocator; + BOPDS_PDS myDS; + BOPDS_ListOfPassKeyBoolean myList; + BOPDS_ListIteratorOfListOfPassKeyBoolean myIterator; + BOPCol_PListOfInteger mySubSet1; + BOPCol_PListOfInteger mySubSet2; + + +private: + + + + + +}; + + + + + + + +#endif // _BOPDS_SubIterator_HeaderFile diff --git a/src/BOPDS/BOPDS_Tools.cdl b/src/BOPDS/BOPDS_Tools.cdl deleted file mode 100644 index 3be1158a6a..0000000000 --- a/src/BOPDS/BOPDS_Tools.cdl +++ /dev/null @@ -1,62 +0,0 @@ --- 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. - -class Tools from BOPDS - - ---Purpose: - -- The class BOPDS_Tools contains - -- a set auxiliary static functions - -- of the package BOPDS - -uses - ShapeEnum from TopAbs - ---raises - -is - TypeToInteger(myclass; - theT1: ShapeEnum from TopAbs; - theT2: ShapeEnum from TopAbs) - returns Integer from Standard; - ---C++: inline - ---Purpose: - --- Converts the conmbination of two types - -- of shape , - --- to the one integer value, that is returned - - TypeToInteger(myclass; - theT: ShapeEnum from TopAbs) - returns Integer from Standard; - ---C++: inline - ---Purpose: - --- Converts the type of shape , - --- to integer value, that is returned - - HasBRep(myclass; - theT: ShapeEnum from TopAbs) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - --- Returns true if the type correspond - --- to a shape having boundary representation - - IsInterfering(myclass; - theT: ShapeEnum from TopAbs) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - --- Returns true if the type can be participant of - --- an interference - -end Tools; diff --git a/src/BOPDS/BOPDS_Tools.cxx b/src/BOPDS/BOPDS_Tools.cxx index 5bd57fb3f9..c8ab468c3d 100644 --- a/src/BOPDS/BOPDS_Tools.cxx +++ b/src/BOPDS/BOPDS_Tools.cxx @@ -12,4 +12,5 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include diff --git a/src/BOPDS/BOPDS_Tools.hxx b/src/BOPDS/BOPDS_Tools.hxx new file mode 100644 index 0000000000..4784f5b450 --- /dev/null +++ b/src/BOPDS/BOPDS_Tools.hxx @@ -0,0 +1,83 @@ +// 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_Tools_HeaderFile +#define _BOPDS_Tools_HeaderFile + +#include +#include +#include + +#include +#include +#include + + + +//! The class BOPDS_Tools contains +//! a set auxiliary static functions +//! of the package BOPDS +class BOPDS_Tools +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Converts the conmbination of two types + //! of shape , + //! to the one integer value, that is returned + static Standard_Integer TypeToInteger (const TopAbs_ShapeEnum theT1, const TopAbs_ShapeEnum theT2); + + + //! Converts the type of shape , + //! to integer value, that is returned + static Standard_Integer TypeToInteger (const TopAbs_ShapeEnum theT); + + + //! Returns true if the type correspond + //! to a shape having boundary representation + static Standard_Boolean HasBRep (const TopAbs_ShapeEnum theT); + + + //! Returns true if the type can be participant of + //! an interference + static Standard_Boolean IsInterfering (const TopAbs_ShapeEnum theT); + + + + +protected: + + + + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPDS_Tools_HeaderFile diff --git a/src/BOPDS/FILES b/src/BOPDS/FILES index 9c4dc2f1ce..407bdae843 100644 --- a/src/BOPDS/FILES +++ b/src/BOPDS/FILES @@ -1,39 +1,88 @@ -BOPDS_VectorOfShapeInfo.hxx -BOPDS_VectorOfIndexRange.hxx -BOPDS_ListOfPassKeyBoolean.hxx -BOPDS_MapOfPassKeyBoolean.hxx -BOPDS_MapOfPassKey.hxx +BOPDS_CommonBlock.cxx +BOPDS_CommonBlock.hxx +BOPDS_CoupleOfPaveBlocks.hxx +BOPDS_Curve.cxx +BOPDS_Curve.hxx +BOPDS_Curve.lxx +BOPDS_DataMapOfIntegerListOfPaveBlock.hxx +BOPDS_DataMapOfPassKeyListOfPaveBlock.hxx +BOPDS_DataMapOfPaveBlockCommonBlock.hxx +BOPDS_DataMapOfPaveBlockListOfInteger.hxx +BOPDS_DataMapOfPaveBlockListOfPaveBlock.hxx +BOPDS_DataMapOfShapeCoupleOfPaveBlocks.hxx +BOPDS_DS.cxx +BOPDS_DS.hxx +BOPDS_DS.lxx +BOPDS_FaceInfo.cxx +BOPDS_FaceInfo.hxx +BOPDS_FaceInfo.lxx +BOPDS_IndexedDataMapOfPaveBlockListOfInteger.hxx +BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock.hxx +BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks.hxx +BOPDS_IndexedMapOfPaveBlock.hxx +BOPDS_IndexRange.cxx +BOPDS_IndexRange.hxx +BOPDS_IndexRange.lxx +BOPDS_Interf.hxx +BOPDS_Iterator.cxx +BOPDS_Iterator.hxx +BOPDS_IteratorSI.cxx +BOPDS_IteratorSI.hxx BOPDS_ListIteratorOfListOfPassKeyBoolean.hxx -BOPDS_VectorOfListOfPassKeyBoolean.hxx +BOPDS_ListOfPassKeyBoolean.hxx BOPDS_ListOfPave.hxx BOPDS_ListOfPaveBlock.hxx -BOPDS_VectorOfListOfPaveBlock.hxx -BOPDS_VectorOfInterfVV.hxx -BOPDS_VectorOfInterfVE.hxx -BOPDS_VectorOfInterfVF.hxx +BOPDS_MapOfCommonBlock.hxx +BOPDS_MapOfPassKey.hxx +BOPDS_MapOfPassKeyBoolean.hxx +BOPDS_MapOfPave.hxx +BOPDS_MapOfPaveBlock.hxx +BOPDS_PassKey.cxx +BOPDS_PassKey.hxx +BOPDS_PassKey.lxx +BOPDS_PassKeyBoolean.cxx +BOPDS_PassKeyBoolean.hxx +BOPDS_PassKeyBoolean.lxx +BOPDS_PassKeyMapHasher.cxx +BOPDS_PassKeyMapHasher.hxx +BOPDS_PassKeyMapHasher.lxx +BOPDS_Pave.cxx +BOPDS_Pave.hxx +BOPDS_Pave.lxx +BOPDS_PaveBlock.cxx +BOPDS_PaveBlock.hxx +BOPDS_PaveMapHasher.cxx +BOPDS_PaveMapHasher.hxx +BOPDS_PaveMapHasher.lxx +BOPDS_PDS.hxx +BOPDS_PIterator.hxx +BOPDS_PIteratorSI.hxx +BOPDS_Point.cxx +BOPDS_Point.hxx +BOPDS_Point.lxx +BOPDS_ShapeInfo.cxx +BOPDS_ShapeInfo.hxx +BOPDS_ShapeInfo.lxx +BOPDS_SubIterator.cxx +BOPDS_SubIterator.hxx +BOPDS_Tools.cxx +BOPDS_Tools.hxx +BOPDS_Tools.lxx +BOPDS_VectorOfCurve.hxx +BOPDS_VectorOfFaceInfo.hxx +BOPDS_VectorOfIndexRange.hxx BOPDS_VectorOfInterfEE.hxx BOPDS_VectorOfInterfEF.hxx -BOPDS_VectorOfInterfFF.hxx -BOPDS_VectorOfInterfVZ.hxx BOPDS_VectorOfInterfEZ.hxx +BOPDS_VectorOfInterfFF.hxx BOPDS_VectorOfInterfFZ.hxx +BOPDS_VectorOfInterfVE.hxx +BOPDS_VectorOfInterfVF.hxx +BOPDS_VectorOfInterfVV.hxx +BOPDS_VectorOfInterfVZ.hxx BOPDS_VectorOfInterfZZ.hxx -BOPDS_Interf.hxx -BOPDS_DataMapOfPaveBlockListOfPaveBlock.hxx -BOPDS_MapOfPaveBlock.hxx -BOPDS_DataMapOfPaveBlockListOfInteger.hxx -BOPDS_DataMapOfPassKeyListOfPaveBlock.hxx -BOPDS_CoupleOfPaveBlocks.hxx -BOPDS_MapOfCommonBlock.hxx -BOPDS_VectorOfFaceInfo.hxx -BOPDS_VectorOfCurve.hxx +BOPDS_VectorOfListOfPassKeyBoolean.hxx +BOPDS_VectorOfListOfPaveBlock.hxx +BOPDS_VectorOfPave.hxx BOPDS_VectorOfPoint.hxx -BOPDS_DataMapOfShapeCoupleOfPaveBlocks.hxx -BOPDS_MapOfPave.hxx -BOPDS_IndexedDataMapOfPaveBlockListOfPaveBlock.hxx -BOPDS_DataMapOfIntegerListOfPaveBlock.hxx -BOPDS_IndexedMapOfPaveBlock.hxx -BOPDS_IndexedDataMapOfPaveBlockListOfInteger.hxx -BOPDS_IndexedDataMapOfShapeCoupleOfPaveBlocks.hxx -BOPDS_DataMapOfPaveBlockCommonBlock.hxx -BOPDS_VectorOfPave.hxx \ No newline at end of file +BOPDS_VectorOfShapeInfo.hxx diff --git a/src/BOPTest/BOPTest.cdl b/src/BOPTest/BOPTest.cdl deleted file mode 100644 index 8121dc3bc3..0000000000 --- a/src/BOPTest/BOPTest.cdl +++ /dev/null @@ -1,46 +0,0 @@ --- Created on: 2000-05-18 --- Created by: Peter KURNEV --- Copyright (c) 2000-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. - -package BOPTest ----Purpose: - -uses - gp, - Draw, - DBRep, - TopAbs, - TopoDS, - TopTools, - BOPCol, - BOPDS, - BOPAlgo - -is - - class Objects; - class DrawableShape; - -- - AllCommands (aDI:out Interpretor from Draw); - BOPCommands (aDI:out Interpretor from Draw); - CheckCommands (aDI:out Interpretor from Draw); - TolerCommands (aDI:out Interpretor from Draw); - LowCommands (aDI:out Interpretor from Draw); - ObjCommands (aDI:out Interpretor from Draw); - PartitionCommands (aDI:out Interpretor from Draw); - APICommands (aDI:out Interpretor from Draw); - OptionCommands (aDI:out Interpretor from Draw); - Factory (aDI:out Interpretor from Draw); - -end BOPTest; diff --git a/src/BOPTest/BOPTest.cxx b/src/BOPTest/BOPTest.cxx index b986f7bb0e..5417b42c60 100644 --- a/src/BOPTest/BOPTest.cxx +++ b/src/BOPTest/BOPTest.cxx @@ -13,14 +13,15 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include #include #include -#include #include -#include -#include +#include #include +#include //======================================================================= //function : AllCommands diff --git a/src/BOPTest/BOPTest.hxx b/src/BOPTest/BOPTest.hxx new file mode 100644 index 0000000000..6096bda2de --- /dev/null +++ b/src/BOPTest/BOPTest.hxx @@ -0,0 +1,81 @@ +// Created on: 2000-05-18 +// Created by: Peter KURNEV +// Copyright (c) 2000-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 _BOPTest_HeaderFile +#define _BOPTest_HeaderFile + +#include +#include +#include + +#include +class BOPTest_Objects; +class BOPTest_DrawableShape; + + + +class BOPTest +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT static void AllCommands (Draw_Interpretor& aDI); + + Standard_EXPORT static void BOPCommands (Draw_Interpretor& aDI); + + Standard_EXPORT static void CheckCommands (Draw_Interpretor& aDI); + + Standard_EXPORT static void TolerCommands (Draw_Interpretor& aDI); + + Standard_EXPORT static void LowCommands (Draw_Interpretor& aDI); + + Standard_EXPORT static void ObjCommands (Draw_Interpretor& aDI); + + Standard_EXPORT static void PartitionCommands (Draw_Interpretor& aDI); + + Standard_EXPORT static void APICommands (Draw_Interpretor& aDI); + + Standard_EXPORT static void OptionCommands (Draw_Interpretor& aDI); + + Standard_EXPORT static void Factory (Draw_Interpretor& aDI); + + + + +protected: + + + + + +private: + + + + +friend class BOPTest_Objects; +friend class BOPTest_DrawableShape; + +}; + + + + + + + +#endif // _BOPTest_HeaderFile diff --git a/src/BOPTest/BOPTest_APICommands.cxx b/src/BOPTest/BOPTest_APICommands.cxx index 01a0dc42a2..fc460fa4b0 100644 --- a/src/BOPTest/BOPTest_APICommands.cxx +++ b/src/BOPTest/BOPTest_APICommands.cxx @@ -12,29 +12,24 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include -#include - -#include -#include - -#include - -#include +#include #include +#include #include -#include - #include #include #include -#include #include +#include #include +#include +#include +#include +#include +#include +#include static void ConvertList(const BOPCol_ListOfShape& aLSB, TopTools_ListOfShape& aLS); diff --git a/src/BOPTest/BOPTest_BOPCommands.cxx b/src/BOPTest/BOPTest_BOPCommands.cxx index 54b065f5c0..35c36e3f06 100644 --- a/src/BOPTest/BOPTest_BOPCommands.cxx +++ b/src/BOPTest/BOPTest_BOPCommands.cxx @@ -13,52 +13,41 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include - -#include - -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -// -#include - -#include -#include -#include - -#include - -#include - -#include -#include #include #include +#include +#include #include - +#include +#include +#include +#include +#include +#include #include #include -#include #include +#include #include - -#include -#include - -#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +// // static BOPAlgo_PaveFiller* pPF=NULL; // diff --git a/src/BOPTest/BOPTest_CheckCommands.cxx b/src/BOPTest/BOPTest_CheckCommands.cxx index 7c37c401ab..3076341cb8 100644 --- a/src/BOPTest/BOPTest_CheckCommands.cxx +++ b/src/BOPTest/BOPTest_CheckCommands.cxx @@ -12,40 +12,31 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include -#include -#include - -#include - -#include - -#include -#include - -#include -#include -#include -#include - -#include -#include +#include +#include +#include #include - #include #include - -#include -#include -#include +#include +#include #include - +#include +#include +#include +#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // static void MakeShapeForFullOutput (const TCollection_AsciiString&, diff --git a/src/BOPTest/BOPTest_DrawableShape.cdl b/src/BOPTest/BOPTest_DrawableShape.cdl deleted file mode 100644 index 7d897df4ed..0000000000 --- a/src/BOPTest/BOPTest_DrawableShape.cdl +++ /dev/null @@ -1,60 +0,0 @@ --- Created on: 2000-05-25 --- Created by: Peter KURNEV --- Copyright (c) 2000-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. - -class DrawableShape from BOPTest - inherits DrawableShape from DBRep - - ---Purpose: - -uses - - Shape from TopoDS, - Color from Draw, - Display from Draw, - Text3D from Draw, - Marker3D from Draw, - CString from Standard, - Pnt from gp - -is - Create (S : Shape from TopoDS; - FreeCol : Color from Draw; -- color for free edges - ConnCol : Color from Draw; -- color for shared edges - EdgeCol : Color from Draw; -- color for other edges - IsosCol : Color from Draw; -- color for Isos - size : Real; -- size for infinite isos - nbisos : Integer; -- # of isos on each face - discret : Integer; -- # of points on curves - Text : CString from Standard; - TextColor : Color from Draw) - returns DrawableShape from BOPTest; - - Create (S : Shape from TopoDS; - Text : CString from Standard; - TextColor : Color from Draw) - returns DrawableShape from BOPTest; - - Pnt(me) - returns Pnt from gp - is private; - - DrawOn(me; dis : in out Display from Draw) - is redefined; - -fields - myText : Text3D from Draw; - myTextColor : Color from Draw; - -end DrawableShape; diff --git a/src/BOPTest/BOPTest_DrawableShape.cxx b/src/BOPTest/BOPTest_DrawableShape.cxx index 9d7ab543c1..4758f34223 100644 --- a/src/BOPTest/BOPTest_DrawableShape.cxx +++ b/src/BOPTest/BOPTest_DrawableShape.cxx @@ -13,45 +13,38 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include - -#include -#include -#include - -#include - +#include #include -#include -#include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include #include +#include #include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include -#include -#include #include #include -#include -#include +#include +#include +#include +#include #include -#include +#include #include +#include #include +#include +#include +#include +#include //======================================================================= //function : //purpose : diff --git a/src/BOPTest/BOPTest_DrawableShape.hxx b/src/BOPTest/BOPTest_DrawableShape.hxx new file mode 100644 index 0000000000..444b30aab0 --- /dev/null +++ b/src/BOPTest/BOPTest_DrawableShape.hxx @@ -0,0 +1,77 @@ +// Created on: 2000-05-25 +// Created by: Peter KURNEV +// Copyright (c) 2000-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 _BOPTest_DrawableShape_HeaderFile +#define _BOPTest_DrawableShape_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +class Draw_Text3D; +class TopoDS_Shape; +class Draw_Color; +class gp_Pnt; +class Draw_Display; + + +class BOPTest_DrawableShape; +DEFINE_STANDARD_HANDLE(BOPTest_DrawableShape, DBRep_DrawableShape) + + +class BOPTest_DrawableShape : public DBRep_DrawableShape +{ + +public: + + + Standard_EXPORT BOPTest_DrawableShape(const TopoDS_Shape& S, const Draw_Color& FreeCol, const Draw_Color& ConnCol, const Draw_Color& EdgeCol, const Draw_Color& IsosCol, const Standard_Real size, const Standard_Integer nbisos, const Standard_Integer discret, const Standard_CString Text, const Draw_Color& TextColor); + + Standard_EXPORT BOPTest_DrawableShape(const TopoDS_Shape& S, const Standard_CString Text, const Draw_Color& TextColor); + + Standard_EXPORT virtual void DrawOn (Draw_Display& dis) const Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(BOPTest_DrawableShape,DBRep_DrawableShape) + +protected: + + + + +private: + + + Standard_EXPORT gp_Pnt Pnt() const; + + Handle(Draw_Text3D) myText; + Draw_Color myTextColor; + + +}; + + + + + + + +#endif // _BOPTest_DrawableShape_HeaderFile diff --git a/src/BOPTest/BOPTest_LowCommands.cxx b/src/BOPTest/BOPTest_LowCommands.cxx index ff16fcd83d..b863f411d1 100644 --- a/src/BOPTest/BOPTest_LowCommands.cxx +++ b/src/BOPTest/BOPTest_LowCommands.cxx @@ -13,35 +13,28 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include - -#include -#include - -#include -#include -#include - -#include - -#include -#include - -#include +#include +#include #include +#include #include #include -#include - -#include +#include +#include +#include #include +#include #include - -#include +#include +#include #include +#include +#include +#include +#include +#include static void PrintState (Draw_Interpretor& aDI, const TopAbs_State& aState); diff --git a/src/BOPTest/BOPTest_ObjCommands.cxx b/src/BOPTest/BOPTest_ObjCommands.cxx index f1c07403f6..9a2e3b903b 100644 --- a/src/BOPTest/BOPTest_ObjCommands.cxx +++ b/src/BOPTest/BOPTest_ObjCommands.cxx @@ -12,19 +12,19 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include +#include +#include #include -// +#include #include #include -// #include -// -#include +#include +// +// +// static Standard_Integer baddobjects (Draw_Interpretor& , Standard_Integer , const char** ); static Standard_Integer bclearobjects (Draw_Interpretor& , Standard_Integer , const char** ); static Standard_Integer baddtools (Draw_Interpretor& , Standard_Integer , const char** ); diff --git a/src/BOPTest/BOPTest_Objects.cdl b/src/BOPTest/BOPTest_Objects.cdl deleted file mode 100644 index e06be99664..0000000000 --- a/src/BOPTest/BOPTest_Objects.cdl +++ /dev/null @@ -1,81 +0,0 @@ --- 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. - -class Objects from BOPTest - - ---Purpose: - -uses - ListOfShape from BOPCol, - PDS from BOPDS, - PaveFiller from BOPAlgo, - Builder from BOPAlgo, - PBuilder from BOPAlgo, - BOP from BOPAlgo, - Section from BOPAlgo - ---raises - -is - PaveFiller(myclass) - returns PaveFiller from BOPAlgo; - ---C++: return & - - Init(myclass); - - Clear(myclass); - - PDS(myclass) - returns PDS from BOPDS; - - Builder(myclass) - returns Builder from BOPAlgo; - ---C++: return & - - BOP(myclass) - returns BOP from BOPAlgo; - ---C++: return & - - Section(myclass) - returns Section from BOPAlgo; - ---C++: return & - - Shapes(myclass) - returns ListOfShape from BOPCol; - ---C++: return & - - Tools(myclass) - returns ListOfShape from BOPCol; - ---C++: return & - -- - SetBuilder(myclass; - theBuilder:PBuilder from BOPAlgo); - - SetBuilderDefault(myclass); - - SetRunParallel(myclass; - theFlag: Boolean from Standard); - - RunParallel(myclass) - returns Boolean from Standard; - - SetFuzzyValue(myclass; - theValue: Real from Standard); - - FuzzyValue(myclass) - returns Real from Standard; - ---fields - -end Objects; diff --git a/src/BOPTest/BOPTest_Objects.cxx b/src/BOPTest/BOPTest_Objects.cxx index 4aa124c50c..37bd0da77e 100644 --- a/src/BOPTest/BOPTest_Objects.cxx +++ b/src/BOPTest/BOPTest_Objects.cxx @@ -12,8 +12,12 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include #include #include diff --git a/src/BOPTest/BOPTest_Objects.hxx b/src/BOPTest/BOPTest_Objects.hxx new file mode 100644 index 0000000000..fa07d35570 --- /dev/null +++ b/src/BOPTest/BOPTest_Objects.hxx @@ -0,0 +1,94 @@ +// 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 _BOPTest_Objects_HeaderFile +#define _BOPTest_Objects_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class BOPAlgo_PaveFiller; +class BOPAlgo_Builder; +class BOPAlgo_BOP; +class BOPAlgo_Section; + + + +class BOPTest_Objects +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT static BOPAlgo_PaveFiller& PaveFiller(); + + Standard_EXPORT static void Init(); + + Standard_EXPORT static void Clear(); + + Standard_EXPORT static BOPDS_PDS PDS(); + + Standard_EXPORT static BOPAlgo_Builder& Builder(); + + Standard_EXPORT static BOPAlgo_BOP& BOP(); + + Standard_EXPORT static BOPAlgo_Section& Section(); + + Standard_EXPORT static BOPCol_ListOfShape& Shapes(); + + Standard_EXPORT static BOPCol_ListOfShape& Tools(); + + Standard_EXPORT static void SetBuilder (const BOPAlgo_PBuilder& theBuilder); + + Standard_EXPORT static void SetBuilderDefault(); + + Standard_EXPORT static void SetRunParallel (const Standard_Boolean theFlag); + + Standard_EXPORT static Standard_Boolean RunParallel(); + + Standard_EXPORT static void SetFuzzyValue (const Standard_Real theValue); + + Standard_EXPORT static Standard_Real FuzzyValue(); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BOPTest_Objects_HeaderFile diff --git a/src/BOPTest/BOPTest_OptionCommands.cxx b/src/BOPTest/BOPTest_OptionCommands.cxx index 82505ab3a7..afae57c9e3 100644 --- a/src/BOPTest/BOPTest_OptionCommands.cxx +++ b/src/BOPTest/BOPTest_OptionCommands.cxx @@ -12,16 +12,14 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include -#include +#include +#include #include #include -#include - +#include +#include static Standard_Integer boptions (Draw_Interpretor&, Standard_Integer, const char**); static Standard_Integer brunparallel (Draw_Interpretor&, Standard_Integer, const char**); static Standard_Integer bfuzzyvalue (Draw_Interpretor&, Standard_Integer, const char**); diff --git a/src/BOPTest/BOPTest_PartitionCommands.cxx b/src/BOPTest/BOPTest_PartitionCommands.cxx index 82bf7f7ccb..35dabe1d59 100644 --- a/src/BOPTest/BOPTest_PartitionCommands.cxx +++ b/src/BOPTest/BOPTest_PartitionCommands.cxx @@ -12,31 +12,27 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include - -#include - -#include -#include -#include -#include - -#include -// +#include #include -#include #include -#include +#include #include -// +#include #include #include - +#include +#include +#include +#include +#include #include +#include +#include +#include +// +// static Standard_Integer bfillds (Draw_Interpretor&, Standard_Integer, const char**); static Standard_Integer bbuild (Draw_Interpretor&, Standard_Integer, const char**); static Standard_Integer bbop (Draw_Interpretor&, Standard_Integer, const char**); diff --git a/src/BOPTest/BOPTest_TolerCommands.cxx b/src/BOPTest/BOPTest_TolerCommands.cxx index 876ae5e02d..9a1be204e7 100644 --- a/src/BOPTest/BOPTest_TolerCommands.cxx +++ b/src/BOPTest/BOPTest_TolerCommands.cxx @@ -12,50 +12,41 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include - +#include +#include +#include +#include +#include +#include +#include #include -#include #include #include - -#include - +#include +#include +#include +#include #include #include -#include #include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include - -#include -#include - +#include // static void ProcessVertex(const TopoDS_Vertex&, diff --git a/src/BOPTest/FILES b/src/BOPTest/FILES index fad6632898..a371eb4162 100755 --- a/src/BOPTest/FILES +++ b/src/BOPTest/FILES @@ -1,8 +1,14 @@ +BOPTest.cxx +BOPTest.hxx +BOPTest_APICommands.cxx BOPTest_BOPCommands.cxx -BOPTest_PartitionCommands.cxx -BOPTest_LowCommands.cxx BOPTest_CheckCommands.cxx -BOPTest_TolerCommands.cxx +BOPTest_DrawableShape.cxx +BOPTest_DrawableShape.hxx +BOPTest_LowCommands.cxx BOPTest_ObjCommands.cxx -BOPTest_APICommands.cxx +BOPTest_Objects.cxx +BOPTest_Objects.hxx BOPTest_OptionCommands.cxx +BOPTest_PartitionCommands.cxx +BOPTest_TolerCommands.cxx diff --git a/src/BOPTools/BOPTools.cdl b/src/BOPTools/BOPTools.cdl deleted file mode 100644 index addc605e50..0000000000 --- a/src/BOPTools/BOPTools.cdl +++ /dev/null @@ -1,78 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2000-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. - -package BOPTools - - ---Purpose: - -uses - gp, - Bnd, - TopAbs, - Geom, - Geom2d, - GeomAPI, - BRepClass3d, - TopoDS, - BRepAdaptor, - TopTools, - IntTools, - ProjLib, - -- - BOPCol -is - - -- - -- classes - -- - class ShapeSet; - class EdgeSet; - class AlgoTools; - class Set; - class SetMapHasher; - class AlgoTools2D; - class AlgoTools3D; - -- - imported MapOfSet; - imported DataMapOfShapeSet; - -- - -- primitives - -- - imported ListOfShapeSet from BOPTools; - imported ListOfEdgeSet from BOPTools; - imported ConnexityBlock from BOPTools; - imported ListOfConnexityBlock from BOPTools; - imported CoupleOfShape from BOPTools; - imported ListOfCoupleOfShape from BOPTools; - -- - -- static methods - -- - MapShapes(S : Shape from TopoDS; - M : in out MapOfShape from BOPCol); - - MapShapes(S : Shape from TopoDS; - M : in out IndexedMapOfShape from BOPCol); - - MapShapes(S : Shape from TopoDS; - T : ShapeEnum from TopAbs; - M : in out IndexedMapOfShape from BOPCol); - - - MapShapesAndAncestors - (S : Shape from TopoDS; - TS : ShapeEnum from TopAbs; - TA : ShapeEnum from TopAbs; - M : in out IndexedDataMapOfShapeListOfShape from BOPCol); - -end BOPTools; diff --git a/src/BOPTools/BOPTools.cxx b/src/BOPTools/BOPTools.cxx index 333cea194d..8c1ca98818 100644 --- a/src/BOPTools/BOPTools.cxx +++ b/src/BOPTools/BOPTools.cxx @@ -12,9 +12,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include + #include +#include +#include +#include //======================================================================= //function : MapShapes diff --git a/src/BOPTools/BOPTools.hxx b/src/BOPTools/BOPTools.hxx new file mode 100644 index 0000000000..91631ed925 --- /dev/null +++ b/src/BOPTools/BOPTools.hxx @@ -0,0 +1,82 @@ +// Created by: Peter KURNEV +// Copyright (c) 2000-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_HeaderFile +#define _BOPTools_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class TopoDS_Shape; +class BOPTools_ShapeSet; +class BOPTools_EdgeSet; +class BOPTools_AlgoTools; +class BOPTools_Set; +class BOPTools_SetMapHasher; +class BOPTools_AlgoTools2D; +class BOPTools_AlgoTools3D; + + + +class BOPTools +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT static void MapShapes (const TopoDS_Shape& S, BOPCol_MapOfShape& M); + + Standard_EXPORT static void MapShapes (const TopoDS_Shape& S, BOPCol_IndexedMapOfShape& M); + + Standard_EXPORT static void MapShapes (const TopoDS_Shape& S, const TopAbs_ShapeEnum T, BOPCol_IndexedMapOfShape& M); + + Standard_EXPORT static void MapShapesAndAncestors (const TopoDS_Shape& S, const TopAbs_ShapeEnum TS, const TopAbs_ShapeEnum TA, BOPCol_IndexedDataMapOfShapeListOfShape& M); + + + + +protected: + + + + + +private: + + + + +friend class BOPTools_ShapeSet; +friend class BOPTools_EdgeSet; +friend class BOPTools_AlgoTools; +friend class BOPTools_Set; +friend class BOPTools_SetMapHasher; +friend class BOPTools_AlgoTools2D; +friend class BOPTools_AlgoTools3D; + +}; + + + + + + + +#endif // _BOPTools_HeaderFile diff --git a/src/BOPTools/BOPTools_AlgoTools.cdl b/src/BOPTools/BOPTools_AlgoTools.cdl deleted file mode 100644 index 77eebf826f..0000000000 --- a/src/BOPTools/BOPTools_AlgoTools.cdl +++ /dev/null @@ -1,472 +0,0 @@ --- Created by: Peter KURNEV --- Copyright (c) 2010-2014 OPEN CASCADE SAS --- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE --- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, --- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS --- --- 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. - -class AlgoTools from BOPTools - ---Purpose: - -uses - Pnt from gp, - Pnt2d from gp, - Dir from gp, - Plane from Geom, - State from TopAbs, - ShapeEnum from TopAbs, - Curve from IntTools, - Shape from TopoDS, - Vertex from TopoDS, - Edge from TopoDS, - Face from TopoDS, - Wire from TopoDS, - Shell from TopoDS, - Solid from TopoDS, - Curve from Geom, - Curve from Geom2d, - Surface from Geom, - -- - BaseAllocator from BOPCol, - ListOfShape from BOPCol, - IndexedMapOfShape from BOPCol, - IndexedDataMapOfShapeListOfShape from BOPCol, - Context from IntTools, - ListOfCoupleOfShape from BOPTools, - Range from IntTools - ---raises - -is - ComputeVV(myclass; - aV1:Vertex from TopoDS; - aP2:Pnt from gp; - aTolP2:Real from Standard) - returns Integer from Standard; - - ComputeVV(myclass; - aV1:Vertex from TopoDS; - aV2:Vertex from TopoDS) - returns Integer from Standard; - - MakeVertex (myclass; - aLV: out ListOfShape from BOPCol; - aV : out Vertex from TopoDS); - - MakeEdge(myclass; - theCurve:Curve from IntTools; - theV1: Vertex from TopoDS; - theT1: Real from Standard; - theV2: Vertex from TopoDS; - theT2: Real from Standard; - theTolR3D: Real from Standard; - theE :out Edge from TopoDS); - - MakePCurve(myclass; - theE : Edge from TopoDS; - theF1: Face from TopoDS; - theF2: Face from TopoDS; - theCurve:Curve from IntTools; - thePC1:Boolean from Standard; - thePC2:Boolean from Standard); - - MakeContainer(myclass; - theType:ShapeEnum from TopAbs; - theShape:out Shape from TopoDS); - - - IsHole(myclass; - aW: Shape from TopoDS; - aF: Shape from TopoDS) - returns Boolean from Standard; - - IsSplitToReverse(myclass; - theSplit : Shape from TopoDS; - theShape : Shape from TopoDS; - theContext:out Context from IntTools) - ---Purpose: Returns True if the shape theSplit has opposite - -- direction than theShape - -- theContext - cashed geometrical tools - returns Boolean from Standard; - - IsSplitToReverse(myclass; - theSplit : Face from TopoDS; - theShape : Face from TopoDS; - theContext:out Context from IntTools) - ---Purpose: Returns True if normal direction of the face - -- theShape is not the same as for the face - -- theSplit - -- theContext - cashed geometrical tools - returns Boolean from Standard; - - IsSplitToReverse (myclass; - aE1: Edge from TopoDS; - aE2: Edge from TopoDS; - aContext:out Context from IntTools) - returns Boolean from Standard; - - - AreFacesSameDomain(myclass; - theF1: Face from TopoDS; - theF2: Face from TopoDS; - theContext:out Context from IntTools) - returns Boolean from Standard; - - CheckSameGeom (myclass; - theF1: Face from TopoDS; - theF2: Face from TopoDS; - theContext:out Context from IntTools) - returns Boolean from Standard; - - Sense (myclass; - theF1: Face from TopoDS; - theF2: Face from TopoDS) - returns Integer from Standard; - - GetEdgeOff (myclass; - theEdge :Edge from TopoDS; - theFace :Face from TopoDS; - theEdgeOff :out Edge from TopoDS) - ---Purpose: Returns True if the face theFace contains - -- the edge theEdge but with opposite orientation. - -- If the method returns True theEdgeOff is the - -- edge founded - returns Boolean from Standard; - - GetFaceOff(myclass; - theEdge :Edge from TopoDS; - theFace :Face from TopoDS; - theLCEF :out ListOfCoupleOfShape from BOPTools; - theFaceOff :out Face from TopoDS; - theContext :out Context from IntTools) - returns Boolean from Standard; - - ---Purpose: For the face theFace and its edge theEdge - -- finds the face suitable to produce shell. - -- theLCEF - set of faces to search. All faces - -- from theLCEF must share edge theEdge - - IsInternalFace(myclass; - theFace :Face from TopoDS; - theEdge :Edge from TopoDS; - theFace1 :Face from TopoDS; - theFace2 :Face from TopoDS; - theContext:out Context from IntTools) - ---Purpose: Returns True if the face theFace is inside of the - -- couple of faces theFace1, theFace2. - -- The faces theFace, theFace1, theFace2 must - -- share the edge theEdge - returns Integer from Standard; - - IsInternalFace(myclass; - theFace :Face from TopoDS; - theEdge :Edge from TopoDS; - theLF :out ListOfShape from BOPCol; - theContext:out Context from IntTools) - ---Purpose: Returns True if the face theFace is inside of the - -- appropriate couple of faces (from the set theLF) . - -- The faces of the set theLF and theFace must - -- share the edge theEdge - returns Integer from Standard; - - IsInternalFace(myclass; - theFace :Face from TopoDS; - theSolid :Solid from TopoDS; - theMEF :out IndexedDataMapOfShapeListOfShape from BOPCol; - theTol :Real from Standard; - theContext:out Context from IntTools) - ---Purpose: Returns True if the face theFace is inside the - -- solid theSolid. - -- theMEF - Map Edge/Faces for theSolid - -- theTol - value of precision of computation - -- theContext- cahed geometrical tools - returns Integer from Standard; - - - GetEdgeOnFace (myclass; - theEdge :Edge from TopoDS; - theFace :Face from TopoDS; - theEdgeOnF :out Edge from TopoDS) - ---Purpose: For the face theFace gets the edge theEdgeOnF - -- that is the same as theEdge - -- Returns True if such edge exists - -- Returns False if there is no such edge - returns Boolean from Standard; - - ComputeState(myclass; - thePoint :Pnt from gp; - theSolid :Solid from TopoDS; - theTol :Real from Standard; - theContext:out Context from IntTools) - ---Purpose: Computes the 3-D state of the point thePoint - -- toward solid theSolid. - -- theTol - value of precision of computation - -- theContext- cahed geometrical tools - -- Returns 3-D state. - returns State from TopAbs; - - ComputeState(myclass; - theVertex:Vertex from TopoDS; - theSolid :Solid from TopoDS; - theTol :Real from Standard; - theContext:out Context from IntTools) - ---Purpose: Computes the 3-D state of the vertex theVertex - -- toward solid theSolid. - -- theTol - value of precision of computation - -- theContext- cahed geometrical tools - -- Returns 3-D state. - returns State from TopAbs; - - ComputeState(myclass; - theEdge :Edge from TopoDS; - theSolid :Solid from TopoDS; - theTol :Real from Standard; - theContext:out Context from IntTools) - ---Purpose: Computes the 3-D state of the edge theEdge - -- toward solid theSolid. - -- theTol - value of precision of computation - -- theContext- cahed geometrical tools - -- Returns 3-D state. - returns State from TopAbs; - - ComputeState(myclass; - theFace :Face from TopoDS; - theSolid :Solid from TopoDS; - theTol :Real from Standard; - theBounds:out IndexedMapOfShape from BOPCol; - theContext:out Context from IntTools) - ---Purpose: Computes the 3-D state of the face theFace - -- toward solid theSolid. - -- theTol - value of precision of computation - -- theBounds - set of edges of theFace to avoid - -- theContext- cahed geometrical tools - -- Returns 3-D state. - returns State from TopAbs; - - ComputeStateByOnePoint(myclass; - theShape :Shape from TopoDS; - theSolid :Solid from TopoDS; - theTol :Real from Standard; - theContext:out Context from IntTools) - ---Purpose: Computes the 3-D state of the shape theShape - -- toward solid theSolid. - -- theTol - value of precision of computation - -- theContext- cahed geometrical tools - -- Returns 3-D state. - returns State from TopAbs; - - MakeConnexityBlock(myclass; - theLS :out ListOfShape from BOPCol; - theMapAvoid:out IndexedMapOfShape from BOPCol; - theLSCB :out ListOfShape from BOPCol; - theAllocator:BaseAllocator from BOPCol); - ---Purpose: For the list of faces theLS build block - -- theLSCB in terms of connexity by edges - -- theMapAvoid - set of edges to avoid for - -- the treatment - - MakeConnexityBlocks(myclass; - theS :Shape from TopoDS; - theType1 :ShapeEnum from TopAbs; - theType2 :ShapeEnum from TopAbs; - theLCB :out ListOfShape from BOPCol); - ---Purpose: For the compound theS build the blocks - -- theLCB (as list of compounds) - -- in terms of connexity by the shapes of theType - - OrientFacesOnShell (myclass; - theS :out Shape from TopoDS); - - CorrectTolerances (myclass; - theS: Shape from TopoDS; - theTolMax: Real from Standard =0.0001; - theRunParallel: Boolean from Standard=Standard_False); - - ---Purpose: - -- Provides valid values of tolerances for the shape - -- is max value of the tolerance that can be - -- accepted for correction. If real value of the tolerance - -- will be greater than , the correction does not - -- perform. - - CorrectCurveOnSurface (myclass; - theS: Shape from TopoDS; - theTolMax: Real from Standard =0.0001; - theRunParallel: Boolean from Standard=Standard_False); - ---Purpose: - -- Provides valid values of tolerances for the shape - -- in terms of BRepCheck_InvalidCurveOnSurface. - - CorrectPointOnCurve (myclass; - theS: Shape from TopoDS; - theTolMax: Real from Standard =0.0001; - theRunParallel: Boolean from Standard=Standard_False); - ---Purpose: - -- Provides valid values of tolerances for the shape - -- in terms of BRepCheck_InvalidPointOnCurve. - - MakeNewVertex (myclass; - aP1 : Pnt from gp; - aTol: Real from Standard; - aNewVertex:out Vertex from TopoDS); - ---Purpose: - -- Make a vertex using 3D-point and 3D-tolerance value - - MakeNewVertex (myclass; - aV1,aV2: Vertex from TopoDS; - aNewVertex:out Vertex from TopoDS); - ---Purpose: - -- Make a vertex using couple of vertices - - MakeNewVertex (myclass; - aE1: Edge from TopoDS; - aP1: Real from Standard; - aE2: Edge from TopoDS; - aP2: Real from Standard; - aNewVertex:out Vertex from TopoDS); - ---Purpose: - -- Make a vertex in place of intersection between two edges - -- with parameters - - MakeNewVertex (myclass; - aE1: Edge from TopoDS; - aP1: Real from Standard; - aF2: Face from TopoDS; - aNewVertex:out Vertex from TopoDS); - ---Purpose: - -- Make a vertex in place of intersection between the edge - -- with parameter and the face - - PointOnEdge (myclass; - aEdge: Edge from TopoDS; - aPrm: Real from Standard; - aP:out Pnt from gp); - ---Purpose: - -- Compute a 3D-point on the edge at parameter - - MakeSplitEdge (myclass; - aE1: Edge from TopoDS; - aV1: Vertex from TopoDS; - aP1: Real from Standard; - aV2: Vertex from TopoDS; - aP2: Real from Standard; - aNewEdge:out Edge from TopoDS); - ---Purpose: - -- Make the edge from base edge and two vertices - -- at parameters - - MakeSectEdge (myclass; - aIC: Curve from IntTools; - aV1: Vertex from TopoDS; - aP1: Real from Standard; - aV2: Vertex from TopoDS; - aP2: Real from Standard; - aNewEdge:out Edge from TopoDS); - ---Purpose: - -- Make the edge from 3D-Curve and two vertices - -- at parameters - - UpdateVertex (myclass; - aIC: Curve from IntTools; - aT : Real from Standard; - aV : Vertex from TopoDS); - ---Purpose: - -- Update the tolerance value for vertex - -- taking into account the fact that lays on - -- the curve - - UpdateVertex (myclass; - aE : Edge from TopoDS; - aT : Real from Standard; - aV : Vertex from TopoDS); - ---Purpose: - -- Update the tolerance value for vertex - -- taking into account the fact that lays on - -- the edge - - UpdateVertex (myclass; - aVF : Vertex from TopoDS; - aVN : Vertex from TopoDS); - ---Purpose: - -- Update the tolerance value for vertex - -- taking into account the fact that should - -- cover tolerance zone of - - CorrectRange (myclass; - aE1: Edge from TopoDS; - aE2: Edge from TopoDS; - aSR: Range from IntTools; - aNewSR:out Range from IntTools); - ---Purpose: - -- Correct shrunk range taking into account 3D-curve - -- resolution and corresp. tolerances' values of , - - CorrectRange (myclass; - aE: Edge from TopoDS; - aF: Face from TopoDS; - aSR: Range from IntTools; - aNewSR:out Range from IntTools); - ---Purpose: - -- Correct shrunk range taking into account 3D-curve - -- resolution and corresp. tolerances' values of , - - IsBlockInOnFace(myclass; - aShR : Range from IntTools; - aF : Face from TopoDS; - aE : Edge from TopoDS; - aContext:out Context from IntTools) - returns Boolean from Standard; - ---Purpose: - -- Returns TRUE if PaveBlock lays on the face , i.e - -- the is IN or ON in 2D of - - IsMicroEdge(myclass; - theEdge : Edge from TopoDS; - theContext : Context from IntTools) - returns Boolean from Standard; - ---Purpose: - -- Checks if it is possible to compute shrunk range for the edge . - -- - - CorrectShapeTolerances (myclass; - theS: Shape from TopoDS; - theRunParallel: Boolean from Standard=Standard_False); - ---Purpose: - -- Corrects tolerance values of the sub-shapes of the shape if needed. - - Dimension(myclass; - theS:Shape from TopoDS) - returns Integer from Standard; - ---Purpose: - -- Retutns dimension of the shape . - - IsOpenShell(myclass; - theShell:Shell from TopoDS) - returns Boolean from Standard; - ---Purpose: Returns true if the shell is open - - IsInvertedSolid(myclass; - theSolid:Solid from TopoDS) - returns Boolean from Standard; - ---Purpose: Returns true if the solid is inverted - - ComputeTolerance(myclass; - theFace : Face from TopoDS; - theEdge : Edge from TopoDS; - theMaxDist : out Real from Standard; - theMaxPar : out Real from Standard) - returns Boolean from Standard; - ---Purpose: - -- Computes the necessary value of the tolerance for the edge - -end AlgoTools; diff --git a/src/BOPTools/BOPTools_AlgoTools.cxx b/src/BOPTools/BOPTools_AlgoTools.cxx index 85d1e8a5a1..e5add863a2 100644 --- a/src/BOPTools/BOPTools_AlgoTools.cxx +++ b/src/BOPTools/BOPTools_AlgoTools.cxx @@ -15,59 +15,66 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -// -#include -// -#include -#include -#include -#include -#include -#include -#include -#include -// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include +#include +#include #include +#include #include -#include #include -#include -// +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -// +#include +#include #include #include -#include +#include +#include +#include #include +#include +#include #include + +// +// +// +// +// // -#include -#include -#include -#include -#include -#include -#include -#include // -#include // -#include -#include -#include -#include -#include // -#include -#include // -#include -#include // - static Standard_Real AngleWithRef(const gp_Dir& theD1, const gp_Dir& theD2, diff --git a/src/BOPTools/BOPTools_AlgoTools.hxx b/src/BOPTools/BOPTools_AlgoTools.hxx new file mode 100644 index 0000000000..a071f83572 --- /dev/null +++ b/src/BOPTools/BOPTools_AlgoTools.hxx @@ -0,0 +1,302 @@ +// Created by: Peter KURNEV +// Copyright (c) 2010-2014 OPEN CASCADE SAS +// Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, +// EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +// +// 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_AlgoTools_HeaderFile +#define _BOPTools_AlgoTools_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Vertex; +class gp_Pnt; +class IntTools_Curve; +class TopoDS_Edge; +class TopoDS_Face; +class TopoDS_Shape; +class IntTools_Context; +class TopoDS_Solid; +class IntTools_Range; +class TopoDS_Shell; + + + +class BOPTools_AlgoTools +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT static Standard_Integer ComputeVV (const TopoDS_Vertex& aV1, const gp_Pnt& aP2, const Standard_Real aTolP2); + + Standard_EXPORT static Standard_Integer ComputeVV (const TopoDS_Vertex& aV1, const TopoDS_Vertex& aV2); + + Standard_EXPORT static void MakeVertex (BOPCol_ListOfShape& aLV, TopoDS_Vertex& aV); + + Standard_EXPORT static void MakeEdge (const IntTools_Curve& theCurve, const TopoDS_Vertex& theV1, const Standard_Real theT1, const TopoDS_Vertex& theV2, const Standard_Real theT2, const Standard_Real theTolR3D, TopoDS_Edge& theE); + + Standard_EXPORT static void MakePCurve (const TopoDS_Edge& theE, const TopoDS_Face& theF1, const TopoDS_Face& theF2, const IntTools_Curve& theCurve, const Standard_Boolean thePC1, const Standard_Boolean thePC2); + + Standard_EXPORT static void MakeContainer (const TopAbs_ShapeEnum theType, TopoDS_Shape& theShape); + + Standard_EXPORT static Standard_Boolean IsHole (const TopoDS_Shape& aW, const TopoDS_Shape& aF); + + //! Returns True if the shape theSplit has opposite + //! direction than theShape + //! theContext - cashed geometrical tools + Standard_EXPORT static Standard_Boolean IsSplitToReverse (const TopoDS_Shape& theSplit, const TopoDS_Shape& theShape, Handle(IntTools_Context)& theContext); + + //! Returns True if normal direction of the face + //! theShape is not the same as for the face + //! theSplit + //! theContext - cashed geometrical tools + Standard_EXPORT static Standard_Boolean IsSplitToReverse (const TopoDS_Face& theSplit, const TopoDS_Face& theShape, Handle(IntTools_Context)& theContext); + + Standard_EXPORT static Standard_Boolean IsSplitToReverse (const TopoDS_Edge& aE1, const TopoDS_Edge& aE2, Handle(IntTools_Context)& aContext); + + Standard_EXPORT static Standard_Boolean AreFacesSameDomain (const TopoDS_Face& theF1, const TopoDS_Face& theF2, Handle(IntTools_Context)& theContext); + + Standard_EXPORT static Standard_Boolean CheckSameGeom (const TopoDS_Face& theF1, const TopoDS_Face& theF2, Handle(IntTools_Context)& theContext); + + Standard_EXPORT static Standard_Integer Sense (const TopoDS_Face& theF1, const TopoDS_Face& theF2); + + //! Returns True if the face theFace contains + //! the edge theEdge but with opposite orientation. + //! If the method returns True theEdgeOff is the + //! edge founded + Standard_EXPORT static Standard_Boolean GetEdgeOff (const TopoDS_Edge& theEdge, const TopoDS_Face& theFace, TopoDS_Edge& theEdgeOff); + + //! For the face theFace and its edge theEdge + //! finds the face suitable to produce shell. + //! theLCEF - set of faces to search. All faces + //! from theLCEF must share edge theEdge + Standard_EXPORT static Standard_Boolean GetFaceOff (const TopoDS_Edge& theEdge, const TopoDS_Face& theFace, BOPTools_ListOfCoupleOfShape& theLCEF, TopoDS_Face& theFaceOff, Handle(IntTools_Context)& theContext); + + //! Returns True if the face theFace is inside of the + //! couple of faces theFace1, theFace2. + //! The faces theFace, theFace1, theFace2 must + //! share the edge theEdge + Standard_EXPORT static Standard_Integer IsInternalFace (const TopoDS_Face& theFace, const TopoDS_Edge& theEdge, const TopoDS_Face& theFace1, const TopoDS_Face& theFace2, Handle(IntTools_Context)& theContext); + + //! Returns True if the face theFace is inside of the + //! appropriate couple of faces (from the set theLF) . + //! The faces of the set theLF and theFace must + //! share the edge theEdge + Standard_EXPORT static Standard_Integer IsInternalFace (const TopoDS_Face& theFace, const TopoDS_Edge& theEdge, BOPCol_ListOfShape& theLF, Handle(IntTools_Context)& theContext); + + //! Returns True if the face theFace is inside the + //! solid theSolid. + //! theMEF - Map Edge/Faces for theSolid + //! theTol - value of precision of computation + //! theContext- cahed geometrical tools + Standard_EXPORT static Standard_Integer IsInternalFace (const TopoDS_Face& theFace, const TopoDS_Solid& theSolid, BOPCol_IndexedDataMapOfShapeListOfShape& theMEF, const Standard_Real theTol, Handle(IntTools_Context)& theContext); + + //! For the face theFace gets the edge theEdgeOnF + //! that is the same as theEdge + //! Returns True if such edge exists + //! Returns False if there is no such edge + Standard_EXPORT static Standard_Boolean GetEdgeOnFace (const TopoDS_Edge& theEdge, const TopoDS_Face& theFace, TopoDS_Edge& theEdgeOnF); + + //! Computes the 3-D state of the point thePoint + //! toward solid theSolid. + //! theTol - value of precision of computation + //! theContext- cahed geometrical tools + //! Returns 3-D state. + Standard_EXPORT static TopAbs_State ComputeState (const gp_Pnt& thePoint, const TopoDS_Solid& theSolid, const Standard_Real theTol, Handle(IntTools_Context)& theContext); + + //! Computes the 3-D state of the vertex theVertex + //! toward solid theSolid. + //! theTol - value of precision of computation + //! theContext- cahed geometrical tools + //! Returns 3-D state. + Standard_EXPORT static TopAbs_State ComputeState (const TopoDS_Vertex& theVertex, const TopoDS_Solid& theSolid, const Standard_Real theTol, Handle(IntTools_Context)& theContext); + + //! Computes the 3-D state of the edge theEdge + //! toward solid theSolid. + //! theTol - value of precision of computation + //! theContext- cahed geometrical tools + //! Returns 3-D state. + Standard_EXPORT static TopAbs_State ComputeState (const TopoDS_Edge& theEdge, const TopoDS_Solid& theSolid, const Standard_Real theTol, Handle(IntTools_Context)& theContext); + + //! Computes the 3-D state of the face theFace + //! toward solid theSolid. + //! theTol - value of precision of computation + //! theBounds - set of edges of theFace to avoid + //! theContext- cahed geometrical tools + //! Returns 3-D state. + Standard_EXPORT static TopAbs_State ComputeState (const TopoDS_Face& theFace, const TopoDS_Solid& theSolid, const Standard_Real theTol, BOPCol_IndexedMapOfShape& theBounds, Handle(IntTools_Context)& theContext); + + //! Computes the 3-D state of the shape theShape + //! toward solid theSolid. + //! theTol - value of precision of computation + //! theContext- cahed geometrical tools + //! Returns 3-D state. + Standard_EXPORT static TopAbs_State ComputeStateByOnePoint (const TopoDS_Shape& theShape, const TopoDS_Solid& theSolid, const Standard_Real theTol, Handle(IntTools_Context)& theContext); + + //! For the list of faces theLS build block + //! theLSCB in terms of connexity by edges + //! theMapAvoid - set of edges to avoid for + //! the treatment + Standard_EXPORT static void MakeConnexityBlock (BOPCol_ListOfShape& theLS, BOPCol_IndexedMapOfShape& theMapAvoid, BOPCol_ListOfShape& theLSCB, const BOPCol_BaseAllocator& theAllocator); + + //! For the compound theS build the blocks + //! theLCB (as list of compounds) + //! in terms of connexity by the shapes of theType + Standard_EXPORT static void MakeConnexityBlocks (const TopoDS_Shape& theS, const TopAbs_ShapeEnum theType1, const TopAbs_ShapeEnum theType2, BOPCol_ListOfShape& theLCB); + + Standard_EXPORT static void OrientFacesOnShell (TopoDS_Shape& theS); + + + //! Provides valid values of tolerances for the shape + //! is max value of the tolerance that can be + //! accepted for correction. If real value of the tolerance + //! will be greater than , the correction does not + //! perform. + Standard_EXPORT static void CorrectTolerances (const TopoDS_Shape& theS, const Standard_Real theTolMax = 0.0001, const Standard_Boolean theRunParallel = Standard_False); + + + //! Provides valid values of tolerances for the shape + //! in terms of BRepCheck_InvalidCurveOnSurface. + Standard_EXPORT static void CorrectCurveOnSurface (const TopoDS_Shape& theS, const Standard_Real theTolMax = 0.0001, const Standard_Boolean theRunParallel = Standard_False); + + + //! Provides valid values of tolerances for the shape + //! in terms of BRepCheck_InvalidPointOnCurve. + Standard_EXPORT static void CorrectPointOnCurve (const TopoDS_Shape& theS, const Standard_Real theTolMax = 0.0001, const Standard_Boolean theRunParallel = Standard_False); + + + //! Make a vertex using 3D-point and 3D-tolerance value + Standard_EXPORT static void MakeNewVertex (const gp_Pnt& aP1, const Standard_Real aTol, TopoDS_Vertex& aNewVertex); + + + //! Make a vertex using couple of vertices + Standard_EXPORT static void MakeNewVertex (const TopoDS_Vertex& aV1, const TopoDS_Vertex& aV2, TopoDS_Vertex& aNewVertex); + + + //! Make a vertex in place of intersection between two edges + //! with parameters + Standard_EXPORT static void MakeNewVertex (const TopoDS_Edge& aE1, const Standard_Real aP1, const TopoDS_Edge& aE2, const Standard_Real aP2, TopoDS_Vertex& aNewVertex); + + + //! Make a vertex in place of intersection between the edge + //! with parameter and the face + Standard_EXPORT static void MakeNewVertex (const TopoDS_Edge& aE1, const Standard_Real aP1, const TopoDS_Face& aF2, TopoDS_Vertex& aNewVertex); + + + //! Compute a 3D-point on the edge at parameter + Standard_EXPORT static void PointOnEdge (const TopoDS_Edge& aEdge, const Standard_Real aPrm, gp_Pnt& aP); + + + //! Make the edge from base edge and two vertices + //! at parameters + Standard_EXPORT static void MakeSplitEdge (const TopoDS_Edge& aE1, const TopoDS_Vertex& aV1, const Standard_Real aP1, const TopoDS_Vertex& aV2, const Standard_Real aP2, TopoDS_Edge& aNewEdge); + + + //! Make the edge from 3D-Curve and two vertices + //! at parameters + Standard_EXPORT static void MakeSectEdge (const IntTools_Curve& aIC, const TopoDS_Vertex& aV1, const Standard_Real aP1, const TopoDS_Vertex& aV2, const Standard_Real aP2, TopoDS_Edge& aNewEdge); + + + //! Update the tolerance value for vertex + //! taking into account the fact that lays on + //! the curve + Standard_EXPORT static void UpdateVertex (const IntTools_Curve& aIC, const Standard_Real aT, const TopoDS_Vertex& aV); + + + //! Update the tolerance value for vertex + //! taking into account the fact that lays on + //! the edge + Standard_EXPORT static void UpdateVertex (const TopoDS_Edge& aE, const Standard_Real aT, const TopoDS_Vertex& aV); + + + //! Update the tolerance value for vertex + //! taking into account the fact that should + //! cover tolerance zone of + Standard_EXPORT static void UpdateVertex (const TopoDS_Vertex& aVF, const TopoDS_Vertex& aVN); + + + //! Correct shrunk range taking into account 3D-curve + //! resolution and corresp. tolerances' values of , + Standard_EXPORT static void CorrectRange (const TopoDS_Edge& aE1, const TopoDS_Edge& aE2, const IntTools_Range& aSR, IntTools_Range& aNewSR); + + + //! Correct shrunk range taking into account 3D-curve + //! resolution and corresp. tolerances' values of , + Standard_EXPORT static void CorrectRange (const TopoDS_Edge& aE, const TopoDS_Face& aF, const IntTools_Range& aSR, IntTools_Range& aNewSR); + + + //! Returns TRUE if PaveBlock lays on the face , i.e + //! the is IN or ON in 2D of + Standard_EXPORT static Standard_Boolean IsBlockInOnFace (const IntTools_Range& aShR, const TopoDS_Face& aF, const TopoDS_Edge& aE, Handle(IntTools_Context)& aContext); + + + //! Checks if it is possible to compute shrunk range for the edge . + Standard_EXPORT static Standard_Boolean IsMicroEdge (const TopoDS_Edge& theEdge, const Handle(IntTools_Context)& theContext); + + + //! Corrects tolerance values of the sub-shapes of the shape if needed. + Standard_EXPORT static void CorrectShapeTolerances (const TopoDS_Shape& theS, const Standard_Boolean theRunParallel = Standard_False); + + + //! Retutns dimension of the shape . + Standard_EXPORT static Standard_Integer Dimension (const TopoDS_Shape& theS); + + //! Returns true if the shell is open + Standard_EXPORT static Standard_Boolean IsOpenShell (const TopoDS_Shell& theShell); + + //! Returns true if the solid is inverted + Standard_EXPORT static Standard_Boolean IsInvertedSolid (const TopoDS_Solid& theSolid); + + + //! Computes the necessary value of the tolerance for the edge + Standard_EXPORT static Standard_Boolean ComputeTolerance (const TopoDS_Face& theFace, const TopoDS_Edge& theEdge, Standard_Real& theMaxDist, Standard_Real& theMaxPar); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BOPTools_AlgoTools_HeaderFile diff --git a/src/BOPTools/BOPTools_AlgoTools2D.cdl b/src/BOPTools/BOPTools_AlgoTools2D.cdl deleted file mode 100644 index b7b3c46c33..0000000000 --- a/src/BOPTools/BOPTools_AlgoTools2D.cdl +++ /dev/null @@ -1,218 +0,0 @@ --- 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. - -class AlgoTools2D from BOPTools - - ---Purpose: - --- The class contains handy static functions - --- dealing with the topology - --- This is the copy of the BOPTools_AlgoTools2D.cdl -uses - Vec from gp, - Dir from gp, - Vertex from TopoDS, - Edge from TopoDS, - Face from TopoDS, - Surface from BRepAdaptor, - Curve from Geom2d, - Curve from Geom, - ProjectedCurve from ProjLib, - Context from IntTools, - ListOfShape from BOPCol - -is - - BuildPCurveForEdgeOnFace (myclass; - aE: Edge from TopoDS; - aF: Face from TopoDS); - ---Purpose: - --- Compute P-Curve for the edge on the face - --- Raises exception Standard_ConstructionError if projection algorithm fails - - EdgeTangent (myclass; - anE : Edge from TopoDS; - aT : Real from Standard; - Tau : out Vec from gp) - returns Boolean from Standard; - ---Purpose: - --- Compute tangent for the edge [in 3D] at parameter - --- - - PointOnSurface (myclass; - aE: Edge from TopoDS; - aF: Face from TopoDS; - aT: Real from Standard; - U : out Real from Standard; - V : out Real from Standard); - ---Purpose: - --- Compute surface parameters of the face - --- for the point from the edge at parameter . - --- If has't pcurve on surface, algorithm tries to get it by - --- projection and can - --- raise exception Standard_ConstructionError if projection algorithm fails - - CurveOnSurface (myclass; - aE: Edge from TopoDS; - aF: Face from TopoDS; - aC : out Curve from Geom2d; - aToler: out Real from Standard); - ---Purpose: - --- Get P-Curve for the edge on surface . - --- If the P-Curve does not exist, build it using Make2D(). - --- [aToler] - reached tolerance - --- Raises exception Standard_ConstructionError if algorithm Make2D() fails - - CurveOnSurface (myclass; - aE: Edge from TopoDS; - aF: Face from TopoDS; - aC : out Curve from Geom2d; - aFirst: out Real from Standard; - aLast : out Real from Standard; - aToler: out Real from Standard); - - ---Purpose: - --- Get P-Curve for the edge on surface . - --- If the P-Curve does not exist, build it using Make2D(). - --- [aFirst, aLast] - range of the P-Curve - --- [aToler] - reached tolerance - --- Raises exception Standard_ConstructionError if algorithm Make2D() fails - - HasCurveOnSurface (myclass; - aE: Edge from TopoDS; - aF: Face from TopoDS; - aC : out Curve from Geom2d; - aFirst: out Real from Standard; - aLast : out Real from Standard; - aToler: out Real from Standard) - returns Boolean from Standard; - ---Purpose: - --- Returns TRUE if the edge has P-Curve - --- on surface . - --- [aFirst, aLast] - range of the P-Curve - --- [aToler] - reached tolerance - --- If the P-Curve does not exist, aC.IsNull()=TRUE. - --- - HasCurveOnSurface (myclass; - aE: Edge from TopoDS; - aF: Face from TopoDS) - returns Boolean from Standard; - ---Purpose: - --- Returns TRUE if the edge has P-Curve - --- on surface . - --- If the P-Curve does not exist, aC.IsNull()=TRUE. - --- - - AdjustPCurveOnFace (myclass; - aF : Face from TopoDS; - C3D : Curve from Geom; - aC2D : Curve from Geom2d; - aC2DA : out Curve from Geom2d); - ---Purpose: - --- Adjust P-Curve (3D-curve ) on surface . - --- - AdjustPCurveOnFace (myclass; - aF : Face from TopoDS; - aT1 : Real from Standard; - aT2 : Real from Standard; - aC2D : Curve from Geom2d; - aC2DA : out Curve from Geom2d); - ---Purpose: - --- Adjust P-Curve (3D-curve ) on surface . - --- [aT1, aT2] - range to adjust - --- - AdjustPCurveOnFace (myclass; - aF : Surface from BRepAdaptor; - aT1 : Real from Standard; - aT2 : Real from Standard; - aC2D : Curve from Geom2d; - aC2DA : out Curve from Geom2d); - ---Purpose: - --- Adjust P-Curve (3D-curve ) on surface . - --- [aT1, aT2] - range to adjust - --- - IntermediatePoint (myclass; - aFirst: Real from Standard; - aLast : Real from Standard) - returns Real from Standard; - ---Purpose: - --- Compute intermediate value in between [aFirst, aLast] . - --- - IntermediatePoint (myclass; - anE : Edge from TopoDS) - returns Real from Standard; - ---Purpose: - --- Compute intermediate value of parameter for the edge . - --- - BuildPCurveForEdgeOnPlane(myclass; - theE : Edge from TopoDS; - theF : Face from TopoDS); - - BuildPCurveForEdgesOnPlane(myclass; - theLE : ListOfShape from BOPCol; - theF : Face from TopoDS); - - Make2D (myclass; - aE: Edge from TopoDS; - aF: Face from TopoDS; - aC : out Curve from Geom2d; - aFirst: out Real from Standard; - aLast : out Real from Standard; - aToler: out Real from Standard); - ---Purpose: - --- Make P-Curve for the edge on surface . - --- [aFirst, aLast] - range of the P-Curve - --- [aToler] - reached tolerance - --- Raises exception Standard_ConstructionError if algorithm fails - - MakePCurveOnFace (myclass; - aF: Face from TopoDS; - C3D : Curve from Geom; - aC : out Curve from Geom2d; - aToler: out Real from Standard) ; - ---Purpose: - --- Make P-Curve for the 3D-curve on surface . - --- [aToler] - reached tolerance - --- Raises exception Standard_ConstructionError if projection algorithm fails - - MakePCurveOnFace (myclass; - aF: Face from TopoDS; - C3D : Curve from Geom; - aT1 : Real from Standard; - aT2 : Real from Standard; - aC : out Curve from Geom2d; - aToler: out Real from Standard) ; - ---Purpose: - --- Make P-Curve for the 3D-curve on surface . - --- [aT1, aT2] - range to build - --- [aToler] - reached tolerance - --- Raises exception Standard_ConstructionError if projection algorithm fails - - MakePCurveOfType (myclass; - PC : ProjectedCurve from ProjLib; - aC : out Curve from Geom2d); - ---Purpose: - --- Make empty P-Curve of relevant to type - --- - AttachExistingPCurve (myclass; - aEold : Edge from TopoDS; - aEnew : Edge from TopoDS; - aF : Face from TopoDS; - aCtx : Context from IntTools) - returns Integer from Standard; - ---Purpose: - --- Attach P-Curve from the edge on surface - --- to the edge - --- Returns 0 in case of success - -end AlgoTools2D; diff --git a/src/BOPTools/BOPTools_AlgoTools2D.cxx b/src/BOPTools/BOPTools_AlgoTools2D.cxx index b951a201a3..4e54d58c92 100644 --- a/src/BOPTools/BOPTools_AlgoTools2D.cxx +++ b/src/BOPTools/BOPTools_AlgoTools2D.cxx @@ -12,70 +12,58 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include -#include #include +#include +#include #include -#include - #include - #include -#include -#include #include - -#include +#include +#include +#include #include #include #include -#include -#include - +#include +#include #include - -#include -#include - -#include - -#include -#include -#include -#include -#include -#include - -#include - -#include -#include -#include - -#include - -#include - -#include -#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include +#include +#include +#include static Standard_Boolean CheckEdgeLength (const TopoDS_Edge& ); diff --git a/src/BOPTools/BOPTools_AlgoTools2D.hxx b/src/BOPTools/BOPTools_AlgoTools2D.hxx new file mode 100644 index 0000000000..b3e25993e5 --- /dev/null +++ b/src/BOPTools/BOPTools_AlgoTools2D.hxx @@ -0,0 +1,172 @@ +// 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_AlgoTools2D_HeaderFile +#define _BOPTools_AlgoTools2D_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class TopoDS_Edge; +class TopoDS_Face; +class gp_Vec; +class Geom2d_Curve; +class Geom_Curve; +class BRepAdaptor_Surface; +class ProjLib_ProjectedCurve; +class IntTools_Context; + + + +//! The class contains handy static functions +//! dealing with the topology +//! This is the copy of the BOPTools_AlgoTools2D.cdl +class BOPTools_AlgoTools2D +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Compute P-Curve for the edge on the face + //! Raises exception Standard_ConstructionError if projection algorithm fails + Standard_EXPORT static void BuildPCurveForEdgeOnFace (const TopoDS_Edge& aE, const TopoDS_Face& aF); + + + //! Compute tangent for the edge [in 3D] at parameter + Standard_EXPORT static Standard_Boolean EdgeTangent (const TopoDS_Edge& anE, const Standard_Real aT, gp_Vec& Tau); + + + //! Compute surface parameters of the face + //! for the point from the edge at parameter . + //! If has't pcurve on surface, algorithm tries to get it by + //! projection and can + //! raise exception Standard_ConstructionError if projection algorithm fails + Standard_EXPORT static void PointOnSurface (const TopoDS_Edge& aE, const TopoDS_Face& aF, const Standard_Real aT, Standard_Real& U, Standard_Real& V); + + + //! Get P-Curve for the edge on surface . + //! If the P-Curve does not exist, build it using Make2D(). + //! [aToler] - reached tolerance + //! Raises exception Standard_ConstructionError if algorithm Make2D() fails + Standard_EXPORT static void CurveOnSurface (const TopoDS_Edge& aE, const TopoDS_Face& aF, Handle(Geom2d_Curve)& aC, Standard_Real& aToler); + + + //! Get P-Curve for the edge on surface . + //! If the P-Curve does not exist, build it using Make2D(). + //! [aFirst, aLast] - range of the P-Curve + //! [aToler] - reached tolerance + //! Raises exception Standard_ConstructionError if algorithm Make2D() fails + Standard_EXPORT static void CurveOnSurface (const TopoDS_Edge& aE, const TopoDS_Face& aF, Handle(Geom2d_Curve)& aC, Standard_Real& aFirst, Standard_Real& aLast, Standard_Real& aToler); + + + //! Returns TRUE if the edge has P-Curve + //! on surface . + //! [aFirst, aLast] - range of the P-Curve + //! [aToler] - reached tolerance + //! If the P-Curve does not exist, aC.IsNull()=TRUE. + Standard_EXPORT static Standard_Boolean HasCurveOnSurface (const TopoDS_Edge& aE, const TopoDS_Face& aF, Handle(Geom2d_Curve)& aC, Standard_Real& aFirst, Standard_Real& aLast, Standard_Real& aToler); + + + //! Returns TRUE if the edge has P-Curve + //! on surface . + //! If the P-Curve does not exist, aC.IsNull()=TRUE. + Standard_EXPORT static Standard_Boolean HasCurveOnSurface (const TopoDS_Edge& aE, const TopoDS_Face& aF); + + + //! Adjust P-Curve (3D-curve ) on surface . + Standard_EXPORT static void AdjustPCurveOnFace (const TopoDS_Face& aF, const Handle(Geom_Curve)& C3D, const Handle(Geom2d_Curve)& aC2D, Handle(Geom2d_Curve)& aC2DA); + + + //! Adjust P-Curve (3D-curve ) on surface . + //! [aT1, aT2] - range to adjust + Standard_EXPORT static void AdjustPCurveOnFace (const TopoDS_Face& aF, const Standard_Real aT1, const Standard_Real aT2, const Handle(Geom2d_Curve)& aC2D, Handle(Geom2d_Curve)& aC2DA); + + + //! Adjust P-Curve (3D-curve ) on surface . + //! [aT1, aT2] - range to adjust + Standard_EXPORT static void AdjustPCurveOnFace (const BRepAdaptor_Surface& aF, const Standard_Real aT1, const Standard_Real aT2, const Handle(Geom2d_Curve)& aC2D, Handle(Geom2d_Curve)& aC2DA); + + + //! Compute intermediate value in between [aFirst, aLast] . + Standard_EXPORT static Standard_Real IntermediatePoint (const Standard_Real aFirst, const Standard_Real aLast); + + + //! Compute intermediate value of parameter for the edge . + Standard_EXPORT static Standard_Real IntermediatePoint (const TopoDS_Edge& anE); + + Standard_EXPORT static void BuildPCurveForEdgeOnPlane (const TopoDS_Edge& theE, const TopoDS_Face& theF); + + Standard_EXPORT static void BuildPCurveForEdgesOnPlane (const BOPCol_ListOfShape& theLE, const TopoDS_Face& theF); + + + //! Make P-Curve for the edge on surface . + //! [aFirst, aLast] - range of the P-Curve + //! [aToler] - reached tolerance + //! Raises exception Standard_ConstructionError if algorithm fails + Standard_EXPORT static void Make2D (const TopoDS_Edge& aE, const TopoDS_Face& aF, Handle(Geom2d_Curve)& aC, Standard_Real& aFirst, Standard_Real& aLast, Standard_Real& aToler); + + + //! Make P-Curve for the 3D-curve on surface . + //! [aToler] - reached tolerance + //! Raises exception Standard_ConstructionError if projection algorithm fails + Standard_EXPORT static void MakePCurveOnFace (const TopoDS_Face& aF, const Handle(Geom_Curve)& C3D, Handle(Geom2d_Curve)& aC, Standard_Real& aToler); + + + //! Make P-Curve for the 3D-curve on surface . + //! [aT1, aT2] - range to build + //! [aToler] - reached tolerance + //! Raises exception Standard_ConstructionError if projection algorithm fails + Standard_EXPORT static void MakePCurveOnFace (const TopoDS_Face& aF, const Handle(Geom_Curve)& C3D, const Standard_Real aT1, const Standard_Real aT2, Handle(Geom2d_Curve)& aC, Standard_Real& aToler); + + + //! Make empty P-Curve of relevant to type + Standard_EXPORT static void MakePCurveOfType (const ProjLib_ProjectedCurve& PC, Handle(Geom2d_Curve)& aC); + + + //! Attach P-Curve from the edge on surface + //! to the edge + //! Returns 0 in case of success + Standard_EXPORT static Standard_Integer AttachExistingPCurve (const TopoDS_Edge& aEold, const TopoDS_Edge& aEnew, const TopoDS_Face& aF, const Handle(IntTools_Context)& aCtx); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BOPTools_AlgoTools2D_HeaderFile diff --git a/src/BOPTools/BOPTools_AlgoTools3D.cdl b/src/BOPTools/BOPTools_AlgoTools3D.cdl deleted file mode 100644 index 186cdfcd80..0000000000 --- a/src/BOPTools/BOPTools_AlgoTools3D.cdl +++ /dev/null @@ -1,193 +0,0 @@ --- 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. - -class AlgoTools3D from BOPTools - ---Purpose: - -- The class contains handy static functions - -- dealing with the topology - -- This is the copy of BOPTools_AlgoTools3D.cdl file - -uses - Pln from gp, - Dir from gp, - Pnt from gp, - Pnt2d from gp, - - Surface from Geom, - - Shape from TopoDS, - Wire from TopoDS, - Face from TopoDS, - Edge from TopoDS, - Solid from TopoDS, - - ShapeEnum from TopAbs, - Orientation from TopAbs, - State from TopAbs, - - ListOfShape from BOPCol, - - Context from IntTools, - - IndexedDataMapOfShapeListOfShape from BOPCol - -is - - DoSplitSEAMOnFace (myclass; - aSp: Edge from TopoDS; - aF : Face from TopoDS); - ---Purpose: - -- Make the edge seam edge for the face - -- - - GetNormalToFaceOnEdge (myclass; - aE: Edge from TopoDS; - aF: Face from TopoDS; - aT: Real from Standard; - aD:out Dir from gp); - ---Purpose: - --- Computes normal to the face for the point on the edge - --- at parameter - --- - GetNormalToFaceOnEdge (myclass; - aE: Edge from TopoDS; - aF: Face from TopoDS; - aD:out Dir from gp); - ---Purpose: - --- Computes normal to the face for the point on the edge - --- at arbitrary intermediate parameter - --- - - SenseFlag (myclass; - aNF1 : Dir from gp; - aNF2 : Dir from gp) - returns Integer from Standard; - ---Purpose: - --- Returns 1 if scalar product aNF1* aNF2>0. - --- Returns 0 if directions aNF1 aNF2 coinside - --- Returns -1 if scalar product aNF1* aNF2<0. - --- - GetNormalToSurface (myclass; - aS: Surface from Geom; - U : Real from Standard; - V : Real from Standard; - aD:out Dir from gp) - returns Boolean from Standard; - ---Purpose: - --- Compute normal to surface in point (U,V) - --- Returns TRUE if directions aD1U, aD1V coinside - --- - - GetApproxNormalToFaceOnEdge (myclass; - aE: Edge from TopoDS; - aF: Face from TopoDS; - aT: Real from Standard; - aPx:out Pnt from gp; - aD:out Dir from gp; - theContext:out Context from IntTools); - ---Purpose: - --- Computes normal to the face for the 3D-point that - --- belonds to the edge at parameter . - -- Output: - --- aPx - the 3D-point where the normal computed - --- aD - the normal; - --- - -- Warning: - --- The normal is computed not exactly in the point on the - --- edge, but in point that is near to the edge towards to - --- the face material (so, we'll have approx. normal) - --- - - GetApproxNormalToFaceOnEdge(myclass; - theE : Edge from TopoDS; - theF : Face from TopoDS; - aT : Real from Standard; - aP : out Pnt from gp; - aDNF : out Dir from gp; - aDt2D: Real from Standard); - - PointNearEdge (myclass; - aE : Edge from TopoDS; - aF : Face from TopoDS; - aT : Real from Standard; - aDt2D: Real from Standard; - aP2D :out Pnt2d from gp; - aPx :out Pnt from gp); - ---Purpose: - --- Compute the point , () that is near to - --- the edge at parameter towards to the - --- material of the face . The value of shifting in - --- 2D is - --- - PointNearEdge (myclass; - aE: Edge from TopoDS; - aF: Face from TopoDS; - aT: Real from Standard; - aP2D:out Pnt2d from gp; - aPx:out Pnt from gp; - theContext:out Context from IntTools); - ---Purpose: - --- Computes the point , () that is near to - --- the edge at parameter towards to the - --- material of the face . The value of shifting in - -- 2D is dt2D=BOPTools_AlgoTools3D::MinStepIn2d() - --- - PointNearEdge (myclass; - aE: Edge from TopoDS; - aF: Face from TopoDS; - aP2D:out Pnt2d from gp; - aPx:out Pnt from gp; - theContext:out Context from IntTools); - ---Purpose: - --- Compute the point , () that is near to - --- the edge at arbitrary parameter towards to the - --- material of the face . The value of shifting in - -- 2D is dt2D=BOPTools_AlgoTools3D::MinStepIn2d() - --- - - MinStepIn2d(myclass) - returns Real from Standard; - ---Purpose: - --- Returns simple step value that is used in 2D-computations - --- = 1.e-5 - --- - IsEmptyShape(myclass; - aS: Shape from TopoDS) - returns Boolean from Standard; - ---Purpose: - --- Returns TRUE if the shape does not contain - --- geometry information (e.g. empty compound) - --- - - OrientEdgeOnFace (myclass; - aE : Edge from TopoDS; - aF : Face from TopoDS; - aER : out Edge from TopoDS); - ---Purpose: - --- Get the edge from the face that is the same as - --- the edge - --- - - PointInFace(myclass; - theF:Face from TopoDS; - theP:out Pnt from gp; - theP2D:out Pnt2d from gp; - theContext:out Context from IntTools) - returns Integer from Standard; - ---Purpose: Computes a point inside the face .
- -- - 2D representation of
- -- on the surface of
- -- Returns 0 in case of success.
- -end AlgoTools3D; diff --git a/src/BOPTools/BOPTools_AlgoTools3D.cxx b/src/BOPTools/BOPTools_AlgoTools3D.cxx index eecfd809a4..8c7a46c113 100644 --- a/src/BOPTools/BOPTools_AlgoTools3D.cxx +++ b/src/BOPTools/BOPTools_AlgoTools3D.cxx @@ -12,69 +12,58 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include #include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include #include - -#include -#include -#include +#include +#include +#include #include +#include +#include #include - +#include #include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include - +#include +#include +#include +#include +#include #include -#include #include #include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include - -#include -#include - -#include -#include - -#include -#include - -#include - static void Add(const TopoDS_Shape& aS, BOPCol_IndexedMapOfShape& myShapes, Standard_Boolean& bHasGeometry); diff --git a/src/BOPTools/BOPTools_AlgoTools3D.hxx b/src/BOPTools/BOPTools_AlgoTools3D.hxx new file mode 100644 index 0000000000..f5945fcd56 --- /dev/null +++ b/src/BOPTools/BOPTools_AlgoTools3D.hxx @@ -0,0 +1,151 @@ +// 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_AlgoTools3D_HeaderFile +#define _BOPTools_AlgoTools3D_HeaderFile + +#include +#include +#include + +#include +#include +#include +class TopoDS_Edge; +class TopoDS_Face; +class gp_Dir; +class Geom_Surface; +class gp_Pnt; +class IntTools_Context; +class gp_Pnt2d; +class TopoDS_Shape; + + + +//! The class contains handy static functions +//! dealing with the topology +//! This is the copy of BOPTools_AlgoTools3D.cdl file +class BOPTools_AlgoTools3D +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Make the edge seam edge for the face + Standard_EXPORT static void DoSplitSEAMOnFace (const TopoDS_Edge& aSp, const TopoDS_Face& aF); + + + //! Computes normal to the face for the point on the edge + //! at parameter + Standard_EXPORT static void GetNormalToFaceOnEdge (const TopoDS_Edge& aE, const TopoDS_Face& aF, const Standard_Real aT, gp_Dir& aD); + + + //! Computes normal to the face for the point on the edge + //! at arbitrary intermediate parameter + Standard_EXPORT static void GetNormalToFaceOnEdge (const TopoDS_Edge& aE, const TopoDS_Face& aF, gp_Dir& aD); + + + //! Returns 1 if scalar product aNF1* aNF2>0. + //! Returns 0 if directions aNF1 aNF2 coinside + //! Returns -1 if scalar product aNF1* aNF2<0. + Standard_EXPORT static Standard_Integer SenseFlag (const gp_Dir& aNF1, const gp_Dir& aNF2); + + + //! Compute normal to surface in point (U,V) + //! Returns TRUE if directions aD1U, aD1V coinside + Standard_EXPORT static Standard_Boolean GetNormalToSurface (const Handle(Geom_Surface)& aS, const Standard_Real U, const Standard_Real V, gp_Dir& aD); + + + //! Computes normal to the face for the 3D-point that + //! belonds to the edge at parameter . + //! Output: + //! aPx - the 3D-point where the normal computed + //! aD - the normal; + //! + //! Warning: + //! The normal is computed not exactly in the point on the + //! edge, but in point that is near to the edge towards to + //! the face material (so, we'll have approx. normal) + Standard_EXPORT static void GetApproxNormalToFaceOnEdge (const TopoDS_Edge& aE, const TopoDS_Face& aF, const Standard_Real aT, gp_Pnt& aPx, gp_Dir& aD, Handle(IntTools_Context)& theContext); + + Standard_EXPORT static void GetApproxNormalToFaceOnEdge (const TopoDS_Edge& theE, const TopoDS_Face& theF, const Standard_Real aT, gp_Pnt& aP, gp_Dir& aDNF, const Standard_Real aDt2D); + + + //! Compute the point , () that is near to + //! the edge at parameter towards to the + //! material of the face . The value of shifting in + //! 2D is + Standard_EXPORT static void PointNearEdge (const TopoDS_Edge& aE, const TopoDS_Face& aF, const Standard_Real aT, const Standard_Real aDt2D, gp_Pnt2d& aP2D, gp_Pnt& aPx); + + + //! Computes the point , () that is near to + //! the edge at parameter towards to the + //! material of the face . The value of shifting in + //! 2D is dt2D=BOPTools_AlgoTools3D::MinStepIn2d() + Standard_EXPORT static void PointNearEdge (const TopoDS_Edge& aE, const TopoDS_Face& aF, const Standard_Real aT, gp_Pnt2d& aP2D, gp_Pnt& aPx, Handle(IntTools_Context)& theContext); + + + //! Compute the point , () that is near to + //! the edge at arbitrary parameter towards to the + //! material of the face . The value of shifting in + //! 2D is dt2D=BOPTools_AlgoTools3D::MinStepIn2d() + Standard_EXPORT static void PointNearEdge (const TopoDS_Edge& aE, const TopoDS_Face& aF, gp_Pnt2d& aP2D, gp_Pnt& aPx, Handle(IntTools_Context)& theContext); + + + //! Returns simple step value that is used in 2D-computations + //! = 1.e-5 + Standard_EXPORT static Standard_Real MinStepIn2d(); + + + //! Returns TRUE if the shape does not contain + //! geometry information (e.g. empty compound) + Standard_EXPORT static Standard_Boolean IsEmptyShape (const TopoDS_Shape& aS); + + + //! Get the edge from the face that is the same as + //! the edge + Standard_EXPORT static void OrientEdgeOnFace (const TopoDS_Edge& aE, const TopoDS_Face& aF, TopoDS_Edge& aER); + + //! Computes a point inside the face .
+ //! - 2D representation of
+ //! on the surface of
+ //! Returns 0 in case of success.
+ Standard_EXPORT static Standard_Integer PointInFace (const TopoDS_Face& theF, gp_Pnt& theP, gp_Pnt2d& theP2D, Handle(IntTools_Context)& theContext); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BOPTools_AlgoTools3D_HeaderFile diff --git a/src/BOPTools/BOPTools_AlgoTools_1.cxx b/src/BOPTools/BOPTools_AlgoTools_1.cxx index 262102bde0..98544e394f 100644 --- a/src/BOPTools/BOPTools_AlgoTools_1.cxx +++ b/src/BOPTools/BOPTools_AlgoTools_1.cxx @@ -12,77 +12,84 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -// -#include -#include -// -#include + #include +#include #include -// +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include #include -#include #include -// -#include +#include +#include #include #include #include -// -#include -#include -#include -#include -#include -// +#include #include -// -#include -#include -// +#include +#include #include #include -// +#include +#include +#include +#include +#include +#include +#include #include -// #include #include -#include #include #include +#include +#include +#include +#include #include +#include +#include +#include +#include + +// +// +// +// +// +// +// +// +// +// // -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // -#include // -#include // -#include -#include -#include -#include -#include -#include // -#include // -#include -#include -#include - static void CheckEdge (const TopoDS_Edge& E, const Standard_Real aMaxTol); diff --git a/src/BOPTools/BOPTools_AlgoTools_2.cxx b/src/BOPTools/BOPTools_AlgoTools_2.cxx index 19003d5c10..cac1dc564f 100644 --- a/src/BOPTools/BOPTools_AlgoTools_2.cxx +++ b/src/BOPTools/BOPTools_AlgoTools_2.cxx @@ -12,25 +12,27 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include - #include -#include #include - -#include - -#include -#include -#include -#include -#include - -#include -#include +#include #include +#include +#include +#include +#include static void TreatCompound(const TopoDS_Shape& theC1, diff --git a/src/BOPTools/BOPTools_EdgeSet.cdl b/src/BOPTools/BOPTools_EdgeSet.cdl deleted file mode 100644 index b5876595c9..0000000000 --- a/src/BOPTools/BOPTools_EdgeSet.cdl +++ /dev/null @@ -1,76 +0,0 @@ --- 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. - -class EdgeSet from BOPTools - - -uses - Shape from TopoDS, - Edge from TopoDS, - ShapeEnum from TopAbs, - BaseAllocator from BOPCol, - MapOfShape from BOPCol, - ListOfShape from BOPCol - ---raises - -is - Create - returns EdgeSet from BOPTools; - ---C++: alias "virtual ~BOPTools_EdgeSet();" - ---C++: inline - - Create (theAllocator: BaseAllocator from BOPCol) - returns EdgeSet from BOPTools; - ---C++: inline - - SetShape(me:out; - theS:Shape from TopoDS); - ---C++: inline - - Shape(me) - returns Shape from TopoDS; - ---C++: return const & - ---C++: inline - - AddEdge(me:out; - theEdge:Edge from TopoDS); - ---C++: inline - - AddEdges(me:out; - theLS:ListOfShape from BOPCol); - - AddEdges(me:out; - theFace:Shape from TopoDS); - ---C++: inline - - Clear(me:out); - ---C++: inline - - Get(me; - theLS:out ListOfShape from BOPCol); - ---C++: inline - - Contains(me; - theSet:EdgeSet from BOPTools) - returns Boolean from Standard; - ---C++: inline - - -fields - myShape : Shape from TopoDS is protected; - myMap : MapOfShape from BOPCol is protected; - myEdges : ListOfShape from BOPCol is protected; - -end EdgeSet; diff --git a/src/BOPTools/BOPTools_EdgeSet.cxx b/src/BOPTools/BOPTools_EdgeSet.cxx index b4e1fe1434..690a36b5dc 100644 --- a/src/BOPTools/BOPTools_EdgeSet.cxx +++ b/src/BOPTools/BOPTools_EdgeSet.cxx @@ -12,4 +12,7 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include diff --git a/src/BOPTools/BOPTools_EdgeSet.hxx b/src/BOPTools/BOPTools_EdgeSet.hxx new file mode 100644 index 0000000000..13ec41e935 --- /dev/null +++ b/src/BOPTools/BOPTools_EdgeSet.hxx @@ -0,0 +1,87 @@ +// 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_EdgeSet_HeaderFile +#define _BOPTools_EdgeSet_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class TopoDS_Shape; +class TopoDS_Edge; + + + +class BOPTools_EdgeSet +{ +public: + + DEFINE_STANDARD_ALLOC + + + BOPTools_EdgeSet(); +virtual ~BOPTools_EdgeSet(); + + BOPTools_EdgeSet(const BOPCol_BaseAllocator& theAllocator); + + void SetShape (const TopoDS_Shape& theS); + + const TopoDS_Shape& Shape() const; + + void AddEdge (const TopoDS_Edge& theEdge); + + Standard_EXPORT void AddEdges (const BOPCol_ListOfShape& theLS); + + void AddEdges (const TopoDS_Shape& theFace); + + void Clear(); + + void Get (BOPCol_ListOfShape& theLS) const; + + Standard_Boolean Contains (const BOPTools_EdgeSet& theSet) const; + + + + +protected: + + + + TopoDS_Shape myShape; + BOPCol_MapOfShape myMap; + BOPCol_ListOfShape myEdges; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPTools_EdgeSet_HeaderFile diff --git a/src/BOPTools/BOPTools_Set.cdl b/src/BOPTools/BOPTools_Set.cdl deleted file mode 100644 index 9e4e5c61f8..0000000000 --- a/src/BOPTools/BOPTools_Set.cdl +++ /dev/null @@ -1,71 +0,0 @@ --- 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. - -class Set from BOPTools - - ---Purpose: - -uses - ShapeEnum from TopAbs, - Shape from TopoDS, - ListOfShape from BOPCol, - BaseAllocator from BOPCol - ---raises - -is - Create - returns Set from BOPTools; - ---C++: alias "Standard_EXPORT virtual ~BOPTools_Set();" - - Create (theAllocator: BaseAllocator from BOPCol) - returns Set from BOPTools; - - Assign(me:out; - Other : Set from BOPTools) - returns Set from BOPTools; - ---C++: alias operator = - ---C++: return & - - Clear(me:out) - is protected; - - Shape(me) - returns Shape from TopoDS; - ---C++: return const & - - Add(me:out; - theS:Shape from TopoDS; - theType: ShapeEnum from TopAbs); - - NbShapes(me) - returns Integer from Standard; - - IsEqual(me; - aOther:Set from BOPTools) - returns Boolean from Standard; - - HashCode(me; - Upper : Integer from Standard) - returns Integer from Standard; - -fields - myAllocator : BaseAllocator from BOPCol is protected; - myShapes : ListOfShape from BOPCol is protected; - myShape : Shape from TopoDS is protected; - myNbShapes : Integer from Standard is protected; - mySum : Integer from Standard is protected; - myUpper : Integer from Standard is protected; - -end Set; diff --git a/src/BOPTools/BOPTools_Set.cxx b/src/BOPTools/BOPTools_Set.cxx index f5e0a6e01b..bd5bb6c600 100644 --- a/src/BOPTools/BOPTools_Set.cxx +++ b/src/BOPTools/BOPTools_Set.cxx @@ -12,12 +12,13 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include + +#include +#include +#include #include #include -#include -#include +#include static Standard_Integer NormalizedIds(const Standard_Integer aId, diff --git a/src/BOPTools/BOPTools_Set.hxx b/src/BOPTools/BOPTools_Set.hxx new file mode 100644 index 0000000000..331e0724c1 --- /dev/null +++ b/src/BOPTools/BOPTools_Set.hxx @@ -0,0 +1,91 @@ +// 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_Set_HeaderFile +#define _BOPTools_Set_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; + + + +class BOPTools_Set +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BOPTools_Set(); +Standard_EXPORT virtual ~BOPTools_Set(); + + Standard_EXPORT BOPTools_Set(const BOPCol_BaseAllocator& theAllocator); + + Standard_EXPORT BOPTools_Set& Assign (const BOPTools_Set& Other); +BOPTools_Set& operator = (const BOPTools_Set& Other) +{ + return Assign(Other); +} + + Standard_EXPORT const TopoDS_Shape& Shape() const; + + Standard_EXPORT void Add (const TopoDS_Shape& theS, const TopAbs_ShapeEnum theType); + + Standard_EXPORT Standard_Integer NbShapes() const; + + Standard_EXPORT Standard_Boolean IsEqual (const BOPTools_Set& aOther) const; + + Standard_EXPORT Standard_Integer HashCode (const Standard_Integer Upper) const; + + + + +protected: + + + Standard_EXPORT void Clear(); + + + BOPCol_BaseAllocator myAllocator; + BOPCol_ListOfShape myShapes; + TopoDS_Shape myShape; + Standard_Integer myNbShapes; + Standard_Integer mySum; + Standard_Integer myUpper; + + +private: + + + + + +}; + + + + + + + +#endif // _BOPTools_Set_HeaderFile diff --git a/src/BOPTools/BOPTools_SetMapHasher.cdl b/src/BOPTools/BOPTools_SetMapHasher.cdl deleted file mode 100644 index eb7a8c28a3..0000000000 --- a/src/BOPTools/BOPTools_SetMapHasher.cdl +++ /dev/null @@ -1,39 +0,0 @@ --- 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. - -class SetMapHasher from BOPTools - - ---Purpose: - -uses - Set from BOPTools - ---raises - -is - HashCode(myclass; - aSet : Set from BOPTools; - Upper : Integer from Standard) - returns Integer from Standard; - ---C++: inline - - IsEqual(myclass; - aSet1 : Set from BOPTools; - aSet2 : Set from BOPTools) - returns Boolean from Standard; - ---C++: inline - ---fields - -end SetMapHasher; diff --git a/src/BOPTools/BOPTools_SetMapHasher.cxx b/src/BOPTools/BOPTools_SetMapHasher.cxx index f8801eeb07..2855836f8a 100644 --- a/src/BOPTools/BOPTools_SetMapHasher.cxx +++ b/src/BOPTools/BOPTools_SetMapHasher.cxx @@ -12,4 +12,6 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include diff --git a/src/BOPTools/BOPTools_SetMapHasher.hxx b/src/BOPTools/BOPTools_SetMapHasher.hxx new file mode 100644 index 0000000000..e9b1ba8f9c --- /dev/null +++ b/src/BOPTools/BOPTools_SetMapHasher.hxx @@ -0,0 +1,63 @@ +// 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_SetMapHasher_HeaderFile +#define _BOPTools_SetMapHasher_HeaderFile + +#include +#include +#include + +#include +#include +class BOPTools_Set; + + + +class BOPTools_SetMapHasher +{ +public: + + DEFINE_STANDARD_ALLOC + + + static Standard_Integer HashCode (const BOPTools_Set& aSet, const Standard_Integer Upper); + + static Standard_Boolean IsEqual (const BOPTools_Set& aSet1, const BOPTools_Set& aSet2); + + + + +protected: + + + + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPTools_SetMapHasher_HeaderFile diff --git a/src/BOPTools/BOPTools_ShapeSet.cdl b/src/BOPTools/BOPTools_ShapeSet.cdl deleted file mode 100644 index 463098b4a8..0000000000 --- a/src/BOPTools/BOPTools_ShapeSet.cdl +++ /dev/null @@ -1,93 +0,0 @@ --- 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. - -class ShapeSet from BOPTools - - ---Purpose: Implementation of some formal - -- opereations with a set of shapes - -uses - Shape from TopoDS, - Edge from TopoDS, - ShapeEnum from TopAbs, - BaseAllocator from BOPCol, - MapOfOrientedShape from BOPCol, - ListOfShape from BOPCol - ---raises - -is - Create - returns ShapeSet from BOPTools; - ---C++: alias "virtual ~BOPTools_ShapeSet();" - ---C++: inline - - Create (theAllocator: BaseAllocator from BOPCol) - returns ShapeSet from BOPTools; - ---C++: inline - - SetShape(me:out; - theS:Shape from TopoDS); - ---C++: inline - - Shape(me) - returns Shape from TopoDS; - ---C++: return const & - ---C++: inline - - Add(me:out; - theLS:ListOfShape from BOPCol); - - Add(me:out; - theShape:Shape from TopoDS); - ---C++: inline - - Add(me:out; - theShape:Shape from TopoDS; - theType: ShapeEnum from TopAbs); - - AddEdge(me:out; - theEdge:Edge from TopoDS); - ---C++: inline - - AddEdges(me:out; - theLS:ListOfShape from BOPCol); - - AddEdges(me:out; - theFace:Shape from TopoDS); - ---C++: inline - - Subtract(me:out; - theSet:ShapeSet from BOPTools); - ---C++: alias operator -= - ---C++: inline - - Clear(me:out); - ---C++: inline - - Get(me; - theLS:out ListOfShape from BOPCol); - ---C++: inline - - Contains(me; - theSet:ShapeSet from BOPTools) - returns Boolean from Standard; - ---C++: inline - - -fields - myShape: Shape from TopoDS is protected; - myMap : MapOfOrientedShape from BOPCol is protected; - -end ShapeSet; diff --git a/src/BOPTools/BOPTools_ShapeSet.cxx b/src/BOPTools/BOPTools_ShapeSet.cxx index 9a1613a2f1..e09187ad6b 100644 --- a/src/BOPTools/BOPTools_ShapeSet.cxx +++ b/src/BOPTools/BOPTools_ShapeSet.cxx @@ -12,4 +12,7 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include diff --git a/src/BOPTools/BOPTools_ShapeSet.hxx b/src/BOPTools/BOPTools_ShapeSet.hxx new file mode 100644 index 0000000000..a299e2d2e1 --- /dev/null +++ b/src/BOPTools/BOPTools_ShapeSet.hxx @@ -0,0 +1,100 @@ +// 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_ShapeSet_HeaderFile +#define _BOPTools_ShapeSet_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class TopoDS_Edge; + + +//! Implementation of some formal +//! opereations with a set of shapes +class BOPTools_ShapeSet +{ +public: + + DEFINE_STANDARD_ALLOC + + + BOPTools_ShapeSet(); +virtual ~BOPTools_ShapeSet(); + + BOPTools_ShapeSet(const BOPCol_BaseAllocator& theAllocator); + + void SetShape (const TopoDS_Shape& theS); + + const TopoDS_Shape& Shape() const; + + Standard_EXPORT void Add (const BOPCol_ListOfShape& theLS); + + void Add (const TopoDS_Shape& theShape); + + Standard_EXPORT void Add (const TopoDS_Shape& theShape, const TopAbs_ShapeEnum theType); + + void AddEdge (const TopoDS_Edge& theEdge); + + Standard_EXPORT void AddEdges (const BOPCol_ListOfShape& theLS); + + void AddEdges (const TopoDS_Shape& theFace); + + void Subtract (const BOPTools_ShapeSet& theSet); + void operator -= (const BOPTools_ShapeSet& theSet) +{ + Subtract(theSet); +} + + void Clear(); + + void Get (BOPCol_ListOfShape& theLS) const; + + Standard_Boolean Contains (const BOPTools_ShapeSet& theSet) const; + + + + +protected: + + + + TopoDS_Shape myShape; + BOPCol_MapOfOrientedShape myMap; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BOPTools_ShapeSet_HeaderFile diff --git a/src/BOPTools/FILES b/src/BOPTools/FILES index 2c9ebf69d9..8a2ca326f4 100755 --- a/src/BOPTools/FILES +++ b/src/BOPTools/FILES @@ -1,14 +1,30 @@ -BOPTools_AlgoTools_1.cxx -BOPTools_AlgoTools_2.cxx +BOPTools.cxx +BOPTools.hxx +BOPTools_AlgoTools.cxx +BOPTools_AlgoTools.hxx BOPTools_AlgoTools2D.cxx +BOPTools_AlgoTools2D.hxx +BOPTools_AlgoTools2D_1.cxx BOPTools_AlgoTools3D.cxx +BOPTools_AlgoTools3D.hxx +BOPTools_AlgoTools_1.cxx +BOPTools_AlgoTools_2.cxx BOPTools_ConnexityBlock.hxx -BOPTools_ListOfConnexityBlock.hxx -BOPTools_ListOfShapeSet.hxx BOPTools_CoupleOfShape.hxx +BOPTools_DataMapOfShapeSet.hxx +BOPTools_EdgeSet.cxx +BOPTools_EdgeSet.hxx +BOPTools_EdgeSet.lxx +BOPTools_ListOfConnexityBlock.hxx BOPTools_ListOfCoupleOfShape.hxx BOPTools_ListOfEdgeSet.hxx +BOPTools_ListOfShapeSet.hxx BOPTools_MapOfSet.hxx -BOPTools_DataMapOfShapeSet.hxx - -BOPTools_AlgoTools2D_1.cxx +BOPTools_Set.cxx +BOPTools_Set.hxx +BOPTools_SetMapHasher.cxx +BOPTools_SetMapHasher.hxx +BOPTools_SetMapHasher.lxx +BOPTools_ShapeSet.cxx +BOPTools_ShapeSet.hxx +BOPTools_ShapeSet.lxx diff --git a/src/BRep/BRep.cdl b/src/BRep/BRep.cdl deleted file mode 100644 index da7845e18b..0000000000 --- a/src/BRep/BRep.cdl +++ /dev/null @@ -1,135 +0,0 @@ --- Created on: 1991-06-27 --- Created by: Remi LEQUETTE --- 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. - -package BRep - - ---Purpose: This package describes a Boundary Representation - -- Data Structure inherited from the abstract - -- Topology defined in the TopoDS package. The - -- geometric data are provided by the Geom and Geom2d - -- packages. - -- - -- The TVertex, TEdge, and TFace are redefined in - -- this package to add geometric information. - - ---Level : Public - -- All methods of all classes will be public. - -uses - MMgt, -- Memory management - TCollection, -- Basic data structures - TColStd, -- HArray1OfInteger - gp, -- Elementary geometry - Bnd, -- Bounding boxes - TopLoc, -- Local coordinate systems - TopAbs, -- Enumerations : Orientation, ShapeType - TopoDS, -- Abstract topological data structure - GeomAbs, -- Enumerations : Shape - Geom, -- 3D geometry : curves and surfaces - Geom2d, -- 2D geometry : curves in parametric space - Poly -- Triangulations and Polygons - -is - - -- - -- Face - -- - - class TFace; - - -- - -- Edge - -- - -- An Edge is defined by a list of curve representations which - -- are either : - -- - -- Geometric representations : - -- - -- * A 3d curve (at most one) - -- - -- * A curve on surface, curve in parametric space. - -- - -- * A curve on closed surface, two curves in parametric space. - -- - -- Polygonal representations : - -- - -- * A 3d polygon (at most one). - -- - -- * A Polygon on triangulation (array of node indices) - -- - -- * A Polygon on closed triangulation (2 arrays of node indices) - -- - -- * A polygon on surface (array of 2d points in parametric space) - -- - -- Curve on 2 surfaces : - -- - -- * This is used for storing shape continuity. - -- - - deferred class CurveRepresentation; - - imported ListOfCurveRepresentation; - - imported ListIteratorOfListOfCurveRepresentation; - - deferred class GCurve; - - class Curve3D; - - class CurveOnSurface; - - class CurveOnClosedSurface; - - class Polygon3D; - - class PolygonOnTriangulation; - - class PolygonOnClosedTriangulation; - - class PolygonOnSurface; - - class PolygonOnClosedSurface; - - class CurveOn2Surfaces; - - class TEdge; - - -- - -- Vertex - -- - - deferred class PointRepresentation; - - imported ListOfPointRepresentation; - - imported ListIteratorOfListOfPointRepresentation; - - class PointOnCurve; - - deferred class PointsOnSurface; - - class PointOnCurveOnSurface; - - class PointOnSurface; - - class TVertex; - - class Builder; - - class Tool; - - -end BRep; diff --git a/src/BRep/BRep_Builder.cdl b/src/BRep/BRep_Builder.cdl deleted file mode 100644 index b69e54549b..0000000000 --- a/src/BRep/BRep_Builder.cdl +++ /dev/null @@ -1,565 +0,0 @@ --- Created on: 1991-07-01 --- Created by: Remi LEQUETTE --- 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. - -class Builder from BRep inherits Builder from TopoDS - - ---Purpose: A framework providing advanced tolerance control. - -- It is used to build Shapes. - -- If tolerance control is required, you are advised to: - -- 1. build a default precision for topology, using the - -- classes provided in the BRepAPI package - -- 2. update the tolerance of the resulting shape. - -- Note that only vertices, edges and faces have - -- meaningful tolerance control. The tolerance value - -- must always comply with the condition that face - -- tolerances are more restrictive than edge tolerances - -- which are more restrictive than vertex tolerances. In - -- other words: Tol(Vertex) >= Tol(Edge) >= Tol(Face). - -- Other rules in setting tolerance include: - -- - you can open up tolerance but should never restrict it - -- - an edge cannot be included within the fusion of the - -- tolerance spheres of two vertices - -uses - Location from TopLoc, - - Shape from TopoDS, - - Vertex from TopoDS, - Edge from TopoDS, - Face from TopoDS, - - Shape from GeomAbs, - Surface from Geom, - Curve from Geom, - - Curve from Geom2d, - - Triangulation from Poly, - Polygon3D from Poly, - Polygon2D from Poly, - PolygonOnTriangulation from Poly, - - HArray1OfInteger from TColStd, - HArray1OfReal from TColStd, - - Pnt from gp, - Pnt2d from gp - -raises - NullObject from Standard, - DomainError from Standard - -is - - ----------------------------------------------------------- - ----------------------------------------------------------- - -- Face -- - ----------------------------------------------------------- - ----------------------------------------------------------- - - - - ------------------------------------------------------- - -- Construction - ------------------------------------------------------- - - - MakeFace(me; F : out Face from TopoDS); - ---C++: inline - - ---Purpose: Makes an undefined Face. - - MakeFace(me; F : out Face from TopoDS; - S : Surface from Geom; - Tol : Real) - - ---Purpose: Makes a Face with a surface. - raises - NullObject from Standard; -- If is null. - - - MakeFace(me; F : out Face from TopoDS; - S : Surface from Geom; - L : Location from TopLoc; - Tol : Real) - - ---Purpose: Makes a Face with a surface and a location. - raises - NullObject from Standard; -- If is null. - - MakeFace(me; F : out Face from TopoDS; - T : Triangulation from Poly) - - ---Purpose: Makes a Face with a triangulation. The triangulation - -- is in the same reference system than the TFace. - -- - raises - NullObject from Standard; -- If is null. - - - UpdateFace(me; F : Face from TopoDS; - S : Surface from Geom; - L : Location from TopLoc; - Tol : Real) - - ---Purpose: Updates the face F using the tolerance value Tol, - -- surface S and location Location. - raises - NullObject from Standard; -- If is null. - - UpdateFace(me; F : Face from TopoDS; - T : Triangulation from Poly) - ---Purpose: Changes a face triangulation. - -- - -- A null Triangulation removes the triangulation. - -- - - raises - NullObject from Standard; -- If is null. - - - UpdateFace(me; F : Face from TopoDS; - Tol : Real); - ---Purpose: Updates the face Tolerance. - - ------------------------------------------------------- - -- Face flags - ------------------------------------------------------- - - - NaturalRestriction(me; F : Face from TopoDS; - N : Boolean) - ---Purpose: Sets the NaturalRestriction flag of the face. - raises - NullObject from Standard; -- If is null. - - - - ----------------------------------------------------------- - ----------------------------------------------------------- - -- Edge -- - ----------------------------------------------------------- - ----------------------------------------------------------- - - - ------------------------------------------------------- - -- Edge construction - ------------------------------------------------------- - - MakeEdge(me; E : out Edge from TopoDS); - - ---Purpose: Makes an undefined Edge (no geometry). - - MakeEdge(me; E : out Edge from TopoDS; - C : Curve from Geom; - Tol : Real); - ---C++: inline - - ---Purpose: Makes an Edge with a curve. - - MakeEdge(me; E : out Edge from TopoDS; - C : Curve from Geom; - L : Location from TopLoc; - Tol : Real); - ---C++: inline - - ---Purpose: Makes an Edge with a curve and a location. - - MakeEdge(me; E : out Edge from TopoDS; - P : Polygon3D from Poly); - ---C++: inline - - ---Purpose: Makes an Edge with a polygon 3d. - - MakeEdge(me; E : out Edge from TopoDS; - N : PolygonOnTriangulation from Poly; - T : Triangulation from Poly); - ---C++: inline - - ---Purpose: makes an Edge polygon on Triangulation. - - MakeEdge(me; E : out Edge from TopoDS; - N : PolygonOnTriangulation from Poly; - T : Triangulation from Poly; - L : Location from TopLoc); - ---C++: inline - - ---Purpose: makes an Edge polygon on Triangulation. - - ------------------------------------------------------- - -- Edge update - -- - ------------------------------------------------------- - - UpdateEdge(me; E : Edge from TopoDS; - C : Curve from Geom; - Tol : Real); - ---C++: inline - - ---Purpose: Sets a 3D curve for the edge. - -- If is a null handle, remove any existing 3d curve. - - UpdateEdge(me; E : Edge from TopoDS; - C : Curve from Geom; - L : Location from TopLoc; - Tol : Real); - - ---Purpose: Sets a 3D curve for the edge. - -- If is a null handle, remove any existing 3d curve. - - UpdateEdge(me; E : Edge from TopoDS; - C : Curve from Geom2d; - F : Face from TopoDS; - Tol : Real); - ---C++: inline - - ---Purpose: Sets a pcurve for the edge on the face. - -- If is a null handle, remove any existing pcurve. - - UpdateEdge(me; E : Edge from TopoDS; - C1,C2 : Curve from Geom2d; - F : Face from TopoDS; - Tol : Real); - ---C++: inline - - ---Purpose: Sets pcurves for the edge on the closed face. If - -- or is a null handle, remove any existing - -- pcurve. - - UpdateEdge(me; E : Edge from TopoDS; - C : Curve from Geom2d; - S : Surface from Geom; - L : Location from TopLoc; - Tol : Real); - - ---Purpose: Sets a pcurve for the edge on the face. - -- If is a null handle, remove any existing pcurve. - - UpdateEdge(me; E : Edge from TopoDS; - C : Curve from Geom2d; - S : Surface from Geom; - L : Location from TopLoc; - Tol : Real; - Pf,Pl : Pnt2d from gp); - - ---Purpose: Sets a pcurve for the edge on the face. - -- If is a null handle, remove any existing pcurve. - -- Sets UV bounds for curve repsentation - - UpdateEdge(me; E : Edge from TopoDS; - C1,C2 : Curve from Geom2d; - S : Surface from Geom; - L : Location from TopLoc; - Tol : Real); - - ---Purpose: Sets pcurves for the edge on the closed surface. - -- or is a null handle, remove any existing - -- pcurve. - - UpdateEdge(me; E : Edge from TopoDS; - C1,C2 : Curve from Geom2d; - S : Surface from Geom; - L : Location from TopLoc; - Tol : Real; - Pf,Pl : Pnt2d from gp); - - ---Purpose: Sets pcurves for the edge on the closed surface. - -- or is a null handle, remove any existing - -- pcurve. - -- Sets UV bounds for curve repsentation - - UpdateEdge(me; E : Edge from TopoDS; - P : Polygon3D from Poly); - ---C++: inline - - ---Purpose: Changes an Edge 3D polygon. - -- A null Polygon removes the 3d Polygon. - - UpdateEdge(me; E : Edge from TopoDS; - P : Polygon3D from Poly; - L : Location from TopLoc); - - ---Purpose: Changes an Edge 3D polygon. - -- A null Polygon removes the 3d Polygon. - - UpdateEdge(me; E : Edge from TopoDS; - N : PolygonOnTriangulation from Poly; - T : Triangulation from Poly); - ---C++: inline - - ---Purpose: Changes an Edge polygon on Triangulation. - - UpdateEdge(me; E : Edge from TopoDS; - N : PolygonOnTriangulation from Poly; - T : Triangulation from Poly; - L : Location from TopLoc); - - ---Purpose: Changes an Edge polygon on Triangulation. - - UpdateEdge(me; E : Edge from TopoDS; - N1, N2 : PolygonOnTriangulation from Poly; - T : Triangulation from Poly); - ---C++: inline - - ---Purpose: Changes an Edge polygon on Triangulation. - - UpdateEdge(me; E : Edge from TopoDS; - N1, N2 : PolygonOnTriangulation from Poly; - T : Triangulation from Poly; - L : Location from TopLoc); - - ---Purpose: Changes an Edge polygon on Triangulation. - - UpdateEdge(me; E: Edge from TopoDS; - P: Polygon2D from Poly; - S: Face from TopoDS) - - ---Purpose: Changes Edge polygon on a face. - -- - -- - raises - NullObject from Standard; -- If is null. - - UpdateEdge(me; E: Edge from TopoDS; - P: Polygon2D from Poly; - S: Surface from Geom; - T: Location from TopLoc) - - ---Purpose: Changes Edge polygon on a face. - -- - -- - raises - NullObject from Standard; -- If is null. - - UpdateEdge(me; E : Edge from TopoDS; - P1, P2: Polygon2D from Poly; - S : Face from TopoDS) - - ---Purpose: Changes Edge polygons on a face. - -- - -- A null Polygon removes the 2d Polygon. - -- - raises - NullObject from Standard; -- If is null. - - UpdateEdge(me; E : Edge from TopoDS; - P1, P2: Polygon2D from Poly; - S : Surface from Geom; - L : Location from TopLoc) - - ---Purpose: Changes Edge polygons on a face. - -- - -- A null Polygon removes the 2d Polygon. - -- - raises - NullObject from Standard; -- If is null. - - UpdateEdge(me; E : Edge from TopoDS; - Tol : Real); - - ---Purpose: Updates the edge tolerance. - - ------------------------------------------------------- - -- Edge continuity - ------------------------------------------------------- - - - Continuity(me; E : Edge from TopoDS; - F1,F2 : Face from TopoDS; - C : Shape from GeomAbs) - ---Purpose: Sets the geometric continuity on the edge. - raises - NullObject from Standard; -- If , or is Null - - - Continuity(me; E : Edge from TopoDS; - S1,S2 : Surface from Geom; - L1,L2 : Location from TopLoc; - C : Shape from GeomAbs) - ---Purpose: Sets the geometric continuity on the edge. - raises - NullObject from Standard; -- If , or is Null - - - ------------------------------------------------------- - -- Edge flags - ------------------------------------------------------- - - - SameParameter(me; E : Edge from TopoDS; - S : Boolean) - ---Purpose: Sets the same parameter flag for the edge . - raises - NullObject from Standard; -- If is Null - - - SameRange(me; E : Edge from TopoDS; - S : Boolean) - ---Purpose: Sets the same range flag for the edge . - raises - NullObject from Standard; -- If is Null - - - Degenerated(me; E : Edge from TopoDS; - D : Boolean) - ---Purpose: Sets the degenerated flag for the edge . - raises - NullObject from Standard; -- If is Null - - ------------------------------------------------------- - -- Edge parameter range - ------------------------------------------------------- - - Range(me; E : Edge from TopoDS; - First, Last : Real; - Only3d : Boolean from Standard = Standard_False) - ---Purpose: Sets the range of the 3d curve if Only3d=TRUE, - -- otherwise sets the range to all the representations - raises - NullObject from Standard; -- If is Null - - - Range(me; E : Edge from TopoDS; - S : Surface from Geom; - L : Location from TopLoc; - First, Last : Real) - ---Purpose: Sets the range of the edge on the pcurve on the - -- surface. - raises - NullObject from Standard; -- If is Null - - - Range(me; E : Edge from TopoDS; - F : Face from TopoDS; - First, Last : Real); - ---C++: inline - ---Purpose: Sets the range of the edge on the pcurve on the face. - - - ------------------------------------------------------- - -- Edge transfer of geometry - ------------------------------------------------------- - - Transfert(me; Ein, Eout : Edge from TopoDS) - ---Purpose: Add to the geometric representations of - -- . - raises - NullObject from Standard; -- If is Null - - - ----------------------------------------------------------- - ----------------------------------------------------------- - -- Vertex -- - ----------------------------------------------------------- - ----------------------------------------------------------- - - - ------------------------------------------------------- - -- Vertex construction from geometry - ------------------------------------------------------- - - MakeVertex(me; V : out Vertex from TopoDS); - ---C++: inline - - ---Purpose: Makes an udefined vertex without geometry. - - - MakeVertex(me; V : out Vertex from TopoDS; - P : Pnt from gp; - Tol : Real); - ---C++: inline - - ---Purpose: Makes a vertex from a 3D point. - - - ------------------------------------------------------- - -- Vertex update - ------------------------------------------------------- - - UpdateVertex(me; V : Vertex from TopoDS; - P : Pnt from gp; - Tol : Real) - - ---Purpose: Sets a 3D point on the vertex. - raises - NullObject from Standard; -- If is Null - - - - UpdateVertex(me; V : Vertex from TopoDS; - P : Real; - E : Edge from TopoDS; - Tol : Real) - - ---Purpose: Sets the parameter for the vertex on the edge - -- curves. - raises - NullObject from Standard, -- If or is Null - DomainError from Standard; -- If is not the first or last vertex. - - - - UpdateVertex(me; V : Vertex from TopoDS; - P : Real; - E : Edge from TopoDS; - F : Face from TopoDS; - Tol : Real); - ---C++: inline - - ---Purpose: Sets the parameter for the vertex on the edge - -- pcurve on the face. - - - UpdateVertex(me; V : Vertex from TopoDS; - P : Real; - E : Edge from TopoDS; - S : Surface from Geom; - L : Location from TopLoc; - Tol : Real) - - ---Purpose: Sets the parameter for the vertex on the edge - -- pcurve on the surface. - raises - DomainError from Standard; -- If is not the first or last vertex. - - - UpdateVertex(me; Ve : Vertex from TopoDS; - U,V : Real; - F : Face from TopoDS; - Tol : Real) - - ---Purpose: Sets the parameters for the vertex on the face. - raises - NullObject from Standard, -- If or is Null - DomainError from Standard; -- If is not the first or last vertex. - - UpdateVertex(me; V : Vertex from TopoDS; - Tol : Real); - ---Purpose: Updates the vertex tolerance. - - ------------------------------------------------------- - -- Vertex transfer of parameters - ------------------------------------------------------- - - Transfert(me; Ein, Eout : Edge from TopoDS; - Vin, Vout : Vertex from TopoDS) - ---Purpose: Transfert the parameters of Vin on Ein as the - -- parameter of Vout on Eout. - raises - NullObject from Standard; - -end Builder; diff --git a/src/BRep/BRep_Builder.cxx b/src/BRep/BRep_Builder.cxx index f109a386b7..2cfc5d2a27 100644 --- a/src/BRep/BRep_Builder.cxx +++ b/src/BRep/BRep_Builder.cxx @@ -14,45 +14,52 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include #include -#include -#include #include +#include +#include #include - +#include #include #include #include -#include - -#include -#include -#include - -#include - #include -#include #include -#include #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : Auxiliary methods //purpose : //======================================================================= - //======================================================================= //function : UpdateCurves //purpose : Insert a 3d curve with location // in a list of curve representations //======================================================================= - static void UpdateCurves(BRep_ListOfCurveRepresentation& lcr, const Handle(Geom_Curve)& C, const TopLoc_Location& L) diff --git a/src/BRep/BRep_Builder.hxx b/src/BRep/BRep_Builder.hxx new file mode 100644 index 0000000000..46eb9c7c8b --- /dev/null +++ b/src/BRep/BRep_Builder.hxx @@ -0,0 +1,275 @@ +// Created on: 1991-07-01 +// Created by: Remi LEQUETTE +// 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 _BRep_Builder_HeaderFile +#define _BRep_Builder_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class Standard_NullObject; +class Standard_DomainError; +class TopoDS_Face; +class Geom_Surface; +class TopLoc_Location; +class Poly_Triangulation; +class TopoDS_Edge; +class Geom_Curve; +class Poly_Polygon3D; +class Poly_PolygonOnTriangulation; +class Geom2d_Curve; +class gp_Pnt2d; +class Poly_Polygon2D; +class TopoDS_Vertex; +class gp_Pnt; + + +//! A framework providing advanced tolerance control. +//! It is used to build Shapes. +//! If tolerance control is required, you are advised to: +//! 1. build a default precision for topology, using the +//! classes provided in the BRepAPI package +//! 2. update the tolerance of the resulting shape. +//! Note that only vertices, edges and faces have +//! meaningful tolerance control. The tolerance value +//! must always comply with the condition that face +//! tolerances are more restrictive than edge tolerances +//! which are more restrictive than vertex tolerances. In +//! other words: Tol(Vertex) >= Tol(Edge) >= Tol(Face). +//! Other rules in setting tolerance include: +//! - you can open up tolerance but should never restrict it +//! - an edge cannot be included within the fusion of the +//! tolerance spheres of two vertices +class BRep_Builder : public TopoDS_Builder +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Makes an undefined Face. + void MakeFace (TopoDS_Face& F) const; + + //! Makes a Face with a surface. + Standard_EXPORT void MakeFace (TopoDS_Face& F, const Handle(Geom_Surface)& S, const Standard_Real Tol) const; + + //! Makes a Face with a surface and a location. + Standard_EXPORT void MakeFace (TopoDS_Face& F, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol) const; + + //! Makes a Face with a triangulation. The triangulation + //! is in the same reference system than the TFace. + Standard_EXPORT void MakeFace (TopoDS_Face& F, const Handle(Poly_Triangulation)& T) const; + + //! Updates the face F using the tolerance value Tol, + //! surface S and location Location. + Standard_EXPORT void UpdateFace (const TopoDS_Face& F, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol) const; + + //! Changes a face triangulation. + //! + //! A null Triangulation removes the triangulation. + Standard_EXPORT void UpdateFace (const TopoDS_Face& F, const Handle(Poly_Triangulation)& T) const; + + //! Updates the face Tolerance. + Standard_EXPORT void UpdateFace (const TopoDS_Face& F, const Standard_Real Tol) const; + + //! Sets the NaturalRestriction flag of the face. + Standard_EXPORT void NaturalRestriction (const TopoDS_Face& F, const Standard_Boolean N) const; + + //! Makes an undefined Edge (no geometry). + Standard_EXPORT void MakeEdge (TopoDS_Edge& E) const; + + //! Makes an Edge with a curve. + void MakeEdge (TopoDS_Edge& E, const Handle(Geom_Curve)& C, const Standard_Real Tol) const; + + //! Makes an Edge with a curve and a location. + void MakeEdge (TopoDS_Edge& E, const Handle(Geom_Curve)& C, const TopLoc_Location& L, const Standard_Real Tol) const; + + //! Makes an Edge with a polygon 3d. + void MakeEdge (TopoDS_Edge& E, const Handle(Poly_Polygon3D)& P) const; + + //! makes an Edge polygon on Triangulation. + void MakeEdge (TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N, const Handle(Poly_Triangulation)& T) const; + + //! makes an Edge polygon on Triangulation. + void MakeEdge (TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L) const; + + //! Sets a 3D curve for the edge. + //! If is a null handle, remove any existing 3d curve. + void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom_Curve)& C, const Standard_Real Tol) const; + + //! Sets a 3D curve for the edge. + //! If is a null handle, remove any existing 3d curve. + Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom_Curve)& C, const TopLoc_Location& L, const Standard_Real Tol) const; + + //! Sets a pcurve for the edge on the face. + //! If is a null handle, remove any existing pcurve. + void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C, const TopoDS_Face& F, const Standard_Real Tol) const; + + //! Sets pcurves for the edge on the closed face. If + //! or is a null handle, remove any existing + //! pcurve. + void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const TopoDS_Face& F, const Standard_Real Tol) const; + + //! Sets a pcurve for the edge on the face. + //! If is a null handle, remove any existing pcurve. + Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol) const; + + //! Sets a pcurve for the edge on the face. + //! If is a null handle, remove any existing pcurve. + //! Sets UV bounds for curve repsentation + Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol, const gp_Pnt2d& Pf, const gp_Pnt2d& Pl) const; + + //! Sets pcurves for the edge on the closed surface. + //! or is a null handle, remove any existing + //! pcurve. + Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol) const; + + //! Sets pcurves for the edge on the closed surface. + //! or is a null handle, remove any existing + //! pcurve. + //! Sets UV bounds for curve repsentation + Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol, const gp_Pnt2d& Pf, const gp_Pnt2d& Pl) const; + + //! Changes an Edge 3D polygon. + //! A null Polygon removes the 3d Polygon. + void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon3D)& P) const; + + //! Changes an Edge 3D polygon. + //! A null Polygon removes the 3d Polygon. + Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon3D)& P, const TopLoc_Location& L) const; + + //! Changes an Edge polygon on Triangulation. + void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N, const Handle(Poly_Triangulation)& T) const; + + //! Changes an Edge polygon on Triangulation. + Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L) const; + + //! Changes an Edge polygon on Triangulation. + void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N1, const Handle(Poly_PolygonOnTriangulation)& N2, const Handle(Poly_Triangulation)& T) const; + + //! Changes an Edge polygon on Triangulation. + Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& N1, const Handle(Poly_PolygonOnTriangulation)& N2, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L) const; + + //! Changes Edge polygon on a face. + Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon2D)& P, const TopoDS_Face& S) const; + + //! Changes Edge polygon on a face. + Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon2D)& P, const Handle(Geom_Surface)& S, const TopLoc_Location& T) const; + + //! Changes Edge polygons on a face. + //! + //! A null Polygon removes the 2d Polygon. + Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon2D)& P1, const Handle(Poly_Polygon2D)& P2, const TopoDS_Face& S) const; + + //! Changes Edge polygons on a face. + //! + //! A null Polygon removes the 2d Polygon. + Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Handle(Poly_Polygon2D)& P1, const Handle(Poly_Polygon2D)& P2, const Handle(Geom_Surface)& S, const TopLoc_Location& L) const; + + //! Updates the edge tolerance. + Standard_EXPORT void UpdateEdge (const TopoDS_Edge& E, const Standard_Real Tol) const; + + //! Sets the geometric continuity on the edge. + Standard_EXPORT void Continuity (const TopoDS_Edge& E, const TopoDS_Face& F1, const TopoDS_Face& F2, const GeomAbs_Shape C) const; + + //! Sets the geometric continuity on the edge. + Standard_EXPORT void Continuity (const TopoDS_Edge& E, const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const TopLoc_Location& L1, const TopLoc_Location& L2, const GeomAbs_Shape C) const; + + //! Sets the same parameter flag for the edge . + Standard_EXPORT void SameParameter (const TopoDS_Edge& E, const Standard_Boolean S) const; + + //! Sets the same range flag for the edge . + Standard_EXPORT void SameRange (const TopoDS_Edge& E, const Standard_Boolean S) const; + + //! Sets the degenerated flag for the edge . + Standard_EXPORT void Degenerated (const TopoDS_Edge& E, const Standard_Boolean D) const; + + //! Sets the range of the 3d curve if Only3d=TRUE, + //! otherwise sets the range to all the representations + Standard_EXPORT void Range (const TopoDS_Edge& E, const Standard_Real First, const Standard_Real Last, const Standard_Boolean Only3d = Standard_False) const; + + //! Sets the range of the edge on the pcurve on the + //! surface. + Standard_EXPORT void Range (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real First, const Standard_Real Last) const; + + //! Sets the range of the edge on the pcurve on the face. + void Range (const TopoDS_Edge& E, const TopoDS_Face& F, const Standard_Real First, const Standard_Real Last) const; + + //! Add to the geometric representations of + //! . + Standard_EXPORT void Transfert (const TopoDS_Edge& Ein, const TopoDS_Edge& Eout) const; + + //! Makes an udefined vertex without geometry. + void MakeVertex (TopoDS_Vertex& V) const; + + //! Makes a vertex from a 3D point. + void MakeVertex (TopoDS_Vertex& V, const gp_Pnt& P, const Standard_Real Tol) const; + + //! Sets a 3D point on the vertex. + Standard_EXPORT void UpdateVertex (const TopoDS_Vertex& V, const gp_Pnt& P, const Standard_Real Tol) const; + + //! Sets the parameter for the vertex on the edge + //! curves. + Standard_EXPORT void UpdateVertex (const TopoDS_Vertex& V, const Standard_Real P, const TopoDS_Edge& E, const Standard_Real Tol) const; + + //! Sets the parameter for the vertex on the edge + //! pcurve on the face. + void UpdateVertex (const TopoDS_Vertex& V, const Standard_Real P, const TopoDS_Edge& E, const TopoDS_Face& F, const Standard_Real Tol) const; + + //! Sets the parameter for the vertex on the edge + //! pcurve on the surface. + Standard_EXPORT void UpdateVertex (const TopoDS_Vertex& V, const Standard_Real P, const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const Standard_Real Tol) const; + + //! Sets the parameters for the vertex on the face. + Standard_EXPORT void UpdateVertex (const TopoDS_Vertex& Ve, const Standard_Real U, const Standard_Real V, const TopoDS_Face& F, const Standard_Real Tol) const; + + //! Updates the vertex tolerance. + Standard_EXPORT void UpdateVertex (const TopoDS_Vertex& V, const Standard_Real Tol) const; + + //! Transfert the parameters of Vin on Ein as the + //! parameter of Vout on Eout. + Standard_EXPORT void Transfert (const TopoDS_Edge& Ein, const TopoDS_Edge& Eout, const TopoDS_Vertex& Vin, const TopoDS_Vertex& Vout) const; + + + + +protected: + + + + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BRep_Builder_HeaderFile diff --git a/src/BRep/BRep_Curve3D.cdl b/src/BRep/BRep_Curve3D.cdl deleted file mode 100644 index f3214b66d4..0000000000 --- a/src/BRep/BRep_Curve3D.cdl +++ /dev/null @@ -1,54 +0,0 @@ --- 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. - -class Curve3D from BRep inherits GCurve from BRep - - ---Purpose: Representation of a curve by a 3D curve. - -uses - Pnt from gp, - Location from TopLoc, - Curve from Geom, - CurveRepresentation from BRep - -is - - Create(C : Curve from Geom; - L : Location from TopLoc) - returns Curve3D from BRep; - - D0(me; U : Real; P : out Pnt from gp); - ---Purpose: Computes the point at parameter U. - - IsCurve3D(me) returns Boolean - ---Purpose: Returns True. - is redefined; - - Curve3D(me) returns any Curve from Geom - ---C++: return const & - is redefined; - - Curve3D(me : mutable; C : Curve from Geom) - is redefined; - - Copy(me) returns CurveRepresentation from BRep; - ---Purpose: Return a copy of this representation. - -fields - - myCurve : Curve from Geom; - -end Curve3D; diff --git a/src/BRep/BRep_Curve3D.cxx b/src/BRep/BRep_Curve3D.cxx index 3c5f0f770a..5d085d49c1 100644 --- a/src/BRep/BRep_Curve3D.cxx +++ b/src/BRep/BRep_Curve3D.cxx @@ -14,13 +14,18 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRep_Curve3D //purpose : //======================================================================= - BRep_Curve3D::BRep_Curve3D(const Handle(Geom_Curve)& C, const TopLoc_Location& L) : BRep_GCurve(L, diff --git a/src/BRep/BRep_Curve3D.hxx b/src/BRep/BRep_Curve3D.hxx new file mode 100644 index 0000000000..7105da4f99 --- /dev/null +++ b/src/BRep/BRep_Curve3D.hxx @@ -0,0 +1,81 @@ +// 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 _BRep_Curve3D_HeaderFile +#define _BRep_Curve3D_HeaderFile + +#include +#include + +#include +#include +#include +class Geom_Curve; +class TopLoc_Location; +class gp_Pnt; +class BRep_CurveRepresentation; + + +class BRep_Curve3D; +DEFINE_STANDARD_HANDLE(BRep_Curve3D, BRep_GCurve) + +//! Representation of a curve by a 3D curve. +class BRep_Curve3D : public BRep_GCurve +{ + +public: + + + Standard_EXPORT BRep_Curve3D(const Handle(Geom_Curve)& C, const TopLoc_Location& L); + + //! Computes the point at parameter U. + Standard_EXPORT void D0 (const Standard_Real U, gp_Pnt& P) const; + + //! Returns True. + Standard_EXPORT virtual Standard_Boolean IsCurve3D() const Standard_OVERRIDE; + + Standard_EXPORT virtual const Handle(Geom_Curve)& Curve3D() const Standard_OVERRIDE; + + Standard_EXPORT virtual void Curve3D (const Handle(Geom_Curve)& C) Standard_OVERRIDE; + + //! Return a copy of this representation. + Standard_EXPORT Handle(BRep_CurveRepresentation) Copy() const; + + + + + DEFINE_STANDARD_RTTI(BRep_Curve3D,BRep_GCurve) + +protected: + + + + +private: + + + Handle(Geom_Curve) myCurve; + + +}; + + + + + + + +#endif // _BRep_Curve3D_HeaderFile diff --git a/src/BRep/BRep_CurveOn2Surfaces.cdl b/src/BRep/BRep_CurveOn2Surfaces.cdl deleted file mode 100644 index 896490d78b..0000000000 --- a/src/BRep/BRep_CurveOn2Surfaces.cdl +++ /dev/null @@ -1,79 +0,0 @@ --- 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. - -class CurveOn2Surfaces from BRep inherits CurveRepresentation from BRep - - ---Purpose: Defines a continuity between two surfaces. - -uses - Pnt from gp, - Surface from Geom, - Location from TopLoc, - Shape from GeomAbs, - CurveRepresentation from BRep - -raises - NullObject from Standard - -is - - Create(S1 , S2 : Surface from Geom; - L1 , L2 : Location from TopLoc; - C : Shape from GeomAbs) - returns CurveOn2Surfaces from BRep; - - IsRegularity(me) returns Boolean - ---Purpose: Returns True. - is redefined; - - IsRegularity(me; S1,S2 : Surface from Geom; - L1,L2 : Location from TopLoc) - returns Boolean - ---Purpose: A curve on two surfaces (continuity). - is redefined; - - D0(me; U : Real; P : out Pnt from gp); - ---Purpose: Raises an error. - - Surface(me) returns any Surface from Geom - ---C++: return const & - is redefined; - - Surface2(me) returns any Surface from Geom - ---C++: return const & - is redefined; - - Location2(me) returns Location from TopLoc - ---C++: return const & - is redefined; - - Continuity(me) returns Shape from GeomAbs - ---C++: return const & - is redefined; - - Continuity(me : mutable; C : Shape from GeomAbs) - is redefined; - - Copy(me) returns CurveRepresentation from BRep; - ---Purpose: Return a copy of this representation. - -fields - mySurface : Surface from Geom; - mySurface2 : Surface from Geom; - myLocation2 : Location from TopLoc; - myContinuity : Shape from GeomAbs; - -end CurveOn2Surfaces; diff --git a/src/BRep/BRep_CurveOn2Surfaces.cxx b/src/BRep/BRep_CurveOn2Surfaces.cxx index 59533013d0..0541c96b31 100644 --- a/src/BRep/BRep_CurveOn2Surfaces.cxx +++ b/src/BRep/BRep_CurveOn2Surfaces.cxx @@ -14,14 +14,19 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRep_CurveOn2Surfaces //purpose : //======================================================================= - BRep_CurveOn2Surfaces::BRep_CurveOn2Surfaces(const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const TopLoc_Location& L1, diff --git a/src/BRep/BRep_CurveOn2Surfaces.hxx b/src/BRep/BRep_CurveOn2Surfaces.hxx new file mode 100644 index 0000000000..d70e2a0a9c --- /dev/null +++ b/src/BRep/BRep_CurveOn2Surfaces.hxx @@ -0,0 +1,96 @@ +// 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 _BRep_CurveOn2Surfaces_HeaderFile +#define _BRep_CurveOn2Surfaces_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +class Geom_Surface; +class Standard_NullObject; +class TopLoc_Location; +class gp_Pnt; +class BRep_CurveRepresentation; + + +class BRep_CurveOn2Surfaces; +DEFINE_STANDARD_HANDLE(BRep_CurveOn2Surfaces, BRep_CurveRepresentation) + +//! Defines a continuity between two surfaces. +class BRep_CurveOn2Surfaces : public BRep_CurveRepresentation +{ + +public: + + + Standard_EXPORT BRep_CurveOn2Surfaces(const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const TopLoc_Location& L1, const TopLoc_Location& L2, const GeomAbs_Shape C); + + //! Returns True. + Standard_EXPORT virtual Standard_Boolean IsRegularity() const Standard_OVERRIDE; + + //! A curve on two surfaces (continuity). + Standard_EXPORT virtual Standard_Boolean IsRegularity (const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const TopLoc_Location& L1, const TopLoc_Location& L2) const Standard_OVERRIDE; + + //! Raises an error. + Standard_EXPORT void D0 (const Standard_Real U, gp_Pnt& P) const; + + Standard_EXPORT virtual const Handle(Geom_Surface)& Surface() const Standard_OVERRIDE; + + Standard_EXPORT virtual const Handle(Geom_Surface)& Surface2() const Standard_OVERRIDE; + + Standard_EXPORT virtual const TopLoc_Location& Location2() const Standard_OVERRIDE; + + Standard_EXPORT virtual const GeomAbs_Shape& Continuity() const Standard_OVERRIDE; + + Standard_EXPORT virtual void Continuity (const GeomAbs_Shape C) Standard_OVERRIDE; + + //! Return a copy of this representation. + Standard_EXPORT Handle(BRep_CurveRepresentation) Copy() const; + + + + + DEFINE_STANDARD_RTTI(BRep_CurveOn2Surfaces,BRep_CurveRepresentation) + +protected: + + + + +private: + + + Handle(Geom_Surface) mySurface; + Handle(Geom_Surface) mySurface2; + TopLoc_Location myLocation2; + GeomAbs_Shape myContinuity; + + +}; + + + + + + + +#endif // _BRep_CurveOn2Surfaces_HeaderFile diff --git a/src/BRep/BRep_CurveOnClosedSurface.cdl b/src/BRep/BRep_CurveOnClosedSurface.cdl deleted file mode 100644 index 078d1f7ba4..0000000000 --- a/src/BRep/BRep_CurveOnClosedSurface.cdl +++ /dev/null @@ -1,108 +0,0 @@ --- 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. - -class CurveOnClosedSurface from BRep inherits CurveOnSurface from BRep - - ---Purpose: Representation of a curve by two pcurves on - -- a closed surface. - -uses - Pnt2d from gp, - Box2d from Bnd, - Curve from Geom2d, - Surface from Geom, - Location from TopLoc, - Shape from GeomAbs, - CurveRepresentation from BRep - -is - - Create(PC1, PC2 : Curve from Geom2d; - S : Surface from Geom; - L : Location from TopLoc; - C : Shape from GeomAbs) - returns CurveOnClosedSurface from BRep; - - SetUVPoints2(me : mutable; P1, P2 : Pnt2d from gp) - ---C++: inline - is static; - - UVPoints2(me; P1, P2 : out Pnt2d from gp) - ---C++: inline - is static; - - IsCurveOnClosedSurface(me) returns Boolean - ---Purpose: Returns True. - is redefined; - - IsRegularity(me) returns Boolean - ---Purpose: Returns True - is redefined; - - IsRegularity(me; S1,S2 : Surface from Geom; - L1,L2 : Location from TopLoc) - returns Boolean - ---Purpose: A curve on two surfaces (continuity). - is redefined; - - PCurve2(me) returns any Curve from Geom2d - ---C++: return const & - is redefined; - - Surface2(me) returns any Surface from Geom - ---Purpose: Returns Surface() - -- - ---C++: return const & - is redefined; - - Location2(me) returns Location from TopLoc - ---Purpose: Returns Location() - -- - ---C++: return const & - is redefined; - - Continuity(me) returns Shape from GeomAbs - ---C++: return const & - is redefined; - - Continuity(me : mutable; C : Shape from GeomAbs) - is redefined; - - PCurve2(me : mutable; C : Curve from Geom2d) - is redefined; - - Copy(me) returns CurveRepresentation from BRep - ---Purpose: Return a copy of this representation. - is redefined; - - Update(me : mutable) - ---Purpose: Recomputes any derived data after a modification. - -- This is called when the range is modified. - is redefined; - -fields - - myPCurve2 : Curve from Geom2d; - myContinuity : Shape from GeomAbs; - myUV21 : Pnt2d from gp; - myUV22 : Pnt2d from gp; - -end CurveOnClosedSurface; - - - - - diff --git a/src/BRep/BRep_CurveOnClosedSurface.cxx b/src/BRep/BRep_CurveOnClosedSurface.cxx index 8072d43e25..ab84995cf7 100644 --- a/src/BRep/BRep_CurveOnClosedSurface.cxx +++ b/src/BRep/BRep_CurveOnClosedSurface.cxx @@ -14,16 +14,20 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include - +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRep_CurveOnClosedSurface //purpose : //======================================================================= - BRep_CurveOnClosedSurface::BRep_CurveOnClosedSurface (const Handle(Geom2d_Curve)& PC1, const Handle(Geom2d_Curve)& PC2, diff --git a/src/BRep/BRep_CurveOnClosedSurface.hxx b/src/BRep/BRep_CurveOnClosedSurface.hxx new file mode 100644 index 0000000000..352e4326af --- /dev/null +++ b/src/BRep/BRep_CurveOnClosedSurface.hxx @@ -0,0 +1,109 @@ +// 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 _BRep_CurveOnClosedSurface_HeaderFile +#define _BRep_CurveOnClosedSurface_HeaderFile + +#include +#include + +#include +#include +#include +#include +class Geom2d_Curve; +class Geom_Surface; +class TopLoc_Location; +class gp_Pnt2d; +class BRep_CurveRepresentation; + + +class BRep_CurveOnClosedSurface; +DEFINE_STANDARD_HANDLE(BRep_CurveOnClosedSurface, BRep_CurveOnSurface) + +//! Representation of a curve by two pcurves on +//! a closed surface. +class BRep_CurveOnClosedSurface : public BRep_CurveOnSurface +{ + +public: + + + Standard_EXPORT BRep_CurveOnClosedSurface(const Handle(Geom2d_Curve)& PC1, const Handle(Geom2d_Curve)& PC2, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const GeomAbs_Shape C); + + void SetUVPoints2 (const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + void UVPoints2 (gp_Pnt2d& P1, gp_Pnt2d& P2) const; + + //! Returns True. + Standard_EXPORT virtual Standard_Boolean IsCurveOnClosedSurface() const Standard_OVERRIDE; + + //! Returns True + Standard_EXPORT virtual Standard_Boolean IsRegularity() const Standard_OVERRIDE; + + //! A curve on two surfaces (continuity). + Standard_EXPORT virtual Standard_Boolean IsRegularity (const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const TopLoc_Location& L1, const TopLoc_Location& L2) const Standard_OVERRIDE; + + Standard_EXPORT virtual const Handle(Geom2d_Curve)& PCurve2() const Standard_OVERRIDE; + + //! Returns Surface() + Standard_EXPORT virtual const Handle(Geom_Surface)& Surface2() const Standard_OVERRIDE; + + //! Returns Location() + Standard_EXPORT virtual const TopLoc_Location& Location2() const Standard_OVERRIDE; + + Standard_EXPORT virtual const GeomAbs_Shape& Continuity() const Standard_OVERRIDE; + + Standard_EXPORT virtual void Continuity (const GeomAbs_Shape C) Standard_OVERRIDE; + + Standard_EXPORT virtual void PCurve2 (const Handle(Geom2d_Curve)& C) Standard_OVERRIDE; + + //! Return a copy of this representation. + Standard_EXPORT virtual Handle(BRep_CurveRepresentation) Copy() const Standard_OVERRIDE; + + //! Recomputes any derived data after a modification. + //! This is called when the range is modified. + Standard_EXPORT virtual void Update() Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(BRep_CurveOnClosedSurface,BRep_CurveOnSurface) + +protected: + + + + +private: + + + Handle(Geom2d_Curve) myPCurve2; + GeomAbs_Shape myContinuity; + gp_Pnt2d myUV21; + gp_Pnt2d myUV22; + + +}; + + +#include + + + + + +#endif // _BRep_CurveOnClosedSurface_HeaderFile diff --git a/src/BRep/BRep_CurveOnSurface.cdl b/src/BRep/BRep_CurveOnSurface.cdl deleted file mode 100644 index 661e7dd91a..0000000000 --- a/src/BRep/BRep_CurveOnSurface.cdl +++ /dev/null @@ -1,84 +0,0 @@ --- 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. - -class CurveOnSurface from BRep inherits GCurve from BRep - - ---Purpose: Representation of a curve by a curve in the - -- parametric space of a surface. - -uses - Pnt from gp, - Pnt2d from gp, - Box2d from Bnd, - Curve from Geom2d, - Surface from Geom, - Location from TopLoc, - CurveRepresentation from BRep - -is - - Create(PC : Curve from Geom2d; - S : Surface from Geom; - L : Location from TopLoc) - returns CurveOnSurface from BRep; - - SetUVPoints(me : mutable; P1, P2 : Pnt2d from gp) - ---C++: inline - is static; - - UVPoints(me; P1, P2 : out Pnt2d from gp) - ---C++: inline - is static; - - D0(me; U : Real; P : out Pnt from gp); - ---Purpose: Computes the point at parameter U. - - IsCurveOnSurface(me) returns Boolean - ---Purpose: Returns True. - is redefined; - - IsCurveOnSurface(me; S : Surface from Geom; L : Location from TopLoc) - returns Boolean - ---Purpose: A curve in the parametric space of a surface. - is redefined; - - Surface(me) returns any Surface from Geom - ---C++: return const & - is redefined; - - PCurve(me) returns any Curve from Geom2d - ---C++: return const & - is redefined; - - PCurve(me : mutable; C : Curve from Geom2d) - is redefined; - - Copy(me) returns CurveRepresentation from BRep is virtual; - ---Purpose: Return a copy of this representation. - - Update(me : mutable) - ---Purpose: Recomputes any derived data after a modification. - -- This is called when the range is modified. - is redefined; - -fields - - myPCurve : Curve from Geom2d; - mySurface : Surface from Geom; - myUV1 : Pnt2d from gp is protected; - myUV2 : Pnt2d from gp is protected; - -end CurveOnSurface; diff --git a/src/BRep/BRep_CurveOnSurface.cxx b/src/BRep/BRep_CurveOnSurface.cxx index 625054597c..1e5224d557 100644 --- a/src/BRep/BRep_CurveOnSurface.cxx +++ b/src/BRep/BRep_CurveOnSurface.cxx @@ -14,15 +14,21 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRep_CurveOnSurface //purpose : //======================================================================= - BRep_CurveOnSurface::BRep_CurveOnSurface(const Handle(Geom2d_Curve)& PC, const Handle(Geom_Surface)& S, const TopLoc_Location& L) : diff --git a/src/BRep/BRep_CurveOnSurface.hxx b/src/BRep/BRep_CurveOnSurface.hxx new file mode 100644 index 0000000000..cb5e07f8d6 --- /dev/null +++ b/src/BRep/BRep_CurveOnSurface.hxx @@ -0,0 +1,102 @@ +// 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 _BRep_CurveOnSurface_HeaderFile +#define _BRep_CurveOnSurface_HeaderFile + +#include +#include + +#include +#include +#include +#include +class Geom2d_Curve; +class Geom_Surface; +class TopLoc_Location; +class gp_Pnt2d; +class gp_Pnt; +class BRep_CurveRepresentation; + + +class BRep_CurveOnSurface; +DEFINE_STANDARD_HANDLE(BRep_CurveOnSurface, BRep_GCurve) + +//! Representation of a curve by a curve in the +//! parametric space of a surface. +class BRep_CurveOnSurface : public BRep_GCurve +{ + +public: + + + Standard_EXPORT BRep_CurveOnSurface(const Handle(Geom2d_Curve)& PC, const Handle(Geom_Surface)& S, const TopLoc_Location& L); + + void SetUVPoints (const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + void UVPoints (gp_Pnt2d& P1, gp_Pnt2d& P2) const; + + //! Computes the point at parameter U. + Standard_EXPORT void D0 (const Standard_Real U, gp_Pnt& P) const; + + //! Returns True. + Standard_EXPORT virtual Standard_Boolean IsCurveOnSurface() const Standard_OVERRIDE; + + //! A curve in the parametric space of a surface. + Standard_EXPORT virtual Standard_Boolean IsCurveOnSurface (const Handle(Geom_Surface)& S, const TopLoc_Location& L) const Standard_OVERRIDE; + + Standard_EXPORT virtual const Handle(Geom_Surface)& Surface() const Standard_OVERRIDE; + + Standard_EXPORT virtual const Handle(Geom2d_Curve)& PCurve() const Standard_OVERRIDE; + + Standard_EXPORT virtual void PCurve (const Handle(Geom2d_Curve)& C) Standard_OVERRIDE; + + //! Return a copy of this representation. + Standard_EXPORT virtual Handle(BRep_CurveRepresentation) Copy() const; + + //! Recomputes any derived data after a modification. + //! This is called when the range is modified. + Standard_EXPORT virtual void Update() Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(BRep_CurveOnSurface,BRep_GCurve) + +protected: + + + gp_Pnt2d myUV1; + gp_Pnt2d myUV2; + + +private: + + + Handle(Geom2d_Curve) myPCurve; + Handle(Geom_Surface) mySurface; + + +}; + + +#include + + + + + +#endif // _BRep_CurveOnSurface_HeaderFile diff --git a/src/BRep/BRep_CurveRepresentation.cdl b/src/BRep/BRep_CurveRepresentation.cdl deleted file mode 100644 index 9b0e49a66e..0000000000 --- a/src/BRep/BRep_CurveRepresentation.cdl +++ /dev/null @@ -1,295 +0,0 @@ --- Created on: 1993-07-05 --- 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. - -deferred class CurveRepresentation from BRep inherits TShared from MMgt - - ---Purpose: Root class for the curve representations. Contains - -- a location. - -uses - Pnt from gp, - Pnt2d from gp, - Shape from GeomAbs, - Curve from Geom2d, - Surface from Geom, - Curve from Geom, - Location from TopLoc, - - Polygon3D from Poly, - Polygon2D from Poly, - Triangulation from Poly, - PolygonOnTriangulation from Poly - -raises - DomainError from Standard - -is - - Initialize(L : Location from TopLoc); - - ------------------------------------------------- - -- What kind of representation - ------------------------------------------------- - - IsCurve3D(me) returns Boolean - ---Purpose: A 3D curve representation. - is virtual; - - IsCurveOnSurface(me) returns Boolean - ---Purpose: A curve in the parametric space of a surface. - is virtual; - - IsRegularity(me) returns Boolean - ---Purpose: A continuity between two surfaces. - is virtual; - - IsCurveOnClosedSurface(me) returns Boolean - ---Purpose: A curve with two parametric curves on the same - -- surface. - is virtual; - - IsCurveOnSurface(me; S : Surface from Geom; - L : Location from TopLoc) returns Boolean - ---Purpose: Is it a curve in the parametric space of with - -- location . - is virtual; - - IsRegularity(me; S1,S2 : Surface from Geom; - L1,L2 : Location from TopLoc) returns Boolean - ---Purpose: Is it a regularity between and with - -- location and . - is virtual; - - IsPolygon3D(me) returns Boolean - ---Purpose: A 3D polygon representation. - is virtual; - - - IsPolygonOnTriangulation(me) returns Boolean - ---Purpose: A representation by an array of nodes on a - -- triangulation. - is virtual; - - - IsPolygonOnTriangulation(me; T : Triangulation from Poly; - L : Location from TopLoc) returns Boolean - ---Purpose: Is it a polygon in the definition of with - -- location . - is virtual; - - - IsPolygonOnClosedTriangulation(me) returns Boolean - ---Purpose: A representation by two arrays of nodes on a - -- triangulation. - is virtual; - - - IsPolygonOnSurface(me) returns Boolean - ---Purpose: A polygon in the parametric space of a surface. - is virtual; - - IsPolygonOnSurface(me;S : Surface from Geom; - L : Location from TopLoc) returns Boolean - ---Purpose: Is it a polygon in the parametric space of with - -- location . - is virtual; - - - IsPolygonOnClosedSurface(me) returns Boolean - ---Purpose: Two 2D polygon representations in the parametric - -- space of a surface. - is virtual; - - ------------------------------------------------- - -- Location - ------------------------------------------------- - - Location(me) returns Location from TopLoc - ---C++: return const & - ---C++: inline - is static; - - Location(me : mutable; L : Location from TopLoc) - ---C++: inline - is static; - - ------------------------------------------------- - -- 3d curve - ------------------------------------------------- - - Curve3D(me) returns any Curve from Geom - ---C++: return const & - raises - DomainError from Standard -- if !IsCurve3D - is virtual; - - Curve3D(me : mutable; C : Curve from Geom) - raises - DomainError from Standard -- if !IsCurve3D - is virtual; - - ------------------------------------------------- - -- curve on surface - ------------------------------------------------- - - Surface(me) returns any Surface from Geom - ---C++: return const & - raises - DomainError from Standard - is virtual; - - PCurve(me) returns any Curve from Geom2d - ---C++: return const & - raises - DomainError from Standard - is virtual; - - PCurve(me : mutable; C : Curve from Geom2d) - raises - DomainError from Standard - is virtual; - - ------------------------------------------------- - -- curve on closed surface - ------------------------------------------------- - - PCurve2(me) returns any Curve from Geom2d - ---C++: return const & - raises - DomainError from Standard - is virtual; - - PCurve2(me : mutable; C : Curve from Geom2d) - raises - DomainError from Standard - is virtual; - - - ------------------------------------------------- - -- polygon3d - ------------------------------------------------- - - Polygon3D(me) returns any Polygon3D from Poly - ---C++: return const& - is virtual; - - Polygon3D(me: mutable;P: Polygon3D from Poly) - raises - DomainError from Standard - is virtual; - - ------------------------------------------------- - -- polygon on surface - ------------------------------------------------- - - Polygon(me) returns any Polygon2D from Poly - ---C++: return const& - is virtual; - - - Polygon(me: mutable;P: Polygon2D from Poly) - raises - DomainError from Standard - is virtual; - - ------------------------------------------------- - -- polygon on closed surface - ------------------------------------------------- - - Polygon2(me) returns any Polygon2D from Poly - ---C++: return const& - is virtual; - - - Polygon2(me: mutable;P: Polygon2D from Poly) - raises - DomainError from Standard - is virtual; - - ------------------------------------------------- - -- polygon on triangulation - ------------------------------------------------- - - Triangulation(me) returns any Triangulation from Poly - ---C++: return const& - is virtual; - - - PolygonOnTriangulation(me) returns any PolygonOnTriangulation from Poly - ---C++: return const& - raises - DomainError from Standard - is virtual; - - - PolygonOnTriangulation(me: mutable; P: PolygonOnTriangulation from Poly) - raises - DomainError from Standard - is virtual; - - ------------------------------------------------- - -- polygon on closed triangulation - ------------------------------------------------- - - PolygonOnTriangulation2(me) returns any PolygonOnTriangulation from Poly - ---C++: return const& - raises - DomainError from Standard - is virtual; - - - PolygonOnTriangulation2(me: mutable; P2: PolygonOnTriangulation from Poly) - raises - DomainError from Standard - is virtual; - - ------------------------------------------------- - -- continuity - ------------------------------------------------- - - Surface2(me) returns any Surface from Geom - ---C++: return const & - raises - DomainError from Standard - is virtual; - - Location2(me) returns Location from TopLoc - ---C++: return const & - raises - DomainError from Standard - is virtual; - - Continuity(me) returns Shape from GeomAbs - ---C++: return const & - raises - DomainError from Standard - is virtual; - - Continuity(me : mutable; C : Shape from GeomAbs) - raises - DomainError from Standard - is virtual; - - - Copy(me) returns CurveRepresentation from BRep - ---Purpose: Return a copy of this representation. - is deferred; - -fields - - myLocation : Location from TopLoc is protected; - -end CurveRepresentation; diff --git a/src/BRep/BRep_CurveRepresentation.cxx b/src/BRep/BRep_CurveRepresentation.cxx index 2c7c0a4733..72697793d9 100644 --- a/src/BRep/BRep_CurveRepresentation.cxx +++ b/src/BRep/BRep_CurveRepresentation.cxx @@ -14,15 +14,24 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRep_CurveRepresentation //purpose : //======================================================================= - BRep_CurveRepresentation::BRep_CurveRepresentation(const TopLoc_Location& L): myLocation(L) { diff --git a/src/BRep/BRep_CurveRepresentation.hxx b/src/BRep/BRep_CurveRepresentation.hxx new file mode 100644 index 0000000000..1543fa4578 --- /dev/null +++ b/src/BRep/BRep_CurveRepresentation.hxx @@ -0,0 +1,174 @@ +// Created on: 1993-07-05 +// 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 _BRep_CurveRepresentation_HeaderFile +#define _BRep_CurveRepresentation_HeaderFile + +#include +#include + +#include +#include +#include +#include +class Standard_DomainError; +class TopLoc_Location; +class Geom_Surface; +class Poly_Triangulation; +class Geom_Curve; +class Geom2d_Curve; +class Poly_Polygon3D; +class Poly_Polygon2D; +class Poly_PolygonOnTriangulation; + + +class BRep_CurveRepresentation; +DEFINE_STANDARD_HANDLE(BRep_CurveRepresentation, MMgt_TShared) + +//! Root class for the curve representations. Contains +//! a location. +class BRep_CurveRepresentation : public MMgt_TShared +{ + +public: + + + //! A 3D curve representation. + Standard_EXPORT virtual Standard_Boolean IsCurve3D() const; + + //! A curve in the parametric space of a surface. + Standard_EXPORT virtual Standard_Boolean IsCurveOnSurface() const; + + //! A continuity between two surfaces. + Standard_EXPORT virtual Standard_Boolean IsRegularity() const; + + //! A curve with two parametric curves on the same + //! surface. + Standard_EXPORT virtual Standard_Boolean IsCurveOnClosedSurface() const; + + //! Is it a curve in the parametric space of with + //! location . + Standard_EXPORT virtual Standard_Boolean IsCurveOnSurface (const Handle(Geom_Surface)& S, const TopLoc_Location& L) const; + + //! Is it a regularity between and with + //! location and . + Standard_EXPORT virtual Standard_Boolean IsRegularity (const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const TopLoc_Location& L1, const TopLoc_Location& L2) const; + + //! A 3D polygon representation. + Standard_EXPORT virtual Standard_Boolean IsPolygon3D() const; + + //! A representation by an array of nodes on a + //! triangulation. + Standard_EXPORT virtual Standard_Boolean IsPolygonOnTriangulation() const; + + //! Is it a polygon in the definition of with + //! location . + Standard_EXPORT virtual Standard_Boolean IsPolygonOnTriangulation (const Handle(Poly_Triangulation)& T, const TopLoc_Location& L) const; + + //! A representation by two arrays of nodes on a + //! triangulation. + Standard_EXPORT virtual Standard_Boolean IsPolygonOnClosedTriangulation() const; + + //! A polygon in the parametric space of a surface. + Standard_EXPORT virtual Standard_Boolean IsPolygonOnSurface() const; + + //! Is it a polygon in the parametric space of with + //! location . + Standard_EXPORT virtual Standard_Boolean IsPolygonOnSurface (const Handle(Geom_Surface)& S, const TopLoc_Location& L) const; + + //! Two 2D polygon representations in the parametric + //! space of a surface. + Standard_EXPORT virtual Standard_Boolean IsPolygonOnClosedSurface() const; + + const TopLoc_Location& Location() const; + + void Location (const TopLoc_Location& L); + + Standard_EXPORT virtual const Handle(Geom_Curve)& Curve3D() const; + + Standard_EXPORT virtual void Curve3D (const Handle(Geom_Curve)& C); + + Standard_EXPORT virtual const Handle(Geom_Surface)& Surface() const; + + Standard_EXPORT virtual const Handle(Geom2d_Curve)& PCurve() const; + + Standard_EXPORT virtual void PCurve (const Handle(Geom2d_Curve)& C); + + Standard_EXPORT virtual const Handle(Geom2d_Curve)& PCurve2() const; + + Standard_EXPORT virtual void PCurve2 (const Handle(Geom2d_Curve)& C); + + Standard_EXPORT virtual const Handle(Poly_Polygon3D)& Polygon3D() const; + + Standard_EXPORT virtual void Polygon3D (const Handle(Poly_Polygon3D)& P); + + Standard_EXPORT virtual const Handle(Poly_Polygon2D)& Polygon() const; + + Standard_EXPORT virtual void Polygon (const Handle(Poly_Polygon2D)& P); + + Standard_EXPORT virtual const Handle(Poly_Polygon2D)& Polygon2() const; + + Standard_EXPORT virtual void Polygon2 (const Handle(Poly_Polygon2D)& P); + + Standard_EXPORT virtual const Handle(Poly_Triangulation)& Triangulation() const; + + Standard_EXPORT virtual const Handle(Poly_PolygonOnTriangulation)& PolygonOnTriangulation() const; + + Standard_EXPORT virtual void PolygonOnTriangulation (const Handle(Poly_PolygonOnTriangulation)& P); + + Standard_EXPORT virtual const Handle(Poly_PolygonOnTriangulation)& PolygonOnTriangulation2() const; + + Standard_EXPORT virtual void PolygonOnTriangulation2 (const Handle(Poly_PolygonOnTriangulation)& P2); + + Standard_EXPORT virtual const Handle(Geom_Surface)& Surface2() const; + + Standard_EXPORT virtual const TopLoc_Location& Location2() const; + + Standard_EXPORT virtual const GeomAbs_Shape& Continuity() const; + + Standard_EXPORT virtual void Continuity (const GeomAbs_Shape C); + + //! Return a copy of this representation. + Standard_EXPORT virtual Handle(BRep_CurveRepresentation) Copy() const = 0; + + + + + DEFINE_STANDARD_RTTI(BRep_CurveRepresentation,MMgt_TShared) + +protected: + + + Standard_EXPORT BRep_CurveRepresentation(const TopLoc_Location& L); + + TopLoc_Location myLocation; + + +private: + + + + +}; + + +#include + + + + + +#endif // _BRep_CurveRepresentation_HeaderFile diff --git a/src/BRep/BRep_GCurve.cdl b/src/BRep/BRep_GCurve.cdl deleted file mode 100644 index f703884ef2..0000000000 --- a/src/BRep/BRep_GCurve.cdl +++ /dev/null @@ -1,70 +0,0 @@ --- Created on: 1995-03-09 --- Created by: Laurent PAINNOT --- 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. - -deferred class GCurve from BRep inherits CurveRepresentation from BRep - - ---Purpose: Root class for the geometric curves - -- representation. Contains a range. - -- Contains a first and a last parameter. -uses - - Location from TopLoc, - Pnt from gp - -is - - Initialize(L : Location from TopLoc; First, Last : Real); - - SetRange(me : mutable; First, Last : Real) - ---C++: inline - is static; - - Range(me; First, Last : out Real) - ---C++: inline - is static; - - First(me) returns Real - ---C++: inline - is static; - - Last(me) returns Real - ---C++: inline - is static; - - First(me : mutable; F : Real) - ---C++: inline - is static; - - Last(me : mutable; L : Real) - ---C++: inline - is static; - - - D0(me; U : Real; P : out Pnt from gp) - ---Purpose: Computes the point at parameter U. - is deferred; - - - Update(me : mutable) - ---Purpose: Recomputes any derived data after a modification. - -- This is called when the range is modified. - is virtual; - -fields - myFirst : Real; - myLast : Real; - -end GCurve; diff --git a/src/BRep/BRep_GCurve.cxx b/src/BRep/BRep_GCurve.cxx index cbd84b4866..db29bbbf54 100644 --- a/src/BRep/BRep_GCurve.cxx +++ b/src/BRep/BRep_GCurve.cxx @@ -14,13 +14,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include //======================================================================= //function : BRep_GCurve //purpose : //======================================================================= - BRep_GCurve::BRep_GCurve(const TopLoc_Location& L, const Standard_Real First, const Standard_Real Last): diff --git a/src/BRep/BRep_GCurve.hxx b/src/BRep/BRep_GCurve.hxx new file mode 100644 index 0000000000..ce8ff73eed --- /dev/null +++ b/src/BRep/BRep_GCurve.hxx @@ -0,0 +1,88 @@ +// Created on: 1995-03-09 +// Created by: Laurent PAINNOT +// 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 _BRep_GCurve_HeaderFile +#define _BRep_GCurve_HeaderFile + +#include +#include + +#include +#include +class TopLoc_Location; +class gp_Pnt; + + +class BRep_GCurve; +DEFINE_STANDARD_HANDLE(BRep_GCurve, BRep_CurveRepresentation) + +//! Root class for the geometric curves +//! representation. Contains a range. +//! Contains a first and a last parameter. +class BRep_GCurve : public BRep_CurveRepresentation +{ + +public: + + + void SetRange (const Standard_Real First, const Standard_Real Last); + + void Range (Standard_Real& First, Standard_Real& Last) const; + + Standard_Real First() const; + + Standard_Real Last() const; + + void First (const Standard_Real F); + + void Last (const Standard_Real L); + + //! Computes the point at parameter U. + Standard_EXPORT virtual void D0 (const Standard_Real U, gp_Pnt& P) const = 0; + + //! Recomputes any derived data after a modification. + //! This is called when the range is modified. + Standard_EXPORT virtual void Update(); + + + + + DEFINE_STANDARD_RTTI(BRep_GCurve,BRep_CurveRepresentation) + +protected: + + + Standard_EXPORT BRep_GCurve(const TopLoc_Location& L, const Standard_Real First, const Standard_Real Last); + + + +private: + + + Standard_Real myFirst; + Standard_Real myLast; + + +}; + + +#include + + + + + +#endif // _BRep_GCurve_HeaderFile diff --git a/src/BRep/BRep_PointOnCurve.cdl b/src/BRep/BRep_PointOnCurve.cdl deleted file mode 100644 index 67e501fb59..0000000000 --- a/src/BRep/BRep_PointOnCurve.cdl +++ /dev/null @@ -1,54 +0,0 @@ --- Created on: 1993-08-10 --- 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. - -class PointOnCurve from BRep inherits PointRepresentation from BRep - - ---Purpose: Representation by a parameter on a 3D curve. - -uses - Curve from Geom, - Location from TopLoc - -is - - Create(P : Real; - C : Curve from Geom; - L : Location from TopLoc) - returns PointOnCurve from BRep; - - - IsPointOnCurve(me) returns Boolean - ---Purpose: Returns True - is redefined; - - IsPointOnCurve(me; C : Curve from Geom; - L : Location from TopLoc) returns Boolean - is redefined; - - - Curve(me) returns any Curve from Geom - ---C++: return const & - is redefined; - - Curve(me : mutable; C : Curve from Geom) - is redefined; - - -fields - - myCurve : Curve from Geom; - -end PointOnCurve; diff --git a/src/BRep/BRep_PointOnCurve.cxx b/src/BRep/BRep_PointOnCurve.cxx index 937e03431e..d90147ed8b 100644 --- a/src/BRep/BRep_PointOnCurve.cxx +++ b/src/BRep/BRep_PointOnCurve.cxx @@ -14,14 +14,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include //======================================================================= //function : BRep_PointOnCurve //purpose : //======================================================================= - BRep_PointOnCurve::BRep_PointOnCurve(const Standard_Real P, const Handle(Geom_Curve)& C, const TopLoc_Location& L) : diff --git a/src/BRep/BRep_PointOnCurve.hxx b/src/BRep/BRep_PointOnCurve.hxx new file mode 100644 index 0000000000..d89f4babaf --- /dev/null +++ b/src/BRep/BRep_PointOnCurve.hxx @@ -0,0 +1,75 @@ +// Created on: 1993-08-10 +// 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 _BRep_PointOnCurve_HeaderFile +#define _BRep_PointOnCurve_HeaderFile + +#include +#include + +#include +#include +#include +class Geom_Curve; +class TopLoc_Location; + + +class BRep_PointOnCurve; +DEFINE_STANDARD_HANDLE(BRep_PointOnCurve, BRep_PointRepresentation) + +//! Representation by a parameter on a 3D curve. +class BRep_PointOnCurve : public BRep_PointRepresentation +{ + +public: + + + Standard_EXPORT BRep_PointOnCurve(const Standard_Real P, const Handle(Geom_Curve)& C, const TopLoc_Location& L); + + //! Returns True + Standard_EXPORT virtual Standard_Boolean IsPointOnCurve() const Standard_OVERRIDE; + + Standard_EXPORT virtual Standard_Boolean IsPointOnCurve (const Handle(Geom_Curve)& C, const TopLoc_Location& L) const Standard_OVERRIDE; + + Standard_EXPORT virtual const Handle(Geom_Curve)& Curve() const Standard_OVERRIDE; + + Standard_EXPORT virtual void Curve (const Handle(Geom_Curve)& C) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(BRep_PointOnCurve,BRep_PointRepresentation) + +protected: + + + + +private: + + + Handle(Geom_Curve) myCurve; + + +}; + + + + + + + +#endif // _BRep_PointOnCurve_HeaderFile diff --git a/src/BRep/BRep_PointOnCurveOnSurface.cdl b/src/BRep/BRep_PointOnCurveOnSurface.cdl deleted file mode 100644 index c2d9a52ea5..0000000000 --- a/src/BRep/BRep_PointOnCurveOnSurface.cdl +++ /dev/null @@ -1,57 +0,0 @@ --- Created on: 1993-08-10 --- 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. - -class PointOnCurveOnSurface from BRep inherits PointsOnSurface from BRep - ---Purpose: Representation by a parameter on a curve on a - -- surface. - -uses - - Curve from Geom2d, - Surface from Geom, - Location from TopLoc - -is - - Create(P : Real; - C : Curve from Geom2d; - S : Surface from Geom; - L : Location from TopLoc) - returns PointOnCurveOnSurface from BRep; - - IsPointOnCurveOnSurface(me) returns Boolean - ---Purpose: Returns True - is redefined; - - IsPointOnCurveOnSurface(me; PC : Curve from Geom2d; - S : Surface from Geom; - L : Location from TopLoc) - returns Boolean - is redefined; - - - PCurve(me) returns any Curve from Geom2d - ---C++: return const & - is redefined; - - PCurve(me : mutable; C : Curve from Geom2d) - is redefined; - -fields - - myPCurve : Curve from Geom2d; - -end PointOnCurveOnSurface; diff --git a/src/BRep/BRep_PointOnCurveOnSurface.cxx b/src/BRep/BRep_PointOnCurveOnSurface.cxx index 0432d567cb..e667535a50 100644 --- a/src/BRep/BRep_PointOnCurveOnSurface.cxx +++ b/src/BRep/BRep_PointOnCurveOnSurface.cxx @@ -14,14 +14,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include //======================================================================= //function : BRep_PointOnCurveOnSurface //purpose : //======================================================================= - BRep_PointOnCurveOnSurface::BRep_PointOnCurveOnSurface (const Standard_Real P, const Handle(Geom2d_Curve)& C, diff --git a/src/BRep/BRep_PointOnCurveOnSurface.hxx b/src/BRep/BRep_PointOnCurveOnSurface.hxx new file mode 100644 index 0000000000..39703037ef --- /dev/null +++ b/src/BRep/BRep_PointOnCurveOnSurface.hxx @@ -0,0 +1,77 @@ +// Created on: 1993-08-10 +// 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 _BRep_PointOnCurveOnSurface_HeaderFile +#define _BRep_PointOnCurveOnSurface_HeaderFile + +#include +#include + +#include +#include +#include +class Geom2d_Curve; +class Geom_Surface; +class TopLoc_Location; + + +class BRep_PointOnCurveOnSurface; +DEFINE_STANDARD_HANDLE(BRep_PointOnCurveOnSurface, BRep_PointsOnSurface) + +//! Representation by a parameter on a curve on a +//! surface. +class BRep_PointOnCurveOnSurface : public BRep_PointsOnSurface +{ + +public: + + + Standard_EXPORT BRep_PointOnCurveOnSurface(const Standard_Real P, const Handle(Geom2d_Curve)& C, const Handle(Geom_Surface)& S, const TopLoc_Location& L); + + //! Returns True + Standard_EXPORT virtual Standard_Boolean IsPointOnCurveOnSurface() const Standard_OVERRIDE; + + Standard_EXPORT virtual Standard_Boolean IsPointOnCurveOnSurface (const Handle(Geom2d_Curve)& PC, const Handle(Geom_Surface)& S, const TopLoc_Location& L) const Standard_OVERRIDE; + + Standard_EXPORT virtual const Handle(Geom2d_Curve)& PCurve() const Standard_OVERRIDE; + + Standard_EXPORT virtual void PCurve (const Handle(Geom2d_Curve)& C) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(BRep_PointOnCurveOnSurface,BRep_PointsOnSurface) + +protected: + + + + +private: + + + Handle(Geom2d_Curve) myPCurve; + + +}; + + + + + + + +#endif // _BRep_PointOnCurveOnSurface_HeaderFile diff --git a/src/BRep/BRep_PointOnSurface.cdl b/src/BRep/BRep_PointOnSurface.cdl deleted file mode 100644 index f8488f7ac4..0000000000 --- a/src/BRep/BRep_PointOnSurface.cdl +++ /dev/null @@ -1,49 +0,0 @@ --- Created on: 1993-08-10 --- 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. - -class PointOnSurface from BRep inherits PointsOnSurface from BRep - ---Purpose: Representation by two parameters on a surface. - -uses - Surface from Geom, - Location from TopLoc - -is - Create(P1,P2 : Real; - S : Surface from Geom; - L : Location from TopLoc) - returns PointOnSurface from BRep; - - - IsPointOnSurface(me) returns Boolean - is redefined; - - IsPointOnSurface(me; S : Surface from Geom; - L : Location from TopLoc) returns Boolean - is redefined; - - Parameter2(me) returns Real - is redefined; - - Parameter2(me : mutable; P : Real) - is redefined; - - -fields - - myParameter2 : Real; - -end PointOnSurface; diff --git a/src/BRep/BRep_PointOnSurface.cxx b/src/BRep/BRep_PointOnSurface.cxx index 2aac3bb0a3..aacb5c62b5 100644 --- a/src/BRep/BRep_PointOnSurface.cxx +++ b/src/BRep/BRep_PointOnSurface.cxx @@ -14,14 +14,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include //======================================================================= //function : BRep_PointOnSurface //purpose : //======================================================================= - BRep_PointOnSurface::BRep_PointOnSurface(const Standard_Real P1, const Standard_Real P2, const Handle(Geom_Surface)& S, diff --git a/src/BRep/BRep_PointOnSurface.hxx b/src/BRep/BRep_PointOnSurface.hxx new file mode 100644 index 0000000000..3796c0886f --- /dev/null +++ b/src/BRep/BRep_PointOnSurface.hxx @@ -0,0 +1,74 @@ +// Created on: 1993-08-10 +// 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 _BRep_PointOnSurface_HeaderFile +#define _BRep_PointOnSurface_HeaderFile + +#include +#include + +#include +#include +#include +class Geom_Surface; +class TopLoc_Location; + + +class BRep_PointOnSurface; +DEFINE_STANDARD_HANDLE(BRep_PointOnSurface, BRep_PointsOnSurface) + +//! Representation by two parameters on a surface. +class BRep_PointOnSurface : public BRep_PointsOnSurface +{ + +public: + + + Standard_EXPORT BRep_PointOnSurface(const Standard_Real P1, const Standard_Real P2, const Handle(Geom_Surface)& S, const TopLoc_Location& L); + + Standard_EXPORT virtual Standard_Boolean IsPointOnSurface() const Standard_OVERRIDE; + + Standard_EXPORT virtual Standard_Boolean IsPointOnSurface (const Handle(Geom_Surface)& S, const TopLoc_Location& L) const Standard_OVERRIDE; + + Standard_EXPORT virtual Standard_Real Parameter2() const Standard_OVERRIDE; + + Standard_EXPORT virtual void Parameter2 (const Standard_Real P) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(BRep_PointOnSurface,BRep_PointsOnSurface) + +protected: + + + + +private: + + + Standard_Real myParameter2; + + +}; + + + + + + + +#endif // _BRep_PointOnSurface_HeaderFile diff --git a/src/BRep/BRep_PointRepresentation.cdl b/src/BRep/BRep_PointRepresentation.cdl deleted file mode 100644 index 375fe3b36d..0000000000 --- a/src/BRep/BRep_PointRepresentation.cdl +++ /dev/null @@ -1,154 +0,0 @@ --- Created on: 1993-08-10 --- 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. - -deferred class PointRepresentation from BRep inherits TShared from MMgt - - ---Purpose: Root class for the points representations. - -- Contains a location and a parameter. - -uses - Curve from Geom2d, - Curve from Geom, - Surface from Geom, - Location from TopLoc - -raises - DomainError from Standard - -is - - Initialize(P : Real; - L : Location from TopLoc); - - ------------------------------------------------- - -- What kind of representation - ------------------------------------------------- - - IsPointOnCurve(me) returns Boolean - ---Purpose: A point on a 3d curve. - is virtual; - - IsPointOnCurveOnSurface(me) returns Boolean - ---Purpose: A point on a 2d curve on a surface. - is virtual; - - IsPointOnSurface(me) returns Boolean - ---Purpose: A point on a surface. - is virtual; - - IsPointOnCurve(me; C : Curve from Geom; - L : Location from TopLoc) returns Boolean - ---Purpose: A point on the curve . - is virtual; - - IsPointOnCurveOnSurface(me; PC : Curve from Geom2d; - S : Surface from Geom; - L : Location from TopLoc) returns Boolean - ---Purpose: A point on the 2d curve on the surface . - is virtual; - - IsPointOnSurface(me; S : Surface from Geom; - L : Location from TopLoc) returns Boolean - ---Purpose: A point on the surface . - is virtual; - - ------------------------------------------------- - -- Location - ------------------------------------------------- - - Location(me) returns Location from TopLoc - ---C++: return const & - ---C++: inline - is static; - - Location(me : mutable; L : Location from TopLoc) - ---C++: inline - is static; - - ------------------------------------------------- - -- Parameters - ------------------------------------------------- - - Parameter(me) returns Real - ---C++: inline - is static; - - Parameter(me : mutable; P : Real) - ---C++: inline - is static; - - Parameter2(me) returns Real - raises - DomainError from Standard -- if !IsPointOnSurface - is virtual; - - Parameter2(me : mutable; P : Real) - raises - DomainError from Standard -- if !IsPointOnSurface - is virtual; - - ------------------------------------------------- - -- 3d curve - ------------------------------------------------- - - Curve(me) returns any Curve from Geom - ---C++: return const & - raises - DomainError from Standard -- if !IsPointOnCurve - is virtual; - - Curve(me : mutable; C : Curve from Geom) - raises - DomainError from Standard -- if !IsPointOnCurve - is virtual; - - - ------------------------------------------------- - -- curve on surface - ------------------------------------------------- - - PCurve(me) returns any Curve from Geom2d - ---C++: return const & - raises - DomainError from Standard -- if !IsPointOnCurveOnSurface - is virtual; - - PCurve(me : mutable; C : Curve from Geom2d) - raises - DomainError from Standard -- if !IsPointOnCurveOnSurface - is virtual; - - ------------------------------------------------- - -- surface - ------------------------------------------------- - - Surface(me) returns any Surface from Geom - ---C++: return const & - raises - DomainError from Standard -- if IsPointOnCurve() - is virtual; - - Surface(me : mutable; S : Surface from Geom) - raises - DomainError from Standard -- if IsPointOnCurve() - is virtual; - -fields - - myLocation : Location from TopLoc; - myParameter : Real; - -end PointRepresentation; diff --git a/src/BRep/BRep_PointRepresentation.cxx b/src/BRep/BRep_PointRepresentation.cxx index 132dd3264c..e247fa486f 100644 --- a/src/BRep/BRep_PointRepresentation.cxx +++ b/src/BRep/BRep_PointRepresentation.cxx @@ -14,13 +14,19 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRep_PointRepresentation //purpose : //======================================================================= - BRep_PointRepresentation::BRep_PointRepresentation(const Standard_Real P, const TopLoc_Location& L) : myLocation(L), diff --git a/src/BRep/BRep_PointRepresentation.hxx b/src/BRep/BRep_PointRepresentation.hxx new file mode 100644 index 0000000000..65fd8290cb --- /dev/null +++ b/src/BRep/BRep_PointRepresentation.hxx @@ -0,0 +1,115 @@ +// Created on: 1993-08-10 +// 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 _BRep_PointRepresentation_HeaderFile +#define _BRep_PointRepresentation_HeaderFile + +#include +#include + +#include +#include +#include +#include +class Standard_DomainError; +class TopLoc_Location; +class Geom_Curve; +class Geom2d_Curve; +class Geom_Surface; + + +class BRep_PointRepresentation; +DEFINE_STANDARD_HANDLE(BRep_PointRepresentation, MMgt_TShared) + +//! Root class for the points representations. +//! Contains a location and a parameter. +class BRep_PointRepresentation : public MMgt_TShared +{ + +public: + + + //! A point on a 3d curve. + Standard_EXPORT virtual Standard_Boolean IsPointOnCurve() const; + + //! A point on a 2d curve on a surface. + Standard_EXPORT virtual Standard_Boolean IsPointOnCurveOnSurface() const; + + //! A point on a surface. + Standard_EXPORT virtual Standard_Boolean IsPointOnSurface() const; + + //! A point on the curve . + Standard_EXPORT virtual Standard_Boolean IsPointOnCurve (const Handle(Geom_Curve)& C, const TopLoc_Location& L) const; + + //! A point on the 2d curve on the surface . + Standard_EXPORT virtual Standard_Boolean IsPointOnCurveOnSurface (const Handle(Geom2d_Curve)& PC, const Handle(Geom_Surface)& S, const TopLoc_Location& L) const; + + //! A point on the surface . + Standard_EXPORT virtual Standard_Boolean IsPointOnSurface (const Handle(Geom_Surface)& S, const TopLoc_Location& L) const; + + const TopLoc_Location& Location() const; + + void Location (const TopLoc_Location& L); + + Standard_Real Parameter() const; + + void Parameter (const Standard_Real P); + + Standard_EXPORT virtual Standard_Real Parameter2() const; + + Standard_EXPORT virtual void Parameter2 (const Standard_Real P); + + Standard_EXPORT virtual const Handle(Geom_Curve)& Curve() const; + + Standard_EXPORT virtual void Curve (const Handle(Geom_Curve)& C); + + Standard_EXPORT virtual const Handle(Geom2d_Curve)& PCurve() const; + + Standard_EXPORT virtual void PCurve (const Handle(Geom2d_Curve)& C); + + Standard_EXPORT virtual const Handle(Geom_Surface)& Surface() const; + + Standard_EXPORT virtual void Surface (const Handle(Geom_Surface)& S); + + + + + DEFINE_STANDARD_RTTI(BRep_PointRepresentation,MMgt_TShared) + +protected: + + + Standard_EXPORT BRep_PointRepresentation(const Standard_Real P, const TopLoc_Location& L); + + + +private: + + + TopLoc_Location myLocation; + Standard_Real myParameter; + + +}; + + +#include + + + + + +#endif // _BRep_PointRepresentation_HeaderFile diff --git a/src/BRep/BRep_PointsOnSurface.cdl b/src/BRep/BRep_PointsOnSurface.cdl deleted file mode 100644 index 08ea4faaa1..0000000000 --- a/src/BRep/BRep_PointsOnSurface.cdl +++ /dev/null @@ -1,43 +0,0 @@ --- Created on: 1993-08-10 --- 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. - -deferred class PointsOnSurface from BRep inherits PointRepresentation from BRep - - ---Purpose: Root for points on surface. - -uses - - Surface from Geom, - Location from TopLoc - -is - Initialize (P : Real; - S : Surface from Geom; - L : Location from TopLoc); - - - Surface(me) returns any Surface from Geom - ---C++: return const & - is redefined; - - Surface(me : mutable; S : Surface from Geom) - is redefined; - -fields - - mySurface : Surface from Geom; - -end PointsOnSurface; diff --git a/src/BRep/BRep_PointsOnSurface.cxx b/src/BRep/BRep_PointsOnSurface.cxx index bc8d189326..ca7d4aa5ab 100644 --- a/src/BRep/BRep_PointsOnSurface.cxx +++ b/src/BRep/BRep_PointsOnSurface.cxx @@ -14,14 +14,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include //======================================================================= //function : BRep_PointsOnSurface //purpose : //======================================================================= - BRep_PointsOnSurface::BRep_PointsOnSurface(const Standard_Real P, const Handle(Geom_Surface)& S, const TopLoc_Location& L) : diff --git a/src/BRep/BRep_PointsOnSurface.hxx b/src/BRep/BRep_PointsOnSurface.hxx new file mode 100644 index 0000000000..50d83db7fd --- /dev/null +++ b/src/BRep/BRep_PointsOnSurface.hxx @@ -0,0 +1,69 @@ +// Created on: 1993-08-10 +// 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 _BRep_PointsOnSurface_HeaderFile +#define _BRep_PointsOnSurface_HeaderFile + +#include +#include + +#include +#include +class Geom_Surface; +class TopLoc_Location; + + +class BRep_PointsOnSurface; +DEFINE_STANDARD_HANDLE(BRep_PointsOnSurface, BRep_PointRepresentation) + +//! Root for points on surface. +class BRep_PointsOnSurface : public BRep_PointRepresentation +{ + +public: + + + Standard_EXPORT virtual const Handle(Geom_Surface)& Surface() const Standard_OVERRIDE; + + Standard_EXPORT virtual void Surface (const Handle(Geom_Surface)& S) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(BRep_PointsOnSurface,BRep_PointRepresentation) + +protected: + + + Standard_EXPORT BRep_PointsOnSurface(const Standard_Real P, const Handle(Geom_Surface)& S, const TopLoc_Location& L); + + + +private: + + + Handle(Geom_Surface) mySurface; + + +}; + + + + + + + +#endif // _BRep_PointsOnSurface_HeaderFile diff --git a/src/BRep/BRep_Polygon3D.cdl b/src/BRep/BRep_Polygon3D.cdl deleted file mode 100644 index 2ae655a1d0..0000000000 --- a/src/BRep/BRep_Polygon3D.cdl +++ /dev/null @@ -1,59 +0,0 @@ --- Created on: 1995-03-09 --- Created by: Laurent PAINNOT --- 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. - -class Polygon3D from BRep inherits CurveRepresentation from BRep - - ---Purpose: Representation by a 3D polygon. - -uses - Polygon3D from Poly, - CurveRepresentation from BRep, - Location from TopLoc - -raises DomainError from Standard - -is - - Create(P: Polygon3D from Poly; - L: Location from TopLoc) - ---Purpose: - - returns Polygon3D from BRep; - - - IsPolygon3D(me) returns Boolean - ---Purpose: Returns True. - is redefined; - - Polygon3D(me) returns any Polygon3D from Poly - ---C++: return const& - is redefined; - - Polygon3D(me: mutable; P: Polygon3D from Poly) - raises - DomainError from Standard - is redefined; - - Copy(me) returns CurveRepresentation from BRep; - ---Purpose: Return a copy of this representation. - - -fields - -myPolygon3D: Polygon3D from Poly; - - -end Polygon3D; diff --git a/src/BRep/BRep_Polygon3D.cxx b/src/BRep/BRep_Polygon3D.cxx index c491be6c4a..0fff5bd9b7 100644 --- a/src/BRep/BRep_Polygon3D.cxx +++ b/src/BRep/BRep_Polygon3D.cxx @@ -14,14 +14,18 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRep_Polygon3D //purpose : //======================================================================= - BRep_Polygon3D::BRep_Polygon3D(const Handle(Poly_Polygon3D)& P, const TopLoc_Location& L): BRep_CurveRepresentation(L), diff --git a/src/BRep/BRep_Polygon3D.hxx b/src/BRep/BRep_Polygon3D.hxx new file mode 100644 index 0000000000..743faa145c --- /dev/null +++ b/src/BRep/BRep_Polygon3D.hxx @@ -0,0 +1,77 @@ +// Created on: 1995-03-09 +// Created by: Laurent PAINNOT +// 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 _BRep_Polygon3D_HeaderFile +#define _BRep_Polygon3D_HeaderFile + +#include +#include + +#include +#include +class Poly_Polygon3D; +class Standard_DomainError; +class TopLoc_Location; +class BRep_CurveRepresentation; + + +class BRep_Polygon3D; +DEFINE_STANDARD_HANDLE(BRep_Polygon3D, BRep_CurveRepresentation) + +//! Representation by a 3D polygon. +class BRep_Polygon3D : public BRep_CurveRepresentation +{ + +public: + + + Standard_EXPORT BRep_Polygon3D(const Handle(Poly_Polygon3D)& P, const TopLoc_Location& L); + + //! Returns True. + Standard_EXPORT virtual Standard_Boolean IsPolygon3D() const Standard_OVERRIDE; + + Standard_EXPORT virtual const Handle(Poly_Polygon3D)& Polygon3D() const Standard_OVERRIDE; + + Standard_EXPORT virtual void Polygon3D (const Handle(Poly_Polygon3D)& P) Standard_OVERRIDE; + + //! Return a copy of this representation. + Standard_EXPORT Handle(BRep_CurveRepresentation) Copy() const; + + + + + DEFINE_STANDARD_RTTI(BRep_Polygon3D,BRep_CurveRepresentation) + +protected: + + + + +private: + + + Handle(Poly_Polygon3D) myPolygon3D; + + +}; + + + + + + + +#endif // _BRep_Polygon3D_HeaderFile diff --git a/src/BRep/BRep_PolygonOnClosedSurface.cdl b/src/BRep/BRep_PolygonOnClosedSurface.cdl deleted file mode 100644 index 8e0dc5c3f0..0000000000 --- a/src/BRep/BRep_PolygonOnClosedSurface.cdl +++ /dev/null @@ -1,59 +0,0 @@ --- Created on: 1995-03-15 --- Created by: Laurent PAINNOT --- 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. - -class PolygonOnClosedSurface from BRep - - inherits PolygonOnSurface from BRep - - ---Purpose: Representation by two 2d polygons in the parametric - -- space of a surface. - -uses Polygon2D from Poly, - Surface from Geom, - CurveRepresentation from BRep, - Location from TopLoc - - - -is - Create(P1: Polygon2D from Poly; - P2: Polygon2D from Poly; - S: Surface from Geom; - L: Location from TopLoc) - returns PolygonOnClosedSurface from BRep; - - - IsPolygonOnClosedSurface(me) returns Boolean - ---Purpose: returns True. - is redefined; - - Polygon2(me) returns any Polygon2D from Poly - ---C++: return const& - is redefined; - - Polygon2(me: mutable; P: Polygon2D from Poly) - is redefined; - - - Copy(me) returns CurveRepresentation from BRep - ---Purpose: Return a copy of this representation. - is redefined; - -fields - -myPolygon2: Polygon2D from Poly; - -end PolygonOnClosedSurface; diff --git a/src/BRep/BRep_PolygonOnClosedSurface.cxx b/src/BRep/BRep_PolygonOnClosedSurface.cxx index 750545f884..a5e9b2eb33 100644 --- a/src/BRep/BRep_PolygonOnClosedSurface.cxx +++ b/src/BRep/BRep_PolygonOnClosedSurface.cxx @@ -14,13 +14,18 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRep_PolygonOnClosedSurface //purpose : //======================================================================= - BRep_PolygonOnClosedSurface::BRep_PolygonOnClosedSurface(const Handle(Poly_Polygon2D)& P1, const Handle(Poly_Polygon2D)& P2, const Handle(Geom_Surface)& S, diff --git a/src/BRep/BRep_PolygonOnClosedSurface.hxx b/src/BRep/BRep_PolygonOnClosedSurface.hxx new file mode 100644 index 0000000000..467167876f --- /dev/null +++ b/src/BRep/BRep_PolygonOnClosedSurface.hxx @@ -0,0 +1,78 @@ +// Created on: 1995-03-15 +// Created by: Laurent PAINNOT +// 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 _BRep_PolygonOnClosedSurface_HeaderFile +#define _BRep_PolygonOnClosedSurface_HeaderFile + +#include +#include + +#include +#include +class Poly_Polygon2D; +class Geom_Surface; +class TopLoc_Location; +class BRep_CurveRepresentation; + + +class BRep_PolygonOnClosedSurface; +DEFINE_STANDARD_HANDLE(BRep_PolygonOnClosedSurface, BRep_PolygonOnSurface) + +//! Representation by two 2d polygons in the parametric +//! space of a surface. +class BRep_PolygonOnClosedSurface : public BRep_PolygonOnSurface +{ + +public: + + + Standard_EXPORT BRep_PolygonOnClosedSurface(const Handle(Poly_Polygon2D)& P1, const Handle(Poly_Polygon2D)& P2, const Handle(Geom_Surface)& S, const TopLoc_Location& L); + + //! returns True. + Standard_EXPORT virtual Standard_Boolean IsPolygonOnClosedSurface() const Standard_OVERRIDE; + + Standard_EXPORT virtual const Handle(Poly_Polygon2D)& Polygon2() const Standard_OVERRIDE; + + Standard_EXPORT virtual void Polygon2 (const Handle(Poly_Polygon2D)& P) Standard_OVERRIDE; + + //! Return a copy of this representation. + Standard_EXPORT virtual Handle(BRep_CurveRepresentation) Copy() const Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(BRep_PolygonOnClosedSurface,BRep_PolygonOnSurface) + +protected: + + + + +private: + + + Handle(Poly_Polygon2D) myPolygon2; + + +}; + + + + + + + +#endif // _BRep_PolygonOnClosedSurface_HeaderFile diff --git a/src/BRep/BRep_PolygonOnClosedTriangulation.cdl b/src/BRep/BRep_PolygonOnClosedTriangulation.cdl deleted file mode 100644 index c4960db0a9..0000000000 --- a/src/BRep/BRep_PolygonOnClosedTriangulation.cdl +++ /dev/null @@ -1,64 +0,0 @@ --- Created on: 1995-03-15 --- Created by: Laurent PAINNOT --- 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. - -class PolygonOnClosedTriangulation from BRep - - inherits PolygonOnTriangulation from BRep - - - ---Purpose: A representation by two arrays of nodes on a - -- triangulation. - - -uses HArray1OfInteger from TColStd, - Array1OfInteger from TColStd, - Location from TopLoc, - CurveRepresentation from BRep, - Triangulation from Poly, - PolygonOnTriangulation from Poly - - -is - - Create(P1, P2 : PolygonOnTriangulation from Poly; - Tr: Triangulation from Poly; - L : Location from TopLoc) - returns PolygonOnClosedTriangulation from BRep; - - - IsPolygonOnClosedTriangulation(me) returns Boolean - ---Purpose: Returns True. - is redefined; - - - PolygonOnTriangulation2(me: mutable; P2: PolygonOnTriangulation from Poly) - is redefined; - - - PolygonOnTriangulation2(me) returns any PolygonOnTriangulation from Poly - ---C++: return const& - is redefined; - - - Copy(me) returns CurveRepresentation from BRep is redefined; - ---Purpose: Return a copy of this representation. - - -fields - -myPolygon2: PolygonOnTriangulation from Poly; - -end PolygonOnClosedTriangulation; diff --git a/src/BRep/BRep_PolygonOnClosedTriangulation.cxx b/src/BRep/BRep_PolygonOnClosedTriangulation.cxx index 327f0c4692..5ddbf521e2 100644 --- a/src/BRep/BRep_PolygonOnClosedTriangulation.cxx +++ b/src/BRep/BRep_PolygonOnClosedTriangulation.cxx @@ -14,13 +14,18 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRep_PolygonOnClosedTriangulation //purpose : //======================================================================= - BRep_PolygonOnClosedTriangulation::BRep_PolygonOnClosedTriangulation (const Handle(Poly_PolygonOnTriangulation)& P1, const Handle(Poly_PolygonOnTriangulation)& P2, diff --git a/src/BRep/BRep_PolygonOnClosedTriangulation.hxx b/src/BRep/BRep_PolygonOnClosedTriangulation.hxx new file mode 100644 index 0000000000..81b69f8ff6 --- /dev/null +++ b/src/BRep/BRep_PolygonOnClosedTriangulation.hxx @@ -0,0 +1,78 @@ +// Created on: 1995-03-15 +// Created by: Laurent PAINNOT +// 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 _BRep_PolygonOnClosedTriangulation_HeaderFile +#define _BRep_PolygonOnClosedTriangulation_HeaderFile + +#include +#include + +#include +#include +class Poly_PolygonOnTriangulation; +class Poly_Triangulation; +class TopLoc_Location; +class BRep_CurveRepresentation; + + +class BRep_PolygonOnClosedTriangulation; +DEFINE_STANDARD_HANDLE(BRep_PolygonOnClosedTriangulation, BRep_PolygonOnTriangulation) + +//! A representation by two arrays of nodes on a +//! triangulation. +class BRep_PolygonOnClosedTriangulation : public BRep_PolygonOnTriangulation +{ + +public: + + + Standard_EXPORT BRep_PolygonOnClosedTriangulation(const Handle(Poly_PolygonOnTriangulation)& P1, const Handle(Poly_PolygonOnTriangulation)& P2, const Handle(Poly_Triangulation)& Tr, const TopLoc_Location& L); + + //! Returns True. + Standard_EXPORT virtual Standard_Boolean IsPolygonOnClosedTriangulation() const Standard_OVERRIDE; + + Standard_EXPORT virtual void PolygonOnTriangulation2 (const Handle(Poly_PolygonOnTriangulation)& P2) Standard_OVERRIDE; + + Standard_EXPORT virtual const Handle(Poly_PolygonOnTriangulation)& PolygonOnTriangulation2() const Standard_OVERRIDE; + + //! Return a copy of this representation. + Standard_EXPORT virtual Handle(BRep_CurveRepresentation) Copy() const Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(BRep_PolygonOnClosedTriangulation,BRep_PolygonOnTriangulation) + +protected: + + + + +private: + + + Handle(Poly_PolygonOnTriangulation) myPolygon2; + + +}; + + + + + + + +#endif // _BRep_PolygonOnClosedTriangulation_HeaderFile diff --git a/src/BRep/BRep_PolygonOnSurface.cdl b/src/BRep/BRep_PolygonOnSurface.cdl deleted file mode 100644 index 4c178a032c..0000000000 --- a/src/BRep/BRep_PolygonOnSurface.cdl +++ /dev/null @@ -1,78 +0,0 @@ --- Created on: 1995-03-14 --- Created by: Laurent PAINNOT --- 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. - -class PolygonOnSurface from BRep inherits CurveRepresentation from BRep - - ---Purpose: Representation of a 2D polygon in the parametric - -- space of a surface. - - -uses - Polygon2D from Poly, - Surface from Geom, - CurveRepresentation from BRep, - Location from TopLoc - - -raises DomainError from Standard - - -is - - Create(P: Polygon2D from Poly; - S: Surface from Geom; - L: Location from TopLoc) - returns PolygonOnSurface from BRep; - - - IsPolygonOnSurface(me) returns Boolean - ---Purpose: A 2D polygon representation in the parametric - -- space of a surface. - is redefined; - - - IsPolygonOnSurface(me; S: Surface from Geom; L: Location from TopLoc) - returns Boolean - ---Purpose: A 2D polygon representation in the parametric - -- space of a surface. - is redefined; - - - Surface(me) returns any Surface from Geom - ---C++: return const& - is redefined; - - - Polygon(me) returns any Polygon2D from Poly - ---C++: return const & - is redefined; - - Polygon(me: mutable; P: Polygon2D from Poly) - is redefined; - - - Copy(me) returns CurveRepresentation from BRep - ---Purpose: Return a copy of this representation. - is redefined; - - -fields - -myPolygon2D: Polygon2D from Poly; -mySurface : Surface from Geom; - - -end PolygonOnSurface; diff --git a/src/BRep/BRep_PolygonOnSurface.cxx b/src/BRep/BRep_PolygonOnSurface.cxx index 42becce1e9..1904c3080b 100644 --- a/src/BRep/BRep_PolygonOnSurface.cxx +++ b/src/BRep/BRep_PolygonOnSurface.cxx @@ -14,15 +14,19 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRep_PolygonOnSurface //purpose : //======================================================================= - BRep_PolygonOnSurface::BRep_PolygonOnSurface(const Handle(Poly_Polygon2D)& P, const Handle(Geom_Surface)& S, const TopLoc_Location& L): diff --git a/src/BRep/BRep_PolygonOnSurface.hxx b/src/BRep/BRep_PolygonOnSurface.hxx new file mode 100644 index 0000000000..80f81e0594 --- /dev/null +++ b/src/BRep/BRep_PolygonOnSurface.hxx @@ -0,0 +1,87 @@ +// Created on: 1995-03-14 +// Created by: Laurent PAINNOT +// 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 _BRep_PolygonOnSurface_HeaderFile +#define _BRep_PolygonOnSurface_HeaderFile + +#include +#include + +#include +#include +class Poly_Polygon2D; +class Geom_Surface; +class Standard_DomainError; +class TopLoc_Location; +class BRep_CurveRepresentation; + + +class BRep_PolygonOnSurface; +DEFINE_STANDARD_HANDLE(BRep_PolygonOnSurface, BRep_CurveRepresentation) + +//! Representation of a 2D polygon in the parametric +//! space of a surface. +class BRep_PolygonOnSurface : public BRep_CurveRepresentation +{ + +public: + + + Standard_EXPORT BRep_PolygonOnSurface(const Handle(Poly_Polygon2D)& P, const Handle(Geom_Surface)& S, const TopLoc_Location& L); + + //! A 2D polygon representation in the parametric + //! space of a surface. + Standard_EXPORT virtual Standard_Boolean IsPolygonOnSurface() const Standard_OVERRIDE; + + //! A 2D polygon representation in the parametric + //! space of a surface. + Standard_EXPORT virtual Standard_Boolean IsPolygonOnSurface (const Handle(Geom_Surface)& S, const TopLoc_Location& L) const Standard_OVERRIDE; + + Standard_EXPORT virtual const Handle(Geom_Surface)& Surface() const Standard_OVERRIDE; + + Standard_EXPORT virtual const Handle(Poly_Polygon2D)& Polygon() const Standard_OVERRIDE; + + Standard_EXPORT virtual void Polygon (const Handle(Poly_Polygon2D)& P) Standard_OVERRIDE; + + //! Return a copy of this representation. + Standard_EXPORT virtual Handle(BRep_CurveRepresentation) Copy() const Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(BRep_PolygonOnSurface,BRep_CurveRepresentation) + +protected: + + + + +private: + + + Handle(Poly_Polygon2D) myPolygon2D; + Handle(Geom_Surface) mySurface; + + +}; + + + + + + + +#endif // _BRep_PolygonOnSurface_HeaderFile diff --git a/src/BRep/BRep_PolygonOnTriangulation.cdl b/src/BRep/BRep_PolygonOnTriangulation.cdl deleted file mode 100644 index a4551e259f..0000000000 --- a/src/BRep/BRep_PolygonOnTriangulation.cdl +++ /dev/null @@ -1,69 +0,0 @@ --- Created on: 1995-03-15 --- Created by: Laurent PAINNOT --- 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. - -class PolygonOnTriangulation from BRep inherits CurveRepresentation from BRep - - - ---Purpose: A representation by an array of nodes on a - -- triangulation. - - -uses Location from TopLoc, - PolygonOnTriangulation from Poly, - Triangulation from Poly - - -is - - Create(P: PolygonOnTriangulation from Poly; - T: Triangulation from Poly; - L: Location from TopLoc) - returns PolygonOnTriangulation from BRep; - - - IsPolygonOnTriangulation(me) returns Boolean - ---Purpose: returns True. - is redefined; - - IsPolygonOnTriangulation(me; T : Triangulation from Poly; - L : Location from TopLoc) returns Boolean - ---Purpose: Is it a polygon in the definition of with - -- location . - is redefined; - - PolygonOnTriangulation(me: mutable; P: PolygonOnTriangulation from Poly) - ---Purpose: returns True. - is redefined; - - Triangulation(me) returns any Triangulation from Poly - ---C++: return const& - is redefined; - - PolygonOnTriangulation(me) returns any PolygonOnTriangulation from Poly - ---C++: return const& - is redefined; - - - Copy(me) returns CurveRepresentation from BRep is virtual; - ---Purpose: Return a copy of this representation. - - -fields - -myPolygon : PolygonOnTriangulation from Poly; -myTriangulation : Triangulation from Poly; - -end PolygonOnTriangulation; diff --git a/src/BRep/BRep_PolygonOnTriangulation.cxx b/src/BRep/BRep_PolygonOnTriangulation.cxx index 6db1b04615..31ae62c80b 100644 --- a/src/BRep/BRep_PolygonOnTriangulation.cxx +++ b/src/BRep/BRep_PolygonOnTriangulation.cxx @@ -14,15 +14,18 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRep_PolygonOnTriangulation //purpose : //======================================================================= - BRep_PolygonOnTriangulation::BRep_PolygonOnTriangulation (const Handle(Poly_PolygonOnTriangulation)& P, const Handle(Poly_Triangulation)& T, diff --git a/src/BRep/BRep_PolygonOnTriangulation.hxx b/src/BRep/BRep_PolygonOnTriangulation.hxx new file mode 100644 index 0000000000..f233f3adf6 --- /dev/null +++ b/src/BRep/BRep_PolygonOnTriangulation.hxx @@ -0,0 +1,86 @@ +// Created on: 1995-03-15 +// Created by: Laurent PAINNOT +// 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 _BRep_PolygonOnTriangulation_HeaderFile +#define _BRep_PolygonOnTriangulation_HeaderFile + +#include +#include + +#include +#include +class Poly_PolygonOnTriangulation; +class Poly_Triangulation; +class TopLoc_Location; +class BRep_CurveRepresentation; + + +class BRep_PolygonOnTriangulation; +DEFINE_STANDARD_HANDLE(BRep_PolygonOnTriangulation, BRep_CurveRepresentation) + +//! A representation by an array of nodes on a +//! triangulation. +class BRep_PolygonOnTriangulation : public BRep_CurveRepresentation +{ + +public: + + + Standard_EXPORT BRep_PolygonOnTriangulation(const Handle(Poly_PolygonOnTriangulation)& P, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L); + + //! returns True. + Standard_EXPORT virtual Standard_Boolean IsPolygonOnTriangulation() const Standard_OVERRIDE; + + //! Is it a polygon in the definition of with + //! location . + Standard_EXPORT virtual Standard_Boolean IsPolygonOnTriangulation (const Handle(Poly_Triangulation)& T, const TopLoc_Location& L) const Standard_OVERRIDE; + + //! returns True. + Standard_EXPORT virtual void PolygonOnTriangulation (const Handle(Poly_PolygonOnTriangulation)& P) Standard_OVERRIDE; + + Standard_EXPORT virtual const Handle(Poly_Triangulation)& Triangulation() const Standard_OVERRIDE; + + Standard_EXPORT virtual const Handle(Poly_PolygonOnTriangulation)& PolygonOnTriangulation() const Standard_OVERRIDE; + + //! Return a copy of this representation. + Standard_EXPORT virtual Handle(BRep_CurveRepresentation) Copy() const; + + + + + DEFINE_STANDARD_RTTI(BRep_PolygonOnTriangulation,BRep_CurveRepresentation) + +protected: + + + + +private: + + + Handle(Poly_PolygonOnTriangulation) myPolygon; + Handle(Poly_Triangulation) myTriangulation; + + +}; + + + + + + + +#endif // _BRep_PolygonOnTriangulation_HeaderFile diff --git a/src/BRep/BRep_TEdge.cdl b/src/BRep/BRep_TEdge.cdl deleted file mode 100644 index df505dc635..0000000000 --- a/src/BRep/BRep_TEdge.cdl +++ /dev/null @@ -1,94 +0,0 @@ --- Created on: 1992-05-27 --- 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. - -class TEdge from BRep inherits TEdge from TopoDS - - ---Purpose: The TEdge from BRep is inherited from the TEdge - -- from TopoDS. It contains the geometric data. - -- - -- The TEdge contains : - -- - -- * A tolerance. - -- - -- * A same parameter flag. - -- - -- * A same range flag. - -- - -- * A Degenerated flag. - -- - -- * A list of curve representation. - -uses - TShape from TopoDS, - ListOfCurveRepresentation from BRep - -is - Create returns TEdge from BRep; - ---Purpose: Creates an empty TEdge. - - Tolerance(me) returns Real - ---C++: inline - is static; - - Tolerance(me : mutable; T : Real) - ---C++: inline - is static; - - UpdateTolerance(me : mutable; T : Real) - ---Purpose: Sets the tolerance to the max of and the - -- current tolerance. - -- - ---C++: inline - is static; - - SameParameter(me) returns Boolean - is static; - - SameParameter(me : mutable; S : Boolean) - is static; - - SameRange(me) returns Boolean - is static; - - SameRange(me : mutable; S : Boolean) - is static; - - Degenerated(me) returns Boolean - is static; - - Degenerated(me : mutable; S : Boolean) - is static; - - Curves(me) returns ListOfCurveRepresentation from BRep - ---C++: return const & - ---C++: inline - is static; - - ChangeCurves(me : mutable) returns ListOfCurveRepresentation from BRep - ---C++: return & - ---C++: inline - is static; - - EmptyCopy(me) returns TShape from TopoDS; - ---Purpose: Returns a copy of the TShape with no sub-shapes. - -fields - - myTolerance : Real; - myFlags : Integer; - myCurves : ListOfCurveRepresentation from BRep; - -end TEdge; diff --git a/src/BRep/BRep_TEdge.cxx b/src/BRep/BRep_TEdge.cxx index 14c2486b15..4f79b292ed 100644 --- a/src/BRep/BRep_TEdge.cxx +++ b/src/BRep/BRep_TEdge.cxx @@ -14,13 +14,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include + +#include #include -#include -#include #include -#include +#include +#include +#include +#include +#include +#include static const Standard_Integer ParameterMask = 1; static const Standard_Integer RangeMask = 2; diff --git a/src/BRep/BRep_TEdge.hxx b/src/BRep/BRep_TEdge.hxx new file mode 100644 index 0000000000..4b6d014870 --- /dev/null +++ b/src/BRep/BRep_TEdge.hxx @@ -0,0 +1,111 @@ +// Created on: 1992-05-27 +// 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 _BRep_TEdge_HeaderFile +#define _BRep_TEdge_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +class TopoDS_TShape; + + +class BRep_TEdge; +DEFINE_STANDARD_HANDLE(BRep_TEdge, TopoDS_TEdge) + +//! The TEdge from BRep is inherited from the TEdge +//! from TopoDS. It contains the geometric data. +//! +//! The TEdge contains : +//! +//! * A tolerance. +//! +//! * A same parameter flag. +//! +//! * A same range flag. +//! +//! * A Degenerated flag. +//! +//! * A list of curve representation. +class BRep_TEdge : public TopoDS_TEdge +{ + +public: + + + //! Creates an empty TEdge. + Standard_EXPORT BRep_TEdge(); + + Standard_Real Tolerance() const; + + void Tolerance (const Standard_Real T); + + //! Sets the tolerance to the max of and the + //! current tolerance. + void UpdateTolerance (const Standard_Real T); + + Standard_EXPORT Standard_Boolean SameParameter() const; + + Standard_EXPORT void SameParameter (const Standard_Boolean S); + + Standard_EXPORT Standard_Boolean SameRange() const; + + Standard_EXPORT void SameRange (const Standard_Boolean S); + + Standard_EXPORT Standard_Boolean Degenerated() const; + + Standard_EXPORT void Degenerated (const Standard_Boolean S); + + const BRep_ListOfCurveRepresentation& Curves() const; + + BRep_ListOfCurveRepresentation& ChangeCurves(); + + //! Returns a copy of the TShape with no sub-shapes. + Standard_EXPORT Handle(TopoDS_TShape) EmptyCopy() const; + + + + + DEFINE_STANDARD_RTTI(BRep_TEdge,TopoDS_TEdge) + +protected: + + + + +private: + + + Standard_Real myTolerance; + Standard_Integer myFlags; + BRep_ListOfCurveRepresentation myCurves; + + +}; + + +#include + + + + + +#endif // _BRep_TEdge_HeaderFile diff --git a/src/BRep/BRep_TFace.cdl b/src/BRep/BRep_TFace.cdl deleted file mode 100644 index d563f7cd86..0000000000 --- a/src/BRep/BRep_TFace.cdl +++ /dev/null @@ -1,100 +0,0 @@ --- Created on: 1992-05-27 --- 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. - -class TFace from BRep inherits TFace from TopoDS - - ---Purpose: The Tface from BRep is based on the TFace from - -- TopoDS. The TFace contains : - -- - -- * A suface, a tolerance and a Location. - -- - -- * A NaturalRestriction flag, when this flag is - -- True the boundary of the face is known to be the - -- parametric space (Umin, UMax, VMin, VMax). - -- - -- * An optional Triangulation. If there is a - -- triangulation the surface can be absent. - -- - -- The Location is used for the Surface. - -- - -- The triangulation is in the same reference system - -- than the TFace. A point on mySurface must be - -- transformed with myLocation, but not a point on - -- the triangulation. - -- - -- The Surface may be shared by different TFaces but - -- not the Triangulation, because the Triangulation - -- may be modified by the edges. - -- -uses - Surface from Geom, - Location from TopLoc, - TShape from TopoDS, - Triangulation from Poly - -is - - Create returns TFace from BRep; - ---Purpose: Creates an empty TFace. - - Surface(me) returns any Surface from Geom; - ---C++: inline - ---C++: return const & - - Triangulation(me) returns any Triangulation from Poly; - ---C++: inline - ---C++: return const & - - Location(me) returns Location from TopLoc; - ---C++: inline - ---C++: return const & - - Tolerance(me) returns Real; - ---C++: inline - - Surface(me : mutable; S : Surface from Geom); - ---C++: inline - - Triangulation(me : mutable; T : Triangulation from Poly); - ---C++: inline - - Location(me : mutable; L : Location from TopLoc); - ---C++: inline - - Tolerance(me : mutable; T : Real); - ---C++: inline - - NaturalRestriction(me) returns Boolean; - ---C++: inline - - NaturalRestriction(me : mutable; N : Boolean); - ---C++: inline - - EmptyCopy(me) returns TShape from TopoDS - ---Purpose: Returns a copy of the TShape with no sub-shapes. - -- The new Face has no triangulation. - is redefined; - -fields - - mySurface : Surface from Geom; - myTriangulation : Triangulation from Poly; - myLocation : Location from TopLoc; - myTolerance : Real; - myNaturalRestriction : Boolean; - -end TFace; - diff --git a/src/BRep/BRep_TFace.cxx b/src/BRep/BRep_TFace.cxx index 88e8a41d57..8f118b32cb 100644 --- a/src/BRep/BRep_TFace.cxx +++ b/src/BRep/BRep_TFace.cxx @@ -14,14 +14,19 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include #include +#include +#include //======================================================================= //function : BRep_TFace //purpose : //======================================================================= - BRep_TFace::BRep_TFace() : TopoDS_TFace(), myTolerance(RealEpsilon()), diff --git a/src/BRep/BRep_TFace.hxx b/src/BRep/BRep_TFace.hxx new file mode 100644 index 0000000000..cadecebcbe --- /dev/null +++ b/src/BRep/BRep_TFace.hxx @@ -0,0 +1,120 @@ +// Created on: 1992-05-27 +// 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 _BRep_TFace_HeaderFile +#define _BRep_TFace_HeaderFile + +#include +#include + +#include +#include +#include +#include +class Geom_Surface; +class Poly_Triangulation; +class TopLoc_Location; +class TopoDS_TShape; + + +class BRep_TFace; +DEFINE_STANDARD_HANDLE(BRep_TFace, TopoDS_TFace) + +//! The Tface from BRep is based on the TFace from +//! TopoDS. The TFace contains : +//! +//! * A suface, a tolerance and a Location. +//! +//! * A NaturalRestriction flag, when this flag is +//! True the boundary of the face is known to be the +//! parametric space (Umin, UMax, VMin, VMax). +//! +//! * An optional Triangulation. If there is a +//! triangulation the surface can be absent. +//! +//! The Location is used for the Surface. +//! +//! The triangulation is in the same reference system +//! than the TFace. A point on mySurface must be +//! transformed with myLocation, but not a point on +//! the triangulation. +//! +//! The Surface may be shared by different TFaces but +//! not the Triangulation, because the Triangulation +//! may be modified by the edges. +class BRep_TFace : public TopoDS_TFace +{ + +public: + + + //! Creates an empty TFace. + Standard_EXPORT BRep_TFace(); + + const Handle(Geom_Surface)& Surface() const; + + const Handle(Poly_Triangulation)& Triangulation() const; + + const TopLoc_Location& Location() const; + + Standard_Real Tolerance() const; + + void Surface (const Handle(Geom_Surface)& S); + + void Triangulation (const Handle(Poly_Triangulation)& T); + + void Location (const TopLoc_Location& L); + + void Tolerance (const Standard_Real T); + + Standard_Boolean NaturalRestriction() const; + + void NaturalRestriction (const Standard_Boolean N); + + //! Returns a copy of the TShape with no sub-shapes. + //! The new Face has no triangulation. + Standard_EXPORT virtual Handle(TopoDS_TShape) EmptyCopy() const Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(BRep_TFace,TopoDS_TFace) + +protected: + + + + +private: + + + Handle(Geom_Surface) mySurface; + Handle(Poly_Triangulation) myTriangulation; + TopLoc_Location myLocation; + Standard_Real myTolerance; + Standard_Boolean myNaturalRestriction; + + +}; + + +#include + + + + + +#endif // _BRep_TFace_HeaderFile diff --git a/src/BRep/BRep_TVertex.cdl b/src/BRep/BRep_TVertex.cdl deleted file mode 100644 index 6ab4201dc2..0000000000 --- a/src/BRep/BRep_TVertex.cdl +++ /dev/null @@ -1,75 +0,0 @@ --- Created on: 1992-05-27 --- 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. - -class TVertex from BRep inherits TVertex from TopoDS - - ---Purpose: The TVertex from BRep inherits from the TVertex - -- from TopoDS. It contains the geometric data. - -- - -- The TVertex contains a 3d point, location and a tolerance. - -- -uses - Pnt from gp, - TShape from TopoDS, - ListOfPointRepresentation from BRep - -is - Create returns TVertex from BRep; - - Tolerance(me) returns Real - ---C++: inline - is static; - - Tolerance(me : mutable; T : Real) - ---C++: inline - is static; - - UpdateTolerance(me : mutable; T : Real) - ---Purpose: Sets the tolerance to the max of and the - -- current tolerance. - -- - ---C++: inline - is static; - - Pnt(me) returns Pnt from gp - ---C++: inline - ---C++: return const & - is static; - - Pnt(me : mutable; P : Pnt from gp) - ---C++: inline - is static; - - Points(me) returns ListOfPointRepresentation from BRep - ---C++: inline - ---C++: return const & - is static; - - ChangePoints(me : mutable) returns ListOfPointRepresentation from BRep - ---C++: inline - ---C++: return & - is static; - - EmptyCopy(me) returns TShape from TopoDS; - ---Purpose: Returns a copy of the TShape with no sub-shapes. - -fields - - myPnt : Pnt from gp; - myTolerance : Real; - myPoints : ListOfPointRepresentation from BRep; - -end TVertex; diff --git a/src/BRep/BRep_TVertex.cxx b/src/BRep/BRep_TVertex.cxx index 4792e0deb9..3e18cc0fe2 100644 --- a/src/BRep/BRep_TVertex.cxx +++ b/src/BRep/BRep_TVertex.cxx @@ -14,14 +14,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include #include +#include //======================================================================= //function : BRep_TVertex //purpose : //======================================================================= - BRep_TVertex::BRep_TVertex() : TopoDS_TVertex(), myTolerance(RealEpsilon()) diff --git a/src/BRep/BRep_TVertex.hxx b/src/BRep/BRep_TVertex.hxx new file mode 100644 index 0000000000..61ca8604e3 --- /dev/null +++ b/src/BRep/BRep_TVertex.hxx @@ -0,0 +1,92 @@ +// Created on: 1992-05-27 +// 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 _BRep_TVertex_HeaderFile +#define _BRep_TVertex_HeaderFile + +#include +#include + +#include +#include +#include +#include +class gp_Pnt; +class TopoDS_TShape; + + +class BRep_TVertex; +DEFINE_STANDARD_HANDLE(BRep_TVertex, TopoDS_TVertex) + +//! The TVertex from BRep inherits from the TVertex +//! from TopoDS. It contains the geometric data. +//! +//! The TVertex contains a 3d point, location and a tolerance. +class BRep_TVertex : public TopoDS_TVertex +{ + +public: + + + Standard_EXPORT BRep_TVertex(); + + Standard_Real Tolerance() const; + + void Tolerance (const Standard_Real T); + + //! Sets the tolerance to the max of and the + //! current tolerance. + void UpdateTolerance (const Standard_Real T); + + const gp_Pnt& Pnt() const; + + void Pnt (const gp_Pnt& P); + + const BRep_ListOfPointRepresentation& Points() const; + + BRep_ListOfPointRepresentation& ChangePoints(); + + //! Returns a copy of the TShape with no sub-shapes. + Standard_EXPORT Handle(TopoDS_TShape) EmptyCopy() const; + + + + + DEFINE_STANDARD_RTTI(BRep_TVertex,TopoDS_TVertex) + +protected: + + + + +private: + + + gp_Pnt myPnt; + Standard_Real myTolerance; + BRep_ListOfPointRepresentation myPoints; + + +}; + + +#include + + + + + +#endif // _BRep_TVertex_HeaderFile diff --git a/src/BRep/BRep_Tool.cdl b/src/BRep/BRep_Tool.cdl deleted file mode 100644 index c81e737b8a..0000000000 --- a/src/BRep/BRep_Tool.cdl +++ /dev/null @@ -1,609 +0,0 @@ --- Created on: 1993-07-07 --- 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. - -class Tool from BRep - - ---Purpose: Provides class methods to access to the geometry - -- of BRep shapes. - -uses - Vertex from TopoDS, - Edge from TopoDS, - Face from TopoDS, - Shape from TopoDS, - Location from TopLoc, - Pnt from gp, - Pnt2d from gp, - Box2d from Bnd, - Curve from Geom2d, - Curve from Geom, - Surface from Geom, - Shape from GeomAbs, - - Triangulation from Poly, - Polygon3D from Poly, - Polygon2D from Poly, - PolygonOnTriangulation from Poly, - HArray1OfInteger from TColStd, - HArray1OfReal from TColStd - -raises - NullObject from Standard, - NoSuchObject from Standard - -is - - - ----------------------------------------------------------- - ----------------------------------------------------------- - -- Shape -- - ----------------------------------------------------------- - ----------------------------------------------------------- - IsClosed (myclass; S : Shape from TopoDS) returns Boolean from Standard; - ---Purpose: If S is Shell, returns True if it has no free boundaries (edges). - -- If S is Wire, returns True if it has no free ends (vertices). - -- (Internal and External sub-shepes are ignored in these checks) - -- If S is Edge, returns True if its vertices are the same. - -- For other shape types returns S.Closed(). - - ----------------------------------------------------------- - ----------------------------------------------------------- - -- Face -- - ----------------------------------------------------------- - ----------------------------------------------------------- - - - - ----------------------------------------------------------- - -- Face surface - ----------------------------------------------------------- - - - Surface(myclass; F : Face from TopoDS; - L : out Location from TopLoc) returns Surface from Geom - - ---Purpose: Returns the geometric surface of the face. Returns - -- in the location for the surface. - ---C++: return const & - raises - NullObject from Standard; - - Surface(myclass; F : Face from TopoDS) returns Surface from Geom - - ---Purpose: Returns the geometric surface of the face. It can - -- be a copy if there is a Location. - -- - raises - NullObject from Standard; - - Triangulation(myclass; F : Face from TopoDS; - L : out Location from TopLoc) returns Triangulation from Poly - - ---Purpose: Returns the Triangulation of the face. It is a - -- null handle if there is no triangulation. - -- - ---C++: return const & - raises - NullObject from Standard; - - - - ----------------------------------------------------------- - -- Face tolerance - ----------------------------------------------------------- - - Tolerance(myclass; F : Face from TopoDS) returns Real - - ---Purpose: Returns the tolerance of the face. - raises - NullObject from Standard; - - ----------------------------------------------------------- - -- Face natural restriction flag - ----------------------------------------------------------- - - NaturalRestriction(myclass; F : Face from TopoDS) returns Boolean - - ---Purpose: Returns the NaturalRestriction flag of the face. - raises - NullObject from Standard; - - - - - ----------------------------------------------------------- - ----------------------------------------------------------- - -- Edge -- - ----------------------------------------------------------- - ----------------------------------------------------------- - - IsGeometric(myclass; E: Edge from TopoDS) - ---Purpose: Returns True if is a 3d curve or a curve on - -- surface. - returns Boolean; - - ----------------------------------------------------------- - -- Edge 3d curve - ----------------------------------------------------------- - - Curve(myclass; E : Edge from TopoDS; - L : out Location from TopLoc; - First, Last : out Real) - returns Curve from Geom - - ---Purpose: Returns the 3D curve of the edge. May be a Null - -- handle. Returns in the location for the curve. - -- In and the parameter range. - -- - ---C++: return const & - raises - NullObject from Standard; - - - Curve(myclass; E : Edge from TopoDS; - First, Last : out Real) - returns Curve from Geom - - ---Purpose: Returns the 3D curve of the edge. May be a Null handle. - -- In and the parameter range. - -- It can be a copy if there is a Location. - raises - NullObject from Standard; - - ----------------------------------------------------------- - -- Edge 3d polygon - ----------------------------------------------------------- - - Polygon3D(myclass; E : Edge from TopoDS; - L : out Location from TopLoc) - returns Polygon3D from Poly - - ---Purpose: Returns the 3D polygon of the edge. May be a Null - -- handle. Returns in the location for the polygon. - -- - ---C++: return const & - raises - NullObject from Standard; - - - ----------------------------------------------------------- - -- Edge curve on surface - ----------------------------------------------------------- - - CurveOnSurface(myclass; E : Edge from TopoDS; - F : Face from TopoDS; - First, Last : out Real) - returns Curve from Geom2d - - ---Purpose: Returns the curve associated to the edge in the - -- parametric space of the face. Returns a NULL - -- handle if this curve does not exist. Returns in - -- and the parameter range. - raises - NullObject from Standard; - - - CurveOnSurface(myclass; E : Edge from TopoDS; - S : Surface from Geom; - L : Location from TopLoc; - First, Last : out Real) - returns Curve from Geom2d - - ---Purpose: Returns the curve associated to the edge in the - -- parametric space of the surface. Returns a NULL - -- handle if this curve does not exist. Returns in - -- and the parameter range. - raises - NullObject from Standard; - - - CurveOnSurface(myclass; E : Edge from TopoDS; - C : out Curve from Geom2d; - S : out Surface from Geom; - L : out Location from TopLoc; - First, Last : out Real) - - ---Purpose: Returns in , , a 2d curve, a surface and - -- a location for the edge . and are null - -- if the edge has no curve on surface. Returns in - -- and the parameter range. - raises - NullObject from Standard; - - CurveOnSurface(myclass; E : Edge from TopoDS; - C : out Curve from Geom2d; - S : out Surface from Geom; - L : out Location from TopLoc; - First, Last : out Real; - Index : Integer) - - ---Purpose: Returns in , , the 2d curve, the surface - -- and the location for the edge of rank . - -- and are null if the index is out of range. - -- Returns in and the parameter range. - raises - NullObject from Standard; - - ----------------------------------------------------------- - -- Edge polygon on surface - ----------------------------------------------------------- - - PolygonOnSurface(myclass; E : Edge from TopoDS; - F : Face from TopoDS) - returns Polygon2D from Poly - - ---Purpose: Returns the polygon associated to the edge in the - -- parametric space of the face. Returns a NULL - -- handle if this polygon does not exist. - raises - NullObject from Standard; - - PolygonOnSurface(myclass; E : Edge from TopoDS; - S : Surface from Geom; - L : Location from TopLoc) - returns Polygon2D from Poly - - ---Purpose: Returns the polygon associated to the edge in the - -- parametric space of the surface. Returns a NULL - -- handle if this polygon does not exist. - raises - NullObject from Standard; - - - PolygonOnSurface(myclass; E : Edge from TopoDS; - C : out Polygon2D from Poly; - S : out Surface from Geom; - L : out Location from TopLoc) - - ---Purpose: Returns in , , a 2d curve, a surface and - -- a location for the edge . and are null - -- if the edge has no polygon on surface. - raises - NullObject from Standard; - - PolygonOnSurface(myclass; E : Edge from TopoDS; - C : out Polygon2D from Poly; - S : out Surface from Geom; - L : out Location from TopLoc; - Index : Integer) - - ---Purpose: Returns in , , the 2d curve, the surface - -- and the location for the edge of rank . - -- and are null if the index is out of range. - raises - NullObject from Standard; - - - - ----------------------------------------------------------- - -- Edge polygon on triangulation - ----------------------------------------------------------- - - PolygonOnTriangulation(myclass; E : Edge from TopoDS; - T : Triangulation from Poly; - L : Location from TopLoc) - ---C++: return const & - returns PolygonOnTriangulation from Poly; - -- - ---Purpose: Returns the polygon associated to the edge in the - -- parametric space of the face. Returns a NULL - -- handle if this polygon does not exist. - - - PolygonOnTriangulation(myclass; E : Edge from TopoDS; - P : out PolygonOnTriangulation from Poly; - T : out Triangulation from Poly; - L : out Location from TopLoc) - - ---Purpose: Returns in

, , a polygon on triangulation, a - -- triangulation and a location for the edge . - --

and are null if the edge has no - -- polygon on triangulation. - raises - NullObject from Standard; - - PolygonOnTriangulation(myclass; E : Edge from TopoDS; - P : out PolygonOnTriangulation from Poly; - T : out Triangulation from Poly; - L : out Location from TopLoc; - Index : Integer) - ---Purpose: Returns in

, , a polygon on - -- triangulation, a triangulation and a location for - -- the edge for the range index. and are - -- null if the edge has no polygon on triangulation. - - raises - NullObject from Standard; - - - ----------------------------------------------------------- - -- Edge closed on surface - ----------------------------------------------------------- - - IsClosed(myclass; E : Edge from TopoDS; - F : Face from TopoDS) - returns Boolean - - ---Purpose: Returns True if has two PCurves in the - -- parametric space of . i.e. is on a closed - -- surface and is on the closing curve. - -- - raises - NullObject from Standard; - - - ----------------------------------------------------------- - -- Edge closed on surface - ----------------------------------------------------------- - - IsClosed(myclass; E : Edge from TopoDS; - S : Surface from Geom; - L : Location from TopLoc) - returns Boolean - - ---Purpose: Returns True if has two PCurves in the - -- parametric space of . i.e. is a closed - -- surface and is on the closing curve. - -- - raises - NullObject from Standard; - - ----------------------------------------------------------- - -- Edge closed on triangulation - ----------------------------------------------------------- - - IsClosed(myclass; E : Edge from TopoDS; - T : Triangulation from Poly; - L : Location from TopLoc) - returns Boolean - - ---Purpose: Returns True if has two arrays of indices in - -- the triangulation . - raises - NullObject from Standard; - - ----------------------------------------------------------- - -- Edge tolerance - ----------------------------------------------------------- - - Tolerance(myclass; E : Edge from TopoDS) returns Real - - ---Purpose: Returns the tolerance for . - raises - NullObject from Standard; - - ----------------------------------------------------------- - -- Edge flags - ----------------------------------------------------------- - - SameParameter(myclass; E : Edge from TopoDS) returns Boolean - - ---Purpose: Returns the SameParameter flag for the edge. - raises - NullObject from Standard; - - SameRange(myclass; E : Edge from TopoDS) returns Boolean - - ---Purpose: Returns the SameRange flag for the edge. - raises - NullObject from Standard; - - Degenerated(myclass; E : Edge from TopoDS) - returns Boolean - - ---Purpose: Returns True if the edge is degenerated. - raises - NullObject from Standard; - - ------------------------------------------------------- - -- Edge parameter range - ------------------------------------------------------- - - Range(myclass; E : Edge from TopoDS; - First, Last : out Real) - ---Purpose: Gets the range of the 3d curve. - raises - NullObject from Standard; -- If is Null - - - Range(myclass; E : Edge from TopoDS; - S : Surface from Geom; - L : Location from TopLoc; - First, Last : out Real) - ---Purpose: Gets the range of the edge on the pcurve on the - -- surface. - raises - NullObject from Standard; -- If is Null - - - Range(myclass; E : Edge from TopoDS; - F : Face from TopoDS; - First, Last : out Real) - ---Purpose: Gets the range of the edge on the pcurve on the face. - raises - NullObject from Standard; -- If is Null - - - ------------------------------------------------------- - -- Edge UV points - -- - -- The data structures records a location in UV for the two - -- extremities of an edge. - -- - -- By default these location are computed from the PCurve. - -- - -- They can be updated to ensure their identity on connected edges. - -- (See the package BRepTools) - -- - ------------------------------------------------------- - - UVPoints(myclass; E : Edge from TopoDS; - S : Surface from Geom; - L : Location from TopLoc; - PFirst, PLast : out Pnt2d from gp) - ---Purpose: Gets the UV locations of the extremities of the edge. - raises - NullObject from Standard; -- If is Null - - - UVPoints(myclass; E : Edge from TopoDS; - F : Face from TopoDS; - PFirst, PLast : out Pnt2d from gp) - ---Purpose: Gets the UV locations of the extremities of the edge. - raises - NullObject from Standard; -- If is Null - - SetUVPoints(myclass; E : Edge from TopoDS; - S : Surface from Geom; - L : Location from TopLoc; - PFirst, PLast : Pnt2d from gp) - ---Purpose: Sets the UV locations of the extremities of the edge. - raises - NullObject from Standard; -- If is Null - - - SetUVPoints(myclass; E : Edge from TopoDS; - F : Face from TopoDS; - PFirst, PLast : Pnt2d from gp) - ---Purpose: Sets the UV locations of the extremities of the edge. - raises - NullObject from Standard; -- If is Null - - ----------------------------------------------------------- - -- Edge continuity - ----------------------------------------------------------- - - HasContinuity(myclass; E : Edge from TopoDS; - F1, F2 : Face from TopoDS) - returns Boolean - - ---Purpose: Returns True if the edge is on the surfaces of the - -- two faces. - raises - NullObject from Standard; -- If the edge or the faces are null. - - - Continuity(myclass; E : Edge from TopoDS; - F1, F2 : Face from TopoDS) - returns Shape from GeomAbs - - ---Purpose: Returns the continuity. - raises - NullObject from Standard; -- If the edge or the faces are null. - - HasContinuity(myclass; E : Edge from TopoDS; - S1, S2 : Surface from Geom; - L1, L2 : Location from TopLoc) - returns Boolean - - ---Purpose: Returns True if the edge is on the surfaces. - raises - NullObject from Standard; -- If the edge or the surfaces are null. - - - Continuity(myclass; E : Edge from TopoDS; - S1, S2 : Surface from Geom; - L1, L2 : Location from TopLoc) - returns Shape from GeomAbs - - ---Purpose: Returns the continuity. - raises - NullObject from Standard; -- If the edge or the faces are null. - - HasContinuity(myclass; E : Edge from TopoDS) - returns Boolean - - ---Purpose: Returns True if the edge has regularity on some - -- two surfaces - raises - NullObject from Standard; -- If the edge is null. - - ----------------------------------------------------------- - ----------------------------------------------------------- - -- Vertex -- - ----------------------------------------------------------- - ----------------------------------------------------------- - - - - ----------------------------------------------------------- - -- Vertex point - ----------------------------------------------------------- - - Pnt(myclass; V : Vertex from TopoDS) returns Pnt from gp - - ---Purpose: Returns the 3d point. - raises - NullObject from Standard; -- if is Null or has no geometry. - - ----------------------------------------------------------- - -- Vertex tolerance - ----------------------------------------------------------- - - Tolerance(myclass; V : Vertex from TopoDS) returns Real - - ---Purpose: Returns the tolerance. - raises - NullObject from Standard; -- if is Null or has no geometry. - - ----------------------------------------------------------- - -- Vertex parameter on edge - ----------------------------------------------------------- - - Parameter(myclass; V : Vertex from TopoDS; - E : Edge from TopoDS) - returns Real - - ---Purpose: Returns the parameter of on . - raises - NullObject from Standard; - - - - Parameter(myclass; V : Vertex from TopoDS; - E : Edge from TopoDS; - F : Face from TopoDS) - returns Real - - ---Purpose: Returns the parameters of the vertex on the - -- pcurve of the edge on the face. - raises - NullObject from Standard; - - - - Parameter(myclass; V : Vertex from TopoDS; - E : Edge from TopoDS; - S : Surface from Geom; - L : Location from TopLoc) - returns Real - - ---Purpose: Returns the parameters of the vertex on the - -- pcurve of the edge on the surface. - raises - NullObject from Standard; - - - Parameters(myclass; V : Vertex from TopoDS; - F : Face from TopoDS) - returns Pnt2d from gp - - ---Purpose: Returns the parameters of the vertex on the face. - raises - NullObject from Standard; - -end Tool; - diff --git a/src/BRep/BRep_Tool.cxx b/src/BRep/BRep_Tool.cxx index 2db772b26b..101d93f106 100644 --- a/src/BRep/BRep_Tool.cxx +++ b/src/BRep/BRep_Tool.cxx @@ -14,47 +14,59 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include -#include + +#include #include +#include +#include #include -#include #include -#include +#include #include -#include #include -#include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include #include #include -#include +#include #include -#include -#include -#include -#include #include #include -#include -#include -#include +#include +#include +#include +#include +#include #include +#include #include - -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include //modified by NIZNHY-PKV Fri Oct 17 14:13:29 2008f diff --git a/src/BRep/BRep_Tool.hxx b/src/BRep/BRep_Tool.hxx new file mode 100644 index 0000000000..03242eb834 --- /dev/null +++ b/src/BRep/BRep_Tool.hxx @@ -0,0 +1,267 @@ +// Created on: 1993-07-07 +// 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 _BRep_Tool_HeaderFile +#define _BRep_Tool_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class Standard_NullObject; +class Standard_NoSuchObject; +class TopoDS_Shape; +class Geom_Surface; +class TopoDS_Face; +class TopLoc_Location; +class Poly_Triangulation; +class TopoDS_Edge; +class Geom_Curve; +class Poly_Polygon3D; +class Geom2d_Curve; +class Poly_Polygon2D; +class Poly_PolygonOnTriangulation; +class gp_Pnt2d; +class gp_Pnt; +class TopoDS_Vertex; + + +//! Provides class methods to access to the geometry +//! of BRep shapes. +class BRep_Tool +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! If S is Shell, returns True if it has no free boundaries (edges). + //! If S is Wire, returns True if it has no free ends (vertices). + //! (Internal and External sub-shepes are ignored in these checks) + //! If S is Edge, returns True if its vertices are the same. + //! For other shape types returns S.Closed(). + Standard_EXPORT static Standard_Boolean IsClosed (const TopoDS_Shape& S); + + //! Returns the geometric surface of the face. Returns + //! in the location for the surface. + Standard_EXPORT static const Handle(Geom_Surface)& Surface (const TopoDS_Face& F, TopLoc_Location& L); + + //! Returns the geometric surface of the face. It can + //! be a copy if there is a Location. + Standard_EXPORT static Handle(Geom_Surface) Surface (const TopoDS_Face& F); + + //! Returns the Triangulation of the face. It is a + //! null handle if there is no triangulation. + Standard_EXPORT static const Handle(Poly_Triangulation)& Triangulation (const TopoDS_Face& F, TopLoc_Location& L); + + //! Returns the tolerance of the face. + Standard_EXPORT static Standard_Real Tolerance (const TopoDS_Face& F); + + //! Returns the NaturalRestriction flag of the face. + Standard_EXPORT static Standard_Boolean NaturalRestriction (const TopoDS_Face& F); + + //! Returns True if is a 3d curve or a curve on + //! surface. + Standard_EXPORT static Standard_Boolean IsGeometric (const TopoDS_Edge& E); + + //! Returns the 3D curve of the edge. May be a Null + //! handle. Returns in the location for the curve. + //! In and the parameter range. + Standard_EXPORT static const Handle(Geom_Curve)& Curve (const TopoDS_Edge& E, TopLoc_Location& L, Standard_Real& First, Standard_Real& Last); + + //! Returns the 3D curve of the edge. May be a Null handle. + //! In and the parameter range. + //! It can be a copy if there is a Location. + Standard_EXPORT static Handle(Geom_Curve) Curve (const TopoDS_Edge& E, Standard_Real& First, Standard_Real& Last); + + //! Returns the 3D polygon of the edge. May be a Null + //! handle. Returns in the location for the polygon. + Standard_EXPORT static const Handle(Poly_Polygon3D)& Polygon3D (const TopoDS_Edge& E, TopLoc_Location& L); + + //! Returns the curve associated to the edge in the + //! parametric space of the face. Returns a NULL + //! handle if this curve does not exist. Returns in + //! and the parameter range. + Standard_EXPORT static Handle(Geom2d_Curve) CurveOnSurface (const TopoDS_Edge& E, const TopoDS_Face& F, Standard_Real& First, Standard_Real& Last); + + //! Returns the curve associated to the edge in the + //! parametric space of the surface. Returns a NULL + //! handle if this curve does not exist. Returns in + //! and the parameter range. + Standard_EXPORT static Handle(Geom2d_Curve) CurveOnSurface (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, Standard_Real& First, Standard_Real& Last); + + //! Returns in , , a 2d curve, a surface and + //! a location for the edge . and are null + //! if the edge has no curve on surface. Returns in + //! and the parameter range. + Standard_EXPORT static void CurveOnSurface (const TopoDS_Edge& E, Handle(Geom2d_Curve)& C, Handle(Geom_Surface)& S, TopLoc_Location& L, Standard_Real& First, Standard_Real& Last); + + //! Returns in , , the 2d curve, the surface + //! and the location for the edge of rank . + //! and are null if the index is out of range. + //! Returns in and the parameter range. + Standard_EXPORT static void CurveOnSurface (const TopoDS_Edge& E, Handle(Geom2d_Curve)& C, Handle(Geom_Surface)& S, TopLoc_Location& L, Standard_Real& First, Standard_Real& Last, const Standard_Integer Index); + + //! Returns the polygon associated to the edge in the + //! parametric space of the face. Returns a NULL + //! handle if this polygon does not exist. + Standard_EXPORT static Handle(Poly_Polygon2D) PolygonOnSurface (const TopoDS_Edge& E, const TopoDS_Face& F); + + //! Returns the polygon associated to the edge in the + //! parametric space of the surface. Returns a NULL + //! handle if this polygon does not exist. + Standard_EXPORT static Handle(Poly_Polygon2D) PolygonOnSurface (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L); + + //! Returns in , , a 2d curve, a surface and + //! a location for the edge . and are null + //! if the edge has no polygon on surface. + Standard_EXPORT static void PolygonOnSurface (const TopoDS_Edge& E, Handle(Poly_Polygon2D)& C, Handle(Geom_Surface)& S, TopLoc_Location& L); + + //! Returns in , , the 2d curve, the surface + //! and the location for the edge of rank . + //! and are null if the index is out of range. + Standard_EXPORT static void PolygonOnSurface (const TopoDS_Edge& E, Handle(Poly_Polygon2D)& C, Handle(Geom_Surface)& S, TopLoc_Location& L, const Standard_Integer Index); + + //! Returns the polygon associated to the edge in the + //! parametric space of the face. Returns a NULL + //! handle if this polygon does not exist. + Standard_EXPORT static const Handle(Poly_PolygonOnTriangulation)& PolygonOnTriangulation (const TopoDS_Edge& E, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L); + + //! Returns in

, , a polygon on triangulation, a + //! triangulation and a location for the edge . + //!

and are null if the edge has no + //! polygon on triangulation. + Standard_EXPORT static void PolygonOnTriangulation (const TopoDS_Edge& E, Handle(Poly_PolygonOnTriangulation)& P, Handle(Poly_Triangulation)& T, TopLoc_Location& L); + + //! Returns in

, , a polygon on + //! triangulation, a triangulation and a location for + //! the edge for the range index. and are + //! null if the edge has no polygon on triangulation. + Standard_EXPORT static void PolygonOnTriangulation (const TopoDS_Edge& E, Handle(Poly_PolygonOnTriangulation)& P, Handle(Poly_Triangulation)& T, TopLoc_Location& L, const Standard_Integer Index); + + //! Returns True if has two PCurves in the + //! parametric space of . i.e. is on a closed + //! surface and is on the closing curve. + Standard_EXPORT static Standard_Boolean IsClosed (const TopoDS_Edge& E, const TopoDS_Face& F); + + //! Returns True if has two PCurves in the + //! parametric space of . i.e. is a closed + //! surface and is on the closing curve. + Standard_EXPORT static Standard_Boolean IsClosed (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L); + + //! Returns True if has two arrays of indices in + //! the triangulation . + Standard_EXPORT static Standard_Boolean IsClosed (const TopoDS_Edge& E, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L); + + //! Returns the tolerance for . + Standard_EXPORT static Standard_Real Tolerance (const TopoDS_Edge& E); + + //! Returns the SameParameter flag for the edge. + Standard_EXPORT static Standard_Boolean SameParameter (const TopoDS_Edge& E); + + //! Returns the SameRange flag for the edge. + Standard_EXPORT static Standard_Boolean SameRange (const TopoDS_Edge& E); + + //! Returns True if the edge is degenerated. + Standard_EXPORT static Standard_Boolean Degenerated (const TopoDS_Edge& E); + + //! Gets the range of the 3d curve. + Standard_EXPORT static void Range (const TopoDS_Edge& E, Standard_Real& First, Standard_Real& Last); + + //! Gets the range of the edge on the pcurve on the + //! surface. + Standard_EXPORT static void Range (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, Standard_Real& First, Standard_Real& Last); + + //! Gets the range of the edge on the pcurve on the face. + Standard_EXPORT static void Range (const TopoDS_Edge& E, const TopoDS_Face& F, Standard_Real& First, Standard_Real& Last); + + //! Gets the UV locations of the extremities of the edge. + Standard_EXPORT static void UVPoints (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, gp_Pnt2d& PFirst, gp_Pnt2d& PLast); + + //! Gets the UV locations of the extremities of the edge. + Standard_EXPORT static void UVPoints (const TopoDS_Edge& E, const TopoDS_Face& F, gp_Pnt2d& PFirst, gp_Pnt2d& PLast); + + //! Sets the UV locations of the extremities of the edge. + Standard_EXPORT static void SetUVPoints (const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L, const gp_Pnt2d& PFirst, const gp_Pnt2d& PLast); + + //! Sets the UV locations of the extremities of the edge. + Standard_EXPORT static void SetUVPoints (const TopoDS_Edge& E, const TopoDS_Face& F, const gp_Pnt2d& PFirst, const gp_Pnt2d& PLast); + + //! Returns True if the edge is on the surfaces of the + //! two faces. + Standard_EXPORT static Standard_Boolean HasContinuity (const TopoDS_Edge& E, const TopoDS_Face& F1, const TopoDS_Face& F2); + + //! Returns the continuity. + Standard_EXPORT static GeomAbs_Shape Continuity (const TopoDS_Edge& E, const TopoDS_Face& F1, const TopoDS_Face& F2); + + //! Returns True if the edge is on the surfaces. + Standard_EXPORT static Standard_Boolean HasContinuity (const TopoDS_Edge& E, const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const TopLoc_Location& L1, const TopLoc_Location& L2); + + //! Returns the continuity. + Standard_EXPORT static GeomAbs_Shape Continuity (const TopoDS_Edge& E, const Handle(Geom_Surface)& S1, const Handle(Geom_Surface)& S2, const TopLoc_Location& L1, const TopLoc_Location& L2); + + //! Returns True if the edge has regularity on some + //! two surfaces + Standard_EXPORT static Standard_Boolean HasContinuity (const TopoDS_Edge& E); + + //! Returns the 3d point. + Standard_EXPORT static gp_Pnt Pnt (const TopoDS_Vertex& V); + + //! Returns the tolerance. + Standard_EXPORT static Standard_Real Tolerance (const TopoDS_Vertex& V); + + //! Returns the parameter of on . + Standard_EXPORT static Standard_Real Parameter (const TopoDS_Vertex& V, const TopoDS_Edge& E); + + //! Returns the parameters of the vertex on the + //! pcurve of the edge on the face. + Standard_EXPORT static Standard_Real Parameter (const TopoDS_Vertex& V, const TopoDS_Edge& E, const TopoDS_Face& F); + + //! Returns the parameters of the vertex on the + //! pcurve of the edge on the surface. + Standard_EXPORT static Standard_Real Parameter (const TopoDS_Vertex& V, const TopoDS_Edge& E, const Handle(Geom_Surface)& S, const TopLoc_Location& L); + + //! Returns the parameters of the vertex on the face. + Standard_EXPORT static gp_Pnt2d Parameters (const TopoDS_Vertex& V, const TopoDS_Face& F); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRep_Tool_HeaderFile diff --git a/src/BRep/FILES b/src/BRep/FILES index 21b760bff9..c180c20063 100644 --- a/src/BRep/FILES +++ b/src/BRep/FILES @@ -1,4 +1,55 @@ -BRep_ListOfCurveRepresentation.hxx +BRep_Builder.cxx +BRep_Builder.hxx +BRep_Builder.lxx +BRep_Curve3D.cxx +BRep_Curve3D.hxx +BRep_CurveOn2Surfaces.cxx +BRep_CurveOn2Surfaces.hxx +BRep_CurveOnClosedSurface.cxx +BRep_CurveOnClosedSurface.hxx +BRep_CurveOnClosedSurface.lxx +BRep_CurveOnSurface.cxx +BRep_CurveOnSurface.hxx +BRep_CurveOnSurface.lxx +BRep_CurveRepresentation.cxx +BRep_CurveRepresentation.hxx +BRep_CurveRepresentation.lxx +BRep_GCurve.cxx +BRep_GCurve.hxx +BRep_GCurve.lxx BRep_ListIteratorOfListOfCurveRepresentation.hxx -BRep_ListOfPointRepresentation.hxx BRep_ListIteratorOfListOfPointRepresentation.hxx +BRep_ListOfCurveRepresentation.hxx +BRep_ListOfPointRepresentation.hxx +BRep_PointOnCurve.cxx +BRep_PointOnCurve.hxx +BRep_PointOnCurveOnSurface.cxx +BRep_PointOnCurveOnSurface.hxx +BRep_PointOnSurface.cxx +BRep_PointOnSurface.hxx +BRep_PointRepresentation.cxx +BRep_PointRepresentation.hxx +BRep_PointRepresentation.lxx +BRep_PointsOnSurface.cxx +BRep_PointsOnSurface.hxx +BRep_Polygon3D.cxx +BRep_Polygon3D.hxx +BRep_PolygonOnClosedSurface.cxx +BRep_PolygonOnClosedSurface.hxx +BRep_PolygonOnClosedTriangulation.cxx +BRep_PolygonOnClosedTriangulation.hxx +BRep_PolygonOnSurface.cxx +BRep_PolygonOnSurface.hxx +BRep_PolygonOnTriangulation.cxx +BRep_PolygonOnTriangulation.hxx +BRep_TEdge.cxx +BRep_TEdge.hxx +BRep_TEdge.lxx +BRep_TFace.cxx +BRep_TFace.hxx +BRep_TFace.lxx +BRep_Tool.cxx +BRep_Tool.hxx +BRep_TVertex.cxx +BRep_TVertex.hxx +BRep_TVertex.lxx diff --git a/src/BRepAdaptor/BRepAdaptor.cdl b/src/BRepAdaptor/BRepAdaptor.cdl deleted file mode 100644 index 3d2a76214c..0000000000 --- a/src/BRepAdaptor/BRepAdaptor.cdl +++ /dev/null @@ -1,75 +0,0 @@ --- 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. - -package BRepAdaptor - - ---Purpose: The BRepAdaptor package provides classes to access - -- the geometry of the BRep models. - -- - -- OverView of classes - -- - -- * Surface : Provides the methods of Surface from - -- Adpator on a Face. - -- - -- * Curve : Provides the methods of Curve from - -- Adaptor3d on an Edge. - -- - -- * Curve2d : Provides the methods of Curve2d from - -- Adaptor2d on an Edge on a Face. - -- - -uses - gp, - TCollection, - TColgp, - TColStd, - GeomAbs, - Adaptor3d, - Adaptor2d, - Geom, - Geom2d, - GeomAdaptor, - Geom2dAdaptor, - TopoDS, - BRep - -is - - class Surface; - - class Curve; - - class Curve2d; - - class CompCurve; - - class HSurface instantiates GenHSurface from Adaptor3d - (Surface from BRepAdaptor); - - class HCurve instantiates GenHCurve from Adaptor3d - (Curve from BRepAdaptor); - - class HCurve2d instantiates GenHCurve2d from Adaptor2d - (Curve2d from BRepAdaptor); - - class HCompCurve instantiates GenHCurve from Adaptor3d - (CompCurve from BRepAdaptor); - - imported Array1OfCurve; - - imported transient class HArray1OfCurve; - -end BRepAdaptor; diff --git a/src/BRepAdaptor/BRepAdaptor_CompCurve.cdl b/src/BRepAdaptor/BRepAdaptor_CompCurve.cdl deleted file mode 100644 index 89efb8c6d6..0000000000 --- a/src/BRepAdaptor/BRepAdaptor_CompCurve.cdl +++ /dev/null @@ -1,277 +0,0 @@ --- Created on: 1998-08-20 --- 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. - -class CompCurve from BRepAdaptor - -inherits Curve from Adaptor3d - - ---Purpose: The Curve from BRepAdaptor allows to use a Wire - -- of the BRep topology like a 3D curve. - -- Warning: With this class of curve, C0 and C1 continuities - -- are not assumed. So be carful with some algorithm! - -uses - Wire from TopoDS, - Edge from TopoDS, - CurveType from GeomAbs, - Shape from GeomAbs, - HCurve from Adaptor3d, - HArray1OfCurve from BRepAdaptor, - BezierCurve from Geom, - BSplineCurve from Geom, - Array1OfReal from TColStd, - HArray1OfReal from TColStd, - Pnt from gp, - Vec from gp, - Circ from gp, - Elips from gp, - Hypr from gp, - Parab from gp, - Lin from gp - -raises - NullObject from Standard, - DomainError from Standard, - OutOfRange from Standard, - NoSuchObject from Standard - -is - Create returns CompCurve from BRepAdaptor; - ---Purpose: Creates an undefined Curve with no Wire loaded. - - Create(W : Wire from TopoDS; - KnotByCurvilinearAbcissa : Boolean = Standard_False) - returns CompCurve from BRepAdaptor; - - Create(W : Wire from TopoDS; - KnotByCurvilinearAbcissa : Boolean; - First, Last, Tol : Real) - returns CompCurve from BRepAdaptor; - ---Purpose: Creates a Curve to acces to the geometry of edge - -- . - -- - - Initialize(me : in out; W : Wire from TopoDS; - KnotByCurvilinearAbcissa : Boolean) - ---Purpose: Sets the wire . - - is static; - - Initialize(me : in out; W : Wire from TopoDS; - KnotByCurvilinearAbcissa : Boolean; - First, Last, Tol : Real ) - ---Purpose: Sets wire and trimmed parameter. - is static; - - SetPeriodic(me: in out; Periodic : Boolean) - ---Purpose: Set the flag Periodic. - -- Warning: This method has no effect if the wire is not closed - is static; - - Wire(me) returns Wire from TopoDS - ---Purpose: Returns the wire. - -- - ---C++: return const & - is static; - - Edge(me; U : Real; - E : out Edge; - UonE : out Real) - ---Purpose: returns an edge and one parameter on them - -- corresponding to the parameter U. - is static; - - -- - -- Methods of Curve from GeomAdaptor. - -- - - FirstParameter(me) returns Real - is redefined static; - - LastParameter(me) returns Real - is redefined static; - - Continuity(me) returns Shape from GeomAbs - is redefined static; - - NbIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of intervals for continuity - -- . May be one if Continuity(me) >= - is redefined static; - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - raises - OutOfRange from Standard - is redefined static; - - Trim(me; First, Last, Tol : Real) returns HCurve from Adaptor3d - ---Purpose: Returns a curve equivalent of between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is redefined static; - - IsClosed(me) returns Boolean - is redefined static; - - IsPeriodic(me) returns Boolean - is redefined static; - - Period(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - is redefined static; - - - Value(me; U : Real) returns Pnt from gp - --- Purpose : Computes the point of parameter U on the curve - is redefined static; - - D0 (me; U : Real; P : out Pnt from gp) - --- Purpose : Computes the point of parameter U. - is redefined static; - - D1 (me; U : Real; P : out Pnt from gp ; V : out Vec from gp) - --- Purpose : Computes the point of parameter U on the curve - -- with its first derivative. - - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C1. - is redefined static; - - D2 (me; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp) - --- Purpose : - -- Returns the point P of parameter U, the first and second - -- derivatives V1 and V2. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C2. - is redefined static; - - D3 (me; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp) - --- Purpose : - -- Returns the point P of parameter U, the first, the second - -- and the third derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C3. - is redefined static; - - DN (me; U : Real; N : Integer) returns Vec from gp - --- Purpose : - -- The returned vector gives the value of the derivative for the - -- order of derivation N. - raises - DomainError from Standard, - --- Purpose : Raised if the continuity of the current interval - -- is not CN. - OutOfRange from Standard - --- Purpose : Raised if N < 1. - is redefined static; - - - Resolution(me; R3d :Real) returns Real - ---Purpose : returns the parametric resolution - is redefined static; - - - GetType(me) returns CurveType from GeomAbs - is redefined static; - - Line(me) returns Lin from gp - raises NoSuchObject from Standard - is redefined static; - - Circle(me) returns Circ from gp - raises NoSuchObject from Standard - is redefined static; - - Ellipse(me) returns Elips from gp - raises NoSuchObject from Standard - is redefined static; - - Hyperbola(me) returns Hypr from gp - raises NoSuchObject from Standard - is redefined static; - - Parabola(me) returns Parab from gp - raises NoSuchObject from Standard - is redefined static; - - - Degree(me) returns Integer - raises NoSuchObject from Standard - is redefined static; - - IsRational(me) returns Boolean - raises - NoSuchObject from Standard - is redefined static; - - NbPoles(me) returns Integer - raises NoSuchObject from Standard - is redefined static; - - NbKnots(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - - Bezier(me) returns BezierCurve from Geom - ---Warning : - -- This will make a copy of the Bezier Curve . - -- Be carefull when using this method - raises - NoSuchObject from Standard - is redefined static; - - BSpline(me) returns BSplineCurve from Geom - ---Warning : This will make a copy of the BSpline Curve. Be - -- carefull when using this method - - raises - NoSuchObject from Standard - is redefined static; - - Prepare(me; W, D: in out Real; ind : in out Integer) - is private; - - InvPrepare(me; ind : Integer; F, D: in out Real) - is private; - -fields - myWire : Wire from TopoDS; - TFirst, TLast, PTol, myPeriod : Real; - myCurves : HArray1OfCurve from BRepAdaptor; - myKnots : HArray1OfReal from TColStd; - CurIndex : Integer; - Forward : Boolean; - IsbyAC : Boolean; - Periodic : Boolean; - end CompCurve; diff --git a/src/BRepAdaptor/BRepAdaptor_CompCurve.cxx b/src/BRepAdaptor/BRepAdaptor_CompCurve.cxx index 2b9d89502f..bb72836bda 100644 --- a/src/BRepAdaptor/BRepAdaptor_CompCurve.cxx +++ b/src/BRepAdaptor/BRepAdaptor_CompCurve.cxx @@ -14,18 +14,33 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include #include -#include #include -#include +#include #include -#include - -#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include BRepAdaptor_CompCurve::BRepAdaptor_CompCurve() : TFirst (0.0), diff --git a/src/BRepAdaptor/BRepAdaptor_CompCurve.hxx b/src/BRepAdaptor/BRepAdaptor_CompCurve.hxx new file mode 100644 index 0000000000..5de39ef909 --- /dev/null +++ b/src/BRepAdaptor/BRepAdaptor_CompCurve.hxx @@ -0,0 +1,217 @@ +// Created on: 1998-08-20 +// 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 _BRepAdaptor_CompCurve_HeaderFile +#define _BRepAdaptor_CompCurve_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_NullObject; +class Standard_DomainError; +class Standard_OutOfRange; +class Standard_NoSuchObject; +class TopoDS_Wire; +class TopoDS_Edge; +class Adaptor3d_HCurve; +class gp_Pnt; +class gp_Vec; +class gp_Lin; +class gp_Circ; +class gp_Elips; +class gp_Hypr; +class gp_Parab; +class Geom_BezierCurve; +class Geom_BSplineCurve; + + +//! The Curve from BRepAdaptor allows to use a Wire +//! of the BRep topology like a 3D curve. +//! Warning: With this class of curve, C0 and C1 continuities +//! are not assumed. So be carful with some algorithm! +class BRepAdaptor_CompCurve : public Adaptor3d_Curve +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Creates an undefined Curve with no Wire loaded. + Standard_EXPORT BRepAdaptor_CompCurve(); + + Standard_EXPORT BRepAdaptor_CompCurve(const TopoDS_Wire& W, const Standard_Boolean KnotByCurvilinearAbcissa = Standard_False); + + //! Creates a Curve to acces to the geometry of edge + //! . + Standard_EXPORT BRepAdaptor_CompCurve(const TopoDS_Wire& W, const Standard_Boolean KnotByCurvilinearAbcissa, const Standard_Real First, const Standard_Real Last, const Standard_Real Tol); + + //! Sets the wire . + Standard_EXPORT void Initialize (const TopoDS_Wire& W, const Standard_Boolean KnotByCurvilinearAbcissa); + + //! Sets wire and trimmed parameter. + Standard_EXPORT void Initialize (const TopoDS_Wire& W, const Standard_Boolean KnotByCurvilinearAbcissa, const Standard_Real First, const Standard_Real Last, const Standard_Real Tol); + + //! Set the flag Periodic. + //! Warning: This method has no effect if the wire is not closed + Standard_EXPORT void SetPeriodic (const Standard_Boolean Periodic); + + //! Returns the wire. + Standard_EXPORT const TopoDS_Wire& Wire() const; + + //! returns an edge and one parameter on them + //! corresponding to the parameter U. + Standard_EXPORT void Edge (const Standard_Real U, TopoDS_Edge& E, Standard_Real& UonE) const; + + 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 accomodate + //! 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_HCurve) 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. + 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 + Standard_EXPORT Standard_Real Resolution (const Standard_Real R3d) const Standard_OVERRIDE; + + 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; + + + + +protected: + + + + + +private: + + + Standard_EXPORT void Prepare (Standard_Real& W, Standard_Real& D, Standard_Integer& ind) const; + + Standard_EXPORT void InvPrepare (const Standard_Integer ind, Standard_Real& F, Standard_Real& D) const; + + + TopoDS_Wire myWire; + Standard_Real TFirst; + Standard_Real TLast; + Standard_Real PTol; + Standard_Real myPeriod; + Handle(BRepAdaptor_HArray1OfCurve) myCurves; + Handle(TColStd_HArray1OfReal) myKnots; + Standard_Integer CurIndex; + Standard_Boolean Forward; + Standard_Boolean IsbyAC; + Standard_Boolean Periodic; + + +}; + + + + + + + +#endif // _BRepAdaptor_CompCurve_HeaderFile diff --git a/src/BRepAdaptor/BRepAdaptor_Curve.cdl b/src/BRepAdaptor/BRepAdaptor_Curve.cdl deleted file mode 100644 index 54c125746d..0000000000 --- a/src/BRepAdaptor/BRepAdaptor_Curve.cdl +++ /dev/null @@ -1,302 +0,0 @@ --- 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. - -class Curve from BRepAdaptor inherits Curve from Adaptor3d - - ---Purpose: The Curve from BRepAdaptor allows to use an Edge - -- of the BRep topology like a 3D curve. - -- - -- It has the methods the class Curve from Adaptor3d. - -- - -- It is created or Initialized with an Edge. It - -- takes into account local coordinate systems. If - -- the Edge has a 3D curve it is use with priority. - -- If the edge has no 3D curve one of the curves on - -- surface is used. It is possible to enforce using a - -- curve on surface by creating or initialising with - -- an Edge and a Face. - -uses - Edge from TopoDS, - Face from TopoDS, - CurveType from GeomAbs, - Shape from GeomAbs, - HCurve from Adaptor3d, - Curve from GeomAdaptor, - CurveOnSurface from Adaptor3d, - HCurveOnSurface from Adaptor3d, - BezierCurve from Geom, - BSplineCurve from Geom, - Array1OfReal from TColStd, - Trsf from gp, - Pnt from gp, - Vec from gp, - Circ from gp, - Elips from gp, - Hypr from gp, - Parab from gp, - Lin from gp - -raises - NullObject from Standard, - DomainError from Standard, - OutOfRange from Standard, - NoSuchObject from Standard - -is - Create returns Curve from BRepAdaptor; - ---Purpose: Creates an undefined Curve with no Edge loaded. - - Create(E : Edge from TopoDS) returns Curve from BRepAdaptor; - ---Purpose: Creates a Curve to acces to the geometry of edge - -- . - - Create(E : Edge from TopoDS; F : Face from TopoDS) - returns Curve from BRepAdaptor; - ---Purpose: Creates a Curve to acces to the geometry of edge - -- . The geometry will be computed using the - -- parametric curve of on the face . An Error - -- is raised if the edge does not have a pcurve on - -- the face. - - Initialize(me : in out; E : Edge from TopoDS) - ---Purpose: Sets the Curve to acces to the geometry of - -- edge . - is static; - - Initialize(me : in out; E : Edge from TopoDS; F : Face from TopoDS) - ---Purpose: Sets the Curve to acces to the geometry of - -- edge . The geometry will be computed using the - -- parametric curve of on the face . An Error - -- is raised if the edge does not have a pcurve on - -- the face. - raises DomainError from Standard - is static; - - Trsf(me) returns Trsf from gp - ---Purpose: Returns the coordinate system of the curve. - ---C++: return const & - is static; - - Is3DCurve(me) returns Boolean - ---Purpose: Returns True if the edge geometry is computed from - -- a 3D curve. - is static; - - IsCurveOnSurface(me) returns Boolean - ---Purpose: Returns True if the edge geometry is computed from - -- a pcurve on a surface. - is static; - - Curve(me) returns Curve from GeomAdaptor - ---Purpose: Returns the Curve of the edge. - ---C++: return const & - is static; - - CurveOnSurface(me) returns CurveOnSurface from Adaptor3d - ---Purpose: Returns the CurveOnSurface of the edge. - ---C++: return const & - is static; - - Edge(me) returns Edge from TopoDS - ---Purpose: Returns the edge. - -- - ---C++: return const & - is static; - - Tolerance(me) returns Real - ---Purpose: Returns the edge tolerance. - -- - is static; - - -- - -- Methods of Curve from GeomAdaptor. - -- - - FirstParameter(me) returns Real - is redefined static; - - LastParameter(me) returns Real - is redefined static; - - Continuity(me) returns Shape from GeomAbs - is redefined static; - - NbIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of intervals for continuity - -- . May be one if Continuity(me) >= - is redefined static; - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - raises - OutOfRange from Standard - is redefined static; - - Trim(me; First, Last, Tol : Real) returns HCurve from Adaptor3d - ---Purpose: Returns a curve equivalent of between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is redefined static; - - IsClosed(me) returns Boolean - is redefined static; - - IsPeriodic(me) returns Boolean - is redefined static; - - Period(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - is redefined static; - - - Value(me; U : Real) returns Pnt from gp - --- Purpose : Computes the point of parameter U on the curve - is redefined static; - - D0 (me; U : Real; P : out Pnt from gp) - --- Purpose : Computes the point of parameter U. - is redefined static; - - D1 (me; U : Real; P : out Pnt from gp ; V : out Vec from gp) - --- Purpose : Computes the point of parameter U on the curve - -- with its first derivative. - - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C1. - is redefined static; - - D2 (me; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp) - --- Purpose : - -- Returns the point P of parameter U, the first and second - -- derivatives V1 and V2. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C2. - is redefined static; - - D3 (me; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp) - --- Purpose : - -- Returns the point P of parameter U, the first, the second - -- and the third derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C3. - is redefined static; - - DN (me; U : Real; N : Integer) returns Vec from gp - --- Purpose : - -- The returned vector gives the value of the derivative for the - -- order of derivation N. - raises - DomainError from Standard, - --- Purpose : Raised if the continuity of the current interval - -- is not CN. - OutOfRange from Standard - --- Purpose : Raised if N < 1. - is redefined static; - - - Resolution(me; R3d :Real) returns Real - ---Purpose : returns the parametric resolution - is redefined static; - - - GetType(me) returns CurveType from GeomAbs - is redefined static; - - Line(me) returns Lin from gp - raises NoSuchObject from Standard - is redefined static; - - Circle(me) returns Circ from gp - raises NoSuchObject from Standard - is redefined static; - - Ellipse(me) returns Elips from gp - raises NoSuchObject from Standard - is redefined static; - - Hyperbola(me) returns Hypr from gp - raises NoSuchObject from Standard - is redefined static; - - Parabola(me) returns Parab from gp - raises NoSuchObject from Standard - is redefined static; - - - Degree(me) returns Integer - raises NoSuchObject from Standard - is redefined static; - - IsRational(me) returns Boolean - raises - NoSuchObject from Standard - is redefined static; - - NbPoles(me) returns Integer - raises NoSuchObject from Standard - is redefined static; - - NbKnots(me) returns Integer - raises - NoSuchObject from Standard - is redefined static; - - - Bezier(me) returns BezierCurve from Geom - ---Purpose: - -- Warning : - -- This will make a copy of the Bezier Curve - -- since it applies to it myTsrf . Be carefull when - -- using this method - raises - NoSuchObject from Standard - is redefined static; - - BSpline(me) returns BSplineCurve from Geom - ---Purpose: - -- Warning : - -- This will make a copy of the BSpline Curve - -- since it applies to it myTsrf . Be carefull when - -- using this method - - raises - NoSuchObject from Standard - is redefined static; - -fields - - myTrsf : Trsf from gp; - myCurve : Curve from GeomAdaptor; - myConSurf : HCurveOnSurface from Adaptor3d; - myEdge : Edge from TopoDS; - -end Curve; diff --git a/src/BRepAdaptor/BRepAdaptor_Curve.cxx b/src/BRepAdaptor/BRepAdaptor_Curve.cxx index bb15e5d45a..61fae26445 100644 --- a/src/BRepAdaptor/BRepAdaptor_Curve.cxx +++ b/src/BRepAdaptor/BRepAdaptor_Curve.cxx @@ -14,23 +14,39 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include #include +#include +#include #include -#include #include -#include -#include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRepAdaptor_Curve //purpose : //======================================================================= - BRepAdaptor_Curve::BRepAdaptor_Curve() {} diff --git a/src/BRepAdaptor/BRepAdaptor_Curve.hxx b/src/BRepAdaptor/BRepAdaptor_Curve.hxx new file mode 100644 index 0000000000..7440175f84 --- /dev/null +++ b/src/BRepAdaptor/BRepAdaptor_Curve.hxx @@ -0,0 +1,250 @@ +// 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_Curve_HeaderFile +#define _BRepAdaptor_Curve_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Adaptor3d_HCurveOnSurface; +class Standard_NullObject; +class Standard_DomainError; +class Standard_OutOfRange; +class Standard_NoSuchObject; +class TopoDS_Edge; +class TopoDS_Face; +class gp_Trsf; +class GeomAdaptor_Curve; +class Adaptor3d_CurveOnSurface; +class Adaptor3d_HCurve; +class gp_Pnt; +class gp_Vec; +class gp_Lin; +class gp_Circ; +class gp_Elips; +class gp_Hypr; +class gp_Parab; +class Geom_BezierCurve; +class Geom_BSplineCurve; + + +//! The Curve from BRepAdaptor allows to use an Edge +//! of the BRep topology like a 3D curve. +//! +//! It has the methods the class Curve from Adaptor3d. +//! +//! It is created or Initialized with an Edge. It +//! takes into account local coordinate systems. If +//! the Edge has a 3D curve it is use with priority. +//! If the edge has no 3D curve one of the curves on +//! surface is used. It is possible to enforce using a +//! curve on surface by creating or initialising with +//! an Edge and a Face. +class BRepAdaptor_Curve : public Adaptor3d_Curve +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Creates an undefined Curve with no Edge loaded. + Standard_EXPORT BRepAdaptor_Curve(); + + //! Creates a Curve to acces to the geometry of edge + //! . + Standard_EXPORT BRepAdaptor_Curve(const TopoDS_Edge& E); + + //! Creates a Curve to acces to the geometry of edge + //! . The geometry will be computed using the + //! parametric curve of on the face . An Error + //! is raised if the edge does not have a pcurve on + //! the face. + Standard_EXPORT BRepAdaptor_Curve(const TopoDS_Edge& E, const TopoDS_Face& F); + + //! Sets the Curve to acces to the geometry of + //! edge . + Standard_EXPORT void Initialize (const TopoDS_Edge& E); + + //! Sets the Curve to acces to the geometry of + //! edge . The geometry will be computed using the + //! parametric curve of on the face . An Error + //! is raised if the edge does not have a pcurve on + //! the face. + Standard_EXPORT void Initialize (const TopoDS_Edge& E, const TopoDS_Face& F); + + //! Returns the coordinate system of the curve. + Standard_EXPORT const gp_Trsf& Trsf() const; + + //! Returns True if the edge geometry is computed from + //! a 3D curve. + Standard_EXPORT Standard_Boolean Is3DCurve() const; + + //! Returns True if the edge geometry is computed from + //! a pcurve on a surface. + Standard_EXPORT Standard_Boolean IsCurveOnSurface() const; + + //! Returns the Curve of the edge. + Standard_EXPORT const GeomAdaptor_Curve& Curve() const; + + //! Returns the CurveOnSurface of the edge. + Standard_EXPORT const Adaptor3d_CurveOnSurface& CurveOnSurface() const; + + //! Returns the edge. + Standard_EXPORT const TopoDS_Edge& Edge() const; + + //! Returns the edge tolerance. + Standard_EXPORT Standard_Real Tolerance() const; + + 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 accomodate + //! 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_HCurve) 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. + 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 + Standard_EXPORT Standard_Real Resolution (const Standard_Real R3d) const Standard_OVERRIDE; + + 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; + + + //! Warning : + //! This will make a copy of the Bezier Curve + //! since it applies to it myTsrf . Be carefull when + //! using this method + Standard_EXPORT Handle(Geom_BezierCurve) Bezier() const Standard_OVERRIDE; + + + //! Warning : + //! This will make a copy of the BSpline Curve + //! since it applies to it myTsrf . Be carefull when + //! using this method + Standard_EXPORT Handle(Geom_BSplineCurve) BSpline() const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + gp_Trsf myTrsf; + GeomAdaptor_Curve myCurve; + Handle(Adaptor3d_HCurveOnSurface) myConSurf; + TopoDS_Edge myEdge; + + +}; + + + + + + + +#endif // _BRepAdaptor_Curve_HeaderFile diff --git a/src/BRepAdaptor/BRepAdaptor_Curve2d.cdl b/src/BRepAdaptor/BRepAdaptor_Curve2d.cdl deleted file mode 100644 index 477a184209..0000000000 --- a/src/BRepAdaptor/BRepAdaptor_Curve2d.cdl +++ /dev/null @@ -1,71 +0,0 @@ --- Created on: 1993-07-13 --- 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. - -class Curve2d from BRepAdaptor inherits Curve from Geom2dAdaptor - - ---Purpose: The Curve2d from BRepAdaptor allows to use an Edge - -- on a Face like a 2d curve. (curve in the - -- parametric space). - -- - -- It has the methods of the class Curve2d from - -- Adpator. - -- - -- It is created or initialized with a Face and an - -- Edge. The methods are inherited from Curve from - -- Geom2dAdaptor. - -uses - Face from TopoDS, - Edge from TopoDS - -raises - NullObject from Standard - -is - - Create returns Curve2d from BRepAdaptor; - ---Purpose: Creates an uninitialized curve2d. - - Create(E : Edge from TopoDS; F : Face from TopoDS) - returns Curve2d from BRepAdaptor - ---Purpose: Creates with the pcurve of on . - raises - NullObject from Standard; -- if has no pcurve on - - Initialize(me : in out; E : Edge from TopoDS; F : Face from TopoDS) - ---Purpose: Initialize with the pcurve of on . - raises - NullObject from Standard -- if has no pcurve on - is static; - - Edge(me) returns Edge from TopoDS - ---Purpose: Returns the Edge. - -- - ---C++: return const & - is static; - - Face(me) returns Face from TopoDS - ---Purpose: Returns the Face. - -- - ---C++: return const & - is static; - -fields - - myEdge : Edge from TopoDS; - myFace : Face from TopoDS; - -end Curve2d; diff --git a/src/BRepAdaptor/BRepAdaptor_Curve2d.cxx b/src/BRepAdaptor/BRepAdaptor_Curve2d.cxx index f657d0921d..2d121bed41 100644 --- a/src/BRepAdaptor/BRepAdaptor_Curve2d.cxx +++ b/src/BRepAdaptor/BRepAdaptor_Curve2d.cxx @@ -14,14 +14,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + #include +#include +#include +#include +#include //======================================================================= //function : BRepAdaptor_Curve2d //purpose : //======================================================================= - BRepAdaptor_Curve2d::BRepAdaptor_Curve2d() { } diff --git a/src/BRepAdaptor/BRepAdaptor_Curve2d.hxx b/src/BRepAdaptor/BRepAdaptor_Curve2d.hxx new file mode 100644 index 0000000000..cf220cc57f --- /dev/null +++ b/src/BRepAdaptor/BRepAdaptor_Curve2d.hxx @@ -0,0 +1,89 @@ +// Created on: 1993-07-13 +// 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_Curve2d_HeaderFile +#define _BRepAdaptor_Curve2d_HeaderFile + +#include +#include +#include + +#include +#include +#include +class Standard_NullObject; +class TopoDS_Edge; +class TopoDS_Face; + + +//! The Curve2d from BRepAdaptor allows to use an Edge +//! on a Face like a 2d curve. (curve in the +//! parametric space). +//! +//! It has the methods of the class Curve2d from +//! Adpator. +//! +//! It is created or initialized with a Face and an +//! Edge. The methods are inherited from Curve from +//! Geom2dAdaptor. +class BRepAdaptor_Curve2d : public Geom2dAdaptor_Curve +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Creates an uninitialized curve2d. + Standard_EXPORT BRepAdaptor_Curve2d(); + + //! Creates with the pcurve of on . + Standard_EXPORT BRepAdaptor_Curve2d(const TopoDS_Edge& E, const TopoDS_Face& F); + + //! Initialize with the pcurve of on . + Standard_EXPORT void Initialize (const TopoDS_Edge& E, const TopoDS_Face& F); + + //! Returns the Edge. + Standard_EXPORT const TopoDS_Edge& Edge() const; + + //! Returns the Face. + Standard_EXPORT const TopoDS_Face& Face() const; + + + + +protected: + + + + + +private: + + + + TopoDS_Edge myEdge; + TopoDS_Face myFace; + + +}; + + + + + + + +#endif // _BRepAdaptor_Curve2d_HeaderFile diff --git a/src/BRepAdaptor/BRepAdaptor_HCompCurve.hxx b/src/BRepAdaptor/BRepAdaptor_HCompCurve.hxx new file mode 100644 index 0000000000..271a374895 --- /dev/null +++ b/src/BRepAdaptor/BRepAdaptor_HCompCurve.hxx @@ -0,0 +1,89 @@ +// 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_HCompCurve_HeaderFile +#define _BRepAdaptor_HCompCurve_HeaderFile + +#include +#include + +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class BRepAdaptor_CompCurve; +class Adaptor3d_Curve; + + +class BRepAdaptor_HCompCurve; +DEFINE_STANDARD_HANDLE(BRepAdaptor_HCompCurve, Adaptor3d_HCurve) + + +class BRepAdaptor_HCompCurve : public Adaptor3d_HCurve +{ + +public: + + + Standard_EXPORT BRepAdaptor_HCompCurve(); + + Standard_EXPORT BRepAdaptor_HCompCurve(const BRepAdaptor_CompCurve& C); + + Standard_EXPORT void Set (const BRepAdaptor_CompCurve& C); + + Standard_EXPORT const Adaptor3d_Curve& Curve() const; + + Standard_EXPORT Adaptor3d_Curve& GetCurve(); + + BRepAdaptor_CompCurve& ChangeCurve(); + + + + + DEFINE_STANDARD_RTTI(BRepAdaptor_HCompCurve,Adaptor3d_HCurve) + +protected: + + + BRepAdaptor_CompCurve myCurve; + + +private: + + + + +}; + +#define TheCurve BRepAdaptor_CompCurve +#define TheCurve_hxx +#define Adaptor3d_GenHCurve BRepAdaptor_HCompCurve +#define Adaptor3d_GenHCurve_hxx +#define Handle_Adaptor3d_GenHCurve Handle(BRepAdaptor_HCompCurve) + +#include + +#undef TheCurve +#undef TheCurve_hxx +#undef Adaptor3d_GenHCurve +#undef Adaptor3d_GenHCurve_hxx +#undef Handle_Adaptor3d_GenHCurve + + + + +#endif // _BRepAdaptor_HCompCurve_HeaderFile diff --git a/src/BRepAdaptor/BRepAdaptor_HCompCurve_0.cxx b/src/BRepAdaptor/BRepAdaptor_HCompCurve_0.cxx new file mode 100644 index 0000000000..04211ebbbb --- /dev/null +++ b/src/BRepAdaptor/BRepAdaptor_HCompCurve_0.cxx @@ -0,0 +1,42 @@ +// 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. + +#include + +#include + +#include +#include +#include +#include +#include + + + + + + + + + + +#define TheCurve BRepAdaptor_CompCurve +#define TheCurve_hxx +#define Adaptor3d_GenHCurve BRepAdaptor_HCompCurve +#define Adaptor3d_GenHCurve_hxx +#define Handle_Adaptor3d_GenHCurve Handle(BRepAdaptor_HCompCurve) +#include + diff --git a/src/BRepAdaptor/BRepAdaptor_HCurve.hxx b/src/BRepAdaptor/BRepAdaptor_HCurve.hxx new file mode 100644 index 0000000000..2f1a19f9f1 --- /dev/null +++ b/src/BRepAdaptor/BRepAdaptor_HCurve.hxx @@ -0,0 +1,89 @@ +// 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_HCurve_HeaderFile +#define _BRepAdaptor_HCurve_HeaderFile + +#include +#include + +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class BRepAdaptor_Curve; +class Adaptor3d_Curve; + + +class BRepAdaptor_HCurve; +DEFINE_STANDARD_HANDLE(BRepAdaptor_HCurve, Adaptor3d_HCurve) + + +class BRepAdaptor_HCurve : public Adaptor3d_HCurve +{ + +public: + + + Standard_EXPORT BRepAdaptor_HCurve(); + + Standard_EXPORT BRepAdaptor_HCurve(const BRepAdaptor_Curve& C); + + Standard_EXPORT void Set (const BRepAdaptor_Curve& C); + + Standard_EXPORT const Adaptor3d_Curve& Curve() const; + + Standard_EXPORT Adaptor3d_Curve& GetCurve(); + + BRepAdaptor_Curve& ChangeCurve(); + + + + + DEFINE_STANDARD_RTTI(BRepAdaptor_HCurve,Adaptor3d_HCurve) + +protected: + + + BRepAdaptor_Curve myCurve; + + +private: + + + + +}; + +#define TheCurve BRepAdaptor_Curve +#define TheCurve_hxx +#define Adaptor3d_GenHCurve BRepAdaptor_HCurve +#define Adaptor3d_GenHCurve_hxx +#define Handle_Adaptor3d_GenHCurve Handle(BRepAdaptor_HCurve) + +#include + +#undef TheCurve +#undef TheCurve_hxx +#undef Adaptor3d_GenHCurve +#undef Adaptor3d_GenHCurve_hxx +#undef Handle_Adaptor3d_GenHCurve + + + + +#endif // _BRepAdaptor_HCurve_HeaderFile diff --git a/src/BRepAdaptor/BRepAdaptor_HCurve2d.hxx b/src/BRepAdaptor/BRepAdaptor_HCurve2d.hxx new file mode 100644 index 0000000000..ade0b2d8ae --- /dev/null +++ b/src/BRepAdaptor/BRepAdaptor_HCurve2d.hxx @@ -0,0 +1,87 @@ +// 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_HCurve2d_HeaderFile +#define _BRepAdaptor_HCurve2d_HeaderFile + +#include +#include + +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class BRepAdaptor_Curve2d; +class Adaptor2d_Curve2d; + + +class BRepAdaptor_HCurve2d; +DEFINE_STANDARD_HANDLE(BRepAdaptor_HCurve2d, Adaptor2d_HCurve2d) + + +class BRepAdaptor_HCurve2d : public Adaptor2d_HCurve2d +{ + +public: + + + Standard_EXPORT BRepAdaptor_HCurve2d(); + + Standard_EXPORT BRepAdaptor_HCurve2d(const BRepAdaptor_Curve2d& C); + + Standard_EXPORT void Set (const BRepAdaptor_Curve2d& C); + + Standard_EXPORT const Adaptor2d_Curve2d& Curve2d() const; + + BRepAdaptor_Curve2d& ChangeCurve2d(); + + + + + DEFINE_STANDARD_RTTI(BRepAdaptor_HCurve2d,Adaptor2d_HCurve2d) + +protected: + + + BRepAdaptor_Curve2d myCurve; + + +private: + + + + +}; + +#define TheCurve BRepAdaptor_Curve2d +#define TheCurve_hxx +#define Adaptor2d_GenHCurve2d BRepAdaptor_HCurve2d +#define Adaptor2d_GenHCurve2d_hxx +#define Handle_Adaptor2d_GenHCurve2d Handle(BRepAdaptor_HCurve2d) + +#include + +#undef TheCurve +#undef TheCurve_hxx +#undef Adaptor2d_GenHCurve2d +#undef Adaptor2d_GenHCurve2d_hxx +#undef Handle_Adaptor2d_GenHCurve2d + + + + +#endif // _BRepAdaptor_HCurve2d_HeaderFile diff --git a/src/BRepAdaptor/BRepAdaptor_HCurve2d_0.cxx b/src/BRepAdaptor/BRepAdaptor_HCurve2d_0.cxx new file mode 100644 index 0000000000..008350d6b7 --- /dev/null +++ b/src/BRepAdaptor/BRepAdaptor_HCurve2d_0.cxx @@ -0,0 +1,42 @@ +// 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. + +#include + +#include + +#include +#include +#include +#include +#include + + + + + + + + + + +#define TheCurve BRepAdaptor_Curve2d +#define TheCurve_hxx +#define Adaptor2d_GenHCurve2d BRepAdaptor_HCurve2d +#define Adaptor2d_GenHCurve2d_hxx +#define Handle_Adaptor2d_GenHCurve2d Handle(BRepAdaptor_HCurve2d) +#include + diff --git a/src/BRepAdaptor/BRepAdaptor_HCurve_0.cxx b/src/BRepAdaptor/BRepAdaptor_HCurve_0.cxx new file mode 100644 index 0000000000..c36285740b --- /dev/null +++ b/src/BRepAdaptor/BRepAdaptor_HCurve_0.cxx @@ -0,0 +1,42 @@ +// 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. + +#include + +#include + +#include +#include +#include +#include +#include + + + + + + + + + + +#define TheCurve BRepAdaptor_Curve +#define TheCurve_hxx +#define Adaptor3d_GenHCurve BRepAdaptor_HCurve +#define Adaptor3d_GenHCurve_hxx +#define Handle_Adaptor3d_GenHCurve Handle(BRepAdaptor_HCurve) +#include + diff --git a/src/BRepAdaptor/BRepAdaptor_HSurface.hxx b/src/BRepAdaptor/BRepAdaptor_HSurface.hxx new file mode 100644 index 0000000000..db88aa253a --- /dev/null +++ b/src/BRepAdaptor/BRepAdaptor_HSurface.hxx @@ -0,0 +1,87 @@ +// 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_HSurface_HeaderFile +#define _BRepAdaptor_HSurface_HeaderFile + +#include +#include + +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class BRepAdaptor_Surface; +class Adaptor3d_Surface; + + +class BRepAdaptor_HSurface; +DEFINE_STANDARD_HANDLE(BRepAdaptor_HSurface, Adaptor3d_HSurface) + + +class BRepAdaptor_HSurface : public Adaptor3d_HSurface +{ + +public: + + + Standard_EXPORT BRepAdaptor_HSurface(); + + Standard_EXPORT BRepAdaptor_HSurface(const BRepAdaptor_Surface& S); + + Standard_EXPORT void Set (const BRepAdaptor_Surface& S); + + Standard_EXPORT const Adaptor3d_Surface& Surface() const; + + BRepAdaptor_Surface& ChangeSurface(); + + + + + DEFINE_STANDARD_RTTI(BRepAdaptor_HSurface,Adaptor3d_HSurface) + +protected: + + + BRepAdaptor_Surface mySurf; + + +private: + + + + +}; + +#define TheSurface BRepAdaptor_Surface +#define TheSurface_hxx +#define Adaptor3d_GenHSurface BRepAdaptor_HSurface +#define Adaptor3d_GenHSurface_hxx +#define Handle_Adaptor3d_GenHSurface Handle(BRepAdaptor_HSurface) + +#include + +#undef TheSurface +#undef TheSurface_hxx +#undef Adaptor3d_GenHSurface +#undef Adaptor3d_GenHSurface_hxx +#undef Handle_Adaptor3d_GenHSurface + + + + +#endif // _BRepAdaptor_HSurface_HeaderFile diff --git a/src/BRepAdaptor/BRepAdaptor_HSurface_0.cxx b/src/BRepAdaptor/BRepAdaptor_HSurface_0.cxx new file mode 100644 index 0000000000..a29b8b11f5 --- /dev/null +++ b/src/BRepAdaptor/BRepAdaptor_HSurface_0.cxx @@ -0,0 +1,42 @@ +// 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. + +#include + +#include + +#include +#include +#include +#include +#include + + + + + + + + + + +#define TheSurface BRepAdaptor_Surface +#define TheSurface_hxx +#define Adaptor3d_GenHSurface BRepAdaptor_HSurface +#define Adaptor3d_GenHSurface_hxx +#define Handle_Adaptor3d_GenHSurface Handle(BRepAdaptor_HSurface) +#include + diff --git a/src/BRepAdaptor/BRepAdaptor_Surface.cdl b/src/BRepAdaptor/BRepAdaptor_Surface.cdl deleted file mode 100644 index d872875c7a..0000000000 --- a/src/BRepAdaptor/BRepAdaptor_Surface.cdl +++ /dev/null @@ -1,416 +0,0 @@ --- Created on: 1993-02-22 --- 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. - -class Surface from BRepAdaptor inherits Surface from Adaptor3d - - ---Purpose: The Surface from BRepAdaptor allows to use a Face - -- of the BRep topology look like a 3D surface. - -- - -- It has the methods of the class Surface from - -- Adaptor3d. - -- - -- It is created or initialized with a Face. It takes - -- into account the local coordinates system. - -- - -- The u,v parameter range is the minmax value for - -- the restriction, unless the flag restriction is - -- set to false. - -uses - Face from TopoDS, - SurfaceType from GeomAbs, - HSurface from Adaptor3d, - HCurve from Adaptor3d, - Surface from GeomAdaptor, - Shape from GeomAbs, - BezierSurface from Geom, - BSplineSurface from Geom, - Trsf from gp, - Pnt from gp, - Vec from gp, - Dir from gp, - Pln from gp, - Cylinder from gp, - Sphere from gp, - Torus from gp, - Cone from gp, - Ax1 from gp, - Array1OfReal from TColStd - - -raises - - OutOfRange from Standard, - DomainError from Standard, - NoSuchObject from Standard - -is - - Create returns Surface from BRepAdaptor; - ---Purpose: Creates an undefined surface with no face loaded. - - Create(F : Face from TopoDS; - R : Boolean = Standard_True) - returns Surface from BRepAdaptor; - ---Purpose: Creates a surface to access the geometry of . - -- If is true the parameter range is - -- the parameter range in the UV space of the - -- restriction. - - Initialize(me : in out; F : Face from TopoDS; - Restriction : Boolean = Standard_True) - ---Purpose: Sets the surface to the geometry of . - is static; - - Surface(me) returns Surface from GeomAdaptor - ---Purpose: Returns the surface. - -- - ---C++: return const & - is static; - - ChangeSurface(me : in out) returns Surface from GeomAdaptor - ---Purpose: Returns the surface. - -- - ---C++: return & - is static; - - Trsf(me) returns Trsf from gp - ---Purpose: Returns the surface coordinate system. - -- - ---C++: return const & - is static; - - Face(me) returns Face from TopoDS - ---Purpose: Returns the face. - -- - ---C++: return const & - is static; - - Tolerance(me) returns Real - ---Purpose: Returns the face tolerance. - -- - is static; - - -- - -- Methods of Surface from GeomAdaptor - -- - - FirstUParameter(me) returns Real - ---C++:inline - is redefined static; - - LastUParameter(me) returns Real - ---C++:inline - is redefined static; - - FirstVParameter(me) returns Real - ---C++:inline - is redefined static; - - LastVParameter(me) returns Real - ---C++:inline - is redefined static; - - UContinuity(me) returns Shape from GeomAbs - ---C++:inline - is redefined static; - - VContinuity(me) returns Shape from GeomAbs - ---C++:inline - is redefined static; - - NbUIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: If necessary, breaks the surface in U intervals of - -- continuity . And returns the number of - -- intervals. - ---C++:inline - is redefined static; - - NbVIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: If necessary, breaks the surface in V intervals of - -- continuity . And returns the number of - -- intervals. - ---C++:inline - is redefined static; - - UIntervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs ) - ---Purpose: Returns the intervals with the requested continuity - -- in the U direction. - raises - OutOfRange from Standard -- if the Length of the array does - -- have enought slots to accomodate - -- the result. - is redefined static; - - VIntervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs ) - ---Purpose: Returns the intervals with the requested continuity - -- in the V direction. - raises - OutOfRange from Standard -- if the Length of the array does - -- have enought slots to accomodate - -- the result. - is redefined static; - - UTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d - ---Purpose: Returns a surface trimmed in the U direction - -- equivalent of between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is redefined static ; - - VTrim(me; First, Last, Tol : Real) returns HSurface from Adaptor3d - ---Purpose: Returns a surface trimmed in the V direction between - -- parameters and . is used to - -- test for 3d points confusion. - raises - OutOfRange from Standard - ---Purpose: If >= - is redefined static ; - - IsUClosed(me) returns Boolean - ---C++:inline - is redefined static; - - IsVClosed(me) returns Boolean - ---C++:inline - is redefined static; - - IsUPeriodic(me) returns Boolean - ---C++:inline - is redefined static; - - UPeriod(me) returns Real - raises - DomainError from Standard -- if the curve is not periodic - ---C++:inline - is redefined static; - - IsVPeriodic(me) returns Boolean - ---C++:inline - is redefined static; - - VPeriod(me) returns Real - ---C++:inline - raises - DomainError from Standard -- if the curve is not periodic - is redefined static; - - Value (me; U, V : Real) returns Pnt from gp - --- Purpose : Computes the point of parameters U,V on the surface. - is redefined static; - - D0 (me; U, V : Real; P : out Pnt from gp) - --- Purpose : Computes the point of parameters U,V on the surface. - is redefined static; - - D1 (me; U, V : Real; - P : out Pnt from gp; - D1U, D1V : out Vec from gp) - --- Purpose : Computes the point and the first derivatives on - -- the surface. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current - -- intervals is not C1. - is redefined static; - - D2 (me; U, V : Real; - P : out Pnt from gp; - D1U, D1V, D2U, D2V, D2UV : out Vec from gp) - --- Purpose : Computes the point, the first and second - -- derivatives on the surface. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current - -- intervals is not C2. - is redefined static; - - D3 (me; U, V : Real; P : out Pnt from gp; - D1U, D1V, D2U, D2V, D2UV, D3U, D3V, D3UUV, D3UVV : out Vec from gp) - --- Purpose : Computes the point, the first, second and third - -- derivatives on the surface. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current - -- intervals is not C3. - is redefined static; - - DN (me; U, V : Real; Nu, Nv : Integer) returns Vec from gp - --- Purpose : Computes the derivative of order Nu in the direction - -- U and Nv in the direction V at the point P(U, V). - raises - DomainError from Standard, - --- Purpose : Raised if the current U interval is not not CNu - -- and the current V interval is not CNv. - OutOfRange from Standard - --- Purpose : Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0. - is redefined static; - - UResolution(me; R3d : Real ) returns Real - ---Purpose : Returns the parametric U resolution corresponding - -- to the real space resolution . - -- - ---C++:inline - is redefined static; - - VResolution(me; R3d : Real ) returns Real - ---Purpose : Returns the parametric V resolution corresponding - -- to the real space resolution . - -- - ---C++:inline - is redefined static; - - GetType(me) returns SurfaceType from GeomAbs - ---Purpose: Returns the type of the surface : Plane, Cylinder, - -- Cone, Sphere, Torus, BezierSurface, - -- BSplineSurface, SurfaceOfRevolution, - -- SurfaceOfExtrusion, OtherSurface - ---C++:inline - is redefined static; - - Plane(me) returns Pln from gp - raises NoSuchObject from Standard - - is redefined static; - - Cylinder(me) returns Cylinder from gp - raises NoSuchObject from Standard - is redefined static; - - Cone(me) returns Cone from gp - raises NoSuchObject from Standard - is redefined static; - - Sphere(me) returns Sphere from gp - raises NoSuchObject from Standard - is redefined static; - - Torus(me) returns Torus from gp - raises NoSuchObject from Standard - is redefined static; - - - UDegree(me) returns Integer - raises NoSuchObject from Standard - ---C++:inline - is redefined static; - - NbUPoles(me) returns Integer - raises NoSuchObject from Standard - ---C++:inline - is redefined static; - - VDegree(me) returns Integer - raises NoSuchObject from Standard - ---C++:inline - is redefined static; - - NbVPoles(me) returns Integer - raises NoSuchObject from Standard - ---C++:inline - is redefined static; - - - NbUKnots(me) returns Integer - raises - NoSuchObject from Standard - ---C++:inline - is redefined static; - - - NbVKnots(me) returns Integer - raises - NoSuchObject from Standard - ---C++:inline - is redefined static; - - - IsURational(me) returns Boolean - raises - NoSuchObject from Standard - ---C++:inline - is redefined static; - - IsVRational(me) returns Boolean - raises - NoSuchObject from Standard - ---C++:inline - is redefined static; - - - Bezier(me) returns BezierSurface from Geom - ---Purpose: ---Warning : this will make a copy of the - -- Bezier Surface since it applies - -- to it the myTsrf transformation - -- Be Carefull when using this method - - raises - NoSuchObject from Standard - is redefined static; - - BSpline(me) returns BSplineSurface from Geom - ---Purpose: --- Warning : this will make a copy of the - -- BSpline Surface since it applies - -- to it the myTsrf transformation - -- Be Carefull when using this method - - raises - NoSuchObject from Standard - is redefined static; - - AxeOfRevolution(me) returns Ax1 from gp - raises - NoSuchObject from Standard -- only for SurfaceOfRevolution - is redefined static; - - Direction(me) returns Dir from gp - raises - NoSuchObject from Standard -- only for SurfaceOfExtrusion - is redefined static; - - BasisCurve(me) returns HCurve from Adaptor3d - raises - NoSuchObject from Standard - ---Purpose: only for SurfaceOfExtrusion and SurfaceOfRevolution - -- Warning: this will make a copy of the underlying curve - -- since it applies to it the transformation - -- myTrsf. Be carefull when using this method. - is redefined static; - - BasisSurface(me) returns HSurface from Adaptor3d - raises - NoSuchObject from Standard -- only for Offset Surface - is redefined static; - - OffsetValue(me) returns Real from Standard - raises - NoSuchObject from Standard -- only for Offset Surface - is redefined static; - -fields - - mySurf : Surface from GeomAdaptor; - myTrsf : Trsf from gp; - myFace : Face from TopoDS; - -end Surface; diff --git a/src/BRepAdaptor/BRepAdaptor_Surface.cxx b/src/BRepAdaptor/BRepAdaptor_Surface.cxx index b288c146de..ff31f8a353 100644 --- a/src/BRepAdaptor/BRepAdaptor_Surface.cxx +++ b/src/BRepAdaptor/BRepAdaptor_Surface.cxx @@ -14,20 +14,37 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include #include +#include #include -#include -#include -#include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRepAdaptor_Surface //purpose : //======================================================================= - BRepAdaptor_Surface::BRepAdaptor_Surface() { } diff --git a/src/BRepAdaptor/BRepAdaptor_Surface.hxx b/src/BRepAdaptor/BRepAdaptor_Surface.hxx new file mode 100644 index 0000000000..70858bf8fa --- /dev/null +++ b/src/BRepAdaptor/BRepAdaptor_Surface.hxx @@ -0,0 +1,277 @@ +// Created on: 1993-02-22 +// 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_Surface_HeaderFile +#define _BRepAdaptor_Surface_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Standard_DomainError; +class Standard_NoSuchObject; +class TopoDS_Face; +class GeomAdaptor_Surface; +class gp_Trsf; +class Adaptor3d_HSurface; +class gp_Pnt; +class gp_Vec; +class gp_Pln; +class gp_Cylinder; +class gp_Cone; +class gp_Sphere; +class gp_Torus; +class Geom_BezierSurface; +class Geom_BSplineSurface; +class gp_Ax1; +class gp_Dir; +class Adaptor3d_HCurve; + + +//! The Surface from BRepAdaptor allows to use a Face +//! of the BRep topology look like a 3D surface. +//! +//! It has the methods of the class Surface from +//! Adaptor3d. +//! +//! It is created or initialized with a Face. It takes +//! into account the local coordinates system. +//! +//! The u,v parameter range is the minmax value for +//! the restriction, unless the flag restriction is +//! set to false. +class BRepAdaptor_Surface : public Adaptor3d_Surface +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Creates an undefined surface with no face loaded. + Standard_EXPORT BRepAdaptor_Surface(); + + //! Creates a surface to access the geometry of . + //! If is true the parameter range is + //! the parameter range in the UV space of the + //! restriction. + Standard_EXPORT BRepAdaptor_Surface(const TopoDS_Face& F, const Standard_Boolean R = Standard_True); + + //! Sets the surface to the geometry of . + Standard_EXPORT void Initialize (const TopoDS_Face& F, const Standard_Boolean Restriction = Standard_True); + + //! Returns the surface. + Standard_EXPORT const GeomAdaptor_Surface& Surface() const; + + //! Returns the surface. + Standard_EXPORT GeomAdaptor_Surface& ChangeSurface(); + + //! Returns the surface coordinate system. + Standard_EXPORT const gp_Trsf& Trsf() const; + + //! Returns the face. + Standard_EXPORT const TopoDS_Face& Face() const; + + //! Returns the face tolerance. + Standard_EXPORT Standard_Real Tolerance() const; + + Standard_Real FirstUParameter() const Standard_OVERRIDE; + + Standard_Real LastUParameter() const Standard_OVERRIDE; + + Standard_Real FirstVParameter() const Standard_OVERRIDE; + + Standard_Real LastVParameter() const Standard_OVERRIDE; + + GeomAbs_Shape UContinuity() const Standard_OVERRIDE; + + GeomAbs_Shape VContinuity() const Standard_OVERRIDE; + + //! If necessary, breaks the surface in U intervals of + //! continuity . And returns the number of + //! intervals. + Standard_Integer NbUIntervals (const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! If necessary, breaks the surface in V intervals of + //! continuity . And returns the number of + //! intervals. + Standard_Integer NbVIntervals (const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Returns the intervals with the requested continuity + //! in the U direction. + Standard_EXPORT void UIntervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Returns the intervals with the requested continuity + //! in the V direction. + Standard_EXPORT void VIntervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Returns a surface trimmed in the U direction + //! equivalent of between + //! parameters and . is used to + //! test for 3d points confusion. + //! If >= + Standard_EXPORT Handle(Adaptor3d_HSurface) UTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const Standard_OVERRIDE; + + //! Returns a surface trimmed in the V direction between + //! parameters and . is used to + //! test for 3d points confusion. + //! If >= + Standard_EXPORT Handle(Adaptor3d_HSurface) VTrim (const Standard_Real First, const Standard_Real Last, const Standard_Real Tol) const Standard_OVERRIDE; + + Standard_Boolean IsUClosed() const Standard_OVERRIDE; + + Standard_Boolean IsVClosed() const Standard_OVERRIDE; + + Standard_Boolean IsUPeriodic() const Standard_OVERRIDE; + + Standard_Real UPeriod() const Standard_OVERRIDE; + + Standard_Boolean IsVPeriodic() const Standard_OVERRIDE; + + Standard_Real VPeriod() const Standard_OVERRIDE; + + //! Computes the point of parameters U,V on the surface. + Standard_EXPORT gp_Pnt Value (const Standard_Real U, const Standard_Real V) const Standard_OVERRIDE; + + //! Computes the point of parameters U,V on the surface. + Standard_EXPORT void D0 (const Standard_Real U, const Standard_Real V, gp_Pnt& P) const Standard_OVERRIDE; + + //! Computes the point and the first derivatives on + //! the surface. + //! Raised if the continuity of the current + //! intervals is not C1. + Standard_EXPORT void D1 (const Standard_Real U, const Standard_Real V, gp_Pnt& P, gp_Vec& D1U, gp_Vec& D1V) const Standard_OVERRIDE; + + //! Computes the point, the first and second + //! derivatives on the surface. + //! Raised if the continuity of the current + //! intervals is not C2. + Standard_EXPORT void D2 (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) const Standard_OVERRIDE; + + //! Computes the point, the first, second and third + //! derivatives on the surface. + //! Raised if the continuity of the current + //! intervals is not C3. + Standard_EXPORT void D3 (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) const Standard_OVERRIDE; + + //! Computes the derivative of order Nu in the direction + //! U and Nv in the direction V at the point P(U, V). + //! Raised if the current U interval is not not CNu + //! and the current V interval is not CNv. + //! Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0. + Standard_EXPORT gp_Vec DN (const Standard_Real U, const Standard_Real V, const Standard_Integer Nu, const Standard_Integer Nv) const Standard_OVERRIDE; + + //! Returns the parametric U resolution corresponding + //! to the real space resolution . + Standard_Real UResolution (const Standard_Real R3d) const Standard_OVERRIDE; + + //! Returns the parametric V resolution corresponding + //! to the real space resolution . + Standard_Real VResolution (const Standard_Real R3d) const Standard_OVERRIDE; + + //! Returns the type of the surface : Plane, Cylinder, + //! Cone, Sphere, Torus, BezierSurface, + //! BSplineSurface, SurfaceOfRevolution, + //! SurfaceOfExtrusion, OtherSurface + GeomAbs_SurfaceType GetType() const Standard_OVERRIDE; + + Standard_EXPORT gp_Pln Plane() const Standard_OVERRIDE; + + Standard_EXPORT gp_Cylinder Cylinder() const Standard_OVERRIDE; + + Standard_EXPORT gp_Cone Cone() const Standard_OVERRIDE; + + Standard_EXPORT gp_Sphere Sphere() const Standard_OVERRIDE; + + Standard_EXPORT gp_Torus Torus() const Standard_OVERRIDE; + + Standard_Integer UDegree() const Standard_OVERRIDE; + + Standard_Integer NbUPoles() const Standard_OVERRIDE; + + Standard_Integer VDegree() const Standard_OVERRIDE; + + Standard_Integer NbVPoles() const Standard_OVERRIDE; + + Standard_Integer NbUKnots() const Standard_OVERRIDE; + + Standard_Integer NbVKnots() const Standard_OVERRIDE; + + Standard_Boolean IsURational() const Standard_OVERRIDE; + + Standard_Boolean IsVRational() const Standard_OVERRIDE; + + Standard_EXPORT Handle(Geom_BezierSurface) Bezier() const Standard_OVERRIDE; + + + //! Warning : this will make a copy of the + //! BSpline Surface since it applies + //! to it the myTsrf transformation + //! Be Carefull when using this method + Standard_EXPORT Handle(Geom_BSplineSurface) BSpline() const Standard_OVERRIDE; + + Standard_EXPORT gp_Ax1 AxeOfRevolution() const Standard_OVERRIDE; + + Standard_EXPORT gp_Dir Direction() const Standard_OVERRIDE; + + //! only for SurfaceOfExtrusion and SurfaceOfRevolution + //! Warning: this will make a copy of the underlying curve + //! since it applies to it the transformation + //! myTrsf. Be carefull when using this method. + Standard_EXPORT Handle(Adaptor3d_HCurve) BasisCurve() const Standard_OVERRIDE; + + Standard_EXPORT Handle(Adaptor3d_HSurface) BasisSurface() const Standard_OVERRIDE; + + Standard_EXPORT Standard_Real OffsetValue() const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + GeomAdaptor_Surface mySurf; + gp_Trsf myTrsf; + TopoDS_Face myFace; + + +}; + + +#include + + + + + +#endif // _BRepAdaptor_Surface_HeaderFile diff --git a/src/BRepAdaptor/FILES b/src/BRepAdaptor/FILES index 5e131924bf..9e2f30a9d6 100644 --- a/src/BRepAdaptor/FILES +++ b/src/BRepAdaptor/FILES @@ -1,2 +1,19 @@ BRepAdaptor_Array1OfCurve.hxx +BRepAdaptor_CompCurve.cxx +BRepAdaptor_CompCurve.hxx +BRepAdaptor_Curve.cxx +BRepAdaptor_Curve.hxx +BRepAdaptor_Curve2d.cxx +BRepAdaptor_Curve2d.hxx BRepAdaptor_HArray1OfCurve.hxx +BRepAdaptor_HCompCurve.hxx +BRepAdaptor_HCompCurve_0.cxx +BRepAdaptor_HCurve.hxx +BRepAdaptor_HCurve2d.hxx +BRepAdaptor_HCurve2d_0.cxx +BRepAdaptor_HCurve_0.cxx +BRepAdaptor_HSurface.hxx +BRepAdaptor_HSurface_0.cxx +BRepAdaptor_Surface.cxx +BRepAdaptor_Surface.hxx +BRepAdaptor_Surface.lxx diff --git a/src/BRepAlgo/BRepAlgo.cdl b/src/BRepAlgo/BRepAlgo.cdl deleted file mode 100644 index 2a0bb5a2b1..0000000000 --- a/src/BRepAlgo/BRepAlgo.cdl +++ /dev/null @@ -1,150 +0,0 @@ --- Created on: 1997-01-17 --- Created by: Didier PIFFAULT --- 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. - --- Modified David CARBONEL --- Add of Sewing class - -package BRepAlgo - - ---Purpose: - -- The BRepAlgo package provides a full range of - -- services to perform Old Boolean Operations in Open CASCADE. - -- Attention: - -- The New Boolean Operation has replaced the Old - -- Boolean Operations algorithm in the BrepAlgoAPI - -- package in Open CASCADE. - -uses - BRep, - BRepTools, - BRepBuilderAPI, - Bnd, - Standard, - TCollection, - TColStd, - TopAbs, - GeomAbs, - GeomTools, - Geom, - Geom2d, - gp, - MMgt, - TopExp, - TopAbs, - TopLoc, - TColgp, - TColStd, - TCollection, - TopoDS, - TopTools, - TopOpeBRepDS, - TopOpeBRepBuild, - TopOpeBRep, - Adaptor3d, - StdFail - -is - enumeration CheckStatus is - OK, NOK - end CheckStatus; - - --BRepAlgoAPI f - deferred class BooleanOperation; - class Fuse; - class Cut; - class Common; - class Section; - --BRepAlgoAPI t - - -- - -- Use of face topological builder - -- - class Loop; - class Tool; - class Image; - class AsDes; - class FaceRestrictor; - - class BooleanOperations; - ---Purpose: - class DSAccess; - ---Purpose: - class EdgeConnector; - ---Purpose: - class NormalProjection; - - -- class Sewing; now it is in BRepBuilderAPI - - imported DataMapOfShapeBoolean; - - imported DataMapIteratorOfDataMapOfShapeBoolean; - - imported DataMapOfShapeInterference; - - imported DataMapIteratorOfDataMapOfShapeInterference; - - imported SequenceOfSequenceOfInteger; - - ConcatenateWire(Wire : Wire from TopoDS; - Option : Shape from GeomAbs; - AngularTolerance : Real = 1.0e-4) - ---Purpose: this method makes a wire whose edges are C1 from - -- a Wire whose edges could be G1. It removes a vertex - -- between G1 edges. - -- Option can be G1 or C1. - returns Wire from TopoDS; - - ConcatenateWireC0(Wire : Wire from TopoDS) - ---Purpose: this method makes an edge from a wire. - -- Junction points between edges of wire may be sharp, - -- resulting curve of the resulting edge may be C0. - returns Edge from TopoDS; - - --BRepAlgoAPI f - - IsValid(S: Shape from TopoDS) - returns Boolean from Standard - raises NullObject from Standard; - ---Purpose: Checks if the shape is "correct". If not, returns - -- , else returns . - - IsValid(theArgs : ListOfShape from TopTools; - theResult : Shape from TopoDS; - closedSolid : Boolean from Standard = Standard_False; - GeomCtrl : Boolean from Standard = Standard_True) - returns Boolean from Standard; - ---Purpose: Checks if the Generated and Modified Faces from - -- the shapes in the shape are - -- "correct". The args may be empty, then all faces - -- will be checked. - -- If is True, only closed shape are valid. - -- If is False the geometry of new - -- vertices and edges are not verified and the - -- auto-intersection of new wires are not searched. - - - IsTopologicallyValid(S: Shape from TopoDS) - returns Boolean from Standard - raises NullObject from Standard; - ---Purpose: Checks if the shape is "correct". If not, returns - -- , else returns . - -- This method differs from the previous one in the - -- fact that no geometric contols (intersection of - -- wires, pcurve validity) are performed. - - --BRepAlgoAPI t - -end BRepAlgo; diff --git a/src/BRepAlgo/BRepAlgo.cxx b/src/BRepAlgo/BRepAlgo.cxx index ebc7c187fe..b6a7cbdfcb 100644 --- a/src/BRepAlgo/BRepAlgo.cxx +++ b/src/BRepAlgo/BRepAlgo.cxx @@ -14,38 +14,40 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include + #include +#include +#include +#include #include #include -#include +#include +#include +#include +#include +#include #include +#include #include -#include +#include #include +#include #include #include #include -#include +#include #include +#include +#include +#include +#include +#include +#include #include +#include #include -#include -#include - -#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include //Temporary #//include diff --git a/src/BRepAlgo/BRepAlgo.hxx b/src/BRepAlgo/BRepAlgo.hxx new file mode 100644 index 0000000000..fcb7f7136b --- /dev/null +++ b/src/BRepAlgo/BRepAlgo.hxx @@ -0,0 +1,130 @@ +// Created on: 1997-01-17 +// Created by: Didier PIFFAULT +// 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_HeaderFile +#define _BRepAlgo_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class TopoDS_Wire; +class TopoDS_Edge; +class TopoDS_Shape; +class BRepAlgo_BooleanOperation; +class BRepAlgo_Fuse; +class BRepAlgo_Cut; +class BRepAlgo_Common; +class BRepAlgo_Section; +class BRepAlgo_Loop; +class BRepAlgo_Tool; +class BRepAlgo_Image; +class BRepAlgo_AsDes; +class BRepAlgo_FaceRestrictor; +class BRepAlgo_BooleanOperations; +class BRepAlgo_DSAccess; +class BRepAlgo_EdgeConnector; +class BRepAlgo_NormalProjection; + + + +//! The BRepAlgo package provides a full range of +//! services to perform Old Boolean Operations in Open CASCADE. +//! Attention: +//! The New Boolean Operation has replaced the Old +//! Boolean Operations algorithm in the BrepAlgoAPI +//! package in Open CASCADE. +class BRepAlgo +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! this method makes a wire whose edges are C1 from + //! a Wire whose edges could be G1. It removes a vertex + //! between G1 edges. + //! Option can be G1 or C1. + Standard_EXPORT static TopoDS_Wire ConcatenateWire (const TopoDS_Wire& Wire, const GeomAbs_Shape Option, const Standard_Real AngularTolerance = 1.0e-4); + + //! this method makes an edge from a wire. + //! Junction points between edges of wire may be sharp, + //! resulting curve of the resulting edge may be C0. + Standard_EXPORT static TopoDS_Edge ConcatenateWireC0 (const TopoDS_Wire& Wire); + + //! Checks if the shape is "correct". If not, returns + //! , else returns . + Standard_EXPORT static Standard_Boolean IsValid (const TopoDS_Shape& S); + + //! Checks if the Generated and Modified Faces from + //! the shapes in the shape are + //! "correct". The args may be empty, then all faces + //! will be checked. + //! If is True, only closed shape are valid. + //! If is False the geometry of new + //! vertices and edges are not verified and the + //! auto-intersection of new wires are not searched. + Standard_EXPORT static Standard_Boolean IsValid (const TopTools_ListOfShape& theArgs, const TopoDS_Shape& theResult, const Standard_Boolean closedSolid = Standard_False, const Standard_Boolean GeomCtrl = Standard_True); + + //! Checks if the shape is "correct". If not, returns + //! , else returns . + //! This method differs from the previous one in the + //! fact that no geometric contols (intersection of + //! wires, pcurve validity) are performed. + Standard_EXPORT static Standard_Boolean IsTopologicallyValid (const TopoDS_Shape& S); + + + + +protected: + + + + + +private: + + + + +friend class BRepAlgo_BooleanOperation; +friend class BRepAlgo_Fuse; +friend class BRepAlgo_Cut; +friend class BRepAlgo_Common; +friend class BRepAlgo_Section; +friend class BRepAlgo_Loop; +friend class BRepAlgo_Tool; +friend class BRepAlgo_Image; +friend class BRepAlgo_AsDes; +friend class BRepAlgo_FaceRestrictor; +friend class BRepAlgo_BooleanOperations; +friend class BRepAlgo_DSAccess; +friend class BRepAlgo_EdgeConnector; +friend class BRepAlgo_NormalProjection; + +}; + + + + + + + +#endif // _BRepAlgo_HeaderFile diff --git a/src/BRepAlgo/BRepAlgo_1.cxx b/src/BRepAlgo/BRepAlgo_1.cxx index 0e89802594..e313ba2d80 100644 --- a/src/BRepAlgo/BRepAlgo_1.cxx +++ b/src/BRepAlgo/BRepAlgo_1.cxx @@ -14,8 +14,10 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include #include #include #include @@ -23,17 +25,18 @@ #include #include #include -#include -#include #include +#include #include #include -#include -#include #include -#include #include -#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : IsValid diff --git a/src/BRepAlgo/BRepAlgo_AsDes.cdl b/src/BRepAlgo/BRepAlgo_AsDes.cdl deleted file mode 100644 index 8c30a2f131..0000000000 --- a/src/BRepAlgo/BRepAlgo_AsDes.cdl +++ /dev/null @@ -1,101 +0,0 @@ --- Created on: 1995-10-26 --- 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. - -class AsDes from BRepAlgo inherits TShared from MMgt - - ---Purpose: SD to store descendants and ascendants of Shapes. - -uses - DataMapOfShapeListOfShape from TopTools, - ListOfShape from TopTools, - Shape from TopoDS - -raises - ConstructionError from Standard - -is - Create returns AsDes from BRepAlgo; - ---Purpose: Creates an empty AsDes. - - Clear(me : mutable); - - Add (me : mutable ; S : Shape from TopoDS; - SS : Shape from TopoDS) - ---Purpose: Stores as a futur subshape of . - is static; - - Add (me : mutable ; S : Shape from TopoDS; - SS : ListOfShape from TopTools) - ---Purpose: Stores as futurs SubShapes of . - is static; - - HasAscendant(me; S : Shape from TopoDS) - returns Boolean from Standard; - - HasDescendant(me; S : Shape from TopoDS) - returns Boolean from Standard; - - Ascendant (me; S : Shape from TopoDS) - ---Purpose: Returns the Shape containing . - ---C++: return const & - returns ListOfShape from TopTools; - - Descendant (me; S : Shape from TopoDS) - ---Purpose: Returns futur subhapes of . - ---C++: return const & - returns ListOfShape from TopTools; - - ChangeDescendant (me : mutable; S : Shape from TopoDS) - ---Purpose: Returns futur subhapes of . - ---C++: return & - returns ListOfShape from TopTools; - - Replace ( me : mutable; OldS, NewS : Shape from TopoDS) - ---Purpose: Replace by . - -- disapear from . - is static; - - Remove (me : mutable; - S : Shape from TopoDS) - ---Purpose: Remove from me. - raises - ConstructionError -- if HasDescendant. - is static; - - HasCommonDescendant (me ; - S1 : Shape from TopoDS; - S2 : Shape from TopoDS; - LC : in out ListOfShape from TopTools) - ---Purpose: Returns True if (S1> and has common - -- Descendants. Stores in the Commons Descendants. - returns Boolean from Standard; - - BackReplace ( me : mutable; - OldS : Shape from TopoDS; - NewS : Shape from TopoDS; - L : ListOfShape from TopTools; - InUp : Boolean from Standard) - ---Purpose: Replace by . - -- disapear from . - is static private; - - -fields - - up : DataMapOfShapeListOfShape from TopTools; - down : DataMapOfShapeListOfShape from TopTools; - -end AsDes; diff --git a/src/BRepAlgo/BRepAlgo_AsDes.cxx b/src/BRepAlgo/BRepAlgo_AsDes.cxx index b367bf6e00..0cb13f9654 100644 --- a/src/BRepAlgo/BRepAlgo_AsDes.cxx +++ b/src/BRepAlgo/BRepAlgo_AsDes.cxx @@ -14,14 +14,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include #include //======================================================================= //function : BRepAlgo_AsDes //purpose : //======================================================================= - BRepAlgo_AsDes::BRepAlgo_AsDes() { } diff --git a/src/BRepAlgo/BRepAlgo_AsDes.hxx b/src/BRepAlgo/BRepAlgo_AsDes.hxx new file mode 100644 index 0000000000..85c126e29a --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_AsDes.hxx @@ -0,0 +1,105 @@ +// Created on: 1995-10-26 +// 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_AsDes_HeaderFile +#define _BRepAlgo_AsDes_HeaderFile + +#include +#include + +#include +#include +#include +#include +class Standard_ConstructionError; +class TopoDS_Shape; + + +class BRepAlgo_AsDes; +DEFINE_STANDARD_HANDLE(BRepAlgo_AsDes, MMgt_TShared) + +//! SD to store descendants and ascendants of Shapes. +class BRepAlgo_AsDes : public MMgt_TShared +{ + +public: + + + //! Creates an empty AsDes. + Standard_EXPORT BRepAlgo_AsDes(); + + Standard_EXPORT void Clear(); + + //! Stores as a futur subshape of . + Standard_EXPORT void Add (const TopoDS_Shape& S, const TopoDS_Shape& SS); + + //! Stores as futurs SubShapes of . + Standard_EXPORT void Add (const TopoDS_Shape& S, const TopTools_ListOfShape& SS); + + Standard_EXPORT Standard_Boolean HasAscendant (const TopoDS_Shape& S) const; + + Standard_EXPORT Standard_Boolean HasDescendant (const TopoDS_Shape& S) const; + + //! Returns the Shape containing . + Standard_EXPORT const TopTools_ListOfShape& Ascendant (const TopoDS_Shape& S) const; + + //! Returns futur subhapes of . + Standard_EXPORT const TopTools_ListOfShape& Descendant (const TopoDS_Shape& S) const; + + //! Returns futur subhapes of . + Standard_EXPORT TopTools_ListOfShape& ChangeDescendant (const TopoDS_Shape& S); + + //! Replace by . + //! disapear from . + Standard_EXPORT void Replace (const TopoDS_Shape& OldS, const TopoDS_Shape& NewS); + + //! Remove from me. + Standard_EXPORT void Remove (const TopoDS_Shape& S); + + //! Returns True if (S1> and has common + //! Descendants. Stores in the Commons Descendants. + Standard_EXPORT Standard_Boolean HasCommonDescendant (const TopoDS_Shape& S1, const TopoDS_Shape& S2, TopTools_ListOfShape& LC) const; + + + + + DEFINE_STANDARD_RTTI(BRepAlgo_AsDes,MMgt_TShared) + +protected: + + + + +private: + + + //! Replace by . + //! disapear from . + Standard_EXPORT void BackReplace (const TopoDS_Shape& OldS, const TopoDS_Shape& NewS, const TopTools_ListOfShape& L, const Standard_Boolean InUp); + + TopTools_DataMapOfShapeListOfShape up; + TopTools_DataMapOfShapeListOfShape down; + + +}; + + + + + + + +#endif // _BRepAlgo_AsDes_HeaderFile diff --git a/src/BRepAlgo/BRepAlgo_BooleanOperation.cdl b/src/BRepAlgo/BRepAlgo_BooleanOperation.cdl deleted file mode 100644 index a02a98e4fe..0000000000 --- a/src/BRepAlgo/BRepAlgo_BooleanOperation.cdl +++ /dev/null @@ -1,114 +0,0 @@ --- Created on: 1993-10-14 --- 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. - -deferred class BooleanOperation from BRepAlgo inherits MakeShape from BRepBuilderAPI - - ---Purpose: The abstract class BooleanOperation is the root - -- class of Boolean operations. - -- A BooleanOperation object stores the two shapes in - -- preparation for the Boolean operation specified in - -- one of the classes inheriting from this one. These include: - -- - Common - -- - Cut - -- - Fuse - -- - Section. - -uses - - State from TopAbs, - Shape from TopoDS, - Face from TopoDS, - Edge from TopoDS, - MapOfShape from TopTools, - DataMapOfShapeShape from TopTools, - ListOfShape from TopTools, - HBuilder from TopOpeBRepBuild, - ShapeModification from BRepBuilderAPI - -is - - Initialize (S1,S2 : Shape from TopoDS); - ---Purpose: Prepares the operations for S1 and S2. - ---modified by NIZNHY-PKV Sun Dec 15 17:16:48 2002 f - Delete(me: out) - is redefined virtual; - ---C++: alias "Standard_EXPORT virtual ~BRepAlgo_BooleanOperation() {Delete();}" ---modified by NIZNHY-PKV Sun Dec 15 17:16:51 2002 t - - PerformDS(me : in out) - ---Purpose: - ---Level: Public - is static; - - Perform(me : in out; St1,St2 : State from TopAbs) - ---Level: Public - is static; - - Builder(me) returns HBuilder from TopOpeBRepBuild - ---Level: Advanced - is static; - - Shape1(me) returns Shape from TopoDS - ---Purpose: Returns the first shape involved in this Boolean operation. - ---C++: return const & - ---Level: Public - is static; - - Shape2(me) returns Shape from TopoDS - ---Purpose: Returns the second shape involved in this Boolean operation. - ---C++: return const & - ---Level: Public - is static; - - BuilderCanWork(me : in out; B : Boolean from Standard) - is protected; - - BuilderCanWork(me) returns Boolean from Standard - is protected; - - - InitParameters(me : out) - ---Purpose: - ---Level: Private - is virtual protected; - ----Category: Querying - - Modified (me: in out; S : Shape from TopoDS) - ---Purpose: Returns the list of shapes modified from the shape - -- . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is redefined virtual; - - - IsDeleted (me: in out; S : Shape from TopoDS) - returns Boolean - is redefined virtual; - - -fields - - myHBuilder : HBuilder from TopOpeBRepBuild is protected; - myS1 : Shape from TopoDS is protected; - myS2 : Shape from TopoDS is protected; - myMap : MapOfShape from TopTools; - myBuilderCanWork : Boolean from Standard; - topToSew : DataMapOfShapeShape from TopTools; - -end BooleanOperation; diff --git a/src/BRepAlgo/BRepAlgo_BooleanOperation.cxx b/src/BRepAlgo/BRepAlgo_BooleanOperation.cxx index e7f4b4ffad..b72ab399cd 100644 --- a/src/BRepAlgo/BRepAlgo_BooleanOperation.cxx +++ b/src/BRepAlgo/BRepAlgo_BooleanOperation.cxx @@ -17,36 +17,35 @@ #define TRC 0 #define MODIF 1 -#include -#include -#include -#include -#include -#include + #include -#include -#include -#include -#include -#include #include -#include - -// sewing -#include +#include #include #include #include #include - -#include - -#include -#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include - +// sewing #ifdef OCCT_DEBUG extern Standard_Boolean TopOpeBRepTool_GetcontextNOSEW(); #endif diff --git a/src/BRepAlgo/BRepAlgo_BooleanOperation.hxx b/src/BRepAlgo/BRepAlgo_BooleanOperation.hxx new file mode 100644 index 0000000000..a80c041edc --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_BooleanOperation.hxx @@ -0,0 +1,110 @@ +// Created on: 1993-10-14 +// 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 _BRepAlgo_BooleanOperation_HeaderFile +#define _BRepAlgo_BooleanOperation_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class TopOpeBRepBuild_HBuilder; +class TopoDS_Shape; + + +//! The abstract class BooleanOperation is the root +//! class of Boolean operations. +//! A BooleanOperation object stores the two shapes in +//! preparation for the Boolean operation specified in +//! one of the classes inheriting from this one. These include: +//! - Common +//! - Cut +//! - Fuse +//! - Section. +class BRepAlgo_BooleanOperation : public BRepBuilderAPI_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT virtual void Delete() Standard_OVERRIDE; +Standard_EXPORT virtual ~BRepAlgo_BooleanOperation() {Delete();} + + Standard_EXPORT void PerformDS(); + + Standard_EXPORT void Perform (const TopAbs_State St1, const TopAbs_State St2); + + Standard_EXPORT Handle(TopOpeBRepBuild_HBuilder) Builder() const; + + //! Returns the first shape involved in this Boolean operation. + Standard_EXPORT const TopoDS_Shape& Shape1() const; + + //! Returns the second shape involved in this Boolean operation. + Standard_EXPORT const TopoDS_Shape& Shape2() const; + + //! Returns the list of shapes modified from the shape + //! . + Standard_EXPORT virtual const TopTools_ListOfShape& Modified (const TopoDS_Shape& S) Standard_OVERRIDE; + + Standard_EXPORT virtual Standard_Boolean IsDeleted (const TopoDS_Shape& S) Standard_OVERRIDE; + + + + +protected: + + + //! Prepares the operations for S1 and S2. + Standard_EXPORT BRepAlgo_BooleanOperation(const TopoDS_Shape& S1, const TopoDS_Shape& S2); + + Standard_EXPORT void BuilderCanWork (const Standard_Boolean B); + + Standard_EXPORT Standard_Boolean BuilderCanWork() const; + + Standard_EXPORT virtual void InitParameters(); + + + Handle(TopOpeBRepBuild_HBuilder) myHBuilder; + TopoDS_Shape myS1; + TopoDS_Shape myS2; + + +private: + + + + TopTools_MapOfShape myMap; + Standard_Boolean myBuilderCanWork; + TopTools_DataMapOfShapeShape topToSew; + + +}; + + + + + + + +#endif // _BRepAlgo_BooleanOperation_HeaderFile diff --git a/src/BRepAlgo/BRepAlgo_BooleanOperations.cdl b/src/BRepAlgo/BRepAlgo_BooleanOperations.cdl deleted file mode 100644 index ad45c7ae5d..0000000000 --- a/src/BRepAlgo/BRepAlgo_BooleanOperations.cdl +++ /dev/null @@ -1,138 +0,0 @@ --- Created on: 1993-10-14 --- Created by: Prestataire Mary FABIEN --- 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. - -class BooleanOperations from BRepAlgo - -uses - - State from TopAbs, - Shape from TopoDS, - Face from TopoDS, - Edge from TopoDS, - MapOfShape from TopTools, - ListOfShape from TopTools, - HBuilder from TopOpeBRepBuild, - HDataStructure from TopOpeBRepDS, - DSAccess from BRepAlgo - -is - - Create returns BooleanOperations from BRepAlgo; - - Shapes2d(me : in out; S1,S2 : Shape from TopoDS); - ---Purpose: S1 is a Shell with ALL faces supported by the SAME S2 is - -- an Edge INCLUDED in that surface with pcurve. - -- this avoids a time-consuming 3D operation, compared to Shapes. - - Shapes(me : in out; S1,S2 : Shape from TopoDS); - ---Purpose: Defines the arguments. - - SetApproxParameters(me : in out; NbPntMax : Integer from Standard; - Tol3D, Tol2D : Real from Standard; - RelativeTol : Boolean from Standard); - ---Purpose: Sets different parameters for the curve approximations : - -- NbPntMax : Maximum number of points to be approximated at - -- the same time in one curve. - -- Tol3D, Tol2D : Tolerances to be reached by the approximation. - -- RelativeTol : The given tolerances are relative. - - Perform(me : in out) - ---Purpose: Performs the global boolean operation. - is private ; - - Perform(me : in out; State1, State2 : State from TopAbs) - ---Purpose: Performs the global boolean operation and build the - -- result in regards of the given states. - is private ; - - Define(me : in out; S1,S2 : Shape from TopoDS; - HDS : in out HDataStructure from TopOpeBRepDS); - ---Purpose: - - Common(me : in out) - ---Purpose: returns the common part of the shapes. - ---C++: return const & - returns Shape from TopoDS; - - Fus(me : in out) - ---Purpose: returns the fuse part of the shapes. - ---C++: return const & - returns Shape from TopoDS; - - Cut(me : in out) - ---Purpose: returns the cut part of the shapes. - ---C++: return const & - returns Shape from TopoDS; - - Section(me : in out) - ---Purpose: returns the intersection of the shapes. - ---C++: return const & - returns Shape from TopoDS; - - Shape(me : in out) - ---Purpose: returns the result of the boolean operation. - ---C++: return const & - returns Shape from TopoDS; - - ShapeFrom(me : in out; S : Shape from TopoDS) - ---Purpose: Returns the shape(s) resulting of the boolean operation - -- issued from the shape . - ---C++: return const & - returns Shape from TopoDS ; - - Modified (me: in out; S : Shape from TopoDS) - ---Purpose: Returns the list of the descendant shapes of the shape . - ---C++: return const & - returns ListOfShape from TopTools ; - - IsDeleted (me: in out; S : Shape from TopoDS) - ---Purpose: Returns the fact that the shape has been deleted or not - -- by the boolean operation. - returns Boolean; - - DataStructure(me) returns HDataStructure from TopOpeBRepDS; - ---C++: return const & - - ChangeDataStructure(me : in out) returns HDataStructure from TopOpeBRepDS; - ---C++: return & - - Builder(me) returns HBuilder from TopOpeBRepBuild; - ---C++: return const & - - ChangeBuilder(me : in out) returns HBuilder from TopOpeBRepBuild; - ---C++: return & - -- - DataStructureAccess(me : in out) returns DSAccess from BRepAlgo; - ---Purpose: returns the member myDSA. It is useful to then access - -- the method GetSectionEdgeSet (wich is a member of DSAccess) - ---C++: return & - - -fields - - myDSA : DSAccess from BRepAlgo; - myS1 : Shape from TopoDS; - myS2 : Shape from TopoDS; - myShape : Shape from TopoDS; - myMapShape : MapOfShape from TopTools; --- myModified : ListOfShape from TopTools; - myResult : Shape from TopoDS; - myApproxNbPntMax : Integer from Standard; - myApproxTol3D : Real from Standard; - myApproxTol2D : Real from Standard; - myApproxRelativeTol : Boolean from Standard; - -end BooleanOperations from BRepAlgo; diff --git a/src/BRepAlgo/BRepAlgo_BooleanOperations.cxx b/src/BRepAlgo/BRepAlgo_BooleanOperations.cxx index a98a639c5c..0cba54c3f1 100644 --- a/src/BRepAlgo/BRepAlgo_BooleanOperations.cxx +++ b/src/BRepAlgo/BRepAlgo_BooleanOperations.cxx @@ -14,21 +14,26 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include + +#include #include +#include +#include +#include +#include #include +#include +#include #include #include -#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include +#include //======================================================================= //function : Create diff --git a/src/BRepAlgo/BRepAlgo_BooleanOperations.hxx b/src/BRepAlgo/BRepAlgo_BooleanOperations.hxx new file mode 100644 index 0000000000..a00b4f7cb9 --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_BooleanOperations.hxx @@ -0,0 +1,143 @@ +// Created on: 1993-10-14 +// Created by: Prestataire Mary FABIEN +// 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 _BRepAlgo_BooleanOperations_HeaderFile +#define _BRepAlgo_BooleanOperations_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class TopOpeBRepDS_HDataStructure; +class TopOpeBRepBuild_HBuilder; +class BRepAlgo_DSAccess; + + + +class BRepAlgo_BooleanOperations +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepAlgo_BooleanOperations(); + + //! S1 is a Shell with ALL faces supported by the SAME S2 is + //! an Edge INCLUDED in that surface with pcurve. + //! this avoids a time-consuming 3D operation, compared to Shapes. + Standard_EXPORT void Shapes2d (const TopoDS_Shape& S1, const TopoDS_Shape& S2); + + //! Defines the arguments. + Standard_EXPORT void Shapes (const TopoDS_Shape& S1, const TopoDS_Shape& S2); + + //! Sets different parameters for the curve approximations : + //! NbPntMax : Maximum number of points to be approximated at + //! the same time in one curve. + //! Tol3D, Tol2D : Tolerances to be reached by the approximation. + //! RelativeTol : The given tolerances are relative. + Standard_EXPORT void SetApproxParameters (const Standard_Integer NbPntMax, const Standard_Real Tol3D, const Standard_Real Tol2D, const Standard_Boolean RelativeTol); + + Standard_EXPORT void Define (const TopoDS_Shape& S1, const TopoDS_Shape& S2, Handle(TopOpeBRepDS_HDataStructure)& HDS); + + //! returns the common part of the shapes. + Standard_EXPORT const TopoDS_Shape& Common(); + + //! returns the fuse part of the shapes. + Standard_EXPORT const TopoDS_Shape& Fus(); + + //! returns the cut part of the shapes. + Standard_EXPORT const TopoDS_Shape& Cut(); + + //! returns the intersection of the shapes. + Standard_EXPORT const TopoDS_Shape& Section(); + + //! returns the result of the boolean operation. + Standard_EXPORT const TopoDS_Shape& Shape(); + + //! Returns the shape(s) resulting of the boolean operation + //! issued from the shape . + Standard_EXPORT const TopoDS_Shape& ShapeFrom (const TopoDS_Shape& S); + + //! Returns the list of the descendant shapes of the shape . + Standard_EXPORT const TopTools_ListOfShape& Modified (const TopoDS_Shape& S); + + //! Returns the fact that the shape has been deleted or not + //! by the boolean operation. + Standard_EXPORT Standard_Boolean IsDeleted (const TopoDS_Shape& S); + + Standard_EXPORT const Handle(TopOpeBRepDS_HDataStructure)& DataStructure() const; + + Standard_EXPORT Handle(TopOpeBRepDS_HDataStructure)& ChangeDataStructure(); + + Standard_EXPORT const Handle(TopOpeBRepBuild_HBuilder)& Builder() const; + + Standard_EXPORT Handle(TopOpeBRepBuild_HBuilder)& ChangeBuilder(); + + //! returns the member myDSA. It is useful to then access + //! the method GetSectionEdgeSet (wich is a member of DSAccess) + Standard_EXPORT BRepAlgo_DSAccess& DataStructureAccess(); + + + + +protected: + + + + + +private: + + + //! Performs the global boolean operation. + Standard_EXPORT void Perform(); + + //! Performs the global boolean operation and build the + //! result in regards of the given states. + Standard_EXPORT void Perform (const TopAbs_State State1, const TopAbs_State State2); + + + BRepAlgo_DSAccess myDSA; + TopoDS_Shape myS1; + TopoDS_Shape myS2; + TopoDS_Shape myShape; + TopTools_MapOfShape myMapShape; + TopoDS_Shape myResult; + Standard_Integer myApproxNbPntMax; + Standard_Real myApproxTol3D; + Standard_Real myApproxTol2D; + Standard_Boolean myApproxRelativeTol; + + +}; + + + + + + + +#endif // _BRepAlgo_BooleanOperations_HeaderFile diff --git a/src/BRepAlgo/BRepAlgo_CheckStatus.hxx b/src/BRepAlgo/BRepAlgo_CheckStatus.hxx new file mode 100644 index 0000000000..bac79edd57 --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_CheckStatus.hxx @@ -0,0 +1,27 @@ +// Created on: 1997-01-17 +// Created by: Didier PIFFAULT +// 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_CheckStatus_HeaderFile +#define _BRepAlgo_CheckStatus_HeaderFile + + +enum BRepAlgo_CheckStatus +{ +BRepAlgo_OK, +BRepAlgo_NOK +}; + +#endif // _BRepAlgo_CheckStatus_HeaderFile diff --git a/src/BRepAlgo/BRepAlgo_Common.cdl b/src/BRepAlgo/BRepAlgo_Common.cdl deleted file mode 100644 index 56335b69df..0000000000 --- a/src/BRepAlgo/BRepAlgo_Common.cdl +++ /dev/null @@ -1,33 +0,0 @@ --- Created on: 1993-10-14 --- 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. - -class Common from BRepAlgo inherits BooleanOperation from BRepAlgo - - ---Purpose: Describes functions for performing a topological - -- common operation (Boolean intersection). - -- A Common object provides the framework for: - -- - defining the construction of a common shape, - -- - implementing the construction algorithm, and - -- - consulting the result. - -uses - Shape from TopoDS - -is - Create (S1,S2 : Shape from TopoDS) returns Common from BRepAlgo; - ---Purpose: Constructs the common part of shapes S1 and S2. - -end Common; diff --git a/src/BRepAlgo/BRepAlgo_Common.cxx b/src/BRepAlgo/BRepAlgo_Common.cxx index 9f450f65b4..e8b8527a64 100644 --- a/src/BRepAlgo/BRepAlgo_Common.cxx +++ b/src/BRepAlgo/BRepAlgo_Common.cxx @@ -14,7 +14,9 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include //======================================================================= //function : BRepAlgo_Common diff --git a/src/BRepAlgo/BRepAlgo_Common.hxx b/src/BRepAlgo/BRepAlgo_Common.hxx new file mode 100644 index 0000000000..585a255092 --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_Common.hxx @@ -0,0 +1,67 @@ +// Created on: 1993-10-14 +// 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 _BRepAlgo_Common_HeaderFile +#define _BRepAlgo_Common_HeaderFile + +#include +#include +#include + +#include +class TopoDS_Shape; + + +//! Describes functions for performing a topological +//! common operation (Boolean intersection). +//! A Common object provides the framework for: +//! - defining the construction of a common shape, +//! - implementing the construction algorithm, and +//! - consulting the result. +class BRepAlgo_Common : public BRepAlgo_BooleanOperation +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Constructs the common part of shapes S1 and S2. + Standard_EXPORT BRepAlgo_Common(const TopoDS_Shape& S1, const TopoDS_Shape& S2); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepAlgo_Common_HeaderFile diff --git a/src/BRepAlgo/BRepAlgo_Cut.cdl b/src/BRepAlgo/BRepAlgo_Cut.cdl deleted file mode 100644 index 552a8de8f5..0000000000 --- a/src/BRepAlgo/BRepAlgo_Cut.cdl +++ /dev/null @@ -1,32 +0,0 @@ --- Created on: 1993-10-14 --- 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. - -class Cut from BRepAlgo inherits BooleanOperation from BRepAlgo - ---Purpose: Describes functions for performing a topological cut - -- operation (Boolean subtraction). - -- A Cut object provides the framework for: - -- - defining the construction of a cut shape, - -- - implementing the construction algorithm, and - -- - consulting the result. - -uses - Shape from TopoDS - -is - Create (S1,S2 : Shape from TopoDS) returns Cut from BRepAlgo; - ---Purpose: Cuts the shape S2 from the shape S1. - -end Cut; diff --git a/src/BRepAlgo/BRepAlgo_Cut.cxx b/src/BRepAlgo/BRepAlgo_Cut.cxx index 842bb513f4..1260d47332 100644 --- a/src/BRepAlgo/BRepAlgo_Cut.cxx +++ b/src/BRepAlgo/BRepAlgo_Cut.cxx @@ -14,13 +14,14 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include //======================================================================= //function : BRepAlgo_Cut //purpose : //======================================================================= - BRepAlgo_Cut::BRepAlgo_Cut(const TopoDS_Shape& S1, const TopoDS_Shape& S2) : BRepAlgo_BooleanOperation(S1,S2) diff --git a/src/BRepAlgo/BRepAlgo_Cut.hxx b/src/BRepAlgo/BRepAlgo_Cut.hxx new file mode 100644 index 0000000000..6a6b0cbaa4 --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_Cut.hxx @@ -0,0 +1,67 @@ +// Created on: 1993-10-14 +// 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 _BRepAlgo_Cut_HeaderFile +#define _BRepAlgo_Cut_HeaderFile + +#include +#include +#include + +#include +class TopoDS_Shape; + + +//! Describes functions for performing a topological cut +//! operation (Boolean subtraction). +//! A Cut object provides the framework for: +//! - defining the construction of a cut shape, +//! - implementing the construction algorithm, and +//! - consulting the result. +class BRepAlgo_Cut : public BRepAlgo_BooleanOperation +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Cuts the shape S2 from the shape S1. + Standard_EXPORT BRepAlgo_Cut(const TopoDS_Shape& S1, const TopoDS_Shape& S2); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepAlgo_Cut_HeaderFile diff --git a/src/BRepAlgo/BRepAlgo_DSAccess.cdl b/src/BRepAlgo/BRepAlgo_DSAccess.cdl deleted file mode 100644 index d070955205..0000000000 --- a/src/BRepAlgo/BRepAlgo_DSAccess.cdl +++ /dev/null @@ -1,354 +0,0 @@ --- Created on: 1997-08-13 --- Created by: Prestataire Mary FABIEN --- 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. - -class DSAccess from BRepAlgo - - ---Purpose: - -uses - - HDataStructure from TopOpeBRepDS, - Kind from TopOpeBRepDS, - Shape from TopoDS, - Wire from TopoDS, - Face from TopoDS, - Vertex from TopoDS, - ListOfInteger from TColStd, - PackedMapOfInteger from TColStd, - MapOfInteger from TColStd, - ListOfShape from TopTools, - State from TopAbs, - CheckStatus from BRepAlgo, - EdgeConnector from BRepAlgo, - LoopSet from TopOpeBRepBuild, - HBuilder from TopOpeBRepBuild, - DataMapOfShapeInterference from BRepAlgo, - DataMapOfShapeShape from TopTools, - DataMapOfShapeListOfShape from TopTools, - DSFiller from TopOpeBRep - -is - - Create returns DSAccess from BRepAlgo; - - Init(me: in out); - ---Purpose: Clears the internal data structure, including the - --Shapes of Load(). - - --- Filling of the DS - - Load(me : in out; S : Shape from TopoDS); - ---Purpose: Loads the shape in DS. - -- - - Load(me : in out; S1, S2 : in out Shape from TopoDS); - ---Purpose: Loads two shapes in the DS without intersecting them. - - Intersect(me : in out); - ---Purpose: Intersects two shapes at input and loads the DS with - -- their intersection. Clears the TopOpeBRepBuild_HBuilder if - -- necessary - - Intersect(me : in out; S1, S2 : Shape from TopoDS); - ---Purpose: Intersects the faces contained in two given shapes - -- and loads them in the DS. Clears the TopOpeBRepBuild_HBuilder - -- if necessary - - SameDomain(me : in out;S1, S2 : Shape from TopoDS); - ---Purpose: This method does the same thing as the previous, - -- but faster. There is no intersection face/face 3D. - -- The faces have the same support(surface). No test of - -- tangency (that is why it is faster). Intersects in 2d - -- the faces tangent F1 anf F2. - - --- Construction des Sections - - GetSectionEdgeSet(me : in out; S1,S2 : Shape from TopoDS) - ---Purpose: returns compounds of Edge connected with section, which - -- contains sections between faces contained in S1 and S2. - -- returns an empty list of Shape if S1 or S2 do not contain - -- face. - -- calls GetSectionEdgeSet() if it has not already been done - ---C++: return const & - returns ListOfShape from TopTools; - - GetSectionEdgeSet(me : in out) - ---Purpose: returns all compounds of edges connected with section - -- contained in the DS - ---C++: return const & - returns ListOfShape from TopTools; - - IsWire(me : in out;Compound : Shape from TopoDS) - ---Purpose: NYI - returns Boolean from Standard; - - Wire(me : in out;Compound : Shape from TopoDS) - ---Purpose: NYI - ---C++: return const & - returns Shape from TopoDS; - - SectionVertex(me : in out;S1 : Shape from TopoDS;S2 : Shape from TopoDS) - ---Purpose: NYI - -- returns the vertex of section, which contains the section - -- between face S1 and edge S2 (returns an empty Shape - -- if S1 is not a face or if S2 is not an edge) - ---C++: return const & - returns ListOfShape from TopTools; - - --- Edition de la SD - - SuppressEdgeSet(me : in out; Compound : Shape from TopoDS); - ---Purpose: Invalidates a complete line of section. All - -- Edges connected by Vertex or a Wire. Can be - -- a group of connected Edges, which do not form a - -- standard Wire. - - ChangeEdgeSet(me : in out; Old, New : Shape from TopoDS); - ---Purpose: Modifies a line of section. -- should be a - -- Group of Edges connected by Vertex. -- Can be a - -- Wire. Can be a group of connected Edges that do not - -- form a standard Wire. should be sub-groupn of - -- - -- - - SuppressSectionVertex(me : in out;V : Vertex from TopoDS); - ---Purpose: NYI - -- Make invalid a Vertex of section. The Vertex shoud be - -- reconstructed from a point. - - Suppress(me : in out; Compound : Shape from TopoDS; - KeepComp : Shape from TopoDS) - is private; - --- Reconstruction des Shapes - - Merge(me : in out; state1 : State from TopAbs; - state2 : State from TopAbs) - ---C++: return const & - returns Shape from TopoDS; - - Merge(me : in out; state1 : State from TopAbs) - ---C++: return const & - returns Shape from TopoDS; - - Propagate(me :in out;what : State from TopAbs; - FromShape : Shape from TopoDS; - LoadShape : Shape from TopoDS) - ---Purpose: NYI Propagation of a state starting from the shape - -- FromShape = edge or vertex of section, face or - -- Coumpound de section. LoadShape is either S1, - -- or S2 (see the method Load). Propagation from - -- FromShape, on the states of LoadShape. - -- Return a Wire in 2d, a Shell in 3d. - -- Specifications are incomplete, to be redefined for the typologies - -- correpsonding to and the result : - -- exemple : FromShape resultat - -- vertex wire (or edge) - -- edge of section face (or shell) - -- compound of section shell - -- ... ... - ---C++: return const & - returns Shape from TopoDS; - - PropagateFromSection(me : in out;SectionShape : Shape from TopoDS) - ---Purpose: SectionShape est soit un Vertex de section(NYI), soit - -- une Edge de section. Propagation des shapes - -- de section en partant de SectionShape. - -- return un Compound de section. - ---C++: return const & - returns Shape from TopoDS; - - --- History - Modified (me: in out; S : Shape from TopoDS) - ---Purpose: Returns the list of the descendant shapes of the shape . - ---C++: return const & - returns ListOfShape from TopTools ; - - IsDeleted (me: in out; S : Shape from TopoDS) - ---Purpose: Returns the fact that the shape has been deleted or not - -- by the boolean operation. - returns Boolean; - --- Verification de la DS - - Check(me : in out) - ---Purpose: NYI - -- coherence of the internal Data Structure. - returns CheckStatus from BRepAlgo; - --- private - - RemoveEdgeInterferences(me : in out;iF1 : Integer; - iF2 : Integer; - iCurve : Integer) - ---purpose: case of SectEdge coming from Curve - -- for each of F1 and F2, find Edges - -- for each Edge : - -- remove the impact on geometry of vertexes - -- of SectEdge. If there is no other impact at these edges - -- and if these Edges are not SameDomain, - -- make unKeepShape. - is private; - - RemoveEdgeInterferences(me : in out;iE1 : Integer; - iE2 : Integer; - SectEdge :Shape from TopoDS) - ---purpose: case of SectEdge coming from Edge(s) - -- if iE1 and iE2 are Edges : - -- Remove the impact of DSEdge(= iE1 or iE2) of - -- geometry a vertex of SectEdge, and if there is nothing - -- else make unkeep on DSEdge - -- if iE1 or iE2 == 0, no interference on Edges in the DS - -- if iE1 and iE2 are Faces : - -- for each of faces F1 and F2, explode into Edges - -- for each Edge : - -- remove interferences a vertex of SectEdge as geometry. - -- If no other interferences are attached to - -- these Edges, and if these Edges are not SameDomain, - -- make unKeepShape. - is private; - - RemoveFaceInterferences(me : in out;iF1 : Integer; - iF2 : Integer; - iE1 : Integer; - iE2 : Integer) - --purpose : case of SectEdge coming from Edge(s) - -- Remove the interferences between F1 and F2 concerning - -- DSEdge (= E1 or E2) : - -- a) if DSEdge is not SameDomain -> the edge is Removed - -- b) if there are no interferences of DSEdge of - -- GeomtryType == VERTEX - -- with Edge of DSFace(= F1 or F2) - -- if DSFace has no more interference and is not SameDomain, - -- make unkeep DSFace. - is private; - - RemoveFaceInterferences(me : in out;iF1 : Integer; - iF2 : Integer; - iCurve : Integer) - ---purpose: case of SectEdge coming from Curve - -- remove the interferences of Geometry iCurve between F1 and F2. - -- if Face(= F1 or F2) has no other interferences, and if Face - -- is not SameDomain, make unKeepShape Face. - is private; - - RemoveEdgeInterferencesFromFace(me : in out; - iF1 : Integer; - iF2 : Integer; - ipv1 : Integer; - kind1 : Kind from TopOpeBRepDS; - ipv2 : Integer; - kind2 : Kind from TopOpeBRepDS) - ---purpose: remove from iF1 or iF2 interferences of Edges - -- that have GeometryType kind1/kind2 and - -- Geometry ipv1/ipv2. - -- if kind1/kind2 == TopAbs_VERTEX -> RemoveEdgeFromFace - is private; - - RemoveEdgeFromFace(me : in out;iF : Integer; - iV : Integer) - ---purpose: remove from the DS the Edges that belong to iF - -- that have iV as Vertex if they do not have Geometry and - -- are not SameDomain. - is private; - - PntVtxOnCurve(me : in out; iCurve : Integer; - ipv1 : in out Integer; - ik1 : in out Kind from TopOpeBRepDS; - ipv2 : in out Integer; - ik2 : in out Kind from TopOpeBRepDS) - ---purpose: Find points/vertex on curves - is private; - - PntVtxOnSectEdge(me : in out; SectEdge : Shape from TopoDS; - ipv1 : in out Integer; - ik1 : in out Kind from TopOpeBRepDS; - ipv2 : in out Integer; - ik2 : in out Kind from TopOpeBRepDS) - ---purpose : Find points/Vertex on SectEdge - is private; - - RemoveEdgeSameDomain(me : in out; iE1 : Integer; - iE2 : Integer) - is private; - - RemoveFaceSameDomain(me : in out; C : Shape from TopoDS) - is private; - - FindGoodFace(me : in out; iE : Integer; - iF1 : in out Integer; - b : in out Boolean) - ---C++: return & - returns ListOfInteger from TColStd is private; - - - - RemoveFaceSameDomain(me : in out; iF1 : Integer; - iF2 : Integer) - is private; - - GoodInterf(me : in out; SectEdge : Shape from TopoDS; - kind : Kind from TopOpeBRepDS; - iPointVertex : Integer) - returns Boolean is private; - - DS(me) returns HDataStructure from TopOpeBRepDS; - ---C++: return const & - - ChangeDS(me : in out) returns HDataStructure from TopOpeBRepDS; - ---C++: return & - - Builder(me) returns HBuilder from TopOpeBRepBuild; - ---C++: return const & - - ChangeBuilder(me : in out) returns HBuilder from TopOpeBRepBuild; - ---C++: return & - -fields - - myHDS : HDataStructure from TopOpeBRepDS; - myDSFiller : DSFiller from TopOpeBRep; - myHB : HBuilder from TopOpeBRepBuild; - myEC : EdgeConnector from BRepAlgo; - myS1 : Shape from TopoDS; - myS2 : Shape from TopoDS; - myState1,myState2 : State from TopAbs; - - myListOfCompoundOfEdgeConnected : ListOfShape from TopTools; - myCurrentList : ListOfShape from TopTools; - myRecomputeBuilderIsDone : Boolean from Standard; - myGetSectionIsDone : Boolean from Standard; - myResultShape : Shape from TopoDS; - - myWire : Wire from TopoDS; - myListOfVertex : ListOfShape from TopTools; - myModified : ListOfShape from TopTools; - myEmptyShape : Shape from TopoDS; - myEmptyListOfShape : ListOfShape from TopTools; - myEmptyListOfInteger : ListOfInteger from TColStd; - - myCompoundWireMap : DataMapOfShapeShape from TopTools; - mySetOfKeepPoint : PackedMapOfInteger from TColStd; - -friends - - class BooleanOperations - -end DSAccess from BRepAlgo; diff --git a/src/BRepAlgo/BRepAlgo_DSAccess.cxx b/src/BRepAlgo/BRepAlgo_DSAccess.cxx index cd41cda7df..620365eb6c 100644 --- a/src/BRepAlgo/BRepAlgo_DSAccess.cxx +++ b/src/BRepAlgo/BRepAlgo_DSAccess.cxx @@ -14,41 +14,43 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include +#include +#include +#include #include +#include +#include #include #include - -#include -#include -#include -#include +#include #include #include +#include +#include #include -#include +#include +#include +#include +#include #include -#include #include -#include -#include -#include -#include -#include -#include +#include #include #include #include +#include +#include +#include +#include +#include +#include #include +#include #include -#include -#include -#include -#include +#include +#include +#include #ifdef DRAW //#include diff --git a/src/BRepAlgo/BRepAlgo_DSAccess.hxx b/src/BRepAlgo/BRepAlgo_DSAccess.hxx new file mode 100644 index 0000000000..aefaeab2e3 --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_DSAccess.hxx @@ -0,0 +1,237 @@ +// Created on: 1997-08-13 +// Created by: Prestataire Mary FABIEN +// 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_DSAccess_HeaderFile +#define _BRepAlgo_DSAccess_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class TopOpeBRepDS_HDataStructure; +class TopOpeBRepBuild_HBuilder; +class BRepAlgo_EdgeConnector; +class BRepAlgo_BooleanOperations; +class TopoDS_Shape; +class TopoDS_Vertex; + + + +class BRepAlgo_DSAccess +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepAlgo_DSAccess(); + + //! Clears the internal data structure, including the + Standard_EXPORT void Init(); + + //! Loads the shape in DS. + Standard_EXPORT void Load (const TopoDS_Shape& S); + + //! Loads two shapes in the DS without intersecting them. + Standard_EXPORT void Load (TopoDS_Shape& S1, TopoDS_Shape& S2); + + //! Intersects two shapes at input and loads the DS with + //! their intersection. Clears the TopOpeBRepBuild_HBuilder if + //! necessary + Standard_EXPORT void Intersect(); + + //! Intersects the faces contained in two given shapes + //! and loads them in the DS. Clears the TopOpeBRepBuild_HBuilder + //! if necessary + Standard_EXPORT void Intersect (const TopoDS_Shape& S1, const TopoDS_Shape& S2); + + //! This method does the same thing as the previous, + //! but faster. There is no intersection face/face 3D. + //! The faces have the same support(surface). No test of + //! tangency (that is why it is faster). Intersects in 2d + //! the faces tangent F1 anf F2. + Standard_EXPORT void SameDomain (const TopoDS_Shape& S1, const TopoDS_Shape& S2); + + //! returns compounds of Edge connected with section, which + //! contains sections between faces contained in S1 and S2. + //! returns an empty list of Shape if S1 or S2 do not contain + //! face. + //! calls GetSectionEdgeSet() if it has not already been done + Standard_EXPORT const TopTools_ListOfShape& GetSectionEdgeSet (const TopoDS_Shape& S1, const TopoDS_Shape& S2); + + //! returns all compounds of edges connected with section + //! contained in the DS + Standard_EXPORT const TopTools_ListOfShape& GetSectionEdgeSet(); + + //! NYI + Standard_EXPORT Standard_Boolean IsWire (const TopoDS_Shape& Compound); + + //! NYI + Standard_EXPORT const TopoDS_Shape& Wire (const TopoDS_Shape& Compound); + + //! NYI + //! returns the vertex of section, which contains the section + //! between face S1 and edge S2 (returns an empty Shape + //! if S1 is not a face or if S2 is not an edge) + Standard_EXPORT const TopTools_ListOfShape& SectionVertex (const TopoDS_Shape& S1, const TopoDS_Shape& S2); + + //! Invalidates a complete line of section. All + //! Edges connected by Vertex or a Wire. Can be + //! a group of connected Edges, which do not form a + //! standard Wire. + Standard_EXPORT void SuppressEdgeSet (const TopoDS_Shape& Compound); + + //! Modifies a line of section. -- should be a + //! Group of Edges connected by Vertex. -- Can be a + //! Wire. Can be a group of connected Edges that do not + //! form a standard Wire. should be sub-groupn of + Standard_EXPORT void ChangeEdgeSet (const TopoDS_Shape& Old, const TopoDS_Shape& New); + + //! NYI + //! Make invalid a Vertex of section. The Vertex shoud be + //! reconstructed from a point. + Standard_EXPORT void SuppressSectionVertex (const TopoDS_Vertex& V); + + Standard_EXPORT const TopoDS_Shape& Merge (const TopAbs_State state1, const TopAbs_State state2); + + Standard_EXPORT const TopoDS_Shape& Merge (const TopAbs_State state1); + + //! NYI Propagation of a state starting from the shape + //! FromShape = edge or vertex of section, face or + //! Coumpound de section. LoadShape is either S1, + //! or S2 (see the method Load). Propagation from + //! FromShape, on the states of LoadShape. + //! Return a Wire in 2d, a Shell in 3d. + //! Specifications are incomplete, to be redefined for the typologies + //! correpsonding to and the result : + //! exemple : FromShape resultat + //! vertex wire (or edge) + //! edge of section face (or shell) + //! compound of section shell + //! ... ... + Standard_EXPORT const TopoDS_Shape& Propagate (const TopAbs_State what, const TopoDS_Shape& FromShape, const TopoDS_Shape& LoadShape); + + //! SectionShape est soit un Vertex de section(NYI), soit + //! une Edge de section. Propagation des shapes + //! de section en partant de SectionShape. + //! return un Compound de section. + Standard_EXPORT const TopoDS_Shape& PropagateFromSection (const TopoDS_Shape& SectionShape); + + //! Returns the list of the descendant shapes of the shape . + Standard_EXPORT const TopTools_ListOfShape& Modified (const TopoDS_Shape& S); + + //! Returns the fact that the shape has been deleted or not + //! by the boolean operation. + Standard_EXPORT Standard_Boolean IsDeleted (const TopoDS_Shape& S); + + //! NYI + //! coherence of the internal Data Structure. + Standard_EXPORT BRepAlgo_CheckStatus Check(); + + Standard_EXPORT const Handle(TopOpeBRepDS_HDataStructure)& DS() const; + + Standard_EXPORT Handle(TopOpeBRepDS_HDataStructure)& ChangeDS(); + + Standard_EXPORT const Handle(TopOpeBRepBuild_HBuilder)& Builder() const; + + Standard_EXPORT Handle(TopOpeBRepBuild_HBuilder)& ChangeBuilder(); + + +friend class BRepAlgo_BooleanOperations; + + +protected: + + + + + +private: + + + Standard_EXPORT void Suppress (const TopoDS_Shape& Compound, const TopoDS_Shape& KeepComp); + + Standard_EXPORT void RemoveEdgeInterferences (const Standard_Integer iF1, const Standard_Integer iF2, const Standard_Integer iCurve); + + Standard_EXPORT void RemoveEdgeInterferences (const Standard_Integer iE1, const Standard_Integer iE2, const TopoDS_Shape& SectEdge); + + Standard_EXPORT void RemoveFaceInterferences (const Standard_Integer iF1, const Standard_Integer iF2, const Standard_Integer iE1, const Standard_Integer iE2); + + Standard_EXPORT void RemoveFaceInterferences (const Standard_Integer iF1, const Standard_Integer iF2, const Standard_Integer iCurve); + + Standard_EXPORT void RemoveEdgeInterferencesFromFace (const Standard_Integer iF1, const Standard_Integer iF2, const Standard_Integer ipv1, const TopOpeBRepDS_Kind kind1, const Standard_Integer ipv2, const TopOpeBRepDS_Kind kind2); + + Standard_EXPORT void RemoveEdgeFromFace (const Standard_Integer iF, const Standard_Integer iV); + + Standard_EXPORT void PntVtxOnCurve (const Standard_Integer iCurve, Standard_Integer& ipv1, TopOpeBRepDS_Kind& ik1, Standard_Integer& ipv2, TopOpeBRepDS_Kind& ik2); + + Standard_EXPORT void PntVtxOnSectEdge (const TopoDS_Shape& SectEdge, Standard_Integer& ipv1, TopOpeBRepDS_Kind& ik1, Standard_Integer& ipv2, TopOpeBRepDS_Kind& ik2); + + Standard_EXPORT void RemoveEdgeSameDomain (const Standard_Integer iE1, const Standard_Integer iE2); + + Standard_EXPORT void RemoveFaceSameDomain (const TopoDS_Shape& C); + + Standard_EXPORT TColStd_ListOfInteger& FindGoodFace (const Standard_Integer iE, Standard_Integer& iF1, Standard_Boolean& b); + + Standard_EXPORT void RemoveFaceSameDomain (const Standard_Integer iF1, const Standard_Integer iF2); + + Standard_EXPORT Standard_Boolean GoodInterf (const TopoDS_Shape& SectEdge, const TopOpeBRepDS_Kind kind, const Standard_Integer iPointVertex); + + + Handle(TopOpeBRepDS_HDataStructure) myHDS; + TopOpeBRep_DSFiller myDSFiller; + Handle(TopOpeBRepBuild_HBuilder) myHB; + Handle(BRepAlgo_EdgeConnector) myEC; + TopoDS_Shape myS1; + TopoDS_Shape myS2; + TopAbs_State myState1; + TopAbs_State myState2; + TopTools_ListOfShape myListOfCompoundOfEdgeConnected; + TopTools_ListOfShape myCurrentList; + Standard_Boolean myRecomputeBuilderIsDone; + Standard_Boolean myGetSectionIsDone; + TopoDS_Shape myResultShape; + TopoDS_Wire myWire; + TopTools_ListOfShape myListOfVertex; + TopTools_ListOfShape myModified; + TopoDS_Shape myEmptyShape; + TopTools_ListOfShape myEmptyListOfShape; + TColStd_ListOfInteger myEmptyListOfInteger; + TopTools_DataMapOfShapeShape myCompoundWireMap; + TColStd_PackedMapOfInteger mySetOfKeepPoint; + + +}; + + + + + + + +#endif // _BRepAlgo_DSAccess_HeaderFile diff --git a/src/BRepAlgo/BRepAlgo_EdgeConnector.cdl b/src/BRepAlgo/BRepAlgo_EdgeConnector.cdl deleted file mode 100644 index 31352097e0..0000000000 --- a/src/BRepAlgo/BRepAlgo_EdgeConnector.cdl +++ /dev/null @@ -1,81 +0,0 @@ --- Created on: 1997-08-22 --- Created by: Prestataire Mary FABIEN --- 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. - -class EdgeConnector from BRepAlgo inherits TShared from MMgt - - ---Purpose: Used by DSAccess to reconstruct an EdgeSet of connected edges. The result produced by - -- MakeBlock is a list of non-standard TopoDS_wire, - -- which can present connexions of edge of order > 2 - -- in certain vertex. The method IsWire - -- indicates standard/non-standard character of all wire produced. - -uses - - ListOfShape from TopTools, - MapOfShape from TopTools, - Shape from TopoDS, - Edge from TopoDS, - HDataStructure from TopOpeBRepDS, - ShapeSet from TopOpeBRepBuild, - BlockBuilder from TopOpeBRepBuild, - DataMapOfShapeBoolean from BRepAlgo - -is - - Create returns EdgeConnector from BRepAlgo; - - Add(me : mutable; e : Edge from TopoDS); - ---Purpose: - - Add(me : mutable; LOEdge : in out ListOfShape from TopTools); - ---Purpose: - - AddStart(me : mutable; e : Shape from TopoDS); - ---Purpose: - - AddStart(me : mutable; LOEdge : in out ListOfShape from TopTools); - ---Purpose: - - ClearStartElement(me : mutable); - - MakeBlock(me : mutable) - ---Purpose: returns a list of wire non standard - ---C++: return & - returns ListOfShape from TopTools; - - Done(me : mutable); - - IsDone(me) - ---Purpose: NYI - ---Purpose: returns true if proceeded to MakeBlock() - returns Boolean from Standard; - - IsWire(me : mutable; W : Shape from TopoDS) - ---Purpose: NYI - ---Purpose: returns true if W is a Wire standard. - -- W must belong to the list returned by MakeBlock. - returns Boolean from Standard; - -fields - - myListeOfEdge : ListOfShape from TopTools; - myListeOfStartEdge : ListOfShape from TopTools; - myResultMap : DataMapOfShapeBoolean from BRepAlgo; - myResultList : ListOfShape from TopTools; - myBlockB : BlockBuilder from TopOpeBRepBuild; - myIsDone : Boolean from Standard; - -end EdgeConnector from BRepAlgo; diff --git a/src/BRepAlgo/BRepAlgo_EdgeConnector.cxx b/src/BRepAlgo/BRepAlgo_EdgeConnector.cxx index 8e054a878a..ab9fc951aa 100644 --- a/src/BRepAlgo/BRepAlgo_EdgeConnector.cxx +++ b/src/BRepAlgo/BRepAlgo_EdgeConnector.cxx @@ -14,23 +14,24 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include #include -#include -#include #include -#include -#include -#include #include -#include +#include +#include +#include +#include //======================================================================= //function : Create //purpose : //======================================================================= - BRepAlgo_EdgeConnector::BRepAlgo_EdgeConnector() :myIsDone(Standard_False) { diff --git a/src/BRepAlgo/BRepAlgo_EdgeConnector.hxx b/src/BRepAlgo/BRepAlgo_EdgeConnector.hxx new file mode 100644 index 0000000000..258ced28ba --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_EdgeConnector.hxx @@ -0,0 +1,101 @@ +// Created on: 1997-08-22 +// Created by: Prestataire Mary FABIEN +// 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_EdgeConnector_HeaderFile +#define _BRepAlgo_EdgeConnector_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +class TopoDS_Edge; +class TopoDS_Shape; + + +class BRepAlgo_EdgeConnector; +DEFINE_STANDARD_HANDLE(BRepAlgo_EdgeConnector, MMgt_TShared) + +//! Used by DSAccess to reconstruct an EdgeSet of connected edges. The result produced by +//! MakeBlock is a list of non-standard TopoDS_wire, +//! which can present connexions of edge of order > 2 +//! in certain vertex. The method IsWire +//! indicates standard/non-standard character of all wire produced. +class BRepAlgo_EdgeConnector : public MMgt_TShared +{ + +public: + + + Standard_EXPORT BRepAlgo_EdgeConnector(); + + Standard_EXPORT void Add (const TopoDS_Edge& e); + + Standard_EXPORT void Add (TopTools_ListOfShape& LOEdge); + + Standard_EXPORT void AddStart (const TopoDS_Shape& e); + + Standard_EXPORT void AddStart (TopTools_ListOfShape& LOEdge); + + Standard_EXPORT void ClearStartElement(); + + //! returns a list of wire non standard + Standard_EXPORT TopTools_ListOfShape& MakeBlock(); + + Standard_EXPORT void Done(); + + //! NYI + //! returns true if proceeded to MakeBlock() + Standard_EXPORT Standard_Boolean IsDone() const; + + //! NYI + //! returns true if W is a Wire standard. + //! W must belong to the list returned by MakeBlock. + Standard_EXPORT Standard_Boolean IsWire (const TopoDS_Shape& W); + + + + + DEFINE_STANDARD_RTTI(BRepAlgo_EdgeConnector,MMgt_TShared) + +protected: + + + + +private: + + + TopTools_ListOfShape myListeOfEdge; + TopTools_ListOfShape myListeOfStartEdge; + BRepAlgo_DataMapOfShapeBoolean myResultMap; + TopTools_ListOfShape myResultList; + TopOpeBRepBuild_BlockBuilder myBlockB; + Standard_Boolean myIsDone; + + +}; + + + + + + + +#endif // _BRepAlgo_EdgeConnector_HeaderFile diff --git a/src/BRepAlgo/BRepAlgo_FaceRestrictor.cdl b/src/BRepAlgo/BRepAlgo_FaceRestrictor.cdl deleted file mode 100644 index d3c3a945ff..0000000000 --- a/src/BRepAlgo/BRepAlgo_FaceRestrictor.cdl +++ /dev/null @@ -1,100 +0,0 @@ --- 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. - -class FaceRestrictor from BRepAlgo - - ---Purpose: 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. - -uses - Wire from TopoDS, - Face from TopoDS, - ListOfShape from TopTools, - DataMapOfShapeListOfShape from TopTools -is - - Create returns FaceRestrictor from BRepAlgo; - - Init (me : in out; - F : Face from TopoDS; - Proj : Boolean from Standard = Standard_False; - ControlOrientation : Boolean from Standard = Standard_False) - ---Purpose: the surface of will be the the surface of each new - -- faces built. - -- is used to update pcurves on edges if necessary. - -- See Add(). - is static; - - Add( me : in out; - W : in out Wire from TopoDS) - ---Purpose: Add the wire to the set of wires. - -- - -- Warning: - -- The Wires must be closed. - -- - -- The edges of can be modified if they have not pcurves - -- on the surface of . In this case - -- if is false the first pcurve of the edge - -- is positionned on . - -- if is True ,the Pcurve On is the - -- projection of the curve 3d on . - is static; - - Clear(me : in out) - ---Purpose: Removes all the Wires - is static; - - Perform( me : in out) - ---Purpose: Evaluate all the faces limited by the set of Wires. - is static; - - IsDone( me) - returns Boolean from Standard - is static; - - More( me) - returns Boolean from Standard - is static; - - Next( me : in out) - is static; - - Current(me) - returns Face from TopoDS - is static; - - PerformWithCorrection( me : in out) - ---Purpose: Evaluate all the faces limited by the set of Wires. - is static private; - -fields - - myDone : Boolean from Standard; - modeProj : Boolean from Standard; - myFace : Face from TopoDS; - wires : ListOfShape from TopTools; - faces : ListOfShape from TopTools; - - myCorrection : Boolean from Standard; - keyIsIn : DataMapOfShapeListOfShape from TopTools; - keyContains : DataMapOfShapeListOfShape from TopTools; - -end FaceRestrictor; - diff --git a/src/BRepAlgo/BRepAlgo_FaceRestrictor.cxx b/src/BRepAlgo/BRepAlgo_FaceRestrictor.cxx index 91247eee4e..f01b28b219 100644 --- a/src/BRepAlgo/BRepAlgo_FaceRestrictor.cxx +++ b/src/BRepAlgo/BRepAlgo_FaceRestrictor.cxx @@ -14,32 +14,32 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include #include #include +#include #include -#include -#include #include #include - #include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRepAlgo_FaceRestrictor //purpose : //======================================================================= - BRepAlgo_FaceRestrictor::BRepAlgo_FaceRestrictor() {} diff --git a/src/BRepAlgo/BRepAlgo_FaceRestrictor.hxx b/src/BRepAlgo/BRepAlgo_FaceRestrictor.hxx new file mode 100644 index 0000000000..5aa1fcb7d8 --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_FaceRestrictor.hxx @@ -0,0 +1,114 @@ +// 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 +#include +#include + +#include +#include +#include +#include +class TopoDS_Face; +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 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 have not pcurves + //! on the surface of . In this case + //! if is false the first pcurve of the edge + //! is positionned 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/src/BRepAlgo/BRepAlgo_Fuse.cdl b/src/BRepAlgo/BRepAlgo_Fuse.cdl deleted file mode 100644 index bf752be164..0000000000 --- a/src/BRepAlgo/BRepAlgo_Fuse.cdl +++ /dev/null @@ -1,34 +0,0 @@ --- Created on: 1993-10-14 --- 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. - -class Fuse from BRepAlgo inherits BooleanOperation from BRepAlgo - - ---Purpose: Describes functions for performing a topological - -- fusion operation (Boolean union). - -- A Fuse object provides the framework for: - -- - defining the construction of a fused shape, - -- - implementing the construction algorithm, and - -- - consulting the result. - -uses - Shape from TopoDS - -is - Create (S1,S2 : Shape from TopoDS) returns Fuse from BRepAlgo; - ---Purpose: Fuse S1 and S2. - ---Level: Public - -end Fuse; diff --git a/src/BRepAlgo/BRepAlgo_Fuse.cxx b/src/BRepAlgo/BRepAlgo_Fuse.cxx index 69cbf484e3..1b6ee38ffc 100644 --- a/src/BRepAlgo/BRepAlgo_Fuse.cxx +++ b/src/BRepAlgo/BRepAlgo_Fuse.cxx @@ -14,7 +14,9 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include //======================================================================= //function : BRepAlgo_Fuse diff --git a/src/BRepAlgo/BRepAlgo_Fuse.hxx b/src/BRepAlgo/BRepAlgo_Fuse.hxx new file mode 100644 index 0000000000..fc9be1cb21 --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_Fuse.hxx @@ -0,0 +1,67 @@ +// Created on: 1993-10-14 +// 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 _BRepAlgo_Fuse_HeaderFile +#define _BRepAlgo_Fuse_HeaderFile + +#include +#include +#include + +#include +class TopoDS_Shape; + + +//! Describes functions for performing a topological +//! fusion operation (Boolean union). +//! A Fuse object provides the framework for: +//! - defining the construction of a fused shape, +//! - implementing the construction algorithm, and +//! - consulting the result. +class BRepAlgo_Fuse : public BRepAlgo_BooleanOperation +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Fuse S1 and S2. + Standard_EXPORT BRepAlgo_Fuse(const TopoDS_Shape& S1, const TopoDS_Shape& S2); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepAlgo_Fuse_HeaderFile diff --git a/src/BRepAlgo/BRepAlgo_Image.cdl b/src/BRepAlgo/BRepAlgo_Image.cdl deleted file mode 100644 index 5000832e02..0000000000 --- a/src/BRepAlgo/BRepAlgo_Image.cdl +++ /dev/null @@ -1,134 +0,0 @@ --- Created on: 1995-10-26 --- 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. - -class Image from BRepAlgo - - ---Purpose: Stores link between a shape and a shape - -- obtained from . is an image of . - -uses - Shape from TopoDS, - ShapeEnum from TopAbs, - ListOfShape from TopTools, - DataMapOfShapeListOfShape from TopTools, - DataMapOfShapeShape from TopTools - -raises - ConstructionError from Standard - -is - Create; - - SetRoot (me : in out; S : Shape from TopoDS) - is static; - - - Bind (me : in out; OldS : Shape from TopoDS; - NewS : Shape from TopoDS) - ---Purpose: Links as image of . - raises - ConstructionError -- if Olds has image. - is static; - - - Bind (me : in out; OldS : Shape from TopoDS; - NewS : ListOfShape from TopTools) - ---Purpose: Links as image of . - raises - ConstructionError -- if Olds has image. - is static; - - - Add (me : in out; OldS : Shape from TopoDS; - NewS : Shape from TopoDS) - ---Purpose: Add to the image of . - raises - ConstructionError -- if Olds has not image. - is static; - - - Add (me : in out; OldS : Shape from TopoDS; - NewS : ListOfShape from TopTools) - ---Purpose: Add to the image of . - raises - ConstructionError -- if Olds has not image. - is static; - - Clear(me : in out) - is static; - - Remove(me : in out; S : Shape from TopoDS) - ---Purpose: Remove to set of images. - raises - ConstructionError -- if S is not an image. - is static; - - Roots (me) - ---C++: return const & - returns ListOfShape from TopTools - is static; - - IsImage (me; S : Shape from TopoDS) - returns Boolean from Standard - is static; - - ImageFrom (me; S : Shape from TopoDS) - ---Purpose: Returns the generator of - ---C++: return const & - returns Shape from TopoDS - is static; - - Root (me; S : Shape from TopoDS) - ---Purpose: Returns the upper generator of - ---C++: return const & - returns Shape from TopoDS - is static; - - HasImage (me; S : Shape from TopoDS) - returns Boolean from Standard - is static; - - Image (me; S : Shape from TopoDS) - ---Purpose: Returns the Image of . - -- Returns in the list if HasImage(S) is false. - ---C++: return const & - returns ListOfShape from TopTools - is static; - - LastImage (me; S : Shape from TopoDS; - L : in out ListOfShape from TopTools) - ---Purpose: Stores in the images of images of...images of . - -- contains only if HasImage(S) is false. - is static; - - Compact (me : in out) - ---Purpose: Keeps only the link between roots and lastimage. - is static; - - Filter (me : in out; - S : Shape from TopoDS; - ShapeType : ShapeEnum from TopAbs); - ---Purpose: Deletes in the images the shape of type - -- which are not in . - -- Warning: Compact() must be call before. - -fields - - roots : ListOfShape from TopTools; - up : DataMapOfShapeShape from TopTools; - down : DataMapOfShapeListOfShape from TopTools; - -end Image; diff --git a/src/BRepAlgo/BRepAlgo_Image.cxx b/src/BRepAlgo/BRepAlgo_Image.cxx index 2d619aeb09..53c6f19d1d 100644 --- a/src/BRepAlgo/BRepAlgo_Image.cxx +++ b/src/BRepAlgo/BRepAlgo_Image.cxx @@ -14,19 +14,19 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include #include +#include +#include +#include #include #include -#include -#include //======================================================================= //function : BRepAlgo_Image //purpose : //======================================================================= - BRepAlgo_Image::BRepAlgo_Image() { } diff --git a/src/BRepAlgo/BRepAlgo_Image.hxx b/src/BRepAlgo/BRepAlgo_Image.hxx new file mode 100644 index 0000000000..f2d57ad2a5 --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_Image.hxx @@ -0,0 +1,117 @@ +// Created on: 1995-10-26 +// 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_Image_HeaderFile +#define _BRepAlgo_Image_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class Standard_ConstructionError; +class TopoDS_Shape; + + +//! Stores link between a shape and a shape +//! obtained from . is an image of . +class BRepAlgo_Image +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepAlgo_Image(); + + Standard_EXPORT void SetRoot (const TopoDS_Shape& S); + + //! Links as image of . + Standard_EXPORT void Bind (const TopoDS_Shape& OldS, const TopoDS_Shape& NewS); + + //! Links as image of . + Standard_EXPORT void Bind (const TopoDS_Shape& OldS, const TopTools_ListOfShape& NewS); + + //! Add to the image of . + Standard_EXPORT void Add (const TopoDS_Shape& OldS, const TopoDS_Shape& NewS); + + //! Add to the image of . + Standard_EXPORT void Add (const TopoDS_Shape& OldS, const TopTools_ListOfShape& NewS); + + Standard_EXPORT void Clear(); + + //! Remove to set of images. + Standard_EXPORT void Remove (const TopoDS_Shape& S); + + Standard_EXPORT const TopTools_ListOfShape& Roots() const; + + Standard_EXPORT Standard_Boolean IsImage (const TopoDS_Shape& S) const; + + //! Returns the generator of + Standard_EXPORT const TopoDS_Shape& ImageFrom (const TopoDS_Shape& S) const; + + //! Returns the upper generator of + Standard_EXPORT const TopoDS_Shape& Root (const TopoDS_Shape& S) const; + + Standard_EXPORT Standard_Boolean HasImage (const TopoDS_Shape& S) const; + + //! Returns the Image of . + //! Returns in the list if HasImage(S) is false. + Standard_EXPORT const TopTools_ListOfShape& Image (const TopoDS_Shape& S) const; + + //! Stores in the images of images of...images of . + //! contains only if HasImage(S) is false. + Standard_EXPORT void LastImage (const TopoDS_Shape& S, TopTools_ListOfShape& L) const; + + //! Keeps only the link between roots and lastimage. + Standard_EXPORT void Compact(); + + //! Deletes in the images the shape of type + //! which are not in . + //! Warning: Compact() must be call before. + Standard_EXPORT void Filter (const TopoDS_Shape& S, const TopAbs_ShapeEnum ShapeType); + + + + +protected: + + + + + +private: + + + + TopTools_ListOfShape roots; + TopTools_DataMapOfShapeShape up; + TopTools_DataMapOfShapeListOfShape down; + + +}; + + + + + + + +#endif // _BRepAlgo_Image_HeaderFile diff --git a/src/BRepAlgo/BRepAlgo_Loop.cdl b/src/BRepAlgo/BRepAlgo_Loop.cdl deleted file mode 100644 index 1ebe1c3b46..0000000000 --- a/src/BRepAlgo/BRepAlgo_Loop.cdl +++ /dev/null @@ -1,105 +0,0 @@ --- Created on: 1995-11-10 --- 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. - -class Loop from BRepAlgo - - ---Purpose: Builds the loops from a set of edges on a face. - -uses - - Face from TopoDS, - Edge from TopoDS, - ListOfShape from TopTools, - DataMapOfShapeListOfShape from TopTools, - DataMapOfShapeShape from TopTools - -is - - Create; - - Init (me : in out; F : Face from TopoDS) - ---Purpose: Init with the set of edges must have - -- pcurves on . - is static; - - AddEdge (me : in out; E : in out Edge from TopoDS; - LV : ListOfShape from TopTools) - ---Purpose: Add E with . will be copied and trim - -- by vertices in . - is static; - - AddConstEdge (me : in out; E : Edge from TopoDS) - ---Purpose: Add as const edge, E can be in the result. - is static; - - AddConstEdges (me : in out; LE : ListOfShape from TopTools) - ---Purpose: Add as a set of const edges. - is static; - - Perform(me : in out) - ---Purpose: Make loops. - is static; - - CutEdge(me; - E : Edge from TopoDS; - VonE : ListOfShape from TopTools; - NE : in out ListOfShape from TopTools) - ---Purpose: Cut the edge in several edges on the - -- vertices. - is static; - - NewWires (me) - ---Purpose: Returns the list of wires performed. - -- can be an empty list. - ---C++: return const & - returns ListOfShape from TopTools; - - WiresToFaces (me : in out) - ---Purpose: Build faces from the wires result. - is static; - - NewFaces (me) - ---Purpose: Returns the list of faces. - -- Warning: The method as to be called before. - -- can be an empty list. - ---C++: return const & - returns ListOfShape from TopTools; - - NewEdges (me ; E : Edge from TopoDS) - ---Purpose: Returns the list of new edges built from an edge - -- it can be an empty list. - ---C++: return const & - returns ListOfShape from TopTools; - - GetVerticesForSubstitute (me; VerVerMap: out DataMapOfShapeShape from TopTools); - ---Purpose: Returns the datamap of vertices with their substitutes. - - VerticesForSubstitute (me : in out; VerVerMap: in out DataMapOfShapeShape from TopTools); - ---Purpose: - -fields - - myFace : Face from TopoDS; - myConstEdges : ListOfShape from TopTools; - myEdges : ListOfShape from TopTools; - myVerOnEdges : DataMapOfShapeListOfShape from TopTools; - myNewWires : ListOfShape from TopTools; - myNewFaces : ListOfShape from TopTools; - myCutEdges : DataMapOfShapeListOfShape from TopTools; - - myVerticesForSubstitute : DataMapOfShapeShape from TopTools; - -end Loop; diff --git a/src/BRepAlgo/BRepAlgo_Loop.cxx b/src/BRepAlgo/BRepAlgo_Loop.cxx index 1d3ca3d794..e960404045 100644 --- a/src/BRepAlgo/BRepAlgo_Loop.cxx +++ b/src/BRepAlgo/BRepAlgo_Loop.cxx @@ -14,35 +14,34 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include #include -#include +#include #include - +#include +#include +#include #include #include -#include -#include -#include -#include -#include -#include - -#include -#include -#include #include #include #include -#include -#include +#include #include +#include +#include +#include #include +#include +#include +#include #include +#include +#include +#include +#include +#include #ifdef DRAW #include #pragma comment(lib,"TKDraw") diff --git a/src/BRepAlgo/BRepAlgo_Loop.hxx b/src/BRepAlgo/BRepAlgo_Loop.hxx new file mode 100644 index 0000000000..73a17589c0 --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_Loop.hxx @@ -0,0 +1,115 @@ +// Created on: 1995-11-10 +// 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_Loop_HeaderFile +#define _BRepAlgo_Loop_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class TopoDS_Face; +class TopoDS_Edge; + + +//! Builds the loops from a set of edges on a face. +class BRepAlgo_Loop +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepAlgo_Loop(); + + //! Init with the set of edges must have + //! pcurves on . + Standard_EXPORT void Init (const TopoDS_Face& F); + + //! Add E with . will be copied and trim + //! by vertices in . + Standard_EXPORT void AddEdge (TopoDS_Edge& E, const TopTools_ListOfShape& LV); + + //! Add as const edge, E can be in the result. + Standard_EXPORT void AddConstEdge (const TopoDS_Edge& E); + + //! Add as a set of const edges. + Standard_EXPORT void AddConstEdges (const TopTools_ListOfShape& LE); + + //! Make loops. + Standard_EXPORT void Perform(); + + //! Cut the edge in several edges on the + //! vertices. + Standard_EXPORT void CutEdge (const TopoDS_Edge& E, const TopTools_ListOfShape& VonE, TopTools_ListOfShape& NE) const; + + //! Returns the list of wires performed. + //! can be an empty list. + Standard_EXPORT const TopTools_ListOfShape& NewWires() const; + + //! Build faces from the wires result. + Standard_EXPORT void WiresToFaces(); + + //! Returns the list of faces. + //! Warning: The method as to be called before. + //! can be an empty list. + Standard_EXPORT const TopTools_ListOfShape& NewFaces() const; + + //! Returns the list of new edges built from an edge + //! it can be an empty list. + Standard_EXPORT const TopTools_ListOfShape& NewEdges (const TopoDS_Edge& E) const; + + //! Returns the datamap of vertices with their substitutes. + Standard_EXPORT void GetVerticesForSubstitute (TopTools_DataMapOfShapeShape& VerVerMap) const; + + Standard_EXPORT void VerticesForSubstitute (TopTools_DataMapOfShapeShape& VerVerMap); + + + + +protected: + + + + + +private: + + + + TopoDS_Face myFace; + TopTools_ListOfShape myConstEdges; + TopTools_ListOfShape myEdges; + TopTools_DataMapOfShapeListOfShape myVerOnEdges; + TopTools_ListOfShape myNewWires; + TopTools_ListOfShape myNewFaces; + TopTools_DataMapOfShapeListOfShape myCutEdges; + TopTools_DataMapOfShapeShape myVerticesForSubstitute; + + +}; + + + + + + + +#endif // _BRepAlgo_Loop_HeaderFile diff --git a/src/BRepAlgo/BRepAlgo_NormalProjection.cdl b/src/BRepAlgo/BRepAlgo_NormalProjection.cdl deleted file mode 100644 index 982e5d11d9..0000000000 --- a/src/BRepAlgo/BRepAlgo_NormalProjection.cdl +++ /dev/null @@ -1,168 +0,0 @@ --- 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. - -class NormalProjection from BRepAlgo - - ---Purpose: This class makes the projection of a wire on a - -- shape. - - -uses Shape from TopoDS, - Edge from TopoDS, - Shape from GeomAbs, - Curve from Adaptor3d, - ListOfShape from TopTools, - DataMapOfShapeShape from TopTools, - DataMapOfShapeListOfShape from TopTools - - -raises ConstructionError from Standard, - NoSuchObject from Standard, - NotDone from StdFail - -is - - Create - - returns NormalProjection; - - - Create(S: Shape from TopoDS) - - returns NormalProjection; - - - Init(me: in out; S: Shape from TopoDS) - - is static; - - Add(me: in out; ToProj: Shape from TopoDS) - ---Purpose: Add an edge or a wire to the list of shape to project - -- - raises ConstructionError from Standard - is static; - - SetParams(me : in out; Tol3D, Tol2D : Real from Standard; - InternalContinuity : Shape from GeomAbs; - MaxDegree , MaxSeg : Integer from Standard) - ---Purpose: Set the parameters used for computation - -- Tol3d is the requiered 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. - - is static; - - SetDefaultParams(me : in out) - ---Purpose: Set the parameters used for computation - -- in their default values - - is static; - - SetMaxDistance(me: in out; MaxDist: Real from Standard) - ---Purpose: 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 - - is static; - - Compute3d(me: in out; With3d: Boolean from Standard = Standard_True) - ---Purpose: if With3d = Standard_False the 3dcurve is not computed - -- the initial 3dcurve is kept to build the resulting edges. - is static; - - SetLimit(me : in out; FaceBoundaries: Boolean from Standard = Standard_True) - ---Purpose: Manage limitation of projected edges. - --By default edges are limited by face boundaries, - --else they are limited by supporting surface boundaries. - is static; - - Build(me: in out); - ---Purpose: Builds the result as a compound. - - IsDone(me) - - returns Boolean from Standard - is static; - - - Projection(me) - ---Purpose: returns the result - returns Shape from TopoDS - ---C++: return const& - raises NotDone from StdFail - is static; - - - Ancestor(me; E: Edge from TopoDS) - ---Purpose: For a resulting edge, returns the corresponding initial edge. - - returns Shape from TopoDS - ---C++: return const& - raises NotDone from StdFail, - NoSuchObject from Standard - is static; - - Couple(me; E: Edge from TopoDS) - ---Purpose: For a projected edge, returns the corresponding initial face. - - returns Shape from TopoDS - ---C++: return const& - raises NotDone from StdFail, - NoSuchObject from Standard - is static; - - Generated (me: in out; S : Shape from TopoDS) - ---Purpose: Returns the list of shapes generated from the - -- shape . - ---C++: return const & - returns ListOfShape from TopTools; - - - IsElementary(me; C: Curve from Adaptor3d) - returns Boolean from Standard - is static; - - BuildWire(me; Liste : out ListOfShape from TopTools) - returns Boolean from Standard - is static; - --- Purpose : build the result as a list of wire if possible in -- - -- a first returns a wire only if there is only a wire. - -- - - -fields - - myShape : Shape from TopoDS; - myIsDone : Boolean from Standard; - myTol3d : Real from Standard; - myTol2d : Real from Standard; - myMaxDist : Real from Standard; - myWith3d : Boolean from Standard; - myContinuity : Shape from GeomAbs; - myMaxDegree : Integer from Standard; - myMaxSeg : Integer from Standard; - myFaceBounds : Boolean from Standard; - myToProj : Shape from TopoDS; - myAncestorMap : DataMapOfShapeShape from TopTools; - myCorresp : DataMapOfShapeShape from TopTools; - myDescendants : DataMapOfShapeListOfShape from TopTools; - myRes : Shape from TopoDS; - -end NormalProjection; diff --git a/src/BRepAlgo/BRepAlgo_NormalProjection.cxx b/src/BRepAlgo/BRepAlgo_NormalProjection.cxx index 2846abbc61..3ffb47aa33 100644 --- a/src/BRepAlgo/BRepAlgo_NormalProjection.cxx +++ b/src/BRepAlgo/BRepAlgo_NormalProjection.cxx @@ -14,40 +14,45 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include + +#include +#include +#include #include #include -#include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include -#include +#include +#include +#include #include +#include +#include #include #include -#include -#include -#include -#include #include -#include -#include -#include +#include +#include +#include +#include +#include #include -#include #include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #ifdef OCCT_DEBUG_CHRONO diff --git a/src/BRepAlgo/BRepAlgo_NormalProjection.hxx b/src/BRepAlgo/BRepAlgo_NormalProjection.hxx new file mode 100644 index 0000000000..1ef01f8466 --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_NormalProjection.hxx @@ -0,0 +1,146 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_ConstructionError; +class Standard_NoSuchObject; +class StdFail_NotDone; +class TopoDS_Shape; +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 requiered 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/src/BRepAlgo/BRepAlgo_Section.cdl b/src/BRepAlgo/BRepAlgo_Section.cdl deleted file mode 100644 index 8188b4ea4d..0000000000 --- a/src/BRepAlgo/BRepAlgo_Section.cdl +++ /dev/null @@ -1,349 +0,0 @@ --- Created on: 1994-02-18 --- 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. - -class Section from BRepAlgo inherits BooleanOperation from BRepAlgo - - ---Purpose: Construction of the section lines between two shapes. - -- For this Boolean operation, each face of the first - -- shape is intersected by each face of the second - -- shape. The resulting intersection edges are brought - -- together into a compound object, but not chained or - -- grouped into wires. - -- Computation of the intersection of two Shapes or Surfaces - -- The two parts involved in this Boolean operation may - -- be defined from geometric surfaces: the most common - -- use is the computation of the planar section of a shape. - -- A Section object provides the framework for: - -- - defining the shapes to be intersected, and the - -- computation options, - -- - implementing the construction algorithm, and - -- - consulting the result. - -- Example : giving two shapes S1,S2 accessing faces, - -- let compute the section edges R on S1,S2, - -- performing approximation on new curves, - -- performing PCurve on part 1 but not on part 2 : - -- Standard_Boolean PerformNow = Standard_False; - -- BRepBoolAPI_Section S(S1,S2,PerformNow); - -- S.ComputePCurveOn1(Standard_True); - -- S.Approximation(Standard_True); - -- S.Build(); - -- TopoDS_Shape R = S.Shape(); - -- On Null Shapes of geometries, NotDone() is called. - -uses - - Shape from TopoDS, - Surface from Geom, - Pln from gp, - Curve from Geom2d - -is - - Create(Sh1,Sh2 : Shape from TopoDS; - PerformNow : Boolean = Standard_True) - returns Section from BRepAlgo; - - Create(Sh : Shape from TopoDS; Pl : Pln from gp; - PerformNow : Boolean = Standard_True) - - returns Section from BRepAlgo; - - Create(Sh : Shape from TopoDS; Sf : Surface from Geom; - PerformNow : Boolean = Standard_True) - - returns Section from BRepAlgo; - - Create(Sf : Surface from Geom; Sh : Shape from TopoDS; - PerformNow : Boolean = Standard_True) - - returns Section from BRepAlgo; - - Create(Sf1 : Surface from Geom; Sf2 : Surface from Geom; - PerformNow : Boolean = Standard_True) - ---Purpose: This and the above algorithms construct a framework for computing the section lines of - -- - the two shapes Sh1 and Sh2, or - -- - the shape Sh and the plane Pl, or - -- - the shape Sh and the surface Sf, or - -- - the surface Sf and the shape Sh, or - -- - the two surfaces Sf1 and Sf2, - -- and builds the result if PerformNow equals true, its - -- default value. If PerformNow equals false, the - -- intersection will be computed later by the function Build. - -- The constructed shape will be returned by the - -- function Shape. This is a compound object - -- composed of edges. These intersection edges may be built: - -- - on new intersection lines, or - -- - on coincident portions of edges in the two intersected shapes. - -- These intersection edges are independent: they - -- are not chained or grouped in wires. - -- If no intersection edge exists, the result is an empty compound object. - -- Note that other objects than TopoDS_Shape - -- shapes involved in these syntaxes are converted - -- into faces or shells before performing the - -- computation of the intersection. A shape resulting - -- from this conversion can be retrieved with the - -- function Shape1 or Shape2. - -- Parametric 2D curves on intersection edges - -- No parametric 2D curve (pcurve) is defined for - -- each elementary edge of the result. To attach such - -- parametric curves to the constructed edges you - -- may use a constructor with the PerformNow flag - -- equal to false; then you use: - -- - the function ComputePCurveOn1 to ask for the - -- additional computation of a pcurve in the - -- parametric space of the first shape, - -- - the function ComputePCurveOn2 to ask for the - -- additional computation of a pcurve in the - -- parametric space of the second shape, - -- - in the end, the function Build to construct the result. - -- Note that as a result, pcurves will only be added on - -- edges built on new intersection lines. - -- Approximation of intersection edges - -- The underlying 3D geometry attached to each - -- elementary edge of the result is: - -- - analytic where possible, provided the - -- corresponding geometry corresponds to a type - -- of analytic curve defined in the Geom package; - -- for example, the intersection of a cylindrical - -- shape with a plane gives an ellipse or a circle; - -- - or elsewhere, given as a succession of points - -- grouped together in a BSpline curve of degree 1. - -- If you prefer to have an attached 3D geometry - -- which is a BSpline approximation of the computed - -- set of points on computed elementary intersection - -- edges whose underlying geometry is not analytic, - -- you may use a constructor with the PerformNow - -- flag equal to false. Then you use: - -- - the function Approximation to ask for this - -- computation option, and - -- - the function Build to construct the result. - -- Note that as a result, approximations will only be - -- computed on edges built on new intersection lines. - -- Example - -- You may also combine these computation options. - -- In the following example: - -- - each elementary edge of the computed - -- intersection, built on a new intersection line, - -- which does not correspond to an analytic Geom - -- curve, will be approximated by a BSpline curve - -- whose degree is not greater than 8. - -- - each elementary edge built on a new intersection line, will have: - -- - a pcurve in the parametric space of the shape S1, - -- - no pcurve in the parametric space of the shape S2. - -- // TopoDS_Shape S1 = ... , S2 = ... ; - -- Standard_Boolean PerformNow = Standard_False; - -- BRepAlgo_Section S ( S1, S2, PerformNow ); - -- S.ComputePCurveOn1 (Standard_True); - -- S.Approximation (Standard_True); - -- S.Build(); - -- TopoDS_Shape R = S.Shape(); - - returns Section from BRepAlgo; - - Init1(me : out;S1 : Shape from TopoDS); - ---Purpose: Initializes the first part - - Init1(me : out;Pl : Pln from gp); - ---Purpose: Initializes the first part - - Init1(me : out;Sf : Surface from Geom); - ---Purpose: Initializes the first part - - Init2(me : out;S2 : Shape from TopoDS); - ---Purpose: initialize second part - - Init2(me : out;Pl : Pln from gp); - ---Purpose: Initializes the second part - - Init2(me : out;Sf : Surface from Geom); - ---Purpose: This and the above algorithms - -- reinitialize the first and the second parts on which - -- this algorithm is going to perform the intersection - -- computation. This is done with either: the surface - -- Sf, the plane Pl or the shape Sh. - -- You use the function Build to construct the result. - - Approximation(me : out;B : Boolean); - ---Purpose: Defines an option for computation of further - --- intersections. This computation will be performed by - -- the function Build in this framework. - -- By default, the underlying 3D geometry attached to - -- each elementary edge of the result of a computed intersection is: - -- - analytic where possible, provided the - -- corresponding geometry corresponds to a type of - -- analytic curve defined in the Geom package; for - -- example the intersection of a cylindrical shape with - -- a plane gives an ellipse or a circle; - -- - or elsewhere, given as a succession of points - -- grouped together in a BSpline curve of degree 1. If - -- Approx equals true, when further computations are - -- performed in this framework with the function - -- Build, these edges will have an attached 3D - -- geometry which is a BSpline approximation of the - -- computed set of points. - -- Note that as a result, approximations will be computed - -- on edges built only on new intersection lines. - - ComputePCurveOn1(me : out;B : Boolean); - ---Level: Public - ---Purpose: Indicates if the Pcurve must be (or not) performed on first part. - - ComputePCurveOn2(me : out;B : Boolean); - ---Level: Public - ---Purpose: Define options for the computation of further - -- intersections which will be performed by the function - -- Build in this framework. - -- By default, no parametric 2D curve (pcurve) is defined - -- for the elementary edges of the result. - -- If ComputePCurve1 equals true, further computations - -- performed in this framework with the function Build - -- will attach an additional pcurve in the parametric - -- space of the first shape to the constructed edges. - -- If ComputePCurve2 equals true, the additional pcurve - -- will be attached to the constructed edges in the - -- parametric space of the second shape. - -- These two functions may be used together. - -- Note that as a result, pcurves will only be added onto - -- edges built on new intersection lines. - - Build(me : in out) - ---Purpose: Performs the computation of the section lines - -- between the two parts defined at the time of - -- construction of this framework or reinitialized with the - -- Init1 and Init2 functions. - -- The constructed shape will be returned by the function - -- Shape. This is a compound object composed of - -- edges. These intersection edges may be built: - -- - on new intersection lines, or - -- - on coincident portions of edges in the two intersected shapes. - -- These intersection edges are independent: they are - -- not chained or grouped into wires. - -- If no intersection edge exists, the result is an empty compound object. - -- The shapes involved in the construction of the section - -- lines can be retrieved with the function Shape1 or - -- Shape2. Note that other objects than - -- TopoDS_Shape shapes given as arguments at the - -- construction time of this framework, or to the Init1 or - -- Init2 function, are converted into faces or shells - -- before performing the computation of the intersection. - -- Parametric 2D curves on intersection edges - -- No parametric 2D curve (pcurve) is defined for the - -- elementary edges of the result. To attach parametric - -- curves like this to the constructed edges you have to use: - -- - the function ComputePCurveOn1 to ask for the - -- additional computation of a pcurve in the - -- parametric space of the first shape, - -- - the function ComputePCurveOn2 to ask for the - -- additional computation of a pcurve in the - -- parametric space of the second shape. - -- This must be done before calling this function. - -- Note that as a result, pcurves are added on edges - -- built on new intersection lines only. - -- Approximation of intersection edges - -- The underlying 3D geometry attached to each - -- elementary edge of the result is: - -- - analytic where possible provided the corresponding - -- geometry corresponds to a type of analytic curve - -- defined in the Geom package; for example, the - -- intersection of a cylindrical shape with a plane - -- gives an ellipse or a circle; or - -- - elsewhere, given as a succession of points grouped - -- together in a BSpline curve of degree 1. - -- If, on computed elementary intersection edges whose - -- underlying geometry is not analytic, you prefer to - -- have an attached 3D geometry which is a BSpline - -- approximation of the computed set of points, you have - -- to use the function Approximation to ask for this - -- computation option before calling this function. - -- You may also have combined these computation - -- options: look at the example given above to illustrate - -- the use of the constructors. - is redefined static; - - HasAncestorFaceOn1(me; E : Shape from TopoDS; - F : out Shape from TopoDS) - returns Boolean; - ---Purpose:Identifies the ancestor faces of the new - -- intersection edge E resulting from the last - -- computation performed in this framework, that is, - -- the faces of the two original shapes on which the edge E lies: - -- - HasAncestorFaceOn1 gives the ancestor face - -- in the first shape, and - -- These functions return: - -- - true if an ancestor face F is found, or - -- - false if not. - -- An ancestor face is identifiable for the edge E if the - -- three following conditions are satisfied: - -- - the first part on which this algorithm performed - -- its last computation is a shape, that is, it was not - -- given as a surface or a plane at the time of - -- construction of this algorithm or at a later time by - -- the Init1 function, - -- - E is one of the elementary edges built by the last - -- computation of this section algorithm, - -- - the edge E is built on an intersection curve. In - -- other words, E is a new edge built on the - -- intersection curve, not on edges belonging to the - -- intersecting shapes. - -- To use these functions properly, you have to test - -- the returned Boolean value before using the - -- ancestor face: F is significant only if the returned - -- Boolean value equals true. - - HasAncestorFaceOn2(me; E : Shape from TopoDS; - F : out Shape from TopoDS) - returns Boolean; - ---Purpose: Identifies the ancestor faces of the new - -- intersection edge E resulting from the last - -- computation performed in this framework, that is, - -- the faces of the two original shapes on which the edge E lies: - -- - HasAncestorFaceOn2 gives the ancestor face in the second shape. - -- These functions return: - -- - true if an ancestor face F is found, or - -- - false if not. - -- An ancestor face is identifiable for the edge E if the - -- three following conditions are satisfied: - -- - the first part on which this algorithm performed - -- its last computation is a shape, that is, it was not - -- given as a surface or a plane at the time of - -- construction of this algorithm or at a later time by - -- the Init1 function, - -- - E is one of the elementary edges built by the last - -- computation of this section algorithm, - -- - the edge E is built on an intersection curve. In - -- other words, E is a new edge built on the - -- intersection curve, not on edges belonging to the - -- intersecting shapes. - -- To use these functions properly, you have to test - -- the returned Boolean value before using the - -- ancestor face: F is significant only if the returned - -- Boolean value equals true. - - InitParameters(me : out) - ---Level: Public - ---Level: Private - is redefined private; - -fields - - myS1Changed : Boolean; - myS2Changed : Boolean; - myApproxChanged : Boolean; - myPCurve1Changed : Boolean; - myPCurve2Changed : Boolean; - myshapeisnull : Boolean; - -end Section; diff --git a/src/BRepAlgo/BRepAlgo_Section.cxx b/src/BRepAlgo/BRepAlgo_Section.cxx index 4c259609d0..11b08c42d4 100644 --- a/src/BRepAlgo/BRepAlgo_Section.cxx +++ b/src/BRepAlgo/BRepAlgo_Section.cxx @@ -14,20 +14,23 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include + +#include +#include +#include #include -#include -#include -#include +#include +#include #include #include -#include -#include +#include +#include +#include #include -#include -#include #include +#include +#include +#include static TopoDS_Shape MakeShape(const Handle(Geom_Surface)& ); diff --git a/src/BRepAlgo/BRepAlgo_Section.hxx b/src/BRepAlgo/BRepAlgo_Section.hxx new file mode 100644 index 0000000000..fdf7fb56cc --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_Section.hxx @@ -0,0 +1,354 @@ +// Created on: 1994-02-18 +// 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 _BRepAlgo_Section_HeaderFile +#define _BRepAlgo_Section_HeaderFile + +#include +#include +#include + +#include +#include +class TopoDS_Shape; +class gp_Pln; +class Geom_Surface; + + +//! Construction of the section lines between two shapes. +//! For this Boolean operation, each face of the first +//! shape is intersected by each face of the second +//! shape. The resulting intersection edges are brought +//! together into a compound object, but not chained or +//! grouped into wires. +//! Computation of the intersection of two Shapes or Surfaces +//! The two parts involved in this Boolean operation may +//! be defined from geometric surfaces: the most common +//! use is the computation of the planar section of a shape. +//! A Section object provides the framework for: +//! - defining the shapes to be intersected, and the +//! computation options, +//! - implementing the construction algorithm, and +//! - consulting the result. +//! Example : giving two shapes S1,S2 accessing faces, +//! let compute the section edges R on S1,S2, +//! performing approximation on new curves, +//! performing PCurve on part 1 but not on part 2 : +//! Standard_Boolean PerformNow = Standard_False; +//! BRepBoolAPI_Section S(S1,S2,PerformNow); +//! S.ComputePCurveOn1(Standard_True); +//! S.Approximation(Standard_True); +//! S.Build(); +//! TopoDS_Shape R = S.Shape(); +//! On Null Shapes of geometries, NotDone() is called. +class BRepAlgo_Section : public BRepAlgo_BooleanOperation +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepAlgo_Section(const TopoDS_Shape& Sh1, const TopoDS_Shape& Sh2, const Standard_Boolean PerformNow = Standard_True); + + Standard_EXPORT BRepAlgo_Section(const TopoDS_Shape& Sh, const gp_Pln& Pl, const Standard_Boolean PerformNow = Standard_True); + + Standard_EXPORT BRepAlgo_Section(const TopoDS_Shape& Sh, const Handle(Geom_Surface)& Sf, const Standard_Boolean PerformNow = Standard_True); + + Standard_EXPORT BRepAlgo_Section(const Handle(Geom_Surface)& Sf, const TopoDS_Shape& Sh, const Standard_Boolean PerformNow = Standard_True); + + //! This and the above algorithms construct a framework for computing the section lines of + //! - the two shapes Sh1 and Sh2, or + //! - the shape Sh and the plane Pl, or + //! - the shape Sh and the surface Sf, or + //! - the surface Sf and the shape Sh, or + //! - the two surfaces Sf1 and Sf2, + //! and builds the result if PerformNow equals true, its + //! default value. If PerformNow equals false, the + //! intersection will be computed later by the function Build. + //! The constructed shape will be returned by the + //! function Shape. This is a compound object + //! composed of edges. These intersection edges may be built: + //! - on new intersection lines, or + //! - on coincident portions of edges in the two intersected shapes. + //! These intersection edges are independent: they + //! are not chained or grouped in wires. + //! If no intersection edge exists, the result is an empty compound object. + //! Note that other objects than TopoDS_Shape + //! shapes involved in these syntaxes are converted + //! into faces or shells before performing the + //! computation of the intersection. A shape resulting + //! from this conversion can be retrieved with the + //! function Shape1 or Shape2. + //! Parametric 2D curves on intersection edges + //! No parametric 2D curve (pcurve) is defined for + //! each elementary edge of the result. To attach such + //! parametric curves to the constructed edges you + //! may use a constructor with the PerformNow flag + //! equal to false; then you use: + //! - the function ComputePCurveOn1 to ask for the + //! additional computation of a pcurve in the + //! parametric space of the first shape, + //! - the function ComputePCurveOn2 to ask for the + //! additional computation of a pcurve in the + //! parametric space of the second shape, + //! - in the end, the function Build to construct the result. + //! Note that as a result, pcurves will only be added on + //! edges built on new intersection lines. + //! Approximation of intersection edges + //! The underlying 3D geometry attached to each + //! elementary edge of the result is: + //! - analytic where possible, provided the + //! corresponding geometry corresponds to a type + //! of analytic curve defined in the Geom package; + //! for example, the intersection of a cylindrical + //! shape with a plane gives an ellipse or a circle; + //! - or elsewhere, given as a succession of points + //! grouped together in a BSpline curve of degree 1. + //! If you prefer to have an attached 3D geometry + //! which is a BSpline approximation of the computed + //! set of points on computed elementary intersection + //! edges whose underlying geometry is not analytic, + //! you may use a constructor with the PerformNow + //! flag equal to false. Then you use: + //! - the function Approximation to ask for this + //! computation option, and + //! - the function Build to construct the result. + //! Note that as a result, approximations will only be + //! computed on edges built on new intersection lines. + //! Example + //! You may also combine these computation options. + //! In the following example: + //! - each elementary edge of the computed + //! intersection, built on a new intersection line, + //! which does not correspond to an analytic Geom + //! curve, will be approximated by a BSpline curve + //! whose degree is not greater than 8. + //! - each elementary edge built on a new intersection line, will have: + //! - a pcurve in the parametric space of the shape S1, + //! - no pcurve in the parametric space of the shape S2. + //! // TopoDS_Shape S1 = ... , S2 = ... ; + //! Standard_Boolean PerformNow = Standard_False; + //! BRepAlgo_Section S ( S1, S2, PerformNow ); + //! S.ComputePCurveOn1 (Standard_True); + //! S.Approximation (Standard_True); + //! S.Build(); + //! TopoDS_Shape R = S.Shape(); + Standard_EXPORT BRepAlgo_Section(const Handle(Geom_Surface)& Sf1, const Handle(Geom_Surface)& Sf2, const Standard_Boolean PerformNow = Standard_True); + + //! Initializes the first part + Standard_EXPORT void Init1 (const TopoDS_Shape& S1); + + //! Initializes the first part + Standard_EXPORT void Init1 (const gp_Pln& Pl); + + //! Initializes the first part + Standard_EXPORT void Init1 (const Handle(Geom_Surface)& Sf); + + //! initialize second part + Standard_EXPORT void Init2 (const TopoDS_Shape& S2); + + //! Initializes the second part + Standard_EXPORT void Init2 (const gp_Pln& Pl); + + //! This and the above algorithms + //! reinitialize the first and the second parts on which + //! this algorithm is going to perform the intersection + //! computation. This is done with either: the surface + //! Sf, the plane Pl or the shape Sh. + //! You use the function Build to construct the result. + Standard_EXPORT void Init2 (const Handle(Geom_Surface)& Sf); + + //! Defines an option for computation of further + //! intersections. This computation will be performed by + //! the function Build in this framework. + //! By default, the underlying 3D geometry attached to + //! each elementary edge of the result of a computed intersection is: + //! - analytic where possible, provided the + //! corresponding geometry corresponds to a type of + //! analytic curve defined in the Geom package; for + //! example the intersection of a cylindrical shape with + //! a plane gives an ellipse or a circle; + //! - or elsewhere, given as a succession of points + //! grouped together in a BSpline curve of degree 1. If + //! Approx equals true, when further computations are + //! performed in this framework with the function + //! Build, these edges will have an attached 3D + //! geometry which is a BSpline approximation of the + //! computed set of points. + //! Note that as a result, approximations will be computed + //! on edges built only on new intersection lines. + Standard_EXPORT void Approximation (const Standard_Boolean B); + + //! Indicates if the Pcurve must be (or not) performed on first part. + Standard_EXPORT void ComputePCurveOn1 (const Standard_Boolean B); + + //! Define options for the computation of further + //! intersections which will be performed by the function + //! Build in this framework. + //! By default, no parametric 2D curve (pcurve) is defined + //! for the elementary edges of the result. + //! If ComputePCurve1 equals true, further computations + //! performed in this framework with the function Build + //! will attach an additional pcurve in the parametric + //! space of the first shape to the constructed edges. + //! If ComputePCurve2 equals true, the additional pcurve + //! will be attached to the constructed edges in the + //! parametric space of the second shape. + //! These two functions may be used together. + //! Note that as a result, pcurves will only be added onto + //! edges built on new intersection lines. + Standard_EXPORT void ComputePCurveOn2 (const Standard_Boolean B); + + //! Performs the computation of the section lines + //! between the two parts defined at the time of + //! construction of this framework or reinitialized with the + //! Init1 and Init2 functions. + //! The constructed shape will be returned by the function + //! Shape. This is a compound object composed of + //! edges. These intersection edges may be built: + //! - on new intersection lines, or + //! - on coincident portions of edges in the two intersected shapes. + //! These intersection edges are independent: they are + //! not chained or grouped into wires. + //! If no intersection edge exists, the result is an empty compound object. + //! The shapes involved in the construction of the section + //! lines can be retrieved with the function Shape1 or + //! Shape2. Note that other objects than + //! TopoDS_Shape shapes given as arguments at the + //! construction time of this framework, or to the Init1 or + //! Init2 function, are converted into faces or shells + //! before performing the computation of the intersection. + //! Parametric 2D curves on intersection edges + //! No parametric 2D curve (pcurve) is defined for the + //! elementary edges of the result. To attach parametric + //! curves like this to the constructed edges you have to use: + //! - the function ComputePCurveOn1 to ask for the + //! additional computation of a pcurve in the + //! parametric space of the first shape, + //! - the function ComputePCurveOn2 to ask for the + //! additional computation of a pcurve in the + //! parametric space of the second shape. + //! This must be done before calling this function. + //! Note that as a result, pcurves are added on edges + //! built on new intersection lines only. + //! Approximation of intersection edges + //! The underlying 3D geometry attached to each + //! elementary edge of the result is: + //! - analytic where possible provided the corresponding + //! geometry corresponds to a type of analytic curve + //! defined in the Geom package; for example, the + //! intersection of a cylindrical shape with a plane + //! gives an ellipse or a circle; or + //! - elsewhere, given as a succession of points grouped + //! together in a BSpline curve of degree 1. + //! If, on computed elementary intersection edges whose + //! underlying geometry is not analytic, you prefer to + //! have an attached 3D geometry which is a BSpline + //! approximation of the computed set of points, you have + //! to use the function Approximation to ask for this + //! computation option before calling this function. + //! You may also have combined these computation + //! options: look at the example given above to illustrate + //! the use of the constructors. + Standard_EXPORT void Build() Standard_OVERRIDE; + + //! Identifies the ancestor faces of the new + //! intersection edge E resulting from the last + //! computation performed in this framework, that is, + //! the faces of the two original shapes on which the edge E lies: + //! - HasAncestorFaceOn1 gives the ancestor face + //! in the first shape, and + //! These functions return: + //! - true if an ancestor face F is found, or + //! - false if not. + //! An ancestor face is identifiable for the edge E if the + //! three following conditions are satisfied: + //! - the first part on which this algorithm performed + //! its last computation is a shape, that is, it was not + //! given as a surface or a plane at the time of + //! construction of this algorithm or at a later time by + //! the Init1 function, + //! - E is one of the elementary edges built by the last + //! computation of this section algorithm, + //! - the edge E is built on an intersection curve. In + //! other words, E is a new edge built on the + //! intersection curve, not on edges belonging to the + //! intersecting shapes. + //! To use these functions properly, you have to test + //! the returned Boolean value before using the + //! ancestor face: F is significant only if the returned + //! Boolean value equals true. + Standard_EXPORT Standard_Boolean HasAncestorFaceOn1 (const TopoDS_Shape& E, TopoDS_Shape& F) const; + + //! Identifies the ancestor faces of the new + //! intersection edge E resulting from the last + //! computation performed in this framework, that is, + //! the faces of the two original shapes on which the edge E lies: + //! - HasAncestorFaceOn2 gives the ancestor face in the second shape. + //! These functions return: + //! - true if an ancestor face F is found, or + //! - false if not. + //! An ancestor face is identifiable for the edge E if the + //! three following conditions are satisfied: + //! - the first part on which this algorithm performed + //! its last computation is a shape, that is, it was not + //! given as a surface or a plane at the time of + //! construction of this algorithm or at a later time by + //! the Init1 function, + //! - E is one of the elementary edges built by the last + //! computation of this section algorithm, + //! - the edge E is built on an intersection curve. In + //! other words, E is a new edge built on the + //! intersection curve, not on edges belonging to the + //! intersecting shapes. + //! To use these functions properly, you have to test + //! the returned Boolean value before using the + //! ancestor face: F is significant only if the returned + //! Boolean value equals true. + Standard_EXPORT Standard_Boolean HasAncestorFaceOn2 (const TopoDS_Shape& E, TopoDS_Shape& F) const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT virtual void InitParameters() Standard_OVERRIDE; + + + Standard_Boolean myS1Changed; + Standard_Boolean myS2Changed; + Standard_Boolean myApproxChanged; + Standard_Boolean myPCurve1Changed; + Standard_Boolean myPCurve2Changed; + Standard_Boolean myshapeisnull; + + +}; + + + + + + + +#endif // _BRepAlgo_Section_HeaderFile diff --git a/src/BRepAlgo/BRepAlgo_Tool.cdl b/src/BRepAlgo/BRepAlgo_Tool.cdl deleted file mode 100644 index 53c22b170e..0000000000 --- a/src/BRepAlgo/BRepAlgo_Tool.cdl +++ /dev/null @@ -1,39 +0,0 @@ --- Created on: 1995-10-23 --- 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. - -class Tool from BRepAlgo - - ---Purpose: - -uses - Shape from TopoDS, - MapOfShape from TopTools - -is - - Deboucle3D (myclass; - S : in Shape from TopoDS; - Boundary : in MapOfShape from TopTools) - ---Purpose: Remove the non valid part of an offsetshape - -- 1 - Remove all the free boundary and the faces - -- connex to such edges. - -- 2 - Remove all the shapes not valid in the result - -- (according to the side of offseting) - -- in this verion only the first point is implemented. - returns Shape from TopoDS; - - -end Tool; diff --git a/src/BRepAlgo/BRepAlgo_Tool.cxx b/src/BRepAlgo/BRepAlgo_Tool.cxx index bc4a6f662b..8d2110caae 100644 --- a/src/BRepAlgo/BRepAlgo_Tool.cxx +++ b/src/BRepAlgo/BRepAlgo_Tool.cxx @@ -14,25 +14,22 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include #include #include +#include +#include #include -#include #include - - - +#include +#include +#include +#include //======================================================================= //function : Deboucle3D //purpose : //======================================================================= - TopoDS_Shape BRepAlgo_Tool::Deboucle3D(const TopoDS_Shape& S, const TopTools_MapOfShape& Boundary) { diff --git a/src/BRepAlgo/BRepAlgo_Tool.hxx b/src/BRepAlgo/BRepAlgo_Tool.hxx new file mode 100644 index 0000000000..a344fcf3d7 --- /dev/null +++ b/src/BRepAlgo/BRepAlgo_Tool.hxx @@ -0,0 +1,67 @@ +// Created on: 1995-10-23 +// 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_Tool_HeaderFile +#define _BRepAlgo_Tool_HeaderFile + +#include +#include +#include + +#include +class TopoDS_Shape; + + + +class BRepAlgo_Tool +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Remove the non valid part of an offsetshape + //! 1 - Remove all the free boundary and the faces + //! connex to such edges. + //! 2 - Remove all the shapes not valid in the result + //! (according to the side of offseting) + //! in this verion only the first point is implemented. + Standard_EXPORT static TopoDS_Shape Deboucle3D (const TopoDS_Shape& S, const TopTools_MapOfShape& Boundary); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepAlgo_Tool_HeaderFile diff --git a/src/BRepAlgo/FILES b/src/BRepAlgo/FILES index a7986f7636..dba5d3dced 100755 --- a/src/BRepAlgo/FILES +++ b/src/BRepAlgo/FILES @@ -1,6 +1,37 @@ +BRepAlgo.cxx +BRepAlgo.hxx BRepAlgo_1.cxx -BRepAlgo_DataMapOfShapeBoolean.hxx +BRepAlgo_AsDes.cxx +BRepAlgo_AsDes.hxx +BRepAlgo_BooleanOperation.cxx +BRepAlgo_BooleanOperation.hxx +BRepAlgo_BooleanOperations.cxx +BRepAlgo_BooleanOperations.hxx +BRepAlgo_CheckStatus.hxx +BRepAlgo_Common.cxx +BRepAlgo_Common.hxx +BRepAlgo_Cut.cxx +BRepAlgo_Cut.hxx BRepAlgo_DataMapIteratorOfDataMapOfShapeBoolean.hxx -BRepAlgo_DataMapOfShapeInterference.hxx BRepAlgo_DataMapIteratorOfDataMapOfShapeInterference.hxx +BRepAlgo_DataMapOfShapeBoolean.hxx +BRepAlgo_DataMapOfShapeInterference.hxx +BRepAlgo_DSAccess.cxx +BRepAlgo_DSAccess.hxx +BRepAlgo_EdgeConnector.cxx +BRepAlgo_EdgeConnector.hxx +BRepAlgo_FaceRestrictor.cxx +BRepAlgo_FaceRestrictor.hxx +BRepAlgo_Fuse.cxx +BRepAlgo_Fuse.hxx +BRepAlgo_Image.cxx +BRepAlgo_Image.hxx +BRepAlgo_Loop.cxx +BRepAlgo_Loop.hxx +BRepAlgo_NormalProjection.cxx +BRepAlgo_NormalProjection.hxx +BRepAlgo_Section.cxx +BRepAlgo_Section.hxx BRepAlgo_SequenceOfSequenceOfInteger.hxx +BRepAlgo_Tool.cxx +BRepAlgo_Tool.hxx diff --git a/src/BRepAlgoAPI/BRepAlgoAPI.cdl b/src/BRepAlgoAPI/BRepAlgoAPI.cdl deleted file mode 100644 index de14928460..0000000000 --- a/src/BRepAlgoAPI/BRepAlgoAPI.cdl +++ /dev/null @@ -1,114 +0,0 @@ --- 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. - -package BRepAlgoAPI - - ---Purpose: The BRepAlgoAPI package provides a full range of - -- services to perform Boolean Operations on arguments (shapes - -- that are defined in the BRep data structures). The - -- implemented new algorithm is intended to replace the Old - -- Boolean Operations algorithm in the BRepAlgoAPI package. - -- The New algorithm is free of a large number of weak spots - -- and limitations characteristics of the Old algorithm. - -- It is more powerful and flexible. - -- It can process arguments the Old algorithm was not adapted for. - -- The new algorithm is based on a new approach to operations - -- with interfered shapes. The advantages of the new algorithm - -- include an ability to treat arguments that have shared - -- entities. It can properly process two solids with shared - -- faces (in terms of TopoDS_Shape::IsSame()), two - -- faces that have shared edges and so on. Now the New Boolean - -- Operation algorithm can treat a wide range of shapes while the - -- Old one fails on them. - -- A generalization of treatment of same-domain faces - -- was included into the New algorithm. Two faces that share - -- the same domain are processed according to the common rule - -- even if the underlying surfaces are of different types. This - -- allows to execute Boolean Operations properly for the same - -- domain faces. It also concerns solids and shells that have the - -- same domain faces. It is quite frequent when two faces share - -- the same domain. And the New algorithm successfully copes - -- with it in contrast to the Old one. - -- Generalization oftreatment of degenerated edges - -- gives a possibility to process them properly. Although there - -- are still some difficulties with processing faces in areas close - -- to degenerated edges. - -- Now the processing of arguments having internal sub-shapes gives - -- a correct result. Internal sub-shape means a sub-shape of a - -- shape with the orientation TopAbs_INTERNAL and is located - -- inside the shape boundaries. The New algorithm processes faces - -- with internal edges properly. The new API of the Boolean - -- Operations (in addition to the old API) allows to reuse the - -- already computed interference between arguments in different - -- types of Boolean Operations. It is possible to use once computed - -- interference in FUSE, CUT and COMMON operations on given - -- arguments. So there is no need to re-compute the interference - -- between the arguments. It allows to reduce time for more than one - -- operation on given arguments. - -- The shape type of a Boolean Operation result and types of the arguments: - -- - For arguments with the same shape type (e.g. SOLID / - -- SOLID) the type of the resulting shape will be a - -- COMPOUND, containing shapes of this type; - -- - For arguments with different shape types (e.g. - -- SHELL / SOLID) the type of the resulting shape will be a - -- COMPOUND, containing shapes of the type that is the same as - -- that of the low type of the argument. Example: For - -- SHELL/SOLID the result is a COMPOUND of SHELLs. - -- - For arguments with different shape types some of - -- Boolean Operations can not be done using the default - -- implementation, because of a non-manifold type of the - -- result. Example: the FUSE operation for SHELL and SOLID - -- can not be done, but the CUT operation can be done, where - -- SHELL is the object and SOLID is the tool. - -- It is possible to perform Boolean Operations on arguments - -- of the COMPOUND shape type. In this case each compound must not - -- be heterogeneous, i.e. it must contain equidimensional shapes - -- (EDGEs or/and WIREs, FACEs or/and SHELLs, SOLIDs). SOLIDs - -- inside the COMPOUND must not contact (intersect or touch) - -- each other. The same condition is true for SHELLs or FACEs, - -- WIREs or EDGEs. - -- It does not support Boolean Operations for COMPSOLID type of shape. - -uses - TopTools, - TopoDS, - gp, - Geom, - Geom2d, - Message, - BOPCol, - BOPAlgo, - BOPDS, - BRepBuilderAPI -is - - deferred class BooleanOperation; - class Fuse; - class Common; - class Cut; - class Section; - class Check; - ---Purpose: Check shapes on validity for boolean - --- operation. - - deferred class Algo; - class BuilderAlgo; - -end BRepAlgoAPI; - - - - diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Algo.cdl b/src/BRepAlgoAPI/BRepAlgoAPI_Algo.cdl deleted file mode 100644 index db044a6659..0000000000 --- a/src/BRepAlgoAPI/BRepAlgoAPI_Algo.cdl +++ /dev/null @@ -1,86 +0,0 @@ --- 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. - -deferred class Algo from BRepAlgoAPI - inherits MakeShape from BRepBuilderAPI - ---Purpose: provides the root interface for algorithms - -uses - BaseAllocator from BOPCol, - ProgressIndicator from Message, - Shape from TopoDS - ---raises - -is - Initialize - returns Algo from BRepAlgoAPI; - ---C++: alias "Standard_EXPORT virtual ~BRepAlgoAPI_Algo();" - ---Purpose: Empty constructor - - Initialize (theAllocator: BaseAllocator from BOPCol) - returns Algo from BRepAlgoAPI; - ---Purpose: Empty constructor - - ErrorStatus (me) - returns Integer from Standard; - ---Purpose: Returns error status of the algorithm - -- ==0 - no errors occured - -- !=0 - is in the event of various error conditions - - WarningStatus (me) - returns Integer from Standard; - ---Purpose: Returns warning status of the algorithm - -- ==0 - no warning occured - -- !=0 - is in the event of various warning conditions - - Allocator(me) - returns BaseAllocator from BOPCol; - ---C++: return const & - - SetRunParallel(me:out; - theFlag:Boolean from Standard); - ---Purpose: Set the flag of parallel processing - -- if is true the parallel processing is switched on - -- if is false the parallel processing is switched off - -- - RunParallel(me) - returns Boolean from Standard; - ---Purpose: Returns the flag of parallel processing - - SetProgressIndicator(me:out; - theObj: ProgressIndicator from Message); - ---Purpose: Set the Progress Indicator object. - - UserBreak(me) - is protected; - ---Purpose: Breaks the execution if the break signal - -- is indicated by myProgressIndicator. - - Shape(me) - returns Shape from TopoDS - is redefined; - ---C++: return const & - - Clear(me:out) - is virtual protected; - -fields - myAllocator : BaseAllocator from BOPCol is protected; - myErrorStatus : Integer from Standard is protected; - myWarningStatus : Integer from Standard is protected; - myRunParallel : Boolean from Standard is protected; - myProgressIndicator : ProgressIndicator from Message is protected; - -end Algo; diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Algo.cxx b/src/BRepAlgoAPI/BRepAlgoAPI_Algo.cxx index 18ae908479..ecd7fdfb4c 100644 --- a/src/BRepAlgoAPI/BRepAlgoAPI_Algo.cxx +++ b/src/BRepAlgoAPI/BRepAlgoAPI_Algo.cxx @@ -12,10 +12,12 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include #include +#include +#include //======================================================================= // function: diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Algo.hxx b/src/BRepAlgoAPI/BRepAlgoAPI_Algo.hxx new file mode 100644 index 0000000000..158dae3aaa --- /dev/null +++ b/src/BRepAlgoAPI/BRepAlgoAPI_Algo.hxx @@ -0,0 +1,104 @@ +// 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_Algo_HeaderFile +#define _BRepAlgoAPI_Algo_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class Message_ProgressIndicator; +class TopoDS_Shape; + + +//! provides the root interface for algorithms +class BRepAlgoAPI_Algo : public BRepBuilderAPI_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Returns error status of the algorithm + //! ==0 - no errors occured + //! !=0 - is in the event of various error conditions + Standard_EXPORT Standard_Integer ErrorStatus() const; + + //! Returns warning status of the algorithm + //! ==0 - no warning occured + //! !=0 - is in the event of various warning conditions + Standard_EXPORT Standard_Integer WarningStatus() const; + + Standard_EXPORT const BOPCol_BaseAllocator& Allocator() const; + + //! Set the flag of parallel processing + //! if is true the parallel processing is switched on + //! if is false the parallel processing is switched off + Standard_EXPORT void SetRunParallel (const Standard_Boolean theFlag); + + //! Returns the flag of parallel processing + Standard_EXPORT Standard_Boolean RunParallel() const; + + //! Set the Progress Indicator object. + Standard_EXPORT void SetProgressIndicator (const Handle(Message_ProgressIndicator)& theObj); + + Standard_EXPORT virtual const TopoDS_Shape& Shape() const Standard_OVERRIDE; + + + + +protected: + + + //! Empty constructor + Standard_EXPORT BRepAlgoAPI_Algo(); +Standard_EXPORT virtual ~BRepAlgoAPI_Algo(); + + //! Empty constructor + Standard_EXPORT BRepAlgoAPI_Algo(const BOPCol_BaseAllocator& theAllocator); + + //! Breaks the execution if the break signal + //! is indicated by myProgressIndicator. + Standard_EXPORT void UserBreak() const; + + Standard_EXPORT virtual void Clear(); + + + BOPCol_BaseAllocator myAllocator; + Standard_Integer myErrorStatus; + Standard_Integer myWarningStatus; + Standard_Boolean myRunParallel; + Handle(Message_ProgressIndicator) myProgressIndicator; + + +private: + + + + + +}; + + + + + + + +#endif // _BRepAlgoAPI_Algo_HeaderFile diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cdl b/src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cdl deleted file mode 100644 index aa4cf220cd..0000000000 --- a/src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cdl +++ /dev/null @@ -1,193 +0,0 @@ --- Created on: 1993-10-14 --- 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. - -deferred class BooleanOperation from BRepAlgoAPI - inherits BuilderAlgo from BRepAlgoAPI - - ---Purpose: - -- The abstract class BooleanOperation is the root - -- class of Boolean Operations (see Overview). - -- Boolean Operations algorithm is divided onto two parts. - -- - The first one is computing interference between arguments. - -- - The second one is building the result of operation. - -- The class BooleanOperation provides API level of both parts - -uses - - Shape from TopoDS, - DataMapOfShapeShape from TopTools, - ListOfShape from TopTools, - -- - Operation from BOPAlgo, - PaveFiller from BOPAlgo - - -is - Initialize - returns BooleanOperation from BRepAlgoAPI; - ---Purpose: Empty constructor - - Initialize (PF :PaveFiller from BOPAlgo) - returns BooleanOperation from BRepAlgoAPI; - ---Purpose: Empty constructor - -- - PaveFiller object that is carried out - - Initialize (S1 :Shape from TopoDS; - S2 :Shape from TopoDS; - anOperation:Operation from BOPAlgo); - ---Purpose: Constructor with two arguments - -- , -arguments - -- - the type of the operation - -- Obsolete - - Initialize (S1 :Shape from TopoDS; - S2 :Shape from TopoDS; - PF :PaveFiller from BOPAlgo; - anOperation:Operation from BOPAlgo); - ---Purpose: Constructor with two arguments - -- , -arguments - -- - the type of the operation - -- - PaveFiller object that is carried out - -- Obsolete - - Shape1(me) - returns Shape from TopoDS - is static; - ---Purpose: Returns the first argument involved in this Boolean operation. - -- Obsolete - ---C++: return const & - - - Shape2(me) - returns Shape from TopoDS - is static; - ---Purpose: Returns the second argument involved in this Boolean operation. - -- Obsolete - ---C++: return const & - - SetTools(me:out; - theLS: ListOfShape from TopTools); - ---Purpose: Sets the tools - - Tools(me) - returns ListOfShape from TopTools; - ---C++: return const & - ---Purpose: Gets the tools - - SetOperation (me:out; - anOp: Operation from BOPAlgo); - ---Purpose: Sets the type of Boolean operation - - Operation (me) - returns Operation from BOPAlgo; - ---Purpose: Returns the type of Boolean Operation - ---C++: alias "Standard_EXPORT virtual ~BRepAlgoAPI_BooleanOperation();" - - Build (me:out) - is redefined ; - ---Purpose: Performs the algorithm - -- Filling interference Data Structure (if it is necessary) - -- Building the result of the operation. - - BuilderCanWork(me) - returns Boolean from Standard; - ---Purpose: Returns True if there was no errors occured - -- obsolete - - FuseEdges(me) - returns Boolean from Standard; - ---Purpose: Returns the flag of edge refining - - RefineEdges(me:out); - ---Purpose: Fuse C1 edges - - SectionEdges (me: in out) - returns ListOfShape from TopTools; - --- Purpose: Returns a list of section edges. - -- The edges represent the result of intersection between arguments of - -- Boolean Operation. They are computed during operation execution. - ---C++: return const & - - Modified (me: in out; - aS : Shape from TopoDS) - returns ListOfShape from TopTools - is redefined; - ---Purpose: Returns the list of shapes modified from the shape . - ---C++: return const & - - IsDeleted (me: in out; - aS : Shape from TopoDS) - returns Boolean - is redefined; - ---Purpose: Returns true if the shape S has been deleted. The - -- result shape of the operation does not contain the shape S. - - Generated (me: in out; - S : Shape from TopoDS) - returns ListOfShape from TopTools - is redefined; - ---Purpose: Returns the list of shapes generated from the shape . - --- For use in BRepNaming. - ---C++: return const & - - HasModified (me) - returns Boolean from Standard - is redefined; - ---Purpose: Returns true if there is at least one modified shape. - --- For use in BRepNaming. - - HasGenerated (me) - returns Boolean from Standard - is redefined; - ---Purpose: Returns true if there is at least one generated shape. - --- For use in BRepNaming. - - HasDeleted (me) - returns Boolean from Standard - is redefined; - ---Purpose: Returns true if there is at least one deleted shape. - --- For use in BRepNaming. - - -- - -- protected methods - -- - Clear(me:out) - is redefined protected; - - SetAttributes (me:out) - is virtual protected; - - RefinedList (me: in out; - theL : ListOfShape from TopTools) - returns ListOfShape from TopTools - is protected; - ---Purpose: Returns the list of shapes generated from the shape . - --- For use in BRepNaming. - ---C++: return const & - - - -fields - myTools : ListOfShape from TopTools is protected; - myOperation: Operation from BOPAlgo is protected; - -- - myBuilderCanWork : Boolean from Standard is protected; - -- for edge refiner - myFuseEdges : Boolean from Standard ; - myModifFaces : DataMapOfShapeShape from TopTools; - myEdgeMap : DataMapOfShapeShape from TopTools; - -end BooleanOperation; diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cxx b/src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cxx index f98f2acea3..a725fb5aa4 100644 --- a/src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cxx +++ b/src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.cxx @@ -14,39 +14,34 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -///XXXXXXXXXX -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -//XXXXXXXXXX - +#include #include - -#include +#include #include #include -#include -#include +#include #include +#include +#include -#include - -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - +#include +///XXXXXXXXXX +//XXXXXXXXXX //XXXX //======================================================================= //class : BRepAlgoAPI_DumpOper diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.hxx b/src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.hxx new file mode 100644 index 0000000000..a7bdc75a96 --- /dev/null +++ b/src/BRepAlgoAPI/BRepAlgoAPI_BooleanOperation.hxx @@ -0,0 +1,168 @@ +// Created on: 1993-10-14 +// 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 _BRepAlgoAPI_BooleanOperation_HeaderFile +#define _BRepAlgoAPI_BooleanOperation_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class BOPAlgo_PaveFiller; +class TopoDS_Shape; + + + +//! The abstract class BooleanOperation is the root +//! class of Boolean Operations (see Overview). +//! Boolean Operations algorithm is divided onto two parts. +//! - The first one is computing interference between arguments. +//! - The second one is building the result of operation. +//! The class BooleanOperation provides API level of both parts +class BRepAlgoAPI_BooleanOperation : public BRepAlgoAPI_BuilderAlgo +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Returns the first argument involved in this Boolean operation. + //! Obsolete + Standard_EXPORT const TopoDS_Shape& Shape1() const; + + //! Returns the second argument involved in this Boolean operation. + //! Obsolete + Standard_EXPORT const TopoDS_Shape& Shape2() const; + + //! Sets the tools + Standard_EXPORT void SetTools (const TopTools_ListOfShape& theLS); + + //! Gets the tools + Standard_EXPORT const TopTools_ListOfShape& Tools() const; + + //! Sets the type of Boolean operation + Standard_EXPORT void SetOperation (const BOPAlgo_Operation anOp); + + //! Returns the type of Boolean Operation + Standard_EXPORT BOPAlgo_Operation Operation() const; +Standard_EXPORT virtual ~BRepAlgoAPI_BooleanOperation(); + + //! Performs the algorithm + //! Filling interference Data Structure (if it is necessary) + //! Building the result of the operation. + Standard_EXPORT virtual void Build() Standard_OVERRIDE; + + //! Returns True if there was no errors occured + //! obsolete + Standard_EXPORT Standard_Boolean BuilderCanWork() const; + + //! Returns the flag of edge refining + Standard_EXPORT Standard_Boolean FuseEdges() const; + + //! Fuse C1 edges + Standard_EXPORT void RefineEdges(); + + //! Returns a list of section edges. + //! The edges represent the result of intersection between arguments of + //! Boolean Operation. They are computed during operation execution. + Standard_EXPORT const TopTools_ListOfShape& SectionEdges(); + + //! Returns the list of shapes modified from the shape . + Standard_EXPORT virtual const TopTools_ListOfShape& Modified (const TopoDS_Shape& aS) Standard_OVERRIDE; + + //! Returns true if the shape S has been deleted. The + //! result shape of the operation does not contain the shape S. + Standard_EXPORT virtual Standard_Boolean IsDeleted (const TopoDS_Shape& aS) Standard_OVERRIDE; + + //! Returns the list of shapes generated from the shape . + //! For use in BRepNaming. + Standard_EXPORT virtual const TopTools_ListOfShape& Generated (const TopoDS_Shape& S) Standard_OVERRIDE; + + //! Returns true if there is at least one modified shape. + //! For use in BRepNaming. + Standard_EXPORT virtual Standard_Boolean HasModified() const Standard_OVERRIDE; + + //! Returns true if there is at least one generated shape. + //! For use in BRepNaming. + Standard_EXPORT virtual Standard_Boolean HasGenerated() const Standard_OVERRIDE; + + //! Returns true if there is at least one deleted shape. + //! For use in BRepNaming. + Standard_EXPORT virtual Standard_Boolean HasDeleted() const Standard_OVERRIDE; + + + + +protected: + + + //! Empty constructor + Standard_EXPORT BRepAlgoAPI_BooleanOperation(); + + //! Empty constructor + //! - PaveFiller object that is carried out + Standard_EXPORT BRepAlgoAPI_BooleanOperation(const BOPAlgo_PaveFiller& PF); + + //! Constructor with two arguments + //! , -arguments + //! - the type of the operation + //! Obsolete + Standard_EXPORT BRepAlgoAPI_BooleanOperation(const TopoDS_Shape& S1, const TopoDS_Shape& S2, const BOPAlgo_Operation anOperation); + + //! Constructor with two arguments + //! , -arguments + //! - the type of the operation + //! - PaveFiller object that is carried out + //! Obsolete + Standard_EXPORT BRepAlgoAPI_BooleanOperation(const TopoDS_Shape& S1, const TopoDS_Shape& S2, const BOPAlgo_PaveFiller& PF, const BOPAlgo_Operation anOperation); + + Standard_EXPORT virtual void Clear() Standard_OVERRIDE; + + Standard_EXPORT virtual void SetAttributes(); + + //! Returns the list of shapes generated from the shape . + //! For use in BRepNaming. + Standard_EXPORT const TopTools_ListOfShape& RefinedList (const TopTools_ListOfShape& theL); + + + TopTools_ListOfShape myTools; + BOPAlgo_Operation myOperation; + Standard_Boolean myBuilderCanWork; + + +private: + + + + Standard_Boolean myFuseEdges; + TopTools_DataMapOfShapeShape myModifFaces; + TopTools_DataMapOfShapeShape myEdgeMap; + + +}; + + + + + + + +#endif // _BRepAlgoAPI_BooleanOperation_HeaderFile diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cdl b/src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cdl deleted file mode 100644 index 7c9a9784ee..0000000000 --- a/src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cdl +++ /dev/null @@ -1,115 +0,0 @@ --- 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. - -class BuilderAlgo from BRepAlgoAPI - inherits Algo from BRepAlgoAPI - ---Purpose: - -- The clsss contains API level of General Fuse algorithm - -uses - Shape from TopoDS, - ListOfShape from TopTools, - -- - PPaveFiller from BOPAlgo, - PaveFiller from BOPAlgo, - PBuilder from BOPAlgo - ---raises - -is - Create - returns BuilderAlgo from BRepAlgoAPI; - ---Purpose: Empty constructor - ---C++: alias "Standard_EXPORT virtual ~BRepAlgoAPI_BuilderAlgo();" - - - Create(thePF :PaveFiller from BOPAlgo) - returns BuilderAlgo from BRepAlgoAPI; - ---Purpose: Empty constructor - - SetFuzzyValue(me:out; - theFuzz : Real from Standard); - ---Purpose: Sets the additional tolerance - - FuzzyValue(me) - returns Real from Standard; - ---Purpose: Returns the additional tolerance - - SetArguments(me:out; - theLS: ListOfShape from TopTools); - ---Purpose: Sets the arguments - - Arguments(me) - returns ListOfShape from TopTools; - ---C++: return const & - ---Purpose: Gets the arguments - - Build (me:out) - is redefined virtual; - ---Purpose: Performs the algorithm - -- - -- H I S T O R Y - -- - Modified (me: in out; - aS : Shape from TopoDS) - returns ListOfShape from TopTools - is redefined virtual; - ---Purpose: Returns the list of shapes modified from the shape . - ---C++: return const & - - IsDeleted (me: in out; - aS : Shape from TopoDS) - returns Boolean - is redefined virtual; - ---Purpose: Returns true if the shape S has been deleted. The - -- result shape of the operation does not contain the shape S. - - Generated (me: in out; - S : Shape from TopoDS) - returns ListOfShape from TopTools - is redefined virtual; - ---Purpose: Returns the list of shapes generated from the shape . - --- For use in BRepNaming. - ---C++: return const & - - HasModified (me) - returns Boolean from Standard - is virtual; - ---Purpose: Returns true if there is at least one modified shape. - --- For use in BRepNaming. - - HasGenerated (me) - returns Boolean from Standard - is virtual; - ---Purpose: Returns true if there is at least one generated shape. - --- For use in BRepNaming. - - HasDeleted (me) - returns Boolean from Standard - is virtual; - ---Purpose: Returns true if there is at least one deleted shape. - --- For use in BRepNaming. - -- - -- protected methods - -- - Clear(me:out) - is redefined protected; - -fields - myEntryType : Integer from Standard is protected; - myDSFiller : PPaveFiller from BOPAlgo is protected; - myBuilder : PBuilder from BOPAlgo is protected; - myFuzzyValue : Real from Standard is protected; - myArguments : ListOfShape from TopTools is protected; -end BuilderAlgo; diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx b/src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx index 64ad14a820..97a8257dd6 100644 --- a/src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx +++ b/src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.cxx @@ -12,10 +12,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include #include +#include +#include +#include //======================================================================= // function: diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.hxx b/src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.hxx new file mode 100644 index 0000000000..c0c9e7c22e --- /dev/null +++ b/src/BRepAlgoAPI/BRepAlgoAPI_BuilderAlgo.hxx @@ -0,0 +1,121 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class BOPAlgo_PaveFiller; +class TopoDS_Shape; + + + +//! The clsss contains API level of General Fuse algorithm +class BRepAlgoAPI_BuilderAlgo : public BRepAlgoAPI_Algo +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor + Standard_EXPORT BRepAlgoAPI_BuilderAlgo(); +Standard_EXPORT virtual ~BRepAlgoAPI_BuilderAlgo(); + + //! Empty constructor + Standard_EXPORT BRepAlgoAPI_BuilderAlgo(const BOPAlgo_PaveFiller& thePF); + + //! Sets the additional tolerance + Standard_EXPORT void SetFuzzyValue (const Standard_Real theFuzz); + + //! Returns the additional tolerance + Standard_EXPORT Standard_Real FuzzyValue() const; + + //! Sets the arguments + Standard_EXPORT void SetArguments (const TopTools_ListOfShape& theLS); + + //! Gets the arguments + Standard_EXPORT const TopTools_ListOfShape& Arguments() const; + + //! Performs the algorithm + //! + //! H I S T O R Y + Standard_EXPORT virtual void Build() Standard_OVERRIDE; + + //! Returns the list of shapes modified from the shape . + Standard_EXPORT virtual const TopTools_ListOfShape& Modified (const TopoDS_Shape& aS) Standard_OVERRIDE; + + //! Returns true if the shape S has been deleted. The + //! result shape of the operation does not contain the shape S. + Standard_EXPORT virtual Standard_Boolean IsDeleted (const TopoDS_Shape& aS) Standard_OVERRIDE; + + //! Returns the list of shapes generated from the shape . + //! For use in BRepNaming. + Standard_EXPORT virtual const TopTools_ListOfShape& Generated (const TopoDS_Shape& S) Standard_OVERRIDE; + + //! Returns true if there is at least one modified shape. + //! For use in BRepNaming. + Standard_EXPORT virtual Standard_Boolean HasModified() const; + + //! Returns true if there is at least one generated shape. + //! For use in BRepNaming. + Standard_EXPORT virtual Standard_Boolean HasGenerated() const; + + //! Returns true if there is at least one deleted shape. + //! For use in BRepNaming. + //! + //! protected methods + Standard_EXPORT virtual Standard_Boolean HasDeleted() const; + + + + +protected: + + + Standard_EXPORT virtual void Clear() Standard_OVERRIDE; + + + Standard_Integer myEntryType; + BOPAlgo_PPaveFiller myDSFiller; + BOPAlgo_PBuilder myBuilder; + Standard_Real myFuzzyValue; + TopTools_ListOfShape myArguments; + + +private: + + + + + +}; + + + + + + + +#endif // _BRepAlgoAPI_BuilderAlgo_HeaderFile diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Check.cdl b/src/BRepAlgoAPI/BRepAlgoAPI_Check.cdl deleted file mode 100644 index 6da4f01042..0000000000 --- a/src/BRepAlgoAPI/BRepAlgoAPI_Check.cdl +++ /dev/null @@ -1,135 +0,0 @@ --- Created on: 2012-12-17 --- Created by: Eugeny MALTCHIKOV --- Copyright (c) 2012-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. - -class Check from BRepAlgoAPI - inherits Algo from BRepAlgoAPI - ---Purpose: - -- The class Check provides a diagnostic tool for checking - -- single shape or couple of shapes. - -- Single shape is checking on topological validity, small edges - -- and self-interference. For couple of shapes added check - -- on validity for boolean operation of given type. - -- - -- The class provides two ways of checking shape(-s) - -- 1. Constructors - -- BRepAlgoAPI_Check aCh(theS); - -- Standard_Boolean bV=aCh.IsValid(); - -- 2. Methods SetData and Perform - -- BRepAlgoAPI_Check aCh; - -- aCh.SetData(theS1, theS2, BOPAlgo_FUSE, Standard_False); - -- aCh.Perform(); - -- Standard_Boolean bV=aCh.IsValid(); - -uses - Shape from TopoDS, - Operation from BOPAlgo, - PArgumentAnalyzer from BOPAlgo, - ListOfCheckResult from BOPAlgo - -is - Create - returns Check from BRepAlgoAPI; - ---C++: alias "Standard_EXPORT virtual ~BRepAlgoAPI_Check();" - ---Purpose: Empty constructor. - - Create( - theS : Shape from TopoDS; - bTestSE : Boolean from Standard = Standard_True; - bTestSI : Boolean from Standard = Standard_True) - returns Check from BRepAlgoAPI; - ---Purpose: Constructor for checking single shape. - -- It calls methods - -- Init(theS, TopoDS_Shape(), BOPAlgo_UNKNOWN, bTestSE, bTestSI) - -- and Perform(). - -- Params: - -- theS - the shape that should be checked; - -- bTestSE - flag that specifies whether check on small edges - -- should be performed; by default it is set to TRUE; - -- bTestSI - flag that specifies whether check on self-interference - -- should be performed; by default it is set to TRUE; - - Create( - theS1 : Shape from TopoDS; - theS2 : Shape from TopoDS; - theOp : Operation from BOPAlgo = BOPAlgo_UNKNOWN; - bTestSE : Boolean from Standard = Standard_True; - bTestSI : Boolean from Standard = Standard_True) - returns Check from BRepAlgoAPI; - ---Purpose: Constructor for couple of shapes. - -- It calls methods - -- Init(theS1, theS2, theOp, bTestSE, bTestSI) and Perform(). - -- Params: - -- theS1, theS2 - the initial shapes. - -- theOp - the type of Boolean Operation; - -- if it is not defined (set to UNKNOWN) for each shape - -- performed check as for single shape. - -- bTestSE - flag that specifies whether check on small edges - -- should be performed; by default it is set to TRUE; - -- bTestSI - flag that specifies whether check on self-interference - -- should be performed; by default it is set to TRUE; - - Init(me:out; - theS1 : Shape from TopoDS; - theS2 : Shape from TopoDS; - theOp : Operation from BOPAlgo; - bTestSE : Boolean from Standard; - bTestSI : Boolean from Standard) - is protected; - ---Purpose: Initialyzes data. - - SetData(me:out; - theS : Shape from TopoDS; - bTestSE : Boolean from Standard = Standard_True; - bTestSI : Boolean from Standard = Standard_True); - ---Purpose: Sets data for check by Init method. - -- The method provides alternative way for checking single shape. - - SetData(me:out; - theS1 : Shape from TopoDS; - theS2 : Shape from TopoDS; - theOp : Operation from BOPAlgo = BOPAlgo_UNKNOWN; - bTestSE : Boolean from Standard = Standard_True; - bTestSI : Boolean from Standard = Standard_True); - ---Purpose: Sets data for check by Init method. - -- The method provides alternative way for checking couple of shapes. - - Perform(me:out); - ---Purpose: Performs the check. - - IsValid(me:out) - returns Boolean from Standard; - ---Purpose: Shows whether shape(s) valid or not. - - Result(me:out) - returns ListOfCheckResult from BOPAlgo; - ---C++: return const& - ---Purpose: Returns faulty shapes. - - SetFuzzyValue(me:out; - theFuzz : Real from Standard); - ---Purpose: Sets the additional tolerance - - FuzzyValue(me) - returns Real from Standard; - ---Purpose: Returns the additional tolerance - -fields - myS1, myS2 : Shape from TopoDS is protected; - myAnalyzer : PArgumentAnalyzer from BOPAlgo is protected; - myResult : ListOfCheckResult from BOPAlgo is protected; - myFuzzyValue : Real from Standard is protected; - -end BooleanOperation; - diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx b/src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx index f3f78791ba..35eb8c8ae0 100644 --- a/src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx +++ b/src/BRepAlgoAPI/BRepAlgoAPI_Check.cxx @@ -13,9 +13,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + #include +#include #include +#include //======================================================================= //function : BRepAlgoAPI_Check diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Check.hxx b/src/BRepAlgoAPI/BRepAlgoAPI_Check.hxx new file mode 100644 index 0000000000..62724dea54 --- /dev/null +++ b/src/BRepAlgoAPI/BRepAlgoAPI_Check.hxx @@ -0,0 +1,140 @@ +// Created on: 2012-12-17 +// Created by: Eugeny MALTCHIKOV +// Copyright (c) 2012-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_Check_HeaderFile +#define _BRepAlgoAPI_Check_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; + + + +//! The class Check provides a diagnostic tool for checking +//! single shape or couple of shapes. +//! Single shape is checking on topological validity, small edges +//! and self-interference. For couple of shapes added check +//! on validity for boolean operation of given type. +//! +//! The class provides two ways of checking shape(-s) +//! 1. Constructors +//! BRepAlgoAPI_Check aCh(theS); +//! Standard_Boolean bV=aCh.IsValid(); +//! 2. Methods SetData and Perform +//! BRepAlgoAPI_Check aCh; +//! aCh.SetData(theS1, theS2, BOPAlgo_FUSE, Standard_False); +//! aCh.Perform(); +//! Standard_Boolean bV=aCh.IsValid(); +class BRepAlgoAPI_Check : public BRepAlgoAPI_Algo +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor. + Standard_EXPORT BRepAlgoAPI_Check(); +Standard_EXPORT virtual ~BRepAlgoAPI_Check(); + + //! Constructor for checking single shape. + //! It calls methods + //! Init(theS, TopoDS_Shape(), BOPAlgo_UNKNOWN, bTestSE, bTestSI) + //! and Perform(). + //! Params: + //! theS - the shape that should be checked; + //! bTestSE - flag that specifies whether check on small edges + //! should be performed; by default it is set to TRUE; + //! bTestSI - flag that specifies whether check on self-interference + //! should be performed; by default it is set to TRUE; + Standard_EXPORT BRepAlgoAPI_Check(const TopoDS_Shape& theS, const Standard_Boolean bTestSE = Standard_True, const Standard_Boolean bTestSI = Standard_True); + + //! Constructor for couple of shapes. + //! It calls methods + //! Init(theS1, theS2, theOp, bTestSE, bTestSI) and Perform(). + //! Params: + //! theS1, theS2 - the initial shapes. + //! theOp - the type of Boolean Operation; + //! if it is not defined (set to UNKNOWN) for each shape + //! performed check as for single shape. + //! bTestSE - flag that specifies whether check on small edges + //! should be performed; by default it is set to TRUE; + //! bTestSI - flag that specifies whether check on self-interference + //! should be performed; by default it is set to TRUE; + Standard_EXPORT BRepAlgoAPI_Check(const TopoDS_Shape& theS1, const TopoDS_Shape& theS2, const BOPAlgo_Operation theOp = BOPAlgo_UNKNOWN, const Standard_Boolean bTestSE = Standard_True, const Standard_Boolean bTestSI = Standard_True); + + //! Sets data for check by Init method. + //! The method provides alternative way for checking single shape. + Standard_EXPORT void SetData (const TopoDS_Shape& theS, const Standard_Boolean bTestSE = Standard_True, const Standard_Boolean bTestSI = Standard_True); + + //! Sets data for check by Init method. + //! The method provides alternative way for checking couple of shapes. + Standard_EXPORT void SetData (const TopoDS_Shape& theS1, const TopoDS_Shape& theS2, const BOPAlgo_Operation theOp = BOPAlgo_UNKNOWN, const Standard_Boolean bTestSE = Standard_True, const Standard_Boolean bTestSI = Standard_True); + + //! Performs the check. + Standard_EXPORT void Perform(); + + //! Shows whether shape(s) valid or not. + Standard_EXPORT Standard_Boolean IsValid(); + + //! Returns faulty shapes. + Standard_EXPORT const BOPAlgo_ListOfCheckResult& Result(); + + //! Sets the additional tolerance + Standard_EXPORT void SetFuzzyValue (const Standard_Real theFuzz); + + //! Returns the additional tolerance + Standard_EXPORT Standard_Real FuzzyValue() const; + + + + +protected: + + + //! Initialyzes data. + Standard_EXPORT void Init (const TopoDS_Shape& theS1, const TopoDS_Shape& theS2, const BOPAlgo_Operation theOp, const Standard_Boolean bTestSE, const Standard_Boolean bTestSI); + + + TopoDS_Shape myS1; + TopoDS_Shape myS2; + BOPAlgo_PArgumentAnalyzer myAnalyzer; + BOPAlgo_ListOfCheckResult myResult; + Standard_Real myFuzzyValue; + + +private: + + + + + +}; + + + + + + + +#endif // _BRepAlgoAPI_Check_HeaderFile diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Common.cdl b/src/BRepAlgoAPI/BRepAlgoAPI_Common.cdl deleted file mode 100644 index 678dd57a96..0000000000 --- a/src/BRepAlgoAPI/BRepAlgoAPI_Common.cdl +++ /dev/null @@ -1,59 +0,0 @@ --- Created on: 1993-10-14 --- 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. - -class Common from BRepAlgoAPI - inherits BooleanOperation from BRepAlgoAPI - - ---Purpose: - -- The class provides Boolean common operation - -- between arguments and tools (Boolean Intersection). - -uses - Shape from TopoDS, - PaveFiller from BOPAlgo - -is - Create - returns Common from BRepAlgoAPI; - ---C++: alias "Standard_EXPORT virtual ~BRepAlgoAPI_Common();" - --- Purpose: Empty constructor - - Create (PF: PaveFiller from BOPAlgo) - returns Common from BRepAlgoAPI; - --- Purpose: Empty constructor - -- - PaveFiller object that is carried out - - Create (S1,S2 : Shape from TopoDS) - returns Common from BRepAlgoAPI; - ---Purpose: Constructor with two shapes - -- -argument - -- -tool - -- - the type of the operation - -- Obsolete - - Create (S1: Shape from TopoDS; - S2: Shape from TopoDS; - PF: PaveFiller from BOPAlgo) - returns Common from BRepAlgoAPI; - ---Purpose: Constructor with two shapes - -- -argument - -- -tool - -- - the type of the operation - -- - PaveFiller object that is carried out - -- Obsolete - -end Common; - diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Common.cxx b/src/BRepAlgoAPI/BRepAlgoAPI_Common.cxx index 3f9a5d0b33..5f58b093ab 100644 --- a/src/BRepAlgoAPI/BRepAlgoAPI_Common.cxx +++ b/src/BRepAlgoAPI/BRepAlgoAPI_Common.cxx @@ -14,9 +14,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include #include +#include +#include //======================================================================= //function : BRepAlgoAPI_Common diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Common.hxx b/src/BRepAlgoAPI/BRepAlgoAPI_Common.hxx new file mode 100644 index 0000000000..401593cd1b --- /dev/null +++ b/src/BRepAlgoAPI/BRepAlgoAPI_Common.hxx @@ -0,0 +1,85 @@ +// Created on: 1993-10-14 +// 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 _BRepAlgoAPI_Common_HeaderFile +#define _BRepAlgoAPI_Common_HeaderFile + +#include +#include +#include + +#include +class BOPAlgo_PaveFiller; +class TopoDS_Shape; + + + +//! The class provides Boolean common operation +//! between arguments and tools (Boolean Intersection). +class BRepAlgoAPI_Common : public BRepAlgoAPI_BooleanOperation +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor + Standard_EXPORT BRepAlgoAPI_Common(); +Standard_EXPORT virtual ~BRepAlgoAPI_Common(); + + //! Empty constructor + //! - PaveFiller object that is carried out + Standard_EXPORT BRepAlgoAPI_Common(const BOPAlgo_PaveFiller& PF); + + //! Constructor with two shapes + //! -argument + //! -tool + //! - the type of the operation + //! Obsolete + Standard_EXPORT BRepAlgoAPI_Common(const TopoDS_Shape& S1, const TopoDS_Shape& S2); + + //! Constructor with two shapes + //! -argument + //! -tool + //! - the type of the operation + //! - PaveFiller object that is carried out + //! Obsolete + Standard_EXPORT BRepAlgoAPI_Common(const TopoDS_Shape& S1, const TopoDS_Shape& S2, const BOPAlgo_PaveFiller& PF); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepAlgoAPI_Common_HeaderFile diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Cut.cdl b/src/BRepAlgoAPI/BRepAlgoAPI_Cut.cdl deleted file mode 100644 index de155784fd..0000000000 --- a/src/BRepAlgoAPI/BRepAlgoAPI_Cut.cdl +++ /dev/null @@ -1,59 +0,0 @@ --- Created on: 1993-10-14 --- 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. - -class Cut from BRepAlgoAPI - inherits BooleanOperation from BRepAlgoAPI - - ---Purpose: - -- The class Cut provides Boolean cut operation - -- between arguments and tools (Boolean Subtraction). - -uses - Shape from TopoDS, - PaveFiller from BOPAlgo - -is - - Create - returns Cut from BRepAlgoAPI; - ---C++: alias "Standard_EXPORT virtual ~BRepAlgoAPI_Cut();" - --- Purpose: Empty constructor - - Create (PF: PaveFiller from BOPAlgo) - returns Cut from BRepAlgoAPI; - --- Purpose: Empty constructor - -- - PaveFiller object that is carried out - - Create (S1,S2 : Shape from TopoDS) - returns Cut from BRepAlgoAPI; - ---Purpose: Constructor with two shapes - -- -argument - -- -tool - -- - the type of the operation - -- Obsolete - - Create (S1,S2 : Shape from TopoDS; - aDSF : PaveFiller from BOPAlgo; - bFWD : Boolean from Standard=Standard_True) - returns Cut from BRepAlgoAPI; - ---Purpose: Constructor with two shapes - -- -argument - -- -tool - -- - the type of the operation - -- - PaveFiller object that is carried out - -- Obsolete - -end Cut; diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Cut.cxx b/src/BRepAlgoAPI/BRepAlgoAPI_Cut.cxx index 2faf2b8b8e..db411e8abc 100644 --- a/src/BRepAlgoAPI/BRepAlgoAPI_Cut.cxx +++ b/src/BRepAlgoAPI/BRepAlgoAPI_Cut.cxx @@ -14,9 +14,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include #include +#include +#include //======================================================================= //function : BRepAlgoAPI_Cut diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Cut.hxx b/src/BRepAlgoAPI/BRepAlgoAPI_Cut.hxx new file mode 100644 index 0000000000..b5255bb089 --- /dev/null +++ b/src/BRepAlgoAPI/BRepAlgoAPI_Cut.hxx @@ -0,0 +1,86 @@ +// Created on: 1993-10-14 +// 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 _BRepAlgoAPI_Cut_HeaderFile +#define _BRepAlgoAPI_Cut_HeaderFile + +#include +#include +#include + +#include +#include +class BOPAlgo_PaveFiller; +class TopoDS_Shape; + + + +//! The class Cut provides Boolean cut operation +//! between arguments and tools (Boolean Subtraction). +class BRepAlgoAPI_Cut : public BRepAlgoAPI_BooleanOperation +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor + Standard_EXPORT BRepAlgoAPI_Cut(); +Standard_EXPORT virtual ~BRepAlgoAPI_Cut(); + + //! Empty constructor + //! - PaveFiller object that is carried out + Standard_EXPORT BRepAlgoAPI_Cut(const BOPAlgo_PaveFiller& PF); + + //! Constructor with two shapes + //! -argument + //! -tool + //! - the type of the operation + //! Obsolete + Standard_EXPORT BRepAlgoAPI_Cut(const TopoDS_Shape& S1, const TopoDS_Shape& S2); + + //! Constructor with two shapes + //! -argument + //! -tool + //! - the type of the operation + //! - PaveFiller object that is carried out + //! Obsolete + Standard_EXPORT BRepAlgoAPI_Cut(const TopoDS_Shape& S1, const TopoDS_Shape& S2, const BOPAlgo_PaveFiller& aDSF, const Standard_Boolean bFWD = Standard_True); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepAlgoAPI_Cut_HeaderFile diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Fuse.cdl b/src/BRepAlgoAPI/BRepAlgoAPI_Fuse.cdl deleted file mode 100644 index 37a8592a64..0000000000 --- a/src/BRepAlgoAPI/BRepAlgoAPI_Fuse.cdl +++ /dev/null @@ -1,58 +0,0 @@ --- Created on: 1993-10-14 --- 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. - -class Fuse from BRepAlgoAPI - inherits BooleanOperation from BRepAlgoAPI - - ---Purpose: - -- The class provides Boolean fusion operation - -- between arguments and tools (Boolean Union). - -uses - Shape from TopoDS, - PaveFiller from BOPAlgo - -is - - Create - returns Fuse from BRepAlgoAPI; - ---C++: alias "Standard_EXPORT virtual ~BRepAlgoAPI_Fuse();" - --- Purpose: Empty constructor - - Create (PF: PaveFiller from BOPAlgo) - returns Fuse from BRepAlgoAPI; - --- Purpose: Empty constructor - -- - PaveFiller object that is carried out - - Create (S1,S2 : Shape from TopoDS) - returns Fuse from BRepAlgoAPI; - ---Purpose: Constructor with two shapes - -- -argument - -- -tool - -- - the type of the operation - -- Obsolete - - Create (S1,S2 : Shape from TopoDS; - aDSF:PaveFiller from BOPAlgo) - returns Fuse from BRepAlgoAPI; - ---Purpose: Constructor with two shapes - -- -argument - -- -tool - -- - the type of the operation - -- - PaveFiller object that is carried out - -- Obsolete - -end Fuse; diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Fuse.cxx b/src/BRepAlgoAPI/BRepAlgoAPI_Fuse.cxx index ae464100e2..6bff3dd14d 100644 --- a/src/BRepAlgoAPI/BRepAlgoAPI_Fuse.cxx +++ b/src/BRepAlgoAPI/BRepAlgoAPI_Fuse.cxx @@ -14,9 +14,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include #include +#include +#include //======================================================================= //function : BRepAlgoAPI_Fuse diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Fuse.hxx b/src/BRepAlgoAPI/BRepAlgoAPI_Fuse.hxx new file mode 100644 index 0000000000..52dd5dc89e --- /dev/null +++ b/src/BRepAlgoAPI/BRepAlgoAPI_Fuse.hxx @@ -0,0 +1,85 @@ +// Created on: 1993-10-14 +// 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 _BRepAlgoAPI_Fuse_HeaderFile +#define _BRepAlgoAPI_Fuse_HeaderFile + +#include +#include +#include + +#include +class BOPAlgo_PaveFiller; +class TopoDS_Shape; + + + +//! The class provides Boolean fusion operation +//! between arguments and tools (Boolean Union). +class BRepAlgoAPI_Fuse : public BRepAlgoAPI_BooleanOperation +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor + Standard_EXPORT BRepAlgoAPI_Fuse(); +Standard_EXPORT virtual ~BRepAlgoAPI_Fuse(); + + //! Empty constructor + //! - PaveFiller object that is carried out + Standard_EXPORT BRepAlgoAPI_Fuse(const BOPAlgo_PaveFiller& PF); + + //! Constructor with two shapes + //! -argument + //! -tool + //! - the type of the operation + //! Obsolete + Standard_EXPORT BRepAlgoAPI_Fuse(const TopoDS_Shape& S1, const TopoDS_Shape& S2); + + //! Constructor with two shapes + //! -argument + //! -tool + //! - the type of the operation + //! - PaveFiller object that is carried out + //! Obsolete + Standard_EXPORT BRepAlgoAPI_Fuse(const TopoDS_Shape& S1, const TopoDS_Shape& S2, const BOPAlgo_PaveFiller& aDSF); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepAlgoAPI_Fuse_HeaderFile diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Section.cdl b/src/BRepAlgoAPI/BRepAlgoAPI_Section.cdl deleted file mode 100644 index cf8fc0c176..0000000000 --- a/src/BRepAlgoAPI/BRepAlgoAPI_Section.cdl +++ /dev/null @@ -1,293 +0,0 @@ --- Created on: 1994-02-18 --- 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. - --- modified by Michael KLOKOV Wed Mar 6 15:01:25 2002 - -class Section from BRepAlgoAPI - inherits BooleanOperation from BRepAlgoAPI - - ---Purpose: - -- The algorithm is to build a Secton operation between arguments and tools. - -- The result of Section operation consists of vertices and edges. - -- The result of Section operation contains: - -- 1. new vertices that are subjects of V/V, E/E, E/F, F/F interferences - -- 2. vertices that are subjects of V/E, V/F interferences - -- 3. new edges that are subjects of F/F interferences - -- 4. edges that are Common Blocks - - -- The vertex is included in Section only when it is not shared - -- between the edges above - -- -- - - -- Default values: - -- - geometries built are NOT approximated. - -- - PCurves are NOT computed on both parts. - - -- Example of use: - -- Standard_Boolean bRunParallel; - -- Standard_Integer iErr; - -- BRepAlgoAPI_Section aSection; - -- // - -- bRunParallel=...; // turn parallelism on/off - -- const TopTools_ListOfShape& aLS=...; // Arguments - -- const TopTools_ListOfShape& aLT=...; // Tools - -- // - -- aSection.SetRunParallel(); - -- aSection.SetArguments(aLS); - -- aSection.SetTools(aLT); - -- aSection.Approximation(Standard_True); - -- // - -- aSection.Build(); // perform the algorithm - -- iErr=pBuilder->ErrorStatus(); - -- if (iErr) { - -- // errors occured - -- return 0; - -- } - -- // - -- const TopoDS_Shape& aR=aSection.Shape();// the result - -- //... - - -uses - Pln from gp, - Shape from TopoDS, - Surface from Geom, - Curve from Geom2d, - PaveFiller from BOPAlgo, - Operation from BOPAlgo, - ListOfShape from TopTools, - BaseAllocator from BOPCol - -is - Create - returns Section from BRepAlgoAPI; - ---C++: alias "Standard_EXPORT virtual ~BRepAlgoAPI_Section();" - --- Purpose: Empty constructor - - Create (PF: PaveFiller from BOPAlgo) - returns Section from BRepAlgoAPI; - --- Purpose: Empty constructor - -- - PaveFiller object that is carried out - - Create(S1 : Shape from TopoDS; - S2 : Shape from TopoDS; - PerformNow : Boolean = Standard_True) - returns Section from BRepAlgoAPI; - ---Purpose: Constructor with two shapes - -- -argument - -- -tool - -- - the flag: - -- if =True - the algorithm is performed immediatly - -- Obsolete - - Create (S1 : Shape from TopoDS; - S2 : Shape from TopoDS; - aDSF:PaveFiller from BOPAlgo; - PerformNow : Boolean = Standard_True) - returns Section from BRepAlgoAPI; - ---Purpose: Constructor with two shapes - -- -argument - -- -tool - -- - PaveFiller object that is carried out - -- - the flag: - -- if =True - the algorithm is performed immediatly - -- Obsolete - - Create(S1 : Shape from TopoDS; - Pl : Pln from gp; - PerformNow : Boolean = Standard_True) - returns Section from BRepAlgoAPI; - ---Purpose: Constructor with two shapes - -- - argument - -- - tool - -- - the flag: - -- if =True - the algorithm is performed immediatly - -- Obsolete - - - Create(S1 : Shape from TopoDS; - Sf : Surface from Geom; - PerformNow : Boolean = Standard_True) - returns Section from BRepAlgoAPI; - ---Purpose: Constructor with two shapes - -- - argument - -- - tool - -- - the flag: - -- if =True - the algorithm is performed immediatly - -- Obsolete - - - Create(Sf : Surface from Geom; - S2 : Shape from TopoDS; - PerformNow : Boolean = Standard_True) - returns Section from BRepAlgoAPI; - ---Purpose: Constructor with two shapes - -- - argument - -- - tool - -- - the flag: - -- if =True - the algorithm is performed immediatly - -- Obsolete - - Create(Sf1 : Surface from Geom; - Sf2 : Surface from Geom; - PerformNow : Boolean = Standard_True) - returns Section from BRepAlgoAPI; - ---Purpose: - ---Purpose: Constructor with two shapes - -- - argument - -- - tool - -- - the flag: - -- if =True - the algorithm is performed immediatly - -- Obsolete - - Init1(me : out; - S1 : Shape from TopoDS); - ---Purpose: initialize the argument - -- - argument - -- Obsolete - - Init1(me : out; - Pl : Pln from gp); - ---Purpose: initialize the argument - -- - argument - -- Obsolete - - Init1(me : out; - Sf : Surface from Geom); - ---Purpose: initialize the argument - -- - argument - -- Obsolete - - Init2(me : out; - S2 : Shape from TopoDS); - ---Purpose: initialize the tool - -- - tool - -- Obsolete - - Init2(me : out; - Pl : Pln from gp); - ---Purpose: initialize the tool - -- - tool - -- Obsolete - - Init2(me : out; - Sf : Surface from Geom); - ---Purpose: initialize the tool - -- - tool - -- Obsolete - - Approximation(me : out; - B : Boolean from Standard); - ---Purpose: - --Defines an option for computation - -- of further intersections. - -- By default, the underlying 3D geometry attached to each - -- elementary edge of the result is: - -- - analytic where possible, provided the corresponding - -- geometry corresponds to a type of analytic curve defined in - -- - or elsewhere, given as a succession of points grouped - -- together in a BSpline curve of degree 1. - -- If Approx equals true, these edges will have an attached 3D - -- geometry which is a BSpline approximation of the computed - -- set of points. - -- Note that as a result, approximations will be computed - -- on edges built only on new intersection curves. - - ComputePCurveOn1(me : out; - B : Boolean from Standard); - ---Purpose: - -- Indicates whether the P-Curve should be (or not) - -- performed on the argument. - -- By default, no parametric 2D curve (pcurve) is defined for the - -- edges of the result. - -- If ComputePCurve1 equals true, further computations performed - -- to attach an P-Curve in the parametric space of the argument - -- to the constructed edges. - -- Obsolete - - ComputePCurveOn2(me : out; - B : Boolean from Standard); - ---Purpose: - -- Indicates whether the P-Curve should be (or not) - -- performed on the tool. - -- By default, no parametric 2D curve (pcurve) is defined for the - -- edges of the result. - -- If ComputePCurve1 equals true, further computations performed - -- to attach an P-Curve in the parametric space of the tool - -- to the constructed edges. - -- Obsolete - - Build(me : in out) - is redefined; - ---Purpose: Performs the algorithm - -- Filling interference Data Structure (if it is necessary) - -- Building the result of the operation. - - HasAncestorFaceOn1(me; - E : Shape from TopoDS; - F : out Shape from TopoDS) - returns Boolean from Standard; - ---Purpose: - -- get the face of the first part giving section edge . - -- Returns True on the 3 following conditions : - -- 1/ is an edge returned by the Shape() metwod. - -- 2/ First part of section performed is a shape. - -- 3/ is built on a intersection curve (i.e - -- is not the result of common edges) - -- When False, F remains untouched. - -- Obsolete - - HasAncestorFaceOn2(me; - E : Shape from TopoDS; - F : out Shape from TopoDS) - returns Boolean from Standard; - ---Purpose: Identifies the ancestor faces of - -- the intersection edge E resulting from the last - -- computation performed in this framework, that is, the faces of - -- the two original shapes on which the edge E lies: - -- - HasAncestorFaceOn1 gives the ancestor face in the first shape, and - -- - HasAncestorFaceOn2 gives the ancestor face in the second shape. - -- These functions return true if an ancestor face F is found, or false if not. - -- An ancestor face is identifiable for the edge E if the following - -- conditions are satisfied: - -- - the first part on which this algorithm performed its - -- last computation is a shape, that is, it was not given as - -- a surface or a plane at the time of construction of this - -- algorithm or at a later time by the Init1 function, - -- - E is one of the elementary edges built by the - -- last computation of this section algorithm. - -- To use these functions properly, you have to test the returned - -- Boolean value before using the ancestor face: F is significant - -- only if the returned Boolean value equals true. - -- Obsolete - - -- - -- protected methods - -- - Init(me: out; - PerformNow : Boolean) - is protected; - - SetAttributes (me:out) - is redefined protected; - -fields - myParametersChanged : Boolean from Standard; - myApprox : Boolean from Standard; - myComputePCurve1 : Boolean from Standard; - myComputePCurve2 : Boolean from Standard; - -end Section from BRepAlgoAPI; diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Section.cxx b/src/BRepAlgoAPI/BRepAlgoAPI_Section.cxx index b80442bdd2..3e9c2ef812 100644 --- a/src/BRepAlgoAPI/BRepAlgoAPI_Section.cxx +++ b/src/BRepAlgoAPI/BRepAlgoAPI_Section.cxx @@ -17,25 +17,24 @@ // modified by Michael KLOKOV Wed Mar 6 15:01:25 2002 // modified by Eugeny MALTCHIKOV Wed Jul 04 11:13:01 2012 -#include - - +#include +#include +#include +#include +#include +#include #include #include -#include #include - +#include +#include +#include #include -#include -#include #include #include -#include - -#include -#include -#include -#include +#include +#include +#include // static diff --git a/src/BRepAlgoAPI/BRepAlgoAPI_Section.hxx b/src/BRepAlgoAPI/BRepAlgoAPI_Section.hxx new file mode 100644 index 0000000000..2d24faf1b1 --- /dev/null +++ b/src/BRepAlgoAPI/BRepAlgoAPI_Section.hxx @@ -0,0 +1,226 @@ +// Created on: 1994-02-18 +// 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 _BRepAlgoAPI_Section_HeaderFile +#define _BRepAlgoAPI_Section_HeaderFile + +#include +#include +#include + +#include +#include +class BOPAlgo_PaveFiller; +class TopoDS_Shape; +class gp_Pln; +class Geom_Surface; + + + +//! The algorithm is to build a Secton operation between arguments and tools. +//! The result of Section operation consists of vertices and edges. +//! The result of Section operation contains: +//! 1. new vertices that are subjects of V/V, E/E, E/F, F/F interferences +//! 2. vertices that are subjects of V/E, V/F interferences +//! 3. new edges that are subjects of F/F interferences +//! 4. edges that are Common Blocks +class BRepAlgoAPI_Section : public BRepAlgoAPI_BooleanOperation +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor + Standard_EXPORT BRepAlgoAPI_Section(); +Standard_EXPORT virtual ~BRepAlgoAPI_Section(); + + //! Empty constructor + //! - PaveFiller object that is carried out + Standard_EXPORT BRepAlgoAPI_Section(const BOPAlgo_PaveFiller& PF); + + //! Constructor with two shapes + //! -argument + //! -tool + //! - the flag: + //! if =True - the algorithm is performed immediatly + //! Obsolete + Standard_EXPORT BRepAlgoAPI_Section(const TopoDS_Shape& S1, const TopoDS_Shape& S2, const Standard_Boolean PerformNow = Standard_True); + + //! Constructor with two shapes + //! -argument + //! -tool + //! - PaveFiller object that is carried out + //! - the flag: + //! if =True - the algorithm is performed immediatly + //! Obsolete + Standard_EXPORT BRepAlgoAPI_Section(const TopoDS_Shape& S1, const TopoDS_Shape& S2, const BOPAlgo_PaveFiller& aDSF, const Standard_Boolean PerformNow = Standard_True); + + //! Constructor with two shapes + //! - argument + //! - tool + //! - the flag: + //! if =True - the algorithm is performed immediatly + //! Obsolete + Standard_EXPORT BRepAlgoAPI_Section(const TopoDS_Shape& S1, const gp_Pln& Pl, const Standard_Boolean PerformNow = Standard_True); + + //! Constructor with two shapes + //! - argument + //! - tool + //! - the flag: + //! if =True - the algorithm is performed immediatly + //! Obsolete + Standard_EXPORT BRepAlgoAPI_Section(const TopoDS_Shape& S1, const Handle(Geom_Surface)& Sf, const Standard_Boolean PerformNow = Standard_True); + + //! Constructor with two shapes + //! - argument + //! - tool + //! - the flag: + //! if =True - the algorithm is performed immediatly + //! Obsolete + Standard_EXPORT BRepAlgoAPI_Section(const Handle(Geom_Surface)& Sf, const TopoDS_Shape& S2, const Standard_Boolean PerformNow = Standard_True); + + //! Constructor with two shapes + //! - argument + //! - tool + //! - the flag: + //! if =True - the algorithm is performed immediatly + //! Obsolete + Standard_EXPORT BRepAlgoAPI_Section(const Handle(Geom_Surface)& Sf1, const Handle(Geom_Surface)& Sf2, const Standard_Boolean PerformNow = Standard_True); + + //! initialize the argument + //! - argument + //! Obsolete + Standard_EXPORT void Init1 (const TopoDS_Shape& S1); + + //! initialize the argument + //! - argument + //! Obsolete + Standard_EXPORT void Init1 (const gp_Pln& Pl); + + //! initialize the argument + //! - argument + //! Obsolete + Standard_EXPORT void Init1 (const Handle(Geom_Surface)& Sf); + + //! initialize the tool + //! - tool + //! Obsolete + Standard_EXPORT void Init2 (const TopoDS_Shape& S2); + + //! initialize the tool + //! - tool + //! Obsolete + Standard_EXPORT void Init2 (const gp_Pln& Pl); + + //! initialize the tool + //! - tool + //! Obsolete + Standard_EXPORT void Init2 (const Handle(Geom_Surface)& Sf); + + Standard_EXPORT void Approximation (const Standard_Boolean B); + + + //! Indicates whether the P-Curve should be (or not) + //! performed on the argument. + //! By default, no parametric 2D curve (pcurve) is defined for the + //! edges of the result. + //! If ComputePCurve1 equals true, further computations performed + //! to attach an P-Curve in the parametric space of the argument + //! to the constructed edges. + //! Obsolete + Standard_EXPORT void ComputePCurveOn1 (const Standard_Boolean B); + + + //! Indicates whether the P-Curve should be (or not) + //! performed on the tool. + //! By default, no parametric 2D curve (pcurve) is defined for the + //! edges of the result. + //! If ComputePCurve1 equals true, further computations performed + //! to attach an P-Curve in the parametric space of the tool + //! to the constructed edges. + //! Obsolete + Standard_EXPORT void ComputePCurveOn2 (const Standard_Boolean B); + + //! Performs the algorithm + //! Filling interference Data Structure (if it is necessary) + //! Building the result of the operation. + Standard_EXPORT virtual void Build() Standard_OVERRIDE; + + + //! get the face of the first part giving section edge . + //! Returns True on the 3 following conditions : + //! 1/ is an edge returned by the Shape() metwod. + //! 2/ First part of section performed is a shape. + //! 3/ is built on a intersection curve (i.e + //! is not the result of common edges) + //! When False, F remains untouched. + //! Obsolete + Standard_EXPORT Standard_Boolean HasAncestorFaceOn1 (const TopoDS_Shape& E, TopoDS_Shape& F) const; + + //! Identifies the ancestor faces of + //! the intersection edge E resulting from the last + //! computation performed in this framework, that is, the faces of + //! the two original shapes on which the edge E lies: + //! - HasAncestorFaceOn1 gives the ancestor face in the first shape, and + //! - HasAncestorFaceOn2 gives the ancestor face in the second shape. + //! These functions return true if an ancestor face F is found, or false if not. + //! An ancestor face is identifiable for the edge E if the following + //! conditions are satisfied: + //! - the first part on which this algorithm performed its + //! last computation is a shape, that is, it was not given as + //! a surface or a plane at the time of construction of this + //! algorithm or at a later time by the Init1 function, + //! - E is one of the elementary edges built by the + //! last computation of this section algorithm. + //! To use these functions properly, you have to test the returned + //! Boolean value before using the ancestor face: F is significant + //! only if the returned Boolean value equals true. + //! Obsolete + Standard_EXPORT Standard_Boolean HasAncestorFaceOn2 (const TopoDS_Shape& E, TopoDS_Shape& F) const; + + + + +protected: + + + Standard_EXPORT void Init (const Standard_Boolean PerformNow); + + Standard_EXPORT virtual void SetAttributes() Standard_OVERRIDE; + + + + +private: + + + + Standard_Boolean myParametersChanged; + Standard_Boolean myApprox; + Standard_Boolean myComputePCurve1; + Standard_Boolean myComputePCurve2; + + +}; + + + + + + + +#endif // _BRepAlgoAPI_Section_HeaderFile diff --git a/src/BRepAlgoAPI/FILES b/src/BRepAlgoAPI/FILES new file mode 100644 index 0000000000..91a8786aba --- /dev/null +++ b/src/BRepAlgoAPI/FILES @@ -0,0 +1,16 @@ +BRepAlgoAPI_Algo.cxx +BRepAlgoAPI_Algo.hxx +BRepAlgoAPI_BooleanOperation.cxx +BRepAlgoAPI_BooleanOperation.hxx +BRepAlgoAPI_BuilderAlgo.cxx +BRepAlgoAPI_BuilderAlgo.hxx +BRepAlgoAPI_Check.cxx +BRepAlgoAPI_Check.hxx +BRepAlgoAPI_Common.cxx +BRepAlgoAPI_Common.hxx +BRepAlgoAPI_Cut.cxx +BRepAlgoAPI_Cut.hxx +BRepAlgoAPI_Fuse.cxx +BRepAlgoAPI_Fuse.hxx +BRepAlgoAPI_Section.cxx +BRepAlgoAPI_Section.hxx diff --git a/src/BRepApprox/BRepApprox.cdl b/src/BRepApprox/BRepApprox.cdl deleted file mode 100644 index 382e0ec0eb..0000000000 --- a/src/BRepApprox/BRepApprox.cdl +++ /dev/null @@ -1,50 +0,0 @@ --- Created on: 1995-06-06 --- Created by: Jean Yves LEBEY --- 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. - -package BRepApprox - - ---Purpose: This package provides services on intersection curves - -- dealt by topological operations on BRep objects. - -- Services are approximation services. - - -uses - - MMgt, - TColStd, - gp, - GeomAbs, - Adaptor3d, - Geom, - Geom2d, - BRepAdaptor, - IntSurf, - ApproxInt - -is - - class ApproxLine; - - class SurfaceTool; - - class Approx instantiates Approx from ApproxInt - (Surface from BRepAdaptor, - SurfaceTool from BRepApprox, - Quadric from IntSurf, - QuadricTool from IntSurf, - ApproxLine from BRepApprox); - -end BRepApprox; diff --git a/src/BRepApprox/BRepApprox_Approx.hxx b/src/BRepApprox/BRepApprox_Approx.hxx new file mode 100644 index 0000000000..9b03e23118 --- /dev/null +++ b/src/BRepApprox/BRepApprox_Approx.hxx @@ -0,0 +1,128 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_Approx_HeaderFile +#define _BRepApprox_Approx_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class StdFail_NotDone; +class BRepAdaptor_Surface; +class BRepApprox_SurfaceTool; +class IntSurf_Quadric; +class IntSurf_QuadricTool; +class BRepApprox_ApproxLine; +class BRepApprox_ThePrmPrmSvSurfacesOfApprox; +class BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox; +class BRepApprox_TheImpPrmSvSurfacesOfApprox; +class BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox; +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class BRepApprox_TheComputeLineOfApprox; +class BRepApprox_MyBSplGradientOfTheComputeLineOfApprox; +class BRepApprox_MyGradientbisOfTheComputeLineOfApprox; +class BRepApprox_TheComputeLineBezierOfApprox; +class BRepApprox_MyGradientOfTheComputeLineBezierOfApprox; +class AppParCurves_MultiBSpCurve; + + + +class BRepApprox_Approx +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_Approx(); + + Standard_EXPORT void Perform (const BRepAdaptor_Surface& Surf1, const BRepAdaptor_Surface& Surf2, const Handle(BRepApprox_ApproxLine)& aLine, const Standard_Boolean ApproxXYZ = Standard_True, const Standard_Boolean ApproxU1V1 = Standard_True, const Standard_Boolean ApproxU2V2 = Standard_True, const Standard_Integer indicemin = 0, const Standard_Integer indicemax = 0); + + Standard_EXPORT void Perform (const Handle(BRepApprox_ApproxLine)& aLine, const Standard_Boolean ApproxXYZ = Standard_True, const Standard_Boolean ApproxU1V1 = Standard_True, const Standard_Boolean ApproxU2V2 = Standard_True, const Standard_Integer indicemin = 0, const Standard_Integer indicemax = 0); + + Standard_EXPORT void SetParameters (const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer DegMin, const Standard_Integer DegMax, const Standard_Integer NbIterMax, const Standard_Boolean ApproxWithTangency = Standard_True, const Approx_ParametrizationType Parametrization = Approx_ChordLength); + + Standard_EXPORT void SetParameters (const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Boolean RelativeTol, const Standard_Integer DegMin, const Standard_Integer DegMax, const Standard_Integer NbIterMax, const Standard_Integer NbPntMax, const Standard_Boolean ApproxWithTangency = Standard_True, const Approx_ParametrizationType Parametrization = Approx_ChordLength); + + Standard_EXPORT void Perform(); + + Standard_EXPORT Standard_Real TolReached3d() const; + + Standard_EXPORT Standard_Real TolReached2d() const; + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT Standard_Integer NbMultiCurves() const; + + Standard_EXPORT const AppParCurves_MultiBSpCurve& Value (const Standard_Integer Index) const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT void Perform (const BRepAdaptor_Surface& Surf1, const IntSurf_Quadric& Surf2, const Handle(BRepApprox_ApproxLine)& aLine, const Standard_Boolean ApproxXYZ, const Standard_Boolean ApproxU1V1, const Standard_Boolean ApproxU2V2, const Standard_Integer indicemin, const Standard_Integer indicemax); + + Standard_EXPORT void Perform (const IntSurf_Quadric& Surf1, const BRepAdaptor_Surface& Surf2, const Handle(BRepApprox_ApproxLine)& aLine, const Standard_Boolean ApproxXYZ, const Standard_Boolean ApproxU1V1, const Standard_Boolean ApproxU2V2, const Standard_Integer indicemin, const Standard_Integer indicemax); + + Standard_EXPORT void UpdateTolReached(); + + + BRepApprox_TheComputeLineOfApprox myComputeLine; + BRepApprox_TheComputeLineBezierOfApprox myComputeLineBezier; + Approx_MCurvesToBSpCurve myBezToBSpl; + Standard_Boolean myTolReached; + Standard_Boolean myApproxBez; + Standard_Boolean myWithTangency; + Standard_Real myTol3d; + Standard_Real myTol2d; + Standard_Boolean myRelativeTol; + Standard_Integer myDegMin; + Standard_Integer myDegMax; + Standard_Integer myNbPntMax; + Standard_Integer myNbIterMax; + Standard_Real myMinFactorXYZ; + Standard_Real myMinFactorUV; + Standard_Real myTolReached3d; + Standard_Real myTolReached2d; + + +}; + + + + + + + +#endif // _BRepApprox_Approx_HeaderFile diff --git a/src/BRepApprox/BRepApprox_ApproxLine.cdl b/src/BRepApprox/BRepApprox_ApproxLine.cdl deleted file mode 100644 index 7b24589fd4..0000000000 --- a/src/BRepApprox/BRepApprox_ApproxLine.cdl +++ /dev/null @@ -1,53 +0,0 @@ --- 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. - -class ApproxLine from BRepApprox inherits TShared from MMgt - -uses - - PntOn2S from IntSurf, - LineOn2S from IntSurf, - BSplineCurve from Geom, - BSplineCurve from Geom2d - -is - - Create(CurveXYZ: BSplineCurve from Geom; - CurveUV1: BSplineCurve from Geom2d; - CurveUV2: BSplineCurve from Geom2d) - returns ApproxLine from BRepApprox; - - Create(lin: LineOn2S from IntSurf; Tang: Boolean from Standard) - returns ApproxLine from BRepApprox; - - NbPnts(me) - returns Integer from Standard - is static; - - Point(me: mutable; Index: Integer from Standard) - - returns PntOn2S from IntSurf - is static; - -fields - - myCurveXYZ : BSplineCurve from Geom; - myCurveUV1 : BSplineCurve from Geom2d; - myCurveUV2 : BSplineCurve from Geom2d; - myLineOn2S : LineOn2S from IntSurf; - -end ApproxLine from BRepApprox; - diff --git a/src/BRepApprox/BRepApprox_ApproxLine.cxx b/src/BRepApprox/BRepApprox_ApproxLine.cxx index 9cb6e63ff4..5973ebd698 100644 --- a/src/BRepApprox/BRepApprox_ApproxLine.cxx +++ b/src/BRepApprox/BRepApprox_ApproxLine.cxx @@ -14,15 +14,19 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include #include +#include +#include +#include //======================================================================= //function : BRepApprox_ApproxLine //purpose : //======================================================================= - BRepApprox_ApproxLine::BRepApprox_ApproxLine (const Handle(Geom_BSplineCurve)& CurveXYZ, const Handle(Geom2d_BSplineCurve)& CurveUV1, diff --git a/src/BRepApprox/BRepApprox_ApproxLine.hxx b/src/BRepApprox/BRepApprox_ApproxLine.hxx new file mode 100644 index 0000000000..a5117f5fb5 --- /dev/null +++ b/src/BRepApprox/BRepApprox_ApproxLine.hxx @@ -0,0 +1,77 @@ +// 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_ApproxLine_HeaderFile +#define _BRepApprox_ApproxLine_HeaderFile + +#include +#include + +#include +#include +#include +class Geom_BSplineCurve; +class Geom2d_BSplineCurve; +class IntSurf_LineOn2S; +class IntSurf_PntOn2S; + + +class BRepApprox_ApproxLine; +DEFINE_STANDARD_HANDLE(BRepApprox_ApproxLine, MMgt_TShared) + + +class BRepApprox_ApproxLine : public MMgt_TShared +{ + +public: + + + Standard_EXPORT BRepApprox_ApproxLine(const Handle(Geom_BSplineCurve)& CurveXYZ, const Handle(Geom2d_BSplineCurve)& CurveUV1, const Handle(Geom2d_BSplineCurve)& CurveUV2); + + Standard_EXPORT BRepApprox_ApproxLine(const Handle(IntSurf_LineOn2S)& lin, const Standard_Boolean Tang); + + Standard_EXPORT Standard_Integer NbPnts() const; + + Standard_EXPORT IntSurf_PntOn2S Point (const Standard_Integer Index); + + + + + DEFINE_STANDARD_RTTI(BRepApprox_ApproxLine,MMgt_TShared) + +protected: + + + + +private: + + + Handle(Geom_BSplineCurve) myCurveXYZ; + Handle(Geom2d_BSplineCurve) myCurveUV1; + Handle(Geom2d_BSplineCurve) myCurveUV2; + Handle(IntSurf_LineOn2S) myLineOn2S; + + +}; + + + + + + + +#endif // _BRepApprox_ApproxLine_HeaderFile diff --git a/src/BRepApprox/BRepApprox_Approx_0.cxx b/src/BRepApprox/BRepApprox_Approx_0.cxx new file mode 100644 index 0000000000..84a7ba36ca --- /dev/null +++ b/src/BRepApprox/BRepApprox_Approx_0.cxx @@ -0,0 +1,86 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define ThePSurface BRepAdaptor_Surface +#define ThePSurface_hxx +#define ThePSurfaceTool BRepApprox_SurfaceTool +#define ThePSurfaceTool_hxx +#define TheISurface IntSurf_Quadric +#define TheISurface_hxx +#define TheISurfaceTool IntSurf_QuadricTool +#define TheISurfaceTool_hxx +#define Handle_TheWLine Handle(BRepApprox_ApproxLine) +#define TheWLine BRepApprox_ApproxLine +#define TheWLine_hxx +#define ApproxInt_ThePrmPrmSvSurfaces BRepApprox_ThePrmPrmSvSurfacesOfApprox +#define ApproxInt_ThePrmPrmSvSurfaces_hxx +#define ApproxInt_TheInt2SOfThePrmPrmSvSurfaces BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox +#define ApproxInt_TheInt2SOfThePrmPrmSvSurfaces_hxx +#define ApproxInt_TheInt2SOfThePrmPrmSvSurfaces BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox +#define ApproxInt_TheInt2SOfThePrmPrmSvSurfaces_hxx +#define ApproxInt_TheImpPrmSvSurfaces BRepApprox_TheImpPrmSvSurfacesOfApprox +#define ApproxInt_TheImpPrmSvSurfaces_hxx +#define ApproxInt_TheZerImpFuncOfTheImpPrmSvSurfaces BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox +#define ApproxInt_TheZerImpFuncOfTheImpPrmSvSurfaces_hxx +#define ApproxInt_TheZerImpFuncOfTheImpPrmSvSurfaces BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox +#define ApproxInt_TheZerImpFuncOfTheImpPrmSvSurfaces_hxx +#define ApproxInt_TheMultiLine BRepApprox_TheMultiLineOfApprox +#define ApproxInt_TheMultiLine_hxx +#define ApproxInt_TheMultiLineTool BRepApprox_TheMultiLineToolOfApprox +#define ApproxInt_TheMultiLineTool_hxx +#define ApproxInt_TheComputeLine BRepApprox_TheComputeLineOfApprox +#define ApproxInt_TheComputeLine_hxx +#define ApproxInt_MyBSplGradientOfTheComputeLine BRepApprox_MyBSplGradientOfTheComputeLineOfApprox +#define ApproxInt_MyBSplGradientOfTheComputeLine_hxx +#define ApproxInt_MyGradientbisOfTheComputeLine BRepApprox_MyGradientbisOfTheComputeLineOfApprox +#define ApproxInt_MyGradientbisOfTheComputeLine_hxx +#define ApproxInt_MyBSplGradientOfTheComputeLine BRepApprox_MyBSplGradientOfTheComputeLineOfApprox +#define ApproxInt_MyBSplGradientOfTheComputeLine_hxx +#define ApproxInt_MyGradientbisOfTheComputeLine BRepApprox_MyGradientbisOfTheComputeLineOfApprox +#define ApproxInt_MyGradientbisOfTheComputeLine_hxx +#define ApproxInt_TheComputeLineBezier BRepApprox_TheComputeLineBezierOfApprox +#define ApproxInt_TheComputeLineBezier_hxx +#define ApproxInt_MyGradientOfTheComputeLineBezier BRepApprox_MyGradientOfTheComputeLineBezierOfApprox +#define ApproxInt_MyGradientOfTheComputeLineBezier_hxx +#define ApproxInt_MyGradientOfTheComputeLineBezier BRepApprox_MyGradientOfTheComputeLineBezierOfApprox +#define ApproxInt_MyGradientOfTheComputeLineBezier_hxx +#define ApproxInt_Approx BRepApprox_Approx +#define ApproxInt_Approx_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox.hxx b/src/BRepApprox/BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox.hxx new file mode 100644 index 0000000000..17d5735de2 --- /dev/null +++ b/src/BRepApprox/BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox.hxx @@ -0,0 +1,74 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile +#define _BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class BRepApprox_MyBSplGradientOfTheComputeLineOfApprox; +class BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox; +class BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox; +class math_MultipleVarFunctionWithGradient; + + + +class BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox : public math_BFGS +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox(math_MultipleVarFunctionWithGradient& F, const math_Vector& StartingPoint, const Standard_Real Tolerance3d, const Standard_Real Tolerance2d, const Standard_Real Eps, const Standard_Integer NbIterations = 200); + + Standard_EXPORT virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunctionWithGradient& F) const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + Standard_Real myTol3d; + Standard_Real myTol2d; + + +}; + + + + + + + +#endif // _BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx b/src/BRepApprox/BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx new file mode 100644 index 0000000000..2d285efaef --- /dev/null +++ b/src/BRepApprox/BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx @@ -0,0 +1,40 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define ToolLine BRepApprox_TheMultiLineToolOfApprox +#define ToolLine_hxx +#define AppParCurves_BSpParLeastSquare BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox +#define AppParCurves_BSpParLeastSquare_hxx +#define AppParCurves_BSpParFunction BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox +#define AppParCurves_BSpParFunction_hxx +#define AppParCurves_BSpGradient_BFGS BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox +#define AppParCurves_BSpGradient_BFGS_hxx +#define AppParCurves_BSpGradient BRepApprox_MyBSplGradientOfTheComputeLineOfApprox +#define AppParCurves_BSpGradient_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx b/src/BRepApprox/BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx new file mode 100644 index 0000000000..35f64c2bb2 --- /dev/null +++ b/src/BRepApprox/BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx @@ -0,0 +1,140 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile +#define _BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox; +class AppParCurves_MultiBSpCurve; +class math_Matrix; + + + +class BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox : public math_MultipleVarFunctionWithGradient +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer NbPol); + + Standard_EXPORT Standard_Integer NbVariables() const; + + Standard_EXPORT Standard_Boolean Value (const math_Vector& X, Standard_Real& F); + + Standard_EXPORT Standard_Boolean Gradient (const math_Vector& X, math_Vector& G); + + Standard_EXPORT Standard_Boolean Values (const math_Vector& X, Standard_Real& F, math_Vector& G); + + Standard_EXPORT const math_Vector& NewParameters() const; + + Standard_EXPORT AppParCurves_MultiBSpCurve CurveValue(); + + Standard_EXPORT Standard_Real Error (const Standard_Integer IPoint, const Standard_Integer CurveIndex); + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT const math_Matrix& FunctionMatrix() const; + + Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const; + + Standard_EXPORT const math_IntegerVector& Index() const; + + Standard_EXPORT AppParCurves_Constraint FirstConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer FirstPoint) const; + + Standard_EXPORT AppParCurves_Constraint LastConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer LastPoint) const; + + Standard_EXPORT void SetFirstLambda (const Standard_Real l1); + + Standard_EXPORT void SetLastLambda (const Standard_Real l2); + + + + +protected: + + + Standard_EXPORT void Perform (const math_Vector& X); + + + + +private: + + + + Standard_Boolean Done; + BRepApprox_TheMultiLineOfApprox MyMultiLine; + AppParCurves_MultiBSpCurve MyMultiBSpCurve; + Standard_Integer nbpoles; + math_Vector myParameters; + Standard_Real FVal; + math_Vector ValGrad_F; + math_Matrix MyF; + math_Matrix PTLX; + math_Matrix PTLY; + math_Matrix PTLZ; + math_Matrix A; + math_Matrix DA; + BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox MyLeastSquare; + Standard_Boolean Contraintes; + Standard_Integer NbP; + Standard_Integer NbCu; + Standard_Integer Adeb; + Standard_Integer Afin; + Handle(TColStd_HArray1OfInteger) tabdim; + Standard_Real ERR3d; + Standard_Real ERR2d; + Standard_Integer FirstP; + Standard_Integer LastP; + Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints; + Standard_Real mylambda1; + Standard_Real mylambda2; + + +}; + + + + + + + +#endif // _BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx b/src/BRepApprox/BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx new file mode 100644 index 0000000000..d1a5f933a9 --- /dev/null +++ b/src/BRepApprox/BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx @@ -0,0 +1,35 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define ToolLine BRepApprox_TheMultiLineToolOfApprox +#define ToolLine_hxx +#define Squares BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox +#define Squares_hxx +#define AppParCurves_BSpFunction BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox +#define AppParCurves_BSpFunction_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx b/src/BRepApprox/BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx new file mode 100644 index 0000000000..bbc06229ce --- /dev/null +++ b/src/BRepApprox/BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx @@ -0,0 +1,175 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile +#define _BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class StdFail_NotDone; +class Standard_OutOfRange; +class Standard_DimensionError; +class Standard_NoSuchObject; +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class AppParCurves_MultiCurve; +class AppParCurves_MultiBSpCurve; +class math_Matrix; + + + +class BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& 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); + + Standard_EXPORT BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol); + + Standard_EXPORT BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& 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); + + Standard_EXPORT BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& 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); + + Standard_EXPORT void Perform (const math_Vector& Parameters); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const Standard_Real l1, const Standard_Real l2); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const Standard_Real l1, const Standard_Real l2); + + 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); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiCurve BezierValue(); + + Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue(); + + Standard_EXPORT const math_Matrix& FunctionMatrix() const; + + Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const; + + Standard_EXPORT void ErrorGradient (math_Vector& Grad, Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT const math_Matrix& Distance(); + + Standard_EXPORT void Error (Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT Standard_Real FirstLambda() const; + + Standard_EXPORT Standard_Real LastLambda() const; + + Standard_EXPORT const math_Matrix& Points() const; + + Standard_EXPORT const math_Matrix& Poles() const; + + Standard_EXPORT const math_IntegerVector& KIndex() const; + + + + +protected: + + + Standard_EXPORT void Init (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint); + + Standard_EXPORT Standard_Integer NbBColumns (const BRepApprox_TheMultiLineOfApprox& SSP) const; + + Standard_EXPORT Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const; + + Standard_EXPORT Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const; + + Standard_EXPORT void Affect (const BRepApprox_TheMultiLineOfApprox& 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); + + Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Vector& TheB); + + Standard_EXPORT void MakeTAA (math_Vector& TheA); + + 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 // _BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx b/src/BRepApprox/BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx new file mode 100644 index 0000000000..62195ff65e --- /dev/null +++ b/src/BRepApprox/BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx @@ -0,0 +1,37 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define ToolLine BRepApprox_TheMultiLineToolOfApprox +#define ToolLine_hxx +#define AppParCurves_LeastSquare BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox +#define AppParCurves_LeastSquare_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox.hxx b/src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox.hxx new file mode 100644 index 0000000000..73f1d42b68 --- /dev/null +++ b/src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox.hxx @@ -0,0 +1,75 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile +#define _BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class BRepApprox_MyGradientOfTheComputeLineBezierOfApprox; +class BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox; +class BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox; +class BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox; +class math_MultipleVarFunctionWithGradient; + + + +class BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox : public math_BFGS +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox(math_MultipleVarFunctionWithGradient& F, const math_Vector& StartingPoint, const Standard_Real Tolerance3d, const Standard_Real Tolerance2d, const Standard_Real Eps, const Standard_Integer NbIterations = 200); + + Standard_EXPORT virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunctionWithGradient& F) const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + Standard_Real myTol3d; + Standard_Real myTol2d; + + +}; + + + + + + + +#endif // _BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx b/src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx new file mode 100644 index 0000000000..0ee2ff660e --- /dev/null +++ b/src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx @@ -0,0 +1,43 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define ToolLine BRepApprox_TheMultiLineToolOfApprox +#define ToolLine_hxx +#define AppParCurves_ParLeastSquare BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox +#define AppParCurves_ParLeastSquare_hxx +#define AppParCurves_ResConstraint BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox +#define AppParCurves_ResConstraint_hxx +#define AppParCurves_ParFunction BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox +#define AppParCurves_ParFunction_hxx +#define AppParCurves_Gradient_BFGS BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox +#define AppParCurves_Gradient_BFGS_hxx +#define AppParCurves_Gradient BRepApprox_MyGradientOfTheComputeLineBezierOfApprox +#define AppParCurves_Gradient_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox.hxx b/src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox.hxx new file mode 100644 index 0000000000..785cf2d427 --- /dev/null +++ b/src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox.hxx @@ -0,0 +1,75 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile +#define _BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class BRepApprox_MyGradientbisOfTheComputeLineOfApprox; +class BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox; +class BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox; +class BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox; +class math_MultipleVarFunctionWithGradient; + + + +class BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox : public math_BFGS +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox(math_MultipleVarFunctionWithGradient& F, const math_Vector& StartingPoint, const Standard_Real Tolerance3d, const Standard_Real Tolerance2d, const Standard_Real Eps, const Standard_Integer NbIterations = 200); + + Standard_EXPORT virtual Standard_Boolean IsSolutionReached (math_MultipleVarFunctionWithGradient& F) const Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + Standard_Real myTol3d; + Standard_Real myTol2d; + + +}; + + + + + + + +#endif // _BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox_0.cxx b/src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox_0.cxx new file mode 100644 index 0000000000..a0c3cd7610 --- /dev/null +++ b/src/BRepApprox/BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox_0.cxx @@ -0,0 +1,43 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define ToolLine BRepApprox_TheMultiLineToolOfApprox +#define ToolLine_hxx +#define AppParCurves_ParLeastSquare BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox +#define AppParCurves_ParLeastSquare_hxx +#define AppParCurves_ResConstraint BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox +#define AppParCurves_ResConstraint_hxx +#define AppParCurves_ParFunction BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox +#define AppParCurves_ParFunction_hxx +#define AppParCurves_Gradient_BFGS BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox +#define AppParCurves_Gradient_BFGS_hxx +#define AppParCurves_Gradient BRepApprox_MyGradientbisOfTheComputeLineOfApprox +#define AppParCurves_Gradient_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx b/src/BRepApprox/BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx new file mode 100644 index 0000000000..b5d44ce509 --- /dev/null +++ b/src/BRepApprox/BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx @@ -0,0 +1,100 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_MyBSplGradientOfTheComputeLineOfApprox_HeaderFile +#define _BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class StdFail_NotDone; +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox; +class BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox; +class BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox; +class AppParCurves_MultiBSpCurve; + + + +class BRepApprox_MyBSplGradientOfTheComputeLineOfApprox +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_MyBSplGradientOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 1); + + Standard_EXPORT BRepApprox_MyBSplGradientOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations, const Standard_Real lambda1, const Standard_Real lambda2); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiBSpCurve Value() const; + + Standard_EXPORT Standard_Real Error (const Standard_Integer Index) const; + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT Standard_Real AverageError() const; + + + + +protected: + + + Standard_EXPORT void Perform (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 200); + + + + +private: + + + + AppParCurves_MultiBSpCurve SCU; + math_Vector ParError; + Standard_Real AvError; + Standard_Real MError3d; + Standard_Real MError2d; + Standard_Real mylambda1; + Standard_Real mylambda2; + Standard_Boolean myIsLambdaDefined; + Standard_Boolean Done; + + +}; + + + + + + + +#endif // _BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_0.cxx b/src/BRepApprox/BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_0.cxx new file mode 100644 index 0000000000..e8f1430ae3 --- /dev/null +++ b/src/BRepApprox/BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_0.cxx @@ -0,0 +1,42 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define ToolLine BRepApprox_TheMultiLineToolOfApprox +#define ToolLine_hxx +#define AppParCurves_BSpParLeastSquare BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox +#define AppParCurves_BSpParLeastSquare_hxx +#define AppParCurves_BSpParFunction BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox +#define AppParCurves_BSpParFunction_hxx +#define AppParCurves_BSpGradient_BFGS BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox +#define AppParCurves_BSpGradient_BFGS_hxx +#define AppParCurves_BSpGradient BRepApprox_MyBSplGradientOfTheComputeLineOfApprox +#define AppParCurves_BSpGradient_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx b/src/BRepApprox/BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx new file mode 100644 index 0000000000..49759b8eb6 --- /dev/null +++ b/src/BRepApprox/BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx @@ -0,0 +1,92 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_MyGradientOfTheComputeLineBezierOfApprox_HeaderFile +#define _BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class StdFail_NotDone; +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox; +class BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox; +class BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox; +class BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox; +class AppParCurves_MultiCurve; + + + +class BRepApprox_MyGradientOfTheComputeLineBezierOfApprox +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_MyGradientOfTheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 200); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiCurve Value() const; + + Standard_EXPORT Standard_Real Error (const Standard_Integer Index) const; + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT Standard_Real AverageError() const; + + + + +protected: + + + + + +private: + + + + AppParCurves_MultiCurve SCU; + math_Vector ParError; + Standard_Real AvError; + Standard_Real MError3d; + Standard_Real MError2d; + Standard_Boolean Done; + + +}; + + + + + + + +#endif // _BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_0.cxx b/src/BRepApprox/BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_0.cxx new file mode 100644 index 0000000000..5b0b9d9d92 --- /dev/null +++ b/src/BRepApprox/BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_0.cxx @@ -0,0 +1,45 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define ToolLine BRepApprox_TheMultiLineToolOfApprox +#define ToolLine_hxx +#define AppParCurves_ParLeastSquare BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox +#define AppParCurves_ParLeastSquare_hxx +#define AppParCurves_ResConstraint BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox +#define AppParCurves_ResConstraint_hxx +#define AppParCurves_ParFunction BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox +#define AppParCurves_ParFunction_hxx +#define AppParCurves_Gradient_BFGS BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox +#define AppParCurves_Gradient_BFGS_hxx +#define AppParCurves_Gradient BRepApprox_MyGradientOfTheComputeLineBezierOfApprox +#define AppParCurves_Gradient_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx b/src/BRepApprox/BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx new file mode 100644 index 0000000000..2af3606fb5 --- /dev/null +++ b/src/BRepApprox/BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx @@ -0,0 +1,92 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_MyGradientbisOfTheComputeLineOfApprox_HeaderFile +#define _BRepApprox_MyGradientbisOfTheComputeLineOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class StdFail_NotDone; +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox; +class BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox; +class BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox; +class BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox; +class AppParCurves_MultiCurve; + + + +class BRepApprox_MyGradientbisOfTheComputeLineOfApprox +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_MyGradientbisOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, math_Vector& Parameters, const Standard_Integer Deg, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIterations = 200); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiCurve Value() const; + + Standard_EXPORT Standard_Real Error (const Standard_Integer Index) const; + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT Standard_Real AverageError() const; + + + + +protected: + + + + + +private: + + + + AppParCurves_MultiCurve SCU; + math_Vector ParError; + Standard_Real AvError; + Standard_Real MError3d; + Standard_Real MError2d; + Standard_Boolean Done; + + +}; + + + + + + + +#endif // _BRepApprox_MyGradientbisOfTheComputeLineOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_MyGradientbisOfTheComputeLineOfApprox_0.cxx b/src/BRepApprox/BRepApprox_MyGradientbisOfTheComputeLineOfApprox_0.cxx new file mode 100644 index 0000000000..49a9390be9 --- /dev/null +++ b/src/BRepApprox/BRepApprox_MyGradientbisOfTheComputeLineOfApprox_0.cxx @@ -0,0 +1,45 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define ToolLine BRepApprox_TheMultiLineToolOfApprox +#define ToolLine_hxx +#define AppParCurves_ParLeastSquare BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox +#define AppParCurves_ParLeastSquare_hxx +#define AppParCurves_ResConstraint BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox +#define AppParCurves_ResConstraint_hxx +#define AppParCurves_ParFunction BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox +#define AppParCurves_ParFunction_hxx +#define AppParCurves_Gradient_BFGS BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox +#define AppParCurves_Gradient_BFGS_hxx +#define AppParCurves_Gradient BRepApprox_MyGradientbisOfTheComputeLineOfApprox +#define AppParCurves_Gradient_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx b/src/BRepApprox/BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx new file mode 100644 index 0000000000..a125f0a93c --- /dev/null +++ b/src/BRepApprox/BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx @@ -0,0 +1,125 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile +#define _BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox; +class BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox; +class AppParCurves_MultiCurve; + + + +class BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox : public math_MultipleVarFunctionWithGradient +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const math_Vector& Parameters, const Standard_Integer Deg); + + Standard_EXPORT Standard_Integer NbVariables() const; + + Standard_EXPORT Standard_Boolean Value (const math_Vector& X, Standard_Real& F); + + Standard_EXPORT Standard_Boolean Gradient (const math_Vector& X, math_Vector& G); + + Standard_EXPORT Standard_Boolean Values (const math_Vector& X, Standard_Real& F, math_Vector& G); + + Standard_EXPORT const math_Vector& NewParameters() const; + + Standard_EXPORT const AppParCurves_MultiCurve& CurveValue(); + + Standard_EXPORT Standard_Real Error (const Standard_Integer IPoint, const Standard_Integer CurveIndex) const; + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT AppParCurves_Constraint FirstConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer FirstPoint) const; + + Standard_EXPORT AppParCurves_Constraint LastConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer LastPoint) const; + + + + +protected: + + + Standard_EXPORT void Perform (const math_Vector& X); + + + + +private: + + + + Standard_Boolean Done; + BRepApprox_TheMultiLineOfApprox MyMultiLine; + AppParCurves_MultiCurve MyMultiCurve; + Standard_Integer Degre; + math_Vector myParameters; + Standard_Real FVal; + math_Vector ValGrad_F; + math_Matrix MyF; + math_Matrix PTLX; + math_Matrix PTLY; + math_Matrix PTLZ; + math_Matrix A; + math_Matrix DA; + BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox MyLeastSquare; + Standard_Boolean Contraintes; + Standard_Integer NbP; + Standard_Integer NbCu; + Standard_Integer Adeb; + Standard_Integer Afin; + Handle(TColStd_HArray1OfInteger) tabdim; + Standard_Real ERR3d; + Standard_Real ERR2d; + Standard_Integer FirstP; + Standard_Integer LastP; + Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints; + + +}; + + + + + + + +#endif // _BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx b/src/BRepApprox/BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx new file mode 100644 index 0000000000..0f6117160e --- /dev/null +++ b/src/BRepApprox/BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx @@ -0,0 +1,37 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define ToolLine BRepApprox_TheMultiLineToolOfApprox +#define ToolLine_hxx +#define Squares BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox +#define Squares_hxx +#define ResolCons BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox +#define ResolCons_hxx +#define AppParCurves_Function BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox +#define AppParCurves_Function_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx b/src/BRepApprox/BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx new file mode 100644 index 0000000000..ffc35d1ac0 --- /dev/null +++ b/src/BRepApprox/BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx @@ -0,0 +1,125 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile +#define _BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox; +class BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox; +class AppParCurves_MultiCurve; + + + +class BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox : public math_MultipleVarFunctionWithGradient +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const math_Vector& Parameters, const Standard_Integer Deg); + + Standard_EXPORT Standard_Integer NbVariables() const; + + Standard_EXPORT Standard_Boolean Value (const math_Vector& X, Standard_Real& F); + + Standard_EXPORT Standard_Boolean Gradient (const math_Vector& X, math_Vector& G); + + Standard_EXPORT Standard_Boolean Values (const math_Vector& X, Standard_Real& F, math_Vector& G); + + Standard_EXPORT const math_Vector& NewParameters() const; + + Standard_EXPORT const AppParCurves_MultiCurve& CurveValue(); + + Standard_EXPORT Standard_Real Error (const Standard_Integer IPoint, const Standard_Integer CurveIndex) const; + + Standard_EXPORT Standard_Real MaxError3d() const; + + Standard_EXPORT Standard_Real MaxError2d() const; + + Standard_EXPORT AppParCurves_Constraint FirstConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer FirstPoint) const; + + Standard_EXPORT AppParCurves_Constraint LastConstraint (const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints, const Standard_Integer LastPoint) const; + + + + +protected: + + + Standard_EXPORT void Perform (const math_Vector& X); + + + + +private: + + + + Standard_Boolean Done; + BRepApprox_TheMultiLineOfApprox MyMultiLine; + AppParCurves_MultiCurve MyMultiCurve; + Standard_Integer Degre; + math_Vector myParameters; + Standard_Real FVal; + math_Vector ValGrad_F; + math_Matrix MyF; + math_Matrix PTLX; + math_Matrix PTLY; + math_Matrix PTLZ; + math_Matrix A; + math_Matrix DA; + BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox MyLeastSquare; + Standard_Boolean Contraintes; + Standard_Integer NbP; + Standard_Integer NbCu; + Standard_Integer Adeb; + Standard_Integer Afin; + Handle(TColStd_HArray1OfInteger) tabdim; + Standard_Real ERR3d; + Standard_Real ERR2d; + Standard_Integer FirstP; + Standard_Integer LastP; + Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints; + + +}; + + + + + + + +#endif // _BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_0.cxx b/src/BRepApprox/BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_0.cxx new file mode 100644 index 0000000000..51c8f737d3 --- /dev/null +++ b/src/BRepApprox/BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_0.cxx @@ -0,0 +1,37 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define ToolLine BRepApprox_TheMultiLineToolOfApprox +#define ToolLine_hxx +#define Squares BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox +#define Squares_hxx +#define ResolCons BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox +#define ResolCons_hxx +#define AppParCurves_Function BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox +#define AppParCurves_Function_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx b/src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx new file mode 100644 index 0000000000..8103a0aa6b --- /dev/null +++ b/src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx @@ -0,0 +1,175 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile +#define _BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class StdFail_NotDone; +class Standard_OutOfRange; +class Standard_DimensionError; +class Standard_NoSuchObject; +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class AppParCurves_MultiCurve; +class AppParCurves_MultiBSpCurve; +class math_Matrix; + + + +class BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& 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); + + Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol); + + Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& 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); + + Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& 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); + + Standard_EXPORT void Perform (const math_Vector& Parameters); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const Standard_Real l1, const Standard_Real l2); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const Standard_Real l1, const Standard_Real l2); + + 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); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiCurve BezierValue(); + + Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue(); + + Standard_EXPORT const math_Matrix& FunctionMatrix() const; + + Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const; + + Standard_EXPORT void ErrorGradient (math_Vector& Grad, Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT const math_Matrix& Distance(); + + Standard_EXPORT void Error (Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT Standard_Real FirstLambda() const; + + Standard_EXPORT Standard_Real LastLambda() const; + + Standard_EXPORT const math_Matrix& Points() const; + + Standard_EXPORT const math_Matrix& Poles() const; + + Standard_EXPORT const math_IntegerVector& KIndex() const; + + + + +protected: + + + Standard_EXPORT void Init (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint); + + Standard_EXPORT Standard_Integer NbBColumns (const BRepApprox_TheMultiLineOfApprox& SSP) const; + + Standard_EXPORT Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const; + + Standard_EXPORT Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const; + + Standard_EXPORT void Affect (const BRepApprox_TheMultiLineOfApprox& 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); + + Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Vector& TheB); + + Standard_EXPORT void MakeTAA (math_Vector& TheA); + + 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 // _BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx b/src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx new file mode 100644 index 0000000000..c24e508165 --- /dev/null +++ b/src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx @@ -0,0 +1,37 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define ToolLine BRepApprox_TheMultiLineToolOfApprox +#define ToolLine_hxx +#define AppParCurves_LeastSquare BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox +#define AppParCurves_LeastSquare_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx b/src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx new file mode 100644 index 0000000000..17d0c85207 --- /dev/null +++ b/src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx @@ -0,0 +1,175 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile +#define _BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class StdFail_NotDone; +class Standard_OutOfRange; +class Standard_DimensionError; +class Standard_NoSuchObject; +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class AppParCurves_MultiCurve; +class AppParCurves_MultiBSpCurve; +class math_Matrix; + + + +class BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& 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); + + Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const AppParCurves_Constraint FirstCons, const AppParCurves_Constraint LastCons, const Standard_Integer NbPol); + + Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& 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); + + Standard_EXPORT BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& 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); + + Standard_EXPORT void Perform (const math_Vector& Parameters); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const Standard_Real l1, const Standard_Real l2); + + Standard_EXPORT void Perform (const math_Vector& Parameters, const math_Vector& V1t, const math_Vector& V2t, const Standard_Real l1, const Standard_Real l2); + + 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); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT AppParCurves_MultiCurve BezierValue(); + + Standard_EXPORT const AppParCurves_MultiBSpCurve& BSplineValue(); + + Standard_EXPORT const math_Matrix& FunctionMatrix() const; + + Standard_EXPORT const math_Matrix& DerivativeFunctionMatrix() const; + + Standard_EXPORT void ErrorGradient (math_Vector& Grad, Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT const math_Matrix& Distance(); + + Standard_EXPORT void Error (Standard_Real& F, Standard_Real& MaxE3d, Standard_Real& MaxE2d); + + Standard_EXPORT Standard_Real FirstLambda() const; + + Standard_EXPORT Standard_Real LastLambda() const; + + Standard_EXPORT const math_Matrix& Points() const; + + Standard_EXPORT const math_Matrix& Poles() const; + + Standard_EXPORT const math_IntegerVector& KIndex() const; + + + + +protected: + + + Standard_EXPORT void Init (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint); + + Standard_EXPORT Standard_Integer NbBColumns (const BRepApprox_TheMultiLineOfApprox& SSP) const; + + Standard_EXPORT Standard_Integer TheFirstPoint (const AppParCurves_Constraint FirstCons, const Standard_Integer FirstPoint) const; + + Standard_EXPORT Standard_Integer TheLastPoint (const AppParCurves_Constraint LastCons, const Standard_Integer LastPoint) const; + + Standard_EXPORT void Affect (const BRepApprox_TheMultiLineOfApprox& 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); + + Standard_EXPORT void MakeTAA (math_Vector& TheA, math_Vector& TheB); + + Standard_EXPORT void MakeTAA (math_Vector& TheA); + + 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 // _BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_0.cxx b/src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_0.cxx new file mode 100644 index 0000000000..49ad7805cf --- /dev/null +++ b/src/BRepApprox/BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_0.cxx @@ -0,0 +1,37 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define ToolLine BRepApprox_TheMultiLineToolOfApprox +#define ToolLine_hxx +#define AppParCurves_LeastSquare BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox +#define AppParCurves_LeastSquare_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx b/src/BRepApprox/BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx new file mode 100644 index 0000000000..2a48942a72 --- /dev/null +++ b/src/BRepApprox/BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx @@ -0,0 +1,100 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile +#define _BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class AppParCurves_MultiCurve; +class math_Matrix; + + + +class BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, AppParCurves_MultiCurve& SCurv, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& Constraints, const math_Matrix& Bern, const math_Matrix& DerivativeBern, const Standard_Real Tolerance = 1.0e-10); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT Standard_Real Error() const; + + Standard_EXPORT const math_Matrix& ConstraintMatrix() const; + + Standard_EXPORT const math_Vector& Duale() const; + + Standard_EXPORT const math_Matrix& ConstraintDerivative (const BRepApprox_TheMultiLineOfApprox& SSP, const math_Vector& Parameters, const Standard_Integer Deg, const math_Matrix& DA); + + Standard_EXPORT const math_Matrix& InverseMatrix() const; + + + + +protected: + + + Standard_EXPORT Standard_Integer NbConstraints (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints) const; + + Standard_EXPORT Standard_Integer NbColumns (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer Deg) const; + + + + +private: + + + + Standard_Boolean Done; + Standard_Real Err; + math_Matrix Cont; + math_Matrix DeCont; + math_Vector Secont; + math_Matrix CTCinv; + math_Vector Vardua; + Standard_Integer IncPass; + Standard_Integer IncTan; + Standard_Integer IncCurv; + TColStd_Array1OfInteger IPas; + TColStd_Array1OfInteger ITan; + TColStd_Array1OfInteger ICurv; + + +}; + + + + + + + +#endif // _BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx b/src/BRepApprox/BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx new file mode 100644 index 0000000000..382f8612dd --- /dev/null +++ b/src/BRepApprox/BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx @@ -0,0 +1,33 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define ToolLine BRepApprox_TheMultiLineToolOfApprox +#define ToolLine_hxx +#define AppParCurves_ResolConstraint BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox +#define AppParCurves_ResolConstraint_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx b/src/BRepApprox/BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx new file mode 100644 index 0000000000..82f00d667d --- /dev/null +++ b/src/BRepApprox/BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx @@ -0,0 +1,100 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile +#define _BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class AppParCurves_MultiCurve; +class math_Matrix; + + + +class BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& SSP, AppParCurves_MultiCurve& SCurv, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& Constraints, const math_Matrix& Bern, const math_Matrix& DerivativeBern, const Standard_Real Tolerance = 1.0e-10); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT Standard_Real Error() const; + + Standard_EXPORT const math_Matrix& ConstraintMatrix() const; + + Standard_EXPORT const math_Vector& Duale() const; + + Standard_EXPORT const math_Matrix& ConstraintDerivative (const BRepApprox_TheMultiLineOfApprox& SSP, const math_Vector& Parameters, const Standard_Integer Deg, const math_Matrix& DA); + + Standard_EXPORT const math_Matrix& InverseMatrix() const; + + + + +protected: + + + Standard_EXPORT Standard_Integer NbConstraints (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer FirstPoint, const Standard_Integer LastPoint, const Handle(AppParCurves_HArray1OfConstraintCouple)& TheConstraints) const; + + Standard_EXPORT Standard_Integer NbColumns (const BRepApprox_TheMultiLineOfApprox& SSP, const Standard_Integer Deg) const; + + + + +private: + + + + Standard_Boolean Done; + Standard_Real Err; + math_Matrix Cont; + math_Matrix DeCont; + math_Vector Secont; + math_Matrix CTCinv; + math_Vector Vardua; + Standard_Integer IncPass; + Standard_Integer IncTan; + Standard_Integer IncCurv; + TColStd_Array1OfInteger IPas; + TColStd_Array1OfInteger ITan; + TColStd_Array1OfInteger ICurv; + + +}; + + + + + + + +#endif // _BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_0.cxx b/src/BRepApprox/BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_0.cxx new file mode 100644 index 0000000000..2696f6494b --- /dev/null +++ b/src/BRepApprox/BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_0.cxx @@ -0,0 +1,33 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define ToolLine BRepApprox_TheMultiLineToolOfApprox +#define ToolLine_hxx +#define AppParCurves_ResolConstraint BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox +#define AppParCurves_ResolConstraint_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_SurfaceTool.cdl b/src/BRepApprox/BRepApprox_SurfaceTool.cdl deleted file mode 100644 index ad00acba66..0000000000 --- a/src/BRepApprox/BRepApprox_SurfaceTool.cdl +++ /dev/null @@ -1,239 +0,0 @@ --- 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. - -class SurfaceTool from BRepApprox - -uses - - Shape from GeomAbs, - SurfaceType from GeomAbs, - Pln from gp, - Cone from gp, - Cylinder from gp, - Sphere from gp, - Torus from gp, - Pnt from gp, - Vec from gp, - Array1OfReal from TColStd, - BezierSurface from Geom, - BSplineSurface from Geom, - HSurface from Adaptor3d, - HCurve from Adaptor3d, - Ax1 from gp, - Dir from gp, - Surface from BRepAdaptor - -raises - - NoSuchObject from Standard, - OutOfRange from Standard - -is - - FirstUParameter(myclass; S: Surface from BRepAdaptor) - ---C++: inline - returns Real from Standard; - - FirstVParameter(myclass; S: Surface from BRepAdaptor) - ---C++: inline - returns Real from Standard; - - LastUParameter(myclass; S: Surface from BRepAdaptor) - ---C++: inline - returns Real from Standard; - - LastVParameter(myclass; S: Surface from BRepAdaptor) - ---C++: inline - returns Real from Standard; - - - - NbUIntervals(myclass; S: Surface from BRepAdaptor; - Sh : Shape from GeomAbs) - ---C++: inline - returns Integer from Standard; - - NbVIntervals(myclass; S: Surface from BRepAdaptor; - Sh : Shape from GeomAbs) - ---C++: inline - returns Integer from Standard; - - - - UIntervals(myclass; S : Surface from BRepAdaptor; - T : in out Array1OfReal from TColStd; - Sh : Shape from GeomAbs); - ---C++: inline - - VIntervals(myclass; S : Surface from BRepAdaptor; - T : in out Array1OfReal from TColStd; - Sh : Shape from GeomAbs) ; - ---C++: inline - - - UTrim(myclass; S : Surface from BRepAdaptor; - First, Last, Tol : Real) - ---C++: inline - returns HSurface from Adaptor3d - raises - OutOfRange from Standard; - ---Purpose: If >= - - VTrim(myclass; S : Surface from BRepAdaptor; - First, Last, Tol : Real) - ---C++: inline - returns HSurface from Adaptor3d - raises - OutOfRange from Standard; - ---Purpose: If >= - - - IsUClosed(myclass; S: Surface from BRepAdaptor) - ---C++: inline - returns Boolean from Standard; - - IsVClosed(myclass; S: Surface from BRepAdaptor) - ---C++: inline - returns Boolean from Standard; - - - IsUPeriodic(myclass; S: Surface from BRepAdaptor) - ---C++: inline - returns Boolean from Standard; - - UPeriod(myclass; S: Surface from BRepAdaptor) - ---C++: inline - returns Real from Standard; - - IsVPeriodic(myclass; S: Surface from BRepAdaptor) - ---C++: inline - returns Boolean from Standard; - - VPeriod(myclass; S: Surface from BRepAdaptor) - ---C++: inline - returns Real from Standard; - - - - Value(myclass; S : Surface from BRepAdaptor; - u,v : Real from Standard) - ---C++: inline - returns Pnt from gp; - - D0(myclass; S : Surface from BRepAdaptor; - u,v : Real from Standard; - P : out Pnt from gp); - ---C++: inline - - D1(myclass; S : Surface from BRepAdaptor; - u,v : Real from Standard; - P : out Pnt from gp; - D1u,D1v: out Vec from gp); - ---C++: inline - - D2(myclass; S : Surface from BRepAdaptor; - u,v : Real from Standard; - P : out Pnt from gp; - D1U,D1V,D2U,D2V,D2UV: out Vec from gp); - ---C++: inline - - D3(myclass; S : Surface from BRepAdaptor; - u,v : Real from Standard; - P : out Pnt from gp; - D1U, D1V, D2U, D2V, D2UV, D3U, D3V, D3UUV, D3UVV: out Vec from gp); - ---C++: inline - - DN(myclass; S : Surface from BRepAdaptor; - u,v : Real from Standard; - Nu,Nv : Integer from Standard) - ---C++: inline - returns Vec from gp; - - - - UResolution(myclass; S:Surface from BRepAdaptor; R3d: Real from Standard) - ---C++: inline - returns Real from Standard; - - VResolution(myclass; S:Surface from BRepAdaptor; R3d: Real from Standard) - ---C++: inline - returns Real from Standard; - - GetType(myclass; S: Surface from BRepAdaptor) - ---C++: inline - returns SurfaceType from GeomAbs; - - - Plane(myclass; S: Surface from BRepAdaptor) - ---C++: inline - returns Pln from gp; - - Cylinder(myclass; S : Surface from BRepAdaptor) returns Cylinder from gp - raises NoSuchObject from Standard; - ---C++: inline - - - Cone(myclass; S : Surface from BRepAdaptor) returns Cone from gp - raises NoSuchObject from Standard; - ---C++: inline - - Torus(myclass; S : Surface from BRepAdaptor) returns Torus from gp - raises NoSuchObject from Standard; - ---C++: inline - - - Sphere(myclass; S : Surface from BRepAdaptor) returns Sphere from gp - raises NoSuchObject from Standard; - ---C++: inline - - Bezier(myclass; S : Surface from BRepAdaptor) returns BezierSurface from Geom - raises NoSuchObject from Standard; - ---C++: inline - - BSpline(myclass; S : Surface from BRepAdaptor) returns BSplineSurface from Geom - raises NoSuchObject from Standard; - ---C++: inline - - AxeOfRevolution(myclass; S: Surface from BRepAdaptor) returns Ax1 from gp - raises NoSuchObject from Standard; - ---C++: inline - - Direction(myclass; S: Surface from BRepAdaptor) returns Dir from gp - raises NoSuchObject from Standard; - ---C++: inline - - BasisCurve(myclass; S:Surface from BRepAdaptor) returns HCurve from Adaptor3d - raises NoSuchObject from Standard; - ---C++: inline - - --------------------------------------------------------------------------------- - - - NbSamplesU(myclass; S : Surface from BRepAdaptor) returns Integer from Standard; - - - NbSamplesV(myclass; S : Surface from BRepAdaptor) returns Integer from Standard; - - - NbSamplesU(myclass; S : Surface from BRepAdaptor; u1,u2: Real from Standard) returns Integer from Standard; - - - NbSamplesV(myclass; S : Surface from BRepAdaptor; v1,v2: Real from Standard) returns Integer from Standard; - - - -end SurfaceTool from BRepApprox ; diff --git a/src/BRepApprox/BRepApprox_SurfaceTool.cxx b/src/BRepApprox/BRepApprox_SurfaceTool.cxx index 15ec9936cf..b74bc6eaf0 100644 --- a/src/BRepApprox/BRepApprox_SurfaceTool.cxx +++ b/src/BRepApprox/BRepApprox_SurfaceTool.cxx @@ -14,7 +14,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include "BRepApprox_SurfaceTool.ixx" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include Standard_Integer BRepApprox_SurfaceTool::NbSamplesU (const BRepAdaptor_Surface&) { diff --git a/src/BRepApprox/BRepApprox_SurfaceTool.hxx b/src/BRepApprox/BRepApprox_SurfaceTool.hxx new file mode 100644 index 0000000000..0aa2504da2 --- /dev/null +++ b/src/BRepApprox/BRepApprox_SurfaceTool.hxx @@ -0,0 +1,162 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_NoSuchObject; +class Standard_OutOfRange; +class BRepAdaptor_Surface; +class Adaptor3d_HSurface; +class gp_Pnt; +class gp_Vec; +class Geom_BezierSurface; +class Geom_BSplineSurface; +class Adaptor3d_HCurve; + + + +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_HSurface) UTrim (const BRepAdaptor_Surface& S, const Standard_Real First, const Standard_Real Last, const Standard_Real Tol); + + //! If >= + static Handle(Adaptor3d_HSurface) 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_HCurve) 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 + + + + + +#endif // _BRepApprox_SurfaceTool_HeaderFile diff --git a/src/BRepApprox/BRepApprox_TheComputeLineBezierOfApprox.hxx b/src/BRepApprox/BRepApprox_TheComputeLineBezierOfApprox.hxx new file mode 100644 index 0000000000..3a7e3e853e --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheComputeLineBezierOfApprox.hxx @@ -0,0 +1,155 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_TheComputeLineBezierOfApprox_HeaderFile +#define _BRepApprox_TheComputeLineBezierOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class BRepApprox_MyGradientOfTheComputeLineBezierOfApprox; +class BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox; +class BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox; +class BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox; +class BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox; +class AppParCurves_MultiCurve; +class AppParCurves_MultiBSpCurve; + + + +class BRepApprox_TheComputeLineBezierOfApprox +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_TheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-3, const Standard_Real Tolerance2d = 1.0e-6, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT BRepApprox_TheComputeLineBezierOfApprox(const BRepApprox_TheMultiLineOfApprox& Line, const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT BRepApprox_TheComputeLineBezierOfApprox(const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT BRepApprox_TheComputeLineBezierOfApprox(const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT void Init (const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT void Perform (const BRepApprox_TheMultiLineOfApprox& Line); + + Standard_EXPORT void SetDegrees (const Standard_Integer degreemin, const Standard_Integer degreemax); + + Standard_EXPORT void SetTolerances (const Standard_Real Tolerance3d, const Standard_Real Tolerance2d); + + Standard_EXPORT void SetConstraints (const AppParCurves_Constraint firstC, const AppParCurves_Constraint lastC); + + Standard_EXPORT Standard_Boolean IsAllApproximated() const; + + Standard_EXPORT Standard_Boolean IsToleranceReached() const; + + Standard_EXPORT void Error (const Standard_Integer Index, Standard_Real& tol3d, Standard_Real& tol2d) const; + + Standard_EXPORT Standard_Integer NbMultiCurves() const; + + Standard_EXPORT const AppParCurves_MultiCurve& Value (const Standard_Integer Index = 1) const; + + Standard_EXPORT AppParCurves_MultiCurve& ChangeValue (const Standard_Integer Index = 1); + + Standard_EXPORT const AppParCurves_MultiBSpCurve& SplineValue(); + + Standard_EXPORT void Parametrization (Approx_ParametrizationType& partype) const; + + Standard_EXPORT const TColStd_Array1OfReal& Parameters (const Standard_Integer Index = 1) const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT Standard_Boolean Compute (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer fpt, const Standard_Integer lpt, math_Vector& Para, Standard_Real& TheTol3d, Standard_Real& TheTol2d); + + Standard_EXPORT Standard_Boolean ComputeCurve (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer firspt, const Standard_Integer lastpt); + + Standard_EXPORT void Parameters (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer firstP, const Standard_Integer LastP, math_Vector& TheParameters) const; + + Standard_EXPORT Standard_Real SearchFirstLambda (const BRepApprox_TheMultiLineOfApprox& Line, const math_Vector& Para, const math_Vector& V, const Standard_Integer index) const; + + Standard_EXPORT Standard_Real SearchLastLambda (const BRepApprox_TheMultiLineOfApprox& Line, const math_Vector& Para, const math_Vector& V, const Standard_Integer index) const; + + Standard_EXPORT void FirstTangencyVector (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer index, math_Vector& V) const; + + Standard_EXPORT void LastTangencyVector (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer index, math_Vector& V) const; + + + AppParCurves_SequenceOfMultiCurve myMultiCurves; + AppParCurves_MultiCurve TheMultiCurve; + AppParCurves_MultiBSpCurve myspline; + Standard_Boolean alldone; + Standard_Boolean tolreached; + Approx_ParametrizationType Par; + Handle(TColStd_HArray1OfReal) myParameters; + Handle(TColStd_HArray1OfReal) myfirstParam; + Approx_SequenceOfHArray1OfReal myPar; + TColStd_SequenceOfReal Tolers3d; + TColStd_SequenceOfReal Tolers2d; + Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints; + Standard_Integer mydegremin; + Standard_Integer mydegremax; + Standard_Real mytol3d; + Standard_Real mytol2d; + Standard_Real currenttol3d; + Standard_Real currenttol2d; + Standard_Boolean mycut; + Standard_Boolean mysquares; + Standard_Integer myitermax; + AppParCurves_Constraint myfirstC; + AppParCurves_Constraint mylastC; + Standard_Integer myMultiLineNb; + Standard_Boolean myIsClear; + + +}; + + + + + + + +#endif // _BRepApprox_TheComputeLineBezierOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_TheComputeLineBezierOfApprox_0.cxx b/src/BRepApprox/BRepApprox_TheComputeLineBezierOfApprox_0.cxx new file mode 100644 index 0000000000..5d97c88184 --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheComputeLineBezierOfApprox_0.cxx @@ -0,0 +1,55 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define LineTool BRepApprox_TheMultiLineToolOfApprox +#define LineTool_hxx +#define Approx_MyGradient BRepApprox_MyGradientOfTheComputeLineBezierOfApprox +#define Approx_MyGradient_hxx +#define Approx_ParLeastSquareOfMyGradient BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox +#define Approx_ParLeastSquareOfMyGradient_hxx +#define Approx_ResConstraintOfMyGradient BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox +#define Approx_ResConstraintOfMyGradient_hxx +#define Approx_ParFunctionOfMyGradient BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox +#define Approx_ParFunctionOfMyGradient_hxx +#define Approx_Gradient_BFGSOfMyGradient BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox +#define Approx_Gradient_BFGSOfMyGradient_hxx +#define Approx_ParLeastSquareOfMyGradient BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox +#define Approx_ParLeastSquareOfMyGradient_hxx +#define Approx_ResConstraintOfMyGradient BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox +#define Approx_ResConstraintOfMyGradient_hxx +#define Approx_ParFunctionOfMyGradient BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox +#define Approx_ParFunctionOfMyGradient_hxx +#define Approx_Gradient_BFGSOfMyGradient BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox +#define Approx_Gradient_BFGSOfMyGradient_hxx +#define Approx_ComputeLine BRepApprox_TheComputeLineBezierOfApprox +#define Approx_ComputeLine_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_TheComputeLineOfApprox.hxx b/src/BRepApprox/BRepApprox_TheComputeLineOfApprox.hxx new file mode 100644 index 0000000000..b48f01c07e --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheComputeLineOfApprox.hxx @@ -0,0 +1,167 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_TheComputeLineOfApprox_HeaderFile +#define _BRepApprox_TheComputeLineOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class BRepApprox_TheMultiLineOfApprox; +class BRepApprox_TheMultiLineToolOfApprox; +class BRepApprox_MyBSplGradientOfTheComputeLineOfApprox; +class BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox; +class BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox; +class BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox; +class BRepApprox_MyGradientbisOfTheComputeLineOfApprox; +class BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox; +class BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox; +class BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox; +class BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox; +class AppParCurves_MultiBSpCurve; +class AppParCurves_MultiCurve; + + + +class BRepApprox_TheComputeLineOfApprox +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_TheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-3, const Standard_Real Tolerance2d = 1.0e-6, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT BRepApprox_TheComputeLineOfApprox(const BRepApprox_TheMultiLineOfApprox& Line, const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT BRepApprox_TheComputeLineOfApprox(const math_Vector& Parameters, const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT BRepApprox_TheComputeLineOfApprox(const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT void Interpol (const BRepApprox_TheMultiLineOfApprox& Line); + + Standard_EXPORT void Init (const Standard_Integer degreemin = 4, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-03, const Standard_Real Tolerance2d = 1.0e-06, const Standard_Integer NbIterations = 5, const Standard_Boolean cutting = Standard_True, const Approx_ParametrizationType parametrization = Approx_ChordLength, const Standard_Boolean Squares = Standard_False); + + Standard_EXPORT void Perform (const BRepApprox_TheMultiLineOfApprox& Line); + + Standard_EXPORT void SetParameters (const math_Vector& ThePar); + + Standard_EXPORT void SetKnots (const TColStd_Array1OfReal& Knots); + + Standard_EXPORT void SetKnotsAndMultiplicities (const TColStd_Array1OfReal& Knots, const TColStd_Array1OfInteger& Mults); + + Standard_EXPORT void SetDegrees (const Standard_Integer degreemin, const Standard_Integer degreemax); + + Standard_EXPORT void SetTolerances (const Standard_Real Tolerance3d, const Standard_Real Tolerance2d); + + Standard_EXPORT void SetContinuity (const Standard_Integer C); + + Standard_EXPORT void SetConstraints (const AppParCurves_Constraint firstC, const AppParCurves_Constraint lastC); + + Standard_EXPORT Standard_Boolean IsAllApproximated() const; + + Standard_EXPORT Standard_Boolean IsToleranceReached() const; + + Standard_EXPORT void Error (Standard_Real& tol3d, Standard_Real& tol2d) const; + + Standard_EXPORT const AppParCurves_MultiBSpCurve& Value() const; + + Standard_EXPORT AppParCurves_MultiBSpCurve& ChangeValue(); + + Standard_EXPORT const TColStd_Array1OfReal& Parameters() const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT Standard_Boolean Compute (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer fpt, const Standard_Integer lpt, math_Vector& Para, const TColStd_Array1OfReal& Knots, TColStd_Array1OfInteger& Mults); + + Standard_EXPORT Standard_Boolean ComputeCurve (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer firspt, const Standard_Integer lastpt); + + Standard_EXPORT void Parameters (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer firstP, const Standard_Integer LastP, math_Vector& TheParameters) const; + + Standard_EXPORT Standard_Real SearchFirstLambda (const BRepApprox_TheMultiLineOfApprox& Line, const math_Vector& Para, const TColStd_Array1OfReal& Knots, const math_Vector& V, const Standard_Integer index) const; + + Standard_EXPORT Standard_Real SearchLastLambda (const BRepApprox_TheMultiLineOfApprox& Line, const math_Vector& Para, const TColStd_Array1OfReal& Knots, const math_Vector& V, const Standard_Integer index) const; + + Standard_EXPORT void TangencyVector (const BRepApprox_TheMultiLineOfApprox& Line, const AppParCurves_MultiCurve& C, const Standard_Real U, math_Vector& V) const; + + Standard_EXPORT void FirstTangencyVector (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer index, math_Vector& V) const; + + Standard_EXPORT void LastTangencyVector (const BRepApprox_TheMultiLineOfApprox& Line, const Standard_Integer index, math_Vector& V) const; + + Standard_EXPORT void FindRealConstraints (const BRepApprox_TheMultiLineOfApprox& Line); + + + AppParCurves_MultiBSpCurve TheMultiBSpCurve; + Standard_Boolean alldone; + Standard_Boolean tolreached; + Approx_ParametrizationType Par; + Handle(TColStd_HArray1OfReal) myParameters; + Handle(TColStd_HArray1OfReal) myfirstParam; + Handle(TColStd_HArray1OfReal) myknots; + Handle(TColStd_HArray1OfInteger) mymults; + Standard_Boolean myhasknots; + Standard_Boolean myhasmults; + Handle(AppParCurves_HArray1OfConstraintCouple) myConstraints; + Standard_Integer mydegremin; + Standard_Integer mydegremax; + Standard_Real mytol3d; + Standard_Real mytol2d; + Standard_Real currenttol3d; + Standard_Real currenttol2d; + Standard_Boolean mycut; + Standard_Boolean mysquares; + Standard_Integer myitermax; + AppParCurves_Constraint myfirstC; + AppParCurves_Constraint mylastC; + AppParCurves_Constraint realfirstC; + AppParCurves_Constraint reallastC; + Standard_Integer mycont; + Standard_Real mylambda1; + Standard_Real mylambda2; + + +}; + + + + + + + +#endif // _BRepApprox_TheComputeLineOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_TheComputeLineOfApprox_0.cxx b/src/BRepApprox/BRepApprox_TheComputeLineOfApprox_0.cxx new file mode 100644 index 0000000000..3252bd9c2c --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheComputeLineOfApprox_0.cxx @@ -0,0 +1,73 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define MultiLine BRepApprox_TheMultiLineOfApprox +#define MultiLine_hxx +#define LineTool BRepApprox_TheMultiLineToolOfApprox +#define LineTool_hxx +#define Approx_MyBSplGradient BRepApprox_MyBSplGradientOfTheComputeLineOfApprox +#define Approx_MyBSplGradient_hxx +#define Approx_BSpParLeastSquareOfMyBSplGradient BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox +#define Approx_BSpParLeastSquareOfMyBSplGradient_hxx +#define Approx_BSpParFunctionOfMyBSplGradient BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox +#define Approx_BSpParFunctionOfMyBSplGradient_hxx +#define Approx_BSpGradient_BFGSOfMyBSplGradient BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox +#define Approx_BSpGradient_BFGSOfMyBSplGradient_hxx +#define Approx_BSpParLeastSquareOfMyBSplGradient BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox +#define Approx_BSpParLeastSquareOfMyBSplGradient_hxx +#define Approx_BSpParFunctionOfMyBSplGradient BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox +#define Approx_BSpParFunctionOfMyBSplGradient_hxx +#define Approx_BSpGradient_BFGSOfMyBSplGradient BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox +#define Approx_BSpGradient_BFGSOfMyBSplGradient_hxx +#define Approx_MyGradientbis BRepApprox_MyGradientbisOfTheComputeLineOfApprox +#define Approx_MyGradientbis_hxx +#define Approx_ParLeastSquareOfMyGradientbis BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox +#define Approx_ParLeastSquareOfMyGradientbis_hxx +#define Approx_ResConstraintOfMyGradientbis BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox +#define Approx_ResConstraintOfMyGradientbis_hxx +#define Approx_ParFunctionOfMyGradientbis BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox +#define Approx_ParFunctionOfMyGradientbis_hxx +#define Approx_Gradient_BFGSOfMyGradientbis BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox +#define Approx_Gradient_BFGSOfMyGradientbis_hxx +#define Approx_ParLeastSquareOfMyGradientbis BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox +#define Approx_ParLeastSquareOfMyGradientbis_hxx +#define Approx_ResConstraintOfMyGradientbis BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox +#define Approx_ResConstraintOfMyGradientbis_hxx +#define Approx_ParFunctionOfMyGradientbis BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox +#define Approx_ParFunctionOfMyGradientbis_hxx +#define Approx_Gradient_BFGSOfMyGradientbis BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox +#define Approx_Gradient_BFGSOfMyGradientbis_hxx +#define Approx_BSplComputeLine BRepApprox_TheComputeLineOfApprox +#define Approx_BSplComputeLine_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx b/src/BRepApprox/BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx new file mode 100644 index 0000000000..b1e532d084 --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx @@ -0,0 +1,142 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_HeaderFile +#define _BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class StdFail_UndefinedDerivative; +class Standard_ConstructionError; +class BRepAdaptor_Surface; +class BRepApprox_SurfaceTool; +class math_Matrix; + + + +class BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox : public math_FunctionSetWithDerivatives +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox(); + + Standard_EXPORT BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox(const BRepAdaptor_Surface& S1, const BRepAdaptor_Surface& S2); + + Standard_EXPORT Standard_Integer NbVariables() const; + + Standard_EXPORT Standard_Integer NbEquations() const; + + Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F); + + Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D); + + Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D); + + Standard_EXPORT void ComputeParameters (const IntImp_ConstIsoparametric ChoixIso, const TColStd_Array1OfReal& Param, math_Vector& UVap, math_Vector& BornInf, math_Vector& BornSup, math_Vector& Tolerance); + + Standard_Real Root() const; + + gp_Pnt Point() const; + + Standard_EXPORT Standard_Boolean IsTangent (const math_Vector& UVap, TColStd_Array1OfReal& Param, IntImp_ConstIsoparametric& BestChoix); + + gp_Dir Direction() const; + + gp_Dir2d DirectionOnS1() const; + + gp_Dir2d DirectionOnS2() const; + + const BRepAdaptor_Surface& AuxillarSurface1() const; + + const BRepAdaptor_Surface& AuxillarSurface2() const; + + + + +protected: + + + + + +private: + + + + Standard_Address surf1; + Standard_Address surf2; + gp_Pnt pntsol1; + gp_Pnt pntsol2; + Standard_Real f[3]; + Standard_Boolean compute; + Standard_Boolean tangent; + Standard_Real tgduv[4]; + gp_Vec dpuv[4]; + IntImp_ConstIsoparametric chxIso; + Standard_Real paramConst; + Standard_Real ua0; + Standard_Real va0; + Standard_Real ua1; + Standard_Real va1; + Standard_Real ub0; + Standard_Real vb0; + Standard_Real ub1; + Standard_Real vb1; + Standard_Real ures1; + Standard_Real ures2; + Standard_Real vres1; + Standard_Real vres2; + + +}; + +#define ThePSurface BRepAdaptor_Surface +#define ThePSurface_hxx +#define ThePSurfaceTool BRepApprox_SurfaceTool +#define ThePSurfaceTool_hxx +#define IntImp_ZerParFunc BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox +#define IntImp_ZerParFunc_hxx + +#include + +#undef ThePSurface +#undef ThePSurface_hxx +#undef ThePSurfaceTool +#undef ThePSurfaceTool_hxx +#undef IntImp_ZerParFunc +#undef IntImp_ZerParFunc_hxx + + + + +#endif // _BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_0.cxx b/src/BRepApprox/BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_0.cxx new file mode 100644 index 0000000000..6d28e71f90 --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_0.cxx @@ -0,0 +1,33 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include + + +#define ThePSurface BRepAdaptor_Surface +#define ThePSurface_hxx +#define ThePSurfaceTool BRepApprox_SurfaceTool +#define ThePSurfaceTool_hxx +#define IntImp_ZerParFunc BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox +#define IntImp_ZerParFunc_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_TheImpPrmSvSurfacesOfApprox.hxx b/src/BRepApprox/BRepApprox_TheImpPrmSvSurfacesOfApprox.hxx new file mode 100644 index 0000000000..6e4f176702 --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheImpPrmSvSurfacesOfApprox.hxx @@ -0,0 +1,106 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_TheImpPrmSvSurfacesOfApprox_HeaderFile +#define _BRepApprox_TheImpPrmSvSurfacesOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class BRepAdaptor_Surface; +class BRepApprox_SurfaceTool; +class IntSurf_Quadric; +class IntSurf_QuadricTool; +class BRepApprox_ApproxLine; +class BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox; +class gp_Pnt; +class gp_Vec; +class gp_Vec2d; + + + +class BRepApprox_TheImpPrmSvSurfacesOfApprox : public ApproxInt_SvSurfaces +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_TheImpPrmSvSurfacesOfApprox(const BRepAdaptor_Surface& Surf1, const IntSurf_Quadric& Surf2); + + Standard_EXPORT BRepApprox_TheImpPrmSvSurfacesOfApprox(const IntSurf_Quadric& Surf1, const BRepAdaptor_Surface& Surf2); + + Standard_EXPORT Standard_Boolean Compute (Standard_Real& u1, Standard_Real& v1, Standard_Real& u2, Standard_Real& v2, gp_Pnt& Pt, gp_Vec& Tg, gp_Vec2d& Tguv1, gp_Vec2d& Tguv2); + + Standard_EXPORT void Pnt (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Pnt& P); + + Standard_EXPORT Standard_Boolean Tangency (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec& Tg); + + Standard_EXPORT Standard_Boolean TangencyOnSurf1 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg); + + Standard_EXPORT Standard_Boolean TangencyOnSurf2 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg); + + + + +protected: + + + + + +private: + + + + gp_Pnt2d MyParOnS1; + gp_Pnt2d MyParOnS2; + gp_Pnt MyPnt; + gp_Vec2d MyTguv1; + gp_Vec2d MyTguv2; + gp_Vec MyTg; + Standard_Boolean MyIsTangent; + Standard_Boolean MyHasBeenComputed; + gp_Pnt2d MyParOnS1bis; + gp_Pnt2d MyParOnS2bis; + gp_Pnt MyPntbis; + gp_Vec2d MyTguv1bis; + gp_Vec2d MyTguv2bis; + gp_Vec MyTgbis; + Standard_Boolean MyIsTangentbis; + Standard_Boolean MyHasBeenComputedbis; + Standard_Boolean MyImplicitFirst; + BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox MyZerImpFunc; + + +}; + + + + + + + +#endif // _BRepApprox_TheImpPrmSvSurfacesOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_TheImpPrmSvSurfacesOfApprox_0.cxx b/src/BRepApprox/BRepApprox_TheImpPrmSvSurfacesOfApprox_0.cxx new file mode 100644 index 0000000000..b1c7bfe43e --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheImpPrmSvSurfacesOfApprox_0.cxx @@ -0,0 +1,46 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define ThePSurface BRepAdaptor_Surface +#define ThePSurface_hxx +#define ThePSurfaceTool BRepApprox_SurfaceTool +#define ThePSurfaceTool_hxx +#define TheISurface IntSurf_Quadric +#define TheISurface_hxx +#define TheISurfaceTool IntSurf_QuadricTool +#define TheISurfaceTool_hxx +#define Handle_TheLine Handle(BRepApprox_ApproxLine) +#define TheLine BRepApprox_ApproxLine +#define TheLine_hxx +#define ApproxInt_TheZerImpFunc BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox +#define ApproxInt_TheZerImpFunc_hxx +#define ApproxInt_ImpPrmSvSurfaces BRepApprox_TheImpPrmSvSurfacesOfApprox +#define ApproxInt_ImpPrmSvSurfaces_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx b/src/BRepApprox/BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx new file mode 100644 index 0000000000..087c49825e --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx @@ -0,0 +1,142 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_TheInt2SOfThePrmPrmSvSurfacesOfApprox_HeaderFile +#define _BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class StdFail_NotDone; +class Standard_DomainError; +class Standard_ConstructionError; +class StdFail_UndefinedDerivative; +class BRepAdaptor_Surface; +class BRepApprox_SurfaceTool; +class BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox; +class math_FunctionSetRoot; +class IntSurf_PntOn2S; +class gp_Dir; +class gp_Dir2d; + + + +class BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox(); + + Standard_EXPORT BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox(const TColStd_Array1OfReal& Param, const BRepAdaptor_Surface& S1, const BRepAdaptor_Surface& S2, const Standard_Real TolTangency); + + Standard_EXPORT BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox(const BRepAdaptor_Surface& S1, const BRepAdaptor_Surface& S2, const Standard_Real TolTangency); + + Standard_EXPORT IntImp_ConstIsoparametric Perform (const TColStd_Array1OfReal& Param, math_FunctionSetRoot& Rsnld); + + Standard_EXPORT IntImp_ConstIsoparametric Perform (const TColStd_Array1OfReal& Param, math_FunctionSetRoot& Rsnld, const IntImp_ConstIsoparametric ChoixIso); + + Standard_Boolean IsDone() const; + + Standard_Boolean IsEmpty() const; + + const IntSurf_PntOn2S& Point() const; + + Standard_Boolean IsTangent() const; + + const gp_Dir& Direction() const; + + const gp_Dir2d& DirectionOnS1() const; + + const gp_Dir2d& DirectionOnS2() const; + + BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox& Function(); + + IntSurf_PntOn2S& ChangePoint(); + + + + +protected: + + + + + +private: + + + + Standard_Boolean done; + Standard_Boolean empty; + IntSurf_PntOn2S pint; + Standard_Boolean tangent; + gp_Dir d3d; + gp_Dir2d d2d1; + gp_Dir2d d2d2; + BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox myZerParFunc; + Standard_Real tol; + Standard_Real ua0; + Standard_Real va0; + Standard_Real ua1; + Standard_Real va1; + Standard_Real ub0; + Standard_Real vb0; + Standard_Real ub1; + Standard_Real vb1; + Standard_Real ures1; + Standard_Real ures2; + Standard_Real vres1; + Standard_Real vres2; + + +}; + +#define ThePSurface BRepAdaptor_Surface +#define ThePSurface_hxx +#define ThePSurfaceTool BRepApprox_SurfaceTool +#define ThePSurfaceTool_hxx +#define IntImp_TheFunction BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox +#define IntImp_TheFunction_hxx +#define IntImp_Int2S BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox +#define IntImp_Int2S_hxx + +#include + +#undef ThePSurface +#undef ThePSurface_hxx +#undef ThePSurfaceTool +#undef ThePSurfaceTool_hxx +#undef IntImp_TheFunction +#undef IntImp_TheFunction_hxx +#undef IntImp_Int2S +#undef IntImp_Int2S_hxx + + + + +#endif // _BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_0.cxx b/src/BRepApprox/BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_0.cxx new file mode 100644 index 0000000000..af92d6c290 --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_0.cxx @@ -0,0 +1,41 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define ThePSurface BRepAdaptor_Surface +#define ThePSurface_hxx +#define ThePSurfaceTool BRepApprox_SurfaceTool +#define ThePSurfaceTool_hxx +#define IntImp_TheFunction BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox +#define IntImp_TheFunction_hxx +#define IntImp_Int2S BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox +#define IntImp_Int2S_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_TheMultiLineOfApprox.hxx b/src/BRepApprox/BRepApprox_TheMultiLineOfApprox.hxx new file mode 100644 index 0000000000..7bbdd0cc80 --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheMultiLineOfApprox.hxx @@ -0,0 +1,119 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_TheMultiLineOfApprox_HeaderFile +#define _BRepApprox_TheMultiLineOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class BRepApprox_ApproxLine; +class ApproxInt_SvSurfaces; + + + +class BRepApprox_TheMultiLineOfApprox +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_TheMultiLineOfApprox(const Handle(BRepApprox_ApproxLine)& line, const Standard_Address PtrSvSurfaces, const Standard_Integer NbP3d, const Standard_Integer NbP2d, const Standard_Real xo, const Standard_Real ax, const Standard_Real yo, const Standard_Real ay, const Standard_Real zo, const Standard_Real az, const Standard_Real u1o, const Standard_Real a1u, const Standard_Real v1o, const Standard_Real a1v, const Standard_Real u2o, const Standard_Real a2u, const Standard_Real v2o, const Standard_Real a2v, const Standard_Boolean P2DOnFirst, const Standard_Integer IndMin = 0, const Standard_Integer IndMax = 0); + + Standard_EXPORT BRepApprox_TheMultiLineOfApprox(const Handle(BRepApprox_ApproxLine)& line, const Standard_Integer NbP3d, const Standard_Integer NbP2d, const Standard_Real xo, const Standard_Real ax, const Standard_Real yo, const Standard_Real ay, const Standard_Real zo, const Standard_Real az, const Standard_Real u1o, const Standard_Real a1u, const Standard_Real v1o, const Standard_Real a1v, const Standard_Real u2o, const Standard_Real a2u, const Standard_Real v2o, const Standard_Real a2v, const Standard_Boolean P2DOnFirst, const Standard_Integer IndMin = 0, const Standard_Integer IndMax = 0); + + Standard_EXPORT Standard_Integer FirstPoint() const; + + Standard_EXPORT Standard_Integer LastPoint() const; + + Standard_EXPORT Standard_Integer NbP2d() const; + + Standard_EXPORT Standard_Integer NbP3d() const; + + Standard_EXPORT Approx_Status WhatStatus() const; + + Standard_EXPORT void Value (const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt) const; + + Standard_EXPORT void Value (const Standard_Integer MPointIndex, TColgp_Array1OfPnt2d& tabPt2d) const; + + Standard_EXPORT void Value (const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt, TColgp_Array1OfPnt2d& tabPt2d) const; + + Standard_EXPORT Standard_Boolean Tangency (const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV) const; + + Standard_EXPORT Standard_Boolean Tangency (const Standard_Integer MPointIndex, TColgp_Array1OfVec2d& tabV2d) const; + + Standard_EXPORT Standard_Boolean Tangency (const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV, TColgp_Array1OfVec2d& tabV2d) const; + + Standard_EXPORT BRepApprox_TheMultiLineOfApprox MakeMLBetween (const Standard_Integer Low, const Standard_Integer High, const Standard_Integer NbPointsToInsert) const; + + Standard_EXPORT void Dump() const; + + + + +protected: + + + + + +private: + + + + Standard_Address PtrOnmySvSurfaces; + Handle(BRepApprox_ApproxLine) myLine; + Standard_Integer indicemin; + Standard_Integer indicemax; + Standard_Integer nbp3d; + Standard_Integer nbp2d; + Standard_Boolean p2donfirst; + Standard_Real Xo; + Standard_Real Ax; + Standard_Real Yo; + Standard_Real Ay; + Standard_Real Zo; + Standard_Real Az; + Standard_Real U1o; + Standard_Real A1u; + Standard_Real V1o; + Standard_Real A1v; + Standard_Real U2o; + Standard_Real A2u; + Standard_Real V2o; + Standard_Real A2v; + + +}; + + + + + + + +#endif // _BRepApprox_TheMultiLineOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_TheMultiLineOfApprox_0.cxx b/src/BRepApprox/BRepApprox_TheMultiLineOfApprox_0.cxx new file mode 100644 index 0000000000..94e975c8ab --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheMultiLineOfApprox_0.cxx @@ -0,0 +1,31 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include + + +#define Handle_TheLine Handle(BRepApprox_ApproxLine) +#define TheLine BRepApprox_ApproxLine +#define TheLine_hxx +#define TheSvSurfaces ApproxInt_SvSurfaces +#define TheSvSurfaces_hxx +#define ApproxInt_MultiLine BRepApprox_TheMultiLineOfApprox +#define ApproxInt_MultiLine_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_TheMultiLineToolOfApprox.hxx b/src/BRepApprox/BRepApprox_TheMultiLineToolOfApprox.hxx new file mode 100644 index 0000000000..6c9f9b35d6 --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheMultiLineToolOfApprox.hxx @@ -0,0 +1,112 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_TheMultiLineToolOfApprox_HeaderFile +#define _BRepApprox_TheMultiLineToolOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class BRepApprox_TheMultiLineOfApprox; +class ApproxInt_SvSurfaces; + + + +class BRepApprox_TheMultiLineToolOfApprox +{ +public: + + DEFINE_STANDARD_ALLOC + + + static Standard_Integer FirstPoint (const BRepApprox_TheMultiLineOfApprox& ML); + + static Standard_Integer LastPoint (const BRepApprox_TheMultiLineOfApprox& ML); + + static Standard_Integer NbP2d (const BRepApprox_TheMultiLineOfApprox& ML); + + static Standard_Integer NbP3d (const BRepApprox_TheMultiLineOfApprox& ML); + + static void Value (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt); + + static void Value (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt2d& tabPt2d); + + static void Value (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfPnt& tabPt, TColgp_Array1OfPnt2d& tabPt2d); + + static Standard_Boolean Tangency (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV); + + static Standard_Boolean Tangency (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec2d& tabV2d); + + static Standard_Boolean Tangency (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV, TColgp_Array1OfVec2d& tabV2d); + + static Standard_Boolean Curvature (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV); + + static Standard_Boolean Curvature (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec2d& tabV2d); + + static Standard_Boolean Curvature (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer MPointIndex, TColgp_Array1OfVec& tabV, TColgp_Array1OfVec2d& tabV2d); + + static BRepApprox_TheMultiLineOfApprox MakeMLBetween (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer I1, const Standard_Integer I2, const Standard_Integer NbPMin); + + static Approx_Status WhatStatus (const BRepApprox_TheMultiLineOfApprox& ML, const Standard_Integer I1, const Standard_Integer I2); + + Standard_EXPORT static void Dump (const BRepApprox_TheMultiLineOfApprox& ML); + + + + +protected: + + + + + +private: + + + + + +}; + +#define TheMultiLine BRepApprox_TheMultiLineOfApprox +#define TheMultiLine_hxx +#define TheMultiMPoint ApproxInt_SvSurfaces +#define TheMultiMPoint_hxx +#define ApproxInt_MultiLineTool BRepApprox_TheMultiLineToolOfApprox +#define ApproxInt_MultiLineTool_hxx + +#include + +#undef TheMultiLine +#undef TheMultiLine_hxx +#undef TheMultiMPoint +#undef TheMultiMPoint_hxx +#undef ApproxInt_MultiLineTool +#undef ApproxInt_MultiLineTool_hxx + + + + +#endif // _BRepApprox_TheMultiLineToolOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_TheMultiLineToolOfApprox_0.cxx b/src/BRepApprox/BRepApprox_TheMultiLineToolOfApprox_0.cxx new file mode 100644 index 0000000000..33680ddb67 --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheMultiLineToolOfApprox_0.cxx @@ -0,0 +1,30 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include + + +#define TheMultiLine BRepApprox_TheMultiLineOfApprox +#define TheMultiLine_hxx +#define TheMultiMPoint ApproxInt_SvSurfaces +#define TheMultiMPoint_hxx +#define ApproxInt_MultiLineTool BRepApprox_TheMultiLineToolOfApprox +#define ApproxInt_MultiLineTool_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_ThePrmPrmSvSurfacesOfApprox.hxx b/src/BRepApprox/BRepApprox_ThePrmPrmSvSurfacesOfApprox.hxx new file mode 100644 index 0000000000..dc7efe1ae8 --- /dev/null +++ b/src/BRepApprox/BRepApprox_ThePrmPrmSvSurfacesOfApprox.hxx @@ -0,0 +1,102 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_ThePrmPrmSvSurfacesOfApprox_HeaderFile +#define _BRepApprox_ThePrmPrmSvSurfacesOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class BRepAdaptor_Surface; +class BRepApprox_SurfaceTool; +class BRepApprox_ApproxLine; +class BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox; +class BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox; +class gp_Pnt; +class gp_Vec; +class gp_Vec2d; + + + +class BRepApprox_ThePrmPrmSvSurfacesOfApprox : public ApproxInt_SvSurfaces +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_ThePrmPrmSvSurfacesOfApprox(const BRepAdaptor_Surface& Surf1, const BRepAdaptor_Surface& Surf2); + + Standard_EXPORT Standard_Boolean Compute (Standard_Real& u1, Standard_Real& v1, Standard_Real& u2, Standard_Real& v2, gp_Pnt& Pt, gp_Vec& Tg, gp_Vec2d& Tguv1, gp_Vec2d& Tguv2); + + Standard_EXPORT void Pnt (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Pnt& P); + + Standard_EXPORT Standard_Boolean Tangency (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec& Tg); + + Standard_EXPORT Standard_Boolean TangencyOnSurf1 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg); + + Standard_EXPORT Standard_Boolean TangencyOnSurf2 (const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec2d& Tg); + + + + +protected: + + + + + +private: + + + + gp_Pnt2d MyParOnS1; + gp_Pnt2d MyParOnS2; + gp_Pnt MyPnt; + gp_Vec2d MyTguv1; + gp_Vec2d MyTguv2; + gp_Vec MyTg; + Standard_Boolean MyIsTangent; + Standard_Boolean MyHasBeenComputed; + gp_Pnt2d MyParOnS1bis; + gp_Pnt2d MyParOnS2bis; + gp_Pnt MyPntbis; + gp_Vec2d MyTguv1bis; + gp_Vec2d MyTguv2bis; + gp_Vec MyTgbis; + Standard_Boolean MyIsTangentbis; + Standard_Boolean MyHasBeenComputedbis; + BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox MyIntersectionOn2S; + + +}; + + + + + + + +#endif // _BRepApprox_ThePrmPrmSvSurfacesOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_ThePrmPrmSvSurfacesOfApprox_0.cxx b/src/BRepApprox/BRepApprox_ThePrmPrmSvSurfacesOfApprox_0.cxx new file mode 100644 index 0000000000..f9ede77dfe --- /dev/null +++ b/src/BRepApprox/BRepApprox_ThePrmPrmSvSurfacesOfApprox_0.cxx @@ -0,0 +1,45 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include +#include + + +#define ThePSurface BRepAdaptor_Surface +#define ThePSurface_hxx +#define ThePSurfaceTool BRepApprox_SurfaceTool +#define ThePSurfaceTool_hxx +#define Handle_TheLine Handle(BRepApprox_ApproxLine) +#define TheLine BRepApprox_ApproxLine +#define TheLine_hxx +#define ApproxInt_TheInt2S BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox +#define ApproxInt_TheInt2S_hxx +#define ApproxInt_TheFunctionOfTheInt2S BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox +#define ApproxInt_TheFunctionOfTheInt2S_hxx +#define ApproxInt_TheFunctionOfTheInt2S BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox +#define ApproxInt_TheFunctionOfTheInt2S_hxx +#define ApproxInt_PrmPrmSvSurfaces BRepApprox_ThePrmPrmSvSurfacesOfApprox +#define ApproxInt_PrmPrmSvSurfaces_hxx +#include + diff --git a/src/BRepApprox/BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx b/src/BRepApprox/BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx new file mode 100644 index 0000000000..c045382650 --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx @@ -0,0 +1,151 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_HeaderFile +#define _BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class StdFail_UndefinedDerivative; +class BRepAdaptor_Surface; +class BRepApprox_SurfaceTool; +class IntSurf_Quadric; +class IntSurf_QuadricTool; +class math_Matrix; +class gp_Pnt; +class gp_Vec; +class gp_Dir2d; + + + +class BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox : public math_FunctionSetWithDerivatives +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox(); + + Standard_EXPORT BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox(const BRepAdaptor_Surface& PS, const IntSurf_Quadric& IS); + + Standard_EXPORT BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox(const IntSurf_Quadric& IS); + + void Set (const BRepAdaptor_Surface& PS); + + void SetImplicitSurface (const IntSurf_Quadric& IS); + + void Set (const Standard_Real Tolerance); + + Standard_EXPORT Standard_Integer NbVariables() const; + + Standard_EXPORT Standard_Integer NbEquations() const; + + Standard_EXPORT Standard_Boolean Value (const math_Vector& X, math_Vector& F); + + Standard_EXPORT Standard_Boolean Derivatives (const math_Vector& X, math_Matrix& D); + + Standard_EXPORT Standard_Boolean Values (const math_Vector& X, math_Vector& F, math_Matrix& D); + + Standard_Real Root() const; + + Standard_Real Tolerance() const; + + const gp_Pnt& Point() const; + + Standard_EXPORT Standard_Boolean IsTangent(); + + const gp_Vec& Direction3d(); + + const gp_Dir2d& Direction2d(); + + const BRepAdaptor_Surface& PSurface() const; + + const IntSurf_Quadric& ISurface() const; + + + + +protected: + + + + + +private: + + + + Standard_Address surf; + Standard_Address func; + Standard_Real u; + Standard_Real v; + Standard_Real tol; + gp_Pnt pntsol; + Standard_Real valf; + Standard_Boolean computed; + Standard_Boolean tangent; + Standard_Real tgdu; + Standard_Real tgdv; + gp_Vec gradient; + Standard_Boolean derived; + gp_Vec d1u; + gp_Vec d1v; + gp_Vec d3d; + gp_Dir2d d2d; + + +}; + +#define ThePSurface BRepAdaptor_Surface +#define ThePSurface_hxx +#define ThePSurfaceTool BRepApprox_SurfaceTool +#define ThePSurfaceTool_hxx +#define TheISurface IntSurf_Quadric +#define TheISurface_hxx +#define TheISurfaceTool IntSurf_QuadricTool +#define TheISurfaceTool_hxx +#define IntImp_ZerImpFunc BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox +#define IntImp_ZerImpFunc_hxx + +#include + +#undef ThePSurface +#undef ThePSurface_hxx +#undef ThePSurfaceTool +#undef ThePSurfaceTool_hxx +#undef TheISurface +#undef TheISurface_hxx +#undef TheISurfaceTool +#undef TheISurfaceTool_hxx +#undef IntImp_ZerImpFunc +#undef IntImp_ZerImpFunc_hxx + + + + +#endif // _BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_HeaderFile diff --git a/src/BRepApprox/BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_0.cxx b/src/BRepApprox/BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_0.cxx new file mode 100644 index 0000000000..bb9127908c --- /dev/null +++ b/src/BRepApprox/BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_0.cxx @@ -0,0 +1,41 @@ +// Created on: 1995-06-06 +// Created by: Jean Yves LEBEY +// 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 + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define ThePSurface BRepAdaptor_Surface +#define ThePSurface_hxx +#define ThePSurfaceTool BRepApprox_SurfaceTool +#define ThePSurfaceTool_hxx +#define TheISurface IntSurf_Quadric +#define TheISurface_hxx +#define TheISurfaceTool IntSurf_QuadricTool +#define TheISurfaceTool_hxx +#define IntImp_ZerImpFunc BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox +#define IntImp_ZerImpFunc_hxx +#include + diff --git a/src/BRepApprox/FILES b/src/BRepApprox/FILES new file mode 100644 index 0000000000..e5d49cc7cc --- /dev/null +++ b/src/BRepApprox/FILES @@ -0,0 +1,53 @@ +BRepApprox_Approx.hxx +BRepApprox_Approx_0.cxx +BRepApprox_ApproxLine.cxx +BRepApprox_ApproxLine.hxx +BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox.hxx +BRepApprox_BSpGradient_BFGSOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx +BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox.hxx +BRepApprox_BSpParFunctionOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx +BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox.hxx +BRepApprox_BSpParLeastSquareOfMyBSplGradientOfTheComputeLineOfApprox_0.cxx +BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox.hxx +BRepApprox_Gradient_BFGSOfMyGradientbisOfTheComputeLineOfApprox_0.cxx +BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox.hxx +BRepApprox_Gradient_BFGSOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx +BRepApprox_MyBSplGradientOfTheComputeLineOfApprox.hxx +BRepApprox_MyBSplGradientOfTheComputeLineOfApprox_0.cxx +BRepApprox_MyGradientbisOfTheComputeLineOfApprox.hxx +BRepApprox_MyGradientbisOfTheComputeLineOfApprox_0.cxx +BRepApprox_MyGradientOfTheComputeLineBezierOfApprox.hxx +BRepApprox_MyGradientOfTheComputeLineBezierOfApprox_0.cxx +BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox.hxx +BRepApprox_ParFunctionOfMyGradientbisOfTheComputeLineOfApprox_0.cxx +BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox.hxx +BRepApprox_ParFunctionOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx +BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox.hxx +BRepApprox_ParLeastSquareOfMyGradientbisOfTheComputeLineOfApprox_0.cxx +BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox.hxx +BRepApprox_ParLeastSquareOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx +BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox.hxx +BRepApprox_ResConstraintOfMyGradientbisOfTheComputeLineOfApprox_0.cxx +BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox.hxx +BRepApprox_ResConstraintOfMyGradientOfTheComputeLineBezierOfApprox_0.cxx +BRepApprox_SurfaceTool.cxx +BRepApprox_SurfaceTool.hxx +BRepApprox_SurfaceTool.lxx +BRepApprox_TheComputeLineBezierOfApprox.hxx +BRepApprox_TheComputeLineBezierOfApprox_0.cxx +BRepApprox_TheComputeLineOfApprox.hxx +BRepApprox_TheComputeLineOfApprox_0.cxx +BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx +BRepApprox_TheFunctionOfTheInt2SOfThePrmPrmSvSurfacesOfApprox_0.cxx +BRepApprox_TheImpPrmSvSurfacesOfApprox.hxx +BRepApprox_TheImpPrmSvSurfacesOfApprox_0.cxx +BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox.hxx +BRepApprox_TheInt2SOfThePrmPrmSvSurfacesOfApprox_0.cxx +BRepApprox_TheMultiLineOfApprox.hxx +BRepApprox_TheMultiLineOfApprox_0.cxx +BRepApprox_TheMultiLineToolOfApprox.hxx +BRepApprox_TheMultiLineToolOfApprox_0.cxx +BRepApprox_ThePrmPrmSvSurfacesOfApprox.hxx +BRepApprox_ThePrmPrmSvSurfacesOfApprox_0.cxx +BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox.hxx +BRepApprox_TheZerImpFuncOfTheImpPrmSvSurfacesOfApprox_0.cxx diff --git a/src/BRepBlend/BRepBlend.cdl b/src/BRepBlend/BRepBlend.cdl deleted file mode 100644 index 97d7eb97bd..0000000000 --- a/src/BRepBlend/BRepBlend.cdl +++ /dev/null @@ -1,137 +0,0 @@ --- 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. - --- jlr le 28-07-97 F(t) in Edge/Face - - - -package BRepBlend - -uses Blend, BlendFunc, AppBlend, Approx, Adaptor3d,Adaptor2d, - Law, gp, TopAbs, IntSurf, Convert, - TCollection,TColStd,TColgp,GeomAbs,Geom,Geom2d, - AdvApprox, StdFail, math - -is - - class PointOnRst; - class Extremity; - class Line; - - class HCurveTool; - class HCurve2dTool; - - class BlendTool; - - alias ConstRad is ConstRad from BlendFunc; - - alias ConstRadInv is ConstRadInv from BlendFunc; - - alias Ruled is Ruled from BlendFunc; - - alias RuledInv is RuledInv from BlendFunc; - - alias EvolRad is EvolRad from BlendFunc; - - alias EvolRadInv is EvolRadInv from BlendFunc; - - alias CSConstRad is CSConstRad from BlendFunc; - - alias CSCircular is CSCircular from BlendFunc; - - alias Chamfer is Chamfer from BlendFunc; - - alias ChamfInv is ChamfInv from BlendFunc; - - alias ChAsym is ChAsym from BlendFunc; - - alias ChAsymInv is ChAsymInv from BlendFunc; - - imported SequenceOfPointOnRst; - - class Walking instantiates Walking from Blend - (HVertex from Adaptor3d, - HCurve2d from Adaptor2d, - HSurface from Adaptor3d, - HCurve from Adaptor3d, - Integer from Standard, - HCurve2dTool from BRepBlend, - HSurfaceTool from Adaptor3d, - HCurveTool from BRepBlend, - TopolTool from Adaptor3d, - BlendTool from BRepBlend, - PointOnRst from BRepBlend, - SequenceOfPointOnRst from BRepBlend, - Extremity from BRepBlend, - Line from BRepBlend); - - class CSWalking instantiates CSWalking from Blend - (HVertex from Adaptor3d, - HCurve2d from Adaptor2d, - HSurface from Adaptor3d, - HCurve from Adaptor3d, - Integer from Standard, - HCurve2dTool from BRepBlend, - HSurfaceTool from Adaptor3d, - HCurveTool from BRepBlend, - TopolTool from Adaptor3d, - BlendTool from BRepBlend, - PointOnRst from BRepBlend, - SequenceOfPointOnRst from BRepBlend, - Extremity from BRepBlend, - Line from BRepBlend); - - class AppSurf instantiates AppSurf from AppBlend - (AppFunction from Blend, - Line from BRepBlend); - - - imported SequenceOfLine; - - - class AppSurface; - - deferred class AppFuncRoot; - - class AppFunc; - - class AppFuncRst; - - class AppFuncRstRst; - - class SurfRstEvolRad; - - class SurfRstConstRad; - - class RstRstEvolRad; - - class RstRstConstRad; - - class SurfPointConstRadInv; - - class SurfCurvConstRadInv; - - class SurfPointEvolRadInv; - - class CurvPointRadInv; - - class SurfCurvEvolRadInv; - - class SurfRstLineBuilder; - - class RstRstLineBuilder; - -end BRepBlend; diff --git a/src/BRepBlend/BRepBlend_AppFunc.cdl b/src/BRepBlend/BRepBlend_AppFunc.cdl deleted file mode 100644 index f352afd1b0..0000000000 --- a/src/BRepBlend/BRepBlend_AppFunc.cdl +++ /dev/null @@ -1,50 +0,0 @@ --- Created on: 1996-11-25 --- Created by: Philippe MANGIN --- 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. - -class AppFunc from BRepBlend inherits AppFuncRoot from BRepBlend - - ---Purpose: Function to approximate by AppSurface - -- for Surface/Surface contact. - ---Level: Advanced - -uses - Line from BRepBlend, - Point from Blend, - AppFunction from Blend, - Function from Blend, - Vector from math - -raises OutOfRange - -is - Create(Line : in out Line from BRepBlend; - Func : in out Function from Blend; - Tol3d: Real; - Tol2d: Real) - ---Warning: The Object Func cannot be killed before me. - returns AppFunc; - - Point(me; - Func : AppFunction from Blend; - Param : Real; - Sol : Vector from math; - Pnt : in out Point from Blend); - - Vec(me; - Sol : in out Vector from math; - Pnt : Point from Blend); - -end AppFunc; diff --git a/src/BRepBlend/BRepBlend_AppFunc.cxx b/src/BRepBlend/BRepBlend_AppFunc.cxx index b1d379b91b..9ba49f15fd 100644 --- a/src/BRepBlend/BRepBlend_AppFunc.cxx +++ b/src/BRepBlend/BRepBlend_AppFunc.cxx @@ -14,7 +14,14 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include +#include BRepBlend_AppFunc::BRepBlend_AppFunc(Handle(BRepBlend_Line)& Line, Blend_Function& Func, diff --git a/src/BRepBlend/BRepBlend_AppFunc.hxx b/src/BRepBlend/BRepBlend_AppFunc.hxx new file mode 100644 index 0000000000..a9f3407512 --- /dev/null +++ b/src/BRepBlend/BRepBlend_AppFunc.hxx @@ -0,0 +1,73 @@ +// Created on: 1996-11-25 +// Created by: Philippe MANGIN +// 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 _BRepBlend_AppFunc_HeaderFile +#define _BRepBlend_AppFunc_HeaderFile + +#include +#include + +#include +#include +#include +class Standard_OutOfRange; +class BRepBlend_Line; +class Blend_Function; +class Blend_AppFunction; +class Blend_Point; + + +class BRepBlend_AppFunc; +DEFINE_STANDARD_HANDLE(BRepBlend_AppFunc, BRepBlend_AppFuncRoot) + +//! Function to approximate by AppSurface +//! for Surface/Surface contact. +class BRepBlend_AppFunc : public BRepBlend_AppFuncRoot +{ + +public: + + + Standard_EXPORT BRepBlend_AppFunc(Handle(BRepBlend_Line)& Line, Blend_Function& 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_EXPORT void Vec (math_Vector& Sol, const Blend_Point& Pnt) const; + + + + + DEFINE_STANDARD_RTTI(BRepBlend_AppFunc,BRepBlend_AppFuncRoot) + +protected: + + + + +private: + + + + +}; + + + + + + + +#endif // _BRepBlend_AppFunc_HeaderFile diff --git a/src/BRepBlend/BRepBlend_AppFuncRoot.cdl b/src/BRepBlend/BRepBlend_AppFuncRoot.cdl deleted file mode 100644 index c8ecc9cd7c..0000000000 --- a/src/BRepBlend/BRepBlend_AppFuncRoot.cdl +++ /dev/null @@ -1,260 +0,0 @@ --- 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. - -deferred class AppFuncRoot from BRepBlend inherits SweepFunction from Approx - - ---Purpose: Function to approximate by AppSurface - ---Level: Advanced - -uses - Line from BRepBlend, - Point from Blend, - AppFunction from Blend, - Shape from GeomAbs, - Vector from math, - Pnt from gp, - Array1OfPnt from TColgp, - Array1OfPnt2d from TColgp, - Array1OfVec from TColgp, - Array1OfVec2d from TColgp, - Array1OfReal from TColStd, - Array1OfInteger from TColStd, - HArray1OfPnt from TColgp, - HArray1OfPnt2d from TColgp, - HArray1OfVec from TColgp, - HArray1OfVec2d from TColgp, - HArray1OfReal from TColStd - - -raises OutOfRange - -is - Initialize(Line : in out Line from BRepBlend; - Func : in out AppFunction from Blend; - Tol3d : Real from Standard; - Tol2d : Real from Standard) - ---Warning: The Object Func cannot be killed before me. - returns AppFuncRoot; - --- --- To compute Sections and derivatives Sections --- --- - - D0(me : mutable; - Param: Real; - First, Last : Real; - Poles : out Array1OfPnt from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - Weigths : out Array1OfReal from TColStd) - ---Purpose: compute the section for v = param - returns Boolean is redefined; - - D1(me : mutable; - Param: Real; - First, Last : Real; - Poles : out Array1OfPnt from TColgp; - DPoles : out Array1OfVec from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - DPoles2d : out Array1OfVec2d from TColgp; - Weigths : out Array1OfReal from TColStd; - DWeigths : out Array1OfReal from TColStd) - ---Purpose: compute the first derivative in v direction of the - -- section for v = param - returns Boolean - is redefined; - - D2(me : mutable; - Param: Real; - First, Last : Real; - Poles : out Array1OfPnt from TColgp; - DPoles : out Array1OfVec from TColgp; - D2Poles : out Array1OfVec from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - DPoles2d : out Array1OfVec2d from TColgp; - D2Poles2d : out Array1OfVec2d from TColgp; - Weigths : out Array1OfReal from TColStd; - DWeigths : out Array1OfReal from TColStd; - D2Weigths : out Array1OfReal from TColStd) - ---Purpose: compute the second derivative in v direction of the - -- section for v = param - returns Boolean - is redefined; - --- --- General Information On The Function --- - - Nb2dCurves(me) - ---Purpose: get the number of 2d curves to approximate. - returns Integer - is redefined; - - SectionShape(me; NbPoles : out Integer from Standard; - NbKnots : out Integer from Standard; - Degree : out Integer from Standard) - ---Purpose: get the format of an section - is redefined; - - Knots(me; TKnots: out Array1OfReal from TColStd) - ---Purpose: get the Knots of the section - is redefined; - - - Mults(me; TMults: out Array1OfInteger from TColStd) - ---Purpose: get the Multplicities of the section - is redefined; - - - IsRational(me) - ---Purpose: Returns if the section is rationnal or not - returns Boolean - is redefined; - - - --- --- Mangement of continuity --- - - NbIntervals(me; S : Shape from GeomAbs) - ---Purpose: Returns the number of intervals for continuity - -- . May be one if Continuity(me) >= - returns Integer - is redefined; - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - raises - OutOfRange from Standard - is redefined; - - - SetInterval(me: mutable; First, Last: Real from Standard) - ---Purpose: Sets the bounds of the parametric interval on - -- the fonction - -- This determines the derivatives in these values if the - -- function is not Cn. - is redefined; - - --- --- To help computation of Tolerance --- --- Evaluation of error, in 2d space, or on rational function, is --- dificult. The folowing methodes can help --- --- - - - Resolution(me; - Index : Integer from Standard; - Tol : Real from Standard; - TolU, TolV : out Real from Standard) - ---Purpose: Returns the resolutions in the sub-space 2d -- - -- This information is usfull to find an good tolerance in - -- 2d approximation - - ---Warning: Used only if Nb2dCurve > 0 - is redefined; - - - GetTolerance(me; - BoundTol, SurfTol, AngleTol : Real; - Tol3d : out Array1OfReal) - ---Purpose: Returns the tolerance to reach in approximation - -- to respecte - -- BoundTol error at the Boundary - -- AngleTol tangent error at the Boundary (in radian) - -- SurfTol error inside the surface. - is redefined; - - SetTolerance(me : mutable; Tol3d, Tol2d : Real) - ---Purpose: Is usfull, if (me) have to be run numerical - -- algorithme to perform D0, D1 or D2 - is redefined; - - BarycentreOfSurf(me) - ---Purpose: Get the barycentre of Surface. An very poor - -- estimation is sufficent. This information is usefull - -- to perform well conditionned rational approximation. - - ---Warning: Used only if IsRational - returns Pnt from gp - is redefined; - - - MaximalSection(me) returns Real - ---Purpose: Returns the length of the maximum section. This - -- information is usefull to perform well conditionned rational - -- approximation. - - ---Warning: Used only if IsRational - is redefined; - - GetMinimalWeight(me; Weigths : out Array1OfReal from TColStd) - ---Purpose: Compute the minimal value of weight for each poles - -- of all sections. This information is usefull to - -- perform well conditionned rational approximation. - - ---Warning: Used only if IsRational - is redefined; - --- Private methods - - SearchPoint(me:mutable; - Func : in out AppFunction from Blend; - Param : Real; - Pnt : in out Point from Blend) - returns Boolean - is private; - - SearchLocation(me; - Param : Real; - FirstIndex, LastIndex : Integer; - ParamIndex : in out Integer) - returns Boolean - raises OutOfRange - is private; - - Point(me; - Func : AppFunction from Blend; - Param : Real; - Sol : Vector from math; - Pnt : in out Point from Blend) - is deferred; - - Vec(me; - Sol : in out Vector from math; - Pnt : Point from Blend) - is deferred; - -fields - - myLine : Line from BRepBlend; - myFunc : Address; - myTolerance : Vector; - myPnt : Point from Blend; - myBary : Pnt from gp; - - X1, X2, XInit, Sol : Vector from math; - -end AppFuncRoot; diff --git a/src/BRepBlend/BRepBlend_AppFuncRoot.cxx b/src/BRepBlend/BRepBlend_AppFuncRoot.cxx index ae591764fc..2fc921c733 100644 --- a/src/BRepBlend/BRepBlend_AppFuncRoot.cxx +++ b/src/BRepBlend/BRepBlend_AppFuncRoot.cxx @@ -14,21 +14,21 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include #include +#include #include - +#include #include - +#include +#include #include #include #include #include - -#include #include +#include BRepBlend_AppFuncRoot::BRepBlend_AppFuncRoot(Handle(BRepBlend_Line)& Line, Blend_AppFunction& Func, diff --git a/src/BRepBlend/BRepBlend_AppFuncRoot.hxx b/src/BRepBlend/BRepBlend_AppFuncRoot.hxx new file mode 100644 index 0000000000..9fa8752ce6 --- /dev/null +++ b/src/BRepBlend/BRepBlend_AppFuncRoot.hxx @@ -0,0 +1,171 @@ +// 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_AppFuncRoot_HeaderFile +#define _BRepBlend_AppFuncRoot_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class BRepBlend_Line; +class Standard_OutOfRange; +class Blend_AppFunction; +class gp_Pnt; +class Blend_Point; + + +class BRepBlend_AppFuncRoot; +DEFINE_STANDARD_HANDLE(BRepBlend_AppFuncRoot, Approx_SweepFunction) + +//! Function to approximate by AppSurface +class BRepBlend_AppFuncRoot : public Approx_SweepFunction +{ + +public: + + + //! compute the section for v = param + Standard_EXPORT virtual Standard_Boolean D0 (const Standard_Real Param, const Standard_Real First, const Standard_Real Last, TColgp_Array1OfPnt& Poles, TColgp_Array1OfPnt2d& Poles2d, TColStd_Array1OfReal& Weigths) Standard_OVERRIDE; + + //! compute the first derivative in v direction of the + //! section for v = param + Standard_EXPORT virtual Standard_Boolean D1 (const Standard_Real Param, const Standard_Real First, const Standard_Real Last, TColgp_Array1OfPnt& Poles, TColgp_Array1OfVec& DPoles, TColgp_Array1OfPnt2d& Poles2d, TColgp_Array1OfVec2d& DPoles2d, TColStd_Array1OfReal& Weigths, TColStd_Array1OfReal& DWeigths) Standard_OVERRIDE; + + //! compute the second derivative in v direction of the + //! section for v = param + Standard_EXPORT virtual Standard_Boolean D2 (const Standard_Real Param, const Standard_Real First, const Standard_Real Last, 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; + + //! get the number of 2d curves to approximate. + Standard_EXPORT virtual Standard_Integer Nb2dCurves() const Standard_OVERRIDE; + + //! get the format of an section + Standard_EXPORT virtual void SectionShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree) const Standard_OVERRIDE; + + //! get the Knots of the section + Standard_EXPORT virtual void Knots (TColStd_Array1OfReal& TKnots) const Standard_OVERRIDE; + + //! get the Multplicities of the section + Standard_EXPORT virtual void Mults (TColStd_Array1OfInteger& TMults) const Standard_OVERRIDE; + + //! Returns if the section is rationnal or not + Standard_EXPORT virtual Standard_Boolean IsRational() const Standard_OVERRIDE; + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(me) >= + Standard_EXPORT virtual 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 accomodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT virtual void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const Standard_OVERRIDE; + + //! Sets the bounds of the parametric interval on + //! the fonction + //! This determines the derivatives in these values if the + //! function is not Cn. + Standard_EXPORT virtual void SetInterval (const Standard_Real First, const Standard_Real Last) Standard_OVERRIDE; + + //! Returns the resolutions in the sub-space 2d -- + //! This information is usfull to find an good tolerance in + //! 2d approximation + Standard_EXPORT virtual void Resolution (const Standard_Integer Index, const Standard_Real Tol, Standard_Real& TolU, Standard_Real& TolV) const Standard_OVERRIDE; + + //! Returns the tolerance to reach in approximation + //! to respecte + //! BoundTol error at the Boundary + //! AngleTol tangent error at the Boundary (in radian) + //! SurfTol error inside the surface. + Standard_EXPORT virtual void GetTolerance (const Standard_Real BoundTol, const Standard_Real SurfTol, const Standard_Real AngleTol, TColStd_Array1OfReal& Tol3d) const Standard_OVERRIDE; + + //! Is usfull, if (me) have to be run numerical + //! algorithme to perform D0, D1 or D2 + Standard_EXPORT virtual void SetTolerance (const Standard_Real Tol3d, const Standard_Real Tol2d) Standard_OVERRIDE; + + //! Get the barycentre of Surface. An very poor + //! estimation is sufficent. This information is usefull + //! to perform well conditionned rational approximation. + Standard_EXPORT virtual gp_Pnt BarycentreOfSurf() const Standard_OVERRIDE; + + //! Returns the length of the maximum section. This + //! information is usefull to perform well conditionned rational + //! approximation. + Standard_EXPORT virtual Standard_Real MaximalSection() const Standard_OVERRIDE; + + //! Compute the minimal value of weight for each poles + //! of all sections. This information is usefull to + //! perform well conditionned rational approximation. + Standard_EXPORT virtual void GetMinimalWeight (TColStd_Array1OfReal& Weigths) const Standard_OVERRIDE; + + Standard_EXPORT virtual void Point (const Blend_AppFunction& Func, const Standard_Real Param, const math_Vector& Sol, Blend_Point& Pnt) const = 0; + + Standard_EXPORT virtual void Vec (math_Vector& Sol, const Blend_Point& Pnt) const = 0; + + + + + DEFINE_STANDARD_RTTI(BRepBlend_AppFuncRoot,Approx_SweepFunction) + +protected: + + + Standard_EXPORT BRepBlend_AppFuncRoot(Handle(BRepBlend_Line)& Line, Blend_AppFunction& Func, const Standard_Real Tol3d, const Standard_Real Tol2d); + + + +private: + + + Standard_EXPORT Standard_Boolean SearchPoint (Blend_AppFunction& Func, const Standard_Real Param, Blend_Point& Pnt); + + Standard_EXPORT Standard_Boolean SearchLocation (const Standard_Real Param, const Standard_Integer FirstIndex, const Standard_Integer LastIndex, Standard_Integer& ParamIndex) const; + + Handle(BRepBlend_Line) myLine; + Standard_Address myFunc; + math_Vector myTolerance; + Blend_Point myPnt; + gp_Pnt myBary; + math_Vector X1; + math_Vector X2; + math_Vector XInit; + math_Vector Sol; + + +}; + + + + + + + +#endif // _BRepBlend_AppFuncRoot_HeaderFile diff --git a/src/BRepBlend/BRepBlend_AppFuncRst.cdl b/src/BRepBlend/BRepBlend_AppFuncRst.cdl deleted file mode 100644 index 45cbda0bf3..0000000000 --- a/src/BRepBlend/BRepBlend_AppFuncRst.cdl +++ /dev/null @@ -1,49 +0,0 @@ --- Created on: 1997-07-25 --- 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. - -class AppFuncRst from BRepBlend inherits AppFuncRoot from BRepBlend - ---Purpose: Function to approximate by AppSurface for Curve/Surface contact. - ---Level: Advanced - -uses - Line from BRepBlend, - Point from Blend, - SurfRstFunction from Blend, - AppFunction from Blend, - Vector from math - - -raises OutOfRange from Standard - -is - - Create(Line : in out Line from BRepBlend; - Func : in out SurfRstFunction from Blend; - Tol3d: Real; - Tol2d: Real) - returns AppFuncRst from BRepBlend; - - Point(me; - Func : AppFunction from Blend; - Param : Real; - Sol : Vector from math; - Pnt : in out Point from Blend); - - Vec(me; - Sol : in out Vector from math; - Pnt : Point from Blend); - -end AppFuncRst; diff --git a/src/BRepBlend/BRepBlend_AppFuncRst.cxx b/src/BRepBlend/BRepBlend_AppFuncRst.cxx index 89dd0e5b46..613351e315 100644 --- a/src/BRepBlend/BRepBlend_AppFuncRst.cxx +++ b/src/BRepBlend/BRepBlend_AppFuncRst.cxx @@ -14,7 +14,14 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include +#include BRepBlend_AppFuncRst::BRepBlend_AppFuncRst (Handle(BRepBlend_Line)& Line, Blend_SurfRstFunction& Func, diff --git a/src/BRepBlend/BRepBlend_AppFuncRst.hxx b/src/BRepBlend/BRepBlend_AppFuncRst.hxx new file mode 100644 index 0000000000..9454960832 --- /dev/null +++ b/src/BRepBlend/BRepBlend_AppFuncRst.hxx @@ -0,0 +1,72 @@ +// Created on: 1997-07-25 +// 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_AppFuncRst_HeaderFile +#define _BRepBlend_AppFuncRst_HeaderFile + +#include +#include + +#include +#include +#include +class Standard_OutOfRange; +class BRepBlend_Line; +class Blend_SurfRstFunction; +class Blend_AppFunction; +class Blend_Point; + + +class BRepBlend_AppFuncRst; +DEFINE_STANDARD_HANDLE(BRepBlend_AppFuncRst, BRepBlend_AppFuncRoot) + +//! Function to approximate by AppSurface for Curve/Surface contact. +class BRepBlend_AppFuncRst : public BRepBlend_AppFuncRoot +{ + +public: + + + Standard_EXPORT BRepBlend_AppFuncRst(Handle(BRepBlend_Line)& Line, Blend_SurfRstFunction& 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_EXPORT void Vec (math_Vector& Sol, const Blend_Point& Pnt) const; + + + + + DEFINE_STANDARD_RTTI(BRepBlend_AppFuncRst,BRepBlend_AppFuncRoot) + +protected: + + + + +private: + + + + +}; + + + + + + + +#endif // _BRepBlend_AppFuncRst_HeaderFile diff --git a/src/BRepBlend/BRepBlend_AppFuncRstRst.cdl b/src/BRepBlend/BRepBlend_AppFuncRstRst.cdl deleted file mode 100644 index b1afad01f7..0000000000 --- a/src/BRepBlend/BRepBlend_AppFuncRstRst.cdl +++ /dev/null @@ -1,49 +0,0 @@ --- 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. - -class AppFuncRstRst from BRepBlend inherits AppFuncRoot from BRepBlend - ---Purpose: Function to approximate by AppSurface for Edge/Face (Curve/Curve contact). - ---Level: Advanced - -uses - Line from BRepBlend, - Point from Blend, - AppFunction from Blend, - RstRstFunction from Blend, - Vector from math - - -raises OutOfRange from Standard - -is - - Create(Line : in out Line from BRepBlend; - Func : in out RstRstFunction from Blend; - Tol3d: Real; - Tol2d: Real) - returns AppFuncRstRst from BRepBlend; - - Point(me; - Func : AppFunction from Blend; - Param : Real; - Sol : Vector from math; - Pnt : in out Point from Blend); - - Vec(me; - Sol : in out Vector from math; - Pnt : Point from Blend); - -end AppFuncRstRst; diff --git a/src/BRepBlend/BRepBlend_AppFuncRstRst.cxx b/src/BRepBlend/BRepBlend_AppFuncRstRst.cxx index 1d41889158..137fa94656 100644 --- a/src/BRepBlend/BRepBlend_AppFuncRstRst.cxx +++ b/src/BRepBlend/BRepBlend_AppFuncRstRst.cxx @@ -14,7 +14,14 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include +#include BRepBlend_AppFuncRstRst::BRepBlend_AppFuncRstRst (Handle(BRepBlend_Line)& Line, Blend_RstRstFunction& Func, diff --git a/src/BRepBlend/BRepBlend_AppFuncRstRst.hxx b/src/BRepBlend/BRepBlend_AppFuncRstRst.hxx new file mode 100644 index 0000000000..1654e173fc --- /dev/null +++ b/src/BRepBlend/BRepBlend_AppFuncRstRst.hxx @@ -0,0 +1,72 @@ +// 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 +#include + +#include +#include +#include +class Standard_OutOfRange; +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_EXPORT void Vec (math_Vector& Sol, const Blend_Point& Pnt) const; + + + + + DEFINE_STANDARD_RTTI(BRepBlend_AppFuncRstRst,BRepBlend_AppFuncRoot) + +protected: + + + + +private: + + + + +}; + + + + + + + +#endif // _BRepBlend_AppFuncRstRst_HeaderFile diff --git a/src/BRepBlend/BRepBlend_AppSurf.hxx b/src/BRepBlend/BRepBlend_AppSurf.hxx new file mode 100644 index 0000000000..0e6b994dff --- /dev/null +++ b/src/BRepBlend/BRepBlend_AppSurf.hxx @@ -0,0 +1,180 @@ +// 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_AppSurf_HeaderFile +#define _BRepBlend_AppSurf_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class StdFail_NotDone; +class Standard_DomainError; +class Standard_OutOfRange; +class Blend_AppFunction; +class BRepBlend_Line; + + + +class BRepBlend_AppSurf : public AppBlend_Approx +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepBlend_AppSurf(); + + Standard_EXPORT BRepBlend_AppSurf(const Standard_Integer Degmin, const Standard_Integer Degmax, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIt, const Standard_Boolean KnownParameters = Standard_False); + + Standard_EXPORT void Init (const Standard_Integer Degmin, const Standard_Integer Degmax, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Integer NbIt, const Standard_Boolean KnownParameters = Standard_False); + + Standard_EXPORT void SetParType (const Approx_ParametrizationType ParType); + + Standard_EXPORT void SetContinuity (const GeomAbs_Shape C); + + Standard_EXPORT void SetCriteriumWeight (const Standard_Real W1, const Standard_Real W2, const Standard_Real W3); + + Standard_EXPORT Approx_ParametrizationType ParType() const; + + Standard_EXPORT GeomAbs_Shape Continuity() const; + + Standard_EXPORT void CriteriumWeight (Standard_Real& W1, Standard_Real& W2, Standard_Real& W3) const; + + Standard_EXPORT void Perform (const Handle(BRepBlend_Line)& Lin, Blend_AppFunction& SecGen, const Standard_Boolean SpApprox = Standard_False); + + Standard_EXPORT void PerformSmoothing (const Handle(BRepBlend_Line)& Lin, Blend_AppFunction& SecGen); + + Standard_EXPORT void Perform (const Handle(BRepBlend_Line)& Lin, Blend_AppFunction& SecGen, const Standard_Integer NbMaxP); + + 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; + + 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; + + void TolReached (Standard_Real& Tol3d, Standard_Real& Tol2d) const; + + Standard_EXPORT Standard_Real TolCurveOnSurf (const Standard_Integer Index) const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT void InternalPerform (const Handle(BRepBlend_Line)& Lin, Blend_AppFunction& SecGen, const Standard_Boolean SpApprox, const Standard_Boolean UseVariational); + + + Standard_Boolean done; + Standard_Integer dmin; + Standard_Integer dmax; + Standard_Real tol3d; + Standard_Real tol2d; + Standard_Integer nbit; + Standard_Integer udeg; + Standard_Integer vdeg; + Standard_Boolean knownp; + Handle(TColgp_HArray2OfPnt) tabPoles; + Handle(TColStd_HArray2OfReal) tabWeights; + Handle(TColStd_HArray1OfReal) tabUKnots; + Handle(TColStd_HArray1OfReal) tabVKnots; + Handle(TColStd_HArray1OfInteger) tabUMults; + Handle(TColStd_HArray1OfInteger) tabVMults; + TColgp_SequenceOfArray1OfPnt2d seqPoles2d; + Standard_Real tol3dreached; + Standard_Real tol2dreached; + Approx_ParametrizationType paramtype; + GeomAbs_Shape continuity; + Standard_Real critweights[3]; + + +}; + +#define TheSectionGenerator Blend_AppFunction +#define TheSectionGenerator_hxx +#define Handle_TheLine Handle(BRepBlend_Line) +#define TheLine BRepBlend_Line +#define TheLine_hxx +#define AppBlend_AppSurf BRepBlend_AppSurf +#define AppBlend_AppSurf_hxx + +#include + +#undef TheSectionGenerator +#undef TheSectionGenerator_hxx +#undef Handle_TheLine +#undef TheLine +#undef TheLine_hxx +#undef AppBlend_AppSurf +#undef AppBlend_AppSurf_hxx + + + + +#endif // _BRepBlend_AppSurf_HeaderFile diff --git a/src/BRepBlend/BRepBlend_AppSurf_0.cxx b/src/BRepBlend/BRepBlend_AppSurf_0.cxx new file mode 100644 index 0000000000..04604330e6 --- /dev/null +++ b/src/BRepBlend/BRepBlend_AppSurf_0.cxx @@ -0,0 +1,34 @@ +// 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. + +#include + +#include +#include +#include +#include +#include + + +#define TheSectionGenerator Blend_AppFunction +#define TheSectionGenerator_hxx +#define Handle_TheLine Handle(BRepBlend_Line) +#define TheLine BRepBlend_Line +#define TheLine_hxx +#define AppBlend_AppSurf BRepBlend_AppSurf +#define AppBlend_AppSurf_hxx +#include + diff --git a/src/BRepBlend/BRepBlend_AppSurface.cdl b/src/BRepBlend/BRepBlend_AppSurface.cdl deleted file mode 100644 index 405edded1e..0000000000 --- a/src/BRepBlend/BRepBlend_AppSurface.cdl +++ /dev/null @@ -1,250 +0,0 @@ --- Created on: 1996-11-25 --- Created by: Philippe MANGIN --- 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. - -class AppSurface from BRepBlend inherits Approx from AppBlend - - ---Purpose:Used to Approximate the blending surfaces. - -uses Array2OfReal from TColStd, - HArray2OfReal from TColStd, - Array1OfReal from TColStd, - HArray1OfReal from TColStd, - Array1OfInteger from TColStd, - HArray1OfInteger from TColStd, - Array1OfPnt2d from TColgp, - Array2OfPnt from TColgp, - HArray2OfPnt from TColgp, - - Shape from GeomAbs, - SweepFunction from Approx, - SweepApproximation from Approx - - -raises NotDone from StdFail, - DomainError, - OutOfRange - -is - Create(Funct : in out SweepFunction from Approx; - First, Last : Real; - Tol3d, Tol2d, TolAngular : Real; - Continuity : Shape = GeomAbs_C0; - Degmax : Integer = 11; - Segmax : Integer = 50) - ---Purpose: Approximation of the new Surface (and - -- eventually the 2d Curves on the support - -- surfaces). - -- Normaly the 2d curve are - -- approximated with an tolerance given by the - -- resolution on support surfaces, but if this - -- tolerance is too large Tol2d is used. - returns AppSurface from BRepBlend; - - - IsDone(me) - returns Boolean from Standard - ---C++: inline - is static; - - - SurfShape(me; UDegree,VDegree : out Integer from Standard; - NbUPoles,NbVPoles: out Integer from Standard; - NbUKnots,NbVKnots: out Integer from Standard) - raises NotDone from StdFail - is static; - - - Surface(me; TPoles : out Array2OfPnt from TColgp; - TWeights : out Array2OfReal from TColStd; - TUKnots,TVKnots : out Array1OfReal from TColStd; - TUMults,TVMults : out Array1OfInteger from TColStd) - raises NotDone from StdFail - is static; - - - UDegree(me) - - returns Integer from Standard - ---C++: inline - - raises NotDone from StdFail - is static; - - - VDegree(me) - - returns Integer from Standard - ---C++: inline - - raises NotDone from StdFail - is static; - - - SurfPoles(me) - - returns Array2OfPnt from TColgp - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfWeights(me) - - returns Array2OfReal from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfUKnots(me) - - returns Array1OfReal from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfVKnots(me) - - returns Array1OfReal from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfUMults(me) - - returns Array1OfInteger from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - - SurfVMults(me) - - returns Array1OfInteger from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail - is static; - - MaxErrorOnSurf (me) - ---Purpose: returns the maximum error in the suface approximation. - returns Real; - - NbCurves2d(me) - - returns Integer from Standard - ---C++: inline - - raises NotDone from StdFail - is static; - - - Curves2dShape(me; Degree,NbPoles,NbKnots: out Integer from Standard) - - raises NotDone from StdFail, - DomainError from Standard - - is static; - - - Curve2d(me; Index: Integer from Standard; - TPoles : out Array1OfPnt2d from TColgp; - TKnots : out Array1OfReal from TColStd; - TMults : out Array1OfInteger from TColStd) - - raises NotDone from StdFail, - OutOfRange from Standard, - DomainError from Standard - - is static; - - - Curves2dDegree(me) - - returns Integer from Standard - ---C++: inline - - raises NotDone from StdFail, - DomainError from Standard - is static; - - - Curve2dPoles(me; Index: Integer from Standard) - - returns Array1OfPnt2d from TColgp - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail, - OutOfRange from Standard, - DomainError from Standard - is static; - - - Curves2dKnots(me) - - returns Array1OfReal from TColStd - ---C++: inline - ---C++: return const& - - raises NotDone from StdFail, - DomainError from Standard - is static; - - - Curves2dMults(me) - returns Array1OfInteger from TColStd - ---C++: inline - ---C++: return const& - raises NotDone from StdFail, - DomainError from Standard - is static; - - - TolReached(me; Tol3d, Tol2d : out Real from Standard) - raises NotDone from StdFail - is static; - - Max2dError (me; Index : Integer) - ---Purpose: returns the maximum error in the 2d curve approximation. - returns Real - raises NotDone from StdFail - is static; - - TolCurveOnSurf(me; Index : Integer from Standard) - returns Real from Standard - raises NotDone from StdFail - is static; - - Dump(me; o: in out OStream); - ---Purpose: diplay information on approximation. - -fields - approx : SweepApproximation from Approx; -end AppSurface; diff --git a/src/BRepBlend/BRepBlend_AppSurface.cxx b/src/BRepBlend/BRepBlend_AppSurface.cxx index e4bc58e58e..ceb3a9607f 100644 --- a/src/BRepBlend/BRepBlend_AppSurface.cxx +++ b/src/BRepBlend/BRepBlend_AppSurface.cxx @@ -14,17 +14,18 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include #include #include #include #include #include -#include - - BRepBlend_AppSurface::BRepBlend_AppSurface( Handle(Approx_SweepFunction)& Func, const Standard_Real First, diff --git a/src/BRepBlend/BRepBlend_AppSurface.hxx b/src/BRepBlend/BRepBlend_AppSurface.hxx new file mode 100644 index 0000000000..555c52aa02 --- /dev/null +++ b/src/BRepBlend/BRepBlend_AppSurface.hxx @@ -0,0 +1,133 @@ +// Created on: 1996-11-25 +// Created by: Philippe MANGIN +// 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 _BRepBlend_AppSurface_HeaderFile +#define _BRepBlend_AppSurface_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class StdFail_NotDone; +class Standard_DomainError; +class Standard_OutOfRange; +class Approx_SweepFunction; + + +//! Used to Approximate the blending surfaces. +class BRepBlend_AppSurface : public AppBlend_Approx +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Approximation of the new Surface (and + //! eventually the 2d Curves on the support + //! surfaces). + //! Normaly the 2d curve are + //! approximated with an tolerance given by the + //! resolution on support surfaces, but if this + //! tolerance is too large Tol2d is used. + Standard_EXPORT BRepBlend_AppSurface(Handle(Approx_SweepFunction)& Funct, const Standard_Real First, const Standard_Real Last, const Standard_Real Tol3d, const Standard_Real Tol2d, const Standard_Real TolAngular, const GeomAbs_Shape Continuity = GeomAbs_C0, const Standard_Integer Degmax = 11, const Standard_Integer Segmax = 50); + + 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 suface approximation. + Standard_EXPORT Standard_Real MaxErrorOnSurf() 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; + + Standard_EXPORT void TolReached (Standard_Real& Tol3d, Standard_Real& Tol2d) const; + + //! returns the maximum error in the 2d curve approximation. + Standard_EXPORT Standard_Real Max2dError (const Standard_Integer Index) const; + + Standard_EXPORT Standard_Real TolCurveOnSurf (const Standard_Integer Index) const; + + //! diplay information on approximation. + Standard_EXPORT void Dump (Standard_OStream& o) const; + + + + +protected: + + + + + +private: + + + + Approx_SweepApproximation approx; + + +}; + + +#include + + + + + +#endif // _BRepBlend_AppSurface_HeaderFile diff --git a/src/BRepBlend/BRepBlend_BlendTool.cdl b/src/BRepBlend/BRepBlend_BlendTool.cdl deleted file mode 100644 index 8aeafcbeb1..0000000000 --- a/src/BRepBlend/BRepBlend_BlendTool.cdl +++ /dev/null @@ -1,115 +0,0 @@ --- 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. - -class BlendTool from BRepBlend - - ---Purpose: - -uses - Pnt2d from gp, - State from TopAbs, - HCurve2d from Adaptor2d, - HSurface from Adaptor3d, - HVertex from Adaptor3d - -is - - Project(myclass; P: Pnt2d from gp; - S: HSurface from Adaptor3d ; - C: HCurve2d from Adaptor2d ; - Paramproj: out Real from Standard; - Dist: out Real from Standard) - - ---Purpose: Projects the point P on the arc C. - -- If the methods returns Standard_True, the projection is - -- successful, and Paramproj is the parameter on the arc - -- of the projected point, Dist is the distance between - -- P and the curve.. - -- If the method returns Standard_False, Param proj and Dist - -- are not significant. - -- - - returns Boolean from Standard; - - Inters (myclass; P1,P2: Pnt2d from gp; - S: HSurface from Adaptor3d ; - C: HCurve2d from Adaptor2d ; - Param: out Real from Standard; - Dist: out Real from Standard) - returns Boolean from Standard; - - Parameter(myclass; V: HVertex from Adaptor3d; A: HCurve2d from Adaptor2d ) - - ---Purpose: Returns the parameter of the vertex V on the edge A. - - ---C++: inline - returns Real from Standard; - - - Tolerance(myclass; V: HVertex from Adaptor3d; A: HCurve2d from Adaptor2d ) - - ---Purpose: Returns the parametric tolerance on the arc A - -- used to consider that the vertex and another point meet, - -- i-e if Abs(Parameter(Vertex)-Parameter(OtherPnt))<= - -- Tolerance, the points are "merged". - - ---C++: inline - returns Real from Standard; - - --- Methodes pour Rayon constant, en plus des 2 precedentes - - - SingularOnUMin(myclass; S:HSurface from Adaptor3d ) - returns Boolean from Standard; - ---C++: inline - - SingularOnUMax(myclass; S:HSurface from Adaptor3d ) - returns Boolean from Standard; - ---C++: inline - - SingularOnVMin(myclass; S:HSurface from Adaptor3d ) - returns Boolean from Standard; - ---C++: inline - - SingularOnVMax(myclass; S:HSurface from Adaptor3d ) - returns Boolean from Standard; - ---C++: inline - - NbSamplesU(myclass; S: HSurface from Adaptor3d ; - u1,u2: Real from Standard) - returns Integer from Standard; - - NbSamplesV(myclass; S: HSurface from Adaptor3d ; - v1,v2: Real from Standard) - returns Integer from Standard; - - - Bounds(myclass; C: HCurve2d from Adaptor2d ; - Ufirst,Ulast: out Real from Standard); - - ---Purpose: Returns the parametric limits on the arc C. - -- These limits must be finite : they are either - -- the real limits of the arc, for a finite arc, - -- or a bounding box for an infinite arc. - - - CurveOnSurf(myclass; C: HCurve2d from Adaptor2d ; S: HSurface from Adaptor3d ) - ---C++: inline - returns HCurve2d from Adaptor2d ; - - -end BlendTool; diff --git a/src/BRepBlend/BRepBlend_BlendTool.cxx b/src/BRepBlend/BRepBlend_BlendTool.cxx index 6066c619e7..34b38fb212 100644 --- a/src/BRepBlend/BRepBlend_BlendTool.cxx +++ b/src/BRepBlend/BRepBlend_BlendTool.cxx @@ -14,22 +14,25 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include #include #include #include -#include -#include -#include #include #include +#include #include +#include #include -#include #include -#include - +#include +#include //======================================================================= //function : Project diff --git a/src/BRepBlend/BRepBlend_BlendTool.hxx b/src/BRepBlend/BRepBlend_BlendTool.hxx new file mode 100644 index 0000000000..8ef6dee328 --- /dev/null +++ b/src/BRepBlend/BRepBlend_BlendTool.hxx @@ -0,0 +1,105 @@ +// 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_BlendTool_HeaderFile +#define _BRepBlend_BlendTool_HeaderFile + +#include +#include +#include + +#include +#include +#include +class gp_Pnt2d; +class Adaptor3d_HSurface; +class Adaptor2d_HCurve2d; +class Adaptor3d_HVertex; + + + +class BRepBlend_BlendTool +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Projects the point P on the arc C. + //! If the methods returns Standard_True, the projection is + //! successful, and Paramproj is the parameter on the arc + //! of the projected point, Dist is the distance between + //! P and the curve.. + //! If the method returns Standard_False, Param proj and Dist + //! are not significant. + Standard_EXPORT static Standard_Boolean Project (const gp_Pnt2d& P, const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor2d_HCurve2d)& C, Standard_Real& Paramproj, Standard_Real& Dist); + + Standard_EXPORT static Standard_Boolean Inters (const gp_Pnt2d& P1, const gp_Pnt2d& P2, const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor2d_HCurve2d)& C, Standard_Real& Param, Standard_Real& Dist); + + //! Returns the parameter of the vertex V on the edge A. + static Standard_Real Parameter (const Handle(Adaptor3d_HVertex)& V, const Handle(Adaptor2d_HCurve2d)& A); + + //! Returns the parametric tolerance on the arc A + //! used to consider that the vertex and another point meet, + //! i-e if Abs(Parameter(Vertex)-Parameter(OtherPnt))<= + //! Tolerance, the points are "merged". + static Standard_Real Tolerance (const Handle(Adaptor3d_HVertex)& V, const Handle(Adaptor2d_HCurve2d)& A); + + static Standard_Boolean SingularOnUMin (const Handle(Adaptor3d_HSurface)& S); + + static Standard_Boolean SingularOnUMax (const Handle(Adaptor3d_HSurface)& S); + + static Standard_Boolean SingularOnVMin (const Handle(Adaptor3d_HSurface)& S); + + static Standard_Boolean SingularOnVMax (const Handle(Adaptor3d_HSurface)& S); + + Standard_EXPORT static Standard_Integer NbSamplesU (const Handle(Adaptor3d_HSurface)& S, const Standard_Real u1, const Standard_Real u2); + + Standard_EXPORT static Standard_Integer NbSamplesV (const Handle(Adaptor3d_HSurface)& S, const Standard_Real v1, const Standard_Real v2); + + //! Returns the parametric limits on the arc C. + //! These limits must be finite : they are either + //! the real limits of the arc, for a finite arc, + //! or a bounding box for an infinite arc. + Standard_EXPORT static void Bounds (const Handle(Adaptor2d_HCurve2d)& C, Standard_Real& Ufirst, Standard_Real& Ulast); + + static Handle(Adaptor2d_HCurve2d) CurveOnSurf (const Handle(Adaptor2d_HCurve2d)& C, const Handle(Adaptor3d_HSurface)& S); + + + + +protected: + + + + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BRepBlend_BlendTool_HeaderFile diff --git a/src/BRepBlend/BRepBlend_CSCircular.hxx b/src/BRepBlend/BRepBlend_CSCircular.hxx new file mode 100644 index 0000000000..604f3d03b1 --- /dev/null +++ b/src/BRepBlend/BRepBlend_CSCircular.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_CSCircular_HeaderFile +#define _BRepBlend_CSCircular_HeaderFile + +#include + +typedef BlendFunc_CSCircular BRepBlend_CSCircular; + + +#endif // _BRepBlend_CSCircular_HeaderFile diff --git a/src/BRepBlend/BRepBlend_CSConstRad.hxx b/src/BRepBlend/BRepBlend_CSConstRad.hxx new file mode 100644 index 0000000000..629c4e84d8 --- /dev/null +++ b/src/BRepBlend/BRepBlend_CSConstRad.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_CSConstRad_HeaderFile +#define _BRepBlend_CSConstRad_HeaderFile + +#include + +typedef BlendFunc_CSConstRad BRepBlend_CSConstRad; + + +#endif // _BRepBlend_CSConstRad_HeaderFile diff --git a/src/BRepBlend/BRepBlend_CSWalking.hxx b/src/BRepBlend/BRepBlend_CSWalking.hxx new file mode 100644 index 0000000000..27cbe6d7da --- /dev/null +++ b/src/BRepBlend/BRepBlend_CSWalking.hxx @@ -0,0 +1,188 @@ +// 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_CSWalking_HeaderFile +#define _BRepBlend_CSWalking_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class BRepBlend_Line; +class Adaptor3d_HSurface; +class Adaptor3d_HCurve; +class Adaptor3d_TopolTool; +class StdFail_NotDone; +class Adaptor3d_HVertex; +class Adaptor2d_HCurve2d; +class BRepBlend_HCurve2dTool; +class Adaptor3d_HSurfaceTool; +class BRepBlend_HCurveTool; +class BRepBlend_BlendTool; +class BRepBlend_PointOnRst; +class BRepBlend_Extremity; +class Blend_CSFunction; +class IntSurf_Transition; +class gp_Pnt; +class gp_Pnt2d; +class gp_Vec; +class gp_Vec2d; + + + +class BRepBlend_CSWalking +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepBlend_CSWalking(const Handle(Adaptor3d_HCurve)& Curv, const Handle(Adaptor3d_HSurface)& Surf, const Handle(Adaptor3d_TopolTool)& Domain); + + Standard_EXPORT void Perform (Blend_CSFunction& F, const Standard_Real Pdep, const Standard_Real Pmax, const Standard_Real MaxStep, const Standard_Real TolGuide, const math_Vector& Soldep, const Standard_Real Tolesp, const Standard_Real Fleche, const Standard_Boolean Appro = Standard_False); + + Standard_EXPORT Standard_Boolean Complete (Blend_CSFunction& F, const Standard_Real Pmin); + + Standard_Boolean IsDone() const; + + const Handle(BRepBlend_Line)& Line() const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT void InternalPerform (Blend_CSFunction& F, math_Vector& Sol, const Standard_Real Bound); + + Standard_EXPORT void Transition (const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Param, IntSurf_Transition& TLine, IntSurf_Transition& TArc); + + Standard_EXPORT void MakeExtremity (BRepBlend_Extremity& Extrem, const Standard_Integer Index, const Standard_Real Param, const Standard_Boolean IsVtx, const Handle(Adaptor3d_HVertex)& Vtx); + + Standard_EXPORT Blend_Status CheckDeflectionOnSurf (const gp_Pnt& Psurf, const gp_Pnt2d& Ponsurf, const gp_Vec& Tgsurf, const gp_Vec2d& Tgonsurf); + + Standard_EXPORT Blend_Status CheckDeflectionOnCurv (const gp_Pnt& Pcurv, const Standard_Real Poncurv, const gp_Vec& Tgcurv); + + Standard_EXPORT Blend_Status TestArret (Blend_CSFunction& F, const math_Vector& Sol, const Standard_Boolean TestDeflection, const Blend_Status State); + + + Standard_Boolean done; + Handle(BRepBlend_Line) line; + Handle(Adaptor3d_HSurface) surf; + Handle(Adaptor3d_HCurve) curv; + Handle(Adaptor3d_TopolTool) domain; + Standard_Real tolesp; + Standard_Real tolgui; + Standard_Real pasmax; + Standard_Real fleche; + Standard_Real param; + Standard_Real firstparam; + Handle(TColStd_HArray1OfReal) firstsol; + Blend_Point previousP; + Standard_Boolean rebrou; + Standard_Boolean iscomplete; + Standard_Boolean comptra; + Standard_Real sens; + + +}; + +#define TheVertex Handle(Adaptor3d_HVertex) +#define TheVertex_hxx +#define TheArc Handle(Adaptor2d_HCurve2d) +#define TheArc_hxx +#define TheSurface Handle(Adaptor3d_HSurface) +#define TheSurface_hxx +#define TheCurve Handle(Adaptor3d_HCurve) +#define TheCurve_hxx +#define TheVertexTool Standard_Integer +#define TheVertexTool_hxx +#define TheArcTool BRepBlend_HCurve2dTool +#define TheArcTool_hxx +#define TheSurfaceTool Adaptor3d_HSurfaceTool +#define TheSurfaceTool_hxx +#define TheCurveTool BRepBlend_HCurveTool +#define TheCurveTool_hxx +#define Handle_TheTopolTool Handle(Adaptor3d_TopolTool) +#define TheTopolTool Adaptor3d_TopolTool +#define TheTopolTool_hxx +#define TheBlendTool BRepBlend_BlendTool +#define TheBlendTool_hxx +#define ThePointOnRst BRepBlend_PointOnRst +#define ThePointOnRst_hxx +#define TheSeqPointOnRst BRepBlend_SequenceOfPointOnRst +#define TheSeqPointOnRst_hxx +#define TheExtremity BRepBlend_Extremity +#define TheExtremity_hxx +#define Handle_TheLine Handle(BRepBlend_Line) +#define TheLine BRepBlend_Line +#define TheLine_hxx +#define Blend_CSWalking BRepBlend_CSWalking +#define Blend_CSWalking_hxx + +#include + +#undef TheVertex +#undef TheVertex_hxx +#undef TheArc +#undef TheArc_hxx +#undef TheSurface +#undef TheSurface_hxx +#undef TheCurve +#undef TheCurve_hxx +#undef TheVertexTool +#undef TheVertexTool_hxx +#undef TheArcTool +#undef TheArcTool_hxx +#undef TheSurfaceTool +#undef TheSurfaceTool_hxx +#undef TheCurveTool +#undef TheCurveTool_hxx +#undef Handle_TheTopolTool +#undef TheTopolTool +#undef TheTopolTool_hxx +#undef TheBlendTool +#undef TheBlendTool_hxx +#undef ThePointOnRst +#undef ThePointOnRst_hxx +#undef TheSeqPointOnRst +#undef TheSeqPointOnRst_hxx +#undef TheExtremity +#undef TheExtremity_hxx +#undef Handle_TheLine +#undef TheLine +#undef TheLine_hxx +#undef Blend_CSWalking +#undef Blend_CSWalking_hxx + + + + +#endif // _BRepBlend_CSWalking_HeaderFile diff --git a/src/BRepBlend/BRepBlend_CSWalking_0.cxx b/src/BRepBlend/BRepBlend_CSWalking_0.cxx new file mode 100644 index 0000000000..bbd04670ee --- /dev/null +++ b/src/BRepBlend/BRepBlend_CSWalking_0.cxx @@ -0,0 +1,73 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define TheVertex Handle(Adaptor3d_HVertex) +#define TheVertex_hxx +#define TheArc Handle(Adaptor2d_HCurve2d) +#define TheArc_hxx +#define TheSurface Handle(Adaptor3d_HSurface) +#define TheSurface_hxx +#define TheCurve Handle(Adaptor3d_HCurve) +#define TheCurve_hxx +#define TheVertexTool Standard_Integer +#define TheVertexTool_hxx +#define TheArcTool BRepBlend_HCurve2dTool +#define TheArcTool_hxx +#define TheSurfaceTool Adaptor3d_HSurfaceTool +#define TheSurfaceTool_hxx +#define TheCurveTool BRepBlend_HCurveTool +#define TheCurveTool_hxx +#define Handle_TheTopolTool Handle(Adaptor3d_TopolTool) +#define TheTopolTool Adaptor3d_TopolTool +#define TheTopolTool_hxx +#define TheBlendTool BRepBlend_BlendTool +#define TheBlendTool_hxx +#define ThePointOnRst BRepBlend_PointOnRst +#define ThePointOnRst_hxx +#define TheSeqPointOnRst BRepBlend_SequenceOfPointOnRst +#define TheSeqPointOnRst_hxx +#define TheExtremity BRepBlend_Extremity +#define TheExtremity_hxx +#define Handle_TheLine Handle(BRepBlend_Line) +#define TheLine BRepBlend_Line +#define TheLine_hxx +#define Blend_CSWalking BRepBlend_CSWalking +#define Blend_CSWalking_hxx +#include + diff --git a/src/BRepBlend/BRepBlend_ChAsym.hxx b/src/BRepBlend/BRepBlend_ChAsym.hxx new file mode 100644 index 0000000000..17057a5b7c --- /dev/null +++ b/src/BRepBlend/BRepBlend_ChAsym.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_ChAsym_HeaderFile +#define _BRepBlend_ChAsym_HeaderFile + +#include + +typedef BlendFunc_ChAsym BRepBlend_ChAsym; + + +#endif // _BRepBlend_ChAsym_HeaderFile diff --git a/src/BRepBlend/BRepBlend_ChAsymInv.hxx b/src/BRepBlend/BRepBlend_ChAsymInv.hxx new file mode 100644 index 0000000000..7fc37cc915 --- /dev/null +++ b/src/BRepBlend/BRepBlend_ChAsymInv.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_ChAsymInv_HeaderFile +#define _BRepBlend_ChAsymInv_HeaderFile + +#include + +typedef BlendFunc_ChAsymInv BRepBlend_ChAsymInv; + + +#endif // _BRepBlend_ChAsymInv_HeaderFile diff --git a/src/BRepBlend/BRepBlend_ChamfInv.hxx b/src/BRepBlend/BRepBlend_ChamfInv.hxx new file mode 100644 index 0000000000..a96f69fb58 --- /dev/null +++ b/src/BRepBlend/BRepBlend_ChamfInv.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_ChamfInv_HeaderFile +#define _BRepBlend_ChamfInv_HeaderFile + +#include + +typedef BlendFunc_ChamfInv BRepBlend_ChamfInv; + + +#endif // _BRepBlend_ChamfInv_HeaderFile diff --git a/src/BRepBlend/BRepBlend_Chamfer.hxx b/src/BRepBlend/BRepBlend_Chamfer.hxx new file mode 100644 index 0000000000..b9e7a3b476 --- /dev/null +++ b/src/BRepBlend/BRepBlend_Chamfer.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_Chamfer_HeaderFile +#define _BRepBlend_Chamfer_HeaderFile + +#include + +typedef BlendFunc_Chamfer BRepBlend_Chamfer; + + +#endif // _BRepBlend_Chamfer_HeaderFile diff --git a/src/BRepBlend/BRepBlend_ConstRad.hxx b/src/BRepBlend/BRepBlend_ConstRad.hxx new file mode 100644 index 0000000000..95ed85823f --- /dev/null +++ b/src/BRepBlend/BRepBlend_ConstRad.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_ConstRad_HeaderFile +#define _BRepBlend_ConstRad_HeaderFile + +#include + +typedef BlendFunc_ConstRad BRepBlend_ConstRad; + + +#endif // _BRepBlend_ConstRad_HeaderFile diff --git a/src/BRepBlend/BRepBlend_ConstRadInv.hxx b/src/BRepBlend/BRepBlend_ConstRadInv.hxx new file mode 100644 index 0000000000..793fb74619 --- /dev/null +++ b/src/BRepBlend/BRepBlend_ConstRadInv.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_ConstRadInv_HeaderFile +#define _BRepBlend_ConstRadInv_HeaderFile + +#include + +typedef BlendFunc_ConstRadInv BRepBlend_ConstRadInv; + + +#endif // _BRepBlend_ConstRadInv_HeaderFile diff --git a/src/BRepBlend/BRepBlend_CurvPointRadInv.cdl b/src/BRepBlend/BRepBlend_CurvPointRadInv.cdl deleted file mode 100644 index d519d5972a..0000000000 --- a/src/BRepBlend/BRepBlend_CurvPointRadInv.cdl +++ /dev/null @@ -1,97 +0,0 @@ --- 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. - -class CurvPointRadInv from BRepBlend - -inherits CurvPointFuncInv from Blend - - ---Purpose: 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. - -uses - Pnt from gp, - Vector from math, - Matrix from math, - HCurve from Adaptor3d - - -is - Create(C1 : HCurve from Adaptor3d; C2 : HCurve from Adaptor3d) - returns CurvPointRadInv from BRepBlend; - - Set(me: in out; Choix: Integer from Standard) - is static; - - NbEquations(me) - ---Purpose: returns 2. - returns Integer from Standard; - - Value(me: in out; X: Vector; F: out Vector) - ---Purpose: computes the values of the Functions for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Derivatives(me: in out; X: Vector; D: out Matrix) - ---Purpose: returns the values of the derivatives for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Values(me: in out; X: Vector; F: out Vector; D: out Matrix) - ---Purpose: returns the values of the functions and the derivatives - -- for the variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Set(me: in out; P : Pnt from gp); - ---Purpose: Set the Point on which a solution has to be found. - - GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard); - ---Purpose: Returns in the vector Tolerance the parametric tolerance - -- for each of the 3 variables; - -- Tol is the tolerance used in 3d space. - - GetBounds(me; InfBound,SupBound: out Vector from math); - ---Purpose: 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. - - IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard) - ---Purpose: Returns Standard_True if Sol is a zero of the function. - -- Tol is the tolerance used in 3d space. - returns Boolean from Standard; - -fields - - curv1 : HCurve from Adaptor3d; - curv2 : HCurve from Adaptor3d; - point : Pnt from gp; - choix : Integer from Standard; - -end CurvPointRadInv; diff --git a/src/BRepBlend/BRepBlend_CurvPointRadInv.cxx b/src/BRepBlend/BRepBlend_CurvPointRadInv.cxx index 99fe82bfc7..239bb4cfb3 100644 --- a/src/BRepBlend/BRepBlend_CurvPointRadInv.cxx +++ b/src/BRepBlend/BRepBlend_CurvPointRadInv.cxx @@ -14,13 +14,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include //======================================================================= //function : BRepBlend_CurvPointRadInv //purpose : //======================================================================= - BRepBlend_CurvPointRadInv::BRepBlend_CurvPointRadInv (const Handle(Adaptor3d_HCurve)& C1, const Handle(Adaptor3d_HCurve)& C2) : curv1(C1), curv2(C2) diff --git a/src/BRepBlend/BRepBlend_CurvPointRadInv.hxx b/src/BRepBlend/BRepBlend_CurvPointRadInv.hxx new file mode 100644 index 0000000000..c1c24c648a --- /dev/null +++ b/src/BRepBlend/BRepBlend_CurvPointRadInv.hxx @@ -0,0 +1,122 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +class Adaptor3d_HCurve; +class math_Matrix; +class gp_Pnt; + + +//! 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_HCurve)& C1, const Handle(Adaptor3d_HCurve)& 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_HCurve) curv1; + Handle(Adaptor3d_HCurve) curv2; + gp_Pnt point; + Standard_Integer choix; + + +}; + + + + + + + +#endif // _BRepBlend_CurvPointRadInv_HeaderFile diff --git a/src/BRepBlend/BRepBlend_EvolRad.hxx b/src/BRepBlend/BRepBlend_EvolRad.hxx new file mode 100644 index 0000000000..b5b7482427 --- /dev/null +++ b/src/BRepBlend/BRepBlend_EvolRad.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_EvolRad_HeaderFile +#define _BRepBlend_EvolRad_HeaderFile + +#include + +typedef BlendFunc_EvolRad BRepBlend_EvolRad; + + +#endif // _BRepBlend_EvolRad_HeaderFile diff --git a/src/BRepBlend/BRepBlend_EvolRadInv.hxx b/src/BRepBlend/BRepBlend_EvolRadInv.hxx new file mode 100644 index 0000000000..9063191f97 --- /dev/null +++ b/src/BRepBlend/BRepBlend_EvolRadInv.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_EvolRadInv_HeaderFile +#define _BRepBlend_EvolRadInv_HeaderFile + +#include + +typedef BlendFunc_EvolRadInv BRepBlend_EvolRadInv; + + +#endif // _BRepBlend_EvolRadInv_HeaderFile diff --git a/src/BRepBlend/BRepBlend_Extremity.cdl b/src/BRepBlend/BRepBlend_Extremity.cdl deleted file mode 100644 index dc1d17ccd1..0000000000 --- a/src/BRepBlend/BRepBlend_Extremity.cdl +++ /dev/null @@ -1,237 +0,0 @@ --- Created on: 1994-01-25 --- 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. - -class Extremity from BRepBlend - ---Purpose: - -uses Pnt from gp, - Vec from gp, - Transition from IntSurf, - HVertex from Adaptor3d, - HCurve2d from Adaptor2d, - PointOnRst from BRepBlend, - SequenceOfPointOnRst from BRepBlend - -raises DomainError from Standard, - OutOfRange from Standard - -is - - Create - - returns Extremity from BRepBlend; - - - Create(P: Pnt from gp; - U,V,Param: Real from Standard; Tol: Real from Standard) - ---Purpose: Creates an extremity on a surface - returns Extremity from BRepBlend; - - - Create(P: Pnt from gp; - U,V,Param: Real from Standard; Tol: Real from Standard; - Vtx: HVertex from Adaptor3d) - ---Purpose: Creates an extremity on a surface. This extremity matches - -- the vertex . - - returns Extremity from BRepBlend; - - - Create(P: Pnt from gp; - W, Param: Real from Standard; Tol: Real from Standard) - ---Purpose: Creates an extremity on a curve - returns Extremity from BRepBlend; - - - SetValue(me: in out; P: Pnt from gp; - U,V,Param : Real from Standard; - Tol: Real from Standard) - ---Purpose: Set the values for an extremity on a surface. - is static; - - - SetValue(me: in out; P: Pnt from gp; - U,V,Param: Real from Standard; - Tol: Real from Standard; Vtx: HVertex from Adaptor3d) - ---Purpose: Set the values for an extremity on a surface.This - -- extremity matches the vertex . - is static; - - - SetValue(me: in out; P: Pnt from gp; - W,Param: Real from Standard; - Tol: Real from Standard) - ---Purpose: Set the values for an extremity on curve. - is static; - - - Value(me) - - ---Purpose: This method returns the value of the point in 3d space. - - returns Pnt from gp - ---C++: inline - ---C++: return const& - - is static; - - SetTangent(me: in out; Tangent : Vec from gp) - ---Purpose: Set the tangent vector for an extremity on a - -- surface. - ---C++: inline - is static; - - HasTangent(me) - - ---Purpose: Returns TRUE if the Tangent is stored. - - returns Boolean from Standard - ---C++: inline - - is static; - - Tangent(me) - - ---Purpose: This method returns the value of tangent in 3d - -- space. - - returns Vec from gp - ---C++: inline - ---C++: return const& - - is static; - - Tolerance(me) - - ---Purpose: This method returns the fuzziness on the point - -- in 3d space. - - returns Real from Standard - ---C++: inline - - is static; - - - --- methods for an extremity on a surface - - SetVertex(me: in out; V: HVertex from Adaptor3d) - ---Purpose: Set the values for an extremity on a curve. - is static; - - - AddArc(me: in out; A: HCurve2d from Adaptor2d; Param: Real from Standard; - TLine, TArc: Transition from IntSurf) - - ---Purpose: Sets the values of a point which is on the arc - -- A, at parameter Param. - - - is static; - - - Parameters(me; U,V: out Real from Standard) - - ---Purpose: This method returns the parameters of the point - -- on the concerned surface. - - ---C++: inline - is static; - - - IsVertex(me) - - ---Purpose: Returns Standard_True when the point coincide with - -- an existing vertex. - - returns Boolean from Standard - ---C++: inline - - is static; - - - Vertex(me) - - ---Purpose: Returns the vertex when IsVertex returns Standard_True. - - returns any HVertex from Adaptor3d - ---C++: inline - ---C++: return const& - - raises DomainError from Standard - --- The exception is raised when IsVertex returns Standard_False - is static; - - - NbPointOnRst(me) - - ---Purpose: Returns the number of arc containing the extremity. - -- If the method returns 0, the point is inside the - -- surface. - -- Otherwise, the extremity lies on at least 1 arc, - -- and all the information (arc, parameter, transitions) - -- are given by the point on restriction (PointOnRst) - -- returned by the next method. - - returns Integer from Standard - ---C++: inline - - is static; - - - PointOnRst(me; Index: Integer from Standard) - - ---Purpose: - - returns any PointOnRst from BRepBlend - ---C++: inline - ---C++: return const& - - raises OutOfRange from Standard - --- The exception is raised when Index <=0 or Index > NbPointOnRst - is static; - - --- method for an extremity on a curve - - Parameter(me) - - returns Real from Standard - ---C++: inline - is static; - --- method for the parameter on the guide - ParameterOnGuide(me) - - returns Real from Standard - ---C++: inline - is static; - -fields - vtx : HVertex from Adaptor3d; - seqpt : SequenceOfPointOnRst from BRepBlend; - pt : Pnt from gp; - tang : Vec from gp; - param : Real from Standard; - u : Real from Standard; - v : Real from Standard; - tol : Real from Standard; - isvtx : Boolean from Standard; - hastang: Boolean from Standard; - -end Extremity; - - diff --git a/src/BRepBlend/BRepBlend_Extremity.cxx b/src/BRepBlend/BRepBlend_Extremity.cxx index d0ba65148f..85f96dcc4f 100644 --- a/src/BRepBlend/BRepBlend_Extremity.cxx +++ b/src/BRepBlend/BRepBlend_Extremity.cxx @@ -12,8 +12,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include #include +#include +#include +#include +#include +#include BRepBlend_Extremity::BRepBlend_Extremity (): pt(gp_Pnt(0,0,0)), diff --git a/src/BRepBlend/BRepBlend_Extremity.hxx b/src/BRepBlend/BRepBlend_Extremity.hxx new file mode 100644 index 0000000000..d66db8a26a --- /dev/null +++ b/src/BRepBlend/BRepBlend_Extremity.hxx @@ -0,0 +1,155 @@ +// Created on: 1994-01-25 +// 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 _BRepBlend_Extremity_HeaderFile +#define _BRepBlend_Extremity_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class Adaptor3d_HVertex; +class Standard_DomainError; +class Standard_OutOfRange; +class gp_Pnt; +class gp_Vec; +class Adaptor2d_HCurve2d; +class IntSurf_Transition; +class BRepBlend_PointOnRst; + + + +class BRepBlend_Extremity +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepBlend_Extremity(); + + //! Creates an extremity on a surface + Standard_EXPORT BRepBlend_Extremity(const gp_Pnt& P, const Standard_Real U, const Standard_Real V, const Standard_Real Param, const Standard_Real Tol); + + //! Creates an extremity on a surface. This extremity matches + //! the vertex . + Standard_EXPORT BRepBlend_Extremity(const gp_Pnt& P, const Standard_Real U, const Standard_Real V, const Standard_Real Param, const Standard_Real Tol, const Handle(Adaptor3d_HVertex)& Vtx); + + //! Creates an extremity on a curve + Standard_EXPORT BRepBlend_Extremity(const gp_Pnt& P, const Standard_Real W, const Standard_Real Param, const Standard_Real Tol); + + //! Set the values for an extremity on a surface. + Standard_EXPORT void SetValue (const gp_Pnt& P, const Standard_Real U, const Standard_Real V, const Standard_Real Param, const Standard_Real Tol); + + //! Set the values for an extremity on a surface.This + //! extremity matches the vertex . + Standard_EXPORT void SetValue (const gp_Pnt& P, const Standard_Real U, const Standard_Real V, const Standard_Real Param, const Standard_Real Tol, const Handle(Adaptor3d_HVertex)& Vtx); + + //! Set the values for an extremity on curve. + Standard_EXPORT void SetValue (const gp_Pnt& P, const Standard_Real W, const Standard_Real Param, const Standard_Real Tol); + + //! This method returns the value of the point in 3d space. + const gp_Pnt& Value() const; + + //! Set the tangent vector for an extremity on a + //! surface. + void SetTangent (const gp_Vec& Tangent); + + //! Returns TRUE if the Tangent is stored. + Standard_Boolean HasTangent() const; + + //! This method returns the value of tangent in 3d + //! space. + const gp_Vec& Tangent() const; + + //! This method returns the fuzziness on the point + //! in 3d space. + Standard_Real Tolerance() const; + + //! Set the values for an extremity on a curve. + Standard_EXPORT void SetVertex (const Handle(Adaptor3d_HVertex)& V); + + //! Sets the values of a point which is on the arc + //! A, at parameter Param. + Standard_EXPORT void AddArc (const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Param, const IntSurf_Transition& TLine, const IntSurf_Transition& TArc); + + //! This method returns the parameters of the point + //! on the concerned surface. + void Parameters (Standard_Real& U, Standard_Real& V) const; + + //! Returns Standard_True when the point coincide with + //! an existing vertex. + Standard_Boolean IsVertex() const; + + //! Returns the vertex when IsVertex returns Standard_True. + const Handle(Adaptor3d_HVertex)& Vertex() const; + + //! Returns the number of arc containing the extremity. + //! If the method returns 0, the point is inside the + //! surface. + //! Otherwise, the extremity lies on at least 1 arc, + //! and all the information (arc, parameter, transitions) + //! are given by the point on restriction (PointOnRst) + //! returned by the next method. + Standard_Integer NbPointOnRst() const; + + const BRepBlend_PointOnRst& PointOnRst (const Standard_Integer Index) const; + + Standard_Real Parameter() const; + + Standard_Real ParameterOnGuide() const; + + + + +protected: + + + + + +private: + + + + Handle(Adaptor3d_HVertex) vtx; + BRepBlend_SequenceOfPointOnRst seqpt; + gp_Pnt pt; + gp_Vec tang; + Standard_Real param; + Standard_Real u; + Standard_Real v; + Standard_Real tol; + Standard_Boolean isvtx; + Standard_Boolean hastang; + + +}; + + +#include + + + + + +#endif // _BRepBlend_Extremity_HeaderFile diff --git a/src/BRepBlend/BRepBlend_HCurve2dTool.cdl b/src/BRepBlend/BRepBlend_HCurve2dTool.cdl deleted file mode 100644 index b7122b312f..0000000000 --- a/src/BRepBlend/BRepBlend_HCurve2dTool.cdl +++ /dev/null @@ -1,236 +0,0 @@ --- 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. - -class HCurve2dTool from BRepBlend - -uses - Array1OfReal from TColStd, - Shape from GeomAbs, - CurveType from GeomAbs, - Vec2d from gp, - Pnt2d from gp, - Circ2d from gp, - Elips2d from gp, - Hypr2d from gp, - Parab2d from gp, - Lin2d from gp, - BezierCurve from Geom2d, - BSplineCurve from Geom2d, - HCurve2d from Adaptor2d - -raises - - OutOfRange from Standard, - NoSuchObject from Standard, - DomainError from Standard - -is - - -- - -- Global methods - Apply to the whole curve. - -- - - FirstParameter(myclass; C: HCurve2d from Adaptor2d) returns Real - ---C++: inline - ; - - - LastParameter(myclass; C: HCurve2d from Adaptor2d) returns Real - ---C++: inline - ; - - -- - -- Services to break the curves to the expected continuity - -- - -- If for example you need the curve to be C2 and the method - -- Continuity returns you something lower than C2 (say C1 for - -- example). - -- - -- First compute the number of intervals with the requested - -- continuity with the method NbIntervals(). Note that if the - -- continuity is higher than the one you need NbIntervals will - -- return 1. - -- - -- Then you get the parameters bounding the intervals with the - -- method Intervals, using an array of length at least - -- NbIntervals()+1. - -- - -- If you need to create a curve with a restricted span you can - -- use the method Trim(). - - - Continuity(myclass; C: HCurve2d from Adaptor2d) returns Shape from GeomAbs - ---Purpose: - ---C++: inline - ; - - NbIntervals(myclass; C: HCurve2d from Adaptor2d; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of intervals for continuity - -- . May be one if Continuity(myclass) >= - ---C++: inline - ; - - Intervals(myclass; C: HCurve2d from Adaptor2d; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - raises - OutOfRange from Standard - ---C++: inline - ; - - IsClosed(myclass; C: HCurve2d from Adaptor2d) returns Boolean - ---C++: inline - ; - - IsPeriodic(myclass; C: HCurve2d from Adaptor2d) returns Boolean - ---C++: inline - ; - - Period(myclass; C: HCurve2d from Adaptor2d) returns Real - raises - DomainError from Standard -- if the curve is not periodic - ---C++: inline - ; - - Value(myclass; C: HCurve2d from Adaptor2d; U : Real) returns Pnt2d from gp - --- Purpose : Computes the point of parameter U on the curve. - ---C++: inline - ; - - D0 (myclass; C: HCurve2d from Adaptor2d; U : Real; P : out Pnt2d from gp) - --- Purpose : Computes the point of parameter U on the curve. - ---C++: inline - ; - - D1 (myclass; C: HCurve2d from Adaptor2d; U : Real; P : out Pnt2d from gp ; V : out Vec2d from gp) - --- Purpose : Computes the point of parameter U on the curve with its - -- first derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C1. - ---C++: inline - ; - - D2 (myclass; C: HCurve2d from Adaptor2d; U : Real; P : out Pnt2d from gp; V1, V2 : out Vec2d from gp) - --- Purpose : - -- Returns the point P of parameter U, the first and second - -- derivatives V1 and V2. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C2. - ---C++: inline - ; - - D3 (myclass; C: HCurve2d from Adaptor2d; U : Real; P : out Pnt2d from gp; V1, V2, V3 : out Vec2d from gp) - --- Purpose : - -- Returns the point P of parameter U, the first, the second - -- and the third derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C3. - ---C++: inline - ; - - DN (myclass; C: HCurve2d from Adaptor2d; U : Real; N : Integer) returns Vec2d from gp - --- Purpose : - -- The returned vector gives the value of the derivative for the - -- order of derivation N. - raises - DomainError from Standard, - --- Purpose : Raised if the continuity of the current interval - -- is not CN. - OutOfRange from Standard - --- Purpose : Raised if N < 1. - ---C++: inline - ; - - Resolution(myclass; C: HCurve2d from Adaptor2d; R3d : Real) returns Real - ---Purpose : Returns the parametric resolution corresponding - -- to the real space resolution . - ---C++: inline - ; - - GetType(myclass; C: HCurve2d from Adaptor2d) returns CurveType from GeomAbs - ---Purpose: Returns the type of the curve in the current - -- interval : Line, Circle, Ellipse, Hyperbola, - -- Parabola, BezierCurve, BSplineCurve, OtherCurve. - ---C++: inline - ; - - -- - -- The following methods must be called when GetType returned - -- the corresponding type. - -- - - Line(myclass; C: HCurve2d from Adaptor2d) returns Lin2d from gp - raises - NoSuchObject from Standard - ---C++: inline - ; - - Circle(myclass; C: HCurve2d from Adaptor2d) returns Circ2d from gp - raises - NoSuchObject from Standard - ---C++: inline - ; - - Ellipse(myclass; C: HCurve2d from Adaptor2d) returns Elips2d from gp - raises - NoSuchObject from Standard - ---C++: inline - ; - - Hyperbola(myclass; C: HCurve2d from Adaptor2d) returns Hypr2d from gp - raises - NoSuchObject from Standard - ---C++: inline - ; - - Parabola(myclass; C: HCurve2d from Adaptor2d) returns Parab2d from gp - raises - NoSuchObject from Standard - ---C++: inline - ; - - Bezier(myclass; C: HCurve2d from Adaptor2d) returns BezierCurve from Geom2d - raises - NoSuchObject from Standard - ---C++: inline - ; - - BSpline(myclass; C: HCurve2d from Adaptor2d) returns BSplineCurve from Geom2d - raises - NoSuchObject from Standard - ---C++: inline - ; - - - - - - NbSamples(myclass; C: HCurve2d from Adaptor2d; U0,U1: Real from Standard) - returns Integer from Standard; - -end HCurve2dTool; - - diff --git a/src/BRepBlend/BRepBlend_HCurve2dTool.cxx b/src/BRepBlend/BRepBlend_HCurve2dTool.cxx index 5697f42491..6e0632a371 100644 --- a/src/BRepBlend/BRepBlend_HCurve2dTool.cxx +++ b/src/BRepBlend/BRepBlend_HCurve2dTool.cxx @@ -14,16 +14,20 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include +#include +#include #include #include - +#include +#include +#include +#include +#include +#include +#include #include - //============================================================ Standard_Integer BRepBlend_HCurve2dTool::NbSamples (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U0, diff --git a/src/BRepBlend/BRepBlend_HCurve2dTool.hxx b/src/BRepBlend/BRepBlend_HCurve2dTool.hxx new file mode 100644 index 0000000000..bb4d60b3f2 --- /dev/null +++ b/src/BRepBlend/BRepBlend_HCurve2dTool.hxx @@ -0,0 +1,161 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class Adaptor2d_HCurve2d; +class gp_Pnt2d; +class gp_Vec2d; +class Geom2d_BezierCurve; +class Geom2d_BSplineCurve; + + + +class BRepBlend_HCurve2dTool +{ +public: + + DEFINE_STANDARD_ALLOC + + + static Standard_Real FirstParameter (const Handle(Adaptor2d_HCurve2d)& C); + + static Standard_Real LastParameter (const Handle(Adaptor2d_HCurve2d)& C); + + static GeomAbs_Shape Continuity (const Handle(Adaptor2d_HCurve2d)& C); + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(myclass) >= + static Standard_Integer NbIntervals (const Handle(Adaptor2d_HCurve2d)& C, const GeomAbs_Shape S); + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! + //! The array must provide enough room to accomodate + //! for the parameters. i.e. T.Length() > NbIntervals() + static void Intervals (const Handle(Adaptor2d_HCurve2d)& C, TColStd_Array1OfReal& T, const GeomAbs_Shape S); + + static Standard_Boolean IsClosed (const Handle(Adaptor2d_HCurve2d)& C); + + static Standard_Boolean IsPeriodic (const Handle(Adaptor2d_HCurve2d)& C); + + static Standard_Real Period (const Handle(Adaptor2d_HCurve2d)& C); + + //! Computes the point of parameter U on the curve. + static gp_Pnt2d Value (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U); + + //! Computes the point of parameter U on the curve. + static void D0 (const Handle(Adaptor2d_HCurve2d)& 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_HCurve2d)& 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_HCurve2d)& 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_HCurve2d)& 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_HCurve2d)& 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_HCurve2d)& 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_HCurve2d)& C); + + static gp_Lin2d Line (const Handle(Adaptor2d_HCurve2d)& C); + + static gp_Circ2d Circle (const Handle(Adaptor2d_HCurve2d)& C); + + static gp_Elips2d Ellipse (const Handle(Adaptor2d_HCurve2d)& C); + + static gp_Hypr2d Hyperbola (const Handle(Adaptor2d_HCurve2d)& C); + + static gp_Parab2d Parabola (const Handle(Adaptor2d_HCurve2d)& C); + + static Handle(Geom2d_BezierCurve) Bezier (const Handle(Adaptor2d_HCurve2d)& C); + + static Handle(Geom2d_BSplineCurve) BSpline (const Handle(Adaptor2d_HCurve2d)& C); + + Standard_EXPORT static Standard_Integer NbSamples (const Handle(Adaptor2d_HCurve2d)& C, const Standard_Real U0, const Standard_Real U1); + + + + +protected: + + + + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BRepBlend_HCurve2dTool_HeaderFile diff --git a/src/BRepBlend/BRepBlend_HCurveTool.cdl b/src/BRepBlend/BRepBlend_HCurveTool.cdl deleted file mode 100644 index a4913d494f..0000000000 --- a/src/BRepBlend/BRepBlend_HCurveTool.cdl +++ /dev/null @@ -1,236 +0,0 @@ --- 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. - -class HCurveTool from BRepBlend - -uses - Array1OfReal from TColStd, - Shape from GeomAbs, - CurveType from GeomAbs, - Vec from gp, - Pnt from gp, - Circ from gp, - Elips from gp, - Hypr from gp, - Parab from gp, - Lin from gp, - BezierCurve from Geom, - BSplineCurve from Geom, - HCurve from Adaptor3d - -raises - - OutOfRange from Standard, - NoSuchObject from Standard, - DomainError from Standard - -is - - -- - -- Global methods - Apply to the whole curve. - -- - - FirstParameter(myclass; C: HCurve from Adaptor3d) returns Real - ---C++: inline - ; - - - LastParameter(myclass; C: HCurve from Adaptor3d) returns Real - ---C++: inline - ; - - -- - -- Services to break the curves to the expected continuity - -- - -- If for example you need the curve to be C2 and the method - -- Continuity returns you something lower than C2 (say C1 for - -- example). - -- - -- First compute the number of intervals with the requested - -- continuity with the method NbIntervals(). Note that if the - -- continuity is higher than the one you need NbIntervals will - -- return 1. - -- - -- Then you get the parameters bounding the intervals with the - -- method Intervals, using an array of length at least - -- NbIntervals()+1. - -- - -- If you need to create a curve with a restricted span you can - -- use the method Trim(). - - - Continuity(myclass; C: HCurve from Adaptor3d) returns Shape from GeomAbs - ---Purpose: - ---C++: inline - ; - - NbIntervals(myclass; C: HCurve from Adaptor3d; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of intervals for continuity - -- . May be one if Continuity(myclass) >= - ---C++: inline - ; - - Intervals(myclass; C: HCurve from Adaptor3d; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - raises - OutOfRange from Standard - ---C++: inline - ; - - IsClosed(myclass; C: HCurve from Adaptor3d) returns Boolean - ---C++: inline - ; - - IsPeriodic(myclass; C: HCurve from Adaptor3d) returns Boolean - ---C++: inline - ; - - Period(myclass; C: HCurve from Adaptor3d) returns Real - raises - DomainError from Standard -- if the curve is not periodic - ---C++: inline - ; - - Value(myclass; C: HCurve from Adaptor3d; U : Real) returns Pnt from gp - --- Purpose : Computes the point of parameter U on the curve. - ---C++: inline - ; - - D0 (myclass; C: HCurve from Adaptor3d; U : Real; P : out Pnt from gp) - --- Purpose : Computes the point of parameter U on the curve. - ---C++: inline - ; - - D1 (myclass; C: HCurve from Adaptor3d; U : Real; P : out Pnt from gp ; V : out Vec from gp) - --- Purpose : Computes the point of parameter U on the curve with its - -- first derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C1. - ---C++: inline - ; - - D2 (myclass; C: HCurve from Adaptor3d; U : Real; P : out Pnt from gp; V1, V2 : out Vec from gp) - --- Purpose : - -- Returns the point P of parameter U, the first and second - -- derivatives V1 and V2. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C2. - ---C++: inline - ; - - D3 (myclass; C: HCurve from Adaptor3d; U : Real; P : out Pnt from gp; V1, V2, V3 : out Vec from gp) - --- Purpose : - -- Returns the point P of parameter U, the first, the second - -- and the third derivative. - raises - DomainError from Standard - --- Purpose : Raised if the continuity of the current interval - -- is not C3. - ---C++: inline - ; - - DN (myclass; C: HCurve from Adaptor3d; U : Real; N : Integer) returns Vec from gp - --- Purpose : - -- The returned vector gives the value of the derivative for the - -- order of derivation N. - raises - DomainError from Standard, - --- Purpose : Raised if the continuity of the current interval - -- is not CN. - OutOfRange from Standard - --- Purpose : Raised if N < 1. - ---C++: inline - ; - - Resolution(myclass; C: HCurve from Adaptor3d; R3d : Real) returns Real - ---Purpose : Returns the parametric resolution corresponding - -- to the real space resolution . - ---C++: inline - ; - - GetType(myclass; C: HCurve from Adaptor3d) returns CurveType from GeomAbs - ---Purpose: Returns the type of the curve in the current - -- interval : Line, Circle, Ellipse, Hyperbola, - -- Parabola, BezierCurve, BSplineCurve, OtherCurve. - ---C++: inline - ; - - -- - -- The following methods must be called when GetType returned - -- the corresponding type. - -- - - Line(myclass; C: HCurve from Adaptor3d) returns Lin from gp - raises - NoSuchObject from Standard - ---C++: inline - ; - - Circle(myclass; C: HCurve from Adaptor3d) returns Circ from gp - raises - NoSuchObject from Standard - ---C++: inline - ; - - Ellipse(myclass; C: HCurve from Adaptor3d) returns Elips from gp - raises - NoSuchObject from Standard - ---C++: inline - ; - - Hyperbola(myclass; C: HCurve from Adaptor3d) returns Hypr from gp - raises - NoSuchObject from Standard - ---C++: inline - ; - - Parabola(myclass; C: HCurve from Adaptor3d) returns Parab from gp - raises - NoSuchObject from Standard - ---C++: inline - ; - - Bezier(myclass; C: HCurve from Adaptor3d) returns BezierCurve from Geom - raises - NoSuchObject from Standard - ---C++: inline - ; - - BSpline(myclass; C: HCurve from Adaptor3d) returns BSplineCurve from Geom - raises - NoSuchObject from Standard - ---C++: inline - ; - - - - - - NbSamples(myclass; C: HCurve from Adaptor3d; U0,U1: Real from Standard) - returns Integer from Standard; - -end HCurveTool; - - diff --git a/src/BRepBlend/BRepBlend_HCurveTool.cxx b/src/BRepBlend/BRepBlend_HCurveTool.cxx index 7ca6e4c194..915c671423 100644 --- a/src/BRepBlend/BRepBlend_HCurveTool.cxx +++ b/src/BRepBlend/BRepBlend_HCurveTool.cxx @@ -14,16 +14,20 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include +#include +#include #include #include - +#include +#include +#include +#include +#include +#include +#include #include - //============================================================ Standard_Integer BRepBlend_HCurveTool::NbSamples (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U0, diff --git a/src/BRepBlend/BRepBlend_HCurveTool.hxx b/src/BRepBlend/BRepBlend_HCurveTool.hxx new file mode 100644 index 0000000000..aed677ec7a --- /dev/null +++ b/src/BRepBlend/BRepBlend_HCurveTool.hxx @@ -0,0 +1,161 @@ +// 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_HCurveTool_HeaderFile +#define _BRepBlend_HCurveTool_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Standard_NoSuchObject; +class Standard_DomainError; +class Adaptor3d_HCurve; +class gp_Pnt; +class gp_Vec; +class Geom_BezierCurve; +class Geom_BSplineCurve; + + + +class BRepBlend_HCurveTool +{ +public: + + DEFINE_STANDARD_ALLOC + + + static Standard_Real FirstParameter (const Handle(Adaptor3d_HCurve)& C); + + static Standard_Real LastParameter (const Handle(Adaptor3d_HCurve)& C); + + static GeomAbs_Shape Continuity (const Handle(Adaptor3d_HCurve)& C); + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(myclass) >= + static Standard_Integer NbIntervals (const Handle(Adaptor3d_HCurve)& C, const GeomAbs_Shape S); + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! + //! The array must provide enough room to accomodate + //! for the parameters. i.e. T.Length() > NbIntervals() + static void Intervals (const Handle(Adaptor3d_HCurve)& C, TColStd_Array1OfReal& T, const GeomAbs_Shape S); + + static Standard_Boolean IsClosed (const Handle(Adaptor3d_HCurve)& C); + + static Standard_Boolean IsPeriodic (const Handle(Adaptor3d_HCurve)& C); + + static Standard_Real Period (const Handle(Adaptor3d_HCurve)& C); + + //! Computes the point of parameter U on the curve. + static gp_Pnt Value (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U); + + //! Computes the point of parameter U on the curve. + static void D0 (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& 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(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P, gp_Vec& 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(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& 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(Adaptor3d_HCurve)& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2, gp_Vec& 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_Vec DN (const Handle(Adaptor3d_HCurve)& 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(Adaptor3d_HCurve)& 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(Adaptor3d_HCurve)& C); + + static gp_Lin Line (const Handle(Adaptor3d_HCurve)& C); + + static gp_Circ Circle (const Handle(Adaptor3d_HCurve)& C); + + static gp_Elips Ellipse (const Handle(Adaptor3d_HCurve)& C); + + static gp_Hypr Hyperbola (const Handle(Adaptor3d_HCurve)& C); + + static gp_Parab Parabola (const Handle(Adaptor3d_HCurve)& C); + + static Handle(Geom_BezierCurve) Bezier (const Handle(Adaptor3d_HCurve)& C); + + static Handle(Geom_BSplineCurve) BSpline (const Handle(Adaptor3d_HCurve)& C); + + Standard_EXPORT static Standard_Integer NbSamples (const Handle(Adaptor3d_HCurve)& C, const Standard_Real U0, const Standard_Real U1); + + + + +protected: + + + + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BRepBlend_HCurveTool_HeaderFile diff --git a/src/BRepBlend/BRepBlend_Line.cdl b/src/BRepBlend/BRepBlend_Line.cdl deleted file mode 100644 index 269d3b006d..0000000000 --- a/src/BRepBlend/BRepBlend_Line.cdl +++ /dev/null @@ -1,236 +0,0 @@ --- Created on: 1993-12-02 --- 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. - - -class Line from BRepBlend inherits TShared from MMgt - - -uses Point from Blend, - SequenceOfPoint from Blend, - Extremity from BRepBlend, - TypeTrans from IntSurf - - -raises OutOfRange from Standard - - -is - - Create - - returns Line from BRepBlend; - - - - Clear(me: mutable) - - ---Purpose: Clears the content of the line. - - is static; - - - - Append(me: mutable; P: Point from Blend) - - ---Purpose: Adds a point in the line. - - ---C++: inline - is static; - - - Prepend(me: mutable; P: Point from Blend) - - ---Purpose: Adds a point in the line at the first place. - - ---C++: inline - is static; - - InsertBefore(me : mutable; - Index : Integer from Standard; - P : Point from Blend) - - ---Purpose: Adds a point in the line at the first place. - - ---C++: inline - is static; - - - Remove(me: mutable; FromIndex,ToIndex: Integer from Standard) - - ---Purpose: Removes from all the items of - -- positions between and . - -- Raises an exception if the indices are out of bounds. - ---C++: inline - raises OutOfRange from Standard - is static; - - - Set(me: mutable; TranS1,TranS2: TypeTrans from IntSurf) - - ---Purpose: Sets the value of the transition of the line on S1 and - -- the line on S2. - - is static; - - - Set(me: mutable; Trans: TypeTrans from IntSurf) - - ---Purpose: Sets the value of the transition of the line on a surface - - is static; - - - SetStartPoints(me: mutable; StartPt1,StartPt2: Extremity from BRepBlend) - - ---Purpose: Sets the values of the start points for the line. - ---C++: inline - - is static; - - - SetEndPoints(me: mutable; EndPt1,EndPt2: Extremity from BRepBlend) - - ---Purpose: Sets tne values of the end points for the line. - - ---C++: inline - - is static; - - - NbPoints(me) - - ---Purpose: Returns the number of points in the line. - - returns Integer from Standard - ---C++: inline - - is static; - - - Point(me; Index: Integer from Standard) - - ---Purpose: Returns the point of range Index. - - returns Point from Blend - ---C++: inline - ---C++: return const& - - raises OutOfRange from Standard - --- The exception OutOfRange is raised when Index <=0 or - -- Index > NbPoints - - is static; - - - TransitionOnS1(me) - - ---Purpose: Returns the type of the transition of the line defined - -- on the first surface. The transition is "constant" - -- along the line. - -- The transition is IN if the line is oriented in such - -- a way that the system of vectors (N,DRac,T) is - -- right-handed, where - -- N is the normal to the first surface at a point P, - -- DRac is a vector tangent to the blending patch, - -- oriented towards the valid part of this patch, - -- T is the tangent to the line on S1 at P. - -- The transitioon is OUT when the system of vectors is - -- left-handed. - - returns TypeTrans from IntSurf - ---C++: inline - - is static; - - - TransitionOnS2(me) - - ---Purpose: Returns the type of the transition of the line defined - -- on the second surface. The transition is "constant" - -- along the line. - - returns TypeTrans from IntSurf - ---C++: inline - - is static; - - - StartPointOnFirst(me) - - ---Purpose: Returns the start point on S1. - - returns Extremity from BRepBlend - ---C++: inline - ---C++: return const& - - is static; - - - StartPointOnSecond(me) - - ---Purpose: Returns the start point on S2 - - returns Extremity from BRepBlend - ---C++: inline - ---C++: return const& - - is static; - - - EndPointOnFirst(me) - - ---Purpose: Returns the end point on S1. - - returns Extremity from BRepBlend - ---C++: inline - ---C++: return const& - - is static; - - - EndPointOnSecond(me) - - ---Purpose: Returns the point on S2. - - returns Extremity from BRepBlend - ---C++: inline - ---C++: return const& - - is static; - - - TransitionOnS(me) - - ---Purpose: Returns the type of the transition of the line defined - -- on the surface. - - returns TypeTrans from IntSurf - ---C++: inline - - is static; - - -fields - seqpt : SequenceOfPoint from Blend; - tras1 : TypeTrans from IntSurf; - tras2 : TypeTrans from IntSurf; - stp1 : Extremity from BRepBlend; - stp2 : Extremity from BRepBlend; - endp1 : Extremity from BRepBlend; - endp2 : Extremity from BRepBlend; - hass1 : Boolean from Standard; - hass2 : Boolean from Standard; -end; diff --git a/src/BRepBlend/BRepBlend_Line.cxx b/src/BRepBlend/BRepBlend_Line.cxx index 1839d98daa..de6293d391 100644 --- a/src/BRepBlend/BRepBlend_Line.cxx +++ b/src/BRepBlend/BRepBlend_Line.cxx @@ -12,7 +12,12 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include BRepBlend_Line::BRepBlend_Line (): tras1(IntSurf_Undecided),tras2(IntSurf_Undecided), diff --git a/src/BRepBlend/BRepBlend_Line.hxx b/src/BRepBlend/BRepBlend_Line.hxx new file mode 100644 index 0000000000..bfd78342e7 --- /dev/null +++ b/src/BRepBlend/BRepBlend_Line.hxx @@ -0,0 +1,150 @@ +// Created on: 1993-12-02 +// 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_Line_HeaderFile +#define _BRepBlend_Line_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class Blend_Point; +class BRepBlend_Extremity; + + +class BRepBlend_Line; +DEFINE_STANDARD_HANDLE(BRepBlend_Line, MMgt_TShared) + + +class BRepBlend_Line : public MMgt_TShared +{ + +public: + + + Standard_EXPORT BRepBlend_Line(); + + //! Clears the content of the line. + Standard_EXPORT void Clear(); + + //! Adds a point in the line. + void Append (const Blend_Point& P); + + //! Adds a point in the line at the first place. + void Prepend (const Blend_Point& P); + + //! Adds a point in the line at the first place. + void InsertBefore (const Standard_Integer Index, const Blend_Point& P); + + //! Removes from all the items of + //! positions between and . + //! Raises an exception if the indices are out of bounds. + void Remove (const Standard_Integer FromIndex, const Standard_Integer ToIndex); + + //! Sets the value of the transition of the line on S1 and + //! the line on S2. + Standard_EXPORT void Set (const IntSurf_TypeTrans TranS1, const IntSurf_TypeTrans TranS2); + + //! Sets the value of the transition of the line on a surface + Standard_EXPORT void Set (const IntSurf_TypeTrans Trans); + + //! Sets the values of the start points for the line. + void SetStartPoints (const BRepBlend_Extremity& StartPt1, const BRepBlend_Extremity& StartPt2); + + //! Sets tne values of the end points for the line. + void SetEndPoints (const BRepBlend_Extremity& EndPt1, const BRepBlend_Extremity& EndPt2); + + //! Returns the number of points in the line. + Standard_Integer NbPoints() const; + + //! Returns the point of range Index. + const Blend_Point& Point (const Standard_Integer Index) const; + + //! Returns the type of the transition of the line defined + //! on the first surface. The transition is "constant" + //! along the line. + //! The transition is IN if the line is oriented in such + //! a way that the system of vectors (N,DRac,T) is + //! right-handed, where + //! N is the normal to the first surface at a point P, + //! DRac is a vector tangent to the blending patch, + //! oriented towards the valid part of this patch, + //! T is the tangent to the line on S1 at P. + //! The transitioon is OUT when the system of vectors is + //! left-handed. + IntSurf_TypeTrans TransitionOnS1() const; + + //! Returns the type of the transition of the line defined + //! on the second surface. The transition is "constant" + //! along the line. + IntSurf_TypeTrans TransitionOnS2() const; + + //! Returns the start point on S1. + const BRepBlend_Extremity& StartPointOnFirst() const; + + //! Returns the start point on S2 + const BRepBlend_Extremity& StartPointOnSecond() const; + + //! Returns the end point on S1. + const BRepBlend_Extremity& EndPointOnFirst() const; + + //! Returns the point on S2. + const BRepBlend_Extremity& EndPointOnSecond() const; + + //! Returns the type of the transition of the line defined + //! on the surface. + IntSurf_TypeTrans TransitionOnS() const; + + + + + DEFINE_STANDARD_RTTI(BRepBlend_Line,MMgt_TShared) + +protected: + + + + +private: + + + Blend_SequenceOfPoint seqpt; + IntSurf_TypeTrans tras1; + IntSurf_TypeTrans tras2; + BRepBlend_Extremity stp1; + BRepBlend_Extremity stp2; + BRepBlend_Extremity endp1; + BRepBlend_Extremity endp2; + Standard_Boolean hass1; + Standard_Boolean hass2; + + +}; + + +#include + + + + + +#endif // _BRepBlend_Line_HeaderFile diff --git a/src/BRepBlend/BRepBlend_PointOnRst.cdl b/src/BRepBlend/BRepBlend_PointOnRst.cdl deleted file mode 100644 index 04cd7079c4..0000000000 --- a/src/BRepBlend/BRepBlend_PointOnRst.cdl +++ /dev/null @@ -1,117 +0,0 @@ --- Created on: 1993-12-02 --- 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. - -class PointOnRst from BRepBlend - - - ---Purpose: Definition of an intersection point between a line - -- and a restriction on a surface. - -- Such a point is contains geometrical informations (see - -- the Value method) and logical informations. - - -uses Transition from IntSurf, - HCurve2d from Adaptor2d - -raises DomainError from Standard - -is - - - Create - - ---Purpose: Empty constructor. - - returns PointOnRst from BRepBlend; - - - Create( A: HCurve2d from Adaptor2d; Param: Real from Standard; - TLine, TArc: Transition from IntSurf) - - ---Purpose: Creates the PointOnRst on the arc A, at parameter Param, - -- with the transition TLine on the walking line, and - -- TArc on the arc A. - - returns PointOnRst from BRepBlend; - - - - SetArc(me: in out; A: HCurve2d from Adaptor2d; Param: Real from Standard; - TLine, TArc: Transition from IntSurf) - - ---Purpose: Sets the values of a point which is on the arc - -- A, at parameter Param. - - - is static; - - - - Arc(me) - - ---Purpose: Returns the arc of restriction containing the - -- vertex. - - returns any HCurve2d from Adaptor2d - ---C++: return const& - ---C++: inline - - is static; - - - TransitionOnLine(me) - - ---Purpose: Returns the transition of the point on the - -- line on surface. - - returns Transition from IntSurf - ---C++: return const& - ---C++: inline - - is static; - - - TransitionOnArc(me) - - ---Purpose: Returns the transition of the point on the arc - -- returned by Arc(). - - returns Transition from IntSurf - ---C++: return const& - ---C++: inline - - is static; - - - ParameterOnArc(me) - - ---Purpose: Returns the parameter of the point on the - -- arc returned by the method Arc(). - - returns Real from Standard - ---C++: inline - - is static; - - -fields - - arc : HCurve2d from Adaptor2d; - traline : Transition from IntSurf; - traarc : Transition from IntSurf; - prm : Real from Standard; - -end PointOnRst; diff --git a/src/BRepBlend/BRepBlend_PointOnRst.cxx b/src/BRepBlend/BRepBlend_PointOnRst.cxx index 2e1704901f..aa3e469559 100644 --- a/src/BRepBlend/BRepBlend_PointOnRst.cxx +++ b/src/BRepBlend/BRepBlend_PointOnRst.cxx @@ -12,7 +12,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include BRepBlend_PointOnRst::BRepBlend_PointOnRst () {} diff --git a/src/BRepBlend/BRepBlend_PointOnRst.hxx b/src/BRepBlend/BRepBlend_PointOnRst.hxx new file mode 100644 index 0000000000..d7d4b54249 --- /dev/null +++ b/src/BRepBlend/BRepBlend_PointOnRst.hxx @@ -0,0 +1,98 @@ +// Created on: 1993-12-02 +// 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_PointOnRst_HeaderFile +#define _BRepBlend_PointOnRst_HeaderFile + +#include +#include +#include + +#include +#include +class Adaptor2d_HCurve2d; +class Standard_DomainError; +class IntSurf_Transition; + + +//! Definition of an intersection point between a line +//! and a restriction on a surface. +//! Such a point is contains geometrical informations (see +//! the Value method) and logical informations. +class BRepBlend_PointOnRst +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor. + Standard_EXPORT BRepBlend_PointOnRst(); + + //! Creates the PointOnRst on the arc A, at parameter Param, + //! with the transition TLine on the walking line, and + //! TArc on the arc A. + Standard_EXPORT BRepBlend_PointOnRst(const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Param, const IntSurf_Transition& TLine, const IntSurf_Transition& TArc); + + //! Sets the values of a point which is on the arc + //! A, at parameter Param. + Standard_EXPORT void SetArc (const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Param, const IntSurf_Transition& TLine, const IntSurf_Transition& TArc); + + //! Returns the arc of restriction containing the + //! vertex. + const Handle(Adaptor2d_HCurve2d)& Arc() const; + + //! Returns the transition of the point on the + //! line on surface. + const IntSurf_Transition& TransitionOnLine() const; + + //! Returns the transition of the point on the arc + //! returned by Arc(). + const IntSurf_Transition& TransitionOnArc() const; + + //! Returns the parameter of the point on the + //! arc returned by the method Arc(). + Standard_Real ParameterOnArc() const; + + + + +protected: + + + + + +private: + + + + Handle(Adaptor2d_HCurve2d) arc; + IntSurf_Transition traline; + IntSurf_Transition traarc; + Standard_Real prm; + + +}; + + +#include + + + + + +#endif // _BRepBlend_PointOnRst_HeaderFile diff --git a/src/BRepBlend/BRepBlend_RstRstConstRad.cdl b/src/BRepBlend/BRepBlend_RstRstConstRad.cdl deleted file mode 100644 index 722b230a55..0000000000 --- a/src/BRepBlend/BRepBlend_RstRstConstRad.cdl +++ /dev/null @@ -1,346 +0,0 @@ --- 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. - -class RstRstConstRad from BRepBlend -inherits RstRstFunction from Blend - - ---Purpose: Copy of CSConstRad with a pcurve on surface - -- as support. - -uses Vector from math, - Matrix from math, - Ax1 from gp, - Vec from gp, - Vec2d from gp, - Pnt from gp, - Pnt2d from gp, - Circ from gp, - Array1OfPnt from TColgp, - Array1OfVec from TColgp, - Array1OfPnt2d from TColgp, - Array1OfVec2d from TColgp, - Array1OfReal from TColStd, - Array1OfInteger from TColStd, - Shape from GeomAbs, - Point from Blend, - SectionShape from BlendFunc, - HSurface from Adaptor3d, - HCurve from Adaptor3d, - HCurve2d from Adaptor2d, - CurveOnSurface from Adaptor3d, - ParameterisationType from Convert, - DecrochStatus from Blend - -is - - Create(Surf1 : HSurface from Adaptor3d; - Rst1 : HCurve2d from Adaptor2d; - Surf2 : HSurface from Adaptor3d; - Rst2 : HCurve2d from Adaptor2d; - CGuide : HCurve from Adaptor3d) - returns RstRstConstRad from BRepBlend; - - NbVariables(me) - ---Purpose: Returns 2. - returns Integer from Standard; - - NbEquations(me) - ---Purpose: Returns 2. - returns Integer from Standard; - - Value(me: in out; X: Vector; F: out Vector) - ---Purpose: computes the values of the Functions for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Derivatives(me: in out; X: Vector; D: out Matrix) - ---Purpose: returns the values of the derivatives for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Values(me: in out; X: Vector; F: out Vector; D: out Matrix) - ---Purpose: returns the values of the functions and the derivatives - -- for the variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Set(me : in out; - SurfRef1 : HSurface from Adaptor3d; - RstRef1 : HCurve2d from Adaptor2d; - SurfRef2 : HSurface from Adaptor3d; - RstRef2 : HCurve2d from Adaptor2d); - - Set(me: in out; Param: Real from Standard); - - Set(me: in out; First, Last: Real from Standard); - ---Purpose: Sets the bounds of the parametric interval on - -- the guide line. - -- This determines the derivatives in these values if the - -- function is not Cn. - - GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard); - - GetBounds(me; InfBound,SupBound: out Vector from math); - - IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard) - returns Boolean from Standard; - - GetMinimalDistance(me) - ---Purpose: Returns the minimal Distance beetween two - -- extremitys of calculed sections. - returns Real from Standard - is redefined; - ---- TheFollowing methods are called only when --- IsSolution returns Standard_True. - - PointOnRst1(me) - ---C++: return const& - returns Pnt from gp; - - PointOnRst2(me) - ---C++: return const& - returns Pnt from gp; - - Pnt2dOnRst1(me) - ---Purpose: Returns U,V coordinates of the point on the surface. - ---C++: return const& - returns Pnt2d from gp; - - Pnt2dOnRst2(me) - ---Purpose: Returns U,V coordinates of the point on the curve on - -- surface. - ---C++: return const& - returns Pnt2d from gp; - - ParameterOnRst1(me) - ---Purpose: Returns parameter of the point on the curve. - returns Real from Standard; - - ParameterOnRst2(me) - ---Purpose: Returns parameter of the point on the curve. - returns Real from Standard; - - IsTangencyPoint(me) - returns Boolean from Standard; - - TangentOnRst1(me) - ---C++: return const& - returns Vec from gp; - - Tangent2dOnRst1(me) - ---C++: return const& - returns Vec2d from gp; - - TangentOnRst2(me) - ---C++: return const& - returns Vec from gp; - - Tangent2dOnRst2(me) - ---C++: return const& - returns Vec2d from gp; - - Decroch(me; - Sol : Vector from math; - NRst1, TgRst1 : out Vec from gp; - NRst2, TgRst2 : out Vec from gp) - ---Warning: Peut etre appele sans appel prealable a issolution - -- mais les valeurs calculees risquent de ne pas avoir - -- grand sens. - ---Purpose: Permet d ' implementer un critere de decrochage - -- specifique a la fonction. - returns DecrochStatus from Blend - is static; - --- methodes hors template (en plus du create) - - Set(me : in out; - Radius : Real from Standard; - Choix : Integer from Standard) - is static; - - Set(me: in out; TypeSection: SectionShape from BlendFunc) - ---Purpose: Sets the type of section generation for the - -- approximations. - is static; - - CenterCircleRst1Rst2(me; - PtRst1 : Pnt from gp; - PtRst2 : Pnt from gp; - np : Vec from gp; - Center : out Pnt from gp; - VdMed : out Vec from gp) - ---Purpose: Give the center of circle define by PtRst1, PtRst2 and - -- radius ray. - returns Boolean from Standard - is static; - - Section(me : in out; - Param : Real from Standard; - U,V : Real from Standard; - Pdeb,Pfin : out Real from Standard; - C : out Circ from gp) - is static; - --- Methods for the approximation --- - IsRational(me) returns Boolean - ---Purpose: Returns if the section is rationnal - is static; - - GetSectionSize(me) returns Real - ---Purpose: Returns the length of the maximum section - is static; - - GetMinimalWeight(me; Weigths : out Array1OfReal from TColStd) - ---Purpose: Compute the minimal value of weight for each poles - -- of all sections. - is static; - - NbIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of intervals for continuity - -- . May be one if Continuity(me) >= - is static; - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - is static; - - GetShape(me : in out; - NbPoles : out Integer from Standard; - NbKnots : out Integer from Standard; - Degree : out Integer from Standard; - NbPoles2d : out Integer from Standard) - is static; - - GetTolerance(me; - BoundTol, SurfTol, AngleTol : Real; - Tol3d : out Vector; - Tol1D : out Vector ) - ---Purpose: Returns the tolerance to reach in approximation - -- to respecte - -- BoundTol error at the Boundary - -- AngleTol tangent error at the Boundary - -- SurfTol error inside the surface. - is static; - - Knots(me: in out; TKnots: out Array1OfReal from TColStd) - is static; - - Mults(me: in out; TMults: out Array1OfInteger from TColStd) - is static; - - Section(me : in out ; - P : Point from Blend; - Poles : out Array1OfPnt from TColgp; - DPoles : out Array1OfVec from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - DPoles2d : out Array1OfVec2d from TColgp; - Weigths : out Array1OfReal from TColStd; - DWeigths : out Array1OfReal from TColStd) - ---Purpose: Used for the first and last section - returns Boolean from Standard - is static; - - Section(me : in out ; - P : Point from Blend; - Poles : out Array1OfPnt from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - Weigths : out Array1OfReal from TColStd) - is static; - - - Section(me: in out; P: Point from Blend; - Poles : out Array1OfPnt from TColgp; - DPoles : out Array1OfVec from TColgp; - D2Poles : out Array1OfVec from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - DPoles2d : out Array1OfVec2d from TColgp; - D2Poles2d : out Array1OfVec2d from TColgp; - Weigths : out Array1OfReal from TColStd; - DWeigths : out Array1OfReal from TColStd; - D2Weigths : out Array1OfReal from TColStd) - ---Purpose: Used for the first and last section - -- The method returns Standard_True if the derivatives - -- are computed, otherwise it returns Standard_False. - returns Boolean from Standard - is static; - - Resolution(me; - IC2d : Integer from Standard; - Tol : Real from Standard; - TolU, TolV : out Real from Standard); - -fields - - surf1 : HSurface from Adaptor3d; - surf2 : HSurface from Adaptor3d; - rst1 : HCurve2d from Adaptor2d; - rst2 : HCurve2d from Adaptor2d; - cons1 : CurveOnSurface from Adaptor3d; - cons2 : CurveOnSurface from Adaptor3d; - guide : HCurve from Adaptor3d; - tguide : HCurve from Adaptor3d; - ptrst1 : Pnt from gp; - ptrst2 : Pnt from gp; - pt2drst1 : Pnt2d from gp; - pt2drst2 : Pnt2d from gp; - prmrst1 : Real from Standard; - prmrst2 : Real from Standard; - istangent: Boolean from Standard; - tgrst1 : Vec from gp; - tg2drst1 : Vec2d from gp; - tgrst2 : Vec from gp; - tg2drst2 : Vec2d from gp; - - ray : Real from Standard; - choix : Integer from Standard; - ptgui : Pnt from gp; - d1gui : Vec from gp; - d2gui : Vec from gp; - nplan : Vec from gp; - normtg : Real from Standard; - theD : Real from Standard; - - surfref1 : HSurface from Adaptor3d; - rstref1 : HCurve2d from Adaptor2d; - surfref2 : HSurface from Adaptor3d; - rstref2 : HCurve2d from Adaptor2d; - maxang : Real from Standard; - minang : Real from Standard; - distmin : Real from Standard; - mySShape : SectionShape from BlendFunc; - myTConv : ParameterisationType from Convert; - -end RstRstConstRad; - - - - - - - - - diff --git a/src/BRepBlend/BRepBlend_RstRstConstRad.cxx b/src/BRepBlend/BRepBlend_RstRstConstRad.cxx index 1cc2b41c9a..8f423cd2f4 100644 --- a/src/BRepBlend/BRepBlend_RstRstConstRad.cxx +++ b/src/BRepBlend/BRepBlend_RstRstConstRad.cxx @@ -14,17 +14,27 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include +#include +#include +#include +#include #include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include #define Eps 1.e-15 diff --git a/src/BRepBlend/BRepBlend_RstRstConstRad.hxx b/src/BRepBlend/BRepBlend_RstRstConstRad.hxx new file mode 100644 index 0000000000..8832ff1df2 --- /dev/null +++ b/src/BRepBlend/BRepBlend_RstRstConstRad.hxx @@ -0,0 +1,258 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Adaptor3d_HSurface; +class Adaptor2d_HCurve2d; +class Adaptor3d_HCurve; +class math_Matrix; +class gp_Pnt; +class gp_Pnt2d; +class gp_Vec; +class gp_Vec2d; +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_HSurface)& Surf1, const Handle(Adaptor2d_HCurve2d)& Rst1, const Handle(Adaptor3d_HSurface)& Surf2, const Handle(Adaptor2d_HCurve2d)& Rst2, const Handle(Adaptor3d_HCurve)& CGuide); + + //! Returns 2. + Standard_EXPORT Standard_Integer NbVariables() const; + + //! 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); + + Standard_EXPORT void Set (const Handle(Adaptor3d_HSurface)& SurfRef1, const Handle(Adaptor2d_HCurve2d)& RstRef1, const Handle(Adaptor3d_HSurface)& SurfRef2, const Handle(Adaptor2d_HCurve2d)& RstRef2); + + Standard_EXPORT void Set (const Standard_Real Param); + + //! 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_EXPORT void GetTolerance (math_Vector& Tolerance, const Standard_Real Tol) const; + + Standard_EXPORT void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const; + + Standard_EXPORT Standard_Boolean IsSolution (const math_Vector& Sol, const Standard_Real Tol); + + //! Returns the minimal Distance beetween two + //! extremitys of calculed sections. + Standard_EXPORT virtual Standard_Real GetMinimalDistance() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Pnt& PointOnRst1() const; + + Standard_EXPORT const gp_Pnt& PointOnRst2() const; + + //! Returns U,V coordinates of the point on the surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst1() const; + + //! Returns U,V coordinates of the point on the curve on + //! surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst2() const; + + //! Returns parameter of the point on the curve. + Standard_EXPORT Standard_Real ParameterOnRst1() const; + + //! Returns parameter of the point on the curve. + Standard_EXPORT Standard_Real ParameterOnRst2() const; + + Standard_EXPORT Standard_Boolean IsTangencyPoint() const; + + Standard_EXPORT const gp_Vec& TangentOnRst1() const; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnRst1() const; + + Standard_EXPORT const gp_Vec& TangentOnRst2() const; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnRst2() const; + + //! 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_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 rationnal + Standard_EXPORT Standard_Boolean IsRational() const; + + //! Returns the length of the maximum section + Standard_EXPORT Standard_Real GetSectionSize() const; + + //! Compute the minimal value of weight for each poles + //! of all sections. + Standard_EXPORT void GetMinimalWeight (TColStd_Array1OfReal& Weigths) const; + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(me) >= + Standard_EXPORT Standard_Integer NbIntervals (const GeomAbs_Shape S) const; + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! The array must provide enough room to accomodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const; + + Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d); + + //! Returns the tolerance to reach in approximation + //! to respecte + //! 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_EXPORT void Knots (TColStd_Array1OfReal& TKnots); + + Standard_EXPORT void Mults (TColStd_Array1OfInteger& TMults); + + //! 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_EXPORT void Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfPnt2d& Poles2d, TColStd_Array1OfReal& Weigths); + + //! 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_EXPORT void Resolution (const Standard_Integer IC2d, const Standard_Real Tol, Standard_Real& TolU, Standard_Real& TolV) const; + + + + +protected: + + + + + +private: + + + + Handle(Adaptor3d_HSurface) surf1; + Handle(Adaptor3d_HSurface) surf2; + Handle(Adaptor2d_HCurve2d) rst1; + Handle(Adaptor2d_HCurve2d) rst2; + Adaptor3d_CurveOnSurface cons1; + Adaptor3d_CurveOnSurface cons2; + Handle(Adaptor3d_HCurve) guide; + Handle(Adaptor3d_HCurve) 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_HSurface) surfref1; + Handle(Adaptor2d_HCurve2d) rstref1; + Handle(Adaptor3d_HSurface) surfref2; + Handle(Adaptor2d_HCurve2d) rstref2; + Standard_Real maxang; + Standard_Real minang; + Standard_Real distmin; + BlendFunc_SectionShape mySShape; + Convert_ParameterisationType myTConv; + + +}; + + + + + + + +#endif // _BRepBlend_RstRstConstRad_HeaderFile diff --git a/src/BRepBlend/BRepBlend_RstRstEvolRad.cdl b/src/BRepBlend/BRepBlend_RstRstEvolRad.cdl deleted file mode 100644 index f8a5409566..0000000000 --- a/src/BRepBlend/BRepBlend_RstRstEvolRad.cdl +++ /dev/null @@ -1,351 +0,0 @@ --- 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. - -class RstRstEvolRad from BRepBlend -inherits RstRstFunction from Blend - - ---Purpose: Function to approximate by AppSurface for - -- Edge/Edge and evolutif radius - -uses Vector from math, - Matrix from math, - Ax1 from gp, - Vec from gp, - Vec2d from gp, - Pnt from gp, - Pnt2d from gp, - Circ from gp, - Array1OfPnt from TColgp, - Array1OfVec from TColgp, - Array1OfPnt2d from TColgp, - Array1OfVec2d from TColgp, - Array1OfReal from TColStd, - Array1OfInteger from TColStd, - Shape from GeomAbs, - Point from Blend, - SectionShape from BlendFunc, - HSurface from Adaptor3d, - HCurve from Adaptor3d, - HCurve2d from Adaptor2d, - CurveOnSurface from Adaptor3d, - ParameterisationType from Convert, - DecrochStatus from Blend, - Function from Law - -is - - Create(Surf1 : HSurface from Adaptor3d; - Rst1 : HCurve2d from Adaptor2d; - Surf2 : HSurface from Adaptor3d; - Rst2 : HCurve2d from Adaptor2d; - CGuide : HCurve from Adaptor3d; - Evol : Function from Law) - returns RstRstEvolRad from BRepBlend; - - NbVariables(me) - ---Purpose: Returns 2. - returns Integer from Standard; - - NbEquations(me) - ---Purpose: Returns 2. - returns Integer from Standard; - - Value(me: in out; X: Vector; F: out Vector) - ---Purpose: computes the values of the Functions for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Derivatives(me: in out; X: Vector; D: out Matrix) - ---Purpose: returns the values of the derivatives for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Values(me: in out; X: Vector; F: out Vector; D: out Matrix) - ---Purpose: returns the values of the functions and the derivatives - -- for the variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Set(me : in out; - SurfRef1 : HSurface from Adaptor3d; - RstRef1 : HCurve2d from Adaptor2d; - SurfRef2 : HSurface from Adaptor3d; - RstRef2 : HCurve2d from Adaptor2d); - - Set(me: in out; Param: Real from Standard); - - Set(me: in out; First, Last: Real from Standard); - ---Purpose: Sets the bounds of the parametric interval on - -- the guide line. - -- This determines the derivatives in these values if the - -- function is not Cn. - - GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard); - - GetBounds(me; InfBound,SupBound: out Vector from math); - - IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard) - returns Boolean from Standard; - - GetMinimalDistance(me) - ---Purpose: Returns the minimal Distance beetween two - -- extremitys of calculed sections. - returns Real from Standard - is redefined; - ---- TheFollowing methods are called only when --- IsSolution returns Standard_True. - - PointOnRst1(me) - ---C++: return const& - returns Pnt from gp; - - PointOnRst2(me) - ---C++: return const& - returns Pnt from gp; - - Pnt2dOnRst1(me) - ---Purpose: Returns U,V coordinates of the point on the surface. - ---C++: return const& - returns Pnt2d from gp; - - Pnt2dOnRst2(me) - ---Purpose: Returns U,V coordinates of the point on the curve on - -- surface. - ---C++: return const& - returns Pnt2d from gp; - - ParameterOnRst1(me) - ---Purpose: Returns parameter of the point on the curve. - returns Real from Standard; - - ParameterOnRst2(me) - ---Purpose: Returns parameter of the point on the curve. - returns Real from Standard; - - IsTangencyPoint(me) - returns Boolean from Standard; - - TangentOnRst1(me) - ---C++: return const& - returns Vec from gp; - - Tangent2dOnRst1(me) - ---C++: return const& - returns Vec2d from gp; - - TangentOnRst2(me) - ---C++: return const& - returns Vec from gp; - - Tangent2dOnRst2(me) - ---C++: return const& - returns Vec2d from gp; - - Decroch(me; - Sol : Vector from math; - NRst1, TgRst1 : out Vec from gp; - NRst2, TgRst2 : out Vec from gp) - - ---Purpose: Enables implementation of a criterion of decrochage - -- specific to the function. - ---Warning: Can be called without previous call of issolution - -- but the calculated values risquent de ne pas avoir - -- grand sens. - returns DecrochStatus from Blend - is static; - --- methodes hors template (en plus du create) - - Set(me : in out; - Choix : Integer from Standard) - is static; - - Set(me: in out; TypeSection: SectionShape from BlendFunc) - ---Purpose: Sets the type of section generation for the - -- approximations. - is static; - - CenterCircleRst1Rst2(me; - PtRst1 : Pnt from gp; - PtRst2 : Pnt from gp; - np : Vec from gp; - Center : out Pnt from gp; - VdMed : out Vec from gp) - ---Purpose: Gives the center of circle defined by PtRst1, PtRst2 and - -- radius ray. - returns Boolean from Standard - is static; - - Section(me : in out; - Param : Real from Standard; - U,V : Real from Standard; - Pdeb,Pfin : out Real from Standard; - C : out Circ from gp) - is static; - --- Methods for the approximation --- - IsRational(me) returns Boolean - ---Purpose: Returns if the section is rationnal - is static; - - GetSectionSize(me) returns Real - ---Purpose: Returns the length of the maximum section - is static; - - GetMinimalWeight(me; Weigths : out Array1OfReal from TColStd) - ---Purpose: Compute the minimal value of weight for each poles - -- of all sections. - is static; - - NbIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of intervals for continuity - -- . May be one if Continuity(me) >= - is static; - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - is static; - - GetShape(me : in out; - NbPoles : out Integer from Standard; - NbKnots : out Integer from Standard; - Degree : out Integer from Standard; - NbPoles2d : out Integer from Standard) - is static; - - GetTolerance(me; - BoundTol, SurfTol, AngleTol : Real; - Tol3d : out Vector; - Tol1D : out Vector ) - ---Purpose: Returns the tolerance to reach in approximation - -- to respecte - -- BoundTol error at the Boundary - -- AngleTol tangent error at the Boundary - -- SurfTol error inside the surface. - is static; - - Knots(me: in out; TKnots: out Array1OfReal from TColStd) - is static; - - Mults(me: in out; TMults: out Array1OfInteger from TColStd) - is static; - - Section(me : in out ; - P : Point from Blend; - Poles : out Array1OfPnt from TColgp; - DPoles : out Array1OfVec from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - DPoles2d : out Array1OfVec2d from TColgp; - Weigths : out Array1OfReal from TColStd; - DWeigths : out Array1OfReal from TColStd) - ---Purpose: Used for the first and last section - returns Boolean from Standard - is static; - - Section(me : in out ; - P : Point from Blend; - Poles : out Array1OfPnt from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - Weigths : out Array1OfReal from TColStd) - is static; - - - Section(me: in out; P: Point from Blend; - Poles : out Array1OfPnt from TColgp; - DPoles : out Array1OfVec from TColgp; - D2Poles : out Array1OfVec from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - DPoles2d : out Array1OfVec2d from TColgp; - D2Poles2d : out Array1OfVec2d from TColgp; - Weigths : out Array1OfReal from TColStd; - DWeigths : out Array1OfReal from TColStd; - D2Weigths : out Array1OfReal from TColStd) - ---Purpose: Used for the first and last section - -- The method returns Standard_True if the derivatives - -- are computed, otherwise it returns Standard_False. - returns Boolean from Standard - is static; - - Resolution(me; - IC2d : Integer from Standard; - Tol : Real from Standard; - TolU, TolV : out Real from Standard); - -fields - - surf1 : HSurface from Adaptor3d; - surf2 : HSurface from Adaptor3d; - rst1 : HCurve2d from Adaptor2d; - rst2 : HCurve2d from Adaptor2d; - cons1 : CurveOnSurface from Adaptor3d; - cons2 : CurveOnSurface from Adaptor3d; - guide : HCurve from Adaptor3d; - tguide : HCurve from Adaptor3d; - ptrst1 : Pnt from gp; - ptrst2 : Pnt from gp; - pt2drst1 : Pnt2d from gp; - pt2drst2 : Pnt2d from gp; - prmrst1 : Real from Standard; - prmrst2 : Real from Standard; - istangent: Boolean from Standard; - tgrst1 : Vec from gp; - tg2drst1 : Vec2d from gp; - tgrst2 : Vec from gp; - tg2drst2 : Vec2d from gp; - - ray : Real from Standard; - dray : Real from Standard; - choix : Integer from Standard; - ptgui : Pnt from gp; - d1gui : Vec from gp; - d2gui : Vec from gp; - nplan : Vec from gp; - normtg : Real from Standard; - theD : Real from Standard; - - surfref1 : HSurface from Adaptor3d; - rstref1 : HCurve2d from Adaptor2d; - surfref2 : HSurface from Adaptor3d; - rstref2 : HCurve2d from Adaptor2d; - maxang : Real from Standard; - minang : Real from Standard; - distmin : Real from Standard; - mySShape : SectionShape from BlendFunc; - myTConv : ParameterisationType from Convert; - tevol : Function from Law ; - fevol : Function from Law ; - -end RstRstEvolRad; - - - - - - - - - diff --git a/src/BRepBlend/BRepBlend_RstRstEvolRad.cxx b/src/BRepBlend/BRepBlend_RstRstEvolRad.cxx index 0bc47999f6..afe84f8343 100644 --- a/src/BRepBlend/BRepBlend_RstRstEvolRad.cxx +++ b/src/BRepBlend/BRepBlend_RstRstEvolRad.cxx @@ -14,18 +14,29 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include +#include +#include +#include +#include #include +#include +#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include +#include #define Eps 1.e-15 diff --git a/src/BRepBlend/BRepBlend_RstRstEvolRad.hxx b/src/BRepBlend/BRepBlend_RstRstEvolRad.hxx new file mode 100644 index 0000000000..6557dc0448 --- /dev/null +++ b/src/BRepBlend/BRepBlend_RstRstEvolRad.hxx @@ -0,0 +1,262 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Adaptor3d_HSurface; +class Adaptor2d_HCurve2d; +class Adaptor3d_HCurve; +class Law_Function; +class math_Matrix; +class gp_Pnt; +class gp_Pnt2d; +class gp_Vec; +class gp_Vec2d; +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_HSurface)& Surf1, const Handle(Adaptor2d_HCurve2d)& Rst1, const Handle(Adaptor3d_HSurface)& Surf2, const Handle(Adaptor2d_HCurve2d)& Rst2, const Handle(Adaptor3d_HCurve)& CGuide, const Handle(Law_Function)& Evol); + + //! Returns 2. + Standard_EXPORT Standard_Integer NbVariables() const; + + //! 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); + + Standard_EXPORT void Set (const Handle(Adaptor3d_HSurface)& SurfRef1, const Handle(Adaptor2d_HCurve2d)& RstRef1, const Handle(Adaptor3d_HSurface)& SurfRef2, const Handle(Adaptor2d_HCurve2d)& RstRef2); + + Standard_EXPORT void Set (const Standard_Real Param); + + //! 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_EXPORT void GetTolerance (math_Vector& Tolerance, const Standard_Real Tol) const; + + Standard_EXPORT void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const; + + Standard_EXPORT Standard_Boolean IsSolution (const math_Vector& Sol, const Standard_Real Tol); + + //! Returns the minimal Distance beetween two + //! extremitys of calculed sections. + Standard_EXPORT virtual Standard_Real GetMinimalDistance() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Pnt& PointOnRst1() const; + + Standard_EXPORT const gp_Pnt& PointOnRst2() const; + + //! Returns U,V coordinates of the point on the surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst1() const; + + //! Returns U,V coordinates of the point on the curve on + //! surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst2() const; + + //! Returns parameter of the point on the curve. + Standard_EXPORT Standard_Real ParameterOnRst1() const; + + //! Returns parameter of the point on the curve. + Standard_EXPORT Standard_Real ParameterOnRst2() const; + + Standard_EXPORT Standard_Boolean IsTangencyPoint() const; + + Standard_EXPORT const gp_Vec& TangentOnRst1() const; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnRst1() const; + + Standard_EXPORT const gp_Vec& TangentOnRst2() const; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnRst2() const; + + //! 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_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 rationnal + Standard_EXPORT Standard_Boolean IsRational() const; + + //! Returns the length of the maximum section + Standard_EXPORT Standard_Real GetSectionSize() const; + + //! Compute the minimal value of weight for each poles + //! of all sections. + Standard_EXPORT void GetMinimalWeight (TColStd_Array1OfReal& Weigths) const; + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(me) >= + Standard_EXPORT Standard_Integer NbIntervals (const GeomAbs_Shape S) const; + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! The array must provide enough room to accomodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const; + + Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d); + + //! Returns the tolerance to reach in approximation + //! to respecte + //! 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_EXPORT void Knots (TColStd_Array1OfReal& TKnots); + + Standard_EXPORT void Mults (TColStd_Array1OfInteger& TMults); + + //! 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_EXPORT void Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfPnt2d& Poles2d, TColStd_Array1OfReal& Weigths); + + //! 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_EXPORT void Resolution (const Standard_Integer IC2d, const Standard_Real Tol, Standard_Real& TolU, Standard_Real& TolV) const; + + + + +protected: + + + + + +private: + + + + Handle(Adaptor3d_HSurface) surf1; + Handle(Adaptor3d_HSurface) surf2; + Handle(Adaptor2d_HCurve2d) rst1; + Handle(Adaptor2d_HCurve2d) rst2; + Adaptor3d_CurveOnSurface cons1; + Adaptor3d_CurveOnSurface cons2; + Handle(Adaptor3d_HCurve) guide; + Handle(Adaptor3d_HCurve) 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_HSurface) surfref1; + Handle(Adaptor2d_HCurve2d) rstref1; + Handle(Adaptor3d_HSurface) surfref2; + Handle(Adaptor2d_HCurve2d) 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/src/BRepBlend/BRepBlend_RstRstLineBuilder.cdl b/src/BRepBlend/BRepBlend_RstRstLineBuilder.cdl deleted file mode 100644 index a90e82a809..0000000000 --- a/src/BRepBlend/BRepBlend_RstRstLineBuilder.cdl +++ /dev/null @@ -1,273 +0,0 @@ --- Created on: 1997-01-23 --- 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. - -class RstRstLineBuilder from BRepBlend - - ---Purpose: This class processes the data resulting from - -- Blend_CSWalking but it takes in consideration the Surface - -- supporting the curve to detect the breakpoint. - -- - -- As a result, the criteria of distribution of - -- points on the line become more flexible because it - -- should calculate values approached - -- by an approximation of continued functions based on the - -- Blend_RstRstFunction. - -- - -- Thus this pseudo path necessitates 3 criteria of - -- regrouping : - -- - -- 1) exit of the domain of the curve - -- - -- 2) exit of the domain of the surface - -- - -- 3) stall as there is a solution of problem - -- surf/surf within the domain of the surface - -- of support of the restriction. - -- - -- Construction of a BRepBlend_Line between two pcurves - -- from an approached starting solution. The output - -- entries of this builder are of the same nature - -- as of a traditional walking, but the requirements - -- to the Line are not the same. If the determination of validity range is always - -- guaranteed, the criteria of correct repartition of sections - -- before smoothing are not respected. The resulting Line - -- is f(t) oriented. - -uses Point from Blend, - Status from Blend, - DecrochStatus from Blend, - RstRstFunction from Blend, - FuncInv from Blend, - SurfCurvFuncInv from Blend, - CurvPointFuncInv from Blend, - Vector from math, - Matrix from math, - State from TopAbs, - Pnt from gp, - Pnt2d from gp, - Vec from gp, - Vec2d from gp, - HArray1OfReal from TColStd, - Transition from IntSurf, - HVertex from Adaptor3d, - HSurface from Adaptor3d, - HCurve2d from Adaptor2d, - TopolTool from Adaptor3d, - Line from BRepBlend, - Extremity from BRepBlend - -is - - Create(Surf1 : HSurface from Adaptor3d; - Rst1 : HCurve2d from Adaptor2d; - Domain1 : TopolTool from Adaptor3d; - Surf2 : HSurface from Adaptor3d; - Rst2 : HCurve2d from Adaptor2d; - Domain2 : TopolTool from Adaptor3d) - returns RstRstLineBuilder from BRepBlend; - - Perform(me : in out; - Func : in out RstRstFunction from Blend; - Finv1 : in out SurfCurvFuncInv from Blend; - FinvP1 : in out CurvPointFuncInv from Blend; - Finv2 : in out SurfCurvFuncInv from Blend; - FinvP2 : in out CurvPointFuncInv from Blend; - Pdep : Real from Standard; - Pmax : Real from Standard; - MaxStep : Real from Standard; - TolGuide : Real from Standard; - Soldep : Vector from math; - Tolesp : Real from Standard; - Fleche : Real from Standard; - Appro : Boolean from Standard = Standard_False) - is static; - - PerformFirstSection(me : in out; - Func : in out RstRstFunction from Blend; - Finv1 : in out SurfCurvFuncInv from Blend; - FinvP1 : in out CurvPointFuncInv from Blend; - Finv2 : in out SurfCurvFuncInv from Blend; - FinvP2 : in out CurvPointFuncInv from Blend; - Pdep : Real from Standard; - Pmax : Real from Standard; - Soldep : Vector from math; - Tolesp : Real from Standard; - TolGuide : Real from Standard; - RecRst1 : Boolean from Standard; - RecP1 : Boolean from Standard; - RecRst2 : Boolean from Standard; - RecP2 : Boolean from Standard; - Psol : out Real from Standard; - ParSol : out Vector from math) - returns Boolean from Standard - is static; - - Complete(me : in out; - Func : in out RstRstFunction from Blend; - Finv1 : in out SurfCurvFuncInv from Blend; - FinvP1 : in out CurvPointFuncInv from Blend; - Finv2 : in out SurfCurvFuncInv from Blend; - FinvP2 : in out CurvPointFuncInv from Blend; - Pmin : Real from Standard) - - returns Boolean from Standard - is static; - - InternalPerform (me : in out; - Func : in out RstRstFunction from Blend; - Finv1 : in out SurfCurvFuncInv from Blend; - FinvP1 : in out CurvPointFuncInv from Blend; - Finv2 : in out SurfCurvFuncInv from Blend; - FinvP2 : in out CurvPointFuncInv from Blend; - Bound : Real from Standard) - is static private; - - Recadre1(me : in out; - Func : in out RstRstFunction from Blend; - Finv : in out SurfCurvFuncInv from Blend; - Solinv : out Vector from math; - IsVtx : out Boolean from Standard; - Vtx : out HVertex from Adaptor3d) - returns Boolean from Standard - is static private; - - Recadre2(me : in out; - Func : in out RstRstFunction from Blend; - Finv : in out SurfCurvFuncInv from Blend; - Solinv : out Vector from math; - IsVtx : out Boolean from Standard; - Vtx : out HVertex from Adaptor3d) - returns Boolean from Standard - is static private; - - Recadre1(me : in out; - FinvP : in out CurvPointFuncInv from Blend; - Solinv : out Vector from math; - IsVtx : out Boolean from Standard; - Vtx : out HVertex from Adaptor3d) - returns Boolean from Standard - is static private; - - Recadre2(me : in out; - FinvP : in out CurvPointFuncInv from Blend; - Solinv : out Vector from math; - IsVtx : out Boolean from Standard; - Vtx : out HVertex from Adaptor3d) - returns Boolean from Standard - is static private; - - IsDone(me) - returns Boolean from Standard - ---C++: inline - is static; - - Line(me) - returns Line from BRepBlend - ---C++: inline - ---C++: return const& - is static; - - Decroch1Start(me) - returns Boolean from Standard - ---C++: inline - is static; - - Decroch1End(me) - returns Boolean from Standard - ---C++: inline - is static; - - Decroch2Start(me) - returns Boolean from Standard - ---C++: inline - is static; - - Decroch2End(me) - returns Boolean from Standard - ---C++: inline - is static; - - Transition(me : in out; - OnFirst : Boolean from Standard; - Arc : HCurve2d from Adaptor2d; - Param : Real from Standard; - TLine,TArc : out Transition from IntSurf) - is static private; - - MakeExtremity(me : in out; - Extrem : in out Extremity from BRepBlend; - OnFirst : Boolean from Standard; - Arc : HCurve2d from Adaptor2d; - Param : Real from Standard; - IsVtx : Boolean from Standard; - Vtx : HVertex from Adaptor3d) - is static private; - - CheckDeflectionOnRst1(me : in out; - CurPoint : Point from Blend) - returns Status from Blend - is static private; - - CheckDeflectionOnRst2(me : in out; - CurPoint : Point from Blend) - returns Status from Blend - is static private; - - TestArret(me : in out; - Func : in out RstRstFunction from Blend; - TestDeflection : Boolean from Standard; - State : Status from Blend) - returns Status from Blend - is static private; - - CheckInside(me : in out; - Func : in out RstRstFunction from Blend; - SituOnC1 : out State from TopAbs; - SituOnC2 : out State from TopAbs; - Decroch : out DecrochStatus from Blend) - returns Boolean from Standard - is static private; - -fields - - done : Boolean from Standard; - line : Line from BRepBlend; - sol : Vector from math; - surf1 : HSurface from Adaptor3d; - domain1 : TopolTool from Adaptor3d; - surf2 : HSurface from Adaptor3d; - domain2 : TopolTool from Adaptor3d; - rst1 : HCurve2d from Adaptor2d; - rst2 : HCurve2d from Adaptor2d; - - tolesp : Real from Standard; - tolgui : Real from Standard; - pasmax : Real from Standard; - fleche : Real from Standard; - param : Real from Standard; - previousP : Point from Blend; - rebrou : Boolean from Standard; - iscomplete : Boolean from Standard; - comptra : Boolean from Standard; - sens : Real from Standard; - decrochdeb : DecrochStatus from Blend; - decrochfin : DecrochStatus from Blend; - -end RstRstLineBuilder from BRepBlend; - - - - diff --git a/src/BRepBlend/BRepBlend_RstRstLineBuilder.cxx b/src/BRepBlend/BRepBlend_RstRstLineBuilder.cxx index d840f89f66..32af8c8bc9 100644 --- a/src/BRepBlend/BRepBlend_RstRstLineBuilder.cxx +++ b/src/BRepBlend/BRepBlend_RstRstLineBuilder.cxx @@ -14,18 +14,29 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include +#include +#include +#include #include -#include +#include #include +#include +#include +#include +#include +#include +#include #ifdef OCCT_DEBUG #include #include diff --git a/src/BRepBlend/BRepBlend_RstRstLineBuilder.hxx b/src/BRepBlend/BRepBlend_RstRstLineBuilder.hxx new file mode 100644 index 0000000000..138704df88 --- /dev/null +++ b/src/BRepBlend/BRepBlend_RstRstLineBuilder.hxx @@ -0,0 +1,167 @@ +// Created on: 1997-01-23 +// 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_RstRstLineBuilder_HeaderFile +#define _BRepBlend_RstRstLineBuilder_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class BRepBlend_Line; +class Adaptor3d_HSurface; +class Adaptor3d_TopolTool; +class Adaptor2d_HCurve2d; +class Blend_RstRstFunction; +class Blend_SurfCurvFuncInv; +class Blend_CurvPointFuncInv; +class Adaptor3d_HVertex; +class IntSurf_Transition; +class BRepBlend_Extremity; +class Blend_Point; + + +//! This class processes the data resulting from +//! Blend_CSWalking but it takes in consideration the Surface +//! supporting the curve to detect the breakpoint. +//! +//! As a result, the criteria of distribution of +//! points on the line become more flexible because it +//! should calculate values approached +//! by an approximation of continued functions based on the +//! Blend_RstRstFunction. +//! +//! Thus this pseudo path necessitates 3 criteria of +//! regrouping : +//! +//! 1) exit of the domain of the curve +//! +//! 2) exit of the domain of the surface +//! +//! 3) stall as there is a solution of problem +//! surf/surf within the domain of the surface +//! of support of the restriction. +//! +//! Construction of a BRepBlend_Line between two pcurves +//! from an approached starting solution. The output +//! entries of this builder are of the same nature +//! as of a traditional walking, but the requirements +//! to the Line are not the same. If the determination of validity range is always +//! guaranteed, the criteria of correct repartition of sections +//! before smoothing are not respected. The resulting Line +//! is f(t) oriented. +class BRepBlend_RstRstLineBuilder +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepBlend_RstRstLineBuilder(const Handle(Adaptor3d_HSurface)& Surf1, const Handle(Adaptor2d_HCurve2d)& Rst1, const Handle(Adaptor3d_TopolTool)& Domain1, const Handle(Adaptor3d_HSurface)& Surf2, const Handle(Adaptor2d_HCurve2d)& Rst2, const Handle(Adaptor3d_TopolTool)& Domain2); + + Standard_EXPORT void Perform (Blend_RstRstFunction& Func, Blend_SurfCurvFuncInv& Finv1, Blend_CurvPointFuncInv& FinvP1, Blend_SurfCurvFuncInv& Finv2, Blend_CurvPointFuncInv& FinvP2, const Standard_Real Pdep, const Standard_Real Pmax, const Standard_Real MaxStep, const Standard_Real TolGuide, const math_Vector& Soldep, const Standard_Real Tolesp, const Standard_Real Fleche, const Standard_Boolean Appro = Standard_False); + + Standard_EXPORT Standard_Boolean PerformFirstSection (Blend_RstRstFunction& Func, Blend_SurfCurvFuncInv& Finv1, Blend_CurvPointFuncInv& FinvP1, Blend_SurfCurvFuncInv& Finv2, Blend_CurvPointFuncInv& FinvP2, const Standard_Real Pdep, const Standard_Real Pmax, const math_Vector& Soldep, const Standard_Real Tolesp, const Standard_Real TolGuide, const Standard_Boolean RecRst1, const Standard_Boolean RecP1, const Standard_Boolean RecRst2, const Standard_Boolean RecP2, Standard_Real& Psol, math_Vector& ParSol); + + Standard_EXPORT Standard_Boolean Complete (Blend_RstRstFunction& Func, Blend_SurfCurvFuncInv& Finv1, Blend_CurvPointFuncInv& FinvP1, Blend_SurfCurvFuncInv& Finv2, Blend_CurvPointFuncInv& FinvP2, const Standard_Real Pmin); + + Standard_Boolean IsDone() const; + + const Handle(BRepBlend_Line)& Line() const; + + Standard_Boolean Decroch1Start() const; + + Standard_Boolean Decroch1End() const; + + Standard_Boolean Decroch2Start() const; + + Standard_Boolean Decroch2End() const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT void InternalPerform (Blend_RstRstFunction& Func, Blend_SurfCurvFuncInv& Finv1, Blend_CurvPointFuncInv& FinvP1, Blend_SurfCurvFuncInv& Finv2, Blend_CurvPointFuncInv& FinvP2, const Standard_Real Bound); + + Standard_EXPORT Standard_Boolean Recadre1 (Blend_RstRstFunction& Func, Blend_SurfCurvFuncInv& Finv, math_Vector& Solinv, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx); + + Standard_EXPORT Standard_Boolean Recadre2 (Blend_RstRstFunction& Func, Blend_SurfCurvFuncInv& Finv, math_Vector& Solinv, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx); + + Standard_EXPORT Standard_Boolean Recadre1 (Blend_CurvPointFuncInv& FinvP, math_Vector& Solinv, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx); + + Standard_EXPORT Standard_Boolean Recadre2 (Blend_CurvPointFuncInv& FinvP, math_Vector& Solinv, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx); + + Standard_EXPORT void Transition (const Standard_Boolean OnFirst, const Handle(Adaptor2d_HCurve2d)& Arc, const Standard_Real Param, IntSurf_Transition& TLine, IntSurf_Transition& TArc); + + Standard_EXPORT void MakeExtremity (BRepBlend_Extremity& Extrem, const Standard_Boolean OnFirst, const Handle(Adaptor2d_HCurve2d)& Arc, const Standard_Real Param, const Standard_Boolean IsVtx, const Handle(Adaptor3d_HVertex)& Vtx); + + Standard_EXPORT Blend_Status CheckDeflectionOnRst1 (const Blend_Point& CurPoint); + + Standard_EXPORT Blend_Status CheckDeflectionOnRst2 (const Blend_Point& CurPoint); + + Standard_EXPORT Blend_Status TestArret (Blend_RstRstFunction& Func, const Standard_Boolean TestDeflection, const Blend_Status State); + + Standard_EXPORT Standard_Boolean CheckInside (Blend_RstRstFunction& Func, TopAbs_State& SituOnC1, TopAbs_State& SituOnC2, Blend_DecrochStatus& Decroch); + + + Standard_Boolean done; + Handle(BRepBlend_Line) line; + math_Vector sol; + Handle(Adaptor3d_HSurface) surf1; + Handle(Adaptor3d_TopolTool) domain1; + Handle(Adaptor3d_HSurface) surf2; + Handle(Adaptor3d_TopolTool) domain2; + Handle(Adaptor2d_HCurve2d) rst1; + Handle(Adaptor2d_HCurve2d) rst2; + Standard_Real tolesp; + Standard_Real tolgui; + Standard_Real pasmax; + Standard_Real fleche; + Standard_Real param; + Blend_Point previousP; + Standard_Boolean rebrou; + Standard_Boolean iscomplete; + Standard_Boolean comptra; + Standard_Real sens; + Blend_DecrochStatus decrochdeb; + Blend_DecrochStatus decrochfin; + + +}; + + +#include + + + + + +#endif // _BRepBlend_RstRstLineBuilder_HeaderFile diff --git a/src/BRepBlend/BRepBlend_Ruled.hxx b/src/BRepBlend/BRepBlend_Ruled.hxx new file mode 100644 index 0000000000..3384af359d --- /dev/null +++ b/src/BRepBlend/BRepBlend_Ruled.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_Ruled_HeaderFile +#define _BRepBlend_Ruled_HeaderFile + +#include + +typedef BlendFunc_Ruled BRepBlend_Ruled; + + +#endif // _BRepBlend_Ruled_HeaderFile diff --git a/src/BRepBlend/BRepBlend_RuledInv.hxx b/src/BRepBlend/BRepBlend_RuledInv.hxx new file mode 100644 index 0000000000..6ff7aab1e0 --- /dev/null +++ b/src/BRepBlend/BRepBlend_RuledInv.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_RuledInv_HeaderFile +#define _BRepBlend_RuledInv_HeaderFile + +#include + +typedef BlendFunc_RuledInv BRepBlend_RuledInv; + + +#endif // _BRepBlend_RuledInv_HeaderFile diff --git a/src/BRepBlend/BRepBlend_SurfCurvConstRadInv.cdl b/src/BRepBlend/BRepBlend_SurfCurvConstRadInv.cdl deleted file mode 100644 index 5ce1d0106b..0000000000 --- a/src/BRepBlend/BRepBlend_SurfCurvConstRadInv.cdl +++ /dev/null @@ -1,107 +0,0 @@ --- Created on: 1997-02-21 --- 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. - -class SurfCurvConstRadInv from BRepBlend - -inherits SurfCurvFuncInv from Blend - - ---Purpose: Function of reframing between a restriction surface of the - -- surface and a curve. - -- Class used to compute a solution of the - -- surfRstConstRad problem on a done restriction of the - -- surface. - -- The vector used in Value, Values and Derivatives - -- methods has to be the vector of the parametric - -- coordinates wguide, wcurv, wrst where wguide is the - -- parameter on the guide line, wcurv is the parameter on - -- the curve, wrst is the parameter on the restriction on - -- the surface. - - -uses - HCurve2d from Adaptor2d, - HCurve from Adaptor3d, - HSurface from Adaptor3d, - Vector from math, - Matrix from math - - -is - - Create(S : HSurface from Adaptor3d; - C : HCurve from Adaptor3d; - Cg : HCurve from Adaptor3d) - returns SurfCurvConstRadInv from BRepBlend; - - Set(me: in out; R: Real from Standard; Choix: Integer from Standard) - is static; - - NbEquations(me) - ---Purpose: returns 3. - returns Integer from Standard; - - Value(me: in out; X: Vector; F: out Vector) - ---Purpose: computes the values of the Functions for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Derivatives(me: in out; X: Vector; D: out Matrix) - ---Purpose: returns the values of the derivatives for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Values(me: in out; X: Vector; F: out Vector; D: out Matrix) - ---Purpose: returns the values of the functions and the derivatives - -- for the variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Set(me: in out; Rst : HCurve2d from Adaptor2d); - ---Purpose: Set the restriction on which a solution has to be found. - - GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard); - ---Purpose: Returns in the vector Tolerance the parametric tolerance - -- for each of the 3 variables; - -- Tol is the tolerance used in 3d space. - - GetBounds(me; InfBound,SupBound: out Vector from math); - ---Purpose: 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. - - IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard) - ---Purpose: Returns Standard_True if Sol is a zero of the function. - -- Tol is the tolerance used in 3d space. - returns Boolean from Standard; - -fields - - surf : HSurface from Adaptor3d; - curv : HCurve from Adaptor3d; - guide : HCurve from Adaptor3d; - rst : HCurve2d from Adaptor2d; - ray : Real from Standard; - choix : Integer from Standard; - -end SurfCurvConstRadInv; - - diff --git a/src/BRepBlend/BRepBlend_SurfCurvConstRadInv.cxx b/src/BRepBlend/BRepBlend_SurfCurvConstRadInv.cxx index 6d75eb6b32..6bacf664ff 100644 --- a/src/BRepBlend/BRepBlend_SurfCurvConstRadInv.cxx +++ b/src/BRepBlend/BRepBlend_SurfCurvConstRadInv.cxx @@ -14,13 +14,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include //======================================================================= //function : BRepBlend_SurfCurvConstRadInv //purpose : //======================================================================= - BRepBlend_SurfCurvConstRadInv::BRepBlend_SurfCurvConstRadInv (const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor3d_HCurve)& C, diff --git a/src/BRepBlend/BRepBlend_SurfCurvConstRadInv.hxx b/src/BRepBlend/BRepBlend_SurfCurvConstRadInv.hxx new file mode 100644 index 0000000000..474fe73b95 --- /dev/null +++ b/src/BRepBlend/BRepBlend_SurfCurvConstRadInv.hxx @@ -0,0 +1,125 @@ +// Created on: 1997-02-21 +// 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_SurfCurvConstRadInv_HeaderFile +#define _BRepBlend_SurfCurvConstRadInv_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class Adaptor3d_HSurface; +class Adaptor3d_HCurve; +class Adaptor2d_HCurve2d; +class math_Matrix; + + +//! Function of reframing between a restriction surface of the +//! surface and a curve. +//! Class used to compute a solution of the +//! surfRstConstRad problem on a done restriction of the +//! surface. +//! The vector used in Value, Values and Derivatives +//! methods has to be the vector of the parametric +//! coordinates wguide, wcurv, wrst where wguide is the +//! parameter on the guide line, wcurv is the parameter on +//! the curve, wrst is the parameter on the restriction on +//! the surface. +class BRepBlend_SurfCurvConstRadInv : public Blend_SurfCurvFuncInv +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepBlend_SurfCurvConstRadInv(const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor3d_HCurve)& C, const Handle(Adaptor3d_HCurve)& Cg); + + Standard_EXPORT void Set (const Standard_Real R, const Standard_Integer Choix); + + //! returns 3. + 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 restriction on which a solution has to be found. + Standard_EXPORT void Set (const Handle(Adaptor2d_HCurve2d)& Rst); + + //! 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_HSurface) surf; + Handle(Adaptor3d_HCurve) curv; + Handle(Adaptor3d_HCurve) guide; + Handle(Adaptor2d_HCurve2d) rst; + Standard_Real ray; + Standard_Integer choix; + + +}; + + + + + + + +#endif // _BRepBlend_SurfCurvConstRadInv_HeaderFile diff --git a/src/BRepBlend/BRepBlend_SurfCurvEvolRadInv.cdl b/src/BRepBlend/BRepBlend_SurfCurvEvolRadInv.cdl deleted file mode 100644 index 234adf7d4b..0000000000 --- a/src/BRepBlend/BRepBlend_SurfCurvEvolRadInv.cdl +++ /dev/null @@ -1,111 +0,0 @@ --- Created on: 1997-07-29 --- 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. - -class SurfCurvEvolRadInv from BRepBlend - -inherits SurfCurvFuncInv from Blend - - ---Purpose: Function of reframing between a surface restriction - -- of the surface and a curve. - -- Class used to compute a solution of the - -- surfRstConstRad problem on a done restriction of the - -- surface. - -- The vector used in Value, Values and Derivatives - -- methods has to be the vector of the parametric - -- coordinates wguide, wcurv, wrst where wguide is the - -- parameter on the guide line, wcurv is the parameter on - -- the curve, wrst is the parameter on the restriction on - -- the surface. - -uses - HCurve2d from Adaptor2d, - HCurve from Adaptor3d, - HSurface from Adaptor3d, - Vector from math, - Matrix from math, - Function from Law - - -is - - Create(S : HSurface from Adaptor3d; - C : HCurve from Adaptor3d; - Cg : HCurve from Adaptor3d; - Evol : Function from Law) - returns SurfCurvEvolRadInv from BRepBlend; - - Set(me: in out;Choix: Integer from Standard) - is static; - - NbEquations(me) - ---Purpose: returns 3. - returns Integer from Standard; - - Value(me: in out; X: Vector; F: out Vector) - ---Purpose: computes the values of the Functions for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Derivatives(me: in out; X: Vector; D: out Matrix) - ---Purpose: returns the values of the derivatives for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Values(me: in out; X: Vector; F: out Vector; D: out Matrix) - ---Purpose: returns the values of the functions and the derivatives - -- for the variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Set(me: in out; Rst : HCurve2d from Adaptor2d); - ---Purpose: Set the restriction on which a solution has to be found. - - GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard); - ---Purpose: Returns in the vector Tolerance the parametric tolerance - -- for each of the 3 variables; - -- Tol is the tolerance used in 3d space. - - GetBounds(me; InfBound,SupBound: out Vector from math); - ---Purpose: 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. - - IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard) - ---Purpose: Returns Standard_True if Sol is a zero of the function. - -- Tol is the tolerance used in 3d space. - returns Boolean from Standard; - -fields - - surf : HSurface from Adaptor3d; - curv : HCurve from Adaptor3d; - guide : HCurve from Adaptor3d; - rst : HCurve2d from Adaptor2d; - ray : Real from Standard; - choix : Integer from Standard; - tevol : Function from Law; - sg1 : Real from Standard; - - -end SurfCurvEvolRadInv; - - diff --git a/src/BRepBlend/BRepBlend_SurfCurvEvolRadInv.cxx b/src/BRepBlend/BRepBlend_SurfCurvEvolRadInv.cxx index 3b2d2cc7a7..999010189c 100644 --- a/src/BRepBlend/BRepBlend_SurfCurvEvolRadInv.cxx +++ b/src/BRepBlend/BRepBlend_SurfCurvEvolRadInv.cxx @@ -14,7 +14,13 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include //======================================================================= //function : diff --git a/src/BRepBlend/BRepBlend_SurfCurvEvolRadInv.hxx b/src/BRepBlend/BRepBlend_SurfCurvEvolRadInv.hxx new file mode 100644 index 0000000000..e08ee0c121 --- /dev/null +++ b/src/BRepBlend/BRepBlend_SurfCurvEvolRadInv.hxx @@ -0,0 +1,128 @@ +// Created on: 1997-07-29 +// 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_SurfCurvEvolRadInv_HeaderFile +#define _BRepBlend_SurfCurvEvolRadInv_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class Adaptor3d_HSurface; +class Adaptor3d_HCurve; +class Adaptor2d_HCurve2d; +class Law_Function; +class math_Matrix; + + +//! Function of reframing between a surface restriction +//! of the surface and a curve. +//! Class used to compute a solution of the +//! surfRstConstRad problem on a done restriction of the +//! surface. +//! The vector used in Value, Values and Derivatives +//! methods has to be the vector of the parametric +//! coordinates wguide, wcurv, wrst where wguide is the +//! parameter on the guide line, wcurv is the parameter on +//! the curve, wrst is the parameter on the restriction on +//! the surface. +class BRepBlend_SurfCurvEvolRadInv : public Blend_SurfCurvFuncInv +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepBlend_SurfCurvEvolRadInv(const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor3d_HCurve)& C, const Handle(Adaptor3d_HCurve)& Cg, const Handle(Law_Function)& Evol); + + Standard_EXPORT void Set (const Standard_Integer Choix); + + //! returns 3. + 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 restriction on which a solution has to be found. + Standard_EXPORT void Set (const Handle(Adaptor2d_HCurve2d)& Rst); + + //! 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_HSurface) surf; + Handle(Adaptor3d_HCurve) curv; + Handle(Adaptor3d_HCurve) guide; + Handle(Adaptor2d_HCurve2d) rst; + Standard_Real ray; + Standard_Integer choix; + Handle(Law_Function) tevol; + Standard_Real sg1; + + +}; + + + + + + + +#endif // _BRepBlend_SurfCurvEvolRadInv_HeaderFile diff --git a/src/BRepBlend/BRepBlend_SurfPointConstRadInv.cdl b/src/BRepBlend/BRepBlend_SurfPointConstRadInv.cdl deleted file mode 100644 index 2c87ad63bd..0000000000 --- a/src/BRepBlend/BRepBlend_SurfPointConstRadInv.cdl +++ /dev/null @@ -1,98 +0,0 @@ --- 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. - -class SurfPointConstRadInv from BRepBlend - -inherits SurfPointFuncInv from Blend - - ---Purpose: Function of reframing between a point and a surface. - -- This function is used to find a solution on a done - -- point of the curve when using SurfRstConsRad or - -- CSConstRad... - -- The vector used in Value, Values and Derivatives - -- methods has to be the vector of the parametric - -- coordinates w, U, V where w is the parameter on the - -- guide line, U,V are the parametric coordinates of a - -- point on the partner surface. - -uses - Pnt from gp, - Vector from math, - Matrix from math, - HSurface from Adaptor3d, - HCurve from Adaptor3d - - -is - Create(S : HSurface from Adaptor3d; C : HCurve from Adaptor3d) - returns SurfPointConstRadInv from BRepBlend; - - Set(me: in out; R: Real from Standard; Choix: Integer from Standard) - is static; - - NbEquations(me) - ---Purpose: returns 3. - returns Integer from Standard; - - Value(me: in out; X: Vector; F: out Vector) - ---Purpose: computes the values of the Functions for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Derivatives(me: in out; X: Vector; D: out Matrix) - ---Purpose: returns the values of the derivatives for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Values(me: in out; X: Vector; F: out Vector; D: out Matrix) - ---Purpose: returns the values of the functions and the derivatives - -- for the variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Set(me: in out; P : Pnt from gp); - ---Purpose: Set the Point on which a solution has to be found. - - GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard); - ---Purpose: Returns in the vector Tolerance the parametric tolerance - -- for each of the 3 variables; - -- Tol is the tolerance used in 3d space. - - GetBounds(me; InfBound,SupBound: out Vector from math); - ---Purpose: 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. - - IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard) - ---Purpose: Returns Standard_True if Sol is a zero of the function. - -- Tol is the tolerance used in 3d space. - returns Boolean from Standard; - -fields - - surf : HSurface from Adaptor3d; - curv : HCurve from Adaptor3d; - point : Pnt from gp; - ray : Real from Standard; - choix : Integer from Standard; - -end SurfPointConstRadInv; diff --git a/src/BRepBlend/BRepBlend_SurfPointConstRadInv.cxx b/src/BRepBlend/BRepBlend_SurfPointConstRadInv.cxx index 8f6ce73a8f..8b4834594e 100644 --- a/src/BRepBlend/BRepBlend_SurfPointConstRadInv.cxx +++ b/src/BRepBlend/BRepBlend_SurfPointConstRadInv.cxx @@ -14,13 +14,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include //======================================================================= //function : BRepBlend_SurfPointConstRadInv //purpose : //======================================================================= - BRepBlend_SurfPointConstRadInv::BRepBlend_SurfPointConstRadInv (const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor3d_HCurve)& C) : surf(S), curv(C) diff --git a/src/BRepBlend/BRepBlend_SurfPointConstRadInv.hxx b/src/BRepBlend/BRepBlend_SurfPointConstRadInv.hxx new file mode 100644 index 0000000000..fddaef74c8 --- /dev/null +++ b/src/BRepBlend/BRepBlend_SurfPointConstRadInv.hxx @@ -0,0 +1,123 @@ +// 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_SurfPointConstRadInv_HeaderFile +#define _BRepBlend_SurfPointConstRadInv_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class Adaptor3d_HSurface; +class Adaptor3d_HCurve; +class math_Matrix; +class gp_Pnt; + + +//! Function of reframing between a point and a surface. +//! This function is used to find a solution on a done +//! point of the curve when using SurfRstConsRad or +//! CSConstRad... +//! The vector used in Value, Values and Derivatives +//! methods has to be the vector of the parametric +//! coordinates w, U, V where w is the parameter on the +//! guide line, U,V are the parametric coordinates of a +//! point on the partner surface. +class BRepBlend_SurfPointConstRadInv : public Blend_SurfPointFuncInv +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepBlend_SurfPointConstRadInv(const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor3d_HCurve)& C); + + Standard_EXPORT void Set (const Standard_Real R, const Standard_Integer Choix); + + //! returns 3. + 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_HSurface) surf; + Handle(Adaptor3d_HCurve) curv; + gp_Pnt point; + Standard_Real ray; + Standard_Integer choix; + + +}; + + + + + + + +#endif // _BRepBlend_SurfPointConstRadInv_HeaderFile diff --git a/src/BRepBlend/BRepBlend_SurfPointEvolRadInv.cdl b/src/BRepBlend/BRepBlend_SurfPointEvolRadInv.cdl deleted file mode 100644 index 3edfb47138..0000000000 --- a/src/BRepBlend/BRepBlend_SurfPointEvolRadInv.cdl +++ /dev/null @@ -1,102 +0,0 @@ --- Created on: 1997-07-29 --- 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. - -class SurfPointEvolRadInv from BRepBlend - -inherits SurfPointFuncInv from Blend - - ---Purpose: Function of reframing between a point and a surface. - -- This function is used to find a solution on a done - -- point of the curve when using SurfRstConsRad or - -- CSConstRad... - -- The vector used in Value, Values and Derivatives - -- methods has to be the vector of the parametric - -- coordinates w, U, V where w is the parameter on the - -- guide line, U,V are the parametric coordinates of a - -- point on the partner surface. - -uses - Pnt from gp, - Vector from math, - Matrix from math, - HSurface from Adaptor3d, - HCurve from Adaptor3d, - Function from Law - -is - Create(S : HSurface from Adaptor3d; C : HCurve from Adaptor3d; - Evol : Function from Law) - returns SurfPointEvolRadInv from BRepBlend; - - Set(me: in out; Choix: Integer from Standard) - is static; - - NbEquations(me) - ---Purpose: returns 3. - returns Integer from Standard; - - Value(me: in out; X: Vector; F: out Vector) - ---Purpose: computes the values of the Functions for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Derivatives(me: in out; X: Vector; D: out Matrix) - ---Purpose: returns the values of the derivatives for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Values(me: in out; X: Vector; F: out Vector; D: out Matrix) - ---Purpose: returns the values of the functions and the derivatives - -- for the variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Set(me: in out; P : Pnt from gp); - ---Purpose: Set the Point on which a solution has to be found. - - GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard); - ---Purpose: Returns in the vector Tolerance the parametric tolerance - -- for each of the 3 variables; - -- Tol is the tolerance used in 3d space. - - GetBounds(me; InfBound,SupBound: out Vector from math); - ---Purpose: 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. - - IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard) - ---Purpose: Returns Standard_True if Sol is a zero of the function. - -- Tol is the tolerance used in 3d space. - returns Boolean from Standard; - -fields - - surf : HSurface from Adaptor3d; - curv : HCurve from Adaptor3d; - point : Pnt from gp; - ray : Real from Standard; - choix : Integer from Standard; - tevol : Function from Law; - sg1 : Real from Standard; - - -end SurfPointEvolRadInv; diff --git a/src/BRepBlend/BRepBlend_SurfPointEvolRadInv.cxx b/src/BRepBlend/BRepBlend_SurfPointEvolRadInv.cxx index 3b597e147e..5e4380d884 100644 --- a/src/BRepBlend/BRepBlend_SurfPointEvolRadInv.cxx +++ b/src/BRepBlend/BRepBlend_SurfPointEvolRadInv.cxx @@ -14,8 +14,13 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : diff --git a/src/BRepBlend/BRepBlend_SurfPointEvolRadInv.hxx b/src/BRepBlend/BRepBlend_SurfPointEvolRadInv.hxx new file mode 100644 index 0000000000..56647390c8 --- /dev/null +++ b/src/BRepBlend/BRepBlend_SurfPointEvolRadInv.hxx @@ -0,0 +1,126 @@ +// Created on: 1997-07-29 +// 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_SurfPointEvolRadInv_HeaderFile +#define _BRepBlend_SurfPointEvolRadInv_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class Adaptor3d_HSurface; +class Adaptor3d_HCurve; +class Law_Function; +class math_Matrix; +class gp_Pnt; + + +//! Function of reframing between a point and a surface. +//! This function is used to find a solution on a done +//! point of the curve when using SurfRstConsRad or +//! CSConstRad... +//! The vector used in Value, Values and Derivatives +//! methods has to be the vector of the parametric +//! coordinates w, U, V where w is the parameter on the +//! guide line, U,V are the parametric coordinates of a +//! point on the partner surface. +class BRepBlend_SurfPointEvolRadInv : public Blend_SurfPointFuncInv +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepBlend_SurfPointEvolRadInv(const Handle(Adaptor3d_HSurface)& S, const Handle(Adaptor3d_HCurve)& C, const Handle(Law_Function)& Evol); + + Standard_EXPORT void Set (const Standard_Integer Choix); + + //! returns 3. + 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_HSurface) surf; + Handle(Adaptor3d_HCurve) curv; + gp_Pnt point; + Standard_Real ray; + Standard_Integer choix; + Handle(Law_Function) tevol; + Standard_Real sg1; + + +}; + + + + + + + +#endif // _BRepBlend_SurfPointEvolRadInv_HeaderFile diff --git a/src/BRepBlend/BRepBlend_SurfRstConstRad.cdl b/src/BRepBlend/BRepBlend_SurfRstConstRad.cdl deleted file mode 100644 index c2935fbaf6..0000000000 --- a/src/BRepBlend/BRepBlend_SurfRstConstRad.cdl +++ /dev/null @@ -1,312 +0,0 @@ --- 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. - -class SurfRstConstRad from BRepBlend -inherits SurfRstFunction from Blend - - ---Purpose: Copy of CSConstRad with pcurve on surface - -- as support. - -uses Vector from math, - Matrix from math, - Ax1 from gp, - Vec from gp, - Vec2d from gp, - Pnt from gp, - Pnt2d from gp, - Circ from gp, - Array1OfPnt from TColgp, - Array1OfVec from TColgp, - Array1OfPnt2d from TColgp, - Array1OfVec2d from TColgp, - Array1OfReal from TColStd, - Array1OfInteger from TColStd, - Shape from GeomAbs, - Point from Blend, - SectionShape from BlendFunc, - HSurface from Adaptor3d, - HCurve from Adaptor3d, - HCurve2d from Adaptor2d, - CurveOnSurface from Adaptor3d, - ParameterisationType from Convert - - -is - - Create(Surf : HSurface from Adaptor3d; - SurfRst : HSurface from Adaptor3d; - Rst : HCurve2d from Adaptor2d; - CGuide : HCurve from Adaptor3d) - returns SurfRstConstRad from BRepBlend; - - NbVariables(me) - ---Purpose: Returns 3. - returns Integer from Standard; - - NbEquations(me) - ---Purpose: Returns 3. - returns Integer from Standard; - - Value(me: in out; X: Vector; F: out Vector) - ---Purpose: computes the values of the Functions for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Derivatives(me: in out; X: Vector; D: out Matrix) - ---Purpose: returns the values of the derivatives for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Values(me: in out; X: Vector; F: out Vector; D: out Matrix) - ---Purpose: returns the values of the functions and the derivatives - -- for the variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Set(me : in out; - SurfRef : HSurface from Adaptor3d; - RstRef : HCurve2d from Adaptor2d); - - Set(me: in out; Param: Real from Standard); - - Set(me: in out; First, Last: Real from Standard); - ---Purpose: Sets the bounds of the parametric interval on - -- the guide line. - -- This determines the derivatives in these values if the - -- function is not Cn. - - GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard); - - GetBounds(me; InfBound,SupBound: out Vector from math); - - IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard) - returns Boolean from Standard; - - GetMinimalDistance(me) - ---Purpose: Returns the minimal Distance beetween two - -- extremitys of calculed sections. - returns Real from Standard - is redefined; - ---- TheFollowing methods are called only when --- IsSolution returns Standard_True. - - PointOnS(me) - ---C++: return const& - returns Pnt from gp; - - PointOnRst(me) - ---C++: return const& - returns Pnt from gp; - - Pnt2dOnS(me) - ---Purpose: Returns U,V coordinates of the point on the surface. - ---C++: return const& - returns Pnt2d from gp; - - Pnt2dOnRst(me) - ---Purpose: Returns U,V coordinates of the point on the curve on - -- surface. - ---C++: return const& - returns Pnt2d from gp; - - ParameterOnRst(me) - ---Purpose: Returns parameter of the point on the curve. - returns Real from Standard; - - IsTangencyPoint(me) - returns Boolean from Standard; - - TangentOnS(me) - ---C++: return const& - returns Vec from gp; - - Tangent2dOnS(me) - ---C++: return const& - returns Vec2d from gp; - - TangentOnRst(me) - ---C++: return const& - returns Vec from gp; - - Tangent2dOnRst(me) - ---C++: return const& - returns Vec2d from gp; - - Decroch(me; - Sol : Vector from math; - NS,TgS : out Vec from gp) - ---Purpose: 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. - returns Boolean from Standard - is static; - --- methodes hors template (en plus du create) - - Set(me : in out; - Radius : Real from Standard; - Choix : Integer from Standard) - is static; - - Set(me: in out; TypeSection: SectionShape from BlendFunc) - ---Purpose: Sets the type of section generation for the - -- approximations. - is static; - - Section(me : in out; - Param : Real from Standard; - U,V,W : Real from Standard; - Pdeb,Pfin : out Real from Standard; - C : out Circ from gp) - is static; - --- Methods for the approximation --- - IsRational(me) returns Boolean - ---Purpose: Returns if the section is rationnal - is static; - - GetSectionSize(me) returns Real - ---Purpose: Returns the length of the maximum section - is static; - - GetMinimalWeight(me; Weigths : out Array1OfReal from TColStd) - ---Purpose: Compute the minimal value of weight for each poles - -- of all sections. - is static; - - NbIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of intervals for continuity - -- . May be one if Continuity(me) >= - is static; - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - is static; - - GetShape(me : in out; - NbPoles : out Integer from Standard; - NbKnots : out Integer from Standard; - Degree : out Integer from Standard; - NbPoles2d : out Integer from Standard) - is static; - - GetTolerance(me; - BoundTol, SurfTol, AngleTol : Real; - Tol3d : out Vector; - Tol1D : out Vector ) - ---Purpose: Returns the tolerance to reach in approximation - -- to respecte - -- BoundTol error at the Boundary - -- AngleTol tangent error at the Boundary - -- SurfTol error inside the surface. - is static; - - Knots(me: in out; TKnots: out Array1OfReal from TColStd) - is static; - - Mults(me: in out; TMults: out Array1OfInteger from TColStd) - is static; - - Section(me : in out ; - P : Point from Blend; - Poles : out Array1OfPnt from TColgp; - DPoles : out Array1OfVec from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - DPoles2d : out Array1OfVec2d from TColgp; - Weigths : out Array1OfReal from TColStd; - DWeigths : out Array1OfReal from TColStd) - ---Purpose: Used for the first and last section - returns Boolean from Standard - is static; - - Section(me: in out; P: Point from Blend; - Poles : out Array1OfPnt from TColgp; - DPoles : out Array1OfVec from TColgp; - D2Poles : out Array1OfVec from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - DPoles2d : out Array1OfVec2d from TColgp; - D2Poles2d : out Array1OfVec2d from TColgp; - Weigths : out Array1OfReal from TColStd; - DWeigths : out Array1OfReal from TColStd; - D2Weigths : out Array1OfReal from TColStd) - ---Purpose: Used for the first and last section - -- The method returns Standard_True if the derivatives - -- are computed, otherwise it returns Standard_False. - returns Boolean from Standard - is static; - - Section(me : in out ; - P : Point from Blend; - Poles : out Array1OfPnt from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - Weigths : out Array1OfReal from TColStd) - is static; - - Resolution(me; - IC2d : Integer from Standard; - Tol : Real from Standard; - TolU, TolV : out Real from Standard); - -fields - - surf : HSurface from Adaptor3d; - surfrst : HSurface from Adaptor3d; - rst : HCurve2d from Adaptor2d; - cons : CurveOnSurface from Adaptor3d; - guide : HCurve from Adaptor3d; - tguide : HCurve from Adaptor3d; - pts : Pnt from gp; - ptrst : Pnt from gp; - pt2ds : Pnt2d from gp; - pt2drst : Pnt2d from gp; - prmrst : Real from Standard; - istangent: Boolean from Standard; - tgs : Vec from gp; - tg2ds : Vec2d from gp; - tgrst : Vec from gp; - tg2drst : Vec2d from gp; - - ray : Real from Standard; - choix : Integer from Standard; - ptgui : Pnt from gp; - d1gui : Vec from gp; - d2gui : Vec from gp; - nplan : Vec from gp; - normtg : Real from Standard; - theD : Real from Standard; - - surfref : HSurface from Adaptor3d; - rstref : HCurve2d from Adaptor2d; - - maxang : Real from Standard; - minang : Real from Standard; - distmin : Real from Standard; - mySShape : SectionShape from BlendFunc; - myTConv : ParameterisationType from Convert; - -end SurfRstConstRad; diff --git a/src/BRepBlend/BRepBlend_SurfRstConstRad.cxx b/src/BRepBlend/BRepBlend_SurfRstConstRad.cxx index ea7365fa77..2e08453d72 100644 --- a/src/BRepBlend/BRepBlend_SurfRstConstRad.cxx +++ b/src/BRepBlend/BRepBlend_SurfRstConstRad.cxx @@ -14,17 +14,27 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include +#include +#include +#include +#include #include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include #define Eps 1.e-15 diff --git a/src/BRepBlend/BRepBlend_SurfRstConstRad.hxx b/src/BRepBlend/BRepBlend_SurfRstConstRad.hxx new file mode 100644 index 0000000000..b134a074c8 --- /dev/null +++ b/src/BRepBlend/BRepBlend_SurfRstConstRad.hxx @@ -0,0 +1,247 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Adaptor3d_HSurface; +class Adaptor2d_HCurve2d; +class Adaptor3d_HCurve; +class math_Matrix; +class gp_Pnt; +class gp_Pnt2d; +class gp_Vec; +class gp_Vec2d; +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_HSurface)& Surf, const Handle(Adaptor3d_HSurface)& SurfRst, const Handle(Adaptor2d_HCurve2d)& Rst, const Handle(Adaptor3d_HCurve)& CGuide); + + //! Returns 3. + Standard_EXPORT Standard_Integer NbVariables() const; + + //! Returns 3. + 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); + + Standard_EXPORT void Set (const Handle(Adaptor3d_HSurface)& SurfRef, const Handle(Adaptor2d_HCurve2d)& RstRef); + + Standard_EXPORT void Set (const Standard_Real Param); + + //! 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_EXPORT void GetTolerance (math_Vector& Tolerance, const Standard_Real Tol) const; + + Standard_EXPORT void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const; + + Standard_EXPORT Standard_Boolean IsSolution (const math_Vector& Sol, const Standard_Real Tol); + + //! Returns the minimal Distance beetween two + //! extremitys of calculed sections. + Standard_EXPORT virtual Standard_Real GetMinimalDistance() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Pnt& PointOnS() const; + + Standard_EXPORT const gp_Pnt& PointOnRst() const; + + //! Returns U,V coordinates of the point on the surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnS() const; + + //! Returns U,V coordinates of the point on the curve on + //! surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst() const; + + //! Returns parameter of the point on the curve. + Standard_EXPORT Standard_Real ParameterOnRst() const; + + Standard_EXPORT Standard_Boolean IsTangencyPoint() const; + + Standard_EXPORT const gp_Vec& TangentOnS() const; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnS() const; + + Standard_EXPORT const gp_Vec& TangentOnRst() const; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnRst() const; + + //! 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_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 rationnal + Standard_EXPORT Standard_Boolean IsRational() const; + + //! Returns the length of the maximum section + Standard_EXPORT Standard_Real GetSectionSize() const; + + //! Compute the minimal value of weight for each poles + //! of all sections. + Standard_EXPORT void GetMinimalWeight (TColStd_Array1OfReal& Weigths) const; + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(me) >= + Standard_EXPORT Standard_Integer NbIntervals (const GeomAbs_Shape S) const; + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! The array must provide enough room to accomodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const; + + Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d); + + //! Returns the tolerance to reach in approximation + //! to respecte + //! 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_EXPORT void Knots (TColStd_Array1OfReal& TKnots); + + Standard_EXPORT void Mults (TColStd_Array1OfInteger& TMults); + + //! 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); + + //! 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_EXPORT void Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfPnt2d& Poles2d, TColStd_Array1OfReal& Weigths); + + Standard_EXPORT void Resolution (const Standard_Integer IC2d, const Standard_Real Tol, Standard_Real& TolU, Standard_Real& TolV) const; + + + + +protected: + + + + + +private: + + + + Handle(Adaptor3d_HSurface) surf; + Handle(Adaptor3d_HSurface) surfrst; + Handle(Adaptor2d_HCurve2d) rst; + Adaptor3d_CurveOnSurface cons; + Handle(Adaptor3d_HCurve) guide; + Handle(Adaptor3d_HCurve) 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_HSurface) surfref; + Handle(Adaptor2d_HCurve2d) rstref; + Standard_Real maxang; + Standard_Real minang; + Standard_Real distmin; + BlendFunc_SectionShape mySShape; + Convert_ParameterisationType myTConv; + + +}; + + + + + + + +#endif // _BRepBlend_SurfRstConstRad_HeaderFile diff --git a/src/BRepBlend/BRepBlend_SurfRstEvolRad.cdl b/src/BRepBlend/BRepBlend_SurfRstEvolRad.cdl deleted file mode 100644 index 2d34764e1b..0000000000 --- a/src/BRepBlend/BRepBlend_SurfRstEvolRad.cdl +++ /dev/null @@ -1,317 +0,0 @@ --- 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. - -class SurfRstEvolRad from BRepBlend -inherits SurfRstFunction from Blend - - ---Purpose: Function to approximate by AppSurface for - -- Edge/Face and evolutif radius - -uses Vector from math, - Matrix from math, - Ax1 from gp, - Vec from gp, - Vec2d from gp, - Pnt from gp, - Pnt2d from gp, - Circ from gp, - Array1OfPnt from TColgp, - Array1OfVec from TColgp, - Array1OfPnt2d from TColgp, - Array1OfVec2d from TColgp, - Array1OfReal from TColStd, - Array1OfInteger from TColStd, - Shape from GeomAbs, - Point from Blend, - SectionShape from BlendFunc, - HSurface from Adaptor3d, - HCurve from Adaptor3d, - HCurve2d from Adaptor2d, - CurveOnSurface from Adaptor3d, - ParameterisationType from Convert, - Function from Law - -is - - Create(Surf : HSurface from Adaptor3d; - SurfRst : HSurface from Adaptor3d; - Rst : HCurve2d from Adaptor2d; - CGuide : HCurve from Adaptor3d; - Evol : Function from Law) - returns SurfRstEvolRad from BRepBlend; - - NbVariables(me) - ---Purpose: Returns 3. - returns Integer from Standard; - - NbEquations(me) - ---Purpose: Returns 3. - returns Integer from Standard; - - Value(me: in out; X: Vector; F: out Vector) - ---Purpose: computes the values of the Functions for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Derivatives(me: in out; X: Vector; D: out Matrix) - ---Purpose: returns the values of the derivatives for the - -- variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Values(me: in out; X: Vector; F: out Vector; D: out Matrix) - ---Purpose: returns the values of the functions and the derivatives - -- for the variable . - -- Returns True if the computation was done successfully, - -- False otherwise. - returns Boolean from Standard; - - Set(me : in out; - SurfRef : HSurface from Adaptor3d; - RstRef : HCurve2d from Adaptor2d); - - Set(me: in out; Param: Real from Standard); - - Set(me: in out; First, Last: Real from Standard); - ---Purpose: Sets the bounds of the parametric interval on - -- the guide line. - -- This determines the derivatives in these values if the - -- function is not Cn. - - GetTolerance(me; Tolerance: out Vector from math; Tol: Real from Standard); - - GetBounds(me; InfBound,SupBound: out Vector from math); - - IsSolution(me: in out; Sol: Vector from math; Tol: Real from Standard) - returns Boolean from Standard; - - GetMinimalDistance(me) - ---Purpose: Returns the minimal Distance beetween two - -- extremitys of calculed sections. - returns Real from Standard - is redefined; - ---- TheFollowing methods are called only when --- IsSolution returns Standard_True. - - PointOnS(me) - ---C++: return const& - returns Pnt from gp; - - PointOnRst(me) - ---C++: return const& - returns Pnt from gp; - - Pnt2dOnS(me) - ---Purpose: Returns U,V coordinates of the point on the surface. - ---C++: return const& - returns Pnt2d from gp; - - Pnt2dOnRst(me) - ---Purpose: Returns U,V coordinates of the point on the curve on - -- surface. - ---C++: return const& - returns Pnt2d from gp; - - ParameterOnRst(me) - ---Purpose: Returns parameter of the point on the curve. - returns Real from Standard; - - IsTangencyPoint(me) - returns Boolean from Standard; - - TangentOnS(me) - ---C++: return const& - returns Vec from gp; - - Tangent2dOnS(me) - ---C++: return const& - returns Vec2d from gp; - - TangentOnRst(me) - ---C++: return const& - returns Vec from gp; - - Tangent2dOnRst(me) - ---C++: return const& - returns Vec2d from gp; - - Decroch(me; - Sol : Vector from math; - NS,TgS : out Vec from gp) - ---Warning: Peut etre appele sans appel prealable a issolution - -- mais les valeurs calculees risquent de ne pas avoir - -- grand sens. - ---Purpose: Permet d ' implementer un critere de decrochage - -- specifique a la fonction. - returns Boolean from Standard - is static; - --- methodes hors template (en plus du create) - - Set(me : in out; - Choix : Integer from Standard) - is static; - - Set(me: in out; TypeSection: SectionShape from BlendFunc) - ---Purpose: Sets the type of section generation for the - -- approximations. - is static; - - Section(me : in out; - Param : Real from Standard; - U,V,W : Real from Standard; - Pdeb,Pfin : out Real from Standard; - C : out Circ from gp) - is static; - --- Methods for the approximation --- - IsRational(me) returns Boolean - ---Purpose: Returns if the section is rationnal - is static; - - GetSectionSize(me) returns Real - ---Purpose: Returns the length of the maximum section - is static; - - GetMinimalWeight(me; Weigths : out Array1OfReal from TColStd) - ---Purpose: Compute the minimal value of weight for each poles - -- of all sections. - is static; - - NbIntervals(me; S : Shape from GeomAbs) returns Integer - ---Purpose: Returns the number of intervals for continuity - -- . May be one if Continuity(me) >= - is static; - - Intervals(me; T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - is static; - - GetShape(me : in out; - NbPoles : out Integer from Standard; - NbKnots : out Integer from Standard; - Degree : out Integer from Standard; - NbPoles2d : out Integer from Standard) - is static; - - GetTolerance(me; - BoundTol, SurfTol, AngleTol : Real; - Tol3d : out Vector; - Tol1D : out Vector ) - ---Purpose: Returns the tolerance to reach in approximation - -- to respecte - -- BoundTol error at the Boundary - -- AngleTol tangent error at the Boundary - -- SurfTol error inside the surface. - is static; - - Knots(me: in out; TKnots: out Array1OfReal from TColStd) - is static; - - Mults(me: in out; TMults: out Array1OfInteger from TColStd) - is static; - - Section(me : in out ; - P : Point from Blend; - Poles : out Array1OfPnt from TColgp; - DPoles : out Array1OfVec from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - DPoles2d : out Array1OfVec2d from TColgp; - Weigths : out Array1OfReal from TColStd; - DWeigths : out Array1OfReal from TColStd) - ---Purpose: Used for the first and last section - returns Boolean from Standard - is static; - - Section(me: in out; P: Point from Blend; - Poles : out Array1OfPnt from TColgp; - DPoles : out Array1OfVec from TColgp; - D2Poles : out Array1OfVec from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - DPoles2d : out Array1OfVec2d from TColgp; - D2Poles2d : out Array1OfVec2d from TColgp; - Weigths : out Array1OfReal from TColStd; - DWeigths : out Array1OfReal from TColStd; - D2Weigths : out Array1OfReal from TColStd) - ---Purpose: Used for the first and last section - -- The method returns Standard_True if the derivatives - -- are computed, otherwise it returns Standard_False. - returns Boolean from Standard - is static; - - Section(me : in out ; - P : Point from Blend; - Poles : out Array1OfPnt from TColgp; - Poles2d : out Array1OfPnt2d from TColgp; - Weigths : out Array1OfReal from TColStd) - is static; - - Resolution(me; - IC2d : Integer from Standard; - Tol : Real from Standard; - TolU, TolV : out Real from Standard); - -fields - - surf : HSurface from Adaptor3d; - surfrst : HSurface from Adaptor3d; - rst : HCurve2d from Adaptor2d; - cons : CurveOnSurface from Adaptor3d; - guide : HCurve from Adaptor3d; - tguide : HCurve from Adaptor3d; - pts : Pnt from gp; - ptrst : Pnt from gp; - pt2ds : Pnt2d from gp; - pt2drst : Pnt2d from gp; - prmrst : Real from Standard; - istangent: Boolean from Standard; - tgs : Vec from gp; - tg2ds : Vec2d from gp; - tgrst : Vec from gp; - tg2drst : Vec2d from gp; - - ray : Real from Standard; - dray : Real from Standard; - choix : Integer from Standard; - ptgui : Pnt from gp; - d1gui : Vec from gp; - d2gui : Vec from gp; - nplan : Vec from gp; - normtg : Real from Standard; - theD : Real from Standard; - - surfref : HSurface from Adaptor3d; - rstref : HCurve2d from Adaptor2d; - - maxang : Real from Standard; - minang : Real from Standard; - distmin : Real from Standard; - mySShape : SectionShape from BlendFunc; - myTConv : ParameterisationType from Convert; - tevol : Function from Law ; - fevol : Function from Law ; - sg1 : Real from Standard; - -end SurfRstEvolRad; diff --git a/src/BRepBlend/BRepBlend_SurfRstEvolRad.cxx b/src/BRepBlend/BRepBlend_SurfRstEvolRad.cxx index 5acbb2182a..b47bc38ddf 100644 --- a/src/BRepBlend/BRepBlend_SurfRstEvolRad.cxx +++ b/src/BRepBlend/BRepBlend_SurfRstEvolRad.cxx @@ -14,18 +14,29 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include +#include +#include +#include +#include #include +#include +#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include +#include #define Eps 1.e-15 diff --git a/src/BRepBlend/BRepBlend_SurfRstEvolRad.hxx b/src/BRepBlend/BRepBlend_SurfRstEvolRad.hxx new file mode 100644 index 0000000000..8b79708eba --- /dev/null +++ b/src/BRepBlend/BRepBlend_SurfRstEvolRad.hxx @@ -0,0 +1,250 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Adaptor3d_HSurface; +class Adaptor2d_HCurve2d; +class Adaptor3d_HCurve; +class Law_Function; +class math_Matrix; +class gp_Pnt; +class gp_Pnt2d; +class gp_Vec; +class gp_Vec2d; +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_HSurface)& Surf, const Handle(Adaptor3d_HSurface)& SurfRst, const Handle(Adaptor2d_HCurve2d)& Rst, const Handle(Adaptor3d_HCurve)& CGuide, const Handle(Law_Function)& Evol); + + //! Returns 3. + Standard_EXPORT Standard_Integer NbVariables() const; + + //! Returns 3. + 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); + + Standard_EXPORT void Set (const Handle(Adaptor3d_HSurface)& SurfRef, const Handle(Adaptor2d_HCurve2d)& RstRef); + + Standard_EXPORT void Set (const Standard_Real Param); + + //! 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_EXPORT void GetTolerance (math_Vector& Tolerance, const Standard_Real Tol) const; + + Standard_EXPORT void GetBounds (math_Vector& InfBound, math_Vector& SupBound) const; + + Standard_EXPORT Standard_Boolean IsSolution (const math_Vector& Sol, const Standard_Real Tol); + + //! Returns the minimal Distance beetween two + //! extremitys of calculed sections. + Standard_EXPORT virtual Standard_Real GetMinimalDistance() const Standard_OVERRIDE; + + Standard_EXPORT const gp_Pnt& PointOnS() const; + + Standard_EXPORT const gp_Pnt& PointOnRst() const; + + //! Returns U,V coordinates of the point on the surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnS() const; + + //! Returns U,V coordinates of the point on the curve on + //! surface. + Standard_EXPORT const gp_Pnt2d& Pnt2dOnRst() const; + + //! Returns parameter of the point on the curve. + Standard_EXPORT Standard_Real ParameterOnRst() const; + + Standard_EXPORT Standard_Boolean IsTangencyPoint() const; + + Standard_EXPORT const gp_Vec& TangentOnS() const; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnS() const; + + Standard_EXPORT const gp_Vec& TangentOnRst() const; + + Standard_EXPORT const gp_Vec2d& Tangent2dOnRst() const; + + //! 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_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 rationnal + Standard_EXPORT Standard_Boolean IsRational() const; + + //! Returns the length of the maximum section + Standard_EXPORT Standard_Real GetSectionSize() const; + + //! Compute the minimal value of weight for each poles + //! of all sections. + Standard_EXPORT void GetMinimalWeight (TColStd_Array1OfReal& Weigths) const; + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(me) >= + Standard_EXPORT Standard_Integer NbIntervals (const GeomAbs_Shape S) const; + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! The array must provide enough room to accomodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT void Intervals (TColStd_Array1OfReal& T, const GeomAbs_Shape S) const; + + Standard_EXPORT void GetShape (Standard_Integer& NbPoles, Standard_Integer& NbKnots, Standard_Integer& Degree, Standard_Integer& NbPoles2d); + + //! Returns the tolerance to reach in approximation + //! to respecte + //! 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_EXPORT void Knots (TColStd_Array1OfReal& TKnots); + + Standard_EXPORT void Mults (TColStd_Array1OfInteger& TMults); + + //! 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); + + //! 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_EXPORT void Section (const Blend_Point& P, TColgp_Array1OfPnt& Poles, TColgp_Array1OfPnt2d& Poles2d, TColStd_Array1OfReal& Weigths); + + Standard_EXPORT void Resolution (const Standard_Integer IC2d, const Standard_Real Tol, Standard_Real& TolU, Standard_Real& TolV) const; + + + + +protected: + + + + + +private: + + + + Handle(Adaptor3d_HSurface) surf; + Handle(Adaptor3d_HSurface) surfrst; + Handle(Adaptor2d_HCurve2d) rst; + Adaptor3d_CurveOnSurface cons; + Handle(Adaptor3d_HCurve) guide; + Handle(Adaptor3d_HCurve) 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_HSurface) surfref; + Handle(Adaptor2d_HCurve2d) 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/src/BRepBlend/BRepBlend_SurfRstLineBuilder.cdl b/src/BRepBlend/BRepBlend_SurfRstLineBuilder.cdl deleted file mode 100644 index 63a1df9009..0000000000 --- a/src/BRepBlend/BRepBlend_SurfRstLineBuilder.cdl +++ /dev/null @@ -1,249 +0,0 @@ --- Created on: 1997-01-23 --- 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. - -class SurfRstLineBuilder from BRepBlend - - ---Purpose: This class processes data resulting from - -- Blend_CSWalking taking in consideration the Surface - -- supporting the curve to detect the breakpoint. - -- - -- The criteria of distribution of points on the line are detailed - -- because it is to be used in the calculatuon of values approached - -- by an approximation of functions continued basing on - -- Blend_SurfRstFunction. - -- - -- Thus this pseudo path necessitates 3 criteria of regrouping : - -- - -- 1) exit of the domain of the curve - -- - -- 2) exit of the domain of the surface - -- - -- 3) stall as there is a solution to the problem - -- surf/surf within the domain of the surface - -- of support of the restriction. - -- - -- Construction of a BRepBlend_Line between a surface and - -- a pcurve on surface from an approached - -- starting solution. The output entries of this builder - -- are of the same nature as of the traditional walking - -- but the requirements on the Line are not the same - -- If the determination of validity range is always - -- guaranteed, the criteria of correct repartition of sections - -- before smoothing are not respected. The resulting Line - -- is f(t) oriented. - -uses Point from Blend, - Status from Blend, - SurfRstFunction from Blend, - FuncInv from Blend, - SurfPointFuncInv from Blend, - SurfCurvFuncInv from Blend, - Vector from math, - Matrix from math, - State from TopAbs, - Pnt from gp, - Pnt2d from gp, - Vec from gp, - Vec2d from gp, - HArray1OfReal from TColStd, - Transition from IntSurf, - HVertex from Adaptor3d, - HSurface from Adaptor3d, - HCurve2d from Adaptor2d, - TopolTool from Adaptor3d, - Line from BRepBlend, - Extremity from BRepBlend - -is - - Create(Surf1 : HSurface from Adaptor3d; - Domain1 : TopolTool from Adaptor3d; - Surf2 : HSurface from Adaptor3d; - Rst : HCurve2d from Adaptor2d; - Domain2 : TopolTool from Adaptor3d) - returns SurfRstLineBuilder from BRepBlend; - - Perform(me : in out; - Func : in out SurfRstFunction from Blend; - Finv : in out FuncInv from Blend; - FinvP : in out SurfPointFuncInv from Blend; - FinvC : in out SurfCurvFuncInv from Blend; - Pdep : Real from Standard; - Pmax : Real from Standard; - MaxStep : Real from Standard; - TolGuide : Real from Standard; - Soldep : Vector from math; - Tolesp : Real from Standard; - Fleche : Real from Standard; - Appro : Boolean from Standard = Standard_False) - is static; - - PerformFirstSection(me : in out; - Func : in out SurfRstFunction from Blend; - Finv : in out FuncInv from Blend; - FinvP : in out SurfPointFuncInv from Blend; - FinvC : in out SurfCurvFuncInv from Blend; - Pdep : Real from Standard; - Pmax : Real from Standard; - Soldep : Vector from math; - Tolesp : Real from Standard; - TolGuide : Real from Standard; - RecRst : Boolean from Standard; - RecP : Boolean from Standard; - RecS : Boolean from Standard; - Psol : out Real from Standard; - ParSol : out Vector from math) - returns Boolean from Standard - is static; - - Complete(me : in out; - Func : in out SurfRstFunction from Blend; - Finv : in out FuncInv from Blend; - FinvP : in out SurfPointFuncInv from Blend; - FinvC : in out SurfCurvFuncInv from Blend; - Pmin : Real from Standard) - - returns Boolean from Standard - is static; - - InternalPerform (me : in out; - Func : in out SurfRstFunction from Blend; - Finv : in out FuncInv from Blend; - FinvP : in out SurfPointFuncInv from Blend; - FinvC : in out SurfCurvFuncInv from Blend; - Bound : Real from Standard) - is static private; - - ArcToRecadre(me : in out; - Sol : Vector from math; - PrevIndex : Integer; - pt2d, lastpt2d : out Pnt2d from gp; - ponarc : out Real) - returns Integer; - - Recadre(me : in out; - FinvC : in out SurfCurvFuncInv from Blend; - Solinv : out Vector from math; - Arc : out HCurve2d from Adaptor2d; - IsVtx : out Boolean from Standard; - Vtx : out HVertex from Adaptor3d) - returns Boolean from Standard - is static private; - - Recadre(me : in out; - Func : in out SurfRstFunction from Blend; - Finv : in out FuncInv from Blend; - Solinv : out Vector from math; - IsVtx : out Boolean from Standard; - Vtx : out HVertex from Adaptor3d) - returns Boolean from Standard - is static private; - - Recadre(me : in out; - FinvP : in out SurfPointFuncInv from Blend; - Solinv : out Vector from math; - IsVtx : out Boolean from Standard; - Vtx : out HVertex from Adaptor3d) - returns Boolean from Standard - is static private; - - IsDone(me) - returns Boolean from Standard - ---C++: inline - is static; - - Line(me) - returns Line from BRepBlend - ---C++: inline - ---C++: return const& - is static; - - DecrochStart(me) - returns Boolean from Standard - ---C++: inline - is static; - - DecrochEnd(me) - returns Boolean from Standard - ---C++: inline - is static; - - Transition(me : in out; - OnFirst : Boolean from Standard; - Arc : HCurve2d from Adaptor2d; - Param : Real from Standard; - TLine,TArc : out Transition from IntSurf) - is static private; - - MakeExtremity(me : in out; - Extrem : in out Extremity from BRepBlend; - OnFirst : Boolean from Standard; - Arc : HCurve2d from Adaptor2d; - Param : Real from Standard; - IsVtx : Boolean from Standard; - Vtx : HVertex from Adaptor3d) - is static private; - - CheckDeflectionOnSurf(me : in out; - CurPoint : Point from Blend) - returns Status from Blend - is static private; - - CheckDeflectionOnRst(me : in out; - CurPoint : Point from Blend) - returns Status from Blend - is static private; - - TestArret(me : in out; - Func : in out SurfRstFunction from Blend; - TestDeflection : Boolean from Standard; - State : Status from Blend) - returns Status from Blend - is static private; - - CheckInside(me : in out; - Func : in out SurfRstFunction from Blend; - SituOnC : out State from TopAbs; - SituOnS : out State from TopAbs; - Decroch : out Boolean from Standard) - returns Boolean from Standard - is static private; - -fields - - done : Boolean from Standard; - line : Line from BRepBlend; - sol : Vector from math; - surf1 : HSurface from Adaptor3d; - domain1 : TopolTool from Adaptor3d; - surf2 : HSurface from Adaptor3d; - rst : HCurve2d from Adaptor2d; - domain2 : TopolTool from Adaptor3d; - - tolesp : Real from Standard; - tolgui : Real from Standard; - pasmax : Real from Standard; - fleche : Real from Standard; - param : Real from Standard; - previousP : Point from Blend; - rebrou : Boolean from Standard; - iscomplete : Boolean from Standard; - comptra : Boolean from Standard; - sens : Real from Standard; - decrochdeb : Boolean from Standard; - decrochfin : Boolean from Standard; - -end SurfRstLineBuilder from BRepBlend; diff --git a/src/BRepBlend/BRepBlend_SurfRstLineBuilder.cxx b/src/BRepBlend/BRepBlend_SurfRstLineBuilder.cxx index f256d293a7..5b1a4052c5 100644 --- a/src/BRepBlend/BRepBlend_SurfRstLineBuilder.cxx +++ b/src/BRepBlend/BRepBlend_SurfRstLineBuilder.cxx @@ -14,18 +14,30 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include +#include +#include +#include #include -#include +#include #include +#include +#include +#include +#include +#include +#include #ifdef OCCT_DEBUG #include #include diff --git a/src/BRepBlend/BRepBlend_SurfRstLineBuilder.hxx b/src/BRepBlend/BRepBlend_SurfRstLineBuilder.hxx new file mode 100644 index 0000000000..62c2330b83 --- /dev/null +++ b/src/BRepBlend/BRepBlend_SurfRstLineBuilder.hxx @@ -0,0 +1,163 @@ +// Created on: 1997-01-23 +// 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_SurfRstLineBuilder_HeaderFile +#define _BRepBlend_SurfRstLineBuilder_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class BRepBlend_Line; +class Adaptor3d_HSurface; +class Adaptor3d_TopolTool; +class Adaptor2d_HCurve2d; +class Blend_SurfRstFunction; +class Blend_FuncInv; +class Blend_SurfPointFuncInv; +class Blend_SurfCurvFuncInv; +class gp_Pnt2d; +class Adaptor3d_HVertex; +class IntSurf_Transition; +class BRepBlend_Extremity; +class Blend_Point; + + +//! This class processes data resulting from +//! Blend_CSWalking taking in consideration the Surface +//! supporting the curve to detect the breakpoint. +//! +//! The criteria of distribution of points on the line are detailed +//! because it is to be used in the calculatuon of values approached +//! by an approximation of functions continued basing on +//! Blend_SurfRstFunction. +//! +//! Thus this pseudo path necessitates 3 criteria of regrouping : +//! +//! 1) exit of the domain of the curve +//! +//! 2) exit of the domain of the surface +//! +//! 3) stall as there is a solution to the problem +//! surf/surf within the domain of the surface +//! of support of the restriction. +//! +//! Construction of a BRepBlend_Line between a surface and +//! a pcurve on surface from an approached +//! starting solution. The output entries of this builder +//! are of the same nature as of the traditional walking +//! but the requirements on the Line are not the same +//! If the determination of validity range is always +//! guaranteed, the criteria of correct repartition of sections +//! before smoothing are not respected. The resulting Line +//! is f(t) oriented. +class BRepBlend_SurfRstLineBuilder +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepBlend_SurfRstLineBuilder(const Handle(Adaptor3d_HSurface)& Surf1, const Handle(Adaptor3d_TopolTool)& Domain1, const Handle(Adaptor3d_HSurface)& Surf2, const Handle(Adaptor2d_HCurve2d)& Rst, const Handle(Adaptor3d_TopolTool)& Domain2); + + Standard_EXPORT void Perform (Blend_SurfRstFunction& Func, Blend_FuncInv& Finv, Blend_SurfPointFuncInv& FinvP, Blend_SurfCurvFuncInv& FinvC, const Standard_Real Pdep, const Standard_Real Pmax, const Standard_Real MaxStep, const Standard_Real TolGuide, const math_Vector& Soldep, const Standard_Real Tolesp, const Standard_Real Fleche, const Standard_Boolean Appro = Standard_False); + + Standard_EXPORT Standard_Boolean PerformFirstSection (Blend_SurfRstFunction& Func, Blend_FuncInv& Finv, Blend_SurfPointFuncInv& FinvP, Blend_SurfCurvFuncInv& FinvC, const Standard_Real Pdep, const Standard_Real Pmax, const math_Vector& Soldep, const Standard_Real Tolesp, const Standard_Real TolGuide, const Standard_Boolean RecRst, const Standard_Boolean RecP, const Standard_Boolean RecS, Standard_Real& Psol, math_Vector& ParSol); + + Standard_EXPORT Standard_Boolean Complete (Blend_SurfRstFunction& Func, Blend_FuncInv& Finv, Blend_SurfPointFuncInv& FinvP, Blend_SurfCurvFuncInv& FinvC, const Standard_Real Pmin); + + Standard_EXPORT Standard_Integer ArcToRecadre (const math_Vector& Sol, const Standard_Integer PrevIndex, gp_Pnt2d& pt2d, gp_Pnt2d& lastpt2d, Standard_Real& ponarc); + + Standard_Boolean IsDone() const; + + const Handle(BRepBlend_Line)& Line() const; + + Standard_Boolean DecrochStart() const; + + Standard_Boolean DecrochEnd() const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT void InternalPerform (Blend_SurfRstFunction& Func, Blend_FuncInv& Finv, Blend_SurfPointFuncInv& FinvP, Blend_SurfCurvFuncInv& FinvC, const Standard_Real Bound); + + Standard_EXPORT Standard_Boolean Recadre (Blend_SurfCurvFuncInv& FinvC, math_Vector& Solinv, Handle(Adaptor2d_HCurve2d)& Arc, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx); + + Standard_EXPORT Standard_Boolean Recadre (Blend_SurfRstFunction& Func, Blend_FuncInv& Finv, math_Vector& Solinv, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx); + + Standard_EXPORT Standard_Boolean Recadre (Blend_SurfPointFuncInv& FinvP, math_Vector& Solinv, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx); + + Standard_EXPORT void Transition (const Standard_Boolean OnFirst, const Handle(Adaptor2d_HCurve2d)& Arc, const Standard_Real Param, IntSurf_Transition& TLine, IntSurf_Transition& TArc); + + Standard_EXPORT void MakeExtremity (BRepBlend_Extremity& Extrem, const Standard_Boolean OnFirst, const Handle(Adaptor2d_HCurve2d)& Arc, const Standard_Real Param, const Standard_Boolean IsVtx, const Handle(Adaptor3d_HVertex)& Vtx); + + Standard_EXPORT Blend_Status CheckDeflectionOnSurf (const Blend_Point& CurPoint); + + Standard_EXPORT Blend_Status CheckDeflectionOnRst (const Blend_Point& CurPoint); + + Standard_EXPORT Blend_Status TestArret (Blend_SurfRstFunction& Func, const Standard_Boolean TestDeflection, const Blend_Status State); + + Standard_EXPORT Standard_Boolean CheckInside (Blend_SurfRstFunction& Func, TopAbs_State& SituOnC, TopAbs_State& SituOnS, Standard_Boolean& Decroch); + + + Standard_Boolean done; + Handle(BRepBlend_Line) line; + math_Vector sol; + Handle(Adaptor3d_HSurface) surf1; + Handle(Adaptor3d_TopolTool) domain1; + Handle(Adaptor3d_HSurface) surf2; + Handle(Adaptor2d_HCurve2d) rst; + Handle(Adaptor3d_TopolTool) domain2; + Standard_Real tolesp; + Standard_Real tolgui; + Standard_Real pasmax; + Standard_Real fleche; + Standard_Real param; + Blend_Point previousP; + Standard_Boolean rebrou; + Standard_Boolean iscomplete; + Standard_Boolean comptra; + Standard_Real sens; + Standard_Boolean decrochdeb; + Standard_Boolean decrochfin; + + +}; + + +#include + + + + + +#endif // _BRepBlend_SurfRstLineBuilder_HeaderFile diff --git a/src/BRepBlend/BRepBlend_Walking.hxx b/src/BRepBlend/BRepBlend_Walking.hxx new file mode 100644 index 0000000000..734d1141f4 --- /dev/null +++ b/src/BRepBlend/BRepBlend_Walking.hxx @@ -0,0 +1,233 @@ +// 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_Walking_HeaderFile +#define _BRepBlend_Walking_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class BRepBlend_Line; +class Adaptor3d_HSurface; +class Adaptor3d_TopolTool; +class ChFiDS_HElSpine; +class StdFail_NotDone; +class Adaptor3d_HVertex; +class Adaptor2d_HCurve2d; +class Adaptor3d_HCurve; +class BRepBlend_HCurve2dTool; +class Adaptor3d_HSurfaceTool; +class BRepBlend_HCurveTool; +class BRepBlend_BlendTool; +class BRepBlend_PointOnRst; +class BRepBlend_Extremity; +class Blend_Point; +class Blend_Function; +class Blend_FuncInv; +class gp_Pnt; +class gp_Pnt2d; +class IntSurf_Transition; + + + +class BRepBlend_Walking +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepBlend_Walking(const Handle(Adaptor3d_HSurface)& Surf1, const Handle(Adaptor3d_HSurface)& Surf2, const Handle(Adaptor3d_TopolTool)& Domain1, const Handle(Adaptor3d_TopolTool)& Domain2, const Handle(ChFiDS_HElSpine)& HGuide); + + Standard_EXPORT void SetDomainsToRecadre (const Handle(Adaptor3d_TopolTool)& RecDomain1, const Handle(Adaptor3d_TopolTool)& RecDomain2); + + Standard_EXPORT void AddSingularPoint (const Blend_Point& P); + + Standard_EXPORT void Perform (Blend_Function& F, Blend_FuncInv& FInv, const Standard_Real Pdep, const Standard_Real Pmax, const Standard_Real MaxStep, const Standard_Real TolGuide, const math_Vector& Soldep, const Standard_Real Tolesp, const Standard_Real Fleche, const Standard_Boolean Appro = Standard_False); + + Standard_EXPORT Standard_Boolean PerformFirstSection (Blend_Function& F, const Standard_Real Pdep, math_Vector& ParDep, const Standard_Real Tolesp, const Standard_Real TolGuide, TopAbs_State& Pos1, TopAbs_State& Pos2); + + Standard_EXPORT Standard_Boolean PerformFirstSection (Blend_Function& F, Blend_FuncInv& FInv, const Standard_Real Pdep, const Standard_Real Pmax, const math_Vector& ParDep, const Standard_Real Tolesp, const Standard_Real TolGuide, const Standard_Boolean RecOnS1, const Standard_Boolean RecOnS2, Standard_Real& Psol, math_Vector& ParSol); + + Standard_EXPORT Standard_Boolean Continu (Blend_Function& F, Blend_FuncInv& FInv, const Standard_Real P); + + Standard_EXPORT Standard_Boolean Continu (Blend_Function& F, Blend_FuncInv& FInv, const Standard_Real P, const Standard_Boolean OnS1); + + Standard_EXPORT Standard_Boolean Complete (Blend_Function& F, Blend_FuncInv& FInv, const Standard_Real Pmin); + + Standard_EXPORT void ClassificationOnS1 (const Standard_Boolean C); + + Standard_EXPORT void ClassificationOnS2 (const Standard_Boolean C); + + Standard_EXPORT void Check2d (const Standard_Boolean C); + + Standard_EXPORT void Check (const Standard_Boolean C); + + Standard_Boolean TwistOnS1() const; + + Standard_Boolean TwistOnS2() const; + + Standard_Boolean IsDone() const; + + const Handle(BRepBlend_Line)& Line() const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT void InternalPerform (Blend_Function& F, Blend_FuncInv& FInv, const Standard_Real Bound); + + Standard_EXPORT Standard_Boolean CorrectExtremityOnOneRst (const Standard_Integer IndexOfRst, const Standard_Real theU, const Standard_Real theV, const Standard_Real theParam, const gp_Pnt& thePntOnRst, Standard_Real& NewU, Standard_Real& NewV, gp_Pnt& NewPoint, Standard_Real& NewParam) const; + + Standard_EXPORT Standard_Integer ArcToRecadre (const Standard_Boolean OnFirst, const math_Vector& Sol, const Standard_Integer PrevIndex, gp_Pnt2d& lpt2d, gp_Pnt2d& pt2d, Standard_Real& ponarc); + + Standard_EXPORT Standard_Boolean Recadre (Blend_FuncInv& FInv, const Standard_Boolean OnFirst, const math_Vector& Sol, math_Vector& Solrst, Standard_Integer& Indexsol, Standard_Boolean& IsVtx, Handle(Adaptor3d_HVertex)& Vtx, const Standard_Real Extrap = 0.0); + + Standard_EXPORT void Transition (const Standard_Boolean OnFirst, const Handle(Adaptor2d_HCurve2d)& A, const Standard_Real Param, IntSurf_Transition& TLine, IntSurf_Transition& TArc); + + Standard_EXPORT void MakeExtremity (BRepBlend_Extremity& Extrem, const Standard_Boolean OnFirst, const Standard_Integer Index, const Standard_Real Param, const Standard_Boolean IsVtx, const Handle(Adaptor3d_HVertex)& Vtx); + + Standard_EXPORT void MakeSingularExtremity (BRepBlend_Extremity& Extrem, const Standard_Boolean OnFirst, const Handle(Adaptor3d_HVertex)& Vtx); + + Standard_EXPORT Blend_Status CheckDeflection (const Standard_Boolean OnFirst, const Blend_Point& CurPoint); + + Standard_EXPORT Blend_Status TestArret (Blend_Function& F, const Blend_Status State, const Standard_Boolean TestDeflection = Standard_True, const Standard_Boolean TestSolution = Standard_True, const Standard_Boolean TestLengthStep = Standard_False); + + + Blend_Point previousP; + Handle(BRepBlend_Line) line; + math_Vector sol; + Blend_SequenceOfPoint jalons; + Handle(Adaptor3d_HSurface) surf1; + Handle(Adaptor3d_HSurface) surf2; + Handle(Adaptor3d_TopolTool) domain1; + Handle(Adaptor3d_TopolTool) domain2; + Handle(Adaptor3d_TopolTool) recdomain1; + Handle(Adaptor3d_TopolTool) recdomain2; + Handle(ChFiDS_HElSpine) hguide; + Standard_Boolean ToCorrectOnRst1; + Standard_Boolean ToCorrectOnRst2; + Standard_Real CorrectedParam; + Standard_Real tolesp; + Standard_Real tolgui; + Standard_Real pasmax; + Standard_Real fleche; + Standard_Real param; + Standard_Real sens; + Standard_Boolean done; + Standard_Boolean rebrou; + Standard_Boolean iscomplete; + Standard_Boolean comptra; + Standard_Boolean clasonS1; + Standard_Boolean clasonS2; + Standard_Boolean check2d; + Standard_Boolean check; + Standard_Boolean twistflag1; + Standard_Boolean twistflag2; + + +}; + +#define TheVertex Handle(Adaptor3d_HVertex) +#define TheVertex_hxx +#define TheArc Handle(Adaptor2d_HCurve2d) +#define TheArc_hxx +#define TheSurface Handle(Adaptor3d_HSurface) +#define TheSurface_hxx +#define TheCurve Handle(Adaptor3d_HCurve) +#define TheCurve_hxx +#define TheVertexTool Standard_Integer +#define TheVertexTool_hxx +#define TheArcTool BRepBlend_HCurve2dTool +#define TheArcTool_hxx +#define TheSurfaceTool Adaptor3d_HSurfaceTool +#define TheSurfaceTool_hxx +#define TheCurveTool BRepBlend_HCurveTool +#define TheCurveTool_hxx +#define Handle_TheTopolTool Handle(Adaptor3d_TopolTool) +#define TheTopolTool Adaptor3d_TopolTool +#define TheTopolTool_hxx +#define TheBlendTool BRepBlend_BlendTool +#define TheBlendTool_hxx +#define ThePointOnRst BRepBlend_PointOnRst +#define ThePointOnRst_hxx +#define TheSeqPointOnRst BRepBlend_SequenceOfPointOnRst +#define TheSeqPointOnRst_hxx +#define TheExtremity BRepBlend_Extremity +#define TheExtremity_hxx +#define Handle_TheLine Handle(BRepBlend_Line) +#define TheLine BRepBlend_Line +#define TheLine_hxx +#define Blend_Walking BRepBlend_Walking +#define Blend_Walking_hxx + +#include + +#undef TheVertex +#undef TheVertex_hxx +#undef TheArc +#undef TheArc_hxx +#undef TheSurface +#undef TheSurface_hxx +#undef TheCurve +#undef TheCurve_hxx +#undef TheVertexTool +#undef TheVertexTool_hxx +#undef TheArcTool +#undef TheArcTool_hxx +#undef TheSurfaceTool +#undef TheSurfaceTool_hxx +#undef TheCurveTool +#undef TheCurveTool_hxx +#undef Handle_TheTopolTool +#undef TheTopolTool +#undef TheTopolTool_hxx +#undef TheBlendTool +#undef TheBlendTool_hxx +#undef ThePointOnRst +#undef ThePointOnRst_hxx +#undef TheSeqPointOnRst +#undef TheSeqPointOnRst_hxx +#undef TheExtremity +#undef TheExtremity_hxx +#undef Handle_TheLine +#undef TheLine +#undef TheLine_hxx +#undef Blend_Walking +#undef Blend_Walking_hxx + + + + +#endif // _BRepBlend_Walking_HeaderFile diff --git a/src/BRepBlend/BRepBlend_Walking_0.cxx b/src/BRepBlend/BRepBlend_Walking_0.cxx new file mode 100644 index 0000000000..aac96d71b9 --- /dev/null +++ b/src/BRepBlend/BRepBlend_Walking_0.cxx @@ -0,0 +1,74 @@ +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define TheVertex Handle(Adaptor3d_HVertex) +#define TheVertex_hxx +#define TheArc Handle(Adaptor2d_HCurve2d) +#define TheArc_hxx +#define TheSurface Handle(Adaptor3d_HSurface) +#define TheSurface_hxx +#define TheCurve Handle(Adaptor3d_HCurve) +#define TheCurve_hxx +#define TheVertexTool Standard_Integer +#define TheVertexTool_hxx +#define TheArcTool BRepBlend_HCurve2dTool +#define TheArcTool_hxx +#define TheSurfaceTool Adaptor3d_HSurfaceTool +#define TheSurfaceTool_hxx +#define TheCurveTool BRepBlend_HCurveTool +#define TheCurveTool_hxx +#define Handle_TheTopolTool Handle(Adaptor3d_TopolTool) +#define TheTopolTool Adaptor3d_TopolTool +#define TheTopolTool_hxx +#define TheBlendTool BRepBlend_BlendTool +#define TheBlendTool_hxx +#define ThePointOnRst BRepBlend_PointOnRst +#define ThePointOnRst_hxx +#define TheSeqPointOnRst BRepBlend_SequenceOfPointOnRst +#define TheSeqPointOnRst_hxx +#define TheExtremity BRepBlend_Extremity +#define TheExtremity_hxx +#define Handle_TheLine Handle(BRepBlend_Line) +#define TheLine BRepBlend_Line +#define TheLine_hxx +#define Blend_Walking BRepBlend_Walking +#define Blend_Walking_hxx +#include + diff --git a/src/BRepBlend/FILES b/src/BRepBlend/FILES index f3f625da10..1792efc1e7 100644 --- a/src/BRepBlend/FILES +++ b/src/BRepBlend/FILES @@ -1,2 +1,73 @@ -BRepBlend_SequenceOfPointOnRst.hxx +BRepBlend_AppFunc.cxx +BRepBlend_AppFunc.hxx +BRepBlend_AppFuncRoot.cxx +BRepBlend_AppFuncRoot.hxx +BRepBlend_AppFuncRst.cxx +BRepBlend_AppFuncRst.hxx +BRepBlend_AppFuncRstRst.cxx +BRepBlend_AppFuncRstRst.hxx +BRepBlend_AppSurf.hxx +BRepBlend_AppSurf_0.cxx +BRepBlend_AppSurface.cxx +BRepBlend_AppSurface.hxx +BRepBlend_AppSurface.lxx +BRepBlend_BlendTool.cxx +BRepBlend_BlendTool.hxx +BRepBlend_BlendTool.lxx +BRepBlend_Chamfer.hxx +BRepBlend_ChamfInv.hxx +BRepBlend_ChAsym.hxx +BRepBlend_ChAsymInv.hxx +BRepBlend_ConstRad.hxx +BRepBlend_ConstRadInv.hxx +BRepBlend_CSCircular.hxx +BRepBlend_CSConstRad.hxx +BRepBlend_CSWalking.hxx +BRepBlend_CSWalking_0.cxx +BRepBlend_CurvPointRadInv.cxx +BRepBlend_CurvPointRadInv.hxx +BRepBlend_EvolRad.hxx +BRepBlend_EvolRadInv.hxx +BRepBlend_Extremity.cxx +BRepBlend_Extremity.hxx +BRepBlend_Extremity.lxx +BRepBlend_HCurve2dTool.cxx +BRepBlend_HCurve2dTool.hxx +BRepBlend_HCurve2dTool.lxx +BRepBlend_HCurveTool.cxx +BRepBlend_HCurveTool.hxx +BRepBlend_HCurveTool.lxx +BRepBlend_Line.cxx +BRepBlend_Line.hxx +BRepBlend_Line.lxx +BRepBlend_PointOnRst.cxx +BRepBlend_PointOnRst.hxx +BRepBlend_PointOnRst.lxx +BRepBlend_RstRstConstRad.cxx +BRepBlend_RstRstConstRad.hxx +BRepBlend_RstRstEvolRad.cxx +BRepBlend_RstRstEvolRad.hxx +BRepBlend_RstRstLineBuilder.cxx +BRepBlend_RstRstLineBuilder.hxx +BRepBlend_RstRstLineBuilder.lxx +BRepBlend_Ruled.hxx +BRepBlend_RuledInv.hxx BRepBlend_SequenceOfLine.hxx +BRepBlend_SequenceOfPointOnRst.hxx +BRepBlend_SurfCurvConstRadInv.cxx +BRepBlend_SurfCurvConstRadInv.hxx +BRepBlend_SurfCurvEvolRadInv.cxx +BRepBlend_SurfCurvEvolRadInv.hxx +BRepBlend_SurfPointConstRadInv.cxx +BRepBlend_SurfPointConstRadInv.hxx +BRepBlend_SurfPointEvolRadInv.cxx +BRepBlend_SurfPointEvolRadInv.hxx +BRepBlend_SurfRstConstRad.cxx +BRepBlend_SurfRstConstRad.hxx +BRepBlend_SurfRstEvolRad.cxx +BRepBlend_SurfRstEvolRad.hxx +BRepBlend_SurfRstLineBuilder.cxx +BRepBlend_SurfRstLineBuilder.hxx +BRepBlend_SurfRstLineBuilder.lxx +BRepBlend_Walking.hxx +BRepBlend_Walking_0.cxx diff --git a/src/BRepBndLib/BRepBndLib.cdl b/src/BRepBndLib/BRepBndLib.cdl deleted file mode 100644 index d44d310b3d..0000000000 --- a/src/BRepBndLib/BRepBndLib.cdl +++ /dev/null @@ -1,76 +0,0 @@ --- Created on: 1993-07-22 --- Created by: Isabelle GRIGNON --- 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. - -package BRepBndLib - - ---Purpose: This package provides the bounding boxes for curves - -- and surfaces from BRepAdaptor. --- Functions to add a topological shape to a bounding box -uses BRepAdaptor, - Bnd, - TopoDS, - Geom, - GeomAbs, - TColgp, - gp - -is - - -- - -- Package methods for shapes - -- - - Add(S : Shape from TopoDS; - B : in out Box from Bnd; - useTriangulation: Boolean from Standard = Standard_True); - ---Purpose:Adds the shape S to the bounding box B. --- More precisely are successively added to B: --- - each face of S; the triangulation of the face is used if it exists, --- - then each edge of S which does not belong to a face, --- the polygon of the edge is used if it exists --- - and last each vertex of S which does not belong to an edge. --- After each elementary operation, the bounding box B is --- enlarged by the tolerance value of the relative sub-shape. --- When working with the triangulation of a face this value of --- enlargement is the sum of the triangulation deflection and --- the face tolerance. When working with the --- polygon of an edge this value of enlargement is --- the sum of the polygon deflection and the edge tolerance. --- Warning --- - This algorithm is time consuming if triangulation has not --- been inserted inside the data structure of the shape S. --- - The resulting bounding box may be somewhat larger than the object. - - - AddClose(S : Shape from TopoDS; B : in out Box from Bnd); - ---Purpose: Adds the shape S to the bounding box B. --- This is a quick algorithm but only works if the shape S is --- composed of polygonal planar faces, as is the case if S is --- an approached polyhedral representation of an exact --- shape. Pay particular attention to this because this --- condition is not checked and, if it not respected, an error --- may occur in the algorithm for which the bounding box is built. --- Note that the resulting bounding box is not enlarged by the --- tolerance value of the sub-shapes as is the case with the --- Add function. So the added part of the resulting bounding --- box is closer to the shape S. - - -end BRepBndLib; - - - - diff --git a/src/BRepBndLib/BRepBndLib.cxx b/src/BRepBndLib/BRepBndLib.cxx index 930e93d8f4..62ecfe37f7 100644 --- a/src/BRepBndLib/BRepBndLib.cxx +++ b/src/BRepBndLib/BRepBndLib.cxx @@ -12,33 +12,33 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include -#include + +#include #include #include -#include -#include -#include -#include -#include #include -#include -#include -#include +#include +#include +#include +#include #include +#include #include -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : Add //purpose : Add a shape bounding to a box //======================================================================= - void BRepBndLib::Add(const TopoDS_Shape& S, Bnd_Box& B, Standard_Boolean useTriangulation) { TopExp_Explorer ex; diff --git a/src/BRepBndLib/BRepBndLib.hxx b/src/BRepBndLib/BRepBndLib.hxx new file mode 100644 index 0000000000..5d27717e6b --- /dev/null +++ b/src/BRepBndLib/BRepBndLib.hxx @@ -0,0 +1,94 @@ +// Created on: 1993-07-22 +// Created by: Isabelle GRIGNON +// 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 _BRepBndLib_HeaderFile +#define _BRepBndLib_HeaderFile + +#include +#include +#include + +#include +class TopoDS_Shape; +class Bnd_Box; + + +//! This package provides the bounding boxes for curves +//! and surfaces from BRepAdaptor. +//! Functions to add a topological shape to a bounding box +class BRepBndLib +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Adds the shape S to the bounding box B. + //! More precisely are successively added to B: + //! - each face of S; the triangulation of the face is used if it exists, + //! - then each edge of S which does not belong to a face, + //! the polygon of the edge is used if it exists + //! - and last each vertex of S which does not belong to an edge. + //! After each elementary operation, the bounding box B is + //! enlarged by the tolerance value of the relative sub-shape. + //! When working with the triangulation of a face this value of + //! enlargement is the sum of the triangulation deflection and + //! the face tolerance. When working with the + //! polygon of an edge this value of enlargement is + //! the sum of the polygon deflection and the edge tolerance. + //! Warning + //! - This algorithm is time consuming if triangulation has not + //! been inserted inside the data structure of the shape S. + //! - The resulting bounding box may be somewhat larger than the object. + Standard_EXPORT static void Add (const TopoDS_Shape& S, Bnd_Box& B, const Standard_Boolean useTriangulation = Standard_True); + + //! Adds the shape S to the bounding box B. + //! This is a quick algorithm but only works if the shape S is + //! composed of polygonal planar faces, as is the case if S is + //! an approached polyhedral representation of an exact + //! shape. Pay particular attention to this because this + //! condition is not checked and, if it not respected, an error + //! may occur in the algorithm for which the bounding box is built. + //! Note that the resulting bounding box is not enlarged by the + //! tolerance value of the sub-shapes as is the case with the + //! Add function. So the added part of the resulting bounding + //! box is closer to the shape S. + Standard_EXPORT static void AddClose (const TopoDS_Shape& S, Bnd_Box& B); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepBndLib_HeaderFile diff --git a/src/BRepBndLib/FILES b/src/BRepBndLib/FILES new file mode 100644 index 0000000000..0f4ba8bb06 --- /dev/null +++ b/src/BRepBndLib/FILES @@ -0,0 +1,2 @@ +BRepBndLib.cxx +BRepBndLib.hxx diff --git a/src/BRepBuilderAPI/BRepBuilderAPI.cdl b/src/BRepBuilderAPI/BRepBuilderAPI.cdl deleted file mode 100644 index a61c6bc20b..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI.cdl +++ /dev/null @@ -1,320 +0,0 @@ --- 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. - -package BRepBuilderAPI - - ---Purpose: The BRepBuilderAPI package provides an Application - -- Programming Interface for the BRep topology data - -- structure. - -- - -- The API is a set of classes aiming to provide : - -- - -- * High level and simple calls for the most common - -- operations. - -- - -- * Keeping an access on the low-level - -- implementation of high-level calls. - -- - -- * Examples of programming of high-level operations - -- from low-level operations. - -- - -- * A complete coverage of modelling : - -- - -- - Creating vertices ,edges, faces, solids. - -- - -- - Sweeping operations. - -- - -- - Boolean operations. - -- - -- - Global properties computation. - -- - -- - -- The API provides classes to build objects: - -- - -- * The constructors of the classes provides the - -- different constructions methods. - -- - -- * The class keeps as fields the different tools - -- used to build the object. - -- - -- * The class provides a casting method to get - -- automatically the result with a function-like - -- call. - -- - -- For example to make a vertex from a point

- -- one can writes : - -- - -- V = BRepBuilderAPI_MakeVertex(P); - -- - -- or - -- - -- BRepBuilderAPI_MakeVertex MV(P); - -- V = MV.Vertex(); - -- - -- - -- For tolerances a default precision is used which - -- can be changed by the packahe method - -- BRepBuilderAPI::Precision. - -- - -- For error handling the BRepBuilderAPI commands raise only - -- the NotDone error. When Done is false on a command - -- the error description can be asked to the command. - -- - -- In theory the comands can be called with any - -- arguments, argument checking is performed by the - -- command. - - - -uses - Standard, - StdFail, - gp, - GeomAbs, - Geom2d, - Geom, - TopAbs, - TopoDS, - TopTools, - TopLoc, - BRep, - BRepLib, - BRepTools, - TColStd, - TColgp, - Message -is - - - enumeration EdgeError is - ---Purpose: 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. - EdgeDone, - PointProjectionFailed, - ParameterOutOfRange, - DifferentPointsOnClosedCurve, - PointWithInfiniteParameter, - DifferentsPointAndParameter, - LineThroughIdenticPoints - end EdgeError; - - - enumeration WireError is - ---Purpose: 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. - WireDone, - EmptyWire, - DisconnectedWire, - NonManifoldWire - - end WireError; - - - enumeration FaceError is - ---Purpose: 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. - FaceDone, - NoFace, - NotPlanar, - CurveProjectionFailed, - ParametersOutOfRange - - end FaceError; - - - enumeration ShellError is - ---Purpose: Indicates the outcome of the construction of a face, i.e. - -- whether it is successful or not, as explained below: - -- - BRepBuilderAPI_ShellDone No error occurred. - -- The shell is correctly built. - -- - BRepBuilderAPI_EmptyShell No initialization of - -- the algorithm: only an empty constructor was used. - -- - BRepBuilderAPI_DisconnectedShell not yet used - -- - BRepBuilderAPI_ShellParametersOutOfRange - -- The parameters given to limit the surface are out of its bounds. - ShellDone, - EmptyShell, - DisconnectedShell, - ShellParametersOutOfRange - - end ShellError; - - enumeration PipeError is - ---Purpose: Errors that can occur at (shell)pipe construction. - - PipeDone, -- no error - PipeNotDone, -- Error with status unknown - PlaneNotIntersectGuide, - ImpossibleContact -- Impossible to rotat the section like the rotated section - -- have conact with the guide. - - end PipeError; - - - - enumeration ShapeModification is - ---Purpose: Lists the possible types of modification to a shape - -- following a topological operation: Preserved, Deleted, - -- Trimmed, Merged or BoundaryModified. - -- This enumeration enables you to assign a "state" to the - -- different shapes that are on the list of operands for - -- each API function. The MakeShape class then uses this - -- to determine what has happened to the shapes which - -- constitute the list of operands. - Preserved, - Deleted, - Trimmed, - Merged, - BoundaryModified - - end ShapeModification; - - enumeration TransitionMode is - ---Purpose: Option to manage discontinuities in Sweep - Transformed, - RightCorner, - RoundCorner - end TransitionMode; - - deferred class Command; - - deferred class MakeShape; - - -- - -- Construction of topology from geometry - -- - - class MakeVertex; - - class MakeEdge; - - class MakeEdge2d; - - class MakePolygon; - - class MakeFace; - - - -- Construction of Shape through sections. - - class FindPlane; - - -- - -- Construction of Shape from several shapes - -- - - class Sewing; - imported transient class FastSewing; - - -- - -- Construction of composite topologies - -- - - class MakeWire; - - class MakeShell; - - class MakeSolid; - - -- - -- Shape modification (constant topology) - -- - - deferred class ModifyShape; - - class Transform; - - class NurbsConvert ; - - class GTransform; - - class Copy; - - class Collect; - - - -- - -- Default plane for 2d edges. - -- - - Plane(P : Plane from Geom); - ---Purpose: Sets the current plane. - ---Level: Public - - Plane returns Plane from Geom; - ---Purpose: Returns the current plane. - -- - ---C++: return const & - ---Level: Public - - -- - -- Default precison methods. - -- The default precision is initialized with Precision::Confusion() - -- - - Precision(P : Real from Standard); - ---Purpose: Sets the default precision. The current Precision - -- is returned. - ---Level: Public - - Precision returns Real from Standard; - ---Purpose: Returns the default precision. - ---Level: Public - - - -end BRepBuilderAPI; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI.cxx b/src/BRepBuilderAPI/BRepBuilderAPI.cxx index edb572e583..e5e8b587b1 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI.cxx @@ -14,27 +14,26 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include #include #include +#include +#include #include +#include +#include #include #include -#include -#include #include -#include #include -#include - +#include +#include +#include //======================================================================= //function : Plane //purpose : //======================================================================= - void BRepBuilderAPI::Plane(const Handle(Geom_Plane)& P) { BRepLib::Plane(P); diff --git a/src/BRepBuilderAPI/BRepBuilderAPI.hxx b/src/BRepBuilderAPI/BRepBuilderAPI.hxx new file mode 100644 index 0000000000..f9c72e0fc5 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI.hxx @@ -0,0 +1,165 @@ +// 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_HeaderFile +#define _BRepBuilderAPI_HeaderFile + +#include +#include +#include + +#include +class Geom_Plane; +class BRepBuilderAPI_Command; +class BRepBuilderAPI_MakeShape; +class BRepBuilderAPI_MakeVertex; +class BRepBuilderAPI_MakeEdge; +class BRepBuilderAPI_MakeEdge2d; +class BRepBuilderAPI_MakePolygon; +class BRepBuilderAPI_MakeFace; +class BRepBuilderAPI_FindPlane; +class BRepBuilderAPI_Sewing; +class BRepBuilderAPI_MakeWire; +class BRepBuilderAPI_MakeShell; +class BRepBuilderAPI_MakeSolid; +class BRepBuilderAPI_ModifyShape; +class BRepBuilderAPI_Transform; +class BRepBuilderAPI_NurbsConvert; +class BRepBuilderAPI_GTransform; +class BRepBuilderAPI_Copy; +class BRepBuilderAPI_Collect; + + +//! The BRepBuilderAPI package provides an Application +//! Programming Interface for the BRep topology data +//! structure. +//! +//! The API is a set of classes aiming to provide : +//! +//! * High level and simple calls for the most common +//! operations. +//! +//! * Keeping an access on the low-level +//! implementation of high-level calls. +//! +//! * Examples of programming of high-level operations +//! from low-level operations. +//! +//! * A complete coverage of modelling : +//! +//! - Creating vertices ,edges, faces, solids. +//! +//! - Sweeping operations. +//! +//! - Boolean operations. +//! +//! - Global properties computation. +//! +//! The API provides classes to build objects: +//! +//! * The constructors of the classes provides the +//! different constructions methods. +//! +//! * The class keeps as fields the different tools +//! used to build the object. +//! +//! * The class provides a casting method to get +//! automatically the result with a function-like +//! call. +//! +//! For example to make a vertex from a point

+//! one can writes : +//! +//! V = BRepBuilderAPI_MakeVertex(P); +//! +//! or +//! +//! BRepBuilderAPI_MakeVertex MV(P); +//! V = MV.Vertex(); +//! +//! For tolerances a default precision is used which +//! can be changed by the packahe method +//! BRepBuilderAPI::Precision. +//! +//! For error handling the BRepBuilderAPI commands raise only +//! the NotDone error. When Done is false on a command +//! the error description can be asked to the command. +//! +//! In theory the comands can be called with any +//! arguments, argument checking is performed by the +//! command. +class BRepBuilderAPI +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Sets the current plane. + Standard_EXPORT static void Plane (const Handle(Geom_Plane)& P); + + //! Returns the current plane. + Standard_EXPORT static const Handle(Geom_Plane)& Plane(); + + //! Sets the default precision. The current Precision + //! is returned. + Standard_EXPORT static void Precision (const Standard_Real P); + + //! Returns the default precision. + Standard_EXPORT static Standard_Real Precision(); + + + + +protected: + + + + + +private: + + + + +friend class BRepBuilderAPI_Command; +friend class BRepBuilderAPI_MakeShape; +friend class BRepBuilderAPI_MakeVertex; +friend class BRepBuilderAPI_MakeEdge; +friend class BRepBuilderAPI_MakeEdge2d; +friend class BRepBuilderAPI_MakePolygon; +friend class BRepBuilderAPI_MakeFace; +friend class BRepBuilderAPI_FindPlane; +friend class BRepBuilderAPI_Sewing; +friend class BRepBuilderAPI_MakeWire; +friend class BRepBuilderAPI_MakeShell; +friend class BRepBuilderAPI_MakeSolid; +friend class BRepBuilderAPI_ModifyShape; +friend class BRepBuilderAPI_Transform; +friend class BRepBuilderAPI_NurbsConvert; +friend class BRepBuilderAPI_GTransform; +friend class BRepBuilderAPI_Copy; +friend class BRepBuilderAPI_Collect; + +}; + + + + + + + +#endif // _BRepBuilderAPI_HeaderFile diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_Collect.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_Collect.cdl deleted file mode 100644 index 9050896612..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_Collect.cdl +++ /dev/null @@ -1,58 +0,0 @@ --- 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. - -class Collect from BRepBuilderAPI - - ---Purpose: - -uses - Shape from TopoDS, - DataMapOfShapeListOfShape from TopTools, - MapOfShape from TopTools, - MakeShape from BRepBuilderAPI - -is - - Create returns Collect from BRepBuilderAPI; - - Add (me : in out; SI : Shape from TopoDS ; - MKS : in out MakeShape from BRepBuilderAPI ); - ---Purpose: - - AddGenerated (me : in out; S : Shape from TopoDS ; - Gen : Shape from TopoDS ); - ---Purpose: - - AddModif (me : in out; S : Shape from TopoDS ; - Mod : Shape from TopoDS ); - ---Purpose: - - Filter (me : in out; SF : Shape from TopoDS ); - ---Purpose: - - Modification (me) returns DataMapOfShapeListOfShape from TopTools; - ---C++: return const & - - Generated (me) returns DataMapOfShapeListOfShape from TopTools; - ---C++: return const & - - -fields - myInitialShape : Shape from TopoDS; - myDeleted : MapOfShape from TopTools; - myMod : DataMapOfShapeListOfShape from TopTools; - myGen : DataMapOfShapeListOfShape from TopTools; -end Collect; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_Collect.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_Collect.cxx index e496a31c77..f24c38bf86 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_Collect.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_Collect.cxx @@ -14,15 +14,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include #include - +#include +#include #include -#include -#include #include +#include +#include #include #ifdef OCCT_DEBUG diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_Collect.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_Collect.hxx new file mode 100644 index 0000000000..6164d1c005 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_Collect.hxx @@ -0,0 +1,80 @@ +// 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 +#include +#include + +#include +#include +#include +class TopoDS_Shape; +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/src/BRepBuilderAPI/BRepBuilderAPI_Command.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_Command.cdl deleted file mode 100644 index 77bb3045e6..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_Command.cdl +++ /dev/null @@ -1,63 +0,0 @@ --- 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. - -deferred class Command from BRepBuilderAPI - - ---Purpose: Root class for all commands in BRepBuilderAPI. - -- - -- Provides : - -- - -- * Managements of the notDone flag. - -- - -- * Catching of exceptions (not implemented). - -- - -- * Logging (not implemented). - -raises - NotDone from StdFail - -is - Delete(me:out) is virtual; - ---C++: alias "Standard_EXPORT virtual ~BRepBuilderAPI_Command(){Delete() ; }" - - Initialize; - ---Purpose: Set done to False. - - IsDone(me) returns Boolean is virtual; - ---Level: Public - - Done(me : in out) - ---Purpose: Set done to true. - ---Level: Public - is static protected; - - NotDone(me : in out) - ---Purpose: Set done to false. - ---Level: Public - is static protected; - - - - Check(me) - ---Purpose: Raises NotDone if done is false. - ---Level: Public - raises NotDone from StdFail - is static; - -fields - myDone : Boolean; - -end Command; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_Command.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_Command.cxx index 67a2d93d6c..81b7421e66 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_Command.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_Command.cxx @@ -14,13 +14,14 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include //======================================================================= //function : BRepBuilderAPI_Command //purpose : //======================================================================= - BRepBuilderAPI_Command::BRepBuilderAPI_Command() : myDone(Standard_False) { diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_Command.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_Command.hxx new file mode 100644 index 0000000000..d47fd7745e --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_Command.hxx @@ -0,0 +1,85 @@ +// 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 +#include +#include + +#include +class StdFail_NotDone; + + +//! 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 void Delete(); +Standard_EXPORT virtual ~BRepBuilderAPI_Command(){Delete() ; } + + 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/src/BRepBuilderAPI/BRepBuilderAPI_Copy.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_Copy.cdl deleted file mode 100644 index 2482709efe..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_Copy.cdl +++ /dev/null @@ -1,58 +0,0 @@ --- Created on: 1994-12-12 --- 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. - -class Copy from BRepBuilderAPI inherits ModifyShape from BRepBuilderAPI - - ---Purpose: Duplication of a shape. - -- A Copy object provides a framework for: - -- - defining the construction of a duplicate shape, - -- - implementing the construction algorithm, and - -- - consulting the result. - -uses - Shape from TopoDS, - Face from TopoDS, - ShapeModification from BRepBuilderAPI, - ListOfShape from TopTools - - -is - - Create - ---Purpose: Constructs an empty copy framework. Use the function - -- Perform to copy shapes. - returns Copy from BRepBuilderAPI; - - - Create(S: Shape from TopoDS; copyGeom: Boolean = Standard_True) - ---Purpose: Constructs a copy framework and copies the shape S. - -- Use the function Shape to access the result. - -- If copyGeom is False, only topological objects will be copied, while - -- geometry will be shared with original shape. - -- Note: the constructed framework can be reused to copy - -- other shapes: just specify them with the function Perform. - returns Copy from BRepBuilderAPI; - - - Perform(me: in out; S: Shape from TopoDS; copyGeom: Boolean = Standard_True) - ---Purpose: Copies the shape S. - -- Use the function Shape to access the result. - -- If copyGeom is False, only topological objects will be copied, while - -- geometry will be shared with original shape. - is static; - - -end Copy; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_Copy.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_Copy.cxx index 02cade003f..7d63f85907 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_Copy.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_Copy.cxx @@ -14,15 +14,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include #include -#include +#include +#include +#include +#include +#include #include +#include +#include //! Tool class implementing necessary functionality for copying geometry class BRepBuilderAPI_Copy_Modification : public BRepTools_Modification diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_Copy.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_Copy.hxx new file mode 100644 index 0000000000..e966a0e8ec --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_Copy.hxx @@ -0,0 +1,82 @@ +// Created on: 1994-12-12 +// 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_Copy_HeaderFile +#define _BRepBuilderAPI_Copy_HeaderFile + +#include +#include +#include + +#include +#include +class TopoDS_Shape; + + +//! Duplication of a shape. +//! A Copy object provides a framework for: +//! - defining the construction of a duplicate shape, +//! - implementing the construction algorithm, and +//! - consulting the result. +class BRepBuilderAPI_Copy : public BRepBuilderAPI_ModifyShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Constructs an empty copy framework. Use the function + //! Perform to copy shapes. + Standard_EXPORT BRepBuilderAPI_Copy(); + + //! Constructs a copy framework and copies the shape S. + //! Use the function Shape to access the result. + //! If copyGeom is False, only topological objects will be copied, while + //! geometry will be shared with original shape. + //! Note: the constructed framework can be reused to copy + //! other shapes: just specify them with the function Perform. + Standard_EXPORT BRepBuilderAPI_Copy(const TopoDS_Shape& S, const Standard_Boolean copyGeom = Standard_True); + + //! Copies the shape S. + //! Use the function Shape to access the result. + //! If copyGeom is False, only topological objects will be copied, while + //! geometry will be shared with original shape. + Standard_EXPORT void Perform (const TopoDS_Shape& S, const Standard_Boolean copyGeom = Standard_True); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepBuilderAPI_Copy_HeaderFile diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_EdgeError.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_EdgeError.hxx new file mode 100644 index 0000000000..c2d3a25cb6 --- /dev/null +++ b/src/BRepBuilderAPI/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/src/BRepBuilderAPI/BRepBuilderAPI_FaceError.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_FaceError.hxx new file mode 100644 index 0000000000..b98edba4fb --- /dev/null +++ b/src/BRepBuilderAPI/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/src/BRepBuilderAPI/BRepBuilderAPI_FindPlane.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_FindPlane.cdl deleted file mode 100644 index e85a06c744..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_FindPlane.cdl +++ /dev/null @@ -1,80 +0,0 @@ --- 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. - -class FindPlane from BRepBuilderAPI - - ---Purpose: 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. - -uses - - Shape from TopoDS, - Plane from Geom - -raises - - NoSuchObject from Standard - -is - - Create - returns FindPlane from BRepBuilderAPI; - ---Purpose: Initializes an empty algorithm. The function Init is then used to define the shape. - - Create (S : Shape from TopoDS; - Tol : Real from Standard = -1) - returns FindPlane from BRepBuilderAPI; - ---Purpose: 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. - - Init (me : in out; - S : Shape from TopoDS; - Tol : Real from Standard = -1); - ---Purpose: 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. - - Found(me) - returns Boolean from Standard; - ---Purpose: Returns true if a plane containing the edges of the - -- shape is found and built. Use the function Plane to consult the result. - Plane(me) - returns Plane from Geom; - ---Purpose: 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. - -fields - - myPlane : Plane from Geom; - -end FindPlane; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_FindPlane.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_FindPlane.cxx index 9d41cb6daf..90d5664746 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_FindPlane.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_FindPlane.cxx @@ -14,35 +14,34 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include -#include -#include -#include -#include #include - -#include -#include -#include -#include -#include -#include +#include #include #include +#include +#include #include - - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRepBuilderAPI_FindPlane //purpose : //======================================================================= - BRepBuilderAPI_FindPlane::BRepBuilderAPI_FindPlane() { } diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_FindPlane.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_FindPlane.hxx new file mode 100644 index 0000000000..522383afe0 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_FindPlane.hxx @@ -0,0 +1,101 @@ +// 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 +#include +#include + +#include +#include +class Geom_Plane; +class Standard_NoSuchObject; +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/src/BRepBuilderAPI/BRepBuilderAPI_GTransform.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_GTransform.cdl deleted file mode 100644 index 8dc08b02de..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_GTransform.cdl +++ /dev/null @@ -1,126 +0,0 @@ --- 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. - -class GTransform from BRepBuilderAPI inherits ModifyShape from BRepBuilderAPI - - ---Purpose: 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. - - - -uses - Trsf from gp, - GTrsf from gp, - Shape from TopoDS, - Face from TopoDS, - Collect from BRepBuilderAPI, - ShapeModification from BRepBuilderAPI, - ListOfShape from TopTools - --- Modified by Sergey KHROMOV - Thu Mar 27 17:45:42 2003 Begin -raises - NoSuchObject from Standard - --- Modified by Sergey KHROMOV - Thu Mar 27 17:45:42 2003 End -is - - Create(T: GTrsf from gp) - - returns GTransform from BRepBuilderAPI; - ---Purpose: Constructs a framework for applying the geometric - -- transformation T to a shape. Use the function - -- Perform to define the shape to transform. - - - Create(S: Shape from TopoDS; T: GTrsf from gp; - Copy: Boolean from Standard = Standard_False) - - returns GTransform from BRepBuilderAPI; - ---Purpose: 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. - - - Perform(me: in out; S : Shape from TopoDS; - Copy: Boolean from Standard = Standard_False) - - ---Purpose: 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. - - is static; - - Modified (me: in out; S : Shape from TopoDS) - ---Purpose: Returns the list of shapes modified from the shape - -- . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is redefined virtual; - - ModifiedShape(me; S: Shape from TopoDS) - returns Shape from TopoDS - ---Purpose: Returns the modified shape corresponding to . - raises NoSuchObject from Standard - -- if S is not the initial shape or a sub-shape - -- of the initial shape. - is redefined virtual; - -fields - - myGTrsf : GTrsf from gp; - myHist : Collect from BRepBuilderAPI; - -end Transform; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_GTransform.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_GTransform.cxx index 8129e48b21..ecd4b008bf 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_GTransform.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_GTransform.cxx @@ -14,22 +14,24 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include #include #include -#include #include - -#include -#include +#include +#include #include +#include +#include +#include + //======================================================================= //function : BRepBuilderAPI_GTransform //purpose : //======================================================================= - BRepBuilderAPI_GTransform::BRepBuilderAPI_GTransform (const gp_GTrsf& T) : myGTrsf(T) { diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_GTransform.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_GTransform.hxx new file mode 100644 index 0000000000..14ea2adb8f --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_GTransform.hxx @@ -0,0 +1,129 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +class Standard_NoSuchObject; +class gp_GTrsf; +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/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge.cdl deleted file mode 100644 index 60a2f1d277..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge.cdl +++ /dev/null @@ -1,434 +0,0 @@ --- 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. - -class MakeEdge from BRepBuilderAPI inherits MakeShape from BRepBuilderAPI - - ---Purpose: 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. - -uses - EdgeError from BRepBuilderAPI, - Edge from TopoDS, - Vertex from TopoDS, - Pnt from gp, - Lin from gp, - Circ from gp, - Elips from gp, - Hypr from gp, - Parab from gp, - Curve from Geom2d, - Curve from Geom, - Surface from Geom, - MakeEdge from BRepLib - -raises - NotDone from StdFail - -is - - Create returns MakeEdge from BRepBuilderAPI; - - ---------------------------------------- - -- Points - ---------------------------------------- - - Create(V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(P1, P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - - ---------------------------------------- - -- Lin - ---------------------------------------- - - Create(L : Lin from gp) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Lin from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Lin from gp; P1,P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Lin from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - ---------------------------------------- - -- Circ - ---------------------------------------- - - Create(L : Circ from gp) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Circ from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Circ from gp; P1,P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Circ from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - - ---------------------------------------- - -- Elips - ---------------------------------------- - - Create(L : Elips from gp) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Elips from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Elips from gp; P1,P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Elips from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - ---------------------------------------- - -- Hypr - ---------------------------------------- - - Create(L : Hypr from gp) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Hypr from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Hypr from gp; P1,P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Hypr from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - ---------------------------------------- - -- Parab - ---------------------------------------- - - Create(L : Parab from gp) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Parab from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Parab from gp; P1,P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Parab from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - ---------------------------------------- - -- Curve - ---------------------------------------- - - Create(L : Curve from Geom) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Curve from Geom; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Curve from Geom; - P1,P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Curve from Geom; - V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Curve from Geom; - P1,P2 : Pnt from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Curve from Geom; - V1, V2 : Vertex from TopoDS; - p1, p2 :Real) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - ---------------------------------------- - -- Curve and surface - ---------------------------------------- - - Create(L : Curve from Geom2d; S : Surface from Geom) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Curve from Geom2d; S : Surface from Geom; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Curve from Geom2d; S : Surface from Geom; - P1,P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Curve from Geom2d; S : Surface from Geom; - V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Curve from Geom2d; S : Surface from Geom; - P1,P2 : Pnt from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - Create(L : Curve from Geom2d; S : Surface from Geom; - V1, V2 : Vertex from TopoDS; - p1, p2 :Real) - ---Level: Public - returns MakeEdge from BRepBuilderAPI; - - - ---Purpose: 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 - ---------------------------------------- - - Init(me : in out; C : Curve from Geom) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom; - p1, p2 : Real) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom; - P1, P2 : Pnt from gp) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom; - V1, V2 : Vertex from TopoDS) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom; - P1, P2 : Pnt from gp; - p1, p2 : Real) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom; - V1, V2 : Vertex from TopoDS; - p1, p2 : Real) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; S : Surface from Geom) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; S : Surface from Geom; - p1, p2 : Real) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; S : Surface from Geom; - P1, P2 : Pnt from gp) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; S : Surface from Geom; - V1, V2 : Vertex from TopoDS) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; S : Surface from Geom; - P1, P2 : Pnt from gp; - p1, p2 : Real) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; S : Surface from Geom; - V1, V2 : Vertex from TopoDS; - p1, p2 : Real) - ---Level: Public - is static; - ---Purpose: Defines or redefines the arguments for the construction of an edge. - -- This function is currently used after the empty constructor BRepAPI_MakeEdge(). - - ---------------------------------------- - -- Results - ---------------------------------------- - - IsDone(me) returns Boolean - ---Purpose: Returns true if the edge is built. - is redefined; - - Error(me) returns EdgeError from BRepBuilderAPI - ---Purpose: 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. - is static; - - Edge(me) returns Edge from TopoDS - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Edge() const;" - --- Purpose: - -- Returns the constructed edge. - -- Exceptions StdFail_NotDone if the edge is not built. - raises - NotDone from StdFail - is static; - - Vertex1(me) returns Vertex from TopoDS - ---Purpose: Returns the first vertex of the edge. May be Null. - -- - ---C++: return const & - ---Level: Public - is static; - - Vertex2(me) returns Vertex from TopoDS - ---C++: return const & - ---Purpose: 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. - is static; - -fields - - myMakeEdge : MakeEdge from BRepLib; - -end MakeEdge; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge.cxx index 4ddad8eadf..71fdefd629 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge.cxx @@ -14,13 +14,25 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRepBuilderAPI_MakeEdge //purpose : //======================================================================= - BRepBuilderAPI_MakeEdge::BRepBuilderAPI_MakeEdge() {} diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge.hxx new file mode 100644 index 0000000000..7c5d8524d7 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge.hxx @@ -0,0 +1,295 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +class StdFail_NotDone; +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() const; +Standard_EXPORT operator TopoDS_Edge() const; + + //! 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/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge2d.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge2d.cdl deleted file mode 100644 index 92d7813b6d..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge2d.cdl +++ /dev/null @@ -1,292 +0,0 @@ --- 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. - -class MakeEdge2d from BRepBuilderAPI inherits MakeShape from BRepBuilderAPI - - ---Purpose: Provides methods to build edges. - -- - -- The methods have the following syntax, where - -- TheCurve is one of Lin2d, Circ2d, ... - -- - -- 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 : Pnt2d 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. - -uses - EdgeError from BRepBuilderAPI, - Edge from TopoDS, - Vertex from TopoDS, - Pnt2d from gp, - Lin2d from gp, - Circ2d from gp, - Elips2d from gp, - Hypr2d from gp, - Parab2d from gp, - Curve from Geom2d, - MakeEdge2d from BRepLib - -raises - NotDone from StdFail - -is - - ---------------------------------------- - -- Points - ---------------------------------------- - - Create(V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(P1, P2 : Pnt2d from gp) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - - ---------------------------------------- - -- Lin - ---------------------------------------- - - Create(L : Lin2d from gp) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Lin2d from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Lin2d from gp; P1,P2 : Pnt2d from gp) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Lin2d from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - ---------------------------------------- - -- Circ - ---------------------------------------- - - Create(L : Circ2d from gp) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Circ2d from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Circ2d from gp; P1,P2 : Pnt2d from gp) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Circ2d from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - - ---------------------------------------- - -- Elips - ---------------------------------------- - - Create(L : Elips2d from gp) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Elips2d from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Elips2d from gp; P1,P2 : Pnt2d from gp) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Elips2d from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - ---------------------------------------- - -- Hypr - ---------------------------------------- - - Create(L : Hypr2d from gp) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Hypr2d from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Hypr2d from gp; P1,P2 : Pnt2d from gp) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Hypr2d from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - ---------------------------------------- - -- Parab - ---------------------------------------- - - Create(L : Parab2d from gp) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Parab2d from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Parab2d from gp; P1,P2 : Pnt2d from gp) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Parab2d from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - ---------------------------------------- - -- Curve - ---------------------------------------- - - Create(L : Curve from Geom2d) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Curve from Geom2d; p1,p2 : Real) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Curve from Geom2d; - P1,P2 : Pnt2d from gp) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Curve from Geom2d; - V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Curve from Geom2d; - P1,P2 : Pnt2d from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - Create(L : Curve from Geom2d; - V1, V2 : Vertex from TopoDS; - p1, p2 :Real) - ---Level: Public - returns MakeEdge2d from BRepBuilderAPI; - - ---------------------------------------- - -- Auxiliary methods - ---------------------------------------- - - Init(me : in out; C : Curve from Geom2d) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; - p1, p2 : Real) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; - P1, P2 : Pnt2d from gp) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; - V1, V2 : Vertex from TopoDS) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; - P1, P2 : Pnt2d from gp; - p1, p2 : Real) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; - V1, V2 : Vertex from TopoDS; - p1, p2 : Real) - ---Level: Public - is static; - - - ---------------------------------------- - -- Results - ---------------------------------------- - - IsDone(me) returns Boolean - ---Level: Public - is redefined; - - Error(me) - returns EdgeError from BRepBuilderAPI - ---Purpose: Returns the error description when NotDone. - ---Level: Public - is static; - - Edge(me) returns Edge from TopoDS - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Edge() const;" - ---Level: Public - raises - NotDone from StdFail - is static; - - Vertex1(me) returns Vertex from TopoDS - ---Purpose: Returns the first vertex of the edge. May be Null. - -- - ---C++: return const & - ---Level: Public - is static; - - Vertex2(me) returns Vertex from TopoDS - ---Purpose: Returns the second vertex of the edge. May be Null. - -- - ---C++: return const & - ---Level: Public - is static; - -fields - - myMakeEdge2d : MakeEdge2d from BRepLib; - -end MakeEdge2d; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge2d.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge2d.cxx index a66737e4b6..5e15332d62 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge2d.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge2d.cxx @@ -14,14 +14,23 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRepBuilderAPI_MakeEdge2d //purpose : //======================================================================= - BRepBuilderAPI_MakeEdge2d::BRepBuilderAPI_MakeEdge2d(const TopoDS_Vertex& V1, const TopoDS_Vertex& V2) : myMakeEdge2d(V1,V2) diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge2d.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge2d.hxx new file mode 100644 index 0000000000..95d373b468 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeEdge2d.hxx @@ -0,0 +1,185 @@ +// 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_MakeEdge2d_HeaderFile +#define _BRepBuilderAPI_MakeEdge2d_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class StdFail_NotDone; +class TopoDS_Vertex; +class gp_Pnt2d; +class gp_Lin2d; +class gp_Circ2d; +class gp_Elips2d; +class gp_Hypr2d; +class gp_Parab2d; +class Geom2d_Curve; +class TopoDS_Edge; + + +//! Provides methods to build edges. +//! +//! The methods have the following syntax, where +//! TheCurve is one of Lin2d, Circ2d, ... +//! +//! 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 : Pnt2d 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_MakeEdge2d : public BRepBuilderAPI_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Lin2d& L); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Lin2d& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Lin2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Lin2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Circ2d& L); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Circ2d& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Circ2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Circ2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Elips2d& L); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Elips2d& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Elips2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Elips2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Hypr2d& L); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Hypr2d& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Hypr2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Hypr2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Parab2d& L); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Parab2d& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Parab2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const gp_Parab2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const Handle(Geom2d_Curve)& L); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const Handle(Geom2d_Curve)& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const Handle(Geom2d_Curve)& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const Handle(Geom2d_Curve)& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const Handle(Geom2d_Curve)& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepBuilderAPI_MakeEdge2d(const Handle(Geom2d_Curve)& L, 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); + + Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const gp_Pnt2d& P1, const gp_Pnt2d& P2, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT virtual Standard_Boolean IsDone() const Standard_OVERRIDE; + + //! Returns the error description when NotDone. + Standard_EXPORT BRepBuilderAPI_EdgeError Error() const; + + Standard_EXPORT const TopoDS_Edge& Edge() const; +Standard_EXPORT operator TopoDS_Edge() const; + + //! 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. + Standard_EXPORT const TopoDS_Vertex& Vertex2() const; + + + + +protected: + + + + + +private: + + + + BRepLib_MakeEdge2d myMakeEdge2d; + + +}; + + + + + + + +#endif // _BRepBuilderAPI_MakeEdge2d_HeaderFile diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeFace.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_MakeFace.cdl deleted file mode 100644 index 2f15c24822..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeFace.cdl +++ /dev/null @@ -1,331 +0,0 @@ --- 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. - --- xab: 29Nov96 correction de doc - - -class MakeFace from BRepBuilderAPI inherits MakeShape from BRepBuilderAPI - - ---Purpose: 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. - -uses - Pln from gp, - Cylinder from gp, - Cone from gp, - Sphere from gp, - Torus from gp, - Surface from Geom, - Face from TopoDS, - Wire from TopoDS, - FaceError from BRepBuilderAPI, - MakeFace from BRepLib - -raises - NotDone from StdFail - -is - - Create - ---Purpose: Not done. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(F : Face from TopoDS) - ---Purpose: Load a face. Usefull to add wires. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - ---------------------------------------------- - -- From a surface - ---------------------------------------------- - - Create(P : Pln from gp) - ---Purpose: Make a face from a plane. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(C : Cylinder from gp) - ---Purpose: Make a face from a cylinder. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(C : Cone from gp) - ---Purpose: Make a face from a cone. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(S : Sphere from gp) - ---Purpose: Make a face from a sphere. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(C : Torus from gp) - ---Purpose: Make a face from a torus. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(S : Surface from Geom; TolDegen : Real) - ---Purpose: Make a face from a Surface. Accepts tolerance value (TolDegen) - -- for resolution of degenerated edges. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - ---------------------------------------------- - -- From a surface and U,V values - ---------------------------------------------- - - Create(P : Pln from gp; UMin, UMax, VMin, VMax : Real) - ---Purpose: Make a face from a plane. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(C : Cylinder from gp; UMin, UMax, VMin, VMax : Real) - ---Purpose: Make a face from a cylinder. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(C : Cone from gp; UMin, UMax, VMin, VMax : Real) - ---Purpose: Make a face from a cone. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(S : Sphere from gp; UMin, UMax, VMin, VMax : Real) - ---Purpose: Make a face from a sphere. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(C : Torus from gp; UMin, UMax, VMin, VMax : Real) - ---Purpose: Make a face from a torus. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(S : Surface from Geom; UMin, UMax, VMin, VMax, TolDegen : Real) - ---Purpose: Make a face from a Surface. Accepts tolerance value (TolDegen) - -- for resolution of degenerated edges. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - ---------------------------------------------- - -- From a wire - ---------------------------------------------- - - Create(W : Wire from TopoDS; - OnlyPlane : Boolean from Standard = Standard_False) - ---Purpose: 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. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - ---------------------------------------------- - -- From a surface and a wire - ---------------------------------------------- - - Create(P : Pln from gp; W : Wire from TopoDS; - Inside : Boolean = Standard_True) - ---Purpose: Make a face from a plane and a wire. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(C : Cylinder from gp; W : Wire from TopoDS; - Inside : Boolean = Standard_True) - ---Purpose: Make a face from a cylinder and a wire. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(C : Cone from gp; W : Wire from TopoDS; - Inside : Boolean = Standard_True) - ---Purpose: Make a face from a cone and a wire. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(S : Sphere from gp; W : Wire from TopoDS; - Inside : Boolean = Standard_True) - ---Purpose: Make a face from a sphere and a wire. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(C : Torus from gp; W : Wire from TopoDS; - Inside : Boolean = Standard_True) - ---Purpose: Make a face from a torus and a wire. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - Create(S : Surface from Geom; W : Wire from TopoDS; - Inside : Boolean = Standard_True) - ---Purpose: Make a face from a Surface and a wire. - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - ---------------------------------------------- - -- From face and wire. - ---------------------------------------------- - - Create(F : Face from TopoDS; W : Wire from TopoDS) - ---Purpose: Adds the wire in the face - ---Level: Public - returns MakeFace from BRepBuilderAPI; - - ---Purpose: 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. - - - Init(me : in out; F : Face from TopoDS) - ---Purpose: 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. - is static; - - Init(me : in out; S : Surface from Geom; Bound : Boolean; TolDegen : Real) - ---Purpose: 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. - is static; - - Init(me : in out; S : Surface from Geom; UMin, UMax, VMin, VMax, TolDegen : Real) - ---Purpose: 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. - is static; - - Add(me : in out; W : Wire from TopoDS) - ---Purpose: 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; - is static; - - - ---------------------------------------------- - -- Results - ---------------------------------------------- - - IsDone(me) returns Boolean - ---Purpose: Returns true if this algorithm has a valid face. - is redefined; - - Error(me) returns FaceError from BRepBuilderAPI - ---Purpose: 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. - is static; - - Face(me) returns Face from TopoDS - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Face() const;" - ---Purpose: Returns the constructed face. - -- Exceptions - -- StdFail_NotDone if no face is built. - raises - NotDone from StdFail - is static; - -fields - myMakeFace : MakeFace from BRepLib; - -end MakeFace; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeFace.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeFace.cxx index bac4286d15..82f3d6771e 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeFace.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeFace.cxx @@ -14,14 +14,22 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRepBuilderAPI_MakeFace //purpose : //======================================================================= - BRepBuilderAPI_MakeFace::BRepBuilderAPI_MakeFace() { } diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeFace.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeFace.hxx new file mode 100644 index 0000000000..6f6423d02f --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeFace.hxx @@ -0,0 +1,271 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +class StdFail_NotDone; +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. Usefull 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. + 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/src/BRepBuilderAPI/BRepBuilderAPI_MakePolygon.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_MakePolygon.cdl deleted file mode 100644 index 5d8c84d5da..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakePolygon.cdl +++ /dev/null @@ -1,207 +0,0 @@ --- Created on: 1993-07-29 --- 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. - -class MakePolygon from BRepBuilderAPI inherits MakeShape from BRepBuilderAPI - - ---Purpose: Describes functions to build polygonal wires. A - -- polygonal wire can be built from any number of points - -- or vertices, and consists of a sequence of connected - -- rectilinear edges. - -- When a point or vertex is added to the polygon if - -- it is identic to the previous point no edge is - -- built. The method added can be used to test it. - -- Construction of a Polygonal Wire - -- You can construct: - -- - a complete polygonal wire by defining all its points - -- or vertices (limited to four), or - -- - an empty polygonal wire and add its points or - -- vertices in sequence (unlimited number). - -- A MakePolygon object provides a framework for: - -- - initializing the construction of a polygonal wire, - -- - adding points or vertices to the polygonal wire under construction, and - -- - consulting the result. - -uses - Wire from TopoDS, - Edge from TopoDS, - Vertex from TopoDS, - Pnt from gp, - MakePolygon from BRepLib - -raises - NotDone from StdFail - -is - Create - returns MakePolygon from BRepBuilderAPI; - ---Purpose: Initializes an empty polygonal wire, to which points or - -- vertices are added using the Add function. - -- As soon as the polygonal wire under construction - -- contains vertices, it can be consulted using the Wire function. - - Create(P1, P2 : Pnt from gp) - ---Level: Public - returns MakePolygon from BRepBuilderAPI; - - Create(P1, P2, P3 : Pnt from gp; - Close : Boolean = Standard_False) - ---Level: Public - returns MakePolygon from BRepBuilderAPI; - - Create(P1, P2, P3, P4 : Pnt from gp; - Close : Boolean = Standard_False) - ---Level: Public - returns MakePolygon from BRepBuilderAPI; - ---Purpose: Constructs a polygonal wire from 2, 3 or 4 points. Vertices are - -- automatically created on the given points. The polygonal wire is - -- closed if Close is true; otherwise it is open. Further vertices can - -- be added using the Add function. The polygonal wire under - -- construction can be consulted at any time by using the Wire function. - -- Example - -- //an open polygon from four points - -- TopoDS_Wire W = BRepBuilderAPI_MakePolygon(P1,P2,P3,P4); - -- Warning: The process is equivalent to: - -- - initializing an empty polygonal wire, - -- - and adding the given points in sequence. - -- Consequently, be careful when using this function: if the - -- sequence of points p1 - p2 - p1 is found among the arguments of the - -- constructor, you will create a polygonal wire with two - -- consecutive coincident edges. - - Create(V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakePolygon from BRepBuilderAPI; - - Create(V1, V2, V3 : Vertex from TopoDS; - Close : Boolean = Standard_False) - ---Level: Public - returns MakePolygon from BRepBuilderAPI; - - Create(V1, V2, V3, V4 : Vertex from TopoDS; - Close : Boolean = Standard_False) - ---Level: Public - returns MakePolygon from BRepBuilderAPI; - ---Purpose: Constructs a polygonal wire from - -- 2, 3 or 4 vertices. The polygonal wire is closed if Close is true; - -- otherwise it is open (default value). Further vertices can be - -- added using the Add function. The polygonal wire under - -- construction can be consulted at any time by using the Wire function. - -- Example - -- //a closed triangle from three vertices - -- TopoDS_Wire W = BRepBuilderAPI_MakePolygon(V1,V2,V3,Standard_True); - -- Warning - -- The process is equivalent to: - -- - initializing an empty polygonal wire, - -- - then adding the given points in sequence. - -- So be careful, as when using this function, you could create a - -- polygonal wire with two consecutive coincident edges if - -- the sequence of vertices v1 - v2 - v1 is found among the - -- constructor's arguments. - - Add(me : in out; P : Pnt from gp) - ---Level: Public - is static; - - Add(me : in out; V : Vertex from TopoDS) - ---Level: Public - is static; - --- Purpose: - -- Adds the point P or the vertex V at the end of the - -- polygonal wire under construction. A vertex is - -- automatically created on the point P. - -- Warning - -- - When P or V is coincident to the previous vertex, - -- no edge is built. The method Added can be used to - -- test for this. Neither P nor V is checked to verify - -- that it is coincident with another vertex than the last - -- one, of the polygonal wire under construction. It is - -- also possible to add vertices on a closed polygon - -- (built for example by using a constructor which - -- declares the polygon closed, or after the use of the Close function). - -- Consequently, be careful using this function: you might create: - -- - a polygonal wire with two consecutive coincident edges, or - -- - a non manifold polygonal wire. - -- - P or V is not checked to verify if it is - -- coincident with another vertex but the last one, of - -- the polygonal wire under construction. It is also - -- possible to add vertices on a closed polygon (built - -- for example by using a constructor which declares - -- the polygon closed, or after the use of the Close function). - -- Consequently, be careful when using this function: you might create: - -- - a polygonal wire with two consecutive coincident edges, or - -- - a non-manifold polygonal wire. - - Added(me) returns Boolean - ---Purpose: Returns true if the last vertex added to the constructed - -- polygonal wire is not coincident with the previous one. - is static; - - Close(me : in out) - ---Purpose: Closes the polygonal wire under construction. Note - this - -- is equivalent to adding the first vertex to the polygonal - -- wire under construction. - is static; - - FirstVertex(me) returns Vertex from TopoDS - ---C++: return const & - ---Level: Public - is static; - - LastVertex(me) returns Vertex from TopoDS - ---C++: return const & - ---Level: Public - is static; - ---Purpose: Returns the first or the last vertex of the polygonal wire under construction. - -- If the constructed polygonal wire is closed, the first and the last vertices are identical. - - IsDone(me) returns Boolean - ---Level: Public - is redefined; - ---Purpose: - -- Returns true if this algorithm contains a valid polygonal - -- wire (i.e. if there is at least one edge). - -- IsDone returns false if fewer than two vertices have - -- been chained together by this construction algorithm. - - Edge(me) returns Edge from TopoDS - ---Purpose: Returns the edge built between the last two points or - -- vertices added to the constructed polygonal wire under construction. - -- Warning - -- If there is only one vertex in the polygonal wire, the result is a null edge. - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Edge() const;" - raises - NotDone from StdFail - is static; - - Wire(me) returns Wire from TopoDS - ---Purpose: - -- Returns the constructed polygonal wire, or the already - -- built part of the polygonal wire under construction. - -- Exceptions - -- StdFail_NotDone if the wire is not built, i.e. if fewer than - -- two vertices have been chained together by this construction algorithm. - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Wire() const;" - raises - NotDone from StdFail - is static; - -fields - - myMakePolygon : MakePolygon from BRepLib; - -end MakePolygon; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakePolygon.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakePolygon.cxx index c4b36c3b15..1f05a6d985 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakePolygon.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakePolygon.cxx @@ -14,13 +14,18 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRepBuilderAPI_MakePolygon //purpose : //======================================================================= - BRepBuilderAPI_MakePolygon::BRepBuilderAPI_MakePolygon() { } diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakePolygon.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakePolygon.hxx new file mode 100644 index 0000000000..1a84d30627 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakePolygon.hxx @@ -0,0 +1,198 @@ +// Created on: 1993-07-29 +// 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_MakePolygon_HeaderFile +#define _BRepBuilderAPI_MakePolygon_HeaderFile + +#include +#include +#include + +#include +#include +#include +class StdFail_NotDone; +class gp_Pnt; +class TopoDS_Vertex; +class TopoDS_Edge; +class TopoDS_Wire; + + +//! Describes functions to build polygonal wires. A +//! polygonal wire can be built from any number of points +//! or vertices, and consists of a sequence of connected +//! rectilinear edges. +//! When a point or vertex is added to the polygon if +//! it is identic to the previous point no edge is +//! built. The method added can be used to test it. +//! Construction of a Polygonal Wire +//! You can construct: +//! - a complete polygonal wire by defining all its points +//! or vertices (limited to four), or +//! - an empty polygonal wire and add its points or +//! vertices in sequence (unlimited number). +//! A MakePolygon object provides a framework for: +//! - initializing the construction of a polygonal wire, +//! - adding points or vertices to the polygonal wire under construction, and +//! - consulting the result. +class BRepBuilderAPI_MakePolygon : public BRepBuilderAPI_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Initializes an empty polygonal wire, to which points or + //! vertices are added using the Add function. + //! As soon as the polygonal wire under construction + //! contains vertices, it can be consulted using the Wire function. + Standard_EXPORT BRepBuilderAPI_MakePolygon(); + + Standard_EXPORT BRepBuilderAPI_MakePolygon(const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepBuilderAPI_MakePolygon(const gp_Pnt& P1, const gp_Pnt& P2, const gp_Pnt& P3, const Standard_Boolean Close = Standard_False); + + //! Constructs a polygonal wire from 2, 3 or 4 points. Vertices are + //! automatically created on the given points. The polygonal wire is + //! closed if Close is true; otherwise it is open. Further vertices can + //! be added using the Add function. The polygonal wire under + //! construction can be consulted at any time by using the Wire function. + //! Example + //! //an open polygon from four points + //! TopoDS_Wire W = BRepBuilderAPI_MakePolygon(P1,P2,P3,P4); + //! Warning: The process is equivalent to: + //! - initializing an empty polygonal wire, + //! - and adding the given points in sequence. + //! Consequently, be careful when using this function: if the + //! sequence of points p1 - p2 - p1 is found among the arguments of the + //! constructor, you will create a polygonal wire with two + //! consecutive coincident edges. + Standard_EXPORT BRepBuilderAPI_MakePolygon(const gp_Pnt& P1, const gp_Pnt& P2, const gp_Pnt& P3, const gp_Pnt& P4, const Standard_Boolean Close = Standard_False); + + Standard_EXPORT BRepBuilderAPI_MakePolygon(const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepBuilderAPI_MakePolygon(const TopoDS_Vertex& V1, const TopoDS_Vertex& V2, const TopoDS_Vertex& V3, const Standard_Boolean Close = Standard_False); + + //! Constructs a polygonal wire from + //! 2, 3 or 4 vertices. The polygonal wire is closed if Close is true; + //! otherwise it is open (default value). Further vertices can be + //! added using the Add function. The polygonal wire under + //! construction can be consulted at any time by using the Wire function. + //! Example + //! //a closed triangle from three vertices + //! TopoDS_Wire W = BRepBuilderAPI_MakePolygon(V1,V2,V3,Standard_True); + //! Warning + //! The process is equivalent to: + //! - initializing an empty polygonal wire, + //! - then adding the given points in sequence. + //! So be careful, as when using this function, you could create a + //! polygonal wire with two consecutive coincident edges if + //! the sequence of vertices v1 - v2 - v1 is found among the + //! constructor's arguments. + Standard_EXPORT BRepBuilderAPI_MakePolygon(const TopoDS_Vertex& V1, const TopoDS_Vertex& V2, const TopoDS_Vertex& V3, const TopoDS_Vertex& V4, const Standard_Boolean Close = Standard_False); + + Standard_EXPORT void Add (const gp_Pnt& P); + + + //! Adds the point P or the vertex V at the end of the + //! polygonal wire under construction. A vertex is + //! automatically created on the point P. + //! Warning + //! - When P or V is coincident to the previous vertex, + //! no edge is built. The method Added can be used to + //! test for this. Neither P nor V is checked to verify + //! that it is coincident with another vertex than the last + //! one, of the polygonal wire under construction. It is + //! also possible to add vertices on a closed polygon + //! (built for example by using a constructor which + //! declares the polygon closed, or after the use of the Close function). + //! Consequently, be careful using this function: you might create: + //! - a polygonal wire with two consecutive coincident edges, or + //! - a non manifold polygonal wire. + //! - P or V is not checked to verify if it is + //! coincident with another vertex but the last one, of + //! the polygonal wire under construction. It is also + //! possible to add vertices on a closed polygon (built + //! for example by using a constructor which declares + //! the polygon closed, or after the use of the Close function). + //! Consequently, be careful when using this function: you might create: + //! - a polygonal wire with two consecutive coincident edges, or + //! - a non-manifold polygonal wire. + Standard_EXPORT void Add (const TopoDS_Vertex& V); + + //! Returns true if the last vertex added to the constructed + //! polygonal wire is not coincident with the previous one. + Standard_EXPORT Standard_Boolean Added() const; + + //! Closes the polygonal wire under construction. Note - this + //! is equivalent to adding the first vertex to the polygonal + //! wire under construction. + Standard_EXPORT void Close(); + + Standard_EXPORT const TopoDS_Vertex& FirstVertex() const; + + //! Returns the first or the last vertex of the polygonal wire under construction. + //! If the constructed polygonal wire is closed, the first and the last vertices are identical. + Standard_EXPORT const TopoDS_Vertex& LastVertex() const; + + + //! Returns true if this algorithm contains a valid polygonal + //! wire (i.e. if there is at least one edge). + //! IsDone returns false if fewer than two vertices have + //! been chained together by this construction algorithm. + Standard_EXPORT virtual Standard_Boolean IsDone() const Standard_OVERRIDE; + + //! Returns the edge built between the last two points or + //! vertices added to the constructed polygonal wire under construction. + //! Warning + //! If there is only one vertex in the polygonal wire, the result is a null edge. + Standard_EXPORT const TopoDS_Edge& Edge() const; +Standard_EXPORT operator TopoDS_Edge() const; + + + //! Returns the constructed polygonal wire, or the already + //! built part of the polygonal wire under construction. + //! Exceptions + //! StdFail_NotDone if the wire is not built, i.e. if fewer than + //! two vertices have been chained together by this construction algorithm. + Standard_EXPORT const TopoDS_Wire& Wire() const; +Standard_EXPORT operator TopoDS_Wire() const; + + + + +protected: + + + + + +private: + + + + BRepLib_MakePolygon myMakePolygon; + + +}; + + + + + + + +#endif // _BRepBuilderAPI_MakePolygon_HeaderFile diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.cdl deleted file mode 100644 index ca36fa67a9..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.cdl +++ /dev/null @@ -1,96 +0,0 @@ --- 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. - -deferred class MakeShape from BRepBuilderAPI inherits Command from BRepBuilderAPI - - ---Purpose: This is the root class for all shape - -- constructions. It stores the result. - -- - -- It provides deferred methods to trace the history - -- of sub-shapes. - -uses - Shape from TopoDS, - Face from TopoDS, - Edge from TopoDS, - Vertex from TopoDS, - ShapeModification from BRepBuilderAPI, - ListOfShape from TopTools - - -raises - NotDone from StdFail - -is - Delete(me:out) is redefined; - ---C++: alias "Standard_EXPORT virtual ~BRepBuilderAPI_MakeShape(){Delete() ; }" - - Initialize; - - Build(me : in out) - ---Purpose: This is called by Shape(). It does nothing but - -- may be redefined. - ---Level: Public - is virtual; - - Shape(me) returns Shape from TopoDS - ---Purpose: Returns a shape built by the shape construction algorithm. - -- Raises exception StdFail_NotDone if the shape was not built. - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Shape() const;" - ---Level: Public - raises - NotDone from StdFail - is virtual; - --is static; - - - ------------------------------------------------------------------ - --- The following methods are not implemented at this level. - -- An empty list is returned. - --- They are optional and must be redefined. - ------------------------------------------------------------------ - - Generated (me: in out; S : Shape from TopoDS) - ---Purpose: Returns the list of shapes generated from the - -- shape . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is virtual; - - - Modified (me: in out; S : Shape from TopoDS) - ---Purpose: Returns the list of shapes modified from the shape - -- . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is virtual; - - - IsDeleted (me: in out; S : Shape from TopoDS) - returns Boolean - is virtual; - ---Purpose: Returns true if the shape S has been deleted. - - -fields - - myShape : Shape from TopoDS is protected; - myGenerated : ListOfShape from TopTools is protected; - -end MakeShape; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.cxx index dd3d7891e3..119c542734 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.cxx @@ -14,19 +14,19 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include #include -#include -#include #include +#include +#include #include - //======================================================================= //function : BRepBuilderAPI_MakeShape //purpose : //======================================================================= - BRepBuilderAPI_MakeShape::BRepBuilderAPI_MakeShape() { } diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.hxx new file mode 100644 index 0000000000..ab87f3eec9 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeShape.hxx @@ -0,0 +1,94 @@ +// 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 +#include +#include + +#include +#include +#include +#include +class StdFail_NotDone; +class TopoDS_Shape; + + +//! 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 + + + Standard_EXPORT virtual void Delete() Standard_OVERRIDE; +Standard_EXPORT virtual ~BRepBuilderAPI_MakeShape(){Delete() ; } + + //! This is called by Shape(). It does nothing but + //! may be redefined. + Standard_EXPORT virtual void Build(); + + //! 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() const; +Standard_EXPORT operator TopoDS_Shape() const; + + //! 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/src/BRepBuilderAPI/BRepBuilderAPI_MakeShell.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_MakeShell.cdl deleted file mode 100644 index 596695fc71..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeShell.cdl +++ /dev/null @@ -1,135 +0,0 @@ --- 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. - --- xab:19Nov96 correction de doc - - - -class MakeShell from BRepBuilderAPI inherits MakeShape from BRepBuilderAPI - - ---Purpose: 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. - -uses - - Surface from Geom, - Shell from TopoDS, - Face from TopoDS, - ShellError from BRepBuilderAPI, - MakeShell from BRepLib - - -raises - NotDone from StdFail - -is - Create - ---Purpose: 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. - returns MakeShell from BRepBuilderAPI; - - ---------------------------------------------- - -- From a set of face - ---------------------------------------------- - - ---------------------------------------------- - -- From a surface - ---------------------------------------------- - - Create(S : Surface from Geom; - Segment : Boolean from Standard = Standard_False) - ---Purpose: Constructs a shell from the surface S. - returns MakeShell from BRepBuilderAPI; - - Create(S : Surface from Geom; UMin, UMax, VMin, VMax : Real; - Segment : Boolean from Standard = Standard_False) - - ---Purpose: 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. - returns MakeShell from BRepBuilderAPI; - - Init(me : in out; S : Surface from Geom; UMin, UMax, VMin, VMax : Real; - Segment : Boolean from Standard = Standard_False) - ---Purpose: 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 - is static; - - - ---------------------------------------------- - -- Results - ---------------------------------------------- - - IsDone(me) returns Boolean - ---Purpose: Returns true if the shell is built. - is redefined; - - Error(me) returns ShellError from BRepBuilderAPI - ---Purpose: 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. - is static; - - Shell(me) returns Shell from TopoDS - ---Purpose: Returns the new Shell. - -- - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Shell() const;" - ---Level: Public - raises - NotDone from StdFail - is static; - -fields - myMakeShell : MakeShell from BRepLib; - -end MakeShell; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeShell.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeShell.cxx index 69793be8a9..e3a0b31edd 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeShell.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeShell.cxx @@ -14,14 +14,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include //======================================================================= //function : BRepBuilderAPI_MakeShell //purpose : //======================================================================= - BRepBuilderAPI_MakeShell::BRepBuilderAPI_MakeShell() { } diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeShell.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeShell.hxx new file mode 100644 index 0000000000..a6a1225a84 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeShell.hxx @@ -0,0 +1,131 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +class StdFail_NotDone; +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/src/BRepBuilderAPI/BRepBuilderAPI_MakeSolid.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_MakeSolid.cdl deleted file mode 100644 index 026c52ee6e..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeSolid.cdl +++ /dev/null @@ -1,168 +0,0 @@ --- 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. - -class MakeSolid from BRepBuilderAPI inherits MakeShape from BRepBuilderAPI - - ---Purpose: 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. - -uses - Solid from TopoDS, - CompSolid from TopoDS, - Shell from TopoDS, - Shape from TopoDS, - MakeSolid from BRepLib - -raises - NotDone from StdFail - -is - - Create - ---Purpose: 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. - returns MakeSolid from BRepBuilderAPI; - - ---------------------------------------------- - -- From Compsolid - ---------------------------------------------- - - Create(S : CompSolid from TopoDS) - ---Purpose: Make a solid from a CompSolid. - ---Level: Public - returns MakeSolid from BRepBuilderAPI; - - -- this algorithm removes all inner faces amd make solid from compsolid - - ---------------------------------------------- - -- From shells - ---------------------------------------------- - - Create(S : Shell from TopoDS) - ---Purpose: Make a solid from a shell. - ---Level: Public - returns MakeSolid from BRepBuilderAPI; - - - Create(S1,S2 : Shell from TopoDS) - ---Purpose: Make a solid from two shells. - ---Level: Public - returns MakeSolid from BRepBuilderAPI; - - Create(S1,S2,S3 : Shell from TopoDS) - ---Purpose: Make a solid from three shells. - ---Level: Public - returns MakeSolid from BRepBuilderAPI; - - ---Purpose: 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. - - ---------------------------------------------- - -- From solid and shells - ---------------------------------------------- - - Create(So : Solid from TopoDS) - ---Purpose: Make a solid from a solid. Usefull for adding later. - ---Level: Public - returns MakeSolid from BRepBuilderAPI; - - Create(So : Solid from TopoDS; S : Shell from TopoDS) - ---Purpose: Add a shell to a solid. - ---Level: Public - returns MakeSolid from BRepBuilderAPI; - - ---Purpose: - -- 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. - - ---------------------------------------------- - -- Auxiliary methods - ---------------------------------------------- - - Add(me : in out; S : Shell from TopoDS) - ---Purpose: 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. - is static; - - ---------------------------------------------- - -- Results - ---------------------------------------------- - - IsDone(me) returns Boolean - ---Purpose: 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. - is redefined; - - Solid(me) returns Solid from TopoDS - ---Purpose: Returns the new Solid. - -- - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Solid() const;" - ---Level: Public - raises - NotDone from StdFail - is static; - - IsDeleted (me: in out; S : Shape from TopoDS) - returns Boolean - is redefined; - -fields - - myMakeSolid : MakeSolid from BRepLib; - -end MakeSolid; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeSolid.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeSolid.cxx index 78af6d00af..f523104e80 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeSolid.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeSolid.cxx @@ -14,15 +14,19 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRepBuilderAPI_MakeSolid //purpose : //======================================================================= - BRepBuilderAPI_MakeSolid::BRepBuilderAPI_MakeSolid() { } diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeSolid.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeSolid.hxx new file mode 100644 index 0000000000..8e4d27586f --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeSolid.hxx @@ -0,0 +1,149 @@ +// 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 +#include +#include + +#include +#include +#include +class StdFail_NotDone; +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. Usefull 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() const; +Standard_EXPORT operator TopoDS_Solid() const; + + Standard_EXPORT virtual Standard_Boolean IsDeleted (const TopoDS_Shape& S) Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + BRepLib_MakeSolid myMakeSolid; + + +}; + + + + + + + +#endif // _BRepBuilderAPI_MakeSolid_HeaderFile diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeVertex.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_MakeVertex.cdl deleted file mode 100644 index 4dbd75c461..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeVertex.cdl +++ /dev/null @@ -1,53 +0,0 @@ --- 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. - -class MakeVertex from BRepBuilderAPI inherits MakeShape from BRepBuilderAPI - - ---Purpose: Describes functions to build BRepBuilder vertices directly - -- from 3D geometric points. A vertex built using a - -- MakeVertex object is only composed of a 3D point and - -- a default precision value (Precision::Confusion()). - -- Later on, 2D representations can be added, for example, - -- when inserting a vertex in an edge. - -- A MakeVertex object provides a framework for: - -- - defining and implementing the construction of a vertex, and - -- - consulting the result. - -uses - Pnt from gp, - Vertex from TopoDS, - MakeVertex from BRepLib - -is - Create (P : Pnt from gp) - ---Purpose: Constructs a vertex from point P. - -- Example create a vertex from a 3D point. - -- gp_Pnt P(0,0,10); - -- TopoDS_Vertex V = BRepBuilderAPI_MakeVertex(P); - returns MakeVertex from BRepBuilderAPI; - - Vertex(me) returns Vertex from TopoDS - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Vertex() const;" - ---Purpose: Returns the constructed vertex. - is static; - -fields - - myMakeVertex : MakeVertex from BRepLib; - - -end MakeVertex; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeVertex.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeVertex.cxx index 378c737719..6ceb7e4203 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeVertex.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeVertex.cxx @@ -14,16 +14,18 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include + #include +#include +#include +#include #include +#include //======================================================================= //function : BRepBuilderAPI_MakeVertex //purpose : //======================================================================= - BRepBuilderAPI_MakeVertex::BRepBuilderAPI_MakeVertex(const gp_Pnt& P) : myMakeVertex(P) { diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeVertex.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeVertex.hxx new file mode 100644 index 0000000000..c5b48b901a --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeVertex.hxx @@ -0,0 +1,80 @@ +// 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_MakeVertex_HeaderFile +#define _BRepBuilderAPI_MakeVertex_HeaderFile + +#include +#include +#include + +#include +#include +class gp_Pnt; +class TopoDS_Vertex; + + +//! Describes functions to build BRepBuilder vertices directly +//! from 3D geometric points. A vertex built using a +//! MakeVertex object is only composed of a 3D point and +//! a default precision value (Precision::Confusion()). +//! Later on, 2D representations can be added, for example, +//! when inserting a vertex in an edge. +//! A MakeVertex object provides a framework for: +//! - defining and implementing the construction of a vertex, and +//! - consulting the result. +class BRepBuilderAPI_MakeVertex : public BRepBuilderAPI_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Constructs a vertex from point P. + //! Example create a vertex from a 3D point. + //! gp_Pnt P(0,0,10); + //! TopoDS_Vertex V = BRepBuilderAPI_MakeVertex(P); + Standard_EXPORT BRepBuilderAPI_MakeVertex(const gp_Pnt& P); + + //! Returns the constructed vertex. + Standard_EXPORT const TopoDS_Vertex& Vertex() const; +Standard_EXPORT operator TopoDS_Vertex() const; + + + + +protected: + + + + + +private: + + + + BRepLib_MakeVertex myMakeVertex; + + +}; + + + + + + + +#endif // _BRepBuilderAPI_MakeVertex_HeaderFile diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeWire.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_MakeWire.cdl deleted file mode 100644 index 1bb477f784..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeWire.cdl +++ /dev/null @@ -1,225 +0,0 @@ --- 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. - -class MakeWire from BRepBuilderAPI inherits MakeShape from BRepBuilderAPI - - ---Purpose: 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. - -uses - Vertex from TopoDS, - Edge from TopoDS, - Wire from TopoDS, - ListOfShape from TopTools, - WireError from BRepBuilderAPI, - MakeWire from BRepLib - -raises - NotDone from StdFail - -is - - Create - ---Purpose: 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. - returns MakeWire from BRepBuilderAPI; - - ---------------------------------------------- - -- From edges - ---------------------------------------------- - - Create(E : Edge from TopoDS) - ---Purpose: Make a Wire from an edge. - ---Level: Public - returns MakeWire from BRepBuilderAPI; - - Create(E1,E2 : Edge from TopoDS) - ---Purpose: Make a Wire from two edges. - ---Level: Public - returns MakeWire from BRepBuilderAPI; - - Create(E1,E2,E3 : Edge from TopoDS) - ---Purpose: Make a Wire from three edges. - ---Level: Public - returns MakeWire from BRepBuilderAPI; - - Create(E1,E2,E3,E4 : Edge from TopoDS) - ---Purpose: Make a Wire from four edges. - ---Level: Public - returns MakeWire from BRepBuilderAPI; - ---Purpose: 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. - - ---------------------------------------------- - -- From wire and edge - ---------------------------------------------- - - Create(W : Wire from TopoDS) - ---Purpose: Make a Wire from a Wire. Usefull for adding later. - ---Level: Public - returns MakeWire from BRepBuilderAPI; - - Create(W : Wire from TopoDS; E : Edge from TopoDS) - ---Purpose: Add an edge to a wire. - ---Level: Public - returns MakeWire from BRepBuilderAPI; - - ---------------------------------------------- - -- Auxiliary methods - ---------------------------------------------- - - Add(me : in out; E : Edge from TopoDS) - ---Purpose: 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. - is static; - - Add(me : in out; W : Wire from TopoDS) - ---Purpose: Add the edges of to the current wire. - ---Level: Public - is static; - - Add(me : in out; L : ListOfShape from TopTools) - ---Purpose: 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 ) - is static; - - ---------------------------------------------- - -- Results - ---------------------------------------------- - - IsDone(me) returns Boolean - ---Purpose: 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. - is redefined; - - Error(me) returns WireError from BRepBuilderAPI - ---Purpose: Returns the construction status - -- - BRepBuilderAPI_WireDone if the wire is built, or - -- - another value of the BRepBuilderAPI_WireError - -- enumeration indicating why the construction failed. - is static; - - Wire(me) returns Wire from TopoDS - ---Purpose: Returns the constructed wire; or the part of the wire - -- under construction already built. - -- Exceptions StdFail_NotDone if a wire is not built. - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Wire() const;" - raises - NotDone from StdFail - is static; - - Edge(me) returns Edge from TopoDS - ---C++: return const & - ---Purpose: 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.. - raises - NotDone from StdFail - is static; - - Vertex(me) returns Vertex from TopoDS - ---C++: return const & - ---Purpose: 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 - raises - NotDone from StdFail - is static; - - -fields - myMakeWire : MakeWire from BRepLib; - -end MakeWire; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeWire.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeWire.cxx index 8dc2345e9d..896c5880a3 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_MakeWire.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeWire.cxx @@ -14,14 +14,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include //======================================================================= //function : BRepBuilderAPI_MakeWire //purpose : //======================================================================= - BRepBuilderAPI_MakeWire::BRepBuilderAPI_MakeWire() { } diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_MakeWire.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_MakeWire.hxx new file mode 100644 index 0000000000..759bde5335 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_MakeWire.hxx @@ -0,0 +1,207 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +class StdFail_NotDone; +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. Usefull 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() const; +Standard_EXPORT operator TopoDS_Wire() const; + + //! 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/src/BRepBuilderAPI/BRepBuilderAPI_ModifyShape.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_ModifyShape.cdl deleted file mode 100644 index 9fd3ebfe89..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_ModifyShape.cdl +++ /dev/null @@ -1,135 +0,0 @@ --- Created on: 1994-12-02 --- 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. - -deferred class ModifyShape from BRepBuilderAPI inherits MakeShape from BRepBuilderAPI - - ---Purpose: Implements the methods of MakeShape for the - -- constant topology modifications. The methods are - -- implemented when the modification uses a Modifier - -- from BRepTools. Some of them have to be redefined - -- if the modification is implemented with another - -- tool (see Transform from BRepBuilderAPI for example). - -- The BRepBuilderAPI package provides the following - -- frameworks to perform modifications of this sort: - -- - BRepBuilderAPI_Copy to produce the copy of a shape, - -- - BRepBuilderAPI_Transform and - -- BRepBuilderAPI_GTransform to apply a geometric - -- transformation to a shape, - -- - BRepBuilderAPI_NurbsConvert to convert the - -- whole geometry of a shape into NURBS geometry, - -- - BRepOffsetAPI_DraftAngle to build a tapered shape. - -uses - Shape from TopoDS, - Face from TopoDS, - Edge from TopoDS, - ShapeModification from BRepBuilderAPI, - ListOfShape from TopTools, - - Modifier from BRepTools, - Modification from BRepTools - -raises - NullObject from Standard, - NoSuchObject from Standard -is - - Initialize; - ---Purpose: Empty constructor. - - - Initialize(S:Shape from TopoDS); - ---Purpose: Initializes the modifier with the Shape , and - -- set the field to . - - - Initialize(M: Modification from BRepTools); - ---Purpose: Set the field with . - - - Initialize(S: Shape from TopoDS; M: Modification from BRepTools); - ---Purpose: Initializes the modifier with the Shape , and - -- set the field to , and set the - -- field with , the performs the - -- modification. - - - DoModif(me: in out; S: Shape from TopoDS) - ---Purpose: Performs the previously given modification on the - -- shape . - - raises NullObject from Standard - --- The exception is raised if no modification has been given. - is static protected; - - - DoModif(me: in out; M: Modification from BRepTools) - ---Purpose: Performs the modification on a previously - -- given shape. - - raises NullObject from Standard - --- The exception is raised if no shape has been given. - is static protected; - - - DoModif(me: in out; S: Shape from TopoDS; - M: Modification from BRepTools) - ---Purpose: Performs the modification on the shape . - - is static protected; - - ---- Private implementation method - - DoModif(me: in out) - - is static private; - ----Category: Querying isg-attention il faudrait passer en modified que --- les faces dont les bornes sont modifiees et les faces --- inclinees en generated (pas disponible aujourd 'hui dans BRepTools_modifier --- a reprendre --- - Modified (me: in out; S : Shape from TopoDS) - ---Purpose: Returns the list of shapes modified from the shape - -- . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is redefined virtual; - - - ModifiedShape(me; S: Shape from TopoDS) - returns Shape from TopoDS - ---Purpose: Returns the modified shape corresponding to . - -- S can correspond to the entire initial shape or to its subshape. - -- Exceptions - -- Standard_NoSuchObject if S is not the initial shape or - -- a subshape of the initial shape to which the - -- transformation has been applied. Raises NoSuchObject from Standard - -- if S is not the initial shape or a sub-shape - -- of the initial shape. - raises NoSuchObject from Standard - - is virtual; - -fields - - myModifier : Modifier from BRepTools is protected; - myInitialShape : Shape from TopoDS is protected; - myModification : Modification from BRepTools is protected; - -end ModifyShape; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_ModifyShape.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_ModifyShape.cxx index 0c659b0918..bf3557d310 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_ModifyShape.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_ModifyShape.cxx @@ -14,16 +14,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - +#include +#include +#include #include +#include //======================================================================= //function : BRepBuilderAPI_ModifyShape //purpose : //======================================================================= - BRepBuilderAPI_ModifyShape::BRepBuilderAPI_ModifyShape () {} diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_ModifyShape.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_ModifyShape.hxx new file mode 100644 index 0000000000..87cb53d93f --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_ModifyShape.hxx @@ -0,0 +1,125 @@ +// Created on: 1994-12-02 +// 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_ModifyShape_HeaderFile +#define _BRepBuilderAPI_ModifyShape_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class BRepTools_Modification; +class Standard_NullObject; +class Standard_NoSuchObject; +class TopoDS_Shape; + + +//! Implements the methods of MakeShape for the +//! constant topology modifications. The methods are +//! implemented when the modification uses a Modifier +//! from BRepTools. Some of them have to be redefined +//! if the modification is implemented with another +//! tool (see Transform from BRepBuilderAPI for example). +//! The BRepBuilderAPI package provides the following +//! frameworks to perform modifications of this sort: +//! - BRepBuilderAPI_Copy to produce the copy of a shape, +//! - BRepBuilderAPI_Transform and +//! BRepBuilderAPI_GTransform to apply a geometric +//! transformation to a shape, +//! - BRepBuilderAPI_NurbsConvert to convert the +//! whole geometry of a shape into NURBS geometry, +//! - BRepOffsetAPI_DraftAngle to build a tapered shape. +class BRepBuilderAPI_ModifyShape : public BRepBuilderAPI_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! 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 . + //! S can correspond to the entire initial shape or to its subshape. + //! Exceptions + //! Standard_NoSuchObject if S is not the initial shape or + //! a subshape of the initial shape to which the + //! transformation has been applied. Raises NoSuchObject from Standard + //! if S is not the initial shape or a sub-shape + //! of the initial shape. + Standard_EXPORT virtual TopoDS_Shape ModifiedShape (const TopoDS_Shape& S) const; + + + + +protected: + + + //! Empty constructor. + Standard_EXPORT BRepBuilderAPI_ModifyShape(); + + //! Initializes the modifier with the Shape , and + //! set the field to . + Standard_EXPORT BRepBuilderAPI_ModifyShape(const TopoDS_Shape& S); + + //! Set the field with . + Standard_EXPORT BRepBuilderAPI_ModifyShape(const Handle(BRepTools_Modification)& M); + + //! Initializes the modifier with the Shape , and + //! set the field to , and set the + //! field with , the performs the + //! modification. + Standard_EXPORT BRepBuilderAPI_ModifyShape(const TopoDS_Shape& S, const Handle(BRepTools_Modification)& M); + + //! Performs the previously given modification on the + //! shape . + Standard_EXPORT void DoModif (const TopoDS_Shape& S); + + //! Performs the modification on a previously + //! given shape. + Standard_EXPORT void DoModif (const Handle(BRepTools_Modification)& M); + + //! Performs the modification on the shape . + Standard_EXPORT void DoModif (const TopoDS_Shape& S, const Handle(BRepTools_Modification)& M); + + + BRepTools_Modifier myModifier; + TopoDS_Shape myInitialShape; + Handle(BRepTools_Modification) myModification; + + +private: + + + Standard_EXPORT void DoModif(); + + + + +}; + + + + + + + +#endif // _BRepBuilderAPI_ModifyShape_HeaderFile diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_NurbsConvert.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_NurbsConvert.cdl deleted file mode 100644 index e102135b3a..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_NurbsConvert.cdl +++ /dev/null @@ -1,66 +0,0 @@ --- 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. - -class NurbsConvert from BRepBuilderAPI inherits ModifyShape from BRepBuilderAPI - - ---Purpose: Conversion of the complete geometry of a shape - -- (all 3D analytical representation of surfaces and curves) - -- into NURBS geometry (execpt for Planes). For example, - -- all curves supporting edges of the basis shape are converted - -- into BSpline curves, and all surfaces supporting its faces are - -- converted into BSpline surfaces. - -uses - - Shape from TopoDS, - Face from TopoDS, - ShapeModification from BRepBuilderAPI, - ListOfShape from TopTools - -is - - Create returns NurbsConvert from BRepBuilderAPI; - ---Purpose: Constructs a framework for converting the geometry of a - -- shape into NURBS geometry. Use the function Perform - -- to define the shape to convert. - Create(S: Shape from TopoDS; - Copy: Boolean from Standard = Standard_False) - - returns NurbsConvert from BRepBuilderAPI; - ---Purpose: Builds a new shape by converting the geometry of the - -- shape S into NURBS geometry. Specifically, all curves - -- supporting edges of S are converted into BSpline - -- curves, and all surfaces supporting its faces are - -- converted into BSpline surfaces. - -- Use the function Shape to access the new shape. - -- Note: the constructed framework can be reused to - -- convert other shapes. You specify these with the - -- function Perform. - - Perform(me: in out; S : Shape from TopoDS; - Copy: Boolean from Standard = Standard_False) - - ---Purpose: Builds a new shape by converting the geometry of the - -- shape S into NURBS geometry. - -- Specifically, all curves supporting edges of S are - -- converted into BSpline curves, and all surfaces - -- supporting its faces are converted into BSpline surfaces. - -- Use the function Shape to access the new shape. - -- Note: this framework can be reused to convert other - -- shapes: you specify them by calling the function Perform again. - is static; - -end NurbsConvert; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_NurbsConvert.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_NurbsConvert.cxx index 8b0de9c73b..9d9550ba21 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_NurbsConvert.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_NurbsConvert.cxx @@ -14,23 +14,23 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include #include +#include #include +#include #include #include +#include #include -#include -#include -#include -//#include - +//#include //======================================================================= //function : BRepBuilderAPI_NurbsConvert //purpose : //======================================================================= - BRepBuilderAPI_NurbsConvert::BRepBuilderAPI_NurbsConvert () { diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_NurbsConvert.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_NurbsConvert.hxx new file mode 100644 index 0000000000..faf51512d7 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_NurbsConvert.hxx @@ -0,0 +1,91 @@ +// 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_NurbsConvert_HeaderFile +#define _BRepBuilderAPI_NurbsConvert_HeaderFile + +#include +#include +#include + +#include +#include +class TopoDS_Shape; + + +//! Conversion of the complete geometry of a shape +//! (all 3D analytical representation of surfaces and curves) +//! into NURBS geometry (execpt for Planes). For example, +//! all curves supporting edges of the basis shape are converted +//! into BSpline curves, and all surfaces supporting its faces are +//! converted into BSpline surfaces. +class BRepBuilderAPI_NurbsConvert : public BRepBuilderAPI_ModifyShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Constructs a framework for converting the geometry of a + //! shape into NURBS geometry. Use the function Perform + //! to define the shape to convert. + Standard_EXPORT BRepBuilderAPI_NurbsConvert(); + + //! Builds a new shape by converting the geometry of the + //! shape S into NURBS geometry. Specifically, all curves + //! supporting edges of S are converted into BSpline + //! curves, and all surfaces supporting its faces are + //! converted into BSpline surfaces. + //! Use the function Shape to access the new shape. + //! Note: the constructed framework can be reused to + //! convert other shapes. You specify these with the + //! function Perform. + Standard_EXPORT BRepBuilderAPI_NurbsConvert(const TopoDS_Shape& S, const Standard_Boolean Copy = Standard_False); + + //! Builds a new shape by converting the geometry of the + //! shape S into NURBS geometry. + //! Specifically, all curves supporting edges of S are + //! converted into BSpline curves, and all surfaces + //! supporting its faces are converted into BSpline surfaces. + //! Use the function Shape to access the new shape. + //! Note: this framework can be reused to convert other + //! shapes: you specify them by calling the function Perform again. + Standard_EXPORT void Perform (const TopoDS_Shape& S, const Standard_Boolean Copy = Standard_False); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepBuilderAPI_NurbsConvert_HeaderFile diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_PipeError.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_PipeError.hxx new file mode 100644 index 0000000000..1eb8cfcb19 --- /dev/null +++ b/src/BRepBuilderAPI/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/src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cdl deleted file mode 100644 index b6bd3818af..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cdl +++ /dev/null @@ -1,559 +0,0 @@ --- Created on: 1995-03-23 --- 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. - --- Modified Thu May 7 15:20:25 1998 by David Carbonel (dcl) --- Little faces management. --- Add of Cutting option. --- Optimisation of cutting fonction --- Modified Thu Jan 21 13:00:58 MET 1999 by Jing Cheng MEI --- Nonmanifold processing - -class Sewing from BRepBuilderAPI inherits TShared from MMgt - - ---Purpose: Provides methods to - -- - -- - identify possible contigous boundaries (for control - -- afterwards (of continuity: C0, C1, ...)) - -- - -- - assemble contigous shapes into one shape. - -- Only manifold shapes will be found. Sewing will not - -- be done in case of multiple edges. - -- - -- For sewing, use this function as following: - -- - create an empty object - -- - default tolerance 1.E-06 - -- - with face analysis on - -- - with sewing operation on - -- - set the cutting option as you need (default True) - -- - define a tolerance - -- - add shapes to be sewed -> Add - -- - compute -> Perfom - -- - output the resulted shapes - -- - output free edges if necessary - -- - output multiple edges if necessary - -- - output the problems if any - - -- For control, use this function as following: - -- - create an empty object - -- - default tolerance 1.E-06 - -- - with face analysis on - -- - with sewing operation on - -- - set the cutting option as you need (default True) - -- - define a tolerance to capture contigous boundaries - -- - set if necessary face analysis off - -- - set sewing operation off - -- - add shapes to be controlled -> Add - -- - compute -> Perfom - -- - output couples of connected edges (contigous) and - -- their original boundary for control - -- - output the problems if any - - -uses - - Shape from TopoDS, - Edge from TopoDS, - ListOfShape from TopTools, - MapOfShape from TopTools, - DataMapOfShapeShape from TopTools, - DataMapOfShapeListOfShape from TopTools, - IndexedMapOfShape from TopTools, - IndexedDataMapOfShapeShape from TopTools, - IndexedDataMapOfShapeListOfShape from TopTools, - SequenceOfShape from TopTools, - Array1OfShape from TopTools, - Face from TopoDS, - Array1OfInteger from TColStd, - Array1OfPnt from TColgp, - Array2OfPnt2d from TColgp, - Array1OfBoolean from TColStd, - Array1OfReal from TColStd, - IndexedMapOfInteger from TColStd, - Surface from Geom, - Location from TopLoc, - Curve from Geom2d, - Curve from Geom, - Surface from Geom, - Pnt from gp, - ReShape from BRepTools, - SequenceOfInteger from TColStd, - SequenceOfReal from TColStd, - SequenceOfPnt from TColgp, - ProgressIndicator from Message - -raises - - OutOfRange from Standard, - NoSuchObject from Standard - -is - - Create(tolerance: Real = 1.0e-06; -- tolerance of connexity - option1 : Boolean = Standard_True; -- option for sewing - option2 : Boolean = Standard_True; -- option for analysis of degenerated shapes - option3 : Boolean = Standard_True; -- option for cutting of free edges. - option4 : Boolean = Standard_False) -- option for non manifold processing - returns Sewing from BRepBuilderAPI; - ---Purpose: Creates an object with - -- tolerance of connexity - -- option for sewing (if false only control) - -- option for analysis of degenerated shapes - -- option for cutting of free edges. - -- option for non manifold processing - - Init(me : mutable; tolerance: Real = 1.0e-06; -- tolerance of connexity - option1: Boolean = Standard_True; -- option for sewing - option2: Boolean = Standard_True; -- option for analysis of degenerated shapes - option3: Boolean = Standard_True; -- option for cutting free edge after first merging - -- This option can be set to False if no edge need to be cut. - option4: Boolean = Standard_False);-- option for non manifold processing - ---Purpose: initialize the parameters if necessary - - Load(me : mutable; shape : Shape from TopoDS); - ---Purpose: Loades the context shape. - - Add(me : mutable; shape : Shape from TopoDS); - ---Purpose: Defines the shapes to be sewed or controlled - - Perform(me : mutable; - thePI : ProgressIndicator from Message = 0); - ---Purpose: Computing - -- thePI - progress indicator of algorithm - - SewedShape(me) returns Shape from TopoDS; - ---C++: return const & - ---Purpose: Gives the sewed shape - -- a null shape if nothing constructed - -- may be a face, a shell, a solid or a compound - - SetContext(me : mutable; theContext : ReShape from BRepTools); - ---Purpose: set context - - GetContext(me) returns ReShape from BRepTools; - ---C++: return const & - ---Purpose: return context - - NbFreeEdges(me) returns Integer; - ---Purpose: Gives the number of free edges (edge shared by one face) - - FreeEdge(me; index: Integer) returns Edge from TopoDS - raises OutOfRange from Standard; -- raised if index < 1 or > NbFreeEdges - ---C++: return const & - ---Purpose: Gives each free edge - - NbMultipleEdges(me) returns Integer; - ---Purpose: Gives the number of multiple edges - -- (edge shared by more than two faces) - - MultipleEdge(me; index: Integer) returns Edge from TopoDS - raises OutOfRange from Standard; -- raised if index < 1 or > NbMultipleEdges - ---C++: return const & - ---Purpose: Gives each multiple edge - - NbContigousEdges(me) returns Integer; - ---Purpose: Gives the number of contigous edges (edge shared by two faces) - - ContigousEdge(me; index: Integer) returns Edge from TopoDS - raises OutOfRange from Standard; -- raised if index < 1 or > NbContigousEdges - ---C++: return const & - ---Purpose: Gives each contigous edge - - ContigousEdgeCouple(me; index: Integer) returns ListOfShape from TopTools - raises OutOfRange from Standard; -- raised if index < 1 or > NbContigousEdges - ---C++: return const & - ---Purpose: Gives the sections (edge) belonging to a contigous edge - - IsSectionBound(me; section: Edge from TopoDS) returns Boolean; - ---Purpose: Indicates if a section is bound (before use SectionToBoundary) - - SectionToBoundary(me; section: Edge from TopoDS) returns Edge from TopoDS - raises NoSuchObject from Standard; -- raised if section has not been bound - ---C++: return const & - ---Purpose: Gives the original edge (free boundary) which becomes the - -- the section. Remember that sections constitute common edges. - -- This imformation is important for control because with - -- original edge we can find the surface to which the section - -- is attached. - - NbDegeneratedShapes(me) returns Integer; - ---Purpose: Gives the number of degenerated shapes - - DegeneratedShape(me; index: Integer) returns Shape from TopoDS - raises OutOfRange from Standard; -- raised if index < 1 or > NbDegeneratedShapes - ---C++: return const & - ---Purpose: Gives each degenerated shape - - IsDegenerated(me; shape: Shape from TopoDS) returns Boolean; - ---Purpose: Indicates if a input shape is degenerated - - IsModified(me; shape: Shape from TopoDS) returns Boolean; - ---Purpose: Indicates if a input shape has been modified - - Modified(me ; shape: Shape from TopoDS) returns Shape from TopoDS - raises NoSuchObject from Standard; -- raised if shape has not been modified - ---C++: return const & - ---Purpose: Gives a modifieded shape - - IsModifiedSubShape(me; shape: Shape from TopoDS) returns Boolean; - ---Purpose: Indicates if a input subshape has been modified - - ModifiedSubShape(me ; shape: Shape from TopoDS) returns Shape from TopoDS - raises NoSuchObject from Standard; -- raised if shape has not been modified - ---Purpose: Gives a modifieded subshape - - Dump(me); - ---Purpose: print the informations - - NbDeletedFaces(me) returns Integer; - ---Purpose: Gives the number of deleted faces (faces smallest than tolerance) - - DeletedFace(me; index: Integer) returns Face from TopoDS - raises OutOfRange from Standard; -- raised if index < 1 or > NbDeletedFaces - ---C++: return const & - ---Purpose: Gives each deleted face - - WhichFace(me; theEdg: Edge from TopoDS; index: Integer = 1) returns Face from TopoDS; - ---Purpose: Gives a modified shape - - SameParameterMode(me) returns Boolean; - ---C++: inline - ---Purpose: Gets same parameter mode. - - SetSameParameterMode(me: in mutable; SameParameterMode : Boolean); - ---C++: inline - ---Purpose: Sets same parameter mode. - - Tolerance(me) returns Real; - ---C++: inline - ---Purpose: Gives set tolerance. - - SetTolerance(me: mutable; theToler : Real); - ---C++: inline - ---Purpose: Sets tolerance - MinTolerance(me) returns Real; - ---C++: inline - ---Purpose: Gives set min tolerance. - - SetMinTolerance(me: mutable; theMinToler : Real); - ---C++: inline - ---Purpose: Sets min tolerance - - MaxTolerance(me) returns Real; - ---C++: inline - ---Purpose: Gives set max tolerance - - SetMaxTolerance(me:mutable; theMaxToler : Real); - ---C++: inline - ---Purpose: Sets max tolerance. - - FaceMode(me) returns Boolean; - ---C++: inline - ---Purpose: Returns mode for sewing faces By default - true. - - SetFaceMode(me: mutable; theFaceMode : Boolean); - ---C++: inline - ---Purpose: Sets mode for sewing faces By default - true. - - FloatingEdgesMode(me) returns Boolean; - ---C++: inline - ---Purpose: Returns mode for sewing floating edges By default - false. - - SetFloatingEdgesMode(me: mutable; theFloatingEdgesMode : Boolean); - ---C++: inline - ---Purpose: Sets mode for sewing floating edges By default - false. - --- CuttingFloatingEdgesMode(me) returns Boolean; - ---C++: inline - ---Purpose: Returns mode for cutting floating edges By default - false. - --- SetCuttingFloatingEdgesMode(me: mutable; theCuttingFloatingEdgesMode : Boolean); - ---C++: inline - ---Purpose: Sets mode for cutting floating edges By default - false. - - LocalTolerancesMode(me) returns Boolean; - ---C++: inline - ---Purpose: Returns mode for accounting of local tolerances - -- of edges and vertices during of merging. - - SetLocalTolerancesMode(me: mutable; theLocalTolerancesMode : Boolean); - ---C++: inline - ---Purpose: Sets mode for accounting of local tolerances - -- of edges and vertices during of merging - -- in this case WorkTolerance = myTolerance + tolEdge1+ tolEdg2; - - SetNonManifoldMode(me: mutable; theNonManifoldMode : Boolean); - ---C++: inline - ---Purpose: Sets mode for non-manifold sewing. - - NonManifoldMode(me) returns Boolean; - ---C++: inline - ---Purpose: Gets mode for non-manifold sewing. - ------------------------- - --- INTERNAL FUCTIONS --- - ------------------------- - - Cutting(me : mutable; - thePI : ProgressIndicator from Message = 0) is protected; - ---Purpose: Performs cutting of sections - -- thePI - progress indicator of processing - - Merging(me : mutable; passage : Boolean; - thePI : ProgressIndicator from Message = 0) is protected; - - IsMergedClosed(me; - Edge1 : Edge from TopoDS; - Edge2 : Edge from TopoDS; - fase : Face from TopoDS) - returns Boolean is protected; - - FindCandidates(me : mutable; - seqSections : in out SequenceOfShape from TopTools; - mapReference : in out IndexedMapOfInteger from TColStd; - seqCandidates : in out SequenceOfInteger from TColStd; - seqOrientations : in out SequenceOfInteger from TColStd) - returns Boolean is protected; - - AnalysisNearestEdges(me : mutable; - sequenceSec : SequenceOfShape from TopTools; - seqIndCandidate : in out SequenceOfInteger from TColStd; - seqOrientations : in out SequenceOfInteger from TColStd; - evalDist : Boolean = Standard_True) is protected; - - ---Purpose: - - MergedNearestEdges(me : mutable; - edge : Shape from TopoDS; - SeqMergedEdge : in out SequenceOfShape from TopTools; - SeqMergedOri : in out SequenceOfInteger from TColStd) - returns Boolean is protected; - ---Purpose: Merged nearest edges. - - EdgeProcessing(me : mutable; - thePI : ProgressIndicator from Message = 0) is protected; - - CreateOutputInformations(me : mutable) is protected; - - --------------------------------- - --- VIRTUAL INTERNAL FUCTIONS --- - --------------------------------- - - IsUClosedSurface(me; surf : Surface from Geom; theEdge : Shape from TopoDS; - theloc : Location from TopLoc) - returns Boolean is virtual protected; - ---Purpose: Defines if surface is U closed. - - IsVClosedSurface(me; surf : Surface from Geom; theEdge : Shape from TopoDS; - theloc : Location from TopLoc) - returns Boolean is virtual protected; - ---Purpose:Defines if surface is V closed. - - FaceAnalysis(me : mutable; - thePI : ProgressIndicator from Message = 0) is virtual protected; - ---Purpose: - -- This method is called from Perform only - -- thePI - progress indicator of processing - - FindFreeBoundaries(me : mutable) is virtual protected; - ---Purpose: - -- This method is called from Perform only - - VerticesAssembling(me : mutable; - thePI : ProgressIndicator from Message = 0) is virtual protected; - ---Purpose: - -- This method is called from Perform only - -- thePI - progress indicator of processing - - CreateSewedShape(me : mutable) is virtual protected; - ---Purpose: - -- This method is called from Perform only - - GetFreeWires(me : mutable; - MapFreeEdges : in out MapOfShape from TopTools; - seqWires : in out SequenceOfShape from TopTools) is virtual protected; - ---Purpose: Get wire from free edges. - -- This method is called from EdgeProcessing only - - EvaluateAngulars(me; - sequenceSec : in out SequenceOfShape from TopTools; - secForward : in out Array1OfBoolean from TColStd; - tabAng : in out Array1OfReal from TColStd; - indRef : in Integer) is virtual protected; - ---Purpose: - -- This method is called from MergingOfSections only - - EvaluateDistances(me; - sequenceSec : in out SequenceOfShape from TopTools; - secForward : in out Array1OfBoolean from TColStd; - tabAng : in out Array1OfReal from TColStd; - arrLen : in out Array1OfReal from TColStd; - tabMinDist : in out Array1OfReal from TColStd; - indRef : in Integer) is virtual protected; - ---Purpose: - -- This method is called from MergingOfSections only - - SameRange(me; - CurvePtr : Curve from Geom2d; - FirstOnCurve : Real from Standard; - LastOnCurve : Real from Standard; - RequestedFirst : Real from Standard; - RequestedLast : Real from Standard) - returns Curve from Geom2d is virtual protected; - ---Purpose: - -- This method is called from SameParameterEdge only - - SameParameter(me; edge : Edge from TopoDS) is virtual protected; - ---Purpose: - -- This method is called from SameParameterEdge only - - SameParameterEdge(me : mutable; - edge : Shape from TopoDS; - seqEdges : SequenceOfShape from TopTools; - seqForward : SequenceOfInteger from TColStd; - mapMerged : in out MapOfShape from TopTools; - locReShape : ReShape from BRepTools) - returns Edge from TopoDS is virtual protected; - ---Purpose: - -- This method is called from Merging only - - SameParameterEdge(me : mutable; - edge1 : Edge from TopoDS; - edge2 : Edge from TopoDS; - listFaces1 : ListOfShape from TopTools; - listFaces2 : ListOfShape from TopTools; - secForward : Boolean ; - whichSec : in out Integer; - firstCall : Boolean = Standard_True) - returns Edge from TopoDS is virtual protected; - ---Purpose: - -- This method is called from Merging only - - ProjectPointsOnCurve(me; - arrPnt : Array1OfPnt from TColgp; - Crv : Curve from Geom; - first : Real from Standard; - last : Real from Standard; - arrDist : in out Array1OfReal from TColStd; - arrPara : in out Array1OfReal from TColStd; - arrProj : in out Array1OfPnt from TColgp; - isConsiderEnds : in Boolean from Standard) is protected; - ---Purpose: Projects points on curve - -- This method is called from Cutting only - - CreateCuttingNodes(me : mutable; - MapVert : IndexedMapOfShape from TopTools; - bound : Shape from TopoDS; - vfirst : Shape from TopoDS; - vlast : Shape from TopoDS; - arrDist : Array1OfReal from TColStd; - arrPara : Array1OfReal from TColStd; - arrPnt : Array1OfPnt from TColgp; - seqNode : in out SequenceOfShape from TopTools; - seqPara : in out SequenceOfReal from TColStd) is virtual protected; - ---Purpose: Creates cutting vertices on projections - -- This method is called from Cutting only - - CreateSections(me : mutable; - bound : Shape from TopoDS; - seqNode : SequenceOfShape from TopTools; - seqPara : SequenceOfReal from TColStd; - listEdge : in out ListOfShape from TopTools) is virtual protected; - ---Purpose: Performs cutting of bound - -- This method is called from Cutting only - - SameParameterShape(me : mutable) is virtual protected; - ---Purpose: Makes all edges from shape same parameter - -- if SameParameterMode is equal to Standard_True - -- This method is called from Perform only - -fields - - -- Input data - myTolerance : Real is protected; - mySewing : Boolean is protected; - myAnalysis : Boolean is protected; - myCutting : Boolean is protected; - -- Indicates if the cutting will be done or not. - -- Default value is true. - myNonmanifold : Boolean is protected; - myFaceMode : Boolean; -- Mode for sewing faces by default true - myFloatingEdgesMode : Boolean; -- Mode for sewing floating edges by default - false --- myCuttingFloatingEdgesMode : Boolean; -- Mode for cutting of floating edges by default - false - mySameParameterMode : Boolean; - myLocalToleranceMode : Boolean; - - myOldShapes : IndexedDataMapOfShapeShape from TopTools is protected; - -- input shape -> input shape after analysis - mySewedShape : Shape from TopoDS is protected; - -- contains the sewed shape - myDegenerated : IndexedMapOfShape from TopTools is protected; - -- contains all degenerated shapes - myFreeEdges : IndexedMapOfShape from TopTools is protected; - -- contains all free edges - -- (edge shared by only one face) - myMultipleEdges : IndexedMapOfShape from TopTools is protected; - -- contains all multiple edges - -- (edge shared by more than two faces) - myContigousEdges : IndexedDataMapOfShapeListOfShape from TopTools is protected; - -- contains all contigous edges - -- (edge shared by two faces) and a list of sections - -- (two edges) which constitute each contigous edge - myContigSecBound : DataMapOfShapeShape is protected; - -- for each section belong to a contigous edge - -- indicates its the original free boundary - - -- Work data - -- OldShape : input shapes - -- Shape : input shapes after analysis - -- Bound : free boundaries - -- Section : free boundaries after cutting - -- Edge : connected sections become edge - -- - Free edge : edge shared by one face - -- - Contigous edge : edge shared by two faces - -- - Multiple edge : edge shared by more than two faces - -- Vertex : vertices on free boundaries - -- Node : assembled vertices become node - - myNbShapes : Integer is protected; -- number of input shapes after analysis - myNbVertices : Integer is protected; -- number of nodes after assembling - myNbEdges : Integer is protected; -- number of edges after merging - - myBoundFaces : IndexedDataMapOfShapeListOfShape from TopTools is protected; - -- for EACH bound contains a list of faces (REFERENCE map) - myBoundSections : DataMapOfShapeListOfShape from TopTools is protected; - -- for bound contains a list of cutting sections if any - --mySectionEdge : DataMapOfShapeShape from TopTools is protected; - -- for section contains a merged edge for this section - mySectionBound : DataMapOfShapeShape from TopTools is protected; - -- for EACH section contains its bound - myVertexNode : IndexedDataMapOfShapeShape from TopTools is protected; - -- for EACH original vertex contains a node - myVertexNodeFree : IndexedDataMapOfShapeShape from TopTools is protected; - -- for EACH floating vertex contains a node - myNodeSections : DataMapOfShapeListOfShape from TopTools is protected; - -- for EACH node contains a list of sections - myCuttingNode : DataMapOfShapeListOfShape from TopTools is protected; - -- nodes cutting edges - myLittleFace : IndexedMapOfShape from TopTools is protected; - -- Faces to be suppress because they are too little - myMinTolerance : Real; - - myMaxTolerance : Real; - - myShape : Shape from TopoDS is protected; - - myReShape : ReShape from BRepTools is protected; - myMergedEdges : MapOfShape from TopTools; -end Sewing; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cxx index 44d83f7815..4a8407c712 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_Sewing.cxx @@ -41,7 +41,6 @@ #define TEST 1 -#include #include #include @@ -49,9 +48,18 @@ #include #include #include +#include +#include #include +#include +#include +#include +#include +#include #include +#include #include +#include #include #include #include @@ -68,25 +76,34 @@ #include #include #include +#include +#include #include #include #include #include #include #include -//#include +#include +#include +#include #include #include #include +#include +#include +#include #include #include #include #include +#include #include #include #include #include #include +#include #include #include #include @@ -94,12 +111,14 @@ #include #include #include +#include #include +#include #include #include +#include #include #include -#include #include #include #include @@ -110,26 +129,12 @@ #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +//#include //======================================================================= //function : SameRange //purpose : //======================================================================= - Handle(Geom2d_Curve) BRepBuilderAPI_Sewing::SameRange(const Handle(Geom2d_Curve)& CurvePtr, const Standard_Real FirstOnCurve, const Standard_Real LastOnCurve, diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_Sewing.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_Sewing.hxx new file mode 100644 index 0000000000..c330dcf3f7 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_Sewing.hxx @@ -0,0 +1,382 @@ +// Created on: 1995-03-23 +// 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_Sewing_HeaderFile +#define _BRepBuilderAPI_Sewing_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class BRepTools_ReShape; +class Standard_OutOfRange; +class Standard_NoSuchObject; +class TopoDS_Shape; +class Message_ProgressIndicator; +class TopoDS_Edge; +class TopoDS_Face; +class Geom_Surface; +class TopLoc_Location; +class Geom2d_Curve; +class Geom_Curve; + + +class BRepBuilderAPI_Sewing; +DEFINE_STANDARD_HANDLE(BRepBuilderAPI_Sewing, MMgt_TShared) + +//! Provides methods to +//! +//! - identify possible contigous boundaries (for control +//! afterwards (of continuity: C0, C1, ...)) +//! +//! - assemble contigous shapes into one shape. +//! Only manifold shapes will be found. Sewing will not +//! be done in case of multiple edges. +//! +//! For sewing, use this function as following: +//! - create an empty object +//! - default tolerance 1.E-06 +//! - with face analysis on +//! - with sewing operation on +//! - set the cutting option as you need (default True) +//! - define a tolerance +//! - add shapes to be sewed -> Add +//! - compute -> Perfom +//! - output the resulted shapes +//! - output free edges if necessary +//! - output multiple edges if necessary +//! - output the problems if any +class BRepBuilderAPI_Sewing : public MMgt_TShared +{ + +public: + + + //! Creates an object with + //! tolerance of connexity + //! option for sewing (if false only control) + //! option for analysis of degenerated shapes + //! option for cutting of free edges. + //! option for non manifold processing + Standard_EXPORT BRepBuilderAPI_Sewing(const Standard_Real tolerance = 1.0e-06, const Standard_Boolean option1 = Standard_True, const Standard_Boolean option2 = Standard_True, const Standard_Boolean option3 = Standard_True, const Standard_Boolean option4 = Standard_False); + + //! initialize the parameters if necessary + Standard_EXPORT void Init (const Standard_Real tolerance = 1.0e-06, const Standard_Boolean option1 = Standard_True, const Standard_Boolean option2 = Standard_True, const Standard_Boolean option3 = Standard_True, const Standard_Boolean option4 = Standard_False); + + //! Loades the context shape. + Standard_EXPORT void Load (const TopoDS_Shape& shape); + + //! Defines the shapes to be sewed or controlled + Standard_EXPORT void Add (const TopoDS_Shape& shape); + + //! Computing + //! thePI - progress indicator of algorithm + Standard_EXPORT void Perform (const Handle(Message_ProgressIndicator)& thePI = 0); + + //! Gives the sewed shape + //! a null shape if nothing constructed + //! may be a face, a shell, a solid or a compound + Standard_EXPORT const TopoDS_Shape& SewedShape() const; + + //! set context + Standard_EXPORT void SetContext (const Handle(BRepTools_ReShape)& theContext); + + //! return context + Standard_EXPORT const Handle(BRepTools_ReShape)& GetContext() const; + + //! Gives the number of free edges (edge shared by one face) + Standard_EXPORT Standard_Integer NbFreeEdges() const; + + //! Gives each free edge + Standard_EXPORT const TopoDS_Edge& FreeEdge (const Standard_Integer index) const; + + //! Gives the number of multiple edges + //! (edge shared by more than two faces) + Standard_EXPORT Standard_Integer NbMultipleEdges() const; + + //! Gives each multiple edge + Standard_EXPORT const TopoDS_Edge& MultipleEdge (const Standard_Integer index) const; + + //! Gives the number of contigous edges (edge shared by two faces) + Standard_EXPORT Standard_Integer NbContigousEdges() const; + + //! Gives each contigous edge + Standard_EXPORT const TopoDS_Edge& ContigousEdge (const Standard_Integer index) const; + + //! Gives the sections (edge) belonging to a contigous edge + Standard_EXPORT const TopTools_ListOfShape& ContigousEdgeCouple (const Standard_Integer index) const; + + //! Indicates if a section is bound (before use SectionToBoundary) + Standard_EXPORT Standard_Boolean IsSectionBound (const TopoDS_Edge& section) const; + + //! Gives the original edge (free boundary) which becomes the + //! the section. Remember that sections constitute common edges. + //! This imformation is important for control because with + //! original edge we can find the surface to which the section + //! is attached. + Standard_EXPORT const TopoDS_Edge& SectionToBoundary (const TopoDS_Edge& section) const; + + //! Gives the number of degenerated shapes + Standard_EXPORT Standard_Integer NbDegeneratedShapes() const; + + //! Gives each degenerated shape + Standard_EXPORT const TopoDS_Shape& DegeneratedShape (const Standard_Integer index) const; + + //! Indicates if a input shape is degenerated + Standard_EXPORT Standard_Boolean IsDegenerated (const TopoDS_Shape& shape) const; + + //! Indicates if a input shape has been modified + Standard_EXPORT Standard_Boolean IsModified (const TopoDS_Shape& shape) const; + + //! Gives a modifieded shape + Standard_EXPORT const TopoDS_Shape& Modified (const TopoDS_Shape& shape) const; + + //! Indicates if a input subshape has been modified + Standard_EXPORT Standard_Boolean IsModifiedSubShape (const TopoDS_Shape& shape) const; + + //! Gives a modifieded subshape + Standard_EXPORT TopoDS_Shape ModifiedSubShape (const TopoDS_Shape& shape) const; + + //! print the informations + Standard_EXPORT void Dump() const; + + //! Gives the number of deleted faces (faces smallest than tolerance) + Standard_EXPORT Standard_Integer NbDeletedFaces() const; + + //! Gives each deleted face + Standard_EXPORT const TopoDS_Face& DeletedFace (const Standard_Integer index) const; + + //! Gives a modified shape + Standard_EXPORT TopoDS_Face WhichFace (const TopoDS_Edge& theEdg, const Standard_Integer index = 1) const; + + //! Gets same parameter mode. + Standard_Boolean SameParameterMode() const; + + //! Sets same parameter mode. + void SetSameParameterMode (const Standard_Boolean SameParameterMode); + + //! Gives set tolerance. + Standard_Real Tolerance() const; + + //! Sets tolerance + void SetTolerance (const Standard_Real theToler); + + //! Gives set min tolerance. + Standard_Real MinTolerance() const; + + //! Sets min tolerance + void SetMinTolerance (const Standard_Real theMinToler); + + //! Gives set max tolerance + Standard_Real MaxTolerance() const; + + //! Sets max tolerance. + void SetMaxTolerance (const Standard_Real theMaxToler); + + //! Returns mode for sewing faces By default - true. + Standard_Boolean FaceMode() const; + + //! Sets mode for sewing faces By default - true. + void SetFaceMode (const Standard_Boolean theFaceMode); + + //! Returns mode for sewing floating edges By default - false. + Standard_Boolean FloatingEdgesMode() const; + + //! Sets mode for sewing floating edges By default - false. + //! Returns mode for cutting floating edges By default - false. + //! Sets mode for cutting floating edges By default - false. + void SetFloatingEdgesMode (const Standard_Boolean theFloatingEdgesMode); + + //! Returns mode for accounting of local tolerances + //! of edges and vertices during of merging. + Standard_Boolean LocalTolerancesMode() const; + + //! Sets mode for accounting of local tolerances + //! of edges and vertices during of merging + //! in this case WorkTolerance = myTolerance + tolEdge1+ tolEdg2; + void SetLocalTolerancesMode (const Standard_Boolean theLocalTolerancesMode); + + //! Sets mode for non-manifold sewing. + void SetNonManifoldMode (const Standard_Boolean theNonManifoldMode); + + //! Gets mode for non-manifold sewing. + //! + //! INTERNAL FUCTIONS --- + Standard_Boolean NonManifoldMode() const; + + + + + DEFINE_STANDARD_RTTI(BRepBuilderAPI_Sewing,MMgt_TShared) + +protected: + + + //! Performs cutting of sections + //! thePI - progress indicator of processing + Standard_EXPORT void Cutting (const Handle(Message_ProgressIndicator)& thePI = 0); + + Standard_EXPORT void Merging (const Standard_Boolean passage, const Handle(Message_ProgressIndicator)& thePI = 0); + + Standard_EXPORT Standard_Boolean IsMergedClosed (const TopoDS_Edge& Edge1, const TopoDS_Edge& Edge2, const TopoDS_Face& fase) const; + + Standard_EXPORT Standard_Boolean FindCandidates (TopTools_SequenceOfShape& seqSections, TColStd_IndexedMapOfInteger& mapReference, TColStd_SequenceOfInteger& seqCandidates, TColStd_SequenceOfInteger& seqOrientations); + + Standard_EXPORT void AnalysisNearestEdges (const TopTools_SequenceOfShape& sequenceSec, TColStd_SequenceOfInteger& seqIndCandidate, TColStd_SequenceOfInteger& seqOrientations, const Standard_Boolean evalDist = Standard_True); + + //! Merged nearest edges. + Standard_EXPORT Standard_Boolean MergedNearestEdges (const TopoDS_Shape& edge, TopTools_SequenceOfShape& SeqMergedEdge, TColStd_SequenceOfInteger& SeqMergedOri); + + Standard_EXPORT void EdgeProcessing (const Handle(Message_ProgressIndicator)& thePI = 0); + + Standard_EXPORT void CreateOutputInformations(); + + //! Defines if surface is U closed. + Standard_EXPORT virtual Standard_Boolean IsUClosedSurface (const Handle(Geom_Surface)& surf, const TopoDS_Shape& theEdge, const TopLoc_Location& theloc) const; + + //! Defines if surface is V closed. + Standard_EXPORT virtual Standard_Boolean IsVClosedSurface (const Handle(Geom_Surface)& surf, const TopoDS_Shape& theEdge, const TopLoc_Location& theloc) const; + + + //! This method is called from Perform only + //! thePI - progress indicator of processing + Standard_EXPORT virtual void FaceAnalysis (const Handle(Message_ProgressIndicator)& thePI = 0); + + + //! This method is called from Perform only + Standard_EXPORT virtual void FindFreeBoundaries(); + + + //! This method is called from Perform only + //! thePI - progress indicator of processing + Standard_EXPORT virtual void VerticesAssembling (const Handle(Message_ProgressIndicator)& thePI = 0); + + + //! This method is called from Perform only + Standard_EXPORT virtual void CreateSewedShape(); + + //! Get wire from free edges. + //! This method is called from EdgeProcessing only + Standard_EXPORT virtual void GetFreeWires (TopTools_MapOfShape& MapFreeEdges, TopTools_SequenceOfShape& seqWires); + + + //! This method is called from MergingOfSections only + Standard_EXPORT virtual void EvaluateAngulars (TopTools_SequenceOfShape& sequenceSec, TColStd_Array1OfBoolean& secForward, TColStd_Array1OfReal& tabAng, const Standard_Integer indRef) const; + + + //! This method is called from MergingOfSections only + Standard_EXPORT virtual void EvaluateDistances (TopTools_SequenceOfShape& sequenceSec, TColStd_Array1OfBoolean& secForward, TColStd_Array1OfReal& tabAng, TColStd_Array1OfReal& arrLen, TColStd_Array1OfReal& tabMinDist, const Standard_Integer indRef) const; + + + //! This method is called from SameParameterEdge only + Standard_EXPORT virtual Handle(Geom2d_Curve) SameRange (const Handle(Geom2d_Curve)& CurvePtr, const Standard_Real FirstOnCurve, const Standard_Real LastOnCurve, const Standard_Real RequestedFirst, const Standard_Real RequestedLast) const; + + + //! This method is called from SameParameterEdge only + Standard_EXPORT virtual void SameParameter (const TopoDS_Edge& edge) const; + + + //! This method is called from Merging only + Standard_EXPORT virtual TopoDS_Edge SameParameterEdge (const TopoDS_Shape& edge, const TopTools_SequenceOfShape& seqEdges, const TColStd_SequenceOfInteger& seqForward, TopTools_MapOfShape& mapMerged, const Handle(BRepTools_ReShape)& locReShape); + + + //! This method is called from Merging only + Standard_EXPORT virtual TopoDS_Edge SameParameterEdge (const TopoDS_Edge& edge1, const TopoDS_Edge& edge2, const TopTools_ListOfShape& listFaces1, const TopTools_ListOfShape& listFaces2, const Standard_Boolean secForward, Standard_Integer& whichSec, const Standard_Boolean firstCall = Standard_True); + + //! Projects points on curve + //! This method is called from Cutting only + Standard_EXPORT void ProjectPointsOnCurve (const TColgp_Array1OfPnt& arrPnt, const Handle(Geom_Curve)& Crv, const Standard_Real first, const Standard_Real last, TColStd_Array1OfReal& arrDist, TColStd_Array1OfReal& arrPara, TColgp_Array1OfPnt& arrProj, const Standard_Boolean isConsiderEnds) const; + + //! Creates cutting vertices on projections + //! This method is called from Cutting only + Standard_EXPORT virtual void CreateCuttingNodes (const TopTools_IndexedMapOfShape& MapVert, const TopoDS_Shape& bound, const TopoDS_Shape& vfirst, const TopoDS_Shape& vlast, const TColStd_Array1OfReal& arrDist, const TColStd_Array1OfReal& arrPara, const TColgp_Array1OfPnt& arrPnt, TopTools_SequenceOfShape& seqNode, TColStd_SequenceOfReal& seqPara); + + //! Performs cutting of bound + //! This method is called from Cutting only + Standard_EXPORT virtual void CreateSections (const TopoDS_Shape& bound, const TopTools_SequenceOfShape& seqNode, const TColStd_SequenceOfReal& seqPara, TopTools_ListOfShape& listEdge); + + //! Makes all edges from shape same parameter + //! if SameParameterMode is equal to Standard_True + //! This method is called from Perform only + Standard_EXPORT virtual void SameParameterShape(); + + Standard_Real myTolerance; + Standard_Boolean mySewing; + Standard_Boolean myAnalysis; + Standard_Boolean myCutting; + Standard_Boolean myNonmanifold; + TopTools_IndexedDataMapOfShapeShape myOldShapes; + TopoDS_Shape mySewedShape; + TopTools_IndexedMapOfShape myDegenerated; + TopTools_IndexedMapOfShape myFreeEdges; + TopTools_IndexedMapOfShape myMultipleEdges; + TopTools_IndexedDataMapOfShapeListOfShape myContigousEdges; + TopTools_DataMapOfShapeShape myContigSecBound; + Standard_Integer myNbShapes; + Standard_Integer myNbVertices; + Standard_Integer myNbEdges; + TopTools_IndexedDataMapOfShapeListOfShape myBoundFaces; + TopTools_DataMapOfShapeListOfShape myBoundSections; + TopTools_DataMapOfShapeShape mySectionBound; + TopTools_IndexedDataMapOfShapeShape myVertexNode; + TopTools_IndexedDataMapOfShapeShape myVertexNodeFree; + TopTools_DataMapOfShapeListOfShape myNodeSections; + TopTools_DataMapOfShapeListOfShape myCuttingNode; + TopTools_IndexedMapOfShape myLittleFace; + TopoDS_Shape myShape; + Handle(BRepTools_ReShape) myReShape; + + +private: + + + Standard_Boolean myFaceMode; + Standard_Boolean myFloatingEdgesMode; + Standard_Boolean mySameParameterMode; + Standard_Boolean myLocalToleranceMode; + Standard_Real myMinTolerance; + Standard_Real myMaxTolerance; + TopTools_MapOfShape myMergedEdges; + + +}; + + +#include + + + + + +#endif // _BRepBuilderAPI_Sewing_HeaderFile diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_ShapeModification.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_ShapeModification.hxx new file mode 100644 index 0000000000..9b91488a37 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_ShapeModification.hxx @@ -0,0 +1,37 @@ +// 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_ShapeModification_HeaderFile +#define _BRepBuilderAPI_ShapeModification_HeaderFile + +//! Lists the possible types of modification to a shape +//! following a topological operation: Preserved, Deleted, +//! Trimmed, Merged or BoundaryModified. +//! This enumeration enables you to assign a "state" to the +//! different shapes that are on the list of operands for +//! each API function. The MakeShape class then uses this +//! to determine what has happened to the shapes which +//! constitute the list of operands. +enum BRepBuilderAPI_ShapeModification +{ +BRepBuilderAPI_Preserved, +BRepBuilderAPI_Deleted, +BRepBuilderAPI_Trimmed, +BRepBuilderAPI_Merged, +BRepBuilderAPI_BoundaryModified +}; + +#endif // _BRepBuilderAPI_ShapeModification_HeaderFile diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_ShellError.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_ShellError.hxx new file mode 100644 index 0000000000..b2770e0e14 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_ShellError.hxx @@ -0,0 +1,37 @@ +// 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_ShellError_HeaderFile +#define _BRepBuilderAPI_ShellError_HeaderFile + +//! Indicates the outcome of the construction of a face, i.e. +//! whether it is successful or not, as explained below: +//! - BRepBuilderAPI_ShellDone No error occurred. +//! The shell is correctly built. +//! - BRepBuilderAPI_EmptyShell No initialization of +//! the algorithm: only an empty constructor was used. +//! - BRepBuilderAPI_DisconnectedShell not yet used +//! - BRepBuilderAPI_ShellParametersOutOfRange +//! The parameters given to limit the surface are out of its bounds. +enum BRepBuilderAPI_ShellError +{ +BRepBuilderAPI_ShellDone, +BRepBuilderAPI_EmptyShell, +BRepBuilderAPI_DisconnectedShell, +BRepBuilderAPI_ShellParametersOutOfRange +}; + +#endif // _BRepBuilderAPI_ShellError_HeaderFile diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_Transform.cdl b/src/BRepBuilderAPI/BRepBuilderAPI_Transform.cdl deleted file mode 100644 index 09e953245e..0000000000 --- a/src/BRepBuilderAPI/BRepBuilderAPI_Transform.cdl +++ /dev/null @@ -1,105 +0,0 @@ --- 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. - -class Transform from BRepBuilderAPI inherits ModifyShape from BRepBuilderAPI - - ---Purpose: 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. - -uses - Trsf from gp, - Location from TopLoc, - Shape from TopoDS, - Face from TopoDS, - ShapeModification from BRepBuilderAPI, - ListOfShape from TopTools - -raises - NoSuchObject from Standard -is - - Create(T: Trsf from gp) - - returns Transform from BRepBuilderAPI; - ---Purpose: Constructs a framework for applying the geometric - -- transformation T to a shape. Use the function Perform - -- to define the shape to transform. - - - Create(S: Shape from TopoDS; T: Trsf from gp; - Copy: Boolean from Standard = Standard_False) - - returns Transform from BRepBuilderAPI; - ---Purpose: 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 . - - - Perform(me: in out; S : Shape from TopoDS; - Copy: Boolean from Standard = Standard_False) - - ---Purpose: pplies 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 Copy 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 S. - -- 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. - - is static; - - ModifiedShape(me; S: Shape from TopoDS) - returns Shape from TopoDS - ---Purpose: Returns the modified shape corresponding to . - raises NoSuchObject from Standard - -- if S is not the initial shape or a sub-shape - -- of the initial shape. - is redefined virtual; - - Modified (me: in out; S : Shape from TopoDS) - ---Purpose: Returns the list of shapes modified from the shape - -- . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is redefined virtual; - - -fields - - myTrsf : Trsf from gp; - myLocation : Location from TopLoc; - myUseModif : Boolean from Standard; - -end Transform; diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_Transform.cxx b/src/BRepBuilderAPI/BRepBuilderAPI_Transform.cxx index be66456add..8c722fe550 100644 --- a/src/BRepBuilderAPI/BRepBuilderAPI_Transform.cxx +++ b/src/BRepBuilderAPI/BRepBuilderAPI_Transform.cxx @@ -14,17 +14,18 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include #include #include - +#include +#include +#include //======================================================================= //function : BRepBuilderAPI_Transform //purpose : //======================================================================= - BRepBuilderAPI_Transform::BRepBuilderAPI_Transform (const gp_Trsf& T) : myTrsf(T) { diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_Transform.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_Transform.hxx new file mode 100644 index 0000000000..17bb673553 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_Transform.hxx @@ -0,0 +1,113 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +class Standard_NoSuchObject; +class gp_Trsf; +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 . + Standard_EXPORT BRepBuilderAPI_Transform(const TopoDS_Shape& S, const gp_Trsf& T, const Standard_Boolean Copy = Standard_False); + + //! pplies 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 Copy 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 S. + //! 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& S, const Standard_Boolean Copy = 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/src/BRepBuilderAPI/BRepBuilderAPI_TransitionMode.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_TransitionMode.hxx new file mode 100644 index 0000000000..44807709f9 --- /dev/null +++ b/src/BRepBuilderAPI/BRepBuilderAPI_TransitionMode.hxx @@ -0,0 +1,28 @@ +// 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_TransitionMode_HeaderFile +#define _BRepBuilderAPI_TransitionMode_HeaderFile + +//! Option to manage discontinuities in Sweep +enum BRepBuilderAPI_TransitionMode +{ +BRepBuilderAPI_Transformed, +BRepBuilderAPI_RightCorner, +BRepBuilderAPI_RoundCorner +}; + +#endif // _BRepBuilderAPI_TransitionMode_HeaderFile diff --git a/src/BRepBuilderAPI/BRepBuilderAPI_WireError.hxx b/src/BRepBuilderAPI/BRepBuilderAPI_WireError.hxx new file mode 100644 index 0000000000..c1eb823667 --- /dev/null +++ b/src/BRepBuilderAPI/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/src/BRepBuilderAPI/FILES b/src/BRepBuilderAPI/FILES index 912105931c..4cd5112637 100644 --- a/src/BRepBuilderAPI/FILES +++ b/src/BRepBuilderAPI/FILES @@ -1,5 +1,51 @@ -BRepBuilderAPI_VertexInspector.hxx -BRepBuilderAPI_CellFilter.hxx +BRepBuilderAPI.cxx +BRepBuilderAPI.hxx BRepBuilderAPI_BndBoxTreeSelector.hxx -BRepBuilderAPI_FastSewing.hxx +BRepBuilderAPI_CellFilter.hxx +BRepBuilderAPI_Collect.cxx +BRepBuilderAPI_Collect.hxx +BRepBuilderAPI_Command.cxx +BRepBuilderAPI_Command.hxx +BRepBuilderAPI_Copy.cxx +BRepBuilderAPI_Copy.hxx +BRepBuilderAPI_EdgeError.hxx +BRepBuilderAPI_FaceError.hxx BRepBuilderAPI_FastSewing.cxx +BRepBuilderAPI_FastSewing.hxx +BRepBuilderAPI_FindPlane.cxx +BRepBuilderAPI_FindPlane.hxx +BRepBuilderAPI_GTransform.cxx +BRepBuilderAPI_GTransform.hxx +BRepBuilderAPI_MakeEdge.cxx +BRepBuilderAPI_MakeEdge.hxx +BRepBuilderAPI_MakeEdge2d.cxx +BRepBuilderAPI_MakeEdge2d.hxx +BRepBuilderAPI_MakeFace.cxx +BRepBuilderAPI_MakeFace.hxx +BRepBuilderAPI_MakePolygon.cxx +BRepBuilderAPI_MakePolygon.hxx +BRepBuilderAPI_MakeShape.cxx +BRepBuilderAPI_MakeShape.hxx +BRepBuilderAPI_MakeShell.cxx +BRepBuilderAPI_MakeShell.hxx +BRepBuilderAPI_MakeSolid.cxx +BRepBuilderAPI_MakeSolid.hxx +BRepBuilderAPI_MakeVertex.cxx +BRepBuilderAPI_MakeVertex.hxx +BRepBuilderAPI_MakeWire.cxx +BRepBuilderAPI_MakeWire.hxx +BRepBuilderAPI_ModifyShape.cxx +BRepBuilderAPI_ModifyShape.hxx +BRepBuilderAPI_NurbsConvert.cxx +BRepBuilderAPI_NurbsConvert.hxx +BRepBuilderAPI_PipeError.hxx +BRepBuilderAPI_Sewing.cxx +BRepBuilderAPI_Sewing.hxx +BRepBuilderAPI_Sewing.lxx +BRepBuilderAPI_ShapeModification.hxx +BRepBuilderAPI_ShellError.hxx +BRepBuilderAPI_Transform.cxx +BRepBuilderAPI_Transform.hxx +BRepBuilderAPI_TransitionMode.hxx +BRepBuilderAPI_VertexInspector.hxx +BRepBuilderAPI_WireError.hxx diff --git a/src/BRepCheck/BRepCheck.cdl b/src/BRepCheck/BRepCheck.cdl deleted file mode 100644 index d1c79d78bf..0000000000 --- a/src/BRepCheck/BRepCheck.cdl +++ /dev/null @@ -1,148 +0,0 @@ --- 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. - -package BRepCheck - - ---Purpose: This package provides tools to check the validity - -- of the BRep. - -uses MMgt, - StdFail, - TCollection, - TopAbs, - Adaptor3d, - TopoDS, - BRep, - TopTools - -is - - deferred class Result; -- inherits TShared from MMgt - - class Vertex; -- inherits Shape - - class Edge; -- inherits Shape - - class Wire; -- inherits Shape - - class Face; -- inherits Shape - - class Shell; -- inherits Shape - - class Solid; - - class Analyzer; - - - enumeration Status is - NoError, - - -- for vertices - InvalidPointOnCurve, - InvalidPointOnCurveOnSurface, - InvalidPointOnSurface, - - -- for edges - No3DCurve, - Multiple3DCurve, - Invalid3DCurve, - NoCurveOnSurface, - InvalidCurveOnSurface, - InvalidCurveOnClosedSurface, - InvalidSameRangeFlag, - InvalidSameParameterFlag, - InvalidDegeneratedFlag, - - FreeEdge, - InvalidMultiConnexity, - InvalidRange, - - - -- for wires - EmptyWire, - RedundantEdge, - SelfIntersectingWire, -- on a face - - -- for faces - NoSurface, - InvalidWire, - RedundantWire, - IntersectingWires, - InvalidImbricationOfWires, - - -- for shells - EmptyShell, - RedundantFace, - - -- for solids - InvalidImbricationOfShells, - - -- for shapes - UnorientableShape, - NotClosed, - NotConnected, - - SubshapeNotInShape, - - BadOrientation, - BadOrientationOfSubshape, - - InvalidPolygonOnTriangulation, - - InvalidToleranceValue, - - EnclosedRegion, - - -- for exception - CheckFail - - - end Status; - - - imported ListOfStatus; - - - imported ListIteratorOfListOfStatus; - - imported DataMapOfShapeListOfStatus; - - imported DataMapIteratorOfDataMapOfShapeListOfStatus; - - - imported DataMapOfShapeResult; - - - imported DataMapIteratorOfDataMapOfShapeResult; - - - -- Package method - - Add(List: in out ListOfStatus from BRepCheck; - Stat: Status from BRepCheck); - - - - Print(Stat: Status from BRepCheck; - OS: in out OStream from Standard); - - SelfIntersection(W : Wire from TopoDS; - F : Face from TopoDS; - E1 : out Edge from TopoDS; - E2 : out Edge from TopoDS) - returns Boolean from Standard; - -end BRepCheck; diff --git a/src/BRepCheck/BRepCheck.cxx b/src/BRepCheck/BRepCheck.cxx index 003f64e34c..f5cb45ec19 100644 --- a/src/BRepCheck/BRepCheck.cxx +++ b/src/BRepCheck/BRepCheck.cxx @@ -14,16 +14,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include #include #include - -#include - -#include #include - +#include +#include +#include +#include //======================================================================= //function : Add diff --git a/src/BRepCheck/BRepCheck.hxx b/src/BRepCheck/BRepCheck.hxx new file mode 100644 index 0000000000..7d3419fb99 --- /dev/null +++ b/src/BRepCheck/BRepCheck.hxx @@ -0,0 +1,87 @@ +// 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_HeaderFile +#define _BRepCheck_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class TopoDS_Wire; +class TopoDS_Face; +class TopoDS_Edge; +class BRepCheck_Result; +class BRepCheck_Vertex; +class BRepCheck_Edge; +class BRepCheck_Wire; +class BRepCheck_Face; +class BRepCheck_Shell; +class BRepCheck_Solid; +class BRepCheck_Analyzer; + + +//! This package provides tools to check the validity +//! of the BRep. +class BRepCheck +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT static void Add (BRepCheck_ListOfStatus& List, const BRepCheck_Status Stat); + + Standard_EXPORT static void Print (const BRepCheck_Status Stat, Standard_OStream& OS); + + Standard_EXPORT static Standard_Boolean SelfIntersection (const TopoDS_Wire& W, const TopoDS_Face& F, TopoDS_Edge& E1, TopoDS_Edge& E2); + + + + +protected: + + + + + +private: + + + + +friend class BRepCheck_Result; +friend class BRepCheck_Vertex; +friend class BRepCheck_Edge; +friend class BRepCheck_Wire; +friend class BRepCheck_Face; +friend class BRepCheck_Shell; +friend class BRepCheck_Solid; +friend class BRepCheck_Analyzer; + +}; + + + + + + + +#endif // _BRepCheck_HeaderFile diff --git a/src/BRepCheck/BRepCheck_Analyzer.cdl b/src/BRepCheck/BRepCheck_Analyzer.cdl deleted file mode 100644 index 6f6ee8c598..0000000000 --- a/src/BRepCheck/BRepCheck_Analyzer.cdl +++ /dev/null @@ -1,174 +0,0 @@ --- Created on: 1995-12-08 --- 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. - -class Analyzer from BRepCheck - - ---Purpose: A framework to check the overall - -- validity of a shape. For a shape to be valid in Open - -- CASCADE, it - or its component subshapes - must respect certain - -- criteria. These criteria are checked by the function IsValid. - -- Once you have determined whether a shape is valid or not, you can - -- diagnose its specific anomalies and correct them using the services of - -- the ShapeAnalysis, ShapeUpgrade, and ShapeFix packages. - -uses Shape from TopoDS, - ShapeEnum from TopAbs, - Result from BRepCheck, - DataMapOfShapeResult from BRepCheck - -raises NullObject from Standard, - NoSuchObject from Standard - -is - - Create(S: Shape from TopoDS; - GeomControls : Boolean from Standard = Standard_True) - ---Purpose: Constructs a shape validation object defined by the shape S. - -- is the shape to control. If - -- False only topological informaions are checked. - -- The geometricals controls are - -- For a Vertex : - -- BRepCheck_InvalidToleranceValue NYI - -- For an Edge : - -- BRepCheck_InvalidCurveOnClosedSurface, - -- BRepCheck_InvalidCurveOnSurface, - -- BRepCheck_InvalidSameParameterFlag, - -- BRepCheck_InvalidToleranceValue NYI - -- For a face : - -- BRepCheck_UnorientableShape, - -- BRepCheck_IntersectingWires, - -- BRepCheck_InvalidToleranceValue NYI - -- For a wire : - -- BRepCheck_SelfIntersectingWire - - ---C++: inline - returns Analyzer from BRepCheck - raises NullObject from Standard; - - - - Init(me: in out; S: Shape from TopoDS; - GeomControls : Boolean from Standard = Standard_True) - ---Purpose: is the shape to control. If - -- False only topological informaions are checked. - -- The geometricals controls are - -- For a Vertex : - -- BRepCheck_InvalidTolerance NYI - -- For an Edge : - -- BRepCheck_InvalidCurveOnClosedSurface, - -- BRepCheck_InvalidCurveOnSurface, - -- BRepCheck_InvalidSameParameterFlag, - -- BRepCheck_InvalidTolerance NYI - -- For a face : - -- BRepCheck_UnorientableShape, - -- BRepCheck_IntersectingWires, - -- BRepCheck_InvalidTolerance NYI - -- For a wire : - -- BRepCheck_SelfIntersectingWire - - raises NullObject from Standard - is static; - - - - IsValid(me; S: Shape from TopoDS) - ---Purpose: is a subshape of the original shape. Returns - -- if no default has been detected on - -- and any of its subshape. - returns Boolean from Standard - raises NoSuchObject from Standard - is static; - - - IsValid(me) - ---Purpose: Returns true if no defect is - -- detected on the shape S or any of its subshapes. - -- Returns true if the shape S is valid. - -- This function checks whether a given shape is valid by checking that: - -- - the topology is correct - -- - parameterization of edges in particular is correct. - -- For the topology to be correct, the following conditions must be satisfied: - -- - edges should have at least two vertices if they are not - -- degenerate edges. The vertices should be within the range of - -- the bounding edges at the tolerance specified in the vertex, - -- - edges should share at least one face. The representation of - -- the edges should be within the tolerance criterion assigned to them. - -- - wires defining a face should not self-intersect and should be closed, - -- - there should be one wire which contains all other wires inside a face, - -- - wires should be correctly oriented with respect to each of the edges, - -- - faces should be correctly oriented, in particular with - -- respect to adjacent faces if these faces define a solid, - -- - shells defining a solid should be closed. There should - -- be one enclosing shell if the shape is a solid; - -- To check parameterization of edge, there are 2 approaches depending on - -- the edge?s contextual situation. - -- - if the edge is either single, or it is in the context - -- of a wire or a compound, its parameterization is defined by - -- the parameterization of its 3D curve and is considered as valid. - -- - If the edge is in the context of a face, it should - -- have SameParameter and SameRange flags set to Standard_True. To - -- check these flags, you should call the function - -- BRep_Tool::SameParameter and BRep_Tool::SameRange for an - -- edge. If at least one of these flags is set to Standard_False, - -- the edge is considered as invalid without any additional check. - -- If the edge is contained by a face, and it has SameParameter and - -- SameRange flags set to Standard_True, IsValid checks - -- whether representation of the edge on face, in context of which the - -- edge is considered, has the same parameterization up to the - -- tolerance value coded on the edge. For a given parameter t on the edge - -- having C as a 3D curve and one PCurve P on a surface S (base - -- surface of the reference face), this checks that |C(t) - S(P(t))| - -- is less than or equal to tolerance, where tolerance is the tolerance - -- value coded on the edge. - ---C++: inline - returns Boolean from Standard - is static; - - - - Result(me; SubS: Shape from TopoDS) - - ---C++: return const& - ---C++: inline - returns any Result from BRepCheck - raises NoSuchObject from Standard - is static; - - - --- Private implementation method - - Put(me: in out; S: Shape from TopoDS; Gctrl: Boolean from Standard) - - is static private; - - - Perform(me: in out; S: Shape from TopoDS) - - is static private; - - - ValidSub(me; S: Shape from TopoDS; SubType: ShapeEnum from TopAbs) - - returns Boolean from Standard - is static private; - - -fields - - myShape : Shape from TopoDS; - myMap : DataMapOfShapeResult from BRepCheck; - -end Analyzer; diff --git a/src/BRepCheck/BRepCheck_Analyzer.cxx b/src/BRepCheck/BRepCheck_Analyzer.cxx index d34736f653..da733d9333 100644 --- a/src/BRepCheck/BRepCheck_Analyzer.cxx +++ b/src/BRepCheck/BRepCheck_Analyzer.cxx @@ -14,28 +14,26 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include #include -#include #include +#include +#include #include #include -#include - -#include +#include +#include +#include +#include +#include +#include #include - -#include #include #include - -#include -#include - - - +#include +#include +#include //======================================================================= //function : Init diff --git a/src/BRepCheck/BRepCheck_Analyzer.hxx b/src/BRepCheck/BRepCheck_Analyzer.hxx new file mode 100644 index 0000000000..bdf5b0ecd3 --- /dev/null +++ b/src/BRepCheck/BRepCheck_Analyzer.hxx @@ -0,0 +1,165 @@ +// Created on: 1995-12-08 +// 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_Analyzer_HeaderFile +#define _BRepCheck_Analyzer_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class Standard_NullObject; +class Standard_NoSuchObject; +class TopoDS_Shape; +class BRepCheck_Result; + + +//! A framework to check the overall +//! validity of a shape. For a shape to be valid in Open +//! CASCADE, it - or its component subshapes - must respect certain +//! criteria. These criteria are checked by the function IsValid. +//! Once you have determined whether a shape is valid or not, you can +//! diagnose its specific anomalies and correct them using the services of +//! the ShapeAnalysis, ShapeUpgrade, and ShapeFix packages. +class BRepCheck_Analyzer +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Constructs a shape validation object defined by the shape S. + //! is the shape to control. If + //! False only topological informaions are checked. + //! The geometricals controls are + //! For a Vertex : + //! BRepCheck_InvalidToleranceValue NYI + //! For an Edge : + //! BRepCheck_InvalidCurveOnClosedSurface, + //! BRepCheck_InvalidCurveOnSurface, + //! BRepCheck_InvalidSameParameterFlag, + //! BRepCheck_InvalidToleranceValue NYI + //! For a face : + //! BRepCheck_UnorientableShape, + //! BRepCheck_IntersectingWires, + //! BRepCheck_InvalidToleranceValue NYI + //! For a wire : + //! BRepCheck_SelfIntersectingWire + BRepCheck_Analyzer(const TopoDS_Shape& S, const Standard_Boolean GeomControls = Standard_True); + + //! is the shape to control. If + //! False only topological informaions are checked. + //! The geometricals controls are + //! For a Vertex : + //! BRepCheck_InvalidTolerance NYI + //! For an Edge : + //! BRepCheck_InvalidCurveOnClosedSurface, + //! BRepCheck_InvalidCurveOnSurface, + //! BRepCheck_InvalidSameParameterFlag, + //! BRepCheck_InvalidTolerance NYI + //! For a face : + //! BRepCheck_UnorientableShape, + //! BRepCheck_IntersectingWires, + //! BRepCheck_InvalidTolerance NYI + //! For a wire : + //! BRepCheck_SelfIntersectingWire + Standard_EXPORT void Init (const TopoDS_Shape& S, const Standard_Boolean GeomControls = Standard_True); + + //! is a subshape of the original shape. Returns + //! if no default has been detected on + //! and any of its subshape. + Standard_EXPORT Standard_Boolean IsValid (const TopoDS_Shape& S) const; + + //! Returns true if no defect is + //! detected on the shape S or any of its subshapes. + //! Returns true if the shape S is valid. + //! This function checks whether a given shape is valid by checking that: + //! - the topology is correct + //! - parameterization of edges in particular is correct. + //! For the topology to be correct, the following conditions must be satisfied: + //! - edges should have at least two vertices if they are not + //! degenerate edges. The vertices should be within the range of + //! the bounding edges at the tolerance specified in the vertex, + //! - edges should share at least one face. The representation of + //! the edges should be within the tolerance criterion assigned to them. + //! - wires defining a face should not self-intersect and should be closed, + //! - there should be one wire which contains all other wires inside a face, + //! - wires should be correctly oriented with respect to each of the edges, + //! - faces should be correctly oriented, in particular with + //! respect to adjacent faces if these faces define a solid, + //! - shells defining a solid should be closed. There should + //! be one enclosing shell if the shape is a solid; + //! To check parameterization of edge, there are 2 approaches depending on + //! the edge?s contextual situation. + //! - if the edge is either single, or it is in the context + //! of a wire or a compound, its parameterization is defined by + //! the parameterization of its 3D curve and is considered as valid. + //! - If the edge is in the context of a face, it should + //! have SameParameter and SameRange flags set to Standard_True. To + //! check these flags, you should call the function + //! BRep_Tool::SameParameter and BRep_Tool::SameRange for an + //! edge. If at least one of these flags is set to Standard_False, + //! the edge is considered as invalid without any additional check. + //! If the edge is contained by a face, and it has SameParameter and + //! SameRange flags set to Standard_True, IsValid checks + //! whether representation of the edge on face, in context of which the + //! edge is considered, has the same parameterization up to the + //! tolerance value coded on the edge. For a given parameter t on the edge + //! having C as a 3D curve and one PCurve P on a surface S (base + //! surface of the reference face), this checks that |C(t) - S(P(t))| + //! is less than or equal to tolerance, where tolerance is the tolerance + //! value coded on the edge. + Standard_Boolean IsValid() const; + + const Handle(BRepCheck_Result)& Result (const TopoDS_Shape& SubS) const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT void Put (const TopoDS_Shape& S, const Standard_Boolean Gctrl); + + Standard_EXPORT void Perform (const TopoDS_Shape& S); + + Standard_EXPORT Standard_Boolean ValidSub (const TopoDS_Shape& S, const TopAbs_ShapeEnum SubType) const; + + + TopoDS_Shape myShape; + BRepCheck_DataMapOfShapeResult myMap; + + +}; + + +#include + + + + + +#endif // _BRepCheck_Analyzer_HeaderFile diff --git a/src/BRepCheck/BRepCheck_Edge.cdl b/src/BRepCheck/BRepCheck_Edge.cdl deleted file mode 100644 index 93b0907f8c..0000000000 --- a/src/BRepCheck/BRepCheck_Edge.cdl +++ /dev/null @@ -1,77 +0,0 @@ --- Created on: 1995-12-11 --- 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. - -class Edge from BRepCheck inherits Result from BRepCheck - - ---Purpose: - -uses Shape from TopoDS, - Edge from TopoDS, - CurveRepresentation from BRep, - HCurve from Adaptor3d, - Status from BRepCheck - -is - - Create(E: Edge from TopoDS) - - returns Edge from BRepCheck; - - - InContext(me: mutable; ContextShape: Shape from TopoDS); - - - - Minimum(me: mutable); - - - - Blind(me: mutable); - - - GeometricControls(me) - - returns Boolean from Standard - is static; - - - GeometricControls(me: mutable; B: Boolean from Standard) - - is static; - - Tolerance(me: mutable) returns Real from Standard - - is static; - - SetStatus(me: mutable; - theStatus:Status from BRepCheck) - - --- Purpose: Sets status of Edge; - is static; - - CheckPolygonOnTriangulation(me: mutable; theEdge: Edge from TopoDS) - --- Purpose: Checks, if polygon on triangulation of heEdge - -- is out of 3D-curve of this edge. - returns Status from BRepCheck - is static; - -fields - - myCref : CurveRepresentation from BRep; - myHCurve : HCurve from Adaptor3d; - myGctrl : Boolean from Standard; - -end Edge; diff --git a/src/BRepCheck/BRepCheck_Edge.cxx b/src/BRepCheck/BRepCheck_Edge.cxx index aab134333a..937b10c187 100644 --- a/src/BRepCheck/BRepCheck_Edge.cxx +++ b/src/BRepCheck/BRepCheck_Edge.cxx @@ -14,58 +14,51 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include +#include +#include +#include #include - -#include -#include - -#include -#include - +#include #include -#include -#include #include -#include - +#include +#include #include - +#include +#include #include - -#include - -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include - +#include #include +#include +#include +#include +#include +#include #include #include #include -#include -#include - -#include #include -#include - -#include -#include -#include -#include -#include -#include - #include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //modified by NIZNHY-PKV Thu May 05 09:01:57 2011f static diff --git a/src/BRepCheck/BRepCheck_Edge.hxx b/src/BRepCheck/BRepCheck_Edge.hxx new file mode 100644 index 0000000000..2a4742ca6e --- /dev/null +++ b/src/BRepCheck/BRepCheck_Edge.hxx @@ -0,0 +1,90 @@ +// Created on: 1995-12-11 +// 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_Edge_HeaderFile +#define _BRepCheck_Edge_HeaderFile + +#include +#include + +#include +#include +#include +#include +class BRep_CurveRepresentation; +class Adaptor3d_HCurve; +class TopoDS_Edge; +class TopoDS_Shape; + + +class BRepCheck_Edge; +DEFINE_STANDARD_HANDLE(BRepCheck_Edge, BRepCheck_Result) + + +class BRepCheck_Edge : public BRepCheck_Result +{ + +public: + + + Standard_EXPORT BRepCheck_Edge(const TopoDS_Edge& E); + + Standard_EXPORT void InContext (const TopoDS_Shape& ContextShape); + + Standard_EXPORT void Minimum(); + + Standard_EXPORT void Blind(); + + Standard_EXPORT Standard_Boolean GeometricControls() const; + + Standard_EXPORT void GeometricControls (const Standard_Boolean B); + + Standard_EXPORT Standard_Real Tolerance(); + + //! Sets status of Edge; + Standard_EXPORT void SetStatus (const BRepCheck_Status theStatus); + + //! Checks, if polygon on triangulation of heEdge + //! is out of 3D-curve of this edge. + Standard_EXPORT BRepCheck_Status CheckPolygonOnTriangulation (const TopoDS_Edge& theEdge); + + + + + DEFINE_STANDARD_RTTI(BRepCheck_Edge,BRepCheck_Result) + +protected: + + + + +private: + + + Handle(BRep_CurveRepresentation) myCref; + Handle(Adaptor3d_HCurve) myHCurve; + Standard_Boolean myGctrl; + + +}; + + + + + + + +#endif // _BRepCheck_Edge_HeaderFile diff --git a/src/BRepCheck/BRepCheck_Face.cdl b/src/BRepCheck/BRepCheck_Face.cdl deleted file mode 100644 index 338a4339f2..0000000000 --- a/src/BRepCheck/BRepCheck_Face.cdl +++ /dev/null @@ -1,105 +0,0 @@ --- Created on: 1995-12-15 --- 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. - -class Face from BRepCheck inherits Result from BRepCheck - - ---Purpose: - -uses Shape from TopoDS, - Face from TopoDS, - Status from BRepCheck, - DataMapOfShapeListOfShape from TopTools - -is - - Create(F: Face from TopoDS) - - returns Face from BRepCheck; - - - InContext(me: mutable; ContextShape: Shape from TopoDS); - - - - Minimum(me: mutable); - - - - Blind(me: mutable); - - - - IntersectWires(me: mutable; Update: Boolean from Standard = Standard_False) - - returns Status from BRepCheck - is static; - - - ClassifyWires(me: mutable; Update: Boolean from Standard = Standard_False) - - returns Status from BRepCheck - is static; - - - - OrientationOfWires(me: mutable; - Update: Boolean from Standard = Standard_False) - - returns Status from BRepCheck - is static; - - - SetUnorientable(me: mutable) - - is static; - - SetStatus(me: mutable; - theStatus:Status from BRepCheck) - - --- Purpose: Sets status of Face; - is static; - - - - IsUnorientable(me) - - returns Boolean from Standard - is static; - - GeometricControls(me) - - returns Boolean from Standard - is static; - - - GeometricControls(me: mutable; B: Boolean from Standard) - - is static; - - - -fields - - myIntdone : Boolean from Standard; - myIntres : Status from BRepCheck; - myImbdone : Boolean from Standard; - myImbres : Status from BRepCheck; - myOridone : Boolean from Standard; - myOrires : Status from BRepCheck; - myMapImb : DataMapOfShapeListOfShape from TopTools; - myGctrl : Boolean from Standard; - -end Face; diff --git a/src/BRepCheck/BRepCheck_Face.cxx b/src/BRepCheck/BRepCheck_Face.cxx index 62e45528b4..59daf7e897 100644 --- a/src/BRepCheck/BRepCheck_Face.cxx +++ b/src/BRepCheck/BRepCheck_Face.cxx @@ -14,58 +14,50 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include - -#include +#include +#include #include +#include #include - -#include -#include - -#include -#include -#include -#include - -//#include +#include +#include +#include +#include +#include #include -//#include +#include #include +#include +#include #include +#include #include - #include -#include -#include -#include - - - -#include +#include +#include +#include #include +#include +#include +#include +#include +#include #include +#include +#include +#include #include - -#include -#include - -#include -#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include -#include - #include -#include +#include +//#include +//#include typedef NCollection_DataMap DataMapOfShapeBox2d; static Standard_Boolean Intersect(const TopoDS_Wire&, diff --git a/src/BRepCheck/BRepCheck_Face.hxx b/src/BRepCheck/BRepCheck_Face.hxx new file mode 100644 index 0000000000..b4adf28583 --- /dev/null +++ b/src/BRepCheck/BRepCheck_Face.hxx @@ -0,0 +1,97 @@ +// Created on: 1995-12-15 +// 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_Face_HeaderFile +#define _BRepCheck_Face_HeaderFile + +#include +#include + +#include +#include +#include +#include +class TopoDS_Face; +class TopoDS_Shape; + + +class BRepCheck_Face; +DEFINE_STANDARD_HANDLE(BRepCheck_Face, BRepCheck_Result) + + +class BRepCheck_Face : public BRepCheck_Result +{ + +public: + + + Standard_EXPORT BRepCheck_Face(const TopoDS_Face& F); + + Standard_EXPORT void InContext (const TopoDS_Shape& ContextShape); + + Standard_EXPORT void Minimum(); + + Standard_EXPORT void Blind(); + + Standard_EXPORT BRepCheck_Status IntersectWires (const Standard_Boolean Update = Standard_False); + + Standard_EXPORT BRepCheck_Status ClassifyWires (const Standard_Boolean Update = Standard_False); + + Standard_EXPORT BRepCheck_Status OrientationOfWires (const Standard_Boolean Update = Standard_False); + + Standard_EXPORT void SetUnorientable(); + + //! Sets status of Face; + Standard_EXPORT void SetStatus (const BRepCheck_Status theStatus); + + Standard_EXPORT Standard_Boolean IsUnorientable() const; + + Standard_EXPORT Standard_Boolean GeometricControls() const; + + Standard_EXPORT void GeometricControls (const Standard_Boolean B); + + + + + DEFINE_STANDARD_RTTI(BRepCheck_Face,BRepCheck_Result) + +protected: + + + + +private: + + + Standard_Boolean myIntdone; + BRepCheck_Status myIntres; + Standard_Boolean myImbdone; + BRepCheck_Status myImbres; + Standard_Boolean myOridone; + BRepCheck_Status myOrires; + TopTools_DataMapOfShapeListOfShape myMapImb; + Standard_Boolean myGctrl; + + +}; + + + + + + + +#endif // _BRepCheck_Face_HeaderFile diff --git a/src/BRepCheck/BRepCheck_Result.cdl b/src/BRepCheck/BRepCheck_Result.cdl deleted file mode 100644 index 180278185a..0000000000 --- a/src/BRepCheck/BRepCheck_Result.cdl +++ /dev/null @@ -1,128 +0,0 @@ --- Created on: 1995-12-07 --- 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. - -deferred class Result from BRepCheck inherits TShared from MMgt - - ---Purpose: - -uses Shape from TopoDS, - ListOfStatus from BRepCheck, - DataMapOfShapeListOfStatus from BRepCheck, - DataMapIteratorOfDataMapOfShapeListOfStatus from BRepCheck - -raises NoSuchObject from Standard - -is - - Initialize; - - Init(me: mutable; S: Shape from TopoDS); - - - InContext(me: mutable; ContextShape: Shape from TopoDS) - - is deferred; - - - Minimum(me: mutable) - - is deferred; - - - Blind(me: mutable) - - is deferred; - - SetFailStatus(me: mutable; S: Shape from TopoDS); - - - Status(me) - - returns ListOfStatus from BRepCheck - ---C++: return const& - ---C++: inline - is static; - - IsMinimum(me) - - returns Boolean from Standard - ---C++: inline - is static; - - - IsBlind(me) - - returns Boolean from Standard - ---C++: inline - is static; - - - StatusOnShape(me: mutable; S: Shape from TopoDS) - ---Purpose: If not already done, performs the InContext - -- control and returns the list of status. - returns ListOfStatus from BRepCheck - ---C++: return const& - raises - NoSuchObject from Standard - is static; - - - InitContextIterator(me: mutable) - - is static; - - - MoreShapeInContext(me) - - returns Boolean from Standard - ---C++: inline - is static; - - - ContextualShape(me) - - returns Shape from TopoDS - ---C++: return const& - ---C++: inline - raises - NoSuchObject from Standard - is static; - - - StatusOnShape(me) - - returns ListOfStatus from BRepCheck - ---C++: return const& - ---C++: inline - raises - NoSuchObject from Standard - is static; - - - NextShapeInContext(me: mutable) - - is static; - - -fields - - myShape : Shape from TopoDS is protected; - myMin : Boolean from Standard is protected; - myBlind : Boolean from Standard is protected; - myMap : DataMapOfShapeListOfStatus from BRepCheck is protected; - myIter : DataMapIteratorOfDataMapOfShapeListOfStatus from BRepCheck; - -end Result; diff --git a/src/BRepCheck/BRepCheck_Result.cxx b/src/BRepCheck/BRepCheck_Result.cxx index 9fb292a129..c699d5689b 100644 --- a/src/BRepCheck/BRepCheck_Result.cxx +++ b/src/BRepCheck/BRepCheck_Result.cxx @@ -14,15 +14,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include +#include +#include //======================================================================= //function : BRepCheck_Result //purpose : //======================================================================= - BRepCheck_Result::BRepCheck_Result() : myMin(Standard_False),myBlind(Standard_False) { diff --git a/src/BRepCheck/BRepCheck_Result.hxx b/src/BRepCheck/BRepCheck_Result.hxx new file mode 100644 index 0000000000..fdebe79c6c --- /dev/null +++ b/src/BRepCheck/BRepCheck_Result.hxx @@ -0,0 +1,104 @@ +// Created on: 1995-12-07 +// 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_Result_HeaderFile +#define _BRepCheck_Result_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +class Standard_NoSuchObject; +class TopoDS_Shape; + + +class BRepCheck_Result; +DEFINE_STANDARD_HANDLE(BRepCheck_Result, MMgt_TShared) + + +class BRepCheck_Result : public MMgt_TShared +{ + +public: + + + Standard_EXPORT void Init (const TopoDS_Shape& S); + + Standard_EXPORT virtual void InContext (const TopoDS_Shape& ContextShape) = 0; + + Standard_EXPORT virtual void Minimum() = 0; + + Standard_EXPORT virtual void Blind() = 0; + + Standard_EXPORT void SetFailStatus (const TopoDS_Shape& S); + + const BRepCheck_ListOfStatus& Status() const; + + Standard_Boolean IsMinimum() const; + + Standard_Boolean IsBlind() const; + + //! If not already done, performs the InContext + //! control and returns the list of status. + Standard_EXPORT const BRepCheck_ListOfStatus& StatusOnShape (const TopoDS_Shape& S); + + Standard_EXPORT void InitContextIterator(); + + Standard_Boolean MoreShapeInContext() const; + + const TopoDS_Shape& ContextualShape() const; + + const BRepCheck_ListOfStatus& StatusOnShape() const; + + Standard_EXPORT void NextShapeInContext(); + + + + + DEFINE_STANDARD_RTTI(BRepCheck_Result,MMgt_TShared) + +protected: + + + Standard_EXPORT BRepCheck_Result(); + + TopoDS_Shape myShape; + Standard_Boolean myMin; + Standard_Boolean myBlind; + BRepCheck_DataMapOfShapeListOfStatus myMap; + + +private: + + + BRepCheck_DataMapIteratorOfDataMapOfShapeListOfStatus myIter; + + +}; + + +#include + + + + + +#endif // _BRepCheck_Result_HeaderFile diff --git a/src/BRepCheck/BRepCheck_Shell.cdl b/src/BRepCheck/BRepCheck_Shell.cdl deleted file mode 100644 index 3dffef6f4b..0000000000 --- a/src/BRepCheck/BRepCheck_Shell.cdl +++ /dev/null @@ -1,88 +0,0 @@ --- Created on: 1996-01-02 --- Created by: Jacques GOUSSARD --- 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. - -class Shell from BRepCheck inherits Result from BRepCheck - - ---Purpose: - -uses Shape from TopoDS, - Shell from TopoDS, - ListOfShape from TopTools, - IndexedDataMapOfShapeListOfShape from TopTools, - Status from BRepCheck - -is - - Create(S: Shell from TopoDS) - - returns Shell from BRepCheck; - - - InContext(me: mutable; ContextShape: Shape from TopoDS); - - - - Minimum(me: mutable); - - - - Blind(me: mutable); - - - Closed(me: mutable; Update: Boolean from Standard = Standard_False) - ---Purpose: Checks if the oriented faces of the shell give a - -- closed shell. If the wire is closed, returns - -- BRepCheck_NoError.If is set to - -- Standard_True, registers the status in the list. - returns Status from BRepCheck - is static; - - - Orientation(me: mutable; Update: Boolean from Standard = Standard_False) - ---Purpose: Checks if the oriented faces of the shell are - -- correctly oriented. An internal call is made to - -- the method Closed. If is set to - -- Standard_True, registers the status in the list. - returns Status from BRepCheck - is static; - - - SetUnorientable(me: mutable) - - is static; - - - IsUnorientable(me) - - returns Boolean from Standard - is static; - - - NbConnectedSet (me: mutable; theSets : in out ListOfShape from TopTools) - - returns Integer from Standard; - - -fields - - myNbori : Integer from Standard; - myCdone : Boolean from Standard; - myCstat : Status from BRepCheck; - myOdone : Boolean from Standard; - myOstat : Status from BRepCheck; - myMapEF : IndexedDataMapOfShapeListOfShape from TopTools; - -end Shell; diff --git a/src/BRepCheck/BRepCheck_Shell.cxx b/src/BRepCheck/BRepCheck_Shell.cxx index c551784793..f0d9bbda72 100644 --- a/src/BRepCheck/BRepCheck_Shell.cxx +++ b/src/BRepCheck/BRepCheck_Shell.cxx @@ -14,29 +14,28 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include - -#include -#include -#include -#include -#include -#include #include - -#include - +#include #include +#include +#include +#include +#include +#include +#include #include #include #include -#include - +#include +#include #include #include +#include +#include +#include +#include +#include //======================================================================= //function : Propagate diff --git a/src/BRepCheck/BRepCheck_Shell.hxx b/src/BRepCheck/BRepCheck_Shell.hxx new file mode 100644 index 0000000000..aea6221489 --- /dev/null +++ b/src/BRepCheck/BRepCheck_Shell.hxx @@ -0,0 +1,98 @@ +// Created on: 1996-01-02 +// Created by: Jacques GOUSSARD +// 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 _BRepCheck_Shell_HeaderFile +#define _BRepCheck_Shell_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +class TopoDS_Shell; +class TopoDS_Shape; + + +class BRepCheck_Shell; +DEFINE_STANDARD_HANDLE(BRepCheck_Shell, BRepCheck_Result) + + +class BRepCheck_Shell : public BRepCheck_Result +{ + +public: + + + Standard_EXPORT BRepCheck_Shell(const TopoDS_Shell& S); + + Standard_EXPORT void InContext (const TopoDS_Shape& ContextShape); + + Standard_EXPORT void Minimum(); + + Standard_EXPORT void Blind(); + + //! Checks if the oriented faces of the shell give a + //! closed shell. If the wire is closed, returns + //! BRepCheck_NoError.If is set to + //! Standard_True, registers the status in the list. + Standard_EXPORT BRepCheck_Status Closed (const Standard_Boolean Update = Standard_False); + + //! Checks if the oriented faces of the shell are + //! correctly oriented. An internal call is made to + //! the method Closed. If is set to + //! Standard_True, registers the status in the list. + Standard_EXPORT BRepCheck_Status Orientation (const Standard_Boolean Update = Standard_False); + + Standard_EXPORT void SetUnorientable(); + + Standard_EXPORT Standard_Boolean IsUnorientable() const; + + Standard_EXPORT Standard_Integer NbConnectedSet (TopTools_ListOfShape& theSets); + + + + + DEFINE_STANDARD_RTTI(BRepCheck_Shell,BRepCheck_Result) + +protected: + + + + +private: + + + Standard_Integer myNbori; + Standard_Boolean myCdone; + BRepCheck_Status myCstat; + Standard_Boolean myOdone; + BRepCheck_Status myOstat; + TopTools_IndexedDataMapOfShapeListOfShape myMapEF; + + +}; + + + + + + + +#endif // _BRepCheck_Shell_HeaderFile diff --git a/src/BRepCheck/BRepCheck_Solid.cdl b/src/BRepCheck/BRepCheck_Solid.cdl deleted file mode 100644 index 432f779240..0000000000 --- a/src/BRepCheck/BRepCheck_Solid.cdl +++ /dev/null @@ -1,70 +0,0 @@ --- 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. - - -class Solid from BRepCheck - inherits Result from BRepCheck - - ---Purpose: The class is to check a solid. - -uses - Shape from TopoDS, - Solid from TopoDS - -is - Create(theS: Solid from TopoDS) - returns Solid from BRepCheck; - ---Purpose: - -- Constructor - -- is the solid to check - - InContext(me: mutable; - theContextShape: Shape from TopoDS) - is redefined; - ---Purpose: - -- Checks the solid in context of - -- the shape - - Minimum(me: mutable) - is redefined; - ---Purpose: - -- Checks the solid per se. - -- - -- The scan area is: - -- 1. Shells that overlaps each other - -- Status: BRepCheck_InvalidImbricationOfShells - -- - -- 2. Detached parts of the solid (vertices, edges) - -- that have non-internal orientation - -- Status: BRepCheck_BadOrientationOfSubshape - -- - -- - -- 3. For closed, non-internal shells: - -- 3.1 Shells containing entities of the solid that - -- are outside towards the shells - -- Status: BRepCheck_SubshapeNotInShape - -- - -- 3.2 Shells that encloses other Shells - -- (for non-holes) - -- Status: BRepCheck_EnclosedRegion - -- - - Blind(me: mutable) - is redefined; - ---Purpose: - -- see the parent class for more details - ---fields - -end Solid; diff --git a/src/BRepCheck/BRepCheck_Solid.cxx b/src/BRepCheck/BRepCheck_Solid.cxx index 3a95e87a47..1874710370 100644 --- a/src/BRepCheck/BRepCheck_Solid.cxx +++ b/src/BRepCheck/BRepCheck_Solid.cxx @@ -12,35 +12,37 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -// -#include + +#include +#include +#include +#include +#include +#include +#include #include -// -#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// +// // -#include // -#include // -#include -#include -#include -#include -#include -#include // -#include // -#include -#include // -#include // -#include -#include - class BRepCheck_HSC; DEFINE_STANDARD_HANDLE(BRepCheck_HSC, MMgt_TShared); //======================================================================= diff --git a/src/BRepCheck/BRepCheck_Solid.hxx b/src/BRepCheck/BRepCheck_Solid.hxx new file mode 100644 index 0000000000..d3269d551f --- /dev/null +++ b/src/BRepCheck/BRepCheck_Solid.hxx @@ -0,0 +1,94 @@ +// 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 _BRepCheck_Solid_HeaderFile +#define _BRepCheck_Solid_HeaderFile + +#include +#include + +#include +class TopoDS_Solid; +class TopoDS_Shape; + + +class BRepCheck_Solid; +DEFINE_STANDARD_HANDLE(BRepCheck_Solid, BRepCheck_Result) + +//! The class is to check a solid. +class BRepCheck_Solid : public BRepCheck_Result +{ + +public: + + + + //! Constructor + //! is the solid to check + Standard_EXPORT BRepCheck_Solid(const TopoDS_Solid& theS); + + + //! Checks the solid in context of + //! the shape + Standard_EXPORT virtual void InContext (const TopoDS_Shape& theContextShape) Standard_OVERRIDE; + + + //! Checks the solid per se. + //! + //! The scan area is: + //! 1. Shells that overlaps each other + //! Status: BRepCheck_InvalidImbricationOfShells + //! + //! 2. Detached parts of the solid (vertices, edges) + //! that have non-internal orientation + //! Status: BRepCheck_BadOrientationOfSubshape + //! + //! 3. For closed, non-internal shells: + //! 3.1 Shells containing entities of the solid that + //! are outside towards the shells + //! Status: BRepCheck_SubshapeNotInShape + //! + //! 3.2 Shells that encloses other Shells + //! (for non-holes) + //! Status: BRepCheck_EnclosedRegion + Standard_EXPORT virtual void Minimum() Standard_OVERRIDE; + + + //! see the parent class for more details + Standard_EXPORT virtual void Blind() Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(BRepCheck_Solid,BRepCheck_Result) + +protected: + + + + +private: + + + + +}; + + + + + + + +#endif // _BRepCheck_Solid_HeaderFile diff --git a/src/BRepCheck/BRepCheck_Status.hxx b/src/BRepCheck/BRepCheck_Status.hxx new file mode 100644 index 0000000000..1990d2873d --- /dev/null +++ b/src/BRepCheck/BRepCheck_Status.hxx @@ -0,0 +1,62 @@ +// 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_Status_HeaderFile +#define _BRepCheck_Status_HeaderFile + + +enum BRepCheck_Status +{ +BRepCheck_NoError, +BRepCheck_InvalidPointOnCurve, +BRepCheck_InvalidPointOnCurveOnSurface, +BRepCheck_InvalidPointOnSurface, +BRepCheck_No3DCurve, +BRepCheck_Multiple3DCurve, +BRepCheck_Invalid3DCurve, +BRepCheck_NoCurveOnSurface, +BRepCheck_InvalidCurveOnSurface, +BRepCheck_InvalidCurveOnClosedSurface, +BRepCheck_InvalidSameRangeFlag, +BRepCheck_InvalidSameParameterFlag, +BRepCheck_InvalidDegeneratedFlag, +BRepCheck_FreeEdge, +BRepCheck_InvalidMultiConnexity, +BRepCheck_InvalidRange, +BRepCheck_EmptyWire, +BRepCheck_RedundantEdge, +BRepCheck_SelfIntersectingWire, +BRepCheck_NoSurface, +BRepCheck_InvalidWire, +BRepCheck_RedundantWire, +BRepCheck_IntersectingWires, +BRepCheck_InvalidImbricationOfWires, +BRepCheck_EmptyShell, +BRepCheck_RedundantFace, +BRepCheck_InvalidImbricationOfShells, +BRepCheck_UnorientableShape, +BRepCheck_NotClosed, +BRepCheck_NotConnected, +BRepCheck_SubshapeNotInShape, +BRepCheck_BadOrientation, +BRepCheck_BadOrientationOfSubshape, +BRepCheck_InvalidPolygonOnTriangulation, +BRepCheck_InvalidToleranceValue, +BRepCheck_EnclosedRegion, +BRepCheck_CheckFail +}; + +#endif // _BRepCheck_Status_HeaderFile diff --git a/src/BRepCheck/BRepCheck_Vertex.cdl b/src/BRepCheck/BRepCheck_Vertex.cdl deleted file mode 100644 index b98b570209..0000000000 --- a/src/BRepCheck/BRepCheck_Vertex.cdl +++ /dev/null @@ -1,45 +0,0 @@ --- Created on: 1995-12-07 --- 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. - -class Vertex from BRepCheck inherits Result from BRepCheck - - ---Purpose: - -uses Shape from TopoDS, - Vertex from TopoDS - -is - - Create(V: Vertex from TopoDS) - - returns Vertex from BRepCheck; - - - InContext(me: mutable; ContextShape: Shape from TopoDS); - - - - Minimum(me: mutable); - - - - Blind(me: mutable); - - - Tolerance(me: mutable) returns Real from Standard - is static; - -end Vertex; diff --git a/src/BRepCheck/BRepCheck_Vertex.cxx b/src/BRepCheck/BRepCheck_Vertex.cxx index 304ec00861..8225677cdf 100644 --- a/src/BRepCheck/BRepCheck_Vertex.cxx +++ b/src/BRepCheck/BRepCheck_Vertex.cxx @@ -14,41 +14,37 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include - -#include -#include -#include - -#include -#include -#include #include -#include -#include #include - +#include +#include +#include +#include +#include +#include +#include #include - -#include +#include +#include +#include +#include +#include #include #include -#include - +#include +#include #include -#include - -#include #include #include +#include +#include +#include //======================================================================= //function : BRepCheck_Vertex //purpose : //======================================================================= - BRepCheck_Vertex::BRepCheck_Vertex(const TopoDS_Vertex& V) { Init(V); diff --git a/src/BRepCheck/BRepCheck_Vertex.hxx b/src/BRepCheck/BRepCheck_Vertex.hxx new file mode 100644 index 0000000000..c436386319 --- /dev/null +++ b/src/BRepCheck/BRepCheck_Vertex.hxx @@ -0,0 +1,72 @@ +// Created on: 1995-12-07 +// 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_Vertex_HeaderFile +#define _BRepCheck_Vertex_HeaderFile + +#include +#include + +#include +#include +class TopoDS_Vertex; +class TopoDS_Shape; + + +class BRepCheck_Vertex; +DEFINE_STANDARD_HANDLE(BRepCheck_Vertex, BRepCheck_Result) + + +class BRepCheck_Vertex : public BRepCheck_Result +{ + +public: + + + Standard_EXPORT BRepCheck_Vertex(const TopoDS_Vertex& V); + + Standard_EXPORT void InContext (const TopoDS_Shape& ContextShape); + + Standard_EXPORT void Minimum(); + + Standard_EXPORT void Blind(); + + Standard_EXPORT Standard_Real Tolerance(); + + + + + DEFINE_STANDARD_RTTI(BRepCheck_Vertex,BRepCheck_Result) + +protected: + + + + +private: + + + + +}; + + + + + + + +#endif // _BRepCheck_Vertex_HeaderFile diff --git a/src/BRepCheck/BRepCheck_Wire.cdl b/src/BRepCheck/BRepCheck_Wire.cdl deleted file mode 100644 index 48c0f3303a..0000000000 --- a/src/BRepCheck/BRepCheck_Wire.cdl +++ /dev/null @@ -1,142 +0,0 @@ --- Created on: 1995-12-12 --- 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. - --- modified by eap Fri Dec 21 12:17:40 2001 (bug OCC35) --- Closed2d() added - - -class Wire from BRepCheck inherits Result from BRepCheck - - ---Purpose: - -uses Shape from TopoDS, - Face from TopoDS, - Wire from TopoDS, - Edge from TopoDS, - IndexedDataMapOfShapeListOfShape from TopTools, - Status from BRepCheck - -is - - Create(W: Wire from TopoDS) - - returns Wire from BRepCheck; - - - InContext(me: mutable; ContextShape: Shape from TopoDS); - ---Purpose: if is a face, consequently checks - -- SelfIntersect(), Closed(), Orientation() and - -- Closed2d until faulty is found - - Minimum(me: mutable); - ---Purpose: checks that the wire is not empty and "connex". - -- Called by constructor - - Blind(me: mutable); - ---Purpose: Does nothing - - - - Closed(me: mutable; Update: Boolean from Standard = Standard_False) - ---Purpose: Checks if the oriented edges of the wire give a - -- closed wire. If the wire is closed, returns - -- BRepCheck_NoError. Warning : if the first and - -- last edge are infinite, the wire will be - -- considered as a closed one. If is set to - -- Standard_True, registers the status in the list. - -- May return (and registers): - -- **BRepCheck_NotConnected, if wire is not - -- topologically closed - -- **BRepCheck_RedundantEdge, if an edge is in wire - -- more than 3 times or in case of 2 occurences if - -- not with FORWARD and REVERSED orientation. - -- **BRepCheck_NoError - returns Status from BRepCheck - is static; - - Closed2d(me: mutable; F : Face from TopoDS; - Update: Boolean from Standard = Standard_False) - ---Purpose: Checks if edges of the wire give a wire closed in - -- 2d space. - -- Returns BRepCheck_NoError, or BRepCheck_NotClosed - -- If is set to Standard_True, registers the - -- status in the list. - returns Status from BRepCheck - is static; - - Orientation(me: mutable; F : Face from TopoDS; - Update: Boolean from Standard = Standard_False) - ---Purpose: Checks if the oriented edges of the wire are - -- correctly oriented. An internal call is made to - -- the method Closed. If no face exists, call the - -- method with a null face (TopoDS_face()). If - -- is set to Standard_True, registers the - -- status in the list. - -- May return (and registers): - -- BRepCheck_InvalidDegeneratedFlag, - -- BRepCheck_BadOrientationOfSubshape, - -- BRepCheck_NotClosed, - -- BRepCheck_NoError - returns Status from BRepCheck - is static; - - SelfIntersect(me: mutable; F : Face from TopoDS; - E1,E2 : out Edge from TopoDS; - Update: Boolean from Standard = Standard_False) - - ---Purpose: Checks if the wire intersect itself on the face - -- . and are the first intersecting - -- edges found. may be a null edge when a - -- self-intersecting edge is found.If is set - -- to Standard_True, registers the status in the - -- list. - -- May return (and register): - -- BRepCheck_EmptyWire, - -- BRepCheck_SelfIntersectingWire, - -- BRepCheck_NoCurveOnSurface, - -- BRepCheck_NoError - returns Status from BRepCheck - is static; - - - - GeometricControls(me) - ---Purpose: report SelfIntersect() check would be (is) done - returns Boolean from Standard - is static; - - GeometricControls(me: mutable; B: Boolean from Standard) - ---Purpose: set SelfIntersect() to be checked - is static; - - SetStatus(me: mutable; - theStatus:Status from BRepCheck) - - --- Purpose: Sets status of Wire; - is static; - -fields - --- myNbori : Integer from Standard; -- not used (eap) - myCdone : Boolean from Standard; -- Closed() or Oriented() is done - myCstat : Status from BRepCheck; -- result of Closed() or Oriented() - myMapVE : IndexedDataMapOfShapeListOfShape from TopTools; - myGctrl : Boolean from Standard; -- do check SelfIntersect() or not - -end Wire; - - - diff --git a/src/BRepCheck/BRepCheck_Wire.cxx b/src/BRepCheck/BRepCheck_Wire.cxx index e07e896de5..d5ee8077fe 100644 --- a/src/BRepCheck/BRepCheck_Wire.cxx +++ b/src/BRepCheck/BRepCheck_Wire.cxx @@ -20,63 +20,63 @@ // Check self-intersection in case of closed edge // modified by eap Fri Dec 21 17:36:55 2001 (bug OCC35) // Closed2d() added - // Modified by skv - Wed Jul 23 12:22:20 2003 OCC1764 -#include -#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include #include -#include +#include +#include +#include #include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include //Patch -#include -#include -#include - //#ifdef WNT -#include -#include -#include //#endif - -#include -#include - - static void Propagate(const TopTools_IndexedDataMapOfShapeListOfShape&, const TopoDS_Shape&, // edge TopTools_MapOfShape&); // mapofedge diff --git a/src/BRepCheck/BRepCheck_Wire.hxx b/src/BRepCheck/BRepCheck_Wire.hxx new file mode 100644 index 0000000000..ed1c394cab --- /dev/null +++ b/src/BRepCheck/BRepCheck_Wire.hxx @@ -0,0 +1,141 @@ +// Created on: 1995-12-12 +// 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_Wire_HeaderFile +#define _BRepCheck_Wire_HeaderFile + +#include +#include + +#include +#include +#include +#include +class TopoDS_Wire; +class TopoDS_Shape; +class TopoDS_Face; +class TopoDS_Edge; + + +class BRepCheck_Wire; +DEFINE_STANDARD_HANDLE(BRepCheck_Wire, BRepCheck_Result) + + +class BRepCheck_Wire : public BRepCheck_Result +{ + +public: + + + Standard_EXPORT BRepCheck_Wire(const TopoDS_Wire& W); + + //! if is a face, consequently checks + //! SelfIntersect(), Closed(), Orientation() and + //! Closed2d until faulty is found + Standard_EXPORT void InContext (const TopoDS_Shape& ContextShape); + + //! checks that the wire is not empty and "connex". + //! Called by constructor + Standard_EXPORT void Minimum(); + + //! Does nothing + Standard_EXPORT void Blind(); + + //! Checks if the oriented edges of the wire give a + //! closed wire. If the wire is closed, returns + //! BRepCheck_NoError. Warning : if the first and + //! last edge are infinite, the wire will be + //! considered as a closed one. If is set to + //! Standard_True, registers the status in the list. + //! May return (and registers): + //! **BRepCheck_NotConnected, if wire is not + //! topologically closed + //! **BRepCheck_RedundantEdge, if an edge is in wire + //! more than 3 times or in case of 2 occurences if + //! not with FORWARD and REVERSED orientation. + //! **BRepCheck_NoError + Standard_EXPORT BRepCheck_Status Closed (const Standard_Boolean Update = Standard_False); + + //! Checks if edges of the wire give a wire closed in + //! 2d space. + //! Returns BRepCheck_NoError, or BRepCheck_NotClosed + //! If is set to Standard_True, registers the + //! status in the list. + Standard_EXPORT BRepCheck_Status Closed2d (const TopoDS_Face& F, const Standard_Boolean Update = Standard_False); + + //! Checks if the oriented edges of the wire are + //! correctly oriented. An internal call is made to + //! the method Closed. If no face exists, call the + //! method with a null face (TopoDS_face()). If + //! is set to Standard_True, registers the + //! status in the list. + //! May return (and registers): + //! BRepCheck_InvalidDegeneratedFlag, + //! BRepCheck_BadOrientationOfSubshape, + //! BRepCheck_NotClosed, + //! BRepCheck_NoError + Standard_EXPORT BRepCheck_Status Orientation (const TopoDS_Face& F, const Standard_Boolean Update = Standard_False); + + //! Checks if the wire intersect itself on the face + //! . and are the first intersecting + //! edges found. may be a null edge when a + //! self-intersecting edge is found.If is set + //! to Standard_True, registers the status in the + //! list. + //! May return (and register): + //! BRepCheck_EmptyWire, + //! BRepCheck_SelfIntersectingWire, + //! BRepCheck_NoCurveOnSurface, + //! BRepCheck_NoError + Standard_EXPORT BRepCheck_Status SelfIntersect (const TopoDS_Face& F, TopoDS_Edge& E1, TopoDS_Edge& E2, const Standard_Boolean Update = Standard_False); + + //! report SelfIntersect() check would be (is) done + Standard_EXPORT Standard_Boolean GeometricControls() const; + + //! set SelfIntersect() to be checked + Standard_EXPORT void GeometricControls (const Standard_Boolean B); + + //! Sets status of Wire; + Standard_EXPORT void SetStatus (const BRepCheck_Status theStatus); + + + + + DEFINE_STANDARD_RTTI(BRepCheck_Wire,BRepCheck_Result) + +protected: + + + + +private: + + + Standard_Boolean myCdone; + BRepCheck_Status myCstat; + TopTools_IndexedDataMapOfShapeListOfShape myMapVE; + Standard_Boolean myGctrl; + + +}; + + + + + + + +#endif // _BRepCheck_Wire_HeaderFile diff --git a/src/BRepCheck/FILES b/src/BRepCheck/FILES index 3ccae70fc0..27ff34137c 100644 --- a/src/BRepCheck/FILES +++ b/src/BRepCheck/FILES @@ -1,6 +1,27 @@ -BRepCheck_ListOfStatus.hxx -BRepCheck_ListIteratorOfListOfStatus.hxx -BRepCheck_DataMapOfShapeListOfStatus.hxx +BRepCheck.cxx +BRepCheck.hxx +BRepCheck_Analyzer.cxx +BRepCheck_Analyzer.hxx +BRepCheck_Analyzer.lxx BRepCheck_DataMapIteratorOfDataMapOfShapeListOfStatus.hxx -BRepCheck_DataMapOfShapeResult.hxx BRepCheck_DataMapIteratorOfDataMapOfShapeResult.hxx +BRepCheck_DataMapOfShapeListOfStatus.hxx +BRepCheck_DataMapOfShapeResult.hxx +BRepCheck_Edge.cxx +BRepCheck_Edge.hxx +BRepCheck_Face.cxx +BRepCheck_Face.hxx +BRepCheck_ListIteratorOfListOfStatus.hxx +BRepCheck_ListOfStatus.hxx +BRepCheck_Result.cxx +BRepCheck_Result.hxx +BRepCheck_Result.lxx +BRepCheck_Shell.cxx +BRepCheck_Shell.hxx +BRepCheck_Solid.cxx +BRepCheck_Solid.hxx +BRepCheck_Status.hxx +BRepCheck_Vertex.cxx +BRepCheck_Vertex.hxx +BRepCheck_Wire.cxx +BRepCheck_Wire.hxx diff --git a/src/BRepClass/BRepClass.cdl b/src/BRepClass/BRepClass.cdl deleted file mode 100644 index b2d7bdbe75..0000000000 --- a/src/BRepClass/BRepClass.cdl +++ /dev/null @@ -1,55 +0,0 @@ --- Created on: 1992-11-18 --- 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. - -package BRepClass - - ---Purpose: The BRepClass packages provides classification - -- algorithms for the BRep topology. It instantiates - -- the algorithms from the package TopClass. - -uses - gp, - TopAbs, - TopoDS, - TopExp, - BRepTools, - Geom2dInt, - TopClass, ---- IntCurveSurface, - Bnd - - - - -is - class Edge; - - class Intersector; - - class FacePassiveClassifier instantiates Classifier2d from TopClass - (Edge from BRepClass, - Intersector from BRepClass); - - class FaceExplorer; - - class FClassifier instantiates FaceClassifier from TopClass - (FaceExplorer from BRepClass, - Edge from BRepClass, - Intersector from BRepClass); - - class FaceClassifier; - -end BRepClass; diff --git a/src/BRepClass/BRepClass_Edge.cdl b/src/BRepClass/BRepClass_Edge.cdl deleted file mode 100644 index 30911e3496..0000000000 --- a/src/BRepClass/BRepClass_Edge.cdl +++ /dev/null @@ -1,49 +0,0 @@ --- 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. - -class Edge from BRepClass - - ---Purpose: This class is used to send the description of an - -- Edge to the classifier. It contains an Edge and a - -- Face. So the PCurve of the Edge can be found. - -uses - Edge from TopoDS, - Face from TopoDS - -is - Create returns Edge from BRepClass; - - Create (E : Edge from TopoDS; F : Face from TopoDS) - returns Edge from BRepClass; - - Edge(me : in out) returns Edge from TopoDS - ---C++: inline - ---C++: return & - ---C++: alias "const TopoDS_Edge& Edge() const;" - is static; - - Face(me : in out) returns Face from TopoDS - ---C++: inline - ---C++: return & - ---C++: alias "const TopoDS_Face& Face() const;" - is static; - -fields - myEdge : Edge from TopoDS; - myFace : Face from TopoDS; - -end Edge; diff --git a/src/BRepClass/BRepClass_Edge.cxx b/src/BRepClass/BRepClass_Edge.cxx index 72d560bc4c..c4cbc4409e 100644 --- a/src/BRepClass/BRepClass_Edge.cxx +++ b/src/BRepClass/BRepClass_Edge.cxx @@ -14,14 +14,15 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include //======================================================================= //function : BRepClass_Edge //purpose : //======================================================================= - BRepClass_Edge::BRepClass_Edge() { } diff --git a/src/BRepClass/BRepClass_Edge.hxx b/src/BRepClass/BRepClass_Edge.hxx new file mode 100644 index 0000000000..9c07502986 --- /dev/null +++ b/src/BRepClass/BRepClass_Edge.hxx @@ -0,0 +1,76 @@ +// 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_Edge_HeaderFile +#define _BRepClass_Edge_HeaderFile + +#include +#include +#include + +#include +#include +class TopoDS_Edge; +class TopoDS_Face; + + +//! This class is used to send the description of an +//! Edge to the classifier. It contains an Edge and a +//! Face. So the PCurve of the Edge can be found. +class BRepClass_Edge +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepClass_Edge(); + + Standard_EXPORT BRepClass_Edge(const TopoDS_Edge& E, const TopoDS_Face& F); + + TopoDS_Edge& Edge(); +const TopoDS_Edge& Edge() const; + + TopoDS_Face& Face(); +const TopoDS_Face& Face() const; + + + + +protected: + + + + + +private: + + + + TopoDS_Edge myEdge; + TopoDS_Face myFace; + + +}; + + +#include + + + + + +#endif // _BRepClass_Edge_HeaderFile diff --git a/src/BRepClass/BRepClass_FClass2dOfFClassifier.hxx b/src/BRepClass/BRepClass_FClass2dOfFClassifier.hxx new file mode 100644 index 0000000000..034d98301c --- /dev/null +++ b/src/BRepClass/BRepClass_FClass2dOfFClassifier.hxx @@ -0,0 +1,109 @@ +// Created on: 1992-11-18 +// 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_FClass2dOfFClassifier_HeaderFile +#define _BRepClass_FClass2dOfFClassifier_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_DomainError; +class BRepClass_Edge; +class BRepClass_Intersector; +class gp_Lin2d; + + + +class BRepClass_FClass2dOfFClassifier +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepClass_FClass2dOfFClassifier(); + + Standard_EXPORT void Reset (const gp_Lin2d& L, const Standard_Real P, const Standard_Real Tol); + + Standard_EXPORT void Compare (const BRepClass_Edge& E, const TopAbs_Orientation Or); + + Standard_Real Parameter() const; + + BRepClass_Intersector& Intersector(); + + Standard_Integer ClosestIntersection() const; + + TopAbs_State State() const; + + Standard_Boolean IsHeadOrEnd() const; + + + + +protected: + + + + + +private: + + + + Standard_Boolean myIsSet; + Standard_Boolean myFirstCompare; + Standard_Boolean myFirstTrans; + gp_Lin2d myLin; + Standard_Real myParam; + Standard_Real myTolerance; + TopTrans_CurveTransition myTrans; + BRepClass_Intersector myIntersector; + Standard_Integer myClosest; + TopAbs_State myState; + Standard_Boolean myIsHeadOrEnd; + + +}; + +#define TheEdge BRepClass_Edge +#define TheEdge_hxx +#define TheIntersector BRepClass_Intersector +#define TheIntersector_hxx +#define TopClass_Classifier2d BRepClass_FClass2dOfFClassifier +#define TopClass_Classifier2d_hxx + +#include + +#undef TheEdge +#undef TheEdge_hxx +#undef TheIntersector +#undef TheIntersector_hxx +#undef TopClass_Classifier2d +#undef TopClass_Classifier2d_hxx + + + + +#endif // _BRepClass_FClass2dOfFClassifier_HeaderFile diff --git a/src/BRepClass/BRepClass_FClass2dOfFClassifier_0.cxx b/src/BRepClass/BRepClass_FClass2dOfFClassifier_0.cxx new file mode 100644 index 0000000000..d31e4266bb --- /dev/null +++ b/src/BRepClass/BRepClass_FClass2dOfFClassifier_0.cxx @@ -0,0 +1,32 @@ +// Created on: 1992-11-18 +// 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. + +#include + +#include +#include +#include +#include + + +#define TheEdge BRepClass_Edge +#define TheEdge_hxx +#define TheIntersector BRepClass_Intersector +#define TheIntersector_hxx +#define TopClass_Classifier2d BRepClass_FClass2dOfFClassifier +#define TopClass_Classifier2d_hxx +#include + diff --git a/src/BRepClass/BRepClass_FClassifier.hxx b/src/BRepClass/BRepClass_FClassifier.hxx new file mode 100644 index 0000000000..a0823b3c76 --- /dev/null +++ b/src/BRepClass/BRepClass_FClassifier.hxx @@ -0,0 +1,114 @@ +// Created on: 1992-11-18 +// 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_FClassifier_HeaderFile +#define _BRepClass_FClassifier_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class Standard_DomainError; +class BRepClass_FaceExplorer; +class BRepClass_Edge; +class BRepClass_Intersector; +class BRepClass_FClass2dOfFClassifier; +class gp_Pnt2d; + + + +class BRepClass_FClassifier +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepClass_FClassifier(); + + Standard_EXPORT BRepClass_FClassifier(BRepClass_FaceExplorer& F, const gp_Pnt2d& P, const Standard_Real Tol); + + Standard_EXPORT void Perform (BRepClass_FaceExplorer& F, const gp_Pnt2d& P, const Standard_Real Tol); + + Standard_EXPORT TopAbs_State State() const; + + Standard_Boolean Rejected() const; + + Standard_Boolean NoWires() const; + + Standard_EXPORT const BRepClass_Edge& Edge() const; + + Standard_EXPORT Standard_Real EdgeParameter() const; + + IntRes2d_Position Position() const; + + + + +protected: + + + + BRepClass_FClass2dOfFClassifier myClassifier; + BRepClass_Edge myEdge; + Standard_Real myEdgeParameter; + IntRes2d_Position myPosition; + Standard_Boolean rejected; + Standard_Boolean nowires; + + +private: + + + + + +}; + +#define TheFaceExplorer BRepClass_FaceExplorer +#define TheFaceExplorer_hxx +#define TheEdge BRepClass_Edge +#define TheEdge_hxx +#define TheIntersection2d BRepClass_Intersector +#define TheIntersection2d_hxx +#define TopClass_FClass2d BRepClass_FClass2dOfFClassifier +#define TopClass_FClass2d_hxx +#define TopClass_FaceClassifier BRepClass_FClassifier +#define TopClass_FaceClassifier_hxx + +#include + +#undef TheFaceExplorer +#undef TheFaceExplorer_hxx +#undef TheEdge +#undef TheEdge_hxx +#undef TheIntersection2d +#undef TheIntersection2d_hxx +#undef TopClass_FClass2d +#undef TopClass_FClass2d_hxx +#undef TopClass_FaceClassifier +#undef TopClass_FaceClassifier_hxx + + + + +#endif // _BRepClass_FClassifier_HeaderFile diff --git a/src/BRepClass/BRepClass_FClassifier_0.cxx b/src/BRepClass/BRepClass_FClassifier_0.cxx new file mode 100644 index 0000000000..fed7a7bfd9 --- /dev/null +++ b/src/BRepClass/BRepClass_FClassifier_0.cxx @@ -0,0 +1,38 @@ +// Created on: 1992-11-18 +// 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. + +#include + +#include +#include +#include +#include +#include +#include + + +#define TheFaceExplorer BRepClass_FaceExplorer +#define TheFaceExplorer_hxx +#define TheEdge BRepClass_Edge +#define TheEdge_hxx +#define TheIntersection2d BRepClass_Intersector +#define TheIntersection2d_hxx +#define TopClass_FClass2d BRepClass_FClass2dOfFClassifier +#define TopClass_FClass2d_hxx +#define TopClass_FaceClassifier BRepClass_FClassifier +#define TopClass_FaceClassifier_hxx +#include + diff --git a/src/BRepClass/BRepClass_FaceClassifier.cdl b/src/BRepClass/BRepClass_FaceClassifier.cdl deleted file mode 100644 index 698a8b7549..0000000000 --- a/src/BRepClass/BRepClass_FaceClassifier.cdl +++ /dev/null @@ -1,68 +0,0 @@ --- 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. - -class FaceClassifier from BRepClass inherits FClassifier from BRepClass - - ---Purpose: Provides Constructors with a Face. - -uses - FaceExplorer from BRepClass, - Face from TopoDS, - Pnt2d from gp, - Pnt from gp - -is - Create returns FaceClassifier from BRepClass; - ---Purpose: Empty constructor, undefined algorithm. - - - - - Create(F : in out FaceExplorer from BRepClass; - P : Pnt2d from gp; Tol : Real) - returns FaceClassifier from BRepClass; - ---Purpose: Creates an algorithm to classify the Point P with - -- Tolerance on the face described by . - - Create(F : Face from TopoDS; - P : Pnt2d from gp; Tol : Real) - returns FaceClassifier from BRepClass; - ---Purpose: Creates an algorithm to classify the Point P with - -- Tolerance on the face . - - Perform(me : in out; - F : Face from TopoDS; - P : Pnt2d from gp; Tol : Real) - ---Purpose: Classify the Point P with Tolerance on the - -- face described by . - is static; - - - Create(F : Face from TopoDS; - P : Pnt from gp; Tol : Real) - returns FaceClassifier from BRepClass; - ---Purpose: Creates an algorithm to classify the Point P with - -- Tolerance on the face . - - Perform(me : in out; - F : Face from TopoDS; - P : Pnt from gp; Tol : Real) - ---Purpose: Classify the Point P with Tolerance on the - -- face described by . - is static; - - -end FaceClassifier; diff --git a/src/BRepClass/BRepClass_FaceClassifier.cxx b/src/BRepClass/BRepClass_FaceClassifier.cxx index 0c6f98a591..8d1ba8cb9e 100644 --- a/src/BRepClass/BRepClass_FaceClassifier.cxx +++ b/src/BRepClass/BRepClass_FaceClassifier.cxx @@ -12,13 +12,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include +#include #include +#include +#include #include -#include +#include +#include +#include +#include +#include //======================================================================= //function : BRepClass_FaceClassifier diff --git a/src/BRepClass/BRepClass_FaceClassifier.hxx b/src/BRepClass/BRepClass_FaceClassifier.hxx new file mode 100644 index 0000000000..7bce0288a3 --- /dev/null +++ b/src/BRepClass/BRepClass_FaceClassifier.hxx @@ -0,0 +1,86 @@ +// 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 +#include +#include + +#include +#include +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 . + Standard_EXPORT BRepClass_FaceClassifier(const TopoDS_Face& F, const gp_Pnt2d& P, const Standard_Real Tol); + + //! Classify the Point P with Tolerance on the + //! face described by . + Standard_EXPORT void Perform (const TopoDS_Face& F, const gp_Pnt2d& P, const Standard_Real Tol); + + //! Creates an algorithm to classify the Point P with + //! Tolerance on the face . + Standard_EXPORT BRepClass_FaceClassifier(const TopoDS_Face& F, const gp_Pnt& P, const Standard_Real Tol); + + //! Classify the Point P with Tolerance on the + //! face described by . + Standard_EXPORT void Perform (const TopoDS_Face& F, const gp_Pnt& P, const Standard_Real Tol); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepClass_FaceClassifier_HeaderFile diff --git a/src/BRepClass/BRepClass_FaceExplorer.cdl b/src/BRepClass/BRepClass_FaceExplorer.cdl deleted file mode 100644 index c2fa1f8d4f..0000000000 --- a/src/BRepClass/BRepClass_FaceExplorer.cdl +++ /dev/null @@ -1,118 +0,0 @@ --- 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. - --- Modified by skv - Wed Jul 12 10:05:54 2006 OCC12627 - -class FaceExplorer from BRepClass - - ---Purpose: Provide an exploration of a BRep Face for the - -- classification. Return UV edges. - -uses - Orientation from TopAbs, - Pnt2d from gp, - Lin2d from gp, - Face from TopoDS, - Explorer from TopExp, - Edge from BRepClass - -is - Create (F : Face from TopoDS) returns FaceExplorer from BRepClass; - - Reject(me; P : Pnt2d from gp) returns Boolean - ---Purpose: Should return True if the point is outside a - -- bounding volume of the face. - is static; - --- Modified by skv - Wed Jul 12 10:05:54 2006 OCC12627 Begin --- Segment(me; P : Pnt2d from gp; - Segment(me: in out; P : Pnt2d from gp; --- Modified by skv - Wed Jul 12 10:05:54 2006 OCC12627 End - L : out Lin2d from gp; Par : out Real) - ---Purpose: Returns in , a segment having at least - -- one intersection with the face boundary to - -- compute intersections. - returns Boolean from Standard -- skv OCC12627 - is static; - --- Modified by skv - Wed Jul 12 10:05:54 2006 OCC12627 Begin - OtherSegment(me: in out; P : Pnt2d from gp; - L : out Lin2d from gp; Par : out Real) - ---Purpose: Returns in , a segment having at least - -- one intersection with the face boundary to - -- compute intersections. Each call gives another segment. - returns Boolean from Standard - is static; - --- Modified by skv - Wed Jul 12 10:05:54 2006 OCC12627 End - InitWires(me : in out) - ---Purpose: Starts an exploration of the wires. - is static; - - MoreWires(me) returns Boolean - ---Purpose: Returns True if there is a current wire. - -- - ---C++: inline - is static; - - NextWire(me : in out) - ---Purpose: Sets the explorer to the next wire. - -- - ---C++: inline - is static; - - RejectWire(me; L : Lin2d from gp; Par : Real) returns Boolean - ---Purpose: Returns True if the wire bounding volume does not - -- intersect the segment. - is static; - - InitEdges(me : in out) - ---Purpose: Starts an exploration of the edges of the current - -- wire. - is static; - - MoreEdges(me) returns Boolean - ---Purpose: Returns True if there is a current edge. - -- - ---C++: inline - is static; - - NextEdge(me : in out) - ---Purpose: Sets the explorer to the next edge. - -- - ---C++: inline - is static; - - RejectEdge(me; L : Lin2d from gp; Par : Real) returns Boolean - ---Purpose: Returns True if the edge bounding volume does not - -- intersect the segment. - is static; - - CurrentEdge(me; E : out Edge from BRepClass; - Or : out Orientation from TopAbs) - ---Purpose: Current edge in current wire and its orientation. - is static; - -fields - myFace : Face from TopoDS; - myWExplorer : Explorer from TopExp; - myEExplorer : Explorer from TopExp; --- Modified by skv - Wed Jul 12 10:05:54 2006 OCC12627 Begin - myCurEdgeInd: Integer from Standard; - myCurEdgePar: Real from Standard; --- Modified by skv - Wed Jul 12 10:05:54 2006 OCC12627 End - -end FaceExplorer; diff --git a/src/BRepClass/BRepClass_FaceExplorer.cxx b/src/BRepClass/BRepClass_FaceExplorer.cxx index 9970071999..cee8ce6f56 100644 --- a/src/BRepClass/BRepClass_FaceExplorer.cxx +++ b/src/BRepClass/BRepClass_FaceExplorer.cxx @@ -17,11 +17,15 @@ // Modified by skv - Thu Jul 13 17:42:58 2006 OCC12627 // Total rewriting of the method Segment; add the method OtherSegment. -#include -#include +#include +#include +#include #include +#include +#include +#include #include -#include +#include static const Standard_Real Probing_Start = 0.123; static const Standard_Real Probing_End = 0.7; diff --git a/src/BRepClass/BRepClass_FaceExplorer.hxx b/src/BRepClass/BRepClass_FaceExplorer.hxx new file mode 100644 index 0000000000..54e03ec233 --- /dev/null +++ b/src/BRepClass/BRepClass_FaceExplorer.hxx @@ -0,0 +1,120 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +class TopoDS_Face; +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); + + //! 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; + + + + +protected: + + + + + +private: + + + + TopoDS_Face myFace; + TopExp_Explorer myWExplorer; + TopExp_Explorer myEExplorer; + Standard_Integer myCurEdgeInd; + Standard_Real myCurEdgePar; + + +}; + + +#include + + + + + +#endif // _BRepClass_FaceExplorer_HeaderFile diff --git a/src/BRepClass/BRepClass_FacePassiveClassifier.hxx b/src/BRepClass/BRepClass_FacePassiveClassifier.hxx new file mode 100644 index 0000000000..38ac550631 --- /dev/null +++ b/src/BRepClass/BRepClass_FacePassiveClassifier.hxx @@ -0,0 +1,109 @@ +// Created on: 1992-11-18 +// 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_FacePassiveClassifier_HeaderFile +#define _BRepClass_FacePassiveClassifier_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_DomainError; +class BRepClass_Edge; +class BRepClass_Intersector; +class gp_Lin2d; + + + +class BRepClass_FacePassiveClassifier +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepClass_FacePassiveClassifier(); + + Standard_EXPORT void Reset (const gp_Lin2d& L, const Standard_Real P, const Standard_Real Tol); + + Standard_EXPORT void Compare (const BRepClass_Edge& E, const TopAbs_Orientation Or); + + Standard_Real Parameter() const; + + BRepClass_Intersector& Intersector(); + + Standard_Integer ClosestIntersection() const; + + TopAbs_State State() const; + + Standard_Boolean IsHeadOrEnd() const; + + + + +protected: + + + + + +private: + + + + Standard_Boolean myIsSet; + Standard_Boolean myFirstCompare; + Standard_Boolean myFirstTrans; + gp_Lin2d myLin; + Standard_Real myParam; + Standard_Real myTolerance; + TopTrans_CurveTransition myTrans; + BRepClass_Intersector myIntersector; + Standard_Integer myClosest; + TopAbs_State myState; + Standard_Boolean myIsHeadOrEnd; + + +}; + +#define TheEdge BRepClass_Edge +#define TheEdge_hxx +#define TheIntersector BRepClass_Intersector +#define TheIntersector_hxx +#define TopClass_Classifier2d BRepClass_FacePassiveClassifier +#define TopClass_Classifier2d_hxx + +#include + +#undef TheEdge +#undef TheEdge_hxx +#undef TheIntersector +#undef TheIntersector_hxx +#undef TopClass_Classifier2d +#undef TopClass_Classifier2d_hxx + + + + +#endif // _BRepClass_FacePassiveClassifier_HeaderFile diff --git a/src/BRepClass/BRepClass_FacePassiveClassifier_0.cxx b/src/BRepClass/BRepClass_FacePassiveClassifier_0.cxx new file mode 100644 index 0000000000..5e18e2b1c2 --- /dev/null +++ b/src/BRepClass/BRepClass_FacePassiveClassifier_0.cxx @@ -0,0 +1,32 @@ +// Created on: 1992-11-18 +// 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. + +#include + +#include +#include +#include +#include + + +#define TheEdge BRepClass_Edge +#define TheEdge_hxx +#define TheIntersector BRepClass_Intersector +#define TheIntersector_hxx +#define TopClass_Classifier2d BRepClass_FacePassiveClassifier +#define TopClass_Classifier2d_hxx +#include + diff --git a/src/BRepClass/BRepClass_Intersector.cdl b/src/BRepClass/BRepClass_Intersector.cdl deleted file mode 100644 index 94bb2374dd..0000000000 --- a/src/BRepClass/BRepClass_Intersector.cdl +++ /dev/null @@ -1,47 +0,0 @@ --- 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. - -class Intersector from BRepClass -inherits IntConicCurveOfGInter from Geom2dInt - - ---Purpose: Intersect an Edge with a segment. - -- Implement the Intersector2d required by the classifier. - -uses - Lin2d from gp, - Dir2d from gp, - Edge from BRepClass - -is - Create returns Intersector from BRepClass; - - Perform(me : in out; - L : Lin2d from gp; P : Real; Tol : Real; - E : Edge from BRepClass) - ---Purpose: Intersect the line segment and the edge. - is static; - - LocalGeometry(me; E : Edge from BRepClass; - U : Real; - T : out Dir2d from gp; - N : out Dir2d from gp; - C : out Real) - ---Purpose: Returns in , and the tangent, normal - -- and curvature of the edge at parameter value - -- . - is static; - -end Intersector; diff --git a/src/BRepClass/BRepClass_Intersector.cxx b/src/BRepClass/BRepClass_Intersector.cxx index 474021db07..4cdebf6b10 100644 --- a/src/BRepClass/BRepClass_Intersector.cxx +++ b/src/BRepClass/BRepClass_Intersector.cxx @@ -14,25 +14,26 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + #include #include #include -#include -#include -#include -#include -#include +#include +#include #include -#include - +#include +#include #include - #include - -#include -#include +#include +#include +#include +#include #include +#include +#include +#include +#include static void RefineTolerance(const TopoDS_Face& aF, diff --git a/src/BRepClass/BRepClass_Intersector.hxx b/src/BRepClass/BRepClass_Intersector.hxx new file mode 100644 index 0000000000..e1b174298c --- /dev/null +++ b/src/BRepClass/BRepClass_Intersector.hxx @@ -0,0 +1,73 @@ +// 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_Intersector_HeaderFile +#define _BRepClass_Intersector_HeaderFile + +#include +#include +#include + +#include +#include +class gp_Lin2d; +class BRepClass_Edge; +class gp_Dir2d; + + +//! Intersect an Edge with a segment. +//! Implement the Intersector2d required by the classifier. +class BRepClass_Intersector : public Geom2dInt_IntConicCurveOfGInter +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepClass_Intersector(); + + //! Intersect the line segment and the edge. + Standard_EXPORT void Perform (const gp_Lin2d& L, const Standard_Real P, const Standard_Real Tol, const BRepClass_Edge& E); + + //! Returns in , and the tangent, normal + //! and curvature of the edge at parameter value + //! . + Standard_EXPORT void LocalGeometry (const BRepClass_Edge& E, const Standard_Real U, gp_Dir2d& T, gp_Dir2d& N, Standard_Real& C) const; + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepClass_Intersector_HeaderFile diff --git a/src/BRepClass/FILES b/src/BRepClass/FILES new file mode 100644 index 0000000000..3ead0971f8 --- /dev/null +++ b/src/BRepClass/FILES @@ -0,0 +1,16 @@ +BRepClass_Edge.cxx +BRepClass_Edge.hxx +BRepClass_Edge.lxx +BRepClass_FaceClassifier.cxx +BRepClass_FaceClassifier.hxx +BRepClass_FaceExplorer.cxx +BRepClass_FaceExplorer.hxx +BRepClass_FaceExplorer.lxx +BRepClass_FacePassiveClassifier.hxx +BRepClass_FacePassiveClassifier_0.cxx +BRepClass_FClass2dOfFClassifier.hxx +BRepClass_FClass2dOfFClassifier_0.cxx +BRepClass_FClassifier.hxx +BRepClass_FClassifier_0.cxx +BRepClass_Intersector.cxx +BRepClass_Intersector.hxx diff --git a/src/BRepClass3d/BRepClass3d.cdl b/src/BRepClass3d/BRepClass3d.cdl deleted file mode 100644 index 41b62530c3..0000000000 --- a/src/BRepClass3d/BRepClass3d.cdl +++ /dev/null @@ -1,58 +0,0 @@ --- 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. - -package BRepClass3d - -uses - gp, - TopAbs, - TopoDS, - TopTools, - TCollection, - TopExp, - TopClass, - BRepClass, - Geom2dInt, - IntCurveSurface, - IntCurvesFace, - Bnd, - BRepAdaptor - - -is - - class Intersector3d; - - imported MapOfInter; - - imported DataMapIteratorOfMapOfInter; - - class SolidExplorer; - - class SolidPassiveClassifier instantiates - Classifier3d from TopClass (Intersector3d from BRepClass3d); - - class SClassifier; - - class SolidClassifier; - - OuterShell(S : Solid from TopoDS) - returns Shell from TopoDS; - ---Purpose: Returns the outer most shell of . Returns a Null - -- shell if has no outer shell. - -- If has only one shell, then it will return, without checking orientation. - -end BRepClass3d; diff --git a/src/BRepClass3d/BRepClass3d.cxx b/src/BRepClass3d/BRepClass3d.cxx index 5c1496e5a7..29ab06ef0f 100644 --- a/src/BRepClass3d/BRepClass3d.cxx +++ b/src/BRepClass3d/BRepClass3d.cxx @@ -19,19 +19,14 @@ // Author: // -#include - - -#include -#include - -#include -#include -#include - #include +#include #include - +#include +#include +#include +#include +#include static Standard_Boolean IsInternal(const TopoDS_Shell& aSx); diff --git a/src/BRepClass3d/BRepClass3d.hxx b/src/BRepClass3d/BRepClass3d.hxx new file mode 100644 index 0000000000..45c8299d4c --- /dev/null +++ b/src/BRepClass3d/BRepClass3d.hxx @@ -0,0 +1,74 @@ +// 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_HeaderFile +#define _BRepClass3d_HeaderFile + +#include +#include +#include + +class TopoDS_Shell; +class TopoDS_Solid; +class BRepClass3d_Intersector3d; +class BRepClass3d_SolidExplorer; +class BRepClass3d_SolidPassiveClassifier; +class BRepClass3d_SClassifier; +class BRepClass3d_SolidClassifier; + + + +class BRepClass3d +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Returns the outer most shell of . Returns a Null + //! shell if has no outer shell. + //! If has only one shell, then it will return, without checking orientation. + Standard_EXPORT static TopoDS_Shell OuterShell (const TopoDS_Solid& S); + + + + +protected: + + + + + +private: + + + + +friend class BRepClass3d_Intersector3d; +friend class BRepClass3d_SolidExplorer; +friend class BRepClass3d_SolidPassiveClassifier; +friend class BRepClass3d_SClassifier; +friend class BRepClass3d_SolidClassifier; + +}; + + + + + + + +#endif // _BRepClass3d_HeaderFile diff --git a/src/BRepClass3d/BRepClass3d_Intersector3d.cdl b/src/BRepClass3d/BRepClass3d_Intersector3d.cdl deleted file mode 100644 index 1f302a558c..0000000000 --- a/src/BRepClass3d/BRepClass3d_Intersector3d.cdl +++ /dev/null @@ -1,146 +0,0 @@ --- Created on: 1994-04-01 --- 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. - -class Intersector3d from BRepClass3d - - -uses - Lin from gp, - Pnt from gp, - Face from TopoDS, - Shape from TopoDS, - State from TopAbs, - TransitionOnCurve from IntCurveSurface - -is - - Create returns Intersector3d from BRepClass3d; - ---Purpose: Empty constructor. - - Perform(me: in out; L : Lin from gp; - Prm : Real from Standard; - Tol : Real from Standard; - F : Face from TopoDS) - ---Purpose: Perform the intersection between the - -- segment L(0) ... L(Prm) and the Shape . - -- - -- Only the point with the smallest parameter on the - -- line is returned. - -- - -- The Tolerance is used to determine if the - -- first point of the segment is near the face. In - -- that case, the parameter of the intersection point - -- on the line can be a negative value (greater than -Tol). - is static; - - - IsDone(me) - ---Purpose: True is returned when the intersection have been computed. - ---C++: inline - returns Boolean from Standard - is static; - - - HasAPoint(me) - ---Purpose: True is returned if a point has been found. - ---C++: inline - returns Boolean from Standard - is static; - - - UParameter(me) - ---Purpose: Returns the U parameter of the intersection point - -- on the surface. - ---C++: inline - returns Real from Standard - is static; - - VParameter(me) - ---Purpose: Returns the V parameter of the intersection point - -- on the surface. - ---C++: inline - returns Real from Standard - is static; - - WParameter(me) - ---Purpose: Returns the parameter of the intersection point - -- on the line. - ---C++: inline - returns Real from Standard - is static; - - - Pnt(me) - ---Purpose: Returns the geometric point of the intersection - -- between the line and the surface. - ---C++: inline - ---C++: return const & - returns Pnt from gp - is static; - - - Transition(me) - ---Purpose: Returns the transition of the line on the surface. - ---C++: inline - returns TransitionOnCurve from IntCurveSurface - is static; - - - State(me) - ---Purpose: Returns the state of the point on the face. - -- The values can be either TopAbs_IN - -- ( the point is in the face) - -- or TopAbs_ON - -- ( the point is on a boudary of the face). - ---C++: inline - - returns State from TopAbs - is static; - - Face(me) - ---Purpose: Returns the significant face used to determine - -- the intersection. - -- - ---C++: inline - ---C++: return const & - returns Face from TopoDS - is static; - - - ---------------------- Local Geometry avec courbureS dans une - -- direction et la direction normale - -fields - - pnt : Pnt from gp; - U : Real from Standard; - V : Real from Standard; - W : Real from Standard; - transition : TransitionOnCurve from IntCurveSurface; - done : Boolean from Standard; - hasapoint : Boolean from Standard; - state : State from TopAbs; - face : Face from TopoDS; - -end Intersector3d; - - - - - - - - diff --git a/src/BRepClass3d/BRepClass3d_Intersector3d.cxx b/src/BRepClass3d/BRepClass3d_Intersector3d.cxx index ccce5b00bb..1309b0b061 100644 --- a/src/BRepClass3d/BRepClass3d_Intersector3d.cxx +++ b/src/BRepClass3d/BRepClass3d_Intersector3d.cxx @@ -14,23 +14,20 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include - -#include #include -#include -#include +#include #include - +#include #include - #include -#include +#include +#include +#include +#include +#include +#include +#include //============================================================================ BRepClass3d_Intersector3d::BRepClass3d_Intersector3d() diff --git a/src/BRepClass3d/BRepClass3d_Intersector3d.hxx b/src/BRepClass3d/BRepClass3d_Intersector3d.hxx new file mode 100644 index 0000000000..4c6d7765e5 --- /dev/null +++ b/src/BRepClass3d/BRepClass3d_Intersector3d.hxx @@ -0,0 +1,127 @@ +// Created on: 1994-04-01 +// 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_Intersector3d_HeaderFile +#define _BRepClass3d_Intersector3d_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class gp_Lin; +class TopoDS_Face; +class gp_Pnt; + + + +class BRepClass3d_Intersector3d +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor. + Standard_EXPORT BRepClass3d_Intersector3d(); + + //! Perform the intersection between the + //! segment L(0) ... L(Prm) and the Shape . + //! + //! Only the point with the smallest parameter on the + //! line is returned. + //! + //! The Tolerance is used to determine if the + //! first point of the segment is near the face. In + //! that case, the parameter of the intersection point + //! on the line can be a negative value (greater than -Tol). + Standard_EXPORT void Perform (const gp_Lin& L, const Standard_Real Prm, const Standard_Real Tol, const TopoDS_Face& F); + + //! True is returned when the intersection have been computed. + Standard_Boolean IsDone() const; + + //! True is returned if a point has been found. + Standard_Boolean HasAPoint() const; + + //! Returns the U parameter of the intersection point + //! on the surface. + Standard_Real UParameter() const; + + //! Returns the V parameter of the intersection point + //! on the surface. + Standard_Real VParameter() const; + + //! Returns the parameter of the intersection point + //! on the line. + Standard_Real WParameter() const; + + //! Returns the geometric point of the intersection + //! between the line and the surface. + const gp_Pnt& Pnt() const; + + //! Returns the transition of the line on the surface. + IntCurveSurface_TransitionOnCurve Transition() const; + + //! Returns the state of the point on the face. + //! The values can be either TopAbs_IN + //! ( the point is in the face) + //! or TopAbs_ON + //! ( the point is on a boudary of the face). + TopAbs_State State() const; + + //! Returns the significant face used to determine + //! the intersection. + const TopoDS_Face& Face() const; + + + + +protected: + + + + + +private: + + + + gp_Pnt pnt; + Standard_Real U; + Standard_Real V; + Standard_Real W; + IntCurveSurface_TransitionOnCurve transition; + Standard_Boolean done; + Standard_Boolean hasapoint; + TopAbs_State state; + TopoDS_Face face; + + +}; + + +#include + + + + + +#endif // _BRepClass3d_Intersector3d_HeaderFile diff --git a/src/BRepClass3d/BRepClass3d_SClassifier.cdl b/src/BRepClass3d/BRepClass3d_SClassifier.cdl deleted file mode 100644 index feb7bd25fa..0000000000 --- a/src/BRepClass3d/BRepClass3d_SClassifier.cdl +++ /dev/null @@ -1,96 +0,0 @@ --- 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. - -class SClassifier from BRepClass3d - - ---Purpose: Provides an algorithm to classify a point in a solid. - -uses - Pnt from gp, - Face from TopoDS, - Shape from TopoDS, - State from TopAbs, - SolidExplorer from BRepClass3d - -raises - DomainError from Standard - - - -is - - Create - ---Purpose: Empty constructor. - returns SClassifier from BRepClass3d; - - - Create(S : in out SolidExplorer from BRepClass3d; - P : Pnt from gp; - Tol : Real from Standard) - ---Purpose: Constructor to classify the point P with the - -- tolerance Tol on the solid S. - returns SClassifier from BRepClass3d; - - - Perform(me : in out; - S : in out SolidExplorer from BRepClass3d; - P : Pnt from gp; - Tol : Real from Standard); - ---Purpose: Classify the point P with the - -- tolerance Tol on the solid S. - -- - PerformInfinitePoint(me : in out; - S : in out SolidExplorer from BRepClass3d; - Tol : Real from Standard); - ---Purpose: Classify an infinite point with the - -- tolerance Tol on the solid S. - - - Rejected(me) - ---Purpose: Returns True if the classification has been - -- computed by rejection. - -- The State is then OUT. - returns Boolean from Standard; - - - State(me) returns State from TopAbs; - ---Purpose: Returns the result of the classification. - - IsOnAFace(me) returns Boolean from Standard; - ---Purpose: Returns True when the point is a point of a face. - - Face(me) - ---Purpose: 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. - returns Face from TopoDS; - - - ForceIn(me: in out) - is protected; - - ForceOut(me: in out) - is protected; - - -fields - - myFace : Face from TopoDS; - myState : Integer from Standard; -- 1: Rejected 2: IsOnFace 3: In 4: Out - -end SClassifier; diff --git a/src/BRepClass3d/BRepClass3d_SClassifier.cxx b/src/BRepClass3d/BRepClass3d_SClassifier.cxx index 4d01b2021b..860db3b090 100644 --- a/src/BRepClass3d/BRepClass3d_SClassifier.cxx +++ b/src/BRepClass3d/BRepClass3d_SClassifier.cxx @@ -16,23 +16,24 @@ // Modified by skv - Thu Sep 4 11:22:05 2003 OCC578 -#include - -#include -#include -#include +#include #include -#include - -#include -// modified by NIZHNY-MKK Mon Jun 21 15:13:40 2004 -#include +#include +#include +#include #include #include -#include +#include +#include +#include +#include #include -#include +#include +#include +#include +#include +// modified by NIZHNY-MKK Mon Jun 21 15:13:40 2004 static Standard_Boolean FaceNormal (const TopoDS_Face& aF, const Standard_Real U, diff --git a/src/BRepClass3d/BRepClass3d_SClassifier.hxx b/src/BRepClass3d/BRepClass3d_SClassifier.hxx new file mode 100644 index 0000000000..7fa46317e7 --- /dev/null +++ b/src/BRepClass3d/BRepClass3d_SClassifier.hxx @@ -0,0 +1,105 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +class Standard_DomainError; +class BRepClass3d_SolidExplorer; +class gp_Pnt; +class TopoDS_Face; + + +//! 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; + Standard_Integer myState; + + +}; + + + + + + + +#endif // _BRepClass3d_SClassifier_HeaderFile diff --git a/src/BRepClass3d/BRepClass3d_SolidClassifier.cdl b/src/BRepClass3d/BRepClass3d_SolidClassifier.cdl deleted file mode 100644 index 3292d7a9e6..0000000000 --- a/src/BRepClass3d/BRepClass3d_SolidClassifier.cdl +++ /dev/null @@ -1,80 +0,0 @@ --- Created on: 1994-03-30 --- 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. - -class SolidClassifier from BRepClass3d inherits SClassifier from BRepClass3d - - ---Purpose: Provides an algorithm to classify a point in a solid. - - - -uses - Pnt from gp, - Face from TopoDS, - Shape from TopoDS, - SolidExplorer from BRepClass3d - -raises - - DomainError from Standard - -is - - - Create - ---Purpose : empty constructor - returns SolidClassifier from BRepClass3d; - - Load(me:in out; S : Shape from TopoDS) - is static; - - - Create(S : Shape from TopoDS) - ---Purpose: Constructor from a Shape. - returns SolidClassifier from BRepClass3d; - - - Create(S : Shape from TopoDS; - P : Pnt from gp; - Tol : Real from Standard) - ---Purpose: Constructor to classify the point P with the - -- tolerance Tol on the solid S. - returns SolidClassifier from BRepClass3d; - - - Perform(me: in out; - P : Pnt from gp; - Tol : Real from Standard) - ---Purpose: Classify the point P with the - -- tolerance Tol on the solid S. - is static; - - PerformInfinitePoint(me: in out; - Tol : Real from Standard) - ---Purpose: Classify an infinite point with the - -- tolerance Tol on the solid S. - -- Useful for compute the orientation of a solid. - is static; - - Destroy(me:in out) - ---C++: alias ~ - is static; - - -fields - aSolidLoaded : Boolean from Standard; - explorer : SolidExplorer from BRepClass3d; - isaholeinspace : Boolean from Standard; -end SolidClassifier; diff --git a/src/BRepClass3d/BRepClass3d_SolidClassifier.cxx b/src/BRepClass3d/BRepClass3d_SolidClassifier.cxx index 4581727c1d..54e9c68525 100644 --- a/src/BRepClass3d/BRepClass3d_SolidClassifier.cxx +++ b/src/BRepClass3d/BRepClass3d_SolidClassifier.cxx @@ -57,9 +57,9 @@ static StatistiquesBRepClass3d STAT; #endif - -#include - +#include +#include +#include #include BRepClass3d_SolidClassifier::BRepClass3d_SolidClassifier() diff --git a/src/BRepClass3d/BRepClass3d_SolidClassifier.hxx b/src/BRepClass3d/BRepClass3d_SolidClassifier.hxx new file mode 100644 index 0000000000..6ec3d2449c --- /dev/null +++ b/src/BRepClass3d/BRepClass3d_SolidClassifier.hxx @@ -0,0 +1,94 @@ +// Created on: 1994-03-30 +// 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_SolidClassifier_HeaderFile +#define _BRepClass3d_SolidClassifier_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class Standard_DomainError; +class TopoDS_Shape; +class gp_Pnt; + + +//! Provides an algorithm to classify a point in a solid. +class BRepClass3d_SolidClassifier : public BRepClass3d_SClassifier +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! empty constructor + Standard_EXPORT BRepClass3d_SolidClassifier(); + + Standard_EXPORT void Load (const TopoDS_Shape& S); + + //! Constructor from a Shape. + Standard_EXPORT BRepClass3d_SolidClassifier(const TopoDS_Shape& S); + + //! Constructor to classify the point P with the + //! tolerance Tol on the solid S. + Standard_EXPORT BRepClass3d_SolidClassifier(const TopoDS_Shape& 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 (const gp_Pnt& P, const Standard_Real Tol); + + //! Classify an infinite point with the + //! tolerance Tol on the solid S. + //! Useful for compute the orientation of a solid. + Standard_EXPORT void PerformInfinitePoint (const Standard_Real Tol); + + Standard_EXPORT void Destroy(); +~BRepClass3d_SolidClassifier() +{ + Destroy(); +} + + + + +protected: + + + + + +private: + + + + Standard_Boolean aSolidLoaded; + BRepClass3d_SolidExplorer explorer; + Standard_Boolean isaholeinspace; + + +}; + + + + + + + +#endif // _BRepClass3d_SolidClassifier_HeaderFile diff --git a/src/BRepClass3d/BRepClass3d_SolidExplorer.cdl b/src/BRepClass3d/BRepClass3d_SolidExplorer.cdl deleted file mode 100644 index 0fa51eedc1..0000000000 --- a/src/BRepClass3d/BRepClass3d_SolidExplorer.cdl +++ /dev/null @@ -1,219 +0,0 @@ --- Created on: 1994-03-10 --- 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. - --- Modified by skv - Thu Sep 4 12:19:22 2003 OCC578 --- Add the method GetFaceSegmentIndex() which is used to obtain the index of --- the face for which last segment is calculated. - -class SolidExplorer from BRepClass3d - - ---Purpose: Provide an exploration of a BRep Shape for the - -- classification. - -uses - Orientation from TopAbs, - Pnt from gp, - Pnt2d from gp, - Lin from gp, - Vec from gp, - Face from TopoDS, - Shell from TopoDS, - Shape from TopoDS, - Explorer from TopExp, - Edge from BRepClass, - Box from Bnd, - State from TopAbs, - Intersector from IntCurvesFace, - MapOfInter from BRepClass3d, - HSurface from BRepAdaptor -is - - Create returns SolidExplorer from BRepClass3d; - - Create (Oth: SolidExplorer from BRepClass3d) - ---Purpose: Raise if called. - returns SolidExplorer from BRepClass3d; - - Create (S : Shape from TopoDS) returns SolidExplorer from BRepClass3d; - - Delete(me:out) is virtual; - ---C++: alias "Standard_EXPORT virtual ~BRepClass3d_SolidExplorer(){Destroy() ; }" - - InitShape(me : in out; S : Shape from TopoDS) is static ; - - Reject(me; P : Pnt from gp) returns Boolean is virtual ; - ---Purpose: Should return True if P outside of bounding vol. of the shape - - FindAPointInTheFace(myclass; F: Face from TopoDS; - P: out Pnt from gp; - Param: out Real from Standard) - ---Purpose : compute a point P in the face F. Param is a Real in - -- ]0,1[ and is used to initialise the algorithm. For - -- different values , different points are returned. - returns Boolean from Standard; - - FindAPointInTheFace(myclass; F: Face from TopoDS; - P: out Pnt from gp; - u,v: out Real from Standard; - Param: out Real from Standard) - returns Boolean from Standard; - - FindAPointInTheFace(myclass; F: Face from TopoDS; - P: out Pnt from gp; - u,v: out Real from Standard; - Param: out Real from Standard; - theVecD1U, theVecD1V: out Vec from gp) - returns Boolean from Standard; - - FindAPointInTheFace(myclass; F: Face from TopoDS; - P: out Pnt from gp; - u,v: out Real from Standard) - returns Boolean from Standard; - - FindAPointInTheFace(myclass; F: Face from TopoDS; - P: out Pnt from gp) - returns Boolean from Standard; - - FindAPointInTheFace(myclass; F: Face from TopoDS; - u,v: out Real from Standard) - returns Boolean from Standard; - - ----------------------------------------------------------------------- - - PointInTheFace(me; F: Face from TopoDS; - P: out Pnt from gp; - u,v: out Real from Standard; - Param: out Real from Standard; - Index: out Integer from Standard) - returns Boolean from Standard is static ; - - PointInTheFace(me; F: Face from TopoDS; - P: out Pnt from gp; - u,v: out Real from Standard; - Param: out Real from Standard; - Index: out Integer from Standard; - surf: HSurface from BRepAdaptor; - u1,v1,u2,v2: Real from Standard) - returns Boolean from Standard is static; - - PointInTheFace(me; F: Face from TopoDS; - P: out Pnt from gp; - u,v: out Real from Standard; - Param: out Real from Standard; - Index: out Integer from Standard; - surf: HSurface from BRepAdaptor; - u1,v1,u2,v2: Real from Standard; - theVecD1U, theVecD1V: out Vec from gp) - returns Boolean from Standard is static ; - ---Purpose: gives point index to search from and returns - -- point index of succeseful search - - - - InitShell(me: in out) is static ; - ---Purpose: Starts an exploration of the shells. - MoreShell(me) returns Boolean from Standard is static ; - ---Purpose: Returns True if there is a current shell. - NextShell(me: in out) is static ; - ---Purpose: Sets the explorer to the next shell. - CurrentShell(me) returns Shell from TopoDS is static ; - ---Purpose: Returns the current shell. - - RejectShell(me; L: Lin from gp) returns Boolean from Standard is virtual; - ---Purpose: Returns True if the Shell is rejected. - - InitFace(me: in out) is static ; - ---Purpose: Starts an exploration of the faces of the current shell. - MoreFace(me) returns Boolean from Standard is static ; - ---Purpose: Returns True if current face in current shell. - NextFace(me: in out) is static ; - ---Purpose: Sets the explorer to the next Face of the current shell. - CurrentFace(me) returns Face from TopoDS is static ; - ---Purpose: Returns the current face. - - RejectFace(me; L: Lin from gp) returns Boolean from Standard is virtual; - ---Purpose: returns True if the face is rejected. - - ---------------------------------------------------------------------- - - Segment(me: in out; P : Pnt from gp; - L : out Lin from gp; Par : out Real) - ---Purpose: Returns in , a segment having at least - -- one intersection with the shape boundary to - -- compute intersections. - -- - --modified by NIZNHY-PKV Thu Nov 14 12:20:17 2002 f - returns Integer from Standard ---modified by NIZNHY-PKV Thu Nov 14 12:20:21 2002 t - is static; - - OtherSegment(me: in out; P : Pnt from gp; - L : out Lin from gp; Par : out Real) - ---Purpose: Returns in , a segment having at least - -- one intersection with the shape boundary to - -- compute intersections. - -- - -- The First Call to this method returns a line which - -- point to a point of the first face of the shape. - -- The Second Call provide a line to the second face - -- and so on. - -- ---modified by NIZNHY-PKV Thu Nov 14 12:20:17 2002 f - returns Integer from Standard ---modified by NIZNHY-PKV Thu Nov 14 12:20:21 2002 t - is static; - --- Modified by skv - Thu Sep 4 12:19:22 2003 OCC578 Begin - GetFaceSegmentIndex(me) - ---Purpose: Returns the index of face for which - -- last segment is calculated. - returns Integer from Standard - is static; --- Modified by skv - Thu Sep 4 12:19:23 2003 OCC578 End - -------------------------------------------------------------------- - - --- Dump method - - DumpSegment(me; P : Pnt from gp; L : Lin from gp; - Par : Real from Standard; S : State from TopAbs) is virtual; - - - Box(me) - ---C++: return const & - returns Box from Bnd - is static; - - Intersector(me; F : Face from TopoDS) - ---C++: return & - returns Intersector from IntCurvesFace is static; - - Destroy(me: in out) - --C++: alias ~ - is static; - -fields - - myBox : Box from Bnd; - myShape : Shape from TopoDS; - myReject : Boolean from Standard; - myFirstFace : Integer from Standard; - myParamOnEdge : Real from Standard; - myShellExplorer : Explorer from TopExp; - myFaceExplorer : Explorer from TopExp; - - myMapOfInter : MapOfInter from BRepClass3d; - -end SolidExplorer; diff --git a/src/BRepClass3d/BRepClass3d_SolidExplorer.cxx b/src/BRepClass3d/BRepClass3d_SolidExplorer.cxx index b9e132c92f..99b60c99eb 100644 --- a/src/BRepClass3d/BRepClass3d_SolidExplorer.cxx +++ b/src/BRepClass3d/BRepClass3d_SolidExplorer.cxx @@ -24,46 +24,47 @@ #define REJECTION 1 //-- To printf on NT -#include -#include -#include -#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include #include -#include #include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include - -#include -#include - -#include - -#include +#include +#include +#include +#include -#include -#include +#include //OCC454(apo)-> -#include -#include -#include //<-OCC454(apo) -#include - - //======================================================================= //function : FindAPointInTheFace //purpose : Compute a point P in the face F. Param is a Real in // ]0,1[ and is used to initialise the algorithm. For // different values , different points are returned. //======================================================================= - Standard_Boolean BRepClass3d_SolidExplorer::FindAPointInTheFace (const TopoDS_Face& _face, gp_Pnt& APoint_, diff --git a/src/BRepClass3d/BRepClass3d_SolidExplorer.hxx b/src/BRepClass3d/BRepClass3d_SolidExplorer.hxx new file mode 100644 index 0000000000..8873a07184 --- /dev/null +++ b/src/BRepClass3d/BRepClass3d_SolidExplorer.hxx @@ -0,0 +1,178 @@ +// Created on: 1994-03-10 +// 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_SolidExplorer_HeaderFile +#define _BRepClass3d_SolidExplorer_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class gp_Pnt; +class TopoDS_Face; +class gp_Vec; +class BRepAdaptor_HSurface; +class TopoDS_Shell; +class gp_Lin; +class Bnd_Box; +class IntCurvesFace_Intersector; + + +//! Provide an exploration of a BRep Shape for the +//! classification. +class BRepClass3d_SolidExplorer +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepClass3d_SolidExplorer(); + + //! Raise if called. + Standard_EXPORT BRepClass3d_SolidExplorer(const BRepClass3d_SolidExplorer& Oth); + + Standard_EXPORT BRepClass3d_SolidExplorer(const TopoDS_Shape& S); + + Standard_EXPORT virtual void Delete(); +Standard_EXPORT virtual ~BRepClass3d_SolidExplorer(){Destroy() ; } + + Standard_EXPORT void InitShape (const TopoDS_Shape& S); + + //! Should return True if P outside of bounding vol. of the shape + Standard_EXPORT virtual Standard_Boolean Reject (const gp_Pnt& P) const; + + //! compute a point P in the face F. Param is a Real in + //! ]0,1[ and is used to initialise the algorithm. For + //! different values , different points are returned. + Standard_EXPORT static Standard_Boolean FindAPointInTheFace (const TopoDS_Face& F, gp_Pnt& P, Standard_Real& Param); + + Standard_EXPORT static Standard_Boolean FindAPointInTheFace (const TopoDS_Face& F, gp_Pnt& P, Standard_Real& u, Standard_Real& v, Standard_Real& Param); + + Standard_EXPORT static Standard_Boolean FindAPointInTheFace (const TopoDS_Face& F, gp_Pnt& P, Standard_Real& u, Standard_Real& v, Standard_Real& Param, gp_Vec& theVecD1U, gp_Vec& theVecD1V); + + Standard_EXPORT static Standard_Boolean FindAPointInTheFace (const TopoDS_Face& F, gp_Pnt& P, Standard_Real& u, Standard_Real& v); + + Standard_EXPORT static Standard_Boolean FindAPointInTheFace (const TopoDS_Face& F, gp_Pnt& P); + + Standard_EXPORT static Standard_Boolean FindAPointInTheFace (const TopoDS_Face& F, Standard_Real& u, Standard_Real& v); + + Standard_EXPORT Standard_Boolean PointInTheFace (const TopoDS_Face& F, gp_Pnt& P, Standard_Real& u, Standard_Real& v, Standard_Real& Param, Standard_Integer& Index) const; + + Standard_EXPORT Standard_Boolean PointInTheFace (const TopoDS_Face& F, gp_Pnt& P, Standard_Real& u, Standard_Real& v, Standard_Real& Param, Standard_Integer& Index, const Handle(BRepAdaptor_HSurface)& surf, const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2) const; + + //! gives point index to search from and returns + //! point index of succeseful search + Standard_EXPORT Standard_Boolean PointInTheFace (const TopoDS_Face& F, gp_Pnt& P, Standard_Real& u, Standard_Real& v, Standard_Real& Param, Standard_Integer& Index, const Handle(BRepAdaptor_HSurface)& surf, const Standard_Real u1, const Standard_Real v1, const Standard_Real u2, const Standard_Real v2, gp_Vec& theVecD1U, gp_Vec& theVecD1V) const; + + //! Starts an exploration of the shells. + Standard_EXPORT void InitShell(); + + //! Returns True if there is a current shell. + Standard_EXPORT Standard_Boolean MoreShell() const; + + //! Sets the explorer to the next shell. + Standard_EXPORT void NextShell(); + + //! Returns the current shell. + Standard_EXPORT TopoDS_Shell CurrentShell() const; + + //! Returns True if the Shell is rejected. + Standard_EXPORT virtual Standard_Boolean RejectShell (const gp_Lin& L) const; + + //! Starts an exploration of the faces of the current shell. + Standard_EXPORT void InitFace(); + + //! Returns True if current face in current shell. + Standard_EXPORT Standard_Boolean MoreFace() const; + + //! Sets the explorer to the next Face of the current shell. + Standard_EXPORT void NextFace(); + + //! Returns the current face. + Standard_EXPORT TopoDS_Face CurrentFace() const; + + //! returns True if the face is rejected. + Standard_EXPORT virtual Standard_Boolean RejectFace (const gp_Lin& L) const; + + //! Returns in , a segment having at least + //! one intersection with the shape boundary to + //! compute intersections. + Standard_EXPORT Standard_Integer Segment (const gp_Pnt& P, gp_Lin& L, Standard_Real& Par); + + //! Returns in , a segment having at least + //! one intersection with the shape boundary to + //! compute intersections. + //! + //! The First Call to this method returns a line which + //! point to a point of the first face of the shape. + //! The Second Call provide a line to the second face + //! and so on. + Standard_EXPORT Standard_Integer OtherSegment (const gp_Pnt& P, gp_Lin& L, Standard_Real& Par); + + //! Returns the index of face for which + //! last segment is calculated. + Standard_EXPORT Standard_Integer GetFaceSegmentIndex() const; + + Standard_EXPORT virtual void DumpSegment (const gp_Pnt& P, const gp_Lin& L, const Standard_Real Par, const TopAbs_State S) const; + + Standard_EXPORT const Bnd_Box& Box() const; + + Standard_EXPORT IntCurvesFace_Intersector& Intersector (const TopoDS_Face& F) const; + + Standard_EXPORT void Destroy(); + + + + +protected: + + + + + +private: + + + + Bnd_Box myBox; + TopoDS_Shape myShape; + Standard_Boolean myReject; + Standard_Integer myFirstFace; + Standard_Real myParamOnEdge; + TopExp_Explorer myShellExplorer; + TopExp_Explorer myFaceExplorer; + BRepClass3d_MapOfInter myMapOfInter; + + +}; + + + + + + + +#endif // _BRepClass3d_SolidExplorer_HeaderFile diff --git a/src/BRepClass3d/BRepClass3d_SolidPassiveClassifier.hxx b/src/BRepClass3d/BRepClass3d_SolidPassiveClassifier.hxx new file mode 100644 index 0000000000..a60d135ead --- /dev/null +++ b/src/BRepClass3d/BRepClass3d_SolidPassiveClassifier.hxx @@ -0,0 +1,99 @@ +// 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_SolidPassiveClassifier_HeaderFile +#define _BRepClass3d_SolidPassiveClassifier_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Standard_DomainError; +class BRepClass3d_Intersector3d; +class gp_Lin; +class TopoDS_Face; + + + +class BRepClass3d_SolidPassiveClassifier +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepClass3d_SolidPassiveClassifier(); + + Standard_EXPORT void Reset (const gp_Lin& L, const Standard_Real P, const Standard_Real Tol); + + Standard_EXPORT void Compare (const TopoDS_Face& F, const TopAbs_Orientation Or); + + Standard_Real Parameter() const; + + Standard_EXPORT Standard_Boolean HasIntersection() const; + + BRepClass3d_Intersector3d& Intersector(); + + TopAbs_State State() const; + + + + +protected: + + + + + +private: + + + + Standard_Boolean isSet; + TopoDS_Face myFace; + gp_Lin myLin; + Standard_Real myParam; + Standard_Real myTolerance; + TopAbs_State myState; + Standard_Boolean hasIntersect; + BRepClass3d_Intersector3d myIntersector; + + +}; + +#define TheIntersector BRepClass3d_Intersector3d +#define TheIntersector_hxx +#define TopClass_Classifier3d BRepClass3d_SolidPassiveClassifier +#define TopClass_Classifier3d_hxx + +#include + +#undef TheIntersector +#undef TheIntersector_hxx +#undef TopClass_Classifier3d +#undef TopClass_Classifier3d_hxx + + + + +#endif // _BRepClass3d_SolidPassiveClassifier_HeaderFile diff --git a/src/BRepClass3d/BRepClass3d_SolidPassiveClassifier_0.cxx b/src/BRepClass3d/BRepClass3d_SolidPassiveClassifier_0.cxx new file mode 100644 index 0000000000..76f0849d53 --- /dev/null +++ b/src/BRepClass3d/BRepClass3d_SolidPassiveClassifier_0.cxx @@ -0,0 +1,30 @@ +// 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. + +#include + +#include +#include +#include +#include + + +#define TheIntersector BRepClass3d_Intersector3d +#define TheIntersector_hxx +#define TopClass_Classifier3d BRepClass3d_SolidPassiveClassifier +#define TopClass_Classifier3d_hxx +#include + diff --git a/src/BRepClass3d/FILES b/src/BRepClass3d/FILES index 2c9f216dfc..5801626254 100644 --- a/src/BRepClass3d/FILES +++ b/src/BRepClass3d/FILES @@ -1,2 +1,15 @@ -BRepClass3d_MapOfInter.hxx +BRepClass3d.cxx +BRepClass3d.hxx BRepClass3d_DataMapIteratorOfMapOfInter.hxx +BRepClass3d_Intersector3d.cxx +BRepClass3d_Intersector3d.hxx +BRepClass3d_Intersector3d.lxx +BRepClass3d_MapOfInter.hxx +BRepClass3d_SClassifier.cxx +BRepClass3d_SClassifier.hxx +BRepClass3d_SolidClassifier.cxx +BRepClass3d_SolidClassifier.hxx +BRepClass3d_SolidExplorer.cxx +BRepClass3d_SolidExplorer.hxx +BRepClass3d_SolidPassiveClassifier.hxx +BRepClass3d_SolidPassiveClassifier_0.cxx diff --git a/src/BRepExtrema/BRepExtrema.cdl b/src/BRepExtrema/BRepExtrema.cdl deleted file mode 100644 index 66337396e8..0000000000 --- a/src/BRepExtrema/BRepExtrema.cdl +++ /dev/null @@ -1,111 +0,0 @@ --- Created on: 1993-12-03 --- Created by: Christophe MARION --- 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. - -package BRepExtrema - - ---Purpose: This package gives tools to compute extrema between - -- Shapes from BRep. - -uses - Standard, - StdFail, - TopoDS, - GeomAdaptor, - BRepAdaptor, - gp, - Extrema, - TColStd, - TopTools, - TCollection, - Bnd - -is - - ---------------------------------------------------------- - -- Extrema between two Shapes with triangulation. - ---------------------------------------------------------- - imported Poly; - - - ---------------------------------------------------------- - -- Extrema between a Point and an Edge. - ---------------------------------------------------------- - imported ExtPC; - - - ---------------------------------------------------------- - -- Extrema between two Edges. - ---------------------------------------------------------- - imported ExtCC; - - - ---------------------------------------------------------- - -- Extrema between a Point and a Face. - ---------------------------------------------------------- - imported ExtPF; - - - ---------------------------------------------------------- - -- Extrema between an Edge and a Face. - ---------------------------------------------------------- - imported ExtCF; - - - ---------------------------------------------------------- - -- Extrema between two Faces. - ---------------------------------------------------------- - imported ExtFF; - - - ---------------------------------------------------------- - -- - ---------------------------------------------------------- - exception UnCompatibleShape inherits DomainError; - - - ---------------------------------------------------------- - -- enumeration used to describe the type of the support solution: - -- IsVertex => The solution is a vertex. - -- IsOnEdge => The solution belongs to an Edge. - -- IsInFace => The solution is inside a Face. - - ---------------------------------------------------------- - imported SupportType; - - - ---------------------------------------------------------- - -- This class gives tools to compute the minimum distance value - -- between two shapes and the corresponding couples of solution points. - - ---------------------------------------------------------- - imported DistShapeShape; - - - ---------------------------------------------------------- - -- This class is used to store a solution on a Shape. - -- (used only by class DistShapeShape) - ---------------------------------------------------------- - imported SolutionElem; - - - ---------------------------------------------------------- - -- This sequence is used to store all the solution on each Shape. - ---------------------------------------------------------- - imported SeqOfSolution; - - imported DistanceSS; - -end BRepExtrema; diff --git a/src/BRepExtrema/BRepExtrema_UnCompatibleShape.hxx b/src/BRepExtrema/BRepExtrema_UnCompatibleShape.hxx new file mode 100644 index 0000000000..4b3aa5439e --- /dev/null +++ b/src/BRepExtrema/BRepExtrema_UnCompatibleShape.hxx @@ -0,0 +1,37 @@ +// Created on: 1993-12-03 +// Created by: Christophe MARION +// 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 _BRepExtrema_UnCompatibleShape_HeaderFile +#define _BRepExtrema_UnCompatibleShape_HeaderFile + +#include +#include +#include +#include + +class BRepExtrema_UnCompatibleShape; +DEFINE_STANDARD_HANDLE(BRepExtrema_UnCompatibleShape, Standard_DomainError) + +#if !defined No_Exception && !defined No_BRepExtrema_UnCompatibleShape + #define BRepExtrema_UnCompatibleShape_Raise_if(CONDITION, MESSAGE) \ + if (CONDITION) BRepExtrema_UnCompatibleShape::Raise(MESSAGE); +#else + #define BRepExtrema_UnCompatibleShape_Raise_if(CONDITION, MESSAGE) +#endif + +DEFINE_STANDARD_EXCEPTION(BRepExtrema_UnCompatibleShape, Standard_DomainError) + +#endif // _BRepExtrema_UnCompatibleShape_HeaderFile diff --git a/src/BRepExtrema/FILES b/src/BRepExtrema/FILES index 85d0537ffe..e9fc5d2f30 100644 --- a/src/BRepExtrema/FILES +++ b/src/BRepExtrema/FILES @@ -1,29 +1,30 @@ -BRepExtrema_DistanceSS.hxx BRepExtrema_DistanceSS.cxx -BRepExtrema_DistShapeShape.hxx +BRepExtrema_DistanceSS.hxx BRepExtrema_DistShapeShape.cxx -BRepExtrema_ExtCC.hxx +BRepExtrema_DistShapeShape.hxx +BRepExtrema_ElementFilter.hxx BRepExtrema_ExtCC.cxx -BRepExtrema_ExtCF.hxx +BRepExtrema_ExtCC.hxx BRepExtrema_ExtCF.cxx -BRepExtrema_ExtFF.hxx +BRepExtrema_ExtCF.hxx BRepExtrema_ExtFF.cxx -BRepExtrema_ExtPC.hxx +BRepExtrema_ExtFF.hxx BRepExtrema_ExtPC.cxx -BRepExtrema_ExtPF.hxx +BRepExtrema_ExtPC.hxx BRepExtrema_ExtPF.cxx -BRepExtrema_Poly.hxx +BRepExtrema_ExtPF.hxx +BRepExtrema_MapOfIntegerPackedMapOfInteger.hxx +BRepExtrema_OverlapTool.cxx +BRepExtrema_OverlapTool.hxx BRepExtrema_Poly.cxx +BRepExtrema_Poly.hxx +BRepExtrema_SelfIntersection.cxx +BRepExtrema_SelfIntersection.hxx BRepExtrema_SeqOfSolution.hxx +BRepExtrema_ShapeProximity.cxx +BRepExtrema_ShapeProximity.hxx BRepExtrema_SolutionElem.hxx BRepExtrema_SupportType.hxx -BRepExtrema_TriangleSet.hxx BRepExtrema_TriangleSet.cxx -BRepExtrema_OverlapTool.hxx -BRepExtrema_OverlapTool.cxx -BRepExtrema_ElementFilter.hxx -BRepExtrema_ShapeProximity.hxx -BRepExtrema_ShapeProximity.cxx -BRepExtrema_SelfIntersection.hxx -BRepExtrema_SelfIntersection.cxx -BRepExtrema_MapOfIntegerPackedMapOfInteger.hxx +BRepExtrema_TriangleSet.hxx +BRepExtrema_UnCompatibleShape.hxx diff --git a/src/BRepFeat/BRepFeat.cdl b/src/BRepFeat/BRepFeat.cdl deleted file mode 100644 index c7bbbfa80c..0000000000 --- a/src/BRepFeat/BRepFeat.cdl +++ /dev/null @@ -1,230 +0,0 @@ --- 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. - -package BRepFeat - - ---Purpose: BRepFeat is necessary for the - -- creation and manipulation of both form and mechanical features in a - -- Boundary Representation framework. Form features can be depressions or - -- protrusions and include the following types: - -- - Cylinder - -- - Draft Prism - -- - Prism - -- - Revolved feature - -- - Pipe - -- Depending on whether you wish to make a depression or a protrusion, - -- you can choose your operation type between the following: - -- - removing matter (a Boolean cut: Fuse setting 0) - -- - adding matter (Boolean fusion: Fuse setting 1) - -- The semantics of form feature creation is based on the - -- construction of shapes: - -- - for a certain length in a certain direction - -- - up to a limiting face - -- - from a limiting face at a height - -- - above and/or below a plane - -- The shape defining the construction of a feature can be either a - -- supporting edge or a concerned area of a face. - -- In case of supporting edge, this contour can be attached to a face - -- of the basis shape by binding. When the contour is bound to this face, - -- the information that the contour will slide on the face becomes - -- available to the relevant class methods. In case of the concerned - -- area of a face, you could, for example, cut it out and move it at - -- a different height, which will define the limiting face of a - -- protrusion or depression. Topological definition with local - -- operations of this sort makes calculations simpler and faster - -- than a global operation. The latter would entail a second phase of - -- removing unwanted matter to get the same result. - -- Mechanical features include ribs - protrusions - and grooves (or - -- slots) - depressions along planar (linear) surfaces or revolution surfaces. - -- The semantics of mechanical features is based on giving - -- thickness to a contour. This thickness can either be unilateral - -- - on one side of the contour - or bilateral - on both sides. As in - -- the semantics of form features, the thickness is defined by - -- construction of shapes in specific contexts. - -- However, in case of mechanical features, development contexts - -- differ. Here they include extrusion: - -- - to a limiting face of the basis shape - -- - to or from a limiting plane - -- - to a height. - -uses BRepBuilderAPI, - LocOpe, - TopoDS, - TopTools, - TopOpeBRepBuild, - Geom, - gp, - TColgp, - TColGeom, - StdFail, - BRepTopAdaptor, - Geom2dAdaptor, - TopAbs, - --modified by NIZNHY-PKV Thu Mar 21 18:31:59 2002 f - BRepAlgoAPI, - BOPAlgo, - BOPDS, - BOPCol, - BOPTools - --BOP - --modified by NIZNHY-PKV Thu Mar 21 18:32:02 2002 t - - -is - - enumeration StatusError is - ---Purpose: Discribes the error. - OK, - BadDirect, - BadIntersect, - EmptyBaryCurve, - EmptyCutResult, - FalseSide, - IncDirection, - IncSlidFace, - IncParameter, - IncTypes, - IntervalOverlap, - InvFirstShape, - InvOption, - InvShape, - LocOpeNotDone, - LocOpeInvNotDone, - NoExtFace, - NoFaceProf, - NoGluer, - NoIntersectF, - NoIntersectU, - NoParts, - NoProjPt, - NotInitialized, - NotYetImplemented, - NullRealTool, - NullToolF, - NullToolU - - end StatusError; - - - class Builder; -- inherits BOP from BOPAlgo - - class MakeCylindricalHole; -- inherits Builder from BRepFeat; - - class SplitShape; -- inherits MakeShape from BRepBuilderAPI; - - deferred class Form; -- inherits MakeShape from BRepBuilderAPI; - - deferred class RibSlot; -- inherits MakeShape from BRepBuilderAPI; - - class MakePrism; -- inherits Form from BRepFeat - - class MakeRevol; -- inherits Form from BRepFeat - - class MakePipe; -- inherits Form from BRepFeat - - class Gluer; -- inherits MakeShape from BRepBuilderAPI - - class MakeDPrism; - - class MakeLinearForm; - - class MakeRevolutionForm; - - enumeration Status is -- to be completed - - NoError, - InvalidPlacement, - HoleTooLong - - end Status; - - enumeration PerfSelection is - - NoSelection, - SelectionFU, - SelectionU, - SelectionSh, - SelectionShU - ---Purpose: 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. - end PerfSelection; - - - SampleEdges(S : Shape from TopoDS; - Pt: in out SequenceOfPnt from TColgp); - - - - Barycenter(S : Shape from TopoDS; - Pt: in out Pnt from gp); - - ParametricBarycenter(S : Shape from TopoDS; - C : Curve from Geom) - - returns Real from Standard; - - ParametricMinMax(S : Shape from TopoDS; - C : Curve from Geom; - prmin : out Real from Standard; - prmax : out Real from Standard; - prbmin: out Real from Standard; - prbmax: out Real from Standard; - flag : out Boolean from Standard; - Ori : Boolean from Standard = Standard_False); - ---Purpose: Ori = True taking account the orientation - - IsInside(F1 : Face from TopoDS; - F2 : Face from TopoDS) - - returns Boolean from Standard; - - IsInOut (FC : FClass2d from BRepTopAdaptor; - AC : Curve from Geom2dAdaptor) - - - returns Boolean from Standard; - - -- TangSli(E : Edge from TopoDS; - -- F : Shape from TopoDS) - - -- returns Boolean from Standard; - - - FaceUntil (S : Shape from TopoDS; - F : in out Face from TopoDS); - - - Tool (SRef : Shape from TopoDS; - Fac : Face from TopoDS; - Orf : Orientation from TopAbs) - - returns Solid from TopoDS; - - Print(SE : StatusError from BRepFeat; S : in out OStream) returns OStream; - ---Purpose: Prints the Error description of the State as a String on - -- the Stream and returns . - -- - ---C++: return & - -end BRepFeat; diff --git a/src/BRepFeat/BRepFeat.cxx b/src/BRepFeat/BRepFeat.cxx index ee1bc190fd..3066daaafb 100644 --- a/src/BRepFeat/BRepFeat.cxx +++ b/src/BRepFeat/BRepFeat.cxx @@ -14,53 +14,51 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -//#include - -#include -#include -#include -#include -#include +#include #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include +#include #include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include #include #include -#include -#include - +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include - -#include - +//#include #define NECHANTBARYC 11 //======================================================================= diff --git a/src/BRepFeat/BRepFeat.hxx b/src/BRepFeat/BRepFeat.hxx new file mode 100644 index 0000000000..968210f367 --- /dev/null +++ b/src/BRepFeat/BRepFeat.hxx @@ -0,0 +1,157 @@ +// 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_HeaderFile +#define _BRepFeat_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class gp_Pnt; +class Geom_Curve; +class TopoDS_Face; +class BRepTopAdaptor_FClass2d; +class Geom2dAdaptor_Curve; +class TopoDS_Solid; +class BRepFeat_Builder; +class BRepFeat_MakeCylindricalHole; +class BRepFeat_SplitShape; +class BRepFeat_Form; +class BRepFeat_RibSlot; +class BRepFeat_MakePrism; +class BRepFeat_MakeRevol; +class BRepFeat_MakePipe; +class BRepFeat_Gluer; +class BRepFeat_MakeDPrism; +class BRepFeat_MakeLinearForm; +class BRepFeat_MakeRevolutionForm; + + +//! BRepFeat is necessary for the +//! creation and manipulation of both form and mechanical features in a +//! Boundary Representation framework. Form features can be depressions or +//! protrusions and include the following types: +//! - Cylinder +//! - Draft Prism +//! - Prism +//! - Revolved feature +//! - Pipe +//! Depending on whether you wish to make a depression or a protrusion, +//! you can choose your operation type between the following: +//! - removing matter (a Boolean cut: Fuse setting 0) +//! - adding matter (Boolean fusion: Fuse setting 1) +//! The semantics of form feature creation is based on the +//! construction of shapes: +//! - for a certain length in a certain direction +//! - up to a limiting face +//! - from a limiting face at a height +//! - above and/or below a plane +//! The shape defining the construction of a feature can be either a +//! supporting edge or a concerned area of a face. +//! In case of supporting edge, this contour can be attached to a face +//! of the basis shape by binding. When the contour is bound to this face, +//! the information that the contour will slide on the face becomes +//! available to the relevant class methods. In case of the concerned +//! area of a face, you could, for example, cut it out and move it at +//! a different height, which will define the limiting face of a +//! protrusion or depression. Topological definition with local +//! operations of this sort makes calculations simpler and faster +//! than a global operation. The latter would entail a second phase of +//! removing unwanted matter to get the same result. +//! Mechanical features include ribs - protrusions - and grooves (or +//! slots) - depressions along planar (linear) surfaces or revolution surfaces. +//! The semantics of mechanical features is based on giving +//! thickness to a contour. This thickness can either be unilateral +//! - on one side of the contour - or bilateral - on both sides. As in +//! the semantics of form features, the thickness is defined by +//! construction of shapes in specific contexts. +//! However, in case of mechanical features, development contexts +//! differ. Here they include extrusion: +//! - to a limiting face of the basis shape +//! - to or from a limiting plane +//! - to a height. +class BRepFeat +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT static void SampleEdges (const TopoDS_Shape& S, TColgp_SequenceOfPnt& Pt); + + Standard_EXPORT static void Barycenter (const TopoDS_Shape& S, gp_Pnt& Pt); + + Standard_EXPORT static Standard_Real ParametricBarycenter (const TopoDS_Shape& S, const Handle(Geom_Curve)& C); + + //! Ori = True taking account the orientation + Standard_EXPORT static void ParametricMinMax (const TopoDS_Shape& S, const Handle(Geom_Curve)& C, Standard_Real& prmin, Standard_Real& prmax, Standard_Real& prbmin, Standard_Real& prbmax, Standard_Boolean& flag, const Standard_Boolean Ori = Standard_False); + + Standard_EXPORT static Standard_Boolean IsInside (const TopoDS_Face& F1, const TopoDS_Face& F2); + + Standard_EXPORT static Standard_Boolean IsInOut (const BRepTopAdaptor_FClass2d& FC, const Geom2dAdaptor_Curve& AC); + + Standard_EXPORT static void FaceUntil (const TopoDS_Shape& S, TopoDS_Face& F); + + Standard_EXPORT static TopoDS_Solid Tool (const TopoDS_Shape& SRef, const TopoDS_Face& Fac, const TopAbs_Orientation Orf); + + //! Prints the Error description of the State as a String on + //! the Stream and returns . + Standard_EXPORT static Standard_OStream& Print (const BRepFeat_StatusError SE, Standard_OStream& S); + + + + +protected: + + + + + +private: + + + + +friend class BRepFeat_Builder; +friend class BRepFeat_MakeCylindricalHole; +friend class BRepFeat_SplitShape; +friend class BRepFeat_Form; +friend class BRepFeat_RibSlot; +friend class BRepFeat_MakePrism; +friend class BRepFeat_MakeRevol; +friend class BRepFeat_MakePipe; +friend class BRepFeat_Gluer; +friend class BRepFeat_MakeDPrism; +friend class BRepFeat_MakeLinearForm; +friend class BRepFeat_MakeRevolutionForm; + +}; + + + + + + + +#endif // _BRepFeat_HeaderFile diff --git a/src/BRepFeat/BRepFeat_Builder.cdl b/src/BRepFeat/BRepFeat_Builder.cdl deleted file mode 100644 index 2aa41aecdb..0000000000 --- a/src/BRepFeat/BRepFeat_Builder.cdl +++ /dev/null @@ -1,144 +0,0 @@ --- Created on: 2012-06-01 --- Created by: Eugeny MALTCHIKOV --- 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. - -class Builder from BRepFeat - inherits BOP from BOPAlgo - - ---Purpose: Provides a basic tool to implement features topological - -- operations. The main goal of the algorithm is to perform - -- the result of the operation according to the - -- kept parts of the tool. - -- Input data: a) DS; - -- b) The kept parts of the tool; - -- If the map of the kept parts of the tool - -- is not filled boolean operation of the - -- given type will be performed; - -- c) Operation required. - -- Steps: a) Fill myShapes, myRemoved maps; - -- b) Rebuild edges and faces; - -- c) Build images of the object; - -- d) Build the result of the operation. - -- Result: Result shape of the operation required. - -uses - Shape from TopoDS, - Face from TopoDS, - ListOfShape from TopTools, - MapOfOrientedShape from BOPCol, - MapOfShape from BOPCol, - IndexedMapOfShape from BOPCol, - DataMapOfShapeListOfShape from BOPCol, - DataMapOfShapeShape from BOPCol, - BaseAllocator from BOPCol, - ListOfShape from BOPCol, - BOP from BOPAlgo - -is - Create - returns Builder from BRepFeat; - ---C++: alias "Standard_EXPORT virtual ~BRepFeat_Builder();" - - Clear(me:out) - is redefined; - ---Purpose: Clears internal fields and arguments. - - Init(me:out; - theShape : Shape from TopoDS); - ---Purpose: Initialyzes the object of local boolean operation. - -- - - Init(me:out; - theShape : Shape from TopoDS; - theTool : Shape from TopoDS); - ---Purpose: Initialyzes the arguments of local boolean operation. - -- - - SetOperation(me:out; - theFuse : Integer from Standard); - ---Purpose: Sets the operation of local boolean operation. - -- If theFuse = 0 than the operation is CUT, otherwise FUSE. - - SetOperation(me:out; - theFuse : Integer from Standard; - theFlag : Boolean from Standard); - ---Purpose: Sets the operation of local boolean operation. - -- If theFlag = TRUE it means that no selection of parts - -- of the tool is needed, t.e. no second part. In that case - -- if theFuse = 0 than operation is COMMON, otherwise CUT21. - -- If theFlag = FALSE SetOperation(theFuse) function is called. - - Prepare(me:out) - is redefined protected; - ---Purpose: Prepares builder of local operation. - -- - - PartsOfTool(me:out; - theLT : out ListOfShape from TopTools); - ---Purpose: Collects parts of the tool. - - KeepParts(me:out; - theIm : ListOfShape from TopTools); - ---Purpose: Initialyzes parts of the tool for second step of algorithm. - -- Collects shapes and all sub-shapes into myShapes map. - - KeepPart(me:out; - theS : Shape from TopoDS); - ---Purpose: Adds shape theS and all its sub-shapes into myShapes map. - -- - - PerformResult(me:out); - ---Purpose: Main function to build the result of the - -- local operation required. - - RebuildFaces(me:out); - ---Purpose: Rebuilds faces in accordance with the kept parts of the tool. - -- - - RebuildEdge(me:out; - theE:Shape from TopoDS; - theF:Face from TopoDS; - theME:MapOfShape from BOPCol; - aLEIm:out ListOfShape from BOPCol); - ---Purpose: Rebuilds edges in accordance with the kept parts of the tool. - -- - - CheckSolidImages(me:out); - ---Purpose: Collects the images of the object, that contains in - -- the images of the tool. - - FillRemoved(me:out); - ---Purpose: Collects the removed parts of the tool into myRemoved map. - -- - - FillRemoved(me:out; - theS : Shape from TopoDS; - theM : in out MapOfShape from BOPCol); - ---Purpose: Adds the shape S and its sub-shapes into myRemoved map. - -- - - FillIn3DParts(me:out; - theInParts:out DataMapOfShapeListOfShape from BOPCol; - theDraftSolids:out DataMapOfShapeShape from BOPCol; - theAllocator:BaseAllocator from BOPCol) - is redefined protected; - ---Purpose: Function is redefined to avoid the usage of removed faces. - -- - -fields - myShapes : MapOfShape from BOPCol is protected; - myRemoved : MapOfShape from BOPCol is protected; - myFuse : Integer from Standard is protected; - -end Builder; diff --git a/src/BRepFeat/BRepFeat_Builder.cxx b/src/BRepFeat/BRepFeat_Builder.cxx index 7a24330f02..280d8ca9b7 100644 --- a/src/BRepFeat/BRepFeat_Builder.cxx +++ b/src/BRepFeat/BRepFeat_Builder.cxx @@ -13,44 +13,33 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include - -#include -#include -#include - -#include -#include - -#include - -#include -#include - -#include - -#include +#include +#include #include -#include #include -#include #include #include #include - -#include - +#include +#include #include #include #include #include -#include #include - -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : diff --git a/src/BRepFeat/BRepFeat_Builder.hxx b/src/BRepFeat/BRepFeat_Builder.hxx new file mode 100644 index 0000000000..e0ca2bd53b --- /dev/null +++ b/src/BRepFeat/BRepFeat_Builder.hxx @@ -0,0 +1,143 @@ +// Created on: 2012-06-01 +// Created by: Eugeny MALTCHIKOV +// 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_Builder_HeaderFile +#define _BRepFeat_Builder_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class TopoDS_Face; + + +//! Provides a basic tool to implement features topological +//! operations. The main goal of the algorithm is to perform +//! the result of the operation according to the +//! kept parts of the tool. +//! Input data: a) DS; +//! b) The kept parts of the tool; +//! If the map of the kept parts of the tool +//! is not filled boolean operation of the +//! given type will be performed; +//! c) Operation required. +//! Steps: a) Fill myShapes, myRemoved maps; +//! b) Rebuild edges and faces; +//! c) Build images of the object; +//! d) Build the result of the operation. +//! Result: Result shape of the operation required. +class BRepFeat_Builder : public BOPAlgo_BOP +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepFeat_Builder(); +Standard_EXPORT virtual ~BRepFeat_Builder(); + + //! Clears internal fields and arguments. + Standard_EXPORT virtual void Clear() Standard_OVERRIDE; + + //! Initialyzes the object of local boolean operation. + Standard_EXPORT void Init (const TopoDS_Shape& theShape); + + //! Initialyzes the arguments of local boolean operation. + Standard_EXPORT void Init (const TopoDS_Shape& theShape, const TopoDS_Shape& theTool); + + //! Sets the operation of local boolean operation. + //! If theFuse = 0 than the operation is CUT, otherwise FUSE. + Standard_EXPORT void SetOperation (const Standard_Integer theFuse); + + //! Sets the operation of local boolean operation. + //! If theFlag = TRUE it means that no selection of parts + //! of the tool is needed, t.e. no second part. In that case + //! if theFuse = 0 than operation is COMMON, otherwise CUT21. + //! If theFlag = FALSE SetOperation(theFuse) function is called. + Standard_EXPORT void SetOperation (const Standard_Integer theFuse, const Standard_Boolean theFlag); + + //! Collects parts of the tool. + Standard_EXPORT void PartsOfTool (TopTools_ListOfShape& theLT); + + //! Initialyzes parts of the tool for second step of algorithm. + //! Collects shapes and all sub-shapes into myShapes map. + Standard_EXPORT void KeepParts (const TopTools_ListOfShape& theIm); + + //! Adds shape theS and all its sub-shapes into myShapes map. + Standard_EXPORT void KeepPart (const TopoDS_Shape& theS); + + //! Main function to build the result of the + //! local operation required. + Standard_EXPORT void PerformResult(); + + //! Rebuilds faces in accordance with the kept parts of the tool. + Standard_EXPORT void RebuildFaces(); + + //! Rebuilds edges in accordance with the kept parts of the tool. + Standard_EXPORT void RebuildEdge (const TopoDS_Shape& theE, const TopoDS_Face& theF, const BOPCol_MapOfShape& theME, BOPCol_ListOfShape& aLEIm); + + //! Collects the images of the object, that contains in + //! the images of the tool. + Standard_EXPORT void CheckSolidImages(); + + //! Collects the removed parts of the tool into myRemoved map. + Standard_EXPORT void FillRemoved(); + + //! Adds the shape S and its sub-shapes into myRemoved map. + Standard_EXPORT void FillRemoved (const TopoDS_Shape& theS, BOPCol_MapOfShape& theM); + + + + +protected: + + + //! Prepares builder of local operation. + Standard_EXPORT virtual void Prepare() Standard_OVERRIDE; + + //! Function is redefined to avoid the usage of removed faces. + Standard_EXPORT virtual void FillIn3DParts (BOPCol_DataMapOfShapeListOfShape& theInParts, BOPCol_DataMapOfShapeShape& theDraftSolids, const BOPCol_BaseAllocator& theAllocator) Standard_OVERRIDE; + + + BOPCol_MapOfShape myShapes; + BOPCol_MapOfShape myRemoved; + Standard_Integer myFuse; + + +private: + + + + + +}; + + + + + + + +#endif // _BRepFeat_Builder_HeaderFile diff --git a/src/BRepFeat/BRepFeat_Form.cdl b/src/BRepFeat/BRepFeat_Form.cdl deleted file mode 100644 index ca164487c7..0000000000 --- a/src/BRepFeat/BRepFeat_Form.cdl +++ /dev/null @@ -1,256 +0,0 @@ --- Created on: 1996-02-13 --- Created by: Jacques GOUSSARD --- 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. - -deferred class Form from BRepFeat inherits MakeShape from BRepBuilderAPI - - ---Purpose: Provides general functions to build form features. - -- Form features can be depressions or protrusions and include the following types: - -- - Cylinder - -- - Draft Prism - -- - Prism - -- - Revolved feature - -- - Pipe - -- In each case, you have a choice of operation type between the following: - -- - removing matter (a Boolean cut: Fuse setting 0) - -- - adding matter (Boolean fusion: Fuse setting 1) - -- The semantics of form feature creation is based on the construction of shapes: - -- - along a length - -- - up to a limiting face - -- - from a limiting face to a height - -- - above and/or below a plane - -- The shape defining construction of the feature can be either the - -- supporting edge or the concerned area of a face. - -- In case of the supporting edge, this contour can be attached to a - -- face of the basis shape by binding. When the contour is bound to this - -- face, the information that the contour will slide on the face - -- becomes available to the relevant class methods. In case of the - -- concerned area of a face, you could, for example, cut it out and - -- move it to a different height which will define the limiting face of a - -- protrusion or depression. - -- Topological definition with local operations of this sort makes - -- calculations simpler and faster than a global operation. The latter - -- would entail a second phase of removing unwanted matter to get the same result. - -uses Shape from TopoDS, - Face from TopoDS, - ShapeModification from BRepBuilderAPI, - DataMapOfShapeListOfShape from TopTools, - ListOfShape from TopTools, - SequenceOfCurve from TColGeom, - Curve from Geom, - DataMapOfShapeShape from TopTools, - Gluer from LocOpe, - PerfSelection from BRepFeat, - StatusError from BRepFeat, - HBuilder from TopOpeBRepBuild, - --modified by NIZNHY-PKV Thu Mar 21 17:09:08 2002 f - BooleanOperation from BRepAlgoAPI - --modified by NIZNHY-PKV Thu Mar 21 17:09:11 2002 t -is - - Initialize; - - ---Purpose: Redefines the empty constructor. - ---C++: inline - ---- Methods redefined from BRepBuilderAPI_MakeShape - - Modified(me: in out; F: Shape from TopoDS) - ---Purpose: returns the list of generated Faces. - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is redefined; - - - Generated(me: in out; S: Shape from TopoDS) - ---Purpose: returns a list of the created faces - -- from the shape . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is redefined; - - IsDeleted (me: in out; S : Shape from TopoDS) - returns Boolean - is redefined; - - - - FirstShape (me) - ---Purpose: Returns the list of shapes created at the bottom of - -- the created form. It may be an empty list. - returns ListOfShape from TopTools; - ---C++: return const& - - - LastShape (me) - ---Purpose: Returns the list of shapes created at the top of the - -- created form. It may be an empty list. - returns ListOfShape from TopTools; - ---C++: return const& - - NewEdges(me) - ---Purpose: Returns a list of the limiting and glueing edges - -- generated by the feature. These edges did not originally - -- exist in the basis shape. - -- The list provides the information necessary for - -- subsequent addition of fillets. It may be an empty list. - ---C++: return const& - returns ListOfShape from TopTools; - - TgtEdges(me) - ---Purpose: Returns a list of the tangent edges among the limiting - -- and glueing edges generated by the feature. These - -- edges did not originally exist in the basis shape and are - -- tangent to the face against which the feature is built. - -- The list provides the information necessary for - -- subsequent addition of fillets. It may be an empty list. - -- If an edge is tangent, no fillet is possible, and the edge - -- must subsequently be removed if you want to add a fillet. - ---C++: return const& - returns ListOfShape from TopTools; - - - BasisShapeValid(me: in out) - --- Purpose: Initializes the topological construction if the basis shape is present. - ---C++: inline - is static; - - - GeneratedShapeValid(me: in out) - ---Purpose: Initializes the topological construction if the generated shape S is present. - ---C++: inline - is static; - - - ShapeFromValid(me: in out) - ---Purpose: - -- Initializes the topological construction if the shape is - -- present from the specified integer on. - ---C++: inline - is static; - - - ShapeUntilValid(me: in out) - --- Purpose: - -- Initializes the topological construction if the shape is - -- present until the specified integer. - ---C++: inline - is static; - - - GluedFacesValid(me: in out) - ---Purpose: - -- Initializes the topological construction if the glued face is present. - ---C++: inline - is static; - - SketchFaceValid(me: in out) - --- Purpose: - -- Initializes the topological construction if the sketch face - -- is present. If the sketch face is inside the basis shape, - -- local operations such as glueing can be performed. - ---C++: inline - is static; - - PerfSelectionValid(me: in out) - --- Purpose: Initializes the topological construction if the selected face is present. - ---C++: inline - is static; - - - GlobalPerform(me: in out) - ---Purpose: General perform method... - - is static protected; - - - Curves(me: in out; S : in out SequenceOfCurve from TColGeom) - - is deferred; - - - BarycCurve(me: in out) - - returns Curve from Geom - is deferred; - - --- Protected implementation methods - - UpdateDescendants(me: in out; G: Gluer from LocOpe) - - is static protected; - ---modified by NIZNHY-PKV Thu Mar 21 18:42:53 2002 f - UpdateDescendants(me: in out; - aBOP: BooleanOperation from BRepAlgoAPI; - SResult : Shape from TopoDS; - SkipFace : Boolean from Standard = Standard_False) - is static protected; ---modified by NIZNHY-PKV Thu Mar 21 18:42:50 2002 t - - UpdateDescendants(me: in out; - B : HBuilder from TopOpeBRepBuild; - SResult : Shape from TopoDS; - SkipFace : Boolean from Standard = Standard_False) - - is static protected; - TransformShapeFU(me: in out; flag: Integer from Standard) - returns Boolean from Standard - is protected; - - - CurrentStatusError(me) - returns StatusError from BRepFeat; - - -fields - - myFuse : Boolean from Standard is protected; - myModify : Boolean from Standard is protected; - myMap : DataMapOfShapeListOfShape from TopTools is protected; - myFShape : Shape from TopoDS is protected; - myLShape : Shape from TopoDS is protected; - myNewEdges: ListOfShape from TopTools is protected; - myTgtEdges: ListOfShape from TopTools is protected; - - myPerfSelection: PerfSelection from BRepFeat is protected; - myJustGluer: Boolean from Standard is protected; - myJustFeat: Boolean from Standard is protected; - - mySbase : Shape from TopoDS is protected; - mySkface : Face from TopoDS is protected; - myGShape : Shape from TopoDS is protected; - mySFrom : Shape from TopoDS is protected; - mySUntil : Shape from TopoDS is protected; - myGluedF : DataMapOfShapeShape from TopTools is protected; - - - mySbOK : Boolean from Standard; - mySkOK : Boolean from Standard; - myGSOK : Boolean from Standard; - mySFOK : Boolean from Standard; - mySUOK : Boolean from Standard; - myGFOK : Boolean from Standard; - myPSOK : Boolean from Standard; - - myStatusError : StatusError from BRepFeat; - -end Form; - - diff --git a/src/BRepFeat/BRepFeat_Form.cxx b/src/BRepFeat/BRepFeat_Form.cxx index da27cd8c75..1b165e4687 100644 --- a/src/BRepFeat/BRepFeat_Form.cxx +++ b/src/BRepFeat/BRepFeat_Form.cxx @@ -14,57 +14,53 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include +#include #include -#include +#include +#include #include -#include - +#include +#include +#include +#include #include +#include +#include +#include +#include #include -#include -#include -#include #include #include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include +#include +#include +#include -#include //modified by NIZNHY-PKV Thu Mar 21 17:30:25 2002 f //#include //#include - -#include -#include -#include //modified by NIZNHY-PKV Thu Mar 21 17:30:29 2002 t - #ifdef OCCT_DEBUG extern Standard_Boolean BRepFeat_GettraceFEAT(); #endif diff --git a/src/BRepFeat/BRepFeat_Form.hxx b/src/BRepFeat/BRepFeat_Form.hxx new file mode 100644 index 0000000000..5f8c08fefb --- /dev/null +++ b/src/BRepFeat/BRepFeat_Form.hxx @@ -0,0 +1,207 @@ +// Created on: 1996-02-13 +// Created by: Jacques GOUSSARD +// 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 _BRepFeat_Form_HeaderFile +#define _BRepFeat_Form_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class Geom_Curve; +class LocOpe_Gluer; +class BRepAlgoAPI_BooleanOperation; +class TopOpeBRepBuild_HBuilder; + + +//! Provides general functions to build form features. +//! Form features can be depressions or protrusions and include the following types: +//! - Cylinder +//! - Draft Prism +//! - Prism +//! - Revolved feature +//! - Pipe +//! In each case, you have a choice of operation type between the following: +//! - removing matter (a Boolean cut: Fuse setting 0) +//! - adding matter (Boolean fusion: Fuse setting 1) +//! The semantics of form feature creation is based on the construction of shapes: +//! - along a length +//! - up to a limiting face +//! - from a limiting face to a height +//! - above and/or below a plane +//! The shape defining construction of the feature can be either the +//! supporting edge or the concerned area of a face. +//! In case of the supporting edge, this contour can be attached to a +//! face of the basis shape by binding. When the contour is bound to this +//! face, the information that the contour will slide on the face +//! becomes available to the relevant class methods. In case of the +//! concerned area of a face, you could, for example, cut it out and +//! move it to a different height which will define the limiting face of a +//! protrusion or depression. +//! Topological definition with local operations of this sort makes +//! calculations simpler and faster than a global operation. The latter +//! would entail a second phase of removing unwanted matter to get the same result. +class BRepFeat_Form : public BRepBuilderAPI_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! returns the list of generated Faces. + Standard_EXPORT virtual const TopTools_ListOfShape& Modified (const TopoDS_Shape& F) Standard_OVERRIDE; + + //! returns a list of the created faces + //! from the shape . + Standard_EXPORT virtual const TopTools_ListOfShape& Generated (const TopoDS_Shape& S) Standard_OVERRIDE; + + Standard_EXPORT virtual Standard_Boolean IsDeleted (const TopoDS_Shape& S) Standard_OVERRIDE; + + //! Returns the list of shapes created at the bottom of + //! the created form. It may be an empty list. + Standard_EXPORT const TopTools_ListOfShape& FirstShape() const; + + //! Returns the list of shapes created at the top of the + //! created form. It may be an empty list. + Standard_EXPORT const TopTools_ListOfShape& LastShape() const; + + //! Returns a list of the limiting and glueing edges + //! generated by the feature. These edges did not originally + //! exist in the basis shape. + //! The list provides the information necessary for + //! subsequent addition of fillets. It may be an empty list. + Standard_EXPORT const TopTools_ListOfShape& NewEdges() const; + + //! Returns a list of the tangent edges among the limiting + //! and glueing edges generated by the feature. These + //! edges did not originally exist in the basis shape and are + //! tangent to the face against which the feature is built. + //! The list provides the information necessary for + //! subsequent addition of fillets. It may be an empty list. + //! If an edge is tangent, no fillet is possible, and the edge + //! must subsequently be removed if you want to add a fillet. + Standard_EXPORT const TopTools_ListOfShape& TgtEdges() const; + + //! Initializes the topological construction if the basis shape is present. + void BasisShapeValid(); + + //! Initializes the topological construction if the generated shape S is present. + void GeneratedShapeValid(); + + + //! Initializes the topological construction if the shape is + //! present from the specified integer on. + void ShapeFromValid(); + + + //! Initializes the topological construction if the shape is + //! present until the specified integer. + void ShapeUntilValid(); + + + //! Initializes the topological construction if the glued face is present. + void GluedFacesValid(); + + + //! Initializes the topological construction if the sketch face + //! is present. If the sketch face is inside the basis shape, + //! local operations such as glueing can be performed. + void SketchFaceValid(); + + //! Initializes the topological construction if the selected face is present. + void PerfSelectionValid(); + + Standard_EXPORT virtual void Curves (TColGeom_SequenceOfCurve& S) = 0; + + Standard_EXPORT virtual Handle(Geom_Curve) BarycCurve() = 0; + + Standard_EXPORT BRepFeat_StatusError CurrentStatusError() const; + + + + +protected: + + + //! Redefines the empty constructor. + BRepFeat_Form(); + + //! General perform method... + Standard_EXPORT void GlobalPerform(); + + Standard_EXPORT void UpdateDescendants (const LocOpe_Gluer& G); + + Standard_EXPORT void UpdateDescendants (const BRepAlgoAPI_BooleanOperation& aBOP, const TopoDS_Shape& SResult, const Standard_Boolean SkipFace = Standard_False); + + Standard_EXPORT void UpdateDescendants (const Handle(TopOpeBRepBuild_HBuilder)& B, const TopoDS_Shape& SResult, const Standard_Boolean SkipFace = Standard_False); + + Standard_EXPORT Standard_Boolean TransformShapeFU (const Standard_Integer flag); + + + Standard_Boolean myFuse; + Standard_Boolean myModify; + TopTools_DataMapOfShapeListOfShape myMap; + TopoDS_Shape myFShape; + TopoDS_Shape myLShape; + TopTools_ListOfShape myNewEdges; + TopTools_ListOfShape myTgtEdges; + BRepFeat_PerfSelection myPerfSelection; + Standard_Boolean myJustGluer; + Standard_Boolean myJustFeat; + TopoDS_Shape mySbase; + TopoDS_Face mySkface; + TopoDS_Shape myGShape; + TopoDS_Shape mySFrom; + TopoDS_Shape mySUntil; + TopTools_DataMapOfShapeShape myGluedF; + + +private: + + + + Standard_Boolean mySbOK; + Standard_Boolean mySkOK; + Standard_Boolean myGSOK; + Standard_Boolean mySFOK; + Standard_Boolean mySUOK; + Standard_Boolean myGFOK; + Standard_Boolean myPSOK; + BRepFeat_StatusError myStatusError; + + +}; + + +#include + + + + + +#endif // _BRepFeat_Form_HeaderFile diff --git a/src/BRepFeat/BRepFeat_Gluer.cdl b/src/BRepFeat/BRepFeat_Gluer.cdl deleted file mode 100644 index b7ab739942..0000000000 --- a/src/BRepFeat/BRepFeat_Gluer.cdl +++ /dev/null @@ -1,156 +0,0 @@ --- Created on: 1996-03-08 --- Created by: Jacques GOUSSARD --- 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. - -class Gluer from BRepFeat inherits MakeShape from BRepBuilderAPI - - ---Purpose: One of the most significant aspects - -- of BRepFeat functionality is the use of local operations as opposed - -- to global ones. In a global operation, you would first - -- construct a form of the type you wanted in your final feature, and - -- then remove matter so that it could fit into your initial basis object. - -- In a local operation, however, you specify the domain of the feature - -- construction with aspects of the shape on which the feature is being - -- created. These semantics are expressed in terms of a member - -- shape of the basis shape from which - or up to which - matter will be - -- added or removed. As a result, local operations make calculations - -- simpler and faster than global operations. - -- Glueing uses wires or edges of a face in the basis shape. These are - -- to become a part of the feature. They are first cut out and then - -- projected to a plane outside or inside the basis shape. By - -- rebuilding the initial shape incorporating the edges and the - -- faces of the tool, protrusion features can be constructed. - - -uses Shape from TopoDS, - Face from TopoDS, - Edge from TopoDS, - ListOfShape from TopTools, - - Gluer from LocOpe, - Operation from LocOpe, - - ShapeModification from BRepBuilderAPI - - -is - - - Create - ---Purpose: Initializes an empty constructor - returns Gluer from BRepFeat; - ---C++: inline - - - Create(Snew: Shape from TopoDS; - Sbase : Shape from TopoDS) - ---Purpose: Initializes the shapes to be glued, the new shape - -- Snew and the basis shape Sbase. - returns Gluer from BRepFeat; - ---C++: inline - - - Init(me: in out; Snew: Shape from TopoDS; - Sbase : Shape from TopoDS) - ---Purpose: Initializes the new shape Snew and the basis shape - -- Sbase for the local glueing operation. - ---C++: inline - is static; - - - Bind(me: in out; Fnew : Face from TopoDS; - Fbase : Face from TopoDS) - ---Purpose: Defines a contact between Fnew on the new shape - -- Snew and Fbase on the basis shape Sbase. Informs - -- other methods that Fnew in the new shape Snew is - -- connected to the face Fbase in the basis shape Sbase. - -- The contact faces of the glued shape must not have - -- parts outside the contact faces of the basis shape. - -- This indicates that glueing is possible. - ---C++: inline - is static; - - - Bind(me: in out; Enew : Edge from TopoDS; - Ebase: Edge from TopoDS) - ---Purpose: nforms other methods that the edge Enew in the new - -- shape is the same as the edge Ebase in the basis - -- shape and is therefore attached to the basis shape. This - -- indicates that glueing is possible. - ---C++: inline - is static; - - - - OpeType(me) - - returns Operation from LocOpe - ---Purpose: Determine which operation type to use glueing or sliding. - ---C++: inline - is static; - - - BasisShape(me) - - returns Shape from TopoDS - ---Purpose: Returns the basis shape of the compound shape. - ---C++: return const& - ---C++: inline - is static; - - - GluedShape(me) - - returns Shape from TopoDS - ---C++: return const& - ---C++: inline - --- Purpose: Returns the resulting compound shape. - is static; - - --- Methods redefined from BRepBuilderAPI_MakeShape - - Build(me : in out) - ---Purpose: This is called by Shape(). It does nothing but - -- may be redefined. - ---Level: Public - is redefined; - - - ----------------------------------------------------------- - --- the following methods do nothing and must be redefined - --- for faces modifications and creations. - - IsDeleted(me: in out; F: Shape from TopoDS) - ---Purpose: returns the status of the Face after - -- the shape creation. - ---Level: Public - returns Boolean from Standard - is redefined; - - - Modified(me: in out; F: Shape from TopoDS) - ---Purpose: returns the list of generated Faces. - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is redefined; - - -fields - - myGluer: Gluer from LocOpe; - -end Gluer; diff --git a/src/BRepFeat/BRepFeat_Gluer.cxx b/src/BRepFeat/BRepFeat_Gluer.cxx index c7a9252607..a6f9c836f8 100644 --- a/src/BRepFeat/BRepFeat_Gluer.cxx +++ b/src/BRepFeat/BRepFeat_Gluer.cxx @@ -14,15 +14,18 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include #include +#include +#include +#include #include //======================================================================= //function : Build //purpose : //======================================================================= - void BRepFeat_Gluer::Build() { myGluer.Perform(); diff --git a/src/BRepFeat/BRepFeat_Gluer.hxx b/src/BRepFeat/BRepFeat_Gluer.hxx new file mode 100644 index 0000000000..cd29cd033c --- /dev/null +++ b/src/BRepFeat/BRepFeat_Gluer.hxx @@ -0,0 +1,128 @@ +// Created on: 1996-03-08 +// Created by: Jacques GOUSSARD +// 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 _BRepFeat_Gluer_HeaderFile +#define _BRepFeat_Gluer_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class TopoDS_Shape; +class TopoDS_Face; +class TopoDS_Edge; + + +//! One of the most significant aspects +//! of BRepFeat functionality is the use of local operations as opposed +//! to global ones. In a global operation, you would first +//! construct a form of the type you wanted in your final feature, and +//! then remove matter so that it could fit into your initial basis object. +//! In a local operation, however, you specify the domain of the feature +//! construction with aspects of the shape on which the feature is being +//! created. These semantics are expressed in terms of a member +//! shape of the basis shape from which - or up to which - matter will be +//! added or removed. As a result, local operations make calculations +//! simpler and faster than global operations. +//! Glueing uses wires or edges of a face in the basis shape. These are +//! to become a part of the feature. They are first cut out and then +//! projected to a plane outside or inside the basis shape. By +//! rebuilding the initial shape incorporating the edges and the +//! faces of the tool, protrusion features can be constructed. +class BRepFeat_Gluer : public BRepBuilderAPI_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Initializes an empty constructor + BRepFeat_Gluer(); + + //! Initializes the shapes to be glued, the new shape + //! Snew and the basis shape Sbase. + BRepFeat_Gluer(const TopoDS_Shape& Snew, const TopoDS_Shape& Sbase); + + //! Initializes the new shape Snew and the basis shape + //! Sbase for the local glueing operation. + void Init (const TopoDS_Shape& Snew, const TopoDS_Shape& Sbase); + + //! Defines a contact between Fnew on the new shape + //! Snew and Fbase on the basis shape Sbase. Informs + //! other methods that Fnew in the new shape Snew is + //! connected to the face Fbase in the basis shape Sbase. + //! The contact faces of the glued shape must not have + //! parts outside the contact faces of the basis shape. + //! This indicates that glueing is possible. + void Bind (const TopoDS_Face& Fnew, const TopoDS_Face& Fbase); + + //! nforms other methods that the edge Enew in the new + //! shape is the same as the edge Ebase in the basis + //! shape and is therefore attached to the basis shape. This + //! indicates that glueing is possible. + void Bind (const TopoDS_Edge& Enew, const TopoDS_Edge& Ebase); + + //! Determine which operation type to use glueing or sliding. + LocOpe_Operation OpeType() const; + + //! Returns the basis shape of the compound shape. + const TopoDS_Shape& BasisShape() const; + + //! Returns the resulting compound shape. + const TopoDS_Shape& GluedShape() const; + + //! This is called by Shape(). It does nothing but + //! may be redefined. + Standard_EXPORT virtual void Build() Standard_OVERRIDE; + + //! returns the status of the Face after + //! the shape creation. + Standard_EXPORT virtual Standard_Boolean IsDeleted (const TopoDS_Shape& F) Standard_OVERRIDE; + + //! returns the list of generated Faces. + Standard_EXPORT virtual const TopTools_ListOfShape& Modified (const TopoDS_Shape& F) Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + LocOpe_Gluer myGluer; + + +}; + + +#include + + + + + +#endif // _BRepFeat_Gluer_HeaderFile diff --git a/src/BRepFeat/BRepFeat_MakeCylindricalHole.cdl b/src/BRepFeat/BRepFeat_MakeCylindricalHole.cdl deleted file mode 100644 index a6613fe899..0000000000 --- a/src/BRepFeat/BRepFeat_MakeCylindricalHole.cdl +++ /dev/null @@ -1,158 +0,0 @@ --- 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. - -class MakeCylindricalHole from BRepFeat inherits Builder from BRepFeat - - ---Purpose: Provides a tool to make cylindrical holes on a shape. - -uses Shape from TopoDS, - Face from TopoDS, - Ax1 from gp, - Status from BRepFeat - - -raises NotDone from StdFail, - ConstructionError from Standard - -is - - Create - ---Purpose: Empty constructor. - returns MakeCylindricalHole from BRepFeat; - ---C++: inline - - - Init(me: in out; Axis: Ax1 from gp) - ---Purpose: Sets the axis of the hole(s). - ---C++: inline - is static; - - - Init(me: in out; S: Shape from TopoDS; Axis: Ax1 from gp) - ---Purpose: Sets the shape and axis on which hole(s) will be - -- performed. - ---C++: inline - is static; - - - Perform(me: in out; Radius: Real from Standard) - ---Purpose: Performs every holes of radius . This - -- command has the same effect as a cut operation - -- with an infinite cylinder defined by the given - -- axis and . - - raises ConstructionError from Standard - -- The exception is raised when no shape or no axis is defined. - is static; - - - Perform(me: in out; Radius: Real from Standard; - PFrom,PTo: Real from Standard; - WithControl: Boolean from Standard = Standard_True) - ---Purpose: Performs evry hole of radius located - -- between PFrom and PTo on the given axis. If - -- is set to Standard_False no control - -- are done on the resulting shape after the - -- operation is performed. - - raises ConstructionError from Standard - -- The exception is raised when no shape or no axis is defined. - is static; - - - PerformThruNext(me: in out; - Radius: Real from Standard; - WithControl: Boolean from Standard = Standard_True) - ---Purpose: Performs the first hole of radius , in the - -- direction of the defined axis. First hole signify - -- first encountered after the origin of the axis. If - -- is set to Standard_False no control - -- are done on the resulting shape after the - -- operation is performed. - - raises ConstructionError from Standard - -- The exception is raised when no shape or no axis is defined. - is static; - - - PerformUntilEnd(me: in out; - Radius: Real from Standard; - WithControl: Boolean from Standard = Standard_True) - ---Purpose: Performs evry holes of radius located - -- after the origin of the given axis. If - -- is set to Standard_False no control - -- are done on the resulting shape after the - -- operation is performed. - - raises ConstructionError from Standard - -- The exception is raised when no shape or no axis is defined. - is static; - - - PerformBlind(me: in out; - Radius: Real from Standard; - Length: Real from Standard; - WithControl: Boolean from Standard = Standard_True) - ---Purpose: Performs a blind hole of radius and - -- length . The length is measured from the - -- origin of the given axis. If is set - -- to Standard_False no control are done after the - -- operation is performed. - - raises ConstructionError from Standard - -- The exception is raised when no shape or no axis is defined. - is static; - - - Status(me) - ---Purpose: Returns the status after a hole is performed. - ---C++: inline - returns Status from BRepFeat - is static; - - ---- Redefinition of BRepBuilderAPI_MakeShape methods --- --- - - Build(me:out); - ---Purpose: Builds the resulting shape (redefined from - -- MakeShape). Invalidates the given parts of tools - -- if any, and performs the result of the local - -- operation. - - ---- Private implementation method - - - Validate(me: in out) - - returns Status from BRepFeat - is static private; - - -fields - - myAxis : Ax1 from gp; - myAxDef : Boolean from Standard; - myStatus : Status from BRepFeat; - myIsBlind : Boolean from Standard; - myValidate: Boolean from Standard; - myTopFace : Face from TopoDS; - myBotFace : Face from TopoDS; - - -end MakeCylindricalHole; diff --git a/src/BRepFeat/BRepFeat_MakeCylindricalHole.cxx b/src/BRepFeat/BRepFeat_MakeCylindricalHole.cxx index 5ef838e04e..61c9ecd7e7 100644 --- a/src/BRepFeat/BRepFeat_MakeCylindricalHole.cxx +++ b/src/BRepFeat/BRepFeat_MakeCylindricalHole.cxx @@ -14,31 +14,29 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - - -#include -#include #include #include #include +#include +#include #include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include - -#include - -#include -#include #include -#include -#include - - +#include +#include +#include +#include static void Baryc(const TopoDS_Shape&, gp_Pnt&); diff --git a/src/BRepFeat/BRepFeat_MakeCylindricalHole.hxx b/src/BRepFeat/BRepFeat_MakeCylindricalHole.hxx new file mode 100644 index 0000000000..0e34cd6979 --- /dev/null +++ b/src/BRepFeat/BRepFeat_MakeCylindricalHole.hxx @@ -0,0 +1,131 @@ +// 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_MakeCylindricalHole_HeaderFile +#define _BRepFeat_MakeCylindricalHole_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class StdFail_NotDone; +class Standard_ConstructionError; +class gp_Ax1; +class TopoDS_Shape; + + +//! Provides a tool to make cylindrical holes on a shape. +class BRepFeat_MakeCylindricalHole : public BRepFeat_Builder +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor. + BRepFeat_MakeCylindricalHole(); + + //! Sets the axis of the hole(s). + void Init (const gp_Ax1& Axis); + + //! Sets the shape and axis on which hole(s) will be + //! performed. + void Init (const TopoDS_Shape& S, const gp_Ax1& Axis); + + //! Performs every holes of radius . This + //! command has the same effect as a cut operation + //! with an infinite cylinder defined by the given + //! axis and . + Standard_EXPORT void Perform (const Standard_Real Radius); + + //! Performs evry hole of radius located + //! between PFrom and PTo on the given axis. If + //! is set to Standard_False no control + //! are done on the resulting shape after the + //! operation is performed. + Standard_EXPORT void Perform (const Standard_Real Radius, const Standard_Real PFrom, const Standard_Real PTo, const Standard_Boolean WithControl = Standard_True); + + //! Performs the first hole of radius , in the + //! direction of the defined axis. First hole signify + //! first encountered after the origin of the axis. If + //! is set to Standard_False no control + //! are done on the resulting shape after the + //! operation is performed. + Standard_EXPORT void PerformThruNext (const Standard_Real Radius, const Standard_Boolean WithControl = Standard_True); + + //! Performs evry holes of radius located + //! after the origin of the given axis. If + //! is set to Standard_False no control + //! are done on the resulting shape after the + //! operation is performed. + Standard_EXPORT void PerformUntilEnd (const Standard_Real Radius, const Standard_Boolean WithControl = Standard_True); + + //! Performs a blind hole of radius and + //! length . The length is measured from the + //! origin of the given axis. If is set + //! to Standard_False no control are done after the + //! operation is performed. + Standard_EXPORT void PerformBlind (const Standard_Real Radius, const Standard_Real Length, const Standard_Boolean WithControl = Standard_True); + + //! Returns the status after a hole is performed. + BRepFeat_Status Status() const; + + //! Builds the resulting shape (redefined from + //! MakeShape). Invalidates the given parts of tools + //! if any, and performs the result of the local + //! operation. + Standard_EXPORT void Build(); + + + + +protected: + + + + + +private: + + + Standard_EXPORT BRepFeat_Status Validate(); + + + gp_Ax1 myAxis; + Standard_Boolean myAxDef; + BRepFeat_Status myStatus; + Standard_Boolean myIsBlind; + Standard_Boolean myValidate; + TopoDS_Face myTopFace; + TopoDS_Face myBotFace; + + +}; + + +#include + + + + + +#endif // _BRepFeat_MakeCylindricalHole_HeaderFile diff --git a/src/BRepFeat/BRepFeat_MakeDPrism.cdl b/src/BRepFeat/BRepFeat_MakeDPrism.cdl deleted file mode 100644 index a60379bd0c..0000000000 --- a/src/BRepFeat/BRepFeat_MakeDPrism.cdl +++ /dev/null @@ -1,190 +0,0 @@ --- Created on: 1996-09-03 --- Created by: Olga PILLOT --- 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. - -class MakeDPrism from BRepFeat inherits Form from BRepFeat - - ---Purpose: Describes functions to build draft - -- prism topologies from basis shape surfaces. These can be depressions or protrusions. - -- The semantics of draft prism feature creation is based on the - -- construction of shapes: - -- - along a length - -- - up to a limiting face - -- - from a limiting face to a height. - -- The shape defining construction of the draft prism feature can be - -- either the supporting edge or the concerned area of a face. - -- In case of the supporting edge, this contour can be attached to a - -- face of the basis shape by binding. When the contour is bound to this - -- face, the information that the contour will slide on the face - -- becomes available to the relevant class methods. - -- In case of the concerned area of a face, you could, for example, cut - -- it out and move it to a different height which will define the - -- limiting face of a protrusion or depression. - -uses Shape from TopoDS, - Face from TopoDS, - Wire from TopoDS, - Edge from TopoDS, - DataMapOfShapeListOfShape from TopTools, - DataMapOfShapeShape from TopTools, - SequenceOfCurve from TColGeom, - Curve from Geom, - ListOfShape from TopTools, - StatusError from BRepFeat - -raises ConstructionError from Standard - -is - - - Create(Sbase : Shape from TopoDS; - Pbase : Face from TopoDS; - Skface : Face from TopoDS; - Angle : Real from Standard; - Fuse : Integer from Standard; - Modify : Boolean from Standard) - - - ---Purpose: A face Pbase is selected in the shape - -- Sbase to serve as the basis for the draft prism. The - -- draft will be defined by the angle Angle and Fuse offers a choice between: - -- - removing matter with a Boolean cut using the setting 0 - -- - adding matter with Boolean fusion using the setting 1. - -- The sketch face Skface serves to determine the type of - -- operation. If it is inside the basis shape, a local - -- operation such as glueing can be performed. - ---C++: inline - returns MakeDPrism from BRepFeat; - - Create - ---Purpose: Initializes the draft prism class - ---C++: inline - returns MakeDPrism from BRepFeat; - - - - - Init(me: in out; Sbase : Shape from TopoDS; - Pbase : Face from TopoDS; - Skface : Face from TopoDS; - Angle : Real from Standard; - Fuse : Integer from Standard; - Modify : Boolean from Standard) - is static; - ---Purpose: Initializes this algorithm for building draft prisms along surfaces. - -- A face Pbase is selected in the basis shape Sbase to - -- serve as the basis from the draft prism. The draft will be - -- defined by the angle Angle and Fuse offers a choice between: - -- - removing matter with a Boolean cut using the setting 0 - -- - adding matter with Boolean fusion using the setting 1. - -- The sketch face Skface serves to determine the type of - -- operation. If it is inside the basis shape, a local - -- operation such as glueing can be performed. - - Add(me: in out; E: Edge from TopoDS; OnFace: Face from TopoDS) - - ---Purpose: 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. - raises ConstructionError from Standard - - is static; - - - Perform(me: in out; Height: Real from Standard) - - is static; - - - Perform(me: in out; Until: Shape from TopoDS) - - is static; - - - Perform(me: in out; From : Shape from TopoDS; - Until: Shape from TopoDS) - - is static; - ---Purpose: Assigns one of the following semantics - -- - to a height Height - -- - to a face Until - -- - from a face From to a height Until. - -- Reconstructs the feature topologically according to the semantic option chosen. - - PerformUntilEnd(me: in out) - ---Purpose: Realizes a semi-infinite prism, limited by the position of the prism base. - is static; - - PerformFromEnd(me: in out; FUntil: Shape from TopoDS) - ---Purpose: Realizes a semi-infinite prism, limited by the face Funtil. - is static; - - PerformThruAll(me: in out) - ---Purpose: Builds an infinite prism. The infinite descendants will not be kept in the result. - is static; - - PerformUntilHeight(me: in out; Until : Shape from TopoDS; - Height: Real from Standard) - ---Purpose: Assigns both a limiting shape, Until from - -- TopoDS_Shape, and a height, Height at which to stop - -- generation of the prism feature. - is static; - - - Curves(me: in out; S : in out SequenceOfCurve from TColGeom); - - - BarycCurve(me: in out) - returns Curve from Geom; - - - BossEdges(me: in out; sig: Integer from Standard) - ---Purpose: Determination of TopEdges and LatEdges. - -- sig = 1 -> TopEdges = FirstShape of the DPrism - -- sig = 2 -> TOpEdges = LastShape of the DPrism - is static; - - - TopEdges(me: in out) - ---Purpose: Returns the list of TopoDS Edges of the top of the boss. - returns ListOfShape from TopTools - ---C++: return const& - is static; - - - LatEdges(me: in out) - ---Purpose: Returns the list of TopoDS Edges of the bottom of the boss. - returns ListOfShape from TopTools - ---C++: return const& - is static; - - -fields - - myPbase : Face from TopoDS; - mySlface : DataMapOfShapeListOfShape from TopTools; - myAngle : Real from Standard; - myCurves : SequenceOfCurve from TColGeom; - myBCurve : Curve from Geom; - myTopEdges : ListOfShape from TopTools; - myLatEdges : ListOfShape from TopTools; - myStatusError : StatusError from BRepFeat; - -end MakeDPrism; - - - - diff --git a/src/BRepFeat/BRepFeat_MakeDPrism.cxx b/src/BRepFeat/BRepFeat_MakeDPrism.cxx index 06f62bd878..8dede3d730 100644 --- a/src/BRepFeat/BRepFeat_MakeDPrism.cxx +++ b/src/BRepFeat/BRepFeat_MakeDPrism.cxx @@ -14,70 +14,59 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include -#include -#include -#include -#include -#include -#include -#include #include - -#include #include #include -#include -#include -#include - #include -//modified by NIZNHY-PKV Thu Mar 21 17:49:46 2002 f -//#include -//#include #include #include -//modified by NIZNHY-PKV Thu Mar 21 17:50:04 2002 t - +#include +#include +#include +#include #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include - -#include -#include +#include +//modified by NIZNHY-PKV Thu Mar 21 17:49:46 2002 f +//#include +//#include +//modified by NIZNHY-PKV Thu Mar 21 17:50:04 2002 t #ifdef OCCT_DEBUG extern Standard_Boolean BRepFeat_GettraceFEAT(); #endif diff --git a/src/BRepFeat/BRepFeat_MakeDPrism.hxx b/src/BRepFeat/BRepFeat_MakeDPrism.hxx new file mode 100644 index 0000000000..2d072b1ee4 --- /dev/null +++ b/src/BRepFeat/BRepFeat_MakeDPrism.hxx @@ -0,0 +1,165 @@ +// Created on: 1996-09-03 +// Created by: Olga PILLOT +// 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 _BRepFeat_MakeDPrism_HeaderFile +#define _BRepFeat_MakeDPrism_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Geom_Curve; +class Standard_ConstructionError; +class TopoDS_Shape; +class TopoDS_Face; +class TopoDS_Edge; + + +//! Describes functions to build draft +//! prism topologies from basis shape surfaces. These can be depressions or protrusions. +//! The semantics of draft prism feature creation is based on the +//! construction of shapes: +//! - along a length +//! - up to a limiting face +//! - from a limiting face to a height. +//! The shape defining construction of the draft prism feature can be +//! either the supporting edge or the concerned area of a face. +//! In case of the supporting edge, this contour can be attached to a +//! face of the basis shape by binding. When the contour is bound to this +//! face, the information that the contour will slide on the face +//! becomes available to the relevant class methods. +//! In case of the concerned area of a face, you could, for example, cut +//! it out and move it to a different height which will define the +//! limiting face of a protrusion or depression. +class BRepFeat_MakeDPrism : public BRepFeat_Form +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! A face Pbase is selected in the shape + //! Sbase to serve as the basis for the draft prism. The + //! draft will be defined by the angle Angle and Fuse offers a choice between: + //! - removing matter with a Boolean cut using the setting 0 + //! - adding matter with Boolean fusion using the setting 1. + //! The sketch face Skface serves to determine the type of + //! operation. If it is inside the basis shape, a local + //! operation such as glueing can be performed. + //! Initializes the draft prism class + BRepFeat_MakeDPrism(const TopoDS_Shape& Sbase, const TopoDS_Face& Pbase, const TopoDS_Face& Skface, const Standard_Real Angle, const Standard_Integer Fuse, const Standard_Boolean Modify); + + Standard_EXPORT BRepFeat_MakeDPrism(); + + //! Initializes this algorithm for building draft prisms along surfaces. + //! A face Pbase is selected in the basis shape Sbase to + //! serve as the basis from the draft prism. The draft will be + //! defined by the angle Angle and Fuse offers a choice between: + //! - removing matter with a Boolean cut using the setting 0 + //! - adding matter with Boolean fusion using the setting 1. + //! The sketch face Skface serves to determine the type of + //! operation. If it is inside the basis shape, a local + //! operation such as glueing can be performed. + Standard_EXPORT void Init (const TopoDS_Shape& Sbase, const TopoDS_Face& Pbase, const TopoDS_Face& Skface, const Standard_Real Angle, 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); + + Standard_EXPORT void Perform (const Standard_Real Height); + + Standard_EXPORT void Perform (const TopoDS_Shape& Until); + + //! Assigns one of the following semantics + //! - to a height Height + //! - to a face Until + //! - from a face From to a height Until. + //! Reconstructs the feature topologically according to the semantic option chosen. + Standard_EXPORT void Perform (const TopoDS_Shape& From, const TopoDS_Shape& Until); + + //! Realizes a semi-infinite prism, limited by the position of the prism base. + Standard_EXPORT void PerformUntilEnd(); + + //! Realizes a semi-infinite prism, limited by the face Funtil. + Standard_EXPORT void PerformFromEnd (const TopoDS_Shape& FUntil); + + //! Builds an infinite prism. The infinite descendants will not be kept in the result. + Standard_EXPORT void PerformThruAll(); + + //! Assigns both a limiting shape, Until from + //! TopoDS_Shape, and a height, Height at which to stop + //! generation of the prism feature. + Standard_EXPORT void PerformUntilHeight (const TopoDS_Shape& Until, const Standard_Real Height); + + Standard_EXPORT void Curves (TColGeom_SequenceOfCurve& S); + + Standard_EXPORT Handle(Geom_Curve) BarycCurve(); + + //! Determination of TopEdges and LatEdges. + //! sig = 1 -> TopEdges = FirstShape of the DPrism + //! sig = 2 -> TOpEdges = LastShape of the DPrism + Standard_EXPORT void BossEdges (const Standard_Integer sig); + + //! Returns the list of TopoDS Edges of the top of the boss. + Standard_EXPORT const TopTools_ListOfShape& TopEdges(); + + //! Returns the list of TopoDS Edges of the bottom of the boss. + Standard_EXPORT const TopTools_ListOfShape& LatEdges(); + + + + +protected: + + + + + +private: + + + + TopoDS_Face myPbase; + TopTools_DataMapOfShapeListOfShape mySlface; + Standard_Real myAngle; + TColGeom_SequenceOfCurve myCurves; + Handle(Geom_Curve) myBCurve; + TopTools_ListOfShape myTopEdges; + TopTools_ListOfShape myLatEdges; + BRepFeat_StatusError myStatusError; + + +}; + + +#include + + + + + +#endif // _BRepFeat_MakeDPrism_HeaderFile diff --git a/src/BRepFeat/BRepFeat_MakeLinearForm.cdl b/src/BRepFeat/BRepFeat_MakeLinearForm.cdl deleted file mode 100644 index d2139851d3..0000000000 --- a/src/BRepFeat/BRepFeat_MakeLinearForm.cdl +++ /dev/null @@ -1,152 +0,0 @@ --- 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. - -class MakeLinearForm from BRepFeat inherits RibSlot from BRepFeat - ---Purpose: 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. - -uses Shape from TopoDS, - Face from TopoDS, - Wire from TopoDS, - Edge from TopoDS, - DataMapOfShapeListOfShape from TopTools, - Dir from gp, - Vec from gp, - DataMapOfShapeShape from TopTools, - ListOfShape from TopTools, - SequenceOfCurve from TColGeom, - Curve from Geom, - Plane from Geom, - Pnt from gp, - StatusError from BRepFeat - -raises ConstructionError from Standard - -is - - - Create - - returns MakeLinearForm from BRepFeat; - ---Purpose: initializes the linear form class - ---C++: inline - - Create(Sbase : Shape from TopoDS; - W : Wire from TopoDS; - P : Plane from Geom; - Direction : Vec from gp; - Direction1: Vec from gp; - Fuse : Integer from Standard; - Modify : Boolean from Standard) - - ---Purpose: 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. - ---C++: inline - returns MakeLinearForm from BRepFeat; - - - Init(me: in out; Sbase : Shape from TopoDS; - W : Wire from TopoDS; - P : Plane from Geom; - Direction : Vec from gp; - Direction1: Vec from gp; - Fuse : Integer from Standard; - Modify : Boolean from Standard) - - is static; - ---Purpose: 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. - - Add(me: in out; E: Edge from TopoDS; OnFace: Face from TopoDS) - - ---Purpose: 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. - raises ConstructionError from Standard - - is static; - - - - Perform(me: in out) - - is static; - ---Purpose: Performs a prism from the wire to the plane along the - -- basis shape Sbase. Reconstructs the feature topologically. - - TransformShapeFU(me: in out; flag: Integer from Standard) - - is static; - ---Purpose: 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. - - Propagate(me: in out; L: in out ListOfShape from TopTools; - F: Face from TopoDS; - FPoint, LPoint: Pnt from gp; - falseside : in out Boolean from Standard) - returns Boolean from Standard - is static; - - -fields - - myCrv : Curve from Geom; - myDir : Vec from gp; - myDir1 : Vec from gp; - myPln : Plane from Geom; - myBnd : Real from Standard; - mySlface : DataMapOfShapeListOfShape from TopTools; - myListOfEdges : ListOfShape from TopTools; - myTol : Real from Standard; - -end MakeLinearForm; - - - diff --git a/src/BRepFeat/BRepFeat_MakeLinearForm.cxx b/src/BRepFeat/BRepFeat_MakeLinearForm.cxx index fa3f48065a..050afdd2b8 100644 --- a/src/BRepFeat/BRepFeat_MakeLinearForm.cxx +++ b/src/BRepFeat/BRepFeat_MakeLinearForm.cxx @@ -14,104 +14,77 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include - -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include - -#include -#include +#include #include +#include #include - +#include #include +#include #include - -#include -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include - #include -#include - -#include - -#include -#include - -#include #include - -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include #include -#include +#include #include -#include -#include - -#include - -#include - -#include -#include -#include - -#include -#include -#include - -#include - -#include -#include -#include +#include //modified by NIZNHY-PKV Fri Mar 22 16:51:33 2002 f //#include //#include -#include -#include //modified by NIZNHY-PKV Fri Mar 22 16:51:35 2002 t - -#include -#include -#include - -#include -#include - -#include - -#include - -#include - -#include -#include //#include - #ifdef OCCT_DEBUG extern Standard_Boolean BRepFeat_GettraceFEAT(); extern Standard_Boolean BRepFeat_GettraceFEATRIB(); diff --git a/src/BRepFeat/BRepFeat_MakeLinearForm.hxx b/src/BRepFeat/BRepFeat_MakeLinearForm.hxx new file mode 100644 index 0000000000..3ce8361fc2 --- /dev/null +++ b/src/BRepFeat/BRepFeat_MakeLinearForm.hxx @@ -0,0 +1,143 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Geom_Curve; +class Geom_Plane; +class Standard_ConstructionError; +class TopoDS_Shape; +class TopoDS_Wire; +class gp_Vec; +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 + + + + + +#endif // _BRepFeat_MakeLinearForm_HeaderFile diff --git a/src/BRepFeat/BRepFeat_MakePipe.cdl b/src/BRepFeat/BRepFeat_MakePipe.cdl deleted file mode 100644 index ccf7ef2ff6..0000000000 --- a/src/BRepFeat/BRepFeat_MakePipe.cdl +++ /dev/null @@ -1,143 +0,0 @@ --- Created on: 1996-09-03 --- Created by: Jacques GOUSSARD --- 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. - -class MakePipe from BRepFeat inherits Form from BRepFeat - - ---Purpose: Constructs compound shapes with pipe - -- features. These can be depressions or protrusions. - -- The semantics of pipe feature creation is based on the construction of shapes: - -- - along a length - -- - up to a limiting face - -- - from a limiting face to a height. - -- The shape defining construction of the pipe feature can be either the supporting edge or - -- the concerned area of a face. - -- In case of the supporting edge, this contour - -- can be attached to a face of the basis shape - -- by binding. When the contour is bound to this - -- face, the information that the contour will - -- slide on the face becomes available to the relevant class methods. - -- In case of the concerned area of a face, you - -- could, for example, cut it out and move it to a - -- different height which will define the limiting - -- face of a protrusion or depression. - -uses Shape from TopoDS, - Face from TopoDS, - Wire from TopoDS, - Edge from TopoDS, - DataMapOfShapeListOfShape from TopTools, - DataMapOfShapeShape from TopTools, - SequenceOfCurve from TColGeom, - Curve from Geom, - StatusError from BRepFeat - -raises ConstructionError from Standard - -is - - - Create - returns MakePipe from BRepFeat; - ---Purpose: initializes the pipe class. - ---C++: inline - - - Create(Sbase : Shape from TopoDS; - Pbase : Shape from TopoDS; - Skface : Face from TopoDS; - Spine : Wire from TopoDS; - Fuse : Integer from Standard; - Modify : Boolean from Standard) - - ---Purpose : A face Pbase is selected in the - -- shape Sbase to serve as the basis for the - -- pipe. It will be defined by the wire Spine. - -- Fuse offers a choice between: - -- - removing matter with a Boolean cut using the setting 0 - -- - adding matter with Boolean fusion using the setting 1. - -- The sketch face Skface serves to determine - -- the type of operation. If it is inside the basis - -- shape, a local operation such as glueing can be performed. - ---C++: inline - returns MakePipe from BRepFeat; - - - Init(me: in out; Sbase : Shape from TopoDS; - Pbase : Shape from TopoDS; - Skface : Face from TopoDS; - Spine : Wire from TopoDS; - Fuse : Integer from Standard; - Modify : Boolean from Standard) - - is static; - ---Purpose: Initializes this algorithm for adding pipes to shapes. - -- A face Pbase is selected in the shape Sbase to - -- serve as the basis for the pipe. It will be defined by the wire Spine. - -- Fuse offers a choice between: - -- - removing matter with a Boolean cut using the setting 0 - -- - adding matter with Boolean fusion using the setting 1. - -- The sketch face Skface serves to determine - -- the type of operation. If it is inside the basis - -- shape, a local operation such as glueing can be performed. - - Add(me: in out; E: Edge from TopoDS; OnFace: Face from TopoDS) - - ---Purpose: 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. - raises ConstructionError from Standard - - is static; - - - Perform(me: in out) - - is static; - - - Perform(me: in out; Until: Shape from TopoDS) - - is static; - - - Perform(me: in out; From : Shape from TopoDS; - Until: Shape from TopoDS) - - is static; - - ---Purpose: Assigns one of the following semantics - -- - to a face Until - -- - from a face From to a height Until. - -- Reconstructs the feature topologically according to the semantic option chosen. - - Curves(me: in out; S : in out SequenceOfCurve from TColGeom); - - - BarycCurve(me: in out) - returns Curve from Geom; - - -fields - --- mySbase : Shape from TopoDS; - myPbase : Shape from TopoDS; - mySkface : Face from TopoDS; - mySlface : DataMapOfShapeListOfShape from TopTools; - mySpine : Wire from TopoDS; - myCurves : SequenceOfCurve from TColGeom; - myBCurve : Curve from Geom; - -end MakePipe; diff --git a/src/BRepFeat/BRepFeat_MakePipe.cxx b/src/BRepFeat/BRepFeat_MakePipe.cxx index db42bc399f..593fa13db9 100644 --- a/src/BRepFeat/BRepFeat_MakePipe.cxx +++ b/src/BRepFeat/BRepFeat_MakePipe.cxx @@ -14,45 +14,40 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include - -//modified by NIZNHY-PKV Thu Mar 21 17:54:27 2002 f -//#include -//#include +#include +#include +#include #include -#include -//modified by NIZNHY-PKV Thu Mar 21 17:54:30 2002 t - -#include -#include -#include -#include +#include +#include +#include #include #include - +#include +#include +#include +#include #include - -#include +#include +#include +#include #include -#include +#include +#include +#include +#include +#include +#include #include #include #include -#include - -#include -#include -#include -#include - -#include - -#include -#include +#include +//modified by NIZNHY-PKV Thu Mar 21 17:54:27 2002 f +//#include +//#include +//modified by NIZNHY-PKV Thu Mar 21 17:54:30 2002 t #ifdef OCCT_DEBUG extern Standard_Boolean BRepFeat_GettraceFEAT(); #endif diff --git a/src/BRepFeat/BRepFeat_MakePipe.hxx b/src/BRepFeat/BRepFeat_MakePipe.hxx new file mode 100644 index 0000000000..7c0e7a4bf3 --- /dev/null +++ b/src/BRepFeat/BRepFeat_MakePipe.hxx @@ -0,0 +1,138 @@ +// Created on: 1996-09-03 +// Created by: Jacques GOUSSARD +// 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 _BRepFeat_MakePipe_HeaderFile +#define _BRepFeat_MakePipe_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class Geom_Curve; +class Standard_ConstructionError; +class TopoDS_Shape; +class TopoDS_Face; +class TopoDS_Wire; +class TopoDS_Edge; + + +//! Constructs compound shapes with pipe +//! features. These can be depressions or protrusions. +//! The semantics of pipe feature creation is based on the construction of shapes: +//! - along a length +//! - up to a limiting face +//! - from a limiting face to a height. +//! The shape defining construction of the pipe feature can be either the supporting edge or +//! the concerned area of a face. +//! In case of the supporting edge, this contour +//! can be attached to a face of the basis shape +//! by binding. When the contour is bound to this +//! face, the information that the contour will +//! slide on the face becomes available to the relevant class methods. +//! In case of the concerned area of a face, you +//! could, for example, cut it out and move it to a +//! different height which will define the limiting +//! face of a protrusion or depression. +class BRepFeat_MakePipe : public BRepFeat_Form +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! initializes the pipe class. + BRepFeat_MakePipe(); + + //! A face Pbase is selected in the + //! shape Sbase to serve as the basis for the + //! pipe. It will be defined by the wire Spine. + //! Fuse offers a choice between: + //! - removing matter with a Boolean cut using the setting 0 + //! - adding matter with Boolean fusion using the setting 1. + //! The sketch face Skface serves to determine + //! the type of operation. If it is inside the basis + //! shape, a local operation such as glueing can be performed. + BRepFeat_MakePipe(const TopoDS_Shape& Sbase, const TopoDS_Shape& Pbase, const TopoDS_Face& Skface, const TopoDS_Wire& Spine, const Standard_Integer Fuse, const Standard_Boolean Modify); + + //! Initializes this algorithm for adding pipes to shapes. + //! A face Pbase is selected in the shape Sbase to + //! serve as the basis for the pipe. It will be defined by the wire Spine. + //! Fuse offers a choice between: + //! - removing matter with a Boolean cut using the setting 0 + //! - adding matter with Boolean fusion using the setting 1. + //! The sketch face Skface serves to determine + //! the type of operation. If it is inside the basis + //! shape, a local operation such as glueing can be performed. + Standard_EXPORT void Init (const TopoDS_Shape& Sbase, const TopoDS_Shape& Pbase, const TopoDS_Face& Skface, const TopoDS_Wire& Spine, 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); + + Standard_EXPORT void Perform(); + + Standard_EXPORT void Perform (const TopoDS_Shape& Until); + + //! Assigns one of the following semantics + //! - to a face Until + //! - from a face From to a height Until. + //! Reconstructs the feature topologically according to the semantic option chosen. + Standard_EXPORT void Perform (const TopoDS_Shape& From, const TopoDS_Shape& Until); + + Standard_EXPORT void Curves (TColGeom_SequenceOfCurve& S); + + Standard_EXPORT Handle(Geom_Curve) BarycCurve(); + + + + +protected: + + + + + +private: + + + + TopoDS_Shape myPbase; + TopoDS_Face mySkface; + TopTools_DataMapOfShapeListOfShape mySlface; + TopoDS_Wire mySpine; + TColGeom_SequenceOfCurve myCurves; + Handle(Geom_Curve) myBCurve; + + +}; + + +#include + + + + + +#endif // _BRepFeat_MakePipe_HeaderFile diff --git a/src/BRepFeat/BRepFeat_MakePrism.cdl b/src/BRepFeat/BRepFeat_MakePrism.cdl deleted file mode 100644 index 98aaec53cb..0000000000 --- a/src/BRepFeat/BRepFeat_MakePrism.cdl +++ /dev/null @@ -1,174 +0,0 @@ --- Created on: 1996-02-13 --- Created by: Jacques GOUSSARD --- 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. - -class MakePrism from BRepFeat inherits Form from BRepFeat - - ---Purpose: Describes functions to build prism features. - -- These can be depressions or protrusions. - -- The semantics of prism feature creation is - -- based on the construction of shapes: - -- - along a length - -- - up to a limiting face - -- - from a limiting face to a height. - -- The shape defining construction of the prism feature can be - -- either the supporting edge or the concerned area of a face. - -- In case of the supporting edge, this contour - -- can be attached to a face of the basis shape by - -- binding. When the contour is bound to this face, - -- the information that the contour will slide on the - -- face becomes available to the relevant class methods. - -- In case of the concerned area of a face, you - -- could, for example, cut it out and move it to a - -- different height which will define the limiting - -- face of a protrusion or depression. - -uses Shape from TopoDS, - Face from TopoDS, - Edge from TopoDS, - DataMapOfShapeListOfShape from TopTools, - Dir from gp, - DataMapOfShapeShape from TopTools, - SequenceOfCurve from TColGeom, - Curve from Geom, - StatusError from BRepFeat - -raises ConstructionError from Standard - -is - - - Create - - returns MakePrism from BRepFeat; - ---Purpose: Builds a prism by projecting a - -- wire along the face of a shape. Initializes the prism class. - ---C++: inline - - - Create(Sbase : Shape from TopoDS; - Pbase : Shape from TopoDS; - Skface : Face from TopoDS; - Direction : Dir from gp; - Fuse : Integer from Standard; - Modify : Boolean from Standard) - - ---Purpose: Builds a prism by projecting a - -- wire along the face of a shape. a face Pbase is selected in - -- the shape Sbase to serve as the basis for - -- the prism. The orientation of the prism will - -- be defined by the vector Direction. - -- Fuse offers a choice between: - -- - removing matter with a Boolean cut using the setting 0 - -- - adding matter with Boolean fusion using the setting 1. - -- The sketch face Skface serves to determine - -- the type of operation. If it is inside the basis - -- shape, a local operation such as glueing can be performed. - -- Exceptions - -- Standard_ConstructionError if the face - -- does not belong to the basis or the prism shape. - ---C++: inline - returns MakePrism from BRepFeat; - - - Init(me: in out; Sbase : Shape from TopoDS; - Pbase : Shape from TopoDS; - Skface : Face from TopoDS; - Direction : Dir from gp; - Fuse : Integer from Standard; - Modify : Boolean from Standard) - - is static; - ---Purpose: Initializes this algorithm for building prisms along surfaces. - -- A face Pbase is selected in the shape Sbase - -- to serve as the basis for the prism. The - -- orientation of the prism will be defined by the vector Direction. - -- Fuse offers a choice between: - -- - removing matter with a Boolean cut using the setting 0 - -- - adding matter with Boolean fusion using the setting 1. - -- The sketch face Skface serves to determine - -- the type of operation. If it is inside the basis - -- shape, a local operation such as glueing can be performed. - - Add(me: in out; E: Edge from TopoDS; OnFace: Face from TopoDS) - - ---Purpose: 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. - raises ConstructionError from Standard - - is static; - - - Perform(me: in out; Length: Real from Standard) - - is static; - - - Perform(me: in out; Until: Shape from TopoDS) - - is static; - - - Perform(me: in out; From : Shape from TopoDS; - Until: Shape from TopoDS) - - is static; - ---Purpose: Assigns one of the following semantics - -- - to a height Length - -- - to a face Until - -- - from a face From to a height Until. - -- Reconstructs the feature topologically according to the semantic option chosen. - - PerformUntilEnd(me: in out) - - is static; - --- Purpose: Realizes a semi-infinite prism, limited by the - -- position of the prism base. All other faces extend infinitely. - - PerformFromEnd(me: in out; FUntil: Shape from TopoDS) - - is static; - ---Purpose: Realizes a semi-infinite prism, limited by the face Funtil. - - - PerformThruAll(me: in out) - - is static; - ---Purpose: Builds an infinite prism. The infinite descendants will not be kept in the result. - - PerformUntilHeight(me: in out; Until : Shape from TopoDS; - Length: Real from Standard) - - is static; - ---Purpose: Assigns both a limiting shape, Until from - -- TopoDS_Shape, and a height, Length at which to stop generation of the prism feature. - - Curves(me: in out; S : in out SequenceOfCurve from TColGeom); - --- Purpose: Returns the list of curves S parallel to the axis of the prism. - - BarycCurve(me: in out) - returns Curve from Geom; - ---Purpose: Generates a curve along the center of mass of the primitive. -fields - - myPbase : Shape from TopoDS; - mySlface : DataMapOfShapeListOfShape from TopTools; - myDir : Dir from gp; - myCurves : SequenceOfCurve from TColGeom; - myBCurve : Curve from Geom; - myStatusError : StatusError from BRepFeat; - -end MakePrism; diff --git a/src/BRepFeat/BRepFeat_MakePrism.cxx b/src/BRepFeat/BRepFeat_MakePrism.cxx index 51382daa30..5b658f7655 100644 --- a/src/BRepFeat/BRepFeat_MakePrism.cxx +++ b/src/BRepFeat/BRepFeat_MakePrism.cxx @@ -14,67 +14,55 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include - -#include -#include -#include -#include +#include +#include +#include +#include #include #include +#include #include #include - -#include - -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include - -#include - -#include - - +#include +#include #include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include +#include #include #include - -#include -#include +#include //modified by NIZNHY-PKV Thu Mar 21 18:14:23 2002 f //#include //#include -#include -#include //modified by NIZNHY-PKV Thu Mar 21 18:14:26 2002 t - -#include -#include - - -#include -#include -#include - -#include -#include - -#include -#include -#include - #ifdef OCCT_DEBUG extern Standard_Boolean BRepFeat_GettraceFEAT(); #endif diff --git a/src/BRepFeat/BRepFeat_MakePrism.hxx b/src/BRepFeat/BRepFeat_MakePrism.hxx new file mode 100644 index 0000000000..c545b853a7 --- /dev/null +++ b/src/BRepFeat/BRepFeat_MakePrism.hxx @@ -0,0 +1,164 @@ +// Created on: 1996-02-13 +// Created by: Jacques GOUSSARD +// 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 _BRepFeat_MakePrism_HeaderFile +#define _BRepFeat_MakePrism_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Geom_Curve; +class Standard_ConstructionError; +class TopoDS_Shape; +class TopoDS_Face; +class gp_Dir; +class TopoDS_Edge; + + +//! Describes functions to build prism features. +//! These can be depressions or protrusions. +//! The semantics of prism feature creation is +//! based on the construction of shapes: +//! - along a length +//! - up to a limiting face +//! - from a limiting face to a height. +//! The shape defining construction of the prism feature can be +//! either the supporting edge or the concerned area of a face. +//! In case of the supporting edge, this contour +//! can be attached to a face of the basis shape by +//! binding. When the contour is bound to this face, +//! the information that the contour will slide on the +//! face becomes available to the relevant class methods. +//! In case of the concerned area of a face, you +//! could, for example, cut it out and move it to a +//! different height which will define the limiting +//! face of a protrusion or depression. +class BRepFeat_MakePrism : public BRepFeat_Form +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Builds a prism by projecting a + //! wire along the face of a shape. Initializes the prism class. + BRepFeat_MakePrism(); + + //! Builds a prism by projecting a + //! wire along the face of a shape. a face Pbase is selected in + //! the shape Sbase to serve as the basis for + //! the prism. The orientation of the prism will + //! be defined by the vector Direction. + //! Fuse offers a choice between: + //! - removing matter with a Boolean cut using the setting 0 + //! - adding matter with Boolean fusion using the setting 1. + //! The sketch face Skface serves to determine + //! the type of operation. If it is inside the basis + //! shape, a local operation such as glueing can be performed. + //! Exceptions + //! Standard_ConstructionError if the face + //! does not belong to the basis or the prism shape. + BRepFeat_MakePrism(const TopoDS_Shape& Sbase, const TopoDS_Shape& Pbase, const TopoDS_Face& Skface, const gp_Dir& Direction, const Standard_Integer Fuse, const Standard_Boolean Modify); + + //! Initializes this algorithm for building prisms along surfaces. + //! A face Pbase is selected in the shape Sbase + //! to serve as the basis for the prism. The + //! orientation of the prism will be defined by the vector Direction. + //! Fuse offers a choice between: + //! - removing matter with a Boolean cut using the setting 0 + //! - adding matter with Boolean fusion using the setting 1. + //! The sketch face Skface serves to determine + //! the type of operation. If it is inside the basis + //! shape, a local operation such as glueing can be performed. + Standard_EXPORT void Init (const TopoDS_Shape& Sbase, const TopoDS_Shape& Pbase, const TopoDS_Face& Skface, const gp_Dir& Direction, 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); + + Standard_EXPORT void Perform (const Standard_Real Length); + + Standard_EXPORT void Perform (const TopoDS_Shape& Until); + + //! Assigns one of the following semantics + //! - to a height Length + //! - to a face Until + //! - from a face From to a height Until. + //! Reconstructs the feature topologically according to the semantic option chosen. + Standard_EXPORT void Perform (const TopoDS_Shape& From, const TopoDS_Shape& Until); + + //! Realizes a semi-infinite prism, limited by the + //! position of the prism base. All other faces extend infinitely. + Standard_EXPORT void PerformUntilEnd(); + + //! Realizes a semi-infinite prism, limited by the face Funtil. + Standard_EXPORT void PerformFromEnd (const TopoDS_Shape& FUntil); + + //! Builds an infinite prism. The infinite descendants will not be kept in the result. + Standard_EXPORT void PerformThruAll(); + + //! Assigns both a limiting shape, Until from + //! TopoDS_Shape, and a height, Length at which to stop generation of the prism feature. + Standard_EXPORT void PerformUntilHeight (const TopoDS_Shape& Until, const Standard_Real Length); + + //! Returns the list of curves S parallel to the axis of the prism. + Standard_EXPORT void Curves (TColGeom_SequenceOfCurve& S); + + //! Generates a curve along the center of mass of the primitive. + Standard_EXPORT Handle(Geom_Curve) BarycCurve(); + + + + +protected: + + + + + +private: + + + + TopoDS_Shape myPbase; + TopTools_DataMapOfShapeListOfShape mySlface; + gp_Dir myDir; + TColGeom_SequenceOfCurve myCurves; + Handle(Geom_Curve) myBCurve; + BRepFeat_StatusError myStatusError; + + +}; + + +#include + + + + + +#endif // _BRepFeat_MakePrism_HeaderFile diff --git a/src/BRepFeat/BRepFeat_MakeRevol.cdl b/src/BRepFeat/BRepFeat_MakeRevol.cdl deleted file mode 100644 index 12dbd18f15..0000000000 --- a/src/BRepFeat/BRepFeat_MakeRevol.cdl +++ /dev/null @@ -1,129 +0,0 @@ --- Created on: 1996-02-13 --- Created by: Jacques GOUSSARD --- 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. - -class MakeRevol from BRepFeat inherits Form from BRepFeat - - ---Purpose: Describes functions to build revolved shells from basis shapes. - -uses Shape from TopoDS, - Face from TopoDS, - Edge from TopoDS, - DataMapOfShapeListOfShape from TopTools, - Ax1 from gp, - DataMapOfShapeShape from TopTools, - SequenceOfCurve from TColGeom, - Curve from Geom, - SequenceOfCurve from TColGeom, - StatusError from BRepFeat - - raises ConstructionError from Standard - -is - - - Create - - returns MakeRevol from BRepFeat; - ---Purpose: initializes the revolved shell class. - ---C++: inline - - - Create(Sbase : Shape from TopoDS; - Pbase : Shape from TopoDS; - Skface : Face from TopoDS; - Axis : Ax1 from gp; - Fuse : Integer from Standard; - Modify : Boolean from Standard) - - ---Purpose: a face Pbase is selected in the - -- shape Sbase to serve as the basis for the - -- revolved shell. The revolution will be defined - -- by the axis Axis and Fuse offers a choice between: - -- - removing matter with a Boolean cut using the setting 0 - -- - adding matter with Boolean fusion using the setting 1. - -- The sketch face Skface serves to determine - -- the type of operation. If it is inside the basis - -- shape, a local operation such as glueing can be performed. - ---C++: inline - returns MakeRevol from BRepFeat; - - - Init(me: in out; Sbase : Shape from TopoDS; - Pbase : Shape from TopoDS; - Skface : Face from TopoDS; - Axis : Ax1 from gp; - Fuse : Integer from Standard; - Modify : Boolean from Standard) - - is static; - - - Add(me: in out; E: Edge from TopoDS; OnFace: Face from TopoDS) - - ---Purpose: 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. - raises ConstructionError from Standard - - is static; - - - Perform(me: in out; Angle: Real from Standard) - - is static; - - - Perform(me: in out; Until: Shape from TopoDS) - - is static; - - - Perform(me: in out; From : Shape from TopoDS; - Until: Shape from TopoDS) - - is static; - ---Purpose: Reconstructs the feature topologically. - - PerformThruAll(me: in out) - - is static; - ---Purpose: Builds an infinite shell. The infinite descendants - -- will not be kept in the result. - - PerformUntilAngle(me: in out; Until : Shape from TopoDS; - Angle : Real from Standard) - - is static; - ---Purpose: Assigns both a limiting shape, Until from - -- TopoDS_Shape, and an angle, Angle at - -- which to stop generation of the revolved shell feature. - Curves(me: in out; S : in out SequenceOfCurve from TColGeom); - - - BarycCurve(me: in out) - returns Curve from Geom; - - -fields - - myPbase : Shape from TopoDS; - mySlface : DataMapOfShapeListOfShape from TopTools; - myAxis : Ax1 from gp; - myCurves : SequenceOfCurve from TColGeom; - myBCurve : Curve from Geom; - myStatusError : StatusError from BRepFeat; - -end MakeRevol; diff --git a/src/BRepFeat/BRepFeat_MakeRevol.cxx b/src/BRepFeat/BRepFeat_MakeRevol.cxx index 39976e3d67..f9decdfaae 100644 --- a/src/BRepFeat/BRepFeat_MakeRevol.cxx +++ b/src/BRepFeat/BRepFeat_MakeRevol.cxx @@ -14,64 +14,56 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include - -#include #include #include -#include -#include -#include -#include -#include -#include - #include #include - +#include +#include +#include +#include #include +#include #include #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include - -#include +#include +#include +#include #include +#include +#include +#include #include - -#include -#include - - -#include -#include -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include #ifdef OCCT_DEBUG extern Standard_Boolean BRepFeat_GettraceFEAT(); diff --git a/src/BRepFeat/BRepFeat_MakeRevol.hxx b/src/BRepFeat/BRepFeat_MakeRevol.hxx new file mode 100644 index 0000000000..e4c5fa6af8 --- /dev/null +++ b/src/BRepFeat/BRepFeat_MakeRevol.hxx @@ -0,0 +1,120 @@ +// Created on: 1996-02-13 +// Created by: Jacques GOUSSARD +// 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 _BRepFeat_MakeRevol_HeaderFile +#define _BRepFeat_MakeRevol_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Geom_Curve; +class Standard_ConstructionError; +class TopoDS_Shape; +class TopoDS_Face; +class gp_Ax1; +class TopoDS_Edge; + + +//! Describes functions to build revolved shells from basis shapes. +class BRepFeat_MakeRevol : public BRepFeat_Form +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! initializes the revolved shell class. + BRepFeat_MakeRevol(); + + //! a face Pbase is selected in the + //! shape Sbase to serve as the basis for the + //! revolved shell. The revolution will be defined + //! by the axis Axis and Fuse offers a choice between: + //! - removing matter with a Boolean cut using the setting 0 + //! - adding matter with Boolean fusion using the setting 1. + //! The sketch face Skface serves to determine + //! the type of operation. If it is inside the basis + //! shape, a local operation such as glueing can be performed. + BRepFeat_MakeRevol(const TopoDS_Shape& Sbase, const TopoDS_Shape& Pbase, const TopoDS_Face& Skface, const gp_Ax1& Axis, const Standard_Integer Fuse, const Standard_Boolean Modify); + + Standard_EXPORT void Init (const TopoDS_Shape& Sbase, const TopoDS_Shape& Pbase, const TopoDS_Face& Skface, const gp_Ax1& Axis, 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); + + Standard_EXPORT void Perform (const Standard_Real Angle); + + Standard_EXPORT void Perform (const TopoDS_Shape& Until); + + //! Reconstructs the feature topologically. + Standard_EXPORT void Perform (const TopoDS_Shape& From, const TopoDS_Shape& Until); + + //! Builds an infinite shell. The infinite descendants + //! will not be kept in the result. + Standard_EXPORT void PerformThruAll(); + + //! Assigns both a limiting shape, Until from + //! TopoDS_Shape, and an angle, Angle at + //! which to stop generation of the revolved shell feature. + Standard_EXPORT void PerformUntilAngle (const TopoDS_Shape& Until, const Standard_Real Angle); + + Standard_EXPORT void Curves (TColGeom_SequenceOfCurve& S); + + Standard_EXPORT Handle(Geom_Curve) BarycCurve(); + + + + +protected: + + + + + +private: + + + + TopoDS_Shape myPbase; + TopTools_DataMapOfShapeListOfShape mySlface; + gp_Ax1 myAxis; + TColGeom_SequenceOfCurve myCurves; + Handle(Geom_Curve) myBCurve; + BRepFeat_StatusError myStatusError; + + +}; + + +#include + + + + + +#endif // _BRepFeat_MakeRevol_HeaderFile diff --git a/src/BRepFeat/BRepFeat_MakeRevolutionForm.cdl b/src/BRepFeat/BRepFeat_MakeRevolutionForm.cdl deleted file mode 100644 index d47783a67e..0000000000 --- a/src/BRepFeat/BRepFeat_MakeRevolutionForm.cdl +++ /dev/null @@ -1,143 +0,0 @@ --- Created on: 1997-10-14 --- Created by: Olga KOULECHOVA --- 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. - -class MakeRevolutionForm from BRepFeat inherits RibSlot from BRepFeat - - ---Purpose: MakeRevolutionForm Generates a surface of - -- revolution in the feature as it slides along a - -- revolved face in the basis shape. - -- The semantics of mechanical features is built - -- around giving thickness to a contour. This - -- thickness can either be unilateral - on one side - -- of the contour - or bilateral - 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. - -uses Shape from TopoDS, - Face from TopoDS, - Wire from TopoDS, - Edge from TopoDS, - DataMapOfShapeListOfShape from TopTools, - Dir from gp, - Ax1 from gp, - Vec from gp, - DataMapOfShapeShape from TopTools, - ListOfShape from TopTools, - SequenceOfCurve from TColGeom, - Curve from Geom, - Plane from Geom, - Pnt from gp, - StatusError from BRepFeat - -raises ConstructionError from Standard - -is - - - Create - - returns MakeRevolutionForm from BRepFeat; - ---Purpose: initializes the linear form class. - ---C++: inline - - Create(Sbase : Shape from TopoDS; - W : Wire from TopoDS; - Plane : Plane from Geom; - Axis : Ax1 from gp; - Height1 : Real from Standard; - Height2 : Real from Standard; - Fuse : Integer from Standard; - Sliding : in out Boolean from Standard) - - ---Purpose: 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 axis Axis of the - -- revolved surface in the basis shape defines the feature's axis of revolution. - -- Height1 and Height2 may be used as limits to the construction of the feature. - -- 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. - ---C++: inline - returns MakeRevolutionForm from BRepFeat; - - - Init(me: in out; Sbase : Shape from TopoDS; - W : Wire from TopoDS; - Plane : Plane from Geom; - Axis : Ax1 from gp; - Height1 : Real from Standard; - Height2 : Real from Standard; - Fuse : Integer from Standard; - Sliding : in out Boolean from Standard) - - is static; - ---Purpose: 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 axis Axis of the revolved surface in the basis - -- shape defines the feature's axis of revolution. Height1 and Height2 may be - -- used as limits to the construction of the feature. - -- 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. - - Add(me: in out; E: Edge from TopoDS; OnFace: Face from TopoDS) - - ---Purpose: 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. - raises ConstructionError from Standard - - is static; - - - - Perform(me: in out) - - is static; - ---Purpose: Performs a prism from the wire to the plane - -- along the basis shape S. Reconstructs the feature topologically. - - - Propagate(me: in out; L: in out ListOfShape from TopTools; - F: Face from TopoDS; - FPoint, LPoint: Pnt from gp; - falseside : in out Boolean from Standard) - returns Boolean from Standard - is static; - - -fields - - myAxe : Ax1 from gp; - myHeight1 : Real from Standard; - myHeight2 : Real from Standard; - mySliding : Boolean from Standard; - myPln : Plane from Geom; - myBnd : Real from Standard; - mySlface : DataMapOfShapeListOfShape from TopTools; - myListOfEdges : ListOfShape from TopTools; - myTol : Real from Standard; - myAngle1 : Real from Standard; - myAngle2 : Real from Standard; - -end MakeRevolutionForm; - - - diff --git a/src/BRepFeat/BRepFeat_MakeRevolutionForm.cxx b/src/BRepFeat/BRepFeat_MakeRevolutionForm.cxx index 6ed0665495..22de2b6021 100644 --- a/src/BRepFeat/BRepFeat_MakeRevolutionForm.cxx +++ b/src/BRepFeat/BRepFeat_MakeRevolutionForm.cxx @@ -14,124 +14,91 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include - -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include - -#include +#include +#include #include +#include +#include +#include +#include #include +#include #include -#include -#include #include -#include - #include -#include - -#include -#include -#include -#include - - #include #include - -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include - +#include +#include #include -#include - -#include - -#include -#include - -#include #include - -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include #include -#include +#include #include -#include -#include - -#include - -#include - -#include -#include -#include - -#include -#include -#include - -#include - -#include -#include - -#include +#include //modified by NIZNHY-PKV Fri Mar 22 16:56:15 2002 //#include //#include //#include -#include -#include -#include //modified by NIZNHY-PKV Fri Mar 22 16:56:17 2002 t - -#include -#include -#include - -#include -#include - -#include - -#include - -#include - - -#include -#include -#include - -#include - #ifdef OCCT_DEBUG extern Standard_Boolean BRepFeat_GettraceFEAT(); extern Standard_Boolean BRepFeat_GettraceFEATRIB(); diff --git a/src/BRepFeat/BRepFeat_MakeRevolutionForm.hxx b/src/BRepFeat/BRepFeat_MakeRevolutionForm.hxx new file mode 100644 index 0000000000..4b38785d3a --- /dev/null +++ b/src/BRepFeat/BRepFeat_MakeRevolutionForm.hxx @@ -0,0 +1,130 @@ +// Created on: 1997-10-14 +// Created by: Olga KOULECHOVA +// 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_MakeRevolutionForm_HeaderFile +#define _BRepFeat_MakeRevolutionForm_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Geom_Plane; +class Standard_ConstructionError; +class TopoDS_Shape; +class TopoDS_Wire; +class gp_Ax1; +class TopoDS_Edge; +class TopoDS_Face; +class gp_Pnt; + + +//! MakeRevolutionForm Generates a surface of +//! revolution in the feature as it slides along a +//! revolved face in the basis shape. +//! The semantics of mechanical features is built +//! around giving thickness to a contour. This +//! thickness can either be unilateral - on one side +//! of the contour - or bilateral - 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_MakeRevolutionForm : public BRepFeat_RibSlot +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! initializes the linear form class. + BRepFeat_MakeRevolutionForm(); + + //! 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 axis Axis of the + //! revolved surface in the basis shape defines the feature's axis of revolution. + //! Height1 and Height2 may be used as limits to the construction of the feature. + //! 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_MakeRevolutionForm(const TopoDS_Shape& Sbase, const TopoDS_Wire& W, const Handle(Geom_Plane)& Plane, const gp_Ax1& Axis, const Standard_Real Height1, const Standard_Real Height2, const Standard_Integer Fuse, Standard_Boolean& Sliding); + + //! 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 axis Axis of the revolved surface in the basis + //! shape defines the feature's axis of revolution. Height1 and Height2 may be + //! used as limits to the construction of the feature. + //! 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)& Plane, const gp_Ax1& Axis, const Standard_Real Height1, const Standard_Real Height2, const Standard_Integer Fuse, Standard_Boolean& Sliding); + + //! 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 S. Reconstructs the feature topologically. + Standard_EXPORT void Perform(); + + 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: + + + + gp_Ax1 myAxe; + Standard_Real myHeight1; + Standard_Real myHeight2; + Standard_Boolean mySliding; + Handle(Geom_Plane) myPln; + Standard_Real myBnd; + TopTools_DataMapOfShapeListOfShape mySlface; + TopTools_ListOfShape myListOfEdges; + Standard_Real myTol; + Standard_Real myAngle1; + Standard_Real myAngle2; + + +}; + + +#include + + + + + +#endif // _BRepFeat_MakeRevolutionForm_HeaderFile diff --git a/src/BRepFeat/BRepFeat_PerfSelection.hxx b/src/BRepFeat/BRepFeat_PerfSelection.hxx new file mode 100644 index 0000000000..44809358f7 --- /dev/null +++ b/src/BRepFeat/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/src/BRepFeat/BRepFeat_RibSlot.cdl b/src/BRepFeat/BRepFeat_RibSlot.cdl deleted file mode 100644 index 21162ab5e7..0000000000 --- a/src/BRepFeat/BRepFeat_RibSlot.cdl +++ /dev/null @@ -1,299 +0,0 @@ --- Created on: 1997-10-08 --- Created by: Olga KOULECHOVA --- 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. - -deferred class RibSlot from BRepFeat inherits MakeShape from BRepBuilderAPI - - ---Purpose: Provides functions to build mechanical features. - -- Mechanical features include ribs - protrusions and grooves (or slots) - depressions along - -- planar (linear) surfaces or revolution surfaces. The semantics of mechanical features is built - -- around giving thickness to a contour. This thickness can either be unilateral - on one side - -- of the contour - or bilateral - 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. - -uses Shape from TopoDS, - Face from TopoDS, - Wire from TopoDS, - Edge from TopoDS, - Vertex from TopoDS, - ShapeModification from BRepBuilderAPI, - DataMapOfShapeListOfShape from TopTools, - ListOfShape from TopTools, - SequenceOfCurve from TColGeom, - Plane from Geom, - Curve from Geom, - DataMapOfShapeShape from TopTools, - - Gluer from LocOpe, - HBuilder from TopOpeBRepBuild, - PerfSelection from BRepFeat, - Pnt from gp, - Dir from gp, - StatusError from BRepFeat, - --modified by NIZNHY-PKV Thu Mar 21 17:09:08 2002 f - BooleanOperation from BRepAlgoAPI - --modified by NIZNHY-PKV Thu Mar 21 17:09:11 2002 t -is - - Initialize; - - ---Purpose: Redefines the empty constructor. - ---C++: inline - - ---- Methods redefined from BRepBuilderAPI_MakeShape - - IsDeleted(me : in out ; F: Shape from TopoDS) - returns Boolean from Standard - is redefined; - ---Purpose: Returns true if F a TopoDS_Shape of type edge or face has been deleted. - - Modified(me: in out; F: Shape from TopoDS) - ---Purpose: Returns the list of generated Faces F. This list may be empty. - ---C++: return const & - returns ListOfShape from TopTools - is redefined; - - - Generated(me: in out; S: Shape from TopoDS) - ---Purpose: Returns a list TopTools_ListOfShape of the faces S created in the shape. - ---C++: return const & - returns ListOfShape from TopTools - is redefined; - - - FirstShape (me) - ---Purpose: Returns the list of shapes created at the bottom of - -- the created form. It may be an empty list. - returns ListOfShape from TopTools; - ---C++: return const& - - - LastShape (me) - ---Purpose: Returns the list of shapes created at the top of the - -- created form. It may be an empty list. - returns ListOfShape from TopTools; - ---C++: return const& - - LFPerform(me: in out) - ---Purpose: General perform method... - - is static protected; - - FacesForDraft(me) - ---Purpose: Returns a list of the limiting and glueing faces - -- generated by the feature. These faces did not originally exist in the basis shape. - -- The list provides the information necessary for - -- subsequent addition of a draft to a face. It may be an empty list. - -- If a face has tangent edges, no draft is possible, and the tangent edges must - -- subsequently be removed if you want to add a draft to the face. - returns ListOfShape from TopTools; - ---C++: return const& - - NewEdges(me) - ---Purpose: Returns a list of the limiting and glueing edges - -- generated by the feature. These edges did not originally exist in the basis shape. - -- The list provides the information necessary for - -- subsequent addition of fillets. It may be an empty list. - returns ListOfShape from TopTools; - ---C++: return const& - - TgtEdges(me) - ---Purpose: Returns a list of the tangent edges among the - -- limiting and glueing edges generated by the - -- feature. These edges did not originally exist in - -- the basis shape and are tangent to the face - -- against which the feature is built. - -- The list provides the information necessary for - -- subsequent addition of fillets. It may be an empty list. - -- If an edge is tangent, no fillet is possible, and - -- the edge must subsequently be removed if you want to add a fillet. - returns ListOfShape from TopTools; - ---C++: return const& - - CheckPoint(me: in out; - e : Edge from TopoDS; - bnd : Real from Standard; - Pln : Plane from Geom) - returns Pnt from gp - is static protected; - - - Normal(me: in out; - F : Face from TopoDS; - P : Pnt from gp) - returns Dir from gp - is static protected; - - - IntPar(myclass; - C : Curve from Geom; - P : Pnt from gp) - returns Real from Standard; - - - EdgeExtention(me: in out; - e : in out Edge from TopoDS; - bnd : Real from Standard; - FirstLast : Boolean from Standard) - is static protected; - - - ChoiceOfFaces(myclass; - faces : in out ListOfShape from TopTools; - cc : Curve from Geom; - par : Real from Standard; - bnd : Real from Standard; - Pln : Plane from Geom) - returns Face from TopoDS; - - - HeightMax(me: in out; - theSbase : Shape from TopoDS; - theSUntil : Shape from TopoDS; - p1 : in out Pnt from gp; - p2 : in out Pnt from gp) - returns Real from Standard - is static protected; - - ExtremeFaces(me: in out; - RevolRib : Boolean from Standard; - bnd : Real from Standard; - Pln : Plane from Geom; - FirstEdge : in out Edge from TopoDS; - LastEdge : in out Edge from TopoDS; - FirstFace : in out Face from TopoDS; - LastFace : in out Face from TopoDS; - FirstVertex : in out Vertex from TopoDS; - LastVertex : in out Vertex from TopoDS; - OnFirstFace : in out Boolean from Standard; - OnLastFace : in out Boolean from Standard; - PtOnFirstEdge : in out Boolean from Standard; - PtOnLastEdge : in out Boolean from Standard; - OnFirstEdge : in out Edge from TopoDS; - OnLastEdge : in out Edge from TopoDS) - returns Boolean from Standard - is static protected; - - - PtOnEdgeVertex(me: in out; - RevolRib : Boolean from Standard; - shape : Shape from TopoDS; - point : Pnt from gp; - FirstVertex : Vertex from TopoDS; - LastVertex : Vertex from TopoDS; - PtOnEdge : in out Boolean from Standard; - OnEdge : in out Edge from TopoDS; - PtOnVertex : in out Boolean from Standard; - OnVertex : in out Vertex from TopoDS) - is static protected; - - - SlidingProfile(me: in out; - Prof : in out Face from TopoDS; - RevolRib : Boolean from Standard; - myTol : Real from Standard; - Concavite : in out Integer from Standard; - myPln : Plane from Geom; - BndFace : Face from TopoDS; - CheckPnt : Pnt from gp; - FirstFace : Face from TopoDS; - LastFace : Face from TopoDS; - FirstVertex : Vertex from TopoDS; - LastVertex : Vertex from TopoDS; - FirstEdge : Edge from TopoDS; - LastEdge : Edge from TopoDS) - returns Boolean from Standard - is static protected; - - - NoSlidingProfile(me: in out; - Prof : in out Face from TopoDS; - RevolRib : Boolean from Standard; - myTol : Real from Standard; - Concavite : in out Integer from Standard; - myPln : Plane from Geom; - bnd : Real from Standard; - BndFace : Face from TopoDS; - CheckPnt : Pnt from gp; - FirstFace : Face from TopoDS; - LastFace : Face from TopoDS; - FirstVertex : Vertex from TopoDS; - LastVertex : Vertex from TopoDS; - FirstEdge : Edge from TopoDS; - LastEdge : Edge from TopoDS; - OnFirstFace : Boolean from Standard; - OnLastFace : Boolean from Standard) - returns Boolean from Standard - is static protected; - - - UpdateDescendants(me: in out; G: Gluer from LocOpe) - - is static protected; - ---Purpose: Updates the data structures of descendant - -- shapes during the glueing operation.Returns the modified, generated - -- and deleted faces during the course of the glueing operation. - - UpdateDescendants(me: in out; - B : HBuilder from TopOpeBRepBuild; - SResult : Shape from TopoDS; - SkipFace : Boolean from Standard = Standard_False) - - is static protected; - ---modified by NIZNHY-PKV Thu Mar 21 18:42:53 2002 f - UpdateDescendants(me: in out; - aBOP: BooleanOperation from BRepAlgoAPI; - SResult : Shape from TopoDS; - SkipFace : Boolean from Standard = Standard_False) - is static protected; ---modified by NIZNHY-PKV Thu Mar 21 18:42:50 2002 t - - CurrentStatusError(me) - returns StatusError from BRepFeat; - -fields - - myFirstPnt : Pnt from gp is protected; - myLastPnt : Pnt from gp is protected; - myFuse : Boolean from Standard is protected; - mySliding : Boolean from Standard is protected; - myMap : DataMapOfShapeListOfShape from TopTools is protected; - myLFMap : DataMapOfShapeListOfShape from TopTools is protected; - myFShape : Shape from TopoDS is protected; - myLShape : Shape from TopoDS is protected; - - myPerfSelection: PerfSelection from BRepFeat is protected; - - myWire : Wire from TopoDS is protected; - mySbase : Shape from TopoDS is protected; - mySkface : Face from TopoDS is protected; - myPbase : Face from TopoDS is protected; - myGShape : Shape from TopoDS is protected; - mySUntil : Shape from TopoDS is protected; - myGluedF : DataMapOfShapeShape from TopTools is protected; - myNewEdges: ListOfShape from TopTools is protected; - myTgtEdges: ListOfShape from TopTools is protected; - myFacesForDraft: ListOfShape from TopTools is protected; - - myStatusError : StatusError from BRepFeat is protected; - -end RibSlot; diff --git a/src/BRepFeat/BRepFeat_RibSlot.cxx b/src/BRepFeat/BRepFeat_RibSlot.cxx index 0b81edc999..6b18c6542b 100644 --- a/src/BRepFeat/BRepFeat_RibSlot.cxx +++ b/src/BRepFeat/BRepFeat_RibSlot.cxx @@ -14,94 +14,77 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include - -#include -#include -#include -#include -#include - -#include - -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include +#include #include - +#include #include -//modified by NIZNHY-PKV Fri Mar 22 16:48:13 2002 f -//#include -//#include +#include #include #include -//modified by NIZNHY-PKV Fri Mar 22 16:48:16 2002 t - -#include #include -#include -#include -#include #include - -#include +#include +#include +#include +#include +#include #include -#include #include -#include - -#include - -#include -#include - -#include -#include - -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include +#include #include -#include #include - -#include +#include +#include +#include +#include +#include #include #include - -#include +#include #include +#include #include #include -#include - - -#include -#include -#include - +#include +#include +#include +#include +#include +#include #include - +#include +#include #include -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//modified by NIZNHY-PKV Fri Mar 22 16:48:13 2002 f +//#include +//#include +//modified by NIZNHY-PKV Fri Mar 22 16:48:16 2002 t #ifdef OCCT_DEBUG extern Standard_Boolean BRepFeat_GettraceFEAT(); extern Standard_Boolean BRepFeat_GettraceFEATRIB(); diff --git a/src/BRepFeat/BRepFeat_RibSlot.hxx b/src/BRepFeat/BRepFeat_RibSlot.hxx new file mode 100644 index 0000000000..2f970e2996 --- /dev/null +++ b/src/BRepFeat/BRepFeat_RibSlot.hxx @@ -0,0 +1,191 @@ +// Created on: 1997-10-08 +// Created by: Olga KOULECHOVA +// 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_RibSlot_HeaderFile +#define _BRepFeat_RibSlot_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Shape; +class gp_Pnt; +class TopoDS_Edge; +class Geom_Plane; +class gp_Dir; +class TopoDS_Face; +class Geom_Curve; +class TopoDS_Vertex; +class LocOpe_Gluer; +class TopOpeBRepBuild_HBuilder; +class BRepAlgoAPI_BooleanOperation; + + +//! Provides functions to build mechanical features. +//! Mechanical features include ribs - protrusions and grooves (or slots) - depressions along +//! planar (linear) surfaces or revolution surfaces. The semantics of mechanical features is built +//! around giving thickness to a contour. This thickness can either be unilateral - on one side +//! of the contour - or bilateral - 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_RibSlot : public BRepBuilderAPI_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Returns true if F a TopoDS_Shape of type edge or face has been deleted. + Standard_EXPORT virtual Standard_Boolean IsDeleted (const TopoDS_Shape& F) Standard_OVERRIDE; + + //! Returns the list of generated Faces F. This list may be empty. + Standard_EXPORT virtual const TopTools_ListOfShape& Modified (const TopoDS_Shape& F) Standard_OVERRIDE; + + //! Returns a list TopTools_ListOfShape of the faces S created in the shape. + Standard_EXPORT virtual const TopTools_ListOfShape& Generated (const TopoDS_Shape& S) Standard_OVERRIDE; + + //! Returns the list of shapes created at the bottom of + //! the created form. It may be an empty list. + Standard_EXPORT const TopTools_ListOfShape& FirstShape() const; + + //! Returns the list of shapes created at the top of the + //! created form. It may be an empty list. + Standard_EXPORT const TopTools_ListOfShape& LastShape() const; + + //! Returns a list of the limiting and glueing faces + //! generated by the feature. These faces did not originally exist in the basis shape. + //! The list provides the information necessary for + //! subsequent addition of a draft to a face. It may be an empty list. + //! If a face has tangent edges, no draft is possible, and the tangent edges must + //! subsequently be removed if you want to add a draft to the face. + Standard_EXPORT const TopTools_ListOfShape& FacesForDraft() const; + + //! Returns a list of the limiting and glueing edges + //! generated by the feature. These edges did not originally exist in the basis shape. + //! The list provides the information necessary for + //! subsequent addition of fillets. It may be an empty list. + Standard_EXPORT const TopTools_ListOfShape& NewEdges() const; + + //! Returns a list of the tangent edges among the + //! limiting and glueing edges generated by the + //! feature. These edges did not originally exist in + //! the basis shape and are tangent to the face + //! against which the feature is built. + //! The list provides the information necessary for + //! subsequent addition of fillets. It may be an empty list. + //! If an edge is tangent, no fillet is possible, and + //! the edge must subsequently be removed if you want to add a fillet. + Standard_EXPORT const TopTools_ListOfShape& TgtEdges() const; + + Standard_EXPORT static Standard_Real IntPar (const Handle(Geom_Curve)& C, const gp_Pnt& P); + + Standard_EXPORT static TopoDS_Face ChoiceOfFaces (TopTools_ListOfShape& faces, const Handle(Geom_Curve)& cc, const Standard_Real par, const Standard_Real bnd, const Handle(Geom_Plane)& Pln); + + Standard_EXPORT BRepFeat_StatusError CurrentStatusError() const; + + + + +protected: + + + //! Redefines the empty constructor. + BRepFeat_RibSlot(); + + //! General perform method... + Standard_EXPORT void LFPerform(); + + Standard_EXPORT gp_Pnt CheckPoint (const TopoDS_Edge& e, const Standard_Real bnd, const Handle(Geom_Plane)& Pln); + + Standard_EXPORT gp_Dir Normal (const TopoDS_Face& F, const gp_Pnt& P); + + Standard_EXPORT void EdgeExtention (TopoDS_Edge& e, const Standard_Real bnd, const Standard_Boolean FirstLast); + + Standard_EXPORT Standard_Real HeightMax (const TopoDS_Shape& theSbase, const TopoDS_Shape& theSUntil, gp_Pnt& p1, gp_Pnt& p2); + + Standard_EXPORT Standard_Boolean ExtremeFaces (const Standard_Boolean RevolRib, const Standard_Real bnd, const Handle(Geom_Plane)& Pln, TopoDS_Edge& FirstEdge, TopoDS_Edge& LastEdge, TopoDS_Face& FirstFace, TopoDS_Face& LastFace, TopoDS_Vertex& FirstVertex, TopoDS_Vertex& LastVertex, Standard_Boolean& OnFirstFace, Standard_Boolean& OnLastFace, Standard_Boolean& PtOnFirstEdge, Standard_Boolean& PtOnLastEdge, TopoDS_Edge& OnFirstEdge, TopoDS_Edge& OnLastEdge); + + Standard_EXPORT void PtOnEdgeVertex (const Standard_Boolean RevolRib, const TopoDS_Shape& shape, const gp_Pnt& point, const TopoDS_Vertex& FirstVertex, const TopoDS_Vertex& LastVertex, Standard_Boolean& PtOnEdge, TopoDS_Edge& OnEdge, Standard_Boolean& PtOnVertex, TopoDS_Vertex& OnVertex); + + Standard_EXPORT Standard_Boolean SlidingProfile (TopoDS_Face& Prof, const Standard_Boolean RevolRib, const Standard_Real myTol, Standard_Integer& Concavite, const Handle(Geom_Plane)& myPln, const TopoDS_Face& BndFace, const gp_Pnt& CheckPnt, const TopoDS_Face& FirstFace, const TopoDS_Face& LastFace, const TopoDS_Vertex& FirstVertex, const TopoDS_Vertex& LastVertex, const TopoDS_Edge& FirstEdge, const TopoDS_Edge& LastEdge); + + Standard_EXPORT Standard_Boolean NoSlidingProfile (TopoDS_Face& Prof, const Standard_Boolean RevolRib, const Standard_Real myTol, Standard_Integer& Concavite, const Handle(Geom_Plane)& myPln, const Standard_Real bnd, const TopoDS_Face& BndFace, const gp_Pnt& CheckPnt, const TopoDS_Face& FirstFace, const TopoDS_Face& LastFace, const TopoDS_Vertex& FirstVertex, const TopoDS_Vertex& LastVertex, const TopoDS_Edge& FirstEdge, const TopoDS_Edge& LastEdge, const Standard_Boolean OnFirstFace, const Standard_Boolean OnLastFace); + + //! Updates the data structures of descendant + //! shapes during the glueing operation.Returns the modified, generated + //! and deleted faces during the course of the glueing operation. + Standard_EXPORT void UpdateDescendants (const LocOpe_Gluer& G); + + Standard_EXPORT void UpdateDescendants (const Handle(TopOpeBRepBuild_HBuilder)& B, const TopoDS_Shape& SResult, const Standard_Boolean SkipFace = Standard_False); + + Standard_EXPORT void UpdateDescendants (const BRepAlgoAPI_BooleanOperation& aBOP, const TopoDS_Shape& SResult, const Standard_Boolean SkipFace = Standard_False); + + + gp_Pnt myFirstPnt; + gp_Pnt myLastPnt; + Standard_Boolean myFuse; + Standard_Boolean mySliding; + TopTools_DataMapOfShapeListOfShape myMap; + TopTools_DataMapOfShapeListOfShape myLFMap; + TopoDS_Shape myFShape; + TopoDS_Shape myLShape; + BRepFeat_PerfSelection myPerfSelection; + TopoDS_Wire myWire; + TopoDS_Shape mySbase; + TopoDS_Face mySkface; + TopoDS_Face myPbase; + TopoDS_Shape myGShape; + TopoDS_Shape mySUntil; + TopTools_DataMapOfShapeShape myGluedF; + TopTools_ListOfShape myNewEdges; + TopTools_ListOfShape myTgtEdges; + TopTools_ListOfShape myFacesForDraft; + BRepFeat_StatusError myStatusError; + + +private: + + + + + +}; + + +#include + + + + + +#endif // _BRepFeat_RibSlot_HeaderFile diff --git a/src/BRepFeat/BRepFeat_SplitShape.cdl b/src/BRepFeat/BRepFeat_SplitShape.cdl deleted file mode 100644 index f2d037cb54..0000000000 --- a/src/BRepFeat/BRepFeat_SplitShape.cdl +++ /dev/null @@ -1,168 +0,0 @@ --- Created on: 1995-09-04 --- 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. - -class SplitShape from BRepFeat inherits MakeShape from BRepBuilderAPI - - ---Purpose: One of the most significant aspects of BRepFeat functionality is the use of local - -- operations as opposed to global ones. In a global operation, you would first construct a - -- form of the type you wanted in your final feature, and then remove matter so that it could - -- fit into your initial basis object. In a local operation, however, you specify the domain of - -- the feature construction with aspects of the shape on which the feature is being created. - -- These semantics are expressed in terms of a member shape of the basis shape from which - - -- or up to which - matter will be added or removed. As a result, local operations make - -- calculations simpler and faster than global operations. - -- In BRepFeat, the semantics of local operations define features constructed from a contour or a - -- part of the basis shape referred to as the tool. In a SplitShape object, wires or edges of a - -- face in the basis shape to be used as a part of the feature are cut out and projected to a plane - -- outside or inside the basis shape. By rebuilding the initial shape incorporating the edges and - -- the faces of the tool, protrusion or depression features can be constructed. - - -uses Spliter from LocOpe, - WiresOnShape from LocOpe, - Shape from TopoDS, - Face from TopoDS, - Wire from TopoDS, - Edge from TopoDS, - Compound from TopoDS, - Vertex from TopoDS, - ListOfShape from TopTools, - ShapeModification from BRepBuilderAPI - -raises NotDone from StdFail, - ConstructionError from Standard, - NoSuchObject from Standard - -is - - - Create - ---Purpose: Empty constructor - returns SplitShape from BRepFeat; - ---C++: inline - - - Create(S: Shape from TopoDS) - ---Purpose: Creates the process with the shape . - returns SplitShape from BRepFeat; - ---C++: inline - - - Init(me: in out; S: Shape from TopoDS) - ---Purpose: Initializes the process on the shape . - ---C++: inline - is static; - - SetCheckInterior(me: in out; ToCheckInterior: Boolean from Standard) - ---Purpose: Set the flag of check internal intersections - -- default value is True (to check) - ---C++: inline - is static; - - Add(me: in out; W: Wire from TopoDS; - F: Face from TopoDS) - ---Purpose: Adds the wire on the face . - -- Raises NoSuchObject if does not belong to the original shape. - ---C++: inline - raises NoSuchObject from Standard, - ConstructionError from Standard - - is static; - - - - Add(me: in out; E: Edge from TopoDS; - F: Face from TopoDS) - ---Purpose: Adds the edge on the face . - ---C++: inline - raises NoSuchObject from Standard, - -- if does not belong to the original shape. - ConstructionError from Standard - - is static; - - Add(me: in out; Comp: Compound from TopoDS; - F: Face from TopoDS) - ---Purpose: Adds the compound on the face . The - -- compound must consist of edges lying on the - -- face . If edges are geometrically connected, - -- they must be connected topologically, i.e. they - -- must share common vertices. - -- - -- Raises NoSuchObject if does not belong to the original shape. - ---C++: inline - raises NoSuchObject from Standard, - ConstructionError from Standard - - is static; - - - Add(me: in out; E : Edge from TopoDS; - EOn: Edge from TopoDS) - ---Purpose: Adds the edge on the existing edge . - ---C++: inline - raises NoSuchObject from Standard, - -- if does not belong to the original shape. - ConstructionError from Standard - - is static; - - - DirectLeft(me) - ---Purpose: Returns the faces which are the left of the - -- projected wires. - returns ListOfShape from TopTools - ---C++: return const& - raises NotDone from StdFail - --- The exception is raised when IsDone returns . - is static; - - - Left(me) - ---Purpose: Returns the faces of the "left" part on the shape. - -- (It is build from DirectLeft, with the faces - -- connected to this set, and so on...). - -- Raises NotDone if IsDone returns . - ---C++: return const& - returns ListOfShape from TopTools - raises NotDone from StdFail - is static; - - ---- Methods inherited from MakeShape, that must be redefined. - - - Build(me: in out) - - is redefined static; - --- Purpose: Builds the cut and the resulting faces and edges as well. - IsDeleted (me: in out; S : Shape from TopoDS) - returns Boolean - is redefined; - ---Purpose: Returns true if the shape has been deleted. - - Modified(me: in out; F: Shape from TopoDS) - ---Purpose: Returns the list of generated Faces. - ---C++: return const & - returns ListOfShape from TopTools - is redefined static; - -fields - - mySShape : Spliter from LocOpe; - myWOnShape : WiresOnShape from LocOpe; - -end SplitShape; diff --git a/src/BRepFeat/BRepFeat_SplitShape.cxx b/src/BRepFeat/BRepFeat_SplitShape.cxx index 0e8531dfe4..6d0e7b43bd 100644 --- a/src/BRepFeat/BRepFeat_SplitShape.cxx +++ b/src/BRepFeat/BRepFeat_SplitShape.cxx @@ -14,16 +14,24 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : Build //purpose : //======================================================================= - void BRepFeat_SplitShape::Build () { mySShape.Perform(myWOnShape); diff --git a/src/BRepFeat/BRepFeat_SplitShape.hxx b/src/BRepFeat/BRepFeat_SplitShape.hxx new file mode 100644 index 0000000000..efcedc65c5 --- /dev/null +++ b/src/BRepFeat/BRepFeat_SplitShape.hxx @@ -0,0 +1,136 @@ +// Created on: 1995-09-04 +// 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_SplitShape_HeaderFile +#define _BRepFeat_SplitShape_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class LocOpe_WiresOnShape; +class StdFail_NotDone; +class Standard_ConstructionError; +class Standard_NoSuchObject; +class TopoDS_Shape; +class TopoDS_Wire; +class TopoDS_Face; +class TopoDS_Edge; +class TopoDS_Compound; + + +//! One of the most significant aspects of BRepFeat functionality is the use of local +//! operations as opposed to global ones. In a global operation, you would first construct a +//! form of the type you wanted in your final feature, and then remove matter so that it could +//! fit into your initial basis object. In a local operation, however, you specify the domain of +//! the feature construction with aspects of the shape on which the feature is being created. +//! These semantics are expressed in terms of a member shape of the basis shape from which - +//! or up to which - matter will be added or removed. As a result, local operations make +//! calculations simpler and faster than global operations. +//! In BRepFeat, the semantics of local operations define features constructed from a contour or a +//! part of the basis shape referred to as the tool. In a SplitShape object, wires or edges of a +//! face in the basis shape to be used as a part of the feature are cut out and projected to a plane +//! outside or inside the basis shape. By rebuilding the initial shape incorporating the edges and +//! the faces of the tool, protrusion or depression features can be constructed. +class BRepFeat_SplitShape : public BRepBuilderAPI_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor + BRepFeat_SplitShape(); + + //! Creates the process with the shape . + BRepFeat_SplitShape(const TopoDS_Shape& S); + + //! Initializes the process on the shape . + void Init (const TopoDS_Shape& S); + + //! Set the flag of check internal intersections + //! default value is True (to check) + void SetCheckInterior (const Standard_Boolean ToCheckInterior); + + //! Adds the wire on the face . + //! Raises NoSuchObject if does not belong to the original shape. + void Add (const TopoDS_Wire& W, const TopoDS_Face& F); + + //! Adds the edge on the face . + void Add (const TopoDS_Edge& E, const TopoDS_Face& F); + + //! Adds the compound on the face . The + //! compound must consist of edges lying on the + //! face . If edges are geometrically connected, + //! they must be connected topologically, i.e. they + //! must share common vertices. + //! + //! Raises NoSuchObject if does not belong to the original shape. + void Add (const TopoDS_Compound& Comp, const TopoDS_Face& F); + + //! Adds the edge on the existing edge . + void Add (const TopoDS_Edge& E, const TopoDS_Edge& EOn); + + //! Returns the faces which are the left of the + //! projected wires. + Standard_EXPORT const TopTools_ListOfShape& DirectLeft() const; + + //! Returns the faces of the "left" part on the shape. + //! (It is build from DirectLeft, with the faces + //! connected to this set, and so on...). + //! Raises NotDone if IsDone returns . + Standard_EXPORT const TopTools_ListOfShape& Left() const; + + //! Builds the cut and the resulting faces and edges as well. + Standard_EXPORT void Build() Standard_OVERRIDE; + + //! Returns true if the shape has been deleted. + Standard_EXPORT virtual Standard_Boolean IsDeleted (const TopoDS_Shape& S) Standard_OVERRIDE; + + //! Returns the list of generated Faces. + Standard_EXPORT const TopTools_ListOfShape& Modified (const TopoDS_Shape& F) Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + LocOpe_Spliter mySShape; + Handle(LocOpe_WiresOnShape) myWOnShape; + + +}; + + +#include + + + + + +#endif // _BRepFeat_SplitShape_HeaderFile diff --git a/src/BRepFeat/BRepFeat_Status.hxx b/src/BRepFeat/BRepFeat_Status.hxx new file mode 100644 index 0000000000..7bfced31cc --- /dev/null +++ b/src/BRepFeat/BRepFeat_Status.hxx @@ -0,0 +1,28 @@ +// 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_Status_HeaderFile +#define _BRepFeat_Status_HeaderFile + + +enum BRepFeat_Status +{ +BRepFeat_NoError, +BRepFeat_InvalidPlacement, +BRepFeat_HoleTooLong +}; + +#endif // _BRepFeat_Status_HeaderFile diff --git a/src/BRepFeat/BRepFeat_StatusError.hxx b/src/BRepFeat/BRepFeat_StatusError.hxx new file mode 100644 index 0000000000..4ef6a67149 --- /dev/null +++ b/src/BRepFeat/BRepFeat_StatusError.hxx @@ -0,0 +1,53 @@ +// 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_StatusError_HeaderFile +#define _BRepFeat_StatusError_HeaderFile + +//! Discribes the error. +enum BRepFeat_StatusError +{ +BRepFeat_OK, +BRepFeat_BadDirect, +BRepFeat_BadIntersect, +BRepFeat_EmptyBaryCurve, +BRepFeat_EmptyCutResult, +BRepFeat_FalseSide, +BRepFeat_IncDirection, +BRepFeat_IncSlidFace, +BRepFeat_IncParameter, +BRepFeat_IncTypes, +BRepFeat_IntervalOverlap, +BRepFeat_InvFirstShape, +BRepFeat_InvOption, +BRepFeat_InvShape, +BRepFeat_LocOpeNotDone, +BRepFeat_LocOpeInvNotDone, +BRepFeat_NoExtFace, +BRepFeat_NoFaceProf, +BRepFeat_NoGluer, +BRepFeat_NoIntersectF, +BRepFeat_NoIntersectU, +BRepFeat_NoParts, +BRepFeat_NoProjPt, +BRepFeat_NotInitialized, +BRepFeat_NotYetImplemented, +BRepFeat_NullRealTool, +BRepFeat_NullToolF, +BRepFeat_NullToolU +}; + +#endif // _BRepFeat_StatusError_HeaderFile diff --git a/src/BRepFeat/FILES b/src/BRepFeat/FILES index a1ee673458..af0c21675b 100755 --- a/src/BRepFeat/FILES +++ b/src/BRepFeat/FILES @@ -1 +1,41 @@ +BRepFeat.cxx +BRepFeat.hxx +BRepFeat_Builder.cxx +BRepFeat_Builder.hxx +BRepFeat_Form.cxx +BRepFeat_Form.hxx +BRepFeat_Form.lxx +BRepFeat_Gluer.cxx +BRepFeat_Gluer.hxx +BRepFeat_Gluer.lxx +BRepFeat_MakeCylindricalHole.cxx +BRepFeat_MakeCylindricalHole.hxx +BRepFeat_MakeCylindricalHole.lxx +BRepFeat_MakeDPrism.cxx +BRepFeat_MakeDPrism.hxx +BRepFeat_MakeDPrism.lxx +BRepFeat_MakeLinearForm.cxx +BRepFeat_MakeLinearForm.hxx +BRepFeat_MakeLinearForm.lxx +BRepFeat_MakePipe.cxx +BRepFeat_MakePipe.hxx +BRepFeat_MakePipe.lxx +BRepFeat_MakePrism.cxx +BRepFeat_MakePrism.hxx +BRepFeat_MakePrism.lxx +BRepFeat_MakeRevol.cxx +BRepFeat_MakeRevol.hxx +BRepFeat_MakeRevol.lxx +BRepFeat_MakeRevolutionForm.cxx +BRepFeat_MakeRevolutionForm.hxx +BRepFeat_MakeRevolutionForm.lxx +BRepFeat_PerfSelection.hxx +BRepFeat_RibSlot.cxx +BRepFeat_RibSlot.hxx +BRepFeat_RibSlot.lxx +BRepFeat_SplitShape.cxx +BRepFeat_SplitShape.hxx +BRepFeat_SplitShape.lxx +BRepFeat_Status.hxx +BRepFeat_StatusError.hxx BRepFeat_trace.cxx diff --git a/src/BRepFill/BRepFill.cdl b/src/BRepFill/BRepFill.cdl deleted file mode 100644 index b47689d56e..0000000000 --- a/src/BRepFill/BRepFill.cdl +++ /dev/null @@ -1,229 +0,0 @@ --- 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. - --- Modified: Mon Nov 3 10:24:07 1997 --- new class CurveConstraint --- Modified: Mon Jan 12 10:46:37 1998 --- new method Organize --- Modified: Mon Feb 23 09:28:33 1998 --- new methods SameNumber, ComputeACR, InsertACR --- for sections with different number of elements --- Modified: Thu Apr 30 15:27:04 1998 --- methods Organize and SameNumber are dispatched in --- new methods SearchOrigin and SameNumberByACR for open wires --- and SameNumberByPolarMethod and ComputeOrigin for closed wires --- Modified: Tue Nov 3 10:41:06 1998 --- add classe CompatibleWires - - -package BRepFill - - -uses - MMgt, - TCollection, - TColStd, - GeomAbs, - gp, - Bnd, - TopLoc, - TColgp, - MAT, - Geom2d, - TColGeom2d, - TopAbs, - TopoDS, - TopTools, - Geom, - TColGeom, - Geom2dAdaptor, - Approx, - Bisector, - BRep, - BRepTools, - BRepAlgo, - BRepSweep, - GeomFill, - BRepMAT2d, - StdFail, - GeomPlate, - Adaptor3d, - Law, - GeomLProp - -is - enumeration TransitionStyle - is Modified, Right, Round end; - - enumeration TypeOfContact - is NoContact, Contact, ContactOnBorder end; - --- private class FilledPair; - ---Purpose: A pair of bound shapes with the result. - - - class Generator; - - deferred class SectionLaw; - class ShapeLaw; - class NSections; - - class Draft; - - deferred class LocationLaw; - class DraftLaw; - class Edge3DLaw; - class EdgeOnSurfLaw; - class ACRLaw; - - class Pipe; - - class PipeShell; - - class Evolved; - - class Sweep; - - class CompatibleWires; - - class OffsetWire; - - class OffsetAncestors; - - - imported ListOfOffsetWire; - - - imported ListIteratorOfListOfOffsetWire; - private class ApproxSeewing; - - imported MultiLine; - - private class ComputeCLine instantiates - ComputeCLine from Approx (MultiLine); - - - private class TrimSurfaceTool; - - private class TrimEdgeTool; - - private class SectionPlacement; - - private class Section; - - --class TrimCorner; - ---modified by NIZHNY-MKK Tue Oct 21 17:43:15 2003 - class TrimShellCorner; - - imported SequenceOfSection; - - imported DataMapOfNodeDataMapOfShapeShape; - - imported DataMapIteratorOfDataMapOfNodeDataMapOfShapeShape; - - imported DataMapOfNodeShape; - - imported DataMapIteratorOfDataMapOfNodeShape; - - imported DataMapOfShapeDataMapOfShapeListOfShape; - - imported DataMapIteratorOfDataMapOfShapeDataMapOfShapeListOfShape; - - imported DataMapOfShapeSequenceOfReal; - - imported DataMapIteratorOfDataMapOfShapeSequenceOfReal; - - imported DataMapOfShapeSequenceOfPnt; - - imported DataMapIteratorOfDataMapOfShapeSequenceOfPnt; - - imported DataMapOfOrientedShapeListOfShape; - - imported DataMapIteratorOfDataMapOfOrientedShapeListOfShape; - - imported IndexedDataMapOfOrientedShapeListOfShape; - - imported DataMapOfShapeHArray2OfShape; - - imported DataMapIteratorOfDataMapOfShapeHArray2OfShape; - - - class CurveConstraint ; - - class Filling; - - private class FaceAndOrder; - - private class EdgeFaceAndOrder; - - imported SequenceOfFaceAndOrder; - - imported SequenceOfEdgeFaceAndOrder; - - Face( Edge1 : Edge from TopoDS; - Edge2 : Edge from TopoDS ) - ---Purpose: Computes a ruled surface between two edges. - returns Face from TopoDS; - - Shell( Wire1 : Wire from TopoDS; - Wire2 : Wire from TopoDS ) - ---Purpose: Computes a ruled surface between two wires. - -- The wires must have the same number of edges. - returns Shell from TopoDS; - - Axe (Spine : Shape from TopoDS; - Profile : Wire from TopoDS; - AxeProf : in out Ax3 from gp; - ProfOnSpine : in out Boolean from Standard; - Tol : Real from Standard); - ---Purpose: Computes as Follow. is - -- the Position of the nearest vertex V of - -- to . is confused with the tangent - -- to at the projected point of V on the Spine. - -- is normal to . - -- is a plane wire or a plane face. - - -- is if the distance - -- between and is high to . - - - SearchOrigin( W : in out Wire from TopoDS; - P : Pnt from gp; - V : Vec from gp; - Tol : Real) is private; - ---Purpose: Computes origins and orientation on a closed wire - - - ComputeACR( wire : Wire from TopoDS; - ACR : out Array1OfReal from TColStd ); - ---Purpose: Compute ACR on a wire - - InsertACR( wire : Wire from TopoDS; - ACRcuts : Array1OfReal from TColStd; - prec : Real from Standard ) - ---Purpose: Insert ACR on a wire - returns Wire from TopoDS; - - -end BRepFill; - - - - - - - diff --git a/src/BRepFill/BRepFill.cxx b/src/BRepFill/BRepFill.cxx index 8eb19fc677..b616fee0f1 100644 --- a/src/BRepFill/BRepFill.cxx +++ b/src/BRepFill/BRepFill.cxx @@ -34,64 +34,63 @@ // Modified: Mon Oct 12 09:42:33 1998 // number of edges in EdgesFromVertex (CTS21570) -#include - +#include +#include +#include +#include +#include +#include +#include #include #include -#include #include +#include #include #include -#include -#include -#include +#include #include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include #include -#include -#include #include -#include -#include +#include +#include #include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include #include #include -#include #include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include - static void MakeWire(const TopTools_Array1OfShape& Edges, const Standard_Integer rangdeb, diff --git a/src/BRepFill/BRepFill.hxx b/src/BRepFill/BRepFill.hxx new file mode 100644 index 0000000000..1e4762947a --- /dev/null +++ b/src/BRepFill/BRepFill.hxx @@ -0,0 +1,148 @@ +// 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_HeaderFile +#define _BRepFill_HeaderFile + +#include +#include +#include + +#include +#include +#include +class TopoDS_Face; +class TopoDS_Edge; +class TopoDS_Shell; +class TopoDS_Wire; +class TopoDS_Shape; +class gp_Ax3; +class gp_Pnt; +class gp_Vec; +class BRepFill_Generator; +class BRepFill_SectionLaw; +class BRepFill_ShapeLaw; +class BRepFill_NSections; +class BRepFill_Draft; +class BRepFill_LocationLaw; +class BRepFill_DraftLaw; +class BRepFill_Edge3DLaw; +class BRepFill_EdgeOnSurfLaw; +class BRepFill_ACRLaw; +class BRepFill_Pipe; +class BRepFill_PipeShell; +class BRepFill_Evolved; +class BRepFill_Sweep; +class BRepFill_CompatibleWires; +class BRepFill_OffsetWire; +class BRepFill_OffsetAncestors; +class BRepFill_ApproxSeewing; +class BRepFill_ComputeCLine; +class BRepFill_TrimSurfaceTool; +class BRepFill_TrimEdgeTool; +class BRepFill_SectionPlacement; +class BRepFill_Section; +class BRepFill_TrimShellCorner; +class BRepFill_CurveConstraint; +class BRepFill_Filling; +class BRepFill_FaceAndOrder; +class BRepFill_EdgeFaceAndOrder; + + + +class BRepFill +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Computes a ruled surface between two edges. + Standard_EXPORT static TopoDS_Face Face (const TopoDS_Edge& Edge1, const TopoDS_Edge& Edge2); + + //! Computes a ruled surface between two wires. + //! The wires must have the same number of edges. + Standard_EXPORT static TopoDS_Shell Shell (const TopoDS_Wire& Wire1, const TopoDS_Wire& Wire2); + + //! Computes as Follow. is + //! the Position of the nearest vertex V of + //! to . is confused with the tangent + //! to at the projected point of V on the Spine. + //! is normal to . + //! is a plane wire or a plane face. + Standard_EXPORT static void Axe (const TopoDS_Shape& Spine, const TopoDS_Wire& Profile, gp_Ax3& AxeProf, Standard_Boolean& ProfOnSpine, const Standard_Real Tol); + + //! Compute ACR on a wire + Standard_EXPORT static void ComputeACR (const TopoDS_Wire& wire, TColStd_Array1OfReal& ACR); + + //! Insert ACR on a wire + Standard_EXPORT static TopoDS_Wire InsertACR (const TopoDS_Wire& wire, const TColStd_Array1OfReal& ACRcuts, const Standard_Real prec); + + + + +protected: + + + + + +private: + + + //! Computes origins and orientation on a closed wire + Standard_EXPORT static void SearchOrigin (TopoDS_Wire& W, const gp_Pnt& P, const gp_Vec& V, const Standard_Real Tol); + + + +friend class BRepFill_Generator; +friend class BRepFill_SectionLaw; +friend class BRepFill_ShapeLaw; +friend class BRepFill_NSections; +friend class BRepFill_Draft; +friend class BRepFill_LocationLaw; +friend class BRepFill_DraftLaw; +friend class BRepFill_Edge3DLaw; +friend class BRepFill_EdgeOnSurfLaw; +friend class BRepFill_ACRLaw; +friend class BRepFill_Pipe; +friend class BRepFill_PipeShell; +friend class BRepFill_Evolved; +friend class BRepFill_Sweep; +friend class BRepFill_CompatibleWires; +friend class BRepFill_OffsetWire; +friend class BRepFill_OffsetAncestors; +friend class BRepFill_ApproxSeewing; +friend class BRepFill_ComputeCLine; +friend class BRepFill_TrimSurfaceTool; +friend class BRepFill_TrimEdgeTool; +friend class BRepFill_SectionPlacement; +friend class BRepFill_Section; +friend class BRepFill_TrimShellCorner; +friend class BRepFill_CurveConstraint; +friend class BRepFill_Filling; +friend class BRepFill_FaceAndOrder; +friend class BRepFill_EdgeFaceAndOrder; + +}; + + + + + + + +#endif // _BRepFill_HeaderFile diff --git a/src/BRepFill/BRepFill_ACRLaw.cdl b/src/BRepFill/BRepFill_ACRLaw.cdl deleted file mode 100644 index 13d1cdf7fa..0000000000 --- a/src/BRepFill/BRepFill_ACRLaw.cdl +++ /dev/null @@ -1,39 +0,0 @@ --- Created on: 1998-09-01 --- Created by: Stephanie HUMEAU --- 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. - -class ACRLaw from BRepFill inherits LocationLaw from BRepFill - - ---Purpose: Build Location Law, with a Wire. In the case - -- of guided contour and trihedron by reduced - -- curvilinear abscissa - - - -uses - Wire from TopoDS, - LocationLaw from GeomFill, - LocationGuide from GeomFill, - HArray1OfReal from TColStd - -is - Create (Path : Wire from TopoDS; - Law : LocationGuide from GeomFill) - returns ACRLaw from BRepFill; - -fields - OrigParam : HArray1OfReal from TColStd; - -end ACRLaw; diff --git a/src/BRepFill/BRepFill_ACRLaw.cxx b/src/BRepFill/BRepFill_ACRLaw.cxx index 68f96ff148..1b4fe13648 100644 --- a/src/BRepFill/BRepFill_ACRLaw.cxx +++ b/src/BRepFill/BRepFill_ACRLaw.cxx @@ -14,23 +14,24 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include #include -#include -#include -#include -#include #include -#include -#include - -#include +#include +#include #include #include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include BRepFill_ACRLaw::BRepFill_ACRLaw(const TopoDS_Wire& Path, const Handle(GeomFill_LocationGuide)& theLaw) diff --git a/src/BRepFill/BRepFill_ACRLaw.hxx b/src/BRepFill/BRepFill_ACRLaw.hxx new file mode 100644 index 0000000000..9279d1dfc9 --- /dev/null +++ b/src/BRepFill/BRepFill_ACRLaw.hxx @@ -0,0 +1,67 @@ +// Created on: 1998-09-01 +// Created by: Stephanie HUMEAU +// 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_ACRLaw_HeaderFile +#define _BRepFill_ACRLaw_HeaderFile + +#include +#include + +#include +#include +class TopoDS_Wire; +class GeomFill_LocationGuide; + + +class BRepFill_ACRLaw; +DEFINE_STANDARD_HANDLE(BRepFill_ACRLaw, BRepFill_LocationLaw) + +//! Build Location Law, with a Wire. In the case +//! of guided contour and trihedron by reduced +//! curvilinear abscissa +class BRepFill_ACRLaw : public BRepFill_LocationLaw +{ + +public: + + + Standard_EXPORT BRepFill_ACRLaw(const TopoDS_Wire& Path, const Handle(GeomFill_LocationGuide)& Law); + + + + + DEFINE_STANDARD_RTTI(BRepFill_ACRLaw,BRepFill_LocationLaw) + +protected: + + + + +private: + + + Handle(TColStd_HArray1OfReal) OrigParam; + + +}; + + + + + + + +#endif // _BRepFill_ACRLaw_HeaderFile diff --git a/src/BRepFill/BRepFill_ApproxSeewing.cdl b/src/BRepFill/BRepFill_ApproxSeewing.cdl deleted file mode 100644 index 9453cf4634..0000000000 --- a/src/BRepFill/BRepFill_ApproxSeewing.cdl +++ /dev/null @@ -1,82 +0,0 @@ --- 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. - -private class ApproxSeewing from BRepFill - - ---Purpose: 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 approximatively by - -- the abscissa of the curve3d. - -uses - - MultiLine from BRepFill, - Curve from Geom, - Curve from Geom2d - -raises - - NotDone from StdFail - -is - Create returns ApproxSeewing from BRepFill; - - Create( ML : MultiLine from BRepFill) - returns ApproxSeewing from BRepFill; - - Perform(me : in out; - ML : MultiLine from BRepFill) - is static; - - IsDone(me) - returns Boolean from Standard - is static; - - Curve(me) - ---Purpose: returns the approximation of the 3d Curve - ---C++: return const & - returns Curve from Geom - raises - NotDone from StdFail - is static; - - CurveOnF1(me) - ---Purpose: returns the approximation of the PCurve on the - -- first face of the MultiLine - ---C++: return const & - returns Curve from Geom2d - raises - NotDone from StdFail - is static; - - CurveOnF2(me) - ---Purpose: returns the approximation of the PCurve on the - -- first face of the MultiLine - ---C++: return const & - returns Curve from Geom2d - raises - NotDone from StdFail - is static; - -fields - myML : MultiLine from BRepFill; - myIsDone : Boolean from Standard; - myCurve : Curve from Geom; - myPCurve1 : Curve from Geom2d; - myPCurve2 : Curve from Geom2d; - -end ApproxSeewing; diff --git a/src/BRepFill/BRepFill_ApproxSeewing.cxx b/src/BRepFill/BRepFill_ApproxSeewing.cxx index d689f29703..d9bae83aeb 100644 --- a/src/BRepFill/BRepFill_ApproxSeewing.cxx +++ b/src/BRepFill/BRepFill_ApproxSeewing.cxx @@ -14,27 +14,28 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include #include #include #include +#include +#include #include -#include -#include #include +#include +#include +#include +#include +#include #include #include -#include #include - +#include //======================================================================= //function : BRepFill_ApproxSeewing //purpose : //======================================================================= - BRepFill_ApproxSeewing::BRepFill_ApproxSeewing() :myIsDone(Standard_False) { diff --git a/src/BRepFill/BRepFill_ApproxSeewing.hxx b/src/BRepFill/BRepFill_ApproxSeewing.hxx new file mode 100644 index 0000000000..0bb51cee0b --- /dev/null +++ b/src/BRepFill/BRepFill_ApproxSeewing.hxx @@ -0,0 +1,90 @@ +// 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 +#include +#include + +#include +#include +class Geom_Curve; +class Geom2d_Curve; +class StdFail_NotDone; + + +//! 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 approximatively 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; + + + + +protected: + + + + + +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/src/BRepFill/BRepFill_CompatibleWires.cdl b/src/BRepFill/BRepFill_CompatibleWires.cdl deleted file mode 100644 index 5caea6824b..0000000000 --- a/src/BRepFill/BRepFill_CompatibleWires.cdl +++ /dev/null @@ -1,128 +0,0 @@ --- 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. - -class CompatibleWires from BRepFill - - ---Purpose: Constructs a sequence of Wires (with good orientation - -- and origin) agreed each other so that the surface passing - -- through these sections is not twisted - -uses - - Edge from TopoDS, - SequenceOfShape from TopTools, - ListOfShape from TopTools, - DataMapOfShapeListOfShape from TopTools - -raises - ConstructionError from Standard, - NoSuchObject from Standard - -is - - Create returns CompatibleWires from BRepFill; - - Create ( Sections : SequenceOfShape from TopTools) - returns CompatibleWires from BRepFill; - - Init ( me : in out; - Sections : SequenceOfShape from TopTools) - raises - ConstructionError from Standard - is static; - - SetPercent ( me : in out; percent : Real = 0.01) - is static; - - Perform (me : in out; - WithRotation : Boolean = Standard_True) - ---Purpose: Performs CompatibleWires According to the orientation - -- and the origin of each other - raises - ConstructionError from Standard - is static; - - IsDone ( me) - returns Boolean from Standard - is static; - - - - Shape(me) returns SequenceOfShape from TopTools - ---Purpose: returns the generated sequence. - ---C++ : return const & - is static; - - GeneratedShapes (me ; SubSection : Edge from TopoDS) - ---Purpose: Returns the shapes created from a subshape - -- of a section. - -- - ---C++ : return const & - returns ListOfShape from TopTools - is static; - - Generated (me) - ---C++: return const & - returns DataMapOfShapeListOfShape from TopTools - is static; - - SameNumberByPolarMethod (me : in out; - WithRotation : Boolean = Standard_True) - ---Purpose: Insert cutting points on closed wires to have same - -- number of edges. The sequence of shapes must - -- be a sequence of wires. - is static private; - - SameNumberByACR (me : in out; report : Boolean from Standard ) - ---Purpose: Insert cutting points on open wires to have same - -- number of edges. The sequence of shapes must - -- be a sequence of wires. - is static private; - - ComputeOrigin (me : in out; polar : Boolean from Standard ) - ---Purpose: 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. - is static private; - - SearchOrigin (me : in out) - ---Purpose: Computes origins and orientation on open wires to - -- avoid twisted results. The sequence of shapes must - -- be a sequence of wires. - - is static private; - -fields - - myInit : SequenceOfShape from TopTools; - myWork : SequenceOfShape from TopTools; - myPercent : Real from Standard; - myDegen1 : Boolean from Standard; - myDegen2 : Boolean from Standard; - myIsDone : Boolean from Standard; - myMap : DataMapOfShapeListOfShape from TopTools; - -end CompatibleWires; - - - - - - - - - diff --git a/src/BRepFill/BRepFill_CompatibleWires.cxx b/src/BRepFill/BRepFill_CompatibleWires.cxx index 6065333574..4d2ea11fe2 100644 --- a/src/BRepFill/BRepFill_CompatibleWires.cxx +++ b/src/BRepFill/BRepFill_CompatibleWires.cxx @@ -14,55 +14,55 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include #include - +#include +#include +#include #include +#include +#include #include #include -#include #include -#include -#include -#include -#include -#include -#include -#include +#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include #include -#include -#include -#include #include +#include #include +#include +#include +#include #include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include #ifdef OCCT_DEBUG_EFV static void EdgesFromVertex (const TopoDS_Wire& W, diff --git a/src/BRepFill/BRepFill_CompatibleWires.hxx b/src/BRepFill/BRepFill_CompatibleWires.hxx new file mode 100644 index 0000000000..c55bbc3c34 --- /dev/null +++ b/src/BRepFill/BRepFill_CompatibleWires.hxx @@ -0,0 +1,118 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +class Standard_ConstructionError; +class Standard_NoSuchObject; +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; + + //! 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; + + + + +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; + Standard_Boolean myIsDone; + TopTools_DataMapOfShapeListOfShape myMap; + + +}; + + + + + + + +#endif // _BRepFill_CompatibleWires_HeaderFile diff --git a/src/BRepFill/BRepFill_ComputeCLine.hxx b/src/BRepFill/BRepFill_ComputeCLine.hxx new file mode 100644 index 0000000000..028e423607 --- /dev/null +++ b/src/BRepFill/BRepFill_ComputeCLine.hxx @@ -0,0 +1,109 @@ +// 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_ComputeCLine_HeaderFile +#define _BRepFill_ComputeCLine_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class AppParCurves_MultiCurve; + + + +class BRepFill_ComputeCLine +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepFill_ComputeCLine(const BRepFill_MultiLine& Line, const Standard_Integer degreemin = 3, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-5, const Standard_Real Tolerance2d = 1.0e-5, const Standard_Boolean cutting = Standard_False, const AppParCurves_Constraint FirstC = AppParCurves_TangencyPoint, const AppParCurves_Constraint LastC = AppParCurves_TangencyPoint); + + Standard_EXPORT BRepFill_ComputeCLine(const Standard_Integer degreemin = 3, const Standard_Integer degreemax = 8, const Standard_Real Tolerance3d = 1.0e-05, const Standard_Real Tolerance2d = 1.0e-05, const Standard_Boolean cutting = Standard_False, const AppParCurves_Constraint FirstC = AppParCurves_TangencyPoint, const AppParCurves_Constraint LastC = AppParCurves_TangencyPoint); + + Standard_EXPORT void Perform (const BRepFill_MultiLine& Line); + + Standard_EXPORT void SetDegrees (const Standard_Integer degreemin, const Standard_Integer degreemax); + + Standard_EXPORT void SetTolerances (const Standard_Real Tolerance3d, const Standard_Real Tolerance2d); + + Standard_EXPORT void SetConstraints (const AppParCurves_Constraint FirstC, const AppParCurves_Constraint LastC); + + Standard_EXPORT Standard_Boolean IsAllApproximated() const; + + Standard_EXPORT Standard_Boolean IsToleranceReached() const; + + Standard_EXPORT void Error (const Standard_Integer Index, Standard_Real& tol3d, Standard_Real& tol2d) const; + + Standard_EXPORT Standard_Integer NbMultiCurves() const; + + Standard_EXPORT AppParCurves_MultiCurve Value (const Standard_Integer Index = 1) const; + + Standard_EXPORT void Parameters (const Standard_Integer Index, Standard_Real& firstp, Standard_Real& lastp) const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT Standard_Boolean Compute (const BRepFill_MultiLine& Line, const Standard_Real Ufirst, const Standard_Real Ulast, Standard_Real& TheTol3d, Standard_Real& TheTol2d); + + + AppParCurves_SequenceOfMultiCurve myMultiCurves; + TColStd_SequenceOfReal myfirstparam; + TColStd_SequenceOfReal mylastparam; + AppParCurves_MultiCurve TheMultiCurve; + Standard_Boolean alldone; + Standard_Boolean tolreached; + TColStd_SequenceOfReal Tolers3d; + TColStd_SequenceOfReal Tolers2d; + Standard_Integer mydegremin; + Standard_Integer mydegremax; + Standard_Real mytol3d; + Standard_Real mytol2d; + Standard_Real currenttol3d; + Standard_Real currenttol2d; + Standard_Boolean mycut; + AppParCurves_Constraint myfirstC; + AppParCurves_Constraint mylastC; + + +}; + + + + + + + +#endif // _BRepFill_ComputeCLine_HeaderFile diff --git a/src/BRepFill/BRepFill_ComputeCLine_0.cxx b/src/BRepFill/BRepFill_ComputeCLine_0.cxx new file mode 100644 index 0000000000..5609baa529 --- /dev/null +++ b/src/BRepFill/BRepFill_ComputeCLine_0.cxx @@ -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. + +#include + +#include + + +#define MultiLine BRepFill_MultiLine +#define MultiLine_hxx +#define Approx_ComputeCLine BRepFill_ComputeCLine +#define Approx_ComputeCLine_hxx +#include + diff --git a/src/BRepFill/BRepFill_CurveConstraint.cdl b/src/BRepFill/BRepFill_CurveConstraint.cdl deleted file mode 100644 index cba17ea8ec..0000000000 --- a/src/BRepFill/BRepFill_CurveConstraint.cdl +++ /dev/null @@ -1,71 +0,0 @@ --- 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. - -class CurveConstraint from BRepFill inherits CurveConstraint from GeomPlate - ---Purpose: same as CurveConstraint from GeomPlate - -- with BRepAdaptor_Surface instead of - -- GeomAdaptor_Surface - -uses - Pnt from gp, - Pnt2d from gp, - Vec from gp, - HCurveOnSurface from Adaptor3d, - HCurve from Adaptor3d, - Surface from Geom, - Curve from Geom2d, - Function from Law, - SLProps from GeomLProp - -raises - ConstructionError from Standard -is - -Create (Boundary : HCurveOnSurface from Adaptor3d; - Order : Integer from Standard ; - NPt : Integer from Standard = 10; - TolDist : Real from Standard = 0.0001; - TolAng : Real from Standard = 0.01; - TolCurv : Real from Standard = 0.1 - ) - returns CurveConstraint from BRepFill - raises ConstructionError; - --purpose : if Order is not -1 , 0, 1, 2 - -- ---- Purpose: 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. - -Create (Boundary : HCurve from Adaptor3d; - Tang : Integer from Standard; - NPt : Integer from Standard = 10; - TolDist : Real from Standard = 0.0001) - returns CurveConstraint from BRepFill - raises ConstructionError; - --purpose : if Order is not 0 or -1 --- Purpose: Create a constraint --- Order is the order of the constraint. The possible values for order are -1,0. --- 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 --- These errors can be replaced by laws of criterion. - -end; diff --git a/src/BRepFill/BRepFill_CurveConstraint.cxx b/src/BRepFill/BRepFill_CurveConstraint.cxx index 8ae634ebc4..470ac1e728 100644 --- a/src/BRepFill/BRepFill_CurveConstraint.cxx +++ b/src/BRepFill/BRepFill_CurveConstraint.cxx @@ -14,23 +14,27 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include + #include +#include +#include #include -#include +#include +#include +#include +#include +#include +#include #include +#include #include -#include +#include #include -#include -#include -#include - -#include -#include #include +#include +#include +#include + //--------------------------------------------------------- // Constructeurs avec courbe sur surface //--------------------------------------------------------- diff --git a/src/BRepFill/BRepFill_CurveConstraint.hxx b/src/BRepFill/BRepFill_CurveConstraint.hxx new file mode 100644 index 0000000000..7826e7f93f --- /dev/null +++ b/src/BRepFill/BRepFill_CurveConstraint.hxx @@ -0,0 +1,78 @@ +// 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 +#include + +#include +#include +#include +class Standard_ConstructionError; +class Adaptor3d_HCurveOnSurface; +class Adaptor3d_HCurve; + + +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_HCurveOnSurface)& 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_HCurve)& Boundary, const Standard_Integer Tang, const Standard_Integer NPt = 10, const Standard_Real TolDist = 0.0001); + + + + + DEFINE_STANDARD_RTTI(BRepFill_CurveConstraint,GeomPlate_CurveConstraint) + +protected: + + + + +private: + + + + +}; + + + + + + + +#endif // _BRepFill_CurveConstraint_HeaderFile diff --git a/src/BRepFill/BRepFill_Draft.cdl b/src/BRepFill/BRepFill_Draft.cdl deleted file mode 100644 index e17b87d205..0000000000 --- a/src/BRepFill/BRepFill_Draft.cdl +++ /dev/null @@ -1,134 +0,0 @@ --- 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. - -class Draft from BRepFill - -uses - LocationDraft from GeomFill, - Dir from gp, - Box from Bnd, - Surface from Geom, - - SectionLaw from BRepFill, - DraftLaw from BRepFill, - TransitionStyle from BRepFill, - - HCurve from Adaptor3d, - Shape from GeomAbs, - Shape from TopoDS, - Shell from TopoDS, - Face from TopoDS, - Wire from TopoDS, - ListOfShape from TopTools, - HArray2OfShape from TopTools - -raises - NotDone - -is - Create(Shape : Shape from TopoDS; - Dir : Dir from gp; - Angle : Real) - ---Purpose: - - returns Draft from BRepFill; - - SetOptions(me : in out; - Style : TransitionStyle from BRepFill = BRepFill_Right; - AngleMin : Real = 0.01; - AngleMax : Real = 3.0); - ---Purpose: - - SetDraft(me: in out; IsInternal : Boolean = Standard_False); - ---Purpose: - - - - Perform(me : in out; - LengthMax : Real) - is static; - ---Purpose: - - Perform(me : in out; - Surface : Surface from Geom; - KeepInsideSurface : Boolean = Standard_True) - is static; - ---Purpose: - - - Perform(me : in out; - StopShape : Shape from TopoDS; - KeepOutSide : Boolean = Standard_True) - is static; - ---Purpose: - - IsDone(me) - returns Boolean; - - Shell(me) - ---Purpose: Returns the draft surface - -- To have the complete shape - -- you have to use the Shape() methode. - returns Shell from TopoDS - raises NotDone; - - Generated (me: in out; S : Shape from TopoDS) - ---Purpose: Returns the list of shapes generated from the - -- shape . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools; - - Shape(me) - returns Shape from TopoDS; - -- retourne la shape resultat - - Init(me:in out; Surf : Surface from Geom; - Length : Real; - Box : Box from Bnd) - is private; - - - BuildShell(me:in out; Surf : Surface from Geom; - KeepOutSide : Boolean = Standard_False) - is private; - - Fuse(me:in out; S : Shape from TopoDS; - KeepOutSide : Boolean) - returns Boolean is private; - - Sewing(me: in out) - returns Boolean is private; - -fields - myDir : Dir from gp; - myAngle : Real; - angmin, angmax : Real; - myTol : Real; - myLoc : DraftLaw from BRepFill; - mySec : SectionLaw from BRepFill; - mySections: HArray2OfShape from TopTools; - myFaces : HArray2OfShape from TopTools; - myGenerated : ListOfShape from TopTools; - - myShape : Shape from TopoDS; - myTop : Shape from TopoDS; - myShell : Shell from TopoDS; - myWire : Wire from TopoDS; - myCont : Shape from GeomAbs; - myStyle : TransitionStyle from BRepFill; - IsInternal : Boolean; - myDone : Boolean; -end Draft; - - diff --git a/src/BRepFill/BRepFill_Draft.cxx b/src/BRepFill/BRepFill_Draft.cxx index b6a0f4ba18..5423f227dc 100644 --- a/src/BRepFill/BRepFill_Draft.cxx +++ b/src/BRepFill/BRepFill_Draft.cxx @@ -15,72 +15,63 @@ // commercial license or contractual agreement. -#include - -#include -#include -#include -#include - +#include +#include +#include #include #include -#include -#include -#include -#include -#include -#include -#include -#include - -#include +#include +#include +#include #include -#include - -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include #include - +#include +#include #include -#include -#include - +#include #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include -#include #include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - +#include +#include +#include +#include #include #include -#include - -#include -#include - -#include -#include #ifdef DRAW #include diff --git a/src/BRepFill/BRepFill_Draft.hxx b/src/BRepFill/BRepFill_Draft.hxx new file mode 100644 index 0000000000..d7d7f15fdd --- /dev/null +++ b/src/BRepFill/BRepFill_Draft.hxx @@ -0,0 +1,123 @@ +// 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_Draft_HeaderFile +#define _BRepFill_Draft_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class BRepFill_DraftLaw; +class BRepFill_SectionLaw; +class StdFail_NotDone; +class TopoDS_Shape; +class gp_Dir; +class Geom_Surface; +class TopoDS_Shell; +class Bnd_Box; + + + +class BRepFill_Draft +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepFill_Draft(const TopoDS_Shape& Shape, const gp_Dir& Dir, const Standard_Real Angle); + + Standard_EXPORT void SetOptions (const BRepFill_TransitionStyle Style = BRepFill_Right, const Standard_Real AngleMin = 0.01, const Standard_Real AngleMax = 3.0); + + Standard_EXPORT void SetDraft (const Standard_Boolean IsInternal = Standard_False); + + Standard_EXPORT void Perform (const Standard_Real LengthMax); + + Standard_EXPORT void Perform (const Handle(Geom_Surface)& Surface, const Standard_Boolean KeepInsideSurface = Standard_True); + + Standard_EXPORT void Perform (const TopoDS_Shape& StopShape, const Standard_Boolean KeepOutSide = Standard_True); + + Standard_EXPORT Standard_Boolean IsDone() const; + + //! Returns the draft surface + //! To have the complete shape + //! you have to use the Shape() methode. + Standard_EXPORT TopoDS_Shell Shell() const; + + //! Returns the list of shapes generated from the + //! shape . + Standard_EXPORT const TopTools_ListOfShape& Generated (const TopoDS_Shape& S); + + Standard_EXPORT TopoDS_Shape Shape() const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT void Init (const Handle(Geom_Surface)& Surf, const Standard_Real Length, const Bnd_Box& Box); + + Standard_EXPORT void BuildShell (const Handle(Geom_Surface)& Surf, const Standard_Boolean KeepOutSide = Standard_False); + + Standard_EXPORT Standard_Boolean Fuse (const TopoDS_Shape& S, const Standard_Boolean KeepOutSide); + + Standard_EXPORT Standard_Boolean Sewing(); + + + gp_Dir myDir; + Standard_Real myAngle; + Standard_Real angmin; + Standard_Real angmax; + Standard_Real myTol; + Handle(BRepFill_DraftLaw) myLoc; + Handle(BRepFill_SectionLaw) mySec; + Handle(TopTools_HArray2OfShape) mySections; + Handle(TopTools_HArray2OfShape) myFaces; + TopTools_ListOfShape myGenerated; + TopoDS_Shape myShape; + TopoDS_Shape myTop; + TopoDS_Shell myShell; + TopoDS_Wire myWire; + GeomAbs_Shape myCont; + BRepFill_TransitionStyle myStyle; + Standard_Boolean IsInternal; + Standard_Boolean myDone; + + +}; + + + + + + + +#endif // _BRepFill_Draft_HeaderFile diff --git a/src/BRepFill/BRepFill_DraftLaw.cdl b/src/BRepFill/BRepFill_DraftLaw.cdl deleted file mode 100644 index e165277e02..0000000000 --- a/src/BRepFill/BRepFill_DraftLaw.cdl +++ /dev/null @@ -1,37 +0,0 @@ --- Created on: 1998-01-14 --- 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. - -class DraftLaw from BRepFill inherits Edge3DLaw from BRepFill - - ---Purpose: Build Location Law, with a Wire. - -uses - LocationDraft from GeomFill, - Wire from TopoDS - -is - Create (Path : Wire from TopoDS; - Law : LocationDraft from GeomFill) - returns DraftLaw from BRepFill; - - CleanLaw(me : mutable; TolAngular : Real) - ---Purpose: To clean the little discontinuities. - is static; - -end DraftLaw; - - - diff --git a/src/BRepFill/BRepFill_DraftLaw.cxx b/src/BRepFill/BRepFill_DraftLaw.cxx index 2eccf84248..7b0e233b84 100644 --- a/src/BRepFill/BRepFill_DraftLaw.cxx +++ b/src/BRepFill/BRepFill_DraftLaw.cxx @@ -14,23 +14,22 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include #include #include -#include - -#include #include -#include #include - +#include +#include +#include +#include //======================================================================= //function : ToG0 //purpose : Cacul une tranformation T tq T.M2 = M1 //======================================================================= - static void ToG0(const gp_Mat& M1, const gp_Mat& M2, gp_Mat& T) { T = M2.Inverted(); T *= M1; diff --git a/src/BRepFill/BRepFill_DraftLaw.hxx b/src/BRepFill/BRepFill_DraftLaw.hxx new file mode 100644 index 0000000000..efa1c87dcb --- /dev/null +++ b/src/BRepFill/BRepFill_DraftLaw.hxx @@ -0,0 +1,67 @@ +// Created on: 1998-01-14 +// 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_DraftLaw_HeaderFile +#define _BRepFill_DraftLaw_HeaderFile + +#include +#include + +#include +#include +class TopoDS_Wire; +class GeomFill_LocationDraft; + + +class BRepFill_DraftLaw; +DEFINE_STANDARD_HANDLE(BRepFill_DraftLaw, BRepFill_Edge3DLaw) + +//! Build Location Law, with a Wire. +class BRepFill_DraftLaw : public BRepFill_Edge3DLaw +{ + +public: + + + Standard_EXPORT BRepFill_DraftLaw(const TopoDS_Wire& Path, const Handle(GeomFill_LocationDraft)& Law); + + //! To clean the little discontinuities. + Standard_EXPORT void CleanLaw (const Standard_Real TolAngular); + + + + + DEFINE_STANDARD_RTTI(BRepFill_DraftLaw,BRepFill_Edge3DLaw) + +protected: + + + + +private: + + + + +}; + + + + + + + +#endif // _BRepFill_DraftLaw_HeaderFile diff --git a/src/BRepFill/BRepFill_Edge3DLaw.cdl b/src/BRepFill/BRepFill_Edge3DLaw.cdl deleted file mode 100644 index d8ab8a79ee..0000000000 --- a/src/BRepFill/BRepFill_Edge3DLaw.cdl +++ /dev/null @@ -1,30 +0,0 @@ --- 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. - -class Edge3DLaw from BRepFill inherits LocationLaw from BRepFill - - ---Purpose: Build Location Law, with a Wire. - -uses - Wire from TopoDS, - LocationLaw from GeomFill - -is - Create (Path : Wire from TopoDS; - Law : LocationLaw from GeomFill) - returns Edge3DLaw from BRepFill; - -end Edge3DLaw; diff --git a/src/BRepFill/BRepFill_Edge3DLaw.cxx b/src/BRepFill/BRepFill_Edge3DLaw.cxx index 29c96112e8..dc00a52414 100644 --- a/src/BRepFill/BRepFill_Edge3DLaw.cxx +++ b/src/BRepFill/BRepFill_Edge3DLaw.cxx @@ -14,20 +14,21 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include #include -#include -#include -#include -#include - -#include -#include +#include +#include #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include BRepFill_Edge3DLaw::BRepFill_Edge3DLaw(const TopoDS_Wire& Path, const Handle(GeomFill_LocationLaw)& Law) diff --git a/src/BRepFill/BRepFill_Edge3DLaw.hxx b/src/BRepFill/BRepFill_Edge3DLaw.hxx new file mode 100644 index 0000000000..ba25636e2e --- /dev/null +++ b/src/BRepFill/BRepFill_Edge3DLaw.hxx @@ -0,0 +1,63 @@ +// 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_Edge3DLaw_HeaderFile +#define _BRepFill_Edge3DLaw_HeaderFile + +#include +#include + +#include +class TopoDS_Wire; +class GeomFill_LocationLaw; + + +class BRepFill_Edge3DLaw; +DEFINE_STANDARD_HANDLE(BRepFill_Edge3DLaw, BRepFill_LocationLaw) + +//! Build Location Law, with a Wire. +class BRepFill_Edge3DLaw : public BRepFill_LocationLaw +{ + +public: + + + Standard_EXPORT BRepFill_Edge3DLaw(const TopoDS_Wire& Path, const Handle(GeomFill_LocationLaw)& Law); + + + + + DEFINE_STANDARD_RTTI(BRepFill_Edge3DLaw,BRepFill_LocationLaw) + +protected: + + + + +private: + + + + +}; + + + + + + + +#endif // _BRepFill_Edge3DLaw_HeaderFile diff --git a/src/BRepFill/BRepFill_EdgeFaceAndOrder.cdl b/src/BRepFill/BRepFill_EdgeFaceAndOrder.cdl deleted file mode 100644 index a6a81d68ac..0000000000 --- a/src/BRepFill/BRepFill_EdgeFaceAndOrder.cdl +++ /dev/null @@ -1,42 +0,0 @@ --- Created on: 1998-10-02 --- 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. - -private class EdgeFaceAndOrder from BRepFill - - ---Purpose: - -uses - Edge from TopoDS, - Face from TopoDS, - Shape from GeomAbs -is - Create returns EdgeFaceAndOrder from BRepFill; - - Create( anEdge : Edge from TopoDS; - aFace : Face from TopoDS; - anOrder : Shape from GeomAbs ) - returns EdgeFaceAndOrder from BRepFill; - -fields - - myEdge : Edge from TopoDS; - myFace : Face from TopoDS; - myOrder : Shape from GeomAbs; - -friends - class Filling from BRepFill - -end EdgeFaceAndOrder; diff --git a/src/BRepFill/BRepFill_EdgeFaceAndOrder.cxx b/src/BRepFill/BRepFill_EdgeFaceAndOrder.cxx index 372384d766..bc95306905 100644 --- a/src/BRepFill/BRepFill_EdgeFaceAndOrder.cxx +++ b/src/BRepFill/BRepFill_EdgeFaceAndOrder.cxx @@ -14,7 +14,11 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include BRepFill_EdgeFaceAndOrder::BRepFill_EdgeFaceAndOrder() { diff --git a/src/BRepFill/BRepFill_EdgeFaceAndOrder.hxx b/src/BRepFill/BRepFill_EdgeFaceAndOrder.hxx new file mode 100644 index 0000000000..0836750589 --- /dev/null +++ b/src/BRepFill/BRepFill_EdgeFaceAndOrder.hxx @@ -0,0 +1,71 @@ +// Created on: 1998-10-02 +// 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 _BRepFill_EdgeFaceAndOrder_HeaderFile +#define _BRepFill_EdgeFaceAndOrder_HeaderFile + +#include +#include +#include + +#include +#include +#include +class BRepFill_Filling; +class TopoDS_Edge; +class TopoDS_Face; + + + +class BRepFill_EdgeFaceAndOrder +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepFill_EdgeFaceAndOrder(); + + Standard_EXPORT BRepFill_EdgeFaceAndOrder(const TopoDS_Edge& anEdge, const TopoDS_Face& aFace, const GeomAbs_Shape anOrder); + + +friend class BRepFill_Filling; + + +protected: + + + + + +private: + + + + TopoDS_Edge myEdge; + TopoDS_Face myFace; + GeomAbs_Shape myOrder; + + +}; + + + + + + + +#endif // _BRepFill_EdgeFaceAndOrder_HeaderFile diff --git a/src/BRepFill/BRepFill_EdgeOnSurfLaw.cdl b/src/BRepFill/BRepFill_EdgeOnSurfLaw.cdl deleted file mode 100644 index 5df715b101..0000000000 --- a/src/BRepFill/BRepFill_EdgeOnSurfLaw.cdl +++ /dev/null @@ -1,40 +0,0 @@ --- 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. - -class EdgeOnSurfLaw from BRepFill inherits LocationLaw from BRepFill - - ---Purpose: Build Location Law, with a Wire and a Surface. - -uses - Wire from TopoDS, - Shape from TopoDS - -is - Create (Path : Wire from TopoDS; - Surf : Shape from TopoDS) - returns EdgeOnSurfLaw from BRepFill; - - - HasResult(me) - ---Purpose: returns if one Edge of do not have - -- representation on . In this case it is - -- impossible to use this object. - returns Boolean; - -fields - hasresult : Boolean; - -end EdgeOnSurfLaw; diff --git a/src/BRepFill/BRepFill_EdgeOnSurfLaw.cxx b/src/BRepFill/BRepFill_EdgeOnSurfLaw.cxx index f64fd97c9e..20e37f892f 100644 --- a/src/BRepFill/BRepFill_EdgeOnSurfLaw.cxx +++ b/src/BRepFill/BRepFill_EdgeOnSurfLaw.cxx @@ -14,27 +14,27 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include #include -#include -#include -#include -#include - -#include -#include -#include -#include - +#include +#include +#include #include #include -#include -#include #include -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include BRepFill_EdgeOnSurfLaw::BRepFill_EdgeOnSurfLaw(const TopoDS_Wire& Path, const TopoDS_Shape& Surf) diff --git a/src/BRepFill/BRepFill_EdgeOnSurfLaw.hxx b/src/BRepFill/BRepFill_EdgeOnSurfLaw.hxx new file mode 100644 index 0000000000..2ace73ef95 --- /dev/null +++ b/src/BRepFill/BRepFill_EdgeOnSurfLaw.hxx @@ -0,0 +1,70 @@ +// 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 +#include + +#include +#include +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_RTTI(BRepFill_EdgeOnSurfLaw,BRepFill_LocationLaw) + +protected: + + + + +private: + + + Standard_Boolean hasresult; + + +}; + + + + + + + +#endif // _BRepFill_EdgeOnSurfLaw_HeaderFile diff --git a/src/BRepFill/BRepFill_Evolved.cdl b/src/BRepFill/BRepFill_Evolved.cdl deleted file mode 100644 index a035cd8a36..0000000000 --- a/src/BRepFill/BRepFill_Evolved.cdl +++ /dev/null @@ -1,265 +0,0 @@ --- Created on: 1994-10-03 --- 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. - -class Evolved from BRepFill - - ---Purpose: Constructs an evolved volume from a spine (wire or face) - -- and a profile ( wire). - -uses - Vertex from TopoDS, - Edge from TopoDS, - Face from TopoDS, - Wire from TopoDS, - Shape from TopoDS, - Location from TopLoc, - Ax3 from gp, - JoinType from GeomAbs, - ListOfShape from TopTools, - DataMapOfShapeShape from TopTools, - DataMapOfShapeDataMapOfShapeListOfShape from BRepFill, - BisectingLocus from BRepMAT2d, - LinkTopoBilo from BRepMAT2d, - Quilt from BRepTools - - -raises - ConstructionError from Standard, - NoSuchObject from Standard - -is - ----Level: Public - - Create returns Evolved from BRepFill; - - Create ( Spine : Wire from TopoDS; - Profile : Wire from TopoDS; - AxeProf : Ax3 from gp; - Join : JoinType from GeomAbs = GeomAbs_Arc; - Solid : Boolean from Standard = Standard_False) - returns Evolved from BRepFill - ---Purpose: Creates an evolved shape by sweeping the - -- along the . is used to set the - -- position of along as follows: - -- slides on the profile with direction - -- colinear to the normal to , and its - -- mixed with the tangent to . - -- - raises - ConstructionError from Standard; - - Create ( Spine : Face from TopoDS; - Profile : Wire from TopoDS; - AxeProf : Ax3 from gp; - Join : JoinType from GeomAbs = GeomAbs_Arc; - Solid : Boolean from Standard = Standard_False) - returns Evolved from BRepFill - ---Purpose: Creates an evolved shape by sweeping the - -- along the - raises - ConstructionError from Standard; - - Perform (me : in out; - Spine : Wire from TopoDS; - Profile : Wire from TopoDS; - AxeProf : Ax3 from gp; - Join : JoinType from GeomAbs = GeomAbs_Arc; - Solid : Boolean from Standard = Standard_False) - ---Purpose: Performs an evolved shape by sweeping the - -- along the - raises - ConstructionError from Standard - is static; - - Perform (me : in out; - Spine : Face from TopoDS; - Profile : Wire from TopoDS; - AxeProf : Ax3 from gp; - Join : JoinType from GeomAbs = GeomAbs_Arc; - Solid : Boolean from Standard = Standard_False) - ---Purpose: Performs an evolved shape by sweeping the - -- along the - raises - ConstructionError from Standard - is static; - - - IsDone ( me) - returns Boolean from Standard - is static; - - Shape(me) returns Shape from TopoDS - ---Purpose: returns the generated shape. - ---C++ : return const & - is static; - - GeneratedShapes (me ; - SpineShape : Shape from TopoDS; - ProfShape : Shape from TopoDS) - ---Purpose: Returns the shapes created from a subshape - -- of the spine and a subshape - -- on the profile. - -- - ---C++ : return const & - returns ListOfShape from TopTools - is static; - - JoinType (me) returns JoinType from GeomAbs - is static; - - - Top (me) returns Shape from TopoDS - ---Purpose: Return the face Top if is True in the constructor. - ---C++ : return const & - is static; - - Bottom (me) returns Shape from TopoDS - ---Purpose: Return the face Bottom if is True in the constructor. - ---C++ : return const & - is static; - - ----Level: Internal - - PrivatePerform (me : in out; - Spine : Face from TopoDS; - Profile : Wire from TopoDS; - AxeProf : Ax3 from gp; - Join : JoinType from GeomAbs = GeomAbs_Arc; - Solid : Boolean from Standard = Standard_False) - raises - ConstructionError from Standard - is static private; - - SetWork (me : in out; - Spine : Face from TopoDS; - Profile : Wire from TopoDS) - is static private; - - ElementaryPerform ( me : in out; - Spine : Face from TopoDS; - Profile : Wire from TopoDS; - Locus : BisectingLocus from BRepMAT2d; - Link : in out LinkTopoBilo from BRepMAT2d; - Join : JoinType from GeomAbs = GeomAbs_Arc) - raises - ConstructionError from Standard - is static private; - - PlanarPerform ( me : in out; - Spine : Face from TopoDS; - Profile : Wire from TopoDS; - Locus : BisectingLocus from BRepMAT2d; - Link : in out LinkTopoBilo from BRepMAT2d; - Join : JoinType from GeomAbs = GeomAbs_Arc) - raises - ConstructionError from Standard - is static private; - - VerticalPerform ( me : in out; - Spine : Face from TopoDS; - Profile : Wire from TopoDS; - Locus : BisectingLocus from BRepMAT2d; - Link : in out LinkTopoBilo from BRepMAT2d; - Join : JoinType from GeomAbs = GeomAbs_Arc) - raises - ConstructionError from Standard - is static private; - - Generated (me : in out ) - ---C++: return & - returns DataMapOfShapeDataMapOfShapeListOfShape from BRepFill - is static private; - - Add ( me : in out; Vevo : in out Evolved from BRepFill; - Prof : Wire from TopoDS; - Glue : in out Quilt from BRepTools) - is static private; - - ChangeShape(me : in out) returns Shape from TopoDS - ---C++: return & - is static private; - - Transfert( me : in out; - Vevo : in out Evolved from BRepFill; - MapProf : DataMapOfShapeShape from TopTools; - MapSpine : DataMapOfShapeShape from TopTools; - LS, InitLS, InitLP : Location from TopLoc) - is static private; - - PrepareProfile ( me ; WorkProf : in out ListOfShape from TopTools; - MapProf : in out DataMapOfShapeShape from TopTools) - ---Purpose: Prepare the profil as follow - -- - Project the profile in the yOz Plane - -- - Cut the profile at the extrema of distance from the - -- Profile to the Oz Axis. - -- - building the new wires with the cutting edges. - is static private; - - PrepareSpine ( me ; WorkSpine : in out Face from TopoDS ; - SpineProf : in out DataMapOfShapeShape from TopTools) - ---Purpose: Prepare the spine as follow - -- - Cut the spine-Edges at the extrema of curvature and - -- at the inflexion points. - is static private; - - MakePipe (me : in out; SpineEdge : Edge from TopoDS ; - ProfRef : Ax3 from gp) - is static private; - - MakeRevol(me : in out; SpineEdge : Edge from TopoDS; - SpineVertex : Vertex from TopoDS; - ProfRef : Ax3 from gp) - is static private; - - FindLocation(me; Face : Face from TopoDS) - returns Location from TopLoc - ---Purpose: Find the location transforming the planar shape - -- in the plane xOy - raises NoSuchObject from Standard - ---Purpose: if the Shape is not planar. - is static private; - - TransformInitWork(me : in out; LS , LP : Location from TopLoc) - ---Purpose: Apply the Location to and to - -- - -- in order to set the Shapes in the work space. - is static private; - - ContinuityOnOffsetEdge (me : in out; WorkProf : ListOfShape from TopTools) - is static private; - - AddTopAndBottom (me : in out;Glue : in out Quilt from BRepTools) - is static private; - - MakeSolid(me : in out) - is static private; - - -fields - - mySpine : Face from TopoDS; - myProfile : Wire from TopoDS; - myShape : Shape from TopoDS; - myIsDone : Boolean from Standard; - mySpineType : Boolean from Standard; -- True : Face ; False : Wire - myJoinType : JoinType from GeomAbs; - myMap : DataMapOfShapeDataMapOfShapeListOfShape from BRepFill; - myTop : Shape from TopoDS; - myBottom : Shape from TopoDS; - -end Evolved; diff --git a/src/BRepFill/BRepFill_Evolved.cxx b/src/BRepFill/BRepFill_Evolved.cxx index 642fbca5d4..1dc613c12d 100644 --- a/src/BRepFill/BRepFill_Evolved.cxx +++ b/src/BRepFill/BRepFill_Evolved.cxx @@ -15,112 +15,103 @@ // commercial license or contractual agreement. -#include - - +#include +#include #include #include -#include -#include #include +#include +#include +#include +#include #include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include -#include +#include +#include +#include +#include #include -#include -#include #include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include #include - -#include #include #include - -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include +#include #include -#include #include -#include -#include -#include #include - #include -#include #include - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include #include -#include #include +#include #include #include #include #include -#include - -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include - #include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #ifdef DRAW #include diff --git a/src/BRepFill/BRepFill_Evolved.hxx b/src/BRepFill/BRepFill_Evolved.hxx new file mode 100644 index 0000000000..d1cd99df49 --- /dev/null +++ b/src/BRepFill/BRepFill_Evolved.hxx @@ -0,0 +1,177 @@ +// Created on: 1994-10-03 +// 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_Evolved_HeaderFile +#define _BRepFill_Evolved_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_ConstructionError; +class Standard_NoSuchObject; +class TopoDS_Wire; +class gp_Ax3; +class TopoDS_Face; +class TopoDS_Shape; +class BRepMAT2d_BisectingLocus; +class BRepMAT2d_LinkTopoBilo; +class BRepTools_Quilt; +class TopLoc_Location; +class TopoDS_Edge; +class TopoDS_Vertex; + + +//! Constructs an evolved volume from a spine (wire or face) +//! and a profile ( wire). +class BRepFill_Evolved +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepFill_Evolved(); + + //! Creates an evolved shape by sweeping the + //! along the . is used to set the + //! position of along as follows: + //! slides on the profile with direction + //! colinear to the normal to , and its + //! mixed with the tangent to . + Standard_EXPORT BRepFill_Evolved(const TopoDS_Wire& Spine, const TopoDS_Wire& Profile, const gp_Ax3& AxeProf, const GeomAbs_JoinType Join = GeomAbs_Arc, const Standard_Boolean Solid = Standard_False); + + //! Creates an evolved shape by sweeping the + //! along the + Standard_EXPORT BRepFill_Evolved(const TopoDS_Face& Spine, const TopoDS_Wire& Profile, const gp_Ax3& AxeProf, const GeomAbs_JoinType Join = GeomAbs_Arc, const Standard_Boolean Solid = Standard_False); + + //! Performs an evolved shape by sweeping the + //! along the + Standard_EXPORT void Perform (const TopoDS_Wire& Spine, const TopoDS_Wire& Profile, const gp_Ax3& AxeProf, const GeomAbs_JoinType Join = GeomAbs_Arc, const Standard_Boolean Solid = Standard_False); + + //! Performs an evolved shape by sweeping the + //! along the + Standard_EXPORT void Perform (const TopoDS_Face& Spine, const TopoDS_Wire& Profile, const gp_Ax3& AxeProf, const GeomAbs_JoinType Join = GeomAbs_Arc, const Standard_Boolean Solid = Standard_False); + + Standard_EXPORT Standard_Boolean IsDone() const; + + //! returns the generated shape. + Standard_EXPORT const TopoDS_Shape& Shape() const; + + //! Returns the shapes created from a subshape + //! of the spine and a subshape + //! on the profile. + Standard_EXPORT const TopTools_ListOfShape& GeneratedShapes (const TopoDS_Shape& SpineShape, const TopoDS_Shape& ProfShape) const; + + Standard_EXPORT GeomAbs_JoinType JoinType() const; + + //! Return the face Top if is True in the constructor. + Standard_EXPORT const TopoDS_Shape& Top() const; + + //! Return the face Bottom if is True in the constructor. + Standard_EXPORT const TopoDS_Shape& Bottom() const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT void PrivatePerform (const TopoDS_Face& Spine, const TopoDS_Wire& Profile, const gp_Ax3& AxeProf, const GeomAbs_JoinType Join = GeomAbs_Arc, const Standard_Boolean Solid = Standard_False); + + Standard_EXPORT void SetWork (const TopoDS_Face& Spine, const TopoDS_Wire& Profile); + + Standard_EXPORT void ElementaryPerform (const TopoDS_Face& Spine, const TopoDS_Wire& Profile, const BRepMAT2d_BisectingLocus& Locus, BRepMAT2d_LinkTopoBilo& Link, const GeomAbs_JoinType Join = GeomAbs_Arc); + + Standard_EXPORT void PlanarPerform (const TopoDS_Face& Spine, const TopoDS_Wire& Profile, const BRepMAT2d_BisectingLocus& Locus, BRepMAT2d_LinkTopoBilo& Link, const GeomAbs_JoinType Join = GeomAbs_Arc); + + Standard_EXPORT void VerticalPerform (const TopoDS_Face& Spine, const TopoDS_Wire& Profile, const BRepMAT2d_BisectingLocus& Locus, BRepMAT2d_LinkTopoBilo& Link, const GeomAbs_JoinType Join = GeomAbs_Arc); + + Standard_EXPORT BRepFill_DataMapOfShapeDataMapOfShapeListOfShape& Generated(); + + Standard_EXPORT void Add (BRepFill_Evolved& Vevo, const TopoDS_Wire& Prof, BRepTools_Quilt& Glue); + + Standard_EXPORT TopoDS_Shape& ChangeShape(); + + Standard_EXPORT void Transfert (BRepFill_Evolved& Vevo, const TopTools_DataMapOfShapeShape& MapProf, const TopTools_DataMapOfShapeShape& MapSpine, const TopLoc_Location& LS, const TopLoc_Location& InitLS, const TopLoc_Location& InitLP); + + //! Prepare the profil as follow + //! - Project the profile in the yOz Plane + //! - Cut the profile at the extrema of distance from the + //! Profile to the Oz Axis. + //! - building the new wires with the cutting edges. + Standard_EXPORT void PrepareProfile (TopTools_ListOfShape& WorkProf, TopTools_DataMapOfShapeShape& MapProf) const; + + //! Prepare the spine as follow + //! - Cut the spine-Edges at the extrema of curvature and + //! at the inflexion points. + Standard_EXPORT void PrepareSpine (TopoDS_Face& WorkSpine, TopTools_DataMapOfShapeShape& SpineProf) const; + + Standard_EXPORT void MakePipe (const TopoDS_Edge& SpineEdge, const gp_Ax3& ProfRef); + + Standard_EXPORT void MakeRevol (const TopoDS_Edge& SpineEdge, const TopoDS_Vertex& SpineVertex, const gp_Ax3& ProfRef); + + //! Find the location transforming the planar shape + //! in the plane xOy + //! if the Shape is not planar. + Standard_EXPORT TopLoc_Location FindLocation (const TopoDS_Face& Face) const; + + //! Apply the Location to and to + //! + //! in order to set the Shapes in the work space. + Standard_EXPORT void TransformInitWork (const TopLoc_Location& LS, const TopLoc_Location& LP); + + Standard_EXPORT void ContinuityOnOffsetEdge (const TopTools_ListOfShape& WorkProf); + + Standard_EXPORT void AddTopAndBottom (BRepTools_Quilt& Glue); + + Standard_EXPORT void MakeSolid(); + + + TopoDS_Face mySpine; + TopoDS_Wire myProfile; + TopoDS_Shape myShape; + Standard_Boolean myIsDone; + Standard_Boolean mySpineType; + GeomAbs_JoinType myJoinType; + BRepFill_DataMapOfShapeDataMapOfShapeListOfShape myMap; + TopoDS_Shape myTop; + TopoDS_Shape myBottom; + + +}; + + + + + + + +#endif // _BRepFill_Evolved_HeaderFile diff --git a/src/BRepFill/BRepFill_FaceAndOrder.cdl b/src/BRepFill/BRepFill_FaceAndOrder.cdl deleted file mode 100644 index e3ad54ec76..0000000000 --- a/src/BRepFill/BRepFill_FaceAndOrder.cdl +++ /dev/null @@ -1,44 +0,0 @@ --- Created on: 1998-09-03 --- 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. - -private class FaceAndOrder from BRepFill - - ---Purpose: A structure containing Face and Order of constraint - -uses - Face from TopoDS, - Shape from GeomAbs -is - Create returns FaceAndOrder from BRepFill; - - Create( aFace : Face from TopoDS; - anOrder : Shape from GeomAbs ) - returns FaceAndOrder from BRepFill; - - --Face(me : in out) returns Face from TopoDS; - -- ---C++: return & - --Order(me : in out) returns Integer from Standard; - -- ---C++: return & - -fields - - myFace : Face from TopoDS; - myOrder : Shape from GeomAbs; - -friends - class Filling from BRepFill - -end FaceAndOrder; diff --git a/src/BRepFill/BRepFill_FaceAndOrder.cxx b/src/BRepFill/BRepFill_FaceAndOrder.cxx index 8711d771e1..0ca77e73c1 100644 --- a/src/BRepFill/BRepFill_FaceAndOrder.cxx +++ b/src/BRepFill/BRepFill_FaceAndOrder.cxx @@ -14,7 +14,10 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include BRepFill_FaceAndOrder::BRepFill_FaceAndOrder() { diff --git a/src/BRepFill/BRepFill_FaceAndOrder.hxx b/src/BRepFill/BRepFill_FaceAndOrder.hxx new file mode 100644 index 0000000000..876f468681 --- /dev/null +++ b/src/BRepFill/BRepFill_FaceAndOrder.hxx @@ -0,0 +1,68 @@ +// Created on: 1998-09-03 +// 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 _BRepFill_FaceAndOrder_HeaderFile +#define _BRepFill_FaceAndOrder_HeaderFile + +#include +#include +#include + +#include +#include +class BRepFill_Filling; +class TopoDS_Face; + + +//! A structure containing Face and Order of constraint +class BRepFill_FaceAndOrder +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepFill_FaceAndOrder(); + + Standard_EXPORT BRepFill_FaceAndOrder(const TopoDS_Face& aFace, const GeomAbs_Shape anOrder); + + +friend class BRepFill_Filling; + + +protected: + + + + + +private: + + + + TopoDS_Face myFace; + GeomAbs_Shape myOrder; + + +}; + + + + + + + +#endif // _BRepFill_FaceAndOrder_HeaderFile diff --git a/src/BRepFill/BRepFill_Filling.cdl b/src/BRepFill/BRepFill_Filling.cdl deleted file mode 100644 index cf4443c661..0000000000 --- a/src/BRepFill/BRepFill_Filling.cdl +++ /dev/null @@ -1,275 +0,0 @@ --- Created on: 1998-08-26 --- 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. - -class Filling from BRepFill - - ---Purpose: N-Side Filling - -- This algorithm avoids to build a face from: - -- * a set of edges defining the bounds of the face and some - -- constraints the surface support has to satisfy - -- * a set of edges and points defining some constraints - -- the support surface has to satisfy - -- * an initial surface to deform for satisfying the constraints - -- * a set of parameters to control the constraints. - -- - -- The support surface of the face is computed by deformation - -- of the initial surface in order to satisfy the given constraints. - -- The set of bounding edges defines the wire of the face. - -- - -- If no initial surface is given, the algorithm computes it - -- automatically. - -- If the set of edges is not connected (Free constraint) - -- missing edges are automatically computed. - -- - -- Limitations: - -- * If some constraints are not compatible - -- The algorithm does not take them into account. - -- So the constraints will not be satisfyed in an area containing - -- the incompatibilitries. - -- * The constraints defining the bound of the face have to be - -- entered in order to have a continuous wire. - -- - -- Other Applications: - -- * Deformation of a face to satisfy internal constraints - -- * Deformation of a face to improve Gi continuity with - -- connected faces - - ---Level: Advanced - -uses - Shape from TopoDS, - Edge from TopoDS, - Face from TopoDS, - Pnt from gp, - Shape from GeomAbs, - BuildPlateSurface from GeomPlate, - SequenceOfEdgeFaceAndOrder from BRepFill, - SequenceOfFaceAndOrder from BRepFill, - SequenceOfPointConstraint from GeomPlate, - SequenceOfShape from TopTools, - ListOfShape from TopTools, - DataMapOfShapeListOfShape from TopTools, - SequenceOfPnt from TColgp - -raises - NotDone, - OutOfRange, - ConstructionError - -is - Create( Degree : Integer from Standard = 3; - NbPtsOnCur : Integer from Standard = 15; - NbIter : Integer from Standard = 2; - Anisotropie : Boolean from Standard = Standard_False; - Tol2d : Real from Standard = 0.00001; - Tol3d : Real from Standard = 0.0001; - TolAng : Real from Standard = 0.01; - TolCurv : Real from Standard = 0.1; - MaxDeg : Integer from Standard = 8; - MaxSegments : Integer from Standard = 9 ) - ---Purpose: Constructor - -- - returns Filling from BRepFill; - - - SetConstrParam( me : in out; Tol2d : Real from Standard = 0.00001; - Tol3d : Real from Standard = 0.0001; - TolAng : Real from Standard = 0.01; - TolCurv : Real from Standard = 0.1 ); - ---Purpose: Sets the values of Tolerances used to control the constraint. - -- Tol2d: - -- Tol3d: it is the maximum distance allowed between the support surface - -- and the constraints - -- TolAng: it is the maximum angle allowed between the normal of the surface - -- and the constraints - -- TolCurv: it is the maximum difference of curvature allowed between - -- the surface and the constraint - - SetResolParam( me : in out; Degree : Integer from Standard = 3; - NbPtsOnCur : Integer from Standard = 15; - NbIter : Integer from Standard = 2; - Anisotropie : Boolean from Standard = Standard_False ); - ---Purpose: Sets the parameters used for resolution. - -- The default values of these parameters have been chosen for a good - -- ratio quality/performance. - -- Degree: it is the order of energy criterion to minimize for computing - -- the deformation of the surface. - -- The default value is 3 - -- The recommanded value is i+2 where i is the maximum order of the - -- constraints. - -- NbPtsOnCur: it is the average number of points for discretisation - -- of the edges. - -- NbIter: it is the maximum number of iterations of the process. - -- For each iteration the number of discretisation points is - -- increased. - -- Anisotropie: - - SetApproxParam( me : in out; MaxDeg : Integer from Standard = 8; - MaxSegments : Integer from Standard = 9 ); - ---Purpose: Sets the parameters used for approximation of the surface - -- - - - LoadInitSurface( me : in out; aFace : Face from TopoDS ); - ---Purpose: Loads the initial Surface - -- The initial surface must have orthogonal local coordinates, - -- i.e. partial derivatives dS/du and dS/dv must be orthogonal - -- at each point of surface. - -- If this condition breaks, distortions of resulting surface - -- are possible. - - - Add( me : in out; anEdge : Edge from TopoDS; - Order : Shape from GeomAbs; - IsBound : Boolean from Standard = Standard_True ) - returns Integer from Standard - ---Purpose: Adds a new constraint which also defines an edge of the wire - -- of the face - -- Order: Order of the constraint: - -- GeomAbs_C0 : the surface has to pass by 3D representation - -- of the edge - -- GeomAbs_G1 : the surface has to pass by 3D representation - -- of the edge and to respect tangency with the first - -- face of the edge - -- GeomAbs_G2 : the surface has to pass by 3D representation - -- of the edge and to respect tangency and curvature - -- with the first face of the edge. - raises ConstructionError from Standard; - -- if the edge has no representation on a face and Order is - -- GeomAbs_G1 or GeomAbs_G2. - - Add( me : in out; anEdge : Edge from TopoDS; - Support : Face from TopoDS; - Order : Shape from GeomAbs; - IsBound : Boolean from Standard = Standard_True ) - returns Integer from Standard - ---Purpose: Adds a new constraint which also defines an edge of the wire - -- of the face - -- Order: Order of the constraint: - -- GeomAbs_C0 : the surface has to pass by 3D representation - -- of the edge - -- GeomAbs_G1 : the surface has to pass by 3D representation - -- of the edge and to respect tangency with the - -- given face - -- GeomAbs_G2 : the surface has to pass by 3D representation - -- of the edge and to respect tangency and curvature - -- with the given face. - raises ConstructionError from Standard; - -- if the edge has no 2d representation on the given face - - Add( me : in out; Support : Face from TopoDS; - Order : Shape from GeomAbs ) - returns Integer from Standard; - ---Purpose: Adds a free constraint on a face. The corresponding edge has to - -- be automatically recomputed. - -- It is always a bound. - - Add( me : in out; Point : Pnt from gp ) - returns Integer from Standard; - ---Purpose: Adds a punctual constraint - - Add( me : in out; U, V : Real from Standard; - Support : Face from TopoDS; - Order : Shape from GeomAbs ) - returns Integer from Standard; - ---Purpose: Adds a punctual constraint. - - - AddConstraints( me : in out; SeqOfConstraints : SequenceOfEdgeFaceAndOrder from BRepFill ) - ---Purpose: Adds constraints to builder - is private; - - BuildWires( me : in out; EdgeList : in out ListOfShape from TopTools; - WireList : out ListOfShape from TopTools ) - ---Purpose: Builds wires of maximum length - is private; - - FindExtremitiesOfHoles( me; WireList : ListOfShape from TopTools; - VerSeq : out SequenceOfShape from TopTools ) - ---Purpose: Finds extremities of future edges to fix the holes between wires. - -- Can properly operate only with convex contour - is private; - - Build( me : in out ); - ---Purpose: Builds the resulting faces - - IsDone(me) returns Boolean from Standard; - - Face(me) returns Face from TopoDS; - -- returns the resulting face - - Generated (me: in out; S : Shape from TopoDS) - ---Purpose: Returns the list of shapes generated from the - -- shape . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools; - - G0Error(me) returns Real from Standard; - -- returns the max distance between the result and the constraints - - G1Error(me) returns Real from Standard; - -- returns the max angle between the result and the constraints - - G2Error(me) returns Real from Standard; - -- returns the max difference of curvature between the result and the constraints - - - G0Error( me : in out; Index : Integer from Standard ) returns Real from Standard; - -- returns the max distance between the result and the constraint Index - - G1Error( me : in out; Index : Integer from Standard ) returns Real from Standard; - -- returns the max angle between the result and the constraint Index - - G2Error( me : in out; Index : Integer from Standard ) returns Real from Standard; - -- returns the max difference of curvature between the result and the constraint Index - -fields - - myBuilder : BuildPlateSurface from GeomPlate; - myBoundary : SequenceOfEdgeFaceAndOrder from BRepFill; - myConstraints : SequenceOfEdgeFaceAndOrder from BRepFill; - myFreeConstraints : SequenceOfFaceAndOrder from BRepFill; - myPoints : SequenceOfPointConstraint from GeomPlate; - - myOldNewMap : DataMapOfShapeListOfShape from TopTools; - myGenerated : ListOfShape from TopTools; - - myFace : Face from TopoDS; - - myInitFace : Face from TopoDS; - - -- Tolerances - myTol2d : Real from Standard; - myTol3d : Real from Standard; - myTolAng : Real from Standard; - myTolCurv : Real from Standard; - - -- Parameters of approximation - myMaxDeg : Integer from Standard; - myMaxSegments : Integer from Standard; - - -- Parameters of resolution - myDegree : Integer from Standard; - myNbPtsOnCur : Integer from Standard; - myNbIter : Integer from Standard; - myAnisotropie : Boolean from Standard; - - myIsInitFaceGiven : Boolean from Standard; - - myIsDone : Boolean from Standard; - -end Filling; diff --git a/src/BRepFill/BRepFill_Filling.cxx b/src/BRepFill/BRepFill_Filling.cxx index 2470ed4784..cb4f5b5464 100644 --- a/src/BRepFill/BRepFill_Filling.cxx +++ b/src/BRepFill/BRepFill_Filling.cxx @@ -14,57 +14,58 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include -#include -#include -#include -#include #include #include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include #include #include -#include -#include #include -#include -#include - -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include +#include +#include +#include +#include +#include #include -#include -#include - #include #include +#include #include - -#include +#include +#include +#include +#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include static gp_Vec MakeFinVec( const TopoDS_Wire aWire, const TopoDS_Vertex aVertex ) { diff --git a/src/BRepFill/BRepFill_Filling.hxx b/src/BRepFill/BRepFill_Filling.hxx new file mode 100644 index 0000000000..e8b8b94b8d --- /dev/null +++ b/src/BRepFill/BRepFill_Filling.hxx @@ -0,0 +1,236 @@ +// Created on: 1998-08-26 +// 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 _BRepFill_Filling_HeaderFile +#define _BRepFill_Filling_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class StdFail_NotDone; +class Standard_OutOfRange; +class Standard_ConstructionError; +class TopoDS_Face; +class TopoDS_Edge; +class gp_Pnt; +class TopoDS_Shape; + + +//! N-Side Filling +//! This algorithm avoids to build a face from: +//! * a set of edges defining the bounds of the face and some +//! constraints the surface support has to satisfy +//! * a set of edges and points defining some constraints +//! the support surface has to satisfy +//! * an initial surface to deform for satisfying the constraints +//! * a set of parameters to control the constraints. +//! +//! The support surface of the face is computed by deformation +//! of the initial surface in order to satisfy the given constraints. +//! The set of bounding edges defines the wire of the face. +//! +//! If no initial surface is given, the algorithm computes it +//! automatically. +//! If the set of edges is not connected (Free constraint) +//! missing edges are automatically computed. +//! +//! Limitations: +//! * If some constraints are not compatible +//! The algorithm does not take them into account. +//! So the constraints will not be satisfyed in an area containing +//! the incompatibilitries. +//! * The constraints defining the bound of the face have to be +//! entered in order to have a continuous wire. +//! +//! Other Applications: +//! * Deformation of a face to satisfy internal constraints +//! * Deformation of a face to improve Gi continuity with +//! connected faces +class BRepFill_Filling +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Constructor + Standard_EXPORT BRepFill_Filling(const Standard_Integer Degree = 3, const Standard_Integer NbPtsOnCur = 15, const Standard_Integer NbIter = 2, const Standard_Boolean Anisotropie = Standard_False, const Standard_Real Tol2d = 0.00001, const Standard_Real Tol3d = 0.0001, const Standard_Real TolAng = 0.01, const Standard_Real TolCurv = 0.1, const Standard_Integer MaxDeg = 8, const Standard_Integer MaxSegments = 9); + + //! Sets the values of Tolerances used to control the constraint. + //! Tol2d: + //! Tol3d: it is the maximum distance allowed between the support surface + //! and the constraints + //! TolAng: it is the maximum angle allowed between the normal of the surface + //! and the constraints + //! TolCurv: it is the maximum difference of curvature allowed between + //! the surface and the constraint + Standard_EXPORT void SetConstrParam (const Standard_Real Tol2d = 0.00001, const Standard_Real Tol3d = 0.0001, const Standard_Real TolAng = 0.01, const Standard_Real TolCurv = 0.1); + + //! Sets the parameters used for resolution. + //! The default values of these parameters have been chosen for a good + //! ratio quality/performance. + //! Degree: it is the order of energy criterion to minimize for computing + //! the deformation of the surface. + //! The default value is 3 + //! The recommanded value is i+2 where i is the maximum order of the + //! constraints. + //! NbPtsOnCur: it is the average number of points for discretisation + //! of the edges. + //! NbIter: it is the maximum number of iterations of the process. + //! For each iteration the number of discretisation points is + //! increased. + //! Anisotropie: + Standard_EXPORT void SetResolParam (const Standard_Integer Degree = 3, const Standard_Integer NbPtsOnCur = 15, const Standard_Integer NbIter = 2, const Standard_Boolean Anisotropie = Standard_False); + + //! Sets the parameters used for approximation of the surface + Standard_EXPORT void SetApproxParam (const Standard_Integer MaxDeg = 8, const Standard_Integer MaxSegments = 9); + + //! Loads the initial Surface + //! The initial surface must have orthogonal local coordinates, + //! i.e. partial derivatives dS/du and dS/dv must be orthogonal + //! at each point of surface. + //! If this condition breaks, distortions of resulting surface + //! are possible. + Standard_EXPORT void LoadInitSurface (const TopoDS_Face& aFace); + + //! Adds a new constraint which also defines an edge of the wire + //! of the face + //! Order: Order of the constraint: + //! GeomAbs_C0 : the surface has to pass by 3D representation + //! of the edge + //! GeomAbs_G1 : the surface has to pass by 3D representation + //! of the edge and to respect tangency with the first + //! face of the edge + //! GeomAbs_G2 : the surface has to pass by 3D representation + //! of the edge and to respect tangency and curvature + //! with the first face of the edge. + Standard_EXPORT Standard_Integer Add (const TopoDS_Edge& anEdge, const GeomAbs_Shape Order, const Standard_Boolean IsBound = Standard_True); + + //! Adds a new constraint which also defines an edge of the wire + //! of the face + //! Order: Order of the constraint: + //! GeomAbs_C0 : the surface has to pass by 3D representation + //! of the edge + //! GeomAbs_G1 : the surface has to pass by 3D representation + //! of the edge and to respect tangency with the + //! given face + //! GeomAbs_G2 : the surface has to pass by 3D representation + //! of the edge and to respect tangency and curvature + //! with the given face. + Standard_EXPORT Standard_Integer Add (const TopoDS_Edge& anEdge, const TopoDS_Face& Support, const GeomAbs_Shape Order, const Standard_Boolean IsBound = Standard_True); + + //! Adds a free constraint on a face. The corresponding edge has to + //! be automatically recomputed. + //! It is always a bound. + Standard_EXPORT Standard_Integer Add (const TopoDS_Face& Support, const GeomAbs_Shape Order); + + //! Adds a punctual constraint + Standard_EXPORT Standard_Integer Add (const gp_Pnt& Point); + + //! Adds a punctual constraint. + Standard_EXPORT Standard_Integer Add (const Standard_Real U, const Standard_Real V, const TopoDS_Face& Support, const GeomAbs_Shape Order); + + //! Builds the resulting faces + Standard_EXPORT void Build(); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT TopoDS_Face Face() const; + + //! Returns the list of shapes generated from the + //! shape . + Standard_EXPORT const TopTools_ListOfShape& Generated (const TopoDS_Shape& S); + + Standard_EXPORT Standard_Real G0Error() const; + + Standard_EXPORT Standard_Real G1Error() const; + + Standard_EXPORT Standard_Real G2Error() const; + + Standard_EXPORT Standard_Real G0Error (const Standard_Integer Index); + + Standard_EXPORT Standard_Real G1Error (const Standard_Integer Index); + + Standard_EXPORT Standard_Real G2Error (const Standard_Integer Index); + + + + +protected: + + + + + +private: + + + //! Adds constraints to builder + Standard_EXPORT void AddConstraints (const BRepFill_SequenceOfEdgeFaceAndOrder& SeqOfConstraints); + + //! Builds wires of maximum length + Standard_EXPORT void BuildWires (TopTools_ListOfShape& EdgeList, TopTools_ListOfShape& WireList); + + //! Finds extremities of future edges to fix the holes between wires. + //! Can properly operate only with convex contour + Standard_EXPORT void FindExtremitiesOfHoles (const TopTools_ListOfShape& WireList, TopTools_SequenceOfShape& VerSeq) const; + + + GeomPlate_BuildPlateSurface myBuilder; + BRepFill_SequenceOfEdgeFaceAndOrder myBoundary; + BRepFill_SequenceOfEdgeFaceAndOrder myConstraints; + BRepFill_SequenceOfFaceAndOrder myFreeConstraints; + GeomPlate_SequenceOfPointConstraint myPoints; + TopTools_DataMapOfShapeListOfShape myOldNewMap; + TopTools_ListOfShape myGenerated; + TopoDS_Face myFace; + TopoDS_Face myInitFace; + Standard_Real myTol2d; + Standard_Real myTol3d; + Standard_Real myTolAng; + Standard_Real myTolCurv; + Standard_Integer myMaxDeg; + Standard_Integer myMaxSegments; + Standard_Integer myDegree; + Standard_Integer myNbPtsOnCur; + Standard_Integer myNbIter; + Standard_Boolean myAnisotropie; + Standard_Boolean myIsInitFaceGiven; + Standard_Boolean myIsDone; + + +}; + + + + + + + +#endif // _BRepFill_Filling_HeaderFile diff --git a/src/BRepFill/BRepFill_Generator.cdl b/src/BRepFill/BRepFill_Generator.cdl deleted file mode 100644 index 4e60418aee..0000000000 --- a/src/BRepFill/BRepFill_Generator.cdl +++ /dev/null @@ -1,87 +0,0 @@ --- Created on: 1994-03-07 --- 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. - --- Modified: Thu Jul 2 16:47:35 1998 --- add methods Generated and GeneratedShapes - - - - - -class Generator from BRepFill - - ---Purpose: Compute a topological surface ( a shell) using - -- generating wires. The face of the shell will be - -- ruled surfaces passing by the wires. - -- The wires must have the same number of edges. - - -uses - - Wire from TopoDS, - Shell from TopoDS, - Shape from TopoDS, - SequenceOfShape from TopTools, - ListOfShape from TopTools, - DataMapOfShapeListOfShape from TopTools - - -is - - Create returns Generator from BRepFill; - - AddWire( me : in out; - Wire : in Wire from TopoDS) - is static; - - Perform( me : in out) - ---Purpose: Compute the shell. - is static; - - Shell(me) - ---C++: return const& - ---C++: inline - returns Shell from TopoDS - is static; - - Generated (me ) - ---Purpose: Returns all the shapes created - ---C++ : return const & - returns DataMapOfShapeListOfShape from TopTools - is static; - - GeneratedShapes (me ; - SSection : Shape from TopoDS) - ---Purpose: Returns the shapes created from a subshape - -- of a section. - -- - ---C++ : return const & - returns ListOfShape from TopTools - is static; - - - - -fields - myWires : SequenceOfShape from TopTools; - myShell : Shell from TopoDS; - myMap : DataMapOfShapeListOfShape from TopTools; - -end Generator; - - - - diff --git a/src/BRepFill/BRepFill_Generator.cxx b/src/BRepFill/BRepFill_Generator.cxx index 359f310f08..53fa242e05 100644 --- a/src/BRepFill/BRepFill_Generator.cxx +++ b/src/BRepFill/BRepFill_Generator.cxx @@ -14,61 +14,58 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include +#include #include -#include -#include -#include -#include #include -#include +#include +#include #include -#include -#include -#include - -#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include - -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include -#include - -#include -#include +#include #include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : DetectKPart //purpose : //======================================================================= - Standard_Integer DetectKPart(const TopoDS_Edge& Edge1, const TopoDS_Edge& Edge2) { diff --git a/src/BRepFill/BRepFill_Generator.hxx b/src/BRepFill/BRepFill_Generator.hxx new file mode 100644 index 0000000000..331ea1d111 --- /dev/null +++ b/src/BRepFill/BRepFill_Generator.hxx @@ -0,0 +1,87 @@ +// Created on: 1994-03-07 +// 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_Generator_HeaderFile +#define _BRepFill_Generator_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class TopoDS_Wire; +class TopoDS_Shell; +class TopoDS_Shape; + + +//! Compute a topological surface ( a shell) using +//! generating wires. The face of the shell will be +//! ruled surfaces passing by the wires. +//! The wires must have the same number of edges. +class BRepFill_Generator +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepFill_Generator(); + + Standard_EXPORT void AddWire (const TopoDS_Wire& Wire); + + //! Compute the shell. + Standard_EXPORT void Perform(); + + const TopoDS_Shell& Shell() const; + + //! Returns all the shapes created + Standard_EXPORT const TopTools_DataMapOfShapeListOfShape& Generated() const; + + //! Returns the shapes created from a subshape + //! of a section. + Standard_EXPORT const TopTools_ListOfShape& GeneratedShapes (const TopoDS_Shape& SSection) const; + + + + +protected: + + + + + +private: + + + + TopTools_SequenceOfShape myWires; + TopoDS_Shell myShell; + TopTools_DataMapOfShapeListOfShape myMap; + + +}; + + +#include + + + + + +#endif // _BRepFill_Generator_HeaderFile diff --git a/src/BRepFill/BRepFill_LocationLaw.cdl b/src/BRepFill/BRepFill_LocationLaw.cdl deleted file mode 100644 index ad90e25fbc..0000000000 --- a/src/BRepFill/BRepFill_LocationLaw.cdl +++ /dev/null @@ -1,173 +0,0 @@ --- Created on: 1998-01-14 --- 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. - -deferred class LocationLaw from BRepFill inherits TShared from MMgt - - ---Purpose: Location Law on a Wire. - - ---Level: Advanced - -uses - LocationLaw from GeomFill, - HArray1OfLocationLaw from GeomFill, - PipeError from GeomFill, - HArray1OfReal from TColStd, - Array1OfInteger from TColStd, - HArray1OfInteger from TColStd, - HArray1OfShape from TopTools, - Shape from TopoDS, - Wire from TopoDS, - Edge from TopoDS, - Vertex from TopoDS - -raises - OutOfRange from Standard - -is - Init (me : mutable; Path : Wire from TopoDS) - ---Purpose: Initialize all the fields, this methode have to - -- be called by the constructors of Inherited class. - is protected; - - GetStatus(me) - ---Purpose: Return a error status, if the status is not PipeOk then - -- it exist a parameter tlike the law is not valuable for t. - returns PipeError from GeomFill; - - TransformInG0Law(me : mutable) - ---Purpose: Apply a linear transformation on each law, to have - -- continuity of the global law beetween the edges. - is virtual; - - - TransformInCompatibleLaw(me : mutable; - AngularTolerance : Real) - ---Purpose: Apply a linear transformation on each law, to reduce - -- the dicontinuities of law at one rotation. - is virtual; - - TangentIsMain(me : mutable) - ---Purpose: To preseve if possible the Tangent in transformations - -- It is the default mode. - is protected; - - NormalIsMain(me : mutable) - ---Purpose: To preseve if possible the Normal in transformations - is protected; - - BiNormalIsMain(me : mutable) - ---Purpose: To preseve if possible the BiNormal in transformations - is protected; - - DeleteTransform(me : mutable) - is static; - - NbHoles(me: mutable; Tol : Real = 1.0e-7) - returns Integer; - - Holes(me; Interval : out Array1OfInteger from TColStd); - - NbLaw(me) - ---Purpose: Return the number of elementary Law - returns Integer; - - Law(me; Index : Integer) - ---Purpose: Return the elementary Law of rank - -- have to be in [1, NbLaw()] - ---C++: return const & - returns LocationLaw from GeomFill - raises OutOfRange; - - Wire(me) - ---Purpose: return the path - ---C++: return const & - returns Wire from TopoDS; - - Edge(me; Index : Integer) - ---Purpose: Return the Edge of rank in the path - -- have to be in [1, NbLaw()] - ---C++: return const & - returns Edge from TopoDS - raises OutOfRange; - - Vertex(me; Index : Integer) - ---Purpose: Return the vertex of rank in the path - -- have to be in [0, NbLaw()] - returns Vertex from TopoDS - raises OutOfRange; - - PerformVertex(me; Index : Integer; - InputVertex : Vertex from TopoDS; - TolMin : Real; - OutputVertex : out Vertex; - Location : Integer = 0) - ---Purpose: Compute like a transformation of - -- the transformation is given by - -- evaluation of the location law in the vertex of - -- rank . - -- is used to manage discontinuities : - -- - -1 : The law before the vertex is used. - -- - 1 : The law after the vertex is used. - -- - 0 : Average of the both laws is used. - is static; - - CurvilinearBounds(me; Index : Integer; - First, Last :out Real); - ---Purpose:Return the Curvilinear Bounds of the Law - - IsClosed(me) returns Boolean; - - IsG1(me; Index : Integer; - SpatialTolerance : Real = 1.0e-7; - AngularTolerance : Real = 1.0e-4) - ---Purpose: Compute the Law's continuity beetween 2 edges of the path - -- The result can be : - -- -1 : Case Not connex - -- 0 : It is connex (G0) - -- 1 : It is tangent (G1) - returns Integer; - - D0(me:mutable; Abscissa :Real; - Section : in out Shape from TopoDS); - ---Purpose: Apply the Law to a shape, for a given Curnilinear abscissa - - - Parameter(me:mutable; Abscissa :Real; - Index : out Integer; - Param : out Real); - ---Purpose: Find the index Law and the parmaeter, for a given - -- Curnilinear abscissa - - - Abscissa(me:mutable; Index : Integer; - Param : Real) - ---Purpose:Return the curvilinear abscissa corresponding to a point - -- of the path, defined by of Edge and a - -- parameter on the edge. - returns Real; - -fields - myPath : Wire from TopoDS is protected; - myTol : Real is protected; - myLaws : HArray1OfLocationLaw from GeomFill is protected; - myLength : HArray1OfReal from TColStd is protected; - myEdges : HArray1OfShape from TopTools is protected; - myDisc : HArray1OfInteger from TColStd is protected; - myType : Integer; -end LocationLaw; - - - diff --git a/src/BRepFill/BRepFill_LocationLaw.cxx b/src/BRepFill/BRepFill_LocationLaw.cxx index f601233ace..3f0675ee48 100644 --- a/src/BRepFill/BRepFill_LocationLaw.cxx +++ b/src/BRepFill/BRepFill_LocationLaw.cxx @@ -15,36 +15,37 @@ // commercial license or contractual agreement. -#include - -#include -#include +#include #include +#include #include -#include -#include -#include -#include -#include - +#include +#include +#include +#include #include -#include #include -#include #include -#include +#include +#include +#include +#include +#include #include #include #include -#include -#include - +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : Norm //purpose : Norm of a Matrix //======================================================================= - static Standard_Real Norm(const gp_Mat& M) { Standard_Real R, Norme; gp_XYZ Coord; diff --git a/src/BRepFill/BRepFill_LocationLaw.hxx b/src/BRepFill/BRepFill_LocationLaw.hxx new file mode 100644 index 0000000000..60d9993f94 --- /dev/null +++ b/src/BRepFill/BRepFill_LocationLaw.hxx @@ -0,0 +1,166 @@ +// Created on: 1998-01-14 +// 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_LocationLaw_HeaderFile +#define _BRepFill_LocationLaw_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_OutOfRange; +class TopoDS_Wire; +class GeomFill_LocationLaw; +class TopoDS_Edge; +class TopoDS_Vertex; +class TopoDS_Shape; + + +class BRepFill_LocationLaw; +DEFINE_STANDARD_HANDLE(BRepFill_LocationLaw, MMgt_TShared) + +//! Location Law on a Wire. +class BRepFill_LocationLaw : public MMgt_TShared +{ + +public: + + + //! Return a error status, if the status is not PipeOk then + //! it exist a parameter tlike the law is not valuable for t. + Standard_EXPORT GeomFill_PipeError GetStatus() const; + + //! Apply a linear transformation on each law, to have + //! continuity of the global law beetween the edges. + Standard_EXPORT virtual void TransformInG0Law(); + + //! Apply a linear transformation on each law, to reduce + //! the dicontinuities of law at one rotation. + Standard_EXPORT virtual void TransformInCompatibleLaw (const Standard_Real AngularTolerance); + + Standard_EXPORT void DeleteTransform(); + + Standard_EXPORT Standard_Integer NbHoles (const Standard_Real Tol = 1.0e-7); + + Standard_EXPORT void Holes (TColStd_Array1OfInteger& Interval) const; + + //! Return the number of elementary Law + Standard_EXPORT Standard_Integer NbLaw() const; + + //! Return the elementary Law of rank + //! have to be in [1, NbLaw()] + Standard_EXPORT const Handle(GeomFill_LocationLaw)& Law (const Standard_Integer Index) const; + + //! return the path + Standard_EXPORT const TopoDS_Wire& Wire() const; + + //! Return the Edge of rank in the path + //! have to be in [1, NbLaw()] + Standard_EXPORT const TopoDS_Edge& Edge (const Standard_Integer Index) const; + + //! Return the vertex of rank in the path + //! have to be in [0, NbLaw()] + Standard_EXPORT TopoDS_Vertex Vertex (const Standard_Integer Index) const; + + //! Compute like a transformation of + //! the transformation is given by + //! evaluation of the location law in the vertex of + //! rank . + //! is used to manage discontinuities : + //! - -1 : The law before the vertex is used. + //! - 1 : The law after the vertex is used. + //! - 0 : Average of the both laws is used. + Standard_EXPORT void PerformVertex (const Standard_Integer Index, const TopoDS_Vertex& InputVertex, const Standard_Real TolMin, TopoDS_Vertex& OutputVertex, const Standard_Integer Location = 0) const; + + //! Return the Curvilinear Bounds of the Law + Standard_EXPORT void CurvilinearBounds (const Standard_Integer Index, Standard_Real& First, Standard_Real& Last) const; + + Standard_EXPORT Standard_Boolean IsClosed() const; + + //! Compute the Law's continuity beetween 2 edges of the path + //! The result can be : + //! -1 : Case Not connex + //! 0 : It is connex (G0) + //! 1 : It is tangent (G1) + Standard_EXPORT Standard_Integer IsG1 (const Standard_Integer Index, const Standard_Real SpatialTolerance = 1.0e-7, const Standard_Real AngularTolerance = 1.0e-4) const; + + //! Apply the Law to a shape, for a given Curnilinear abscissa + Standard_EXPORT void D0 (const Standard_Real Abscissa, TopoDS_Shape& Section); + + //! Find the index Law and the parmaeter, for a given + //! Curnilinear abscissa + Standard_EXPORT void Parameter (const Standard_Real Abscissa, Standard_Integer& Index, Standard_Real& Param); + + //! Return the curvilinear abscissa corresponding to a point + //! of the path, defined by of Edge and a + //! parameter on the edge. + Standard_EXPORT Standard_Real Abscissa (const Standard_Integer Index, const Standard_Real Param); + + + + + DEFINE_STANDARD_RTTI(BRepFill_LocationLaw,MMgt_TShared) + +protected: + + + //! Initialize all the fields, this methode have to + //! be called by the constructors of Inherited class. + Standard_EXPORT void Init (const TopoDS_Wire& Path); + + //! To preseve if possible the Tangent in transformations + //! It is the default mode. + Standard_EXPORT void TangentIsMain(); + + //! To preseve if possible the Normal in transformations + Standard_EXPORT void NormalIsMain(); + + //! To preseve if possible the BiNormal in transformations + Standard_EXPORT void BiNormalIsMain(); + + TopoDS_Wire myPath; + Standard_Real myTol; + Handle(GeomFill_HArray1OfLocationLaw) myLaws; + Handle(TColStd_HArray1OfReal) myLength; + Handle(TopTools_HArray1OfShape) myEdges; + Handle(TColStd_HArray1OfInteger) myDisc; + + +private: + + + Standard_Integer myType; + + +}; + + + + + + + +#endif // _BRepFill_LocationLaw_HeaderFile diff --git a/src/BRepFill/BRepFill_NSections.cdl b/src/BRepFill/BRepFill_NSections.cdl deleted file mode 100644 index 897c5802ea..0000000000 --- a/src/BRepFill/BRepFill_NSections.cdl +++ /dev/null @@ -1,97 +0,0 @@ --- Created on: 1998-12-29 --- 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. - -class NSections from BRepFill inherits SectionLaw from BRepFill - - ---Purpose: Build Section Law, with N Sections - -- - ---Level: Advanced - -uses - SectionLaw from GeomFill, - HArray1OfSectionLaw from GeomFill, - SequenceOfTrsf from GeomFill, - BSplineSurface from Geom, - HArray2OfShape from TopTools, - SequenceOfReal from TColStd, - SequenceOfShape from TopTools, - Shape from GeomAbs, - Vertex from TopoDS, - Wire from TopoDS, - Edge from TopoDS, - Shape from TopoDS, - Function from Law - -is - Create (S:SequenceOfShape from TopTools; - Build : Boolean = Standard_True) - ---Purpose: Construct - returns NSections from BRepFill; - - Create (S : SequenceOfShape from TopTools; - Trsfs : SequenceOfTrsf from GeomFill; - P : SequenceOfReal from TColStd; - VF,VL : Real; - Build : Boolean = Standard_True) - ---Purpose: Construct - returns NSections from BRepFill; - - - IsVertex(me) - ---Purpose: Say if the input shape is a vertex. - returns Boolean - is redefined; - - IsConstant(me) - ---Purpose: Say if the Law is Constant. - returns Boolean - is redefined; - - ConcatenedLaw(me) - ---Purpose: Give the law build on a concatened section - returns SectionLaw from GeomFill - is redefined; - - Continuity(me; Index : Integer; - TolAngular : Real) - returns Shape from GeomAbs - is redefined; - - VertexTol(me; Index : Integer; - Param : Real) - returns Real - is redefined; - - Vertex(me; Index : Integer; - Param : Real) - returns Vertex from TopoDS - is redefined; - - D0(me:mutable; Param : Real; - S : out Shape from TopoDS) - is redefined; - - Init(me : mutable; P : SequenceOfReal from TColStd; - B : Boolean from Standard ) is private; - -fields - VFirst, VLast : Real; - myShapes: SequenceOfShape from TopTools; - myTrsfs: SequenceOfTrsf from GeomFill; - myParams: SequenceOfReal from TColStd; - myEdges: HArray2OfShape from TopTools; - mySurface: BSplineSurface from Geom; -end NSections; diff --git a/src/BRepFill/BRepFill_NSections.cxx b/src/BRepFill/BRepFill_NSections.cxx index 8c35c70558..1676afb4f1 100644 --- a/src/BRepFill/BRepFill_NSections.cxx +++ b/src/BRepFill/BRepFill_NSections.cxx @@ -14,51 +14,49 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include -#include -#include #include #include #include -#include - -#include +#include +#include #include -#include -#include -#include -#include - +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include -#include -#include -#include +#include +#include +#include +#include #include #include +#include #include -#include #include -#include -#include -#include -#include -#include -#include -#include - +#include +#include +#include +#include +#include #include -#include #include -#include +#include +#include +#include +#include +#include +#include #include -#include - +#include #ifdef OCCT_DEBUG static Standard_Boolean Affich = 0; #endif diff --git a/src/BRepFill/BRepFill_NSections.hxx b/src/BRepFill/BRepFill_NSections.hxx new file mode 100644 index 0000000000..8fe83d70a8 --- /dev/null +++ b/src/BRepFill/BRepFill_NSections.hxx @@ -0,0 +1,103 @@ +// Created on: 1998-12-29 +// 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_NSections_HeaderFile +#define _BRepFill_NSections_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Geom_BSplineSurface; +class GeomFill_SectionLaw; +class TopoDS_Vertex; +class TopoDS_Shape; + + +class BRepFill_NSections; +DEFINE_STANDARD_HANDLE(BRepFill_NSections, BRepFill_SectionLaw) + +//! Build Section Law, with N Sections +class BRepFill_NSections : public BRepFill_SectionLaw +{ + +public: + + + //! Construct + Standard_EXPORT BRepFill_NSections(const TopTools_SequenceOfShape& S, const Standard_Boolean Build = Standard_True); + + //! Construct + Standard_EXPORT BRepFill_NSections(const TopTools_SequenceOfShape& S, const GeomFill_SequenceOfTrsf& Trsfs, const TColStd_SequenceOfReal& P, const Standard_Real VF, const Standard_Real VL, const Standard_Boolean Build = Standard_True); + + //! Say if the input shape is a vertex. + Standard_EXPORT virtual Standard_Boolean IsVertex() const Standard_OVERRIDE; + + //! Say if the Law is Constant. + Standard_EXPORT virtual Standard_Boolean IsConstant() const Standard_OVERRIDE; + + //! Give the law build on a concatened section + Standard_EXPORT virtual Handle(GeomFill_SectionLaw) ConcatenedLaw() const Standard_OVERRIDE; + + Standard_EXPORT virtual GeomAbs_Shape Continuity (const Standard_Integer Index, const Standard_Real TolAngular) const Standard_OVERRIDE; + + Standard_EXPORT virtual Standard_Real VertexTol (const Standard_Integer Index, const Standard_Real Param) const Standard_OVERRIDE; + + Standard_EXPORT virtual TopoDS_Vertex Vertex (const Standard_Integer Index, const Standard_Real Param) const Standard_OVERRIDE; + + Standard_EXPORT virtual void D0 (const Standard_Real Param, TopoDS_Shape& S) Standard_OVERRIDE; + + + + + DEFINE_STANDARD_RTTI(BRepFill_NSections,BRepFill_SectionLaw) + +protected: + + + + +private: + + + Standard_EXPORT void Init (const TColStd_SequenceOfReal& P, const Standard_Boolean B); + + Standard_Real VFirst; + Standard_Real VLast; + TopTools_SequenceOfShape myShapes; + GeomFill_SequenceOfTrsf myTrsfs; + TColStd_SequenceOfReal myParams; + Handle(TopTools_HArray2OfShape) myEdges; + Handle(Geom_BSplineSurface) mySurface; + + +}; + + + + + + + +#endif // _BRepFill_NSections_HeaderFile diff --git a/src/BRepFill/BRepFill_OffsetAncestors.cdl b/src/BRepFill/BRepFill_OffsetAncestors.cdl deleted file mode 100644 index f97d5b21ff..0000000000 --- a/src/BRepFill/BRepFill_OffsetAncestors.cdl +++ /dev/null @@ -1,63 +0,0 @@ --- 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. - -class OffsetAncestors from BRepFill - - ---Purpose: this class is used to find the generating shapes - -- of an OffsetWire. - -uses - OffsetWire from BRepFill, - Shape from TopoDS, - Edge from TopoDS, - DataMapOfShapeShape from TopTools - -raises - NotDone from StdFail - -is - Create returns OffsetAncestors from BRepFill; - - Create ( Paral : in out OffsetWire from BRepFill) - returns OffsetAncestors from BRepFill; - - Perform ( me : in out; Paral : in out OffsetWire from BRepFill) - is static; - - IsDone( me) - returns Boolean from Standard - is static; - - HasAncestor (me; S1 : Edge from TopoDS) - returns Boolean from Standard - is static; - - Ancestor (me ; S1 : Edge from TopoDS) - ---Purpose: may return a Null Shape if S1 is not a subShape - -- of ; - ---C++: return const & - returns Shape from TopoDS - raises - NotDone from StdFail - ---Purpose: if Perform is not done. - is static; - -fields - - myIsPerform : Boolean from Standard; - myMap : DataMapOfShapeShape from TopTools; - -end OffsetAncestors; diff --git a/src/BRepFill/BRepFill_OffsetAncestors.cxx b/src/BRepFill/BRepFill_OffsetAncestors.cxx index 3f572af9ae..8dedbfc21a 100644 --- a/src/BRepFill/BRepFill_OffsetAncestors.cxx +++ b/src/BRepFill/BRepFill_OffsetAncestors.cxx @@ -14,17 +14,20 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include #include +#include #include +#include #include //======================================================================= //function : BRepFill_OffsetAncestors //purpose : //======================================================================= - BRepFill_OffsetAncestors::BRepFill_OffsetAncestors() :myIsPerform(Standard_False) { diff --git a/src/BRepFill/BRepFill_OffsetAncestors.hxx b/src/BRepFill/BRepFill_OffsetAncestors.hxx new file mode 100644 index 0000000000..188787d5a0 --- /dev/null +++ b/src/BRepFill/BRepFill_OffsetAncestors.hxx @@ -0,0 +1,81 @@ +// 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 +#include +#include + +#include +#include +class StdFail_NotDone; +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/src/BRepFill/BRepFill_OffsetWire.cdl b/src/BRepFill/BRepFill_OffsetWire.cdl deleted file mode 100644 index 092db05eeb..0000000000 --- a/src/BRepFill/BRepFill_OffsetWire.cdl +++ /dev/null @@ -1,157 +0,0 @@ --- Created on: 1995-04-19 --- 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. - -class OffsetWire from BRepFill - - ---Purpose: Constructs a Offset Wire to a spine (wire or face) - -- on the left of spine. - -- The Wire or the Face must be planar. -uses - - Face from TopoDS, - Shape from TopoDS, - JoinType from GeomAbs, - ListOfShape from TopTools, - SequenceOfShape from TopTools, - SequenceOfPnt from TColgp, - DataMapOfShapeShape from TopTools, - IndexedDataMapOfOrientedShapeListOfShape from BRepFill, - DataMapOfOrientedShapeListOfShape from BRepFill, - BisectingLocus from BRepMAT2d, - LinkTopoBilo from BRepMAT2d, - Bisec from Bisector, - TrimEdgeTool from BRepFill - -raises - ConstructionError from Standard, - NoSuchObject from Standard - -is - - Create returns OffsetWire from BRepFill; - - Create ( Spine : Face from TopoDS; - Join : JoinType from GeomAbs = GeomAbs_Arc; - IsOpenResult : Boolean from Standard = Standard_False) - returns OffsetWire from BRepFill; - - Init ( me : in out; - Spine : Face from TopoDS; - Join : JoinType from GeomAbs = GeomAbs_Arc; - IsOpenResult : Boolean from Standard = Standard_False) - ---Purpose: Initialize the evaluation of Offseting. - raises - ConstructionError from Standard - is static; - - Perform (me : in out; - Offset : Real from Standard; - Alt : Real from Standard = 0.0) - ---Purpose: Performs an OffsetWire at an altitude from - -- the face ( According to the orientation of the - -- face) - raises - ConstructionError from Standard - is static; - - PerformWithBiLo (me : in out; - WSP : Face from TopoDS; - Offset : Real from Standard; - Locus : BisectingLocus from BRepMAT2d; - Link : in out LinkTopoBilo from BRepMAT2d; - Join : JoinType from GeomAbs = GeomAbs_Arc; - Alt : Real from Standard = 0.0) - ---Purpose: Performs an OffsetWire - raises - ConstructionError from Standard - is static; - - IsDone ( me) - returns Boolean from Standard - is static; - - Spine(me) - returns Face from TopoDS - ---C++: return const & - is static; - - - Shape(me) returns Shape from TopoDS - ---Purpose: returns the generated shape. - ---C++ : return const & - is static; - - GeneratedShapes (me : in out ; SpineShape : Shape from TopoDS) - ---Purpose: Returns the shapes created from a subshape - -- of the spine. - -- Returns the last computed Offset. - -- - ---C++ : return const & - returns ListOfShape from TopTools - is static; - - JoinType (me) returns JoinType from GeomAbs - is static; - - Generated (me : in out ) - ---C++: return & - returns IndexedDataMapOfOrientedShapeListOfShape from BRepFill - is static private; - - PrepareSpine (me : in out) - ---Purpose: Prepare the spine as follow - -- - Cut the spine-Edges at the extrema of curvature and - -- at the inflexion points. - is static private; - - Add(me : in out; Other : OffsetWire from BRepFill) - ---Purpose: Add the OffsetWire to and update - is static private; - - UpdateDetromp (me; Detromp : in out DataMapOfOrientedShapeListOfShape from BRepFill; - Shape1, Shape2 : Shape from TopoDS; - Vertices : SequenceOfShape from TopTools; - Params : SequenceOfPnt from TColgp; - Bisec : Bisec from Bisector; - SOnE : Boolean from Standard; - EOnE : Boolean from Standard; - Trim : TrimEdgeTool from BRepFill) - is static private; - - MakeWires (me : in out) - ---Purpose: Constructs the wires with the trimmed offset edges. - is static private; - - FixHoles (me : in out) - ---Purpose: Fix holes between open wires where it is possible - is static private; - -fields - - mySpine : Face from TopoDS; - myWorkSpine : Face from TopoDS; - myOffset : Real from Standard; -- >0 ; - myIsOpenResult : Boolean from Standard; - myShape : Shape from TopoDS; - myIsDone : Boolean from Standard; - myJoinType : JoinType from GeomAbs; - myMap : IndexedDataMapOfOrientedShapeListOfShape from BRepFill; - myBilo : BisectingLocus from BRepMAT2d; - myLink : LinkTopoBilo from BRepMAT2d; - myMapSpine : DataMapOfShapeShape from TopTools; - myCallGen : Boolean from Standard; - -end OffsetWire; diff --git a/src/BRepFill/BRepFill_OffsetWire.cxx b/src/BRepFill/BRepFill_OffsetWire.cxx index cba4206399..465f214855 100644 --- a/src/BRepFill/BRepFill_OffsetWire.cxx +++ b/src/BRepFill/BRepFill_OffsetWire.cxx @@ -16,90 +16,92 @@ // Modified by skv - Fri Jul 8 11:21:38 2005 OCC9145 -#include - -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include - #include +#include #include -#include -#include +#include +#include #include #include -#include +#include #include +#include #include -#include +#include +#include +#include #include -#include -#include -#include -#include -#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include +#include #include +#include #include -#include #include -#include -#include +#include +#include +#include +#include +#include #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include #include -#include +#include #include +#include +#include +#include #include +#include #include -#include -#include +#include +#include +#include +#include #include #include #include -#include #include +#include #include -#include -#include -#include -#include +#include +#include #include #include -#include -#include -#include +#include #include - -#include -#include -#include -#include -#include - -#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include + +#include #ifdef OCCT_DEBUG //#define DRAW #ifdef DRAW diff --git a/src/BRepFill/BRepFill_OffsetWire.hxx b/src/BRepFill/BRepFill_OffsetWire.hxx new file mode 100644 index 0000000000..88542ce2ce --- /dev/null +++ b/src/BRepFill/BRepFill_OffsetWire.hxx @@ -0,0 +1,139 @@ +// Created on: 1995-04-19 +// 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 _BRepFill_OffsetWire_HeaderFile +#define _BRepFill_OffsetWire_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_ConstructionError; +class Standard_NoSuchObject; +class TopoDS_Face; +class BRepMAT2d_BisectingLocus; +class BRepMAT2d_LinkTopoBilo; +class TopoDS_Shape; +class Bisector_Bisec; +class BRepFill_TrimEdgeTool; + + +//! Constructs a Offset Wire to a spine (wire or face) +//! on the left of spine. +//! The Wire or the Face must be planar. +class BRepFill_OffsetWire +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepFill_OffsetWire(); + + Standard_EXPORT BRepFill_OffsetWire(const TopoDS_Face& Spine, const GeomAbs_JoinType Join = GeomAbs_Arc, const Standard_Boolean IsOpenResult = Standard_False); + + //! Initialize the evaluation of Offseting. + Standard_EXPORT void Init (const TopoDS_Face& Spine, const GeomAbs_JoinType Join = GeomAbs_Arc, const Standard_Boolean IsOpenResult = Standard_False); + + //! Performs an OffsetWire at an altitude from + //! the face ( According to the orientation of the + //! face) + Standard_EXPORT void Perform (const Standard_Real Offset, const Standard_Real Alt = 0.0); + + //! Performs an OffsetWire + Standard_EXPORT void PerformWithBiLo (const TopoDS_Face& WSP, const Standard_Real Offset, const BRepMAT2d_BisectingLocus& Locus, BRepMAT2d_LinkTopoBilo& Link, const GeomAbs_JoinType Join = GeomAbs_Arc, const Standard_Real Alt = 0.0); + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT const TopoDS_Face& Spine() const; + + //! returns the generated shape. + Standard_EXPORT const TopoDS_Shape& Shape() const; + + //! Returns the shapes created from a subshape + //! of the spine. + //! Returns the last computed Offset. + Standard_EXPORT const TopTools_ListOfShape& GeneratedShapes (const TopoDS_Shape& SpineShape); + + Standard_EXPORT GeomAbs_JoinType JoinType() const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT BRepFill_IndexedDataMapOfOrientedShapeListOfShape& Generated(); + + //! Prepare the spine as follow + //! - Cut the spine-Edges at the extrema of curvature and + //! at the inflexion points. + Standard_EXPORT void PrepareSpine(); + + //! Add the OffsetWire to and update + Standard_EXPORT void Add (const BRepFill_OffsetWire& Other); + + Standard_EXPORT void UpdateDetromp (BRepFill_DataMapOfOrientedShapeListOfShape& Detromp, const TopoDS_Shape& Shape1, const TopoDS_Shape& Shape2, const TopTools_SequenceOfShape& Vertices, const TColgp_SequenceOfPnt& Params, const Bisector_Bisec& Bisec, const Standard_Boolean SOnE, const Standard_Boolean EOnE, const BRepFill_TrimEdgeTool& Trim) const; + + //! Constructs the wires with the trimmed offset edges. + Standard_EXPORT void MakeWires(); + + //! Fix holes between open wires where it is possible + Standard_EXPORT void FixHoles(); + + + TopoDS_Face mySpine; + TopoDS_Face myWorkSpine; + Standard_Real myOffset; + Standard_Boolean myIsOpenResult; + TopoDS_Shape myShape; + Standard_Boolean myIsDone; + GeomAbs_JoinType myJoinType; + BRepFill_IndexedDataMapOfOrientedShapeListOfShape myMap; + BRepMAT2d_BisectingLocus myBilo; + BRepMAT2d_LinkTopoBilo myLink; + TopTools_DataMapOfShapeShape myMapSpine; + Standard_Boolean myCallGen; + + +}; + + + + + + + +#endif // _BRepFill_OffsetWire_HeaderFile diff --git a/src/BRepFill/BRepFill_Pipe.cdl b/src/BRepFill/BRepFill_Pipe.cdl deleted file mode 100644 index 00dc651e08..0000000000 --- a/src/BRepFill/BRepFill_Pipe.cdl +++ /dev/null @@ -1,193 +0,0 @@ --- Created on: 1994-06-07 --- 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. - - -class Pipe from BRepFill - - ---Purpose: Create a shape by sweeping a shape (the profile) - -- along a wire (the spine). - -- - -- For each edge or vertex from the spine the user - -- may ask for the shape generated from each subshape - -- of the profile. - -uses - - HArray2OfShape from TopTools, - MapOfShape from TopTools, - DataMapOfShapeHArray2OfShape from BRepFill, - LocationLaw from BRepFill, - Shape from TopoDS, - Face from TopoDS, - Wire from TopoDS, - Edge from TopoDS, - Vertex from TopoDS, - Pnt from gp, - Trsf from gp, - Shape from GeomAbs, - Trihedron from GeomFill - -raises - DomainError from Standard, - NotDone from StdFail - -is - - Create returns Pipe from BRepFill; - - Create ( Spine : Wire from TopoDS; - Profile : Shape from TopoDS; - aMode : Trihedron from GeomFill = GeomFill_IsCorrectedFrenet; - ForceApproxC1 : Boolean from Standard = Standard_False; - GeneratePartCase : Boolean from Standard = Standard_False) - returns Pipe from BRepFill; - - Perform (me : in out; Spine : Wire from TopoDS; - Profile : Shape from TopoDS; - GeneratePartCase : Boolean from Standard = Standard_False) - is static; - - Spine(me) returns Shape from TopoDS - ---C++ : return const & - is static; - - Profile(me) returns Shape from TopoDS - ---C++ : return const & - is static; - - Shape(me) returns Shape from TopoDS - ---C++ : return const & - is static; - - ErrorOnSurface (me) - returns Real from Standard; - - FirstShape(me) returns Shape from TopoDS - ---C++ : return const & - is static; - - LastShape(me) returns Shape from TopoDS - ---C++ : return const & - is static; - - Face(me : in out; ESpine, EProfile : Edge from TopoDS) - returns Face from TopoDS - ---Purpose: Returns the face created from an edge of the spine - -- and an edge of the profile. - raises - DomainError from Standard - ---Purpose: if the edges are not in the spine or the profile - - is static; - - Edge(me : in out; ESpine : Edge from TopoDS; VProfile : Vertex from TopoDS) - returns Edge from TopoDS - ---Purpose: Returns the edge created from an edge of the spine - -- and a vertex of the profile. - raises - DomainError from Standard - ---Purpose: if the edge or the vertex are not in the spine or - -- the profile. - - is static; - - Section(me; VSpine : Vertex from TopoDS) - returns Shape from TopoDS - ---Purpose: Returns the shape created from the profile at the - -- position of the vertex VSpine. - raises - DomainError from Standard - ---Purpose: if the vertex is not in the Spine - is static; - - - PipeLine(me : in out; Point : Pnt from gp) - ---Purpose: Create a Wire by sweeping the Point along the - returns Wire from TopoDS - raises - DomainError from Standard - ---Purpose: if the is undefined - is static; - - - -- - -- Private methods - -- - - MakeShape(me : in out; S : Shape from TopoDS; - FirstShape, LastShape : Shape from TopoDS) - returns Shape from TopoDS - ---Purpose: Auxiliary recursive method used to build the - -- result. - is static private; - - - FindEdge(me; S : Shape from TopoDS; - E : Edge from TopoDS; - Init : in out Integer) - ---Purpose: Auxiliary recursive method used to find the edge's index - returns Integer - is static private; - - FindVertex(me; S : Shape from TopoDS; - V : Vertex from TopoDS; - Init : in out Integer) - returns Integer - is static private; - - DefineRealSegmax(me : in out) - is static private; - - RebuildTopOrBottomFace(me; aFace: Shape from TopoDS; - IsTop: Boolean from Standard) - is static private; - - ShareFaces(me: in out; theShape: Shape from TopoDS; - theInitialFacesLen: Integer; - theInitialEdgesLen: Integer; - theInitialSectionsLen: Integer) - ---Purpose: Performs sharing coincident faces in theShape. Also modifies - -- myFaces, mySections and myEdges to contain shared shapes. - -- Returns the shared shape. If theShape is not modified this - -- method returns it. - returns Shape from TopoDS - is static private; - -fields - mySpine : Wire from TopoDS; - myProfile : Shape from TopoDS; - myShape : Shape from TopoDS; - myTrsf : Trsf from gp; - myLoc : LocationLaw from BRepFill; - mySections: HArray2OfShape from TopTools; - myFaces : HArray2OfShape from TopTools; - myEdges : HArray2OfShape from TopTools; - myReversedEdges : MapOfShape from TopTools; - myTapes : DataMapOfShapeHArray2OfShape from BRepFill; - myRails : DataMapOfShapeHArray2OfShape from BRepFill; - myCurIndexOfSectionEdge : Integer from Standard; - myFirst : Shape from TopoDS; - myLast : Shape from TopoDS; - - myDegmax : Integer from Standard; - mySegmax : Integer from Standard; - myContinuity : Shape from GeomAbs; - myMode : Trihedron from GeomFill; - myForceApproxC1 : Boolean from Standard; - - myErrorOnSurf : Real from Standard; - -end Pipe; diff --git a/src/BRepFill/BRepFill_Pipe.cxx b/src/BRepFill/BRepFill_Pipe.cxx index 6dd7d4466d..d8ab8d96d1 100644 --- a/src/BRepFill/BRepFill_Pipe.cxx +++ b/src/BRepFill/BRepFill_Pipe.cxx @@ -14,55 +14,56 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include - -#include +#include #include +#include +#include +#include #include -#include -#include - -#include -#include -#include -#include - +#include +#include +#include #include #include -#include #include - +#include +#include +#include +#include +#include +#include +#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include -#include -#include #include +#include +#include #include +#include +#include +#include +#include +#include #include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include #include -#include - -#include -#include -#include - -#include +#include #ifdef DRAW #include diff --git a/src/BRepFill/BRepFill_Pipe.hxx b/src/BRepFill/BRepFill_Pipe.hxx new file mode 100644 index 0000000000..12b0a28d83 --- /dev/null +++ b/src/BRepFill/BRepFill_Pipe.hxx @@ -0,0 +1,159 @@ +// Created on: 1994-06-07 +// 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_Pipe_HeaderFile +#define _BRepFill_Pipe_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class BRepFill_LocationLaw; +class Standard_DomainError; +class StdFail_NotDone; +class TopoDS_Wire; +class TopoDS_Shape; +class TopoDS_Face; +class TopoDS_Edge; +class TopoDS_Vertex; +class gp_Pnt; + + +//! Create a shape by sweeping a shape (the profile) +//! along a wire (the spine). +//! +//! For each edge or vertex from the spine the user +//! may ask for the shape generated from each subshape +//! of the profile. +class BRepFill_Pipe +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepFill_Pipe(); + + Standard_EXPORT BRepFill_Pipe(const TopoDS_Wire& Spine, const TopoDS_Shape& Profile, const GeomFill_Trihedron aMode = GeomFill_IsCorrectedFrenet, const Standard_Boolean ForceApproxC1 = Standard_False, const Standard_Boolean GeneratePartCase = Standard_False); + + Standard_EXPORT void Perform (const TopoDS_Wire& Spine, const TopoDS_Shape& Profile, const Standard_Boolean GeneratePartCase = Standard_False); + + Standard_EXPORT const TopoDS_Shape& Spine() const; + + Standard_EXPORT const TopoDS_Shape& Profile() const; + + Standard_EXPORT const TopoDS_Shape& Shape() const; + + Standard_EXPORT Standard_Real ErrorOnSurface() const; + + Standard_EXPORT const TopoDS_Shape& FirstShape() const; + + Standard_EXPORT const TopoDS_Shape& LastShape() const; + + //! Returns the face created from an edge of the spine + //! and an edge of the profile. + //! if the edges are not in the spine or the profile + Standard_EXPORT TopoDS_Face Face (const TopoDS_Edge& ESpine, const TopoDS_Edge& EProfile); + + //! Returns the edge created from an edge of the spine + //! and a vertex of the profile. + //! if the edge or the vertex are not in the spine or + //! the profile. + Standard_EXPORT TopoDS_Edge Edge (const TopoDS_Edge& ESpine, const TopoDS_Vertex& VProfile); + + //! Returns the shape created from the profile at the + //! position of the vertex VSpine. + //! if the vertex is not in the Spine + Standard_EXPORT TopoDS_Shape Section (const TopoDS_Vertex& VSpine) const; + + //! Create a Wire by sweeping the Point along the + //! if the is undefined + Standard_EXPORT TopoDS_Wire PipeLine (const gp_Pnt& Point); + + + + +protected: + + + + + +private: + + + //! Auxiliary recursive method used to build the + //! result. + Standard_EXPORT TopoDS_Shape MakeShape (const TopoDS_Shape& S, const TopoDS_Shape& FirstShape, const TopoDS_Shape& LastShape); + + //! Auxiliary recursive method used to find the edge's index + Standard_EXPORT Standard_Integer FindEdge (const TopoDS_Shape& S, const TopoDS_Edge& E, Standard_Integer& Init) const; + + Standard_EXPORT Standard_Integer FindVertex (const TopoDS_Shape& S, const TopoDS_Vertex& V, Standard_Integer& Init) const; + + Standard_EXPORT void DefineRealSegmax(); + + Standard_EXPORT void RebuildTopOrBottomFace (const TopoDS_Shape& aFace, const Standard_Boolean IsTop) const; + + //! Performs sharing coincident faces in theShape. Also modifies + //! myFaces, mySections and myEdges to contain shared shapes. + //! Returns the shared shape. If theShape is not modified this + //! method returns it. + Standard_EXPORT TopoDS_Shape ShareFaces (const TopoDS_Shape& theShape, const Standard_Integer theInitialFacesLen, const Standard_Integer theInitialEdgesLen, const Standard_Integer theInitialSectionsLen); + + + TopoDS_Wire mySpine; + TopoDS_Shape myProfile; + TopoDS_Shape myShape; + gp_Trsf myTrsf; + Handle(BRepFill_LocationLaw) myLoc; + Handle(TopTools_HArray2OfShape) mySections; + Handle(TopTools_HArray2OfShape) myFaces; + Handle(TopTools_HArray2OfShape) myEdges; + TopTools_MapOfShape myReversedEdges; + BRepFill_DataMapOfShapeHArray2OfShape myTapes; + BRepFill_DataMapOfShapeHArray2OfShape myRails; + Standard_Integer myCurIndexOfSectionEdge; + TopoDS_Shape myFirst; + TopoDS_Shape myLast; + Standard_Integer myDegmax; + Standard_Integer mySegmax; + GeomAbs_Shape myContinuity; + GeomFill_Trihedron myMode; + Standard_Boolean myForceApproxC1; + Standard_Real myErrorOnSurf; + + +}; + + + + + + + +#endif // _BRepFill_Pipe_HeaderFile diff --git a/src/BRepFill/BRepFill_PipeShell.cdl b/src/BRepFill/BRepFill_PipeShell.cdl deleted file mode 100644 index b3ca4350a8..0000000000 --- a/src/BRepFill/BRepFill_PipeShell.cdl +++ /dev/null @@ -1,329 +0,0 @@ --- Created on: 1998-07-22 --- 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. - -class PipeShell from BRepFill inherits TShared from MMgt - - ---Purpose: Computes a topological shell using some wires - -- (spines and profiles) and diplacement option - -- Perform general sweeping construction -uses - Dir from gp, - Ax2 from gp, - Trsf from gp, - Function from Law, - ListOfShape from TopTools, - HArray2OfShape from TopTools, - Shape from TopoDS, - Wire from TopoDS, - Vertex from TopoDS, - TransitionStyle from BRepFill, - Trihedron from GeomFill, - PipeError from GeomFill, - LocationLaw from BRepFill, - SectionLaw from BRepFill, - Section from BRepFill, - Sweep from BRepFill, - DataMapOfShapeListOfShape from TopTools, - SequenceOfSection from BRepFill, - TypeOfContact from BRepFill - -raises - DomainError from Standard, - NotDone from StdFail - -is - Create( Spine : Wire from TopoDS) - ---Level: Public - returns PipeShell from BRepFill; - --- ================================= --- Methodes Set --- ================================= - ---Purpose: Set an sweep's mode - -- If no mode are setted, the mode use in MakePipe is used - ---See Also: GeomFill_IsCorrectedFrenet - - Set(me : mutable; Frenet : Boolean = Standard_False); - ---Purpose: Set an Frenet or an CorrectedFrenet trihedron - -- to perform the sweeping - ---Level: Public - ---See Also:GeomFill_IsCorrectedFrenet - - SetDiscrete(me : mutable); - ---Purpose: Set a Discrete trihedron - -- to perform the sweeping - ---Level: Public - ---See Also:GeomFill_IsDiscreteTrihedron - - Set(me : mutable; Axe : Ax2 from gp); - ---Purpose: Set an fixed trihedron to perform the sweeping - -- all sections will be parallel. - ---Level: Public - ---See Also: GeomFill_IsFixed - - Set(me : mutable; BiNormal : Dir from gp); - ---Purpose: Set an fixed BiNormal direction to perform - -- the sweeping - ---Level: Public - ---See Also: GeomFill_IsConstantNormal - - Set(me : mutable; SpineSupport : Shape from TopoDS) - ---Purpose: Set support to the spine to define the BiNormal - -- at the spine, like the normal the surfaces. - -- Warning: To be effective, Each edge of the must - -- have an representaion on one face of - ---Level: Public - ---See Also: GeomFill_IsDarboux - returns Boolean; - - Set(me : mutable; - AuxiliarySpine : Wire from TopoDS; - CurvilinearEquivalence : Boolean = Standard_True; - KeepContact : TypeOfContact from BRepFill = BRepFill_NoContact ); - - ---Purpose: Set an auxiliary spine to define the Normal - -- For each Point of the Spine P, an Point Q is evalued - -- on - -- If - -- Q split with the same length ratio - -- than P split . - -- Else the plan define by P and the tangent to the - -- intersect in Q. - -- If equals BRepFill_NoContact: The Normal is defined - -- by the vector PQ. - -- If equals BRepFill_Contact: The Normal is defined to - -- achieve that the sweeped section is in contact to the - -- auxiliarySpine. The width of section is constant all along the path. - -- In other words, the auxiliary spine lies on the swept surface, - -- but not necessarily is a boundary of this surface. However, - -- the auxiliary spine has to be close enough to the main spine - -- to provide intersection with any section all along the path. - -- If equals BRepFill_ContactOnBorder: The auxiliary spine - -- becomes a boundary of the swept surface and the width of section varies - -- along the path. - - ---Level: Public - - --- ============================================ --- Methods to set parameters for approximation --- ============================================ - SetMaxDegree(me : mutable; - NewMaxDegree : Integer from Standard); - ---Purpose: Define the maximum V degree of resulting surface - - SetMaxSegments(me : mutable; - NewMaxSegments : Integer from Standard); - ---Purpose: Define the maximum number of spans in V-direction - -- on resulting surface - - SetForceApproxC1(me : mutable; - ForceApproxC1 : Boolean from Standard); - ---Purpose: Set the flag that indicates attempt to approximate - -- a C1-continuous surface if a swept surface proved - -- to be C0. - - --- ================================= --- Methodes to define section(s) --- ================================= - ---Purpose: Give section to sweep. - -- Possibilities are : - -- - Give one or sevral profile - -- - Give one profile and an homotetic law. - -- - Automatic compute of correspondance beetween profile, and section - -- on the sweeped shape - -- - correspondance beetween profile, and section on the sweeped shape - -- defined by a vertex of the spine - - -- -"WithCorrection" The profile is rotated to have a Normal -- - -- parallel to the trihedron's normal and have tangent - -- perpendicular to the trihedron's tangent. - - - Add(me:mutable; - Profile : Shape from TopoDS; - WithContact : Boolean = Standard_False; - WithCorrection : Boolean = Standard_False ); - ---Purpose: Set an section. The corespondance with the spine, will - -- be automaticaly performed. - ---Level: Public - - Add(me:mutable; - Profile : Shape from TopoDS; - Location : Vertex from TopoDS; - WithContact : Boolean = Standard_False; - WithCorrection : Boolean = Standard_False) - ---Purpose: Set an section. The corespondance with the spine, is - -- given by - - ---Level: Public - raises DomainError; -- if the do not contain - - SetLaw(me :mutable; - Profile : Shape from TopoDS; - L : Function from Law; - WithContact : Boolean = Standard_False; - WithCorrection : Boolean = Standard_False); - ---Purpose: Set an section and an homotetic law. - -- The homotetie's centers is given by point on the . - ---Level: Public - - - SetLaw(me :mutable; - Profile : Shape from TopoDS; - L : Function from Law; - Location : Vertex from TopoDS; - WithContact : Boolean = Standard_False; - WithCorrection : Boolean = Standard_False); - ---Purpose: Set an section and an homotetic law. - -- The homotetie center is given by point on the - ---Level: Public - - - Delete(me : mutable; Profile : Shape from TopoDS); - ---Purpose: Delete an section. - ---Level: Public - - --- ======================================== --- Methodes to perform and read shape --- ======================================== - IsReady(me) - ---Purpose: Say if is ready to build the shape - -- return False if do not have section definition - returns Boolean; - - GetStatus(me) - ---Purpose: Get a status, when Simulate or Build failed. - returns PipeError from GeomFill; - - SetTolerance(me : mutable; - Tol3d : Real = 1.0e-4; - BoundTol : Real = 1.0e-4; - TolAngular : Real = 1.0e-2); - - SetTransition(me : mutable; - Mode :TransitionStyle from BRepFill - = BRepFill_Modified; - Angmin : Real = 1.0e-2; - Angmax : Real = 6.0) - ---Purpose: Set the Transition Mode to manage discontinuities - -- on the sweep. - ---Level: Public - is static; - - Simulate(me : mutable; - NumberOfSection : Integer; - Sections : out ListOfShape from TopTools) - ---Purpose: Perform simulation of the sweep : - -- Somes Section are returned. - ---Level: Public - raises NotDone; -- If it is not Ready - - - Build(me : mutable) - ---Purpose: Builds the resulting shape (redefined from MakeShape). - ---Level: Public - returns Boolean - raises NotDone -- If it is not Ready - is static; - - MakeSolid(me : mutable) - ---Purpose: Transform the sweeping Shell in Solid. - -- If the section are not closed returns False - ---Level: Public - returns Boolean - raises NotDone; -- If is not Builded; - - Shape (me) - ---Purpose: Returns the result Shape. - ---C++: return const & - ---Level: Public - returns Shape from TopoDS - is static; - - ErrorOnSurface (me) - returns Real from Standard; - - FirstShape (me) - ---Purpose: Returns the TopoDS Shape of the bottom of the sweep. - ---C++: return const & - ---Level: Public - returns Shape from TopoDS - is static; - - LastShape (me) - ---Purpose: Returns the TopoDS Shape of the top of the sweep. - ---C++: return const & - ---Level: Public - returns Shape from TopoDS - is static; - - Generated (me: mutable; - S : Shape from TopoDS; - L : out ListOfShape from TopTools) - ---Purpose: Returns the list of shapes generated from the - -- shape . - ---Level: Public - is static; - - Prepare(me: mutable) is private; - - Place(me : mutable; - Sec : Section from BRepFill; - W : out Wire from TopoDS; - Trsf : out Trsf from gp; - param : out Real from Standard) is private; - - ResetLoc(me : mutable) is private; - - BuildHistory(me: mutable; theSweep: Sweep from BRepFill) - is private; - -fields - mySpine : Wire from TopoDS; - myFirst : Shape from TopoDS; - myLast : Shape from TopoDS; - myShape : Shape from TopoDS; - mySeq : SequenceOfSection from BRepFill; - - myGenMap : DataMapOfShapeListOfShape from TopTools; - - myTol3d : Real; - myBoundTol : Real; - myTolAngular : Real; - angmin, angmax : Real; - myMaxDegree : Integer; - myMaxSegments : Integer; - myForceApproxC1 : Boolean; - - myLaw : Function from Law; - myIsAutomaticLaw : Boolean from Standard; - myLocation : LocationLaw from BRepFill; - mySection : SectionLaw from BRepFill; - myFaces : HArray2OfShape from TopTools; - myTrihedron : Trihedron from GeomFill; - myTransition : TransitionStyle from BRepFill; - myStatus : PipeError from GeomFill; - myErrorOnSurf : Real from Standard; - -end PipeShell; - - - - - diff --git a/src/BRepFill/BRepFill_PipeShell.cxx b/src/BRepFill/BRepFill_PipeShell.cxx index c1ee6b917f..fdd85d65a4 100644 --- a/src/BRepFill/BRepFill_PipeShell.cxx +++ b/src/BRepFill/BRepFill_PipeShell.cxx @@ -14,72 +14,73 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include #include #include -#include -#include -#include -#include -#include -#include -#include - -#include -#include #include +#include +#include #include - #include -#include -#include -#include #include -#include -#include #include -#include #include -#include - -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include +#include #include #include -#include -#include -#include +#include #include #include #include - -//Specification Guide -#include - -#include +#include +#include +#include #include +#include #include -#include - -#include -#include -#include - -#include -#include - #include -#include -#include #include #include -#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//Specification Guide #ifdef DRAW #include #include diff --git a/src/BRepFill/BRepFill_PipeShell.hxx b/src/BRepFill/BRepFill_PipeShell.hxx new file mode 100644 index 0000000000..e4a103341d --- /dev/null +++ b/src/BRepFill/BRepFill_PipeShell.hxx @@ -0,0 +1,244 @@ +// Created on: 1998-07-22 +// 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_PipeShell_HeaderFile +#define _BRepFill_PipeShell_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Law_Function; +class BRepFill_LocationLaw; +class BRepFill_SectionLaw; +class Standard_DomainError; +class StdFail_NotDone; +class TopoDS_Wire; +class gp_Ax2; +class gp_Dir; +class TopoDS_Shape; +class TopoDS_Vertex; +class BRepFill_Section; +class gp_Trsf; +class BRepFill_Sweep; + + +class BRepFill_PipeShell; +DEFINE_STANDARD_HANDLE(BRepFill_PipeShell, MMgt_TShared) + +//! Computes a topological shell using some wires +//! (spines and profiles) and diplacement option +//! Perform general sweeping construction +class BRepFill_PipeShell : public MMgt_TShared +{ + +public: + + + //! Set an sweep's mode + //! If no mode are setted, the mode use in MakePipe is used + Standard_EXPORT BRepFill_PipeShell(const TopoDS_Wire& Spine); + + //! Set an Frenet or an CorrectedFrenet trihedron + //! to perform the sweeping + Standard_EXPORT void Set (const Standard_Boolean Frenet = Standard_False); + + //! Set a Discrete trihedron + //! to perform the sweeping + Standard_EXPORT void SetDiscrete(); + + //! Set an fixed trihedron to perform the sweeping + //! all sections will be parallel. + Standard_EXPORT void Set (const gp_Ax2& Axe); + + //! Set an fixed BiNormal direction to perform + //! the sweeping + Standard_EXPORT void Set (const gp_Dir& BiNormal); + + //! Set support to the spine to define the BiNormal + //! at the spine, like the normal the surfaces. + //! Warning: To be effective, Each edge of the must + //! have an representaion on one face of + Standard_EXPORT Standard_Boolean Set (const TopoDS_Shape& SpineSupport); + + //! Set an auxiliary spine to define the Normal + //! For each Point of the Spine P, an Point Q is evalued + //! on + //! If + //! Q split with the same length ratio + //! than P split . + //! Else the plan define by P and the tangent to the + //! intersect in Q. + //! If equals BRepFill_NoContact: The Normal is defined + //! by the vector PQ. + //! If equals BRepFill_Contact: The Normal is defined to + //! achieve that the sweeped section is in contact to the + //! auxiliarySpine. The width of section is constant all along the path. + //! In other words, the auxiliary spine lies on the swept surface, + //! but not necessarily is a boundary of this surface. However, + //! the auxiliary spine has to be close enough to the main spine + //! to provide intersection with any section all along the path. + //! If equals BRepFill_ContactOnBorder: The auxiliary spine + //! becomes a boundary of the swept surface and the width of section varies + //! along the path. + Standard_EXPORT void Set (const TopoDS_Wire& AuxiliarySpine, const Standard_Boolean CurvilinearEquivalence = Standard_True, const BRepFill_TypeOfContact KeepContact = BRepFill_NoContact); + + //! Define the maximum V degree of resulting surface + Standard_EXPORT void SetMaxDegree (const Standard_Integer NewMaxDegree); + + //! Define the maximum number of spans in V-direction + //! on resulting surface + Standard_EXPORT void SetMaxSegments (const Standard_Integer NewMaxSegments); + + //! Set the flag that indicates attempt to approximate + //! a C1-continuous surface if a swept surface proved + //! to be C0. + //! Give section to sweep. + //! Possibilities are : + //! - Give one or sevral profile + //! - Give one profile and an homotetic law. + //! - Automatic compute of correspondance beetween profile, and section + //! on the sweeped shape + //! - correspondance beetween profile, and section on the sweeped shape + //! defined by a vertex of the spine + Standard_EXPORT void SetForceApproxC1 (const Standard_Boolean ForceApproxC1); + + //! Set an section. The corespondance with the spine, will + //! be automaticaly performed. + Standard_EXPORT void Add (const TopoDS_Shape& Profile, const Standard_Boolean WithContact = Standard_False, const Standard_Boolean WithCorrection = Standard_False); + + //! Set an section. The corespondance with the spine, is + //! given by + Standard_EXPORT void Add (const TopoDS_Shape& Profile, const TopoDS_Vertex& Location, const Standard_Boolean WithContact = Standard_False, const Standard_Boolean WithCorrection = Standard_False); + + //! Set an section and an homotetic law. + //! The homotetie's centers is given by point on the . + Standard_EXPORT void SetLaw (const TopoDS_Shape& Profile, const Handle(Law_Function)& L, const Standard_Boolean WithContact = Standard_False, const Standard_Boolean WithCorrection = Standard_False); + + //! Set an section and an homotetic law. + //! The homotetie center is given by point on the + Standard_EXPORT void SetLaw (const TopoDS_Shape& Profile, const Handle(Law_Function)& L, const TopoDS_Vertex& Location, const Standard_Boolean WithContact = Standard_False, const Standard_Boolean WithCorrection = Standard_False); + + //! Delete an section. + Standard_EXPORT void Delete (const TopoDS_Shape& Profile); + + //! Say if is ready to build the shape + //! return False if do not have section definition + Standard_EXPORT Standard_Boolean IsReady() const; + + //! Get a status, when Simulate or Build failed. + Standard_EXPORT GeomFill_PipeError GetStatus() const; + + Standard_EXPORT void SetTolerance (const Standard_Real Tol3d = 1.0e-4, const Standard_Real BoundTol = 1.0e-4, const Standard_Real TolAngular = 1.0e-2); + + //! Set the Transition Mode to manage discontinuities + //! on the sweep. + Standard_EXPORT void SetTransition (const BRepFill_TransitionStyle Mode = BRepFill_Modified, const Standard_Real Angmin = 1.0e-2, const Standard_Real Angmax = 6.0); + + //! Perform simulation of the sweep : + //! Somes Section are returned. + Standard_EXPORT void Simulate (const Standard_Integer NumberOfSection, TopTools_ListOfShape& Sections); + + //! Builds the resulting shape (redefined from MakeShape). + Standard_EXPORT Standard_Boolean Build(); + + //! Transform the sweeping Shell in Solid. + //! If the section are not closed returns False + Standard_EXPORT Standard_Boolean MakeSolid(); + + //! Returns the result Shape. + Standard_EXPORT const TopoDS_Shape& Shape() const; + + Standard_EXPORT Standard_Real ErrorOnSurface() const; + + //! Returns the TopoDS Shape of the bottom of the sweep. + Standard_EXPORT const TopoDS_Shape& FirstShape() const; + + //! Returns the TopoDS Shape of the top of the sweep. + Standard_EXPORT const TopoDS_Shape& LastShape() const; + + //! Returns the list of shapes generated from the + //! shape . + Standard_EXPORT void Generated (const TopoDS_Shape& S, TopTools_ListOfShape& L); + + + + + DEFINE_STANDARD_RTTI(BRepFill_PipeShell,MMgt_TShared) + +protected: + + + + +private: + + + Standard_EXPORT void Prepare(); + + Standard_EXPORT void Place (const BRepFill_Section& Sec, TopoDS_Wire& W, gp_Trsf& Trsf, Standard_Real& param); + + Standard_EXPORT void ResetLoc(); + + Standard_EXPORT void BuildHistory (const BRepFill_Sweep& theSweep); + + TopoDS_Wire mySpine; + TopoDS_Shape myFirst; + TopoDS_Shape myLast; + TopoDS_Shape myShape; + BRepFill_SequenceOfSection mySeq; + TopTools_DataMapOfShapeListOfShape myGenMap; + Standard_Real myTol3d; + Standard_Real myBoundTol; + Standard_Real myTolAngular; + Standard_Real angmin; + Standard_Real angmax; + Standard_Integer myMaxDegree; + Standard_Integer myMaxSegments; + Standard_Boolean myForceApproxC1; + Handle(Law_Function) myLaw; + Standard_Boolean myIsAutomaticLaw; + Handle(BRepFill_LocationLaw) myLocation; + Handle(BRepFill_SectionLaw) mySection; + Handle(TopTools_HArray2OfShape) myFaces; + GeomFill_Trihedron myTrihedron; + BRepFill_TransitionStyle myTransition; + GeomFill_PipeError myStatus; + Standard_Real myErrorOnSurf; + + +}; + + + + + + + +#endif // _BRepFill_PipeShell_HeaderFile diff --git a/src/BRepFill/BRepFill_Section.cdl b/src/BRepFill/BRepFill_Section.cdl deleted file mode 100644 index 3d9f7bb6fa..0000000000 --- a/src/BRepFill/BRepFill_Section.cdl +++ /dev/null @@ -1,66 +0,0 @@ --- Created on: 1998-07-22 --- 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. - -private class Section from BRepFill - - ---Purpose: To store section definition -uses - Shape from TopoDS, - Wire from TopoDS, - Vertex from TopoDS - -is - Create returns Section from BRepFill; - - Create (Profile : Shape from TopoDS; - V : Vertex from TopoDS; - WithContact : Boolean ; - WithCorrection : Boolean) - returns Section from BRepFill; - - Set(me : in out; IsLaw : Boolean); - - Wire(me) - ---C++: return const & - ---C++: inline - returns Wire from TopoDS; - - Vertex(me) - ---C++: return const & - ---C++: inline - returns Vertex from TopoDS; - - IsLaw(me) - ---C++: inline - returns Boolean; - - WithContact(me) - ---C++: inline - returns Boolean; - - WithCorrection(me) - ---C++: inline - returns Boolean; - - - -fields - wire : Wire from TopoDS; - vertex : Vertex from TopoDS; - islaw : Boolean; - contact : Boolean; - correction:Boolean; -end Section; diff --git a/src/BRepFill/BRepFill_Section.cxx b/src/BRepFill/BRepFill_Section.cxx index 070eb2d8e9..e1674c24dc 100644 --- a/src/BRepFill/BRepFill_Section.cxx +++ b/src/BRepFill/BRepFill_Section.cxx @@ -14,12 +14,14 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include #include +#include +#include #include - +#include +#include +#include BRepFill_Section::BRepFill_Section() :islaw(0), contact(0), correction(0) { diff --git a/src/BRepFill/BRepFill_Section.hxx b/src/BRepFill/BRepFill_Section.hxx new file mode 100644 index 0000000000..2857809ea0 --- /dev/null +++ b/src/BRepFill/BRepFill_Section.hxx @@ -0,0 +1,85 @@ +// Created on: 1998-07-22 +// 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_Section_HeaderFile +#define _BRepFill_Section_HeaderFile + +#include +#include +#include + +#include +#include +#include +class TopoDS_Shape; +class TopoDS_Vertex; +class TopoDS_Wire; + + +//! To store section definition +class BRepFill_Section +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepFill_Section(); + + Standard_EXPORT BRepFill_Section(const TopoDS_Shape& Profile, const TopoDS_Vertex& V, const Standard_Boolean WithContact, const Standard_Boolean WithCorrection); + + Standard_EXPORT void Set (const Standard_Boolean IsLaw); + + const TopoDS_Wire& Wire() const; + + const TopoDS_Vertex& Vertex() const; + + Standard_Boolean IsLaw() const; + + Standard_Boolean WithContact() const; + + Standard_Boolean WithCorrection() const; + + + + +protected: + + + + + +private: + + + + TopoDS_Wire wire; + TopoDS_Vertex vertex; + Standard_Boolean islaw; + Standard_Boolean contact; + Standard_Boolean correction; + + +}; + + +#include + + + + + +#endif // _BRepFill_Section_HeaderFile diff --git a/src/BRepFill/BRepFill_SectionLaw.cdl b/src/BRepFill/BRepFill_SectionLaw.cdl deleted file mode 100644 index 20cbbbdf75..0000000000 --- a/src/BRepFill/BRepFill_SectionLaw.cdl +++ /dev/null @@ -1,86 +0,0 @@ --- Created on: 1998-01-07 --- 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. - -deferred class SectionLaw from BRepFill inherits TShared from MMgt - - ---Purpose: Build Section Law, with an Vertex, or an Wire - ---Level: Advanced - -uses - SectionLaw from GeomFill, - HArray1OfSectionLaw from GeomFill, - Shape from GeomAbs, - Shape from TopoDS, - Wire from TopoDS, - Edge from TopoDS, - Vertex from TopoDS, - WireExplorer from BRepTools - - -is - NbLaw(me) returns Integer; - - Law(me; Index : Integer) - ---C++: return const & - returns SectionLaw from GeomFill; - - IsConstant(me) returns Boolean - is deferred; - - IsUClosed(me) returns Boolean; - - IsVClosed(me) returns Boolean; - - IsVertex(me) - ---Purpose: Say if the input sahpe is a vertex. - returns Boolean - is deferred; - - ConcatenedLaw(me) - returns SectionLaw from GeomFill - is deferred; - - Continuity(me; Index : Integer; - TolAngular : Real) - returns Shape from GeomAbs - is deferred; - - VertexTol(me; Index : Integer; - Param : Real) - returns Real - is deferred; - - Vertex(me; Index : Integer; - Param : Real) - returns Vertex from TopoDS - is deferred; - - D0(me:mutable; U : Real; - S : out Shape from TopoDS) - is deferred; - - Init(me: mutable; W : Wire from TopoDS); - - - CurrentEdge(me : mutable) - returns Edge from TopoDS; - -fields - myLaws : HArray1OfSectionLaw from GeomFill is protected; - uclosed : Boolean from Standard is protected; - vclosed : Boolean from Standard is protected; - myIterator : WireExplorer from BRepTools; -end SectionLaw; diff --git a/src/BRepFill/BRepFill_SectionLaw.cxx b/src/BRepFill/BRepFill_SectionLaw.cxx index 7bcfb98802..668d6d4206 100644 --- a/src/BRepFill/BRepFill_SectionLaw.cxx +++ b/src/BRepFill/BRepFill_SectionLaw.cxx @@ -14,29 +14,29 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include #include #include +#include #include -#include -#include -#include - +#include +#include #include #include #include -#include +#include #include - +#include +#include #include -#include #include - - -#include - +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : NbLaw diff --git a/src/BRepFill/BRepFill_SectionLaw.hxx b/src/BRepFill/BRepFill_SectionLaw.hxx new file mode 100644 index 0000000000..26c548c3d1 --- /dev/null +++ b/src/BRepFill/BRepFill_SectionLaw.hxx @@ -0,0 +1,101 @@ +// Created on: 1998-01-07 +// 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_SectionLaw_HeaderFile +#define _BRepFill_SectionLaw_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class GeomFill_SectionLaw; +class TopoDS_Vertex; +class TopoDS_Shape; +class TopoDS_Wire; +class TopoDS_Edge; + + +class BRepFill_SectionLaw; +DEFINE_STANDARD_HANDLE(BRepFill_SectionLaw, MMgt_TShared) + +//! Build Section Law, with an Vertex, or an Wire +class BRepFill_SectionLaw : public MMgt_TShared +{ + +public: + + + Standard_EXPORT Standard_Integer NbLaw() const; + + Standard_EXPORT const Handle(GeomFill_SectionLaw)& Law (const Standard_Integer Index) const; + + Standard_EXPORT virtual Standard_Boolean IsConstant() const = 0; + + Standard_EXPORT Standard_Boolean IsUClosed() const; + + Standard_EXPORT Standard_Boolean IsVClosed() const; + + //! Say if the input sahpe is a vertex. + Standard_EXPORT virtual Standard_Boolean IsVertex() const = 0; + + Standard_EXPORT virtual Handle(GeomFill_SectionLaw) ConcatenedLaw() const = 0; + + Standard_EXPORT virtual GeomAbs_Shape Continuity (const Standard_Integer Index, const Standard_Real TolAngular) const = 0; + + Standard_EXPORT virtual Standard_Real VertexTol (const Standard_Integer Index, const Standard_Real Param) const = 0; + + Standard_EXPORT virtual TopoDS_Vertex Vertex (const Standard_Integer Index, const Standard_Real Param) const = 0; + + Standard_EXPORT virtual void D0 (const Standard_Real U, TopoDS_Shape& S) = 0; + + Standard_EXPORT void Init (const TopoDS_Wire& W); + + Standard_EXPORT TopoDS_Edge CurrentEdge(); + + + + + DEFINE_STANDARD_RTTI(BRepFill_SectionLaw,MMgt_TShared) + +protected: + + + Handle(GeomFill_HArray1OfSectionLaw) myLaws; + Standard_Boolean uclosed; + Standard_Boolean vclosed; + + +private: + + + BRepTools_WireExplorer myIterator; + + +}; + + + + + + + +#endif // _BRepFill_SectionLaw_HeaderFile diff --git a/src/BRepFill/BRepFill_SectionPlacement.cdl b/src/BRepFill/BRepFill_SectionPlacement.cdl deleted file mode 100644 index a3f1e55f41..0000000000 --- a/src/BRepFill/BRepFill_SectionPlacement.cdl +++ /dev/null @@ -1,61 +0,0 @@ --- Created on: 1998-02-11 --- 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. - -private class SectionPlacement from BRepFill - - ---Purpose: Place a shape in a local axis coordinate - -uses - LocationLaw from BRepFill, - Shape from TopoDS, - Trsf from gp - -is - Create(Law : LocationLaw from BRepFill; - Section : Shape from TopoDS; - WithContact : Boolean = Standard_False; - WithCorrection : Boolean = Standard_False) - ---Purpose: Automatic placement - returns SectionPlacement from BRepFill; - - Create(Law : LocationLaw from BRepFill; - Section : Shape from TopoDS; - Vertex : Shape from TopoDS; - WithContact : Boolean = Standard_False; - WithCorrection : Boolean = Standard_False) - ---Purpose: Placement on vertex - returns SectionPlacement from BRepFill; - - Perform(me:in out; - WithContact : Boolean; - WithCorrection : Boolean; - Vertex : Shape from TopoDS) - is private; - - Transformation(me) - ---C++: return const & - returns Trsf from gp; - - AbscissaOnPath(me:in out) - returns Real; - -fields - myLaw : LocationLaw from BRepFill; - mySection : Shape from TopoDS; - myTrsf : Trsf from gp; - myParam : Real; - myIndex : Integer; -end SectionPlacement; diff --git a/src/BRepFill/BRepFill_SectionPlacement.cxx b/src/BRepFill/BRepFill_SectionPlacement.cxx index 9cc10f32ec..292d2b4f7a 100644 --- a/src/BRepFill/BRepFill_SectionPlacement.cxx +++ b/src/BRepFill/BRepFill_SectionPlacement.cxx @@ -14,35 +14,36 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include -#include -#include #include -#include #include +#include #include #include - -#include +#include +#include +#include #include -#include +#include #include -#include -#include +#include #include -#include +#include #include - +#include +#include +#include #include #include -#include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include #ifdef OCCT_DEBUG static Standard_Boolean myDebug = Standard_False; diff --git a/src/BRepFill/BRepFill_SectionPlacement.hxx b/src/BRepFill/BRepFill_SectionPlacement.hxx new file mode 100644 index 0000000000..5b1f891f02 --- /dev/null +++ b/src/BRepFill/BRepFill_SectionPlacement.hxx @@ -0,0 +1,82 @@ +// Created on: 1998-02-11 +// 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_SectionPlacement_HeaderFile +#define _BRepFill_SectionPlacement_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class BRepFill_LocationLaw; +class TopoDS_Shape; +class gp_Trsf; + + +//! Place a shape in a local axis coordinate +class BRepFill_SectionPlacement +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Automatic placement + Standard_EXPORT BRepFill_SectionPlacement(const Handle(BRepFill_LocationLaw)& Law, const TopoDS_Shape& Section, const Standard_Boolean WithContact = Standard_False, const Standard_Boolean WithCorrection = Standard_False); + + //! Placement on vertex + Standard_EXPORT BRepFill_SectionPlacement(const Handle(BRepFill_LocationLaw)& Law, const TopoDS_Shape& Section, const TopoDS_Shape& Vertex, const Standard_Boolean WithContact = Standard_False, const Standard_Boolean WithCorrection = Standard_False); + + Standard_EXPORT const gp_Trsf& Transformation() const; + + Standard_EXPORT Standard_Real AbscissaOnPath(); + + + + +protected: + + + + + +private: + + + Standard_EXPORT void Perform (const Standard_Boolean WithContact, const Standard_Boolean WithCorrection, const TopoDS_Shape& Vertex); + + + Handle(BRepFill_LocationLaw) myLaw; + TopoDS_Shape mySection; + gp_Trsf myTrsf; + Standard_Real myParam; + Standard_Integer myIndex; + + +}; + + + + + + + +#endif // _BRepFill_SectionPlacement_HeaderFile diff --git a/src/BRepFill/BRepFill_ShapeLaw.cdl b/src/BRepFill/BRepFill_ShapeLaw.cdl deleted file mode 100644 index 4d74ab69e2..0000000000 --- a/src/BRepFill/BRepFill_ShapeLaw.cdl +++ /dev/null @@ -1,96 +0,0 @@ --- Created on: 1998-08-17 --- 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. - -class ShapeLaw from BRepFill inherits SectionLaw from BRepFill - - ---Purpose: Build Section Law, with an Vertex, or an Wire - ---Level: Advanced - -uses - SectionLaw from GeomFill, - HArray1OfSectionLaw from GeomFill, - HArray1OfShape from TopTools, - Shape from GeomAbs, - Vertex from TopoDS, - Wire from TopoDS, - Edge from TopoDS, - Shape from TopoDS, - Function from Law - -is - Create (V: Vertex from TopoDS; - Build : Boolean = Standard_True ) - ---Purpose: Construct an constant Law - returns ShapeLaw from BRepFill; - - Create (W:Wire from TopoDS; - Build : Boolean = Standard_True) - ---Purpose: Construct an constant Law - returns ShapeLaw from BRepFill; - - Create (W: Wire from TopoDS; - L: Function from Law; - Build : Boolean = Standard_True) - ---Purpose: Construct an evolutive Law - returns ShapeLaw from BRepFill; - - IsVertex(me) - ---Purpose: Say if the input shape is a vertex. - returns Boolean - is redefined; - - IsConstant(me) - ---Purpose: Say if the Law is Constant. - returns Boolean - is redefined; - - ConcatenedLaw(me) - ---Purpose: Give the law build on a concaneted section - returns SectionLaw from GeomFill - is redefined; - - Continuity(me; Index : Integer; - TolAngular : Real) - returns Shape from GeomAbs - is redefined; - - VertexTol(me; Index : Integer; - Param : Real) - returns Real - is redefined; - - Vertex(me; Index : Integer; - Param : Real) - returns Vertex from TopoDS - is redefined; - - D0(me:mutable; Param : Real; - S : out Shape from TopoDS) - is redefined; - - Edge(me; Index : Integer) - ---C++: return const & - ---C++: inline - returns Edge from TopoDS; - - Init(me : mutable; B : Boolean) is private; - -fields - myShape: Shape from TopoDS; - myEdges: HArray1OfShape from TopTools; - TheLaw : Function from Law; - vertex : Boolean from Standard is protected; -end ShapeLaw; diff --git a/src/BRepFill/BRepFill_ShapeLaw.cxx b/src/BRepFill/BRepFill_ShapeLaw.cxx index a48f1784bc..ca237d152c 100644 --- a/src/BRepFill/BRepFill_ShapeLaw.cxx +++ b/src/BRepFill/BRepFill_ShapeLaw.cxx @@ -14,32 +14,34 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include #include #include +#include +#include #include -#include -#include -#include - +#include +#include #include #include #include -#include -#include +#include #include #include -#include - +#include +#include +#include +#include +#include #include -#include #include - -#include -#include - +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : Create diff --git a/src/BRepFill/BRepFill_ShapeLaw.hxx b/src/BRepFill/BRepFill_ShapeLaw.hxx new file mode 100644 index 0000000000..6db9906b60 --- /dev/null +++ b/src/BRepFill/BRepFill_ShapeLaw.hxx @@ -0,0 +1,106 @@ +// Created on: 1998-08-17 +// 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_ShapeLaw_HeaderFile +#define _BRepFill_ShapeLaw_HeaderFile + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Law_Function; +class TopoDS_Vertex; +class TopoDS_Wire; +class GeomFill_SectionLaw; +class TopoDS_Shape; +class TopoDS_Edge; + + +class BRepFill_ShapeLaw; +DEFINE_STANDARD_HANDLE(BRepFill_ShapeLaw, BRepFill_SectionLaw) + +//! Build Section Law, with an Vertex, or an Wire +class BRepFill_ShapeLaw : public BRepFill_SectionLaw +{ + +public: + + + //! Construct an constant Law + Standard_EXPORT BRepFill_ShapeLaw(const TopoDS_Vertex& V, const Standard_Boolean Build = Standard_True); + + //! Construct an constant Law + Standard_EXPORT BRepFill_ShapeLaw(const TopoDS_Wire& W, const Standard_Boolean Build = Standard_True); + + //! Construct an evolutive Law + Standard_EXPORT BRepFill_ShapeLaw(const TopoDS_Wire& W, const Handle(Law_Function)& L, const Standard_Boolean Build = Standard_True); + + //! Say if the input shape is a vertex. + Standard_EXPORT virtual Standard_Boolean IsVertex() const Standard_OVERRIDE; + + //! Say if the Law is Constant. + Standard_EXPORT virtual Standard_Boolean IsConstant() const Standard_OVERRIDE; + + //! Give the law build on a concaneted section + Standard_EXPORT virtual Handle(GeomFill_SectionLaw) ConcatenedLaw() const Standard_OVERRIDE; + + Standard_EXPORT virtual GeomAbs_Shape Continuity (const Standard_Integer Index, const Standard_Real TolAngular) const Standard_OVERRIDE; + + Standard_EXPORT virtual Standard_Real VertexTol (const Standard_Integer Index, const Standard_Real Param) const Standard_OVERRIDE; + + Standard_EXPORT virtual TopoDS_Vertex Vertex (const Standard_Integer Index, const Standard_Real Param) const Standard_OVERRIDE; + + Standard_EXPORT virtual void D0 (const Standard_Real Param, TopoDS_Shape& S) Standard_OVERRIDE; + + const TopoDS_Edge& Edge (const Standard_Integer Index) const; + + + + + DEFINE_STANDARD_RTTI(BRepFill_ShapeLaw,BRepFill_SectionLaw) + +protected: + + + Standard_Boolean vertex; + + +private: + + + Standard_EXPORT void Init (const Standard_Boolean B); + + TopoDS_Shape myShape; + Handle(TopTools_HArray1OfShape) myEdges; + Handle(Law_Function) TheLaw; + + +}; + + +#include + + + + + +#endif // _BRepFill_ShapeLaw_HeaderFile diff --git a/src/BRepFill/BRepFill_Sweep.cdl b/src/BRepFill/BRepFill_Sweep.cdl deleted file mode 100644 index 6968f12185..0000000000 --- a/src/BRepFill/BRepFill_Sweep.cdl +++ /dev/null @@ -1,204 +0,0 @@ --- Created on: 1997-11-21 --- 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. - - -class Sweep from BRepFill - - ---Purpose: Topological Sweep Algorithm - -- Computes an Sweep shell using a generating - -- wire, an SectionLaw and an LocationLaw. - ---Level: Advanced - -uses - SectionLaw from BRepFill, - LocationLaw from BRepFill, - ApproxStyle from GeomFill, - TransitionStyle from BRepFill, - HCurve from Adaptor3d, - Shape from GeomAbs, - HArray2OfShape from TopTools, - ListOfShape from TopTools, - DataMapOfShapeShape from TopTools, - MapOfShape from TopTools, - DataMapOfShapeHArray2OfShape from BRepFill, - Wire from TopoDS, - Edge from TopoDS, - Shape from TopoDS, - Trsf from gp - -raises - NotDone, - OutOfRange, - ConstructionError -is - Create(Section : SectionLaw from BRepFill; - Location : LocationLaw from BRepFill; - WithKPart: Boolean) - returns Sweep from BRepFill; - - SetBounds(me : in out; - FirstShape, LastShape : Wire from TopoDS); - - SetTolerance(me : in out; - Tol3d : Real; - BoundTol : Real = 1.0; - Tol2d : Real = 1.0e-5; - TolAngular : Real = 1.0e-2); - ---Purpose: Set Approximation Tolerance - -- Tol3d : Tolerance to surface approximation - -- Tol2d : Tolerance used to perform curve approximation - -- Normaly 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 - -- beetween tangents on the section law and - -- tangent of iso-v on approximed surface - - SetAngularControl(me: in out; - AngleMin : Real = 0.01; - AngleMax : Real = 6.0) - ---Purpose: Tolerance To controle Corner management. - -- - -- If the discontinuity is lesser than in radian The - -- Transition Performed will be alway "Modified" - -- - - -- If the discontinuity is greater than in radian The - -- Transition "Round" replace the Transition "Right" - is static; - - SetForceApproxC1(me: in out; - ForceApproxC1 : Boolean from Standard); - ---Purpose: Set the flag that indicates attempt to approximate - -- a C1-continuous surface if a swept surface proved - -- to be C0. - - - Build(me : in out; - ReversedEdges : in out MapOfShape from TopTools; - Tapes : in out DataMapOfShapeHArray2OfShape from BRepFill; - Rails : in out DataMapOfShapeHArray2OfShape from BRepFill; - Transition : TransitionStyle = BRepFill_Modified; - Continuity : Shape from GeomAbs = GeomAbs_C2; - Approx : ApproxStyle = GeomFill_Location; - Degmax : Integer = 11; - Segmax : Integer = 30); - - ---Purpose: Build the Sweeep Surface - -- Transition define Transition strategy - -- Approx define Approximation Strategy - -- - GeomFill_Section : The composed Function Location X Section - -- is directly approximed. - -- - GeomFill_Location : The location law is approximed, and the - -- SweepSurface is bulid algebric composition - -- of approximed location law and section law - -- This option is Ok, if Section.Surface() methode - -- is effective. - -- Continuity : The continuity in v waiting on the surface - -- Degmax : The maximum degree in v requiered on the surface - -- Segmax : The maximum number of span in v requiered on - -- the surface. - - CorrectApproxParameters(me: in out) - returns Boolean is private; - - BuildWire(me : in out; - Transition : TransitionStyle) - returns Boolean is private; - - BuildShell(me : in out; - Transition : TransitionStyle; - Vf, Vl : Integer; - ReversedEdges : in out MapOfShape from TopTools; - Tapes : in out DataMapOfShapeHArray2OfShape from BRepFill; - Rails : in out DataMapOfShapeHArray2OfShape from BRepFill; - ExtendFirst : Real = 0.0; - ExtendLast : Real = 0.0) - returns Boolean is private; - - IsDone(me) - ---Purpose: Say if the Shape is Build. - returns Boolean; - - Shape(me) - ---Purpose: returns the Sweeping Shape - returns Shape from TopoDS; - - ErrorOnSurface(me) - ---Purpose: Get the Approximation error. - returns Real; - - SubShape(me) - returns HArray2OfShape from TopTools; - - InterFaces(me) - returns HArray2OfShape from TopTools; - - Sections(me) - returns HArray2OfShape from TopTools; - - PerformCorner(me : in out; Index : Integer; - Transition : TransitionStyle; - Bounds : HArray2OfShape from TopTools) - is private; - - EvalExtrapol(me; Index : Integer; - Transition : TransitionStyle) - returns Real - is private; - - MergeVertex(me; - V1 : Shape from TopoDS; - V2 : in out Shape from TopoDS) - returns Boolean is private; - - UpdateVertex(me; Ipath, Isec : Integer; - Error, Param : Real; - V : in out Shape from TopoDS) - is private; - - RebuildTopOrBottomEdge(me; aNewEdge: Edge from TopoDS; - anEdge: in out Edge from TopoDS; - ReversedEdges: in out MapOfShape from TopTools) - is private; - -fields - isDone : Boolean; - KPart : Boolean; - myTol3d : Real; - myBoundTol : Real; - myTol2d : Real; - myTolAngular : Real; - myAngMin : Real; - myAngMax : Real; - myApproxStyle : ApproxStyle from GeomFill; - myContinuity : Shape from GeomAbs; - myDegmax : Integer; - mySegmax : Integer; - myForceApproxC1 : Boolean; - myShape : Shape from TopoDS; - myLoc : LocationLaw from BRepFill; - mySec : SectionLaw from BRepFill; - myUEdges : HArray2OfShape from TopTools; - myVEdges : HArray2OfShape from TopTools; - myVEdgesModified : DataMapOfShapeShape from TopTools; - myFaces : HArray2OfShape from TopTools; - myAuxShape : ListOfShape from TopTools; - - Error : Real; - FirstShape, - LastShape : Wire from TopoDS; -end Sweep; diff --git a/src/BRepFill/BRepFill_Sweep.cxx b/src/BRepFill/BRepFill_Sweep.cxx index 51b80a4da7..34607d618d 100644 --- a/src/BRepFill/BRepFill_Sweep.cxx +++ b/src/BRepFill/BRepFill_Sweep.cxx @@ -14,106 +14,96 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include - -#include -//#include -#include - -#include -#include -#include - -// modified by NIZHNY-MKK Wed Oct 22 12:25:45 2003 -#include - -//#include -//#include -//#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include #include -#include -#include -#include #include #include -#include - +#include #include -#include +#include +#include #include #include +#include #include -#include -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include #include #include -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include #include -#include +#include +#include #include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - +#include #include #include -#include +#include #include -#include -#include +#include #include -#include -#include - -#include -#include -#include - -#include -#include -#include +#include +#include +#include +#include +//#include +// modified by NIZHNY-MKK Wed Oct 22 12:25:45 2003 +//#include +//#include +//#include //OCC500(apo) -#include - #ifdef DRAW #include #include diff --git a/src/BRepFill/BRepFill_Sweep.hxx b/src/BRepFill/BRepFill_Sweep.hxx new file mode 100644 index 0000000000..618de7cb01 --- /dev/null +++ b/src/BRepFill/BRepFill_Sweep.hxx @@ -0,0 +1,177 @@ +// Created on: 1997-11-21 +// 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 _BRepFill_Sweep_HeaderFile +#define _BRepFill_Sweep_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class BRepFill_LocationLaw; +class BRepFill_SectionLaw; +class StdFail_NotDone; +class Standard_OutOfRange; +class Standard_ConstructionError; +class TopoDS_Wire; +class TopoDS_Shape; +class TopoDS_Edge; + + +//! Topological Sweep Algorithm +//! Computes an Sweep shell using a generating +//! wire, an SectionLaw and an LocationLaw. +class BRepFill_Sweep +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepFill_Sweep(const Handle(BRepFill_SectionLaw)& Section, const Handle(BRepFill_LocationLaw)& Location, const Standard_Boolean WithKPart); + + Standard_EXPORT void SetBounds (const TopoDS_Wire& FirstShape, const TopoDS_Wire& LastShape); + + //! Set Approximation Tolerance + //! Tol3d : Tolerance to surface approximation + //! Tol2d : Tolerance used to perform curve approximation + //! Normaly 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 + //! beetween tangents on the section law and + //! tangent of iso-v on approximed surface + Standard_EXPORT void SetTolerance (const Standard_Real Tol3d, const Standard_Real BoundTol = 1.0, const Standard_Real Tol2d = 1.0e-5, const Standard_Real TolAngular = 1.0e-2); + + //! Tolerance To controle Corner management. + //! + //! If the discontinuity is lesser than in radian The + //! Transition Performed will be alway "Modified" + Standard_EXPORT void SetAngularControl (const Standard_Real AngleMin = 0.01, const Standard_Real AngleMax = 6.0); + + //! Set the flag that indicates attempt to approximate + //! a C1-continuous surface if a swept surface proved + //! to be C0. + Standard_EXPORT void SetForceApproxC1 (const Standard_Boolean ForceApproxC1); + + //! Build the Sweeep Surface + //! Transition define Transition strategy + //! Approx define Approximation Strategy + //! - GeomFill_Section : The composed Function Location X Section + //! is directly approximed. + //! - GeomFill_Location : The location law is approximed, and the + //! SweepSurface is bulid algebric composition + //! of approximed location law and section law + //! This option is Ok, if Section.Surface() methode + //! is effective. + //! Continuity : The continuity in v waiting on the surface + //! Degmax : The maximum degree in v requiered on the surface + //! Segmax : The maximum number of span in v requiered on + //! the surface. + Standard_EXPORT void Build (TopTools_MapOfShape& ReversedEdges, BRepFill_DataMapOfShapeHArray2OfShape& Tapes, BRepFill_DataMapOfShapeHArray2OfShape& Rails, const BRepFill_TransitionStyle Transition = BRepFill_Modified, const GeomAbs_Shape Continuity = GeomAbs_C2, const GeomFill_ApproxStyle Approx = GeomFill_Location, const Standard_Integer Degmax = 11, const Standard_Integer Segmax = 30); + + //! Say if the Shape is Build. + Standard_EXPORT Standard_Boolean IsDone() const; + + //! returns the Sweeping Shape + Standard_EXPORT TopoDS_Shape Shape() const; + + //! Get the Approximation error. + Standard_EXPORT Standard_Real ErrorOnSurface() const; + + Standard_EXPORT Handle(TopTools_HArray2OfShape) SubShape() const; + + Standard_EXPORT Handle(TopTools_HArray2OfShape) InterFaces() const; + + Standard_EXPORT Handle(TopTools_HArray2OfShape) Sections() const; + + + + +protected: + + + + + +private: + + + Standard_EXPORT Standard_Boolean CorrectApproxParameters(); + + Standard_EXPORT Standard_Boolean BuildWire (const BRepFill_TransitionStyle Transition); + + Standard_EXPORT Standard_Boolean BuildShell (const BRepFill_TransitionStyle Transition, const Standard_Integer Vf, const Standard_Integer Vl, TopTools_MapOfShape& ReversedEdges, BRepFill_DataMapOfShapeHArray2OfShape& Tapes, BRepFill_DataMapOfShapeHArray2OfShape& Rails, const Standard_Real ExtendFirst = 0.0, const Standard_Real ExtendLast = 0.0); + + Standard_EXPORT void PerformCorner (const Standard_Integer Index, const BRepFill_TransitionStyle Transition, const Handle(TopTools_HArray2OfShape)& Bounds); + + Standard_EXPORT Standard_Real EvalExtrapol (const Standard_Integer Index, const BRepFill_TransitionStyle Transition) const; + + Standard_EXPORT Standard_Boolean MergeVertex (const TopoDS_Shape& V1, TopoDS_Shape& V2) const; + + Standard_EXPORT void UpdateVertex (const Standard_Integer Ipath, const Standard_Integer Isec, const Standard_Real Error, const Standard_Real Param, TopoDS_Shape& V) const; + + Standard_EXPORT void RebuildTopOrBottomEdge (const TopoDS_Edge& aNewEdge, TopoDS_Edge& anEdge, TopTools_MapOfShape& ReversedEdges) const; + + + Standard_Boolean isDone; + Standard_Boolean KPart; + Standard_Real myTol3d; + Standard_Real myBoundTol; + Standard_Real myTol2d; + Standard_Real myTolAngular; + Standard_Real myAngMin; + Standard_Real myAngMax; + GeomFill_ApproxStyle myApproxStyle; + GeomAbs_Shape myContinuity; + Standard_Integer myDegmax; + Standard_Integer mySegmax; + Standard_Boolean myForceApproxC1; + TopoDS_Shape myShape; + Handle(BRepFill_LocationLaw) myLoc; + Handle(BRepFill_SectionLaw) mySec; + Handle(TopTools_HArray2OfShape) myUEdges; + Handle(TopTools_HArray2OfShape) myVEdges; + TopTools_DataMapOfShapeShape myVEdgesModified; + Handle(TopTools_HArray2OfShape) myFaces; + TopTools_ListOfShape myAuxShape; + Standard_Real Error; + TopoDS_Wire FirstShape; + TopoDS_Wire LastShape; + + +}; + + + + + + + +#endif // _BRepFill_Sweep_HeaderFile diff --git a/src/BRepFill/BRepFill_TransitionStyle.hxx b/src/BRepFill/BRepFill_TransitionStyle.hxx new file mode 100644 index 0000000000..09c7e18f9b --- /dev/null +++ b/src/BRepFill/BRepFill_TransitionStyle.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_TransitionStyle_HeaderFile +#define _BRepFill_TransitionStyle_HeaderFile + + +enum BRepFill_TransitionStyle +{ +BRepFill_Modified, +BRepFill_Right, +BRepFill_Round +}; + +#endif // _BRepFill_TransitionStyle_HeaderFile diff --git a/src/BRepFill/BRepFill_TrimEdgeTool.cdl b/src/BRepFill/BRepFill_TrimEdgeTool.cdl deleted file mode 100644 index 0e8d174afd..0000000000 --- a/src/BRepFill/BRepFill_TrimEdgeTool.cdl +++ /dev/null @@ -1,70 +0,0 @@ --- Created on: 1995-04-24 --- 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. - -private class TrimEdgeTool from BRepFill - - ---Purpose: Geometric Tool using to construct Offset Wires. - -uses - - Bisec from Bisector, - Edge from TopoDS, - Pnt2d from gp, - Curve from Geom2d, - Geometry from Geom2d, - SequenceOfPnt from TColgp, - Curve from Geom2dAdaptor, - JoinType from GeomAbs - -is - Create - returns TrimEdgeTool from BRepFill; - - Create( Bisec : Bisec from Bisector; - S1, S2 : Geometry from Geom2d; - Offset : Real from Standard) - returns TrimEdgeTool from BRepFill; - - IntersectWith( me : in out; - Edge1 , Edge2 : Edge from TopoDS; - theJoinType : JoinType from GeomAbs; - Params : in out SequenceOfPnt from TColgp) - is static; - - AddOrConfuse ( me ; - Start : Boolean from Standard; - Edge1 , Edge2 : Edge from TopoDS; - Params : in out SequenceOfPnt from TColgp) - is static; - - - IsInside( me; P : Pnt2d from gp) - returns Boolean from Standard - is static; - - - -fields - isPoint1 : Boolean from Standard; - isPoint2 : Boolean from Standard; - myP1 : Pnt2d from gp; - myP2 : Pnt2d from gp; - myC1 : Curve from Geom2d; - myC2 : Curve from Geom2d; - myOffset : Real from Standard; - myBisec : Bisec from Bisector; - myBis : Curve from Geom2dAdaptor; -end TrimEdgeTool; diff --git a/src/BRepFill/BRepFill_TrimEdgeTool.cxx b/src/BRepFill/BRepFill_TrimEdgeTool.cxx index 24dbb7e22a..a0a2e88fd5 100644 --- a/src/BRepFill/BRepFill_TrimEdgeTool.cxx +++ b/src/BRepFill/BRepFill_TrimEdgeTool.cxx @@ -14,25 +14,31 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include + +#include #include +#include +#include +#include +#include #include +#include #include -#include -#include -#include -#include #include #include +#include +#include +#include #include -#include -#include -#include +#include #include #include -#include +#include #include +#include +#include +#include + #ifdef OCCT_DEBUG //#define DRAW #ifdef DRAW diff --git a/src/BRepFill/BRepFill_TrimEdgeTool.hxx b/src/BRepFill/BRepFill_TrimEdgeTool.hxx new file mode 100644 index 0000000000..d3e2e198df --- /dev/null +++ b/src/BRepFill/BRepFill_TrimEdgeTool.hxx @@ -0,0 +1,88 @@ +// Created on: 1995-04-24 +// 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_TrimEdgeTool_HeaderFile +#define _BRepFill_TrimEdgeTool_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class Geom2d_Curve; +class Bisector_Bisec; +class Geom2d_Geometry; +class TopoDS_Edge; +class gp_Pnt2d; + + +//! Geometric Tool using to construct Offset Wires. +class BRepFill_TrimEdgeTool +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepFill_TrimEdgeTool(); + + Standard_EXPORT BRepFill_TrimEdgeTool(const Bisector_Bisec& Bisec, const Handle(Geom2d_Geometry)& S1, const Handle(Geom2d_Geometry)& S2, const Standard_Real Offset); + + Standard_EXPORT void IntersectWith (const TopoDS_Edge& Edge1, const TopoDS_Edge& Edge2, const GeomAbs_JoinType theJoinType, TColgp_SequenceOfPnt& Params); + + Standard_EXPORT void AddOrConfuse (const Standard_Boolean Start, const TopoDS_Edge& Edge1, const TopoDS_Edge& Edge2, TColgp_SequenceOfPnt& Params) const; + + Standard_EXPORT Standard_Boolean IsInside (const gp_Pnt2d& P) const; + + + + +protected: + + + + + +private: + + + + Standard_Boolean isPoint1; + Standard_Boolean isPoint2; + gp_Pnt2d myP1; + gp_Pnt2d myP2; + Handle(Geom2d_Curve) myC1; + Handle(Geom2d_Curve) myC2; + Standard_Real myOffset; + Bisector_Bisec myBisec; + Geom2dAdaptor_Curve myBis; + + +}; + + + + + + + +#endif // _BRepFill_TrimEdgeTool_HeaderFile diff --git a/src/BRepFill/BRepFill_TrimShellCorner.cdl b/src/BRepFill/BRepFill_TrimShellCorner.cdl deleted file mode 100644 index 8f5f97089c..0000000000 --- a/src/BRepFill/BRepFill_TrimShellCorner.cdl +++ /dev/null @@ -1,67 +0,0 @@ --- 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. - -class TrimShellCorner from BRepFill - -uses - Ax2 from gp, - Shape from TopoDS, - Wire from TopoDS, - Face from TopoDS, - ListOfShape from TopTools, - HArray2OfShape from TopTools, - DataMapOfShapeListOfShape from TopTools - -is - Create(theFaces : HArray2OfShape from TopTools; - theAxeOfBisPlane : Ax2 from gp; - theSecPlane : Face from TopoDS) - returns TrimShellCorner from BRepFill; - - Create(theFaces : HArray2OfShape from TopTools; - theAxeOfBisPlane : Ax2 from gp; - theSpine : Wire from TopoDS; - theSecPlane : Face from TopoDS) - returns TrimShellCorner from BRepFill; - - SetSpine(me: in out; theSpine: Wire from TopoDS); - - AddBounds(me : in out; Bounds : HArray2OfShape from TopTools); - - AddUEdges(me : in out; theUEdges : HArray2OfShape from TopTools); - - Perform(me : in out); - - IsDone(me) returns Boolean from Standard; - - HasSection(me) returns Boolean from Standard; - - Modified(me:in out; S : Shape from TopoDS; - theModified: out ListOfShape from TopTools); - -fields - myAxeOfBisPlane : Ax2 from gp; - myShape1 : Shape from TopoDS; - myShape2 : Shape from TopoDS; - mySpine : Wire from TopoDS; - mySecPln : Face from TopoDS; - myBounds : HArray2OfShape from TopTools; - myUEdges : HArray2OfShape from TopTools; - myFaces : HArray2OfShape from TopTools; - myDone : Boolean from Standard; - myHasSection: Boolean from Standard; - myHistMap: DataMapOfShapeListOfShape from TopTools; - -end TrimShellCorner from BRepFill; diff --git a/src/BRepFill/BRepFill_TrimShellCorner.cxx b/src/BRepFill/BRepFill_TrimShellCorner.cxx index 716ae2a7bb..bf61029b33 100644 --- a/src/BRepFill/BRepFill_TrimShellCorner.cxx +++ b/src/BRepFill/BRepFill_TrimShellCorner.cxx @@ -13,58 +13,56 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include +#include +#include #include #include +#include +#include #include +#include #include -#include -#include -#include - +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include - -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include #include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include static Standard_Boolean FindCommonVertex(const BOPDS_PDS& theDS, const Standard_Integer theEIndex1, diff --git a/src/BRepFill/BRepFill_TrimShellCorner.hxx b/src/BRepFill/BRepFill_TrimShellCorner.hxx new file mode 100644 index 0000000000..2298d7c6b4 --- /dev/null +++ b/src/BRepFill/BRepFill_TrimShellCorner.hxx @@ -0,0 +1,97 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class gp_Ax2; +class TopoDS_Face; +class TopoDS_Wire; +class TopoDS_Shape; + + + +class BRepFill_TrimShellCorner +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepFill_TrimShellCorner(const Handle(TopTools_HArray2OfShape)& theFaces, const gp_Ax2& theAxeOfBisPlane, const TopoDS_Face& theSecPlane); + + Standard_EXPORT BRepFill_TrimShellCorner(const Handle(TopTools_HArray2OfShape)& theFaces, const gp_Ax2& theAxeOfBisPlane, const TopoDS_Wire& theSpine, const TopoDS_Face& theSecPlane); + + Standard_EXPORT void SetSpine (const TopoDS_Wire& theSpine); + + Standard_EXPORT void AddBounds (const Handle(TopTools_HArray2OfShape)& Bounds); + + Standard_EXPORT void AddUEdges (const Handle(TopTools_HArray2OfShape)& theUEdges); + + 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: + + + + gp_Ax2 myAxeOfBisPlane; + TopoDS_Shape myShape1; + TopoDS_Shape myShape2; + TopoDS_Wire mySpine; + TopoDS_Face mySecPln; + Handle(TopTools_HArray2OfShape) myBounds; + Handle(TopTools_HArray2OfShape) myUEdges; + Handle(TopTools_HArray2OfShape) myFaces; + Standard_Boolean myDone; + Standard_Boolean myHasSection; + TopTools_DataMapOfShapeListOfShape myHistMap; + + +}; + + + + + + + +#endif // _BRepFill_TrimShellCorner_HeaderFile diff --git a/src/BRepFill/BRepFill_TrimSurfaceTool.cdl b/src/BRepFill/BRepFill_TrimSurfaceTool.cdl deleted file mode 100644 index 2695fa3b6d..0000000000 --- a/src/BRepFill/BRepFill_TrimSurfaceTool.cdl +++ /dev/null @@ -1,93 +0,0 @@ --- 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. - -private class TrimSurfaceTool from BRepFill - - ---Purpose: Compute the Pcurves and the 3d curves resulting - -- of the trimming of a face by an extruded surface. - -uses - - Curve from Geom2d, - Curve from Geom, - Pnt2d from gp, - Face from TopoDS, - Edge from TopoDS, - SequenceOfPnt from TColgp, - Shape from GeomAbs - -raises - NoSuchObject from Standard - -is - - Create(Bis : Curve from Geom2d; - Face1 : Face from TopoDS; - Face2 : Face from TopoDS; - Edge1 : Edge from TopoDS; - Edge2 : Edge from TopoDS; - Inv1 : Boolean from Standard; - Inv2 : Boolean from Standard) - returns TrimSurfaceTool from BRepFill; - - - IntersectWith(me; EdgeOnF1 : in Edge from TopoDS; - EdgeOnF2 : in Edge from TopoDS; - Points : in out SequenceOfPnt from TColgp ) - ---Purpose: 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 - NoSuchObject from Standard - ---Purpose: raises if is not a edge of Face1 or Face2. - is static; - - - IsOnFace(me; Point : Pnt2d from gp) - returns Boolean from Standard - ---Purpose: returns True if the Line (P, DZ) intersect the Faces - is static; - - ProjOn(me; Point : Pnt2d from gp; - Edge : Edge from TopoDS) - returns Real from Standard - ---Purpose: returns the parameter of the point on the - -- Edge , assuming that the point is on the edge. - is static; - - - Project(me; - U1, U2 : Real from Standard; - Curve : out Curve from Geom; - PCurve1, PCurve2 : out Curve from Geom2d; - myCont : out Shape from GeomAbs) - ---Purpose: - is static; - -fields - - myFace1 : Face from TopoDS; - myFace2 : Face from TopoDS; - myEdge1 : Edge from TopoDS; - myEdge2 : Edge from TopoDS; - myInv1 : Boolean from Standard; - myInv2 : Boolean from Standard; - myBis : Curve from Geom2d; - -end TrimSurfaceTool; diff --git a/src/BRepFill/BRepFill_TrimSurfaceTool.cxx b/src/BRepFill/BRepFill_TrimSurfaceTool.cxx index 911a31d133..583e6c7d76 100644 --- a/src/BRepFill/BRepFill_TrimSurfaceTool.cxx +++ b/src/BRepFill/BRepFill_TrimSurfaceTool.cxx @@ -14,53 +14,56 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include - -#include #include #include +#include +#include #include #include +#include #include -#include -#include -#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include #include +#include #include -#include -#include +#include +#include +#include +#include +#include #include #include -#include #include +#include +#include #include +#include +#include +#include +#include +#include +#include #include #include +#include #include -#include +#include #include +#include #include -#include #include +#include #include #include +#include #include +#include +#include #include -#include +#include #ifdef DRAW #include #include diff --git a/src/BRepFill/BRepFill_TrimSurfaceTool.hxx b/src/BRepFill/BRepFill_TrimSurfaceTool.hxx new file mode 100644 index 0000000000..aa96957629 --- /dev/null +++ b/src/BRepFill/BRepFill_TrimSurfaceTool.hxx @@ -0,0 +1,97 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +class Geom2d_Curve; +class Standard_NoSuchObject; +class TopoDS_Face; +class TopoDS_Edge; +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/src/BRepFill/BRepFill_TypeOfContact.hxx b/src/BRepFill/BRepFill_TypeOfContact.hxx new file mode 100644 index 0000000000..ad8fdfda6d --- /dev/null +++ b/src/BRepFill/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/src/BRepFill/FILES b/src/BRepFill/FILES index 29987e9925..ebba998dd6 100644 --- a/src/BRepFill/FILES +++ b/src/BRepFill/FILES @@ -1,22 +1,85 @@ -BRepFill_MultiLine.hxx -BRepFill_MultiLine.cxx -BRepFill_ListOfOffsetWire.hxx -BRepFill_ListIteratorOfListOfOffsetWire.hxx -BRepFill_SequenceOfSection.hxx -BRepFill_DataMapOfNodeDataMapOfShapeShape.hxx +BRepFill.cxx +BRepFill.hxx +BRepFill_ACRLaw.cxx +BRepFill_ACRLaw.hxx +BRepFill_ApproxSeewing.cxx +BRepFill_ApproxSeewing.hxx +BRepFill_CompatibleWires.cxx +BRepFill_CompatibleWires.hxx +BRepFill_ComputeCLine.hxx +BRepFill_ComputeCLine_0.cxx +BRepFill_CurveConstraint.cxx +BRepFill_CurveConstraint.hxx BRepFill_DataMapIteratorOfDataMapOfNodeDataMapOfShapeShape.hxx -BRepFill_DataMapOfNodeShape.hxx BRepFill_DataMapIteratorOfDataMapOfNodeShape.hxx -BRepFill_DataMapOfShapeDataMapOfShapeListOfShape.hxx +BRepFill_DataMapIteratorOfDataMapOfOrientedShapeListOfShape.hxx BRepFill_DataMapIteratorOfDataMapOfShapeDataMapOfShapeListOfShape.hxx -BRepFill_DataMapOfShapeSequenceOfReal.hxx -BRepFill_DataMapIteratorOfDataMapOfShapeSequenceOfReal.hxx -BRepFill_DataMapOfShapeSequenceOfPnt.hxx +BRepFill_DataMapIteratorOfDataMapOfShapeHArray2OfShape.hxx BRepFill_DataMapIteratorOfDataMapOfShapeSequenceOfPnt.hxx +BRepFill_DataMapIteratorOfDataMapOfShapeSequenceOfReal.hxx +BRepFill_DataMapOfNodeDataMapOfShapeShape.hxx +BRepFill_DataMapOfNodeShape.hxx BRepFill_DataMapOfOrientedShapeListOfShape.hxx -BRepFill_DataMapIteratorOfDataMapOfOrientedShapeListOfShape.hxx -BRepFill_IndexedDataMapOfOrientedShapeListOfShape.hxx +BRepFill_DataMapOfShapeDataMapOfShapeListOfShape.hxx BRepFill_DataMapOfShapeHArray2OfShape.hxx -BRepFill_DataMapIteratorOfDataMapOfShapeHArray2OfShape.hxx -BRepFill_SequenceOfFaceAndOrder.hxx +BRepFill_DataMapOfShapeSequenceOfPnt.hxx +BRepFill_DataMapOfShapeSequenceOfReal.hxx +BRepFill_Draft.cxx +BRepFill_Draft.hxx +BRepFill_DraftLaw.cxx +BRepFill_DraftLaw.hxx +BRepFill_Edge3DLaw.cxx +BRepFill_Edge3DLaw.hxx +BRepFill_EdgeFaceAndOrder.cxx +BRepFill_EdgeFaceAndOrder.hxx +BRepFill_EdgeOnSurfLaw.cxx +BRepFill_EdgeOnSurfLaw.hxx +BRepFill_Evolved.cxx +BRepFill_Evolved.hxx +BRepFill_FaceAndOrder.cxx +BRepFill_FaceAndOrder.hxx +BRepFill_Filling.cxx +BRepFill_Filling.hxx +BRepFill_Generator.cxx +BRepFill_Generator.hxx +BRepFill_Generator.lxx +BRepFill_IndexedDataMapOfOrientedShapeListOfShape.hxx +BRepFill_ListIteratorOfListOfOffsetWire.hxx +BRepFill_ListOfOffsetWire.hxx +BRepFill_LocationLaw.cxx +BRepFill_LocationLaw.hxx +BRepFill_MultiLine.cxx +BRepFill_MultiLine.hxx +BRepFill_NSections.cxx +BRepFill_NSections.hxx +BRepFill_OffsetAncestors.cxx +BRepFill_OffsetAncestors.hxx +BRepFill_OffsetWire.cxx +BRepFill_OffsetWire.hxx +BRepFill_Pipe.cxx +BRepFill_Pipe.hxx +BRepFill_PipeShell.cxx +BRepFill_PipeShell.hxx +BRepFill_Section.cxx +BRepFill_Section.hxx +BRepFill_Section.lxx +BRepFill_SectionLaw.cxx +BRepFill_SectionLaw.hxx +BRepFill_SectionPlacement.cxx +BRepFill_SectionPlacement.hxx BRepFill_SequenceOfEdgeFaceAndOrder.hxx +BRepFill_SequenceOfFaceAndOrder.hxx +BRepFill_SequenceOfSection.hxx +BRepFill_ShapeLaw.cxx +BRepFill_ShapeLaw.hxx +BRepFill_ShapeLaw.lxx +BRepFill_Sweep.cxx +BRepFill_Sweep.hxx +BRepFill_TransitionStyle.hxx +BRepFill_TrimEdgeTool.cxx +BRepFill_TrimEdgeTool.hxx +BRepFill_TrimShellCorner.cxx +BRepFill_TrimShellCorner.hxx +BRepFill_TrimSurfaceTool.cxx +BRepFill_TrimSurfaceTool.hxx +BRepFill_TypeOfContact.hxx diff --git a/src/BRepFilletAPI/BRepFilletAPI.cdl b/src/BRepFilletAPI/BRepFilletAPI.cdl deleted file mode 100644 index ba33f0fa23..0000000000 --- a/src/BRepFilletAPI/BRepFilletAPI.cdl +++ /dev/null @@ -1,45 +0,0 @@ --- Created on: 1999-10-11 --- Created by: Atelier CAS2000 --- Copyright (c) 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. - -package BRepFilletAPI - -uses - TColgp, - GeomAbs, - Geom, - TopoDS, - TopTools, - BRepBuilderAPI, - ChFiDS, - ChFi3d, - ChFi2d, - TopOpeBRepBuild, - Law - -is - - -- - -- Local Operations - -- - deferred class LocalOperation ; --- inherits MakeShape from BRepBuilderAPI - - class MakeFillet ; --- inherits LocalOperation from BRepFilletAPI - - class MakeChamfer ; --- inherits LocalOperation from BRepFilletAPI - - class MakeFillet2d ; --- inherits inherits MakeShape from BRepBuilderAPI - -end; diff --git a/src/BRepFilletAPI/BRepFilletAPI_LocalOperation.cdl b/src/BRepFilletAPI/BRepFilletAPI_LocalOperation.cdl deleted file mode 100644 index 7a6248f0bb..0000000000 --- a/src/BRepFilletAPI/BRepFilletAPI_LocalOperation.cdl +++ /dev/null @@ -1,143 +0,0 @@ --- Created on: 1998-01-29 --- Created by: Laurent BOURESCHE --- 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. - -deferred class LocalOperation from BRepFilletAPI inherits MakeShape from BRepBuilderAPI - - ---Purpose: Construction of fillets on the edges of a Shell. - -uses - - Shape from TopoDS, - Edge from TopoDS, - Vertex from TopoDS, - ListOfShape from TopTools, - SecHArray1 from ChFiDS - -is - - ------------------------------------------------------------------ - --- Add d contour - ------------------------------------------------------------------ - - Add(me : in out; E : Edge from TopoDS) - ---Purpose: Adds a contour in the builder (builds a - -- contour of tangent edges). - ---Level: Public - is deferred; - - ResetContour(me : in out; - IC : Integer from Standard) - ---Purpose: Reset the contour of index IC, there is nomore - -- information in the contour. - ---Level: Public - is deferred; - - NbContours(me) - ---Purpose: Number of contours. - ---Level: Advanced - returns Integer from Standard is deferred; - - Contour(me; E : Edge from TopoDS) - ---Purpose: Returns the index of the contour containing the edge - -- E, returns 0 if E doesn't belong to any contour. - ---Level: Public - returns Integer from Standard is deferred; - - NbEdges(me; I : Integer from Standard) - ---Purpose: Number of Edges in the contour I. - -- - ---Level: Advanced - returns Integer from Standard - is deferred; - - Edge(me; I,J : Integer from Standard) - ---Purpose: Returns the Edge J in the contour I. - -- - ---C++: return const & - ---Level: Advanced - returns Edge from TopoDS - is deferred; - - Remove(me : in out; E : Edge from TopoDS) - ---Purpose: remove the contour containing the Edge E. - ---Level: Advanced - is deferred; - - Length(me; IC : Integer from Standard) returns Real from Standard - ---Purpose: returns the length the contour of index IC. - is deferred; - - FirstVertex(me; IC : Integer from Standard) returns Vertex from TopoDS - ---Purpose: Returns the first Vertex of the contour of index IC. - ---Level: Advanced - is deferred; - - LastVertex(me; IC : Integer from Standard) returns Vertex from TopoDS - ---Purpose: Returns the last Vertex of the contour of index IC. - ---Level: Advanced - is deferred; - - Abscissa(me; - IC : Integer from Standard; - V : Vertex from TopoDS) - returns Real from Standard - ---Purpose: returns the abscissa of the vertex V on - -- the contour of index IC. - is deferred; - - RelativeAbscissa(me; - IC : Integer from Standard; - V : Vertex from TopoDS) - returns Real from Standard - ---Purpose: returns the relative abscissa([0.,1.]) of the - -- vertex V on the contour of index IC. - is deferred; - - ClosedAndTangent(me; IC : Integer from Standard) - returns Boolean from Standard - ---Purpose: returns true if the contour of index IC is closed - -- an tangent. - is deferred; - - Closed(me; IC : Integer from Standard) - returns Boolean from Standard - ---Purpose: returns true if the contour of index IC is closed - is deferred; - - Reset(me : in out) - ---Purpose: Reset all the fields updated by Build operation and - -- leave the algorithm in the same state than before - -- build call. It allows contours and radius - -- modifications to build the result another time. - ---Level: Advanced - is deferred; - - ------------------------------- - ---Methods for quick simulation - ------------------------------- - - Simulate(me : in out; IC : Integer from Standard) - is deferred; - - NbSurf(me; IC : Integer from Standard) - returns Integer from Standard - is deferred; - - Sect(me; IC, IS : Integer from Standard) - returns SecHArray1 from ChFiDS - is deferred; - -end LocalOperation; diff --git a/src/BRepFilletAPI/BRepFilletAPI_LocalOperation.cxx b/src/BRepFilletAPI/BRepFilletAPI_LocalOperation.cxx index 649b14bf30..cb7211a37b 100644 --- a/src/BRepFilletAPI/BRepFilletAPI_LocalOperation.cxx +++ b/src/BRepFilletAPI/BRepFilletAPI_LocalOperation.cxx @@ -14,4 +14,7 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include diff --git a/src/BRepFilletAPI/BRepFilletAPI_LocalOperation.hxx b/src/BRepFilletAPI/BRepFilletAPI_LocalOperation.hxx new file mode 100644 index 0000000000..b8a3da7d8d --- /dev/null +++ b/src/BRepFilletAPI/BRepFilletAPI_LocalOperation.hxx @@ -0,0 +1,124 @@ +// Created on: 1998-01-29 +// Created by: Laurent BOURESCHE +// 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 _BRepFilletAPI_LocalOperation_HeaderFile +#define _BRepFilletAPI_LocalOperation_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class TopoDS_Edge; +class TopoDS_Vertex; + + +//! Construction of fillets on the edges of a Shell. +class BRepFilletAPI_LocalOperation : public BRepBuilderAPI_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Adds a contour in the builder (builds a + //! contour of tangent edges). + Standard_EXPORT virtual void Add (const TopoDS_Edge& E) = 0; + + //! Reset the contour of index IC, there is nomore + //! information in the contour. + Standard_EXPORT virtual void ResetContour (const Standard_Integer IC) = 0; + + //! Number of contours. + Standard_EXPORT virtual Standard_Integer NbContours() const = 0; + + //! Returns the index of the contour containing the edge + //! E, returns 0 if E doesn't belong to any contour. + Standard_EXPORT virtual Standard_Integer Contour (const TopoDS_Edge& E) const = 0; + + //! Number of Edges in the contour I. + Standard_EXPORT virtual Standard_Integer NbEdges (const Standard_Integer I) const = 0; + + //! Returns the Edge J in the contour I. + Standard_EXPORT virtual const TopoDS_Edge& Edge (const Standard_Integer I, const Standard_Integer J) const = 0; + + //! remove the contour containing the Edge E. + Standard_EXPORT virtual void Remove (const TopoDS_Edge& E) = 0; + + //! returns the length the contour of index IC. + Standard_EXPORT virtual Standard_Real Length (const Standard_Integer IC) const = 0; + + //! Returns the first Vertex of the contour of index IC. + Standard_EXPORT virtual TopoDS_Vertex FirstVertex (const Standard_Integer IC) const = 0; + + //! Returns the last Vertex of the contour of index IC. + Standard_EXPORT virtual TopoDS_Vertex LastVertex (const Standard_Integer IC) const = 0; + + //! returns the abscissa of the vertex V on + //! the contour of index IC. + Standard_EXPORT virtual Standard_Real Abscissa (const Standard_Integer IC, const TopoDS_Vertex& V) const = 0; + + //! returns the relative abscissa([0.,1.]) of the + //! vertex V on the contour of index IC. + Standard_EXPORT virtual Standard_Real RelativeAbscissa (const Standard_Integer IC, const TopoDS_Vertex& V) const = 0; + + //! returns true if the contour of index IC is closed + //! an tangent. + Standard_EXPORT virtual Standard_Boolean ClosedAndTangent (const Standard_Integer IC) const = 0; + + //! returns true if the contour of index IC is closed + Standard_EXPORT virtual Standard_Boolean Closed (const Standard_Integer IC) const = 0; + + //! Reset all the fields updated by Build operation and + //! leave the algorithm in the same state than before + //! build call. It allows contours and radius + //! modifications to build the result another time. + Standard_EXPORT virtual void Reset() = 0; + + Standard_EXPORT virtual void Simulate (const Standard_Integer IC) = 0; + + Standard_EXPORT virtual Standard_Integer NbSurf (const Standard_Integer IC) const = 0; + + Standard_EXPORT virtual Handle(ChFiDS_SecHArray1) Sect (const Standard_Integer IC, const Standard_Integer IS) const = 0; + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepFilletAPI_LocalOperation_HeaderFile diff --git a/src/BRepFilletAPI/BRepFilletAPI_MakeChamfer.cdl b/src/BRepFilletAPI/BRepFilletAPI_MakeChamfer.cdl deleted file mode 100644 index dc57b7a3f6..0000000000 --- a/src/BRepFilletAPI/BRepFilletAPI_MakeChamfer.cdl +++ /dev/null @@ -1,397 +0,0 @@ --- Created on: 1995-06-22 --- Created by: Flore Lantheaume --- 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. - -class MakeChamfer from BRepFilletAPI inherits LocalOperation from BRepFilletAPI - - ---Purpose: Describes functions to build chamfers on edges of a shell or solid. - -- Chamfered Edge of a Shell or Solid - -- A MakeChamfer object provides a framework for: - -- - initializing the construction algorithm with a given shape, - -- - acquiring the data characterizing the chamfers, - -- - building the chamfers and constructing the resulting shape, and - -- - consulting the result. - -uses - - Vertex from TopoDS, - Edge from TopoDS, - Face from TopoDS, - Shape from TopoDS, - ChBuilder from ChFi3d, - MapOfShape from TopTools, - ListOfShape from TopTools, - SecHArray1 from ChFiDS, - HBuilder from TopOpeBRepBuild, - ShapeModification from BRepBuilderAPI - - - - -raises - NotDone from StdFail - -is - - - Create(S: Shape from TopoDS) returns MakeChamfer from BRepFilletAPI; - ---Purpose: Initializes an algorithm for computing chamfers on the shape S. - -- The edges on which chamfers are built are defined using the Add function. - - Add(me:in out; E: Edge from TopoDS) - ---Purpose: Adds edge E to the table of edges used by this - -- algorithm to build chamfers, where the parameters - -- of the chamfer must be set after the - --contour is added using the function SetDists - -- The Add function results in a contour being built by - -- propagation from the edge E (i.e. the contour contains at - -- least this edge). This contour is composed of edges of - -- the shape which are tangential to one another and - -- which delimit two series of tangential faces, with one - -- series of faces being located on either side of the contour. - -- Warning - -- Nothing is done if edge E or the face F does not belong to the initial shape. - is static; - - Add(me:in out; - Dis : Real from Standard; - E : Edge from TopoDS; - F : Face from TopoDS) - ---Purpose: Adds edge E to the table of edges used by this - -- algorithm to build chamfers, where - -- the parameters of the chamfer are given by the two - -- distances Dis1 and Dis2; the face F identifies the side - -- where Dis1 is measured. - -- The Add function results in a contour being built by - -- propagation from the edge E (i.e. the contour contains at - -- least this edge). This contour is composed of edges of - -- the shape which are tangential to one another and - -- which delimit two series of tangential faces, with one - -- series of faces being located on either side of the contour. - -- Warning - -- Nothing is done if edge E or the face F does not belong to the initial shape. - is static; - - - SetDist(me: in out; - Dis : Real from Standard; - IC : Integer from Standard; - F : Face from TopoDS) - ---Purpose: Sets the distances Dis1 and Dis2 which give the - -- parameters of the chamfer along the contour of index - -- IC generated using the Add function in the internal - -- data structure of this algorithm. The face F identifies - -- the side where Dis1 is measured. - -- Warning - -- Nothing is done if either the edge E or the face F - -- does not belong to the initial shape. - is static; - - - GetDist(me; - IC : Integer from Standard; - Dis : out Real from Standard) - is static; - - - Add(me:in out; - Dis1, Dis2 : Real; - E: Edge from TopoDS; - F: Face from TopoDS) - ---Purpose: Adds a fillet contour in the builder (builds a - -- contour of tangent edges to and sets the two - -- distances and ( parameters of the chamfer ) ). - ---Level: Public - is static; - - - SetDists(me: in out; - Dis1, Dis2 : Real from Standard; - IC : Integer from Standard; - F : Face from TopoDS) - ---Purpose: Sets the distances Dis1 and Dis2 which give the - -- parameters of the chamfer along the contour of index - -- IC generated using the Add function in the internal - -- data structure of this algorithm. The face F identifies - -- the side where Dis1 is measured. - -- Warning - -- Nothing is done if either the edge E or the face F - -- does not belong to the initial shape. - is static; - - - - Dists(me; - IC : Integer from Standard; - Dis1, Dis2 : out Real from Standard) - is static; - ---Purpose: Returns the distances Dis1 and Dis2 which give the - -- parameters of the chamfer along the contour of index IC - -- in the internal data structure of this algorithm. - -- Warning - -- -1. is returned if IC is outside the bounds of the table of contours. - - - AddDA(me:in out; - Dis : Real from Standard; - Angle : Real from Standard; - E : Edge from TopoDS; - F : Face from TopoDS) - ---Purpose: Adds a fillet contour in the builder (builds a - -- contour of tangent edges to and sets the - -- distance and angle ( parameters of the chamfer ) ). - ---Level: Public - is static; - - SetDistAngle(me : in out; - Dis : Real from Standard; - Angle : Real from Standard; - IC : Integer from Standard; - F : Face from TopoDS) - ---Purpose: set the distance and of the fillet - -- contour of index in the DS with on . - ---Purpose: if the face is not one of common faces - -- of an edge of the contour - is static; - - - GetDistAngle(me ; - IC : Integer from Standard; - Dis : in out Real from Standard; - Angle : in out Real from Standard; - DisOnFace1 : in out Boolean from Standard) - ---Purpose: gives the distances and of the fillet - -- contour of index in the DS - is static; - - - IsSymetric(me; - IC : Integer from Standard) - ---Purpose: return True if chamfer symetric false else. - returns Boolean from Standard is static; - - - IsTwoDistances(me; - IC : Integer from Standard) - ---Purpose: return True if chamfer is made with two distances false else. - returns Boolean from Standard is static; - - - IsDistanceAngle(me; - IC : Integer from Standard) - ---Purpose: return True if chamfer is made with distance and angle false else. - returns Boolean from Standard is static; - - - ResetContour(me : in out; - IC : Integer from Standard) - ---Purpose: Erases the chamfer parameters on the contour of - -- index IC in the internal data structure of this algorithm. - -- Use the SetDists function to reset this data. - -- Warning - -- Nothing is done if IC is outside the bounds of the table of contours. - is static; - - NbContours(me) - ---Purpose: Returns the number of contours generated using the - -- Add function in the internal data structure of this algorithm. - returns Integer from Standard is static; - - - Contour(me; E : Edge from TopoDS ) - ---Purpose: 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. - returns Integer from Standard is static; - - - NbEdges(me; I : Integer from Standard) - ---Purpose: 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. - returns Integer from Standard - is static; - - - Edge(me; I,J : Integer from Standard) - ---Purpose: 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 contour of index I. - ---C++: return const & - returns Edge from TopoDS - is static; - - - Remove(me : in out; E : Edge from TopoDS) - ---Purpose: 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. - is static; - - - Length(me; IC : Integer from Standard) returns Real from Standard - ---Purpose: 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. - is static; - - - FirstVertex(me; IC : Integer from Standard) returns Vertex from TopoDS - ---Purpose: 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. - is static; - - - LastVertex(me; IC : Integer from Standard) returns Vertex from TopoDS - ---Purpose: 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. - is static; - - - Abscissa(me; - IC : Integer from Standard; - V : Vertex from TopoDS) - returns Real from Standard - ---Purpose: 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. - is static; - - - RelativeAbscissa(me; - IC : Integer from Standard; - V : Vertex from TopoDS) - returns Real from Standard - ---Purpose: 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. - is static; - - ClosedAndTangent(me; IC : Integer from Standard) - returns Boolean from Standard - ---Purpose: eturns 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. - is static; - - Closed(me; IC : Integer from Standard) - returns Boolean from Standard - ---Purpose: 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. - is static; - - Build(me: in out) - ---Purpose: Builds the chamfers 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 chamfered - -- shape is built. Use the function Shape to retrieve the chamfered shape. - -- Warning - -- The construction of chamfers implements highly complex - -- construction algorithms. Consequently, there may be - -- instances where the algorithm fails, for example if the - -- data defining the parameters of the chamfer is not - -- compatible with the geometry of the initial shape. There - -- is no initial analysis of errors and these 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 chamfer with a face which - -- limits the contour is not fully contained in this face. - is redefined; - - Reset(me : in out) - ---Purpose: Reinitializes this algorithm, thus canceling the effects of the Build function. - -- This function allows modifications to be made to the - -- contours and chamfer parameters in order to rebuild the shape. - is static; - - Builder(me) returns HBuilder from TopOpeBRepBuild - ---Purpose: Returns the internal filleting algorithm. - ---Level: Advanced - is static; - - ------------------------------------------- - -- Methods usefull for historical utilities -- - ------------------------------------------- - Generated (me: in out; EorV : Shape from TopoDS) - ---Purpose: Returns the list of shapes generated from the - -- shape . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is redefined virtual; - - - Modified (me: in out; F : Shape from TopoDS) - ---Purpose: Returns the list of shapes modified from the shape - -- . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is redefined virtual; - - - IsDeleted (me: in out; F : Shape from TopoDS) - returns Boolean - is redefined virtual; - - ------------------------------- - ---Methods for quick simulation - ------------------------------- - - Simulate(me : in out; - IC : Integer from Standard); - - NbSurf(me; IC : Integer from Standard) - returns Integer from Standard; - - Sect(me; IC, IS : Integer from Standard) - returns SecHArray1 from ChFiDS; - -fields - - myBuilder : ChBuilder from ChFi3d; - myMap : MapOfShape from TopTools; - -end MakeChamfer; - - - diff --git a/src/BRepFilletAPI/BRepFilletAPI_MakeChamfer.cxx b/src/BRepFilletAPI/BRepFilletAPI_MakeChamfer.cxx index b5ef8a42c1..bc8204567f 100644 --- a/src/BRepFilletAPI/BRepFilletAPI_MakeChamfer.cxx +++ b/src/BRepFilletAPI/BRepFilletAPI_MakeChamfer.cxx @@ -14,13 +14,18 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include + +#include #include +#include #include - - +#include +#include +#include +#include +#include +#include +#include //======================================================================= //function : BRepFilletAPI_MakeChamfer diff --git a/src/BRepFilletAPI/BRepFilletAPI_MakeChamfer.hxx b/src/BRepFilletAPI/BRepFilletAPI_MakeChamfer.hxx new file mode 100644 index 0000000000..75b74c1545 --- /dev/null +++ b/src/BRepFilletAPI/BRepFilletAPI_MakeChamfer.hxx @@ -0,0 +1,292 @@ +// Created on: 1995-06-22 +// Created by: Flore Lantheaume +// 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 _BRepFilletAPI_MakeChamfer_HeaderFile +#define _BRepFilletAPI_MakeChamfer_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class StdFail_NotDone; +class TopoDS_Shape; +class TopoDS_Edge; +class TopoDS_Face; +class TopoDS_Vertex; +class TopOpeBRepBuild_HBuilder; + + +//! Describes functions to build chamfers on edges of a shell or solid. +//! Chamfered Edge of a Shell or Solid +//! A MakeChamfer object provides a framework for: +//! - initializing the construction algorithm with a given shape, +//! - acquiring the data characterizing the chamfers, +//! - building the chamfers and constructing the resulting shape, and +//! - consulting the result. +class BRepFilletAPI_MakeChamfer : public BRepFilletAPI_LocalOperation +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Initializes an algorithm for computing chamfers on the shape S. + //! The edges on which chamfers are built are defined using the Add function. + Standard_EXPORT BRepFilletAPI_MakeChamfer(const TopoDS_Shape& S); + + //! Adds edge E to the table of edges used by this + //! algorithm to build chamfers, where the parameters + //! of the chamfer must be set after the + Standard_EXPORT void Add (const TopoDS_Edge& E); + + //! Adds edge E to the table of edges used by this + //! algorithm to build chamfers, where + //! the parameters of the chamfer are given by the two + //! distances Dis1 and Dis2; the face F identifies the side + //! where Dis1 is measured. + //! The Add function results in a contour being built by + //! propagation from the edge E (i.e. the contour contains at + //! least this edge). This contour is composed of edges of + //! the shape which are tangential to one another and + //! which delimit two series of tangential faces, with one + //! series of faces being located on either side of the contour. + //! Warning + //! Nothing is done if edge E or the face F does not belong to the initial shape. + Standard_EXPORT void Add (const Standard_Real Dis, const TopoDS_Edge& E, const TopoDS_Face& F); + + //! Sets the distances Dis1 and Dis2 which give the + //! parameters of the chamfer along the contour of index + //! IC generated using the Add function in the internal + //! data structure of this algorithm. The face F identifies + //! the side where Dis1 is measured. + //! Warning + //! Nothing is done if either the edge E or the face F + //! does not belong to the initial shape. + Standard_EXPORT void SetDist (const Standard_Real Dis, const Standard_Integer IC, const TopoDS_Face& F); + + Standard_EXPORT void GetDist (const Standard_Integer IC, Standard_Real& Dis) const; + + //! Adds a fillet contour in the builder (builds a + //! contour of tangent edges to and sets the two + //! distances and ( parameters of the chamfer ) ). + Standard_EXPORT void Add (const Standard_Real Dis1, const Standard_Real Dis2, const TopoDS_Edge& E, const TopoDS_Face& F); + + //! Sets the distances Dis1 and Dis2 which give the + //! parameters of the chamfer along the contour of index + //! IC generated using the Add function in the internal + //! data structure of this algorithm. The face F identifies + //! the side where Dis1 is measured. + //! Warning + //! Nothing is done if either the edge E or the face F + //! does not belong to the initial shape. + Standard_EXPORT void SetDists (const Standard_Real Dis1, const Standard_Real Dis2, const Standard_Integer IC, const TopoDS_Face& F); + + //! Returns the distances Dis1 and Dis2 which give the + //! parameters of the chamfer along the contour of index IC + //! in the internal data structure of this algorithm. + //! Warning + //! -1. is returned if IC is outside the bounds of the table of contours. + Standard_EXPORT void Dists (const Standard_Integer IC, Standard_Real& Dis1, Standard_Real& Dis2) const; + + //! Adds a fillet contour in the builder (builds a + //! contour of tangent edges to and sets the + //! distance and angle ( parameters of the chamfer ) ). + Standard_EXPORT void AddDA (const Standard_Real Dis, const Standard_Real Angle, const TopoDS_Edge& E, const TopoDS_Face& F); + + //! set the distance and of the fillet + //! contour of index in the DS with on . + //! if the face is not one of common faces + //! of an edge of the contour + Standard_EXPORT void SetDistAngle (const Standard_Real Dis, const Standard_Real Angle, const Standard_Integer IC, const TopoDS_Face& F); + + //! gives the distances and of the fillet + //! contour of index in the DS + Standard_EXPORT void GetDistAngle (const Standard_Integer IC, Standard_Real& Dis, Standard_Real& Angle, Standard_Boolean& DisOnFace1) const; + + //! return True if chamfer symetric false else. + Standard_EXPORT Standard_Boolean IsSymetric (const Standard_Integer IC) const; + + //! return True if chamfer is made with two distances false else. + Standard_EXPORT Standard_Boolean IsTwoDistances (const Standard_Integer IC) const; + + //! return True if chamfer is made with distance and angle false else. + Standard_EXPORT Standard_Boolean IsDistanceAngle (const Standard_Integer IC) const; + + //! Erases the chamfer parameters on the contour of + //! index IC in the internal data structure of this algorithm. + //! Use the SetDists 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); + + //! Returns the number of contours generated using the + //! Add function in the internal data structure of this algorithm. + Standard_EXPORT Standard_Integer NbContours() const; + + //! 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; + + //! 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; + + //! 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 contour of index I. + Standard_EXPORT const TopoDS_Edge& Edge (const Standard_Integer I, const Standard_Integer J) const; + + //! 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); + + //! 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; + + //! 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; + + //! 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; + + //! 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; + + //! 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; + + //! eturns 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; + + //! 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; + + //! Builds the chamfers 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 chamfered + //! shape is built. Use the function Shape to retrieve the chamfered shape. + //! Warning + //! The construction of chamfers implements highly complex + //! construction algorithms. Consequently, there may be + //! instances where the algorithm fails, for example if the + //! data defining the parameters of the chamfer is not + //! compatible with the geometry of the initial shape. There + //! is no initial analysis of errors and these 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 chamfer with a face which + //! limits the contour is not fully contained in this face. + Standard_EXPORT virtual void Build() Standard_OVERRIDE; + + //! Reinitializes this algorithm, thus canceling the effects of the Build function. + //! This function allows modifications to be made to the + //! contours and chamfer parameters in order to rebuild the shape. + Standard_EXPORT void Reset(); + + //! Returns the internal filleting 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; + + Standard_EXPORT void Simulate (const Standard_Integer IC); + + Standard_EXPORT Standard_Integer NbSurf (const Standard_Integer IC) const; + + Standard_EXPORT Handle(ChFiDS_SecHArray1) Sect (const Standard_Integer IC, const Standard_Integer IS) const; + + + + +protected: + + + + + +private: + + + + ChFi3d_ChBuilder myBuilder; + TopTools_MapOfShape myMap; + + +}; + + + + + + + +#endif // _BRepFilletAPI_MakeChamfer_HeaderFile diff --git a/src/BRepFilletAPI/BRepFilletAPI_MakeFillet.cdl b/src/BRepFilletAPI/BRepFilletAPI_MakeFillet.cdl deleted file mode 100644 index d2a48ccc4f..0000000000 --- a/src/BRepFilletAPI/BRepFilletAPI_MakeFillet.cdl +++ /dev/null @@ -1,536 +0,0 @@ --- 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. - -class MakeFillet from BRepFilletAPI inherits LocalOperation from BRepFilletAPI - - ---Purpose: 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. - - -uses - - Array1OfPnt2d from TColgp, - Shape from GeomAbs, - Surface from Geom , - Shape from TopoDS, - Face from TopoDS, - Edge from TopoDS, - Vertex from TopoDS, - Function from Law, - ListOfShape from TopTools, - SecHArray1 from ChFiDS, - ErrorStatus from ChFiDS, - FilBuilder from ChFi3d, - FilletShape from ChFi3d, - HBuilder from TopOpeBRepBuild, - MapOfShape from TopTools, - ShapeModification from BRepBuilderAPI - -raises - NotDone from StdFail , - NoSuchObject from Standard -is - - Create(S : Shape from TopoDS; - FShape: FilletShape from ChFi3d = ChFi3d_Rational) - ---Purpose: 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. - ---Level: Public - returns MakeFillet from BRepFilletAPI; - - SetParams(me : in out; - Tang, Tesp, T2d, TApp3d, TolApp2d, Fleche: Real from Standard) - ---Level: Advanced - is static; - - SetContinuity(me : in out; - InternalContinuity : Shape from GeomAbs; - AngularTolerance : Real); - ---Purpose: 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. - - - - Add(me : in out; E : Edge from TopoDS) - ---Purpose: Adds a fillet contour in the builder (builds a - -- contour of tangent edges). - -- The Radius must be set after. - -- - ---Level: Public - is static; - - Add(me : in out; Radius : Real; E : Edge from TopoDS) - ---Purpose: Adds a fillet description in the builder - -- - builds a contour of tangent edges, - -- - sets the radius. - -- - ---Level: Public - is static; - - Add(me : in out; R1,R2 : Real; E : Edge from TopoDS) - ---Purpose: 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. - -- - ---Level: Public - is static; - - Add(me : in out; L : Function from Law; E : Edge from TopoDS) - ---Purpose: Adds a fillet description in the builder - -- - builds a contour of tangent edges, - -- - sest the radius evolution law. - -- - ---Level: Public - is static; - - Add(me : in out; UandR : Array1OfPnt2d from TColgp; E : Edge from TopoDS) - ---Purpose: 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. - -- - ---Level: Public - is static; - - SetRadius(me : in out; - Radius : Real from Standard; - IC : Integer from Standard; - IinC : Integer from Standard) - ---Purpose: 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. - is static; - - SetRadius(me : in out; - R1,R2 : Real from Standard; - IC : Integer from Standard; - IinC : Integer from Standard) - ---Purpose: 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. - is static; - - SetRadius(me : in out; - L : Function from Law; - IC : Integer from Standard; - IinC : Integer from Standard) - ---Purpose: 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. - is static; - - SetRadius(me : in out; - UandR : Array1OfPnt2d from TColgp; - IC : Integer from Standard; - IinC : Integer from Standard) - ---Purpose: 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. - is static; - - ResetContour(me : in out; - IC : Integer from Standard) - ---Purpose: 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. - is static; - - IsConstant(me : in out; - IC : Integer from Standard) - returns Boolean from Standard - ---Purpose: 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. - is static; - - Radius(me : in out; - IC : Integer from Standard) - returns Real from Standard - ---Purpose: 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. - is static; - - - IsConstant(me : in out; - IC : Integer from Standard; - E : Edge from TopoDS) - returns Boolean from Standard - ---Purpose: 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. - is static; - - Radius(me : in out; - IC : Integer from Standard; - E : Edge from TopoDS) - returns Real from Standard - ---Purpose: 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. - is static; - - SetRadius(me : in out; - Radius : Real; - IC : Integer from Standard; - E : Edge from TopoDS) - ---Purpose: Assigns Radius as the radius of the fillet on the edge E - is static; - - SetRadius(me : in out; - Radius : Real; - IC : Integer from Standard; - V : Vertex from TopoDS) - --Purpose: Assigns Radius as the radius of the fillet on the vertex V. - -- These two functions are only used on contours where - -- the radius has not been defined. They enable radius - -- values to be assigned locally either to points on the - -- contour (in particular, the first and last vertices) or to - -- portions of the contour. During construction of the fillet, - -- an interpolation using the given values is carried out. - -- Warning - -- Nothing is done if: - -- - the edge E does not belong to the contour of index IC, or - -- - IC is outside the bound of the table of contours, or - is static; - - - - GetBounds(me : in out; - IC : Integer from Standard; - E : Edge from TopoDS; - F,L : out Real from Standard) - returns Boolean from Standard; - - GetLaw(me : in out; - IC : Integer from Standard; - E : Edge from TopoDS) - returns Function from Law; - - SetLaw(me : in out; - IC : Integer from Standard; - E : Edge from TopoDS; - L : Function from Law); - - - - ------------------------------------------------------------------ - - SetFilletShape(me: in out; FShape: FilletShape from ChFi3d) - ---Purpose: Assigns FShape as the type of fillet shape built by this algorithm. - is static; - - GetFilletShape(me) - ---Purpose: Returns the type of fillet shape built by this algorithm. - returns FilletShape from ChFi3d - is static; - - NbContours(me) - ---Purpose: Returns the number of contours generated using the - -- Add function in the internal data structure of this algorithm. - returns Integer from Standard is static; - - Contour(me; E : Edge from TopoDS) - ---Purpose: 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. - returns Integer from Standard is static; - - NbEdges(me; I : Integer from Standard) - ---Purpose: 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. - returns Integer from Standard - is static; - - Edge(me; I,J : Integer from Standard) - ---Purpose: 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. - ---C++: return const & - returns Edge from TopoDS - is static; - - Remove(me : in out; E : Edge from TopoDS) - ---Purpose: 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. - is static; - - Length(me; IC : Integer from Standard) returns Real from Standard - ---Purpose: 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. - is static; - - FirstVertex(me; IC : Integer from Standard) returns Vertex from TopoDS - ---Purpose: 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. - is static; - - LastVertex(me; IC : Integer from Standard) returns Vertex from TopoDS - ---Purpose: 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. - is static; - - Abscissa(me; - IC : Integer from Standard; - V : Vertex from TopoDS) - returns Real from Standard - ---Purpose: 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. - is static; - - RelativeAbscissa(me; - IC : Integer from Standard; - V : Vertex from TopoDS) - returns Real from Standard - ---Purpose: 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. - is static; - - ClosedAndTangent(me; IC : Integer from Standard) - returns Boolean from Standard - ---Purpose: 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. - is static; - - Closed(me; IC : Integer from Standard) - returns Boolean from Standard - ---Purpose: 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. - is static; - - Build(me : in out) - is redefined; - ---Purpose: 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. - - Reset(me : in out) - ---Purpose: 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. - is static; - - Builder(me) returns HBuilder from TopOpeBRepBuild - ---Purpose: Returns the internal topology building algorithm. - ---Level: Advanced - is static; - - - ------------------------------------------- - -- Methods usefull for historical utilities -- - ------------------------------------------- - Generated (me: in out; EorV : Shape from TopoDS) - ---Purpose: Returns the list of shapes generated from the - -- shape . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is redefined virtual; - - - Modified (me: in out; F : Shape from TopoDS) - ---Purpose: Returns the list of shapes modified from the shape - -- . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is redefined virtual; - - - IsDeleted (me: in out; F : Shape from TopoDS) - returns Boolean - is redefined virtual; - - ------------------------------------------- - -- Methods usefull for BRepCtx utilities -- - ------------------------------------------- - - NbSurfaces(me) - ---Purpose: returns the number of surfaces - -- after the shape creation. - ---Level: Public - returns Integer from Standard; - - - NewFaces(me: in out; I: Integer) - ---Purpose: Return the faces created for surface . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools; - - ------------------------------- - ---Methods for quick simulation - ------------------------------- - - Simulate(me : in out; - IC : Integer from Standard); - - NbSurf(me; IC : Integer from Standard) - returns Integer from Standard; - - Sect(me; IC, IS : Integer from Standard) - returns SecHArray1 from ChFiDS; - - - ------------------------------------- - --- Methods for managing errors - ------------------------------------- - - NbFaultyContours(me) - ---Purpose: Returns the number of contours where the computation - -- of the fillet failed - returns Integer from Standard is static; - - FaultyContour(me; I : Integer from Standard) - ---Purpose: 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 - returns Integer from Standard is static; - - NbComputedSurfaces(me; IC : Integer from Standard) - ---Purpose: returns the number of surfaces which have been - -- computed on the contour IC - returns Integer from Standard is static; - - ComputedSurface(me; IC, IS : Integer from Standard) - ---Purpose: returns the surface number IS concerning the contour IC - returns Surface from Geom is static; - - NbFaultyVertices(me) - ---Purpose: returns the number of vertices where the computation failed - returns Integer from Standard is static; - - FaultyVertex(me; IV : Integer from Standard) - ---Purpose: returns the vertex where the computation failed - returns Vertex from TopoDS is static; - - HasResult(me) returns Boolean from Standard is static; - ---Purpose: 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 - - BadShape(me) returns Shape from TopoDS - ---Purpose: if (HasResult()) returns the partial result - raises NoSuchObject from Standard - is static; - - StripeStatus(me;IC : Integer from Standard) returns ErrorStatus from ChFiDS - ---Purpose: 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 - is static; - -fields - - myBuilder : FilBuilder from ChFi3d; - myMap : MapOfShape from TopTools; - -end MakeFillet; diff --git a/src/BRepFilletAPI/BRepFilletAPI_MakeFillet.cxx b/src/BRepFilletAPI/BRepFilletAPI_MakeFillet.cxx index 8d8d9f00f0..8a942e992b 100644 --- a/src/BRepFilletAPI/BRepFilletAPI_MakeFillet.cxx +++ b/src/BRepFilletAPI/BRepFilletAPI_MakeFillet.cxx @@ -14,22 +14,30 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. + +#include +#include +#include +#include +#include +#include +#include +#include #include -#include +#include +#include #include +#include +#include +#include +#include #include #include -#include -#include -#include -#include -#include //======================================================================= //function : BRepFilletAPI_MakeFillet //purpose : //======================================================================= - BRepFilletAPI_MakeFillet::BRepFilletAPI_MakeFillet(const TopoDS_Shape& S, const ChFi3d_FilletShape FShape): myBuilder(S,FShape) diff --git a/src/BRepFilletAPI/BRepFilletAPI_MakeFillet.hxx b/src/BRepFilletAPI/BRepFilletAPI_MakeFillet.hxx new file mode 100644 index 0000000000..331250adb7 --- /dev/null +++ b/src/BRepFilletAPI/BRepFilletAPI_MakeFillet.hxx @@ -0,0 +1,394 @@ +// 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 +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class StdFail_NotDone; +class Standard_NoSuchObject; +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); + + //! 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); + + //! 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; + + //! 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; + + //! 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; + + //! 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; + + //! 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); + + //! 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; + + //! 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; + + //! 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; + + //! 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; + + //! 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; + + //! 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; + + //! 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; + + //! 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() 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(); + + //! 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_EXPORT Standard_Integer NbSurf (const Standard_Integer IC) const; + + Standard_EXPORT Handle(ChFiDS_SecHArray1) Sect (const Standard_Integer IC, const Standard_Integer IS) const; + + //! 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/src/BRepFilletAPI/BRepFilletAPI_MakeFillet2d.cdl b/src/BRepFilletAPI/BRepFilletAPI_MakeFillet2d.cdl deleted file mode 100644 index d76c983ed3..0000000000 --- a/src/BRepFilletAPI/BRepFilletAPI_MakeFillet2d.cdl +++ /dev/null @@ -1,332 +0,0 @@ --- Created on: 1995-08-31 --- Created by: Remi LEQUETTE --- 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. - -class MakeFillet2d from BRepFilletAPI inherits MakeShape from BRepBuilderAPI - - ---Purpose: Describes functions to build fillets and chamfers on the - -- vertices of a planar face. - -- Fillets and Chamfers on the Vertices of a Planar Face - -- A MakeFillet2d object provides a framework for: - -- - initializing the construction algorithm with a given face, - -- - acquiring the data characterizing the fillets and chamfers, - -- - building the fillets and chamfers, and constructing the - -- resulting shape, and - -- - consulting the result. - -- Warning - -- Only segments of straight lines and arcs of circles are - -- treated. BSplines are not processed. - -uses - Builder from ChFi2d, - ConstructionError from ChFi2d, - Face from TopoDS, - Edge from TopoDS, - Vertex from TopoDS, - Shape from TopoDS, - ShapeModification from BRepBuilderAPI, - SequenceOfShape from TopTools, - ListOfShape from TopTools - -is - - - Create returns MakeFillet2d from BRepFilletAPI; - ---Purpose: Initializes an empty algorithm for computing fillets and - -- chamfers. The face on which the fillets and - -- chamfers are built is defined using the Init function. - -- The vertices on which fillets or chamfers are built are - -- defined using the AddFillet or AddChamfer function. - -- Warning - -- The status of the initialization, as given by the Status - -- function, can be one of the following: - -- - ChFi2d_Ready if the initialization is correct, - -- - ChFi2d_NotPlanar if F is not planar, - -- - ChFi2d_NoFace if F is a null face. - - Create ( F : Face ) returns MakeFillet2d from BRepFilletAPI; - ---Purpose: Initializes an algorithm for computing fillets and chamfers on the face F. - -- The vertices on which fillets or chamfers are built are - -- defined using the AddFillet or AddChamfer function. - -- Warning - -- The status of the initialization, as given by the Status - -- function, can be one of the following: - -- - ChFi2d_Ready if the initialization is correct, - -- - ChFi2d_NotPlanar if F is not planar, - -- - ChFi2d_NoFace if F is a null face. - - - Init( me : in out; F : Face ); - ---Purpose: Initializes this algorithm for constructing fillets or - -- chamfers with the face F. - -- Warning - -- The status of the initialization, as given by the Status - -- function, can be one of the following: - -- - ChFi2d_Ready if the initialization is correct, - -- - ChFi2d_NotPlanar if F is not planar, - -- - ChFi2d_NoFace if F is a null face. - - Init( me : in out; RefFace, ModFace : Face ); - ---Purpose: This initialize method allow to init the builder - -- from a face and another face - -- which derive from . This is usefull to - -- modify a fillet or a chamfer already created on - -- . - - - AddFillet ( me : in out; V : Vertex; Radius : Real ) returns Edge; - ---Purpose: Adds a fillet of radius Radius between the two edges - -- adjacent to the vertex V on the face modified by this - -- algorithm. The two edges do not need to be rectilinear. - -- This function returns the fillet and builds the resulting face. - -- Warning - -- The status of the construction, as given by the Status - -- function, can be one of the following: - -- - ChFi2d_IsDone if the fillet is built, - -- - ChFi2d_ConnexionError if V does not belong to the initial face, - -- - ChFi2d_ComputationError if Radius is too large - -- to build a fillet between the two adjacent edges, - -- - ChFi2d_NotAuthorized - -- - if one of the two edges connected to V is a fillet or chamfer, or - -- - if a curve other than a straight line or an arc of a - -- circle is used as E, E1 or E2. - -- Do not use the returned fillet if the status of the construction is not ChFi2d_IsDone. - -- Exceptions - -- Standard_NegativeValue if Radius is less than or equal to zero. - - - ModifyFillet ( me : in out; Fillet : Edge; Radius : Real) - returns Edge; - ---Purpose: Assigns the radius Radius to the fillet Fillet already - -- built on the face modified by this algorithm. - -- This function returns the new fillet and modifies the existing face. - -- Warning - -- The status of the construction, as given by the Status - -- function, can be one of the following: - -- - ChFi2d_IsDone if the new fillet is built, - -- - ChFi2d_ConnexionError if Fillet does not - -- belong to the existing face, - -- - ChFi2d_ComputationError if Radius is too - -- large to build a fillet between the two adjacent edges. - -- Do not use the returned fillet if the status of the - -- construction is not ChFi2d_IsDone. - -- Exceptions - -- Standard_NegativeValue if Radius is less than or equal to zero. - - RemoveFillet( me : in out; Fillet : Edge) - returns Vertex; - ---Purpose: Removes the fillet Fillet already built on the face - -- modified by this algorithm. - -- This function returns the vertex connecting the two - -- adjacent edges of Fillet and modifies the existing face. - -- Warning - -- - The returned vertex is only valid if the Status - -- function returns ChFi2d_IsDone. - -- - A null vertex is returned if the edge Fillet does not - -- belong to the initial face. - - - AddChamfer ( me : in out; E1, E2 : Edge; D1, D2 : Real ) - returns Edge; - ---Purpose: Adds a chamfer on the face modified by this algorithm - -- between the two adjacent edges E1 and E2, where - -- the extremities of the chamfer are on E1 and E2 at - -- distances D1 and D2 respectively - -- In cases where the edges are not rectilinear, distances - -- are measured using the curvilinear abscissa of the - -- edges and the angle is measured with respect to the - -- tangent at the corresponding point. - -- The angle Ang is given in radians. - -- This function returns the chamfer and builds the resulting face. - - AddChamfer ( me : in out; E : Edge; V : Vertex; D, Ang : Real ) - returns Edge; - ---Purpose: Adds a chamfer on the face modified by this algorithm - -- between the two edges connected by the vertex V, - -- where E is one of the two edges. The chamfer makes - -- an angle Ang with E and one of its extremities is on - -- E at distance D from V. - -- In cases where the edges are not rectilinear, distances - -- are measured using the curvilinear abscissa of the - -- edges and the angle is measured with respect to the - -- tangent at the corresponding point. - -- The angle Ang is given in radians. - -- This function returns the chamfer and builds the resulting face. - -- Warning - -- The status of the construction, as given by the Status function, can - -- be one of the following: - -- - ChFi2d_IsDone if the chamfer is built, - -- - ChFi2d_ParametersError if D1, D2, D or Ang is less than or equal to zero, - -- - ChFi2d_ConnexionError if: - -- - the edge E, E1 or E2 does not belong to the initial face, or - -- - the edges E1 and E2 are not adjacent, or - -- - the vertex V is not one of the limit points of the edge E, - -- - ChFi2d_ComputationError if the parameters of the chamfer - -- are too large to build a chamfer between the two adjacent edges, - -- - ChFi2d_NotAuthorized if: - -- - the edge E1, E2 or one of the two edges connected to V is a fillet or chamfer, or - -- - a curve other than a straight line or an arc of a circle is used as E, E1 or E2. - -- Do not use the returned chamfer if - -- the status of the construction is not ChFi2d_IsDone. - - ModifyChamfer ( me : in out; Chamfer : Edge; - E1 : Edge; E2 : Edge; D1, D2 : Real) - returns Edge; - ---Purpose: Modifies the chamfer Chamfer on the face modified - -- by this algorithm, where: - -- E1 and E2 are the two adjacent edges on which - -- Chamfer is already built; the extremities of the new - -- chamfer are on E1 and E2 at distances D1 and D2 respectively. - - - ModifyChamfer ( me : in out; Chamfer, E : Edge; D, Ang : Real) - returns Edge; - ---Purpose: Modifies the chamfer Chamfer on the face modified - -- by this algorithm, where: - -- E is one of the two adjacent edges on which - -- Chamfer is already built; the new chamfer makes - -- an angle Ang with E and one of its extremities is - -- on E at distance D from the vertex on which the chamfer is built. - -- In cases where the edges are not rectilinear, the - -- distances are measured using the curvilinear abscissa - -- of the edges and the angle is measured with respect - -- to the tangent at the corresponding point. - -- The angle Ang is given in radians. - -- This function returns the new chamfer and modifies the existing face. - -- Warning - -- The status of the construction, as given by the Status - -- function, can be one of the following: - -- - ChFi2d_IsDone if the chamfer is built, - -- - ChFi2d_ParametersError if D1, D2, D or Ang is less than or equal to zero, - -- - ChFi2d_ConnexionError if: - -- - the edge E, E1, E2 or Chamfer does not belong - -- to the existing face, or - -- - the edges E1 and E2 are not adjacent, - -- - ChFi2d_ComputationError if the parameters of - -- the chamfer are too large to build a chamfer - -- between the two adjacent edges, - -- - ChFi2d_NotAuthorized if E1 or E2 is a fillet or chamfer. - -- Do not use the returned chamfer if the status of the - -- construction is not ChFi2d_IsDone. - - RemoveChamfer( me : in out; Chamfer : Edge) - returns Vertex; - ---Purpose: Removes the chamfer Chamfer already built on the face - -- modified by this algorithm. - -- This function returns the vertex connecting the two - -- adjacent edges of Chamfer and modifies the existing face. - -- Warning - -- - The returned vertex is only valid if the Status - -- function returns ChFi2d_IsDone. - -- - A null vertex is returned if the edge Chamfer does - -- not belong to the initial face. - - ---------------------------------------------- - -- Results - ---------------------------------------------- - - IsModified( me; E : Edge ) returns Boolean; - ---Purpose: Returns true if the edge E on the face modified by this - -- algorithm is chamfered or filleted. - -- Warning - -- Returns false if E does not belong to the face modified by this algorithm. - ---C++: inline - - - FilletEdges( me ) returns SequenceOfShape; - ---Purpose: Returns the table of fillets on the face modified by this algorithm. - ---C++: return const & - ---C++: inline - - NbFillet( me ) returns Integer; - ---Purpose: Returns the number of fillets on the face modified by this algorithm. - ---C++: inline - - - ChamferEdges( me ) returns SequenceOfShape; - ---Purpose: Returns the table of chamfers on the face modified by this algorithm. - ---C++: return const & - ---C++: inline - - NbChamfer( me ) returns Integer; - ---Purpose: Returns the number of chamfers on the face modified by this algorithm. - ---C++: inline - - ------------------------------------------- - -- Methods usefull for historical utilities -- - ------------------------------------------- - - Modified (me: in out; S : Shape from TopoDS) - ---Purpose: Returns the list of shapes modified from the shape - -- . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is redefined virtual; - - NbCurves(me) - ---Purpose: returns the number of new curves - -- after the shape creation. - ---Level: Public - returns Integer from Standard; - - - - NewEdges(me: in out; I: Integer from Standard) - ---Purpose: Return the Edges created for curve I. - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools; - - - - HasDescendant( me; E : Edge) returns Boolean; - ---C++: inline - - - DescendantEdge( me; E : Edge) returns Edge; - ---Purpose: Returns the chamfered or filleted edge built from the - -- edge E on the face modified by this algorithm. If E has - -- not been modified, this function returns E. - -- Exceptions - -- Standard_NoSuchObject if the edge E does not - -- belong to the initial face. - ---C++: return const & - ---C++: inline - - - BasisEdge( me; E : Edge) returns Edge; - ---Purpose: Returns the basis edge on the face modified by this - -- algorithm from which the chamfered or filleted edge E is - -- built. If E has not been modified, this function returns E. - -- Warning - -- E is returned if it does not belong to the initial face. - ---C++: return const & - - Status(me) returns ConstructionError from ChFi2d; - ---C++: inline - - - Build(me : in out) - ---Purpose: Update the result and set the Done flag - ---Level: Public - is redefined; - - -fields - - myMakeChFi2d : Builder from ChFi2d; - -end MakeFillet2d; diff --git a/src/BRepFilletAPI/BRepFilletAPI_MakeFillet2d.cxx b/src/BRepFilletAPI/BRepFilletAPI_MakeFillet2d.cxx index 64b0bb32cc..08926078e6 100644 --- a/src/BRepFilletAPI/BRepFilletAPI_MakeFillet2d.cxx +++ b/src/BRepFilletAPI/BRepFilletAPI_MakeFillet2d.cxx @@ -14,13 +14,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include //======================================================================= //function : BRepFilletAPI_MakeFillet2d //purpose : //======================================================================= - BRepFilletAPI_MakeFillet2d::BRepFilletAPI_MakeFillet2d() { } diff --git a/src/BRepFilletAPI/BRepFilletAPI_MakeFillet2d.hxx b/src/BRepFilletAPI/BRepFilletAPI_MakeFillet2d.hxx new file mode 100644 index 0000000000..9680f1d564 --- /dev/null +++ b/src/BRepFilletAPI/BRepFilletAPI_MakeFillet2d.hxx @@ -0,0 +1,310 @@ +// Created on: 1995-08-31 +// Created by: Remi LEQUETTE +// 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 _BRepFilletAPI_MakeFillet2d_HeaderFile +#define _BRepFilletAPI_MakeFillet2d_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Face; +class TopoDS_Edge; +class TopoDS_Vertex; +class TopoDS_Shape; + + +//! Describes functions to build fillets and chamfers on the +//! vertices of a planar face. +//! Fillets and Chamfers on the Vertices of a Planar Face +//! A MakeFillet2d object provides a framework for: +//! - initializing the construction algorithm with a given face, +//! - acquiring the data characterizing the fillets and chamfers, +//! - building the fillets and chamfers, and constructing the +//! resulting shape, and +//! - consulting the result. +//! Warning +//! Only segments of straight lines and arcs of circles are +//! treated. BSplines are not processed. +class BRepFilletAPI_MakeFillet2d : public BRepBuilderAPI_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Initializes an empty algorithm for computing fillets and + //! chamfers. The face on which the fillets and + //! chamfers are built is defined using the Init function. + //! The vertices on which fillets or chamfers are built are + //! defined using the AddFillet or AddChamfer function. + //! Warning + //! The status of the initialization, as given by the Status + //! function, can be one of the following: + //! - ChFi2d_Ready if the initialization is correct, + //! - ChFi2d_NotPlanar if F is not planar, + //! - ChFi2d_NoFace if F is a null face. + Standard_EXPORT BRepFilletAPI_MakeFillet2d(); + + //! Initializes an algorithm for computing fillets and chamfers on the face F. + //! The vertices on which fillets or chamfers are built are + //! defined using the AddFillet or AddChamfer function. + //! Warning + //! The status of the initialization, as given by the Status + //! function, can be one of the following: + //! - ChFi2d_Ready if the initialization is correct, + //! - ChFi2d_NotPlanar if F is not planar, + //! - ChFi2d_NoFace if F is a null face. + Standard_EXPORT BRepFilletAPI_MakeFillet2d(const TopoDS_Face& F); + + //! Initializes this algorithm for constructing fillets or + //! chamfers with the face F. + //! Warning + //! The status of the initialization, as given by the Status + //! function, can be one of the following: + //! - ChFi2d_Ready if the initialization is correct, + //! - ChFi2d_NotPlanar if F is not planar, + //! - ChFi2d_NoFace if F is a null face. + Standard_EXPORT void Init (const TopoDS_Face& F); + + //! This initialize method allow to init the builder + //! from a face and another face + //! which derive from . This is usefull to + //! modify a fillet or a chamfer already created on + //! . + Standard_EXPORT void Init (const TopoDS_Face& RefFace, const TopoDS_Face& ModFace); + + //! Adds a fillet of radius Radius between the two edges + //! adjacent to the vertex V on the face modified by this + //! algorithm. The two edges do not need to be rectilinear. + //! This function returns the fillet and builds the resulting face. + //! Warning + //! The status of the construction, as given by the Status + //! function, can be one of the following: + //! - ChFi2d_IsDone if the fillet is built, + //! - ChFi2d_ConnexionError if V does not belong to the initial face, + //! - ChFi2d_ComputationError if Radius is too large + //! to build a fillet between the two adjacent edges, + //! - ChFi2d_NotAuthorized + //! - if one of the two edges connected to V is a fillet or chamfer, or + //! - if a curve other than a straight line or an arc of a + //! circle is used as E, E1 or E2. + //! Do not use the returned fillet if the status of the construction is not ChFi2d_IsDone. + //! Exceptions + //! Standard_NegativeValue if Radius is less than or equal to zero. + Standard_EXPORT TopoDS_Edge AddFillet (const TopoDS_Vertex& V, const Standard_Real Radius); + + //! Assigns the radius Radius to the fillet Fillet already + //! built on the face modified by this algorithm. + //! This function returns the new fillet and modifies the existing face. + //! Warning + //! The status of the construction, as given by the Status + //! function, can be one of the following: + //! - ChFi2d_IsDone if the new fillet is built, + //! - ChFi2d_ConnexionError if Fillet does not + //! belong to the existing face, + //! - ChFi2d_ComputationError if Radius is too + //! large to build a fillet between the two adjacent edges. + //! Do not use the returned fillet if the status of the + //! construction is not ChFi2d_IsDone. + //! Exceptions + //! Standard_NegativeValue if Radius is less than or equal to zero. + Standard_EXPORT TopoDS_Edge ModifyFillet (const TopoDS_Edge& Fillet, const Standard_Real Radius); + + //! Removes the fillet Fillet already built on the face + //! modified by this algorithm. + //! This function returns the vertex connecting the two + //! adjacent edges of Fillet and modifies the existing face. + //! Warning + //! - The returned vertex is only valid if the Status + //! function returns ChFi2d_IsDone. + //! - A null vertex is returned if the edge Fillet does not + //! belong to the initial face. + Standard_EXPORT TopoDS_Vertex RemoveFillet (const TopoDS_Edge& Fillet); + + //! Adds a chamfer on the face modified by this algorithm + //! between the two adjacent edges E1 and E2, where + //! the extremities of the chamfer are on E1 and E2 at + //! distances D1 and D2 respectively + //! In cases where the edges are not rectilinear, distances + //! are measured using the curvilinear abscissa of the + //! edges and the angle is measured with respect to the + //! tangent at the corresponding point. + //! The angle Ang is given in radians. + //! This function returns the chamfer and builds the resulting face. + Standard_EXPORT TopoDS_Edge AddChamfer (const TopoDS_Edge& E1, const TopoDS_Edge& E2, const Standard_Real D1, const Standard_Real D2); + + //! Adds a chamfer on the face modified by this algorithm + //! between the two edges connected by the vertex V, + //! where E is one of the two edges. The chamfer makes + //! an angle Ang with E and one of its extremities is on + //! E at distance D from V. + //! In cases where the edges are not rectilinear, distances + //! are measured using the curvilinear abscissa of the + //! edges and the angle is measured with respect to the + //! tangent at the corresponding point. + //! The angle Ang is given in radians. + //! This function returns the chamfer and builds the resulting face. + //! Warning + //! The status of the construction, as given by the Status function, can + //! be one of the following: + //! - ChFi2d_IsDone if the chamfer is built, + //! - ChFi2d_ParametersError if D1, D2, D or Ang is less than or equal to zero, + //! - ChFi2d_ConnexionError if: + //! - the edge E, E1 or E2 does not belong to the initial face, or + //! - the edges E1 and E2 are not adjacent, or + //! - the vertex V is not one of the limit points of the edge E, + //! - ChFi2d_ComputationError if the parameters of the chamfer + //! are too large to build a chamfer between the two adjacent edges, + //! - ChFi2d_NotAuthorized if: + //! - the edge E1, E2 or one of the two edges connected to V is a fillet or chamfer, or + //! - a curve other than a straight line or an arc of a circle is used as E, E1 or E2. + //! Do not use the returned chamfer if + //! the status of the construction is not ChFi2d_IsDone. + Standard_EXPORT TopoDS_Edge AddChamfer (const TopoDS_Edge& E, const TopoDS_Vertex& V, const Standard_Real D, const Standard_Real Ang); + + //! Modifies the chamfer Chamfer on the face modified + //! by this algorithm, where: + //! E1 and E2 are the two adjacent edges on which + //! Chamfer is already built; the extremities of the new + //! chamfer are on E1 and E2 at distances D1 and D2 respectively. + Standard_EXPORT TopoDS_Edge ModifyChamfer (const TopoDS_Edge& Chamfer, const TopoDS_Edge& E1, const TopoDS_Edge& E2, const Standard_Real D1, const Standard_Real D2); + + //! Modifies the chamfer Chamfer on the face modified + //! by this algorithm, where: + //! E is one of the two adjacent edges on which + //! Chamfer is already built; the new chamfer makes + //! an angle Ang with E and one of its extremities is + //! on E at distance D from the vertex on which the chamfer is built. + //! In cases where the edges are not rectilinear, the + //! distances are measured using the curvilinear abscissa + //! of the edges and the angle is measured with respect + //! to the tangent at the corresponding point. + //! The angle Ang is given in radians. + //! This function returns the new chamfer and modifies the existing face. + //! Warning + //! The status of the construction, as given by the Status + //! function, can be one of the following: + //! - ChFi2d_IsDone if the chamfer is built, + //! - ChFi2d_ParametersError if D1, D2, D or Ang is less than or equal to zero, + //! - ChFi2d_ConnexionError if: + //! - the edge E, E1, E2 or Chamfer does not belong + //! to the existing face, or + //! - the edges E1 and E2 are not adjacent, + //! - ChFi2d_ComputationError if the parameters of + //! the chamfer are too large to build a chamfer + //! between the two adjacent edges, + //! - ChFi2d_NotAuthorized if E1 or E2 is a fillet or chamfer. + //! Do not use the returned chamfer if the status of the + //! construction is not ChFi2d_IsDone. + Standard_EXPORT TopoDS_Edge ModifyChamfer (const TopoDS_Edge& Chamfer, const TopoDS_Edge& E, const Standard_Real D, const Standard_Real Ang); + + //! Removes the chamfer Chamfer already built on the face + //! modified by this algorithm. + //! This function returns the vertex connecting the two + //! adjacent edges of Chamfer and modifies the existing face. + //! Warning + //! - The returned vertex is only valid if the Status + //! function returns ChFi2d_IsDone. + //! - A null vertex is returned if the edge Chamfer does + //! not belong to the initial face. + Standard_EXPORT TopoDS_Vertex RemoveChamfer (const TopoDS_Edge& Chamfer); + + //! Returns true if the edge E on the face modified by this + //! algorithm is chamfered or filleted. + //! Warning + //! Returns false if E does not belong to the face modified by this algorithm. + Standard_Boolean IsModified (const TopoDS_Edge& E) const; + + //! Returns the table of fillets on the face modified by this algorithm. + const TopTools_SequenceOfShape& FilletEdges() const; + + //! Returns the number of fillets on the face modified by this algorithm. + Standard_Integer NbFillet() const; + + //! Returns the table of chamfers on the face modified by this algorithm. + const TopTools_SequenceOfShape& ChamferEdges() const; + + //! Returns the number of chamfers on the face modified by this algorithm. + Standard_Integer NbChamfer() const; + + //! Returns the list of shapes modified from the shape + //! . + Standard_EXPORT virtual const TopTools_ListOfShape& Modified (const TopoDS_Shape& S) Standard_OVERRIDE; + + //! returns the number of new curves + //! after the shape creation. + Standard_EXPORT Standard_Integer NbCurves() const; + + //! Return the Edges created for curve I. + Standard_EXPORT const TopTools_ListOfShape& NewEdges (const Standard_Integer I); + + Standard_Boolean HasDescendant (const TopoDS_Edge& E) const; + + //! Returns the chamfered or filleted edge built from the + //! edge E on the face modified by this algorithm. If E has + //! not been modified, this function returns E. + //! Exceptions + //! Standard_NoSuchObject if the edge E does not + //! belong to the initial face. + const TopoDS_Edge& DescendantEdge (const TopoDS_Edge& E) const; + + //! Returns the basis edge on the face modified by this + //! algorithm from which the chamfered or filleted edge E is + //! built. If E has not been modified, this function returns E. + //! Warning + //! E is returned if it does not belong to the initial face. + Standard_EXPORT const TopoDS_Edge& BasisEdge (const TopoDS_Edge& E) const; + + ChFi2d_ConstructionError Status() const; + + //! Update the result and set the Done flag + Standard_EXPORT virtual void Build() Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + ChFi2d_Builder myMakeChFi2d; + + +}; + + +#include + + + + + +#endif // _BRepFilletAPI_MakeFillet2d_HeaderFile diff --git a/src/BRepFilletAPI/FILES b/src/BRepFilletAPI/FILES new file mode 100644 index 0000000000..5763abed41 --- /dev/null +++ b/src/BRepFilletAPI/FILES @@ -0,0 +1,9 @@ +BRepFilletAPI_LocalOperation.cxx +BRepFilletAPI_LocalOperation.hxx +BRepFilletAPI_MakeChamfer.cxx +BRepFilletAPI_MakeChamfer.hxx +BRepFilletAPI_MakeFillet.cxx +BRepFilletAPI_MakeFillet.hxx +BRepFilletAPI_MakeFillet2d.cxx +BRepFilletAPI_MakeFillet2d.hxx +BRepFilletAPI_MakeFillet2d.lxx diff --git a/src/BRepGProp/BRepGProp.cdl b/src/BRepGProp/BRepGProp.cdl deleted file mode 100644 index d69d6ad188..0000000000 --- a/src/BRepGProp/BRepGProp.cdl +++ /dev/null @@ -1,232 +0,0 @@ --- Created on: 1992-12-04 --- Created by: Isabelle GRIGNON --- 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. - -package BRepGProp - - ---Purpose: Provides global functions to compute a shape's global --- properties for lines, surfaces or volumes, and bring --- them together with the global properties already --- computed for a geometric system. --- The global properties computed for a system are : --- - its mass, --- - its center of mass, --- - its matrix of inertia, --- - its moment about an axis, --- - its radius of gyration about an axis, --- - and its principal properties of inertia such as --- principal axis, principal moments, principal radius of gyration. - -uses GProp, - BRepAdaptor, - BRepTools, - BRep, - TopExp, - TopoDS, - Geom2dAdaptor, - gp, - GeomAbs, - TColStd - -is - - class EdgeTool; - - class Face; - - class Domain; - - class Cinert; - - class Sinert; - - class Vinert; - - class VinertGK; - - class UFunction; - class TFunction; - - -- - -- Package methods to compute global properties. - -- - - LinearProperties(S : Shape from TopoDS; LProps : in out GProps from GProp); - ---Purpose: Computes the linear global properties of the shape S, --- i.e. the global properties induced by each edge of the --- shape S, and brings them together with the global --- properties still retained by the framework LProps. If --- the current system of LProps was empty, its global --- properties become equal to the linear global --- properties of S. --- For this computation no linear density is attached to --- the edges. So, for example, the added mass --- corresponds to the sum of the lengths of the edges of --- S. The density of the composed systems, i.e. that of --- each component of the current system of LProps, and --- that of S which is considered to be equal to 1, must be coherent. --- Note that this coherence cannot be checked. You are --- advised to use a separate framework for each --- density, and then to bring these frameworks together --- into a global one. --- The point relative to which the inertia of the system is --- computed is the reference point of the framework LProps. --- Note: if your programming ensures that the framework --- LProps retains only linear global properties (brought --- together for example, by the function --- LinearProperties) for objects the density of which is --- equal to 1 (or is not defined), the function Mass will --- return the total length of edges of the system analysed by LProps. --- Warning --- No check is performed to verify that the shape S --- retains truly linear properties. If S is simply a vertex, it --- is not considered to present any additional global properties. - - SurfaceProperties(S : Shape from TopoDS; SProps : in out GProps from GProp); - ---Purpose: Computes the surface global properties of the --- shape S, i.e. the global properties induced by each --- face of the shape S, and brings them together with --- the global properties still retained by the framework --- SProps. If the current system of SProps was empty, --- its global properties become equal to the surface --- global properties of S. --- For this computation, no surface density is attached --- to the faces. Consequently, the added mass --- corresponds to the sum of the areas of the faces of --- S. The density of the component systems, i.e. that --- of each component of the current system of --- SProps, and that of S which is considered to be --- equal to 1, must be coherent. --- Note that this coherence cannot be checked. You --- are advised to use a framework for each different --- value of density, and then to bring these --- frameworks together into a global one. --- The point relative to which the inertia of the system --- is computed is the reference point of the framework SProps. --- Note : if your programming ensures that the --- framework SProps retains only surface global --- properties, brought together, for example, by the --- function SurfaceProperties, for objects the density --- of which is equal to 1 (or is not defined), the --- function Mass will return the total area of faces of --- the system analysed by SProps. --- Warning --- No check is performed to verify that the shape S --- retains truly surface properties. If S is simply a --- vertex, an edge or a wire, it is not considered to --- present any additional global properties. - - SurfaceProperties(S : Shape from TopoDS; SProps : in out GProps from GProp; - Eps: Real) returns Real; - ---Purpose: Updates with the shape , that contains its pricipal properties. - -- The surface properties of all the faces in are computed. - -- Adaptive 2D Gauss integration is used. - -- Parameter Eps sets maximal relative error of computed mass (area) for each face. - -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values - -- for two successive steps of adaptive integration. - -- Method returns estimation of relative error reached for whole shape. - -- WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. - - ------------------------- --- VolumeProperties -- ------------------------- - - ---Purpose: --- Computes the global volume properties of the solid --- S, and brings them together with the global --- properties still retained by the framework VProps. If --- the current system of VProps was empty, its global --- properties become equal to the global properties of S for volume. --- For this computation, no volume density is attached --- to the solid. Consequently, the added mass --- corresponds to the volume of S. The density of the --- component systems, i.e. that of each component of --- the current system of VProps, and that of S which --- is considered to be equal to 1, must be coherent to each other. --- Note that this coherence cannot be checked. You --- are advised to use a separate framework for each --- density, and then to bring these frameworks --- together into a global one. --- The point relative to which the inertia of the system --- is computed is the reference point of the framework VProps. --- Note: if your programming ensures that the --- framework VProps retains only global properties of --- volume (brought together for example, by the --- function VolumeProperties) for objects the density --- of which is equal to 1 (or is not defined), the --- function Mass will return the total volume of the --- solids of the system analysed by VProps. --- Warning --- The shape S must represent an object whose --- global volume properties can be computed. It may --- be a finite solid, or a series of finite solids all --- oriented in a coherent way. Nonetheless, S must be --- exempt of any free boundary. Note that these --- conditions of coherence are not checked by this --- algorithm, and results will be false if they are not respected. - VolumeProperties(S : Shape from TopoDS; VProps : in out GProps from GProp; - OnlyClosed: Boolean = Standard_False); - - VolumeProperties(S : Shape from TopoDS; VProps : in out GProps from GProp; - Eps: Real; OnlyClosed: Boolean = Standard_False) returns Real; - ---Purpose: Updates with the shape , that contains its pricipal properties. - -- The volume properties of all the FORWARD and REVERSED faces in are computed. - -- If OnlyClosed is True then computed faces must belong to closed Shells. - -- Adaptive 2D Gauss integration is used. - -- Parameter Eps sets maximal relative error of computed mass (volume) for each face. - -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values - -- for two successive steps of adaptive integration. - -- Method returns estimation of relative error reached for whole shape. - -- WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. - - - - - - --- ---------------------------------------------------------------------------------------- - VolumePropertiesGK(S : Shape from TopoDS; - VProps : in out GProps from GProp; - Eps : Real from Standard = 0.001; - OnlyClosed: Boolean from Standard = Standard_False; - IsUseSpan : Boolean from Standard = Standard_False; - CGFlag : Boolean from Standard = Standard_False; - IFlag : Boolean from Standard = Standard_False) - - returns Real; - ---Purpose: Updates with the shape , that contains its pricipal properties. - -- The volume properties of all the FORWARD and REVERSED faces in are computed. - -- If OnlyClosed is True then computed faces must belong to closed Shells. - -- Adaptive 2D Gauss integration is used. - -- Parameter IsUseSpan says if it is necessary to define spans on a face. - -- This option has an effect only for BSpline faces. - -- Parameter Eps sets maximal relative error of computed property for each face. - -- Error is delivered by the adaptive Gauss-Kronrod method of integral computation - -- that is used for properties computation. - -- Method returns estimation of relative error reached for whole shape. - -- Returns negative value if the computation is failed. - VolumePropertiesGK(S : Shape from TopoDS; - VProps : in out GProps from GProp; - thePln: Pln from gp; - Eps : Real from Standard = 0.001; - OnlyClosed: Boolean from Standard = Standard_False; - IsUseSpan : Boolean from Standard = Standard_False; - CGFlag : Boolean from Standard = Standard_False; - IFlag : Boolean from Standard = Standard_False) - returns Real; - -end BRepGProp; - diff --git a/src/BRepGProp/BRepGProp.hxx b/src/BRepGProp/BRepGProp.hxx new file mode 100644 index 0000000000..620998ffa0 --- /dev/null +++ b/src/BRepGProp/BRepGProp.hxx @@ -0,0 +1,227 @@ +// Created on: 1992-12-04 +// Created by: Isabelle GRIGNON +// 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 _BRepGProp_HeaderFile +#define _BRepGProp_HeaderFile + +#include +#include +#include + +#include +#include +class TopoDS_Shape; +class GProp_GProps; +class gp_Pln; +class BRepGProp_EdgeTool; +class BRepGProp_Face; +class BRepGProp_Domain; +class BRepGProp_Cinert; +class BRepGProp_Sinert; +class BRepGProp_Vinert; +class BRepGProp_VinertGK; +class BRepGProp_UFunction; +class BRepGProp_TFunction; + + +//! Provides global functions to compute a shape's global +//! properties for lines, surfaces or volumes, and bring +//! them together with the global properties already +//! computed for a geometric system. +//! The global properties computed for a system are : +//! - its mass, +//! - its center of mass, +//! - its matrix of inertia, +//! - its moment about an axis, +//! - its radius of gyration about an axis, +//! - and its principal properties of inertia such as +//! principal axis, principal moments, principal radius of gyration. +class BRepGProp +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Computes the linear global properties of the shape S, + //! i.e. the global properties induced by each edge of the + //! shape S, and brings them together with the global + //! properties still retained by the framework LProps. If + //! the current system of LProps was empty, its global + //! properties become equal to the linear global + //! properties of S. + //! For this computation no linear density is attached to + //! the edges. So, for example, the added mass + //! corresponds to the sum of the lengths of the edges of + //! S. The density of the composed systems, i.e. that of + //! each component of the current system of LProps, and + //! that of S which is considered to be equal to 1, must be coherent. + //! Note that this coherence cannot be checked. You are + //! advised to use a separate framework for each + //! density, and then to bring these frameworks together + //! into a global one. + //! The point relative to which the inertia of the system is + //! computed is the reference point of the framework LProps. + //! Note: if your programming ensures that the framework + //! LProps retains only linear global properties (brought + //! together for example, by the function + //! LinearProperties) for objects the density of which is + //! equal to 1 (or is not defined), the function Mass will + //! return the total length of edges of the system analysed by LProps. + //! Warning + //! No check is performed to verify that the shape S + //! retains truly linear properties. If S is simply a vertex, it + //! is not considered to present any additional global properties. + Standard_EXPORT static void LinearProperties (const TopoDS_Shape& S, GProp_GProps& LProps); + + //! Computes the surface global properties of the + //! shape S, i.e. the global properties induced by each + //! face of the shape S, and brings them together with + //! the global properties still retained by the framework + //! SProps. If the current system of SProps was empty, + //! its global properties become equal to the surface + //! global properties of S. + //! For this computation, no surface density is attached + //! to the faces. Consequently, the added mass + //! corresponds to the sum of the areas of the faces of + //! S. The density of the component systems, i.e. that + //! of each component of the current system of + //! SProps, and that of S which is considered to be + //! equal to 1, must be coherent. + //! Note that this coherence cannot be checked. You + //! are advised to use a framework for each different + //! value of density, and then to bring these + //! frameworks together into a global one. + //! The point relative to which the inertia of the system + //! is computed is the reference point of the framework SProps. + //! Note : if your programming ensures that the + //! framework SProps retains only surface global + //! properties, brought together, for example, by the + //! function SurfaceProperties, for objects the density + //! of which is equal to 1 (or is not defined), the + //! function Mass will return the total area of faces of + //! the system analysed by SProps. + //! Warning + //! No check is performed to verify that the shape S + //! retains truly surface properties. If S is simply a + //! vertex, an edge or a wire, it is not considered to + //! present any additional global properties. + Standard_EXPORT static void SurfaceProperties (const TopoDS_Shape& S, GProp_GProps& SProps); + + //! Updates with the shape , that contains its pricipal properties. + //! The surface properties of all the faces in are computed. + //! Adaptive 2D Gauss integration is used. + //! Parameter Eps sets maximal relative error of computed mass (area) for each face. + //! Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values + //! for two successive steps of adaptive integration. + //! Method returns estimation of relative error reached for whole shape. + //! WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. + //! + //! Computes the global volume properties of the solid + //! S, and brings them together with the global + //! properties still retained by the framework VProps. If + //! the current system of VProps was empty, its global + //! properties become equal to the global properties of S for volume. + //! For this computation, no volume density is attached + //! to the solid. Consequently, the added mass + //! corresponds to the volume of S. The density of the + //! component systems, i.e. that of each component of + //! the current system of VProps, and that of S which + //! is considered to be equal to 1, must be coherent to each other. + //! Note that this coherence cannot be checked. You + //! are advised to use a separate framework for each + //! density, and then to bring these frameworks + //! together into a global one. + //! The point relative to which the inertia of the system + //! is computed is the reference point of the framework VProps. + //! Note: if your programming ensures that the + //! framework VProps retains only global properties of + //! volume (brought together for example, by the + //! function VolumeProperties) for objects the density + //! of which is equal to 1 (or is not defined), the + //! function Mass will return the total volume of the + //! solids of the system analysed by VProps. + //! Warning + //! The shape S must represent an object whose + //! global volume properties can be computed. It may + //! be a finite solid, or a series of finite solids all + //! oriented in a coherent way. Nonetheless, S must be + //! exempt of any free boundary. Note that these + //! conditions of coherence are not checked by this + //! algorithm, and results will be false if they are not respected. + Standard_EXPORT static Standard_Real SurfaceProperties (const TopoDS_Shape& S, GProp_GProps& SProps, const Standard_Real Eps); + + Standard_EXPORT static void VolumeProperties (const TopoDS_Shape& S, GProp_GProps& VProps, const Standard_Boolean OnlyClosed = Standard_False); + + //! Updates with the shape , that contains its pricipal properties. + //! The volume properties of all the FORWARD and REVERSED faces in are computed. + //! If OnlyClosed is True then computed faces must belong to closed Shells. + //! Adaptive 2D Gauss integration is used. + //! Parameter Eps sets maximal relative error of computed mass (volume) for each face. + //! Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values + //! for two successive steps of adaptive integration. + //! Method returns estimation of relative error reached for whole shape. + //! WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. + Standard_EXPORT static Standard_Real VolumeProperties (const TopoDS_Shape& S, GProp_GProps& VProps, const Standard_Real Eps, const Standard_Boolean OnlyClosed = Standard_False); + + //! Updates with the shape , that contains its pricipal properties. + //! The volume properties of all the FORWARD and REVERSED faces in are computed. + //! If OnlyClosed is True then computed faces must belong to closed Shells. + //! Adaptive 2D Gauss integration is used. + //! Parameter IsUseSpan says if it is necessary to define spans on a face. + //! This option has an effect only for BSpline faces. + //! Parameter Eps sets maximal relative error of computed property for each face. + //! Error is delivered by the adaptive Gauss-Kronrod method of integral computation + //! that is used for properties computation. + //! Method returns estimation of relative error reached for whole shape. + //! Returns negative value if the computation is failed. + Standard_EXPORT static Standard_Real VolumePropertiesGK (const TopoDS_Shape& S, GProp_GProps& VProps, const Standard_Real Eps = 0.001, const Standard_Boolean OnlyClosed = Standard_False, const Standard_Boolean IsUseSpan = Standard_False, const Standard_Boolean CGFlag = Standard_False, const Standard_Boolean IFlag = Standard_False); + + Standard_EXPORT static Standard_Real VolumePropertiesGK (const TopoDS_Shape& S, GProp_GProps& VProps, const gp_Pln& thePln, const Standard_Real Eps = 0.001, const Standard_Boolean OnlyClosed = Standard_False, const Standard_Boolean IsUseSpan = Standard_False, const Standard_Boolean CGFlag = Standard_False, const Standard_Boolean IFlag = Standard_False); + + + + +protected: + + + + + +private: + + + + +friend class BRepGProp_EdgeTool; +friend class BRepGProp_Face; +friend class BRepGProp_Domain; +friend class BRepGProp_Cinert; +friend class BRepGProp_Sinert; +friend class BRepGProp_Vinert; +friend class BRepGProp_VinertGK; +friend class BRepGProp_UFunction; +friend class BRepGProp_TFunction; + +}; + + + + + + + +#endif // _BRepGProp_HeaderFile diff --git a/src/BRepGProp/BRepGProp_Cinert.cdl b/src/BRepGProp/BRepGProp_Cinert.cdl deleted file mode 100644 index 6c4a032629..0000000000 --- a/src/BRepGProp/BRepGProp_Cinert.cdl +++ /dev/null @@ -1,46 +0,0 @@ --- Created on: 1991-04-11 --- Created by: Michel CHAUVAT --- 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. - --- Jean-Claude Vauthier January 1992, September 1992 - - -class Cinert from BRepGProp inherits GProps from GProp - - --- Purpose : - -- Computes the global properties of bounded curves - -- in 3D space. The curve must have at least a continuity C1. - -- It can be a curve as defined in the template CurveTool from - -- package GProp. This template gives the minimum of methods - -- required to evaluate the global properties of a curve 3D with - -- the algorithmes of GProp. - -uses Pnt from gp, - Curve from BRepAdaptor, - EdgeTool from BRepGProp - -is - - Create returns Cinert; - - Create (C : Curve from BRepAdaptor; CLocation : Pnt) returns Cinert; - - SetLocation(me : in out;CLocation : Pnt) ; - - Perform(me : in out; C : Curve from BRepAdaptor); - -end Cinert; - - diff --git a/src/BRepGProp/BRepGProp_Cinert.cxx b/src/BRepGProp/BRepGProp_Cinert.cxx index cd1ae71348..c9b349e293 100644 --- a/src/BRepGProp/BRepGProp_Cinert.cxx +++ b/src/BRepGProp/BRepGProp_Cinert.cxx @@ -12,11 +12,13 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include +#include +#include +#include #include #include -#include BRepGProp_Cinert::BRepGProp_Cinert(){} diff --git a/src/BRepGProp/BRepGProp_Cinert.hxx b/src/BRepGProp/BRepGProp_Cinert.hxx new file mode 100644 index 0000000000..387c354476 --- /dev/null +++ b/src/BRepGProp/BRepGProp_Cinert.hxx @@ -0,0 +1,74 @@ +// Created on: 1991-04-11 +// Created by: Michel CHAUVAT +// 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 _BRepGProp_Cinert_HeaderFile +#define _BRepGProp_Cinert_HeaderFile + +#include +#include +#include + +#include +class BRepAdaptor_Curve; +class gp_Pnt; + + + +//! Computes the global properties of bounded curves +//! in 3D space. The curve must have at least a continuity C1. +//! It can be a curve as defined in the template CurveTool from +//! package GProp. This template gives the minimum of methods +//! required to evaluate the global properties of a curve 3D with +//! the algorithmes of GProp. +class BRepGProp_Cinert : public GProp_GProps +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepGProp_Cinert(); + + Standard_EXPORT BRepGProp_Cinert(const BRepAdaptor_Curve& C, const gp_Pnt& CLocation); + + Standard_EXPORT void SetLocation (const gp_Pnt& CLocation); + + Standard_EXPORT void Perform (const BRepAdaptor_Curve& C); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepGProp_Cinert_HeaderFile diff --git a/src/BRepGProp/BRepGProp_Domain.cdl b/src/BRepGProp/BRepGProp_Domain.cdl deleted file mode 100644 index 872a79129d..0000000000 --- a/src/BRepGProp/BRepGProp_Domain.cdl +++ /dev/null @@ -1,70 +0,0 @@ --- Created on: 1992-11-27 --- Created by: Isabelle GRIGNON --- 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. - -class Domain from BRepGProp - - ---Purpose: Arc iterator. Returns only Forward and Reversed edges from - -- the face in an undigested order. - -uses Face from TopoDS, - Edge from TopoDS, - Explorer from TopExp -is - - Create returns Domain; - --- Purpose : Empty constructor. - ---C++: inline - - Create (F : Face from TopoDS) returns Domain; - --- Purpose : Constructor. Initializes the domain with the face. - ---C++: inline - - Init(me : in out;F : Face from TopoDS); - --- Purpose : Initializes the domain with the face. - ---C++: inline - - More(me : in out) returns Boolean from Standard - --- Purpose : - -- Returns True if there is another arc of curve in the list. - ---C++: inline - is static; - - Init(me : in out) - --- Purpose : Initializes the exploration with the face already set. - ---C++: inline - is static; - - Value(me : in out) returns Edge from TopoDS - ---Purpose: Returns the current edge. - ---C++: return const & - ---C++: inline - is static; - - Next(me : in out) - --- Purpose : - -- Sets the index of the arc iterator to the next arc of - -- curve. - is static; - -fields - - myExplorer : Explorer from TopExp; - -end Domain; - - - - diff --git a/src/BRepGProp/BRepGProp_Domain.cxx b/src/BRepGProp/BRepGProp_Domain.cxx index fcc0326c01..3e31b7816e 100644 --- a/src/BRepGProp/BRepGProp_Domain.cxx +++ b/src/BRepGProp/BRepGProp_Domain.cxx @@ -14,13 +14,15 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include //======================================================================= //function : Next //purpose : Sets the index of the arc iterator to the next arc of curve. //======================================================================= - void BRepGProp_Domain::Next () { // skip INTERNAL and EXTERNAL edges diff --git a/src/BRepGProp/BRepGProp_Domain.hxx b/src/BRepGProp/BRepGProp_Domain.hxx new file mode 100644 index 0000000000..133c6dd079 --- /dev/null +++ b/src/BRepGProp/BRepGProp_Domain.hxx @@ -0,0 +1,88 @@ +// Created on: 1992-11-27 +// Created by: Isabelle GRIGNON +// 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 _BRepGProp_Domain_HeaderFile +#define _BRepGProp_Domain_HeaderFile + +#include +#include +#include + +#include +#include +class TopoDS_Face; +class TopoDS_Edge; + + +//! Arc iterator. Returns only Forward and Reversed edges from +//! the face in an undigested order. +class BRepGProp_Domain +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor. + BRepGProp_Domain(); + + //! Constructor. Initializes the domain with the face. + BRepGProp_Domain(const TopoDS_Face& F); + + //! Initializes the domain with the face. + void Init (const TopoDS_Face& F); + + + //! Returns True if there is another arc of curve in the list. + Standard_Boolean More(); + + //! Initializes the exploration with the face already set. + void Init(); + + //! Returns the current edge. + const TopoDS_Edge& Value(); + + + //! Sets the index of the arc iterator to the next arc of + //! curve. + Standard_EXPORT void Next(); + + + + +protected: + + + + + +private: + + + + TopExp_Explorer myExplorer; + + +}; + + +#include + + + + + +#endif // _BRepGProp_Domain_HeaderFile diff --git a/src/BRepGProp/BRepGProp_EdgeTool.cdl b/src/BRepGProp/BRepGProp_EdgeTool.cdl deleted file mode 100644 index 92cba5cd03..0000000000 --- a/src/BRepGProp/BRepGProp_EdgeTool.cdl +++ /dev/null @@ -1,81 +0,0 @@ --- Created on: 1993-12-07 --- 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. - -class EdgeTool from BRepGProp - - --- Purpose : Provides the required methods to instantiate - -- CGProps from GProp with a Curve from BRepAdaptor. - -uses Pnt from gp, - Vec from gp, - Curve from BRepAdaptor, - Shape from GeomAbs, - Array1OfReal from TColStd -raises - OutOfRange from Standard - -is - - - FirstParameter (myclass; C : Curve from BRepAdaptor) returns Real; - --- Purpose : - -- Returns the parametric value of the start point of - -- the curve. The curve is oriented from the start point - -- to the end point. - - - LastParameter (myclass; C : Curve from BRepAdaptor) returns Real; - --- Purpose : - -- Returns the parametric value of the end point of - -- the curve. The curve is oriented from the start point - -- to the end point. - - - IntegrationOrder (myclass; C : Curve from BRepAdaptor) returns Integer; - --- Purpose : - -- Returns the number of Gauss points required to do - -- the integration with a good accuracy using the - -- Gauss method. For a polynomial curve of degree n - -- the maxima of accuracy is obtained with an order - -- of integration equal to 2*n-1. - - - Value (myclass; C : Curve from BRepAdaptor; U : Real) returns Pnt; - --- Purpose : Returns the point of parameter U on the loaded curve. - - - D1 (myclass; C : Curve from BRepAdaptor; U: Real; P: out Pnt; V1: out Vec); - --- Purpose : - -- Returns the point of parameter U and the first derivative - -- at this point. - - NbIntervals(myclass; C : Curve from BRepAdaptor; S : Shape from GeomAbs) - ---Purpose: Returns the number of intervals for continuity - -- . May be one if Continuity(me) >= - returns Integer; - - Intervals(myclass; C : Curve from BRepAdaptor; - T : in out Array1OfReal from TColStd; - S : Shape from GeomAbs) - ---Purpose: Stores in the parameters bounding the intervals - -- of continuity . - -- - -- The array must provide enough room to accomodate - -- for the parameters. i.e. T.Length() > NbIntervals() - raises - OutOfRange from Standard; - -end EdgeTool; diff --git a/src/BRepGProp/BRepGProp_EdgeTool.cxx b/src/BRepGProp/BRepGProp_EdgeTool.cxx index f243338f9c..c76af72509 100644 --- a/src/BRepGProp/BRepGProp_EdgeTool.cxx +++ b/src/BRepGProp/BRepGProp_EdgeTool.cxx @@ -12,11 +12,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include + +#include +#include #include #include +#include +#include +#include +#include +#include Standard_Real BRepGProp_EdgeTool::FirstParameter(const BRepAdaptor_Curve& C) { diff --git a/src/BRepGProp/BRepGProp_EdgeTool.hxx b/src/BRepGProp/BRepGProp_EdgeTool.hxx new file mode 100644 index 0000000000..693087b58a --- /dev/null +++ b/src/BRepGProp/BRepGProp_EdgeTool.hxx @@ -0,0 +1,105 @@ +// Created on: 1993-12-07 +// 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 _BRepGProp_EdgeTool_HeaderFile +#define _BRepGProp_EdgeTool_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class Standard_OutOfRange; +class BRepAdaptor_Curve; +class gp_Pnt; +class gp_Vec; + + +//! Provides the required methods to instantiate +//! CGProps from GProp with a Curve from BRepAdaptor. +class BRepGProp_EdgeTool +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Returns the parametric value of the start point of + //! the curve. The curve is oriented from the start point + //! to the end point. + Standard_EXPORT static Standard_Real FirstParameter (const BRepAdaptor_Curve& C); + + + //! Returns the parametric value of the end point of + //! the curve. The curve is oriented from the start point + //! to the end point. + Standard_EXPORT static Standard_Real LastParameter (const BRepAdaptor_Curve& C); + + + //! Returns the number of Gauss points required to do + //! the integration with a good accuracy using the + //! Gauss method. For a polynomial curve of degree n + //! the maxima of accuracy is obtained with an order + //! of integration equal to 2*n-1. + Standard_EXPORT static Standard_Integer IntegrationOrder (const BRepAdaptor_Curve& C); + + //! Returns the point of parameter U on the loaded curve. + Standard_EXPORT static gp_Pnt Value (const BRepAdaptor_Curve& C, const Standard_Real U); + + + //! Returns the point of parameter U and the first derivative + //! at this point. + Standard_EXPORT static void D1 (const BRepAdaptor_Curve& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V1); + + //! Returns the number of intervals for continuity + //! . May be one if Continuity(me) >= + Standard_EXPORT static Standard_Integer NbIntervals (const BRepAdaptor_Curve& C, const GeomAbs_Shape S); + + //! Stores in the parameters bounding the intervals + //! of continuity . + //! + //! The array must provide enough room to accomodate + //! for the parameters. i.e. T.Length() > NbIntervals() + Standard_EXPORT static void Intervals (const BRepAdaptor_Curve& C, TColStd_Array1OfReal& T, const GeomAbs_Shape S); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepGProp_EdgeTool_HeaderFile diff --git a/src/BRepGProp/BRepGProp_Face.cdl b/src/BRepGProp/BRepGProp_Face.cdl deleted file mode 100644 index bdc9ddab11..0000000000 --- a/src/BRepGProp/BRepGProp_Face.cdl +++ /dev/null @@ -1,176 +0,0 @@ --- Created on: 1993-04-14 --- Created by: Isabelle GRIGNON --- 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. - -class Face from BRepGProp - -uses Pnt2d from gp, - Vec2d from gp, - Pnt from gp, - Vec from gp, - Edge from TopoDS, - Face from TopoDS, - Surface from BRepAdaptor, - Curve from Geom2dAdaptor, - Array1OfReal from TColStd, - HArray1OfReal from TColStd, - IsoType from GeomAbs - -is - - Create (IsUseSpan: Boolean from Standard = Standard_False) - ---Purpose: Constructor. Initializes the object with a flag IsUseSpan - -- that says if it is necessary to define spans on a face. - -- This option has an effect only for BSpline faces. Spans - -- are returned by the methods GetUKnots and GetTKnots. - ---C++: inline - returns Face from BRepGProp; - - Create(F : Face from TopoDS; - IsUseSpan: Boolean from Standard = Standard_False) - ---Purpose: Constructor. Initializes the object with the face and the - -- flag IsUseSpan that says if it is necessary to define - -- spans on a face. This option has an effect only for - -- BSpline faces. Spans are returned by the methods GetUKnots - -- and GetTKnots. - ---C++: inline - returns Face from BRepGProp; - - Load(me : in out; F : Face from TopoDS) - is static; - - VIntegrationOrder (me) returns Integer - is static; - - NaturalRestriction(me) returns Boolean - ---Purpose: Returns Standard_True if the face is not trimmed. - ---C++: inline - is static; - - Value2d (me; U :Real) returns Pnt2d from gp - ---Purpose: Returns the value of the boundary curve of the face. - ---C++: inline - is static; - - SIntOrder (me; Eps :Real) returns Integer - is static; - SVIntSubs (me) returns Integer - is static; - SUIntSubs (me) returns Integer - is static; - UKnots(me; Knots : out Array1OfReal from TColStd) - is static; - VKnots(me; Knots : out Array1OfReal from TColStd) - is static; - LIntOrder (me; Eps :Real) returns Integer - is static; - LIntSubs (me) returns Integer - is static; - LKnots(me; Knots : out Array1OfReal from TColStd) - is static; - - -- - -- Methods required by GProp - -- - - UIntegrationOrder (me) returns Integer - ---Purpose: Returns the number of points required to do the - -- integration in the U parametric direction with - -- a good accuracy. - is static; - - Bounds(me; U1,U2,V1,V2 : out Real) - ---Purpose: Returns the parametric bounds of the Face. - is static; - - Normal (me; U, V : Real; P : out Pnt; VNor: out Vec) - ---Purpose: Computes the point of parameter U, V on the Face and - -- the normal to the face at this point. - is static; - - Load(me : in out; E : Edge from TopoDS) - ---Purpose: Loading the boundary arc. - is static; - - FirstParameter (me) returns Real - ---Purpose: Returns the parametric value of the start point of - -- the current arc of curve. - ---C++: inline - is static; - - LastParameter (me) returns Real - ---Purpose: Returns the parametric value of the end point of - -- the current arc of curve. - ---C++: inline - is static; - - IntegrationOrder (me) returns Integer - ---Purpose: Returns the number of points required to do the - -- integration along the parameter of curve. - is static; - - D12d (me; U : Real ;P : out Pnt2d from gp ; - V1 : out Vec2d from gp) - ---Purpose: Returns the point of parameter U and the first derivative - -- at this point of a boundary curve. - ---C++: inline - is static; - --- Modified by skv - Fri Dec 9 16:44:00 2005 Begin - Load(me : in out; IsFirstParam: Boolean from Standard; - theIsoType : IsoType from GeomAbs); - ---Purpose: Loading the boundary arc. This arc is either a top, bottom, - -- left or right bound of a UV rectangle in which the - -- parameters of surface are defined. - -- If IsFirstParam is equal to Standard_True, the face is - -- initialized by either left of bottom bound. Otherwise it is - -- initialized by the top or right one. - -- If theIsoType is equal to GeomAbs_IsoU, the face is - -- initialized with either left or right bound. Otherwise - - -- with either top or bottom one. - - GetUKnots(me; theUMin : Real from Standard; - theUMax : Real from Standard; - theUKnots: in out HArray1OfReal from TColStd); - ---Purpose: Returns an array of U knots of the face. The first and last - -- elements of the array will be theUMin and theUMax. The - -- middle elements will be the U Knots of the face greater - -- then theUMin and lower then theUMax in increasing order. - -- If the face is not a BSpline, the array initialized with - -- theUMin and theUMax only. - - GetTKnots(me; theTMin : Real from Standard; - theTMax : Real from Standard; - theTKnots: in out HArray1OfReal from TColStd); - ---Purpose: Returns an array of combination of T knots of the arc and - -- V knots of the face. The first and last elements of the - -- array will be theTMin and theTMax. The middle elements will - -- be the Knots of the arc and the values of parameters of - -- arc on which the value points have V coordinates close to V - -- knots of face. All the parameter will be greater then - -- theTMin and lower then theTMax in increasing order. - -- If the face is not a BSpline, the array initialized with - -- theTMin and theTMax only. - --- Modified by skv - Fri Dec 9 16:44:00 2005 End - -fields - - mySurface : Surface from BRepAdaptor; - myCurve : Curve from Geom2dAdaptor; - mySReverse : Boolean from Standard; - myIsUseSpan: Boolean from Standard; - -end Face; diff --git a/src/BRepGProp/BRepGProp_Face.cxx b/src/BRepGProp/BRepGProp_Face.cxx index a9486dcc76..0ce1303e6a 100644 --- a/src/BRepGProp/BRepGProp_Face.cxx +++ b/src/BRepGProp/BRepGProp_Face.cxx @@ -12,31 +12,32 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include - -#include +#include +#include +#include #include #include -#include +#include #include +#include #include #include - -#include - -#include -#include #include - +#include +#include +#include +#include +#include #include +#include +#include +#include //======================================================================= //function : UIntegrationOrder //purpose : //======================================================================= - Standard_Integer BRepGProp_Face::UIntegrationOrder() const { Standard_Integer Nu; diff --git a/src/BRepGProp/BRepGProp_Face.hxx b/src/BRepGProp/BRepGProp_Face.hxx new file mode 100644 index 0000000000..96416f936a --- /dev/null +++ b/src/BRepGProp/BRepGProp_Face.hxx @@ -0,0 +1,177 @@ +// Created on: 1993-04-14 +// Created by: Isabelle GRIGNON +// 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 _BRepGProp_Face_HeaderFile +#define _BRepGProp_Face_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class TopoDS_Face; +class gp_Pnt; +class gp_Vec; +class TopoDS_Edge; +class gp_Pnt2d; +class gp_Vec2d; + + + +class BRepGProp_Face +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Constructor. Initializes the object with a flag IsUseSpan + //! that says if it is necessary to define spans on a face. + //! This option has an effect only for BSpline faces. Spans + //! are returned by the methods GetUKnots and GetTKnots. + BRepGProp_Face(const Standard_Boolean IsUseSpan = Standard_False); + + //! Constructor. Initializes the object with the face and the + //! flag IsUseSpan that says if it is necessary to define + //! spans on a face. This option has an effect only for + //! BSpline faces. Spans are returned by the methods GetUKnots + //! and GetTKnots. + BRepGProp_Face(const TopoDS_Face& F, const Standard_Boolean IsUseSpan = Standard_False); + + Standard_EXPORT void Load (const TopoDS_Face& F); + + Standard_EXPORT Standard_Integer VIntegrationOrder() const; + + //! Returns Standard_True if the face is not trimmed. + Standard_Boolean NaturalRestriction() const; + + //! Returns the value of the boundary curve of the face. + gp_Pnt2d Value2d (const Standard_Real U) const; + + Standard_EXPORT Standard_Integer SIntOrder (const Standard_Real Eps) const; + + Standard_EXPORT Standard_Integer SVIntSubs() const; + + Standard_EXPORT Standard_Integer SUIntSubs() const; + + Standard_EXPORT void UKnots (TColStd_Array1OfReal& Knots) const; + + Standard_EXPORT void VKnots (TColStd_Array1OfReal& Knots) const; + + Standard_EXPORT Standard_Integer LIntOrder (const Standard_Real Eps) const; + + Standard_EXPORT Standard_Integer LIntSubs() const; + + Standard_EXPORT void LKnots (TColStd_Array1OfReal& Knots) const; + + //! Returns the number of points required to do the + //! integration in the U parametric direction with + //! a good accuracy. + Standard_EXPORT Standard_Integer UIntegrationOrder() const; + + //! Returns the parametric bounds of the Face. + Standard_EXPORT void Bounds (Standard_Real& U1, Standard_Real& U2, Standard_Real& V1, Standard_Real& V2) const; + + //! Computes the point of parameter U, V on the Face and + //! the normal to the face at this point. + Standard_EXPORT void Normal (const Standard_Real U, const Standard_Real V, gp_Pnt& P, gp_Vec& VNor) const; + + //! Loading the boundary arc. + Standard_EXPORT void Load (const TopoDS_Edge& E); + + //! Returns the parametric value of the start point of + //! the current arc of curve. + Standard_Real FirstParameter() const; + + //! Returns the parametric value of the end point of + //! the current arc of curve. + Standard_Real LastParameter() const; + + //! Returns the number of points required to do the + //! integration along the parameter of curve. + Standard_EXPORT Standard_Integer IntegrationOrder() const; + + //! Returns the point of parameter U and the first derivative + //! at this point of a boundary curve. + void D12d (const Standard_Real U, gp_Pnt2d& P, gp_Vec2d& V1) const; + + //! Loading the boundary arc. This arc is either a top, bottom, + //! left or right bound of a UV rectangle in which the + //! parameters of surface are defined. + //! If IsFirstParam is equal to Standard_True, the face is + //! initialized by either left of bottom bound. Otherwise it is + //! initialized by the top or right one. + //! If theIsoType is equal to GeomAbs_IsoU, the face is + //! initialized with either left or right bound. Otherwise - + //! with either top or bottom one. + Standard_EXPORT void Load (const Standard_Boolean IsFirstParam, const GeomAbs_IsoType theIsoType); + + //! Returns an array of U knots of the face. The first and last + //! elements of the array will be theUMin and theUMax. The + //! middle elements will be the U Knots of the face greater + //! then theUMin and lower then theUMax in increasing order. + //! If the face is not a BSpline, the array initialized with + //! theUMin and theUMax only. + Standard_EXPORT void GetUKnots (const Standard_Real theUMin, const Standard_Real theUMax, Handle(TColStd_HArray1OfReal)& theUKnots) const; + + //! Returns an array of combination of T knots of the arc and + //! V knots of the face. The first and last elements of the + //! array will be theTMin and theTMax. The middle elements will + //! be the Knots of the arc and the values of parameters of + //! arc on which the value points have V coordinates close to V + //! knots of face. All the parameter will be greater then + //! theTMin and lower then theTMax in increasing order. + //! If the face is not a BSpline, the array initialized with + //! theTMin and theTMax only. + Standard_EXPORT void GetTKnots (const Standard_Real theTMin, const Standard_Real theTMax, Handle(TColStd_HArray1OfReal)& theTKnots) const; + + + + +protected: + + + + + +private: + + + + BRepAdaptor_Surface mySurface; + Geom2dAdaptor_Curve myCurve; + Standard_Boolean mySReverse; + Standard_Boolean myIsUseSpan; + + +}; + + +#include + + + + + +#endif // _BRepGProp_Face_HeaderFile diff --git a/src/BRepGProp/BRepGProp_Sinert.cdl b/src/BRepGProp/BRepGProp_Sinert.cdl deleted file mode 100644 index 31dd2c3e11..0000000000 --- a/src/BRepGProp/BRepGProp_Sinert.cdl +++ /dev/null @@ -1,62 +0,0 @@ --- Created on: 1991-04-12 --- Created by: Michel CHAUVAT --- 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. - --- Jean-Claude VAUTHIER January 1992 - - -class Sinert from BRepGProp inherits GProps - - --- Purpose : - -- Computes the global properties of a face in 3D space. - -- The face 's requirements to evaluate the global properties - -- are defined in the template FaceTool from package GProp. - -uses Pnt from gp, - Edge from TopoDS, - Face from BRepGProp, - Domain from BRepGProp -is - - Create returns Sinert; - - Create (S: Face; SLocation: Pnt) returns Sinert; - Create (S : in out Face; D : in out Domain; SLocation : Pnt) returns Sinert; - --- Purpose : - -- Builds a Sinert to evaluate the global properties of - -- the face . If isNaturalRestriction is true the domain of S is defined - -- with the natural bounds, else it defined with an iterator - -- of Edge from TopoDS (see DomainTool from GProp) - Create (S: in out Face; SLocation: Pnt; Eps: Real) returns Sinert; - Create (S: in out Face; D : in out Domain; SLocation: Pnt; Eps: Real) returns Sinert; - -- --"-- - -- Parameter Eps sets maximal relative error of computed area. - - SetLocation(me: in out; SLocation: Pnt); - - Perform(me: in out; S: Face); - Perform(me : in out; S : in out Face ; D : in out Domain); - Perform(me: in out; S: in out Face; Eps: Real) returns Real; - Perform(me: in out; S: in out Face; D : in out Domain; Eps: Real) returns Real; - - GetEpsilon(me: out) returns Real; - --- Purpose : - -- If previously used method contained Eps parameter - -- get actual relative error of the computation, else return 1.0. -fields - - myEpsilon: Real from Standard; - -end Sinert; diff --git a/src/BRepGProp/BRepGProp_Sinert.cxx b/src/BRepGProp/BRepGProp_Sinert.cxx index b1928c1ce1..84cab88c5b 100644 --- a/src/BRepGProp/BRepGProp_Sinert.cxx +++ b/src/BRepGProp/BRepGProp_Sinert.cxx @@ -12,8 +12,12 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include + +#include +#include +#include +#include +#include //======================================================================= //function : BRepGProp_Sinert diff --git a/src/BRepGProp/BRepGProp_Sinert.hxx b/src/BRepGProp/BRepGProp_Sinert.hxx new file mode 100644 index 0000000000..7fe9238a58 --- /dev/null +++ b/src/BRepGProp/BRepGProp_Sinert.hxx @@ -0,0 +1,96 @@ +// Created on: 1991-04-12 +// Created by: Michel CHAUVAT +// 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 _BRepGProp_Sinert_HeaderFile +#define _BRepGProp_Sinert_HeaderFile + +#include +#include +#include + +#include +#include +class BRepGProp_Face; +class gp_Pnt; +class BRepGProp_Domain; + + + +//! Computes the global properties of a face in 3D space. +//! The face 's requirements to evaluate the global properties +//! are defined in the template FaceTool from package GProp. +class BRepGProp_Sinert : public GProp_GProps +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepGProp_Sinert(); + + Standard_EXPORT BRepGProp_Sinert(const BRepGProp_Face& S, const gp_Pnt& SLocation); + + + //! Builds a Sinert to evaluate the global properties of + //! the face . If isNaturalRestriction is true the domain of S is defined + //! with the natural bounds, else it defined with an iterator + //! of Edge from TopoDS (see DomainTool from GProp) + Standard_EXPORT BRepGProp_Sinert(BRepGProp_Face& S, BRepGProp_Domain& D, const gp_Pnt& SLocation); + + Standard_EXPORT BRepGProp_Sinert(BRepGProp_Face& S, const gp_Pnt& SLocation, const Standard_Real Eps); + + Standard_EXPORT BRepGProp_Sinert(BRepGProp_Face& S, BRepGProp_Domain& D, const gp_Pnt& SLocation, const Standard_Real Eps); + + Standard_EXPORT void SetLocation (const gp_Pnt& SLocation); + + Standard_EXPORT void Perform (const BRepGProp_Face& S); + + Standard_EXPORT void Perform (BRepGProp_Face& S, BRepGProp_Domain& D); + + Standard_EXPORT Standard_Real Perform (BRepGProp_Face& S, const Standard_Real Eps); + + Standard_EXPORT Standard_Real Perform (BRepGProp_Face& S, BRepGProp_Domain& D, const Standard_Real Eps); + + + //! If previously used method contained Eps parameter + //! get actual relative error of the computation, else return 1.0. + Standard_EXPORT Standard_Real GetEpsilon(); + + + + +protected: + + + + + +private: + + + + Standard_Real myEpsilon; + + +}; + + + + + + + +#endif // _BRepGProp_Sinert_HeaderFile diff --git a/src/BRepGProp/BRepGProp_TFunction.cdl b/src/BRepGProp/BRepGProp_TFunction.cdl deleted file mode 100644 index 9ce55cc418..0000000000 --- a/src/BRepGProp/BRepGProp_TFunction.cdl +++ /dev/null @@ -1,126 +0,0 @@ --- Created on: 2005-12-21 --- Created by: Sergey KHROMOV --- Copyright (c) 2005-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. - -class TFunction from BRepGProp inherits Function from math - - ---Purpose: This class represents the integrand function for the outer - -- integral computation. The returned value represents the - -- integral of UFunction. It depends on the value type and the - -- flag IsByPoint. - -uses - - Pnt from gp, - Address from Standard, - Boolean from Standard, - Integer from Standard, - Real from Standard, - ValueType from GProp, - UFunction from BRepGProp, - Face from BRepGProp - -is - - Create(theSurface : Face from BRepGProp; - theVertex : Pnt from gp; - IsByPoint : Boolean from Standard; - theCoeffs : Address from Standard; - theUMin : Real from Standard; - theTolerance: Real from Standard) - ---Purpose: Constructor. Initializes the function with the face, the - -- location point, the flag IsByPoint, the coefficients - -- theCoeff that have different meaning depending on the value - -- of IsByPoint. The last two parameters are theUMin - the - -- lower bound of the inner integral. This value is fixed for - -- any integral. And the value of tolerance of inner integral - -- computation. - -- If IsByPoint is equal to Standard_True, the number of the - -- coefficients is equal to 3 and they represent X, Y and Z - -- coordinates (theCoeff[0], theCoeff[1] and theCoeff[2] - -- correspondingly) of the shift if the inertia is computed - -- with respect to the point different then the location. - -- If IsByPoint is equal to Standard_False, the number of the - -- coefficients is 4 and they represent the compbination of - -- plane parameters and shift values. - returns TFunction from BRepGProp; - - Init(me: in out); - - SetNbKronrodPoints(me: in out; theNbPoints: Integer from Standard); - ---Purpose: Setting the expected number of Kronrod points for the outer - -- integral computation. This number is required for - -- computation of a value of tolerance for inner integral - -- computation. After GetStateNumber method call, this number - -- is recomputed by the same law as in - -- math_KronrodSingleIntegration, i.e. next number of points - -- is equal to the current number plus a square root of the - -- current number. If the law in math_KronrodSingleIntegration - -- is changed, the modification algo should be modified - -- accordingly. - ---C++: inline - - SetValueType(me: in out; aType: ValueType from GProp); - ---Purpose: Setting the type of the value to be returned. This - -- parameter is directly passed to the UFunction. - ---C++: inline - - SetTolerance(me: in out; aTol: Real from Standard); - ---Purpose: Setting the tolerance for inner integration - ---C++: inline - - ErrorReached(me) - ---Purpose: Returns the relative reached error of all values computation since - -- the last call of GetStateNumber method. - ---C++: inline - returns Real from Standard; - - AbsolutError(me) - ---Purpose: Returns the absolut reached error of all values computation since - -- the last call of GetStateNumber method. - ---C++: inline - returns Real from Standard; - - Value(me: in out; X: Real from Standard; - F: out Real from Standard) - ---Purpose: Returns a value of the function. The value represents an - -- integral of UFunction. It is computed with the predefined - -- tolerance using the adaptive Gauss-Kronrod method. - returns Boolean from Standard - is redefined; - - GetStateNumber(me: in out) - ---Purpose: Redefined method. Remembers the error reached during - -- computation of integral values since the object creation - -- or the last call of GetStateNumber. It is invoked in each - -- algorithm from the package math. Particularly in the - -- algorithm math_KronrodSingleIntegration that is used to - -- compute the integral of TFunction. - returns Integer - is redefined; - -fields - - mySurface : Face from BRepGProp; - myUFunction : UFunction from BRepGProp; - myUMin : Real from Standard; - myTolerance : Real from Standard; - myTolReached: Real from Standard; - myErrReached: Real from Standard; - myAbsError : Real from Standard; - myValueType : ValueType from GProp; - myIsByPoint : Boolean from Standard; - myNbPntOuter: Integer from Standard; - -end TFunction; diff --git a/src/BRepGProp/BRepGProp_TFunction.cxx b/src/BRepGProp/BRepGProp_TFunction.cxx index af020dc7ca..f544b0f6eb 100644 --- a/src/BRepGProp/BRepGProp_TFunction.cxx +++ b/src/BRepGProp/BRepGProp_TFunction.cxx @@ -13,17 +13,18 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include +#include +#include +#include #include #include +#include //======================================================================= //function : Constructor. //purpose : //======================================================================= - BRepGProp_TFunction::BRepGProp_TFunction(const BRepGProp_Face &theSurface, const gp_Pnt &theVertex, const Standard_Boolean IsByPoint, diff --git a/src/BRepGProp/BRepGProp_TFunction.hxx b/src/BRepGProp/BRepGProp_TFunction.hxx new file mode 100644 index 0000000000..a9c298c2af --- /dev/null +++ b/src/BRepGProp/BRepGProp_TFunction.hxx @@ -0,0 +1,139 @@ +// Created on: 2005-12-21 +// Created by: Sergey KHROMOV +// Copyright (c) 2005-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 _BRepGProp_TFunction_HeaderFile +#define _BRepGProp_TFunction_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class BRepGProp_Face; +class gp_Pnt; + + +//! This class represents the integrand function for the outer +//! integral computation. The returned value represents the +//! integral of UFunction. It depends on the value type and the +//! flag IsByPoint. +class BRepGProp_TFunction : public math_Function +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Constructor. Initializes the function with the face, the + //! location point, the flag IsByPoint, the coefficients + //! theCoeff that have different meaning depending on the value + //! of IsByPoint. The last two parameters are theUMin - the + //! lower bound of the inner integral. This value is fixed for + //! any integral. And the value of tolerance of inner integral + //! computation. + //! If IsByPoint is equal to Standard_True, the number of the + //! coefficients is equal to 3 and they represent X, Y and Z + //! coordinates (theCoeff[0], theCoeff[1] and theCoeff[2] + //! correspondingly) of the shift if the inertia is computed + //! with respect to the point different then the location. + //! If IsByPoint is equal to Standard_False, the number of the + //! coefficients is 4 and they represent the compbination of + //! plane parameters and shift values. + Standard_EXPORT BRepGProp_TFunction(const BRepGProp_Face& theSurface, const gp_Pnt& theVertex, const Standard_Boolean IsByPoint, const Standard_Address theCoeffs, const Standard_Real theUMin, const Standard_Real theTolerance); + + Standard_EXPORT void Init(); + + //! Setting the expected number of Kronrod points for the outer + //! integral computation. This number is required for + //! computation of a value of tolerance for inner integral + //! computation. After GetStateNumber method call, this number + //! is recomputed by the same law as in + //! math_KronrodSingleIntegration, i.e. next number of points + //! is equal to the current number plus a square root of the + //! current number. If the law in math_KronrodSingleIntegration + //! is changed, the modification algo should be modified + //! accordingly. + void SetNbKronrodPoints (const Standard_Integer theNbPoints); + + //! Setting the type of the value to be returned. This + //! parameter is directly passed to the UFunction. + void SetValueType (const GProp_ValueType aType); + + //! Setting the tolerance for inner integration + void SetTolerance (const Standard_Real aTol); + + //! Returns the relative reached error of all values computation since + //! the last call of GetStateNumber method. + Standard_Real ErrorReached() const; + + //! Returns the absolut reached error of all values computation since + //! the last call of GetStateNumber method. + Standard_Real AbsolutError() const; + + //! Returns a value of the function. The value represents an + //! integral of UFunction. It is computed with the predefined + //! tolerance using the adaptive Gauss-Kronrod method. + Standard_EXPORT virtual Standard_Boolean Value (const Standard_Real X, Standard_Real& F) Standard_OVERRIDE; + + //! Redefined method. Remembers the error reached during + //! computation of integral values since the object creation + //! or the last call of GetStateNumber. It is invoked in each + //! algorithm from the package math. Particularly in the + //! algorithm math_KronrodSingleIntegration that is used to + //! compute the integral of TFunction. + Standard_EXPORT virtual Standard_Integer GetStateNumber() Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + + BRepGProp_Face mySurface; + BRepGProp_UFunction myUFunction; + Standard_Real myUMin; + Standard_Real myTolerance; + Standard_Real myTolReached; + Standard_Real myErrReached; + Standard_Real myAbsError; + GProp_ValueType myValueType; + Standard_Boolean myIsByPoint; + Standard_Integer myNbPntOuter; + + +}; + + +#include + + + + + +#endif // _BRepGProp_TFunction_HeaderFile diff --git a/src/BRepGProp/BRepGProp_UFunction.cdl b/src/BRepGProp/BRepGProp_UFunction.cdl deleted file mode 100644 index d64281fa5e..0000000000 --- a/src/BRepGProp/BRepGProp_UFunction.cdl +++ /dev/null @@ -1,129 +0,0 @@ --- Created on: 2005-12-21 --- Created by: Sergey KHROMOV --- Copyright (c) 2005-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. - -class UFunction from BRepGProp inherits Function from math - - ---Purpose: This class represents the integrand function for - -- computation of an inner integral. The returned value - -- depends on the value type and the flag IsByPoint. - -- - -- The type of returned value is the one of the following - -- values: - -- - GProp_Mass - volume computation. - -- - GProp_CenterMassX, GProp_CenterMassY, - -- GProp_CenterMassZ - X, Y and Z coordinates of center - -- of mass computation. - -- - GProp_InertiaXX, GProp_InertiaYY, GProp_InertiaZZ, - -- GProp_InertiaXY, GProp_InertiaXZ, GProp_InertiaYZ - -- - moments of inertia computation. - -- - -- If the flag IsByPoint is set to Standard_True, the value is - -- returned for the region of space that is delimited by a - -- surface and a point. Otherwise all computations are - -- performed for the region of space delimited by a surface - -- and a plane. - -uses - Pnt from gp, - XYZ from gp, - Address from Standard, - Boolean from Standard, - Real from Standard, - ValueType from GProp, - Face from BRepGProp - -is - - Create(theSurface: Face from BRepGProp; - theVertex : Pnt from gp; - IsByPoint : Boolean from Standard; - theCoeffs : Address from Standard) - ---Purpose: Constructor. Initializes the function with the face, the - -- location point, the flag IsByPoint and the coefficients - -- theCoeff that have different meaning depending on the value - -- of IsByPoint. - -- If IsByPoint is equal to Standard_True, the number of the - -- coefficients is equal to 3 and they represent X, Y and Z - -- coordinates (theCoeff[0], theCoeff[1] and theCoeff[2] - -- correspondingly) of the shift, if the inertia is computed - -- with respect to the point different then the location. - -- If IsByPoint is equal to Standard_False, the number of the - -- coefficients is 4 and they represent the combination of - -- plane parameters and shift values. - returns UFunction from BRepGProp; - - SetValueType(me: in out; theType: ValueType from GProp); - ---Purpose: Setting the type of the value to be returned. - ---C++: inline - - SetVParam(me: in out; theVParam: Real from Standard); - ---Purpose: Setting the V parameter that is constant during the - -- integral computation. - ---C++: inline - - Value(me: in out; X: Real from Standard; - F: out Real from Standard) - ---Purpose: Returns a value of the function. - returns Boolean from Standard - is redefined; - - ----------------------- - -- Private methods -- - ----------------------- - - VolumeValue(me: in out; X : Real from Standard; - thePMP0: out XYZ from gp; - theS : out Real from Standard; - theD1 : out Real from Standard) - ---Purpose: Private method. Returns the value for volume computation. - -- Other returned values are: - -- - thePMP0 - PSurf(X,Y) minus Location. - -- - theS and theD1 coeffitients that are computed and used - -- for computation of center of mass and inertia values - -- by plane. - returns Real from Standard - is private; - - CenterMassValue(me: in out; X: Real from Standard; - F: out Real from Standard) - ---Purpose: Private method. Returns a value for the center of mass - -- computation. If the value type other then GProp_CenterMassX, - -- GProp_CenterMassY or GProp_CenterMassZ this method returns - -- Standard_False. Returns Standard_True in case of successful - -- computation of a value. - returns Boolean from Standard - is private; - - InertiaValue(me: in out; X: Real from Standard; - F: out Real from Standard) - ---Purpose: Private method. Computes the value of intertia. The type of - -- a value returned is defined by the value type. If it is - -- other then GProp_InertiaXX, GProp_InertiaYY, - -- GProp_InertiaZZ, GProp_InertiaXY, GProp_InertiaXZ or - -- GProp_InertiaYZ, the method returns Standard_False. Returns - -- Standard_True in case of successful computation of a value - returns Boolean from Standard - is private; - -fields - - mySurface : Face from BRepGProp; - myVertex : Pnt from gp; - myCoeffs : Address from Standard; - myVParam : Real from Standard; - myValueType: ValueType from GProp; - myIsByPoint: Boolean from Standard; - -end UFunction; diff --git a/src/BRepGProp/BRepGProp_UFunction.cxx b/src/BRepGProp/BRepGProp_UFunction.cxx index 2cebff943f..14860e322f 100644 --- a/src/BRepGProp/BRepGProp_UFunction.cxx +++ b/src/BRepGProp/BRepGProp_UFunction.cxx @@ -13,13 +13,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include //======================================================================= //function : Constructor. //purpose : //======================================================================= - BRepGProp_UFunction::BRepGProp_UFunction(const BRepGProp_Face &theSurface, const gp_Pnt &theVertex, const Standard_Boolean IsByPoint, diff --git a/src/BRepGProp/BRepGProp_UFunction.hxx b/src/BRepGProp/BRepGProp_UFunction.hxx new file mode 100644 index 0000000000..3d2dee4c9e --- /dev/null +++ b/src/BRepGProp/BRepGProp_UFunction.hxx @@ -0,0 +1,138 @@ +// Created on: 2005-12-21 +// Created by: Sergey KHROMOV +// Copyright (c) 2005-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 _BRepGProp_UFunction_HeaderFile +#define _BRepGProp_UFunction_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +class BRepGProp_Face; +class gp_Pnt; +class gp_XYZ; + + +//! This class represents the integrand function for +//! computation of an inner integral. The returned value +//! depends on the value type and the flag IsByPoint. +//! +//! The type of returned value is the one of the following +//! values: +//! - GProp_Mass - volume computation. +//! - GProp_CenterMassX, GProp_CenterMassY, +//! GProp_CenterMassZ - X, Y and Z coordinates of center +//! of mass computation. +//! - GProp_InertiaXX, GProp_InertiaYY, GProp_InertiaZZ, +//! GProp_InertiaXY, GProp_InertiaXZ, GProp_InertiaYZ +//! - moments of inertia computation. +//! +//! If the flag IsByPoint is set to Standard_True, the value is +//! returned for the region of space that is delimited by a +//! surface and a point. Otherwise all computations are +//! performed for the region of space delimited by a surface +//! and a plane. +class BRepGProp_UFunction : public math_Function +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Constructor. Initializes the function with the face, the + //! location point, the flag IsByPoint and the coefficients + //! theCoeff that have different meaning depending on the value + //! of IsByPoint. + //! If IsByPoint is equal to Standard_True, the number of the + //! coefficients is equal to 3 and they represent X, Y and Z + //! coordinates (theCoeff[0], theCoeff[1] and theCoeff[2] + //! correspondingly) of the shift, if the inertia is computed + //! with respect to the point different then the location. + //! If IsByPoint is equal to Standard_False, the number of the + //! coefficients is 4 and they represent the combination of + //! plane parameters and shift values. + Standard_EXPORT BRepGProp_UFunction(const BRepGProp_Face& theSurface, const gp_Pnt& theVertex, const Standard_Boolean IsByPoint, const Standard_Address theCoeffs); + + //! Setting the type of the value to be returned. + void SetValueType (const GProp_ValueType theType); + + //! Setting the V parameter that is constant during the + //! integral computation. + void SetVParam (const Standard_Real theVParam); + + //! Returns a value of the function. + Standard_EXPORT virtual Standard_Boolean Value (const Standard_Real X, Standard_Real& F) Standard_OVERRIDE; + + + + +protected: + + + + + +private: + + + //! Private method. Returns the value for volume computation. + //! Other returned values are: + //! - thePMP0 - PSurf(X,Y) minus Location. + //! - theS and theD1 coeffitients that are computed and used + //! for computation of center of mass and inertia values + //! by plane. + Standard_EXPORT Standard_Real VolumeValue (const Standard_Real X, gp_XYZ& thePMP0, Standard_Real& theS, Standard_Real& theD1); + + //! Private method. Returns a value for the center of mass + //! computation. If the value type other then GProp_CenterMassX, + //! GProp_CenterMassY or GProp_CenterMassZ this method returns + //! Standard_False. Returns Standard_True in case of successful + //! computation of a value. + Standard_EXPORT Standard_Boolean CenterMassValue (const Standard_Real X, Standard_Real& F); + + //! Private method. Computes the value of intertia. The type of + //! a value returned is defined by the value type. If it is + //! other then GProp_InertiaXX, GProp_InertiaYY, + //! GProp_InertiaZZ, GProp_InertiaXY, GProp_InertiaXZ or + //! GProp_InertiaYZ, the method returns Standard_False. Returns + //! Standard_True in case of successful computation of a value + Standard_EXPORT Standard_Boolean InertiaValue (const Standard_Real X, Standard_Real& F); + + + BRepGProp_Face mySurface; + gp_Pnt myVertex; + Standard_Address myCoeffs; + Standard_Real myVParam; + GProp_ValueType myValueType; + Standard_Boolean myIsByPoint; + + +}; + + +#include + + + + + +#endif // _BRepGProp_UFunction_HeaderFile diff --git a/src/BRepGProp/BRepGProp_Vinert.cdl b/src/BRepGProp/BRepGProp_Vinert.cdl deleted file mode 100644 index 0773b24718..0000000000 --- a/src/BRepGProp/BRepGProp_Vinert.cdl +++ /dev/null @@ -1,195 +0,0 @@ --- Created on: 1991-04-12 --- Created by: Michel CHAUVAT --- 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. - --- Jean-Claude VAUTHIER January 1992 - - -class Vinert from BRepGProp inherits GProps from GProp - - --- Purpose : - -- Computes the global properties of a geometric solid - -- (3D closed region of space) delimited with : - -- . a surface - -- . a point and a surface - -- . a plane and a surface - -- - -- The surface can be : - -- . a surface limited with its parametric values U-V, - -- . a surface limited in U-V space with its curves of restriction, - -- - -- The surface 's requirements to evaluate the global properties - -- are defined in the template SurfaceTool from package GProp. - -uses Pnt from gp, - Pln from gp, - Edge from TopoDS, - Face from BRepGProp, - Domain from BRepGProp -is - - Create returns Vinert; - - Create (S: Face from BRepGProp; VLocation: Pnt from gp) returns Vinert; - --- Purpose : - -- Computes the global properties of a region of 3D space - -- delimited with the surface and the point VLocation. S can be closed - -- The method is quick and its precision is enough for many cases of analytical - -- surfaces. - -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points - -- is used. Numbers of points depend on types of surfaces and curves. - -- Errror of the computation is not calculated. - - Create (S: in out Face from BRepGProp; VLocation: Pnt from gp; Eps: Real) returns Vinert; - --- Purpose : - -- Computes the global properties of a region of 3D space - -- delimited with the surface and the point VLocation. S can be closed - -- Adaptive 2D Gauss integration is used. - -- Parameter Eps sets maximal relative error of computed mass (volume) for face. - -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values - -- for two successive steps of adaptive integration. - - Create (S: Face from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp) returns Vinert; - --- Purpose : - -- Computes the global properties of the region of 3D space - -- delimited with the surface and the point VLocation. - -- The method is quick and its precision is enough for many cases of analytical - -- surfaces. - -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points - -- is used. Numbers of points depend on types of surfaces and curves. - -- Error of the computation is not calculated. - - Create (S: in out Face from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp; Eps: Real) returns Vinert; - --- Purpose : - -- Computes the global properties of the region of 3D space - -- delimited with the surface and the point VLocation. - -- Adaptive 2D Gauss integration is used. - -- Parameter Eps sets maximal relative error of computed mass (volume) for face. - -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values - -- for two successive steps of adaptive integration. - -- WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. - - Create (S: Face from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp) returns Vinert; - --- Purpose : - -- Computes the global properties of the region of 3D space - -- delimited with the surface and the plane Pln. - -- The method is quick and its precision is enough for many cases of analytical - -- surfaces. - -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points - -- is used. Numbers of points depend on types of surfaces and curves. - -- Error of the computation is not calculated. - - Create (S: in out Face from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp; Eps: Real) returns Vinert; - --- Purpose : - -- Computes the global properties of the region of 3D space - -- delimited with the surface and the plane Pln. - -- Adaptive 2D Gauss integration is used. - -- Parameter Eps sets maximal relative error of computed mass (volume) for face. - -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values - -- for two successive steps of adaptive integration. - -- WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. - - -- With Domain from BRepGProp -- - - Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; VLocation: Pnt from gp) returns Vinert; - --- Purpose : - -- Computes the global properties of a region of 3D space - -- delimited with the surface and the point VLocation. S can be closed - -- The method is quick and its precision is enough for many cases of analytical - -- surfaces. - -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points - -- is used. Numbers of points depend on types of surfaces and curves. - -- Errror of the computation is not calculated. - - Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; VLocation: Pnt from gp; Eps: Real) returns Vinert; - --- Purpose : - -- Computes the global properties of a region of 3D space - -- delimited with the surface and the point VLocation. S can be closed - -- Adaptive 2D Gauss integration is used. - -- Parameter Eps sets maximal relative error of computed mass (volume) for face. - -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values - -- for two successive steps of adaptive integration. - - Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp) returns Vinert; - --- Purpose : - -- Computes the global properties of the region of 3D space - -- delimited with the surface and the point VLocation. - -- The method is quick and its precision is enough for many cases of analytical - -- surfaces. - -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points - -- is used. Numbers of points depend on types of surfaces and curves. - -- Error of the computation is not calculated. - - Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp; Eps: Real) returns Vinert; - --- Purpose : - -- Computes the global properties of the region of 3D space - -- delimited with the surface and the point VLocation. - -- Adaptive 2D Gauss integration is used. - -- Parameter Eps sets maximal relative error of computed mass (volume) for face. - -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values - -- for two successive steps of adaptive integration. - -- WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. - - Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp) returns Vinert; - --- Purpose : - -- Computes the global properties of the region of 3D space - -- delimited with the surface and the plane Pln. - -- The method is quick and its precision is enough for many cases of analytical - -- surfaces. - -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points - -- is used. Numbers of points depend on types of surfaces and curves. - -- Error of the computation is not calculated. - - Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp; Eps: Real) returns Vinert; - --- Purpose : - -- Computes the global properties of the region of 3D space - -- delimited with the surface and the plane Pln. - -- Adaptive 2D Gauss integration is used. - -- Parameter Eps sets maximal relative error of computed mass (volume) for face. - -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values - -- for two successive steps of adaptive integration. - -- WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. - - SetLocation(me: in out; VLocation: Pnt from gp); - - Perform(me: in out; S: Face from BRepGProp); - Perform(me: in out; S: in out Face from BRepGProp; Eps: Real) returns Real; - - Perform(me: in out; S: Face from BRepGProp; O : Pnt from gp); - Perform(me: in out; S: in out Face from BRepGProp; O : Pnt from gp; Eps: Real) returns Real; - - Perform(me: in out; S: Face from BRepGProp; Pl : Pln from gp); - Perform(me: in out; S: in out Face from BRepGProp; Pl : Pln from gp; Eps: Real) returns Real; - - Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp); - Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Eps: Real) returns Real; - - Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; O : Pnt from gp); - Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; O : Pnt from gp; Eps: Real) returns Real; - - Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Pl : Pln from gp); - Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Pl : Pln from gp; Eps: Real) returns Real; - - GetEpsilon(me: out) returns Real; - --- Purpose : - -- If previously used methods containe Eps parameter - -- gets actual relative error of the computation, else returns 1.0. -fields - - myEpsilon: Real from Standard; - -end Vinert; - - diff --git a/src/BRepGProp/BRepGProp_Vinert.cxx b/src/BRepGProp/BRepGProp_Vinert.cxx index 524f1f2179..5e3a53be4b 100644 --- a/src/BRepGProp/BRepGProp_Vinert.cxx +++ b/src/BRepGProp/BRepGProp_Vinert.cxx @@ -12,8 +12,13 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include #include +#include +#include +#include //======================================================================= //function : BRepGProp_Vinert diff --git a/src/BRepGProp/BRepGProp_Vinert.hxx b/src/BRepGProp/BRepGProp_Vinert.hxx new file mode 100644 index 0000000000..3db4960d23 --- /dev/null +++ b/src/BRepGProp/BRepGProp_Vinert.hxx @@ -0,0 +1,227 @@ +// Created on: 1991-04-12 +// Created by: Michel CHAUVAT +// 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 _BRepGProp_Vinert_HeaderFile +#define _BRepGProp_Vinert_HeaderFile + +#include +#include +#include + +#include +#include +class BRepGProp_Face; +class gp_Pnt; +class gp_Pln; +class BRepGProp_Domain; + + + +//! Computes the global properties of a geometric solid +//! (3D closed region of space) delimited with : +//! . a surface +//! . a point and a surface +//! . a plane and a surface +//! +//! The surface can be : +//! . a surface limited with its parametric values U-V, +//! . a surface limited in U-V space with its curves of restriction, +//! +//! The surface 's requirements to evaluate the global properties +//! are defined in the template SurfaceTool from package GProp. +class BRepGProp_Vinert : public GProp_GProps +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepGProp_Vinert(); + + + //! Computes the global properties of a region of 3D space + //! delimited with the surface and the point VLocation. S can be closed + //! The method is quick and its precision is enough for many cases of analytical + //! surfaces. + //! Non-adaptive 2D Gauss integration with predefined numbers of Gauss points + //! is used. Numbers of points depend on types of surfaces and curves. + //! Errror of the computation is not calculated. + Standard_EXPORT BRepGProp_Vinert(const BRepGProp_Face& S, const gp_Pnt& VLocation); + + + //! Computes the global properties of a region of 3D space + //! delimited with the surface and the point VLocation. S can be closed + //! Adaptive 2D Gauss integration is used. + //! Parameter Eps sets maximal relative error of computed mass (volume) for face. + //! Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values + //! for two successive steps of adaptive integration. + Standard_EXPORT BRepGProp_Vinert(BRepGProp_Face& S, const gp_Pnt& VLocation, const Standard_Real Eps); + + + //! Computes the global properties of the region of 3D space + //! delimited with the surface and the point VLocation. + //! The method is quick and its precision is enough for many cases of analytical + //! surfaces. + //! Non-adaptive 2D Gauss integration with predefined numbers of Gauss points + //! is used. Numbers of points depend on types of surfaces and curves. + //! Error of the computation is not calculated. + Standard_EXPORT BRepGProp_Vinert(const BRepGProp_Face& S, const gp_Pnt& O, const gp_Pnt& VLocation); + + + //! Computes the global properties of the region of 3D space + //! delimited with the surface and the point VLocation. + //! Adaptive 2D Gauss integration is used. + //! Parameter Eps sets maximal relative error of computed mass (volume) for face. + //! Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values + //! for two successive steps of adaptive integration. + //! WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. + Standard_EXPORT BRepGProp_Vinert(BRepGProp_Face& S, const gp_Pnt& O, const gp_Pnt& VLocation, const Standard_Real Eps); + + + //! Computes the global properties of the region of 3D space + //! delimited with the surface and the plane Pln. + //! The method is quick and its precision is enough for many cases of analytical + //! surfaces. + //! Non-adaptive 2D Gauss integration with predefined numbers of Gauss points + //! is used. Numbers of points depend on types of surfaces and curves. + //! Error of the computation is not calculated. + Standard_EXPORT BRepGProp_Vinert(const BRepGProp_Face& S, const gp_Pln& Pl, const gp_Pnt& VLocation); + + + //! Computes the global properties of the region of 3D space + //! delimited with the surface and the plane Pln. + //! Adaptive 2D Gauss integration is used. + //! Parameter Eps sets maximal relative error of computed mass (volume) for face. + //! Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values + //! for two successive steps of adaptive integration. + //! WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. + Standard_EXPORT BRepGProp_Vinert(BRepGProp_Face& S, const gp_Pln& Pl, const gp_Pnt& VLocation, const Standard_Real Eps); + + + //! Computes the global properties of a region of 3D space + //! delimited with the surface and the point VLocation. S can be closed + //! The method is quick and its precision is enough for many cases of analytical + //! surfaces. + //! Non-adaptive 2D Gauss integration with predefined numbers of Gauss points + //! is used. Numbers of points depend on types of surfaces and curves. + //! Errror of the computation is not calculated. + Standard_EXPORT BRepGProp_Vinert(BRepGProp_Face& S, BRepGProp_Domain& D, const gp_Pnt& VLocation); + + + //! Computes the global properties of a region of 3D space + //! delimited with the surface and the point VLocation. S can be closed + //! Adaptive 2D Gauss integration is used. + //! Parameter Eps sets maximal relative error of computed mass (volume) for face. + //! Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values + //! for two successive steps of adaptive integration. + Standard_EXPORT BRepGProp_Vinert(BRepGProp_Face& S, BRepGProp_Domain& D, const gp_Pnt& VLocation, const Standard_Real Eps); + + + //! Computes the global properties of the region of 3D space + //! delimited with the surface and the point VLocation. + //! The method is quick and its precision is enough for many cases of analytical + //! surfaces. + //! Non-adaptive 2D Gauss integration with predefined numbers of Gauss points + //! is used. Numbers of points depend on types of surfaces and curves. + //! Error of the computation is not calculated. + Standard_EXPORT BRepGProp_Vinert(BRepGProp_Face& S, BRepGProp_Domain& D, const gp_Pnt& O, const gp_Pnt& VLocation); + + + //! Computes the global properties of the region of 3D space + //! delimited with the surface and the point VLocation. + //! Adaptive 2D Gauss integration is used. + //! Parameter Eps sets maximal relative error of computed mass (volume) for face. + //! Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values + //! for two successive steps of adaptive integration. + //! WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. + Standard_EXPORT BRepGProp_Vinert(BRepGProp_Face& S, BRepGProp_Domain& D, const gp_Pnt& O, const gp_Pnt& VLocation, const Standard_Real Eps); + + + //! Computes the global properties of the region of 3D space + //! delimited with the surface and the plane Pln. + //! The method is quick and its precision is enough for many cases of analytical + //! surfaces. + //! Non-adaptive 2D Gauss integration with predefined numbers of Gauss points + //! is used. Numbers of points depend on types of surfaces and curves. + //! Error of the computation is not calculated. + Standard_EXPORT BRepGProp_Vinert(BRepGProp_Face& S, BRepGProp_Domain& D, const gp_Pln& Pl, const gp_Pnt& VLocation); + + + //! Computes the global properties of the region of 3D space + //! delimited with the surface and the plane Pln. + //! Adaptive 2D Gauss integration is used. + //! Parameter Eps sets maximal relative error of computed mass (volume) for face. + //! Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values + //! for two successive steps of adaptive integration. + //! WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. + Standard_EXPORT BRepGProp_Vinert(BRepGProp_Face& S, BRepGProp_Domain& D, const gp_Pln& Pl, const gp_Pnt& VLocation, const Standard_Real Eps); + + Standard_EXPORT void SetLocation (const gp_Pnt& VLocation); + + Standard_EXPORT void Perform (const BRepGProp_Face& S); + + Standard_EXPORT Standard_Real Perform (BRepGProp_Face& S, const Standard_Real Eps); + + Standard_EXPORT void Perform (const BRepGProp_Face& S, const gp_Pnt& O); + + Standard_EXPORT Standard_Real Perform (BRepGProp_Face& S, const gp_Pnt& O, const Standard_Real Eps); + + Standard_EXPORT void Perform (const BRepGProp_Face& S, const gp_Pln& Pl); + + Standard_EXPORT Standard_Real Perform (BRepGProp_Face& S, const gp_Pln& Pl, const Standard_Real Eps); + + Standard_EXPORT void Perform (BRepGProp_Face& S, BRepGProp_Domain& D); + + Standard_EXPORT Standard_Real Perform (BRepGProp_Face& S, BRepGProp_Domain& D, const Standard_Real Eps); + + Standard_EXPORT void Perform (BRepGProp_Face& S, BRepGProp_Domain& D, const gp_Pnt& O); + + Standard_EXPORT Standard_Real Perform (BRepGProp_Face& S, BRepGProp_Domain& D, const gp_Pnt& O, const Standard_Real Eps); + + Standard_EXPORT void Perform (BRepGProp_Face& S, BRepGProp_Domain& D, const gp_Pln& Pl); + + Standard_EXPORT Standard_Real Perform (BRepGProp_Face& S, BRepGProp_Domain& D, const gp_Pln& Pl, const Standard_Real Eps); + + + //! If previously used methods containe Eps parameter + //! gets actual relative error of the computation, else returns 1.0. + Standard_EXPORT Standard_Real GetEpsilon(); + + + + +protected: + + + + + +private: + + + + Standard_Real myEpsilon; + + +}; + + + + + + + +#endif // _BRepGProp_Vinert_HeaderFile diff --git a/src/BRepGProp/BRepGProp_VinertGK.cdl b/src/BRepGProp/BRepGProp_VinertGK.cdl deleted file mode 100644 index 0cc3f43377..0000000000 --- a/src/BRepGProp/BRepGProp_VinertGK.cdl +++ /dev/null @@ -1,244 +0,0 @@ --- Created on: 2005-12-21 --- Created by: Sergey KHROMOV --- Copyright (c) 2005-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. - -class VinertGK from BRepGProp inherits GProps from GProp - - ---Purpose: Computes the global properties of a geometric solid - -- (3D closed region of space) delimited with : - -- - a point and a surface - -- - a plane and a surface - -- - -- The surface can be : - -- - a surface limited with its parametric values U-V, - -- (naturally restricted) - -- - a surface limited in U-V space with its boundary - -- curves. - -- - -- The surface's requirements to evaluate the global - -- properties are defined in the template FaceTool class from - -- the package GProp. - -- - -- The adaptive 2D algorithm of Gauss-Kronrod integration of - -- double integral is used. - -- - -- The inner integral is computed along U parameter of - -- surface. The integrand function is encapsulated in the - -- support class UFunction that is defined below. - -- - -- The outer integral is computed along T parameter of a - -- bounding curve. The integrand function is encapsulated in - -- the support class TFunction that is defined below. - -uses - - Pnt from gp, - XYZ from gp, - Pln from gp, - Address from Standard, - Boolean from Standard, - Real from Standard, - Edge from TopoDS, - Face from BRepGProp, - Domain from BRepGProp - - --- Template class functions. Used for integration. Begin - -is - - Create - ---Purpose: Empty constructor. - ---C++: inline - returns VinertGK; - - Create(theSurface : in out Face from BRepGProp; - theLocation : Pnt from gp; - theTolerance: Real from Standard = 0.001; - theCGFlag: Boolean from Standard = Standard_False; - theIFlag: Boolean from Standard = Standard_False) - ---Purpose: Constructor. Computes the global properties of a region of - -- 3D space delimited with the naturally restricted surface - -- and the point VLocation. - returns VinertGK; - - Create(theSurface : in out Face from BRepGProp; - thePoint : Pnt from gp; - theLocation : Pnt from gp; - theTolerance: Real from Standard = 0.001; - theCGFlag: Boolean from Standard = Standard_False; - theIFlag: Boolean from Standard = Standard_False) - - ---Purpose: Constructor. Computes the global properties of a region of - -- 3D space delimited with the naturally restricted surface - -- and the point VLocation. The inertia is computed with - -- respect to thePoint. - returns VinertGK; - - Create(theSurface : in out Face from BRepGProp; - theDomain : in out Domain from BRepGProp; - theLocation : Pnt from gp; - theTolerance: Real from Standard = 0.001; - theCGFlag: Boolean from Standard = Standard_False; - theIFlag: Boolean from Standard = Standard_False) - - ---Purpose: Constructor. Computes the global properties of a region of - -- 3D space delimited with the surface bounded by the domain - -- and the point VLocation. - returns VinertGK; - - Create(theSurface : in out Face from BRepGProp; - theDomain : in out Domain from BRepGProp; - thePoint : Pnt from gp; - theLocation : Pnt from gp; - theTolerance: Real from Standard = 0.001; - theCGFlag: Boolean from Standard = Standard_False; - theIFlag: Boolean from Standard = Standard_False) - ---Purpose: Constructor. Computes the global properties of a region of - -- 3D space delimited with the surface bounded by the domain - -- and the point VLocation. The inertia is computed with - -- respect to thePoint. - returns VinertGK; - - Create(theSurface : in out Face from BRepGProp; - thePlane : Pln from gp; - theLocation : Pnt from gp; - theTolerance: Real from Standard = 0.001; - theCGFlag: Boolean from Standard = Standard_False; - theIFlag: Boolean from Standard = Standard_False) - - ---Purpose: Constructor. Computes the global properties of a region of - -- 3D space delimited with the naturally restricted surface - -- and the plane. - returns VinertGK; - - Create(theSurface : in out Face from BRepGProp; - theDomain : in out Domain from BRepGProp; - thePlane : Pln from gp; - theLocation : Pnt from gp; - theTolerance: Real from Standard = 0.001; - theCGFlag: Boolean from Standard = Standard_False; - theIFlag: Boolean from Standard = Standard_False) - - ---Purpose: Constructor. Computes the global properties of a region of - -- 3D space delimited with the surface bounded by the domain - -- and the plane. - returns VinertGK; - - SetLocation(me: in out; theLocation: Pnt from gp); - ---Purpose: Sets the vertex that delimit 3D closed region of space. - ---C++: inline - - Perform(me: in out; theSurface : in out Face from BRepGProp; - theTolerance: Real from Standard = 0.001; - theCGFlag: Boolean from Standard = Standard_False; - theIFlag: Boolean from Standard = Standard_False) - - ---Purpose: Computes the global properties of a region of 3D space - -- delimited with the naturally restricted surface and the - -- point VLocation. - returns Real from Standard; - - Perform(me: in out; theSurface : in out Face from BRepGProp; - thePoint : Pnt from gp; - theTolerance: Real from Standard = 0.001; - theCGFlag: Boolean from Standard = Standard_False; - theIFlag: Boolean from Standard = Standard_False) - - ---Purpose: Computes the global properties of a region of 3D space - -- delimited with the naturally restricted surface and the - -- point VLocation. The inertia is computed with respect to - -- thePoint. - returns Real from Standard; - - Perform(me: in out; theSurface : in out Face from BRepGProp; - theDomain : in out Domain from BRepGProp; - theTolerance: Real from Standard = 0.001; - theCGFlag: Boolean from Standard = Standard_False; - theIFlag: Boolean from Standard = Standard_False) - - ---Purpose: Computes the global properties of a region of 3D space - -- delimited with the surface bounded by the domain and the - -- point VLocation. - returns Real from Standard; - - Perform(me: in out; theSurface : in out Face from BRepGProp; - theDomain : in out Domain from BRepGProp; - thePoint : Pnt from gp; - theTolerance: Real from Standard = 0.001; - theCGFlag: Boolean from Standard = Standard_False; - theIFlag: Boolean from Standard = Standard_False) - ---Purpose: Computes the global properties of a region of 3D space - -- delimited with the surface bounded by the domain and the - -- point VLocation. The inertia is computed with respect to - -- thePoint. - returns Real from Standard; - - Perform(me: in out; theSurface : in out Face from BRepGProp; - thePlane : Pln from gp; - theTolerance: Real from Standard = 0.001; - theCGFlag: Boolean from Standard = Standard_False; - theIFlag: Boolean from Standard = Standard_False) - - ---Purpose: Computes the global properties of a region of 3D space - -- delimited with the naturally restricted surface and the - -- plane. - returns Real from Standard; - - Perform(me: in out; theSurface : in out Face from BRepGProp; - theDomain : in out Domain from BRepGProp; - thePlane : Pln from gp; - theTolerance: Real from Standard = 0.001; - theCGFlag: Boolean from Standard = Standard_False; - theIFlag: Boolean from Standard = Standard_False) - - ---Purpose: Computes the global properties of a region of 3D space - -- delimited with the surface bounded by the domain and the - -- plane. - returns Real from Standard; - - GetErrorReached(me) - ---Purpose: Returns the relative reached computation error. - ---C++: inline - returns Real from Standard; - - GetAbsolutError(me) - ---Purpose: Returns the absolut reached computation error. - ---C++: inline - returns Real from Standard; - ------------------------ --- Private methods -- ------------------------ - - PrivatePerform(me: in out; - theSurface : in out Face from BRepGProp; - thePtrDomain: Address from Standard; -- pointer to Domain from BRepGProp. - IsByPoint : Boolean from Standard; - theCoeffs : Address from Standard; - theTolerance: Real from Standard; - theCGFlag : Boolean from Standard; - theIFlag : Boolean from Standard) - - ---Purpose: Main method for computation of the global properties that - -- is invoked by each Perform method. - returns Real from Standard - is private; - -fields - - myErrorReached: Real from Standard; - myAbsolutError: Real from Standard; - -end VinertGK; diff --git a/src/BRepGProp/BRepGProp_VinertGK.cxx b/src/BRepGProp/BRepGProp_VinertGK.cxx index 4a1df6723e..a792352f74 100644 --- a/src/BRepGProp/BRepGProp_VinertGK.cxx +++ b/src/BRepGProp/BRepGProp_VinertGK.cxx @@ -13,18 +13,20 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include - -#include -#include -#include +#include +#include #include +#include +#include +#include +#include +#include +#include //========================================================================== //function : Constructor //========================================================================== - BRepGProp_VinertGK::BRepGProp_VinertGK(BRepGProp_Face &theSurface, const gp_Pnt &theLocation, const Standard_Real theTolerance, diff --git a/src/BRepGProp/BRepGProp_VinertGK.hxx b/src/BRepGProp/BRepGProp_VinertGK.hxx new file mode 100644 index 0000000000..7294e74110 --- /dev/null +++ b/src/BRepGProp/BRepGProp_VinertGK.hxx @@ -0,0 +1,171 @@ +// Created on: 2005-12-21 +// Created by: Sergey KHROMOV +// Copyright (c) 2005-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 _BRepGProp_VinertGK_HeaderFile +#define _BRepGProp_VinertGK_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class BRepGProp_Face; +class gp_Pnt; +class BRepGProp_Domain; +class gp_Pln; + + +//! Computes the global properties of a geometric solid +//! (3D closed region of space) delimited with : +//! - a point and a surface +//! - a plane and a surface +//! +//! The surface can be : +//! - a surface limited with its parametric values U-V, +//! (naturally restricted) +//! - a surface limited in U-V space with its boundary +//! curves. +//! +//! The surface's requirements to evaluate the global +//! properties are defined in the template FaceTool class from +//! the package GProp. +//! +//! The adaptive 2D algorithm of Gauss-Kronrod integration of +//! double integral is used. +//! +//! The inner integral is computed along U parameter of +//! surface. The integrand function is encapsulated in the +//! support class UFunction that is defined below. +//! +//! The outer integral is computed along T parameter of a +//! bounding curve. The integrand function is encapsulated in +//! the support class TFunction that is defined below. +class BRepGProp_VinertGK : public GProp_GProps +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor. + Standard_EXPORT BRepGProp_VinertGK(); + + //! Constructor. Computes the global properties of a region of + //! 3D space delimited with the naturally restricted surface + //! and the point VLocation. + Standard_EXPORT BRepGProp_VinertGK(BRepGProp_Face& theSurface, const gp_Pnt& theLocation, const Standard_Real theTolerance = 0.001, const Standard_Boolean theCGFlag = Standard_False, const Standard_Boolean theIFlag = Standard_False); + + //! Constructor. Computes the global properties of a region of + //! 3D space delimited with the naturally restricted surface + //! and the point VLocation. The inertia is computed with + //! respect to thePoint. + Standard_EXPORT BRepGProp_VinertGK(BRepGProp_Face& theSurface, const gp_Pnt& thePoint, const gp_Pnt& theLocation, const Standard_Real theTolerance = 0.001, const Standard_Boolean theCGFlag = Standard_False, const Standard_Boolean theIFlag = Standard_False); + + //! Constructor. Computes the global properties of a region of + //! 3D space delimited with the surface bounded by the domain + //! and the point VLocation. + Standard_EXPORT BRepGProp_VinertGK(BRepGProp_Face& theSurface, BRepGProp_Domain& theDomain, const gp_Pnt& theLocation, const Standard_Real theTolerance = 0.001, const Standard_Boolean theCGFlag = Standard_False, const Standard_Boolean theIFlag = Standard_False); + + //! Constructor. Computes the global properties of a region of + //! 3D space delimited with the surface bounded by the domain + //! and the point VLocation. The inertia is computed with + //! respect to thePoint. + Standard_EXPORT BRepGProp_VinertGK(BRepGProp_Face& theSurface, BRepGProp_Domain& theDomain, const gp_Pnt& thePoint, const gp_Pnt& theLocation, const Standard_Real theTolerance = 0.001, const Standard_Boolean theCGFlag = Standard_False, const Standard_Boolean theIFlag = Standard_False); + + //! Constructor. Computes the global properties of a region of + //! 3D space delimited with the naturally restricted surface + //! and the plane. + Standard_EXPORT BRepGProp_VinertGK(BRepGProp_Face& theSurface, const gp_Pln& thePlane, const gp_Pnt& theLocation, const Standard_Real theTolerance = 0.001, const Standard_Boolean theCGFlag = Standard_False, const Standard_Boolean theIFlag = Standard_False); + + //! Constructor. Computes the global properties of a region of + //! 3D space delimited with the surface bounded by the domain + //! and the plane. + Standard_EXPORT BRepGProp_VinertGK(BRepGProp_Face& theSurface, BRepGProp_Domain& theDomain, const gp_Pln& thePlane, const gp_Pnt& theLocation, const Standard_Real theTolerance = 0.001, const Standard_Boolean theCGFlag = Standard_False, const Standard_Boolean theIFlag = Standard_False); + + //! Sets the vertex that delimit 3D closed region of space. + void SetLocation (const gp_Pnt& theLocation); + + //! Computes the global properties of a region of 3D space + //! delimited with the naturally restricted surface and the + //! point VLocation. + Standard_EXPORT Standard_Real Perform (BRepGProp_Face& theSurface, const Standard_Real theTolerance = 0.001, const Standard_Boolean theCGFlag = Standard_False, const Standard_Boolean theIFlag = Standard_False); + + //! Computes the global properties of a region of 3D space + //! delimited with the naturally restricted surface and the + //! point VLocation. The inertia is computed with respect to + //! thePoint. + Standard_EXPORT Standard_Real Perform (BRepGProp_Face& theSurface, const gp_Pnt& thePoint, const Standard_Real theTolerance = 0.001, const Standard_Boolean theCGFlag = Standard_False, const Standard_Boolean theIFlag = Standard_False); + + //! Computes the global properties of a region of 3D space + //! delimited with the surface bounded by the domain and the + //! point VLocation. + Standard_EXPORT Standard_Real Perform (BRepGProp_Face& theSurface, BRepGProp_Domain& theDomain, const Standard_Real theTolerance = 0.001, const Standard_Boolean theCGFlag = Standard_False, const Standard_Boolean theIFlag = Standard_False); + + //! Computes the global properties of a region of 3D space + //! delimited with the surface bounded by the domain and the + //! point VLocation. The inertia is computed with respect to + //! thePoint. + Standard_EXPORT Standard_Real Perform (BRepGProp_Face& theSurface, BRepGProp_Domain& theDomain, const gp_Pnt& thePoint, const Standard_Real theTolerance = 0.001, const Standard_Boolean theCGFlag = Standard_False, const Standard_Boolean theIFlag = Standard_False); + + //! Computes the global properties of a region of 3D space + //! delimited with the naturally restricted surface and the + //! plane. + Standard_EXPORT Standard_Real Perform (BRepGProp_Face& theSurface, const gp_Pln& thePlane, const Standard_Real theTolerance = 0.001, const Standard_Boolean theCGFlag = Standard_False, const Standard_Boolean theIFlag = Standard_False); + + //! Computes the global properties of a region of 3D space + //! delimited with the surface bounded by the domain and the + //! plane. + Standard_EXPORT Standard_Real Perform (BRepGProp_Face& theSurface, BRepGProp_Domain& theDomain, const gp_Pln& thePlane, const Standard_Real theTolerance = 0.001, const Standard_Boolean theCGFlag = Standard_False, const Standard_Boolean theIFlag = Standard_False); + + //! Returns the relative reached computation error. + Standard_Real GetErrorReached() const; + + //! Returns the absolut reached computation error. + Standard_Real GetAbsolutError() const; + + + + +protected: + + + + + +private: + + + //! Main method for computation of the global properties that + //! is invoked by each Perform method. + Standard_EXPORT Standard_Real PrivatePerform (BRepGProp_Face& theSurface, const Standard_Address thePtrDomain, const Standard_Boolean IsByPoint, const Standard_Address theCoeffs, const Standard_Real theTolerance, const Standard_Boolean theCGFlag, const Standard_Boolean theIFlag); + + + Standard_Real myErrorReached; + Standard_Real myAbsolutError; + + +}; + + +#include + + + + + +#endif // _BRepGProp_VinertGK_HeaderFile diff --git a/src/BRepGProp/FILES b/src/BRepGProp/FILES index b47e4d6f5a..c4d64e2461 100644 --- a/src/BRepGProp/FILES +++ b/src/BRepGProp/FILES @@ -1,2 +1,27 @@ +BRepGProp.cxx +BRepGProp.hxx +BRepGProp_Cinert.cxx +BRepGProp_Cinert.hxx +BRepGProp_Domain.cxx +BRepGProp_Domain.hxx +BRepGProp_Domain.lxx +BRepGProp_EdgeTool.cxx +BRepGProp_EdgeTool.hxx +BRepGProp_Face.cxx +BRepGProp_Face.hxx +BRepGProp_Face.lxx +BRepGProp_Gauss.cxx BRepGProp_Gauss.hxx -BRepGProp_Gauss.cxx \ No newline at end of file +BRepGProp_Sinert.cxx +BRepGProp_Sinert.hxx +BRepGProp_TFunction.cxx +BRepGProp_TFunction.hxx +BRepGProp_TFunction.lxx +BRepGProp_UFunction.cxx +BRepGProp_UFunction.hxx +BRepGProp_UFunction.lxx +BRepGProp_Vinert.cxx +BRepGProp_Vinert.hxx +BRepGProp_VinertGK.cxx +BRepGProp_VinertGK.hxx +BRepGProp_VinertGK.lxx diff --git a/src/BRepIntCurveSurface/BRepIntCurveSurface.cdl b/src/BRepIntCurveSurface/BRepIntCurveSurface.cdl deleted file mode 100644 index 34f3e935ce..0000000000 --- a/src/BRepIntCurveSurface/BRepIntCurveSurface.cdl +++ /dev/null @@ -1,83 +0,0 @@ --- Created on: 1994-02-07 --- Created by: Modelistation --- 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. - -package BRepIntCurveSurface - - ---Purpose: Inttantiates IntCurveSurface with Surfaces from BRep - -- and Curves from Adaptor - - ---Level: Public - -- - -- All the methods of the classes of this package are public. - -- - -uses ---modified by NIZNHY-PKV Sun Dec 15 16:54:16 2002 f - BRepTopAdaptor, ---modified by NIZNHY-PKV Sun Dec 15 16:54:28 2002 t - IntCurveSurface, - BRepAdaptor, - Geom2dInt, - GeomAdaptor, - TopoDS, - BRepClass, - TopAbs, - TopExp, - StdFail, - gp, - Bnd, - TopTools - -is - - -------------------------------------------------- - -- Instantiation of IntCurveSurfaces algorithms -- - -- The intersection is computed on the surfaces -- - -- with their natural boundaries. -- - -------------------------------------------------- - --- class ICSSurfaceTool instantiates --- SurfaceTool from IntCurveSurface( ----- HSurface from BRepAdaptor) ; --- ----- --- class ICSCurveTool instantiates ----- CurveTool from IntCurveSurface( --- HCurve from GeomAdaptor) ; ----- --- ----- class ICSInter instantiates --- Inter from IntCurveSurface( ----- HCurve from GeomAdaptor, --- ICSCurveTool from BRepIntCurveSurface, ----- HSurface from BRepAdaptor, --- ICSSurfaceTool from BRepIntCurveSurface); --- - - ------------------------------------------------------ - -- The Inter class provides intersection between -- - -- - a BRepAdaptor surface and a GeomAdaptor curve -- - -- - a Shape and a GeomAdaptor curve -- - -- Only the points which are inside the surface -- - -- are returned. -- - ------------------------------------------------------ - - class Inter; - - - - -end BRepIntCurveSurface; diff --git a/src/BRepIntCurveSurface/BRepIntCurveSurface_Inter.cdl b/src/BRepIntCurveSurface/BRepIntCurveSurface_Inter.cdl deleted file mode 100644 index ba736756f7..0000000000 --- a/src/BRepIntCurveSurface/BRepIntCurveSurface_Inter.cdl +++ /dev/null @@ -1,178 +0,0 @@ --- Created on: 1994-02-07 --- Created by: Modelistation --- 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. - -class Inter from BRepIntCurveSurface - - ---Purpose: Computes the intersection between a face and a - -- curve. To intersect one curve with shape method - -- Init(Shape, curve, tTol) should be used. To - -- intersect a few curves with specified shape it is - -- necessary to load shape one time using method - -- Load(shape, tol) and find intersection points for - -- each curve using method Init(curve). For - -- iteration by intersection points method More() and - -- Next() should be used. - -- - --- Example: - --- Inter.Load(shape, tol); - --- for( i =1; i <= nbCurves;i++) - --- { - --- Inter.Init(curve); - --- for( ;Inter.More(); Inter.Next()) - --- { - --- ....... - --- } - --- } - -uses ---modified by NIZNHY-PKV Sun Dec 15 16:52:33 2002 f - TopolTool from BRepTopAdaptor, - HSurface from BRepAdaptor, ---modified by NIZNHY-PKV Sun Dec 15 16:52:34 2002 t - Shape from TopoDS, - FaceClassifier from BRepClass, - State from TopAbs, - Explorer from TopExp, - IntersectionPoint from IntCurveSurface, - HInter from IntCurveSurface, - Curve from GeomAdaptor, - Lin from gp, - Pnt from gp, - TransitionOnCurve from IntCurveSurface, - Face from TopoDS, - Box from Bnd, - SequenceOfShape from TopTools, - HArray1OfBox from Bnd, - HCurve from GeomAdaptor - - -raises - NotDone from StdFail - - -is - - Create returns Inter from BRepIntCurveSurface; - --- Purpose: Empty constructor; - - Init(me : in out; - theShape : Shape from TopoDS; - theCurve : Curve from GeomAdaptor; - theTol: Real from Standard); - - --- Purpose: Load the Shape, the curve and initialize the - -- tolerance used for the classification. - - - Init(me : in out; - theShape : Shape from TopoDS; - theLine : Lin from gp; - theTol: Real from Standard); - - --- Purpose: Load the Shape, the curve and initialize the - -- tolerance used for the classification. - - - Load(me : in out; theShape : Shape from TopoDS; theTol: Real from Standard); - --- Purpose: Load the Shape, and initialize the - -- tolerance used for the classification. - - Init(me : in out; theCurve : Curve from GeomAdaptor); - --- Purpose: Method to find intersections of specified curve with loaded shape. - - - More(me) returns Boolean from Standard; - --- Purpose: returns True if there is a current face. - - - Next(me: in out); - --- Purpose: Sets the next intersection point to check. - - - Find(me: in out) is protected; - ---Purpose: Internal function - - - Point(me) returns IntersectionPoint from IntCurveSurface - ---Purpose: returns the current Intersection point. - raises NotDone from StdFail; - - - Pnt(me) returns Pnt from gp - ---Purpose: returns the current geometric Point - ---C++: return const & - raises NotDone from StdFail; - - - - U(me) returns Real from Standard - ---Purpose: returns the U parameter of the current point - -- on the current face. - raises NotDone from StdFail; - - - V(me) returns Real from Standard - ---Purpose: returns the V parameter of the current point - -- on the current face. - raises NotDone from StdFail; - - - W(me) returns Real from Standard - ---Purpose: returns the parameter of the current point - -- on the curve. - raises NotDone from StdFail; - - - State(me) returns State from TopAbs - ---Purpose: returns the current state (IN or ON) - raises NotDone from StdFail; - - - Transition(me) returns TransitionOnCurve from IntCurveSurface - ---Purpose: returns the transition of the line on the surface (IN or OUT or UNKNOWN) - raises NotDone from StdFail; - - - Face(me) returns Face from TopoDS; - ---Purpose: returns the current face. - ---C++: return const & - - FindPoint(me : in out) returns Boolean from Standard is protected; - ---Purpose: Method chec found intersection point - - Clear(me : in out) is protected; - ---Purpose: Method to clear fields of class - -fields - - myTolerance : Real from Standard; - myCurve : HCurve from GeomAdaptor; - - myIntcs : HInter from IntCurveSurface; - - myCurrentindex : Integer from Standard; - myCurrentnbpoints: Integer from Standard; - myFastClass : TopolTool from BRepTopAdaptor; - - myCurrentstate : State from TopAbs; - myCurrentU : Real from Standard; - myCurrentV : Real from Standard; - myCurveBox : Box from Bnd; - myIndFace : Integer from Standard; - myFaces : SequenceOfShape from TopTools; - myFaceBoxes : HArray1OfBox from Bnd; - -end Inter from BRepIntCurveSurface; diff --git a/src/BRepIntCurveSurface/BRepIntCurveSurface_Inter.cxx b/src/BRepIntCurveSurface/BRepIntCurveSurface_Inter.cxx index 6e0f40a203..0696dc324d 100644 --- a/src/BRepIntCurveSurface/BRepIntCurveSurface_Inter.cxx +++ b/src/BRepIntCurveSurface/BRepIntCurveSurface_Inter.cxx @@ -14,20 +14,25 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include +#include #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include - +#include //=========================================================================== //function :BRepIntCurveSurface_Inter::BRepIntCurveSurface_Inte diff --git a/src/BRepIntCurveSurface/BRepIntCurveSurface_Inter.hxx b/src/BRepIntCurveSurface/BRepIntCurveSurface_Inter.hxx new file mode 100644 index 0000000000..eaf62be1f4 --- /dev/null +++ b/src/BRepIntCurveSurface/BRepIntCurveSurface_Inter.hxx @@ -0,0 +1,167 @@ +// Created on: 1994-02-07 +// Created by: Modelistation +// 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 _BRepIntCurveSurface_Inter_HeaderFile +#define _BRepIntCurveSurface_Inter_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +class GeomAdaptor_HCurve; +class BRepTopAdaptor_TopolTool; +class StdFail_NotDone; +class TopoDS_Shape; +class GeomAdaptor_Curve; +class gp_Lin; +class IntCurveSurface_IntersectionPoint; +class gp_Pnt; +class TopoDS_Face; + + +//! Computes the intersection between a face and a +//! curve. To intersect one curve with shape method +//! Init(Shape, curve, tTol) should be used. To +//! intersect a few curves with specified shape it is +//! necessary to load shape one time using method +//! Load(shape, tol) and find intersection points for +//! each curve using method Init(curve). For +//! iteration by intersection points method More() and +//! Next() should be used. +//! +//! Example: +//! Inter.Load(shape, tol); +//! for( i =1; i <= nbCurves;i++) +//! { +//! Inter.Init(curve); +//! for( ;Inter.More(); Inter.Next()) +//! { +//! ....... +//! } +//! } +class BRepIntCurveSurface_Inter +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Empty constructor; + Standard_EXPORT BRepIntCurveSurface_Inter(); + + //! Load the Shape, the curve and initialize the + //! tolerance used for the classification. + Standard_EXPORT void Init (const TopoDS_Shape& theShape, const GeomAdaptor_Curve& theCurve, const Standard_Real theTol); + + //! Load the Shape, the curve and initialize the + //! tolerance used for the classification. + Standard_EXPORT void Init (const TopoDS_Shape& theShape, const gp_Lin& theLine, const Standard_Real theTol); + + //! Load the Shape, and initialize the + //! tolerance used for the classification. + Standard_EXPORT void Load (const TopoDS_Shape& theShape, const Standard_Real theTol); + + //! Method to find intersections of specified curve with loaded shape. + Standard_EXPORT void Init (const GeomAdaptor_Curve& theCurve); + + //! returns True if there is a current face. + Standard_EXPORT Standard_Boolean More() const; + + //! Sets the next intersection point to check. + Standard_EXPORT void Next(); + + //! returns the current Intersection point. + Standard_EXPORT IntCurveSurface_IntersectionPoint Point() const; + + //! returns the current geometric Point + Standard_EXPORT const gp_Pnt& Pnt() const; + + //! returns the U parameter of the current point + //! on the current face. + Standard_EXPORT Standard_Real U() const; + + //! returns the V parameter of the current point + //! on the current face. + Standard_EXPORT Standard_Real V() const; + + //! returns the parameter of the current point + //! on the curve. + Standard_EXPORT Standard_Real W() const; + + //! returns the current state (IN or ON) + Standard_EXPORT TopAbs_State State() const; + + //! returns the transition of the line on the surface (IN or OUT or UNKNOWN) + Standard_EXPORT IntCurveSurface_TransitionOnCurve Transition() const; + + //! returns the current face. + Standard_EXPORT const TopoDS_Face& Face() const; + + + + +protected: + + + //! Internal function + Standard_EXPORT void Find(); + + //! Method chec found intersection point + Standard_EXPORT Standard_Boolean FindPoint(); + + //! Method to clear fields of class + Standard_EXPORT void Clear(); + + + + +private: + + + + Standard_Real myTolerance; + Handle(GeomAdaptor_HCurve) myCurve; + IntCurveSurface_HInter myIntcs; + Standard_Integer myCurrentindex; + Standard_Integer myCurrentnbpoints; + Handle(BRepTopAdaptor_TopolTool) myFastClass; + TopAbs_State myCurrentstate; + Standard_Real myCurrentU; + Standard_Real myCurrentV; + Bnd_Box myCurveBox; + Standard_Integer myIndFace; + TopTools_SequenceOfShape myFaces; + Handle(Bnd_HArray1OfBox) myFaceBoxes; + + +}; + + + + + + + +#endif // _BRepIntCurveSurface_Inter_HeaderFile diff --git a/src/BRepIntCurveSurface/FILES b/src/BRepIntCurveSurface/FILES new file mode 100644 index 0000000000..f262a9c4ca --- /dev/null +++ b/src/BRepIntCurveSurface/FILES @@ -0,0 +1,2 @@ +BRepIntCurveSurface_Inter.cxx +BRepIntCurveSurface_Inter.hxx diff --git a/src/BRepLProp/BRepLProp.cdl b/src/BRepLProp/BRepLProp.cdl deleted file mode 100644 index d17aef612d..0000000000 --- a/src/BRepLProp/BRepLProp.cdl +++ /dev/null @@ -1,59 +0,0 @@ --- Created on: 1994-02-24 --- Created by: Laurent BOURESCHE --- 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. - -package BRepLProp - - ---Purpose: These global functions compute the degree of --- continuity of a curve built by concatenation of two --- edges at their junction point. - -uses Standard, gp, BRepAdaptor, GeomAbs, LProp - -is - - class CurveTool; - class SurfaceTool; - - - class CLProps from BRepLProp - instantiates CLProps from LProp(Curve from BRepAdaptor, - Vec from gp, - Pnt from gp, - Dir from gp, - CurveTool from BRepLProp); - - class SLProps from BRepLProp - instantiates SLProps from LProp(Surface from BRepAdaptor, - SurfaceTool from BRepLProp); - - - Continuity(C1,C2 : Curve from BRepAdaptor; - u1,u2 : Real from Standard; - tl,ta : Real from Standard) - ---Purpose: Computes the regularity at the junction between C1 and - -- C2. The point u1 on C1 and the point u2 on C2 must be - -- confused. tl and ta are the linear and angular - -- tolerance used two compare the derivative. - returns Shape from GeomAbs; - - - Continuity(C1,C2 : Curve from BRepAdaptor; - u1,u2 : Real from Standard) - ---Purpose: The same as preciding but using the standard - -- tolerances from package Precision. - returns Shape from GeomAbs; - -end BRepLProp; diff --git a/src/BRepLProp/BRepLProp.cxx b/src/BRepLProp/BRepLProp.cxx index dc975b5851..9472bc2327 100644 --- a/src/BRepLProp/BRepLProp.cxx +++ b/src/BRepLProp/BRepLProp.cxx @@ -14,19 +14,20 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include + +#include +#include #include #include #include -#include +#include #include +#include //======================================================================= //function : Continuity //purpose : //======================================================================= - GeomAbs_Shape BRepLProp::Continuity(const BRepAdaptor_Curve& C1, const BRepAdaptor_Curve& C2, const Standard_Real u1, diff --git a/src/BRepLProp/BRepLProp.hxx b/src/BRepLProp/BRepLProp.hxx new file mode 100644 index 0000000000..f88518c00f --- /dev/null +++ b/src/BRepLProp/BRepLProp.hxx @@ -0,0 +1,80 @@ +// Created on: 1994-02-24 +// Created by: Laurent BOURESCHE +// 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 _BRepLProp_HeaderFile +#define _BRepLProp_HeaderFile + +#include +#include +#include + +#include +#include +class BRepAdaptor_Curve; +class BRepLProp_CurveTool; +class BRepLProp_SurfaceTool; +class BRepLProp_CLProps; +class BRepLProp_SLProps; + + +//! These global functions compute the degree of +//! continuity of a curve built by concatenation of two +//! edges at their junction point. +class BRepLProp +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Computes the regularity at the junction between C1 and + //! C2. The point u1 on C1 and the point u2 on C2 must be + //! confused. tl and ta are the linear and angular + //! tolerance used two compare the derivative. + Standard_EXPORT static GeomAbs_Shape Continuity (const BRepAdaptor_Curve& C1, const BRepAdaptor_Curve& C2, const Standard_Real u1, const Standard_Real u2, const Standard_Real tl, const Standard_Real ta); + + //! The same as preciding but using the standard + //! tolerances from package Precision. + Standard_EXPORT static GeomAbs_Shape Continuity (const BRepAdaptor_Curve& C1, const BRepAdaptor_Curve& C2, const Standard_Real u1, const Standard_Real u2); + + + + +protected: + + + + + +private: + + + + +friend class BRepLProp_CurveTool; +friend class BRepLProp_SurfaceTool; +friend class BRepLProp_CLProps; +friend class BRepLProp_SLProps; + +}; + + + + + + + +#endif // _BRepLProp_HeaderFile diff --git a/src/BRepLProp/BRepLProp_CLProps.hxx b/src/BRepLProp/BRepLProp_CLProps.hxx new file mode 100644 index 0000000000..a0c85fdab4 --- /dev/null +++ b/src/BRepLProp/BRepLProp_CLProps.hxx @@ -0,0 +1,113 @@ +// Created on: 1994-02-24 +// Created by: Laurent BOURESCHE +// 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 _BRepLProp_CLProps_HeaderFile +#define _BRepLProp_CLProps_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class LProp_BadContinuity; +class Standard_DomainError; +class Standard_OutOfRange; +class LProp_NotDefined; +class BRepAdaptor_Curve; +class gp_Vec; +class gp_Pnt; +class gp_Dir; +class BRepLProp_CurveTool; + + + +class BRepLProp_CLProps +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepLProp_CLProps(const BRepAdaptor_Curve& C, const Standard_Integer N, const Standard_Real Resolution); + + Standard_EXPORT BRepLProp_CLProps(const BRepAdaptor_Curve& C, const Standard_Real U, const Standard_Integer N, const Standard_Real Resolution); + + Standard_EXPORT BRepLProp_CLProps(const Standard_Integer N, const Standard_Real Resolution); + + Standard_EXPORT void SetParameter (const Standard_Real U); + + Standard_EXPORT void SetCurve (const BRepAdaptor_Curve& C); + + Standard_EXPORT const gp_Pnt& Value() const; + + Standard_EXPORT const gp_Vec& D1(); + + Standard_EXPORT const gp_Vec& D2(); + + Standard_EXPORT const gp_Vec& D3(); + + Standard_EXPORT Standard_Boolean IsTangentDefined(); + + Standard_EXPORT void Tangent (gp_Dir& D); + + Standard_EXPORT Standard_Real Curvature(); + + Standard_EXPORT void Normal (gp_Dir& N); + + Standard_EXPORT void CentreOfCurvature (gp_Pnt& P); + + + + +protected: + + + + + +private: + + + + BRepAdaptor_Curve myCurve; + Standard_Real myU; + Standard_Integer myDerOrder; + Standard_Real myCN; + Standard_Real myLinTol; + gp_Pnt myPnt; + gp_Vec myDerivArr[3]; + gp_Dir myTangent; + Standard_Real myCurvature; + LProp_Status myTangentStatus; + Standard_Integer mySignificantFirstDerivativeOrder; + + +}; + + + + + + + +#endif // _BRepLProp_CLProps_HeaderFile diff --git a/src/BRepLProp/BRepLProp_CLProps_0.cxx b/src/BRepLProp/BRepLProp_CLProps_0.cxx new file mode 100644 index 0000000000..b1e738b9bc --- /dev/null +++ b/src/BRepLProp/BRepLProp_CLProps_0.cxx @@ -0,0 +1,43 @@ +// Created on: 1994-02-24 +// Created by: Laurent BOURESCHE +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define Curve BRepAdaptor_Curve +#define Curve_hxx +#define Vec gp_Vec +#define Vec_hxx +#define Pnt gp_Pnt +#define Pnt_hxx +#define Dir gp_Dir +#define Dir_hxx +#define Tool BRepLProp_CurveTool +#define Tool_hxx +#define LProp_CLProps BRepLProp_CLProps +#define LProp_CLProps_hxx +#include + diff --git a/src/BRepLProp/BRepLProp_CurveTool.cdl b/src/BRepLProp/BRepLProp_CurveTool.cdl deleted file mode 100644 index 08de7b6796..0000000000 --- a/src/BRepLProp/BRepLProp_CurveTool.cdl +++ /dev/null @@ -1,61 +0,0 @@ --- Created on: 1994-02-24 --- Created by: Laurent BOURESCHE --- 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. - -class CurveTool from BRepLProp - -uses Vec from gp, - Pnt from gp, - Dir from gp, - Curve from BRepAdaptor - -is - - Value(myclass; C : Curve from BRepAdaptor; U : Real; P : out Pnt); - ---Purpose: Computes the point

of parameter on the curve . - - D1 (myclass; C : Curve from BRepAdaptor; - U : Real; P : out Pnt; V1 : out Vec); - ---Purpose: Computes the point

and first derivative of - -- parameter on the curve . - - D2 (myclass; C : Curve from BRepAdaptor; - U : Real; P : out Pnt; V1, V2 : out Vec); - ---Purpose: Computes the point

, the first derivative and second - -- derivative of parameter on the curve . - - D3 (myclass; C : Curve from BRepAdaptor; - U : Real; P : out Pnt; V1, V2, V3 : out Vec); - ---Purpose: Computes the point

, the first derivative , the - -- second derivative and third derivative of - -- parameter on the curve . - - Continuity(myclass; C : Curve from BRepAdaptor) returns Integer; - ---Purpose: returns the order of continuity of the curve . - -- returns 1 : first derivative only is computable - -- returns 2 : first and second derivative only are computable. - -- returns 3 : first, second and third are computable. - - FirstParameter(myclass; C : Curve from BRepAdaptor) returns Real; - ---Purpose: returns the first parameter bound of the curve. - -- - - LastParameter(myclass; C : Curve from BRepAdaptor) returns Real; - ---Purpose: returns the last parameter bound of the curve. - -- FirstParameter must be less than LastParamenter. - -end CurveTool; - - diff --git a/src/BRepLProp/BRepLProp_CurveTool.cxx b/src/BRepLProp/BRepLProp_CurveTool.cxx index 86e2283963..2493c92e2a 100644 --- a/src/BRepLProp/BRepLProp_CurveTool.cxx +++ b/src/BRepLProp/BRepLProp_CurveTool.cxx @@ -14,13 +14,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include //======================================================================= //function : Value //purpose : //======================================================================= - void BRepLProp_CurveTool::Value(const BRepAdaptor_Curve& C, const Standard_Real U, gp_Pnt& P) diff --git a/src/BRepLProp/BRepLProp_CurveTool.hxx b/src/BRepLProp/BRepLProp_CurveTool.hxx new file mode 100644 index 0000000000..c60e8b515b --- /dev/null +++ b/src/BRepLProp/BRepLProp_CurveTool.hxx @@ -0,0 +1,91 @@ +// Created on: 1994-02-24 +// Created by: Laurent BOURESCHE +// 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 _BRepLProp_CurveTool_HeaderFile +#define _BRepLProp_CurveTool_HeaderFile + +#include +#include +#include + +#include +#include +class BRepAdaptor_Curve; +class gp_Pnt; +class gp_Vec; + + + +class BRepLProp_CurveTool +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Computes the point

of parameter on the curve . + Standard_EXPORT static void Value (const BRepAdaptor_Curve& C, const Standard_Real U, gp_Pnt& P); + + //! Computes the point

and first derivative of + //! parameter on the curve . + Standard_EXPORT static void D1 (const BRepAdaptor_Curve& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V1); + + //! Computes the point

, the first derivative and second + //! derivative of parameter on the curve . + Standard_EXPORT static void D2 (const BRepAdaptor_Curve& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2); + + //! Computes the point

, the first derivative , the + //! second derivative and third derivative of + //! parameter on the curve . + Standard_EXPORT static void D3 (const BRepAdaptor_Curve& C, const Standard_Real U, gp_Pnt& P, gp_Vec& V1, gp_Vec& V2, gp_Vec& V3); + + //! returns the order of continuity of the curve . + //! returns 1 : first derivative only is computable + //! returns 2 : first and second derivative only are computable. + //! returns 3 : first, second and third are computable. + Standard_EXPORT static Standard_Integer Continuity (const BRepAdaptor_Curve& C); + + //! returns the first parameter bound of the curve. + Standard_EXPORT static Standard_Real FirstParameter (const BRepAdaptor_Curve& C); + + //! returns the last parameter bound of the curve. + //! FirstParameter must be less than LastParamenter. + Standard_EXPORT static Standard_Real LastParameter (const BRepAdaptor_Curve& C); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepLProp_CurveTool_HeaderFile diff --git a/src/BRepLProp/BRepLProp_SLProps.hxx b/src/BRepLProp/BRepLProp_SLProps.hxx new file mode 100644 index 0000000000..3b0a1ebc7b --- /dev/null +++ b/src/BRepLProp/BRepLProp_SLProps.hxx @@ -0,0 +1,147 @@ +// Created on: 1994-02-24 +// Created by: Laurent BOURESCHE +// 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 _BRepLProp_SLProps_HeaderFile +#define _BRepLProp_SLProps_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +class LProp_BadContinuity; +class Standard_DomainError; +class Standard_OutOfRange; +class LProp_NotDefined; +class BRepAdaptor_Surface; +class BRepLProp_SurfaceTool; +class gp_Pnt; +class gp_Vec; +class gp_Dir; + + + +class BRepLProp_SLProps +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepLProp_SLProps(const BRepAdaptor_Surface& S, const Standard_Real U, const Standard_Real V, const Standard_Integer N, const Standard_Real Resolution); + + Standard_EXPORT BRepLProp_SLProps(const BRepAdaptor_Surface& S, const Standard_Integer N, const Standard_Real Resolution); + + Standard_EXPORT BRepLProp_SLProps(const Standard_Integer N, const Standard_Real Resolution); + + Standard_EXPORT void SetSurface (const BRepAdaptor_Surface& S); + + Standard_EXPORT void SetParameters (const Standard_Real U, const Standard_Real V); + + Standard_EXPORT const gp_Pnt& Value() const; + + Standard_EXPORT const gp_Vec& D1U(); + + Standard_EXPORT const gp_Vec& D1V(); + + Standard_EXPORT const gp_Vec& D2U(); + + Standard_EXPORT const gp_Vec& D2V(); + + Standard_EXPORT const gp_Vec& DUV(); + + Standard_EXPORT Standard_Boolean IsTangentUDefined(); + + Standard_EXPORT void TangentU (gp_Dir& D); + + Standard_EXPORT Standard_Boolean IsTangentVDefined(); + + Standard_EXPORT void TangentV (gp_Dir& D); + + Standard_EXPORT Standard_Boolean IsNormalDefined(); + + Standard_EXPORT const gp_Dir& Normal(); + + Standard_EXPORT Standard_Boolean IsCurvatureDefined(); + + Standard_EXPORT Standard_Boolean IsUmbilic(); + + Standard_EXPORT Standard_Real MaxCurvature(); + + Standard_EXPORT Standard_Real MinCurvature(); + + Standard_EXPORT void CurvatureDirections (gp_Dir& MaxD, gp_Dir& MinD); + + Standard_EXPORT Standard_Real MeanCurvature(); + + Standard_EXPORT Standard_Real GaussianCurvature(); + + + + +protected: + + + + + +private: + + + + BRepAdaptor_Surface mySurf; + Standard_Real myU; + Standard_Real myV; + Standard_Integer myDerOrder; + Standard_Integer myCN; + Standard_Real myLinTol; + gp_Pnt myPnt; + gp_Vec myD1u; + gp_Vec myD1v; + gp_Vec myD2u; + gp_Vec myD2v; + gp_Vec myDuv; + gp_Dir myNormal; + Standard_Real myMinCurv; + Standard_Real myMaxCurv; + gp_Dir myDirMinCurv; + gp_Dir myDirMaxCurv; + Standard_Real myMeanCurv; + Standard_Real myGausCurv; + Standard_Integer mySignificantFirstDerivativeOrderU; + Standard_Integer mySignificantFirstDerivativeOrderV; + LProp_Status myUTangentStatus; + LProp_Status myVTangentStatus; + LProp_Status myNormalStatus; + LProp_Status myCurvatureStatus; + + +}; + + + + + + + +#endif // _BRepLProp_SLProps_HeaderFile diff --git a/src/BRepLProp/BRepLProp_SLProps_0.cxx b/src/BRepLProp/BRepLProp_SLProps_0.cxx new file mode 100644 index 0000000000..d3c87b35a2 --- /dev/null +++ b/src/BRepLProp/BRepLProp_SLProps_0.cxx @@ -0,0 +1,37 @@ +// Created on: 1994-02-24 +// Created by: Laurent BOURESCHE +// 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. + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define Surface BRepAdaptor_Surface +#define Surface_hxx +#define Tool BRepLProp_SurfaceTool +#define Tool_hxx +#define LProp_SLProps BRepLProp_SLProps +#define LProp_SLProps_hxx +#include + diff --git a/src/BRepLProp/BRepLProp_SurfaceTool.cdl b/src/BRepLProp/BRepLProp_SurfaceTool.cdl deleted file mode 100644 index e9867391cd..0000000000 --- a/src/BRepLProp/BRepLProp_SurfaceTool.cdl +++ /dev/null @@ -1,51 +0,0 @@ --- Created on: 1994-02-24 --- Created by: Laurent BOURESCHE --- 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. - -class SurfaceTool from BRepLProp - -uses Pnt from gp, - Vec from gp, - Surface from BRepAdaptor - -is - - Value(myclass; S : Surface; U, V : Real; P : out Pnt); - ---Purpose: Computes the point

of parameter and on the - -- Surface . - - D1 (myclass; S : Surface; U, V : Real; P : out Pnt; D1U, D1V : out Vec); - ---Purpose: Computes the point

and first derivative of - -- parameter and on the Surface . - - D2 (myclass; S : Surface; U, V : Real; - P : out Pnt; D1U, D1V, D2U, D2V, DUV : out Vec); - ---Purpose: Computes the point

, the first derivative and second - -- derivative of parameter and on the Surface . - - DN (myclass; S : Surface; U, V : Real; IU, IV : Integer) - returns Vec; - - Continuity(myclass; S : Surface) returns Integer; - ---Purpose: returns the order of continuity of the Surface . - -- returns 1 : first derivative only is computable - -- returns 2 : first and second derivative only are computable. - - Bounds(myclass; S : Surface; U1, V1, U2, V2 : out Real); - ---Purpose: returns the bounds of the Surface. - -end SurfaceTool; - - diff --git a/src/BRepLProp/BRepLProp_SurfaceTool.cxx b/src/BRepLProp/BRepLProp_SurfaceTool.cxx index a24f5819a9..2592f8a81c 100644 --- a/src/BRepLProp/BRepLProp_SurfaceTool.cxx +++ b/src/BRepLProp/BRepLProp_SurfaceTool.cxx @@ -14,13 +14,16 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include //======================================================================= //function : Value //purpose : //======================================================================= - void BRepLProp_SurfaceTool::Value(const BRepAdaptor_Surface& S, const Standard_Real U, const Standard_Real V, diff --git a/src/BRepLProp/BRepLProp_SurfaceTool.hxx b/src/BRepLProp/BRepLProp_SurfaceTool.hxx new file mode 100644 index 0000000000..f65b70ec08 --- /dev/null +++ b/src/BRepLProp/BRepLProp_SurfaceTool.hxx @@ -0,0 +1,84 @@ +// Created on: 1994-02-24 +// Created by: Laurent BOURESCHE +// 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 _BRepLProp_SurfaceTool_HeaderFile +#define _BRepLProp_SurfaceTool_HeaderFile + +#include +#include +#include + +#include +#include +class BRepAdaptor_Surface; +class gp_Pnt; +class gp_Vec; + + + +class BRepLProp_SurfaceTool +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Computes the point

of parameter and on the + //! Surface . + Standard_EXPORT static void Value (const BRepAdaptor_Surface& S, const Standard_Real U, const Standard_Real V, gp_Pnt& P); + + //! Computes the point

and first derivative of + //! parameter and on the Surface . + Standard_EXPORT static void D1 (const BRepAdaptor_Surface& S, const Standard_Real U, const Standard_Real V, gp_Pnt& P, gp_Vec& D1U, gp_Vec& D1V); + + //! Computes the point

, the first derivative and second + //! derivative of parameter and on the Surface . + Standard_EXPORT 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& DUV); + + Standard_EXPORT static gp_Vec DN (const BRepAdaptor_Surface& S, const Standard_Real U, const Standard_Real V, const Standard_Integer IU, const Standard_Integer IV); + + //! returns the order of continuity of the Surface . + //! returns 1 : first derivative only is computable + //! returns 2 : first and second derivative only are computable. + Standard_EXPORT static Standard_Integer Continuity (const BRepAdaptor_Surface& S); + + //! returns the bounds of the Surface. + Standard_EXPORT static void Bounds (const BRepAdaptor_Surface& S, Standard_Real& U1, Standard_Real& V1, Standard_Real& U2, Standard_Real& V2); + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepLProp_SurfaceTool_HeaderFile diff --git a/src/BRepLProp/FILES b/src/BRepLProp/FILES new file mode 100644 index 0000000000..3f312a0482 --- /dev/null +++ b/src/BRepLProp/FILES @@ -0,0 +1,10 @@ +BRepLProp.cxx +BRepLProp.hxx +BRepLProp_CLProps.hxx +BRepLProp_CLProps_0.cxx +BRepLProp_CurveTool.cxx +BRepLProp_CurveTool.hxx +BRepLProp_SLProps.hxx +BRepLProp_SLProps_0.cxx +BRepLProp_SurfaceTool.cxx +BRepLProp_SurfaceTool.hxx diff --git a/src/BRepLib/BRepLib.cdl b/src/BRepLib/BRepLib.cdl deleted file mode 100644 index ac0bce61a2..0000000000 --- a/src/BRepLib/BRepLib.cdl +++ /dev/null @@ -1,324 +0,0 @@ --- Created on: 1993-12-15 --- 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. - -package BRepLib - - ---Purpose: The BRepLib package provides general utilities for - -- BRep. - -- - -- * FindSurface : Class to compute a surface through - -- a set of edges. - -- - -- * Compute missing 3d curve on an edge. - -uses - Standard, - StdFail, - gp, - Geom, - GeomAbs, - Geom2d, - TopoDS, - TopLoc, - TopTools, - TopAbs - -is - - enumeration EdgeError is - ---Purpose: Errors that can occur at edge construction. - EdgeDone, -- no error - PointProjectionFailed, - ParameterOutOfRange, - DifferentPointsOnClosedCurve, - PointWithInfiniteParameter, - DifferentsPointAndParameter, - LineThroughIdenticPoints - end EdgeError; - - - enumeration WireError is - ---Purpose: Errors that can occur at wire construction. - WireDone, -- no error - EmptyWire, - DisconnectedWire, - NonManifoldWire - - end WireError; - - - enumeration FaceError is - ---Purpose: Errors that can occur at face construction. - FaceDone, -- no error - NoFace, -- not initialised - NotPlanar, - CurveProjectionFailed, - ParametersOutOfRange - - end FaceError; - - - enumeration ShellError is - ---Purpose: Errors that can occur at shell construction. - - ShellDone, -- no error - EmptyShell, - DisconnectedShell, - ShellParametersOutOfRange - - end ShellError; - - enumeration ShapeModification is - ---Purpose: Modification type after a topologic operation. - - Preserved, -- no modification - Deleted, - Trimmed, - Merged, - BoundaryModified - - end ShapeModification; - - deferred class Command; - - deferred class MakeShape; - - -- - -- Construction of topology from geometry - -- - - class MakeVertex; - - class MakeEdge; - - class MakeEdge2d; - - class MakePolygon; - - class MakeFace; - - -- - -- Construction of composite topologies - -- - - class MakeWire; - - class MakeShell; - - class MakeSolid; - - - - - --- END of API commands. - - - - - class FindSurface; - - class FuseEdges; - ---Purpose: - - class CheckCurveOnSurface; - ---Purpose: - -- Computes the max distance between edge - -- and its 2d representation on the face. - - -- - -- Default precison methods. - -- The default precision is initialized with Precision::Confusion() - -- - - Precision(P : Real); - ---Purpose: Sets the default precision. The current Precision - -- is returned. - ---Level: Public - - Precision returns Real; - ---Purpose: Returns the default precision. - ---Level: Public - - - -- - -- Default plane for 2d edges. - -- - - Plane(P : Plane from Geom); - ---Purpose: Sets the current plane to P. - ---Level: Public - - Plane returns Plane from Geom; - ---Purpose: Returns the current plane. - -- - ---C++: return const & - ---Level: Public - - - - CheckSameRange(E : Edge from TopoDS ; - Confusion : Real from Standard = 1.0e-12) - returns Boolean; - - ---Purpose: checks if the Edge is same range IGNORING - -- the same range flag of the edge - -- Confusion argument is to compare real numbers - -- idenpendently of any model space tolerance - -- - - - SameRange(E : Edge from TopoDS ; - Tolerance : Real from Standard = 1.0e-5) ; - ---Purpose: will make all the curve representation have - -- the same range domain for the parameters. - -- This will IGNORE the same range flag value - -- to proceed. - -- If there is a 3D curve there it will the - -- range of that curve. If not the first curve representation - -- encountered in the list will give its range to - -- the all the other curves. - - BuildCurve3d(E : Edge from TopoDS ; - Tolerance : Real from Standard = 1.0e-5 ; - Continuity : Shape from GeomAbs = GeomAbs_C1; - MaxDegree : Integer = 14; - MaxSegment : Integer = 0 --30 - ) returns Boolean; - ---Purpose: Computes the 3d curve for the edge if it does - -- not exist. Returns True if the curve was computed - -- or existed. Returns False if there is no planar - -- pcurve or the computation failed. - -- >= 30 in approximation - - BuildCurves3d(S : Shape from TopoDS ; - Tolerance : Real from Standard; - Continuity : Shape from GeomAbs = GeomAbs_C1; - MaxDegree : Integer = 14; - MaxSegment : Integer = 0 --30 - ) returns Boolean; - - ---Purpose: Computes the 3d curves for all the edges of - -- return False if one of the computation failed. - -- >= 30 in approximation - - BuildCurves3d(S : Shape from TopoDS) - returns Boolean; - - ---Purpose: Computes the 3d curves for all the edges of - -- return False if one of the computation failed. - - - -- - -- - UpdateEdgeTol( E : Edge from TopoDS ; - MinToleranceRequest : Real from Standard ; - MaxToleranceToCheck : Real from Standard) - ---Purpose: Checks if the edge has a Tolerance smaller than -- -- - -- -- -- MaxToleranceToCheck if so it will compute the - -- radius of -- the cylindrical pipe surface that - -- MinToleranceRequest is the minimum tolerance before it - -- is usefull to start testing. Usually it should be arround - -- 10e-5 - -- contains all -- the curve represenation of the edge - -- returns True if the Edge tolerance had to be updated - returns Boolean ; - - - UpdateEdgeTolerance(S : Shape from TopoDS; - MinToleranceRequest : Real from Standard ; - MaxToleranceToCheck : Real from Standard) - - ---Purpose: -- Checks all the edges of the shape whose -- -- -- - -- Tolerance is smaller than MaxToleranceToCheck -- - -- Returns True if at least one edge was updated -- - -- MinToleranceRequest is the minimum tolerance before - -- -- it -- is usefull to start testing. Usually it - -- should be arround -- 10e-5-- - -- - -- Warning :The method is very slow as it checks all. - -- Use only in interfaces or processing assimilate batch - -- - - returns Boolean ; - - SameParameter(E: Edge from TopoDS; - Tolerance : Real from Standard = 1.0e-5); - ---Purpose: Computes new 2d curve(s) for the edge to have - -- the same parameter as the 3d curve. - -- The algorithm is not done if the flag SameParameter - -- was True on the Edge. - - - - SameParameter(S: Shape from TopoDS ; - Tolerance : Real from Standard = 1.0e-5; - forced : Boolean from Standard = Standard_False); - ---Purpose: Computes new 2d curve(s) for all the edges of - -- to have the same parameter as the 3d curve. - -- The algorithm is not done if the flag SameParameter - -- was True on an Edge. - - UpdateTolerances(S: Shape from TopoDS; - verifyFaceTolerance : Boolean from Standard = Standard_False); - ---Purpose: Replaces tolerance of FACE EDGE VERTEX by the - -- tolerance Max of their connected handling shapes. - -- It is not necessary to use this call after - -- SameParameter. (called in) - - OrientClosedSolid(solid : in out Solid from TopoDS) - ---Purpose: Orients the solid forward and the shell with the - -- orientation to have matter in the solid. Returns - -- False if the solid is unOrientable (open or incoherent) - returns Boolean; - - - EncodeRegularity(S : Shape from TopoDS; - TolAng : Real from Standard = 1.0e-10); - ---Purpose: Encodes the Regularity of edges on a Shape. - -- Warning: is an angular tolerance, expressed in Rad. - -- Warning: If the edges's regularity are coded before, nothing - -- is done. - - EncodeRegularity(S : in out Edge from TopoDS; - F1, F2 : Face from TopoDS; - TolAng : Real from Standard = 1.0e-10); - ---Purpose: Encodes the Regularity beetween and by - -- Warning: is an angular tolerance, expressed in Rad. - -- Warning: If the edge's regularity is coded before, nothing - -- is done. - - SortFaces (S : Shape from TopoDS; - LF : in out ListOfShape from TopTools); - ---Purpose: Sorts in LF the Faces of S on the complexity of - -- their surfaces - -- (Plane,Cylinder,Cone,Sphere,Torus,other) - - ReverseSortFaces (S : Shape from TopoDS; - LF : in out ListOfShape from TopTools); - ---Purpose: Sorts in LF the Faces of S on the reverse - -- complexity of their surfaces - -- (other,Torus,Sphere,Cone,Cylinder,Plane) - - EnsureNormalConsistency (S : Shape from TopoDS; - theAngTol: Real from Standard = 0.001; - ForceComputeNormals: Boolean from Standard = Standard_False) - returns Boolean; - ---Purpose: Corrects the normals in Poly_Triangulation of faces, - -- in such way that normals at nodes lying along smooth - -- edges have the same value on both adjacent triangulations. - -- Returns TRUE if any correction is done. - -end BRepLib; diff --git a/src/BRepLib/BRepLib.cxx b/src/BRepLib/BRepLib.cxx index a330798e05..ecd0eb9933 100644 --- a/src/BRepLib/BRepLib.cxx +++ b/src/BRepLib/BRepLib.cxx @@ -17,75 +17,76 @@ //pmn 26/09/97 Add parameters of approximation in BuildCurve3d // Modified by skv - Thu Jun 3 12:39:19 2004 OCC5898 -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include #include #include #include -#include +#include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include #include #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include // TODO - not thread-safe static variables static Standard_Real thePrecision = Precision::Confusion(); diff --git a/src/BRepLib/BRepLib.hxx b/src/BRepLib/BRepLib.hxx new file mode 100644 index 0000000000..a1e8788609 --- /dev/null +++ b/src/BRepLib/BRepLib.hxx @@ -0,0 +1,219 @@ +// Created on: 1993-12-15 +// 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 _BRepLib_HeaderFile +#define _BRepLib_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +class Geom_Plane; +class TopoDS_Edge; +class TopoDS_Shape; +class TopoDS_Solid; +class TopoDS_Face; +class BRepLib_Command; +class BRepLib_MakeShape; +class BRepLib_MakeVertex; +class BRepLib_MakeEdge; +class BRepLib_MakeEdge2d; +class BRepLib_MakePolygon; +class BRepLib_MakeFace; +class BRepLib_MakeWire; +class BRepLib_MakeShell; +class BRepLib_MakeSolid; +class BRepLib_FindSurface; +class BRepLib_FuseEdges; +class BRepLib_CheckCurveOnSurface; + + +//! The BRepLib package provides general utilities for +//! BRep. +//! +//! * FindSurface : Class to compute a surface through +//! a set of edges. +//! +//! * Compute missing 3d curve on an edge. +class BRepLib +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Computes the max distance between edge + //! and its 2d representation on the face. + //! Sets the default precision. The current Precision + //! is returned. + Standard_EXPORT static void Precision (const Standard_Real P); + + //! Returns the default precision. + Standard_EXPORT static Standard_Real Precision(); + + //! Sets the current plane to P. + Standard_EXPORT static void Plane (const Handle(Geom_Plane)& P); + + //! Returns the current plane. + Standard_EXPORT static const Handle(Geom_Plane)& Plane(); + + //! checks if the Edge is same range IGNORING + //! the same range flag of the edge + //! Confusion argument is to compare real numbers + //! idenpendently of any model space tolerance + Standard_EXPORT static Standard_Boolean CheckSameRange (const TopoDS_Edge& E, const Standard_Real Confusion = 1.0e-12); + + //! will make all the curve representation have + //! the same range domain for the parameters. + //! This will IGNORE the same range flag value + //! to proceed. + //! If there is a 3D curve there it will the + //! range of that curve. If not the first curve representation + //! encountered in the list will give its range to + //! the all the other curves. + Standard_EXPORT static void SameRange (const TopoDS_Edge& E, const Standard_Real Tolerance = 1.0e-5); + + //! Computes the 3d curve for the edge if it does + //! not exist. Returns True if the curve was computed + //! or existed. Returns False if there is no planar + //! pcurve or the computation failed. + //! >= 30 in approximation + Standard_EXPORT static Standard_Boolean BuildCurve3d (const TopoDS_Edge& E, const Standard_Real Tolerance = 1.0e-5, const GeomAbs_Shape Continuity = GeomAbs_C1, const Standard_Integer MaxDegree = 14, const Standard_Integer MaxSegment = 0); + + //! Computes the 3d curves for all the edges of + //! return False if one of the computation failed. + //! >= 30 in approximation + Standard_EXPORT static Standard_Boolean BuildCurves3d (const TopoDS_Shape& S, const Standard_Real Tolerance, const GeomAbs_Shape Continuity = GeomAbs_C1, const Standard_Integer MaxDegree = 14, const Standard_Integer MaxSegment = 0); + + //! Computes the 3d curves for all the edges of + //! return False if one of the computation failed. + Standard_EXPORT static Standard_Boolean BuildCurves3d (const TopoDS_Shape& S); + + //! Checks if the edge has a Tolerance smaller than -- -- + //! -- -- MaxToleranceToCheck if so it will compute the + //! radius of -- the cylindrical pipe surface that + //! MinToleranceRequest is the minimum tolerance before it + //! is usefull to start testing. Usually it should be arround + //! 10e-5 + //! contains all -- the curve represenation of the edge + //! returns True if the Edge tolerance had to be updated + Standard_EXPORT static Standard_Boolean UpdateEdgeTol (const TopoDS_Edge& E, const Standard_Real MinToleranceRequest, const Standard_Real MaxToleranceToCheck); + + //! -- Checks all the edges of the shape whose -- -- -- + //! Tolerance is smaller than MaxToleranceToCheck -- + //! Returns True if at least one edge was updated -- + //! MinToleranceRequest is the minimum tolerance before + //! -- it -- is usefull to start testing. Usually it + //! should be arround -- 10e-5-- + //! + //! Warning :The method is very slow as it checks all. + //! Use only in interfaces or processing assimilate batch + Standard_EXPORT static Standard_Boolean UpdateEdgeTolerance (const TopoDS_Shape& S, const Standard_Real MinToleranceRequest, const Standard_Real MaxToleranceToCheck); + + //! Computes new 2d curve(s) for the edge to have + //! the same parameter as the 3d curve. + //! The algorithm is not done if the flag SameParameter + //! was True on the Edge. + Standard_EXPORT static void SameParameter (const TopoDS_Edge& E, const Standard_Real Tolerance = 1.0e-5); + + //! Computes new 2d curve(s) for all the edges of + //! to have the same parameter as the 3d curve. + //! The algorithm is not done if the flag SameParameter + //! was True on an Edge. + Standard_EXPORT static void SameParameter (const TopoDS_Shape& S, const Standard_Real Tolerance = 1.0e-5, const Standard_Boolean forced = Standard_False); + + //! Replaces tolerance of FACE EDGE VERTEX by the + //! tolerance Max of their connected handling shapes. + //! It is not necessary to use this call after + //! SameParameter. (called in) + Standard_EXPORT static void UpdateTolerances (const TopoDS_Shape& S, const Standard_Boolean verifyFaceTolerance = Standard_False); + + //! Orients the solid forward and the shell with the + //! orientation to have matter in the solid. Returns + //! False if the solid is unOrientable (open or incoherent) + Standard_EXPORT static Standard_Boolean OrientClosedSolid (TopoDS_Solid& solid); + + //! Encodes the Regularity of edges on a Shape. + //! Warning: is an angular tolerance, expressed in Rad. + //! Warning: If the edges's regularity are coded before, nothing + //! is done. + Standard_EXPORT static void EncodeRegularity (const TopoDS_Shape& S, const Standard_Real TolAng = 1.0e-10); + + //! Encodes the Regularity beetween and by + //! Warning: is an angular tolerance, expressed in Rad. + //! Warning: If the edge's regularity is coded before, nothing + //! is done. + Standard_EXPORT static void EncodeRegularity (TopoDS_Edge& S, const TopoDS_Face& F1, const TopoDS_Face& F2, const Standard_Real TolAng = 1.0e-10); + + //! Sorts in LF the Faces of S on the complexity of + //! their surfaces + //! (Plane,Cylinder,Cone,Sphere,Torus,other) + Standard_EXPORT static void SortFaces (const TopoDS_Shape& S, TopTools_ListOfShape& LF); + + //! Sorts in LF the Faces of S on the reverse + //! complexity of their surfaces + //! (other,Torus,Sphere,Cone,Cylinder,Plane) + Standard_EXPORT static void ReverseSortFaces (const TopoDS_Shape& S, TopTools_ListOfShape& LF); + + //! Corrects the normals in Poly_Triangulation of faces, + //! in such way that normals at nodes lying along smooth + //! edges have the same value on both adjacent triangulations. + //! Returns TRUE if any correction is done. + Standard_EXPORT static Standard_Boolean EnsureNormalConsistency (const TopoDS_Shape& S, const Standard_Real theAngTol = 0.001, const Standard_Boolean ForceComputeNormals = Standard_False); + + + + +protected: + + + + + +private: + + + + +friend class BRepLib_Command; +friend class BRepLib_MakeShape; +friend class BRepLib_MakeVertex; +friend class BRepLib_MakeEdge; +friend class BRepLib_MakeEdge2d; +friend class BRepLib_MakePolygon; +friend class BRepLib_MakeFace; +friend class BRepLib_MakeWire; +friend class BRepLib_MakeShell; +friend class BRepLib_MakeSolid; +friend class BRepLib_FindSurface; +friend class BRepLib_FuseEdges; +friend class BRepLib_CheckCurveOnSurface; + +}; + + + + + + + +#endif // _BRepLib_HeaderFile diff --git a/src/BRepLib/BRepLib_CheckCurveOnSurface.cdl b/src/BRepLib/BRepLib_CheckCurveOnSurface.cdl deleted file mode 100644 index 01b2e9b995..0000000000 --- a/src/BRepLib/BRepLib_CheckCurveOnSurface.cdl +++ /dev/null @@ -1,175 +0,0 @@ --- Created by: Eugeny MALTCHIKOV --- 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. - -class CheckCurveOnSurface from BRepLib - - ---Purpose: - -- Computes the max distance between edge and its - -- 2d representation on the face. - -- - -- The algorithm can be initialized in the following ways: - -- 1. Input args are Edge and Face; - -- 2. Input args are 3D curve, 2d curve, Surface and - -- parametric range of the curve (first and last values). - -uses - - Edge from TopoDS, - Face from TopoDS, - Curve from Geom, - Curve from Geom2d, - Surface from Geom - -is - - Create - returns CheckCurveOnSurface from BRepLib; - ---Purpose: - -- Empty contructor - - Create( - theEdge : Edge from TopoDS; - theFace : Face from TopoDS); - ---Purpose: - -- Contructor - - Create( - theCurve : Curve from Geom; - thePCurve : Curve from Geom2d; - theSurface : Surface from Geom; - theFirst : Real from Standard; - theLast : Real from Standard); - ---Purpose: - -- Contructor - - Init(me:out; - theEdge : Edge from TopoDS; - theFace : Face from TopoDS); - ---Purpose: - -- Sets the data for the algorithm - - Init(me:out; - theCurve : Curve from Geom; - thePCurve : Curve from Geom2d; - theSurface : Surface from Geom; - theFirst : Real from Standard; - theLast : Real from Standard); - ---Purpose: - -- Sets the data for the algorithm - - Curve(me) - returns Curve from Geom; - ---C++: inline - ---C++: return const & - ---Purpose: - -- Returns my3DCurve - - PCurve(me) - returns Curve from Geom2d; - ---C++: inline - ---C++: return const & - ---Purpose: - -- Returns my2DCurve - - PCurve2(me) - returns Curve from Geom2d; - ---C++: inline - ---C++: return const & - ---Purpose: - -- Returns my2DCurve - - Surface(me) - returns Surface from Geom; - ---C++: inline - ---C++: return const & - ---Purpose: - -- Returns mySurface - - Range(me:out; - theFirst : out Real from Standard; - theLast : out Real from Standard); - ---C++: inline - ---Purpose: - -- Returns the range - - -- computations - -- - Perform(me:out; - isTheMultyTheradDisabled : Boolean from Standard = Standard_False); - ---Purpose: - -- Performs the calculation - -- If isTheMultyTheadDisabled == TRUE then computation will be made - -- without any parallelization. - - CheckData(me:out) - is protected; - ---Purpose: - -- Checks the data - - Compute(me:out; - thePCurve : Curve from Geom2d; - isTheMultyTheradDisabled : Boolean from Standard) - is protected; - ---Purpose: - -- Computes the max distance for the 3d curve - -- and 2d curve - -- If isTheMultyTheadDisabled == TRUE then computation will be made - -- without any parallelization. - - -- results - -- - IsDone(me) - returns Boolean from Standard; - ---C++: inline - ---Purpose: - -- Returns true if the max distance has been found - - ErrorStatus(me) - returns Integer from Standard; - ---C++: inline - ---Purpose: - -- Returns error status - -- The possible values are: - -- 0 - OK; - -- 1 - null curve or surface or 2d curve; - -- 2 - invalid parametric range; - -- 3 - error in calculations. - - MaxDistance(me) - returns Real from Standard; - ---C++: inline - ---Purpose: - -- Returns max distance - - MaxParameter(me) - returns Real from Standard; - ---C++: inline - ---Purpose: - -- Returns parameter in which the distance is maximal - -fields - -- source data - myCurve : Curve from Geom; - myPCurve : Curve from Geom2d; - -- 2nd p-curve (for closed surface) - myPCurve2 : Curve from Geom2d; - mySurface : Surface from Geom; - myFirst : Real from Standard; - myLast : Real from Standard; - -- result - myErrorStatus : Integer from Standard; - myMaxDistance : Real from Standard; - myMaxParameter : Real from Standard; - -end CheckCurveOnSurface; diff --git a/src/BRepLib/BRepLib_CheckCurveOnSurface.cxx b/src/BRepLib/BRepLib_CheckCurveOnSurface.cxx index fc27d88bd0..5c40e5b70b 100644 --- a/src/BRepLib/BRepLib_CheckCurveOnSurface.cxx +++ b/src/BRepLib/BRepLib_CheckCurveOnSurface.cxx @@ -12,47 +12,39 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include #include #include #include - #include - -#include -#include +#include #include +#include #include -#include -#include - -#include - +#include +#include #include - +#include #include #include +#include #include - +#include +#include +#include +#include +#include +#include +#include +#include #include - #include - #include - #include - #include #include - -#include -#include -#include -#include -#include -#include -#include +#include +#include class BRepLib_CheckCurveOnSurface_TargetFunc; diff --git a/src/BRepLib/BRepLib_CheckCurveOnSurface.hxx b/src/BRepLib/BRepLib_CheckCurveOnSurface.hxx new file mode 100644 index 0000000000..3f5b1f9c48 --- /dev/null +++ b/src/BRepLib/BRepLib_CheckCurveOnSurface.hxx @@ -0,0 +1,158 @@ +// Created by: Eugeny MALTCHIKOV +// 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 _BRepLib_CheckCurveOnSurface_HeaderFile +#define _BRepLib_CheckCurveOnSurface_HeaderFile + +#include +#include +#include + +#include +#include +#include +class Geom_Curve; +class Geom2d_Curve; +class Geom_Surface; +class TopoDS_Edge; +class TopoDS_Face; + + + +//! Computes the max distance between edge and its +//! 2d representation on the face. +//! +//! The algorithm can be initialized in the following ways: +//! 1. Input args are Edge and Face; +//! 2. Input args are 3D curve, 2d curve, Surface and +//! parametric range of the curve (first and last values). +class BRepLib_CheckCurveOnSurface +{ +public: + + DEFINE_STANDARD_ALLOC + + + + //! Empty contructor + Standard_EXPORT BRepLib_CheckCurveOnSurface(); + + + //! Contructor + Standard_EXPORT BRepLib_CheckCurveOnSurface(const TopoDS_Edge& theEdge, const TopoDS_Face& theFace); + + + //! Contructor + Standard_EXPORT BRepLib_CheckCurveOnSurface(const Handle(Geom_Curve)& theCurve, const Handle(Geom2d_Curve)& thePCurve, const Handle(Geom_Surface)& theSurface, const Standard_Real theFirst, const Standard_Real theLast); + + + //! Sets the data for the algorithm + Standard_EXPORT void Init (const TopoDS_Edge& theEdge, const TopoDS_Face& theFace); + + + //! Sets the data for the algorithm + Standard_EXPORT void Init (const Handle(Geom_Curve)& theCurve, const Handle(Geom2d_Curve)& thePCurve, const Handle(Geom_Surface)& theSurface, const Standard_Real theFirst, const Standard_Real theLast); + + + //! Returns my3DCurve + const Handle(Geom_Curve)& Curve() const; + + + //! Returns my2DCurve + const Handle(Geom2d_Curve)& PCurve() const; + + + //! Returns my2DCurve + const Handle(Geom2d_Curve)& PCurve2() const; + + + //! Returns mySurface + const Handle(Geom_Surface)& Surface() const; + + + //! Returns the range + void Range (Standard_Real& theFirst, Standard_Real& theLast); + + + //! Performs the calculation + //! If isTheMultyTheadDisabled == TRUE then computation will be made + //! without any parallelization. + Standard_EXPORT void Perform (const Standard_Boolean isTheMultyTheradDisabled = Standard_False); + + + //! Returns true if the max distance has been found + Standard_Boolean IsDone() const; + + + //! Returns error status + //! The possible values are: + //! 0 - OK; + //! 1 - null curve or surface or 2d curve; + //! 2 - invalid parametric range; + //! 3 - error in calculations. + Standard_Integer ErrorStatus() const; + + + //! Returns max distance + Standard_Real MaxDistance() const; + + + //! Returns parameter in which the distance is maximal + Standard_Real MaxParameter() const; + + + + +protected: + + + + //! Checks the data + Standard_EXPORT void CheckData(); + + + //! Computes the max distance for the 3d curve + //! and 2d curve + //! If isTheMultyTheadDisabled == TRUE then computation will be made + //! without any parallelization. + Standard_EXPORT void Compute (const Handle(Geom2d_Curve)& thePCurve, const Standard_Boolean isTheMultyTheradDisabled); + + + + +private: + + + + Handle(Geom_Curve) myCurve; + Handle(Geom2d_Curve) myPCurve; + Handle(Geom2d_Curve) myPCurve2; + Handle(Geom_Surface) mySurface; + Standard_Real myFirst; + Standard_Real myLast; + Standard_Integer myErrorStatus; + Standard_Real myMaxDistance; + Standard_Real myMaxParameter; + + +}; + + +#include + + + + + +#endif // _BRepLib_CheckCurveOnSurface_HeaderFile diff --git a/src/BRepLib/BRepLib_Command.cdl b/src/BRepLib/BRepLib_Command.cdl deleted file mode 100644 index 4216303ae5..0000000000 --- a/src/BRepLib/BRepLib_Command.cdl +++ /dev/null @@ -1,64 +0,0 @@ --- 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. - -deferred class Command from BRepLib - - ---Purpose: Root class for all commands in BRepLib. - -- - -- Provides : - -- - -- * Managements of the notDone flag. - -- - -- * Catching of exceptions (not implemented). - -- - -- * Logging (not implemented). - -raises - NotDone from StdFail - -is - Delete(me:out) is virtual; - ---C++: alias "Standard_EXPORT virtual ~BRepLib_Command(){Delete() ; }" - - Initialize; - ---Purpose: Set done to False. - - IsDone(me) returns Boolean - ---Level: Public - is static; - - Done(me : in out) - ---Purpose: Set done to true. - ---Level: Public - is static protected; - - NotDone(me : in out) - ---Purpose: Set done to false. - ---Level: Public - is static protected; - - - - Check(me) - ---Purpose: Raises NotDone if done is false. - ---Level: Public - raises NotDone from StdFail - is static; - -fields - myDone : Boolean; - -end Command; diff --git a/src/BRepLib/BRepLib_Command.cxx b/src/BRepLib/BRepLib_Command.cxx index 57699e956e..abb2225392 100644 --- a/src/BRepLib/BRepLib_Command.cxx +++ b/src/BRepLib/BRepLib_Command.cxx @@ -14,13 +14,14 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include //======================================================================= //function : BRepLib_Command //purpose : //======================================================================= - BRepLib_Command::BRepLib_Command() : myDone(Standard_False) { diff --git a/src/BRepLib/BRepLib_Command.hxx b/src/BRepLib/BRepLib_Command.hxx new file mode 100644 index 0000000000..1acc1645e9 --- /dev/null +++ b/src/BRepLib/BRepLib_Command.hxx @@ -0,0 +1,85 @@ +// 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 _BRepLib_Command_HeaderFile +#define _BRepLib_Command_HeaderFile + +#include +#include +#include + +#include +class StdFail_NotDone; + + +//! Root class for all commands in BRepLib. +//! +//! Provides : +//! +//! * Managements of the notDone flag. +//! +//! * Catching of exceptions (not implemented). +//! +//! * Logging (not implemented). +class BRepLib_Command +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT virtual void Delete(); +Standard_EXPORT virtual ~BRepLib_Command(){Delete() ; } + + Standard_EXPORT Standard_Boolean IsDone() const; + + //! Raises NotDone if done is false. + Standard_EXPORT void Check() const; + + + + +protected: + + + //! Set done to False. + Standard_EXPORT BRepLib_Command(); + + //! Set done to true. + Standard_EXPORT void Done(); + + //! Set done to false. + Standard_EXPORT void NotDone(); + + + + +private: + + + + Standard_Boolean myDone; + + +}; + + + + + + + +#endif // _BRepLib_Command_HeaderFile diff --git a/src/BRepLib/BRepLib_EdgeError.hxx b/src/BRepLib/BRepLib_EdgeError.hxx new file mode 100644 index 0000000000..c24f257b54 --- /dev/null +++ b/src/BRepLib/BRepLib_EdgeError.hxx @@ -0,0 +1,33 @@ +// Created on: 1993-12-15 +// 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 _BRepLib_EdgeError_HeaderFile +#define _BRepLib_EdgeError_HeaderFile + +//! Errors that can occur at edge construction. +//! no error +enum BRepLib_EdgeError +{ +BRepLib_EdgeDone, +BRepLib_PointProjectionFailed, +BRepLib_ParameterOutOfRange, +BRepLib_DifferentPointsOnClosedCurve, +BRepLib_PointWithInfiniteParameter, +BRepLib_DifferentsPointAndParameter, +BRepLib_LineThroughIdenticPoints +}; + +#endif // _BRepLib_EdgeError_HeaderFile diff --git a/src/BRepLib/BRepLib_FaceError.hxx b/src/BRepLib/BRepLib_FaceError.hxx new file mode 100644 index 0000000000..d767e40865 --- /dev/null +++ b/src/BRepLib/BRepLib_FaceError.hxx @@ -0,0 +1,32 @@ +// Created on: 1993-12-15 +// 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 _BRepLib_FaceError_HeaderFile +#define _BRepLib_FaceError_HeaderFile + +//! Errors that can occur at face construction. +//! no error +//! not initialised +enum BRepLib_FaceError +{ +BRepLib_FaceDone, +BRepLib_NoFace, +BRepLib_NotPlanar, +BRepLib_CurveProjectionFailed, +BRepLib_ParametersOutOfRange +}; + +#endif // _BRepLib_FaceError_HeaderFile diff --git a/src/BRepLib/BRepLib_FindSurface.cdl b/src/BRepLib/BRepLib_FindSurface.cdl deleted file mode 100644 index 06c08c324c..0000000000 --- a/src/BRepLib/BRepLib_FindSurface.cdl +++ /dev/null @@ -1,109 +0,0 @@ --- Created on: 1994-07-22 --- 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. - -class FindSurface from BRepLib - - ---Purpose: Provides an algorithm to find a Surface through a - -- set of edges. - -- - -- The edges of the shape given as argument are - -- explored if they are not coplanar at the required - -- tolerance the method Found returns false. - -- - -- If a null tolerance is given the max of the edges - -- tolerances is used. - -- - -- The method Tolerance returns the true distance of - -- the edges to the Surface. - -- - -- The method Surface returns the Surface if found. - -- - -- The method Existed returns returns True if the - -- Surface was already attached to some of the edges. - -- - -- When Existed returns True the Surface may have a - -- location given by the Location method. - -uses - - Shape from TopoDS, - Location from TopLoc, - Surface from Geom - -raises - - NoSuchObject from Standard - -is - - Create returns FindSurface from BRepLib; - - Create (S : Shape from TopoDS; - Tol : Real from Standard = -1; - OnlyPlane : Boolean from Standard = Standard_False; - OnlyClosed: Boolean from Standard = Standard_False) - ---Purpose: Computes the Surface from the edges of with the - -- given tolerance. - -- 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. - -- If is true, then S sould be a wire - -- and the existing surface, on which wire S is not - -- closed in 2D, will be ignored. - returns FindSurface from BRepLib; - - Init (me : in out; - S : Shape from TopoDS; - Tol : Real from Standard = -1; - OnlyPlane : Boolean from Standard = Standard_False; - OnlyClosed: Boolean from Standard = Standard_False) - ---Purpose: Computes the Surface from the edges of with the - -- given tolerance. - -- 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. - -- If is true, then S sould be a wire - -- and the existing surface, on which wire S is not - -- closed in 2D, will be ignored. - is static; - - Found(me) returns Boolean - is static; - - Surface(me) returns Surface from Geom - is static; - - Tolerance(me) returns Real - is static; - - ToleranceReached(me) returns Real - is static; - - Existed(me) returns Boolean - is static; - - Location(me) returns Location from TopLoc - is static; - -fields - - mySurface : Surface from Geom; - myTolerance : Real; - myTolReached : Real; - isExisted : Boolean; - myLocation : Location from TopLoc; - -end FindSurface; diff --git a/src/BRepLib/BRepLib_FindSurface.cxx b/src/BRepLib/BRepLib_FindSurface.cxx index 5708e3e6e9..fa2f648102 100644 --- a/src/BRepLib/BRepLib_FindSurface.cxx +++ b/src/BRepLib/BRepLib_FindSurface.cxx @@ -14,46 +14,47 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include - -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include #include -#include -#include #include -#include -#include +#include +#include +#include +#include +#include +#include #include #include -#include - -#include -#include -#include -#include -#include +#include +#include #include #include +#include +#include +#include #include #include -#include -#include -#include - -#include -#include -#include -#include -#include -#include //======================================================================= //function : Controle diff --git a/src/BRepLib/BRepLib_FindSurface.hxx b/src/BRepLib/BRepLib_FindSurface.hxx new file mode 100644 index 0000000000..047182507a --- /dev/null +++ b/src/BRepLib/BRepLib_FindSurface.hxx @@ -0,0 +1,122 @@ +// Created on: 1994-07-22 +// 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 _BRepLib_FindSurface_HeaderFile +#define _BRepLib_FindSurface_HeaderFile + +#include +#include +#include + +#include +#include +#include +class Geom_Surface; +class Standard_NoSuchObject; +class TopoDS_Shape; +class TopLoc_Location; + + +//! Provides an algorithm to find a Surface through a +//! set of edges. +//! +//! The edges of the shape given as argument are +//! explored if they are not coplanar at the required +//! tolerance the method Found returns false. +//! +//! If a null tolerance is given the max of the edges +//! tolerances is used. +//! +//! The method Tolerance returns the true distance of +//! the edges to the Surface. +//! +//! The method Surface returns the Surface if found. +//! +//! The method Existed returns returns True if the +//! Surface was already attached to some of the edges. +//! +//! When Existed returns True the Surface may have a +//! location given by the Location method. +class BRepLib_FindSurface +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepLib_FindSurface(); + + //! Computes the Surface from the edges of with the + //! given tolerance. + //! 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. + //! If is true, then S sould be a wire + //! and the existing surface, on which wire S is not + //! closed in 2D, will be ignored. + Standard_EXPORT BRepLib_FindSurface(const TopoDS_Shape& S, const Standard_Real Tol = -1, const Standard_Boolean OnlyPlane = Standard_False, const Standard_Boolean OnlyClosed = Standard_False); + + //! Computes the Surface from the edges of with the + //! given tolerance. + //! 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. + //! If is true, then S sould be a wire + //! and the existing surface, on which wire S is not + //! closed in 2D, will be ignored. + Standard_EXPORT void Init (const TopoDS_Shape& S, const Standard_Real Tol = -1, const Standard_Boolean OnlyPlane = Standard_False, const Standard_Boolean OnlyClosed = Standard_False); + + Standard_EXPORT Standard_Boolean Found() const; + + Standard_EXPORT Handle(Geom_Surface) Surface() const; + + Standard_EXPORT Standard_Real Tolerance() const; + + Standard_EXPORT Standard_Real ToleranceReached() const; + + Standard_EXPORT Standard_Boolean Existed() const; + + Standard_EXPORT TopLoc_Location Location() const; + + + + +protected: + + + + + +private: + + + + Handle(Geom_Surface) mySurface; + Standard_Real myTolerance; + Standard_Real myTolReached; + Standard_Boolean isExisted; + TopLoc_Location myLocation; + + +}; + + + + + + + +#endif // _BRepLib_FindSurface_HeaderFile diff --git a/src/BRepLib/BRepLib_FuseEdges.cdl b/src/BRepLib/BRepLib_FuseEdges.cdl deleted file mode 100644 index 5b87ae87e2..0000000000 --- a/src/BRepLib/BRepLib_FuseEdges.cdl +++ /dev/null @@ -1,148 +0,0 @@ --- Created on: 2007-09-10 --- Created by: Igor FEOKTISTOV --- Copyright (c) 2007-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. - -class FuseEdges from BRepLib - - ---Purpose: This class can detect vertices in a face that can - -- be considered useless and then perform the fuse of - -- the edges and remove the useless vertices. By - -- useles vertices, we mean : - -- * vertices that have exactly two connex edges - -- * the edges connex to the vertex must have - -- exactly the same 2 connex faces . - -- * The edges connex to the vertex must have the - -- same geometric support. - -uses - Shape from TopoDS, - Vertex from TopoDS, - Edge from TopoDS, - ShapeEnum from TopAbs, - MapOfShape from TopTools, - ListOfShape from TopTools, - DataMapOfIntegerListOfShape from TopTools, - DataMapOfIntegerShape from TopTools, - DataMapOfShapeShape from TopTools, - IndexedDataMapOfShapeListOfShape from TopTools, - IndexedMapOfShape from TopTools - -raises - ConstructionError from Standard, - NullObject from Standard - -is - Create (theShape : Shape from TopoDS; - PerformNow : Boolean from Standard = Standard_False) - returns FuseEdges from BRepLib - raises NullObject from Standard; - ---Purpose: Initialise members and build construction of map - -- of ancestors. - - AvoidEdges (me : in out; theMapEdg : IndexedMapOfShape from TopTools); - ---Purpose: set edges to avoid being fused - - -- Modified by IFV 19.04.07 - SetConcatBSpl(me : in out; theConcatBSpl : Boolean from Standard = Standard_True); - ---Purpose: set mode to enable concatenation G1 BSpline edges in one - -- End Modified by IFV 19.04.07 - - Edges (me : in out ; theMapLstEdg : in out DataMapOfIntegerListOfShape from TopTools); - ---Purpose: returns all the list of edges to be fused - -- each list of the map represent a set of connex edges - -- that can be fused. - - ResultEdges (me : in out ; theMapEdg : in out DataMapOfIntegerShape from TopTools); - ---Purpose: returns all the fused edges. each integer entry in - -- the map corresponds to the integer in the - -- DataMapOfIntegerListOfShape we get in method - -- Edges. That is to say, to the list of edges in - -- theMapLstEdg(i) corresponds the resulting edge theMapEdge(i) - -- - - - Faces (me: in out; theMapFac : in out DataMapOfShapeShape from TopTools); - ---Purpose: returns the map of modified faces. - - Shape (me : in out) - returns Shape from TopoDS - raises NullObject from Standard; - ---Purpose: returns myShape modified with the list of internal - -- edges removed from it. - ---C++: return & - - NbVertices (me : in out) - returns Integer from Standard - raises NullObject from Standard; - ---Purpose: returns the number of vertices candidate to be removed - ---C++: return const - - Perform (me : in out); - ---Purpose: Using map of list of connex edges, fuse each list to - -- one edge and then update myShape - - - BuildAncestors (me; S: Shape from TopoDS; TS: ShapeEnum from TopAbs; - TA: ShapeEnum from TopAbs; M: in out IndexedDataMapOfShapeListOfShape from TopTools) - ---Purpose: build a map of shapes and ancestors, like - -- TopExp.MapShapesAndAncestors, but we remove duplicate - -- shapes in list of shapes. - is private; - - BuildListEdges (me : in out) - ---Purpose: Build the all the lists of edges that are to be fused - is private; - - BuildListResultEdges (me : in out) - ---Purpose: Build result fused edges according to the list - -- builtin BuildLisEdges - is private; - - BuildListConnexEdge (me : in out; theEdge : Shape from TopoDS; theMapUniq : in out MapOfShape from TopTools; - theLstEdg : in out ListOfShape from TopTools) - is private; - - NextConnexEdge (me; theVertex : Vertex from TopoDS; theEdge : Shape from TopoDS; - theEdgeConnex : in out Shape from TopoDS) - returns Boolean from Standard - is private; - - SameSupport (me; E1 : Edge from TopoDS; E2 :Edge from TopoDS) - returns Boolean from Standard - is private; - - UpdatePCurve (me; theOldEdge : Edge from TopoDS; - theNewEdge : in out Edge from TopoDS; - theLstEdg : ListOfShape from TopTools) - returns Boolean from Standard - is private; - - -fields - myShape : Shape from TopoDS; - myShapeDone : Boolean from Standard; - myEdgesDone : Boolean from Standard; - myResultEdgesDone : Boolean from Standard; - myMapVerLstEdg : IndexedDataMapOfShapeListOfShape from TopTools; - myMapEdgLstFac : IndexedDataMapOfShapeListOfShape from TopTools; - myMapLstEdg : DataMapOfIntegerListOfShape from TopTools; - myMapEdg : DataMapOfIntegerShape from TopTools; - myMapFaces : DataMapOfShapeShape from TopTools; - myNbConnexEdge : Integer from Standard; - myAvoidEdg : IndexedMapOfShape from TopTools; - -- Modified by IFV 19.04.07 - myConcatBSpl : Boolean from Standard; -- to enable concatenation of G1 BSpline - -- edges - -end FuseEdges; diff --git a/src/BRepLib/BRepLib_FuseEdges.cxx b/src/BRepLib/BRepLib_FuseEdges.cxx index 9bb7d4071d..5443dab720 100644 --- a/src/BRepLib/BRepLib_FuseEdges.cxx +++ b/src/BRepLib/BRepLib_FuseEdges.cxx @@ -19,68 +19,61 @@ // Modif : Thu Jan 21 11:40:20 1999. Add trace context #if DEB // add test to avoid loop while in NextConnexEdge (in case of a closed connex wire) - -#include - -#include -#include - -#include - -#include -#include - -#include -#include - -#include - -#include #include - - -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include -#include -#include #include -#include -#include +#include +#include +#include +#include #include +#include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include -#include +#include #include - -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include #include - -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include //#ifdef OCCT_DEBUG //Standard_IMPORT Standard_Boolean TopOpeBRepBuild_GettraceFE(); //#endif - static void BCSmoothing(Handle(Geom_BSplineCurve)& theC, const Standard_Integer theCont, const Standard_Real theTol) diff --git a/src/BRepLib/BRepLib_FuseEdges.hxx b/src/BRepLib/BRepLib_FuseEdges.hxx new file mode 100644 index 0000000000..aed32d9482 --- /dev/null +++ b/src/BRepLib/BRepLib_FuseEdges.hxx @@ -0,0 +1,149 @@ +// Created on: 2007-09-10 +// Created by: Igor FEOKTISTOV +// Copyright (c) 2007-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 _BRepLib_FuseEdges_HeaderFile +#define _BRepLib_FuseEdges_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +class Standard_ConstructionError; +class Standard_NullObject; +class TopoDS_Shape; +class TopoDS_Vertex; +class TopoDS_Edge; + + +//! This class can detect vertices in a face that can +//! be considered useless and then perform the fuse of +//! the edges and remove the useless vertices. By +//! useles vertices, we mean : +//! * vertices that have exactly two connex edges +//! * the edges connex to the vertex must have +//! exactly the same 2 connex faces . +//! * The edges connex to the vertex must have the +//! same geometric support. +class BRepLib_FuseEdges +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Initialise members and build construction of map + //! of ancestors. + Standard_EXPORT BRepLib_FuseEdges(const TopoDS_Shape& theShape, const Standard_Boolean PerformNow = Standard_False); + + //! set edges to avoid being fused + Standard_EXPORT void AvoidEdges (const TopTools_IndexedMapOfShape& theMapEdg); + + //! set mode to enable concatenation G1 BSpline edges in one + //! End Modified by IFV 19.04.07 + Standard_EXPORT void SetConcatBSpl (const Standard_Boolean theConcatBSpl = Standard_True); + + //! returns all the list of edges to be fused + //! each list of the map represent a set of connex edges + //! that can be fused. + Standard_EXPORT void Edges (TopTools_DataMapOfIntegerListOfShape& theMapLstEdg); + + //! returns all the fused edges. each integer entry in + //! the map corresponds to the integer in the + //! DataMapOfIntegerListOfShape we get in method + //! Edges. That is to say, to the list of edges in + //! theMapLstEdg(i) corresponds the resulting edge theMapEdge(i) + Standard_EXPORT void ResultEdges (TopTools_DataMapOfIntegerShape& theMapEdg); + + //! returns the map of modified faces. + Standard_EXPORT void Faces (TopTools_DataMapOfShapeShape& theMapFac); + + //! returns myShape modified with the list of internal + //! edges removed from it. + Standard_EXPORT TopoDS_Shape& Shape(); + + //! returns the number of vertices candidate to be removed + Standard_EXPORT const Standard_Integer NbVertices(); + + //! Using map of list of connex edges, fuse each list to + //! one edge and then update myShape + Standard_EXPORT void Perform(); + + + + +protected: + + + + + +private: + + + //! build a map of shapes and ancestors, like + //! TopExp.MapShapesAndAncestors, but we remove duplicate + //! shapes in list of shapes. + Standard_EXPORT void BuildAncestors (const TopoDS_Shape& S, const TopAbs_ShapeEnum TS, const TopAbs_ShapeEnum TA, TopTools_IndexedDataMapOfShapeListOfShape& M) const; + + //! Build the all the lists of edges that are to be fused + Standard_EXPORT void BuildListEdges(); + + //! Build result fused edges according to the list + //! builtin BuildLisEdges + Standard_EXPORT void BuildListResultEdges(); + + Standard_EXPORT void BuildListConnexEdge (const TopoDS_Shape& theEdge, TopTools_MapOfShape& theMapUniq, TopTools_ListOfShape& theLstEdg); + + Standard_EXPORT Standard_Boolean NextConnexEdge (const TopoDS_Vertex& theVertex, const TopoDS_Shape& theEdge, TopoDS_Shape& theEdgeConnex) const; + + Standard_EXPORT Standard_Boolean SameSupport (const TopoDS_Edge& E1, const TopoDS_Edge& E2) const; + + Standard_EXPORT Standard_Boolean UpdatePCurve (const TopoDS_Edge& theOldEdge, TopoDS_Edge& theNewEdge, const TopTools_ListOfShape& theLstEdg) const; + + + TopoDS_Shape myShape; + Standard_Boolean myShapeDone; + Standard_Boolean myEdgesDone; + Standard_Boolean myResultEdgesDone; + TopTools_IndexedDataMapOfShapeListOfShape myMapVerLstEdg; + TopTools_IndexedDataMapOfShapeListOfShape myMapEdgLstFac; + TopTools_DataMapOfIntegerListOfShape myMapLstEdg; + TopTools_DataMapOfIntegerShape myMapEdg; + TopTools_DataMapOfShapeShape myMapFaces; + Standard_Integer myNbConnexEdge; + TopTools_IndexedMapOfShape myAvoidEdg; + Standard_Boolean myConcatBSpl; + + +}; + + + + + + + +#endif // _BRepLib_FuseEdges_HeaderFile diff --git a/src/BRepLib/BRepLib_MakeEdge.cdl b/src/BRepLib/BRepLib_MakeEdge.cdl deleted file mode 100644 index 91317464a9..0000000000 --- a/src/BRepLib/BRepLib_MakeEdge.cdl +++ /dev/null @@ -1,356 +0,0 @@ --- 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. - -class MakeEdge from BRepLib inherits MakeShape from BRepLib - - ---Purpose: 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. - -uses - EdgeError from BRepLib, - Edge from TopoDS, - Vertex from TopoDS, - Pnt from gp, - Lin from gp, - Circ from gp, - Elips from gp, - Hypr from gp, - Parab from gp, - Curve from Geom2d, - Curve from Geom, - Surface from Geom - -raises - NotDone from StdFail - -is - - Create returns MakeEdge from BRepLib; - - ---------------------------------------- - -- Points - ---------------------------------------- - - Create(V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(P1, P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepLib; - - - ---------------------------------------- - -- Lin - ---------------------------------------- - - Create(L : Lin from gp) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Lin from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Lin from gp; P1,P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Lin from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepLib; - - ---------------------------------------- - -- Circ - ---------------------------------------- - - Create(L : Circ from gp) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Circ from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Circ from gp; P1,P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Circ from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepLib; - - - ---------------------------------------- - -- Elips - ---------------------------------------- - - Create(L : Elips from gp) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Elips from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Elips from gp; P1,P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Elips from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepLib; - - ---------------------------------------- - -- Hypr - ---------------------------------------- - - Create(L : Hypr from gp) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Hypr from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Hypr from gp; P1,P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Hypr from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepLib; - - ---------------------------------------- - -- Parab - ---------------------------------------- - - Create(L : Parab from gp) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Parab from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Parab from gp; P1,P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Parab from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepLib; - - ---------------------------------------- - -- Curve - ---------------------------------------- - - Create(L : Curve from Geom) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Curve from Geom; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Curve from Geom; - P1,P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Curve from Geom; - V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Curve from Geom; - P1,P2 : Pnt from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Curve from Geom; - V1, V2 : Vertex from TopoDS; - p1, p2 :Real) - ---Level: Public - returns MakeEdge from BRepLib; - - ---------------------------------------- - -- Curve and surface - ---------------------------------------- - - Create(L : Curve from Geom2d; S : Surface from Geom) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Curve from Geom2d; S : Surface from Geom; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Curve from Geom2d; S : Surface from Geom; - P1,P2 : Pnt from gp) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Curve from Geom2d; S : Surface from Geom; - V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Curve from Geom2d; S : Surface from Geom; - P1,P2 : Pnt from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge from BRepLib; - - Create(L : Curve from Geom2d; S : Surface from Geom; - V1, V2 : Vertex from TopoDS; - p1, p2 :Real) - ---Level: Public - returns MakeEdge from BRepLib; - - ---------------------------------------- - -- Auxiliary methods - ---------------------------------------- - - Init(me : in out; C : Curve from Geom) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom; - p1, p2 : Real) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom; - P1, P2 : Pnt from gp) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom; - V1, V2 : Vertex from TopoDS) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom; - P1, P2 : Pnt from gp; - p1, p2 : Real) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom; - V1, V2 : Vertex from TopoDS; - p1, p2 : Real) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; S : Surface from Geom) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; S : Surface from Geom; - p1, p2 : Real) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; S : Surface from Geom; - P1, P2 : Pnt from gp) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; S : Surface from Geom; - V1, V2 : Vertex from TopoDS) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; S : Surface from Geom; - P1, P2 : Pnt from gp; - p1, p2 : Real) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; S : Surface from Geom; - V1, V2 : Vertex from TopoDS; - p1, p2 : Real) - ---Level: Public - is static; - - - ---------------------------------------- - -- Results - ---------------------------------------- - - Error(me) returns EdgeError from BRepLib - ---Purpose: Returns the error description when NotDone. - ---Level: Public - is static; - - Edge(me) returns Edge from TopoDS - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Edge() const;" - ---Level: Public - raises - NotDone from StdFail - is static; - - Vertex1(me) returns Vertex from TopoDS - ---Purpose: Returns the first vertex of the edge. May be Null. - -- - ---C++: return const & - ---Level: Public - is static; - - Vertex2(me) returns Vertex from TopoDS - ---Purpose: Returns the second vertex of the edge. May be Null. - -- - ---C++: return const & - ---Level: Public - is static; - -fields - - myError : EdgeError from BRepLib; - myVertex1 : Vertex from TopoDS; - myVertex2 : Vertex from TopoDS; - -end MakeEdge; diff --git a/src/BRepLib/BRepLib_MakeEdge.cxx b/src/BRepLib/BRepLib_MakeEdge.cxx index 13fc409092..e8b9985c70 100644 --- a/src/BRepLib/BRepLib_MakeEdge.cxx +++ b/src/BRepLib/BRepLib_MakeEdge.cxx @@ -17,33 +17,43 @@ // Modified: Wed Oct 23 09:17:47 1996 // check ponctuallity (PRO4896) -#include -#include -#include +#include #include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include -#include #include +#include +#include +#include #include -#include #include -#include #include -#include -#include #include -#include +#include +#include +#include +#include +#include +#include #include - +#include +#include +#include +#include //======================================================================= //function : Project //purpose : project a vertex on a curve //======================================================================= - static Standard_Boolean Project(const Handle(Geom_Curve)& C, const TopoDS_Vertex& V, Standard_Real& p) diff --git a/src/BRepLib/BRepLib_MakeEdge.hxx b/src/BRepLib/BRepLib_MakeEdge.hxx new file mode 100644 index 0000000000..f192eaf9c6 --- /dev/null +++ b/src/BRepLib/BRepLib_MakeEdge.hxx @@ -0,0 +1,212 @@ +// 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 _BRepLib_MakeEdge_HeaderFile +#define _BRepLib_MakeEdge_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class StdFail_NotDone; +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 BRepLib_MakeEdge : public BRepLib_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepLib_MakeEdge(); + + Standard_EXPORT BRepLib_MakeEdge(const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Lin& L); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Lin& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Lin& L, const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Lin& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Circ& L); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Circ& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Circ& L, const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Circ& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Elips& L); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Elips& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Elips& L, const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Elips& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Hypr& L); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Hypr& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Hypr& L, const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Hypr& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Parab& L); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Parab& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Parab& L, const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepLib_MakeEdge(const gp_Parab& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakeEdge(const Handle(Geom_Curve)& L); + + Standard_EXPORT BRepLib_MakeEdge(const Handle(Geom_Curve)& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge(const Handle(Geom_Curve)& L, const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepLib_MakeEdge(const Handle(Geom_Curve)& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakeEdge(const Handle(Geom_Curve)& L, const gp_Pnt& P1, const gp_Pnt& P2, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge(const Handle(Geom_Curve)& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge(const Handle(Geom2d_Curve)& L, const Handle(Geom_Surface)& S); + + Standard_EXPORT BRepLib_MakeEdge(const Handle(Geom2d_Curve)& L, const Handle(Geom_Surface)& S, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge(const Handle(Geom2d_Curve)& L, const Handle(Geom_Surface)& S, const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepLib_MakeEdge(const Handle(Geom2d_Curve)& L, const Handle(Geom_Surface)& S, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_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); + + Standard_EXPORT BRepLib_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); + + 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 the error description when NotDone. + Standard_EXPORT BRepLib_EdgeError Error() const; + + Standard_EXPORT const TopoDS_Edge& Edge() const; +Standard_EXPORT operator TopoDS_Edge() const; + + //! 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. + Standard_EXPORT const TopoDS_Vertex& Vertex2() const; + + + + +protected: + + + + + +private: + + + + BRepLib_EdgeError myError; + TopoDS_Vertex myVertex1; + TopoDS_Vertex myVertex2; + + +}; + + + + + + + +#endif // _BRepLib_MakeEdge_HeaderFile diff --git a/src/BRepLib/BRepLib_MakeEdge2d.cdl b/src/BRepLib/BRepLib_MakeEdge2d.cdl deleted file mode 100644 index e2da6cb630..0000000000 --- a/src/BRepLib/BRepLib_MakeEdge2d.cdl +++ /dev/null @@ -1,289 +0,0 @@ --- Created on: 1995-01-04 --- 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. - -class MakeEdge2d from BRepLib inherits MakeShape from BRepLib - - ---Purpose: Provides methods to build edges. - -- - -- The methods have the following syntax, where - -- TheCurve is one of Lin2d, Circ2d, ... - -- - -- 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 : Pnt2d 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. - -uses - EdgeError from BRepLib, - Edge from TopoDS, - Vertex from TopoDS, - Pnt2d from gp, - Lin2d from gp, - Circ2d from gp, - Elips2d from gp, - Hypr2d from gp, - Parab2d from gp, - Curve from Geom2d - -raises - NotDone from StdFail - -is - - ---------------------------------------- - -- Points - ---------------------------------------- - - Create(V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(P1, P2 : Pnt2d from gp) - ---Level: Public - returns MakeEdge2d from BRepLib; - - - ---------------------------------------- - -- Lin - ---------------------------------------- - - Create(L : Lin2d from gp) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Lin2d from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Lin2d from gp; P1,P2 : Pnt2d from gp) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Lin2d from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge2d from BRepLib; - - ---------------------------------------- - -- Circ - ---------------------------------------- - - Create(L : Circ2d from gp) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Circ2d from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Circ2d from gp; P1,P2 : Pnt2d from gp) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Circ2d from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge2d from BRepLib; - - - ---------------------------------------- - -- Elips - ---------------------------------------- - - Create(L : Elips2d from gp) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Elips2d from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Elips2d from gp; P1,P2 : Pnt2d from gp) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Elips2d from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge2d from BRepLib; - - ---------------------------------------- - -- Hypr - ---------------------------------------- - - Create(L : Hypr2d from gp) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Hypr2d from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Hypr2d from gp; P1,P2 : Pnt2d from gp) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Hypr2d from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge2d from BRepLib; - - ---------------------------------------- - -- Parab - ---------------------------------------- - - Create(L : Parab2d from gp) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Parab2d from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Parab2d from gp; P1,P2 : Pnt2d from gp) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Parab2d from gp; V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge2d from BRepLib; - - ---------------------------------------- - -- Curve - ---------------------------------------- - - Create(L : Curve from Geom2d) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Curve from Geom2d; p1,p2 : Real) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Curve from Geom2d; - P1,P2 : Pnt2d from gp) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Curve from Geom2d; - V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Curve from Geom2d; - P1,P2 : Pnt2d from gp; p1,p2 : Real) - ---Level: Public - returns MakeEdge2d from BRepLib; - - Create(L : Curve from Geom2d; - V1, V2 : Vertex from TopoDS; - p1, p2 :Real) - ---Level: Public - returns MakeEdge2d from BRepLib; - - ---------------------------------------- - -- Auxiliary methods - ---------------------------------------- - - Init(me : in out; C : Curve from Geom2d) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; - p1, p2 : Real) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; - P1, P2 : Pnt2d from gp) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; - V1, V2 : Vertex from TopoDS) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; - P1, P2 : Pnt2d from gp; - p1, p2 : Real) - ---Level: Public - is static; - - Init(me : in out; C : Curve from Geom2d; - V1, V2 : Vertex from TopoDS; - p1, p2 : Real) - ---Level: Public - is static; - - - ---------------------------------------- - -- Results - ---------------------------------------- - - Error(me) - returns EdgeError from BRepLib - ---Purpose: Returns the error description when NotDone. - ---Level: Public - is static; - - Edge(me) returns Edge from TopoDS - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Edge() const;" - ---Level: Public - raises - NotDone from StdFail - is static; - - Vertex1(me) returns Vertex from TopoDS - ---Purpose: Returns the first vertex of the edge. May be Null. - -- - ---C++: return const & - ---Level: Public - is static; - - Vertex2(me) returns Vertex from TopoDS - ---Purpose: Returns the second vertex of the edge. May be Null. - -- - ---C++: return const & - ---Level: Public - is static; - -fields - - myError : EdgeError from BRepLib; - myVertex1 : Vertex from TopoDS; - myVertex2 : Vertex from TopoDS; - -end MakeEdge2d; diff --git a/src/BRepLib/BRepLib_MakeEdge2d.cxx b/src/BRepLib/BRepLib_MakeEdge2d.cxx index 72541e6642..e6f83ce0b3 100644 --- a/src/BRepLib/BRepLib_MakeEdge2d.cxx +++ b/src/BRepLib/BRepLib_MakeEdge2d.cxx @@ -14,32 +14,40 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include #include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include +#include #include -#include #include +#include +#include #include #include -#include +#include #include -#include -#include +#include +#include +#include +#include +#include +#include #include - +#include +#include +#include +#include //======================================================================= //function : Point //purpose : make a 3d point on the current plane //======================================================================= - static gp_Pnt Point(const gp_Pnt2d& P) { return BRepLib::Plane()->Value(P.X(),P.Y()); diff --git a/src/BRepLib/BRepLib_MakeEdge2d.hxx b/src/BRepLib/BRepLib_MakeEdge2d.hxx new file mode 100644 index 0000000000..85fb341a7b --- /dev/null +++ b/src/BRepLib/BRepLib_MakeEdge2d.hxx @@ -0,0 +1,184 @@ +// Created on: 1995-01-04 +// 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 _BRepLib_MakeEdge2d_HeaderFile +#define _BRepLib_MakeEdge2d_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class StdFail_NotDone; +class TopoDS_Vertex; +class gp_Pnt2d; +class gp_Lin2d; +class gp_Circ2d; +class gp_Elips2d; +class gp_Hypr2d; +class gp_Parab2d; +class Geom2d_Curve; +class TopoDS_Edge; + + +//! Provides methods to build edges. +//! +//! The methods have the following syntax, where +//! TheCurve is one of Lin2d, Circ2d, ... +//! +//! 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 : Pnt2d 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 BRepLib_MakeEdge2d : public BRepLib_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepLib_MakeEdge2d(const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Lin2d& L); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Lin2d& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Lin2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Lin2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Circ2d& L); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Circ2d& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Circ2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Circ2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Elips2d& L); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Elips2d& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Elips2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Elips2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Hypr2d& L); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Hypr2d& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Hypr2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Hypr2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Parab2d& L); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Parab2d& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Parab2d& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT BRepLib_MakeEdge2d(const gp_Parab2d& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakeEdge2d(const Handle(Geom2d_Curve)& L); + + Standard_EXPORT BRepLib_MakeEdge2d(const Handle(Geom2d_Curve)& L, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge2d(const Handle(Geom2d_Curve)& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT BRepLib_MakeEdge2d(const Handle(Geom2d_Curve)& L, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakeEdge2d(const Handle(Geom2d_Curve)& L, const gp_Pnt2d& P1, const gp_Pnt2d& P2, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT BRepLib_MakeEdge2d(const Handle(Geom2d_Curve)& L, 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); + + Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const gp_Pnt2d& P1, const gp_Pnt2d& P2); + + Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const gp_Pnt2d& P1, const gp_Pnt2d& P2, const Standard_Real p1, const Standard_Real p2); + + Standard_EXPORT void Init (const Handle(Geom2d_Curve)& C, const TopoDS_Vertex& V1, const TopoDS_Vertex& V2, const Standard_Real p1, const Standard_Real p2); + + //! Returns the error description when NotDone. + Standard_EXPORT BRepLib_EdgeError Error() const; + + Standard_EXPORT const TopoDS_Edge& Edge() const; +Standard_EXPORT operator TopoDS_Edge() const; + + //! 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. + Standard_EXPORT const TopoDS_Vertex& Vertex2() const; + + + + +protected: + + + + + +private: + + + + BRepLib_EdgeError myError; + TopoDS_Vertex myVertex1; + TopoDS_Vertex myVertex2; + + +}; + + + + + + + +#endif // _BRepLib_MakeEdge2d_HeaderFile diff --git a/src/BRepLib/BRepLib_MakeFace.cdl b/src/BRepLib/BRepLib_MakeFace.cdl deleted file mode 100644 index b93da765bb..0000000000 --- a/src/BRepLib/BRepLib_MakeFace.cdl +++ /dev/null @@ -1,276 +0,0 @@ --- 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. - -class MakeFace from BRepLib inherits MakeShape from BRepLib - - ---Purpose: 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. - -uses - Pln from gp, - Cylinder from gp, - Cone from gp, - Sphere from gp, - Torus from gp, - Curve from Geom, - Surface from Geom, - Face from TopoDS, - Wire from TopoDS, - FaceError from BRepLib - -raises - NotDone from StdFail - -is - - Create - ---Purpose: Not done. - ---Level: Public - returns MakeFace from BRepLib; - - Create(F : Face from TopoDS) - ---Purpose: Load a face. Usefull to add wires. - ---Level: Public - returns MakeFace from BRepLib; - - ---------------------------------------------- - -- From a surface - ---------------------------------------------- - - Create(P : Pln from gp) - ---Purpose: Make a face from a plane. - ---Level: Public - returns MakeFace from BRepLib; - - Create(C : Cylinder from gp) - ---Purpose: Make a face from a cylinder. - ---Level: Public - returns MakeFace from BRepLib; - - Create(C : Cone from gp) - ---Purpose: Make a face from a cone. - ---Level: Public - returns MakeFace from BRepLib; - - Create(S : Sphere from gp) - ---Purpose: Make a face from a sphere. - ---Level: Public - returns MakeFace from BRepLib; - - Create(C : Torus from gp) - ---Purpose: Make a face from a torus. - ---Level: Public - returns MakeFace from BRepLib; - - Create(S : Surface from Geom; TolDegen : Real) - ---Purpose: Make a face from a Surface. Accepts tolerance value (TolDegen) - -- for resolution of degenerated edges. - ---Level: Public - returns MakeFace from BRepLib; - - ---------------------------------------------- - -- From a surface and U,V values - ---------------------------------------------- - - Create(P : Pln from gp; UMin, UMax, VMin, VMax : Real) - ---Purpose: Make a face from a plane. - ---Level: Public - returns MakeFace from BRepLib; - - Create(C : Cylinder from gp; UMin, UMax, VMin, VMax : Real) - ---Purpose: Make a face from a cylinder. - ---Level: Public - returns MakeFace from BRepLib; - - Create(C : Cone from gp; UMin, UMax, VMin, VMax : Real) - ---Purpose: Make a face from a cone. - ---Level: Public - returns MakeFace from BRepLib; - - Create(S : Sphere from gp; UMin, UMax, VMin, VMax : Real) - ---Purpose: Make a face from a sphere. - ---Level: Public - returns MakeFace from BRepLib; - - Create(C : Torus from gp; UMin, UMax, VMin, VMax : Real) - ---Purpose: Make a face from a torus. - ---Level: Public - returns MakeFace from BRepLib; - - Create(S : Surface from Geom; UMin, UMax, VMin, VMax, TolDegen : Real) - ---Purpose: Make a face from a Surface. Accepts min & max parameters - -- to construct the face's bounds. Also accepts tolerance value (TolDegen) - -- for resolution of degenerated edges. - ---Level: Public - returns MakeFace from BRepLib; - - ---------------------------------------------- - -- From a wire - ---------------------------------------------- - - Create(W : Wire from TopoDS; - OnlyPlane : Boolean from Standard = Standard_False) - ---Purpose: 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. - ---Level: Public - returns MakeFace from BRepLib; - - ---------------------------------------------- - -- From a surface and a wire - ---------------------------------------------- - - Create(P : Pln from gp; W : Wire from TopoDS; - Inside : Boolean = Standard_True) - ---Purpose: Make a face from a plane and a wire. - ---Level: Public - returns MakeFace from BRepLib; - - Create(C : Cylinder from gp; W : Wire from TopoDS; - Inside : Boolean = Standard_True) - ---Purpose: Make a face from a cylinder and a wire. - ---Level: Public - returns MakeFace from BRepLib; - - Create(C : Cone from gp; W : Wire from TopoDS; - Inside : Boolean = Standard_True) - ---Purpose: Make a face from a cone and a wire. - ---Level: Public - returns MakeFace from BRepLib; - - Create(S : Sphere from gp; W : Wire from TopoDS; - Inside : Boolean = Standard_True) - ---Purpose: Make a face from a sphere and a wire. - ---Level: Public - returns MakeFace from BRepLib; - - Create(C : Torus from gp; W : Wire from TopoDS; - Inside : Boolean = Standard_True) - ---Purpose: Make a face from a torus and a wire. - ---Level: Public - returns MakeFace from BRepLib; - - Create(S : Surface from Geom; W : Wire from TopoDS; - Inside : Boolean = Standard_True) - ---Purpose: Make a face from a Surface and a wire. - ---Level: Public - returns MakeFace from BRepLib; - - ---------------------------------------------- - -- From face and wire. - ---------------------------------------------- - - Create(F : Face from TopoDS; W : Wire from TopoDS) - ---Purpose: Adds the wire in the face - ---Level: Public - returns MakeFace from BRepLib; - - ---------------------------------------------- - -- Auxiliary methods - ---------------------------------------------- - - Init(me : in out; F : Face from TopoDS) - ---Purpose: Load the face. - ---Level: Public - is static; - - Init(me : in out; S : Surface from Geom; Bound : Boolean; TolDegen : Real) - ---Purpose: Creates the face from the surface. If Bound is - -- True a wire is made from the natural bounds. - -- Accepts tolerance value (TolDegen) for resolution - -- of degenerated edges. - ---Level: Public - is static; - - Init(me : in out; S : Surface from Geom; UMin, UMax, VMin, VMax, TolDegen : Real) - ---Purpose: Creates the face from the surface and the min-max - -- values. Accepts tolerance value (TolDegen) for resolution - -- of degenerated edges. - ---Level: Public - is static; - - Add(me : in out; W : Wire from TopoDS) - ---Purpose: Adds the wire in the current face. - ---Level: Public - is static; - - ---------------------------------------------- - -- Auxiliary methods - ---------------------------------------------- - - CheckInside(me : in out) - ---Purpose: Reorient the current face if the boundary is not - -- finite. - ---Level: Public - is static private; - - ---------------------------------------------- - -- Results - ---------------------------------------------- - - Error(me) returns FaceError from BRepLib - ---Level: Public - is static; - - Face(me) returns Face from TopoDS - ---Purpose: Returns the new face. - -- - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Face() const;" - ---Level: Public - raises - NotDone from StdFail - is static; - - - IsDegenerated (myclass; - theCurve : Curve from Geom; - theMaxTol : Real from Standard; - theActTol : in out Real from Standard) - returns Boolean; - --- Purpose: Checks the specified curve is degenerated - -- according to specified tolerance. - -- Returns less than , which shows - -- actual tolerance to decide the curve is degenerated. - -- Warning: For internal use of BRepLib_MakeFace and BRepLib_MakeShell. - -fields - myError : FaceError from BRepLib; -end MakeFace; diff --git a/src/BRepLib/BRepLib_MakeFace.cxx b/src/BRepLib/BRepLib_MakeFace.cxx index 82c86ae8fd..39663dbaf0 100644 --- a/src/BRepLib/BRepLib_MakeFace.cxx +++ b/src/BRepLib/BRepLib_MakeFace.cxx @@ -14,45 +14,48 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include +#include +#include +#include +#include #include +#include +#include +#include #include -#include -#include -#include -#include -#include #include - -#include - -#include - +#include +#include +#include +#include +#include +#include +#include +#include +#include #include -#include #include +#include #include - -#include -#include - -#include -#include -#include - -#include -#include -#include +#include +#include //======================================================================= //function : BRepLib_MakeFace //purpose : //======================================================================= - BRepLib_MakeFace::BRepLib_MakeFace() : myError(BRepLib_NoFace) { diff --git a/src/BRepLib/BRepLib_MakeFace.hxx b/src/BRepLib/BRepLib_MakeFace.hxx new file mode 100644 index 0000000000..1acc0be40b --- /dev/null +++ b/src/BRepLib/BRepLib_MakeFace.hxx @@ -0,0 +1,202 @@ +// 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 _BRepLib_MakeFace_HeaderFile +#define _BRepLib_MakeFace_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class StdFail_NotDone; +class TopoDS_Face; +class gp_Pln; +class gp_Cylinder; +class gp_Cone; +class gp_Sphere; +class gp_Torus; +class Geom_Surface; +class TopoDS_Wire; +class Geom_Curve; + + +//! 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 BRepLib_MakeFace : public BRepLib_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Not done. + Standard_EXPORT BRepLib_MakeFace(); + + //! Load a face. Usefull to add wires. + Standard_EXPORT BRepLib_MakeFace(const TopoDS_Face& F); + + //! Make a face from a plane. + Standard_EXPORT BRepLib_MakeFace(const gp_Pln& P); + + //! Make a face from a cylinder. + Standard_EXPORT BRepLib_MakeFace(const gp_Cylinder& C); + + //! Make a face from a cone. + Standard_EXPORT BRepLib_MakeFace(const gp_Cone& C); + + //! Make a face from a sphere. + Standard_EXPORT BRepLib_MakeFace(const gp_Sphere& S); + + //! Make a face from a torus. + Standard_EXPORT BRepLib_MakeFace(const gp_Torus& C); + + //! Make a face from a Surface. Accepts tolerance value (TolDegen) + //! for resolution of degenerated edges. + Standard_EXPORT BRepLib_MakeFace(const Handle(Geom_Surface)& S, const Standard_Real TolDegen); + + //! Make a face from a plane. + Standard_EXPORT BRepLib_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 BRepLib_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 BRepLib_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 BRepLib_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 BRepLib_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 min & max parameters + //! to construct the face's bounds. Also accepts tolerance value (TolDegen) + //! for resolution of degenerated edges. + Standard_EXPORT BRepLib_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 BRepLib_MakeFace(const TopoDS_Wire& W, const Standard_Boolean OnlyPlane = Standard_False); + + //! Make a face from a plane and a wire. + Standard_EXPORT BRepLib_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 BRepLib_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 BRepLib_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 BRepLib_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 BRepLib_MakeFace(const gp_Torus& C, const TopoDS_Wire& W, const Standard_Boolean Inside = Standard_True); + + //! Make a face from a Surface and a wire. + Standard_EXPORT BRepLib_MakeFace(const Handle(Geom_Surface)& S, const TopoDS_Wire& W, const Standard_Boolean Inside = Standard_True); + + //! Adds the wire in the face + Standard_EXPORT BRepLib_MakeFace(const TopoDS_Face& F, const TopoDS_Wire& W); + + //! Load the face. + Standard_EXPORT void Init (const TopoDS_Face& F); + + //! Creates the face from the surface. If Bound is + //! True a wire is made from the natural bounds. + //! Accepts tolerance value (TolDegen) for resolution + //! of degenerated edges. + Standard_EXPORT void Init (const Handle(Geom_Surface)& S, const Standard_Boolean Bound, const Standard_Real TolDegen); + + //! Creates the face from the surface and the min-max + //! values. Accepts tolerance value (TolDegen) 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 in the current face. + Standard_EXPORT void Add (const TopoDS_Wire& W); + + Standard_EXPORT BRepLib_FaceError Error() const; + + //! Returns the new face. + Standard_EXPORT const TopoDS_Face& Face() const; +Standard_EXPORT operator TopoDS_Face() const; + + //! Checks the specified curve is degenerated + //! according to specified tolerance. + //! Returns less than , which shows + //! actual tolerance to decide the curve is degenerated. + //! Warning: For internal use of BRepLib_MakeFace and BRepLib_MakeShell. + Standard_EXPORT static Standard_Boolean IsDegenerated (const Handle(Geom_Curve)& theCurve, const Standard_Real theMaxTol, Standard_Real& theActTol); + + + + +protected: + + + + + +private: + + + //! Reorient the current face if the boundary is not + //! finite. + Standard_EXPORT void CheckInside(); + + + BRepLib_FaceError myError; + + +}; + + + + + + + +#endif // _BRepLib_MakeFace_HeaderFile diff --git a/src/BRepLib/BRepLib_MakePolygon.cdl b/src/BRepLib/BRepLib_MakePolygon.cdl deleted file mode 100644 index 42e418c762..0000000000 --- a/src/BRepLib/BRepLib_MakePolygon.cdl +++ /dev/null @@ -1,132 +0,0 @@ --- Created on: 1993-07-29 --- 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. - -class MakePolygon from BRepLib inherits MakeShape from BRepLib - - ---Purpose: Class to build polygonal wires. - -- - -- A polygonal wire may be build from - -- - -- - 2,4,3 points. - -- - -- - 2,3,4 vertices. - -- - -- - any number of points. - -- - -- - any number of vertices. - -- - -- - -- When a point or vertex is added to the polygon if - -- it is identic to the previous point no edge is - -- built. The method added can be used to test it. - -uses - Wire from TopoDS, - Edge from TopoDS, - Vertex from TopoDS, - Pnt from gp - -raises - NotDone from StdFail - -is - Create - returns MakePolygon from BRepLib; - ---Purpose: Creates an empty MakePolygon. - ---Level: Public - - Create(P1, P2 : Pnt from gp) - ---Level: Public - returns MakePolygon from BRepLib; - - Create(P1, P2, P3 : Pnt from gp; - Close : Boolean = Standard_False) - ---Level: Public - returns MakePolygon from BRepLib; - - Create(P1, P2, P3, P4 : Pnt from gp; - Close : Boolean = Standard_False) - ---Level: Public - returns MakePolygon from BRepLib; - - Create(V1, V2 : Vertex from TopoDS) - ---Level: Public - returns MakePolygon from BRepLib; - - Create(V1, V2, V3 : Vertex from TopoDS; - Close : Boolean = Standard_False) - ---Level: Public - returns MakePolygon from BRepLib; - - Create(V1, V2, V3, V4 : Vertex from TopoDS; - Close : Boolean = Standard_False) - ---Level: Public - returns MakePolygon from BRepLib; - - - Add(me : in out; P : Pnt from gp) - ---Level: Public - is static; - - Add(me : in out; V : Vertex from TopoDS) - ---Level: Public - is static; - - Added(me) returns Boolean - ---Purpose: Returns True if the last vertex or point was - -- succesfully added. - ---Level: Public - is static; - - Close(me : in out) - ---Level: Public - is static; - - FirstVertex(me) returns Vertex from TopoDS - ---C++: return const & - ---Level: Public - is static; - - LastVertex(me) returns Vertex from TopoDS - ---C++: return const & - ---Level: Public - is static; - - Edge(me) returns Edge from TopoDS - ---Purpose: Returns the last edge added to the polygon. - -- - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Edge() const;" - ---Level: Public - raises - NotDone from StdFail - is static; - - Wire(me) returns Wire from TopoDS - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Wire() const;" - ---Level: Public - raises - NotDone from StdFail - is static; - -fields - - myFirstVertex : Vertex from TopoDS; - myLastVertex : Vertex from TopoDS; - myEdge : Edge from TopoDS; - -end MakePolygon; diff --git a/src/BRepLib/BRepLib_MakePolygon.cxx b/src/BRepLib/BRepLib_MakePolygon.cxx index b197da47e8..a3be9f6094 100644 --- a/src/BRepLib/BRepLib_MakePolygon.cxx +++ b/src/BRepLib/BRepLib_MakePolygon.cxx @@ -14,20 +14,25 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include #include #include +#include #include -#include -#include -#include +#include #include +#include +#include +#include +#include +#include //======================================================================= //function : BRepLib_MakePolygon //purpose : //======================================================================= - BRepLib_MakePolygon::BRepLib_MakePolygon() { } diff --git a/src/BRepLib/BRepLib_MakePolygon.hxx b/src/BRepLib/BRepLib_MakePolygon.hxx new file mode 100644 index 0000000000..0ebc42b2a4 --- /dev/null +++ b/src/BRepLib/BRepLib_MakePolygon.hxx @@ -0,0 +1,119 @@ +// Created on: 1993-07-29 +// 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 _BRepLib_MakePolygon_HeaderFile +#define _BRepLib_MakePolygon_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class StdFail_NotDone; +class gp_Pnt; +class TopoDS_Vertex; +class TopoDS_Edge; +class TopoDS_Wire; + + +//! Class to build polygonal wires. +//! +//! A polygonal wire may be build from +//! +//! - 2,4,3 points. +//! +//! - 2,3,4 vertices. +//! +//! - any number of points. +//! +//! - any number of vertices. +//! +//! When a point or vertex is added to the polygon if +//! it is identic to the previous point no edge is +//! built. The method added can be used to test it. +class BRepLib_MakePolygon : public BRepLib_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Creates an empty MakePolygon. + Standard_EXPORT BRepLib_MakePolygon(); + + Standard_EXPORT BRepLib_MakePolygon(const gp_Pnt& P1, const gp_Pnt& P2); + + Standard_EXPORT BRepLib_MakePolygon(const gp_Pnt& P1, const gp_Pnt& P2, const gp_Pnt& P3, const Standard_Boolean Close = Standard_False); + + Standard_EXPORT BRepLib_MakePolygon(const gp_Pnt& P1, const gp_Pnt& P2, const gp_Pnt& P3, const gp_Pnt& P4, const Standard_Boolean Close = Standard_False); + + Standard_EXPORT BRepLib_MakePolygon(const TopoDS_Vertex& V1, const TopoDS_Vertex& V2); + + Standard_EXPORT BRepLib_MakePolygon(const TopoDS_Vertex& V1, const TopoDS_Vertex& V2, const TopoDS_Vertex& V3, const Standard_Boolean Close = Standard_False); + + Standard_EXPORT BRepLib_MakePolygon(const TopoDS_Vertex& V1, const TopoDS_Vertex& V2, const TopoDS_Vertex& V3, const TopoDS_Vertex& V4, const Standard_Boolean Close = Standard_False); + + Standard_EXPORT void Add (const gp_Pnt& P); + + Standard_EXPORT void Add (const TopoDS_Vertex& V); + + //! Returns True if the last vertex or point was + //! succesfully added. + Standard_EXPORT Standard_Boolean Added() const; + + Standard_EXPORT void Close(); + + Standard_EXPORT const TopoDS_Vertex& FirstVertex() const; + + Standard_EXPORT const TopoDS_Vertex& LastVertex() const; + + //! Returns the last edge added to the polygon. + Standard_EXPORT const TopoDS_Edge& Edge() const; +Standard_EXPORT operator TopoDS_Edge() const; + + Standard_EXPORT const TopoDS_Wire& Wire() const; +Standard_EXPORT operator TopoDS_Wire() const; + + + + +protected: + + + + + +private: + + + + TopoDS_Vertex myFirstVertex; + TopoDS_Vertex myLastVertex; + TopoDS_Edge myEdge; + + +}; + + + + + + + +#endif // _BRepLib_MakePolygon_HeaderFile diff --git a/src/BRepLib/BRepLib_MakeShape.cdl b/src/BRepLib/BRepLib_MakeShape.cdl deleted file mode 100644 index d0d2748a6e..0000000000 --- a/src/BRepLib/BRepLib_MakeShape.cdl +++ /dev/null @@ -1,112 +0,0 @@ --- 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. - -deferred class MakeShape from BRepLib inherits Command from BRepLib - - ---Purpose: This is the root class for all shape - -- constructions. It stores the result. - -- - -- It provides deferred methods to trace the history - -- of sub-shapes. - -uses - Shape from TopoDS, - Face from TopoDS, - Edge from TopoDS, - ShapeModification from BRepLib, - ListOfShape from TopTools - - -raises - NotDone from StdFail - -is - Initialize; - - Build(me : in out); - ---Purpose: This is called by Shape(). It does nothing but - -- may be redefined. - ---Level: Public - - Shape(me) returns Shape from TopoDS - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Shape() const;" - ---Level: Public - raises - NotDone from StdFail - is static; - - - ----------------------------------------------------------- - --- the following methods do nothing and must be redefined - --- for faces creations. - - FaceStatus(me; F: Face from TopoDS) - ---Purpose: returns the status of the Face after - -- the shape creation. - ---Level: Public - returns ShapeModification from BRepLib - is virtual; - - - HasDescendants(me; F: Face from TopoDS) - ---Purpose: Returns True if the Face generates new topology. - ---Level: Public - returns Boolean from Standard - is virtual; - - - DescendantFaces(me: in out; F: Face from TopoDS) - ---Purpose: returns the list of generated Faces. - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is virtual; - - - NbSurfaces(me) - ---Purpose: returns the number of surfaces - -- after the shape creation. - ---Level: Public - returns Integer from Standard - is virtual; - - - NewFaces(me: in out; I: Integer from Standard) - ---Purpose: Return the faces created for surface I. - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is virtual; - - - FacesFromEdges(me: in out; E: Edge from TopoDS) - ---Purpose: returns a list of the created faces - -- from the edge . - ---C++: return const & - ---Level: Public - returns ListOfShape from TopTools - is virtual; - - -fields - - myShape : Shape from TopoDS is protected; - myGenFaces: ListOfShape from TopTools is protected; - myNewFaces: ListOfShape from TopTools is protected; - myEdgFaces: ListOfShape from TopTools is protected; - -end MakeShape; diff --git a/src/BRepLib/BRepLib_MakeShape.cxx b/src/BRepLib/BRepLib_MakeShape.cxx index 0b5c430f07..2ddbad2608 100644 --- a/src/BRepLib/BRepLib_MakeShape.cxx +++ b/src/BRepLib/BRepLib_MakeShape.cxx @@ -14,13 +14,17 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include +#include +#include +#include //======================================================================= //function : BRepLib_MakeShape //purpose : //======================================================================= - BRepLib_MakeShape::BRepLib_MakeShape() { } diff --git a/src/BRepLib/BRepLib_MakeShape.hxx b/src/BRepLib/BRepLib_MakeShape.hxx new file mode 100644 index 0000000000..461b4c8344 --- /dev/null +++ b/src/BRepLib/BRepLib_MakeShape.hxx @@ -0,0 +1,105 @@ +// 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 _BRepLib_MakeShape_HeaderFile +#define _BRepLib_MakeShape_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class StdFail_NotDone; +class TopoDS_Shape; +class TopoDS_Face; +class TopoDS_Edge; + + +//! 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 BRepLib_MakeShape : public BRepLib_Command +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! This is called by Shape(). It does nothing but + //! may be redefined. + Standard_EXPORT void Build(); + + Standard_EXPORT const TopoDS_Shape& Shape() const; +Standard_EXPORT operator TopoDS_Shape() const; + + //! returns the status of the Face after + //! the shape creation. + Standard_EXPORT virtual BRepLib_ShapeModification FaceStatus (const TopoDS_Face& F) const; + + //! Returns True if the Face generates new topology. + Standard_EXPORT virtual Standard_Boolean HasDescendants (const TopoDS_Face& F) const; + + //! returns the list of generated Faces. + Standard_EXPORT virtual const TopTools_ListOfShape& DescendantFaces (const TopoDS_Face& F); + + //! returns the number of surfaces + //! after the shape creation. + Standard_EXPORT virtual Standard_Integer NbSurfaces() const; + + //! Return the faces created for surface I. + Standard_EXPORT virtual const TopTools_ListOfShape& NewFaces (const Standard_Integer I); + + //! returns a list of the created faces + //! from the edge . + Standard_EXPORT virtual const TopTools_ListOfShape& FacesFromEdges (const TopoDS_Edge& E); + + + + +protected: + + + Standard_EXPORT BRepLib_MakeShape(); + + + TopoDS_Shape myShape; + TopTools_ListOfShape myGenFaces; + TopTools_ListOfShape myNewFaces; + TopTools_ListOfShape myEdgFaces; + + +private: + + + + + +}; + + + + + + + +#endif // _BRepLib_MakeShape_HeaderFile diff --git a/src/BRepLib/BRepLib_MakeShell.cdl b/src/BRepLib/BRepLib_MakeShell.cdl deleted file mode 100644 index e0dbbfabc6..0000000000 --- a/src/BRepLib/BRepLib_MakeShell.cdl +++ /dev/null @@ -1,89 +0,0 @@ --- Created on: 1995-01-04 --- 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. - -class MakeShell from BRepLib inherits MakeShape from BRepLib - - ---Purpose: Provides methos to build shells. - -- - -- Build a shell from a set of faces. - -- Build untied shell from a non C2 surface - -- splitting it into C2-continuous parts. - -uses - - Surface from Geom, - Shell from TopoDS, - Face from TopoDS, - ShellError from BRepLib - - -raises - NotDone from StdFail - -is - Create - ---Purpose: Not done. - ---Level: Public - returns MakeShell from BRepLib; - - ---------------------------------------------- - -- From a set of face - ---------------------------------------------- - - ---------------------------------------------- - -- From a surface - ---------------------------------------------- - - Create(S : Surface from Geom; - Segment : Boolean from Standard = Standard_False) - ---Level: Public - returns MakeShell from BRepLib; - - Create(S : Surface from Geom; UMin, UMax, VMin, VMax : Real; - Segment : Boolean from Standard = Standard_False) - ---Level: Public - returns MakeShell from BRepLib; - - Init(me : in out; S : Surface from Geom; UMin, UMax, VMin, VMax : Real; - Segment : Boolean from Standard = Standard_False) - ---Purpose: Creates the shell from the surface and the min-max - -- values. - ---Level: Public - is static; - - - ---------------------------------------------- - -- Results - ---------------------------------------------- - - Error(me) returns ShellError from BRepLib - ---Level: Public - is static; - - Shell(me) returns Shell from TopoDS - ---Purpose: Returns the new Shell. - -- - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Shell() const;" - ---Level: Public - raises - NotDone from StdFail - is static; - -fields - myError : ShellError from BRepLib; - -end MakeShell; diff --git a/src/BRepLib/BRepLib_MakeShell.cxx b/src/BRepLib/BRepLib_MakeShell.cxx index 89eddb0a15..c866cb7105 100644 --- a/src/BRepLib/BRepLib_MakeShell.cxx +++ b/src/BRepLib/BRepLib_MakeShell.cxx @@ -14,37 +14,34 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include +#include #include #include -#include -#include - -#include -#include +#include #include +#include +#include +#include #include -#include #include - +#include +#include +#include +#include +#include #include -#include -#include #include +#include +#include #include +#include #include -#include - -#include -#include - //======================================================================= //function : BRepLib_MakeShell //purpose : //======================================================================= - BRepLib_MakeShell::BRepLib_MakeShell() : myError(BRepLib_EmptyShell) { diff --git a/src/BRepLib/BRepLib_MakeShell.hxx b/src/BRepLib/BRepLib_MakeShell.hxx new file mode 100644 index 0000000000..647ecae502 --- /dev/null +++ b/src/BRepLib/BRepLib_MakeShell.hxx @@ -0,0 +1,86 @@ +// Created on: 1995-01-04 +// 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 _BRepLib_MakeShell_HeaderFile +#define _BRepLib_MakeShell_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +class StdFail_NotDone; +class Geom_Surface; +class TopoDS_Shell; + + +//! Provides methos to build shells. +//! +//! Build a shell from a set of faces. +//! Build untied shell from a non C2 surface +//! splitting it into C2-continuous parts. +class BRepLib_MakeShell : public BRepLib_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Not done. + Standard_EXPORT BRepLib_MakeShell(); + + Standard_EXPORT BRepLib_MakeShell(const Handle(Geom_Surface)& S, const Standard_Boolean Segment = Standard_False); + + Standard_EXPORT BRepLib_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); + + //! Creates the shell from the surface and the min-max + //! values. + 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); + + Standard_EXPORT BRepLib_ShellError Error() const; + + //! Returns the new Shell. + Standard_EXPORT const TopoDS_Shell& Shell() const; +Standard_EXPORT operator TopoDS_Shell() const; + + + + +protected: + + + + + +private: + + + + BRepLib_ShellError myError; + + +}; + + + + + + + +#endif // _BRepLib_MakeShell_HeaderFile diff --git a/src/BRepLib/BRepLib_MakeSolid.cdl b/src/BRepLib/BRepLib_MakeSolid.cdl deleted file mode 100644 index 4764de2857..0000000000 --- a/src/BRepLib/BRepLib_MakeSolid.cdl +++ /dev/null @@ -1,120 +0,0 @@ --- Created on: 1995-01-04 --- 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. - -class MakeSolid from BRepLib inherits MakeShape from BRepLib - - ---Purpose: Makes a solid from compsolid or shells. - -uses - Solid from TopoDS, - CompSolid from TopoDS, - Shell from TopoDS, - Face from TopoDS, - ListOfShape from TopTools, - ShapeModification from BRepLib - -raises - NotDone from StdFail - -is - - Create - ---Level: Public - ---Purpose: Solid covers whole space. - returns MakeSolid from BRepLib; - - ---------------------------------------------- - -- From CompSolid - ---------------------------------------------- - - Create(S : CompSolid from TopoDS) - ---Purpose: Make a solid from a CompSolid. - ---Level: Public - returns MakeSolid from BRepLib; - - - - ---------------------------------------------- - -- From shells - ---------------------------------------------- - - Create(S : Shell from TopoDS) - ---Purpose: Make a solid from a shell. - ---Level: Public - returns MakeSolid from BRepLib; - - - Create(S1,S2 : Shell from TopoDS) - ---Purpose: Make a solid from two shells. - ---Level: Public - returns MakeSolid from BRepLib; - - Create(S1,S2,S3 : Shell from TopoDS) - ---Purpose: Make a solid from three shells. - ---Level: Public - returns MakeSolid from BRepLib; - - - ---------------------------------------------- - -- From solid and shells - ---------------------------------------------- - - Create(So : Solid from TopoDS) - ---Purpose: Make a solid from a solid. Usefull for adding later. - ---Level: Public - returns MakeSolid from BRepLib; - - Create(So : Solid from TopoDS; S : Shell from TopoDS) - ---Purpose: Add a shell to a solid. - ---Level: Public - returns MakeSolid from BRepLib; - - - ---------------------------------------------- - -- Auxiliary methods - ---------------------------------------------- - - Add(me : in out; S : Shell from TopoDS) - ---Purpose: Add the shell to the current solid. - ---Level: Public - is static; - - ---------------------------------------------- - -- Results - ---------------------------------------------- - - Solid(me) returns Solid from TopoDS - ---Purpose: Returns the new Solid. - -- - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Solid() const;" - ---Level: Public - raises - NotDone from StdFail - is static; - - FaceStatus(me; F: Face from TopoDS) - ---Purpose: returns the status of the Face after - -- the shape creation. - ---Level: Public - returns ShapeModification from BRepLib - is redefined; - -fields - - myDeletedFaces: ListOfShape from TopTools is protected; - -end MakeSolid; diff --git a/src/BRepLib/BRepLib_MakeSolid.cxx b/src/BRepLib/BRepLib_MakeSolid.cxx index 6d1f6c908c..2342ac3bb1 100644 --- a/src/BRepLib/BRepLib_MakeSolid.cxx +++ b/src/BRepLib/BRepLib_MakeSolid.cxx @@ -14,20 +14,24 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include #include +#include +#include #include -#include -#include +#include +#include +#include +#include +#include #include +#include +#include //======================================================================= //function : BRepLib_MakeSolid //purpose : //======================================================================= - BRepLib_MakeSolid::BRepLib_MakeSolid() { BRep_Builder B; diff --git a/src/BRepLib/BRepLib_MakeSolid.hxx b/src/BRepLib/BRepLib_MakeSolid.hxx new file mode 100644 index 0000000000..d1be543dad --- /dev/null +++ b/src/BRepLib/BRepLib_MakeSolid.hxx @@ -0,0 +1,98 @@ +// Created on: 1995-01-04 +// 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 _BRepLib_MakeSolid_HeaderFile +#define _BRepLib_MakeSolid_HeaderFile + +#include +#include +#include + +#include +#include +#include +class StdFail_NotDone; +class TopoDS_CompSolid; +class TopoDS_Shell; +class TopoDS_Solid; +class TopoDS_Face; + + +//! Makes a solid from compsolid or shells. +class BRepLib_MakeSolid : public BRepLib_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! Solid covers whole space. + Standard_EXPORT BRepLib_MakeSolid(); + + //! Make a solid from a CompSolid. + Standard_EXPORT BRepLib_MakeSolid(const TopoDS_CompSolid& S); + + //! Make a solid from a shell. + Standard_EXPORT BRepLib_MakeSolid(const TopoDS_Shell& S); + + //! Make a solid from two shells. + Standard_EXPORT BRepLib_MakeSolid(const TopoDS_Shell& S1, const TopoDS_Shell& S2); + + //! Make a solid from three shells. + Standard_EXPORT BRepLib_MakeSolid(const TopoDS_Shell& S1, const TopoDS_Shell& S2, const TopoDS_Shell& S3); + + //! Make a solid from a solid. Usefull for adding later. + Standard_EXPORT BRepLib_MakeSolid(const TopoDS_Solid& So); + + //! Add a shell to a solid. + Standard_EXPORT BRepLib_MakeSolid(const TopoDS_Solid& So, const TopoDS_Shell& S); + + //! Add the shell to the current solid. + Standard_EXPORT void Add (const TopoDS_Shell& S); + + //! Returns the new Solid. + Standard_EXPORT const TopoDS_Solid& Solid() const; +Standard_EXPORT operator TopoDS_Solid() const; + + //! returns the status of the Face after + //! the shape creation. + Standard_EXPORT virtual BRepLib_ShapeModification FaceStatus (const TopoDS_Face& F) const Standard_OVERRIDE; + + + + +protected: + + + + TopTools_ListOfShape myDeletedFaces; + + +private: + + + + + +}; + + + + + + + +#endif // _BRepLib_MakeSolid_HeaderFile diff --git a/src/BRepLib/BRepLib_MakeVertex.cdl b/src/BRepLib/BRepLib_MakeVertex.cdl deleted file mode 100644 index 624dde2b3e..0000000000 --- a/src/BRepLib/BRepLib_MakeVertex.cdl +++ /dev/null @@ -1,36 +0,0 @@ --- 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. - -class MakeVertex from BRepLib inherits MakeShape from BRepLib - - ---Purpose: Provides methods to build vertices. - -uses - Pnt from gp, - Vertex from TopoDS - -is - Create (P : Pnt from gp) - ---Level: Public - returns MakeVertex from BRepLib; - - Vertex(me) returns Vertex from TopoDS - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Vertex() const;" - ---Level: Public - is static; - -end MakeVertex; diff --git a/src/BRepLib/BRepLib_MakeVertex.cxx b/src/BRepLib/BRepLib_MakeVertex.cxx index 0b85bdbc5b..8dcc1bbfff 100644 --- a/src/BRepLib/BRepLib_MakeVertex.cxx +++ b/src/BRepLib/BRepLib_MakeVertex.cxx @@ -14,16 +14,18 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include + #include +#include +#include +#include #include +#include //======================================================================= //function : BRepLib_MakeVertex //purpose : //======================================================================= - BRepLib_MakeVertex::BRepLib_MakeVertex(const gp_Pnt& P) { BRep_Builder B; diff --git a/src/BRepLib/BRepLib_MakeVertex.hxx b/src/BRepLib/BRepLib_MakeVertex.hxx new file mode 100644 index 0000000000..64a0e11aa9 --- /dev/null +++ b/src/BRepLib/BRepLib_MakeVertex.hxx @@ -0,0 +1,65 @@ +// 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 _BRepLib_MakeVertex_HeaderFile +#define _BRepLib_MakeVertex_HeaderFile + +#include +#include +#include + +#include +class gp_Pnt; +class TopoDS_Vertex; + + +//! Provides methods to build vertices. +class BRepLib_MakeVertex : public BRepLib_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + Standard_EXPORT BRepLib_MakeVertex(const gp_Pnt& P); + + Standard_EXPORT const TopoDS_Vertex& Vertex() const; +Standard_EXPORT operator TopoDS_Vertex() const; + + + + +protected: + + + + + +private: + + + + + +}; + + + + + + + +#endif // _BRepLib_MakeVertex_HeaderFile diff --git a/src/BRepLib/BRepLib_MakeWire.cdl b/src/BRepLib/BRepLib_MakeWire.cdl deleted file mode 100644 index 7ecb0595c0..0000000000 --- a/src/BRepLib/BRepLib_MakeWire.cdl +++ /dev/null @@ -1,187 +0,0 @@ --- 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. - -class MakeWire from BRepLib inherits MakeShape from BRepLib - - ---Purpose: Provides methods to build wires. - -- - -- A wire may be built : - -- - -- * From a single edge. - -- - -- * From a wire and an edge. - -- - -- - A new wire is created with the edges of the - -- wire + the edge. - -- - -- - If the edge is not connnected to the wire the - -- flag NotDone is set and the method Wire will - -- raise an error. - -- - -- - The connection may be : - -- - -- . Through an existing vertex. The edge is shared. - -- - -- . Through a geometric coincidence of vertices. - -- The edge is copied and the vertices from the - -- edge are replaced by the vertices from the - -- wire. - -- - -- . The new edge and the connection vertices are - -- kept by the algorithm. - -- - -- - -- * From 2, 3, 4 edges. - -- - -- - A wire is created from the first edge, the - -- following edges are added. - -- - -- * From many edges. - -- - -- - The following syntax may be used : - -- - -- BRepLib_MakeWire MW; - -- - -- // for all the edges ... - -- MW.Add(anEdge); - -- - -- TopoDS_Wire W = MW; - - - -uses - WireError from BRepLib, - Wire from TopoDS, - Edge from TopoDS, - Vertex from TopoDS, - MapOfShape from TopTools, - ListOfShape from TopTools - -raises - NotDone from StdFail - -is - - Create - ---Purpose: NotDone MakeWire. - ---Level: Public - returns MakeWire from BRepLib; - - ---------------------------------------------- - -- From edges - ---------------------------------------------- - - Create(E : Edge from TopoDS) - ---Purpose: Make a Wire from an edge. - ---Level: Public - returns MakeWire from BRepLib; - - Create(E1,E2 : Edge from TopoDS) - ---Purpose: Make a Wire from two edges. - ---Level: Public - returns MakeWire from BRepLib; - - Create(E1,E2,E3 : Edge from TopoDS) - ---Purpose: Make a Wire from three edges. - ---Level: Public - returns MakeWire from BRepLib; - - Create(E1,E2,E3,E4 : Edge from TopoDS) - ---Purpose: Make a Wire from four edges. - ---Level: Public - returns MakeWire from BRepLib; - - ---------------------------------------------- - -- From wire and edge - ---------------------------------------------- - - Create(W : Wire from TopoDS) - ---Purpose: Make a Wire from a Wire. Usefull for adding later. - ---Level: Public - returns MakeWire from BRepLib; - - Create(W : Wire from TopoDS; E : Edge from TopoDS) - ---Purpose: Add an edge to a wire. - ---Level: Public - returns MakeWire from BRepLib; - - ---------------------------------------------- - -- Auxiliary methods - ---------------------------------------------- - - Add(me : in out; E : Edge from TopoDS) - ---Purpose: Add the edge to the current wire. - ---Level: Public - is static; - - Add(me : in out; W : Wire from TopoDS) - ---Purpose: Add the edges of to the current wire. - ---Level: Public - is static; - - Add(me : in out; L : ListOfShape from TopTools) - ---Purpose: Add the edges of to the current wire. - -- The edges are not to be consecutive. But they are - -- to be all connected geometrically or topologically. - ---Level: Public - is static; - - ---------------------------------------------- - -- Results - ---------------------------------------------- - - Error(me) returns WireError from BRepLib - ---Level: Public - is static; - - Wire(me) returns Wire from TopoDS - ---Purpose: Returns the new wire. - -- - ---C++: return const & - ---C++: alias "Standard_EXPORT operator TopoDS_Wire() const;" - ---Level: Public - raises - NotDone from StdFail - is static; - - Edge(me) returns Edge from TopoDS - ---Purpose: Returns the last edge added to the wire. - -- - ---C++: return const & - ---Level: Public - raises - NotDone from StdFail - is static; - - Vertex(me) returns Vertex from TopoDS - ---Purpose: Returns the last connecting vertex. - -- - ---C++: return const & - ---Level: Public - raises - NotDone from StdFail - is static; - - -fields - myError : WireError from BRepLib; - myEdge : Edge from TopoDS; - myVertex : Vertex from TopoDS; - myVertices : MapOfShape from TopTools; - FirstVertex : Vertex from TopoDS; - VF, VL : Vertex from TopoDS; - -end MakeWire; diff --git a/src/BRepLib/BRepLib_MakeWire.cxx b/src/BRepLib/BRepLib_MakeWire.cxx index c0de4f9b7f..6c82af20dc 100644 --- a/src/BRepLib/BRepLib_MakeWire.cxx +++ b/src/BRepLib/BRepLib_MakeWire.cxx @@ -14,27 +14,30 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include + +#include +#include #include #include -#include -#include +#include +#include +#include +#include +#include #include #include -#include -#include #include +#include #include -#include -#include -#include - +#include +#include +#include +#include //======================================================================= //function : BRepLib_MakeWire //purpose : //======================================================================= - BRepLib_MakeWire::BRepLib_MakeWire() : myError(BRepLib_EmptyWire) { diff --git a/src/BRepLib/BRepLib_MakeWire.hxx b/src/BRepLib/BRepLib_MakeWire.hxx new file mode 100644 index 0000000000..e46a760f31 --- /dev/null +++ b/src/BRepLib/BRepLib_MakeWire.hxx @@ -0,0 +1,159 @@ +// 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 _BRepLib_MakeWire_HeaderFile +#define _BRepLib_MakeWire_HeaderFile + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +class StdFail_NotDone; +class TopoDS_Edge; +class TopoDS_Wire; +class TopoDS_Vertex; + + +//! Provides methods to build wires. +//! +//! A wire may be built : +//! +//! * From a single edge. +//! +//! * From a wire and an edge. +//! +//! - A new wire is created with the edges of the +//! wire + the edge. +//! +//! - If the edge is not connnected to the wire the +//! flag NotDone is set and the method Wire will +//! raise an error. +//! +//! - The connection may be : +//! +//! . Through an existing vertex. The edge is shared. +//! +//! . Through a geometric coincidence of vertices. +//! The edge is copied and the vertices from the +//! edge are replaced by the vertices from the +//! wire. +//! +//! . The new edge and the connection vertices are +//! kept by the algorithm. +//! +//! * From 2, 3, 4 edges. +//! +//! - A wire is created from the first edge, the +//! following edges are added. +//! +//! * From many edges. +//! +//! - The following syntax may be used : +//! +//! BRepLib_MakeWire MW; +//! +//! // for all the edges ... +//! MW.Add(anEdge); +//! +//! TopoDS_Wire W = MW; +class BRepLib_MakeWire : public BRepLib_MakeShape +{ +public: + + DEFINE_STANDARD_ALLOC + + + //! NotDone MakeWire. + Standard_EXPORT BRepLib_MakeWire(); + + //! Make a Wire from an edge. + Standard_EXPORT BRepLib_MakeWire(const TopoDS_Edge& E); + + //! Make a Wire from two edges. + Standard_EXPORT BRepLib_MakeWire(const TopoDS_Edge& E1, const TopoDS_Edge& E2); + + //! Make a Wire from three edges. + Standard_EXPORT BRepLib_MakeWire(const TopoDS_Edge& E1, const TopoDS_Edge& E2, const TopoDS_Edge& E3); + + //! Make a Wire from four edges. + Standard_EXPORT BRepLib_MakeWire(const TopoDS_Edge& E1, const TopoDS_Edge& E2, const TopoDS_Edge& E3, const TopoDS_Edge& E4); + + //! Make a Wire from a Wire. Usefull for adding later. + Standard_EXPORT BRepLib_MakeWire(const TopoDS_Wire& W); + + //! Add an edge to a wire. + Standard_EXPORT BRepLib_MakeWire(const TopoDS_Wire& W, const TopoDS_Edge& E); + + //! Add the edge to the current wire. + Standard_EXPORT void Add (const TopoDS_Edge& E); + + //! Add the edges of to the current wire. + Standard_EXPORT void Add (const TopoDS_Wire& W); + + //! Add the edges of to the current wire. + //! The edges are not to be consecutive. But they are + //! to be all connected geometrically or topologically. + Standard_EXPORT void Add (const TopTools_ListOfShape& L); + + Standard_EXPORT BRepLib_WireError Error() const; + + //! Returns the new wire. + Standard_EXPORT const TopoDS_Wire& Wire() const; +Standard_EXPORT operator TopoDS_Wire() const; + + //! Returns the last edge added to the wire. + Standard_EXPORT const TopoDS_Edge& Edge() const; + + //! Returns the last connecting vertex. + Standard_EXPORT const TopoDS_Vertex& Vertex() const; + + + + +protected: + + + + + +private: + + + + BRepLib_WireError myError; + TopoDS_Edge myEdge; + TopoDS_Vertex myVertex; + TopTools_MapOfShape myVertices; + TopoDS_Vertex FirstVertex; + TopoDS_Vertex VF; + TopoDS_Vertex VL; + + +}; + + + + + + + +#endif // _BRepLib_MakeWire_HeaderFile diff --git a/src/BRepLib/BRepLib_MakeWire_1.cxx b/src/BRepLib/BRepLib_MakeWire_1.cxx index 35a595b73b..8a065f5b7e 100644 --- a/src/BRepLib/BRepLib_MakeWire_1.cxx +++ b/src/BRepLib/BRepLib_MakeWire_1.cxx @@ -14,32 +14,33 @@ // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. -#include -#include -#include -#include -#include -#include -#include -#include -#include + #include +#include +#include +#include +#include +#include #include #include #include -#include -#include #include -#include -#include +#include +#include +#include +#include #include - +#include +#include +#include +#include +#include +#include //======================================================================= //function : Add //purpose : Add the list of edges to the current wire //======================================================================= - void BRepLib_MakeWire::Add(const TopTools_ListOfShape& L) { myError = BRepLib_WireDone; diff --git a/src/BRepLib/BRepLib_ShapeModification.hxx b/src/BRepLib/BRepLib_ShapeModification.hxx new file mode 100644 index 0000000000..a876eff2e3 --- /dev/null +++ b/src/BRepLib/BRepLib_ShapeModification.hxx @@ -0,0 +1,30 @@ +// Created on: 1993-12-15 +// 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 _BRepLib_ShapeModification_HeaderFile +#define _BRepLib_ShapeModification_HeaderFile + +//! Modification type after a topologic operation. +enum BRepLib_ShapeModification +{ +BRepLib_Preserved, +BRepLib_Deleted, +BRepLib_Trimmed, +BRepLib_Merged, +BRepLib_BoundaryModified +}; + +#endif // _BRepLib_ShapeModification_HeaderFile diff --git a/src/BRepLib/BRepLib_ShellError.hxx b/src/BRepLib/BRepLib_ShellError.hxx new file mode 100644 index 0000000000..0396e58b25 --- /dev/null +++ b/src/BRepLib/BRepLib_ShellError.hxx @@ -0,0 +1,29 @@ +// Created on: 1993-12-15 +// 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 _BRepLib_ShellError_HeaderFile +#define _BRepLib_ShellError_HeaderFile + +//! Errors that can occur at shell construction. +enum BRepLib_ShellError +{ +BRepLib_ShellDone, +BRepLib_EmptyShell, +BRepLib_DisconnectedShell, +BRepLib_ShellParametersOutOfRange +}; + +#endif // _BRepLib_ShellError_HeaderFile diff --git a/src/BRepLib/BRepLib_WireError.hxx b/src/BRepLib/BRepLib_WireError.hxx new file mode 100644 index 0000000000..58a0b46bff --- /dev/null +++ b/src/BRepLib/BRepLib_WireError.hxx @@ -0,0 +1,30 @@ +// Created on: 1993-12-15 +// 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 _BRepLib_WireError_HeaderFile +#define _BRepLib_WireError_HeaderFile + +//! Errors that can occur at wire construction. +//! no error +enum BRepLib_WireError +{ +BRepLib_WireDone, +BRepLib_EmptyWire, +BRepLib_DisconnectedWire, +BRepLib_NonManifoldWire +}; + +#endif // _BRepLib_WireError_HeaderFile diff --git a/src/BRepLib/FILES b/src/BRepLib/FILES index dbaf98a673..05545a9289 100755 --- a/src/BRepLib/FILES +++ b/src/BRepLib/FILES @@ -1 +1,35 @@ +BRepLib.cxx +BRepLib.hxx +BRepLib_CheckCurveOnSurface.cxx +BRepLib_CheckCurveOnSurface.hxx +BRepLib_CheckCurveOnSurface.lxx +BRepLib_Command.cxx +BRepLib_Command.hxx +BRepLib_EdgeError.hxx +BRepLib_FaceError.hxx +BRepLib_FindSurface.cxx +BRepLib_FindSurface.hxx +BRepLib_FuseEdges.cxx +BRepLib_FuseEdges.hxx +BRepLib_MakeEdge.cxx +BRepLib_MakeEdge.hxx +BRepLib_MakeEdge2d.cxx +BRepLib_MakeEdge2d.hxx +BRepLib_MakeFace.cxx +BRepLib_MakeFace.hxx +BRepLib_MakePolygon.cxx +BRepLib_MakePolygon.hxx +BRepLib_MakeShape.cxx +BRepLib_MakeShape.hxx +BRepLib_MakeShell.cxx +BRepLib_MakeShell.hxx +BRepLib_MakeSolid.cxx +BRepLib_MakeSolid.hxx +BRepLib_MakeVertex.cxx +BRepLib_MakeVertex.hxx +BRepLib_MakeWire.cxx +BRepLib_MakeWire.hxx BRepLib_MakeWire_1.cxx +BRepLib_ShapeModification.hxx +BRepLib_ShellError.hxx +BRepLib_WireError.hxx diff --git a/src/BRepMAT2d/BRepMAT2d.cdl b/src/BRepMAT2d/BRepMAT2d.cdl deleted file mode 100644 index 992e684a58..0000000000 --- a/src/BRepMAT2d/BRepMAT2d.cdl +++ /dev/null @@ -1,55 +0,0 @@ --- Created on: 1994-10-03 --- Created by: Yves FRICAUD --- 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. - -package BRepMAT2d - - ---Purpose: - -uses - GeomAbs, - MAT2d, - MAT, - TCollection, - TColStd, - TColGeom2d, - Geom2d, - gp, - TopoDS, - TopTools, - Bisector - -is - class Explorer; - - class BisectingLocus; - - class LinkTopoBilo; - - - imported DataMapOfShapeSequenceOfBasicElt; - - - imported DataMapIteratorOfDataMapOfShapeSequenceOfBasicElt; - - imported DataMapOfBasicEltShape; - - imported DataMapIteratorOfDataMapOfBasicEltShape; - -end BRepMAT2d; - - - - diff --git a/src/BRepMAT2d/BRepMAT2d_BisectingLocus.cdl b/src/BRepMAT2d/BRepMAT2d_BisectingLocus.cdl deleted file mode 100644 index 9d258ba1d7..0000000000 --- a/src/BRepMAT2d/BRepMAT2d_BisectingLocus.cdl +++ /dev/null @@ -1,166 +0,0 @@ --- 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. - -class BisectingLocus from BRepMAT2d - - ---Purpose : 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. - -uses - JoinType from GeomAbs, - Graph from MAT, - Arc from MAT, - BasicElt from MAT, - Node from MAT, - Side from MAT, - DataMapOfIntegerBasicElt from MAT, - DataMapOfBiIntInteger from MAT2d, - Bisec from Bisector, - Geometry from Geom2d, - Pnt2d from gp, - Tool2d from MAT2d, - Explorer from BRepMAT2d - -is - Create returns BisectingLocus from BRepMAT2d; - ----Category: Construction. - - Compute (me : in out ; - anExplo : in out Explorer from BRepMAT2d; - LineIndex : Integer = 1; - aSide : Side from MAT = MAT_Left; - aJoinType : JoinType from GeomAbs = GeomAbs_Arc; - IsOpenResult : Boolean = Standard_False) - --- Purpose : Computation of the Bisector_Locus in a set of Lines - -- defined in . - -- The bisecting locus are computed on the side