Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // Copyright (c) 1995-1999 Matra Datavision
0002 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0003 //
0004 // This file is part of Open CASCADE Technology software library.
0005 //
0006 // This library is free software; you can redistribute it and/or modify it under
0007 // the terms of the GNU Lesser General Public License version 2.1 as published
0008 // by the Free Software Foundation, with special exception defined in the file
0009 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0010 // distribution for complete text of the license and disclaimer of any warranty.
0011 //
0012 // Alternatively, this file may be used under the terms of Open CASCADE
0013 // commercial license or contractual agreement.
0014 
0015 #include <StdFail_UndefinedDerivative.hxx>
0016 #include <gp_XY.hxx>
0017 #include <NCollection_Sequence.hxx>
0018 #include <NCollection_HSequence.hxx>
0019 
0020 inline void IntSurf_PathPoint::AddUV(const double U, const double V)
0021 {
0022   sequv->Append(gp_XY(U, V));
0023 }
0024 
0025 inline void IntSurf_PathPoint::SetDirections(const gp_Vec& V, const gp_Dir2d& D)
0026 {
0027 
0028   istgt = false;
0029   vectg = V;
0030   dirtg = D;
0031 }
0032 
0033 inline void IntSurf_PathPoint::SetTangency(const bool Tang)
0034 {
0035 
0036   istgt = Tang;
0037 }
0038 
0039 inline void IntSurf_PathPoint::SetPassing(const bool Pass)
0040 {
0041 
0042   ispass = Pass;
0043 }
0044 
0045 inline const gp_Pnt& IntSurf_PathPoint::Value() const
0046 {
0047   return pt;
0048 }
0049 
0050 inline void IntSurf_PathPoint::Value2d(double& U, double& V) const
0051 {
0052   gp_XY uv(sequv->Sequence().First());
0053   U = uv.X();
0054   V = uv.Y();
0055 }
0056 
0057 inline bool IntSurf_PathPoint::IsPassingPnt() const
0058 {
0059 
0060   return ispass;
0061 }
0062 
0063 inline bool IntSurf_PathPoint::IsTangent() const
0064 {
0065 
0066   return istgt;
0067 }
0068 
0069 inline const gp_Vec& IntSurf_PathPoint::Direction3d() const
0070 {
0071 
0072   if (istgt)
0073   {
0074     throw StdFail_UndefinedDerivative();
0075   }
0076   return vectg;
0077 }
0078 
0079 inline const gp_Dir2d& IntSurf_PathPoint::Direction2d() const
0080 {
0081 
0082   if (istgt)
0083   {
0084     throw StdFail_UndefinedDerivative();
0085   }
0086   return dirtg;
0087 }
0088 
0089 inline int IntSurf_PathPoint::Multiplicity() const
0090 {
0091 
0092   return (sequv->Length() - 1);
0093 }
0094 
0095 inline void IntSurf_PathPoint::Parameters(const int Index, double& U, double& V) const
0096 {
0097   gp_XY uv(sequv->Value(Index + 1));
0098   U = uv.X();
0099   V = uv.Y();
0100 }