Back to home page

EIC code displayed by LXR

 
 

    


Warning, /include/opencascade/HLRBRep_CurveTool.lxx is written in an unsupported language. File is not indexed.

0001 // Created on: 1992-10-22
0002 // Created by: Laurent BUCHARD
0003 // Copyright (c) 1992-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 #include <HLRBRep_Curve.hxx>
0018 #include <GeomAbs_CurveType.hxx>
0019 #include <GeomAbs_Shape.hxx>
0020 #include <gp_Vec2d.hxx>
0021 #include <gp_Lin2d.hxx>
0022 #include <gp_Circ2d.hxx>
0023 #include <gp_Elips2d.hxx>
0024 #include <gp_Parab2d.hxx>
0025 #include <gp_Hypr2d.hxx>
0026 #include <Geom2d_BezierCurve.hxx>
0027 #include <Geom2d_BSplineCurve.hxx>
0028 #include <TColStd_Array1OfReal.hxx>
0029 
0030 #define   IS_C2_COMPOSITE 0
0031 
0032 //=======================================================================
0033 //function : FirstParameter
0034 //purpose  : 
0035 //=======================================================================
0036 
0037 inline Standard_Real
0038 HLRBRep_CurveTool::FirstParameter (const Standard_Address C)
0039 { return(((HLRBRep_Curve *)C)->FirstParameter()); }
0040 
0041 //=======================================================================
0042 //function : LastParameter
0043 //purpose  : 
0044 //=======================================================================
0045 
0046 inline Standard_Real
0047 HLRBRep_CurveTool::LastParameter (const Standard_Address C)
0048 { return(((HLRBRep_Curve *)C)->LastParameter()); }
0049 
0050 //=======================================================================
0051 //function : Continuity
0052 //purpose  : 
0053 //=======================================================================
0054 
0055 inline GeomAbs_Shape
0056 HLRBRep_CurveTool::Continuity (const Standard_Address C)
0057 { return(((HLRBRep_Curve *)C)->Continuity()); }
0058 
0059 //=======================================================================
0060 //function : NbIntervals
0061 //purpose  : 
0062 //=======================================================================
0063 
0064 inline Standard_Integer
0065 HLRBRep_CurveTool::NbIntervals(const Standard_Address C)
0066 {
0067 #if IS_C2_COMPOSITE 
0068   return(((HLRBRep_Curve *)C)->NbIntervals(GeomAbs_C2));
0069 #else 
0070   return(((HLRBRep_Curve *)C)->NbIntervals(GeomAbs_C1));
0071 #endif
0072 }
0073 
0074 //=======================================================================
0075 //function : Intervals
0076 //purpose  : 
0077 //=======================================================================
0078 
0079 inline void
0080 HLRBRep_CurveTool::Intervals(const Standard_Address C,
0081                              TColStd_Array1OfReal& Tab)
0082 { 
0083 #if IS_C2_COMPOSITE
0084   ((HLRBRep_Curve *)C)->Intervals(Tab,GeomAbs_C2);
0085 #else 
0086   ((HLRBRep_Curve *)C)->Intervals(Tab,GeomAbs_C1);
0087 #endif
0088 }
0089 
0090 //=======================================================================
0091 //function : GetInterval
0092 //purpose  : 
0093 //=======================================================================
0094 
0095 inline void
0096 HLRBRep_CurveTool::GetInterval(const Standard_Address /*C*/,
0097                                const Standard_Integer i,
0098                                const TColStd_Array1OfReal& Tab,
0099                                Standard_Real& a,
0100                                Standard_Real& b)
0101 {
0102   a = Tab.Value(i);
0103   b = Tab.Value(i+1);
0104 }
0105 
0106 //=======================================================================
0107 //function : IsClosed
0108 //purpose  : 
0109 //=======================================================================
0110 
0111 inline Standard_Boolean
0112 HLRBRep_CurveTool::IsClosed(const Standard_Address C)
0113 { return(((HLRBRep_Curve *)C)->IsClosed()); }
0114 
0115 //=======================================================================
0116 //function : IsPeriodic
0117 //purpose  : 
0118 //=======================================================================
0119 
0120 inline Standard_Boolean
0121 HLRBRep_CurveTool::IsPeriodic(const Standard_Address C)
0122 { return(((HLRBRep_Curve *)C)->IsPeriodic()); }
0123 
0124 //=======================================================================
0125 //function : Period
0126 //purpose  : 
0127 //=======================================================================
0128 
0129 inline Standard_Real
0130 HLRBRep_CurveTool::Period(const Standard_Address C)
0131 { return(((HLRBRep_Curve *)C)->Period()); }
0132 
0133 //=======================================================================
0134 //function : Value
0135 //purpose  : 
0136 //=======================================================================
0137 
0138 inline gp_Pnt2d
0139 HLRBRep_CurveTool::Value (const Standard_Address C,
0140                           const Standard_Real U)
0141 { return(((HLRBRep_Curve *)C)->Value(U)); }
0142 
0143 //=======================================================================
0144 //function : D0
0145 //purpose  : 
0146 //=======================================================================
0147 
0148 inline void
0149 HLRBRep_CurveTool::D0(const Standard_Address C,
0150                       const Standard_Real U,
0151                       gp_Pnt2d& P)
0152 { ((HLRBRep_Curve *)C)->D0(U,P); }
0153 
0154 //=======================================================================
0155 //function : D1
0156 //purpose  : 
0157 //=======================================================================
0158 
0159 inline void
0160 HLRBRep_CurveTool::D1 (const Standard_Address C,
0161                        const Standard_Real U,
0162                        gp_Pnt2d& P,
0163                        gp_Vec2d& T)
0164 { ((HLRBRep_Curve *)C)->D1(U,P,T); }
0165 
0166 //=======================================================================
0167 //function : D2
0168 //purpose  : 
0169 //=======================================================================
0170 
0171 inline void
0172 HLRBRep_CurveTool::D2 (const Standard_Address C,
0173                        const Standard_Real U,
0174                        gp_Pnt2d& P,
0175                        gp_Vec2d& T,
0176                        gp_Vec2d& N)
0177 { ((HLRBRep_Curve *)C)->D2(U,P,T,N); }
0178 
0179 //=======================================================================
0180 //function : D3
0181 //purpose  : 
0182 //=======================================================================
0183 
0184 inline void
0185 HLRBRep_CurveTool::D3 (const Standard_Address C,
0186                        const Standard_Real U,
0187                        gp_Pnt2d& P,
0188                        gp_Vec2d& V1,
0189                        gp_Vec2d& V2,
0190                        gp_Vec2d& V3)
0191 { ((HLRBRep_Curve *)C)->D3(U,P,V1,V2,V3); }
0192 
0193 //=======================================================================
0194 //function : DN
0195 //purpose  : 
0196 //=======================================================================
0197 
0198 inline gp_Vec2d
0199 HLRBRep_CurveTool::DN (const Standard_Address C,
0200                        const Standard_Real U,
0201                        const Standard_Integer N)
0202 { return(((HLRBRep_Curve *)C)->DN(U,N)); }
0203 
0204 //=======================================================================
0205 //function : Resolution
0206 //purpose  : 
0207 //=======================================================================
0208 
0209 inline Standard_Real
0210 HLRBRep_CurveTool::Resolution(const Standard_Address C,
0211                               const Standard_Real R3d)
0212 { return(((HLRBRep_Curve *)C)->Resolution(R3d)); }
0213 
0214 //=======================================================================
0215 //function : GetType
0216 //purpose  : 
0217 //=======================================================================
0218 
0219 inline GeomAbs_CurveType
0220 HLRBRep_CurveTool::GetType(const Standard_Address C)
0221 { return(((HLRBRep_Curve *)C)->GetType()); }
0222 
0223 //=======================================================================
0224 //function : TheType
0225 //purpose  : 
0226 //=======================================================================
0227 
0228 inline GeomAbs_CurveType
0229 HLRBRep_CurveTool::TheType(const Standard_Address C)
0230 { return(((HLRBRep_Curve *)C)->GetType()); }
0231 
0232 //=======================================================================
0233 //function : Line
0234 //purpose  : 
0235 //=======================================================================
0236 
0237 inline gp_Lin2d
0238 HLRBRep_CurveTool::Line (const Standard_Address C)
0239 { return(((HLRBRep_Curve *)C)->Line()); }
0240 
0241 //=======================================================================
0242 //function : Circle
0243 //purpose  : 
0244 //=======================================================================
0245 
0246 inline gp_Circ2d
0247 HLRBRep_CurveTool::Circle (const Standard_Address C)
0248 { return(((HLRBRep_Curve *)C)->Circle()); }
0249 
0250 //=======================================================================
0251 //function : Ellipse
0252 //purpose  : 
0253 //=======================================================================
0254 
0255 inline gp_Elips2d
0256 HLRBRep_CurveTool::Ellipse (const Standard_Address C)
0257 { return(((HLRBRep_Curve *)C)->Ellipse()); }
0258 
0259 //=======================================================================
0260 //function : Parabola
0261 //purpose  : 
0262 //=======================================================================
0263 
0264 inline gp_Parab2d
0265 HLRBRep_CurveTool::Parabola (const Standard_Address C)
0266 { return(((HLRBRep_Curve *)C)->Parabola()); }
0267 
0268 //=======================================================================
0269 //function : Hyperbola
0270 //purpose  : 
0271 //=======================================================================
0272 
0273 inline gp_Hypr2d
0274 HLRBRep_CurveTool::Hyperbola (const Standard_Address C)
0275 { return(((HLRBRep_Curve *)C)->Hyperbola()); }
0276 
0277 //=======================================================================
0278 //function : Bezier
0279 //purpose  : 
0280 //=======================================================================
0281 
0282 inline Handle(Geom2d_BezierCurve)
0283      HLRBRep_CurveTool::Bezier (const Standard_Address /*C*/)
0284 {
0285 #ifdef OCCT_DEBUG
0286   std::cout<<"  HLRBRep_CurveTool::Bezier : Not Implemented "<<std::endl;
0287 #endif
0288   //-- return(((HLRBRep_Curve *)C)->Bezier());
0289   return(0);
0290 }
0291 
0292 //=======================================================================
0293 //function : BSpline
0294 //purpose  : 
0295 //=======================================================================
0296 
0297 inline Handle(Geom2d_BSplineCurve)
0298      HLRBRep_CurveTool::BSpline (const Standard_Address /*C*/)
0299 {
0300 #ifdef OCCT_DEBUG
0301   std::cout<<"  HLRBRep_CurveTool::BSpline : Not Implemented "<<std::endl;
0302 #endif
0303   //-- return(((HLRBRep_Curve *)C)->BSpline());
0304   return(0);
0305 }
0306 
0307 //=======================================================================
0308 //function : EpsX
0309 //purpose  : 
0310 //=======================================================================
0311 
0312 inline Standard_Real
0313 HLRBRep_CurveTool::EpsX(const Standard_Address /*C*/)
0314 { return(1e-10); }
0315 
0316 
0317 //=======================================================================
0318 //function : Degree
0319 //purpose  : 
0320 //=======================================================================
0321 
0322 inline Standard_Integer
0323      HLRBRep_CurveTool::Degree (const Standard_Address C)
0324 {
0325   return(((HLRBRep_Curve *)C)->Degree());
0326 }