Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-11-07 10:25:05

0001 // Created on: 1997-08-20
0002 // Created by: Guest Design
0003 // Copyright (c) 1997-1999 Matra Datavision
0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0005 //
0006 // This file is part of Open CASCADE Technology software library.
0007 //
0008 // This library is free software; you can redistribute it and/or modify it under
0009 // the terms of the GNU Lesser General Public License version 2.1 as published
0010 // by the Free Software Foundation, with special exception defined in the file
0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0012 // distribution for complete text of the license and disclaimer of any warranty.
0013 //
0014 // Alternatively, this file may be used under the terms of Open CASCADE
0015 // commercial license or contractual agreement.
0016 
0017 #ifndef _TPrsStd_ConstraintTools_HeaderFile
0018 #define _TPrsStd_ConstraintTools_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_DefineAlloc.hxx>
0022 #include <Standard_Handle.hxx>
0023 
0024 #include <Standard_Real.hxx>
0025 #include <Standard_Boolean.hxx>
0026 class TDataXtd_Constraint;
0027 class AIS_InteractiveObject;
0028 class TCollection_ExtendedString;
0029 class TopoDS_Shape;
0030 class Geom_Geometry;
0031 
0032 class TPrsStd_ConstraintTools
0033 {
0034 public:
0035   DEFINE_STANDARD_ALLOC
0036 
0037   Standard_EXPORT static void UpdateOnlyValue(const occ::handle<TDataXtd_Constraint>&   aConst,
0038                                               const occ::handle<AIS_InteractiveObject>& anAIS);
0039 
0040   //! Computes a distance dimension presentation for the given constraint.
0041   //! @param[in] aConst the distance constraint
0042   //! @return interactive object representing the distance, or null handle on failure
0043   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeDistance(
0044     const occ::handle<TDataXtd_Constraint>& aConst);
0045 
0046   //! @deprecated Use ComputeDistance() returning handle by value instead.
0047   Standard_DEPRECATED("Use ComputeDistance() returning handle by value instead")
0048   Standard_EXPORT static void ComputeDistance(const occ::handle<TDataXtd_Constraint>& aConst,
0049                                               occ::handle<AIS_InteractiveObject>&     anAIS);
0050 
0051   //! Computes a parallel relation presentation for the given constraint.
0052   //! @param[in] aConst the parallel constraint
0053   //! @return interactive object representing the relation, or null handle on failure
0054   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeParallel(
0055     const occ::handle<TDataXtd_Constraint>& aConst);
0056 
0057   //! @deprecated Use ComputeParallel() returning handle by value instead.
0058   Standard_DEPRECATED("Use ComputeParallel() returning handle by value instead")
0059   Standard_EXPORT static void ComputeParallel(const occ::handle<TDataXtd_Constraint>& aConst,
0060                                               occ::handle<AIS_InteractiveObject>&     anAIS);
0061 
0062   //! Computes a tangent relation presentation for the given constraint.
0063   //! @param[in] aConst the tangent constraint
0064   //! @return interactive object representing the relation, or null handle on failure
0065   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeTangent(
0066     const occ::handle<TDataXtd_Constraint>& aConst);
0067 
0068   //! @deprecated Use ComputeTangent() returning handle by value instead.
0069   Standard_DEPRECATED("Use ComputeTangent() returning handle by value instead")
0070   Standard_EXPORT static void ComputeTangent(const occ::handle<TDataXtd_Constraint>& aConst,
0071                                              occ::handle<AIS_InteractiveObject>&     anAIS);
0072 
0073   //! Computes a perpendicular relation presentation for the given constraint.
0074   //! @param[in] aConst the perpendicular constraint
0075   //! @return interactive object representing the relation, or null handle on failure
0076   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputePerpendicular(
0077     const occ::handle<TDataXtd_Constraint>& aConst);
0078 
0079   //! @deprecated Use ComputePerpendicular() returning handle by value instead.
0080   Standard_DEPRECATED("Use ComputePerpendicular() returning handle by value instead")
0081   Standard_EXPORT static void ComputePerpendicular(const occ::handle<TDataXtd_Constraint>& aConst,
0082                                                    occ::handle<AIS_InteractiveObject>&     anAIS);
0083 
0084   //! Computes a concentric relation presentation for the given constraint.
0085   //! @param[in] aConst the concentric constraint
0086   //! @return interactive object representing the relation, or null handle on failure
0087   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeConcentric(
0088     const occ::handle<TDataXtd_Constraint>& aConst);
0089 
0090   //! @deprecated Use ComputeConcentric() returning handle by value instead.
0091   Standard_DEPRECATED("Use ComputeConcentric() returning handle by value instead")
0092   Standard_EXPORT static void ComputeConcentric(const occ::handle<TDataXtd_Constraint>& aConst,
0093                                                 occ::handle<AIS_InteractiveObject>&     anAIS);
0094 
0095   //! Computes a symmetry relation presentation for the given constraint.
0096   //! @param[in] aConst the symmetry constraint
0097   //! @return interactive object representing the relation, or null handle on failure
0098   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeSymmetry(
0099     const occ::handle<TDataXtd_Constraint>& aConst);
0100 
0101   //! @deprecated Use ComputeSymmetry() returning handle by value instead.
0102   Standard_DEPRECATED("Use ComputeSymmetry() returning handle by value instead")
0103   Standard_EXPORT static void ComputeSymmetry(const occ::handle<TDataXtd_Constraint>& aConst,
0104                                               occ::handle<AIS_InteractiveObject>&     anAIS);
0105 
0106   //! Computes a midpoint relation presentation for the given constraint.
0107   //! @param[in] aConst the midpoint constraint
0108   //! @return interactive object representing the relation, or null handle on failure
0109   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeMidPoint(
0110     const occ::handle<TDataXtd_Constraint>& aConst);
0111 
0112   //! @deprecated Use ComputeMidPoint() returning handle by value instead.
0113   Standard_DEPRECATED("Use ComputeMidPoint() returning handle by value instead")
0114   Standard_EXPORT static void ComputeMidPoint(const occ::handle<TDataXtd_Constraint>& aConst,
0115                                               occ::handle<AIS_InteractiveObject>&     anAIS);
0116 
0117   //! Computes an angle dimension presentation for the given constraint.
0118   //! @param[in] aConst the angle constraint
0119   //! @return interactive object representing the angle, or null handle on failure
0120   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeAngle(
0121     const occ::handle<TDataXtd_Constraint>& aConst);
0122 
0123   //! @deprecated Use ComputeAngle() returning handle by value instead.
0124   Standard_DEPRECATED("Use ComputeAngle() returning handle by value instead")
0125   Standard_EXPORT static void ComputeAngle(const occ::handle<TDataXtd_Constraint>& aConst,
0126                                            occ::handle<AIS_InteractiveObject>&     anAIS);
0127 
0128   //! Computes a radius dimension presentation for the given constraint.
0129   //! @param[in] aConst the radius constraint
0130   //! @return interactive object representing the radius, or null handle on failure
0131   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeRadius(
0132     const occ::handle<TDataXtd_Constraint>& aConst);
0133 
0134   //! @deprecated Use ComputeRadius() returning handle by value instead.
0135   Standard_DEPRECATED("Use ComputeRadius() returning handle by value instead")
0136   Standard_EXPORT static void ComputeRadius(const occ::handle<TDataXtd_Constraint>& aConst,
0137                                             occ::handle<AIS_InteractiveObject>&     anAIS);
0138 
0139   //! Computes a minor radius dimension presentation for the given constraint.
0140   //! @param[in] aConst the minor radius constraint
0141   //! @return interactive object representing the minor radius, or null handle on failure
0142   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeMinRadius(
0143     const occ::handle<TDataXtd_Constraint>& aConst);
0144 
0145   //! @deprecated Use ComputeMinRadius() returning handle by value instead.
0146   Standard_DEPRECATED("Use ComputeMinRadius() returning handle by value instead")
0147   Standard_EXPORT static void ComputeMinRadius(const occ::handle<TDataXtd_Constraint>& aConst,
0148                                                occ::handle<AIS_InteractiveObject>&     anAIS);
0149 
0150   //! Computes a major radius dimension presentation for the given constraint.
0151   //! @param[in] aConst the major radius constraint
0152   //! @return interactive object representing the major radius, or null handle on failure
0153   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeMaxRadius(
0154     const occ::handle<TDataXtd_Constraint>& aConst);
0155 
0156   //! @deprecated Use ComputeMaxRadius() returning handle by value instead.
0157   Standard_DEPRECATED("Use ComputeMaxRadius() returning handle by value instead")
0158   Standard_EXPORT static void ComputeMaxRadius(const occ::handle<TDataXtd_Constraint>& aConst,
0159                                                occ::handle<AIS_InteractiveObject>&     anAIS);
0160 
0161   //! Computes an equal distance relation presentation for the given constraint.
0162   //! @param[in] aConst the equal distance constraint
0163   //! @return interactive object representing the relation, or null handle on failure
0164   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeEqualDistance(
0165     const occ::handle<TDataXtd_Constraint>& aConst);
0166 
0167   //! @deprecated Use ComputeEqualDistance() returning handle by value instead.
0168   Standard_DEPRECATED("Use ComputeEqualDistance() returning handle by value instead")
0169   Standard_EXPORT static void ComputeEqualDistance(const occ::handle<TDataXtd_Constraint>& aConst,
0170                                                    occ::handle<AIS_InteractiveObject>&     anAIS);
0171 
0172   //! Computes an equal radius relation presentation for the given constraint.
0173   //! @param[in] aConst the equal radius constraint
0174   //! @return interactive object representing the relation, or null handle on failure
0175   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeEqualRadius(
0176     const occ::handle<TDataXtd_Constraint>& aConst);
0177 
0178   //! @deprecated Use ComputeEqualRadius() returning handle by value instead.
0179   Standard_DEPRECATED("Use ComputeEqualRadius() returning handle by value instead")
0180   Standard_EXPORT static void ComputeEqualRadius(const occ::handle<TDataXtd_Constraint>& aConst,
0181                                                  occ::handle<AIS_InteractiveObject>&     anAIS);
0182 
0183   //! Computes a fix constraint presentation for the given constraint.
0184   //! @param[in] aConst the fix constraint
0185   //! @return interactive object representing the constraint, or null handle on failure
0186   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeFix(
0187     const occ::handle<TDataXtd_Constraint>& aConst);
0188 
0189   //! @deprecated Use ComputeFix() returning handle by value instead.
0190   Standard_DEPRECATED("Use ComputeFix() returning handle by value instead")
0191   Standard_EXPORT static void ComputeFix(const occ::handle<TDataXtd_Constraint>& aConst,
0192                                          occ::handle<AIS_InteractiveObject>&     anAIS);
0193 
0194   //! Computes a diameter dimension presentation for the given constraint.
0195   //! @param[in] aConst the diameter constraint
0196   //! @return interactive object representing the diameter, or null handle on failure
0197   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeDiameter(
0198     const occ::handle<TDataXtd_Constraint>& aConst);
0199 
0200   //! @deprecated Use ComputeDiameter() returning handle by value instead.
0201   Standard_DEPRECATED("Use ComputeDiameter() returning handle by value instead")
0202   Standard_EXPORT static void ComputeDiameter(const occ::handle<TDataXtd_Constraint>& aConst,
0203                                               occ::handle<AIS_InteractiveObject>&     anAIS);
0204 
0205   //! Computes an offset relation presentation for the given constraint.
0206   //! @param[in] aConst the offset constraint
0207   //! @return interactive object representing the offset, or null handle on failure
0208   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeOffset(
0209     const occ::handle<TDataXtd_Constraint>& aConst);
0210 
0211   //! @deprecated Use ComputeOffset() returning handle by value instead.
0212   Standard_DEPRECATED("Use ComputeOffset() returning handle by value instead")
0213   Standard_EXPORT static void ComputeOffset(const occ::handle<TDataXtd_Constraint>& aConst,
0214                                             occ::handle<AIS_InteractiveObject>&     anAIS);
0215 
0216   //! Computes a placement relation presentation for the given constraint.
0217   //! @param[in] aConst the placement constraint
0218   //! @return interactive object representing the placement, or null handle on failure
0219   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputePlacement(
0220     const occ::handle<TDataXtd_Constraint>& aConst);
0221 
0222   //! @deprecated Use ComputePlacement() returning handle by value instead.
0223   Standard_DEPRECATED("Use ComputePlacement() returning handle by value instead")
0224   Standard_EXPORT static void ComputePlacement(const occ::handle<TDataXtd_Constraint>& aConst,
0225                                                occ::handle<AIS_InteractiveObject>&     anAIS);
0226 
0227   //! Computes a coincident relation presentation for the given constraint.
0228   //! @param[in] aConst the coincident constraint
0229   //! @return interactive object representing the relation, or null handle on failure
0230   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeCoincident(
0231     const occ::handle<TDataXtd_Constraint>& aConst);
0232 
0233   //! @deprecated Use ComputeCoincident() returning handle by value instead.
0234   Standard_DEPRECATED("Use ComputeCoincident() returning handle by value instead")
0235   Standard_EXPORT static void ComputeCoincident(const occ::handle<TDataXtd_Constraint>& aConst,
0236                                                 occ::handle<AIS_InteractiveObject>&     anAIS);
0237 
0238   //! Computes a round (fillet) relation presentation for the given constraint.
0239   //! @param[in] aConst the round constraint
0240   //! @return interactive object representing the relation, or null handle on failure
0241   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeRound(
0242     const occ::handle<TDataXtd_Constraint>& aConst);
0243 
0244   //! @deprecated Use ComputeRound() returning handle by value instead.
0245   Standard_DEPRECATED("Use ComputeRound() returning handle by value instead")
0246   Standard_EXPORT static void ComputeRound(const occ::handle<TDataXtd_Constraint>& aConst,
0247                                            occ::handle<AIS_InteractiveObject>&     anAIS);
0248 
0249   //! Computes a presentation for constraint types not handled by specific methods.
0250   //! @param[in] aConst the constraint
0251   //! @return interactive object representing the constraint, or null handle on failure
0252   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeOthers(
0253     const occ::handle<TDataXtd_Constraint>& aConst);
0254 
0255   //! @deprecated Use ComputeOthers() returning handle by value instead.
0256   Standard_DEPRECATED("Use ComputeOthers() returning handle by value instead")
0257   Standard_EXPORT static void ComputeOthers(const occ::handle<TDataXtd_Constraint>& aConst,
0258                                             occ::handle<AIS_InteractiveObject>&     anAIS);
0259 
0260   Standard_EXPORT static void ComputeTextAndValue(const occ::handle<TDataXtd_Constraint>& aConst,
0261                                                   double&                                 aValue,
0262                                                   TCollection_ExtendedString&             aText,
0263                                                   const bool anIsAngle);
0264 
0265   //! Computes an angle dimension presentation for a single-face constraint.
0266   //! @param[in] aConst the angle constraint on one face
0267   //! @return interactive object representing the angle, or null handle on failure
0268   [[nodiscard]] Standard_EXPORT static occ::handle<AIS_InteractiveObject> ComputeAngleForOneFace(
0269     const occ::handle<TDataXtd_Constraint>& aConst);
0270 
0271   //! @deprecated Use ComputeAngleForOneFace() returning handle by value instead.
0272   Standard_DEPRECATED("Use ComputeAngleForOneFace() returning handle by value instead")
0273   Standard_EXPORT static void ComputeAngleForOneFace(const occ::handle<TDataXtd_Constraint>& aConst,
0274                                                      occ::handle<AIS_InteractiveObject>&     anAIS);
0275 
0276 private:
0277   Standard_EXPORT static void computeDistanceImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0278                                                   occ::handle<AIS_InteractiveObject>&     anAIS);
0279 
0280   Standard_EXPORT static void computeParallelImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0281                                                   occ::handle<AIS_InteractiveObject>&     anAIS);
0282 
0283   Standard_EXPORT static void computeTangentImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0284                                                  occ::handle<AIS_InteractiveObject>&     anAIS);
0285 
0286   Standard_EXPORT static void computePerpendicularImpl(
0287     const occ::handle<TDataXtd_Constraint>& aConst,
0288     occ::handle<AIS_InteractiveObject>&     anAIS);
0289 
0290   Standard_EXPORT static void computeConcentricImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0291                                                     occ::handle<AIS_InteractiveObject>&     anAIS);
0292 
0293   Standard_EXPORT static void computeSymmetryImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0294                                                   occ::handle<AIS_InteractiveObject>&     anAIS);
0295 
0296   Standard_EXPORT static void computeMidPointImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0297                                                   occ::handle<AIS_InteractiveObject>&     anAIS);
0298 
0299   Standard_EXPORT static void computeAngleImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0300                                                occ::handle<AIS_InteractiveObject>&     anAIS);
0301 
0302   Standard_EXPORT static void computeRadiusImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0303                                                 occ::handle<AIS_InteractiveObject>&     anAIS);
0304 
0305   Standard_EXPORT static void computeMinRadiusImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0306                                                    occ::handle<AIS_InteractiveObject>&     anAIS);
0307 
0308   Standard_EXPORT static void computeMaxRadiusImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0309                                                    occ::handle<AIS_InteractiveObject>&     anAIS);
0310 
0311   Standard_EXPORT static void computeEqualDistanceImpl(
0312     const occ::handle<TDataXtd_Constraint>& aConst,
0313     occ::handle<AIS_InteractiveObject>&     anAIS);
0314 
0315   Standard_EXPORT static void computeEqualRadiusImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0316                                                      occ::handle<AIS_InteractiveObject>&     anAIS);
0317 
0318   Standard_EXPORT static void computeFixImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0319                                              occ::handle<AIS_InteractiveObject>&     anAIS);
0320 
0321   Standard_EXPORT static void computeDiameterImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0322                                                   occ::handle<AIS_InteractiveObject>&     anAIS);
0323 
0324   Standard_EXPORT static void computeOffsetImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0325                                                 occ::handle<AIS_InteractiveObject>&     anAIS);
0326 
0327   Standard_EXPORT static void computePlacementImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0328                                                    occ::handle<AIS_InteractiveObject>&     anAIS);
0329 
0330   Standard_EXPORT static void computeCoincidentImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0331                                                     occ::handle<AIS_InteractiveObject>&     anAIS);
0332 
0333   Standard_EXPORT static void computeRoundImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0334                                                occ::handle<AIS_InteractiveObject>&     anAIS);
0335 
0336   Standard_EXPORT static void computeOthersImpl(const occ::handle<TDataXtd_Constraint>& aConst,
0337                                                 occ::handle<AIS_InteractiveObject>&     anAIS);
0338 
0339   Standard_EXPORT static void computeAngleForOneFaceImpl(
0340     const occ::handle<TDataXtd_Constraint>& aConst,
0341     occ::handle<AIS_InteractiveObject>&     anAIS);
0342 
0343   Standard_EXPORT static void GetOneShape(const occ::handle<TDataXtd_Constraint>& aConst,
0344                                           TopoDS_Shape&                           aShape);
0345 
0346   Standard_EXPORT static void GetGeom(const occ::handle<TDataXtd_Constraint>& aConst,
0347                                       occ::handle<Geom_Geometry>&             aGeom);
0348 
0349   Standard_EXPORT static void GetTwoShapes(const occ::handle<TDataXtd_Constraint>& aConst,
0350                                            TopoDS_Shape&                           aShape1,
0351                                            TopoDS_Shape&                           aShape2);
0352 
0353   Standard_EXPORT static void GetShapesAndGeom(const occ::handle<TDataXtd_Constraint>& aConst,
0354                                                TopoDS_Shape&                           aShape1,
0355                                                TopoDS_Shape&                           aShape2,
0356                                                occ::handle<Geom_Geometry>&             aGeom);
0357 
0358   Standard_EXPORT static void GetShapesAndGeom(const occ::handle<TDataXtd_Constraint>& aConst,
0359                                                TopoDS_Shape&                           aShape1,
0360                                                TopoDS_Shape&                           aShape2,
0361                                                TopoDS_Shape&                           aShape3,
0362                                                occ::handle<Geom_Geometry>&             aGeom);
0363 
0364   Standard_EXPORT static void GetShapesAndGeom(const occ::handle<TDataXtd_Constraint>& aConst,
0365                                                TopoDS_Shape&                           aShape1,
0366                                                TopoDS_Shape&                           aShape2,
0367                                                TopoDS_Shape&                           aShape3,
0368                                                TopoDS_Shape&                           aShape4,
0369                                                occ::handle<Geom_Geometry>&             aGeom);
0370 };
0371 
0372 #endif // _TPrsStd_ConstraintTools_HeaderFile