Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:04:01

0001 // Created on: 1993-01-09
0002 // Created by: CKY / Contract Toubro-Larsen ( TCD )
0003 // Copyright (c) 1993-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 _IGESGeom_OffsetCurve_HeaderFile
0018 #define _IGESGeom_OffsetCurve_HeaderFile
0019 
0020 #include <Standard.hxx>
0021 #include <Standard_Type.hxx>
0022 
0023 #include <Standard_Integer.hxx>
0024 #include <gp_XYZ.hxx>
0025 #include <IGESData_IGESEntity.hxx>
0026 class gp_Vec;
0027 
0028 
0029 class IGESGeom_OffsetCurve;
0030 DEFINE_STANDARD_HANDLE(IGESGeom_OffsetCurve, IGESData_IGESEntity)
0031 
0032 //! defines IGESOffsetCurve, Type <130> Form <0>
0033 //! in package IGESGeom
0034 //! An OffsetCurve entity contains the data necessary to
0035 //! determine the offset of a given curve C. This entity
0036 //! points to the base curve to be offset and contains
0037 //! offset distance and other pertinent information.
0038 class IGESGeom_OffsetCurve : public IGESData_IGESEntity
0039 {
0040 
0041 public:
0042 
0043   
0044   Standard_EXPORT IGESGeom_OffsetCurve();
0045   
0046   //! This method is used to set the fields of the class
0047   //! OffsetCurve
0048   //! - aBaseCurve         : The curve entity to be offset
0049   //! - anOffsetType       : Offset distance flag
0050   //! 1 = Single value, uniform distance
0051   //! 2 = Varying linearly
0052   //! 3 = As a specified function
0053   //! - aFunction          : Curve entity, one coordinate of which
0054   //! describes offset as a function of its
0055   //! parameter (0 unless OffsetType = 3)
0056   //! - aFunctionCoord     : Particular coordinate of curve
0057   //! describing offset as function of its
0058   //! parameters. (used if OffsetType = 3)
0059   //! - aTaperedOffsetType : Tapered offset type flag
0060   //! 1 = Function of arc length
0061   //! 2 = Function of parameter
0062   //! (Only used if OffsetType = 2 or 3)
0063   //! - offDistance1       : First offset distance
0064   //! (Only used if OffsetType = 1 or 2)
0065   //! - arcLength1         : Arc length or parameter value of
0066   //! first offset distance
0067   //! (Only used if OffsetType = 2)
0068   //! - offDistance2       : Second offset distance
0069   //! - arcLength2         : Arc length or parameter value of
0070   //! second offset distance
0071   //! (Only used if OffsetType = 2)
0072   //! - aNormalVec         : Unit vector normal to plane containing
0073   //! curve to be offset
0074   //! - anOffsetParam      : Start parameter value of offset curve
0075   //! - anotherOffsetParam : End parameter value of offset curve
0076   Standard_EXPORT void Init (const Handle(IGESData_IGESEntity)& aBaseCurve, const Standard_Integer anOffsetType, const Handle(IGESData_IGESEntity)& aFunction, const Standard_Integer aFunctionCoord, const Standard_Integer aTaperedOffsetType, const Standard_Real offDistance1, const Standard_Real arcLength1, const Standard_Real offDistance2, const Standard_Real arcLength2, const gp_XYZ& aNormalVec, const Standard_Real anOffsetParam, const Standard_Real anotherOffsetParam);
0077   
0078   //! returns the curve to be offset
0079   Standard_EXPORT Handle(IGESData_IGESEntity) BaseCurve() const;
0080   
0081   //! returns the offset distance flag
0082   //! 1 = Single value offset (uniform distance)
0083   //! 2 = Offset distance varying linearly
0084   //! 3 = Offset distance specified as a function
0085   Standard_EXPORT Standard_Integer OffsetType() const;
0086   
0087   //! returns the function defining the offset if at all the offset
0088   //! is described as a function or Null Handle.
0089   Standard_EXPORT Handle(IGESData_IGESEntity) Function() const;
0090   
0091   //! returns True if function defining the offset is present.
0092   Standard_EXPORT Standard_Boolean HasFunction() const;
0093   
0094   //! returns particular coordinate of the curve which describes offset
0095   //! as a function of its parameters. (only used if OffsetType() = 3)
0096   Standard_EXPORT Standard_Integer FunctionParameter() const;
0097   
0098   //! returns tapered offset type flag (only used if OffsetType() = 2 or 3)
0099   //! 1 = Function of arc length
0100   //! 2 = Function of parameter
0101   Standard_EXPORT Standard_Integer TaperedOffsetType() const;
0102   
0103   //! returns first offset distance (only used if OffsetType() = 1 or 2)
0104   Standard_EXPORT Standard_Real FirstOffsetDistance() const;
0105   
0106   //! returns arc length or parameter value (depending on value of
0107   //! offset distance flag) of first offset distance
0108   //! (only used if OffsetType() = 2)
0109   Standard_EXPORT Standard_Real ArcLength1() const;
0110   
0111   //! returns the second offset distance
0112   Standard_EXPORT Standard_Real SecondOffsetDistance() const;
0113   
0114   //! returns arc length or parameter value (depending on value of
0115   //! offset distance flag) of second offset distance
0116   //! (only used if OffsetType() = 2)
0117   Standard_EXPORT Standard_Real ArcLength2() const;
0118   
0119   //! returns unit vector normal to plane containing curve to be offset
0120   Standard_EXPORT gp_Vec NormalVector() const;
0121   
0122   //! returns unit vector normal to plane containing curve to be offset
0123   //! after applying Transf. Matrix
0124   Standard_EXPORT gp_Vec TransformedNormalVector() const;
0125   
0126   Standard_EXPORT void Parameters (Standard_Real& StartParam, Standard_Real& EndParam) const;
0127   
0128   //! returns Start Parameter value of the offset curve
0129   Standard_EXPORT Standard_Real StartParameter() const;
0130   
0131   //! returns End   Parameter value of the offset curve
0132   Standard_EXPORT Standard_Real EndParameter() const;
0133 
0134 
0135 
0136 
0137   DEFINE_STANDARD_RTTIEXT(IGESGeom_OffsetCurve,IGESData_IGESEntity)
0138 
0139 protected:
0140 
0141 
0142 
0143 
0144 private:
0145 
0146 
0147   Handle(IGESData_IGESEntity) theBaseCurve;
0148   Standard_Integer theOffsetType;
0149   Handle(IGESData_IGESEntity) theFunction;
0150   Standard_Integer theFunctionCoord;
0151   Standard_Integer theTaperedOffsetType;
0152   Standard_Real theOffsetDistance1;
0153   Standard_Real theArcLength1;
0154   Standard_Real theOffsetDistance2;
0155   Standard_Real theArcLength2;
0156   gp_XYZ theNormalVector;
0157   Standard_Real theOffsetParam1;
0158   Standard_Real theOffsetParam2;
0159 
0160 
0161 };
0162 
0163 
0164 
0165 
0166 
0167 
0168 
0169 #endif // _IGESGeom_OffsetCurve_HeaderFile