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 }